Update Node.js to v19 - autoclosed #313
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/node-19.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
16.20.2-bullseye
->19.9.0-bullseye
Release Notes
nodejs/node (node)
v19.9.0
: 2023-04-10, Version 19.9.0 (Current), @RafaelGSSCompare Source
Notable Changes
Tracing Channel in diagnostic_channel
TracingChannel
adds a new, high-performance channel to publish tracing data about the timing and purpose of function executions.Contributed by Stephen Belanger in #44943
New URL.canParse API
A new API was added to the URL.
URL.canParse
checks if aninput
with an optional base value can be parsed correctlyaccording to WHATWG URL specification.
Contributed by Khafra in #47179
Other notable changes
events:
msi:
node-api:
stream:
test_runner:
Commits
v19.8.1
: 2023-03-15, Version 19.8.1 (Current), @targosCompare Source
Notable Changes
This release contains a single revert of a change that was introduced in v19.8.0
and introduced application crashes.
Fixes: #47096
Commits
v19.7.0
: 2023-02-21, Version 19.7.0 (Current), @MylesBorinsCompare Source
Notable Changes
Commits
v19.6.1
: 2023-02-16, Version 19.6.1 (Current), @RafaelGSSCompare Source
This is a security release.
Notable Changes
The following CVEs are fixed in this release:
process.mainModule.require
(High)More detailed information on each of the vulnerabilities can be found in February 2023 Security Releases blog post.
This security release includes OpenSSL security updates as outlined in the recent
OpenSSL security advisory and
undici
security update.Commits
v19.6.0
: 2023-02-02, Version 19.6.0 (Current), @ruyadornoCompare Source
Notable changes
ESM: Leverage loaders when resolving subsequent loaders
Loaders now apply to subsequent loaders, for example:
--experimental-loader ts-node --experimental-loader loader-written-in-typescript
.Upgrade npm to 9.4.0
Added
--install-strategy=linked
option for installations similar to pnpm.Other notable changes
Commits
v19.5.0
: 2023-01-24, Version 19.5.0 (Current), @RafaelGSSCompare Source
Notable Changes
Commits
v19.4.0
: 2023-01-06, Version 19.4.0 (Current), @RafaelGSSCompare Source
Notable Changes
Commits
v19.3.0
: 2022-12-14, Version 19.3.0 (Current), @targosCompare Source
Notable Changes
Updated npm to 9.2.0
Based on the list of guidelines we've established on integrating
npm
andnode
,here is a grouped list of the breaking changes with the reasoning as to why they
fit within the guidelines linked above. Note that all the breaking changes were
made in 9.0.0.
All subsequent minor and patch releases after
npm@9.0.0
do not contain anybreaking changes.
Engines
npm
is now compatible with the following semver range for node:^14.17.0 || ^16.13.0 || >=18.0.0
Filesystem
npm
will no longer attempt to modify ownership of files it creates.Auth
registry found in a config file is no longer supported and will throw errors.
Login
sso
,saml
&legacy
have been consolidated into"legacy"
.auth-type
defaults to"web"
login
andadduser
are now separate commands that send different data to the registry.auth-type
config valuesweb
andlegacy
only try their respective methods,npm no longer tries them all and waits to see which one doesn't fail.
Tarball Packing
npm pack
now follows a strict order of operations when applying ignore rules.If a
files
array is present in thepackage.json
, then rules in.gitignore
and
.npmignore
files from the root will be ignored.Display/Debug/Timing Info
HEAD
instead ofmaster
as the default ref.timing
has been removed as a value for--loglevel
.--timing
will show timing information regardless of--loglevel
, except when--silent
.--timing
flag,npm
now writes timing data to a filealongside the debug log data, respecting the
logs-dir
option and fallingback to
<CACHE>/_logs/
dir, instead of directly inside the cache directory.will create a uniquely named
<ID>-timing.json
file, with the<ID>
portionbeing the same as the debug log.
npm
now outputs some json errors on stdout. Previouslynpm
would outputall json formatted errors on stderr, making it difficult to parse as the
stderr stream usually has logs already written to it.
Config/Command Deprecations or Removals
--install-strategy
.npm config set
will no longer accept deprecated or invalid config options.install-links
config defaults to"true"
.node-version
config has been removed.npm-version
config has been removed.npm access
subcommands have been renamed.npm birthday
has been removed.npm set-script
has been removed.npm bin
has been removed (usenpx
ornpm exec
to execute binaries).Other notable changes
Commits
v19.2.0
: 2022-11-29, Version 19.2.0 (Current), @ruyadornoCompare Source
Notable changes
Time zone update
Time zone data has been updated to 2022f. This includes changes to Daylight Savings Time (DST) for Fiji and Mexico. For more information, see https://mm.icann.org/pipermail/tz-announce/2022-October/000075.html.
Other notable changes
File
class (Khafra) #45139url.parse
(Antoine du Hamel) #45576Commits
v19.1.0
: 2022-11-14, Version 19.1.0 (Current), @RafaelGSSCompare Source
Notable changes
Support function mocking on Node.js test runner
The
node:test
module supports mocking during testing via a top-levelmock
object.
Contributed by Colin Ihrig in #45326
fs.watch recursive support on Linux
fs.watch
supports recursive watch using therecursive: true
option.Contributed by Yagiz Nizipli in #45098
Other notable changes
Commits
v19.0.1
: 2022-11-04, Version 19.0.1 (Current), @RafaelGSSCompare Source
This is a security release.
Notable changes
The following CVEs are fixed in this release:
More detailed information on each of the vulnerabilities can be found in November 2022 Security Releases blog post.
Commits
v19.0.0
: 2022-10-18, Version 19.0.0 (Current), @RafaelGSS and @ruyadornoCompare Source
Node.js 19 is here! Highlights include the update of the V8 JavaScript engine to 10.7, HTTP(s)/1.1 KeepAlive enabled by default, and ESM Resolution adjustments.
Node.js 19 will replace Node.js 18 as our ‘Current’ release line when Node.js 18 enters long-term support (LTS) later this month.
As per the release schedule, Node.js 19 will be ‘Current' release for the next 6 months, until April 2023.
Notable Changes
Deprecations and Removals
HTTP(S)/1.1 KeepAlive by default
Starting with this release, Node.js sets
keepAlive
to true by default. This means that any outgoing HTTP(s) connection will automatically use HTTP 1.1 Keep-Alive. The default waiting window is 5 seconds.Enable keep-alive will deliver better throughput as connections are reused by default.
Additionally, the agent is now able to parse the response
Keep-Alive
which the servers might send. This header instructs the client on how much to stay connected.On the other side, the Node.js HTTP server will now automatically disconnect idle clients (which are using HTTP Keep-Alive to reuse the connection) when
close()
is invoked).Node.js HTTP(S)/1.1 requests may experience a better throughput/performance by default.
Contributed by Paolo Insogna in #43522
DTrace/SystemTap/ETW Support were removed
The main reason is the lack of resources from the Node.js team. The complexity to keep the support up-to-date has proved not worth it without a clear plan to support those tools. Hence, an issue was raised in the Node.js repository to assess better support, for
DTrace
in specific.Contributed by Ben Noordhuis in #43651 and #43652
V8 10.7
The V8 engine is updated to version 10.7, which is part of Chromium 107.
This version include a new feature to the JavaScript API:
Intl.NumberFormat
.Intl.NumberFormat
v3 API is a new TC39 ECMA402 stage 3 proposalextend the pre-existing
Intl.NumberFormat
.The V8 update was a contribution by Michaël Zasso in #44741.
llhttp 8.1.0
llhttp has been updated to version 8.1.0. Collectively, this version brings many updates to the llhttp API, introducing new callbacks and allow all callback to be pausable.
Contributed by Paolo Insogna in #44967
Other Notable Changes
Semver-Major Commits
Semver-Minor Commits
Semver-Patch Commits
v18.20.4
: 2024-07-08, Version 18.20.4 'Hydrogen' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
Commits
v18.20.3
: 2024-05-21, Version 18.20.3 'Hydrogen' (LTS), @richardlauCompare Source
Notable Changes
This release fixes a regression introduced in Node.js 18.19.0 where
http.server.close()
was incorrectly closing idle connections.A fix has also been included for compiling Node.js from source with newer versions of Clang.
The list of keys used to sign releases has been synchronized with the current list from the
main
branch.Updated dependencies
Commits
v18.20.2
: 2024-04-10, Version 18.20.2 'Hydrogen' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
child_process.spawn
without shell option enabled on WindowsCommits
v18.20.1
: 2024-04-03, Version 18.20.1 'Hydrogen' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
Commits
v18.20.0
: 2024-03-26, Version 18.20.0 'Hydrogen' (LTS), @richardlauCompare Source
Notable Changes
Added support for import attributes
Support has been added for import attributes, to replace the old import
assertions syntax. This will aid migration by making the new syntax available
across all currently supported Node.js release lines.
This adds the
with
keyword which should be used in place of the previousassert
keyword, which will be removed in a future semver-major Node.jsrelease.
For example,
should be replaced with
For more details, see
Contributed by Nicolò Ribaudo in #51136
and Antoine du Hamel in #50140.
Doc deprecation for
dirent.path
Please use newly added
dirent.parentPath
instead.Contributed by Antoine du Hamel in #50976
and #51020.
Experimental node-api feature flags
Introduces an experimental feature to segregate finalizers that affect GC state.
A new type called
node_api_nogc_env
has been introduced as the const versionof
napi_env
andnode_api_nogc_finalize
as a variant ofnapi_finalize
thataccepts a
node_api_nogc_env
as its first argument.This feature can be turned off by defining
NODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT
.Contributed by Gabriel Schulhof in #50060.
Root certificates updated to NSS 3.98
Certificates added:
Certificates removed:
Updated dependencies
vm: fix V8 compilation cache support for vm.Script
Previously repeated compilation of the same source code using
vm.Script
stopped hitting the V8 compilation cache after v16.x when support for
importModuleDynamically
was added tovm.Script
, resulting in a performanceregression that blocked users (in particular Jest users) from upgrading from
v16.x.
The recent fixes allow the compilation cache to be hit again
for
vm.Script
when--experimental-vm-modules
is not used even in thepresence of the
importModuleDynamically
option, so that users affected by theperformance regression can now upgrade. Ongoing work is also being done to
enable compilation cache support for
vm.CompileFunction
.Contributed by Joyee Cheung in #49950
and #50137.
Commits
v18.19.1
: 2024-02-14, Version 18.19.1 'Hydrogen' (LTS), @RafaelGSS prepared by @marco-ippolitoCompare Source
Notable changes
This is a security release.
Notable changes
Commits
v18.19.0
: 2023-11-29, Version 18.19.0 'Hydrogen' (LTS), @targosCompare Source
Notable Changes
npm updated to v10
After two months of baking time in Node.js 20, npm 10 is backported, so that all
release lines include a supported version of npm. This release includes npm v10.2.3.
Refer to nodejs/Release#884 for the plan to land npm 10.
ESM and customization hook changes
Leverage loaders when resolving subsequent loaders
Loaders now apply to subsequent loaders, for example:
--experimental-loader ts-node --experimental-loader loader-written-in-typescript
.Contributed by Maël Nison in #43772.
New
node:module
APIregister
for module customization hooks; newinitialize
hookThere is a new API
register
available onnode: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 callingregister
from the main thread and passing data, includingMessageChannel
instances.We encourage users to migrate to an approach that uses
--import
withregister
, such as:Using
--import
ensures that the customization hooks are registered before any application code runs, even the entry point.Contributed by João Lenon and Jacob Smith in #46826, Izaak Schroeder and Jacob Smith in #48842 and #48559.
import.meta.resolve
unflaggedIn ES modules,
import.meta.resolve(specifier)
can be used to get an absolute URL string to which
specifier
resolves, similarto
require.resolve
in CommonJS. This aligns Node.js with browsers and other server-side runtimes.Contributed by Guy Bedford in #49028.
--experimental-default-type
flag to flip module defaultsThe new flag
--experimental-default-type
can be used to flip the defaultmodule system used by Node.js. Input that is already explicitly defined as ES
modules or CommonJS, such as by a
package.json
"type"
field or.mjs
/.cjs
file extension or the
--input-type
flag, is unaffected. What is currentlyimplicitly CommonJS would instead be interpreted as ES modules under
--experimental-default-type=module
:String input provided via
--eval
or STDIN, if--input-type
is unspecified.Files ending in
.js
or with no extension, if there is nopackage.json
filepresent in the same folder or any parent folder.
Files ending in
.js
or with no extension, if the nearest parentpackage.json
field lacks atype
field; unless the folder is inside anode_modules
folder.In addition, extensionless files are interpreted as Wasm if
--experimental-wasm-modules
is passed and the file contains the "magic bytes"Wasm header.
Contributed by Geoffrey Booth in #49869.
Other ESM-related changes
Test runner changes
Many changes to the built-in test runner have been backported. This includes
the following additions:
Other notable changes
Commits
v18.18.2
: 2023-10-13, Version 18.18.2 'Hydrogen' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
The following CVEs are fixed in this release:
nghttp2
Security Release (High)undici
Security Release (High)More detailed information on each of the vulnerabilities can be found in October 2023 Security Releases blog post.
Commits
v18.18.1
: 2023-10-10, Version 18.18.1 'Hydrogen' (LTS), @richardlauCompare Source
Notable Changes
This release addresses some regressions that appeared in Node.js 18.18.0:
The libuv 1.45.0 and 1.46.0 updates that were released in Node.js 18.18.0 have been temporarily reverted.
Commits
v18.18.0
: 2023-09-18, Version 18.18.0 'Hydrogen' (LTS), @ruyadornoCompare Source
Notable Changes
Commits
v18.17.1
: 2023-08-09, Version 18.17.1 'Hydrogen' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
The following CVEs are fixed in this release:
More detailed information on each of the vulnerabilities can be found in August 2023 Security Releases blog post.
Commits
v18.17.0
: 2023-07-18, Version 18.17.0 'Hydrogen' (LTS), @danielleadamsCompare Source
Notable Changes
Ada 2.0
Node.js v18.17.0 comes with the latest version of the URL parser, Ada. This update brings significant performance improvements
to URL parsing, including enhancements to the url.domainToASCII and url.domainToUnicode functions in node:url.
Ada 2.0 has been integrated into the Node.js codebase, ensuring that all parts of the application can benefit from the
improved performance. Additionally, Ada 2.0 features a significant performance boost over its predecessor, Ada 1.0.4,
while also eliminating the need for the ICU requirement for URL hostname parsing.
Contributed by Yagiz Nizipli and Daniel Lemire in #47339
Web Crypto API
Web Crypto API functions' arguments are now coerced and validated as per their WebIDL definitions like in other Web Crypto API implementations.
This further improves interoperability with other implementations of Web Crypto API.
Contributed by Filip Skokan in #46067
test
(Chemi Atlow) #47909Commits
v18.16.1
: 2023-06-20, Version 18.16.1 'Hydrogen' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
The following CVEs are fixed in this release:
mainModule.__proto__
Bypass Experimental Policy Mechanism (High)More detailed information on each of the vulnerabilities can be found in June 2023 Security Releases blog post.
Commits
v18.16.0
: 2023-04-12, Version 18.16.0 'Hydrogen' (LTS), @danielleadamsCompare Source
Notable changes
Add initial support for single executable applications
Compile a JavaScript file into a single executable application:
Contributed by Darshan Sen in #45038
Replace url parser with Ada
Node.js gets a new URL parser called Ada that is compliant with the WHATWG URL Specification and provides more than 100% performance improvement to the existing implementation.
Contributed by Yagiz Nizipli in #46410
Other notable changes
Commits
v18.15.0
: 2023-03-07, Version 18.15.0 'Hydrogen' (LTS), @BethGriggs prepared by @juanarbolCompare Source
Notable Changes
Commits
v18.14.2
: 2023-02-21, Version 18.14.2 'Hydrogen' (LTS), @MylesBorinsCompare Source
Notable Changes
Commits
v18.14.1
: 2023-02-16, Version 18.14.1 'Hydrogen' (LTS), @RafaelGSS prepared by @juanarbolCompare Source
This is a security release.
Notable Changes
The following CVEs are fixed in this release:
More detailed information on each of the vulnerabilities can be found in February 2023 Security Releases blog post.
This security release includes OpenSSL security updates as outlined in the recent
OpenSSL security advisory.
Commits
v18.14.0
: 2023-02-02, Version 18.14.0 'Hydrogen' (LTS), @BethGriggs prepared by @juanarbolCompare Source
Notable changes
Updated npm to 9.3.1
Based on the list of guidelines we've established on integrating
npm
andnode
,here is a grouped list of the breaking changes with the reasoning as to why they
fit within the guidelines linked above. Note that all the breaking changes were
made in 9.0.0.
All subsequent minor and patch releases after
npm@9.0.0
do not contain anybreaking changes.
Engines
npm
is now compatible with the following semver range for node:^14.17.0 || ^16.13.0 || >=18.0.0
Filesystem
npm
will no longer attempt to modify ownership of files it creates.Auth
registry found in a config file is no longer supported and will throw errors.
Login
sso
,saml
&legacy
have been consolidated into"legacy"
.auth-type
defaults to"web"
login
andadduser
are now separate commands that send different data to the registry.auth-type
config valuesweb
andlegacy
only try their respective methods,npm no longer tries them all and waits to see which one doesn't fail.
Tarball Packing
npm pack
now follows a strict order of operations when applying ignore rules.If a
files
array is present in thepackage.json
, then rules in.gitignore
and
.npmignore
files from the root will be ignored.Display/Debug/Timing Info
HEAD
instead ofmaster
as the default ref.timing
has been removed as a value for--loglevel
.--timing
will show timing information regardless of--loglevel
, except when--silent
.--timing
flag,npm
now writes timing data to a filealongside the debug log data, respecting the
logs-dir
option and fallingback to
<CACHE>/_logs/
dir, instead of directly inside the cache directory.will create a uniquely named
<ID>-timing.json
file, with the<ID>
portionbeing the same as the debug log.
npm
now outputs some json errors on stdout. Previouslynpm
would outputall json formatted errors on stderr, making it difficult to parse as the
stderr stream usually has logs already written to it.
Config/Command Deprecations or Removals
--install-strategy
.npm config set
will no longer accept deprecated or invalid config options.install-links
config defaults to"true"
.node-version
config has been removed.npm-version
config has been removed.npm access
subcommands have been renamed.npm birthday
has been removed.npm set-script
has been removed.npm bin
has been removed (usenpx
ornpm exec
to execute binaries).Other notable changes
Commits
v18.13.0
: 2023-01-05, Version 18.13.0 'Hydrogen' (LTS), @danielleadamsCompare Source
Notable changes
Add support for externally shared js builtins
By default Node.js is built so that all dependencies are bundled into the Node.js binary itself. Some Node.js distributions prefer to manage dependencies externally. There are existing build options that allow dependencies with native code to be externalized. This commit adds additional options so that dependencies with JavaScript code (including WASM) can also be externalized. This addition does not affect binaries shipped by the Node.js project but will allow other distributions to externalize additional dependencies when needed.
Contributed by Michael Dawson in #44376
Introduce
File
The File class is part of the FileAPI. It can be used anywhere a Blob can, for example in
URL.createObjectURL
andFormData
. It contains two properties that Blobs do not have:lastModified
, the last time the file was modified in ms, andname
, the name of the file.Contributed by Khafra in #45139
Support function mocking on Node.js test runner
The
node:test
module supports mocking during testing via a top-levelmock
object.
Contributed by Colin Ihrig in #45326
Other notable changes
url.parse
(Antoine du Hamel) #45576Commits
v18.12.1
: 2022-11-04, Version 18.12.1 'Hydrogen' (LTS), @juanarbolCompare Source
This is a security release.
Notable changes
The following CVEs are fixed in this release:
More detailed information on each of the vulnerabilities can be found in November 2022 Security Releases blog post.
Commits
v18.12.0
: 2022-10-25, Version 18.12.0 'Hydrogen' (LTS), @ruyadorno and @RafaelGSSCompare Source
Notable Changes
This release marks the transition of Node.js 18.x into Long Term Support (LTS)
with the codename 'Hydrogen'. The 18.x release line now moves into "Active LTS"
and will remain so until October 2023. After that time, it will move into
"Maintenance" until end of life in April 2025.
v18.11.0
: 2022-10-13, Version 18.11.0 (Current), @danielleadamsCompare Source
Notable changes
watch mode (experimental)
Running in 'watch' mode using
node --watch
restarts the process when an imported file is changed.Contributed by Moshe Atlow in #44366
Other notable changes
FileHandle.prototype.readLines
(Antoine du Hamel) #42590Commits
v18.10.0
: 2022-09-28, Version 18.10.0 (Current), @RafaelGSSCompare Source
Notable changes
policy
docs to thepermissions
scope (Rafael Gonzaga) #44222ReadableByteStream.tee()
(Daeyeon Jeong) #44505Commits
v18.9.1
: 2022-09-23, Version 18.9.1 (Current), @RafaelGSSCompare Source
This is a security release.
Notable changes
The following CVEs are fixed in this release:
More detailed information on each of the vulnerabilities can be found in September 22nd 2022 Security Releases blog post.
llhttp updated to 6.0.10
llhttp
is updated to 6.0.10 which includes fixes for the following vulnerabilities.llhttp
parser in thehttp
module does not correctly parse and validate Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).llhttp
parser in thehttp
module does not correctly handle multi-line Transfer-Encoding headers. This can lead to HTTP Request Smuggling (HRS).http
does not correctly handle header fields that are not terminated with CLRF. This can lead to HTTP Request Smuggling (HRS).Commits
v18.9.0
: 2022-09-08, Version 18.9.0 (Current), @RafaelGSSCompare Source
Notable changes
Commits
v18.8.0
: 2022-08-24, Version 18.8.0 (Current), @ruyadornoCompare Source
Notable changes
bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob
This patch introduces
--build-snapshot
and--snapshot-blob
options for creating and using user land snapshots.To generate a snapshot using snapshot.js as an entry point and write the snapshot blob to snapshot.blob:
To restore application state from snapshot.blob, with index.js as the entry point script for the deserialized application:
Users can also use the
v8.startupSnapshot
API to specify an entry point at snapshot building time, thus avoiding the need of an additional entry script at deserialization time:Contributed by Joyee Cheung in #38905
Other notable changes
npm query
command--trace-atomics-wait
(Keyhan Vakil) #44093tlsClientError
(Daeyeon Jeong) #44021Commits
v18.7.0
: 2022-07-26, Version 18.7.0 (Current), @danielleadamsCompare Source
Notable changes
CustomEvent
(Daeyeon Jeong) #43514Commits
v18.6.0
: 2022-07-13, Version 18.6.0 (Current), @targosCompare Source
Notable Changes
Experimental ESM Loader Hooks API
Node.js ESM Loader hooks now support multiple custom loaders, and composition is
achieved via "chaining":
foo-loader
callsbar-loader
callsqux-loader
(a custom loader must now signal a short circuit when intentionally not
calling the next). See the ESM docs for details.
Real-world use-cases are laid out for end-users with working examples in the
article Custom ESM loaders: Who, what, when, where, why, how.
Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias - #42623
Commits
Semver-minor commits
Semver-patch commits
Documentation commits
Other commits
v18.5.0
: 2022-07-07, Version 18.5.0 (Current), @RafaelGSSCompare Source
This is a security release.
Notable Changes
Commits
v18.4.0
: 2022-06-16, Version 18.4.0 (Current), @danielleadamsCompare Source
Notable Changes
'IPv4'
and'IPv6'
forfamily
(Antoine du Hamel) #43054Commits
v18.3.0
: 2022-06-01, Version 18.3.0 (Current), @benglCompare Source
Notable Changes
Commits
v18.2.0
: 2022-05-17, Version 18.2.0 (Current), @BethGriggs prepared by @RafaelGSSCompare Source
Notable Changes
OpenSSL 3.0.3
This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 18.
See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/ for more information on how the May 2022 OpenSSL releases affect other Node.js release lines.
Other Notable Changes
Commits
v18.1.0
: 2022-05-03, Version 18.1.0 (Current), @targosCompare Source
Notable Changes
Commits
v18.0.0
: 2022-04-19, Version 18.0.0 (Current), @BethGriggsCompare Source
Node.js 18 is here! Highlights include the update of the V8 JavaScript engine to 10.1, global fetch enabled by default, and a core test runner module.
Initially, Node.js 18 will replace Node.js 17 as our ‘Current’ release line. As per the release schedule, Node.js 18 will be the ‘Current’ release for the next 6 months and then promoted to Long-term Support (LTS) in October 2022. Once promoted to long-term support the release will be designated the codename ‘Hydrogen’. Node.js 18 will be supported until April 2025.
Notable Changes
Deprecations and Removals
fs.write
,fs.writeFileSync
(Livia Medeiros) #42607dns.lookup
anddnsPromises.lookup
options type coercion (Antoine du Hamel) #41431fetch (experimental)
An experimental fetch API is available on the global scope by default. The implementation is based upon undici, an HTTP/1.1 client written for Node.js by contributors to the project.
Through this addition, the following globals are made available:
fetch
,FormData
,Headers
,Request
,Response
.Disable this API with the
--no-experimental-fetch
command-line flag.Contributed by Michaël Zasso in #41811.
HTTP Timeouts
server.headersTimeout
which limits the amount of time the parser will wait to receive the complete HTTP headers is now set to60000
(60 seconds) by default.server.requestTimeout
which sets the timeout value in milliseconds for receiving the entire request from the client is now set to300000
(5 minutes) by default.If these timeouts expire, the server responds with status 408 without forwarding the request to the request listener and then closes the connection.
Both timeouts must be set to a non-zero value to protect against potential Denial-of-Service attacks in case the server is deployed without a reverse proxy in front.
Contributed by Paolo Insogna in #41263.
Test Runner module (experimental)
The
node:test
module facilitates the creation of JavaScript tests that report results in TAP format. To access it:import test from 'node:test';
This module is only available under the
node:
scheme.The following is an example implementation of a parent test with two subtests:
Read more in https://nodejs.org/dist/latest-v18.x/docs/api/test.html.
Contributed by Colin Ihrig in #42325.
Toolchain and Compiler Upgrades
Prebuilt binaries for 32-bit Windows will initially not be available due to issues building the V8 dependency in Node.js. We hope to restore 32-bit Windows binaries for Node.js 18 with a future V8 update.
Node.js does not support running on operating systems that are no longer supported by their vendor. For operating systems where their vendor has planned to end support earlier than April 2025, such as Windows 8.1 (January 2023) and Windows Server 2012 R2 (October 2023), support for Node.js 18 will end at the earlier date.
Full details about the supported toolchains and compilers are documented in the Node.js BUILDING.md file.
Contributed by Richard Lau in #42292, #42604 and #42659,and Michaël Zasso in #42105 and #42666.
V8 10.1
The V8 engine is updated to version 10.1, which is part of Chromium 101. Compared to the version included in Node.js 17.9.0, the following new features are included:
findLast
andfindLastIndex
array methods.Intl.Locale
API.Intl.supportedValuesOf
function.The data format returned by the serialization API (
v8.serialize(value)
) has changed, and cannot be deserialized by earlier versions of Node.js. On the other hand, it is still possible to deserialize the previous format, as the API is backwards-compatible.Contributed by Michaël Zasso in #42657.
Web Streams API (experimental)
Node.js now exposes the experimental implementation of the Web Streams API on the global scope. This means the following APIs are now globally available:
ReadableStream
,ReadableStreamDefaultReader
,ReadableStreamBYOBReader
,ReadableStreamBYOBRequest
,ReadableByteStreamController
,ReadableStreamDefaultController
,TransformStream
,TransformStreamDefaultController
,WritableStream
,WritableStreamDefaultWriter
,WritableStreamDefaultController
,ByteLengthQueuingStrategy
,CountQueuingStrategy
,TextEncoderStream
,TextDecoderStream
,CompressionStream
,DecompressionStream
.Contributed James Snell in #39062, and Antoine du Hamel in #42225.
Other Notable Changes
server.address()
return an integer forfamily
(Antoine du Hamel) #41431Semver-Major Commits
Semver-Minor Commits
Semver-Patch Commits
v17.9.1
: 2022-06-01, Version 17.9.1 (Current), @ruyadornoCompare Source
Notable Changes
Update to OpenSSL 3.0.3
This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 17.
See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/ for more information on how the May 2022 OpenSSL releases affect other Node.js release lines.
Commits
v17.9.0
: 2022-04-07, Version 17.9.0 (Current), @BethGriggs prepared by @juanarbolCompare Source
Notable Changes
Commits
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 becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.
Update node Docker tag to v19to Update Node.js to v19Update Node.js to v19to Update Node.js to v19 - autoclosedPull request closed