balena-io / deploy-to-balena-action

Official Github action to deploy releases to balenaCloud environments
Apache License 2.0
38 stars 13 forks source link

Update Node.js to v20 #257

Closed balena-renovate[bot] closed 1 year ago

balena-renovate[bot] commented 1 year ago

This PR contains the following updates:

Package Type Update Change
node final major 18.12.1-bullseye-slim -> 20.6.0-bullseye-slim

Release Notes

nodejs/node (node) ### [`v20.6.0`](https://togithub.com/nodejs/node/releases/tag/v20.6.0): 2023-09-04, Version 20.6.0 (Current), @​juanarbol prepared by @​UlisesGascon [Compare Source](https://togithub.com/nodejs/node/compare/v20.5.1...v20.6.0) ##### Notable changes ##### built-in `.env` file support Starting from Node.js v20.6.0, Node.js supports `.env` files for configuring environment variables. Your configuration file should follow the INI file format, with each line containing a key-value pair for an environment variable. To initialize your Node.js application with predefined configurations, use the following CLI command: `node --env-file=config.env index.js`. For example, you can access the following environment variable using `process.env.PASSWORD` when your application is initialized: ```text PASSWORD=nodejs ``` In addition to environment variables, this change allows you to define your `NODE_OPTIONS` directly in the `.env` file, eliminating the need to include it in your `package.json`. This feature was contributed by Yagiz Nizipli in [#​48890](https://togithub.com/nodejs/node/pull/48890). ##### `import.meta.resolve` unflagged In ES modules, [`import.meta.resolve(specifier)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import.meta/resolve) can be used to get an absolute URL string to which `specifier` resolves, similar to `require.resolve` in CommonJS. This aligns Node.js with browsers and other server-side runtimes. This feature was contributed by Guy Bedford in [#​49028](https://togithub.com/nodejs/node/pull/49028) ##### New `node:module` API `register` for module customization hooks; new `initialize` hook There is a new API `register` available on `node:module` to specify a file that exports module customization hooks, and pass data to the hooks, and establish communication channels with them. The “define the file with the hooks” part was previously handled by a flag `--experimental-loader`, but when the hooks moved into a dedicated thread in 20.0.0 there was a need to provide a way to communicate between the main (application) thread and the hooks thread. This can now be done by calling `register` from the main thread and passing data, including `MessageChannel` instances. We encourage users to migrate to an approach that uses [`--import`](https://nodejs.org/api/cli.html#--importmodule) with `register`, such as: ```bash node --import ./file-that-calls-register.js ./app.js ``` Using `--import` ensures that the customization hooks are registered before any application code runs, even the entry point. This feature was contributed by Izaak Schroeder in [#​48842](https://togithub.com/nodejs/node/pull/48842) and [#​48559](https://togithub.com/nodejs/node/pull/48559) ##### Module customization `load` hook can now support CommonJS Authors of module customization hooks can how handle both ES module and CommonJS sources in the `load` hook. This works for CommonJS modules referenced via either `import` or `require`, so long as [the main entry point of the application is handled by the ES module loader](https://nodejs.org/api/cli.html#program-entry-point) (such as because the entry point is an ES module file, or if the `--import` flag is passed). This should simplify the customization of the Node.js module loading process, as package authors can customize more of Node.js without relying on deprecated APIs such as `require.extensions`. This feature was contributed by Antoine du Hamel in [#​47999](https://togithub.com/nodejs/node/pull/47999) ##### Node.js C++ addons now have experimental support for cppgc (Oilpan), a C++ garbage collection library in V8. Now when Node.js starts up, it makes sure that there is a `v8::CppHeap` attached to the V8 isolate. This enables users to allocate in the `v8::CppHeap` using `` headers from V8, which are now also included into the Node.js headers available to addons. Note that since Node.js only bundles the cppgc library coming from V8, [the ABI stability](https://nodejs.org/en/docs/guides/abi-stability#abi-stability-in-nodejs) of cppgc is currently not guaranteed in semver-minor and -patch updates, but we do not expect the ABI to break often, as it has been stable and battle-tested in Chromium for years. We may consider including cppgc into the ABI stability guarantees when it gets enough adoption internally and externally. To help addon authors create JavaScript-to-C++ references of which V8's garbage collector can be aware, a helper function [`node::SetCppgcReference(isolate, js_object, cppgc_object)`](https://togithub.com/nodejs/node/blob/v20.6.0/test/addons/cppgc-object/binding.cc) has been added to `node.h`. V8 may provide a native alternative in the future, which could then replace this Node.js-specific helper. In the mean time, users can use this API to avoid having to hard-code the layout of JavaScript wrapper objects. An example of how to create garbage-collected C++ objects in the unified heap and wrap it in a JavaScript object can be found in the [Node.js addon tests](https://togithub.com/nodejs/node/blob/v20.6.0/test/addons/cppgc-object/binding.cc). The existing `node::ObjectWrap` helper would continue to work, while cppgc-based object management serves as an alternative with some advantages mentioned in [the V8 blog post about Oilpan](https://v8.dev/blog/oilpan-library). This feature was contributed by Daryl Haresign and Joyee Cheung in [#​48660](https://togithub.com/nodejs/node/pull/48660) and [#​45704](https://togithub.com/nodejs/node/pull/45704). ##### Other notable changes - \[[`d6862b085c`](https://togithub.com/nodejs/node/commit/d6862b085c)] - **deps**: V8: cherry-pick [`9327503`](https://togithub.com/nodejs/node/commit/93275031284c) (Joyee Cheung) [#​48660](https://togithub.com/nodejs/node/pull/48660) - \[[`00fc8bb8b3`](https://togithub.com/nodejs/node/commit/00fc8bb8b3)] - **doc**: add rluvaton to collaborators (Raz Luvaton) [#​49215](https://togithub.com/nodejs/node/pull/49215) - \[[`d649339abd`](https://togithub.com/nodejs/node/commit/d649339abd)] - **doc**: add new TSC members (Michael Dawson) [#​48841](https://togithub.com/nodejs/node/pull/48841) - \[[`67f9896247`](https://togithub.com/nodejs/node/commit/67f9896247)] - **(SEMVER-MINOR)** **inspector**: open add `SymbolDispose` (Chemi Atlow) [#​48765](https://togithub.com/nodejs/node/pull/48765) - \[[`5aef593db3`](https://togithub.com/nodejs/node/commit/5aef593db3)] - **module**: implement `register` utility (João Lenon) [#​46826](https://togithub.com/nodejs/node/pull/46826) ##### Commits - \[[`771abcb5da`](https://togithub.com/nodejs/node/commit/771abcb5da)] - **benchmark**: add benchmarks for the test_runner (Raz Luvaton) [#​48931](https://togithub.com/nodejs/node/pull/48931) - \[[`6b27bb0dab`](https://togithub.com/nodejs/node/commit/6b27bb0dab)] - **benchmark**: add pm startup benchmark (Rafael Gonzaga) [#​48905](https://togithub.com/nodejs/node/pull/48905) - \[[`1f35c0ca55`](https://togithub.com/nodejs/node/commit/1f35c0ca55)] - **child_process**: harden against prototype pollution (Livia Medeiros) [#​48726](https://togithub.com/nodejs/node/pull/48726) - \[[`d6862b085c`](https://togithub.com/nodejs/node/commit/d6862b085c)] - **deps**: V8: cherry-pick [`9327503`](https://togithub.com/nodejs/node/commit/93275031284c) (Joyee Cheung) [#​48660](https://togithub.com/nodejs/node/pull/48660) - \[[`f71e383948`](https://togithub.com/nodejs/node/commit/f71e383948)] - **deps**: update simdutf to 3.2.17 (Node.js GitHub Bot) [#​49019](https://togithub.com/nodejs/node/pull/49019) - \[[`e14f0456ae`](https://togithub.com/nodejs/node/commit/e14f0456ae)] - **deps**: update googletest to [`7e33b6a`](https://togithub.com/nodejs/node/commit/7e33b6a) (Node.js GitHub Bot) [#​49034](https://togithub.com/nodejs/node/pull/49034) - \[[`bfaa0fb500`](https://togithub.com/nodejs/node/commit/bfaa0fb500)] - **deps**: update zlib to 1.2.13.1-motley-526382e (Node.js GitHub Bot) [#​49033](https://togithub.com/nodejs/node/pull/49033) - \[[`b79c652c85`](https://togithub.com/nodejs/node/commit/b79c652c85)] - **deps**: update undici to 5.23.0 (Node.js GitHub Bot) [#​49021](https://togithub.com/nodejs/node/pull/49021) - \[[`6ead86145c`](https://togithub.com/nodejs/node/commit/6ead86145c)] - **deps**: update googletest to [`c875c4e`](https://togithub.com/nodejs/node/commit/c875c4e) (Node.js GitHub Bot) [#​48964](https://togithub.com/nodejs/node/pull/48964) - \[[`4b0e50501e`](https://togithub.com/nodejs/node/commit/4b0e50501e)] - **deps**: update ada to 2.6.0 (Node.js GitHub Bot) [#​48896](https://togithub.com/nodejs/node/pull/48896) - \[[`d960ee0ba3`](https://togithub.com/nodejs/node/commit/d960ee0ba3)] - **deps**: upgrade npm to 9.8.1 (npm team) [#​48838](https://togithub.com/nodejs/node/pull/48838) - \[[`d92b0139ca`](https://togithub.com/nodejs/node/commit/d92b0139ca)] - **deps**: update zlib to 1.2.13.1-motley-61dc0bd (Node.js GitHub Bot) [#​48788](https://togithub.com/nodejs/node/pull/48788) - \[[`2a7835c376`](https://togithub.com/nodejs/node/commit/2a7835c376)] - **deps**: V8: cherry-pick [`9f4b769`](https://togithub.com/nodejs/node/commit/9f4b7699f68e) (Joyee Cheung) [#​48830](https://togithub.com/nodejs/node/pull/48830) - \[[`c8e17829ac`](https://togithub.com/nodejs/node/commit/c8e17829ac)] - **deps**: V8: cherry-pick [`c1a54d5`](https://togithub.com/nodejs/node/commit/c1a54d5ffcd1) (Joyee Cheung) [#​48830](https://togithub.com/nodejs/node/pull/48830) - \[[`318e075b6f`](https://togithub.com/nodejs/node/commit/318e075b6f)] - **deps**: update googletest to [`cc36671`](https://togithub.com/nodejs/node/commit/cc36671) (Node.js GitHub Bot) [#​48789](https://togithub.com/nodejs/node/pull/48789) - \[[`114e088267`](https://togithub.com/nodejs/node/commit/114e088267)] - **diagnostics_channel**: fix last subscriber removal (Gabriel Schulhof) [#​48933](https://togithub.com/nodejs/node/pull/48933) - \[[`00fc8bb8b3`](https://togithub.com/nodejs/node/commit/00fc8bb8b3)] - **doc**: add rluvaton to collaborators (Raz Luvaton) [#​49215](https://togithub.com/nodejs/node/pull/49215) - \[[`21949c45b6`](https://togithub.com/nodejs/node/commit/21949c45b6)] - **doc**: add print results for examples in `WebStreams` (Jungku Lee) [#​49143](https://togithub.com/nodejs/node/pull/49143) - \[[`032107a6fe`](https://togithub.com/nodejs/node/commit/032107a6fe)] - **doc**: fix `Type` notation in webstreams (Deokjin Kim) [#​49121](https://togithub.com/nodejs/node/pull/49121) - \[[`91d41e7c5a`](https://togithub.com/nodejs/node/commit/91d41e7c5a)] - **doc**: fix name of the flag in `initialize()` docs (Antoine du Hamel) [#​49158](https://togithub.com/nodejs/node/pull/49158) - \[[`aa4caf810e`](https://togithub.com/nodejs/node/commit/aa4caf810e)] - **doc**: make the NODE_VERSION_IS_RELEASE revert clear (Rafael Gonzaga) [#​49114](https://togithub.com/nodejs/node/pull/49114) - \[[`f888a1dbe3`](https://togithub.com/nodejs/node/commit/f888a1dbe3)] - **doc**: update process.binding deprecation text (Tobias Nießen) [#​49086](https://togithub.com/nodejs/node/pull/49086) - \[[`89fa3faf92`](https://togithub.com/nodejs/node/commit/89fa3faf92)] - **doc**: update with latest security release (Rafael Gonzaga) [#​49085](https://togithub.com/nodejs/node/pull/49085) - \[[`3d36e7a941`](https://togithub.com/nodejs/node/commit/3d36e7a941)] - **doc**: add description for `--port` flag of `node inspect` (Michael Bianco) [#​48785](https://togithub.com/nodejs/node/pull/48785) - \[[`e9d9ca12a3`](https://togithub.com/nodejs/node/commit/e9d9ca12a3)] - **doc**: add missing period (Rich Trott) [#​49094](https://togithub.com/nodejs/node/pull/49094) - \[[`7e7b554de0`](https://togithub.com/nodejs/node/commit/7e7b554de0)] - **doc**: add ESM examples in http.md (btea) [#​47763](https://togithub.com/nodejs/node/pull/47763) - \[[`48f8ccfd54`](https://togithub.com/nodejs/node/commit/48f8ccfd54)] - **doc**: detailed description of keystrokes Ctrl-Y and Meta-Y (Ray) [#​43529](https://togithub.com/nodejs/node/pull/43529) - \[[`195885c8f8`](https://togithub.com/nodejs/node/commit/195885c8f8)] - **doc**: add "type" to test runner event details (Phil Nash) [#​49014](https://togithub.com/nodejs/node/pull/49014) - \[[`6ce25f8415`](https://togithub.com/nodejs/node/commit/6ce25f8415)] - **doc**: reserve 118 for Electron 27 (David Sanders) [#​49023](https://togithub.com/nodejs/node/pull/49023) - \[[`9c26c0f296`](https://togithub.com/nodejs/node/commit/9c26c0f296)] - **doc**: clarify use of process.env in worker threads on Windows (Daeyeon Jeong) [#​49008](https://togithub.com/nodejs/node/pull/49008) - \[[`7186e02aa0`](https://togithub.com/nodejs/node/commit/7186e02aa0)] - **doc**: remove v14 mention (Rafael Gonzaga) [#​49005](https://togithub.com/nodejs/node/pull/49005) - \[[`9641ac6c65`](https://togithub.com/nodejs/node/commit/9641ac6c65)] - **doc**: drop github actions check in sec release process (Rafael Gonzaga) [#​48978](https://togithub.com/nodejs/node/pull/48978) - \[[`f3d62abb19`](https://togithub.com/nodejs/node/commit/f3d62abb19)] - **doc**: improved joinDuplicateHeaders definition (Matteo Bianchi) [#​48859](https://togithub.com/nodejs/node/pull/48859) - \[[`0db104a08b`](https://togithub.com/nodejs/node/commit/0db104a08b)] - **doc**: fix second parameter name of `events.addAbortListener` (Deokjin Kim) [#​48922](https://togithub.com/nodejs/node/pull/48922) - \[[`5173c559b7`](https://togithub.com/nodejs/node/commit/5173c559b7)] - **doc**: add new reporter events to custom reporter examples (Chemi Atlow) [#​48903](https://togithub.com/nodejs/node/pull/48903) - \[[`660da785e6`](https://togithub.com/nodejs/node/commit/660da785e6)] - **doc**: run license-builder (github-actions\[bot]) [#​48898](https://togithub.com/nodejs/node/pull/48898) - \[[`092f9fe92a`](https://togithub.com/nodejs/node/commit/092f9fe92a)] - **doc**: change duration to duration_ms on test documentation (Ardi_Nugraha) [#​48892](https://togithub.com/nodejs/node/pull/48892) - \[[`5e4730858d`](https://togithub.com/nodejs/node/commit/5e4730858d)] - **doc**: improve requireHostHeader (Guido Penta) [#​48860](https://togithub.com/nodejs/node/pull/48860) - \[[`045e3c549a`](https://togithub.com/nodejs/node/commit/045e3c549a)] - **doc**: add ver of 18.x where Node-api 9 is supported (Michael Dawson) [#​48876](https://togithub.com/nodejs/node/pull/48876) - \[[`c20d35df34`](https://togithub.com/nodejs/node/commit/c20d35df34)] - **doc**: include experimental features assessment (Rafael Gonzaga) [#​48824](https://togithub.com/nodejs/node/pull/48824) - \[[`d649339abd`](https://togithub.com/nodejs/node/commit/d649339abd)] - **doc**: add new TSC members (Michael Dawson) [#​48841](https://togithub.com/nodejs/node/pull/48841) - \[[`aeac327f2b`](https://togithub.com/nodejs/node/commit/aeac327f2b)] - **doc**: refactor node-api support matrix (Michael Dawson) [#​48774](https://togithub.com/nodejs/node/pull/48774) - \[[`388c7d9232`](https://togithub.com/nodejs/node/commit/388c7d9232)] - **doc**: declare `path` on example of `async_hooks.executionAsyncId()` (Deokjin Kim) [#​48556](https://togithub.com/nodejs/node/pull/48556) - \[[`fe20528c8e`](https://togithub.com/nodejs/node/commit/fe20528c8e)] - **doc**: remove the . in the end to reduce confusing (Jason) [#​48719](https://togithub.com/nodejs/node/pull/48719) - \[[`e69c8e173f`](https://togithub.com/nodejs/node/commit/e69c8e173f)] - **doc**: nodejs-social over nodejs/tweet (Rafael Gonzaga) [#​48769](https://togithub.com/nodejs/node/pull/48769) - \[[`ea547849fd`](https://togithub.com/nodejs/node/commit/ea547849fd)] - **doc**: expand on squashing and rebasing to land a PR (Chengzhong Wu) [#​48751](https://togithub.com/nodejs/node/pull/48751) - \[[`31442b96a5`](https://togithub.com/nodejs/node/commit/31442b96a5)] - **esm**: fix `globalPreload` warning (Antoine du Hamel) [#​49069](https://togithub.com/nodejs/node/pull/49069) - \[[`eb1215878b`](https://togithub.com/nodejs/node/commit/eb1215878b)] - **esm**: unflag import.meta.resolve (Guy Bedford) [#​49028](https://togithub.com/nodejs/node/pull/49028) - \[[`57b24a34e6`](https://togithub.com/nodejs/node/commit/57b24a34e6)] - **esm**: import.meta.resolve exact module not found errors should return (Guy Bedford) [#​49038](https://togithub.com/nodejs/node/pull/49038) - \[[`f23b2a3066`](https://togithub.com/nodejs/node/commit/f23b2a3066)] - **esm**: protect `ERR_UNSUPPORTED_DIR_IMPORT` against prototype pollution (Antoine du Hamel) [#​49060](https://togithub.com/nodejs/node/pull/49060) - \[[`386e826a56`](https://togithub.com/nodejs/node/commit/386e826a56)] - **esm**: add `initialize` hook, integrate with `register` (Izaak Schroeder) [#​48842](https://togithub.com/nodejs/node/pull/48842) - \[[`74a2e1e0ab`](https://togithub.com/nodejs/node/commit/74a2e1e0ab)] - **esm**: fix typo `parentUrl` -> `parentURL` (Antoine du Hamel) [#​48999](https://togithub.com/nodejs/node/pull/48999) - \[[`0a4f7c669a`](https://togithub.com/nodejs/node/commit/0a4f7c669a)] - **esm**: unflag `Module.register` and allow nested loader `import()` (Izaak Schroeder) [#​48559](https://togithub.com/nodejs/node/pull/48559) - \[[`a5597470ce`](https://togithub.com/nodejs/node/commit/a5597470ce)] - **esm**: add back `globalPreload` tests and fix failing ones (Antoine du Hamel) [#​48779](https://togithub.com/nodejs/node/pull/48779) - \[[`d568600b42`](https://togithub.com/nodejs/node/commit/d568600b42)] - **events**: remove weak listener for event target (Raz Luvaton) [#​48952](https://togithub.com/nodejs/node/pull/48952) - \[[`3d942d9842`](https://togithub.com/nodejs/node/commit/3d942d9842)] - **fs**: fix readdir recursive sync & callback (Ethan Arrowood) [#​48698](https://togithub.com/nodejs/node/pull/48698) - \[[`c14ff69d69`](https://togithub.com/nodejs/node/commit/c14ff69d69)] - **fs**: mention `URL` in NUL character error message (LiviaMedeiros) [#​48828](https://togithub.com/nodejs/node/pull/48828) - \[[`d634d781d7`](https://togithub.com/nodejs/node/commit/d634d781d7)] - **fs**: make `mkdtemp` accept buffers and URL (LiviaMedeiros) [#​48828](https://togithub.com/nodejs/node/pull/48828) - \[[`4515a285a4`](https://togithub.com/nodejs/node/commit/4515a285a4)] - **fs**: remove redundant `nullCheck` (Livia Medeiros) [#​48826](https://togithub.com/nodejs/node/pull/48826) - \[[`742597b14a`](https://togithub.com/nodejs/node/commit/742597b14a)] - **http**: start connections checking interval on listen (Paolo Insogna) [#​48611](https://togithub.com/nodejs/node/pull/48611) - \[[`67f9896247`](https://togithub.com/nodejs/node/commit/67f9896247)] - **(SEMVER-MINOR)** **inspector**: open add `SymbolDispose` (Chemi Atlow) [#​48765](https://togithub.com/nodejs/node/pull/48765) - \[[`b66a3c1c96`](https://togithub.com/nodejs/node/commit/b66a3c1c96)] - **lib**: fix MIME overmatch in data URLs (André Alves) [#​49104](https://togithub.com/nodejs/node/pull/49104) - \[[`dca8678a22`](https://togithub.com/nodejs/node/commit/dca8678a22)] - **lib**: fix to add resolve() before return at Blob.stream()'s source.pull() (bellbind) [#​48935](https://togithub.com/nodejs/node/pull/48935) - \[[`420b85c00f`](https://togithub.com/nodejs/node/commit/420b85c00f)] - **lib**: remove invalid parameter to toASCII (Yagiz Nizipli) [#​48878](https://togithub.com/nodejs/node/pull/48878) - \[[`a12ce11b09`](https://togithub.com/nodejs/node/commit/a12ce11b09)] - **lib,permission**: drop repl autocomplete when pm enabled (Rafael Gonzaga) [#​48920](https://togithub.com/nodejs/node/pull/48920) - \[[`458eaf5e75`](https://togithub.com/nodejs/node/commit/458eaf5e75)] - **meta**: bump github/codeql-action from 2.20.1 to 2.21.2 (dependabot\[bot]) [#​48986](https://togithub.com/nodejs/node/pull/48986) - \[[`4f88cb10e0`](https://togithub.com/nodejs/node/commit/4f88cb10e0)] - **meta**: bump step-security/harden-runner from 2.4.1 to 2.5.0 (dependabot\[bot]) [#​48985](https://togithub.com/nodejs/node/pull/48985) - \[[`22fc2a6ec6`](https://togithub.com/nodejs/node/commit/22fc2a6ec6)] - **meta**: bump actions/setup-node from 3.6.0 to 3.7.0 (dependabot\[bot]) [#​48984](https://togithub.com/nodejs/node/pull/48984) - \[[`40103adabd`](https://togithub.com/nodejs/node/commit/40103adabd)] - **meta**: bump actions/setup-python from 4.6.1 to 4.7.0 (dependabot\[bot]) [#​48983](https://togithub.com/nodejs/node/pull/48983) - \[[`84c0c6848c`](https://togithub.com/nodejs/node/commit/84c0c6848c)] - **meta**: add mailmap entry for atlowChemi (Chemi Atlow) [#​48810](https://togithub.com/nodejs/node/pull/48810) - \[[`1a6e9450b8`](https://togithub.com/nodejs/node/commit/1a6e9450b8)] - **module**: make CJS load from ESM loader (Antoine du Hamel) [#​47999](https://togithub.com/nodejs/node/pull/47999) - \[[`a5322c4b4a`](https://togithub.com/nodejs/node/commit/a5322c4b4a)] - **module**: ensure successful import returns the same result (Antoine du Hamel) [#​46662](https://togithub.com/nodejs/node/pull/46662) - \[[`5aef593db3`](https://togithub.com/nodejs/node/commit/5aef593db3)] - **module**: implement `register` utility (João Lenon) [#​46826](https://togithub.com/nodejs/node/pull/46826) - \[[`015c4f788d`](https://togithub.com/nodejs/node/commit/015c4f788d)] - **node-api**: avoid macro redefinition (Tobias Nießen) [#​48879](https://togithub.com/nodejs/node/pull/48879) - \[[`53ee98566b`](https://togithub.com/nodejs/node/commit/53ee98566b)] - **permission**: move PrintTree into unnamed namespace (Tobias Nießen) [#​48874](https://togithub.com/nodejs/node/pull/48874) - \[[`30ea480135`](https://togithub.com/nodejs/node/commit/30ea480135)] - **permission**: fix data types in PrintTree (Tobias Nießen) [#​48770](https://togithub.com/nodejs/node/pull/48770) - \[[`8380800375`](https://togithub.com/nodejs/node/commit/8380800375)] - **readline**: add paste bracket mode (Jakub Jankiewicz) [#​47150](https://togithub.com/nodejs/node/pull/47150) - \[[`bc009d0c10`](https://togithub.com/nodejs/node/commit/bc009d0c10)] - **sea**: add support for V8 bytecode-only caching (Darshan Sen) [#​48191](https://togithub.com/nodejs/node/pull/48191) - \[[`f2f4ce9e29`](https://togithub.com/nodejs/node/commit/f2f4ce9e29)] - **src**: use effective cppgc wrapper id to deduce non-cppgc id (Joyee Cheung) [#​48660](https://togithub.com/nodejs/node/pull/48660) - \[[`bf7ff369f6`](https://togithub.com/nodejs/node/commit/bf7ff369f6)] - **src**: add built-in `.env` file support (Yagiz Nizipli) [#​48890](https://togithub.com/nodejs/node/pull/48890) - \[[`8d6948f8e2`](https://togithub.com/nodejs/node/commit/8d6948f8e2)] - **src**: remove duplicated code in `GenerateSingleExecutableBlob()` (Jungku Lee) [#​49119](https://togithub.com/nodejs/node/pull/49119) - \[[`b030004cee`](https://togithub.com/nodejs/node/commit/b030004cee)] - **src**: refactor vector writing in snapshot builder (Joyee Cheung) [#​48851](https://togithub.com/nodejs/node/pull/48851) - \[[`497df8288d`](https://togithub.com/nodejs/node/commit/497df8288d)] - **src**: add ability to overload fast api functions (Yagiz Nizipli) [#​48993](https://togithub.com/nodejs/node/pull/48993) - \[[`e5b0dfa359`](https://togithub.com/nodejs/node/commit/e5b0dfa359)] - **src**: remove redundant code for uv_handle_type (Jungku Lee) [#​49061](https://togithub.com/nodejs/node/pull/49061) - \[[`f126b9e3d1`](https://togithub.com/nodejs/node/commit/f126b9e3d1)] - **src**: modernize use-equals-default (Jason) [#​48735](https://togithub.com/nodejs/node/pull/48735) - \[[`db4370fc3e`](https://togithub.com/nodejs/node/commit/db4370fc3e)] - **src**: avoid string copy in BuiltinLoader::GetBuiltinIds (Yagiz Nizipli) [#​48721](https://togithub.com/nodejs/node/pull/48721) - \[[`9d13503c4e`](https://togithub.com/nodejs/node/commit/9d13503c4e)] - **src**: fix callback_queue.h missing header (Jason) [#​48733](https://togithub.com/nodejs/node/pull/48733) - \[[`6c389df3aa`](https://togithub.com/nodejs/node/commit/6c389df3aa)] - **src**: cast v8::Object::GetInternalField() return value to v8::Value (Joyee Cheung) [#​48943](https://togithub.com/nodejs/node/pull/48943) - \[[`7b9adff0be`](https://togithub.com/nodejs/node/commit/7b9adff0be)] - **src**: do not pass user input to format string (Antoine du Hamel) [#​48973](https://togithub.com/nodejs/node/pull/48973) - \[[`e0fdb7b092`](https://togithub.com/nodejs/node/commit/e0fdb7b092)] - **src**: remove ContextEmbedderIndex::kBindingDataStoreIndex (Joyee Cheung) [#​48836](https://togithub.com/nodejs/node/pull/48836) - \[[`578c3d1e14`](https://togithub.com/nodejs/node/commit/578c3d1e14)] - **src**: use ARES_SUCCESS instead of 0 (Hyunjin Kim) [#​48834](https://togithub.com/nodejs/node/pull/48834) - \[[`ed23426aac`](https://togithub.com/nodejs/node/commit/ed23426aac)] - **src**: save the performance milestone time origin in the AliasedArray (Joyee Cheung) [#​48708](https://togithub.com/nodejs/node/pull/48708) - \[[`5dec186663`](https://togithub.com/nodejs/node/commit/5dec186663)] - **src**: support snapshot in single executable applications (Joyee Cheung) [#​46824](https://togithub.com/nodejs/node/pull/46824) - \[[`d759d4f631`](https://togithub.com/nodejs/node/commit/d759d4f631)] - **src**: remove unnecessary temporary creation (Jason) [#​48734](https://togithub.com/nodejs/node/pull/48734) - \[[`409cc692db`](https://togithub.com/nodejs/node/commit/409cc692db)] - **src**: fix nullptr access on realm (Jan Olaf Krems) [#​48802](https://togithub.com/nodejs/node/pull/48802) - \[[`07d0fd61b1`](https://togithub.com/nodejs/node/commit/07d0fd61b1)] - **src**: remove OnScopeLeaveImpl's move assignment overload (Jason) [#​48732](https://togithub.com/nodejs/node/pull/48732) - \[[`41cc3efa23`](https://togithub.com/nodejs/node/commit/41cc3efa23)] - **src**: use string_view for utf-8 string creation (Yagiz Nizipli) [#​48722](https://togithub.com/nodejs/node/pull/48722) - \[[`62a46d9335`](https://togithub.com/nodejs/node/commit/62a46d9335)] - **src,permission**: restrict by default when pm enabled (Rafael Gonzaga) [#​48907](https://togithub.com/nodejs/node/pull/48907) - \[[`099159ce04`](https://togithub.com/nodejs/node/commit/099159ce04)] - **src,tools**: initialize cppgc (Daryl Haresign) [#​48660](https://togithub.com/nodejs/node/pull/48660) - \[[`600c08d197`](https://togithub.com/nodejs/node/commit/600c08d197)] - **stream**: improve WebStreams performance (Raz Luvaton) [#​49089](https://togithub.com/nodejs/node/pull/49089) - \[[`609b25fa99`](https://togithub.com/nodejs/node/commit/609b25fa99)] - **stream**: implement ReadableStream.from (Debadree Chatterjee) [#​48395](https://togithub.com/nodejs/node/pull/48395) - \[[`750cca2738`](https://togithub.com/nodejs/node/commit/750cca2738)] - **test**: use `tmpdir.resolve()` (Livia Medeiros) [#​49128](https://togithub.com/nodejs/node/pull/49128) - \[[`6595367649`](https://togithub.com/nodejs/node/commit/6595367649)] - **test**: use `tmpdir.resolve()` (Livia Medeiros) [#​49127](https://togithub.com/nodejs/node/pull/49127) - \[[`661b055e75`](https://togithub.com/nodejs/node/commit/661b055e75)] - **test**: use `tmpdir.resolve()` in fs tests (Livia Medeiros) [#​49126](https://togithub.com/nodejs/node/pull/49126) - \[[`b3c56d206f`](https://togithub.com/nodejs/node/commit/b3c56d206f)] - **test**: use `tmpdir.resolve()` in fs tests (Livia Medeiros) [#​49125](https://togithub.com/nodejs/node/pull/49125) - \[[`3ddb155d16`](https://togithub.com/nodejs/node/commit/3ddb155d16)] - **test**: fix assertion message in test_async.c (Tobias Nießen) [#​49146](https://togithub.com/nodejs/node/pull/49146) - \[[`1d17c1032d`](https://togithub.com/nodejs/node/commit/1d17c1032d)] - **test**: refactor `test-esm-loader-hooks` for easier debugging (Antoine du Hamel) [#​49131](https://togithub.com/nodejs/node/pull/49131) - \[[`13bd7a0293`](https://togithub.com/nodejs/node/commit/13bd7a0293)] - **test**: add `tmpdir.resolve()` (Livia Medeiros) [#​49079](https://togithub.com/nodejs/node/pull/49079) - \[[`89b1bce56d`](https://togithub.com/nodejs/node/commit/89b1bce56d)] - **test**: document `fixtures.fileURL()` (Livia Medeiros) [#​49083](https://togithub.com/nodejs/node/pull/49083) - \[[`2fcb855c76`](https://togithub.com/nodejs/node/commit/2fcb855c76)] - **test**: reduce flakiness of `test-esm-loader-hooks` (Antoine du Hamel) [#​49105](https://togithub.com/nodejs/node/pull/49105) - \[[`7816e040df`](https://togithub.com/nodejs/node/commit/7816e040df)] - **test**: stabilize the inspector-open-dispose test (Chemi Atlow) [#​49000](https://togithub.com/nodejs/node/pull/49000) - \[[`e70e9747e4`](https://togithub.com/nodejs/node/commit/e70e9747e4)] - **test**: print instruction for creating missing snapshot in assertSnapshot (Raz Luvaton) [#​48914](https://togithub.com/nodejs/node/pull/48914) - \[[`669ac03520`](https://togithub.com/nodejs/node/commit/669ac03520)] - **test**: add `tmpdir.fileURL()` (Livia Medeiros) [#​49040](https://togithub.com/nodejs/node/pull/49040) - \[[`b945d7be35`](https://togithub.com/nodejs/node/commit/b945d7be35)] - **test**: use `spawn` and `spawnPromisified` instead of `exec` (Antoine du Hamel) [#​48991](https://togithub.com/nodejs/node/pull/48991) - \[[`b3a7427583`](https://togithub.com/nodejs/node/commit/b3a7427583)] - **test**: refactor `test-node-output-errors` (Antoine du Hamel) [#​48992](https://togithub.com/nodejs/node/pull/48992) - \[[`6c3e5c4d69`](https://togithub.com/nodejs/node/commit/6c3e5c4d69)] - **test**: use `fixtures.fileURL` when appropriate (Antoine du Hamel) [#​48990](https://togithub.com/nodejs/node/pull/48990) - \[[`9138b78bcb`](https://togithub.com/nodejs/node/commit/9138b78bcb)] - **test**: validate error code rather than message (Antoine du Hamel) [#​48972](https://togithub.com/nodejs/node/pull/48972) - \[[`b4ca4a6f80`](https://togithub.com/nodejs/node/commit/b4ca4a6f80)] - **test**: fix snapshot tests when cwd contains spaces or backslashes (Antoine du Hamel) [#​48959](https://togithub.com/nodejs/node/pull/48959) - \[[`d4398d458c`](https://togithub.com/nodejs/node/commit/d4398d458c)] - **test**: order `common.mjs` in ASCII order (Antoine du Hamel) [#​48960](https://togithub.com/nodejs/node/pull/48960) - \[[`b5991f5250`](https://togithub.com/nodejs/node/commit/b5991f5250)] - **test**: fix some assumptions in tests (Antoine du Hamel) [#​48958](https://togithub.com/nodejs/node/pull/48958) - \[[`62e23f83f9`](https://togithub.com/nodejs/node/commit/62e23f83f9)] - **test**: improve internal/worker/io.js coverage (Yoshiki Kurihara) [#​42387](https://togithub.com/nodejs/node/pull/42387) - \[[`314bd6095c`](https://togithub.com/nodejs/node/commit/314bd6095c)] - **test**: fix `es-module/test-esm-initialization` (Antoine du Hamel) [#​48880](https://togithub.com/nodejs/node/pull/48880) - \[[`3680a66df4`](https://togithub.com/nodejs/node/commit/3680a66df4)] - **test**: validate host with commas on url.parse (Yagiz Nizipli) [#​48878](https://togithub.com/nodejs/node/pull/48878) - \[[`24c3742372`](https://togithub.com/nodejs/node/commit/24c3742372)] - **test**: delete test-net-bytes-per-incoming-chunk-overhead (Michaël Zasso) [#​48811](https://togithub.com/nodejs/node/pull/48811) - \[[`e01cce50f5`](https://togithub.com/nodejs/node/commit/e01cce50f5)] - **test**: skip experimental test with pointer compression (Colin Ihrig) [#​48738](https://togithub.com/nodejs/node/pull/48738) - \[[`d5e93b1074`](https://togithub.com/nodejs/node/commit/d5e93b1074)] - **test**: fix flaky test-string-decode.js on x86 (Stefan Stojanovic) [#​48750](https://togithub.com/nodejs/node/pull/48750) - \[[`9136667d7d`](https://togithub.com/nodejs/node/commit/9136667d7d)] - **test_runner**: dont set exit code on todo tests (Moshe Atlow) [#​48929](https://togithub.com/nodejs/node/pull/48929) - \[[`52c94908c0`](https://togithub.com/nodejs/node/commit/52c94908c0)] - **test_runner**: fix todo and only in spec reporter (Moshe Atlow) [#​48929](https://togithub.com/nodejs/node/pull/48929) - \[[`5ccfb8d515`](https://togithub.com/nodejs/node/commit/5ccfb8d515)] - **test_runner**: unwrap error message in TAP reporter (Colin Ihrig) [#​48942](https://togithub.com/nodejs/node/pull/48942) - \[[`fa19b0ed05`](https://togithub.com/nodejs/node/commit/fa19b0ed05)] - **test_runner**: add `__proto__` null (Raz Luvaton) [#​48663](https://togithub.com/nodejs/node/pull/48663) - \[[`65d23940bf`](https://togithub.com/nodejs/node/commit/65d23940bf)] - **test_runner**: fix async callback in describe not awaited (Raz Luvaton) [#​48856](https://togithub.com/nodejs/node/pull/48856) - \[[`4bd5e55b43`](https://togithub.com/nodejs/node/commit/4bd5e55b43)] - **test_runner**: fix test_runner `test:fail` event type (Ethan Arrowood) [#​48854](https://togithub.com/nodejs/node/pull/48854) - \[[`41058beed8`](https://togithub.com/nodejs/node/commit/41058beed8)] - **test_runner**: call abort on test finish (Raz Luvaton) [#​48827](https://togithub.com/nodejs/node/pull/48827) - \[[`821b11a59f`](https://togithub.com/nodejs/node/commit/821b11a59f)] - **tls**: fix bugs of double TLS (rogertyang) [#​48969](https://togithub.com/nodejs/node/pull/48969) - \[[`4439327e73`](https://togithub.com/nodejs/node/commit/4439327e73)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#​49122](https://togithub.com/nodejs/node/pull/49122) - \[[`21dc844309`](https://togithub.com/nodejs/node/commit/21dc844309)] - **tools**: use spec reporter in actions (Moshe Atlow) [#​49129](https://togithub.com/nodejs/node/pull/49129) - \[[`3471758696`](https://togithub.com/nodejs/node/commit/3471758696)] - **tools**: use [@​reporters/github](https://togithub.com/reporters/github) when running in github actions (Moshe Atlow) [#​49129](https://togithub.com/nodejs/node/pull/49129) - \[[`95a6e7661e`](https://togithub.com/nodejs/node/commit/95a6e7661e)] - **tools**: add [@​reporters/github](https://togithub.com/reporters/github) to tools (Moshe Atlow) [#​49129](https://togithub.com/nodejs/node/pull/49129) - \[[`995cbf93eb`](https://togithub.com/nodejs/node/commit/995cbf93eb)] - **tools**: update eslint to 8.47.0 (Node.js GitHub Bot) [#​49124](https://togithub.com/nodejs/node/pull/49124) - \[[`ed065bc56e`](https://togithub.com/nodejs/node/commit/ed065bc56e)] - **tools**: update lint-md-dependencies to rollup@3.27.2 (Node.js GitHub Bot) [#​49035](https://togithub.com/nodejs/node/pull/49035) - \[[`a5f37178ad`](https://togithub.com/nodejs/node/commit/a5f37178ad)] - **tools**: limit the number of auto start CIs (Antoine du Hamel) [#​49067](https://togithub.com/nodejs/node/pull/49067) - \[[`c1bd680f89`](https://togithub.com/nodejs/node/commit/c1bd680f89)] - **tools**: update eslint to 8.46.0 (Node.js GitHub Bot) [#​48966](https://togithub.com/nodejs/node/pull/48966) - \[[`e09a6b4821`](https://togithub.com/nodejs/node/commit/e09a6b4821)] - **tools**: update lint-md-dependencies to rollup@3.27.0 (Node.js GitHub Bot) [#​48965](https://togithub.com/nodejs/node/pull/48965) - \[[`0cd2393bd9`](https://togithub.com/nodejs/node/commit/0cd2393bd9)] - **tools**: update lint-md-dependencies to rollup@3.26.3 (Node.js GitHub Bot) [#​48888](https://togithub.com/nodejs/node/pull/48888) - \[[`41929a2906`](https://togithub.com/nodejs/node/commit/41929a2906)] - **tools**: update lint-md-dependencies to [@​rollup/plugin-commonjs](https://togithub.com/rollup/plugin-commonjs)[@​25](https://togithub.com/25).0.3 (Node.js GitHub Bot) [#​48791](https://togithub.com/nodejs/node/pull/48791) - \[[`1761bdfbd9`](https://togithub.com/nodejs/node/commit/1761bdfbd9)] - **tools**: update eslint to 8.45.0 (Node.js GitHub Bot) [#​48793](https://togithub.com/nodejs/node/pull/48793) - \[[`b82f05cc4b`](https://togithub.com/nodejs/node/commit/b82f05cc4b)] - **typings**: update JSDoc for `cwd` in `child_process` (LiviaMedeiros) [#​49029](https://togithub.com/nodejs/node/pull/49029) - \[[`be7b511255`](https://togithub.com/nodejs/node/commit/be7b511255)] - **typings**: sync JSDoc with the actual implementation (Hyunjin Kim) [#​48853](https://togithub.com/nodejs/node/pull/48853) - \[[`45c860035d`](https://togithub.com/nodejs/node/commit/45c860035d)] - **url**: overload `canParse` V8 fast api method (Yagiz Nizipli) [#​48993](https://togithub.com/nodejs/node/pull/48993) - \[[`60d614157b`](https://togithub.com/nodejs/node/commit/60d614157b)] - **url**: fix `isURL` detection by checking `path` (Zhuo Zhang) [#​48928](https://togithub.com/nodejs/node/pull/48928) - \[[`b12c3b5240`](https://togithub.com/nodejs/node/commit/b12c3b5240)] - **url**: ensure getter access do not mutate observable symbols (Antoine du Hamel) [#​48897](https://togithub.com/nodejs/node/pull/48897) - \[[`30fb7b7535`](https://togithub.com/nodejs/node/commit/30fb7b7535)] - **url**: reduce `pathToFileURL` cpp calls (Yagiz Nizipli) [#​48709](https://togithub.com/nodejs/node/pull/48709) - \[[`c3dbd0c1e4`](https://togithub.com/nodejs/node/commit/c3dbd0c1e4)] - **util**: use `primordials.ArrayPrototypeIndexOf` instead of mutable method (DaisyDogs07) [#​48586](https://togithub.com/nodejs/node/pull/48586) - \[[`b79b2927ca`](https://togithub.com/nodejs/node/commit/b79b2927ca)] - **watch**: decrease debounce rate (Moshe Atlow) [#​48926](https://togithub.com/nodejs/node/pull/48926) - \[[`a12996298e`](https://togithub.com/nodejs/node/commit/a12996298e)] - **watch**: use debounce instead of throttle (Moshe Atlow) [#​48926](https://togithub.com/nodejs/node/pull/48926) ### [`v20.5.1`](https://togithub.com/nodejs/node/releases/tag/v20.5.1): 2023-08-09, Version 20.5.1 (Current), @​RafaelGSS [Compare Source](https://togithub.com/nodejs/node/compare/v20.5.0...v20.5.1) This is a security release. ##### Notable Changes The following CVEs are fixed in this release: - [CVE-2023-32002](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32002): Policies can be bypassed via Module.\_load (High) - [CVE-2023-32558](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32558): process.binding() can bypass the permission model through path traversal (High) - [CVE-2023-32004](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32004): Permission model can be bypassed by specifying a path traversal sequence in a Buffer (High) - [CVE-2023-32006](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32006): Policies can be bypassed by module.constructor.createRequire (Medium) - [CVE-2023-32559](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32559): Policies can be bypassed via process.binding (Medium) - [CVE-2023-32005](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32005): fs.statfs can bypass the permission model (Low) - [CVE-2023-32003](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-32003): fs.mkdtemp() and fs.mkdtempSync() can bypass the permission model (Low) - OpenSSL Security Releases - [OpenSSL security advisory 14th July](https://mta.openssl.org/pipermail/openssl-announce/2023-July/000264.html). - [OpenSSL security advisory 19th July](https://mta.openssl.org/pipermail/openssl-announce/2023-July/000265.html). - [OpenSSL security advisory 31st July](https://mta.openssl.org/pipermail/openssl-announce/2023-July/000267.html) More detailed information on each of the vulnerabilities can be found in [August 2023 Security Releases](https://nodejs.org/en/blog/vulnerability/august-2023-security-releases/) blog post. ##### Commits - \[[`92300b51b4`](https://togithub.com/nodejs/node/commit/92300b51b4)] - **deps**: update archs files for openssl-3.0.10+quic1 (Node.js GitHub Bot) [#​49036](https://togithub.com/nodejs/node/pull/49036) - \[[`559698abf2`](https://togithub.com/nodejs/node/commit/559698abf2)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.10+quic1 (Node.js GitHub Bot) [#​49036](https://togithub.com/nodejs/node/pull/49036) - \[[`1bf3429e8e`](https://togithub.com/nodejs/node/commit/1bf3429e8e)] - **lib,permission**: restrict process.binding when pm is enabled (RafaelGSS) [nodejs-private/node-private#438](https://togithub.com/nodejs-private/node-private/pull/438) - \[[`98a83a67e6`](https://togithub.com/nodejs/node/commit/98a83a67e6)] - **permission**: ensure to resolve path when calling mkdtemp (RafaelGSS) [nodejs-private/node-private#464](https://togithub.com/nodejs-private/node-private/pull/464) - \[[`1f0cde466b`](https://togithub.com/nodejs/node/commit/1f0cde466b)] - **permission**: handle buffer path on fs calls (RafaelGSS) [nodejs-private/node-private#439](https://togithub.com/nodejs-private/node-private/pull/439) - \[[`bd094d60ea`](https://togithub.com/nodejs/node/commit/bd094d60ea)] - **permission**: handle fstatfs and add pm supported list (RafaelGSS) [nodejs-private/node-private#441](https://togithub.com/nodejs-private/node-private/pull/441) - \[[`7337d21484`](https://togithub.com/nodejs/node/commit/7337d21484)] - **policy**: handle Module.constructor and main.extensions bypass (RafaelGSS) [nodejs-private/node-private#417](https://togithub.com/nodejs-private/node-private/pull/417) - \[[`cf348ec640`](https://togithub.com/nodejs/node/commit/cf348ec640)] - **policy**: disable process.binding() when enabled (Tobias Nießen) [nodejs-private/node-private#397](https://togithub.com/nodejs-private/node-private/pull/397) ### [`v20.5.0`](https://togithub.com/nodejs/node/releases/tag/v20.5.0): 2023-07-18, Version 20.5.0 (Current), @​juanarbol [Compare Source](https://togithub.com/nodejs/node/compare/v20.4.0...v20.5.0) ##### Notable Changes - \[[`45be29d89f`](https://togithub.com/nodejs/node/commit/45be29d89f)] - **doc**: add atlowChemi to collaborators (atlowChemi) [#​48757](https://togithub.com/nodejs/node/pull/48757) - \[[`a316808136`](https://togithub.com/nodejs/node/commit/a316808136)] - **(SEMVER-MINOR)** **events**: allow safely adding listener to abortSignal (Chemi Atlow) [#​48596](https://togithub.com/nodejs/node/pull/48596) - \[[`986b46a567`](https://togithub.com/nodejs/node/commit/986b46a567)] - **fs**: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) [#​48658](https://togithub.com/nodejs/node/pull/48658) - \[[`0ef73ff6f0`](https://togithub.com/nodejs/node/commit/0ef73ff6f0)] - **(SEMVER-MINOR)** **test_runner**: add shards support (Raz Luvaton) [#​48639](https://togithub.com/nodejs/node/pull/48639) ##### Commits - \[[`eb0aba59b8`](https://togithub.com/nodejs/node/commit/eb0aba59b8)] - **bootstrap**: use correct descriptor for Symbol.{dispose,asyncDispose} (Jordan Harband) [#​48703](https://togithub.com/nodejs/node/pull/48703) - \[[`e2d0195dcf`](https://togithub.com/nodejs/node/commit/e2d0195dcf)] - **bootstrap**: hide experimental web globals with flag kNoBrowserGlobals (Chengzhong Wu) [#​48545](https://togithub.com/nodejs/node/pull/48545) - \[[`67a1018389`](https://togithub.com/nodejs/node/commit/67a1018389)] - **build**: do not pass target toolchain flags to host toolchain (Ivan Trubach) [#​48597](https://togithub.com/nodejs/node/pull/48597) - \[[`7d843bb942`](https://togithub.com/nodejs/node/commit/7d843bb942)] - **child_process**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`4e08160f8c`](https://togithub.com/nodejs/node/commit/4e08160f8c)] - **child_process**: support `Symbol.dispose` (Moshe Atlow) [#​48551](https://togithub.com/nodejs/node/pull/48551) - \[[`ef7728bf36`](https://togithub.com/nodejs/node/commit/ef7728bf36)] - **deps**: update nghttp2 to 1.55.1 (Node.js GitHub Bot) [#​48790](https://togithub.com/nodejs/node/pull/48790) - \[[`1454f02499`](https://togithub.com/nodejs/node/commit/1454f02499)] - **deps**: update nghttp2 to 1.55.0 (Node.js GitHub Bot) [#​48746](https://togithub.com/nodejs/node/pull/48746) - \[[`fa94debf46`](https://togithub.com/nodejs/node/commit/fa94debf46)] - **deps**: update minimatch to 9.0.3 (Node.js GitHub Bot) [#​48704](https://togithub.com/nodejs/node/pull/48704) - \[[`c73cfcc144`](https://togithub.com/nodejs/node/commit/c73cfcc144)] - **deps**: update acorn to 8.10.0 (Node.js GitHub Bot) [#​48713](https://togithub.com/nodejs/node/pull/48713) - \[[`b7a076a052`](https://togithub.com/nodejs/node/commit/b7a076a052)] - **deps**: V8: cherry-pick [`cb00db4`](https://togithub.com/nodejs/node/commit/cb00db4dba6c) (Keyhan Vakil) [#​48671](https://togithub.com/nodejs/node/pull/48671) - \[[`150e15536b`](https://togithub.com/nodejs/node/commit/150e15536b)] - **deps**: upgrade npm to 9.8.0 (npm team) [#​48665](https://togithub.com/nodejs/node/pull/48665) - \[[`c47b2cbd35`](https://togithub.com/nodejs/node/commit/c47b2cbd35)] - **dgram**: socket add `asyncDispose` (atlowChemi) [#​48717](https://togithub.com/nodejs/node/pull/48717) - \[[`002ce31cca`](https://togithub.com/nodejs/node/commit/002ce31cca)] - **dgram**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`45be29d89f`](https://togithub.com/nodejs/node/commit/45be29d89f)] - **doc**: add atlowChemi to collaborators (atlowChemi) [#​48757](https://togithub.com/nodejs/node/pull/48757) - \[[`69b55d2261`](https://togithub.com/nodejs/node/commit/69b55d2261)] - **doc**: fix ambiguity in http.md and https.md (an5er) [#​48692](https://togithub.com/nodejs/node/pull/48692) - \[[`caccb051c7`](https://togithub.com/nodejs/node/commit/caccb051c7)] - **doc**: clarify transform.\_transform() callback argument logic (Rafael Sofi-zada) [#​48680](https://togithub.com/nodejs/node/pull/48680) - \[[`999ae0c8c3`](https://togithub.com/nodejs/node/commit/999ae0c8c3)] - **doc**: fix copy node executable in Windows (Yoav Vainrich) [#​48624](https://togithub.com/nodejs/node/pull/48624) - \[[`7daefaeb44`](https://togithub.com/nodejs/node/commit/7daefaeb44)] - **doc**: drop \ of v20 changelog (Rafael Gonzaga) [#​48649](https://togithub.com/nodejs/node/pull/48649) - \[[`dd7ea3e1df`](https://togithub.com/nodejs/node/commit/dd7ea3e1df)] - **doc**: mention git node release prepare (Rafael Gonzaga) [#​48644](https://togithub.com/nodejs/node/pull/48644) - \[[`cc7809df21`](https://togithub.com/nodejs/node/commit/cc7809df21)] - **esm**: fix emit deprecation on legacy main resolve (Antoine du Hamel) [#​48664](https://togithub.com/nodejs/node/pull/48664) - \[[`67b13d1dba`](https://togithub.com/nodejs/node/commit/67b13d1dba)] - **events**: fix bug listenerCount don't compare wrapped listener (yuzheng14) [#​48592](https://togithub.com/nodejs/node/pull/48592) - \[[`a316808136`](https://togithub.com/nodejs/node/commit/a316808136)] - **(SEMVER-MINOR)** **events**: allow safely adding listener to abortSignal (Chemi Atlow) [#​48596](https://togithub.com/nodejs/node/pull/48596) - \[[`986b46a567`](https://togithub.com/nodejs/node/commit/986b46a567)] - **fs**: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) [#​48658](https://togithub.com/nodejs/node/pull/48658) - \[[`e4333ac41f`](https://togithub.com/nodejs/node/commit/e4333ac41f)] - **http2**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`4a0b66e4f9`](https://togithub.com/nodejs/node/commit/4a0b66e4f9)] - **http2**: send RST code 8 on AbortController signal (Devraj Mehta) [#​48573](https://togithub.com/nodejs/node/pull/48573) - \[[`1295c76fce`](https://togithub.com/nodejs/node/commit/1295c76fce)] - **lib**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`dff6c25a36`](https://togithub.com/nodejs/node/commit/dff6c25a36)] - **meta**: bump actions/checkout from 3.5.2 to 3.5.3 (dependabot\[bot]) [#​48625](https://togithub.com/nodejs/node/pull/48625) - \[[`b5cb69ceaa`](https://togithub.com/nodejs/node/commit/b5cb69ceaa)] - **meta**: bump step-security/harden-runner from 2.4.0 to 2.4.1 (dependabot\[bot]) [#​48626](https://togithub.com/nodejs/node/pull/48626) - \[[`332e480b46`](https://togithub.com/nodejs/node/commit/332e480b46)] - **meta**: bump ossf/scorecard-action from 2.1.3 to 2.2.0 (dependabot\[bot]) [#​48628](https://togithub.com/nodejs/node/pull/48628) - \[[`25c5a0aaee`](https://togithub.com/nodejs/node/commit/25c5a0aaee)] - **meta**: bump github/codeql-action from 2.3.6 to 2.20.1 (dependabot\[bot]) [#​48627](https://togithub.com/nodejs/node/pull/48627) - \[[`6406f50ab1`](https://togithub.com/nodejs/node/commit/6406f50ab1)] - **module**: add SourceMap.lineLengths (Isaac Z. Schlueter) [#​48461](https://togithub.com/nodejs/node/pull/48461) - \[[`cfa69bd48c`](https://togithub.com/nodejs/node/commit/cfa69bd48c)] - **net**: server add `asyncDispose` (atlowChemi) [#​48717](https://togithub.com/nodejs/node/pull/48717) - \[[`ac11264cc5`](https://togithub.com/nodejs/node/commit/ac11264cc5)] - **net**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`82d6b13bf6`](https://togithub.com/nodejs/node/commit/82d6b13bf6)] - **permission**: add debug log when inserting fs nodes (Rafael Gonzaga) [#​48677](https://togithub.com/nodejs/node/pull/48677) - \[[`f4333b1cdd`](https://togithub.com/nodejs/node/commit/f4333b1cdd)] - **permission**: v8.writeHeapSnapshot and process.report (Rafael Gonzaga) [#​48564](https://togithub.com/nodejs/node/pull/48564) - \[[`f691dca6c9`](https://togithub.com/nodejs/node/commit/f691dca6c9)] - **readline**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`227e6bd898`](https://togithub.com/nodejs/node/commit/227e6bd898)] - **src**: pass syscall on `fs.readFileSync` fail operation (Yagiz Nizipli) [#​48815](https://togithub.com/nodejs/node/pull/48815) - \[[`a9a4b73653`](https://togithub.com/nodejs/node/commit/a9a4b73653)] - **src**: make BaseObject iteration order deterministic (Joyee Cheung) [#​48702](https://togithub.com/nodejs/node/pull/48702) - \[[`d99ea4845a`](https://togithub.com/nodejs/node/commit/d99ea4845a)] - **src**: remove kEagerCompile for CompileFunction (Keyhan Vakil) [#​48671](https://togithub.com/nodejs/node/pull/48671) - \[[`df363d0010`](https://togithub.com/nodejs/node/commit/df363d0010)] - **src**: deduplicate X509 getter implementations (Tobias Nießen) [#​48563](https://togithub.com/nodejs/node/pull/48563) - \[[`9cf2e1f55b`](https://togithub.com/nodejs/node/commit/9cf2e1f55b)] - **src,lib**: reducing C++ calls of esm legacy main resolve (Vinicius Lourenço) [#​48325](https://togithub.com/nodejs/node/pull/48325) - \[[`daeb21dde9`](https://togithub.com/nodejs/node/commit/daeb21dde9)] - **stream**: fix deadlock when pipeing to full sink (Robert Nagy) [#​48691](https://togithub.com/nodejs/node/pull/48691) - \[[`5a382d02d6`](https://togithub.com/nodejs/node/commit/5a382d02d6)] - **stream**: use addAbortListener (atlowChemi) [#​48550](https://togithub.com/nodejs/node/pull/48550) - \[[`6e82077dd4`](https://togithub.com/nodejs/node/commit/6e82077dd4)] - **test**: deflake test-net-throttle (Luigi Pinca) [#​48599](https://togithub.com/nodejs/node/pull/48599) - \[[`d378b2c822`](https://togithub.com/nodejs/node/commit/d378b2c822)] - **test**: move test-net-throttle to parallel (Luigi Pinca) [#​48599](https://togithub.com/nodejs/node/pull/48599) - \[[`dfa0aee5bf`](https://togithub.com/nodejs/node/commit/dfa0aee5bf)] - ***Revert*** "**test**: remove test-crypto-keygen flaky designation" (Luigi Pinca) [#​48652](https://togithub.com/nodejs/node/pull/48652) - \[[`0ef73ff6f0`](https://togithub.com/nodejs/node/commit/0ef73ff6f0)] - **(SEMVER-MINOR)** **test_runner**: add shards support (Raz Luvaton) [#​48639](https://togithub.com/nodejs/node/pull/48639) - \[[`e2442bb7ef`](https://togithub.com/nodejs/node/commit/e2442bb7ef)] - **timers**: support Symbol.dispose (Moshe Atlow) [#​48633](https://togithub.com/nodejs/node/pull/48633) - \[[`4398ade426`](https://togithub.com/nodejs/node/commit/4398ade426)] - **tools**: run fetch_deps.py with Python 3 (Richard Lau) [#​48729](https://togithub.com/nodejs/node/pull/48729) - \[[`38ce95d054`](https://togithub.com/nodejs/node/commit/38ce95d054)] - **tools**: update doc to unist-util-select@5.0.0 unist-util-visit@5.0.0 (Node.js GitHub Bot) [#​48714](https://togithub.com/nodejs/node/pull/48714) - \[[`b25e78a998`](https://togithub.com/nodejs/node/commit/b25e78a998)] - **tools**: update lint-md-dependencies to rollup@3.26.2 (Node.js GitHub Bot) [#​48705](https://togithub.com/nodejs/node/pull/48705) - \[[`a1f4ff7c59`](https://togithub.com/nodejs/node/commit/a1f4ff7c59)] - **tools**: update eslint to 8.44.0 (Node.js GitHub Bot) [#​48632](https://togithub.com/nodejs/node/pull/48632) - \[[`42dc6eb698`](https://togithub.com/nodejs/node/commit/42dc6eb698)] - **tools**: update lint-md-dependencies to rollup@3.26.0 (Node.js GitHub Bot) [#​48631](https://togithub.com/nodejs/node/pull/48631) - \[[`07bfcc45ab`](https://togithub.com/nodejs/node/commit/07bfcc45ab)] - **url**: fix `canParse` false value when v8 optimizes (Yagiz Nizipli) [#​48817](https://togithub.com/nodejs/node/pull/48817) ### [`v20.4.0`](https://togithub.com/nodejs/node/releases/tag/v20.4.0): 2023-07-05, Version 20.4.0 (Current), @​RafaelGSS [Compare Source](https://togithub.com/nodejs/node/compare/v20.3.1...v20.4.0) ##### Notable Changes ##### Mock Timers The new feature allows developers to write more reliable and predictable tests for time-dependent functionality. It includes `MockTimers` with the ability to mock `setTimeout`, `setInterval` from `globals`, `node:timers`, and `node:timers/promises`. The feature provides a simple API to advance time, enable specific timers, and release all timers. ```mjs import assert from 'node:assert'; import { test } from 'node:test'; test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => { const fn = context.mock.fn(); // Optionally choose what to mock context.mock.timers.enable(['setTimeout']); const nineSecs = 9000; setTimeout(fn, nineSecs); const threeSeconds = 3000; context.mock.timers.tick(threeSeconds); context.mock.timers.tick(threeSeconds); context.mock.timers.tick(threeSeconds); assert.strictEqual(fn.mock.callCount(), 1); }); ``` This feature was contributed by Erick Wendel in [#​47775](https://togithub.com/nodejs/node/pull/47775). ##### Support to the explicit resource management proposal Node is adding support to the [explicit resource management](https://togithub.com/tc39/proposal-explicit-resource-management) proposal to its resources allowing users of TypeScript/babel to use `using`/`await using` with V8 support for everyone else on the way. This feature was contributed by Moshe Atlow and Benjamin Gruenbaum in [#​48518](https://togithub.com/nodejs/node/pull/48518). ##### Other notable changes - \[[`fe333d2584`](https://togithub.com/nodejs/node/commit/fe333d2584)] - **crypto**: update root certificates to NSS 3.90 (Node.js GitHub Bot) [#​48416](https://togithub.com/nodejs/node/pull/48416) - \[[`60c2ea4e79`](https://togithub.com/nodejs/node/commit/60c2ea4e79)] - **doc**: add vmoroz to collaborators (Vladimir Morozov) [#​48527](https://togithub.com/nodejs/node/pull/48527) - \[[`5cacdf9e6b`](https://togithub.com/nodejs/node/commit/5cacdf9e6b)] - **doc**: add kvakil to collaborators (Keyhan Vakil) [#​48449](https://togithub.com/nodejs/node/pull/48449) - \[[`504d1d7bdc`](https://togithub.com/nodejs/node/commit/504d1d7bdc)] - **(SEMVER-MINOR)** **tls**: add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) [#​45190](https://togithub.com/nodejs/node/pull/45190) ##### Commits - \[[`8a611a387f`](https://togithub.com/nodejs/node/commit/8a611a387f)] - **benchmark**: add bar.R (Rafael Gonzaga) [#​47729](https://togithub.com/nodejs/node/pull/47729) - \[[`12fa716cf9`](https://togithub.com/nodejs/node/commit/12fa716cf9)] - **benchmark**: refactor crypto oneshot (Filip Skokan) [#​48267](https://togithub.com/nodejs/node/pull/48267) - \[[`d6ecbde592`](https://togithub.com/nodejs/node/commit/d6ecbde592)] - **benchmark**: add crypto.create\*Key (Filip Skokan) [#​48284](https://togithub.com/nodejs/node/pull/48284) - \[[`e60b6dedd8`](https://togithub.com/nodejs/node/commit/e60b6dedd8)] - **bootstrap**: unify snapshot builder and embedder entry points (Joyee Cheung) [#​48242](https://togithub.com/nodejs/node/pull/48242) - \[[`40662957b1`](https://togithub.com/nodejs/node/commit/40662957b1)] - **bootstrap**: simplify initialization of source map handlers (Joyee Cheung) [#​48304](https://togithub.com/nodejs/node/pull/48304) - \[[`6551538079`](https://togithub.com/nodejs/node/commit/6551538079)] - **build**: fix `configure --link-module` (Richard Lau) [#​48522](https://togithub.com/nodejs/node/pull/48522) - \[[`f7f32089e7`](https://togithub.com/nodejs/node/commit/f7f32089e7)] - **build**: sync libuv header change (Jiawen Geng) [#​48429](https://togithub.com/nodejs/node/pull/48429) - \[[`f60205c915`](https://togithub.com/nodejs/node/commit/f60205c915)] - **build**: update action to close stale PRs (Michael Dawson) [#​48196](https://togithub.com/nodejs/node/pull/48196) - \[[`4f4d0b802e`](https://togithub.com/nodejs/node/commit/4f4d0b802e)] - **child_process**: improve spawn performance on Linux (Keyhan Vakil) [#​48523](https://togithub.com/nodejs/node/pull/48523) - \[[`fe333d2584`](https://togithub.com/nodejs/node/commit/fe333d2584)] - **crypto**: update root certificates to NSS 3.90 (Node.js GitHub Bot) [#​48416](https://togithub.com/nodejs/node/pull/48416) - \[[`89aaf16237`](https://togithu

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

balena-renovate[bot] commented 1 year ago

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 20.x releases. But if you manually upgrade to 20.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.