2023-02-02, Version 18.14.0 ‘Hydrogen’ (LTS), @BethGriggs prepared by @juanarbol
Notable changes
Updated npm to 9.3.1
Based on the list of guidelines we’ve established on integrating npm
and node
,
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 any
breaking changes.
Engines
Explanation: the node engines supported by
npm@9
make it safe to allownpm@9
as the default in any LTS version of14
or16
, as well as anything later than or including18.0.0
npm
is now compatible with the following semver range for node:^14.17.0 || ^16.13.0 || >=18.0.0
Filesystem
Explanation: when run as root previous versions of npm attempted to manage file ownership automatically on the user’s behalf. this behavior was problematic in many cases and has been removed in favor of allowing users to manage their own filesystem permissions
npm
will no longer attempt to modify ownership of files it creates.
Auth
Explanation: any errors thrown from users having unsupported auth configurations will show
npm config fix
in the remediation instructions, which will allow the user to automatically have their auth config fixed.
- The presence of auth related settings that are not scoped to a specific
registry found in a config file is no longer supported and will throw errors.
Login
Explanation: the default
auth-type
has changed and users can opt back into the old behavior withnpm config set auth-type=legacy
.login
andadduser
have also been seperated making each command more closely match it’s name instead of being aliases for each other.
- Legacy auth types
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
Explanation: previously using multiple ignore/allow lists when packing was an undefined behavior, and now the order of operations is strictly defined when packing a tarball making it easier to follow and should only affect users relying on the previously undefined behavior.
npm pack
now follows a strict order of operations when applying ignore rules.
If afiles
array is present in thepackage.json
, then rules in.gitignore
and.npmignore
files from the root will be ignored.
Display/Debug/Timing Info
Explanation: these changes center around the display of information to the terminal including timing and debug log info. We do not anticipate these changes breaking any existing workflows.
- Links generated from git urls will now use
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
.- When run with the
--timing
flag,npm
now writes timing data to a file
alongside the debug log data, respecting thelogs-dir
option and falling
back to<CACHE>/_logs/
dir, instead of directly inside the cache directory. - The timing file data is no longer newline delimited JSON, and instead each run
will create a uniquely named<ID>-timing.json
file, with the<ID>
portion
being the same as the debug log. npm
now outputs some json errors on stdout. Previouslynpm
would output
all 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
Explanation:
install-links
is the only config or command in the list that has an effect on package installs. We fixed a number of issues that came up during prereleases with this change. It will also only be applied to new package trees created without a package-lock.json file. Any install with an existing lock file will not be changed.
- Deprecate boolean install flags in favor of
--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
- doc:
- add parallelism note to os.cpus() (Colin Ihrig) #45895
- http:
- join authorization headers (Marco Ippolito) #45982
- improved timeout defaults handling (Paolo Insogna) #45778
- stream:
- implement finished() for ReadableStream and WritableStream (Debadree Chatterjee) #46205
Commits
- [
1352f08778
] — assert: removeassert.snapshot
(Moshe Atlow) #46112 - [
4ee3238643
] — async_hooks: refactor to usevalidateObject
(Deokjin Kim) #46004 - [
79e0bf9b64
] — benchmark: include webstreams benchmark (Rafael Gonzaga) #45876 - [
ed1ac82469
] — benchmark,tools: use os.availableParallelism() (Deokjin Kim) #46003 - [
16ee02f2eb
] — (SEMVER-MINOR) buffer: add buffer.isUtf8 for utf8 validation (Yagiz Nizipli) #45947 - [
3bf2371a57
] — build: add extra semi check (Jiawen Geng) #46194 - [
560ee24157
] — build: fix arm64 cross-compile from powershell (Stefan Stojanovic) #45890 - [
48e3ad3aca
] — build: add option to disable shared readonly heap (Anna Henningsen) #45887 - [
52a7887b94
] — (SEMVER-MINOR) crypto: add CryptoKey Symbol.toStringTag (Filip Skokan) #46042 - [
a558774a40
] — crypto: add cipher update/final methods encoding validation (vitpavlenko) #45990 - [
599d1dc841
] — crypto: ensure auth tag set for chacha20-poly1305 (Ben Noordhuis) #46185 - [
24a101698c
] — crypto: return correct bit length in KeyObject’s asymmetricKeyDetails (Filip Skokan) #46106 - [
2de50fef84
] — (SEMVER-MINOR) crypto: add KeyObject Symbol.toStringTag (Filip Skokan) #46043 - [
782b6f6f9f
] — crypto: ensure exported webcrypto EC keys use uncompressed point format (Ben Noordhuis) #46021 - [
7a97f3f43b
] — crypto: fix CryptoKey prototype WPT (Filip Skokan) #45857 - [
1a8aa50aa2
] — crypto: fix CryptoKey WebIDL conformance (Filip Skokan) #45855 - [
c6436450ee
] — crypto: fix error when getRandomValues is called without arguments (Filip Skokan) #45854 - [
4cdf0002c5
] — debugger: refactor console in lib/internal/debugger/inspect.js (Debadree Chatterjee) #45847 - [
b7fe8c70fa
] — deps: update simdutf to 3.1.0 (Node.js GitHub Bot) #46257 - [
eaeb870cd7
] — deps: upgrade npm to 9.3.1 (npm team) #46242 - [
7c03a3d676
] — deps: upgrade npm to 9.3.0 (npm team) #46193 - [
340d76accb
] — deps: cherrypick simdutf patch (Jiawen Geng) #46194 - [
cce2af4306
] — deps: bump googletest to 2023.01.13 (Jiawen Geng) #46198 - [
d251a66bed
] — deps: add /deps/**/.github/ to .gitignore (Luigi Pinca) #46091 - [
874054f469
] — deps:…
2023-02-02, Version 19.6.0 (Current), @ruyadorno
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
- [
a7c9daa497
] — (SEMVER-MINOR) fs: add statfs() functions (Colin Ihrig) #46358 - [
34d70ce615
] — (SEMVER-MINOR) vm: expose cachedDataRejected for vm.compileFunction (Anna Henningsen) #46320 - [
b4ac794923
] — (SEMVER-MINOR) v8: support gc profile (theanarkh) #46255 - [
d52f60009a
] — (SEMVER-MINOR) src,lib: add constrainedMemory API for process (theanarkh) #46218 - [
5ad6c2088e
] — (SEMVER-MINOR) buffer: add isAscii method (Yagiz Nizipli) #46046 - [
fbdc3f7316
] — (SEMVER-MINOR) test_runner: add reporters (Moshe Atlow) #45712
Commits
- [
524eec70e2
] — benchmark: add trailing commas (Antoine du Hamel) #46370 - [
f318a85408
] — benchmark: remove buffer benchmarks redundancy (Brian White) #45735 - [
6186b3ea14
] — benchmark: introduce benchmark combination filtering (Brian White) #45735 - [
5ad6c2088e
] — (SEMVER-MINOR) buffer: add isAscii method (Yagiz Nizipli) #46046 - [
8c6c4338a6
] — build: export more OpenSSL symbols on Windows (Mohamed Akram) #45486 - [
d795d93901
] — build: fix MSVC 2022 Release compilation (Vladimir Morozov (REDMOND)) #46228 - [
8e363cf8e8
] — crypto: includehmac.h
incrypto_util.h
(Adam Langley) #46279 - [
c1f3e13c65
] — deps: update acorn to 8.8.2 (Node.js GitHub Bot) #46363 - [
813b160bd7
] — deps: upgrade npm to 9.4.0 (npm team) #46353 - [
9c2f3cea70
] — deps: update undici to 5.15.0 (Node.js GitHub Bot) #46213 - [
312e10c1e3
] — deps: update to uvwasi 0.0.15 (Colin Ihrig) #46253 - [
c7024eec16
] — doc: correct thesed
command for macOS in release process docs (Juan José) #46397 - [
996bac044b
] — doc: include webstreams in finished() and Duplex.from() parameters (Debadree Chatterjee) #46312 - [
891d18d55c
] — doc: pass string totextEncoder.encode
as input (Deokjin Kim) #46421 - [
968db213f8
] — doc: add tip for session.post function (theanarkh) #46354 - [
a64d7f4e31
] — doc: add documentation for socket.destroySoon() (Luigi Pinca) #46337 - [
975788899f
] — doc: fix commit message using test instead of deps (Tony Gorez) #46313 - [
1d44017f52
] — doc: add v8 fast api contribution guidelines (Yagiz Nizipli) #46199 - [
e2698c05fb
] — doc: fix small typo error (0xflotus) #46186 - [
f39fb8c001
] — doc: mark some parameters as optional in webstreams (Deokjin Kim) #46269 - [
7a9af38128
] — doc: update output of example inevents.getEventListeners
(Deokjin Kim) #46268 - [
729642f30b
] — esm: delete preload mock test (Geoffrey Booth) #46402 - [
7aac21e90a
] — esm: leverage loaders when resolving subsequent loaders (Maël Nison) #43772 - [
a7c9daa497
] — (SEMVER-MINOR) fs: add statfs() functions (Colin Ihrig) #46358 - [
1ec6270efa
] — http: res.setHeaders first implementation (Marco Ippolito) #46109 - [
d4370259e9
] — inspector: allow opening inspector whenNODE_V8_COVERAGE
is set (Moshe Atlow) #46113 - [
b966ef9a42
] — lib: remove unnecessary ObjectGetValueSafe (Chengzhong Wu) #46335 - [
2b06d66289
] — lib: cache parsed source maps to reduce memory footprint (Chengzhong Wu) #46225 - [
c38673df91
] — meta: update AUTHORS (Node.js GitHub Bot) #46399 - [
c10e602547
] — meta: update AUTHORS (Node.js GitHub Bot) #46303 - [
9dc026b14a
] — meta: add .mailmap entry (Rich Trott) #46303 - [
7c514574f7
] — meta: move evanlucas to emeritus (Evan Lucas) #46274 - [
3a3a6d87f1
] — module: move test reporter loading (Geoffrey Booth) #45923 - [
4ae2492a33
] — readline: fix detection of carriage return (Antoine du Hamel) #46306 - [
43cad78b7a
] — src: stop tracing agent before shutting down libuv (Santiago Gimeno) #46380 - [
360a3f3094
] — src: get rid of fp arithmetic in ParseIPv4Host (Tobias Nießen) #46326 - [
e7b507a8cf
] — src: use UNREACHABLE instead of CHECK(falsy) (Tobias Nießen) #46317 - [
4c59b60ee8
] — src: add support for ETW stack walking (José Dapena Paz) #46203 - [
640d111f95
] — src: refactor EndsInANumber in node_url.cc and adds IsIPv4NumberValid (Miguel Teixeira) #46227 - [
fb7bee2b6e
] — src: fix c++ exception on bad command line arg (Ben Noordhuis) #46290 - [
18c95ec4bd
] — src: remove unreachable UNREACHABLE (Tobias Nießen) #46281 - [
35bf93b01a
] — src: replace custom ASCII validation with simdutf one (Anna Henningsen) #46271 - [
8307a4bbcd
] — src: replace unreachable code with static_assert (Tobias Nießen) #46250 - [
7cf0da020a
] — src: use explicit C++17 fallthrough (Tobias Nießen) #46251 - [
d52f60009a
] — (SEMVER-MINOR) src,lib: add constrainedMemory AP…
2023-01-24, Version 19.5.0 (Current), @RafaelGSS
Notable Changes
- http:
- (SEMVER-MINOR) join authorization headers (Marco Ippolito) #45982
- lib::
- add webstreams to Duplex.from() (Debadree Chatterjee) #46190
- stream:
- implement finished() for ReadableStream and WritableStream (Debadree Chatterjee) #46205
Commits
- [
def36946da
] — assert: removeassert.snapshot
(Moshe Atlow) #46112 - [
e1c56ec3fd
] — benchmark,tools: use os.availableParallelism() (Deokjin Kim) #46003 - [
370f621d4d
] — build: add extra semi check (Jiawen Geng) #46194 - [
476c6f892d
] — crypto: avoid hang when no algorithm available (Richard Lau) #46237 - [
8b22310940
] — (SEMVER-MINOR) crypto: add CryptoKey Symbol.toStringTag (Filip Skokan) #46042 - [
78be87b9f9
] — crypto: add cipher update/final methods encoding validation (vitpavlenko) #45990 - [
dc0cdaa101
] — crypto: ensure auth tag set for chacha20-poly1305 (Ben Noordhuis) #46185 - [
1146f02dc5
] — crypto: return correct bit length in KeyObject’s asymmetricKeyDetails (Filip Skokan) #46106 - [
961710bb72
] — (SEMVER-MINOR) crypto: add KeyObject Symbol.toStringTag (Filip Skokan) #46043 - [
9cfdac6c82
] — deps: V8: cherry-pick e39af94dd18e (Lu Yahan) #46142 - [
26cde8efb7
] — deps: update simdutf to 3.1.0 (Node.js GitHub Bot) #46257 - [
3f9fb37130
] — deps: cherrypick simdutf patch (Jiawen Geng) #46194 - [
4ff2822836
] — deps: bump googletest to 2023.01.13 (Jiawen Geng) #46198 - [
49556247d2
] — deps: add /deps/**/.github/ to .gitignore (Luigi Pinca) #46091 - [
0c4df83e0d
] — deps: add simdutf version to metadata (Mike Roth) #46145 - [
69aafc3ddd
] — deps: update simdutf to 2.1.0 (Node.js GitHub Bot) #46128 - [
a266daccb5
] — deps: update corepack to 0.15.3 (Node.js GitHub Bot) #46037 - [
6cd70573eb
] — deps: upgrade npm to 9.3.1 (npm team) #46242 - [
679aae2da8
] — deps: upgrade npm to 9.3.0 (npm team) #46193 - [
38dd5061f2
] — dgram: sync the old handle state to new handle (theanarkh) #46041 - [
e36af49b35
] — doc: fix mismatched arguments ofNodeEventTarget
(Deokjin Kim) #45678 - [
58b836f7c4
] — doc: update events API example to have runnable code (Deokjin Kim) #45760 - [
5c350298b4
] — doc: add note to tls docs about secureContext availability (Tim Gerk) #46224 - [
90924ce198
] — doc: add text around collaborative expectations (Michael Dawson) #46121 - [
2d328355d4
] — doc: update to match changed--dns-result-order
default (Mordy Tikotzky) #46148 - [
1015a606b7
] — doc: add Node-API media link (Kevin Eady) #46189 - [
6e355efcff
] — doc: update http.setMaxIdleHTTPParsers arguments (Debadree Chatterjee) #46168 - [
f18ab9405a
] — doc: use «file system» instead of «filesystem» (Rich Trott) #46178 - [
1b45713b00
] — doc: https update default request timeout (Marco Ippolito) #46184 - [
4c88721e2f
] — doc: make options of readableStream.pipeTo as optional (Deokjin Kim) #46180 - [
538c53f010
] — doc: add PerformanceObserver.supportedEntryTypes to doc (theanarkh) #45962 - [
eef7489d24
] — doc: duplex and readable from uncaught execption warning (Marco Ippolito) #46135 - [
686fe585b5
] — doc: remove outdated sections frommaintaining-v8
(Antoine du Hamel) #46137 - [
2e826ad528
] — doc: fix (EC)DHE remark in TLS docs (Tobias Nießen) #46114 - [
2e22b29add
] — doc: fix ERR_TLS_RENEGOTIATION_DISABLED text (Tobias Nießen) #46122 - [
e222a2f1d1
] — doc: fix spelling in SECURITY.md (Vaishno Chaitanya) #46124 - [
7718e82f0d
] — doc: abort controller emits error in child process (Debadree Chatterjee) #46072 - [
76408bc1ed
] — doc: fixevent.cancelBubble
documentation (Deokjin Kim) #45986 - [
82023f2570
] — doc: update output of example in inspector (Deokjin Kim) #46073 - [
a42fc512b6
] — doc: add personal pronouns option (Filip Skokan) #46118 - [
fafae5955d
] — doc: mention how to run ncu-ci citgm (Rafael Gonzaga) #46090 - [
e1fd2f24d9
] — doc: include updating release optional step (Rafael Gonzaga) #46089 - [
1996e610fd
] — doc: describe argument ofSymbol.for
(Deokjin Kim) #46019 - [
b002330216
] — doc,crypto: fix WebCryptoAPI import keyData and export return (Filip Skokan) #46076 - [
fa3e0c86c7
] — esm: markimportAssertions
as required (Antoine du Hamel) #46164 - [
f85a8e4c59
] — events: addinitEvent
to Event (Deokjin Kim) #46069 - [
5bdfaae680
] — events: change status ofevent.returnvalue
to legacy (Deokjin Kim) #46175 - [
ad7846fe97
] — events: change status ofevent.cancelBubble
to legacy (Deokjin Kim) #46146 - [
5304c89682
] — events: change status ofevent.srcElement
to legacy (Deokjin Kim) #46085 - [
3dcdab3f16
] — events: check signal before listener (Deokjin Kim) #46054 - [
907d67de76
] — http: refactor to use `valid…
2023-01-06, Version 19.4.0 (Current), @RafaelGSS
Notable Changes
- buffer:
- (SEMVER-MINOR) add buffer.isUtf8 for utf8 validation (Yagiz Nizipli) #45947
- http:
- (SEMVER-MINOR) improved timeout defaults handling (Paolo Insogna) #45778
- net:
- add autoSelectFamily global getter and setter (Paolo Insogna) #45777
- os:
- (SEMVER-MINOR) add availableParallelism() (Colin Ihrig) #45895
- util:
- add fast path for text-decoder fatal flag (Yagiz Nizipli) #45803
Commits
- [
54b748acc0
] — async_hooks: refactor to usevalidateObject
(Deokjin Kim) #46004 - [
cf2ff81f26
] — benchmark: include webstreams benchmark (Rafael Gonzaga) #45876 - [
6e3d7f8c2d
] — bootstrap: optimize modules loaded in the built-in snapshot (Joyee Cheung) #45849 - [
d181b76374
] — bootstrap: make CJS loader snapshotable (Joyee Cheung) #45849 - [
508e830765
] — bootstrap: include event_target into the built-in snapshot (Joyee Cheung) #45849 - [
dd77c05480
] — bootstrap: support module_wrap binding in snapshot (Joyee Cheung) #45849 - [
fbe399c75c
] — (SEMVER-MINOR) buffer: add buffer.isUtf8 for utf8 validation (Yagiz Nizipli) #45947 - [
233a66f937
] — build: fix arm64 cross-compile from powershell (Stefan Stojanovic) #45890 - [
e7b98a3da2
] — build: add option to disable shared readonly heap (Anna Henningsen) #45887 - [
777c551edf
] — crypto: ensure exported webcrypto EC keys use uncompressed point format (Ben Noordhuis) #46021 - [
f7dba5bef7
] — crypto: fix globalThis.crypto this check (Filip Skokan) #45857 - [
56f3ad101b
] — crypto: fix CryptoKey prototype WPT (Filip Skokan) #45857 - [
c9747f1140
] — crypto: use globalThis.crypto over require(‘crypto’).webcrypto (Filip Skokan) #45817 - [
6eede72241
] — crypto: fix CryptoKey WebIDL conformance (Filip Skokan) #45855 - [
c9802862b7
] — crypto: fix error when getRandomValues is called without arguments (Filip Skokan) #45854 - [
3d09754186
] — debugger: refactor console in lib/internal/debugger/inspect.js (Debadree Chatterjee) #45847 - [
fdda2ff53b
] — deps: V8: cherry-pick 30861a39323d (Aaron Friel) #45851 - [
71bf513062
] — deps: patch V8 to 10.8.168.25 (Michaël Zasso) #45996 - [
0552b13232
] — deps: update simdutf to 2.0.9 (Node.js GitHub Bot) #45975 - [
e73be1b3b9
] — deps: update to uvwasi 0.0.14 (Colin Ihrig) #45970 - [
e4323f01c1
] — deps: fix updater github workflow job (Yagiz Nizipli) #45972 - [
05fee67238
] — Revert «deps: disable avx512 for simutf on benchmark ci» (Yagiz Nizipli) #45948 - [
98fc94a444
] — deps: disable avx512 for simutf on benchmark ci (Yagiz Nizipli) #45803 - [
344c5ec0ea
] — deps: add simdutf dependency (Yagiz Nizipli) #45803 - [
7bdad948c8
] — deps: V8: backport 8ca9f77d0f7c (Anna Henningsen) #45871 - [
29f90cf5af
] — deps: update timezone to 2022g (Node.js GitHub Bot) #45731 - [
99fec0bf64
] — deps: update undici to 5.14.0 (Node.js GitHub Bot) #45812 - [
faee973fa7
] — deps: V8: cherry-pick bc831f8ba33b (Yagiz Nizipli) #45788 - [
e2944109c6
] — deps: V8: cherry-pick bf0bd4868dde (Michaël Zasso) #45908 - [
e113d169ee
] — doc: update isUtf8 description (Yagiz Nizipli) #45973 - [
9e16406066
] — doc: sort http.createServer() options alphabetically (Luigi Pinca) #45680 - [
49253e1a8f
] — doc: use console.error for error case in timers and tls (Deokjin Kim) #46002 - [
8be1b666a7
] — doc: fix wrong output of example inurl.protocol
(Deokjin Kim) #45954 - [
9251dce8b2
] — doc: useos.availableParallelism()
in async_context and cluster (Deokjin Kim) #45979 - [
952e03ae66
] — doc: make EventEmitterAsyncResource’soptions
as optional (Deokjin Kim) #45985 - [
71cc3b3712
] — doc: replace single executable champion in strategic initiatives doc (Darshan Sen) #45956 - [
eaf6b63637
] — doc: update error message of example in repl (Deokjin Kim) #45920 - [
d8b5b7da75
] — doc: fix typos in packages.md (Eric Mutta) #45957 - [
4457e051c9
] — doc: remove port from example inurl.hostname
(Deokjin Kim) #45927 - [
908f4fab52
] — doc: show output of example in http (Deokjin Kim) #45915 - [
faf5c23084
] — (SEMVER-MINOR) doc: add parallelism note to os.cpus() (Colin Ihrig) #45895 - [
9ed547b73c
] — doc: fix wrong output of example inurl.password
(Deokjin Kim) #45928 - [
a89f8c1337
] — doc: fix some history entries indeprecations.md
(Antoine du Hamel) #45891 - [
cf30fca23f
] — doc: add tip for NODE_MODULE (theanarkh) #45797 - [
d500445aec
] — doc: reduce likelihood of mismerges during release (Richard Lau) #45864 - [
e229f060e3
] — doc: add backticks to webcrypto rsaOaepParams (Filip Skokan) #45883 - [
dfa58c1947
] — doc: remove release cleanup step (Michaël Zasso) #45858 - [
b93a9670a8
] — doc: add stream/promises pipeline and finished to doc (Marco Ippolito) #45832 - [
c86f4a17d6
] — doc: remove Juan Jose keys (Rafael Gonzaga) …
2023-01-05, Version 18.13.0 ‘Hydrogen’ (LTS), @danielleadams
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
and FormData
. It contains two properties that Blobs do not have: lastModified
, the last time the file was modified in ms, and name
, 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-level mock
object.
test('spies on an object method', (t) => { const number = { value: 5, add(a) { return this.value + a; }, }; t.mock.method(number, 'add'); assert.strictEqual(number.add(3), 8); assert.strictEqual(number.add.mock.calls.length, 1); });
Contributed by Colin Ihrig in #45326
Other notable changes
- build:
- disable v8 snapshot compression by default (Joyee Cheung) #45716
- crypto:
- update root certificates (Luigi Pinca) #45490
- deps:
- update ICU to 72.1 (Michaël Zasso) #45068
- doc:
- add doc-only deprecation for headers/trailers setters (Rich Trott) #45697
- add Rafael to the tsc (Michael Dawson) #45691
- deprecate use of invalid ports in
url.parse
(Antoine du Hamel) #45576 - add lukekarrys to collaborators (Luke Karrys) #45180
- add anonrig to collaborators (Yagiz Nizipli) #45002
- deprecate url.parse() (Rich Trott) #44919
- lib:
- drop fetch experimental warning (Matteo Collina) #45287
- net:
- (SEMVER-MINOR) add autoSelectFamily and autoSelectFamilyAttemptTimeout options (Paolo Insogna) #44731
- src:
- (SEMVER-MINOR) add uvwasi version (Jithil P Ponnan) #45639
- (SEMVER-MINOR) add initial shadow realm support (Chengzhong Wu) #42869
- test_runner:
- (SEMVER-MINOR) add t.after() hook (Colin Ihrig) #45792
- (SEMVER-MINOR) don’t use a symbol for runHook() (Colin Ihrig) #45792
- tls:
- (SEMVER-MINOR) add «ca» property to certificate object (Ben Noordhuis) #44935
- remove trustcor root ca certificates (Ben Noordhuis) #45776
- tools:
- update certdata.txt (Luigi Pinca) #45490
- util:
- add fast path for utf8 encoding (Yagiz Nizipli) #45412
- improve textdecoder decode performance (Yagiz Nizipli) #45294
- (SEMVER-MINOR) add MIME utilities (#21128) (Bradley Farias) #21128
Commits
- [
40123a6bb0
] — (SEMVER-MINOR) async_hooks: add hook to stop propagation (Gerhard Stöbich) #45386 - [
9925d20ed8
] — benchmark: add variety of inputs to text-encoder (Yagiz Nizipli) #45787 - [
5e167bd658
] — benchmark: make benchmarks runnable in older versions of Node.js (Joyee Cheung) #45746 - [
a1421623ac
] — benchmark: add v8 serialize benchmark (Yagiz Nizipli) #45476 - [
fcf61884cc
] — benchmark: add text-encoder benchmark (Yagiz Nizipli) #45450 - [
762d285c98
] — benchmark: add parameters to text-decoder benchmark (Yagiz Nizipli) #45363 - [
ab891ecbff
] — benchmark: fix text-decoder benchmark (Yagiz Nizipli) #45363 - [
1ed312a737
] — benchmark: add blob benchmark (Yagiz Nizipli) #44990 - [
2ee3d81277
] — bootstrap: merge main thread and worker thread initializations (Joyee Cheung) #44869 - [
e638ea4f48
] — bootstrap: check more metadata when loading the snapshot (Joyee Cheung) #44132 - [
bfcf4f0046
] — buffer: make decodeUTF8 params loose (Yagiz Nizipli) #45610 - [
3a7f3d5993
] — (SEMVER-MINOR) buffer: introduce File (Khafra) #45139 - [
345b847aa6
] — buffer: fix validation of options inBlob
constructor (Antoine du Hamel) #45156 - [
1ddc438444
] — build: disable v8 snapshot compression by default (Joyee Cheung) #45716 - [
bd1a2fbd91
] — build: add python 3.11 support for android (Mohammed Keyvanzadeh) #45765 - [
2b0ace302d
] — build: rework gyp files for zlib (Richard Lau) #45589 - [
5ab7a30a06
] — build: avoid redefined macro (Michaël Zasso) #45544 - [
f58b32c22e
] — build: fix env.h for cpp20 (Jiawen Geng) #45516 - [
1de1f679ec
] — Revert «build: remove precompiled header and debug information for host builds» (Stefan Stojanovic) #45432 - [
89d1eb58b0
] — build: add —v8-disable-object-print flag (MURAKAMI Masahiko) #45458 - [
f2a4def232
] — build: make scripts in gyp run with right python (Jiawen Geng) #45435 - [
473a879c91
] — build: workaround for node-core-utils (Jiawen Geng) #45199 - [
abcc034c61
] — build: fix icu-small build with ICU 72.1 (Steven R. Loomis) #45195 - [
8a99221a21
] — build: remove unused language files (Ben Noordhuis) #45138 - [
3fb44f9413
] — build: add GitHub token to auto-start-ci workflow (Richard Lau) #45185 - [
2aac993bb2
] — build: add version info to timezone update PR (Darshan Sen) #45021 - [
0db19b3c60
] — build: support Python 3.11 (Luigi Pinca) #45191 - [
fb008a2e9b
] — build,deps,src: fix Intel VTune profiling support (Shi Lei) #45248 - [
61bc27a5b4
] — build,win: pass —debug-nghttp2 to configure (Santiago Gimeno) #45209 - [
7b68c06988
] — child_process: validate arguments for null bytes (Darshan Sen) #44782 - [
bac6b7d900
] — crypto: simplify lazy loading of internal modules (Antoin…
2022-12-14, Version 19.3.0 (Current), @targos
Notable Changes
Updated npm to 9.2.0
Based on the list of guidelines we’ve established on integrating npm
and node
,
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 any
breaking changes.
Engines
Explanation: the node engines supported by
npm@9
make it safe to allownpm@9
as the default in any LTS version of14
or16
, as well as anything later than or including18.0.0
npm
is now compatible with the following semver range for node:^14.17.0 || ^16.13.0 || >=18.0.0
Filesystem
Explanation: when run as root previous versions of npm attempted to manage file ownership automatically on the user’s behalf. this behavior was problematic in many cases and has been removed in favor of allowing users to manage their own filesystem permissions
npm
will no longer attempt to modify ownership of files it creates.
Auth
Explanation: any errors thrown from users having unsupported auth configurations will show
npm config fix
in the remediation instructions, which will allow the user to automatically have their auth config fixed.
- The presence of auth related settings that are not scoped to a specific
registry found in a config file is no longer supported and will throw errors.
Login
Explanation: the default
auth-type
has changed and users can opt back into the old behavior withnpm config set auth-type=legacy
.login
andadduser
have also been seperated making each command more closely match it’s name instead of being aliases for each other.
- Legacy auth types
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
Explanation: previously using multiple ignore/allow lists when packing was an undefined behavior, and now the order of operations is strictly defined when packing a tarball making it easier to follow and should only affect users relying on the previously undefined behavior.
npm pack
now follows a strict order of operations when applying ignore rules.
If afiles
array is present in thepackage.json
, then rules in.gitignore
and.npmignore
files from the root will be ignored.
Display/Debug/Timing Info
Explanation: these changes center around the display of information to the terminal including timing and debug log info. We do not anticipate these changes breaking any existing workflows.
- Links generated from git urls will now use
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
.- When run with the
--timing
flag,npm
now writes timing data to a file
alongside the debug log data, respecting thelogs-dir
option and falling
back to<CACHE>/_logs/
dir, instead of directly inside the cache directory. - The timing file data is no longer newline delimited JSON, and instead each run
will create a uniquely named<ID>-timing.json
file, with the<ID>
portion
being the same as the debug log. npm
now outputs some json errors on stdout. Previouslynpm
would output
all 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
Explanation:
install-links
is the only config or command in the list that has an effect on package installs. We fixed a number of issues that came up during prereleases with this change. It will also only be applied to new package trees created without a package-lock.json file. Any install with an existing lock file will not be changed.
- Deprecate boolean install flags in favor of
--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
- [
03db415540
] — build: disable v8 snapshot compression by default (Joyee Cheung) #45716 - [
9f51b9e50d
] — doc: add doc-only deprecation for headers/trailers setters (Rich Trott) #45697 - [
b010820c4e
] — doc: add Rafael Gonzaga to the TSC (Michael Dawson) #45691 - [
b8b13dccd9
] — (SEMVER-MINOR) net: add autoSelectFamily and autoSelectFamilyAttemptTimeout options (Paolo Insogna) #44731 - [
5d7cd363ab
] — (SEMVER-MINOR) src: add uvwasi version (Jithil P Ponnan) #45639 - [
4165dcddf0
] — (SEMVER-MINOR) test_runner: add t.after() hook (Colin Ihrig) #45792 - [
d1bd7796ad
] — (SEMVER-MINOR) test_runner: don’t use a symbol for runHook() (Colin Ihrig) #45792 - [
691f58e76c
] — tls: remove trustcor root ca certificates (Ben Noordhuis) #45776
Commits
- [
382efdf460
] — benchmark: add variety of inputs to text-encoder (Yagiz Nizipli) #45787 - [
102c2dc071
] — benchmark: make benchmarks runnable in older versions of Node.js (Joyee Cheung) #45746 - [
e2caf7ced9
] — bootstrap: lazy load non-essential modules (Joyee Cheung) #45659 - [
49840d443c
] — buffer: remove unnecessary lazy loading (Antoine du Hamel) #45807 - [
17847683dc
] — buffer: make decodeUTF8 params loose (Yagiz Nizipli) #45610 - [
03db415540
] — build: disable v8 snapshot compression by default (Joyee Cheung) #45716 - [
95a23e24f3
] — build: add python 3.11 support for android (Mohammed Keyvanzadeh) #45765 - [
09bc89daba
] — build: rework gyp files for zlib (Richard Lau) #45589 - [
b5b56b6b45
] — crypto: simplify lazy loading of internal modules (Antoine du Hamel) #45809 - [
2e4d37e3f0
] — crypto: fix CipherBase Update int32 overflow (Marco Ippolito) #45769 - [
573eab9235
] — crypto: refactor ArrayBuffer to bigint conversion utils (Antoine du Hamel) #45567 - [
845f805490
] — crypto: refactor verify acceptable key usage functions (Filip Skokan) #45569 - [
7cc9998737
] — crypto: fix ECDH webcrypto public CryptoKey usages (Filip Skokan) #45569 - [
d030963f37
] — crypto: validate CFRG webcrypto JWK import «d» and «x» are a pair (Filip Skokan) #45569 - [
9cd106efdc
] — crypto: use DataError for CFRG webcrypto raw and jwk import key checks (Filip Skokan) #45569 - [
9e2e3de6ce
] — crypto: use DataError for webcrypto keyData import failures (Filip Skokan) #45569 - [
40037b4e79
] — crypto: fix X25519 and X448 webcrypto public CryptoKey usages (Filip Skokan) #45569 - [
de2b6b97b9
] — crypto: ensure «x» is present when importing private CFRG webcrypto keys (Filip Skokan) #45569 - [[
75dbce9a07
](https://git…
2022-12-13, Version 16.19.0 ‘Gallium’ (LTS), @richardlau
Notable Changes
OpenSSL 1.1.1s
This update is a bugfix release and does not address any security
vulnerabilities.
Root certificates updated to NSS 3.85
Certificates added:
- Autoridad de Certificacion Firmaprofesional CIF A62634068
- Certainly Root E1
- Certainly Root R1
- D-TRUST BR Root CA 1 2020
- D-TRUST EV Root CA 1 2020
- DigiCert TLS ECC P384 Root G5
- DigiCert TLS RSA4096 Root G5
- E-Tugra Global Root CA ECC v3
- E-Tugra Global Root CA RSA v3
- HiPKI Root CA — G1
- ISRG Root X2
- Security Communication ECC RootCA1
- Security Communication RootCA3
- Telia Root CA v2
- vTrus ECC Root CA
- vTrus Root CA
Certificates removed:
- Cybertrust Global Root
- DST Root CA X3
- GlobalSign Root CA — R2
- Hellenic Academic and Research Institutions RootCA 2011
Time zone update to 2022f
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
- [
33707dcd03
] — dgram: add dgram send queue info (theanarkh) #44149
Dependency updates:
- [
3b2b70d792
] — deps: upgrade npm to 8.19.3 (npm team) #45322
Experimental features:
- [
1e0dcd1ee0
] — cli: add--watch
(Moshe Atlow) #44366 - [
8c73279ebb
] — util: add default value option to parsearg (Manuel Spigolon) #44631
Commits
- [
bbef3c42f6
] — build: add version info to timezone update PR (Darshan Sen) #45021 - [
cc2c7648e0
] — build: support Python 3.11 (Luigi Pinca) #45191 - [
ac24c80663
] — build: remove redundant condition from common.gypi (Richard Lau) #45076 - [
03dcbe3030
] — build: fix bad upstream merge (Stephen Gallagher) #44642 - [
1e0dcd1ee0
] — cli: add--watch
(Moshe Atlow) #44366 - [
96d131665e
] — cluster: use inspector utils (Moshe Atlow) #44592 - [
704836033a
] — crypto: update root certificates (Luigi Pinca) #45490 - [
5a776d4a69
] — deps: update timezone to 2022f (Richard Lau) #45613 - [
3b2b70d792
] — deps: upgrade npm to 8.19.3 (npm team) #45322 - [
9fbc8b21db
] — deps: update corepack to 0.15.1 (Node.js GitHub Bot) #45331 - [
87e3d002ca
] — deps: update corepack to 0.15.0 (Node.js GitHub Bot) #45235 - [
e972ff7b13
] — deps: V8: backport bbd800c6e359 (Chengzhong Wu) #44947 - [
af9d8217c0
] — deps: V8: cherry-pick b95354290941 (Chengzhong Wu) #44947 - [
38202d321b
] — deps: update undici to 5.12.0 (Node.js GitHub Bot) #45236 - [
7c0da6adf9
] — deps: update archs files for OpenSSL-1.1.1s (RafaelGSS) #45274 - [
1149ead6f7
] — deps: upgrade openssl sources to OpenSSL_1_1_1s (RafaelGSS) #45274 - [
cd54bce4f5
] — deps: update timezone (Node.js GitHub Bot) #44950 - [
2901abe4f0
] — deps: update undici to 5.11.0 (Node.js GitHub Bot) #44929 - [
c80cf97033
] — deps: update corepack to 0.14.2 (Node.js GitHub Bot) #44775 - [
33707dcd03
] — dgram: add dgram send queue info (theanarkh) #44149 - [
c708d9bb94
] — doc: fix typo in parseArgs default value (Tobias Nießen) #45083 - [
5a0efa05d2
] — node-api: handle no support for external buffers (Michael Dawson) #45181 - [
db31de634e
] — readline: refactor to avoid unsafe regex primordials (Antoine du Hamel) #43475 - [
fbc52e5729
] — src: disambiguate terms used to refer to builtins and addons (Joyee Cheung) #44135 - [
953072d3db
] — src: let http2 streams end after session close (Santiago Gimeno) #45153 - [
54608d8dc3
] — src: split property helpers from node::Environment (Chengzhong Wu) #44056 - [
6733556783
] — test: add test to validate changelogs for releases (Richard Lau) #45325 - [
821d832cef
] — test: mark test-watch-mode* as flaky on all platforms (Pierrick Bouvier) #45049 - [
02a18eac69
] — test: fix test-runner-inspect (Moshe Atlow) #44620 - [
197df63f74
] — test: add a test to ensure the correctness of timezone upgrades (Darshan Sen) #45299 - [
42e9d8016a
] — test: fix textdecoder test for small-icu builds (Richard Lau) #45225 - [
6d736a56d8
] — test: fix watch mode test flake (Moshe Atlow) #44739 - [
543d3d2bf3
] — test: deflake watch mode tests (Moshe Atlow) #44621 - [
97f6caf4eb
] — test: split watch mode inspector tests to sequential (Moshe Atlow) #44551 - [
499750ff7a
] — test: update list of known globals (Antoine du Hamel) #45255 - [
64d343af74
] — test_runner: support using--inspect
with--test
(Moshe Atlow) #44520 - [
99ee5e484d
] — test_runner: fixduration_ms
to be milliseconds (Moshe Atlow) #44450 - [
37e909251c
] — test_runner: support programmatically running--test
(Moshe Atlow) #44241 - [
0ae5694f88
] — tools: update certdata.txt (Luigi Pinca) #45490 - [
891368cefd
] — tools: remove faulty early termination logic from update-timezone.mjs (Darshan Sen) #44870 - [
543493c242
] — tools: fix timezone update tool (Darshan Sen) #44870 - [
c77f660b75
] — tools: fixcreate-or-update-pull-request-action
hash on GHA (Antoine du Hamel) #45166 - [
58c30dd049
] — tools: update gr2m/create-or-update-pull-request-action (Luigi Pinca) #45022 - [
749a4b3e5e
] — tools: use Python 3.11 in GitHub Actions workflows (Lu…
2022-12-13, Version 14.21.2 ‘Fermium’ (LTS), @richardlau
Notable Changes
OpenSSL 1.1.1s
This update is a bugfix release and does not address any security
vulnerabilities.
Root certificates updated to NSS 3.85
Certificates added:
- Autoridad de Certificacion Firmaprofesional CIF A62634068
- Certainly Root E1
- Certainly Root R1
- D-TRUST BR Root CA 1 2020
- D-TRUST EV Root CA 1 2020
- DigiCert TLS ECC P384 Root G5
- DigiCert TLS RSA4096 Root G5
- E-Tugra Global Root CA ECC v3
- E-Tugra Global Root CA RSA v3
- HiPKI Root CA — G1
- ISRG Root X2
- Security Communication ECC RootCA1
- Security Communication RootCA3
- Telia Root CA v2
- vTrus ECC Root CA
- vTrus Root CA
Certificates removed:
- Cybertrust Global Root
- DST Root CA X3
- GlobalSign Root CA — R2
- Hellenic Academic and Research Institutions RootCA 2011
Time zone update to 2022f
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.
Commits
- [
436a596e99
] — crypto: update root certificates (Luigi Pinca) #45490 - [
4b422d34af
] — deps: V8: cherry-pick d2db7fa7f786 (Richard Lau) #45785 - [
625f4bf3a9
] — deps: update corepack to 0.15.1 (Node.js GitHub Bot) #45331 - [
48a9810de8
] — deps: update corepack to 0.15.0 (Node.js GitHub Bot) #45235 - [
9f4e64b603
] — deps: update timezone to 2022f (Richard Lau) #45521 - [
f297b6bd21
] — deps: update archs files for OpenSSL-1.1.1s (RafaelGSS) #45272 - [
11629fef15
] — deps: upgrade openssl sources to 1.1.1s (RafaelGSS) #45272 - [
c3a90c4b44
] — http2: fix memory leak when nghttp2 hd threshold is reached (rogertyang) #41502 - [
785dc3efee
] — module: cjs-module-lexer WebAssembly fallback (Guy Bedford) #43612 - [
2dbeb889f6
] — node-api: handle no support for external buffers (Michael Dawson) #45181 - [
5b2ea124f3
] — test: add test to validate changelogs for releases (Richard Lau) #45325 - [
f13f889956
] — test: add a test to ensure the correctness of timezone upgrades (Darshan Sen) #45299 - [
5608e6fa72
] — tools: update certdata.txt (Luigi Pinca) #45490 - [
d6f1d7107b
] — tools: have test-asan use ubuntu-20.04 (Filip Skokan) #45581 - [
370a00f737
] — tools: make license-builder.sh comply with shellcheck 0.8.0 (Rich Trott) #41258
2022-11-29, Version 19.2.0 (Current), @ruyadorno
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
- buffer
- (SEMVER-MINOR) introduce
File
class (Khafra) #45139
- (SEMVER-MINOR) introduce
- deps
- update V8 to 10.8.168.20 (Michaël Zasso) #45230
- doc
- deprecate use of invalid ports in
url.parse
(Antoine du Hamel) #45576
- deprecate use of invalid ports in
- util
- add fast path for utf8 encoding (Yagiz Nizipli) #45412
Commits
- [
7cff1e14ba
] — (SEMVER-MINOR) async_hooks: add hook to stop propagation (Gerhard Stöbich) #45386 - [
f08f6a64a3
] — benchmark: add v8 serialize benchmark (Yagiz Nizipli) #45476 - [
26ad54c1a2
] — benchmark: add text-encoder benchmark (Yagiz Nizipli) #45450 - [
6c56c9722b
] — (SEMVER-MINOR) buffer: introduce File (Khafra) #45139 - [
6e1e25d6dd
] — build: avoid redefined macro (Michaël Zasso) #45544 - [
5c9b2a7c82
] — build: fix env.h for cpp20 (Jiawen Geng) #45516 - [
54fd8a1966
] — build: reset embedder string to «-node.0» (Michaël Zasso) #45230 - [
0f3cf7e5ce
] — Revert «build: remove precompiled header and debug information for host builds» (Stefan Stojanovic) #45432 - [
62ef1eb4ff
] — build: add —v8-disable-object-print flag (MURAKAMI Masahiko) #45458 - [
1ce2f56cf6
] — build: make scripts in gyp run with right python (Jiawen Geng) #45435 - [
9ffe3c051a
] — build,deps,src: fix Intel VTune profiling support (Shi Lei) #45248 - [
bd3accc7b2
] — crypto: clear OpenSSL error queue after calling X509_check_private_key() (Filip Skokan) #45495 - [
724addb293
] — crypto: update root certificates (Luigi Pinca) #45490 - [
efe19eb7f5
] — crypto: clear OpenSSL error queue after calling X509_verify() (Takuro Sato) #45377 - [
f63ae525fa
] — deps: V8: cherry-pick 2ada52cffbff (Michaël Zasso) #45573 - [
43e002e3d4
] — deps: update base64 to 0.5.0 (Facundo Tuesca) #45509 - [
aaa4ac7735
] — deps: V8: cherry-pick 9df5ef70ff18 (Yagiz Nizipli) #45230 - [
e70c3090ff
] — deps: V8: cherry-pick f1c888e7093e (Michaël Zasso) #45230 - [
51eb323c50
] — deps: V8: cherry-pick 92a7385171bb (Michaël Zasso) #45230 - [
1370b1a769
] — deps: fix V8 build on Windows with MSVC (Michaël Zasso) #45230 - [
3cd6367e6a
] — deps: silence irrelevant V8 warning (Michaël Zasso) #45230 - [
9348bdd28d
] — deps: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) #45230 - [
e9292544b0
] — deps: fix V8 build issue with inline methods (Jiawen Geng) #45230 - [
a3b9967553
] — deps: update V8 to 10.8.168.20 (Michaël Zasso) #45230 - [
117efe98b0
] — deps: V8: cherry-pick 9df5ef70ff18 (Yagiz Nizipli) #45474 - [
628891d4dd
] — deps: update timezone to 2022f (Node.js GitHub Bot) #45289 - [
45ba14b3be
] — deps: fix zlib compilation for CPUs without SIMD features (Anna Henningsen) #45387 - [
c41e67fe1d
] — deps: update zlib to upstream 8bbd6c31 (Luigi Pinca) #45387 - [
413bf9ad39
] — deps: patch V8 to 10.7.193.22 (Michaël Zasso) #45460 - [
ad8da86b3f
] — deps: update acorn to 8.8.1 (Node.js GitHub Bot) #45441 - [
17e6031bf0
] — deps: V8: cherry-pick 031b98b25cba (Michaël Zasso) #45375 - [
9e0e97c121
] — diagnostics_channel: built-in channels should remain experimental (Stephen Belanger) #45423 - [
44886e55e1
] — diagnostics_channel: mark as stable (Stephen Belanger) #45290 - [
b6b5b51687
] — doc: deprecate use of invalid ports inurl.parse
(Antoine du Hamel) #45576 - [
d805d5a894
] — doc: clarify changes in readableFlowing (Kohei Ueno) #45554 - [
015842f3d2
] — doc: use console.error for error case in http2 (Deokjin Kim) #45577 - [
4345732900
] — doc: add version description about fsPromise.constants (chlorine) #45556 - [
16643dbb19
] — doc: add missing documentation for paramEncoding (Tobias Nießen) #45523 - [
246cd358b5
] — doc: fix typo in threat model (Tobias Nießen) #45558 - [
5b1df22db0
] — doc: add Node.js Threat Model (Rafael Gonzaga) #45223 - [
19d8493c92
] — doc: run license-builder (github-actions[bot]) #45553 - [
6f0bc097ea
] — doc: add async_hooks migration note (Geoffrey Booth) #45335 - [
118de4b44c
] — doc: fix RESOLVE_ESM_MATCH in modules.md (翠 / green) #45280 - [
4de67d1ef4
] — doc: add arm64 to os.machine() (Carter Snook) #45374 - [
1812a89c00
] — doc: add lint rule to enforce trailing commas (Antoine du Hamel) #45471 - [
4128c27f66
] — doc: include v19.1.0 inCHANGELOG.md
(Rafael Gonzaga) #45462 - [
94a6a97ec6
] — doc: adjust wording to eliminate awkward typography (Konv) #45398 - [
a6fe707b62
] — doc: fix typo in maintaining-dependencies.md (Tobias Nießen) #45428 - [
8906a4e58e
] — esm: add JSDoc property descriptions for loader (Rich Trott) #45370 - [[
4e5ad9df50
](https://github.com/nodejs/node/com…
2022-11-14, Version 19.1.0 (Current), @RafaelGSS
Notable changes
Support function mocking on Node.js test runner
The node:test
module supports mocking during testing via a top-level mock
object.
test('spies on an object method', (t) => { const number = { value: 5, add(a) { return this.value + a; }, }; t.mock.method(number, 'add'); assert.strictEqual(number.add(3), 8); assert.strictEqual(number.add.mock.calls.length, 1); });
Contributed by Colin Ihrig in #45326
fs.watch recursive support on Linux
fs.watch
supports recursive watch using the recursive: true
option.
const watcher = fs.watch(testDirectory, { recursive: true }); watcher.on('change', function(event, filename) { });
Contributed by Yagiz Nizipli in #45098
Other notable changes
- deps
- update ICU to 72.1 (Michaël Zasso) #45068
- doc
- add lukekarrys to collaborators (Luke Karrys) #45180
- add anonrig to collaborators (Yagiz Nizipli) #45002
- lib
- drop fetch experimental warning (Matteo Collina) #45287
- util
- (SEMVER-MINOR) add MIME utilities (Bradley Farias) #21128
- improve textdecoder decode performance (Yagiz Nizipli) #45294
Commits
- [
c9cf399ec7
] — benchmark: add parameters to text-decoder benchmark (Yagiz Nizipli) #45363 - [
79f6bb061d
] — benchmark: fix text-decoder benchmark (Yagiz Nizipli) #45363 - [
a27c994ced
] — benchmark: add blob benchmark (Yagiz Nizipli) #44990 - [
c45b6aee78
] — bootstrap: merge main thread and worker thread initializations (Joyee Cheung) #44869 - [
33691208df
] — buffer: fix validation of options inBlob
constructor (Antoine du Hamel) #45156 - [
7b938df296
] — build: support Python 3.11 (Luigi Pinca) #45191 - [
75e0a2d109
] — build: workaround for node-core-utils (Jiawen Geng) #45199 - [
f598edbdf4
] — build: fix icu-small build with ICU 72.1 (Steven R. Loomis) #45195 - [
29b9f4f90c
] — build: remove unused language files (Ben Noordhuis) #45138 - [
3a1ee940d1
] — build: add GitHub token to auto-start-ci workflow (Richard Lau) #45185 - [
17349a2f42
] — build: restore Windows resource file (Richard Lau) #45042 - [
24e24bd063
] — build: add version info to timezone update PR (Darshan Sen) #45021 - [
8d7aa53e6b
] — build,win: pass —debug-nghttp2 to configure (Santiago Gimeno) #45209 - [
b2e60480f3
] — child_process: validate arguments for null bytes (Darshan Sen) #44782 - [
1f0edde412
] — crypto: handle more webcrypto errors with OperationError (Filip Skokan) #45320 - [
13fb05e12b
] — crypto: handle unsupported AES ciphers in webcrypto (Filip Skokan) #45321 - [
c168cbfbb3
] — deps: V8: cherry-pick 56816d76c121 (Shi Pujin) #45353 - [
1432474abf
] — deps: upgrade npm to 8.19.3 (npm team) #45322 - [
f35d56200d
] — deps: update corepack to 0.15.1 (Node.js GitHub Bot) #45331 - [
44de2321aa
] — deps: patch V8 to 10.7.193.20 (Michaël Zasso) #45228 - [
bfe3819f08
] — deps: upgrade to libuv 1.44.2 (Luigi Pinca) #42340 - [
0d41df96b3
] — deps: update corepack to 0.15.0 (Node.js GitHub Bot) #45235 - [
0d241638ca
] — deps: update undici to 5.12.0 (Node.js GitHub Bot) #45236 - [
f58996188a
] — Revert «deps: make V8 compilable with older glibc» (Michaël Zasso) #45162 - [
8cda730e58
] — deps: update ICU to 72.1 (Michaël Zasso) #45068 - [
0a6ed6f710
] — Revert «deps: V8: forward declaration ofRtl*FunctionTable
» (Michaël Zasso) #45119 - [
2f7518ada2
] — deps: update timezone (Node.js GitHub Bot) #44950 - [
3bfba6df79
] — deps: patch V8 to 10.7.193.16 (Michaël Zasso) #45023 - [
b5baaa61b3
] — dns: fix port validation (Antoine du Hamel) #45135 - [
0e9bad97cc
] — doc: allow for holidays in triage response (Michael Dawson) #45267 - [
d4aabb9d3d
] — doc: include last security release date (Juan José Arboleda) #45368 - [
ba45373164
] — doc: fix email for Ashley (Michael Dawson) #45364 - [
d5e5c75b13
] — doc: fix test runner’s only tests section header (Colin Ihrig) #45343 - [
a7c5f31c47
] — doc: run license-builder (github-actions[bot]) #45349 - [
3de125743e
] — doc: add more info for timer.setInterval (theanarkh) #45232 - [
5a1252d9b4
] — doc: use module names in stability overview table (Filip Skokan) #45312 - [
4d38bf2c5f
] — doc: addnode:
prefix for examples (Daeyeon Jeong) #45328 - [
b4b6b95f48
] — doc: update name of Node.js core Slack channel (Rich Trott) #45293 - [
7d7e7c316b
] — doc: fix «task_processor.js» typo (andreysoktoev) #45257 - [
b9039a54af
] — doc: add history section tofetch
-related globals (Antoine du Hamel) #45198 - [
d9163f1632
] — doc: clarify moderation inonboarding.md
(Benjamin Gruenbaum) #41930 - [
c179c1478b
] — doc: change make lint to make lint-md (RafaelGSS) #45197 - [
58bec56fab
] — doc: add more lts update steps to release guide (Ruy Adorno) #45177 - [
8f8d7e76ac
] — doc: add bmuenzenmeyer to triagers (Brian Muenzenmeyer) #45155 - [
de2df550f6
] — doc: update process.release (Filip Skokan) #45170 - [[
916e8760ba
](916e87…
Each software is released under license type that can be found on program pages as well as on search or category pages. Here are the most common license types:
Freeware
Freeware programs can be downloaded used free of charge and without any time limitations. Freeware products can be used free of charge for both personal and professional (commercial use).
Open Source
Open Source software is software with source code that anyone can inspect, modify or enhance. Programs released under this license can be used at no cost for both personal and commercial purposes. There are many different open source licenses but they all must comply with the Open Source Definition — in brief: the software can be freely used, modified and shared.
Free to Play
This license is commonly used for video games and it allows users to download and play the game for free. Basically, a product is offered Free to Play (Freemium) and the user can decide if he wants to pay the money (Premium) for additional features, services, virtual or physical goods that expand the functionality of the game. In some cases, ads may be show to the users.
Demo
Demo programs have a limited functionality for free, but charge for an advanced set of features or for the removal of advertisements from the program’s interfaces. In some cases, all the functionality is disabled until the license is purchased. Demos are usually not time-limited (like Trial software) but the functionality is limited.
Trial
Trial software allows the user to evaluate the software for a limited amount of time. After that trial period (usually 15 to 90 days) the user can decide whether to buy the software or not. Even though, most trial software products are only time-limited some also have feature limitations.
Paid
Usually commercial software or games are produced for sale or to serve a commercial purpose.
Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения, поддерживает работу в операционных системах Windows, Linux, Unix-подобных.
Node применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel, low.js и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.
Основные возможности
- Тестирование веб-приложений.
- Разнообразие инструментов для разработки.
- Поддержка TCP, UDP и Unix-socket.
- Высокая производительность.
- Поддержка HTML5 и Canvas без багов и зависаний.
- Предварительный запуск онлайн-игр.
- Поддержка отправки сообщений по электронной почте.
- Встроенные протоколы шифрования и хеширования данных.
- Работа с несколькими экземплярами.
- Консоль отладки приложения.
- Запись в журнал.
- Поддержка облачных сервисов.
- Поддержка мобильных девайсов.
- Синхронизация с хранилищем файлов.
- Интегрированные мультимедийные библиотеки.
- Подключение дополнительных модулей и других серверов на библиотеке «Node.js».
Удобство и интерфейс
Node.js не поддерживает графическую оболочку, поскольку в нем используется консольный режим. Этот подход позволяет обеспечить максимальную производительность сложных веб-приложений.
Node.js для Windows можно скачать на официальном сайте или на нашем по прямым ссылкам. Приложение набирает популярность среди разработчиков благодаря широким функциональным возможностям и универсальности.
«Изюминка» — разработка и тестирование приложений со сложной графикой и обеспечение огромного количества соединений для моделирования DDOS-атаки.
Достоинства
- Максимальная производительность.
- Поддержка облачных сервисов.
- Работа с HD-графикой и звуком высокого качества.
- Использование мобильных девайсов.
- Многофункциональность.
- Интегрирование дополнительных библиотек.
- Простая установка.
- Обеспечение большого количества одновременных соединений.
- Надежность.
- Встроенные протоколы SSL и TTL.
Недостатки
- Сложность реализации проектов.
- На обучение тратиться много времени.
Node подойдет для тестирования веб-приложений любого вида, а также для моделирования DDOS-атак, которые считаются наиболее опасными.
Предположительно у вас система Windows 7, разрядность: 64 Bits
Подробнее
Для 64-битных систем Windows:
Скачать Node.js 19.6.0 [64-бита] с официального сайта
Этот файл мы отметили как основной. Если вы не знаете что скачивать, то скачивайте его.
29.7 Мб
Подробнее
0
0
node-v19.6.0-x64.msi
|
nodejs.org
MD5: 55a801e391d640029e45df81bd0905d6
SHA256: ecf1b40bff53908e28945bc8deec872697b9ca274ea37b7702089499aafcf96f
Скачать Node.js 19.6.0 [64-бита] с нашего сайта
29.7 Мб
✔
Проверено антивирусами
Подробнее
0
0
node-v19.6.0-x64.msi
|
soft.mydiv.net
MD5: 55a801e391d640029e45df81bd0905d6
SHA256: ecf1b40bff53908e28945bc8deec872697b9ca274ea37b7702089499aafcf96f
Для 32-битных систем Windows:
Скачать Node.js 19.6.0 [32-бита] с нашего сайта
27.73 Мб
✔
Проверено антивирусами
Подробнее
0
0
node-v19.6.0-x86.msi
|
soft.mydiv.net
MD5: 4323eb8fdc423f7e97870dcf8bf3d133
SHA256: 7b76573aa36dd63dbfeeb239d5a1075d2c1c9a6d4333d3004e928f44b92cb03f
Для 32-битных систем Windows:
Скачать Node.js 18.14.0 [32 бита] с нашего сайта
28.02 Мб
✔
Проверено антивирусами
Подробнее
0
0
node-v18.14.0-x86.msi
|
soft.mydiv.net
MD5: 9cbfdb8a705ab826e0214f7aebd30b4d
SHA256: 745c33832b86aada7cd3efc6d9f99bc8f86a7c7006e3cb230f661d9461b1028c
Для 64-битных систем Windows:
Скачать Node.js 18.14.0 [64 бита] с нашего сайта
29.88 Мб
✔
Проверено антивирусами
Подробнее
0
0
node-v18.14.0-x64.msi
|
soft.mydiv.net
MD5: 2eadf0df1057285c5f5e0bec9dd679fc
SHA256: 944eff6104be19d1dc24f3940ab365aa972c47ee2a6b7cfee49dd436e748bd99
Дополнительные компоненты для запуска Node.js:
Инструкция по установке Node.js:
Внимание! Мы стараемся тщательно проверять все программы, но не гарантируем абсолютную безопасность скачиваемых файлов. Администрация сайта не
несет ответственности за содержание файлов, программ и возможный вред от их использования.
26.01.2021
6 комментариев
43 972
Привет! Рассмотрим установку Node.js на Windows 7 и протестируем его работу.
При попытке установить последнюю версию Node.js на Windows 7, в моем случае v14.15.4 LTS (ссылка), возникает ошибка о том, что приложение поддерживается на Windows 8.1. и выше:
1. Находим более раннюю версию, которая подойдёт для Windows 7, перейдем по ссылке (на сайт nodejs.org).
2. Скачиваем версию для вашей операционной системы (у меня ссылка на v13.14.0-x64.msi). Открываем этот файл для установки:
3. В открывшемся окошке подтверждаем свою готовность к установке нажатием кнопки Next:
4. Соглашаемся с условиями лицензионного соглашения, ставим галочку и нажимаем Next:
5. По умолчанию, установка Node.js происходит в папку C: Program Filesnodejs на Вашем компьютере. Поменяйте, при необходимости, и нажимайте Next:
6. Далее идут пользовательские настройки. Предлагается установить дополнительные инструменты — на Ваше усмотрение. Оставляем как есть и нажимаем Next:
7. Видим сообщение об успешной установке, нажимаем Finish:
Мои поздравления 🙂 Node.js установлен.
1. Через Пуск открываем стандартную программу Windows Выполнить , если не нашли Командную строку:
1.1. Командой cmd открываем консоль:
2. Теперь пишем в консоли node -v — так проверяем работу Node.js. Видим на экране установленную версию, в моём случае v13.14.0:
3. Дальше командой npm -v проверяем наличие npm. Видим версию, в моем случае 6.14.4
Всё отлично, мы решили проблему: установили Node.js на Windows 7 и проверили его работу.
Голосов: 94, Средняя оценка: 4.7