chore(deps): update all dependencies #11
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/all"
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:
17.0.35
->22.9.3
16.6.0
->16.9.0
16-alpine
->22-alpine
16-alpine
->22-alpine
8.4.16
->8.4.49
3.1.8
->3.4.15
4.7.2
->5.7.2
Release Notes
graphql/graphql-js (graphql)
v16.9.0
Compare Source
v16.9.0 (2024-06-21)
New Feature 🚀
@oneOf
directive (@benjie)Committers: 1
v16.8.2
Compare Source
v16.8.2 (2024-06-12)
Bug Fix 🐞
globalThis
check and align with what bundlers can accept (@JoviDeCroock)Internal 🏠
Committers: 2
v16.8.1
Compare Source
v16.8.1 (2023-09-19)
Bug Fix 🐞
Committers: 1
v16.8.0
Compare Source
v16.8.0 (2023-08-14)
New Feature 🚀
Committers: 1
v16.7.1
Compare Source
v16.7.1 (2023-06-22)
📢 Big shout out to @phryneas, who managed to reproduce this issue and come up with this fix.
Bug Fix 🐞
process.env
(@IvanGoncharov)Committers: 1
v16.7.0
Compare Source
v16.7.0 (2023-06-21)
New Feature 🚀
Bug Fix 🐞
Committers: 3
nodejs/node (node)
v22.11.0
: 2024-10-29, Version 22.11.0 'Jod' (LTS), @richardlauCompare Source
Notable Changes
This release marks the transition of Node.js 22.x into Long Term Support (LTS)
with the codename 'Jod'. The 22.x release line now moves into "Active LTS"
and will remain so until October 2025. After that time, it will move into
"Maintenance" until end of life in April 2027.
Other than updating metadata, such as the
process.release
object, to reflectthat the release is LTS, no further changes from Node.js 22.10.0 are included.
OpenSSL 3.x
Official binaries for Node.js 22.x currently include OpenSSL 3.0.x (more
specifically, the quictls OpenSSL fork).
OpenSSL 3.0.x is the currently designated long term support version that is
scheduled to be supported until 7th September 2026, which is within the expected
lifetime of Node.js 22.x. We are expecting upstream OpenSSL to announce a
successor long term support version prior to that date and since OpenSSL now
follows a semantic versioning-like versioning scheme we expect to be able to
update to the next long term supported version of OpenSSL during the lifetime of
Node.js 22.x.
v22.10.0
: 2024-10-16, Version 22.10.0 (Current), @aduh95Compare Source
Notable Changes
New
"module-sync"
exports conditionThis release introduces a
"module-sync"
exports condition that's enabled whenrequire(esm)
is enabled, so packages can supply a synchronous ES module to theNode.js module loader, no matter if it's being required or imported. This is
similar to the
"module"
condition that bundlers have been using to supportrequire(esm)
in Node.js, and allows dual-package authors to opt into ESM-firstonly on newer versions of Node.js that supports
require(esm)
to avoid thedual-package hazard.
Or if the package is only meant to be run on Node.js and wants to fallback to
CJS on older versions that don't have
require(esm)
:For package authors: this only serves as a feature-detection mechanism for
packages that wish to support both CJS and ESM users during the period when some
active Node.js LTS versions support
require(esm)
while some older ones don't.When all active Node.js LTS lines support
require(esm)
, packages can simplifytheir distributions by bumping the major version, dropping their CJS exports,
and removing the
module-sync
exports condition (with onlymain
ordefault
targetting the ESM exports). If the package needs to support both bundlers and
being run unbundled on Node.js during the transition period, use both
module-sync
andmodule
and point them to the same ESM file. If the packagealready doesn't want to support older versions of Node.js that doesn't support
require(esm)
, don't use this export condition.For bundlers/tools: they should avoid implementing this stop-gap condition.
Most existing bundlers implement the de-facto bundler standard
module
exports condition, and that should be enough to support users who want to bundle
ESM from CJS consumers. Users who want both bundlers and Node.js to recognize
the ESM exports can use both
module
/module-sync
conditions during thetransition period, and can drop
module-sync
+module
when they no longer needto support older versions of Node.js. If tools do want to support this
condition, it's recommended to make the resolution rules in the graph pointed by
this condition match the Node.js native ESM rules to avoid divergence.
We ended up implementing a condition with a different name instead of reusing
"module"
, because existing code in the ecosystem using the"module"
condition sometimes also expect the module resolution for these ESM files to
work in CJS style, which is supported by bundlers, but the native Node.js loader
has intentionally made ESM resolution different from CJS resolution (e.g.
forbidding
import './noext'
orimport './directory'
), so it would bebreaking to implement a
"module"
condition without implementing the forbiddenESM resolution rules. For now, this just implements a new condition as
semver-minor so it can be backported to older LTS.
Contributed by Joyee Cheung in #54648.
node --run
is now stableThis CLI flag runs a specified command from a
package.json
's"scripts"
object.For the following
package.json
:You can run
node --run test
and that would start the test suite.Contributed by Yagiz Nizipli in #53763.
Other notable changes
Commits
v22.9.0
: 2024-09-17, Version 22.9.0 (Current), @RafaelGSSCompare Source
New API to retrieve execution Stack Trace
A new API
getCallSite
has been introduced to theutil
module. This API allows usersto retrieve the stacktrace of the current execution. Example:
Thanks to Rafael Gonzaga for making this work on #54380.
Disable V8 Maglev
We have seen several crashes/unexpected JS behaviors with maglev on v22
(which ships V8 v12.4). The bugs lie in the codegen so it would be difficult for
users to work around them or even figure out where the bugs are coming from.
Some bugs are fixed in the upstream while some others probably remain.
As v22 will get stuck with V8 v12.4 as LTS, it will be increasingly difficult to
backport patches for them even if the bugs are fixed. So disable it by default
on v22 to reduce the churn and troubles for users.
Thanks to Joyee Cheung for making this work on #54384
Exposes X509_V_FLAG_PARTIAL_CHAIN to tls.createSecureContext
This releases introduces a new option to the API
tls.createSecureContext
. Fornow on users can use
tls.createSecureContext({ allowPartialTrustChain: true })
to treat intermediate (non-self-signed) certificates in the trust CA certificate
list as trusted.
Thanks to Anna Henningsen for making this work on #54790
Other Notable Changes
Deprecations
Commits
v22.8.0
: 2024-09-03, Version 22.8.0 (Current), @RafaelGSSCompare Source
New JS API for compile cache
This release adds a new API
module.enableCompileCache()
that can be used to enable on-disk code caching of all modules loaded after this API is called.Previously this could only be enabled by the
NODE_COMPILE_CACHE
environment variable, so it could only set by end-users.This API allows tooling and library authors to enable caching of their own code.
This is a built-in alternative to the v8-compile-cache/v8-compile-cache-lib packages,
but have better performance and supports ESM.
Thanks to Joyee Cheung for working on this.
New option for vm.createContext() to create a context with a freezable globalThis
Node.js implements a flavor of
vm.createContext()
and friends that creates a context without contextifying its globalobject when vm.constants.DONT_CONTEXTIFY is used. This is suitable when users want to freeze the context
(impossible when the global is contextified i.e. has interceptors installed) or speed up the global access if they
don't need the interceptor behavior.
Thanks to Joyee Cheung for working on this.
Support for coverage thresholds
Node.js now supports requiring code coverage to meet a specific threshold before the process exits successfully.
To use this feature, you need to enable the
--experimental-test-coverage
flag.You can set thresholds for the following types of coverage:
--test-coverage-branches=<threshold>
--test-coverage-functions=<threshold>
--test-coverage-lines=<threshold>
<threshold>
should be an integer between 0 and 100. If an invalid value is provided, aTypeError
will be thrown.If the code coverage fails to meet the specified thresholds for any category, the process will exit with code
1
.For instance, to enforce a minimum of 80% line coverage and 60% branch coverage, you can run:
Thanks Aviv Keller for working on this.
Other Notable Changes
Commits
v22.7.0
: 2024-08-22, Version 22.7.0 (Current), @RafaelGSSCompare Source
Experimental transform types support
With the new flag
--experimental-transform-types
it is possible to enable thetransformation of TypeScript-only syntax into JavaScript code.
This feature allows Node.js to support TypeScript syntax such as
Enum
andnamespace
.Thanks to Marco Ippolito for making this work on #54283.
Module syntax detection is now enabled by default.
Module syntax detection (the
--experimental-detect-module
flag) is nowenabled by default. Use
--no-experimental-detect-module
to disable it ifneeded.
Syntax detection attempts to run ambiguous files as CommonJS, and if the module
fails to parse as CommonJS due to ES module syntax, Node.js tries again and runs
the file as an ES module.
Ambiguous files are those with a
.js
or no extension, where the nearest parentpackage.json
has no"type"
field (either"type": "module"
or"type": "commonjs"
).Syntax detection should have no performance impact on CommonJS modules, but it
incurs a slight performance penalty for ES modules; add
"type": "module"
tothe nearest parent
package.json
file to eliminate the performance cost.A use case unlocked by this feature is the ability to use ES module syntax in
extensionless scripts with no nearby
package.json
.Thanks to Geoffrey Booth for making this work on #53619.
Performance Improvements to Buffer
Performance of Node.js Buffers have been optimized through multiple PR's with significant
improvements to the
Buffer.copy
andBuffer.write
methods. These are used throughoutthe codebase and should give a nice boost across the board.
Thanks to Robert Nagy for making this work on #54311,
#54324, and #54087.
Other Notable Changes
Commits
v22.6.0
: 2024-08-06, Version 22.6.0 (Current), @RafaelGSSCompare Source
Experimental TypeScript support via strip types
Node.js introduces the
--experimental-strip-types
flag for initial TypeScript support.This feature strips type annotations from .ts files, allowing them to run
without transforming TypeScript-specific syntax. Current limitations include:
enums
ornamespaces
.Thanks Marco Ippolito for working on this.
Experimental Network Inspection Support in Node.js
This update introduces the initial support for network inspection in Node.js.
Currently, this is an experimental feature, so you need to enable it using the
--experimental-network-inspection
flag.With this feature enabled, you can inspect network activities occurring within a JavaScript application.
To use network inspection, start your Node.js application with the following command:
Please note that the network inspection capabilities are in active development.
We are actively working on enhancing this feature and will continue to expand its functionality in future updates.
http
andhttps
modules only.feature request on the Chrome DevTools side is addressed.
Thanks Kohei Ueno for working on this.
Other Notable Changes
Commits
v22.5.1
: 2024-07-19, Version 22.5.1 (Current), @richardlauCompare Source
Notable Changes
This release fixes a regression introduced in Node.js 22.5.0. The problem is known to display the following symptoms:
FATAL ERROR: v8::Object::GetCreationContextChecked No creation context available
#53902npm error Exit handler never called!
npm/cli#7657Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)
yarnpkg/berry#6398Commits
v22.5.0
: 2024-07-17, Version 22.5.0 (Current), @RafaelGSS prepared by @aduh95Compare Source
Notable Changes
Commits
v22.4.1
: 2024-07-08, Version 22.4.1 (Current), @RafaelGSSCompare Source
This is a security release.
Notable Changes
Commits
v22.4.0
: 2024-07-02, Version 22.4.0 (Current), @targosCompare Source
Notable Changes
Experimental Web Storage API
API stability updates
Other Notable Changes
Commits
v22.3.0
: 2024-06-11, Version 22.3.0 (Current), @RafaelGSSCompare Source
Notable Changes
Commits
v22.2.0
: 2024-05-15, Version 22.2.0 (Current), @targosCompare Source
Notable Changes
Commits
v22.1.0
: 2024-05-02, Version 22.1.0 (Current), @targos prepared by @aduh95Compare Source
module: implement
NODE_COMPILE_CACHE
for automatic on-disk code cachingThis patch implements automatic on-disk code caching that can be enabled
via an environment variable
NODE_COMPILE_CACHE=/path/to/cache/dir
.When set, whenever Node.js compiles a CommonJS or a ECMAScript Module,
it will use on-disk V8 code cache
persisted in the specified directory
to speed up the compilation. This may slow down the first load of a
module graph, but subsequent loads of the same module graph may get
a significant speedup if the contents of the modules do not change.
Locally, this speeds up loading of
test/fixtures/snapshot/typescript.js
from ~130ms to ~80ms.
To clean up the generated code cache, simply remove the directory.
It will be recreated the next time the same directory is used for
NODE_COMPILE_CACHE
.Compilation cache generated by one version of Node.js may not be used
by a different version of Node.js. Cache generated by different versions
of Node.js will be stored separately if the same directory is used
to persist the cache, so they can co-exist.
Caveat: currently when using this with V8 JavaScript code coverage, the
coverage being collected by V8 may be less precise in functions that are
deserialized from the code cache. It's recommended to turn this off when
running tests to generate precise coverage.
Contributed by Joyee Cheung in #52535.
Other Notable Changes
Commits
v22.0.0
: 2024-04-24, Version 22.0.0 (Current), @RafaelGSS and @marco-ippolitoCompare Source
We're excited to announce the release of Node.js 22!
Highlights include require()ing ESM graphs, WebSocket client, updates of the V8 JavaScript engine, and more!
As a reminder, Node.js 22 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months.
We encourage you to explore the new features and benefits offered by this latest release and evaluate their potential impact on your applications.
Other Notable Changes
Semver-Major Commits
Semver-Minor Commits
Semver-Patch Commits
v20.18.1
: 2024-11-20, Version 20.18.1 'Iron' (LTS), @marco-ippolitoCompare Source
Notable Changes
Commits
v20.18.0
: 2024-10-03, Version 20.18.0 'Iron' (LTS), @targosCompare Source
Notable Changes
Experimental Network Inspection Support in Node.js
This update introduces the initial support for network inspection in Node.js.
Currently, this is an experimental feature, so you need to enable it using the
--experimental-network-inspection
flag.With this feature enabled, you can inspect network activities occurring within a JavaScript application.
To use network inspection, start your Node.js application with the following command:
Please note that the network inspection capabilities are in active development.
We are actively working on enhancing this feature and will continue to expand its functionality in future updates.
http
andhttps
modules only.feature request on the Chrome DevTools side is addressed.
Contributed by Kohei Ueno in #53593 and #54246
Exposes X509_V_FLAG_PARTIAL_CHAIN to tls.createSecureContext
This releases introduces a new option to the API
tls.createSecureContext
. Fromnow on,
tls.createSecureContext({ allowPartialTrustChain: true })
can be usedto treat intermediate (non-self-signed) certificates in the trust CA certificate
list as trusted.
Contributed by Anna Henningsen in #54790
New option for vm.createContext() to create a context with a freezable globalThis
Node.js implements a flavor of
vm.createContext()
and friends that creates a context without contextifying its globalobject when vm.constants.DONT_CONTEXTIFY is used. This is suitable when users want to freeze the context
(impossible when the global is contextified i.e. has interceptors installed) or speed up the global access if they
don't need the interceptor behavior.
Contributed by Joyee Cheung in #54394
Deprecations
Other Notable Changes
Commits
v20.17.0
: 2024-08-21, Version 20.17.0 'Iron' (LTS), @marco-ippolitoCompare Source
module: support require()ing synchronous ESM graphs
This release adds
require()
support for synchronous ESM graphs underthe flag
--experimental-require-module
.If
--experimental-require-module
is enabled, and the ECMAScriptmodule being loaded by
require()
meets the following requirements:require()
will load the requested module as an ES Module, and returnthe module name space object. In this case it is similar to dynamic
import()
but is run synchronously and returns the name space objectdirectly.
Contributed by Joyee Cheung in #51977
path: add
matchesGlob
methodGlob patterns can now be tested against individual paths via the
path.matchesGlob(path, pattern)
method.Contributed by Aviv Keller in #52881
stream: expose DuplexPair API
The function
duplexPair
returns an array with two items,each being a
Duplex
stream connected to the other side:Whatever is written to one stream is made readable on the other. It provides
behavior analogous to a network connection, where the data written by the client
becomes readable by the server, and vice-versa.
Contributed by Austin Wright in #34111
Other Notable Changes
Commits
v20.16.0
: 2024-07-24, Version 20.16.0 'Iron' (LTS), @marco-ippolitoCompare Source
process: add process.getBuiltinModule(id)
process.getBuiltinModule(id)
provides a way to load built-in modulesin a globally available function. ES Modules that need to support
other environments can use it to conditionally load a Node.js built-in
when it is run in Node.js, without having to deal with the resolution
error that can be thrown by
import
in a non-Node.js environment orhaving to use dynamic
import()
which either turns the module intoan asynchronous module, or turns a synchronous API into an asynchronous one.
If
id
specifies a built-in module available in the current Node.js process,process.getBuiltinModule(id)
method returns the corresponding built-inmodule. If
id
does not correspond to any built-in module,undefined
is returned.
process.getBuiltinModule(id)
accepts built-in module IDs that are recognizedby
module.isBuiltin(id)
.The references returned by
process.getBuiltinModule(id)
always point tothe built-in module corresponding to
id
even if users modifyrequire.cache
so thatrequire(id)
returns something else.Contributed by Joyee Cheung in #52762
doc: doc-only deprecate OpenSSL engine-based APIs
OpenSSL 3 deprecated support for custom engines with a recommendation to switch to its new provider model.
The
clientCertEngine
option forhttps.request()
,tls.createSecureContext()
, andtls.createServer()
; theprivateKeyEngine
andprivateKeyIdentifier
fortls.createSecureContext();
andcrypto.setEngine()
all depend on this functionality from OpenSSL.Contributed by Richard Lau in #53329
inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth
Debugger.setAsyncCallStackDepth
was previously calling the enable function by mistake. As a result, when profiling using Chrome DevTools, the async hooks won't be turned off properly after receivingDebugger.setAsyncCallStackDepth
with depth 0.Contributed by Joyee Cheung in #53473
Other Notable Changes
Commits
v20.15.1
: 2024-07-08, Version 20.15.1 'Iron' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
Commits
v20.15.0
: 2024-06-20, Version 20.15.0 'Iron' (LTS), @marco-ippolitoCompare Source
test_runner: support test plans
It is now possible to count the number of assertions and subtests that are expected to run within a test. If the number of assertions and subtests that run does not match the expected count, the test will fail.
Contributed by Colin Ihrig in #52860
inspector: introduce the
--inspect-wait
flagThis release introduces the
--inspect-wait
flag, which allows debugger to wait for attachement. This flag is useful when you want to debug the code from the beginning. Unlike--inspect-brk
, which breaks on the first line, this flag waits for debugger to be connected and then runs the code as soon as a session is established.Contributed by Kohei Ueno in #52734
zlib: expose zlib.crc32()
This release exposes the crc32() function from zlib to user-land.
It computes a 32-bit Cyclic Redundancy Check checksum of data. If
value is specified, it is used as the starting value of the checksum,
otherwise, 0 is used as the starting value.
The CRC algorithm is designed to compute checksums and to detect error
in data transmission. It's not suitable for cryptographic authentication.
Contributed by Joyee Cheung in #52692
cli: allow running wasm in limited vmem with --disable-wasm-trap-handler
By default, Node.js enables trap-handler-based WebAssembly bound
checks. As a result, V8 does not need to insert inline bound checks
int the code compiled from WebAssembly which may speedup WebAssembly
execution significantly, but this optimization requires allocating
a big virtual memory cage (currently 10GB). If the Node.js process
does not have access to a large enough virtual memory address space
due to system configurations or hardware limitations, users won't
be able to run any WebAssembly that involves allocation in this
virtual memory cage and will see an out-of-memory error.
--disable-wasm-trap-handler
disables this optimization so thatusers can at least run WebAssembly (with a less optimial performance)
when the virtual memory address space available to their Node.js
process is lower than what the V8 WebAssembly memory cage needs.
Contributed by Joyee Cheung in #52766
Other Notable Changes
Commits
v20.14.0
: 2024-05-28, Version 20.14.0 'Iron' (LTS), @marco-ippolitoCompare Source
Notable Changes
Commits
v20.13.1
: 2024-05-09, Version 20.13.1 'Iron' (LTS), @marco-ippolitoCompare Source
2024-05-09, Version 20.13.1 'Iron' (LTS), @marco-ippolito
Revert "tools: install npm PowerShell scripts on Windows"
Due to a regression in the npm installation on Windows, this commit reverts the change that installed npm PowerShell scripts on Windows.
Commits
v20.13.0
: 2024-05-07, Version 20.13.0 'Iron' (LTS), @marco-ippolitoCompare Source
2024-05-07, Version 20.13.0 'Iron' (LTS), @marco-ippolito
buffer: improve
base64
andbase64url
performanceThe performance of the
base64
andbase64url
encoding and decoding functions has been improved significantly.Contributed by Yagiz Nizipli in #52428
crypto: deprecate implicitly shortened GCM tags
This release, introduces a doc-only deprecation of using GCM authentication tags that are shorter than the cipher's block size, unless the user specified the
authTagLength
option.Contributed by Tobias Nießen in #52345
events,doc: mark CustomEvent as stable
From this release
CustomEvent
has been marked stable.Contributed by Daeyeon Jeong in #52618
fs: add stacktrace to fs/promises
Sync functions in fs throwed an error with a stacktrace which is helpful for debugging. But functions in fs/promises throwed an error without a stacktrace. This commit adds stacktraces by calling
Error.captureStacktrace
and re-throwing the error.Contributed by 翠 / green in #49849
report: add
--report-exclude-network
optionNew option
--report-exclude-network
, also available asreport.excludeNetwork
, enables the user to exclude networking interfaces in their diagnostic report. On some systems, this can cause the report to take minutes to generate so this option can be used to optimize that.Contributed by Ethan Arrowood in #51645
src: add uv_get_available_memory to report and process
From this release it is possible to get the available memory in the system by calling
process.getAvailableMemory()
.Contributed by theanarkh #52023
stream: support typed arrays
This commit adds support for typed arrays in streams.
Contributed by IlyasShabi #51866
util: support array of formats in util.styleText
It is now possible to pass an array of format strings to
util.styleText
to apply multiple formats to the same text.Contributed by Marco Ippolito in #52040
v8: implement v8.queryObjects() for memory leak regression testing
This is similar to the queryObjects() console API provided by the Chromium DevTools console. It can be used to search for objects that have the matching constructor on its prototype chain in the heap after a full garbage collection, which can be useful for memory leak regression tests.
To avoid surprising results, users should avoid using this API on constructors whose implementation they don't control, or on constructors that can be invoked by other parties in the application.
To avoid accidental leaks, this API does not return raw references to the objects found. By default, it returns the count of the objects found. If options.format is 'summary', it returns an array containing brief string representations for each object. The visibility provided in this API is similar to what the heap snapshot provides, while users can save the cost of serialization and parsing and directly filer the target objects during the search.
We have been using this API internally for the test suite, which has been more stable than any other leak regression testing strategies in the CI. With a public implementation we can now use the public API instead.
Contributed by Joyee Cheung in #51927
watch: mark as stable
From this release Watch Mode is considered stable.
When in watch mode, changes in the watched files cause the Node.js process to restart.
Contributed by Moshe Atlow in #52074
Other Notable Changes
Commits
v20.12.2
: 2024-04-10, Version 20.12.2 'Iron' (LTS), @RafaelGSSCompare Source
This is a security release.
Notable Changes
child_process.spawn
without shell option enabled on WindowsCommits
v20.12.1
: 2024-04-03, Version 20.12.1 'Iron' (LTS), @RafaelGSSCompare Source
This is a security release
Notable Changes
Commits
v20.12.0
: 2024-03-26, Version 20.12.0 'Iron' (LTS), @richardlauCompare Source
Notable Changes
crypto: implement crypto.hash()
This patch introduces a helper crypto.hash() that computes
a digest from the input at one shot. This can be 1.2-2x faster
than the object-based createHash() for smaller inputs (<= 5MB)
that are readily available (not streamed) and incur less memory
overhead since no intermediate objects will be created.
Contributed by Joyee Cheung in #51044.
Loading and parsing environment variables
process.loadEnvFile(path)
:.env
file. If no path is specified, it automatically loads the .env file in the current directory. Example:process.loadEnvFile()
.process.loadEnvFile('./development.env')
.util.parseEnv(content)
:require('node:util').parseEnv('HELLO=world')
.Contributed by Yagiz Nizipli in #51476.
New connection attempt events
Three new events were added in the
net.createConnection
flow:connectionAttempt
: Emitted when a new connection attempt is established. In case of Happy Eyeballs, this might emitted multiple times.connectionAttemptFailed
: Emitted when a connection attempt failed. In case of Happy Eyeballs, this might emitted multiple times.connectionAttemptTimeout
: Emitted when a connection attempt timed out. In case of Happy Eyeballs, this will not be emitted for the last attempt. This is not emitted at all if Happy Eyeballs is not used.Additionally, a previous bug has been fixed where a new connection attempt could have been started after a previous one failed and after the connection was destroyed by the user.
This led to a failed assertion.
Contributed by Paolo Insogna in #51045.
Permission Model changes
Node.js 20.12.0 comes with several fixes for the experimental permission model and two new semver-minor commits.
We're adding a new flag
--allow-addons
to enable addon usage when using the Permission Model.Contributed by Rafael Gonzaga in #51183
And relative paths are now supported through the
--allow-fs-*
flags.Therefore, with this release one can use:
To give only read access to the entrypoint of the application.
Contributed by Rafael Gonzaga and Carlos Espa in #50758.
sea: support embedding assets
Users can now include assets by adding a key-path dictionary
to the configuration as the
assets
field. At build time, Node.jswould read the assets from the specified paths and bundle them into
the preparation blob. In the generated executable, users can retrieve
the assets using the
sea.getAsset()
andsea.getAssetAsBlob()
API.The single-executable application can access the assets as follows:
Contributed by Joyee Cheung in #50960.
Support configurable snapshot through
--build-snapshot-config
flagWe are adding a new flag
--build-snapshot-config
to configure snapshots through a custom JSON configuration file.When using this flag, additional script files provided on the command line will
not be executed and instead be interpreted as regular command line arguments.
These changes were contributed by Joyee Cheung and Anna Henningsen in #50453
Text Styling
util.styleText(format, text)
: This function returns a formatted text considering theformat
passed.A new API has been created to format text based on
util.inspect.colors
, enabling you to style text in different colors (such as red, blue, ...) and emphasis (italic, bold, ...).Contributed by Rafael Gonzaga in #51850.
vm: support using the default loader to handle dynamic import()
This patch adds support for using
vm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER
as theimportModuleDynamically
option in all vm APIs that take this option exceptvm.SourceTextModule
. This allows users to have a shortcut to support dynamicimport()
in the compiled code without missing the compilation cache if they don't need customization of the loading process. We emit an experimental warning when theimport()
is actually handled by the default loader through this option instead of requiring--experimental-vm-modules
.Contributed by Joyee Cheung in #51244.
Root certificates updated to NSS 3.98
Certificates added:
Certificates removed:
Updated dependencies
Other notable changes
Commits
v20.11.1
: 2024-02-14, Version 20.11.1 'Iron' (LTS), @RafaelGSS prepared by @marco-ippolitoCompare Source
Notable changes
This is a security release.
Notable changes
Commits
v20.11.0
: 2024-01-09, Version 20.11.0 'Iron' (LTS), @UlisesGasconCompare Source
Notable Changes
Commits
v20.10.0
: 2023-11-22, Version 20.10.0 'Iron' (LTS), @targosCompare Source
Notable Changes
--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.
Detect ESM syntax in ambiguous JavaScript
The new flag
--experimental-detect-module
can be used to automatically run ESmodules when their syntax can be detected. For “ambiguous” files, which are
.js
or extensionless files with nopackage.json
with atype
field, Node.jswill parse the file to detect ES module syntax; if found, it will run the file
as an ES module, otherwise it will run the file as a CommonJS module. The same
applies to string input via
--eval
orSTDIN
.We hope to make detection enabled by default in a future version of Node.js.
Detection increases startup time, so we encourage everyone—especially package
authors—to add a
type
field topackage.json
, even for the default"type": "commonjs"
. The presence of atype
field, or explicit extensionssuch as
.mjs
or.cjs
, will opt out of detection.Contributed by Geoffrey Booth in #50096.
New
flush
option in file system functionsWhen writing to files, it is possible that data is not immediately flushed to
permanent storage. This allows subsequent read operations to see stale data.
This PR adds a
'flush'
option to thefs.writeFile
family of functions whichforces the data to be flushed at the end of a successful write operation.
Contributed by Colin Ihrig in #50009 and #50095.
Experimental WebSocket client
Adds a
--experimental-websocket
flag that adds aWebSocket
global, as standardized by WHATWG.
Contributed by Matthew Aitken in #49830.
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.
Other notable changes
Commits
v20.9.0
: 2023-10-24, Version 20.9.0 'Iron' (LTS), @richardlauCompare Source
Notable Changes
This release marks the transition of Node.js 20.x into Long Term Support (LTS)
with the codename 'Iron'. The 20.x release line now moves into "Active LTS"
and will remain so until October 2024. After that time, it will move into
"Maintenance" until end of life in April 2026.
Known issue
Collecting code coverage via the
NODE_V8_COVERAGE
environment variable maylead to a hang. This is not thought to be a regression in Node.js 20 (some
reports are on Node.js 18). For more information, including some potential
workarounds, see issue #49344.
v20.8.1
: 2023-10-13, Version 20.8.1 (Current), @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
v20.8.0
: 2023-09-28, Version 20.8.0 (Current), @ruyadornoCompare Source
Notable Changes
Stream performance improvements
Performance improvements to writable and readable streams, improving the creation and destruction by ±15% and reducing the memory overhead each stream takes in Node.js
Contributed by Benjamin Gruenbaum in #49745 and Raz Luvaton in #49834.
Performance improvements for readable webstream, improving readable stream async iterator consumption by ±140% and improving readable stream
pipeTo
consumption by ±60%Contributed by Raz Luvaton in #49662 and #49690.
Rework of memory management in
vm
APIs with theimportModuleDynamically
optionThis rework addressed a series of long-standing memory leaks and use-after-free issues in the following APIs that support
importModuleDynamically
:vm.Script
vm.compileFunction
vm.SyntheticModule
vm.SourceTextModule
This should enable affected users (in particular Jest users) to upgrade from older versions of Node.js.
Contributed by Joyee Cheung in #48510.
Other notable changes
Commits
v20.7.0
: 2023-09-18, Version 20.7.0 (Current), @UlisesGasconCompare Source
Notable Changes
Commits
v20.6.1
: 2023-09-08, Version 20.6.1 (Current), @ruyadorno and @RafaelGSSCompare Source
Commit
v20.6.0
: 2023-09-04, Version 20.6.0 (Current), @juanarbol prepared by @UlisesGasconCompare Source
Notable changes
built-in
.env
file supportStarting 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: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 yourpackage.json
.This feature was contributed by Yagiz Nizipli in #48890.
import.meta.resolve
unflaggedIn ES modules,
import.meta.resolve(specifier)
can be used to get an absolute URL string to whichspecifier
resolves, similar torequire.resolve
in CommonJS. This aligns Node.js with browsers and other server-side runtimes.This feature was contributed by Guy Bedford in #49028
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.This feature was contributed by Izaak Schroeder in #48842 and #48559
Module customization
load
hook can now support CommonJSAuthors of module customization hooks can how handle both ES module and CommonJS sources in the
load
hook. This works for CommonJS modules referenced via eitherimport
orrequire
, so long as the main entry point of the application is handled by the ES module loader (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 asrequire.extensions
.This feature was contributed by Antoine du Hamel in #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 thev8::CppHeap
using<cppgc/*>
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 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)
has been added tonode.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.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.This feature was contributed by Daryl Haresign and Joyee Cheung in #48660 and #45704.
Other notable changes
Commits
v20.5.1
: 2023-08-09, Version 20.5.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 August 2023 Security Releases blog post.
Commits
v20.5.0
: 2023-07-18, Version 20.5.0 (Current), @juanarbolCompare Source
Notable Changes
Commits
v20.4.0
: 2023-07-05, Version 20.4.0 (Current), @RafaelGSSCompare Source
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 mocksetTimeout
,setInterval
fromglobals
,node:timers
, andnode:timers/promises
.The feature provides a simple API to advance time, enable specific timers, and release all timers.
This feature was contributed by Erick Wendel in #47775.
Support to the explicit resource management proposal
Node is adding support to the explicit resource management
proposal to its resources allowing users of TypeScript/babel to use
using
/await using
withV8 support for everyone else on the way.
This feature was contributed by Moshe Atlow and Benjamin Gruenbaum in #48518.
Other notable changes
Commits
v20.3.1
: 2023-06-20, Version 20.3.1 (Current), @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
v20.3.0
: 2023-06-08, Version 20.3.0 (Current), @targosCompare Source
Notable Changes
Commits
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
43ec537e2c
toa140bb7b6b
a140bb7b6b
to8e99ce1851
8e99ce1851
to114e1d2e84
114e1d2e84
to5370077d77
5370077d77
tob768ed61fe
b768ed61fe
tob32cf9f494
b32cf9f494
tod6ed2b6515
d6ed2b6515
to4a3b618edf
4a3b618edf
to13e97640af
13e97640af
toa513d3a4e5
a513d3a4e5
to4295915a49
4295915a49
to5d8746b6ed
5d8746b6ed
to030a928b8c
chore(deps): pin dependenciesto chore(deps): update all dependencies030a928b8c
tof25c46962d
f25c46962d
to95134e7eb9
95134e7eb9
to1eccd1ff63
1eccd1ff63
tod5d42c1615
d5d42c1615
to22f6c2a3da
22f6c2a3da
to5aea61db07
5aea61db07
tob2e22eb683
b2e22eb683
tof4be3326f3
f4be3326f3
to9402150432
9402150432
to5c195524d2
5c195524d2
toc186f511d5
c186f511d5
to34ca1e1ac3
34ca1e1ac3
toa547d561dc
a547d561dc
toecfecab597
ecfecab597
toefb5e5d00c
efb5e5d00c
to757c71d4ca
757c71d4ca
to7107502cef
7107502cef
toae3d5aaf56
ae3d5aaf56
to1ab02f61a0
1ab02f61a0
to432ea93955
432ea93955
to6e8c346f34
6e8c346f34
to7de67b4c77
7de67b4c77
tod028df1ab2
d028df1ab2
to943086785c
943086785c
tob759e35a8b
b759e35a8b
toeb473f5be3
eb473f5be3
toa4f91486a5
a4f91486a5
to9896508c97
9896508c97
to812275a91a
812275a91a
to1bc1d7a87a
1bc1d7a87a
to1b5cd3b9b4
1b5cd3b9b4
to641b967323
641b967323
toa287493ccf
a287493ccf
to3341a617ca
3341a617ca
tobd43f60de1
bd43f60de1
to2326d3cabf
2326d3cabf
tob3991fc4eb
b3991fc4eb
to8d6e3b53cf
8d6e3b53cf
to7434484491
7434484491
to3221147373
3221147373
to8302ad40c0
8302ad40c0
to6deddaa82e
6deddaa82e
tobc7eed0e6d
bc7eed0e6d
tofd6d9242a1
fd6d9242a1
to5cf3302faf
5cf3302faf
tof8fe4d0e7c
f8fe4d0e7c
to05820105a8
05820105a8
toca16e66346
ca16e66346
to1bf0994069
1bf0994069
to3d30de01a8
3d30de01a8
to0e318b7995
0e318b7995
toc8a5582eca
c8a5582eca
to302dcd2970
302dcd2970
to22a6ddc3c8
22a6ddc3c8
to0655955335
0655955335
tod9e05d869e
d9e05d869e
toc7ae2c62a2
c7ae2c62a2
toe224e9791e
e224e9791e
to72ff93fe73
72ff93fe73
toe16492a2c2
e16492a2c2
to7a20fc3cca
7a20fc3cca
tob7200d0fb4
b7200d0fb4
to460906b006
460906b006
to42a91da88c
42a91da88c
toc7c8e342f6
c7c8e342f6
tof795e78c4e
f795e78c4e
tocea777a391
cea777a391
tobddcd09442
bddcd09442
to4155ad0fe5
4155ad0fe5
to266f754d32
266f754d32
tob1cfa47066
b1cfa47066
to23244255a8
23244255a8
todb4169fa97
db4169fa97
to7406e84cb6
7406e84cb6
tof61d153faa
f61d153faa
to6b5f4f4a29
6b5f4f4a29
to6aa61b793a
6aa61b793a
to1d1c007a68
1d1c007a68
to336a3aab2d
336a3aab2d
to7c5ca8910d
7c5ca8910d
to894d76c75d
894d76c75d
to5b3a0f6c8e
5b3a0f6c8e
to30c0b8c6a4
30c0b8c6a4
tob1e9094301
b1e9094301
to6c7bcecb15
6c7bcecb15
to85b17dbe81
85b17dbe81
toe872249e46
e872249e46
to90ca50b0a8
90ca50b0a8
to973f39331e
973f39331e
to68d4fc4ea1
68d4fc4ea1
to6165de7b40
6165de7b40
tod207420b93
d207420b93
to59fc040512
59fc040512
tod365cdac40
d365cdac40
to6084d8d861
6084d8d861
to6ab0cb60a0
6ab0cb60a0
toe0ab11aa3a
e0ab11aa3a
toce43274643
ce43274643
to7b115b42e0
7b115b42e0
tof454639b3d
f454639b3d
to6f3531eb3e
6f3531eb3e
to61849ea493
61849ea493
toda7c5d5e94
da7c5d5e94
to5136efcc78
5136efcc78
to42c866d36a
42c866d36a
to91352e99ff
91352e99ff
todd771bf976
dd771bf976
tofef6fd2448
fef6fd2448
toc80b1d1399
c80b1d1399
to4ec10cd930
4ec10cd930
to71bd46cc85
71bd46cc85
toef1f5d9409
ef1f5d9409
to3b0ec0baf1
3b0ec0baf1
toe9f659919b
e9f659919b
to0d2b7608bf
0d2b7608bf
toe24f6b5e00
e24f6b5e00
to80f78e2971
80f78e2971
to3025686c4f
3025686c4f
to7c3f38f073
7c3f38f073
toa882ba280a
a882ba280a
tof03a64ece0
f03a64ece0
to49f029f0d5
49f029f0d5
to5d869efdd8
5d869efdd8
toad512ce041
ad512ce041
tob7ba621666
b7ba621666
to3cf27063c9
3cf27063c9
to052413dde9
052413dde9
to049ecc1d68
049ecc1d68
to045907edb0
045907edb0
to01b06cb40d
01b06cb40d
to3641e63edc
3641e63edc
toc676fbd466
c676fbd466
toa5f763e466
a5f763e466
toba38cecb63
ba38cecb63
to6c509ad74a
6c509ad74a
to2f1a6153ac
2f1a6153ac
to7679264b95
7679264b95
to7b38f72e0d
7b38f72e0d
to727d1f870c
727d1f870c
to2042fd24ec
2042fd24ec
to491a2c3cf4
491a2c3cf4
to2bd180d602
2bd180d602
to7bfd4cd5a7
7bfd4cd5a7
to2e3b9de359
2e3b9de359
to691962a86e
691962a86e
tof3e72d0f02
f3e72d0f02
tof1b85f6959
f1b85f6959
to653c80f6bf
653c80f6bf
to039ed43bbf
039ed43bbf
tof6d3de0817
f6d3de0817
toc6c78ba6d5
c6c78ba6d5
tocde4571cfd
cde4571cfd
tocb330e7f56
cb330e7f56
toa0d31694b7
a0d31694b7
to4d0e5ee22b
4d0e5ee22b
to29cb1e4e78
29cb1e4e78
to9f2fff9130
9f2fff9130
to5c44341a2a
5c44341a2a
to3902dcab6d
3902dcab6d
to402c2acaf4
402c2acaf4
to376b4f3244
376b4f3244
to87154dc4b9
87154dc4b9
toa2b9d26d86
a2b9d26d86
to6ba45eb647
6ba45eb647
to999379c4c3
999379c4c3
tob7feb3b9fc
b7feb3b9fc
tob4c64c30fe
b4c64c30fe
to3e0be2b325
3e0be2b325
to71195a507d
71195a507d
to9c49715b42
9c49715b42
to6bc3334638
6bc3334638
tobecf00d230
becf00d230
tof52ead2226
f52ead2226
to7df5c12189
7df5c12189
to6b8043a544
6b8043a544
to1a39987354
1a39987354
to9c9bca77a1
9c9bca77a1
toe8388ae547
e8388ae547
to045ae1a342
045ae1a342
to6aa4378b80
6aa4378b80
to10bbfd1299
10bbfd1299
toa265f78e76
a265f78e76
to4aa494c1a0
4aa494c1a0
toff492f924c
ff492f924c
tobec6a50092
bec6a50092
to9aff647743
9aff647743
to8d3291d4f6
8d3291d4f6
to458fa852dc
458fa852dc
to6cb57398ba
6cb57398ba
to5c37a3a4e5
5c37a3a4e5
to28181e00ae
28181e00ae
to564b69e296
564b69e296
toe02439a80b
e02439a80b
toce36aade90
ce36aade90
to50524bd536
50524bd536
toeed6f021ff
eed6f021ff
to5b30f84cac
5b30f84cac
tof762a12a69
f762a12a69
to49a25785fd
49a25785fd
toed85786b83
ed85786b83
toacc999256b
acc999256b
to82e4447c03
82e4447c03
toe7f1d47abc
e7f1d47abc
to5d96412165
5d96412165
toc3db6af41a
c3db6af41a
tob7c6ac4dfa
b7c6ac4dfa
tob3292fa85a
b3292fa85a
to4b910196ef
4b910196ef
toce91f4b587
ce91f4b587
to41a54abbc9
41a54abbc9
to2d97d682bd
2d97d682bd
to62f7b423d2
62f7b423d2
toe04e4b6507
e04e4b6507
to58e81e4086
58e81e4086
to8b0c427db8
8b0c427db8
to7a0b63a286
7a0b63a286
to6459c5825b
6459c5825b
tof88b89f037
f88b89f037
toacc65c6d4a
acc65c6d4a
to8f93f7b13d
8f93f7b13d
toc50d388c7e
c50d388c7e
toa5040bbe3a
a5040bbe3a
to4a8b6e4f49
4a8b6e4f49
toe6f51ad593
e6f51ad593
to55fbeba815
55fbeba815
tof7c9ac9a10
f7c9ac9a10
to0a1ff9cbc9
0a1ff9cbc9
to703a331e9e
703a331e9e
to07fad5ac08
07fad5ac08
to9db1c90926
9db1c90926
toe45a1e3713
e45a1e3713
to72aec54baf
72aec54baf
to52f23b5230
52f23b5230
to9868920f67
9868920f67
to24a13eab6a
24a13eab6a
toca304409c7
ca304409c7
to5f7e6181db
5f7e6181db
toc395c50f56
c395c50f56
to3d70feeac9
3d70feeac9
tod9a790d3af
d9a790d3af
toe060139f99
e060139f99
tob2145ac54c
b2145ac54c
to531188de81
531188de81
to91ab614ae1
91ab614ae1
toaba69b6320
aba69b6320
to08a6aaa7e8
08a6aaa7e8
to729beea152
729beea152
to964187e3da
964187e3da
toce9b1c9b66
ce9b1c9b66
tofca901d112
fca901d112
to2d25349b98
2d25349b98
to97fb04a0f7
97fb04a0f7
tod9f6da9883
d9f6da9883
to339a0db9b3
339a0db9b3
toe09df02b7f
e09df02b7f
to6647562412
6647562412
to7254789ed7
7254789ed7
to5457f854a7
5457f854a7
to1f029ed1ef
1f029ed1ef
to86f3a08d29
86f3a08d29
tob7d2d9d737
b7d2d9d737
toeae318121c
eae318121c
to9e5ba1d091
9e5ba1d091
to0ba3130b24
0ba3130b24
to96a3d49203
96a3d49203
to12289171cf
12289171cf
to1c98b6c17e
1c98b6c17e
to2325869a46
2325869a46
toee58904c25
ee58904c25
to3bcca92879
3bcca92879
to2f9094f057
2f9094f057
to1dbb9f8ce5
1dbb9f8ce5
tobbd5aa4a2a
bbd5aa4a2a
tofdf4ebff23
fdf4ebff23
tod57044ff3a
d57044ff3a
to8701f03c44
8701f03c44
tobf166bd431
bf166bd431
toa694648dc0
a694648dc0
to7843454e56
7843454e56
to805663cfe0
805663cfe0
to7f232733e6
7f232733e6
to7f3cd613e5
7f3cd613e5
to631db27c6a
631db27c6a
toa1abe02d2a
a1abe02d2a
to995ce3f3d4
995ce3f3d4
to42b5f8e8a8
42b5f8e8a8
to3185bde552
3185bde552
to91dba4e417
91dba4e417
tofb13643b34
fb13643b34
to18304d152f
18304d152f
to26988e2f38
26988e2f38
to4fc4f48137
4fc4f48137
to1fda24dcbb
1fda24dcbb
tob5df5ca774
b5df5ca774
to07d0d08b88
07d0d08b88
toad787ddeac
ad787ddeac
toec8c5ec6da
ec8c5ec6da
toba992c1594
ba992c1594
to4b392b037e
4b392b037e
to84abc9459b
84abc9459b
toc6e0adfa2f
c6e0adfa2f
toe9168432d7
e9168432d7
to3a15faae5c
3a15faae5c
to84ba4f2d36
84ba4f2d36
to56d136514f
56d136514f
toa88ff12906
a88ff12906
to72ea1a2bfe
72ea1a2bfe
tob71f59d7b8
b71f59d7b8
tod93c1afdc8
d93c1afdc8
tof96f2b0c89
f96f2b0c89
toa7d5066a90
a7d5066a90
tod1461105ed
d1461105ed
toc9bb1a265b
c9bb1a265b
tof1aec32ac1
f1aec32ac1
to16af585e52
16af585e52
to23f8d03122
23f8d03122
tobf1f98750a
bf1f98750a
todbe54969ed
dbe54969ed
to54a3962d1a
54a3962d1a
to252636fb2d
252636fb2d
toe0d127253f
e0d127253f
to874ac8ab0d
874ac8ab0d
todd06a39b25
dd06a39b25
to629be169a1
629be169a1
tob905fa0015
b905fa0015
tobd987f6bb0
bd987f6bb0
toc881524af4
c881524af4
tod3b04cbaa3
d3b04cbaa3
tof131d1951c
f131d1951c
toc61c80582d
c61c80582d
to40e6265598
40e6265598
to9893aaebf6
9893aaebf6
to8d3686d7a1
8d3686d7a1
tob610814716
b610814716
tof6545db1a7
f6545db1a7
to052648f61c
052648f61c
to10bb436e71
10bb436e71
toe8e0b5f332
e8e0b5f332
toaacee1227d
aacee1227d
toc2182c9562
c2182c9562
tof66c8b62b6
f66c8b62b6
to9158c8a236
9158c8a236
to3058781d38
3058781d38
to9d62186f10
9d62186f10
tobda91b7307
bda91b7307
to12bff963fc
12bff963fc
to42248c4b84
42248c4b84
toa032fb8c8a
a032fb8c8a
to103a9fe941
103a9fe941
to6ffcca5966
6ffcca5966
to57041b55d7
57041b55d7
to9b8523cd18
9b8523cd18
to6723ff14a4
6723ff14a4
to93303fc2a3
93303fc2a3
toda49621686
da49621686
tofabd56281d
fabd56281d
to6884d16d05
6884d16d05
tocec0986a74
cec0986a74
to5517c6dad6
5517c6dad6
toc28ad6ebad
c28ad6ebad
to10d6d5e5db
10d6d5e5db
tob637003fb3
b637003fb3
to9b2b434290
9b2b434290
tob061f5659b
b061f5659b
to3a4f431df8
3a4f431df8
toce80ff55d0
ce80ff55d0
to7742b78ede
7742b78ede
to3ac0d8abaa
3ac0d8abaa
to7454199b99
7454199b99
toe4c35ef3de
e4c35ef3de
to4cfdaca297
4cfdaca297
to724eb2ea1a
724eb2ea1a
to86f338b56e
86f338b56e
to418d366baf
418d366baf
to4760613200
4760613200
to7c5b96005f
7c5b96005f
toe8c62eea32
e8c62eea32
to2d9771bb21
2d9771bb21
toae8e3d98c1
ae8e3d98c1
todd15aff2dc
dd15aff2dc
tofde2b179e5
fde2b179e5
todffe3c4c56
dffe3c4c56
to535bdb5f5e
535bdb5f5e
to85e1e03867
85e1e03867
to63ed207be0
63ed207be0
to4463e07bad
4463e07bad
tof4d5bf5dad
f4d5bf5dad
to7549a93e77
7549a93e77
tofc64140604
fc64140604
to1b58b64bcc
1b58b64bcc
toe23feb640b
e23feb640b
to38ac55ea26
38ac55ea26
tod801d4e447
d801d4e447
toefe8eb3104
efe8eb3104
to2eececcf1b
2eececcf1b
to6916093489
6916093489
toca787a764d
ca787a764d
toad46f7c187
ad46f7c187
to1a9e70f20a
1a9e70f20a
to3c42533a67
3c42533a67
to891b522fe7
891b522fe7
tob16c0c8de6
b16c0c8de6
toffb54e8153
ffb54e8153
tof4a65f315e
f4a65f315e
to393e96a44b
393e96a44b
to5f5f69618c
5f5f69618c
to2387862ceb
2387862ceb
to0509d0a154
0509d0a154
tof6e3decf98
f6e3decf98
toa5661f15fe
a5661f15fe
to949ed42392
949ed42392
tobd8450bb84
bd8450bb84
tob7ba4aed92
b7ba4aed92
to0517680062
0517680062
to3f0e7021b4
3f0e7021b4
to260213b48d
260213b48d
to5d7b582063
5d7b582063
to32816cd497
32816cd497
tof1ef528706
f1ef528706
to9913168b59
9913168b59
tobf766a73a5
bf766a73a5
to0989898c8e
0989898c8e
tobf7b206ec3
bf7b206ec3
toe001e2bc15
e001e2bc15
to2fdf01f068
2fdf01f068
to323c49098a
323c49098a
tod82c3c1717
d82c3c1717
toa0d5353c46
a0d5353c46
to66e7d982be
66e7d982be
tofec1df11a3
fec1df11a3
to1c186c392e
1c186c392e
to8f16eecf7e
8f16eecf7e
to7ea45c661c
7ea45c661c
tod2c853830c
d2c853830c
to963dcebf1a
963dcebf1a
tobd8a53bc97
bd8a53bc97
to8a3a32a597
8a3a32a597
tod014fb34cf
d014fb34cf
to726689f0b6
726689f0b6
to0cdccbda98
0cdccbda98
to7cd617f51c
7cd617f51c
tocb072b728d
cb072b728d
to287bcfb101
287bcfb101
to8bc43a5570
8bc43a5570
to21ad43a529
21ad43a529
to286f693663
286f693663
to6a2b3c402c
6a2b3c402c
to99551e9442
99551e9442
to640c65c7c9
640c65c7c9
to18b756c941
18b756c941
to648ffb962a
648ffb962a
to374b86c918
374b86c918
to2b473626c6
2b473626c6
toaf46d558a0
af46d558a0
to465b385d0f
465b385d0f
to7c3ed675ad
7c3ed675ad
to260ec99bc5
260ec99bc5
to094351bbb0
094351bbb0
tof40aa0b1a9
f40aa0b1a9
to83ff30186f
83ff30186f
to715c90386e
715c90386e
toa49b6933d0
a49b6933d0
toa5b24441af
a5b24441af
to2e80523fa8
2e80523fa8
toe1994a6f03
e1994a6f03
to7325f24fbc
7325f24fbc
tod35ef47d16
d35ef47d16
tod8b11a797c
d8b11a797c
tod95253f461
d95253f461
to79924b1cfb
79924b1cfb
to269d8e746b
269d8e746b
tofc017f1f41
fc017f1f41
toc86474922c
c86474922c
to46599c5824
46599c5824
tof3dedcec37
f3dedcec37
to92edf9cbcd
92edf9cbcd
tod007db2bbc
d007db2bbc
tof725d90e5e
f725d90e5e
to30b0158613
30b0158613
toabc09235e7
abc09235e7
toce7a5a9448
ce7a5a9448
tof01925ca27
f01925ca27
to802c7ba48d
802c7ba48d
to5e4e3c6ca2
5e4e3c6ca2
to74b44b640e
74b44b640e
toe24637b6a5
e24637b6a5
to08f2f213ab
08f2f213ab
to5e0a1cce14
5e0a1cce14
to97cf30e842
97cf30e842
tob585808c41
b585808c41
tobd0c57bed0
bd0c57bed0
to1dd6568ecf
1dd6568ecf
toa49517f843
a49517f843
to5a441cc0bb
5a441cc0bb
to419b25434b
419b25434b
to5ec42ebd46
5ec42ebd46
toe134a51587
e134a51587
toee155dddcb
ee155dddcb
to4759825ab7
4759825ab7
tobfe3a5c082
bfe3a5c082
to576823f8f7
576823f8f7
toe2c367434c
e2c367434c
to01c839b890
01c839b890
to04fd9ab331
04fd9ab331
to7acae38d72
7acae38d72
to3b18bdd939
3b18bdd939
to12731d70a6
12731d70a6
to07096ae094
07096ae094
todb06f98609
db06f98609
toa1c30f5fe7
a1c30f5fe7
todc36457447
dc36457447
to0b923e78c4
0b923e78c4
to5b60dc3a3d
5b60dc3a3d
to0780d8052e
0780d8052e
to5d8081c7a2
5d8081c7a2
toc193051cb7
c193051cb7
to68ee70b1c5
68ee70b1c5
to76bef252e3
76bef252e3
to9e15c6f4fa
9e15c6f4fa
to3bb1fb7178
3bb1fb7178
to55637d9241
55637d9241
toe3dd44c179
e3dd44c179
to1518693316
1518693316
to9a39102905
9a39102905
toef7c2f6bf4
ef7c2f6bf4
to4acb9e37bd
4acb9e37bd
to2693ce2e12
2693ce2e12
toa9576cd59c
a9576cd59c
to6c4bd98660
6c4bd98660
to3d9974bd1a
3d9974bd1a
toe87b2ffef2
e87b2ffef2
to18294398ef
18294398ef
to33b3615fe8
33b3615fe8
tofcc88cd860
fcc88cd860
to30c05529a1
30c05529a1
tob5ccda0782
b5ccda0782
to8db5061ee1
8db5061ee1
to2e4e6000f7
2e4e6000f7
to8460c16f06
8460c16f06
tof1fcdc2f0b
f1fcdc2f0b
tod275c675e9
d275c675e9
to348b3c85a7
348b3c85a7
to7718e38e7a
7718e38e7a
to0f5d8a18ba
0f5d8a18ba
to0f8f22fcf3
0f8f22fcf3
toba7c88868f
ba7c88868f
to7f24ba6b79
7f24ba6b79
toc15ccf30c5
c15ccf30c5
to1a1fb5430f
1a1fb5430f
to5f693bb5b1
5f693bb5b1
to252092b8f5
252092b8f5
to0b38001a20
0b38001a20
tob100fd89f7
b100fd89f7
to6390e51b31
6390e51b31
tof7b3be577d
f7b3be577d
to41207ef2e9
41207ef2e9
toff1dbb1746
ff1dbb1746
toa07bdb5808
a07bdb5808
to56927b593e
56927b593e
to3f833bdb00
3f833bdb00
to1a66b3ab3c
1a66b3ab3c
tof78f8003a8
f78f8003a8
to9528a34c7a
9528a34c7a
to27c378ede2
27c378ede2
to44617cb6c2
44617cb6c2
to26d984f984
26d984f984
tobea0b27e56
bea0b27e56
to1087b52079
1087b52079
to65c43a7845
65c43a7845
tob143a89af3
b143a89af3
to7c63c9445e
7c63c9445e
toed8b93bb7d
ed8b93bb7d
to09e4a2631b
09e4a2631b
to7cc68a02ae
7cc68a02ae
to21a9c8a904
21a9c8a904
to75f6400b2c
75f6400b2c
to7baa775b25
7baa775b25
to3bba6ffa7b
3bba6ffa7b
to956e5cf387
956e5cf387
to345bc2d33c
345bc2d33c
toc483c59e86
c483c59e86
toce77a697c0
ce77a697c0
tod515711bd4
d515711bd4
to76b3038a51
76b3038a51
to8ed2eee3ce
8ed2eee3ce
to5b8eff21c2
5b8eff21c2
to47a6997275
47a6997275
tocb5ad8c9c8
cb5ad8c9c8
tob416482e1e
b416482e1e
tof7ee979365
f7ee979365
tob507fd0a3f
b507fd0a3f
toab347491d7
ab347491d7
to671db86df0
671db86df0
to1d67bdd98c
1d67bdd98c
to87567a807d
87567a807d
tocb35c83acf
cb35c83acf
tof922857843
f922857843
todcbe265f92
dcbe265f92
to1f402d38c5
1f402d38c5
to0db56ee819
0db56ee819
to8f09218b5e
8f09218b5e
to508230a4e0
508230a4e0
to9815159755
9815159755
toaac88beba3
aac88beba3
toa8258a435c
a8258a435c
to6cdab37bc6
6cdab37bc6
to39008c1a86
39008c1a86
tobe15c07a14
be15c07a14
to2555d7d5da
2555d7d5da
toafe6de7f42
afe6de7f42
to534072ea84
534072ea84
to8c8e966291
8c8e966291
toc23eb9b88a
c23eb9b88a
tob8c0b83f47
b8c0b83f47
to54bdcd9c77
54bdcd9c77
toe4deaf56e5
e4deaf56e5
to3e9707925f
3e9707925f
to2730b495b2
2730b495b2
toc2b2c769ee
c2b2c769ee
to70f65aa271
70f65aa271
tof33dda68c7
f33dda68c7
to730753d574
730753d574
to8f94ab91c9
8f94ab91c9
to720426ca8f
720426ca8f
to8a15132a83
8a15132a83
tob20a71a536
b20a71a536
tod343830a0a
d343830a0a
tof9df3c067a
f9df3c067a
to65cbfca0fd
65cbfca0fd
to9a73656a6b
9a73656a6b
to8510609977
8510609977
to14273c5f79
14273c5f79
to4e439318a8
4e439318a8
to48f665b1c3
48f665b1c3
tof5b81aa694
f5b81aa694
tod53883bf35
d53883bf35
to53bdd15864
53bdd15864
to3a575ca923
3a575ca923
to69e56f3141
69e56f3141
to378c6ea3d1
378c6ea3d1
to839597f7af
839597f7af
to6d95bc4ec2
6d95bc4ec2
to83469b0c8c
83469b0c8c
to297e665a63
297e665a63
tof19d9f9a92
f19d9f9a92
to7d6a1216b6
7d6a1216b6
to7e83bb6bcf
7e83bb6bcf
tof42809ea93
f42809ea93
to7872ef7ac6
7872ef7ac6
to019830d4f5
019830d4f5
to2cb5bd6be2
2cb5bd6be2
to0a9746d809
0a9746d809
toda53ae2cb0
da53ae2cb0
to36de4aaac2
36de4aaac2
to9ac2965cc9
9ac2965cc9
to2946d3f2f1
2946d3f2f1
toe660bee55a
e660bee55a
tob7d2547f91
b7d2547f91
tocf06dad4bb
cf06dad4bb
to95dd8547c8
95dd8547c8
tocd08a14d07
cd08a14d07
tob5299ab1e1
b5299ab1e1
to7b63b2373f
7b63b2373f
toe4f100d6bf
e4f100d6bf
to4020b38d07
4020b38d07
to512e9716a5
512e9716a5
to3e04077c8f
3e04077c8f
to2998bf4dc9
2998bf4dc9
to1833f7de88
1833f7de88
tof151dd2054
f151dd2054
to4a202272fb
4a202272fb
to05f83d88b1
05f83d88b1
toc2f80af83c
c2f80af83c
to195807d4ea
195807d4ea
to8f30b8a4cf
8f30b8a4cf
toc218917585
c218917585
to4fe5a27f29
4fe5a27f29
to9eda56f41a
9eda56f41a
to21950fabea
21950fabea
to5c600ade0f
5c600ade0f
to2b8085161f
2b8085161f
to6462fa400d
6462fa400d
tof38b620c17
f38b620c17
to4c8659148f
4c8659148f
tob0370a6293
b0370a6293
toa8ab9dd261
a8ab9dd261
to252624d1b8
252624d1b8
to440fd781dc
440fd781dc
toac4fc7db4e
ac4fc7db4e
to98b23675c6
98b23675c6
toe33d9769d6
e33d9769d6
tob2013f22ac
b2013f22ac
to43fe000707
43fe000707
to57f3a54509
57f3a54509
to8fc9f1b0ec
8fc9f1b0ec
todc38ee6d6b
dc38ee6d6b
tod907f492fb
d907f492fb
to9d655eed77
9d655eed77
to36fb1cdd87
36fb1cdd87
tofe7afb46c4
fe7afb46c4
to5773d715e2
5773d715e2
to1adc8f9414
1adc8f9414
to48f1dbffb3
48f1dbffb3
to2b0585b953
2b0585b953
to22a44b8b5c
22a44b8b5c
to5a9176ae02
5a9176ae02
to20d7392c7e
20d7392c7e
tof12ccf7e86
f12ccf7e86
to910b28927d
910b28927d
tob63cb5d9ea
b63cb5d9ea
tod330601cf9
d330601cf9
tobd88b0f6aa
bd88b0f6aa
to2c0eda0e9e
2c0eda0e9e
to18830ebe55
18830ebe55
tob415d6e3cb
b415d6e3cb
to6625d2b008
6625d2b008
tod84bda1569
d84bda1569
to8ae3b50a78
8ae3b50a78
to1e7c78ab67
1e7c78ab67
tof72bbed10c
f72bbed10c
to8c0342646e
8c0342646e
to7cbacb72d0
7cbacb72d0
to632029deb7
632029deb7
tocbed16f47c
cbed16f47c
to57025b172c
57025b172c
to7eb071026f
7eb071026f
toa13da55030
a13da55030
to624b4c27d9
624b4c27d9
tod572deb0b1
d572deb0b1
to6bfeb6e8da
6bfeb6e8da
toea350775d0
ea350775d0
to553e038efa
553e038efa
toe9222e06c4
e9222e06c4
to0a7144c8e2
0a7144c8e2
to5ea0d2d15f
5ea0d2d15f
to8cc4a084ce
8cc4a084ce
tob1c8d6ee2c
b1c8d6ee2c
to9952cd8e0a
9952cd8e0a
to1bd4ee12a8
1bd4ee12a8
to013d93840d
013d93840d
to92addce85d
92addce85d
toe040df5e4d
e040df5e4d
toa92aa39b44
a92aa39b44
to32c205a4ea
32c205a4ea
toad940617ac
ad940617ac
to34f77126f7
34f77126f7
to5b47ba2d20
5b47ba2d20
to5c016a6fa1
5c016a6fa1
to0072df2046
0072df2046
to4ee3470343
4ee3470343
toe9dc75f797
e9dc75f797
tob2620cfee6
b2620cfee6
toae50b18f30
ae50b18f30
to929ccb9171
929ccb9171
to237ffdde6b
237ffdde6b
toab452ce467
ab452ce467
toaac546c55c
aac546c55c
to4ade41b162
4ade41b162
to98e4e75dac
98e4e75dac
tof7cba94d45
f7cba94d45
todecd2c9d4d
decd2c9d4d
to5667a702d5
5667a702d5
tocc1e180ac7
cc1e180ac7
to9f7702739f
9f7702739f
to20bb1b452f
20bb1b452f
to5fa925aefd
5fa925aefd
tof88dcb3d7d
f88dcb3d7d
toa946f77a32
a946f77a32
tod9c66d2a4e
d9c66d2a4e
to56cba01757
56cba01757
to82faedc6e2
82faedc6e2
toae4a063700
ae4a063700
todd04fb0745
dd04fb0745
to070e43595b
070e43595b
to3877fa82a0
3877fa82a0
to7f8aa37cfa
7f8aa37cfa
toa2983e3696
a2983e3696
toc217d737fd
c217d737fd
toc5b0f064f4
c5b0f064f4
tobadf60faa1
badf60faa1
to37fbec4e5c
37fbec4e5c
tof35d5dce0e
f35d5dce0e
toc1f9821334
c1f9821334
to1df069fbd3
1df069fbd3
to7a2054bab6
7a2054bab6
to4c14e8c15e
4c14e8c15e
toa178f14633
a178f14633
tocda55a58cb
cda55a58cb
toa0449ddf68
a0449ddf68
to533e2a7d72
533e2a7d72
to3fad235a23
3fad235a23
to91ac58b76c
91ac58b76c
to9346c2bd4e
9346c2bd4e
toc8665e8957
c8665e8957
toa84295be02
a84295be02
to6b55427b76
6b55427b76
to0bfe5bd8ae
0bfe5bd8ae
to83d98a7571
83d98a7571
to1373d7fb3c
1373d7fb3c
to9a1aff4fe1
9a1aff4fe1
to14aea8768b
14aea8768b
to599bff191c
599bff191c
to92238c57ba
92238c57ba
tofd1c035107
fd1c035107
to6ccbc7a912
6ccbc7a912
to4272c6aa07
4272c6aa07
tob0c94006c4
b0c94006c4
to8426b76622
8426b76622
to8af521a38c
8af521a38c
to7a1067d045
7a1067d045
toa66d65a4b8
a66d65a4b8
to7d021daada
7d021daada
to07c2376432
07c2376432
to91b8e50a1f
91b8e50a1f
to21417b683e
Checkout
From your project repository, check out a new branch and test the changes.