[TASK] Update all (major)
This MR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
---|---|---|---|---|---|---|---|
@types/node (source) | 20.12.7 -> 22.10.2 |
devDependencies | major | ||||
@types/react (source) | ^18 -> ^19.0.0 |
devDependencies | major | ||||
@types/react-dom (source) | ^18 -> ^19.0.0 |
devDependencies | major | ||||
eslint (source) | 8.57.0 -> 9.17.0 |
devDependencies | major | ||||
eslint-config-next (source) | 14.2.3 -> 15.1.2 |
devDependencies | major | ||||
next (source) | 14.2.3 -> 15.1.2 |
dependencies | major | ||||
node (source) |
21.7 -> 22.12
|
major | |||||
node |
22.0.0-bookworm-slim -> 23.5.0-bookworm-slim
|
final | major | ||||
react (source) | ^18.2.0 -> ^19.0.0 |
dependencies | major | ||||
react-dom (source) | ^18 -> ^19.0.0 |
dependencies | major |
Update dependencies
-
Clone project
-
Checkout update branch
-
run
npm install
and test everything -
If everything is fine and fixes are pushed, merge the MR
Release Notes
eslint/eslint (eslint)
v9.17.0
Features
Bug Fixes
-
67d683d
fix: fix crash whenmessage.fix
is nullish (#19168) (ntnyq) -
c618707
fix: ignore vars with non-identifier references in no-useless-assignment (#19200) (YeonJuan)
Documentation
-
3c22d2a
docs: updateyoda
toYoda
inyoda.md
for consistency (#19230) (루밀LuMir) -
e0a2203
docs: add missing backticks tono-sequences
(#19233) (루밀LuMir) -
4cc4881
docs: Update README (GitHub Actions Bot) -
3db6fdf
docs: [no-await-in-loop] expand on benefits and inapplicability (#19211) (Kirk Waiblinger) -
bf2a4f6
docs: add missing backticks tofunc-style
(#19227) (루밀LuMir) -
ba098bd
docs: add missing header toprefer-spread
(#19224) (루밀LuMir) -
b607ae6
docs: update description ofno-param-reassign
(#19220) (루밀LuMir) -
1eb424d
docs: add missing backticks toprefer-destructuring
(#19223) (루밀LuMir) -
85998d1
docs: add missing backticks tono-unneeded-ternary
(#19222) (루밀LuMir) -
b75b32c
docs: add missing backticks tono-new-func
(#19219) (루밀LuMir) -
a7700bc
docs: add missing backticks toid-length
(#19217) (루밀LuMir) -
e2bb429
docs: add missing backticks tocomplexity.md
(#19214) (루밀LuMir) -
045d716
docs: add missing)
toid-denylist
(#19213) (루밀LuMir) -
7fe4114
docs: Update README (GitHub Actions Bot) -
c743ba6
docs: add CSS language tono-restricted-syntax
(#19208) (Milos Djermanovic) -
1416d70
docs: add missing backticks toeqeqeq
(#19207) (루밀LuMir) -
b950c1b
docs: add missing backticks toprefer-object-spread
(#19206) (루밀LuMir) -
8a941cb
docs: update docs anddescription
ofrequire-unicode-regexp
(#19205) (루밀LuMir) -
cbab228
docs: Update README (GitHub Actions Bot) -
f2257ce
docs: update comments anddescription
ofno-script-url
(#19203) (루밀LuMir) -
365f0f4
docs: add missing backtick todefault-case-last
(#19202) (루밀LuMir) -
e6b84f5
docs: add missing punctuation in document (#19161) (루밀LuMir) -
c88708e
docs: replace quote with backtick indescription
offor-direction
(#19199) (루밀LuMir) -
a76f233
docs: use higher contrast color tokens for code comments (#19187) (Josh Goldberg ✨) -
db19502
docs: Update README (GitHub Actions Bot)
Chores
-
cc243c9
chore: upgrade to@eslint/js@9.17.0
(#19242) (Francesco Trotta) -
84c5787
chore: package.json update for @eslint/js release (Jenkins) -
4c4f53b
chore: add missing backticks toflags.js
(#19226) (루밀LuMir) -
4b3132c
chore: update dependency eslint-plugin-expect-type to ^0.6.0 (#19221) (renovate[bot]) -
9bf2204
chore: add type definitions for theeslint-config-eslint
package (#19050) (Arya Emami) -
ee8c220
chore: fix incorrectname
property inintegration-tutorial-code
(#19218) (루밀LuMir) -
cca801d
chore: Upgrade cross-spawn to 7.0.6 (#19185) (folortin)
v9.16.0
Features
Documentation
-
9eefc8f
docs: fix typos inuse-isnan
(#19190) (루밀LuMir) -
0c8cea8
docs: switch the order of words inno-unreachable
(#19189) (루밀LuMir) -
0c19417
docs: add missing backtick tono-async-promise-executor
(#19188) (루밀LuMir) -
8df9276
docs: add backtick in-0
indescription
ofno-compare-neg-zero
(#19186) (루밀LuMir) -
7e16e3f
docs: fixcaseSensitive
option's title ofsort-keys
(#19183) (Tanuj Kanti) -
0c6b842
docs: fix typos inmigration-guide.md
(#19180) (루밀LuMir) -
353266e
docs: fix a typo indebug.md
(#19179) (루밀LuMir) -
5ff318a
docs: delete unnecessary horizontal rule(---
) innodejs-api
(#19175) (루밀LuMir) -
576bcc5
docs: mark more rules as handled by TypeScript (#19164) (Tanuj Kanti) -
742d054
docs: note thatno-restricted-syntax
can be used with any language (#19148) (Milos Djermanovic)
Chores
-
feb703b
chore: upgrade to@eslint/js@9.16.0
(#19195) (Francesco Trotta) -
df9bf95
chore: package.json update for @eslint/js release (Jenkins) -
f831893
chore: add type forignoreComputedKeys
option ofsort-keys
(#19184) (Tanuj Kanti) -
3afb8a1
chore: update dependency @eslint/json to ^0.8.0 (#19177) (Milos Djermanovic) -
1f77c53
chore: addrepository.directory
property topackage.json
(#19165) (루밀LuMir) -
d460594
chore: update dependency @arethetypeswrong/cli to ^0.17.0 (#19147) (renovate[bot]) -
45cd4ea
refactor: update default options in rules (#19136) (Milos Djermanovic)
v9.15.0
Features
-
01557ce
feat: Implement Language#normalizeLanguageOptions() (#19104) (Nicholas C. Zakas) -
2edc0e2
feat: add meta.defaultOptions (#17656) (Josh Goldberg ✨) -
bdec50e
feat: fixno-useless-computed-key
false negative with__proto__
(#19123) (Milos Djermanovic) -
3087c9e
feat: addmeta
object to@eslint/js
plugin (#19095) (Francesco Trotta)
Bug Fixes
-
fd33f13
fix: update types forno-restricted-imports
rule (#19060) (Nitin Kumar) -
bd35098
fix: switch away from Node.js node:assert and AssertionError (#19082) (Josh Goldberg ✨) -
9db5b15
fix: unsafe report forno-lonely-if
(#19087) (Abraham Guo) -
68fa497
fix: ignore files on a different drive on Windows (#19069) (Francesco Trotta) -
4ce625a
fix: upgrade @humanwhocodes/retry@0.4.1 to avoid debug logs (#19102) (Milos Djermanovic)
Documentation
-
d927920
docs: fix styles in no-js mode (#18916) (Tanuj Kanti) -
09bc2a8
docs: Update README (GitHub Actions Bot) -
39089c8
docs: addno-useless-computed-key
examples with object patterns (#19109) (Milos Djermanovic) -
895c60f
docs: add missing messageId property and suggestion properties (#19122) (fnx) -
298625e
docs: Change CLI -c to use flat config (#19103) (Nicholas C. Zakas) -
522d8a3
docs: add deprecation onindent
,quotes
andsemi
rule types (#19090) (Marco Pasqualetti)
Chores
-
2967d91
chore: upgrade @eslint/js@9.15.0 (#19133) (Milos Djermanovic) -
b441bee
chore: package.json update for @eslint/js release (Jenkins) -
7d6bf4a
chore: upgrade @eslint/core@0.9.0 (#19131) (Milos Djermanovic) -
902e707
chore: upgrade @eslint/plugin-kit@0.2.3 (#19130) (Milos Djermanovic) -
5ff6c1d
chore: bump cross-spawn (#19125) (Ian Bobinac) -
cceccc7
chore: update dependency @eslint/json to ^0.6.0 (#19117) (renovate[bot]) -
0da3f73
chore: update algolia referrer (#19114) (Strek) -
4f08332
ci: unpintrunk-io/trunk-action
(#19108) (Francesco Trotta) -
6b75683
perf: optimizetext-table
by replacing regex withtrimEnd
(#19061) (Nitin Kumar)
v9.14.0
Features
-
3fa009f
feat: add support for Import Attributes and RegExp Modifiers (#19076) (Milos Djermanovic) -
b0faee3
feat: add types for the@eslint/js
package (#19010) (Nitin Kumar)
Bug Fixes
-
24d0172
fix: enable retry concurrency limit for readFile() (#19077) (Nicholas C. Zakas) -
b442067
fix: Don't crash when directory is deleted during traversal. (#19067) (Nicholas C. Zakas) -
d474443
fix: avoid call stack overflow while processing globs (#19035) (Livia Medeiros)
Documentation
-
151c965
docs: updatecontext.languageOptions.parser
description (#19084) (Nitin Kumar) -
dc34f94
docs: Update README (GitHub Actions Bot) -
f16e846
docs: Update README (GitHub Actions Bot) -
ee0a77e
docs: change link from @types/eslint to lib/types (#19049) (Karl Horky) -
50f03a1
docs: Clarify global ignores in config migration guide (#19032) (Milos Djermanovic)
Build Related
-
37c9177
build: update@wdio/*
dependencies (#19068) (Francesco Trotta) -
35a8858
build: exclude flawed dendency versions (#19065) (Francesco Trotta)
Chores
-
f36cb16
chore: upgrade @eslint/js@9.14.0 (#19086) (Milos Djermanovic) -
28be447
chore: package.json update for @eslint/js release (Jenkins) -
f48a2a0
test: addno-invalid-regexp
tests with RegExp Modifiers (#19075) (Milos Djermanovic) -
425202e
perf: Fix caching in config loaders (#19042) (Milos Djermanovic) -
3d44b3c
ci: run tests in Node.js 23 (#19055) (Francesco Trotta) -
7259627
test: ensure tmp directory cleanup incheck-emfile-handling.js
(#19036) (Livia Medeiros)
v9.13.0
Features
-
381c32b
feat: Allow languages to providedefaultLanguageOptions
(#19003) (Milos Djermanovic) -
bf723bd
feat: Improve eslintrc warning message (#19023) (Milos Djermanovic) -
1def4cd
feat: drop support for jiti v1.21 (#18996) (Francesco Trotta) -
f879be2
feat: exportESLint.defaultConfig
(#18983) (Nitin Kumar)
Bug Fixes
-
78836d4
fix: update thecomplexity
rule type (#19027) (Nitin Kumar) -
064c8b6
fix: update rule types (#18925) (Nitin Kumar)
Documentation
-
abdbfa8
docs: markLintMessage#nodeType
as deprecated (#19019) (Nitin Kumar) -
19e68d3
docs: update deprecated rules type definitions (#19018) (Nitin Kumar) -
7dd402d
docs: Update examples of passing multiple values to a CLI option (#19006) (Milos Djermanovic) -
5dcbc51
docs: Add example with side-effect imports to no-restricted-imports (#18997) (Milos Djermanovic) -
1ee87ca
docs: Update README (GitHub Actions Bot) -
2c3dbdc
docs: Use prerendered sponsors for README (#18988) (Milos Djermanovic)
Chores
-
68d2d9d
chore: upgrade to@eslint/js@9.13.0
and@eslint/core@^0.7.0
(#19034) (Francesco Trotta) -
2211f0a
chore: package.json update for @eslint/js release (Jenkins) -
c7abaef
perf: using Node.js compile cache (#19012) (唯然) -
1d7c077
chore: add pkg.type "commonjs" (#19011) (唯然) -
468e3bd
test: fixESLint
tests (#19021) (Francesco Trotta) -
ed4635f
ci: upgrade knip@5.32.0 (#18992) (Milos Djermanovic) -
efad767
chore: remove unused ignore dependency (#18993) (Amaresh S M)
v9.12.0
Features
-
5a6a053
feat: update tojiti
v2 (#18954) (Arya Emami) -
17a07fb
feat: Hooks for test cases (RuleTester) (#18771) (Anna Bocharova) -
2ff0e51
feat: Implement alternate config lookup (#18742) (Nicholas C. Zakas) -
2d17453
feat: Implement modified cyclomatic complexity (#18896) (Dmitry Pashkevich)
Bug Fixes
-
ea380ca
fix: Upgrade retry to avoid EMFILE errors (#18986) (Nicholas C. Zakas) -
fdd6319
fix: Issues with type definitions (#18940) (Arya Emami)
Documentation
-
ecbd522
docs: Mention code explorer (#18978) (Nicholas C. Zakas) -
7ea4ecc
docs: Clarifying the Use of Meta Objects (#18697) (Amaresh S M) -
d3e4b2e
docs: Clarify how to exclude.js
files (#18976) (Milos Djermanovic) -
57232ff
docs: Mention plugin-kit in language docs (#18973) (Nicholas C. Zakas) -
b80ed00
docs: Update README (GitHub Actions Bot) -
cb69ab3
docs: Update README (GitHub Actions Bot) -
7fb0d95
docs: Update README (GitHub Actions Bot) -
493348a
docs: Update README (GitHub Actions Bot) -
87a582c
docs: fix typo inid-match
rule (#18944) (Jay)
Chores
-
555aafd
chore: upgrade to@eslint/js@9.12.0
(#18987) (Francesco Trotta) -
873ae60
chore: package.json update for @eslint/js release (Jenkins) -
d0a5414
refactor: replace strip-ansi with native module (#18982) (Cristopher) -
b827029
chore: Enable JSON5 linting (#18979) (Milos Djermanovic) -
8f55ca2
chore: Upgrade espree, eslint-visitor-keys, eslint-scope (#18962) (Nicholas C. Zakas) -
c1a2725
chore: update dependency mocha to ^10.7.3 (#18945) (Milos Djermanovic)
v9.11.1
Bug Fixes
-
20fd916
fix: add@eslint/core
,@types/estree
, &@types/json-schema
deps (#18938) (Nitin Kumar) -
2738322
fix: add missing types forrequire-atomic-updates
rule (#18937) (Kristóf Poduszló) -
d71ff30
fix: add missing types forobject-shorthand
rule (#18935) (Kristóf Poduszló) -
561cadc
fix: add missing types forno-unsafe-negation
rule (#18932) (Kristóf Poduszló) -
8843656
fix: add missing types forno-underscore-dangle
rule (#18931) (Kristóf Poduszló) -
92cde5c
fix: add missing types forno-shadow
rule (#18930) (Kristóf Poduszló) -
b3cbe11
fix: add missing types forno-sequences
rule (#18929) (Kristóf Poduszló) -
976f77f
fix: add missing types forno-unused-expressions
rule (#18933) (Kristóf Poduszló)
Documentation
Chores
-
df4a859
chore: upgrade @eslint/js@9.11.1 (#18943) (Milos Djermanovic) -
36d8095
chore: package.json update for @eslint/js release (Jenkins)
v9.11.0
Features
-
ec30c73
feat: add "eslint/universal" to exportLinter
(#18883) (唯然) -
c591da6
feat: Add language to types (#18917) (Nicholas C. Zakas) -
492eb8f
feat: limit the name given toImportSpecifier
inid-length
(#18861) (Tanuj Kanti) -
19c6856
feat: Addno-useless-constructor
suggestion (#18799) (Jordan Thomson) -
a48f8c2
feat: add typeFormatterFunction
, updateLoadedFormatter
(#18872) (Francesco Trotta)
Bug Fixes
-
5e5f39b
fix: add missing types forno-restricted-exports
rule (#18914) (Kristóf Poduszló) -
8f630eb
fix: add missing types forno-param-reassign
options (#18906) (Kristóf Poduszló) -
d715781
fix: add missing types forno-extra-boolean-cast
options (#18902) (Kristóf Poduszló) -
2de5742
fix: add missing types forno-misleading-character-class
options (#18905) (Kristóf Poduszló) -
c153084
fix: add missing types forno-implicit-coercion
options (#18903) (Kristóf Poduszló) -
fa11b2e
fix: add missing types forno-empty-function
options (#18901) (Kristóf Poduszló) -
a0deed1
fix: add missing types forcamelcase
options (#18897) (Kristóf Poduszló)
Documentation
-
e4e5709
docs: correctprefer-object-has-own
type definition comment (#18924) (Nitin Kumar) -
91cbd18
docs: add unicode abbreviations in no-irregular-whitespace rule (#18894) (Alix Royere) -
59cfc0f
docs: clarifyresultsMeta
inLoadedFormatter
type (#18881) (Milos Djermanovic) -
adcc50d
docs: Update README (GitHub Actions Bot) -
4edac1a
docs: Update README (GitHub Actions Bot)
Build Related
Chores
-
ca21a64
chore: upgrade @eslint/js@9.11.0 (#18927) (Milos Djermanovic) -
a10f90a
chore: package.json update for @eslint/js release (Jenkins) -
e4e02cc
refactor: Extract processor logic into ProcessorService (#18818) (Nicholas C. Zakas) -
6d4484d
chore: updates for v8.57.1 release (Jenkins) -
71f37c5
refactor: use optional chaining when validating config rules (#18893) (lucasrmendonca) -
2c2805f
chore: Add MR note to all templates (#18892) (Nicholas C. Zakas) -
7b852ce
refactor: useDirective
class from@eslint/plugin-kit
(#18884) (Milos Djermanovic) -
d594ddd
chore: update dependency @eslint/core to ^0.6.0 (#18863) (renovate[bot]) -
78b2421
chore: Update change.yml (#18882) (Nicholas C. Zakas) -
a416f0a
chore: enable$ExpectType
comments in .ts files (#18869) (Francesco Trotta)
v9.10.0
Features
-
301b90d
feat: Add types (#18854) (Nicholas C. Zakas) -
bcf0df5
feat: limit namespace import identifier in id-length rule (#18849) (ChaedongIm) -
45c18e1
feat: addrequireFlag
option torequire-unicode-regexp
rule (#18836) (Brett Zamir) -
183b459
feat: add error message for duplicate flags inno-invalid-regexp
(#18837) (Tanuj Kanti) -
c69b406
feat: report duplicate allowed flags inno-invalid-regexp
(#18754) (Tanuj Kanti)
Documentation
-
bee0e7a
docs: update README (#18865) (Milos Djermanovic) -
5d80b59
docs: specify thatruleId
can benull
in custom formatter docs (#18857) (Milos Djermanovic) -
156b1c3
docs: Update README (GitHub Actions Bot) -
f6fdef9
docs: Update README (GitHub Actions Bot) -
a20c870
docs: Update README (GitHub Actions Bot) -
90e699b
docs: Update README (GitHub Actions Bot)
Chores
-
24c3ff7
chore: upgrade to @eslint/js@9.10.0 (#18866) (Francesco Trotta) -
1ebdde1
chore: package.json update for @eslint/js release (Jenkins) -
e8fc5bd
chore: update dependency @eslint/core to ^0.5.0 (#18848) (renovate[bot]) -
343f992
refactor: don't usenode.value
when removing unused directives (#18835) (Milos Djermanovic) -
3db18b0
refactor: Extract FileContext into class (#18831) (Nicholas C. Zakas) -
931d650
refactor: Use @eslint/plugin-kit (#18822) (Nicholas C. Zakas) -
ed5cf0c
chore: update dependency @eslint/json to ^0.4.0 (#18829) (Milos Djermanovic) -
d1f0831
chore: added missing ids (#18817) (Strek) -
ec92813
refactor: Config class (#18763) (Nicholas C. Zakas)
v9.9.1
Bug Fixes
Documentation
-
4840930
docs: Update README with version support and clean up content (#18804) (Nicholas C. Zakas) -
f61f40d
docs: Update globals examples (#18805) (Nicholas C. Zakas) -
241fcea
docs: Use and define languages (#18795) (Nicholas C. Zakas) -
5dbdd63
docs: eslint-plugin-markdown -> @eslint/markdown (#18797) (Nicholas C. Zakas) -
c6c8ddd
docs: update links to eslint-visitor-keys repo (#18796) (Francesco Trotta) -
f981d05
docs: Update README (GitHub Actions Bot) -
b516974
docs: update links toeslint/js
repo (#18781) (Francesco Trotta) -
fb7a3f5
docs: update note for package managers (#18779) (Jay)
Chores
-
b0c34d0
chore: upgrade to @eslint/js@9.9.1 (#18809) (Francesco Trotta) -
cd5a0da
chore: package.json update for @eslint/js release (Jenkins) -
e112642
refactor: Extract parsing logic from Linter (#18790) (Nicholas C. Zakas) -
0f68a85
chore: use eslint-plugin-yml on yaml files only (#18801) (Milos Djermanovic) -
f8d1b3c
chore: update dependencies for browser tests (#18794) (Christian Bromann) -
aed2624
chore: update dependency @eslint/config-array to ^0.18.0 (#18788) (renovate[bot]) -
5c29128
chore: update dependency @eslint/core to ^0.4.0 (#18789) (renovate[bot]) -
5d66fb2
chore: migrate linting workflow to use trunk check meta-linter (#18643) (Chris Clearwater) -
bf96855
chore: add ids to github issue templates (#18775) (Strek)
v9.9.0
Features
-
41d0206
feat: Add support for TS config files (#18134) (Arya Emami) -
3a4eaf9
feat: add suggestion torequire-await
to removeasync
keyword (#18716) (Dave)
Documentation
-
9fe068c
docs: how to author plugins with configs that extend other configs (#18753) (Alec Gibson) -
48117b2
docs: add version support page in the side navbar (#18738) (Amaresh S M) -
fec2951
docs: add version support page to the dropdown (#18730) (Amaresh S M) -
38a0661
docs: Fix typo (#18735) (Zaina Al Habash) -
3c32a9e
docs: Update yarn command for creating ESLint config (#18739) (Temitope Ogunleye) -
f9ac978
docs: Update README (GitHub Actions Bot)
Chores
-
461b2c3
chore: upgrade to@eslint/js@9.9.0
(#18765) (Francesco Trotta) -
59dba1b
chore: package.json update for @eslint/js release (Jenkins) -
fea8563
chore: update dependency @eslint/core to ^0.3.0 (#18724) (renovate[bot]) -
aac191e
chore: update dependency @eslint/json to ^0.3.0 (#18760) (renovate[bot]) -
b97fa05
chore: update wdio dependencies for more stable tests (#18759) (Christian Bromann)
v9.8.0
Features
Bug Fixes
-
ab0ff27
fix: Throw error when invalid flags passed (#18705) (Nicholas C. Zakas) -
70dc803
fix:basePath
directory can never be ignored (#18711) (Milos Djermanovic)
Documentation
-
282df1a
docs: Add system theme option (#18617) (Amaresh S M) -
53b1ff0
docs: Debug config docs (#18698) (Nicholas C. Zakas) -
a7016a5
docs: fix search input stylings (#18682) (Amaresh S M)
Build Related
Chores
-
deee448
chore: upgrade to@eslint/js@9.8.0
(#18720) (Francesco Trotta) -
4aaf2b3
chore: package.json update for @eslint/js release (Jenkins) -
8e1a627
chore: update dependency @eslint/core to ^0.2.0 (#18700) (renovate[bot])
v9.7.0
Features
-
7bd9839
feat: add support for es2025 duplicate named capturing groups (#18630) (Yosuke Ota) -
1381394
feat: addregex
option inno-restricted-imports
(#18622) (Nitin Kumar)
Bug Fixes
Documentation
-
9f416db
docs: Add Powered by Algolia label to the search. (#18633) (Amaresh S M) -
c8d26cb
docs: Open JS Foundation -> OpenJS Foundation (#18649) (Milos Djermanovic) -
6e79ac7
docs:loadESLint
does not support optioncwd
(#18641) (Francesco Trotta)
Chores
-
793b718
chore: upgrade @eslint/js@9.7.0 (#18680) (Francesco Trotta) -
7ed6f9a
chore: package.json update for @eslint/js release (Jenkins) -
7bcda76
refactor: Add type references (#18652) (Nicholas C. Zakas) -
51bf57c
chore: add tech sponsors through actions (#18624) (Strek) -
6320732
refactor: don't useparent
property inNodeEventGenerator
(#18653) (Milos Djermanovic) -
9e6d640
refactor: move "Parsing error" prefix adding to Linter (#18650) (Milos Djermanovic)
v9.6.0
Features
-
e2b16e2
feat: Implement feature flags (#18516) (Nicholas C. Zakas) -
8824aa1
feat: addecmaVersion: 2025
, parsing duplicate named capturing groups (#18596) (Milos Djermanovic)
Bug Fixes
-
1613e2e
fix: Allow escaping characters in config patterns on Windows (#18628) (Milos Djermanovic) -
21d3766
fix:no-unused-vars
include caught errors pattern in report message (#18609) (Kirk Waiblinger) -
d7a7736
fix: improveno-unused-vars
message on unused caught errors (#18608) (Kirk Waiblinger) -
f9e95d2
fix: correct locations of invalid/* eslint */
comments (#18593) (Milos Djermanovic)
Documentation
-
13dbecd
docs: Limit search to just docs (#18627) (Nicholas C. Zakas) -
375227f
docs: Update getting-started.md - add pnpm to init eslint config (#18599) (Kostiantyn Ochenash) -
44915bb
docs: Update README (GitHub Actions Bot) -
d50db7b
docs: Update vscode-eslint info (#18595) (Nicholas C. Zakas)
Chores
-
b15ee30
chore: upgrade @eslint/js@9.6.0 (#18632) (Milos Djermanovic) -
d655503
chore: package.json update for @eslint/js release (Jenkins) -
7c78ad9
refactor: Use language.visitorKeys and check for non-JS SourceCode (#18625) (Nicholas C. Zakas) -
69ff64e
refactor: Return value of applyInlineConfig() (#18623) (Nicholas C. Zakas) -
d2d06f7
refactor: use/
separator when adjustingignorePatterns
on Windows (#18613) (Milos Djermanovic) -
6421973
refactor: fix disable directives for languages with 0-based lines (#18605) (Milos Djermanovic) -
0a13539
refactor: Allow optional methods for languages (#18604) (Nicholas C. Zakas) -
c7ddee0
chore: make internal-rules not being a package (#18601) (Milos Djermanovic) -
3379164
chore: remove.eslintrc.js
(#18011) (唯然) -
d0c3a32
chore: update knip (with webdriver-io plugin) (#18594) (Lars Kappert)
v9.5.0
Features
-
b2d256c
feat:no-sparse-arrays
report on "comma" instead of the whole array (#18579) (fisker Cheung)
Bug Fixes
-
6880286
fix: treat*
as a universal pattern (#18586) (Milos Djermanovic) -
7fbe211
fix: message template for all files ignored (#18564) (Milos Djermanovic) -
469cb36
fix: Don't lint the same file multiple times (#18552) (Milos Djermanovic) -
5cff638
fix: improve message for ignored files without a matching config (#18404) (Francesco Trotta)
Documentation
-
455f7fd
docs: add section about including.gitignore
files (#18590) (Milos Djermanovic) -
721eafe
docs: update info about universalfiles
patterns (#18587) (Francesco Trotta) -
8127127
docs: Update README (GitHub Actions Bot) -
55c2a66
docs: Update README (GitHub Actions Bot) -
eb76282
docs: Update README (GitHub Actions Bot) -
ff6e96e
docs:baseConfig
andoverrideConfig
can be arrays (#18571) (Milos Djermanovic) -
d2d83e0
docs: Add mention of eslint-transforms to v9 migration guide (#18566) (Nicholas C. Zakas) -
9ce6832
docs: add callout box for unintuitive behavior (#18567) (Ben McCann) -
b8db99c
docs: Add VS Code info to config migration guide (#18555) (Nicholas C. Zakas) -
518a35c
docs: Mention config migrator (#18561) (Nicholas C. Zakas) -
eb440fc
docs: specifying files with arbitrary or no extension (#18539) (Francesco Trotta) -
38c159e
docs: Provide example of reading package.json for plugins meta (#18530) (Nicholas C. Zakas) -
d16a659
docs: add link to migration guide for--ext
CLI option (#18537) (Milos Djermanovic) -
73408de
docs: add link to configuration file docs before examples (#18535) (Milos Djermanovic)
Chores
-
f588160
chore: upgrade @eslint/js@9.5.0 (#18591) (Milos Djermanovic) -
5890841
chore: package.json update for @eslint/js release (Jenkins) -
e9f4ccd
chore: remove unused eslint-disable directive (#18589) (Milos Djermanovic) -
4b23ffd
refactor: Move JS parsing logic into JS language (#18448) (Nicholas C. Zakas) -
1495b93
chore: update WebdriverIO packages (#18558) (Christian Bromann) -
cea7ede
chore: add website donate link instead of opencollective (#18582) (Strek) -
ec94880
chore: package.json update for eslint-config-eslint release (Jenkins) -
6912586
chore: extract formatting rules into separate config (#18560) (Milos Djermanovic) -
9738f7e
ci: fix CLI flags for c8, raise thresholds (#18554) (Francesco Trotta) -
c6de7bb
chore: update dependency markdownlint-cli to ^0.41.0 (#18538) (renovate[bot]) -
2c8fd34
ci: pin @wdio/browser-runner v8.36.0 (#18540) (唯然)
v9.4.0
Features
Bug Fixes
-
f6534d1
fix: skip processor code blocks that match only universal patterns (#18507) (Milos Djermanovic) -
7226ebd
fix: allow implicit undefined return inno-constructor-return
(#18515) (Ali Rezvani) -
389744b
fix: use@eslint/config-inspector@latest
(#18483) (唯然) -
70118a5
fix:func-style
false positive with arrow functions andsuper
(#18473) (Milos Djermanovic)
Documentation
-
d7ab6f5
docs: update theme when whenprefers-color-scheme
changes (#18510) (Nitin Kumar) -
525fdff
docs: fix components files (#18519) (Tanuj Kanti) -
80747d2
docs: refactorprefer-destructuring
rule (#18472) (Tanuj Kanti) -
f06e0b5
docs: clarify func-style (#18477) (Cameron Steffen)
Chores
-
010dd2e
chore: upgrade to@eslint/js@9.4.0
(#18534) (Francesco Trotta) -
5e1b5dc
chore: package.json update for @eslint/js release (Jenkins) -
594145f
refactor: switch to@eslint/config-array
(#18527) (Francesco Trotta)
v9.3.0
Features
-
b32153c
feat: addoverrides.namedExports
tofunc-style
rule (#18444) (Percy Ma) -
b67eba4
feat: addrestrictedNamedExportsPattern
tono-restricted-exports
(#18431) (Akul Srivastava) -
069aa68
feat: add optionallowEscape
tono-misleading-character-class
rule (#18208) (Francesco Trotta) -
05ef92d
feat: deprecatemultiline-comment-style
&line-comment-position
(#18435) (唯然) -
db0b174
feat: addenforceForInnerExpressions
option tono-extra-boolean-cast
(#18222) (Kirk Waiblinger)
Bug Fixes
-
8db0eff
fix: Improve config error messages (#18457) (Nicholas C. Zakas) -
5c28d9a
fix: don't remove comments between key and value in object-shorthand (#18442) (Kuba Jastrzębski) -
39fb0ee
fix: object-shorthand loses type parameters when auto-fixing (#18438) (dalaoshu) -
37eba48
fix: don't crash whenfs.readFile
returns promise from another realm (#18416) (Milos Djermanovic)
Documentation
-
ceada8c
docs: explain how to use "tsc waiting" label (#18466) (Francesco Trotta) -
62e686c
docs: Add troubleshooting info for plugin compatibility (#18451) (Nicholas C. Zakas) -
e17e1c0
docs: Update README (GitHub Actions Bot) -
2465a1e
docs: Update README (GitHub Actions Bot) -
d23574c
docs: Clarify usage ofno-unreachable
with TypeScript (#18445) (benj-dobs) -
1db9bae
docs: Fix typos (#18443) (Frieder Bluemle) -
7065196
docs: Update README (GitHub Actions Bot) -
04e7c6e
docs: update deprecation notice ofno-return-await
(#18433) (Tanuj Kanti) -
e763512
docs: Link global ignores section in config object property list (#18430) (MaoShizhong) -
ac7f718
docs: reflect release of v9 in config migration guide (#18412) (Peter Briggs) -
0de0909
docs: fix grammar in configuration file resolution (#18419) (Mike McCready)
Chores
-
58e2719
chore: update dependencies for v9.3.0 release (#18469) (Francesco Trotta) -
b681ecb
chore: package.json update for @eslint/js release (Jenkins) -
06f1d1c
chore: update dependency @humanwhocodes/retry to ^0.3.0 (#18463) (renovate[bot]) -
a63ed72
refactor: Usenode:
protocol for built-in Node.js modules (#18434) (Milos Djermanovic) -
040700a
chore: update dependency markdownlint-cli to ^0.40.0 (#18425) (renovate[bot]) -
f47847c
chore: update actions/stale action to v9 (#18426) (renovate[bot]) -
c18ad25
chore: update actions/upload-artifact action to v4 (#18427) (renovate[bot]) -
27e3060
chore: Disable documentation label (#18423) (Nicholas C. Zakas)
v9.2.0
Features
-
8485d76
feat:no-case-declarations
add suggestions (#18388) (Josh Goldberg ✨) -
a498f35
feat: update Unicode letter detection in capitalized-comments rule (#18375) (Francesco Trotta)
Bug Fixes
Documentation
-
0f5df50
docs: Update README (GitHub Actions Bot) -
1579ce0
docs: update wording regarding indirect eval (#18394) (Kirk Waiblinger) -
f12a02c
docs: update to eslint v9 in custom-rule-tutorial (#18383) (唯然)
Chores
-
b346605
chore: upgrade @eslint/js@9.2.0 (#18413) (Milos Djermanovic) -
c4c18e0
chore: package.json update for @eslint/js release (Jenkins) -
284722c
chore: package.json update for eslint-config-eslint release (Jenkins) -
347d44f
chore: remove eslintrc export from eslint-config-eslint (#18400) (Milos Djermanovic) -
f316e20
ci: run tests in Node.js 22 (#18393) (Francesco Trotta)
v9.1.1
Bug Fixes
-
a26b402
fix: use @eslint/create-config latest (#18373) (唯然)
v9.1.0
Features
-
03068f1
feat: Provide helpful error message for nullish configs (#18357) (Nicholas C. Zakas) -
751b518
feat: replace dependency graphemer withIntl.Segmenter
(#18110) (Francesco Trotta) -
4d11e56
feat: addname
to eslint configs (#18289) (唯然) -
1cbe1f6
feat: allowwhile(true)
inno-constant-condition
(#18286) (Tanuj Kanti) -
0db676f
feat: addIntl
in es6 globals (#18318) (唯然)
Bug Fixes
-
8d18958
fix: Remove name from eslint/js packages (#18368) (Nicholas C. Zakas) -
594eb0e
fix: do not crash on error infs.walk
filter (#18295) (Francesco Trotta) -
0d8cf63
fix: EMFILE errors (#18313) (Nicholas C. Zakas) -
e1ac0b5
fix: --inspect-config only for flat config and respect -c (#18306) (Nicholas C. Zakas) -
09675e1
fix:--no-ignore
should not apply to non-global ignores (#18334) (Milos Djermanovic)
Documentation
-
fb50077
docs: include notes about globals in migration-guide (#18356) (Gabriel Rohden) -
71c771f
docs: Fix missing accessible name for scroll-to-top link (#18329) (Germán Freixinós) -
200fd4e
docs: indicate eslintrc mode for.eslintignore
(#18285) (Francesco Trotta) -
16b6a8b
docs: Update README (GitHub Actions Bot) -
df5f8a9
docs:paths
andpatterns
difference inno-restricted-imports
(#18273) (Tanuj Kanti) -
c537d76
docs: updatenpm init @​eslint/config
generated file names (#18298) (唯然) -
e1e305d
docs: fixlinebreak-style
examples (#18262) (Francesco Trotta) -
113f51e
docs: Mention package.json config support dropped (#18305) (Nicholas C. Zakas) -
5c35321
docs: add eslintrc-only note to--rulesdir
(#18281) (Adam Lui 刘展鹏)
Build Related
Chores
-
d9a2983
chore: upgrade @eslint/js to v9.1.1 (#18367) (Francesco Trotta) -
50d406d
chore: package.json update for @eslint/js release (Jenkins) -
155c71c
chore: package.json update for @eslint/js release (Jenkins) -
0588fc5
refactor: Move directive gathering to SourceCode (#18328) (Nicholas C. Zakas) -
9048e21
chore: lintdocs/src/_data
js files (#18335) (Milos Djermanovic) -
4820790
chore: upgrade globals@15.0.0 dev dependency (#18332) (Milos Djermanovic) -
698d9ff
chore: upgrade jsdoc & unicorn plugins in eslint-config-eslint (#18333) (Milos Djermanovic) -
32c08cf
chore: drop Node < 18 and use @eslint/js v9 in eslint-config-eslint (#18323) (Milos Djermanovic) -
a76fb55
chore: @eslint-community/eslint-plugin-eslint-comments v4.3.0 (#18319) (Milos Djermanovic) -
78e45b1
chore: eslint-plugin-eslint-plugin v6.0.0 (#18316) (唯然) -
36103a5
chore: eslint-plugin-n v17.0.0 (#18315) (唯然)
v9.0.0
Breaking Changes
-
b7cf3bd
fix!: correctcamelcase
rule schema forallow
option (#18232) (eMerzh) -
09bd7fe
feat!: move AST traversal into SourceCode (#18167) (Nicholas C. Zakas) -
79a95eb
feat!: disallow multiple configuration comments for same rule (#18157) (Milos Djermanovic) -
9163646
feat!: Rule Tester checks for missing placeholder data in the message (#18073) (fnx) -
3c4d51d
feat!: default forenforceForClassMembers
inno-useless-computed-key
(#18054) (Francesco Trotta) -
47e60f8
feat!: Stricter rule test validations (#17654) (fnx) -
1a94589
feat!:no-unused-vars
default caughtErrors to 'all' (#18043) (Josh Goldberg ✨) -
57089cb
feat!: no-restricted-imports allow multiple config entries for same path (#18021) (Milos Djermanovic) -
2e1d549
feat!: detect duplicate test cases (#17955) (Bryan Mishkin) -
701f1af
feat!: no-inner-declaration new default behaviour and option (#17885) (Tanuj Kanti) -
bde5105
fix!: handle--output-file
for empty output when saving to disk (#17957) (Nitin Kumar) -
07107a5
fix!: upgrade eslint-scope@8.0.0 (#17942) (Milos Djermanovic) -
3ee0f6c
fix!: no-unused-varsvarsIgnorePattern
behavior with catch arguments (#17932) (Tanuj Kanti) -
51f8bc8
fix!: configuration comments with just severity should retain options (#17945) (Milos Djermanovic) -
d191bdd
feat!: Remove CodePath#currentSegments (#17936) (Milos Djermanovic) -
946ae00
feat!: FlatRuleTester -> RuleTester (#17922) (Nicholas C. Zakas) -
baff28c
feat!: removeno-inner-declarations
fromeslint:recommended
(#17920) (Milos Djermanovic) -
cadfbcd
feat!: Rename FlatESLint to ESLint (#17914) (Nicholas C. Zakas) -
d1018fc
feat!: skip running warnings in --quiet mode (#17274) (Maddy Miller) -
fb81b1c
feat!: Set defaultschema: []
, drop support for function-style rules (#17792) (Milos Djermanovic) -
0b21e1f
feat!: add two more cases tono-implicit-coercion
(#17832) (Gürgün Dayıoğlu) -
2916c63
feat!: Switch Linter to flat config by default (#17851) (Nicholas C. Zakas) -
200518e
fix!: Parsing 'exported' comment using parseListConfig (#17675) (amondev) -
bdd6ba1
feat!: Remove valid-jsdoc and require-jsdoc (#17694) (Nicholas C. Zakas) -
12be307
fix!: Behavior of CLI when no arguments are passed (#17644) (Nicholas C. Zakas) -
8fe8c56
feat!: Update shouldUseFlatConfig and CLI so flat config is default (#17748) (Nicholas C. Zakas) -
60dea3e
feat!: deprecate no-new-symbol, recommend no-new-native-nonconstructor (#17710) (Francesco Trotta) -
5aa9c49
feat!: check for parsing errors in suggestion fixes (#16639) (Bryan Mishkin) -
b3e0bb0
feat!: assert suggestion messages are unique in rule testers (#17532) (Josh Goldberg ✨) -
e563c52
feat!:no-invalid-regexp
make allowConstructorFlags case-sensitive (#17533) (Josh Goldberg ✨) -
e5f02c7
fix!: no-sequences rule schema correction (#17878) (MHO) -
6ee3e9e
feat!: Updateeslint:recommended
configuration (#17716) (Milos Djermanovic) -
c2cf85a
feat!: drop support for string configurations in flat config array (#17717) (Milos Djermanovic) -
c314fd6
feat!: RemoveSourceCode#getComments()
(#17715) (Milos Djermanovic) -
ae78ff1
feat!: Remove deprecated context methods (#17698) (Nicholas C. Zakas) -
f71c328
feat!: Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API (#17823) (Nicholas C. Zakas) -
5304da0
feat!: remove formatters except html, json(-with-metadata), and stylish (#17531) (Josh Goldberg ✨) -
e1e827f
feat!: Require Node.js^18.18.0 || ^20.9.0 || >=21.1.0
(#17725) (Milos Djermanovic)
Features
-
d54a412
feat: Add --inspect-config CLI flag (#18270) (Nicholas C. Zakas) -
97ce45b
feat: AddreportUsedIgnorePattern
option tono-unused-vars
rule (#17662) (Pearce Ropion) -
3e9fcea
feat: Show config names in error messages (#18256) (Nicholas C. Zakas) -
de40874
feat: Rule Performance Statistics for flat ESLint (#17850) (Mara Kiefer) -
d85c436
feat: use-isnan report NaN inindexOf
andlastIndexOf
with fromIndex (#18225) (Tanuj Kanti) -
b8fb572
feat: addreportUnusedFallthroughComment
option to no-fallthrough rule (#18188) (Kirk Waiblinger) -
1c173dc
feat: addignoreClassWithStaticInitBlock
option tono-unused-vars
(#18170) (Tanuj Kanti) -
a451b32
feat: makeno-misleading-character-class
report more granular errors (#18082) (Francesco Trotta) -
c49ed63
feat: update complexity rule for optional chaining & default values (#18152) (Mathias Schreck) -
11144a2
feat:no-restricted-imports
option addedallowImportNames
(#16196) (M Pater) -
74124c2
feat: add suggestions touse-isnan
inindexOf
&lastIndexOf
calls (#18063) (StyleShit) -
53f0f47
feat: Add loadESLint() API method for v9 (#18097) (Nicholas C. Zakas) -
2d11d46
feat: add suggestions touse-isnan
in binary expressions (#17996) (StyleShit) -
26093c7
feat: fix false negatives inno-this-before-super
(#17762) (Yosuke Ota) -
5471e43
feat: convert unsafe autofixes to suggestions inno-implicit-coercion
(#17985) (Gürgün Dayıoğlu) -
e3051be
feat: emit warning when.eslintignore
file is detected (#17952) (Nitin Kumar) -
a630edd
feat: maintain latest ecma version in ESLint (#17958) (Milos Djermanovic) -
b4e0503
feat: addno-useless-assignment
rule (#17625) (Yosuke Ota) -
287c4b7
feat:no-misleading-character-class
granular errors (#17515) (Josh Goldberg ✨) -
8792464
feat: Enable eslint.config.mjs and eslint.config.cjs (#17909) (Nicholas C. Zakas) -
24ce927
feat: warn by default for unused disable directives (#17879) (Bryan Mishkin)
Bug Fixes
-
610c148
fix: Supportusing
declarations in no-lone-blocks (#18269) (Kirk Waiblinger) -
e508800
fix: rule tester ignore irrelevant test case properties (#18235) (fnx) -
a129acb
fix: flat config name on ignores object (#18258) (Nicholas C. Zakas) -
dadc5bf
fix:constructor-super
false positives with loops (#18226) (Milos Djermanovic) -
ae8103d
fix: load plugins in the CLI in flat config mode (#18185) (Francesco Trotta) -
e37153f
fix: improve error message for invalid rule config (#18147) (Nitin Kumar) -
af6e170
fix: stop linting files after an error (#18155) (Francesco Trotta) -
0cb4914
fix: validate options when comment with just severity enables rule (#18133) (Milos Djermanovic) -
c4d26fd
fix:use-isnan
doesn't report onSequenceExpression
s (#18059) (StyleShit) -
39076fb
fix: handle absolute file paths inRuleTester
(#17989) (Nitin Kumar) -
6d11f3d
fix: Ensure config keys are printed for config errors (#17980) (Nicholas C. Zakas) -
806f708
fix:no-misleading-character-class
edge cases with granular errors (#17970) (Milos Djermanovic) -
f182114
fix: deep merge behavior in flat config (#17906) (Francesco Trotta) -
b577e8a
fix: allow circular references in config (#17752) (Francesco Trotta)
Documentation
-
e151050
docs: update get-started to the new@eslint/create-config
(#18217) (唯然) -
94178ad
docs: mention aboutname
field in flat config (#18252) (Anthony Fu) -
1765c24
docs: add Troubleshooting page (#18181) (Josh Goldberg ✨) -
96607d0
docs: version selectors synchronization (#18260) (Milos Djermanovic) -
651ec91
docs: remove/* eslint-env */
comments from rule examples (#18249) (Milos Djermanovic) -
950c4f1
docs: Update README (GitHub Actions Bot) -
12f5746
docs: add info about dot files and dir in flat config (#18239) (Tanuj Kanti) -
b93f408
docs: update shared settings example (#18251) (Tanuj Kanti) -
26384d3
docs: fixecmaVersion
in one example, add checks (#18241) (Milos Djermanovic) -
7747097
docs: Update MR review process (#18233) (Nicholas C. Zakas) -
b07d427
docs: fix typo (#18246) (Kirill Gavrilov) -
778082d
docs: add Glossary page (#18187) (Josh Goldberg ✨) -
239a7e2
docs: Clarify the description ofsort-imports
options (#18198) (gyeongwoo park) -
4769c86
docs: fix incorrect example inno-lone-blocks
(#18215) (Tanuj Kanti) -
5251327
docs: Update README (GitHub Actions Bot) -
1dc8618
docs: Update README (GitHub Actions Bot) -
ba1c1bb
docs: Update README (GitHub Actions Bot) -
337cdf9
docs: Explain limitations of RuleTester fix testing (#18175) (Nicholas C. Zakas) -
c7abd89
docs: Explain Node.js version support (#18176) (Nicholas C. Zakas) -
d961eeb
docs: show red underlines in examples in rules docs (#18041) (Yosuke Ota) -
558274a
docs: Update README (GitHub Actions Bot) -
2908b9b
docs: Update release documentation (#18174) (Nicholas C. Zakas) -
1f1260e
docs: replace HackerOne link with GitHub advisory (#18165) (Francesco Trotta) -
e5ef3cd
docs: add inline cases condition inno-fallthrough
(#18158) (Tanuj Kanti) -
450d0f0
docs: fixignore
option docs (#18154) (Francesco Trotta) -
5fe095c
docs: show v8.57.0 as latest version in dropdown (#18142) (Milos Djermanovic) -
7db5bb2
docs: Show prerelease version in dropdown (#18135) (Nicholas C. Zakas) -
73a5f06
docs: Update README (GitHub Actions Bot) -
f95cd27
docs: Disallow multiple rule configuration comments in the same example (#18116) (Milos Djermanovic) -
d8068ec
docs: Update link for schema examples (#18112) (Svetlana) -
f1c7e6f
docs: Switch to Ethical Ads (#18090) (Strek) -
15c143f
docs: JS Foundation -> OpenJS Foundation in MR template (#18092) (Nicholas C. Zakas) -
6ea339e
docs: add stricter rule test validations to v9 migration guide (#18085) (Milos Djermanovic) -
3c816f1
docs: use relative link from CLI to core concepts (#18083) (Milos Djermanovic) -
9458735
docs: fix malformedeslint
config comments in rule examples (#18078) (Francesco Trotta) -
07a1ada
docs: link from--fix
CLI doc to the relevant core concept (#18080) (Bryan Mishkin) -
b844324
docs: Update team responsibilities (#18048) (Nicholas C. Zakas) -
aadfb60
docs: document languageOptions and other v9 changes for context (#18074) (fnx) -
857e242
docs: tweak explanation for meta.docs rule properties (#18057) (Bryan Mishkin) -
10485e8
docs: recommend messageId over message for reporting rule violations (#18050) (Bryan Mishkin) -
98b5ab4
docs: Update README (GitHub Actions Bot) -
505fbf4
docs: updateno-restricted-imports
rule (#18015) (Tanuj Kanti) -
c25b4af
docs: Update README (GitHub Actions Bot) -
33d1ab0
docs: add more examples to flat config ignores docs (#18020) (Milos Djermanovic) -
e6eebca
docs: Update sort-keys options properties count (#18025) (LB (Ben Johnston)) -
1fedfd2
docs: Improve flat config ignores docs (#17997) (Nicholas C. Zakas) -
38b9b06
docs: update valid-typeof rule (#18001) (Tanuj Kanti) -
b4abfea
docs: Update note about ECMAScript support (#17991) (Francesco Trotta) -
6788873
docs: Update release blog post template (#17994) (Nicholas C. Zakas) -
1f37442
docs: Add sections on non-npm plugin configuration (#17984) (Nicholas C. Zakas) -
96307da
docs: migration guide entry forno-inner-declarations
(#17977) (Tanuj Kanti) -
40be60e
docs: Update README (GitHub Actions Bot) -
d31c180
docs: fix number of code-path events on custom rules page (#17969) (Richard Hunter) -
1529ab2
docs: reorder entries in v9 migration guide (#17967) (Milos Djermanovic) -
9507525
docs: Explain how to combine configs (#17947) (Nicholas C. Zakas) -
7c78576
docs: Add more removedcontext
methods to migrate to v9 guide (#17951) (Milos Djermanovic) -
3a877d6
docs: Update removed CLI flags migration (#17939) (Nicholas C. Zakas) -
4a9cd1e
docs: Update Linter API for v9 (#17937) (Milos Djermanovic) -
2a8eea8
docs: update docs for v9.0.0-alpha.0 (#17929) (Milos Djermanovic) -
7f0ba51
docs: showNEXT
in version selectors (#17911) (Milos Djermanovic) -
0a7911e
docs: add flat config default to v9 migration guide (#17927) (Milos Djermanovic) -
94f8065
docs: Add CLI updates to migrate to v9 guide (#17924) (Nicholas C. Zakas) -
16187f2
docs: Add exported and string config notes to migrate to v9 guide (#17926) (Nicholas C. Zakas) -
3ae50cc
docs: Add RuleTester changes to migrate to v9 guide (#17923) (Nicholas C. Zakas) -
0831b58
docs: add rule changes to v9 migration guide (#17925) (Milos Djermanovic) -
037abfc
docs: update API docs (#17919) (Milos Djermanovic) -
afc3c03
docs: add function-style andmeta.schema
changes to v9 migration guide (#17912) (Milos Djermanovic) -
1da0723
docs: updateeslint:recommended
section in Migrate to v9.x (#17908) (Milos Djermanovic) -
f55881f
docs: remove configuration-files-new.md (#17907) (Milos Djermanovic) -
63ae191
docs: Migrate to v9.0.0 (#17905) (Nicholas C. Zakas) -
e708496
docs: Switch to flat config by default (#17840) (Nicholas C. Zakas) -
fdf0424
docs: Update Create a Plugin for flat config (#17826) (Nicholas C. Zakas) -
e6a91bd
docs: Switch shareable config docs to use flat config (#17827) (Nicholas C. Zakas) -
3831fb7
docs: updated examples ofmax-lines
rule (#17898) (Tanuj Kanti) -
cd1ac20
docs: Update README (GitHub Actions Bot)
Build Related
-
26010c2
Build: changelog update for 9.0.0-rc.0 (Jenkins) -
b91f9dc
build: fix TypeError in prism-eslint-hooks.js (#18209) (Francesco Trotta) -
d7ec0d1
Build: changelog update for 9.0.0-beta.2 (Jenkins) -
fd9c0a9
Build: changelog update for 9.0.0-beta.1 (Jenkins) -
c9f2f33
build: changelog update for 8.57.0 (#18144) (Milos Djermanovic) -
1bbc495
Build: changelog update for 9.0.0-beta.0 (Jenkins) -
96f8877
Build: changelog update for 9.0.0-alpha.2 (Jenkins) -
52d5e7a
Build: changelog update for 9.0.0-alpha.1 (Jenkins) -
c2bf27d
build: update docs files when publishing prereleases (#17940) (Milos Djermanovic) -
e91d85d
Build: changelog update for 9.0.0-alpha.0 (Jenkins)
Chores
-
19f9a89
chore: Update dependencies for v9.0.0 (#18275) (Nicholas C. Zakas) -
7c957f2
chore: package.json update for @eslint/js release (Jenkins) -
d73a33c
chore: ignore/docs/v8.x
in link checker (#18274) (Milos Djermanovic) -
44a81c6
chore: upgrade knip (#18272) (Lars Kappert) -
e80b60c
chore: remove code for testing version selectors (#18266) (Milos Djermanovic) -
a98babc
chore: add npm script to run WebdriverIO test (#18238) (Francesco Trotta) -
9b7bd3b
chore: update dependency markdownlint to ^0.34.0 (#18237) (renovate[bot]) -
297416d
chore: package.json update for eslint-9.0.0-rc.0 (#18223) (Francesco Trotta) -
d363c51
chore: package.json update for @eslint/js release (Jenkins) -
1b841bb
chore: fix some comments (#18213) (avoidaway) -
29c3595
chore: remove repetitive words (#18193) (cuithon) -
acc2e06
chore: Introduce Knip (#18005) (Lars Kappert) -
7509276
chore: upgrade @eslint/js@9.0.0-beta.2 (#18180) (Milos Djermanovic) -
96087b3
chore: package.json update for @eslint/js release (Jenkins) -
925afa2
chore: Remove some uses oflodash.merge
(#18179) (Milos Djermanovic) -
972ef15
chore: remove invalid type in @eslint/js (#18164) (Nitin Kumar) -
32ffdd1
chore: upgrade @eslint/js@9.0.0-beta.1 (#18146) (Milos Djermanovic) -
e41425b
chore: package.json update for @eslint/js release (Jenkins) -
bb3b9c6
chore: upgrade @eslint/eslintrc@3.0.2 (#18145) (Milos Djermanovic) -
e462524
chore: upgrade eslint-release@3.2.2 (#18138) (Milos Djermanovic) -
8e13a6b
chore: fix spelling mistake in README.md (#18128) (Will Eastcott) -
66f52e2
chore: remove unused tools rule-types.json, update-rule-types.js (#18125) (Josh Goldberg ✨) -
bf0c7ef
ci: fix sync-labels value of pr-labeler (#18124) (Tanuj Kanti) -
cace6d0
ci: add MR labeler action (#18109) (Nitin Kumar) -
1a65d3e
chore: exportbase
config fromeslint-config-eslint
(#18119) (Milos Djermanovic) -
9aa4df3
refactor: removeglobals
dependency (#18115) (Milos Djermanovic) -
e40d1d7
chore: upgrade @eslint/js@9.0.0-beta.0 (#18108) (Milos Djermanovic) -
9870f93
chore: package.json update for @eslint/js release (Jenkins) -
2c62e79
chore: upgrade @eslint/eslintrc@3.0.1 (#18107) (Milos Djermanovic) -
81f0294
chore: upgrade espree@10.0.1 (#18106) (Milos Djermanovic) -
5e2b292
chore: upgrade eslint-visitor-keys@4.0.0 (#18105) (Milos Djermanovic) -
ce838ad
chore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (#18045) (renovate[bot]) -
54df731
chore: update dependency markdownlint-cli to ^0.39.0 (#18084) (renovate[bot]) -
8f06a60
chore: update dependency shelljs to ^0.8.5 (#18079) (Francesco Trotta) -
93ffe30
chore: update dependency file-entry-cache to v8 (#17903) (renovate[bot]) -
6ffdcbb
chore: upgrade @eslint/js@9.0.0-alpha.2 (#18038) (Milos Djermanovic) -
2c12715
chore: package.json update for @eslint/js release (Jenkins) -
cc74c4d
chore: upgrade espree@10.0.0 (#18037) (Milos Djermanovic) -
dfb68b6
chore: use Node.js 20 for docs sites (#18026) (Milos Djermanovic) -
8c1b8dd
test: add more tests for ignoring files and directories (#18018) (Milos Djermanovic) -
60b966b
chore: update dependency @eslint/js to v9.0.0-alpha.1 (#18014) (renovate[bot]) -
c893bc0
chore: updatemarkdownlint
tov0.33.0
(#17995) (Nitin Kumar) -
c5e50ee
chore: package.json update for @eslint/js release (Jenkins) -
1bf2520
chore: Split Docs CI from core CI (#17897) (Nicholas C. Zakas) -
320787e
chore: delete relative-module-resolver.js (#17981) (Francesco Trotta) -
4926f33
refactor: useObject.hasOwn()
(#17948) (Milos Djermanovic) -
df200e1
refactor: useArray.prototype.at()
to get last elements (#17949) (Milos Djermanovic) -
750b8df
chore: update dependency glob to v10 (#17917) (renovate[bot]) -
74794f5
chore: removed unused eslintrc modules (#17938) (Milos Djermanovic) -
10ed29c
chore: remove unused dependency rimraf (#17934) (Francesco Trotta) -
903ee60
ci: use--force
flag when installing eslint (#17921) (Milos Djermanovic) -
17fedc1
chore: upgrade @eslint/js@9.0.0-alpha.0 (#17928) (Milos Djermanovic) -
cb89ef3
chore: package.json update for @eslint/js release (Jenkins) -
f6f4a45
chore: drop structuredClone polyfill for v9 (#17915) (Kevin Gibbons) -
412dcbb
chore: upgrade eslint-plugin-n@16.6.0 (#17916) (Milos Djermanovic) -
02a8baf
chore: Rename files with underscores (#17910) (Nicholas C. Zakas) -
c0f5d91
chore: remove creating an unused instance of Linter in tests (#17902) (Milos Djermanovic) -
3826cdf
chore: use jsdoc/no-multi-asterisks with allowWhitespace: true (#17900) (Percy Ma) -
a9a17b3
chore: fix getting scope in tests (#17899) (Milos Djermanovic) -
595a1f6
test: ensure that CLI tests run with FlatESLint (#17884) (Francesco Trotta) -
c7eca43
chore: update dependency markdownlint-cli to ^0.38.0 (#17865) (renovate[bot]) -
cc0c9f7
ci: bump github/codeql-action from 2 to 3 (#17873) (dependabot[bot])
v8.57.1
Bug Fixes
-
a19072f
fix: add logic to handle fixTypes in the lintText() method (#18900) (Francesco Trotta) -
04c7188
fix: Don't lint same file multiple times (#18899) (Francesco Trotta) -
87ec3c4
fix: do not throw when defining a global named__defineSetter__
(#18898) (Francesco Trotta) -
60a1267
fix: Provide helpful error message for nullish configs (#18889) (Milos Djermanovic) -
a0dea8e
fix: allowname
in global ignores, fix--no-ignore
for non-global (#18875) (Milos Djermanovic) -
3836bb4
fix: do not crash on error infs.walk
filter (#18886) (Milos Djermanovic) -
2dec349
fix: skip processor code blocks that match only universal patterns (#18880) (Milos Djermanovic)
Documentation
-
6a5add4
docs: v8.x Add EOL banner (#18744) (Amaresh S M) -
b034575
docs: v8.x add version support page to the dropdown (#18731) (Amaresh S M) -
760ef7d
docs: v8.x add version support page in the side navbar (#18740) (Amaresh S M) -
428b7ea
docs: Add Powered by Algolia label to the search (#18658) (Amaresh S M) -
c68c07f
docs: version selectors synchronization (#18265) (Milos Djermanovic)
Build Related
Chores
-
140ec45
chore: upgrade @eslint/js@8.57.1 (#18913) (Milos Djermanovic) -
bcdfc04
chore: package.json update for @eslint/js release (Jenkins) -
3f6ce8d
chore: pin vite-plugin-commonjs@0.10.1 (#18910) (Milos Djermanovic) -
9f07549
chore: ignore/docs/v8.x
in link checker (#18660) (Milos Djermanovic)
vercel/next.js (eslint-config-next)
v15.1.2
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Update React from
7283a21
-20241206 to65e06cb
-20241218: https://github.com/vercel/next.js/pull/74117
Credits
Huge thanks to @ztanner for helping!
v15.1.1
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- fix(turbo): sassOptions silenceDeprecations was not overwritten with user options: https://github.com/vercel/next.js/pull/73937
- refactor collectAppPageSegments: https://github.com/vercel/next.js/pull/73908
Credits
Huge thanks to @devjiwonchoi and @ztanner for helping!
v15.1.0
Core Changes
- fix: decrypt bound args before generating a cache key: #72463
- Fix the path to the next/experimental/testing/server export: #72527
- Expand
server-source-maps
scenarios to cover Edge runtime: #72288 - Ensure logged errors in Edge runtime include the stack: #72394
- fix: added cache control headers for static app routes: #72521
- capture console issues as console errors: #72468
- Add expireTag and expirePath APIs: #72485
- fix: try/catch access to localStorage within __NEXT_APP_ISR_INDICATOR useEffect: #72362
- Move client build ID to a global variable: #72592
- refactor(turbopack): Remove
swc_css
: #72602 - Bypass source map dev middleware for client chunks: #72581
- chore: remove
rc
from URL: #72599 - improve
no-img-element
lint error message: #72410 - Combine bound
"use cache"
closure args into a single parameter: #72587 - [Turbopack] add BackendOptions and allow to disable dependencies, children and storage: #72426
- Omit unused args when calling
"use cache"
functions: #72506 - Add experimental
clientSegmentCache
flag: #72626 - Add
compiler.define
option: #71802 - Fix static indicator with dynamicIO: #72631
- Allow usage of Node.js prereleases: #72635
- improved network url in (dev) cli: #72634
- chore: update
getting-started/react-essentials
path: #72250 - Fix static indicator for pure IO case: #72639
- Bump the monorepo packages TypeScript to
5.6.3
: #72625 - Bump
@capsizecss/metrics
to 3.4.0 for Geist Google Font: #72746 - refactor: remove unused asNotFound property: #72585
- Remove unused
enabled
config from server actions transforms: #72755 - Ensure Next.js is ignore-listed when used as external: #72498
- Bump
eslint-plugin-react
to 7.37.0: #72759 - upgrade amphtml-validator to 1.0.38: #72645
- fix multi-level redirect in server actions: #72770
- refactor: rename error boundary not-found to http-error-fallback: #72586
- Upgrade React from
5c56b873-20241107
to7ac8e612-20241113
: #72768 - Re-use randomly selected dev server port for automatic restarts: #72771
- Emit build error when
"use cache"
is used withoutdynamicIO
enabled: #72781 - fix: not found bounary prop: #72784
- silence sass
legacy-js-api
warning: #72632 - [Segment Prefetch] Move access token to route tree: #72775
- Add internal affordances to show ignore-listed stackframes in terminal: #72763
- chore(turbopack): Centralize reqwest TLS feature configs in turbo-tasks-fetch: #72526
- Upgrade React from
7ac8e612-20241113
to380f5d67-20241113
: #72819 - Shorten unsourcemapped absolute locations in terminal stacktraces: #72764
- codemod: replace
revalidate(Tag|Path)
toexpire(Tag|Path)
: #72826 - "Fix": Lift type check out of loop: #72840
- hide stack trace in CanaryOnlyError: #72859
- Allow missing CacheNodeSeedData during prefetch: #72857
- Add Segment Cache feature check to
prefetch
API: #72861 - Extract shared fetchFromServerResponse logic to separate functions: #72865
- [Segment Cache] Implement behavior on cache miss : #72841
- Emit build error for unknown cache kinds: #72832
- Resolve mdx plugins string format: #72802
- MDX: Only set experimental.turbo if enabled: #72856
- [Turbopack] change persistent caching option to a boolean: #72458
- refactor: generalize next route error helpers: #72774
- Ensure host is in allowed headers: #72867
- refactor: types for collected cache info in route modules: #71434
- feat(turbopack): Enable tree shaking for modules with dynamic imports: #71692
- Fix unhandled rejection in proxy-request: #72530
- chore(build): remove injecting fast refresh to custom loader logs: #72870
- ensure webpack worker exits bubble to parent process: #72921
- Fix sourcemaps for internal client boundaries: #72922
- Turbopack: thread tracing through to resolve results: #72314
- Upgrade vercel og: #72954
- Turbopack NFT: trace manifests and externals: #72316
- Turbopack: NFT followups: #72517
- Support custom servers with minimal node modules: #72966
- Add support for ignore-listing sources in index maps: #72913
- Turbopack: fix loading of externals on Edge: #72349
- Bump SWC used for transpiling Next.js sources: #72993
- fix: ensure HTML validity for the
next-size-adjust
meta tag: #72994 - Revert "Support custom servers with minimal node modules": #73003
- Allow CacheNode.loading to be a promise: #72872
- Properly encode dynamic access in segment prefetch: #72874
- [Segment Cache] Send during route prefetch: #72890
- fix(next/image): improve svg heuristic for unoptimized: #72970
- [Segment Cache] Initial implementation: #72875
- Turbopack: Change edge wrapper to proxy exports : #72502
- experimental: css inlining: #72195
- Display where the env was loaded from when enabled
typedEnv
: #70951 - create forked impl for Link component: #73019
- remove unnecessary handling in forked Link components: #73020
- Pass down ignored field to error overlay: #72925
- remove locale from app link: #73052
- fix: server action redirects between multiple root layouts: #73063
- Add forbidden and unauthorized APIs: #72785
- chore: rename modules for better meaning and searching: #73067
- fix(next/image): reduce avif sharp effort from 4 to 3 for faster encoding: #73030
- (E2E) Log which config file is used for
next start
: #73105 - Remove extra space in envionment log: #73108
- remove inheritance from NextCustomServer: #73005
- Align navigation digest with message: #73074
- refactor: move redirect helpers into separate module: #73118
- Update font data: #73115
- Current behavior for fallbacks with async metadata and prefetching: #73106
- Revert "ensure webpack worker exits bubble to parent process (#72921)": #73136
- Reapply "ensure webpack worker exits bubble to parent process (#72921)": #73138
- Upgrade React from
380f5d6
-20241113 tob01722d
-20241114: #73107 - Implement metadata types support for
exactOptionalPropertyTypes
: #72936 - Reenable otel test for Turbopack: #73093
- Omit unnecessary cache wrapper import: #73160
- Increase max cache tags to 128: #73124
- Do not inline CSS in RSC payload for dynamic client nav: #73182
- fix(next/image): dpl query string should only be used for local images, not remote images: #73184
- feat(after): unflag unstable_after internals: #73190
- feat(after): allow using unstable_after in generateStaticParams: #73217
- Error on navigation API usage in pages router and middleware: #73100
- Undeprecate revalidate APIs and rename expire APIs: #73193
- Revert "codemod: replace
revalidate(Tag|Path)
toexpire(Tag|Path)
": #73269 - feat(after): wait for after-callbacks before server shutdown: #72590
- Fixed interception on a catch-all route: #72902
- add option to disable experimental CssChunkingPlugin: #73286
- rename cssChunkPlugin experimental options: #73291
- Replace the group frames with button for ignored frames: #72964
- handle pages router ignored frames: #73280
- fix(after): no request APIs in force-static: #73321
- fix(after): allow reading draftMode status in after: #73324
- [Turbopack] reland refactor filesystem writes to an effect based system: #73294
- fix(pages): dynamic css missing style after client navigation: #72959
- Make
notFound()
work in"use cache"
page: #73210 - refactor(after): remove unnecessary conditionals: #73447
- Bump
@swc/core
to 1.9.3: #73420 - fix: running cleanup before server is initialized: #73476
- [edge-runtime] drop node16: #73432
- feat(after): allow request APIs in after (actions/handlers): #73345
- Sourcemap errors logged in Edge runtime: #73438
- refactor: rename ALS instances to prevent bad auto imports: #73480
- Show a proper error if a server function's bound args cannot be serialized: #73471
- remove unnecessary internal middleware header from response: #73482
- Ensure Issue Overlay sourcemaps externals in Turbopack: #73439
- Fix missing error message in terminal for bound args serialization error: #73508
- fix: memory leak from
warnOnce()
: #73483 - Upgrade React from
b01722d5-20241114
to1b1283ad-20241203
: #73506 - Fix: Importing an ESM file from next/dist/client/.js fails: #73485
- fix: fixed dedupe response cloning: #73274
- Upgrade React from
1b1283ad-20241203
tode68d2f4-20241204
: #73525 - fix(after): improve error message if promise arg rejects: #73524
- feat: added compression to resume data cache using deflate: #73227
- Use React 19 stable in Pages Router: #73562
- Use stable
@types/react
: #73563 - Cache the bound args encryption result for inline server functions: #73521
- chore: remove non-existent hash fragments from URLs: #73165
- next-upgrade: Ensure highest versions are used not latest: #73566
- Upgrade React from
de68d2f4-20241204
to1c9b1387-20241204
: #73565 - Use consistent error formatting in terminal: #71909
- [Segment Cache] Interception routes: #73434
- Upgrade to typescript 5.7: #73594
- [Segment Cache] Use LRU to manage cache data : #73486
- [Segment Cache] Add isPartial to segment prefetch : #73528
- Fix missing client reference manifest error when using route groups: #73606
- feat(after): stabilize
unstable_after
: #73605 - [Segment Cache] Add isHeadPartial: #73530
- fix: do not add suffix for sitemap under group routes: #73570
- Dynamic IO: Improve error handling: #73607
- fix: Update @swc/helpers: #73666
- Upgrade React from
1c9b1387-20241204
to7283a213-20241206
: #73608 - next-codemod(upgrade): handle absence of scripts in package.json: #73688
- Add inlineCss trade-offs/gotchas and remove canary check: #73609
- Ignore-list stack frames in node_modules even if not explicitly ignore-listed by their sourcemaps: #73689
- Remove ignore for anonymous stack frame: #73610
- test: move HMR Error Recovery test to a separate file: #73592
- test: move HMR basic test to a separate file: #73612
- fixes webpack persistent caching in development and add test case for persistent caching: #73697
- fix: empty generateStaticParams should still create an ISR route: #73358
- Limit the number of concurrently open file watchers on macos: #73741
- fix:
warnOnce()
lru: #73742 - [Segment Cache] Respond with 204 on cache miss: #73649
- [Segment Cache] Skip dynamic request if possible: #73540
Example Changes
- example: add more files to
playwright
.gitignore: #72447 - examples: update app-dir-i18n-routing to v15: #72636
- chore(example): add example for image optimization with secure compute: #72641
- examples: update app-dir-i18n-routing to v15: #72642
- examples: polish some README.md: #72117
- examples(with-supabase): fix action type error: #72783
- use explicit resource management for sandbox: #72780
- update: remove unnecessary in Dockerfile: #72534
- Fix Mongoose example failed build due to env variable not found: #72918
- (example) using
await
params when dynamic routing: #72896 - Updated the example of with-styled-jsx-scss to utilize the App Router.: #70567
- Updated the example of with-styled-jsx-plugins to utilize the App Router: #70663
- Updated the example of with-unstated to utilize the App Router.: #73211
- updated with-react-foundation example to utilize the App router.: #73243
- updated with-plausible example to utilize the app router.: #73255
- updated with-cssed example to utilize the app router.: #73348
- updated with-babel-macros example to utilize the app router.: #73347
- updated image-legacy-component example to utilize the app router.: #73344
- updated with-styletron example to utilize the app router.: #73252
- updated with-context-api example to utilize the App Router.: #73316
- updated with-mqtt-js example to utilize the App Router.: #73303
- chore(examples): update api-routes-cors: #73408
- chore: release turbopack npm packages: #73443
- examples: remove
app-dir
ini18n-routing
directory name: #73453 - examples: move Postgres example: #73531
- Bump
examples/**
Eslint to v9: #73560 - Update with next sass example: #73548
- examples: remove
next-env.d.ts
files: #73673 - examples: update
with-sass
README.md: #73668 - examples: remove
next-offline
example: #73675 - examples: remove the old files from
with-postgres
: #73587 - examples: remove
with-emotion-*
directories: #73674 - updated with-ionic-typescript example to utilize the App Router.: #73418
- examples: update
with-styletron
README.md: #73411 - examples: update
with-babel-macros
README.md: #73410 - examples: update
with-plausible
README: #73305 - examples: unify related CMS examples in README: #73247
- examples: fix view source pathname at
image-legacy-component
: #73414 - examples: remove
with-styled-components-babel
: #73229 - examples: replaced GTM component with GA in Google Analytics example: #73597
- examples: introduce LaunchPad in strapi: #73244
- examples: remove
with-storybook-styled-jsx-scss
: #73228
Misc Changes
- Revert "[Turbopack] add rocksdb": #72505
- [Docs]: Remove try catch and link to error handling docs: #72500
- [Turbopack] improve performance of the trace server: #71661
- Docs: Move
next.config.js
API pages under aconfig
folder, fix headings in TS and ESLint config pages: #72465 - Skip canary checks during internal development with VSCode: #72504
- Devlow snowflake backend: use milliseconds instead of seconds for event time: #72490
- [Turbopack] add TODO comment: #72510
- docs: unify the header deps by removing #: #72451
- fix: remove unnecessary fragment: #72492
- Fix grammatical error: remove unnecessary 'a' in 03-server-actions-and-mutations.mdx: #72496
- docs: fix broken link: #72169
- codemod(turbopack): Replace
return Err(anyhow!())
withanyhow::bail!()
: #72487 - Upgrade React from
66855b96-20241106
to5c56b873-20241107
: #72469 - fix(turbopack): Remove self-references from tree shaking results: #72567
- Turbopack: Don't run PostCSS on internal assets: #72579
- Update
swc_core
tov5.0.4
fromv5.0.1
: #72604 - (e2e) module-level
patchFileDelay
flag: #72439 - docs: remove unstable_after from Dynamic APIs: #72595
- chore: release turbopack npm packages: #72491
- Include bound args param in server reference information byte arg mask: #72588
- [Turbopack] fix bug where task was not recomputed when stale: #72509
- CNA: prompt enable turbopack value to true: #72616
- docs(use-cache): add missing
function
to page component examples: #72620 - docs(data-fetching): fix static params as promise examples : #72565
- Re-enable fetch logging test - HMR: #72640
- [Turbopack] migrate benchmark to new backend: #72457
- test: add wait for the error page navigation: #72760
- CNA: use eslint 9: #72762
- CNA: replace geist font from local to google: #72618
- fix(turbopack): Depend on side effect from import binding: #72601
- chore: keep create-next-app messages and docs the same: #72444
- ci: flake detection should run in both bundlers: #72773
- [Turbopack] reduce nesting: #72747
- docs: update file structure: #72748
- chore(cna): switch to .mjs tailwind config: #72124
- [Turbopack] fix collectibles counting and aggregation: #72609
- [Turbopack] implement dispose root task: #72611
- feat(turbopack): Merge single-pointer nodes in reverse direction: #72571
- test: fix hydration error on not-found test texture: #72818
- docs(turbo-tasks): Improve RcStr docs: #72825
- fix(turbopack): type error when "dynamic_embed_contents" is on: #72828
- [Turbopack] make issue ordering stable: #72751
- refactor(turbopack): Use
ResolvedVc
forturbopack
crate: #72791 - refactor(turbo-tasks): Simplify most type bounds on Vc and related types: #72823
- fix(turbopack): Fix CSS Module renaming behavior for
@container
: #72607 - refactor(turbopack): Cleanup tree shaking graph logic: #72836
- [Turbopack] fix hanging waiting on in progress cells: #72758
- [Turbopack] avoid writing manifests in data/rsc variant of page: #72767
- Consolidate server actions transform errors into
emit_error
function: #72811 - refactor(turbo-rcstr): Move turbo_tasks::RcStr into it's own crate: #72858
- Add explicit section about type overriding for v15: #72866
- refactor(turbopack): Use
ResolvedVc
forturbopack-ecmascript
: #72564 - refactor(turbopack): Use graph for server action workaround: #72812
- [Turbopack] refactor filesystem writes to an effect based system: #72847
- Fix sourcemaps for async Turbopack chunks: #72827
- docs(turbopack): Document build dependency on clang for rocksdb: #72493
- Clarify how MDX plugins are supported in Turbopack: #72917
- Turbopack: Don't replace constant conditions with sideeffects: #72608
- [Turbopack] fix effects tracing: #72928
- docs: fix code block language in redirecting docs: #72944
- docs: fix code block language in error pages: #72943
- docs: update "Migrate to async Dynamic APIs" docs: #72852
- Fix broken link to the
rootDir
doc: #72893 - docs: use relative urls: #72941
- docs: add the section titles to error page: #72942
- simplify vapid key generation docs: #72916
- docs: add and unify notes to error pages: #72838
- feat(turbopack): Implement module walking for side effect optimization: #71241
- docs: remove deprecated
frameborder
, adjustallowFullScreen
and update the demo: #72644 - docs: fix code block language: #72839
- Docs: Changing information about data fetching cache: #72301
- Turbopack: apply effects in tests: #72952
- doc: remove internal
customServer
flag from custom server docs: #72962 - codemod(turbopack): Some more script-generated migrations to ResolvedVc: #72889
- Consolidate
FnExpr
andFnDecl
server function transforms: #72960 - Allow method properties to be server functions: #72969
- Include
debug
script in test directories: #72992 - docs(sitemap): remove extra 's': #73023
- chore(turbopack-core): Delete dead
all_modules_and_affecting_sources
helper function: #73016 - [Turbopack] concurrent write batches and little endian encoding: #72929
- Remove unused
retry
aroundbrowser.eval
: #72999 - [Turbopack] Invalidation and Persisting fixes: #72950
- docs: missing
await
when using params: #73044 - docs: incorrect
params.id
: #73045 - Remove hardcoded timeouts in Redbox test helpers: #73000
- perf(turbopack): Enable merging of export fragments: #72813
- Turbopack build: Add bench for Turbopack cache: #73040
- 🍪 Understanding Cookie Behavior in Server Components: #73001
- docs: add Fleek's Next.js template: #72988
- docs(fetch): clarify default fetch behavior: #72982
- docs: update staleTimes.mdx: #72967
- docs:
Redirecting
fix route handler path: #72617 - Rename
waitForAndOpenRuntimeError
toopenRedbox
: #72996 - Revert "docs: add Fleek's Next.js template": #73054
- fix benchmark directory: #73057
- hmr-test waits for compile signal: #73064
- docs(next-config): add experimental inline css docs: #73070
- docs: update tags when upgrading from 13 to 14: #73071
- docs: fix static params as promise examples: #72553
- fix: missing await, missing type Promise: #73088
- Disallow multiple server directives at the same level (file or function): #73018
- Docs: Add canary tags to
expirePath
andexpireTag
: #73096 - docs: update pages automatic static optimization rendering page: #72545
- docs(authentication): fix typescript code example: #72533
- docs: add details on React Compiler annotations with
"use memo"
: #73053 - docs: fix code block language on redirecting docs: #73073
- docs(routing): update params type to be async (v15): #73111
- docs: clarify Switching to Dynamic Rendering section: #73113
- Method/function props of exported objects are not server functions: #73058
- Forbid
this
andarguments
in server functions: #73059 - port turbopack-swc-utils to ResolvedVc: #73086
- port turbopack-mdx to use ResolvedVc: #73080
- feat: Update
lightningcss
tov1.0.0-alpha.61
: #73161 - port turbopack-resolve to ResolvedVc: #73083
- move turbopack-image to ResolvedVc: #73079
- Turbopack: more tracing spans: #73010
- Handle server function directives in class methods: #73060
- 15.1 docs:
forbidden
,unauthorized
, andauthInterrupts
: #73039 - Enable another Turbopack build test: #73166
- CNA: replace
.eslintrc.json
witheslint.config.mjs
: #73162 - Turbopack: don't compute all paths for builds: #73036
- perf(turbopack): Use
ResolvedVc
forturbopack-css
: #73172 - Revert change to ReactRefreshRequire test: #73186
- chore(CI): Remove sysroot override for macos arm64: #73188
- docs: Improve Accuracy and Type Safety on Data Fetching Examples: #73122
- docs: eslint flat config: #73167
- perf(turbopack): Use
ResolvedVc
forturbopack-core
: #73065 - perf(turbopack): Use
ResolvedVc
forturbopack
,turbopack-tests
,turbopack-wasm
: #73196 - perf(turbopack): Use
ResolvedVc
forturbopack-nodejs
: #73200 - perf(turbopack): Use
ResolvedVc
forturbopack-env
: #73202 - Getting Started Docs: Add new "Layouts and Pages" page: #73049
- Docs:
forbidden
andunauthorized
nits: #73213 - Turbopack: make client references actual references: #73174
- Docs: Update
turbopack
API Reference: #73215 - Update authentication docs to use useActionState: #72503
- Don't hoist a server function if a compile error was emitted: #73189
- Forbid
super
in static class methods with server function directives: #73061 - port turbopack-node to ResolvedVc: #73082
- port turbopack-static to ResolvedVc: #73084
- perf(turbopack): Use
ResolvedVc
fornext-api
, part 1: #73234 - Pin undici in tests: #73263
- Turbopack: use try_join instead of future::try_join_all: #73261
- docs(server-actions): add missing formData type: #73257
- perf(turbopack): Use
ResolvedVc
fornext-api
, part 2: #73235 - docs: update static-tweet to react-tweet: #73253
- docs(fetching):
params
toawait params
: #73254 - convert let keyword to const keyword to data fetching and caching example: #73251
- [Turbopack] instead of depending on all env vars, track them via Proxy in webpack loaders: #73112
- docs: update the demo link of kontent.ai: #73250
- Docs: Fix headings in
Layouts and Pages
: #73268 - remove ResolvedVc from trait functions: #73270
- perf(turbopack): Use
ResolvedVc
fornext-api
, part 3: #73236 - [Turbopack] Revert "refactor filesystem writes to an effect based system": #73287
- Devlow: exit with non-zero code on failure: #73276
- perf(turbopack): Use
ResolvedVc
fornext-api
, part 4: #73237 - perf(turbopack): Use
ResolvedVc
forturbopack-browser
: #73198 - perf(turbopack): Use
ResolvedVc
fornext-core
: #73177 - perf(turbopack): Use
ResolvedVc
fornext-api
, part 5: #73238 - test: reduce number of rendering loop causing flakiness: #73277
- Turbopack build: Fix css-minify test: #72990
- chore(turbo-tasks): Add a lint for
Vc<T>
in turbo-tasks types: #73298 - docs: add await before headers() and cookies() calls: #73315
- port turbopack-ecmascript to ResolvedVc: #73226
- test: fix canary test with 18.3.1: #73327
- Pin version of
nwsapi
(revert later): #73351 - fix Turbopack devlow bench: #73278
- Revert "Pin version of
nwsapi
(revert later)": #73353 - [Turbopack] Performance improvements for Persistent Caching: #73265
- refactor(turbopack): Use
ResolvedVc<T>
for struct fields innext-core
: #73310 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbopack-ecmascript
: #73302 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbopack-css
: #73300 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields innext-api
, part 1: #73366 - docs: add missing
default
to page component examples: #73233 - Documentation Fix: Typo and URL Correction: #73397
- [Turbopack] Custom persistence layer: #73029
- chore(cna): add .pnpm-debug.log* to all cna gitignore: #73446
- cna: update
.gitignore
to ignore all.env
files: #73415 - chore(turbo-tasks): improve ast-grep lint time: #73440
- [Turbopack] fix mmap advise on windows: #73462
- Getting Started docs: Images and Fonts: #73340
- Add mention of changing debugWithEdge to debugWithChrome.: #73409
- docs: Add note about remove of the
swcMinify
flag: #73281 - docs(typo): fix typos in
file conventions
,functions
, anderrors
: #73376 - add more ResolvedVc best-practices lints: #73331
- docs: sort and update CMS examples: #73295
- Allow passing a nonce to google tag manager related script: #73370
- Getting Started Docs: CSS: #73341
- Getting Started docs: Fetching and Streaming: #73352
- Getting Started Docs:
Images and Fonts
feedback: #73470 - prevent accidentally re-creating ResolvedVc via deref by using a deprecated fn: #73428
- refactor(turbopack): Disable tree shaking by default: #73421
- [Turbopack] fix race condition in database compaction: #73495
- fix unnecessary to_resolved calls in test cases: #73501
- [Turbopack] small minor performance improvements for dirtyness tracking and scheduling: #73494
- turbopack-cli: Use correct fs and env for builds: #73487
- fix some trivial cases of to_resolved being used in a loop: #73435
- refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbopack-core
: #73301 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields inturbo-tasks
: #73371 - refactor(turbopack): Use
ResolvedVc<T>
for trivial struct fields: #73372 - test: Enable tree shaking tests: #73541
- [Turbopack] fix incorrect task access for Persistent Caching: #73549
- [Turbopack] more debugging options for Persistent Cache: #73550
- sync-react: Add affordance to stop syncing Pages Router: #73533
- Remove unused React 17 install: #73534
- create-next-app: Use stable React 19 types: #73569
- Fix PostCSS dependency message handling: #73529
- docs: update the outdated generate sitemaps doc with versioned changes: #73547
- [Turbopack] add telemetry for persistent caching usage: #73554
- docs: fix forbidden file paths: #73575
- docs(composition-patterns): add missing React.ReactNode type in layout.tsx example: #73577
- test: replace
check
toretry
in hmr.test.ts: #73590 - chore(docs): mention uses for
unoptimized
: #73604 - test: fix next-sass test: #73633
- refactor(turbopack): Use
ResolvedVc<T>
for struct fields in extra crates: #73451 - refactor(turbopack): Use
ResolvedVc<T>
for struct fields innext-api
, final part: #73367 - docs: Fix image component API reference parsing: #73658
- docs: fix code block language in images-and-fonts docs: #73492
- fix(turbopack): Fix deprecation warnings from unnecessary
.to_resolved()
calls: #73631 - [Turbopack] replace EnvLayer with a faster filter: #73614
- [Turbopack] fix invalid source maps on HMR: #72328
- [Turbopack] include task name in dirty cause of output change: #72574
- 15.1 docs: React 19: #73510
- Docs: Add
canary
page to upgrade guides: #73518 - [Turbopack] change emit collectible to require ResolvedVc: #73684
- Fix failing tests: #73707
- test: move HMR Full Reload test to a separate file: #73591
- test: change
with-next-sass
towith-sass
: #73670 - test: move HMR main test to a separate file: #73611
- [Turbopack] Introduce OperationVc that wraps operations: #70242
- chore(github): update stale issue periods: #73709
- test: update
turbopack-dev-examples-manifest
: #73230 - [Turbopack] use thread local trace collecting: #73615
- Skip
build_and_deploy
on docs-only changes: #73659 - 15.1 docs: request APIs in
after
: #73692 - [Turbopack] fix lmdb feature: #73728
- [Turbopack] cleanup and documentation: #73496
- Turbopack: Single-graph-traversal and migrate next/dynamic: #73222
- Docs: Getting Started Nits: #73596
- 15.1 docs: Add experimental tags to
forbidden
andunauthorized
APIs: #73513 - 15.1 docs: stable
after
: #73038 - Turbopack: migrate server actions to single-graph-traversal: #73260
- re-enable middleware deploy tests: #73744
- docs(turbopack): Better document the Vc type, with references to ResolvedVc and VcOperation: #72524
- test: fix type error in segment-cache-basic test: #73755
Credits
Huge thanks to @sokra, @molebox, @delbaoliveira, @eps1lon, @wbinnssmith, @JamBalaya56562, @hyungjikim, @adrian-faustino, @mottox2, @lubieowoce, @bgw, @mknichel, @wyattjoh, @huozhi, @kdy1, @mischnic, @ijjk, @icyJoseph, @acdlite, @unstubbable, @gaojude, @devjiwonchoi, @cena-ko, @lforst, @devpla, @samcx, @styfle, @ztanner, @Marukome0743, @timneutkens, @JeremieDoctrine, @ductnn, @karlhorky, @reynaldichernando, @chogyejin, @y-yagi, @philparzer, @alfawal, @Rhynden, @arlyon, @MJez29, @Goodosky, @themattmayfield, @tobySolutions, @kevinmitch14, @leerob, @emmanuelgautier, @mrhrifat, @lid0a, @boar-is, @nisabmohd, @PapatMayuri, @ovogmap, @Reflex2468, @LioRael, @betterthanhajin, @HerringtonDarkholme, @bpb54321, @ahmoin, @Kikobeats, @abdelrahmanAbouelkheir, @lumirlumir, @yeeed711, @petter, and @suu3 for helping!
v15.0.4
[!NOTE]
This release is backporting changes. It does not include all pending features/changes on canary.
Core Changes
- Use React 19 stable in Pages Router: https://github.com/vercel/next.js/pull/73564
Credits
Huge thanks to @eps1lon
v15.0.3
Core Changes
- Read page name from work store in server module map proxy: #71669
- codemod: should not transform when param is not used: #71664
- [dynamicIO] complete refactor to prerender: #71687
- fix: metadata image route normalize path posix for windows: #71673
- next-codemod(upgrade): optional catch when missing dev script: #71598
- Avoid server action function indirection in Turbopack: #71628
- fix: exclude
basePath
infindSourceMapURL
: #71719 - fix: stack frame text color in dark mode: #71656
- Fix: revert the bad node binary handling: #71723
- next-codemod: add empty
pnpm-workspace.yaml
to test fixtures to bypass PNPM workspace checks: #71726 - warn on sync access if dynamicIO is not enabled: #71696
- Update React from
69d4b800-20241021
to45804af1-20241021
: #71718 - next-upgrade: do not add
--turbopack
flag when--turbo
exists innext dev
: #71730 - feat: stitch errors with react owner stack: #70393
- [dynamicIO] update data access error and documentation: #71738
- Test cached form action with revalidate: #71591
- Upgrade React from
45804af1-20241021
to28668d39-20241023
: #71745 - Fix race condition when setting client reference manifests: #71741
- Fix fetch with no-store inside of use cache: #71754
- Remove the bottom collapse button in dev overlay: #71658
- [dynamicIO] unify cache filling and lazy-module warming: #71749
- Don't filter out source location frames through RSC: #71752
- fix undefined default export error msg: #71762
- Upgrade React from
28668d39-20241023
to1631855f-20241023
: #71769 - Enable owner stack in experimental build: #71716
- feat: add experiment for sharpjs cpu flags: #71733
- fix: handle server component replay error in error overlay: #71772
- Don't error asking for prebuilt bundles: #71778
- Replace
turbopack://[project]/...
sourcemap uris withfile://...
in development: #71489 - misc: update source map paths for bundled Next.js runtime: #71779
- [dynamicIO] refine error message and docs: #71781
- next-upgrade: change
--turbo
to--turbopack
if applicable: #71737 - Show all diff when uncollapse: #71792
- Sourcemap errors in terminal by default : #71444
- Fully enable custom error callbacks for app router: #71794
- Simplify Server Action Webpack plugin: #71721
- ensure DIO development segment errors are cleared after correcting: #71811
- Include sourceframe in errors logged in the terminal during development: #71803
- [dynamicIO] update prerender cache scoping and cache warming for validation: #71822
- only force stack frame color in tty: #71860
- Add test for fetch with auth in use cache: #71768
- Fix race with hot-reloader-client clearing overlay errors: #71771
- Fix dynamic tracking in dev: #71867
- Revert "Sourcemap errors in terminal by default (#71444)": #71868
- Fix fetch caching inside of
"use cache"
: #71793 - Trace upload: only send traces for current session: #71838
- Reland "Sourcemap errors in terminal by default": #71877
- Implement information byte in Server Reference ID and other optimizations: #71463
- fix: webpack build error on Windows: #71943
- Run with
--enable-source-maps
by default innext dev
: #71820 - fix global-error styles: #71914
- Use
registerClientReference
for ESM client component modules: #71968 - Fix missing
await
ofparams
when metadata is used with an image file: #71871 - Upgrade React from
1631855f-20241023
to02c0e824-20241028
: #71979 - Populate sourcemap
ignoreList
when Webpack is used: #71821 - [dynamicIO] unify server and client prerender for non-ppr pathway: #71764
- codemod: add separator to the parenthenese expr: #71993
- Respect sourcemap's ignore list when printing errors in the terminal: #71908
- fix console color to be compatible in chrome devtools: #71939
- Delete obsolete codemod
next-dynamic-access-named-export
: #72016 - fix: log the error instance modified extra location info: #71930
- Compare error stack to dedupe error: #71798
Example Changes
Misc Changes
- docs: fix broken link in Architecture/Turbopack documentation: #71412
- test: migrate rest async api usage in tests: #71663
- fix: docs for dynamic routing in next 15: #71531
- Remove the 'new' keyword from the GET function sample code.: #71671
- chore: fix wrong path of comments: #71682
- docs(next-config): remove mention of appIsrStatus is on canary: #71695
- react-sync: Ignore update notices from npm: #71717
- Docs: Update default marker for fetch cache option: #71728
- [docs] Fix page.tsx parameter types: #71680
- [docs] Fix table.js containing TS code: #71677
- docs(ppr): update note about ppr: #71697
- docs lint: #71748
- fixes error message asserts and lints: #71747
- Fix docs for configuring Turbopack: #71755
- docs(turbo): add experimental icon to turbo config section: #71761
- feat(turbopack): Add
__turbopack_original__
while tree shaking: #71547 - test: re-enable test with note: #71789
- Docs: Remove beta marker from Turbopack docs: #71796
- Update docs 1: #71812
- docs lint fixes: #71813
- docs: remove
"use cache"
on before code snippet: #71815 - Next docs broken links: #71823
- [Turbopack] add optimization based on upper count: #71606
- chore(turbo-tasks-backend): Use let instead of match for macro bindings: #71756
- chore(turbo-tasks-backend): Remove collapsible-if lints: #71758
- removing extra reference: #71853
- codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 3): #71665
- Update sync-dynamic-apis.mdx: #71907
- codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 4): #71804
- test: remove duplicated flaky test: #71967
- docs: Fix typo in cacheLife configs in use-cache docs: #71921
- Fix use cache example line highlights: #71883
- Allow breakpoints to be set in
packages/next/src/compiled
: #71986 - updated upgrade to v15 command in docs: #71643
- codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 5): #71861
- Clarify that streaming is blocked on generateMetadata for initial load: #71985
- Docs: Add legacy tags: #71964
- Docs: Fix broken link: #72021
- (docs)
use cache
: Add text code formatting: #71999 - docs: update file structure: #71951
- Documentation Fix: Correct
cacheTag
Function Usage: #71912 - correct expire calc & and Nested usage import in use-cache docs: #71899
- Docs: Address internal
use cache
comments : #71981 - Fix swc version mismatch when checking out an older version: #71978
Credits
Huge thanks to @ytori, @unstubbable, @huozhi, @SebassNoob, @tatsuteb, @Marukome0743, @gnoff, @samcx, @devjiwonchoi, @imprakharshukla, @migueldamota, @eps1lon, @ztanner, @timneutkens, @cantemizyurek, @sebmarkbage, @padmaia, @ijjk, @styfle, @wbinnssmith, @feedthejim, @kdy1, @shuding, @molebox, @ismaelrumzan, @sokra, @bgw, @timeyoutakeit, @AdonisAgelis, @chicoxyzzy, @gaojude, @elitalpa, @t3dotgg, @gaearon, @nisabmohd, @gadcam, @delbaoliveira, @bennettdams, @wiscaksono, and @Developerayo for helping!
v15.0.2
Core Changes
- Read page name from work store in server module map proxy: #71669
- codemod: should not transform when param is not used: #71664
- [dynamicIO] complete refactor to prerender: #71687
- fix: metadata image route normalize path posix for windows: #71673
- next-codemod(upgrade): optional catch when missing dev script: #71598
- Avoid server action function indirection in Turbopack: #71628
- fix: exclude
basePath
infindSourceMapURL
: #71719 - fix: stack frame text color in dark mode: #71656
- Fix: revert the bad node binary handling: #71723
- next-codemod: add empty
pnpm-workspace.yaml
to test fixtures to bypass PNPM workspace checks: #71726 - warn on sync access if dynamicIO is not enabled: #71696
- Update React from
69d4b800-20241021
to45804af1-20241021
: #71718 - next-upgrade: do not add
--turbopack
flag when--turbo
exists innext dev
: #71730 - feat: stitch errors with react owner stack: #70393
- [dynamicIO] update data access error and documentation: #71738
- Test cached form action with revalidate: #71591
- Upgrade React from
45804af1-20241021
to28668d39-20241023
: #71745 - Fix race condition when setting client reference manifests: #71741
- Fix fetch with no-store inside of use cache: #71754
- Remove the bottom collapse button in dev overlay: #71658
- [dynamicIO] unify cache filling and lazy-module warming: #71749
- Don't filter out source location frames through RSC: #71752
- fix undefined default export error msg: #71762
- Upgrade React from
28668d39-20241023
to1631855f-20241023
: #71769 - Enable owner stack in experimental build: #71716
- feat: add experiment for sharpjs cpu flags: #71733
- fix: handle server component replay error in error overlay: #71772
- Don't error asking for prebuilt bundles: #71778
- Replace
turbopack://[project]/...
sourcemap uris withfile://...
in development: #71489 - misc: update source map paths for bundled Next.js runtime: #71779
- [dynamicIO] refine error message and docs: #71781
- next-upgrade: change
--turbo
to--turbopack
if applicable: #71737 - Show all diff when uncollapse: #71792
- Sourcemap errors in terminal by default : #71444
- Fully enable custom error callbacks for app router: #71794
- Simplify Server Action Webpack plugin: #71721
- ensure DIO development segment errors are cleared after correcting: #71811
- Include sourceframe in errors logged in the terminal during development: #71803
- [dynamicIO] update prerender cache scoping and cache warming for validation: #71822
- only force stack frame color in tty: #71860
- Add test for fetch with auth in use cache: #71768
- Fix race with hot-reloader-client clearing overlay errors: #71771
- Fix dynamic tracking in dev: #71867
- Revert "Sourcemap errors in terminal by default (#71444)": #71868
- Fix fetch caching inside of
"use cache"
: #71793 - Trace upload: only send traces for current session: #71838
- Reland "Sourcemap errors in terminal by default": #71877
- Implement information byte in Server Reference ID and other optimizations: #71463
- fix: webpack build error on Windows: #71943
- Run with
--enable-source-maps
by default innext dev
: #71820 - fix global-error styles: #71914
- Use
registerClientReference
for ESM client component modules: #71968 - Fix missing
await
ofparams
when metadata is used with an image file: #71871 - Upgrade React from
1631855f-20241023
to02c0e824-20241028
: #71979 - Populate sourcemap
ignoreList
when Webpack is used: #71821 - [dynamicIO] unify server and client prerender for non-ppr pathway: #71764
- codemod: add separator to the parenthenese expr: #71993
- Respect sourcemap's ignore list when printing errors in the terminal: #71908
- fix console color to be compatible in chrome devtools: #71939
- Delete obsolete codemod
next-dynamic-access-named-export
: #72016 - fix: log the error instance modified extra location info: #71930
- Compare error stack to dedupe error: #71798
Example Changes
Misc Changes
- docs: fix broken link in Architecture/Turbopack documentation: #71412
- test: migrate rest async api usage in tests: #71663
- fix: docs for dynamic routing in next 15: #71531
- Remove the 'new' keyword from the GET function sample code.: #71671
- chore: fix wrong path of comments: #71682
- docs(next-config): remove mention of appIsrStatus is on canary: #71695
- react-sync: Ignore update notices from npm: #71717
- Docs: Update default marker for fetch cache option: #71728
- [docs] Fix page.tsx parameter types: #71680
- [docs] Fix table.js containing TS code: #71677
- docs(ppr): update note about ppr: #71697
- docs lint: #71748
- fixes error message asserts and lints: #71747
- Fix docs for configuring Turbopack: #71755
- docs(turbo): add experimental icon to turbo config section: #71761
- feat(turbopack): Add
__turbopack_original__
while tree shaking: #71547 - test: re-enable test with note: #71789
- Docs: Remove beta marker from Turbopack docs: #71796
- Update docs 1: #71812
- docs lint fixes: #71813
- docs: remove
"use cache"
on before code snippet: #71815 - Next docs broken links: #71823
- [Turbopack] add optimization based on upper count: #71606
- chore(turbo-tasks-backend): Use let instead of match for macro bindings: #71756
- chore(turbo-tasks-backend): Remove collapsible-if lints: #71758
- removing extra reference: #71853
- codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 3): #71665
- Update sync-dynamic-apis.mdx: #71907
- codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 4): #71804
- test: remove duplicated flaky test: #71967
- docs: Fix typo in cacheLife configs in use-cache docs: #71921
- Fix use cache example line highlights: #71883
- Allow breakpoints to be set in
packages/next/src/compiled
: #71986 - updated upgrade to v15 command in docs: #71643
- codemod(turbopack): Rewrite Vc fields in structs as ResolvedVc (part 5): #71861
- Clarify that streaming is blocked on generateMetadata for initial load: #71985
- Docs: Add legacy tags: #71964
- Docs: Fix broken link: #72021
- (docs)
use cache
: Add text code formatting: #71999 - docs: update file structure: #71951
- Documentation Fix: Correct
cacheTag
Function Usage: #71912 - correct expire calc & and Nested usage import in use-cache docs: #71899
- Docs: Address internal
use cache
comments : #71981 - Fix swc version mismatch when checking out an older version: #71978
Credits
Huge thanks to @ytori, @unstubbable, @huozhi, @SebassNoob, @tatsuteb, @Marukome0743, @gnoff, @samcx, @devjiwonchoi, @imprakharshukla, @migueldamota, @eps1lon, @ztanner, @timneutkens, @cantemizyurek, @sebmarkbage, @padmaia, @ijjk, @styfle, @wbinnssmith, @feedthejim, @kdy1, @shuding, @molebox, @ismaelrumzan, @sokra, @bgw, @timeyoutakeit, @AdonisAgelis, @chicoxyzzy, @gaojude, @elitalpa, @t3dotgg, @gaearon, @nisabmohd, @gadcam, @delbaoliveira, @bennettdams, @wiscaksono, and @Developerayo for helping!
v15.0.1
Core Changes
- Reland "[dynamicIO] warn for disallowed dynamic in dev": #71567
- next-upgrade: prompt (un)install only when there's a change: #71308
- chore(next-codemod): remove
@next/font
from optional Next.js packages to install: #71563 - [dynamicIO] Avoid triggering memory leak false positive with makeHangingPromise: #71576
- Avoid triggering memory leak false positive with makeHangingPromise: #71579
- Upgrade React from
65a56d0e-20241020
to69d4b800-20241021
: #71568 - avoid logging stacks for internal errors: #71575
- Avoid server action
endpoint
function indirection: #71572 - fix: handle terminal color in chrome console: #71581
- [dynamicIO] Update prerender to use Fizz prerender: #71580
- misc(next-upgrade): reuse process.cwd() value: #71558
- [dynamicIO]: dev navigations should show disallowed dynamic errors: #71595
- next-lint: Use ESLint v9 by default: #71371
- fix: prevent router errors from being logged on the client: #71583
- fix: next package resolving in dev overlay: #71632
- Improve type coverage of setup-dev-bundler: #71443
- fix(turbo-tasks): Implement ValueDebugFormat for ResolvedVc: #71173
- Add --turbopack CLI flag: #71657
- [dynamicIO] detect metadata boundaries in dev using server component stacks: #71666
Example Changes
- chore: Update
with-supabase
to be compatible with Nextjs 15: #71631 - Update Sanity example to next v15: #71640
Misc Changes
- docs(ppr): remove v14 mention for ppr: #71498
- docs: fix upgrade codemod command: #71578
- Turbopack: Always use blob: URLs for assets in middleware: #71471
- fix: metadata image route Windows path escaping: #71615
- fix: third-parties package peer dependency: #71620
- Fix
module_resolution: "nodenext"
withmjs
orcjs
: #71635 - react-sync: Automatically update peer dependencies in libraries: #71636
- chore(docs): fix typo in image.mdx docs: #71647
- docs: remove the canary note on instrumentation: #71649
- test: fix async api tests: #71652
- Enable source maps for
pnpm debug
: #71653 - codemod(turbopack): Rewrite more Vc fields in structs as ResolvedVc: #71172
Credits
Huge thanks to @gnoff, @devjiwonchoi, @samcx, @ztanner, @unstubbable, @huozhi, @mischnic, @lubieowoce, @eps1lon, @ivasilov, @styfle, @bgw, @stipsan, and @timneutkens for helping!
v15.0.0
Core Changes
- refactor: next-flight-client-module-loader return conditions: #64348
- Fix Server Action error logs for unhandled POST requests: #64315
- Shared Revalidate Timings: #64370
- Freeze loaded manifests: #64313
- test: skip turbopack build test: #64356
- Fix: css in next/dynamic component in edge runtime: #64382
- Fix more Turbopack build tests: #64384
- use pathToFileUrl to make esm import()s work with absolute windows paths: #64386
- Improve rendering performance: #64408
- Fix the method prop case in Server Actions transform: #64398
- fix(next-lint): update option --report-unused-disable-directives to --report-unused-disable-directives-severity: #64405
- Revert "Fix: css in next/dynamic component in edge runtime": #64442
- default fetchCache to no-store when force-dynamic is set: #64145
- router restore should take priority over pending actions: #64449
- Fix client boundary inheritance for barrel optimization: #64467
- improve turborepo caching: #64493
- Update font data: #64481
- BREAKING CHANGE: remove deprecated analyticsId from config, and the corresponding performance-relayer files and tests: #64199
- feat: strip traceparent header from cachekey: #64499
- Fix typo in dynamic-rendering.ts: #64365
- fix(next): global not-found not working on multi-root layouts: #63053
- chore(next): add keywords on package.json: #64173
- Fix DynamicServerError not being thrown in fetch: #64511
- fix:
lib/helpers/install.ts
to better support pnpm and properly respectroot
argument: #64418 - fix(next):
Metadata.openGraph
values not resolving basic values whentype
is set: #63620 - disable production chunking in dev: #64488
- update turbopack: #64501
- Turbopack: Allow client components to be imported in app routes: #64520
- refactor: remove always truthy flag: #64522
- Turbopack: don’t show long internal stack traces on build errors: #64427
- next/script: Correctly apply async and defer props: #52939
- chore(next/font): update @capsizecss/metrics package: #64528
- feat: add information that revalidate interval is in seconds: #64229
- Typo "Minifer" in config.ts: #64359
- Enhance types for Node and Edge envionments: #64454
- feat: Add a validation for
postcss
withuseLightningcss
: #64379 - fix HMR for cases where chunking changes: #64367
- perf: improve Pages Router server rendering performance: #64461
- Fix cjs client components tree-shaking: #64558
- fix refresh behavior for discarded actions: #64532
- fix: filter out middleware requests in logging: #64549
- chore: remove unused rust dependencies: #62176
- fix(next-swc): correctly set wasm fallback for known target triples: #64567
- memoize layout router context: #64575
- fix incorrect refresh request when basePath is set: #64589
- fix TypeError edge-case for parallel slots rendered multiple times: #64271
- Fix ASL bundling for dynamic css: #64451
- Revert "fix(next): global not-found not working on multi-root layouts": #64601
- chore(test): run related E2E deploy tests on MRs: #63763
- Improve top level await coverage: #64508
- Upgrade typescript to 5.3: #64043
- add pathname normalizer for actions: #64592
- Fix experimental/testmode by removing console.log: #64670
- Don't output .test.ts files in next/font: #63472
- Fix reporting when performance.measure doesn't exist (Edge): #64669
- Reduce amount of data passed to collectBuildTraces: #59665
- fix(next-server): 'quiet' setting delegate for custom server: #64512
- Revert "chore(test): run related E2E deploy tests on MRs": #64682
- update turbopack: #64686
- Fix: resolve mixed re-exports module as cjs: #64681
- Revert "fix TypeError edge-case for parallel slots rendered multiple times": #64690
- Fix typo: 'serverComponentsExtenalPackages' should be 'serverComponentsExternalPackages': #64705
- prevent erroneous route interception during lazy fetch: #64692
- Add
@appsignal/nodejs
to the external packages list: #64503 - fix root page revalidation when redirecting in a server action: #64730
- Clean-up fetch metrics tracking: #64746
- [actions] Enforce body limit using Transform stream: #64694
- Turbopack: Don’t show stack traces for internal modules: #64228
- Reapply "chore(test): run related E2E deploy tests on MRs" (#64682): #64712
- fix(fetch-cache): fix typo: #64786
- fix: remove traceparent from cachekey should not remove traceparent from original object: #64727
- fix interception route rewrite regex not supporting hyphenated segments: #64805
- Disable ncc cache instead of cache cleaning: #64804
- Move next-swc Turborepo config to packages/next-swc: #64789
- build: Update
swc_core
tov0.90.33
: #64553 - Enable loading source maps for Next Server and React: #64527
- fix: mixing namespace import and named import client components: #64809
- fext(next): extend next.config for mdxRs support options: #64801
- skip test_e2e_deploy_related when triggered from a fork: #64893
- fix(fetch-cache): fix additional typo, add type & data validation: #64799
- feat(next-core): support parsing matcher config object: #64678
- Fix mixed exports in server component with barrel optimization: #64894
- fix: improve tsconfig extends checks: #61413
- Fix next/image usage in mdx: #64875
- fix dynamic route interception not working when deployed with middleware: #64923
- feat(turbopack): Handle fragments in requests: #64232
- feat(turbopack): Check for duplicate parallel routes: #64181
- Speed up createNext test suite isolation: #64909
- fix(rewrites): support external rewrite destination: #64943
- Ensure edge prerender-manifest is minimal: #64946
- remove special-cased prefetch kind in dev mode: #64941
- feat: support import attributes: #59480
- NextJS App router: add
isolated-vm
to server-external-packages.json: #64749 - Add
next experimental-test
command: #64352 - Revert "feat: support import attributes": #65001
- NODE_OPTIONS updates: #65006
- Update React from
14898b6
toc3048aa
: #64798 - initialize ALS with cookies in middleware: #65008
- feat(next/image)!: remove
squoosh
in favor ofsharp
as optional dependency: #63321 - fix: Workaround acorn bug/version issue by using SWC: #65021
- build: Update
@swc/core
tov1.5.0
: #65022 - Ensure escaped string are parsed in NODE_OPTIONS: #65046
- chore(fetch-cache): remove zod from fetch cache: #65079
- support breadcrumb style catch-all parallel routes: #65063
- Improve initial setup with new App Router TypeScript project: #64826
- Add experimental trace file field: #65071
- Fix playwright config merging for webServer property: #65090
- chore(logging): Disable info logging of critters in production: #62776
- [unstable_cache] Don't track dynamic fetches in an unstable_cache callback: #65010
- fix(page-static-info): refine warning message to emit once: #65091
- update redirect handling on forwarded action requests: #65097
- Tracing: allow opt-in flag to send build traces to url: #65019
- Turbopack: Allow client components from foreign code in app routes: #64751
- fix node.js module warning in middleware: #65112
- Fix: strip _rsc query for client navigation rsc request: #65084
- fix unhandled runtime error when notFound() triggered in generateMetadata w/ parallel routes: #65102
- Use vercel deployment url for metadataBase fallbacks: #65089
- Fix next/dynamic with babel and src dir: #65177
- update turbopack: #65191
- Fix crypto import in edge runtime with Turbopack: #65171
- Resolve global
next
Webpack alias last: #65123 - Add oslo, @node-rs/argon2, and @node-rs/bcrypt to external packages: #65204
- [trace] Reduce the size of .next/trace files: #65101
- Remove extra suspense boundary for default next/dynamic: #64716
- Only apply metadata manifest credentials for preview deployment: #64940
- fix(next): add missing browser.major type: #65185
- Turbopack: rename source map prefix: #64965
- Use POST for invokeIpcMethod: #65238
- fix redirect to url with semicolon: #65165
- Provide non-dynamic segments to catch-all parallel routes: #65233
- Fix an issue parsing catchall params: #65277
- Enable preloading entries by default: #65289
- Trace uploader: add worker spans to allowed events: #65255
- Update font data: #65301
- Update revalidateTag to batch tags in one request: #65296
- Revert "Remove extra suspense boundary for default next/dynamic": #65309
- Emit polyfill-nomodule.js into the build manifest polyfillFiles: #65223
- Remove broken
#[turbo_tasks::value(transparent)]
attributes: #65336 - Delete dead
concatenate_output_assets
function: #65337 - Upgrade Turbopack: #65320
- Pages router: Use attribute-based head children reconciler when
strictNextHead
is enabled: #65408 - Revert "Implement Turbopack trace server bindings": #65419
- use correct not-found component when triggered from a parallel route: #65343
- Implement Turbopack trace server bindings: #65410
- fix(next/image): bypass icns images: #65414
- [PPR] Enable incremental adoption: #63847
- fix: replace deprecated/removed functions in eslint-plugin-next: #64251
- docs: update
revalidatePath
& fix cache debug logic: #65365 - fix(next-core): mark turbopack embed fs to be internals: #65420
- fix(next/image): add missing svg test and refactor missing types: #65345
- build(edge): extract buildId into environment: #64521
- Revert "build(edge): extract buildId into environment": #65425
- fix(next/image): set max url length to 3072: #65457
- Support React 19 in App and Pages router: #65058
- Promote and rename server bundling options
serverComponentsExternalPackages
andbundlePagesExternals
: #65421 - add experimental flag to allow forcing NODE_ENV=development in builds: #65463
- Support esm externals in app router: #65041
- fix: lazy load sharp: #65484
- make sure children is first in loader tree to fix head css bug on client navigation: #65279
- Re-land build(edge): extract buildId into environment: #65426
- improve versioned content map: #65466
- update turbopack: #65503
- Remove ineffective webpack rules and unused app-page context modules: #65321
- add page name to crashes: #65504
- Bump styled-jsx to 5.1.3: #65485
- Preload all chunks for next/dynamic in SSR: #65486
- fix!: add sharp timeout of 10 seconds: #65517
- Turbopack: new graph aggregation: #65206
- feat(next): revise server component error message: #65468
- chore: update prettier to 3.2.5: #65092
- Revert "Remove ineffective webpack rules and unused app-page context modules": #65558
- Remove auto appending xml extension to dynamic sitemap routes: #65507
- Remove rsc esm client module extra exports: #65519
- Handle nonce on Next.js injected script/link tags: #65508
- Fix multi-zone test by removing dependency list: #65589
- remove next-action header when following a redirect: #65615
- Remove @next/font resolving for font loaders: #65601
- remove legacy deprecated warnings: #65579
- feat(turbopack): add support for
bundlePagesRouterDependencies
: #65520 - fix(next-swc): load wasm fallback if native bindings fail to load: #65623
- fix(next-swc): correct path interop to filepath for wasm: #65633
- Add proper deprecation/rename warnings for server bundling option: #65575
- feat!(next/image): change default
Content-Disposition
toattachment
: #65631 - Pages router: Enable strict
next/head
children reconciler by default: #65418 - Apply react-server conditions to middleware: #65424
- fix(next-swc): Do not reuse compiler instance: #65602
- Show the new key of experimental config change warnings: #65651
- fix(next-swc): Fix SWC env target - include option: #65693
- Reapply "Implement Turbopack trace server bindings" (#65419): #65527
- fix(resolve-metadata): allow for search params in canonical URL: #65366
- Remove missingSuspenseWithCSRBailout config: #65688
- Reland Remove ineffective webpack rules and unused app-page context modules: #65694
- Remove swc minify related code branches: #65690
- fix: load the tags manifest asynchronously: #64563
- Bump acorn to replace swc class properties transform: #65715
- fix: watch experimental/testmode in when running "pnpm dev": #65689
- Revert "chore: externalize undici for bundling": #65727
- [ppr] Request normalization fixes: #65717
- fix(next/image)!: error when
src
has leading or trailing space: #65637 - fext(next-swc): extend internal env flag to all native bindings: #65748
- Update font data: #65719
- fix(next): add alias to new react exports: #65761
- Update font data: #65768
- feat: remove font family hashing in next/font css: #53608
- Add script to script loader when strategy prop is undefined: #65585
- fix: ensure websockets are correctly passed: #65759
- Add
clientTraceMetadata
experimental option to propagate tracing data to the client: #64256 - Remove process auto polyfill in edge runtime: #65751
- feat: support import attributes: #65749
- Turbopack: Remove
EcmascriptChunkingContext
: #65716 - Error in build for middleware when import client-only: #65792
- fix(next): reject protocol-relative URLs in image optimization: #65752
- Fix broken HTML inlining of non UTF-8 decodable binary data from Flight payload: #65664
- Bundle the installed react for middleware: #65811
- fix middleware cookie initialization: #65820
- fix(next/image)!: set upstream timeout to 7 seconds: #65821
- feat(turbopack-ecmascript): use import attributes for annotations: #59370
- feat(next): experimental react compiler support: #65804
- Fix the runtime for rsc layer: #65850
- Ensure React Compiler only runs on first-party browser code: #65851
- fix: bump nft@0.27.1: #65854
- add effect packages into the optimized-by-default list: #65465
- Upgrade react@beta: #65845
- Ensure plugin-syntax-jsx doesn't have to be installed: #65865
- Update React from
4508873
to04b0588
: #65864 - Set default stale-while-revalidate header value to 1 year: #65867
- fix missing experimental warning for reactCompiler: #65866
- Error on mismatched minimal react version: #65806
- Revert "Set default stale-while-revalidate header value to 1 year": #65887
- Update turbopack & swc_core: #65450
- Revert "Fix broken HTML inlining of non UTF-8 decodable binary data f…: #65906
- experimental: unstable_after: #65038
- Docs: Replace "twitter.com" to "x.com": #65917
- fix(next/image): prefer sharp defaults, use mozjpeg for JPEG: #65846
- Update font data: #65961
- unstable_after: support nested unstable_after calls: #65950
- Fix revalidateTimings route for catchall index route: #65843
- fix(next): initial prefetch cache not set properly with different search params: #65977
- Add additional log to experimental ppr flag in next.config.js: #65944
- Change default of prerenderEarlyExit to true: #65830
- short-circuit OPTIONS requests to pages: #65295
- Turbopack: Implement
next/font/local
withBeforeResolvePlugin
and show custom error message: #65870 - [Breaking] Disable automatic static generation for route handlers: #65825
- Fix router.refresh missing canonical url override: #65999
- Fix typo in JSDoc of
ppr
flag ofnext.config.js
: #66028 - Revert webpack bundling layer changes for middleware/pages: #66049
- Upgrade lightningcss, disable grid prefixing: #65986
- [Breaking] disable client router cache for page segments: #66039
- Add dedicated client entry for Turbopack builds: #65824
- Update React from
04b0588
to81c5ff2
: #65869 - implement unstable_rethrow: #65831
- chore(next/image): remove unused
output
parameter: #66083 - next-swc-napi: Enable "plugin" feature by default: #66006
- [turbopack] Use updated RawOutput API: #65300
- Skip setting to fetch cache when not modified: #66055
- [Memory] Add option to reduce memory usage caused by duplicate strings in webpack-sources: #66003
- Ensure metadata routes dont skip static optimization: #66097
- [unstable_after] fix occasional dev-mode crash in edge runtime pages: #66099
- fix: ensure prefetch data routes are always added when app has ppr enabled: #66102
- [Breaking] Disable automatic fetch caching: #66004
- Update React from
81c5ff2
tof994737
: #66093 - fix: ensure prefetch data routes are always added when app has ppr enabled: #66102
- [Breaking] Disable automatic fetch caching: #66004
- Update React from
81c5ff2
tof994737
: #66093 - [ppr] Remove canary requirement: #66112
- [ppr] Data route fixes: #66109
- [unstable_after] always use 'waitUntil' from '@next/request-context' if available: #66119
- Don't fail the build if
@types/
packages appear to be missing: #66127 - Stabilize swrDelta config: #66108
- Revert "Don't fail the build if @types/ packages appear to be missing": #66130
- fix(next): global not-found not working on multi-root layouts: #63053
- chore(next): add keywords on package.json: #64173
- Fix DynamicServerError not being thrown in fetch: #64511
- fix:
lib/helpers/install.ts
to better support pnpm and properly respectroot
argument: #64418 - fix(next):
Metadata.openGraph
values not resolving basic values whentype
is set: #63620 - disable production chunking in dev: #64488
- update turbopack: #64501
- Turbopack: Allow client components to be imported in app routes: #64520
- Turbopack: don’t show long internal stack traces on build errors: #64427
- next/script: Correctly apply async and defer props: #52939
- chore(next/font): update @capsizecss/metrics package: #64528
- feat: add information that revalidate interval is in seconds: #64229
- Typo "Minifer" in config.ts: #64359
- Enhance types for Node and Edge envionments: #64454
- feat: Add a validation for
postcss
withuseLightningcss
: #64379 - fix HMR for cases where chunking changes: #64367
- perf: improve Pages Router server rendering performance: #64461
- Fix cjs client components tree-shaking: #64558
- fix refresh behavior for discarded actions: #64532
- fix: filter out middleware requests in logging: #64549
- chore: remove unused rust dependencies: #62176
- fix(next-swc): correctly set wasm fallback for known target triples: #64567
- memoize layout router context: #64575
- fix incorrect refresh request when basePath is set: #64589
- fix TypeError edge-case for parallel slots rendered multiple times: #64271
- Fix ASL bundling for dynamic css: #64451
- Revert "fix(next): global not-found not working on multi-root layouts": #64601
- chore(test): run related E2E deploy tests on MRs: #63763
- Improve top level await coverage: #64508
- Upgrade typescript to 5.3: #64043
- add pathname normalizer for actions: #64592
- Fix experimental/testmode by removing console.log: #64670
- Don't output .test.ts files in next/font: #63472
- Fix reporting when performance.measure doesn't exist (Edge): #64669
- Reduce amount of data passed to collectBuildTraces: #59665
- fix(next-server): 'quiet' setting delegate for custom server: #64512
- Revert "chore(test): run related E2E deploy tests on MRs": #64682
- update turbopack: #64686
- Fix: resolve mixed re-exports module as cjs: #64681
- Revert "fix TypeError edge-case for parallel slots rendered multiple times": #64690
- Fix typo: 'serverComponentsExtenalPackages' should be 'serverComponentsExternalPackages': #64705
- prevent erroneous route interception during lazy fetch: #64692
- Add
@appsignal/nodejs
to the external packages list: #64503 - fix root page revalidation when redirecting in a server action: #64730
- Clean-up fetch metrics tracking: #64746
- [actions] Enforce body limit using Transform stream: #64694
- Turbopack: Don’t show stack traces for internal modules: #64228
- Reapply "chore(test): run related E2E deploy tests on MRs" (#64682): #64712
- fix(fetch-cache): fix typo: #64786
- fix: remove traceparent from cachekey should not remove traceparent from original object: #64727
- fix interception route rewrite regex not supporting hyphenated segments: #64805
- Disable ncc cache instead of cache cleaning: #64804
- Move next-swc Turborepo config to packages/next-swc: #64789
- build: Update
swc_core
tov0.90.33
: #64553 - Enable loading source maps for Next Server and React: #64527
- fix: mixing namespace import and named import client components: #64809
- fext(next): extend next.config for mdxRs support options: #64801
- skip test_e2e_deploy_related when triggered from a fork: #64893
- fix(fetch-cache): fix additional typo, add type & data validation: #64799
- feat(next-core): support parsing matcher config object: #64678
- Fix mixed exports in server component with barrel optimization: #64894
- fix: improve tsconfig extends checks: #61413
- Fix next/image usage in mdx: #64875
- fix dynamic route interception not working when deployed with middleware: #64923
- feat(turbopack): Handle fragments in requests: #64232
- feat(turbopack): Check for duplicate parallel routes: #64181
- Speed up createNext test suite isolation: #64909
- fix(rewrites): support external rewrite destination: #64943
- Ensure edge prerender-manifest is minimal: #64946
- remove special-cased prefetch kind in dev mode: #64941
- feat: support import attributes: #59480
- NextJS App router: add
isolated-vm
to server-external-packages.json: #64749 - Add
next experimental-test
command: #64352 - Revert "feat: support import attributes": #65001
- NODE_OPTIONS updates: #65006
- Update React from
14898b6
toc3048aa
: #64798 - initialize ALS with cookies in middleware: #65008
- feat(next/image)!: remove
squoosh
in favor ofsharp
as optional dependency: #63321 - fix: Workaround acorn bug/version issue by using SWC: #65021
- build: Update
@swc/core
tov1.5.0
: #65022 - Ensure escaped string are parsed in NODE_OPTIONS: #65046
- chore(fetch-cache): remove zod from fetch cache: #65079
- support breadcrumb style catch-all parallel routes: #65063
- Improve initial setup with new App Router TypeScript project: #64826
- Add experimental trace file field: #65071
- Fix playwright config merging for webServer property: #65090
- chore(logging): Disable info logging of critters in production: #62776
- [unstable_cache] Don't track dynamic fetches in an unstable_cache callback: #65010
- fix(page-static-info): refine warning message to emit once: #65091
- update redirect handling on forwarded action requests: #65097
- Tracing: allow opt-in flag to send build traces to url: #65019
- Turbopack: Allow client components from foreign code in app routes: #64751
- fix node.js module warning in middleware: #65112
- Fix: strip _rsc query for client navigation rsc request: #65084
- fix unhandled runtime error when notFound() triggered in generateMetadata w/ parallel routes: #65102
- Use vercel deployment url for metadataBase fallbacks: #65089
- Fix next/dynamic with babel and src dir: #65177
- update turbopack: #65191
- Fix crypto import in edge runtime with Turbopack: #65171
- Resolve global
next
Webpack alias last: #65123 - Add oslo, @node-rs/argon2, and @node-rs/bcrypt to external packages: #65204
- [trace] Reduce the size of .next/trace files: #65101
- Remove extra suspense boundary for default next/dynamic: #64716
- Only apply metadata manifest credentials for preview deployment: #64940
- fix(next): add missing browser.major type: #65185
- Turbopack: rename source map prefix: #64965
- fix(next/image): detect react@19 for
fetchPriority
prop: #65235 - Use POST for invokeIpcMethod: #65238
- fix redirect to url with semicolon: #65165
- Provide non-dynamic segments to catch-all parallel routes: #65233
- Fix an issue parsing catchall params: #65277
- Enable preloading entries by default: #65289
- Trace uploader: add worker spans to allowed events: #65255
- Update font data: #65301
- Update revalidateTag to batch tags in one request: #65296
- Revert "Remove extra suspense boundary for default next/dynamic": #65309
- Emit polyfill-nomodule.js into the build manifest polyfillFiles: #65223
- Remove broken
#[turbo_tasks::value(transparent)]
attributes: #65336 - Delete dead
concatenate_output_assets
function: #65337 - Upgrade Turbopack: #65320
- Pages router: Use attribute-based head children reconciler when
strictNextHead
is enabled: #65408 - Revert "Implement Turbopack trace server bindings": #65419
- use correct not-found component when triggered from a parallel route: #65343
- Implement Turbopack trace server bindings: #65410
- fix(next/image): bypass icns images: #65414
- [PPR] Enable incremental adoption: #63847
- fix: replace deprecated/removed functions in eslint-plugin-next: #64251
- docs: update
revalidatePath
& fix cache debug logic: #65365 - fix(next-core): mark turbopack embed fs to be internals: #65420
- fix(next/image): add missing svg test and refactor missing types: #65345
- build(edge): extract buildId into environment: #64521
- Revert "build(edge): extract buildId into environment": #65425
- fix(next/image): set max url length to 3072: #65457
- Support React 19 in App and Pages router: #65058
- Promote and rename server bundling options
serverComponentsExternalPackages
andbundlePagesExternals
: #65421 - add experimental flag to allow forcing NODE_ENV=development in builds: #65463
- Support esm externals in app router: #65041
- fix: lazy load sharp: #65484
- make sure children is first in loader tree to fix head css bug on client navigation: #65279
- Re-land build(edge): extract buildId into environment: #65426
- improve versioned content map: #65466
- update turbopack: #65503
- Remove ineffective webpack rules and unused app-page context modules: #65321
- add page name to crashes: #65504
- Bump styled-jsx to 5.1.3: #65485
- Preload all chunks for next/dynamic in SSR: #65486
- fix!: add sharp timeout of 10 seconds: #65517
- Turbopack: new graph aggregation: #65206
- feat(next): revise server component error message: #65468
- chore: update prettier to 3.2.5: #65092
- Revert "Remove ineffective webpack rules and unused app-page context modules": #65558
- Remove auto appending xml extension to dynamic sitemap routes: #65507
- Remove rsc esm client module extra exports: #65519
- Handle nonce on Next.js injected script/link tags: #65508
- Fix multi-zone test by removing dependency list: #65589
- remove next-action header when following a redirect: #65615
- Remove @next/font resolving for font loaders: #65601
- remove legacy deprecated warnings: #65579
- feat(turbopack): add support for
bundlePagesRouterDependencies
: #65520 - fix(next-swc): load wasm fallback if native bindings fail to load: #65623
- fix(next-swc): correct path interop to filepath for wasm: #65633
- Add proper deprecation/rename warnings for server bundling option: #65575
- feat!(next/image): change default
Content-Disposition
toattachment
: #65631 - Pages router: Enable strict
next/head
children reconciler by default: #65418 - Apply react-server conditions to middleware: #65424
- fix(next-swc): Do not reuse compiler instance: #65602
- Show the new key of experimental config change warnings: #65651
- fix(next-swc): Fix SWC env target - include option: #65693
- Reapply "Implement Turbopack trace server bindings" (#65419): #65527
- fix(resolve-metadata): allow for search params in canonical URL: #65366
- Remove missingSuspenseWithCSRBailout config: #65688
- Reland Remove ineffective webpack rules and unused app-page context modules: #65694
- Remove swc minify related code branches: #65690
- fix: load the tags manifest asynchronously: #64563
- Bump acorn to replace swc class properties transform: #65715
- fix: watch experimental/testmode in when running "pnpm dev": #65689
- Revert "chore: externalize undici for bundling": #65727
- [ppr] Request normalization fixes: #65717
- fix(next/image)!: error when
src
has leading or trailing space: #65637 - fext(next-swc): extend internal env flag to all native bindings: #65748
- Update font data: #65719
- fix(next): add alias to new react exports: #65761
- Update font data: #65768
- feat: remove font family hashing in next/font css: #53608
- Add script to script loader when strategy prop is undefined: #65585
- fix: ensure websockets are correctly passed: #65759
- Add
clientTraceMetadata
experimental option to propagate tracing data to the client: #64256 - Remove process auto polyfill in edge runtime: #65751
- feat: support import attributes: #65749
- Turbopack: Remove
EcmascriptChunkingContext
: #65716 - Error in build for middleware when import client-only: #65792
- fix(next): reject protocol-relative URLs in image optimization: #65752
- Fix broken HTML inlining of non UTF-8 decodable binary data from Flight payload: #65664
- Bundle the installed react for middleware: #65811
- fix middleware cookie initialization: #65820
- fix(next/image)!: set upstream timeout to 7 seconds: #65821
- feat(turbopack-ecmascript): use import attributes for annotations: #59370
- feat(next): experimental react compiler support: #65804
- Fix the runtime for rsc layer: #65850
- Ensure React Compiler only runs on first-party browser code: #65851
- fix: bump nft@0.27.1: #65854
- add effect packages into the optimized-by-default list: #65465
- Upgrade react@beta: #65845
- Ensure plugin-syntax-jsx doesn't have to be installed: #65865
- Update React from
4508873
to04b0588
: #65864 - Set default stale-while-revalidate header value to 1 year: #65867
- fix missing experimental warning for reactCompiler: #65866
- Error on mismatched minimal react version: #65806
- Revert "Set default stale-while-revalidate header value to 1 year": #65887
- Update turbopack & swc_core: #65450
- Revert "Fix broken HTML inlining of non UTF-8 decodable binary data f…: #65906
- experimental: unstable_after: #65038
- Docs: Replace "twitter.com" to "x.com": #65917
- fix(next/image): prefer sharp defaults, use mozjpeg for JPEG: #65846
- Update font data: #65961
- unstable_after: support nested unstable_after calls: #65950
- Fix revalidateTimings route for catchall index route: #65843
- fix(next): initial prefetch cache not set properly with different search params: #65977
- Add additional log to experimental ppr flag in next.config.js: #65944
- Change default of prerenderEarlyExit to true: #65830
- short-circuit OPTIONS requests to pages: #65295
- Turbopack: Implement
next/font/local
withBeforeResolvePlugin
and show custom error message: #65870 - [Breaking] Disable automatic static generation for route handlers: #65825
- Fix router.refresh missing canonical url override: #65999
- Fix typo in JSDoc of
ppr
flag ofnext.config.js
: #66028 - Revert webpack bundling layer changes for middleware/pages: #66049
- Upgrade lightningcss, disable grid prefixing: #65986
- [Breaking] disable client router cache for page segments: #66039
- Add dedicated client entry for Turbopack builds: #65824
- Update React from
04b0588
to81c5ff2
: #65869 - implement unstable_rethrow: #65831
- chore(next/image): remove unused
output
parameter: #66083 - next-swc-napi: Enable "plugin" feature by default: #66006
- [turbopack] Use updated RawOutput API: #65300
- Skip setting to fetch cache when not modified: #66055
- [Memory] Add option to reduce memory usage caused by duplicate strings in webpack-sources: #66003
- Ensure metadata routes dont skip static optimization: #66097
- [unstable_after] fix occasional dev-mode crash in edge runtime pages: #66099
- fix: ensure prefetch data routes are always added when app has ppr enabled: #66102
- [Breaking] Disable automatic fetch caching: #66004
- Update React from
81c5ff2
tof994737
: #66093 - feat(turbopack): Attempt to detect and warn about slow file IO: #66057
- update typescript plugin to support experimental_ppr: #66141
- add next-build-test binary / library: #64121
- add bash script to run a benchmark: #64717
- Handle next/navigation import in middleware: #66175
- [ppr] Data route fix: #66190
- Implement
typeof window
inlining for Turbopack: #66128 - Bump React types to latest 18.3.x: #66181
- Bump styled-jsx to 5.1.6: #66185
- Fix source map loading failure for
path-to-regexp
: #66242 - Bump React types to 19 rc: #66186
- Reland bunling webpack middleware changes (#66049): #66052
- fix dev overlay version indicator style: #66278
- [ppr] Don't mark RSC requests as /_next/data requests: #66249
- enhance: ignore nextjs version fetch error in dev overlay: #66271
- Trigger error for stream on client when it is not finished as expected: #65798
- chore(next-font): bump @capsizecss/metrics package to the latest: #66302
- refactor: remove isRSCRequestCheck: #65587
- feat: add copy button for runtime error: #65921
- Transform client reference in middleware layer: #66294
- feat(react-dev-overlay): Open nvim with line number: #66358
- Restore optimization to ignore legacy APIs in react-dom/server: #66371
- fix: ensure dynamic fetches are tracked correctly: #66349
- Update font data: #66359
- next-swc-napi: Remove "plugin" from default feature list: #66380
- Revert "Middleware RSC bundling changes": #66422
- chore: bump supported
msw
version tov2.3.0
: #66351 - remove duplicate export workers: #66388
- refactor page export error tracking: #66392
- add experimental flag for retrying static generation: #66393
- Update rust toolchain to nightly-2024-05-31: #66428
- fix erroneous RSC calls on hash changes: #66434
- Improve JSDoc link for Metadata API: #66455
- Warn metadataBase missing in standalone mode or non vercel deployment: #66296
- fix: ensure route handlers properly track dynamic access: #66446
- Fix broken
BrowserInterface
type: #66461 - Polish copy button state and styles: #66370
- expose experimental option to set a memory limit for turbo: #66101
- avoid filtering the error message: #65311
- Fix
next/navigation
type augmentation: #66489 - fix: only generate prefetch rsc for ppr enabled routes: #66395
- add layerAssets property to FlightDataPath: #66354
- fix missing stylesheets when parallel routes are present: #66300
- fix css order for some edge cases in App Dir: #66500
- Fix fetch deduping in dev after reload: #66507
- optimize server actions: #66523
- fixing next/dynamic transform for turbopack: #66527
- improve order of spans in tracing: #66516
- add more tracing: #66528
- refactor: deprecate future directory: #66432
- fix 'loading' segment not being copied into new CacheNode: #66538
- fix NextRequest proxy in edge runtime: #66551
- Re-land Fix broken HTML inlining of non UTF-8 decodable binary data from Flight payload #65664: #65988
- feat(turbopack): Introduce
RcStr
: #66262 - Remove unused state in Server Actions transform: #66547
- Add playwright-core to server-external-packages.json: #66549
- Update to turbopack-240605.2: #66568
- update turbopack: #66575
- Fix loading navigation with metadata and prefetch: #66447
- Update font data: #66582
- Fix Server Actions closure idents tracking: #66601
- Update to turbopack-240606.2: #66606
- update turbopack: #66627
- revert app-render changes related to determining RSC/Prefetch requests: #66648
- Revert "feat: Update
swc_core
tov0.92.10
": #66640 - remove
staticWorkerRequestDeduping
flag & unused IPC code: #66655 - prevent duplicate RSC fetch when action redirects: #66620
- Update URL provided from unstable_cache: #66651
- ensure router cache updates reference the latest cache values: #66681
- Fix esm property def in flight loader: #66286
- Update React from
f994737
to1df34bd
(19.0.0-rc.0): #66533 - fix(turbopack): remove tailwindcss from default external packages: #66706
- Append sitemap extension and optimize imafe metadata static generation: #66477
- feat(turbopack-ecmascript): cache external modules with wrapper: #63337
- [ppr] Enable static shell debugging in other environments: #65483
- Add timeout/retry handling for fetch cache: #66652
- Fix inconsistency with 404 getStaticProps cache-control: #66674
- [lint] Allow lint warnings to pass in CI: #66140
- Revert "Fix esm property def in flight loader": #66727
- Update React from
1df34bdf62
to6230622a1a
: #66726 - Prevent append of trailing slash in cases where path ends with a file extension: #66636
- Update font data: #66730
- Use addDependency to track metadata route file changes: #66714
- fix: app-router prefetch crash when an invalid URL is passed to Link: #66755
- Ensure urlPathname is always a pathname: #63846
- build: Update
swc_core
tov0.93.2
: #66698 - chore: bump turbo to 2.0.3: #66762
- Revert "chore: bump turbo to 2.0.3": #66775
- use node js chunking context for evaluation: #66710
- refactor: simplified async storage wrappers: #66767
- Update devdependecy commander: #66771
- chore: bump turbo to 2.0.3: #66784
- Make
InvalidImportResolvePlugin
aBeforeResolvePlugin
: #66622 - Fix: only inject clientTraceMetadata into html page once: #66763
- Use turbo-tasks-malloc on all platforms: #66815
- [ppr] Improve DX for static shell debugging in dev mode: #66806
- Reland "Middleware to use react-server condition": #66534
- Revert "Use turbo-tasks-malloc on all platforms": #66884
- fix: wait for playwright fixture to setup before running test: #66842
- Handle action middleware rewrite case: #66852
- Revert "Revert "Use turbo-tasks-malloc on all platforms" (#66884)", fix aarch64 compilation in CI: #66885
- [Turbopack] improve memory measurement suite: #66748
- Fix: remove enegine requried pnpm version: #66914
- Remove
worker
condition name when resolving files in the Edge runtime: #66808 - small memory and tracing improvement: #66899
- build: Update
swc_core
tov0.95.2
: #66902 - Testmode: use ipv4 address to reduce dependency on local system configuration: #66968
- Update font data: #66969
- Refactor internal routing headers to use request meta: #66987
- Remove lazyDataResolved flag: #66578
- refactor(next): package.json keywords
back-end
should bebackend
: #66974 - Fix internal route redirection with absolute urls outside basePath: #64604
- Expand test for AsyncLocalStorage to avoid throwing in old chrome: #61873
- fix caching of client chunks: #66971
- Run and report benchmarks: #66851
- refactor: remove hydration link appending console interception: #67011
- Use
react-dom/server.edge
instead of.browser
in Next.js runtime: #66954 - feat(turbopack): add support for esm externals in app dir: #64918
- Add sassOption
implementation
to support sass-embedded: #64577 - Fix esm property def in flight loader: #66990
- Upgrade Turbopack: #67017
- fix: bad script tag in layout hydration error: #66998
- Ensure Turbopack build runs when experimental-compile option is used: #67049
- Remove handling on findDOMNode warning: #67054
- ensure accessing search params mark dynamic usage: #67105
- Add build diagnostics for saving debug information during a build: #66187
- chore: add detection for image more types: #67112
- dx: add pagePath info to missing component error: #66916
- Add experimental flag for providing entry paths: #67134
- Fix noindex is missing on static not-found page: #67135
- Refactor code: #64429
- Fix server action edge redirect with middleware rewrite: #67148
- chore: turbopack metadata routes normalizing: #67159
- codemod: add next/dynamic imports codemod: #67126
- Create React aliases for SVG components: #67104
- chore: fix react-is RC version pinning: #66676
- Remove extra suspense boundary for default next/dynamic: #67014
- Remove devdependency uuid: #67190
- make next/dynamic visit more incremental and cacheable: #66912
- Make synced react-is version more obvious: #67189
- fix: Narrow down from
string | undefined
tostring
: #65248 - Upgrade Turbopack: #67209
- [ppr] Handle corrupted postponed state: #67021
- fix(turbopack): add no-op
resolveAbsolutePath
to browser runtime: #67215 - feat: enable @typescript-eslint/recommended in create-next-app --typescript: #52845
- fix missing command in next-codemod: #67216
- chore(docs): improve visual appearance of badges in README.md: #67254
- refactor: replace
glob
w/fast-glob
in eslint plugin: #67261 - reject actions with invalid RSC responses: #67059
- chore: bump pnpm to 9.4.0: #64945
- packages/next: opt ts-morph into serverExternalPackages: #67284
- fix(next/image): improve
w
andq
query string validation for integers: #67293 - chore: throw when three dot character is detected in segment: #67348
- Add warn and telemetry for customized esmExternals: #67339
- perf: improve retrieving
versionInfo
on Turbo HMR: #67309 - fix(next/image): undo tight coupling between
priority=true
andfetchPriority=high
: #67351 - use fetch priority for app prefetches: #67356
- fix prefetch bailout detection for nested loading segments: #67358
- fix(turbopack): build all parallel routes to make sure HMR works: #67222
- Update
@swc/core
npm package tov1.6.6
: #67379 - feat: Pass
module: "unknown"
to SWC minfiier: #66817 - [chore] Update turbopack to turbopack-240703.1: #67406
- fix dynamic param extraction for interception routes: #67400
- Upgrade TypeScript to v5.5.2: #67113
- Fix typo in MDX documentation: #67432
- Transpile geist by default: #67402
- Turbopack + Relay: correctly implement artifact_directory to fix multi-project test: #67403
- fix(next/image): handle invalid url: #67465
- Bump minimum Node.js version to 18.18 (up from 18.17): #67274
- Update font data: #67472
- avoid merging global css in a way that leaks into other chunk groups: #67373
- refactor: avoid unnecessary after wrapper: #67463
- fix(next): add cross origin in react dom preload: #67423
- Remove obsolete
isNodeDebugging
option from next server: #67492 - Fix VS Code debugging: #66254
- Dedupe double logged server errors: #67464
- Turbopack build: Ensure Pages Router manifests are loaded with buildId: #67317
- next-build-test improvements: #67460
- Update font data: #67574
- Tweak the display for error trace: #67572
- Turbopack build: Ensure build manifest routes are sorted: #67583
- Clean up flight headers: #67525
- feat(next):
next.config.ts
: #63051 - Fix PPR navigations & revert
layerAssets
property from FlightData: #67435 - Update experimental trace handling to capture more deps: #67599
- Write out task statistics if NEXT_TURBOPACK_TASK_STATISTICS is set: #67164
- fix PPR navigations when visiting route with seeded cache: #67439
- Turbopack build: Add missing Compiled successfully message: #67598
- feat: type hint for
env
in dev mode: #67157 - perf(turbopack): only build last parallel route: #67588
- feat: instrumentation onRequestError: #67539
- Reduce console error patching: #67433
- Share the hydration error info extraction util: #67639
- Add prerender indicator for app router: #67306
- cleanup unused server util: #67645
- fix: typo prerender indicator link: #67650
- style: simplify string formatting: #66772
- build: upgrade edge-runtime: #67565
- Update
swc_core
tov0.96.9
: #67378 - Move request header parsing for
app-render
into a dedicated function: #67524 - refactor:
typedEnv
is notreadonly
: #67693 - Report HMR latency when a Server Component changes: #67699
- refactor: merge the same util to detect nextjs navigation errors: #67672
- Move .next/chunks folder to .next/build/chunks: #67610
- Add render source to onRequestError context: #67703
- refactor
<AppRouter />
render structure: #64594 - cleanup unused pages router method: #67722
- fix(turbopack): allow page segments that don't alter the path after catchall: #67713
- Convert secondary
fetchServerResponse
params into options object: #67526 - Server Components HMR Cache: #67527
- pages router: ensure x-middleware-cache is respected: #67734
- Fix typescript setup for
packages/font
andturbo/generators
: #67687 - Turbopack build: Exclude .d.ts files as routes: #67744
- chore: Update
@swc/core
and@swc/heleprs
: #67757 - feat: facebook metadata: #65713
- fix: unstable_cache should not cache new result in draft mode: #67772
- Fix edge preview props are not matched with cookie: #67779
- Wait for
✓ Ready
log inNextInstance#start
: #67767 - Ensure serverSourceMaps is in webpack cache key: #67786
- TypeScript plugin: Allow functions in action-like props: #67211
- update turbopack: #67795
- Drop edge prerender manifest: #67787
- perf: Optmize
react_server_component
transform: #67335 - Turbopack build: Implement app/global-error.tsx: #67803
- Ensure instrumentation register only call once: #67805
- Set @next/font to private and remove peer deps field: #67797
- Handle server actions error in onRequestError: #67769
- Don’t show long internal Rust stack traces to users: #67678
- Align the typeEnv value type with default process env value type: #67804
- ensure component tree is only rendered once during SSG/revalidations: #67680
- refactor client router initialization: #67821
- Fix for
typedRoutes
when settingpageExtensions
- for typedRoutes MDX support: #67824 - [Diagnostics] Record framework.json after creating and cleaning distDir: #67819
- Enable
experimental.serverComponentsHmrCache
by default: #67800 - Drop the experimental env var for onRequestError API: #67856
- Add additional handling for experimental tracing: #67785
- Update font data: #67872
- update turbopack: #67874
- Hide caniuse-lite outdated warning in terminal: #67869
- Support
compiler.removeConsole
with Turbopack: #67849 - remove extraneous field from FetchServerResponse: #67865
- refactor FetchServerResponse shape: #67866
- Support
reactRemoveProperties
with Turbopack: #67853 - prerendered pages should use static staleTime: #67868
- ensure cookies set in middleware can be read in a server action: #67924
- Log fetch requests during client-side navigation: #67925
- Fix fetch logging in edge runtime: #67952
- fix: merged middleware cookies should preserve options: #67956
- feat: disable development logging by setting
logging: false
in next config: #67590 - Add experimental flag for chunk failure handling during app navigation: #67926
- Do not limit the number of fetch requests that are logged: #67957
- Fix a bug in the webpack-sources patch that happens sometimes when using the webpack cache: #67928
- Ensure "[Fast Refresh] rebuilding" logs have a matching "[Fast Refresh] done" log in Webpack: #67968
- Fix logging option internal consuming: #67972
- Turbopack build: Implement reactProductionProfiling: #67909
- Update metadata ready tracking: #67929
- Fix
next lint
with async eslint-formatters: #67860 - refactor: move rust crates to the repo root directory: #67780
- Wait for pending Webpack Hot Updates before evaluating JS from RSC responses: #67673
- Stop handling hydration errors from unsupported React versions: #67903
- Update React from
6230622a1a-20240610
todfd30974ab-20240613
: #66711 - Prevent unnecessary rsc reloads on navigation: #68049
- update prefetching jsdoc & documentation: #68047
- Improve caching of next-app-loader to prevent more fs calls.: #67792
- Update Next Command name, add types & update variable wording: #68007
- Ensure experimental trace invalidates correctly: #68076
- Env follow-up for experimental trace: #68086
- log FetchMetrics during SSG to diagnostics dir: #68078
- remove unused preloadConfig flag: #68082
- refactor: isolate the params type: #67981
- Ignore serverComponentChanges in pages: #66312
- Fix global hash for experimental tracing: #68122
- Restructure trace experiment manifest: #68131
- Fix race condition with experimental tracing: #68143
- update turbopack: #68129
- Apply serverExternalPackages inside node_modules and add keyv: #67948
- [image, link] fix ref merging for callback refs that return a cleanup function: #68123
- Revert "[image, link] fix ref merging for callback refs that return a cleanup function": #68176
- Revert "Update metadata ready tracking": #68200
- Reapply "[image, link] fix ref merging for callback refs that return a cleanup function" (#68176): #68199
- fix: properly patch lockfile against swc bindings: #66515
- Fix ImageResponse headers merging: #67642
- Update React from
6230622a1a-20240610
to76002254-20240724
: #68149 - fix: grammar in jsdoc: #68253
- Add telemetry for React Compiler usage: #68079
- Ensure we only handle app nav failure for actual error: #68285
- Drop @babel/plugin-transform-classes by default: #68290
- Move request logging code out of
NextNodeServer
: #68286 - Fix hmr assetPrefix escaping and reuse logic from other files: #67983
- Add deployment id header for rsc payload if present: #67255
- Turbopack: Implement HMR for module-scoped environment variable changes: #68209
- Revert "Update React from
6230622
-20240610 to7600225
-20240724 (#68149)": #68300 - Log cached fetches during HMR refreshes if enabled in logging config: #68287
- Upgrade Turbopack: #68327
- next/form: #68102
- Remove legacy next/link prefetch={true} warning: #68326
- Drop react-dev-overlay from production bundle: #68197
- Update React from
6230622a1a-20240610
to3208e73e-20240730
: #68330 - Update metadata ready tracking (reland): #68342
- [form] typedRoutes support for action prop: #68323
- fix: allow empty string value for opengraph: #68262
- update turbopack: #68354
- fix renaming of page files, add handling of symlinked pages: #68195
- Remove quotation marks from object key : #68337
- Move static indicator into dev overlay: #68369
- Ensure we match comment minify behavior between terser and swc: #68372
- update turbopack: #68399
- chore: fix references for the new turbopack crates: #68128
- refactor: merge turbopack crates into next.js: #68127
- Allow users to use process.env.NEXT_SSG_FETCH_METRICS to control fetch metrics during SSG: #68378
- refactor: replace
indexOf === 0
withstartsWith
: #68116 - feat: Enable tree shaking of turbopack: #66689
- Use font color for static indictor close icon: #68417
- Support @next/mdx with Turbopack: #68397
- Update React from
3208e73e-20240730
to06d0b89e-20240801
: #68444 - Fix ncc clearing task: #68468
- Clean-up legacy terser code: #68462
- [ppr] Configuration for max react headers length: #67715
- Stabilize outputFileTracing configs: #68464
- Delete debug tarball file and add to gitignore: #68478
- ppr: prevent CacheNode.loading from being cleared on popstate: #68488
- Colocate
cssnanon-preset-simple
unit test with source: #68508 - Compile
path-to-regexp
viancc
: #68465 - Add env handling for experimental tracing: #68516
- chore: typo in bootrap to bootstrap: #68517
- Refactor ModuleOptionsContext API: #67864
- fix(turbopack): don't log errors when they are thrown: #68331
- Ensure client components are in experimental trace: #68492
- Ensure webpack cache does not conflict with experimental tracing: #68515
- Add store only mode for experimental tracing: #68548
- Move turbopack panic log to tmpdir: #67930
- Allow dev server to exit cleanly (SIGINT/SIGTERM): #67165
- Don't throw TurbopackInternalError if there are issues: #68529
- Handle more cases with env inlining: #68590
- make sure all the crates in turbopack are considered when caching: #68593
- refactor: cleanup types and logic in build: #68125
- Fix store only case for tracing: #68601
- Remove async module detection from client flight manifest: #68584
- fix: NPM Workspace throws
ENOWORKSPACES
error when fetching registry: #68522 - fix:
normalize-asset-prefix
adding leading slash when URLassetPrefix
is provided: #68518 - Sitemap image tag support: #68034
- chore(next-swc): avoid deleting .gitignore when running "clean" script: #68624
- Fix favicon merging with customized icons: #67982
- Add tests for self-importing packages: #68070
- refactor static workers to help with parallelization & cache sharing: #68546
- Handle pruning mismatching cache for experimental trace: #68635
- Ensure next-server prepare only execute once: #68616
- fix app router prefetch deduping: #68642
- Turbopack HMR: Reload the page when server session changes: #68630
- Remove extraneous configs from cache manifest: #68645
- fix: HMR not works when
assetPrefix
set to URL: #68622 - Reject next image urls in image optimizer: #68628
- Check vendored
@ampproject/toolbox-optimizer
into version control: #68466 - Use proper react release channel for
react-dom/static
aliases: #68663 - Stop mangling server runtime in dev: #68641
- Ensure we hard error on invalid middleware config export: #68638
- Ensure we copy map file as well for experimental tracing: #68676
- chore: remove asset prefix warning log and update docs: #68681
- Update React from
06d0b89e-20240801
to187dd6a7-20240806
: #68594 - Prevent incompability with
'eval-source-map'
andmangle: false
: #68688 - Update font data: #68639
- Introduce prerenderAsyncStorage and refactor app-render: #68637
- chore: remove duplicate storeHydrationError call: #68736
- The patched
fetch
function should not buffer a streamed response: #68447 - fix(create-next-app): link to app dir docs in next-env.d.ts in app dir templates: #68534
- Fix
pnpm build --filter next
on a clean repository: #68693 - Rename url to path for onRequestError request arg: #68672
- misc: add dd-trace to server externals: #68785
- [after] remove createCacheScope: #68744
- Remove obsolete
deleteAppClientCache()
call from webpack plugin: #68535 - Clean up
require.cache
handling: #68743 - Fix duplicate logs for invalid config exports: #68696
- Always collect static icons for all segments: #68712
- [Turbopack] write action manifest atomically: #68538
- Add node-cron to server externals: #68788
- re-use
loading
from prefetch cache entries across searchParams: #68340 - Ensure bail out on ssr error in static generation: #68764
- rename fetchServerResponse response properties: #68814
- Only opt into navigation PPR flow if prefetched route was PPRed: #68815
- refactor: incremental cache cleanup: #68602
- unfork navigateReducer: #68816
- remove circular ExportError import from SSG worker: #68858
- re-order CacheNodeSeedData to put containing segment first: #68847
- Normalize vendored entrypoints: #68502
- fix(next): properly pass layout-level
maxDuration
config to the children page segments on build: #68793 - chore: fix typos in comments: #68792
- Fix issue with afterFiles rewrites not working when prefixed with assetPrefix: #68694
- refactor(turbo-tasks): Add TaskPersistence enum for task creation functions: #68866
- Remove invalid app router etag normalizing: #68948
- perf(turbo-tasks-macros): Move
assert_returns_resolved_value
into helper module: #68867 - fix i18n data pathname resolving: #68947
- refactor(turbo-tasks): Use an enum for
strongly_consistent
/ReadConsistency
instead of a bool: #68913 - Update React from
187dd6a7-20240806
to49496d49-20240814
: #68898 - Lookup alias and import maps using Pattern instead of String: #68274
- perf(turbopack): improve app structure performance: #67397
- Simplify static indicator: #68961
- use setImmediate (if present) in edge react-dom/RSDW/RSDT: #68952
- Fix flying-shuttle full mode breaking instrumentation: #68976
- Update font data: #68964
- Revert "Ensure bail out on ssr error in static generation": #68986
- Add draft mode flag for multi-zone: #68997
- Reland "Ensure bail out on ssr error in static generation": #68999
- Update React from
49496d49-20240814
to1eaccd82-20240816
: #68991 - Improve Metadata JSDoc: #69037
- Include proper instrumentation entry in required files manifest: #68983
- Resolve route interception problem with (..)(..): #69012
- fix: Move tree shaking config to
experimental.turbo
: #69050 - Turbopack build: Fix metadata handling: #69086
- Remove references to removed react-dom/server APIs in Webpack shims: #68987
- misc: tweak fetch patch restoration timing during HMR to allow for userland fetch patching: #68193
- Remove unused react-dom/server.browser references: #68988
- refactor: fallback updates: #68631
- refactor: update fallbacks to use response cache: #68603
- Improve create not found tree and remove asNotFound: #68910
- bugfix: ensure rsc isn't reused for page segments when reusing loading data: #69123
- add support for css-in-js ressource mapping in experimental lightningcss-loader: #64551
- Stablize instrumentation.js: #68853
- Ensure vendored
react-dom/server.browser
is used: #69142 - Ensure assertion failures include all versions in rsc-basic tests: #69138
- bugfix: ensure prefetch aliasing doesn't apply URL redirect: #69153
- Remove
optimizeFonts
(Automatic font optimization) superseded by next/font: #69137 - Ensure fetch cache TTL is updated properly: #69164
- correctly rethrow instrumentation loading error: #65251
- disable prefetch aliasing in development: #69168
- refactor: create shared utils for mod resource: #69145
- remove action pathname normalizer: #69181
- Apply optimization for unused actions: #69178
- Improve SWC transform ID generation: #69183
- Update React from
1eaccd82-20240816
toeb3ad065-20240822
: #69196 - [Tracing] Trace next-dev spans to represent the dev server: #69206
- Refactor unused import and object in Flight plugin: #69266
- refactor: group react dev overlay entry: #69223
- handle uncaught exceptions in worker: #69335
- Set max retries for build failures to zero: #69340
- send initialCanonicalUrl in array format to prevent crawler confusion: #69370
- remove unused argument to applyPatch: #69376
- Respect webpackIgnore and turboIgnore comments in the parser: #68451
- refactor path creation in walkTreeWithFlightRouterState: #69383
- Partial Fallback Prerendering: #68958
- Upgrade React from
eb3ad065-20240822
tof90a6bcc-20240827
: #69415 - chore: add logs to download-swc ci job: #69425
- Upgrade React from
19.0.0-rc-f90a6bcc-20240827
to19.0.0-rc-7771d3a7-20240827
: #69417 - Introduce dynamicIO experiment: #67571
- Add module id strategy option to next config: #69319
- cleanup FlightDataPath array access/slicing: #69241
- normalize flight data after receiving server response: #69460
- Support turbo: true option for custom server: #69464
- bugfix: aliased prefetches should flow through PPR handling: #69476
- fix: bump sharp@0.33.5: #69524
- fix: styledComponents schema: #69230
- Add browser devtool inspect url copy button to dev overlay: #69357
- Lazily init fetch dedupe cache: #69492
- Turbopack build: Fix middleware matchers implementation: #69602
- chore(metadata): add clarifying comment: #69549
- Remove unsupported providerImportSource option: #69609
- fix: clientComponentLoading span type: #69295
- Fix typos: #69568
- fix(eslint): allow typescript-eslint v8: #68807
- Allow external image urls with _next/image pathname to be rendered via Image component: #69586
- [Turbopack] gracefully stop turbo-tasks to allow persisting to complete: #69661
- fix: ensure absolute paths are handled correctly with
--file
option innext lint
command forlint-staged
compatibility: #69220 - dev-overlay: Implement CopyButton without useActionState or async transitions: #69494
- Update
swc_core
tov0.103.1
: #69605 - Run link-ref tests in /app and /pages: #69564
- Partial Fallback Prerendering Route Shells: #69282
- Ensure externalized React entrypoints use vendored React in App Router: #69610
- Turbopack build: Implement --experimental-app-only flag: #69722
- Use vendored React version in Middleware and Instrumentation: #69619
- [Turbopack] refactoring/todos: #69663
- misc: typo in var name: #69745
- Partial Prerendering Basepath Fix: #69520
- pages bugfix: prevent cancellation errors from being logged: #69766
- Disable experimental.optimizeServer by default: #69788
- Fix middleware fallback: false case: #69799
- ensure aliased prefetches return correct segment key: #69850
- feat(turbopack): add
experimental.turbo.root
config option: #69737 - Turbopack dev/build: Initial browserslist passing: #69781
- [Turbopack] only subscribe to changes in dev mode: #69862
- HMR: Log unexpected Turbopack errors to a file: #68698
- fix: use correct protocol when -H and --experimental-https are enabled: #69822
- fix: remove unnecessary console in
isDynamicPostpone
: #69457 - Add ability to customize Cache-Control: #69802
- Support React 18 in Pages Router: #69484
- Revert "Support React 18 in Pages Router": #69911
- Pass client trace metadata to client in pages router: #69620
- Fix font size for build error version status: #69811
- feat(image-optimizer): use previously cached image cache entry if upstream image is identical: #67257
- [Turbopack] print invalid message correctly: #69964
- fix: correct metadata url suffix: #69959
- [Turbopack] add error for invalid exports: #69819
- handle empty query param issue in url redirects #68039: #68157
- ensure prefetch entry is not mutated: #69948
- Remove invalid fallback revalidate value: #69990
- Update font data: #70003
- [Turbopack] stable Vcs without TraitRef::cell: #70029
- [Turbopack] fix HmrEntryModule: #69965
- [Turbopack] remove entries from versioned content map again: #69913
- Fix not-found case with incremental tracing: #70041
- Upgrade React from
7771d3a7-20240827
to94e652d5-20240912
: #70037 - breaking: remove
geo
andip
fromNextRequest
: #68379 - fix: Add
import-in-the-middle
to server-external-packages: #68937 - Ensure .d.ts files are not processed in babel-loader / swc-loader: #66074
- [Turbopack] [HMR] Allow
Option
s to be returned byVersionedContentMap
: #69079 - [Turbopack] report error to stderr when an error in a subscribtion happens: #69977
- Update experimental trace tracking: #70044
- fix(next): Fixed an error when next#dev runs in windows: #70013
- Upgrade React from
94e652d5-20240912
to206df66e-20240912
: #70076 - Add "@sparticuz/chromium" to server-external-packages.json: #69127
- skip generating cert each time: #67122
- fix: clone response in first handler to prevent race: #70082
- fix: eslint-plugin-next glob: #68773
- Fix eslint root dirs test on Windows: #70160
- fix: rsc content-type header not matching with charset: #70033
- Fix startTime error on Android 9 with Chrome 74: #67391
- Fix regression in TS plugin: allow
reset
prop in error files: #69777 - Ensure we chunk revalidate tag requests: #70189
- fix(lint): no-html-link in appDir: #68770
- fix(next): skip conventional type check for
_private
folder convention: #64177 - Only wait for metadata when dynamicIO experiment is on: #70192
- chore: bump jscodeshift version: #70203
- Upgrade React from
206df66e-20240912
toa99d8e8d-20240916
: #70190 - Fix vercel og package memory leak: #70214
- Replace URL.canParse: #70215
- Add support for
dynamicIO
experiment toroute.ts
modules: #70208 - [ppr] Allow fallback pages to be revalidated: #70199
- Re-add internal env for providing page paths: #70235
- feat: add polyfill of
URL.canParse
for browser compatibility: #70228 - Remove dependecy graceful-fs and types: #67194
- chore: add comments for polyfill imports and file paths: #70233
- Upgrade React from
a99d8e8d-20240916
to5dcb0097-20240918
: #70225 - Run
@next/codemod
tests in CI: #70248 - Upgrade React from
5dcb0097-20240918
toe740d4b1-20240919
: #70260 - bugfix: actions that redirect should reject the action promise: #69945
- Fix missing cache-control on SSR app route: #70265
- Remove unused
app_structure
fromnext-swc-napi
: #70282 - fix: match file path url escaping during build and serve: #70256
- Rename
loader_tree
toapp_page_loader_tree
: #70283 - Rename app directory "components" to "modules": #70285
- Honor redirect type in server actions: #70279
- refactor: collect all isThenable/isPromise definitions: #70293
- feat(next/image): add support for
decoding
prop: #70298 - Improve server directive SWC transform: #70257
- Remove unused Server IDs tracking on the server graph: #70317
- relocate dynamic APIs: #70300
- Update root not found boundary to not introduce Server Component: #70328
- feat(next): codemod for removed
geo
andip
ofNextRequest
: #70064 - Mention
app
dir in TS setup tip: #70337 - Add additional fixes for experimental tracing: #70356
- Fix duplicate headers in response to static assets if overrides specified by user: #70127
- fix: change duplicated POST method to PUT method: #70308
- Externalize node binary modules for app router: #70330
- Support fallback params when the layout is a client component: #70329
- Codemod for Async Request API: #69572
- Extract
createAppRouteCode
fromnext-app-loader.ts
: #70352 - [Type Definition] - Updates the manifest types to reflect the current specifications: #68273
- Fix middleware experimental trace case: #70372
- Fix legacy env config with experimental tracing: #70380
- Update font data: #70377
- add missing node modules to externals: #70382
- Avoid prefetch request before meta-tag-based redirect: #70350
- Turbopack: improve stack trace in overlay: #70343
- refactor: more precise types for req/res in withRequestStore: #70357
- Add test for TLA in client references: #70022
- Upgrade React from
e740d4b1-20240919
toe4953922-20240919
: #70290 - feat(next-codemod): add
upgrade
command: #69935 - refactor: reorganize client error listeners: #70373
- refactor: reorganize patch console: #70374
- types: improve napi binding typing using generated types: #69680
- Upgrade React from
e4953922-20240919
to5d19e1c8-20240923
: #70351 - feat(next/image): add support for
images.remotePatterns.search
: #70302 - chore: throw error when trying to use next.config.mts/.cjs/.cts (not supported yet): #70376
- Fix legacy env case with experimental tracing: #70411
- chore: auto-format generated types with prettier: #70405
- refactor(next-codemod): migrate to commander and prompts: #70409
- chore: auto-format generated types with prettier: #70405
- refactor(next-codemod): migrate to commander and prompts: #70409
- Extend support of Pages router to React 18: #70219
- Basic implementation of cache-wrapper with RSC serialization: #70435
- fix: updated typescript types for React API's: #70410
- Fix type error from merge: #70481
- Ensure validator is included in vendored AMP validator: #70482
- [Breaking] Update Dynamic APIs to be async: #68812
- Use Server/Client Manifests from Singleton in encryption-utils: #70485
- refactor: remove ability to call getStaticPaths from app directory pages: #70477
- refactor: extracted zod configuration: #70478
- [ppr] Added fallback shell debugging: #70528
- Remove shouldRevalidateStale concept from CacheHandlers: #70493
- fallback shell should not error when dynamic due to params access even with dynamic = "error": #70534
- Add cache scope handling for dynamic IO for dev/build: #70408
- remove unimplemented onError errorInfo argument: #70531
- Add env for setting cache handler path: #70537
- Disable "use cache" outside of dynamicIO: #70538
- Include buildId in the cache breaker until we have hashed Action IDs: #70542
- Support dynamicIO in middlware routes and generateStaticParams: #70544
- Unwrap
createServerReference
, and pass additional parameters: #69190 - Turbopack build: Fix benchmark running with webpack: #70533
- [form] allow turning prefetching off: #68305
- [after] fix: execute revalidates added within unstable_after(): #70458
- Upgrade React from
778e1ed2-20240926
to3edc000d-20240926
: #70560 - Exclude Object and Promise prototype properties from shadowing for params and searchParams: #70568
- refactor prefetch alias handling: #70532
- refactor: handle onlyHashChange logic sooner: #70569
- Updates our sync property access for params and searchParams to allow value: #70570
- codemod: improve dynamic API cases: #70517
- Auto rotate Server Reference hash salt periodically: #70516
- remove leftover console.log introduced in #70532: #70615
- Add
connection()
as a new dynamic API: #69949 - Fix: Set busboy defParamCharset to utf8: #70348
- Update
dynamicIO
experiment to use React canary: #70571 - refactor: remove unnecessary page segment check in ppr-navigations: #70572
- Wire AsyncLocalStorage within a cached context: #70573
- Fix
revalidateTag()
behaviour when invoked in server components: #70446 - next-upgrade: Ensure install packages works on exotic package revisions: #70625
- Error consistently during prospective prerender: #70631
- next-upgrade: Infer React types version from runtime version: #70626
- next-upgrade(refactor): Improve type coverage: #70627
- next-upgrade: Remove extraneous if no channel is specified: #70628
- next-upgrade: select codemods by canary version: #70630
- next-upgrade: Hide install output by default: #70632
- next-upgrade: Allow custom selection of codemods: #70634
- next-upgrade: Allow choosing same codemods that are available in the currently used version: #70635
- Upgrade React from
3edc000d-20240926
to2d16326d-20240930
: #70629 - fix: fix warnings from invalid api's called from edge runtime: #70639
- Update font data: #70653
- refactor: added more strict app segment config parsing: #70479
- next-upgrade: Stop interleaving user-input with long tasks: #70636
- Replace depricated
apple-mobile-web-app-capable
with `mobile-web-ap…: #70363 - Fix interpolation of dynamic params in intercepting route pathnames: #70667
- bugfix: only replace with full prefetch if existing data was partial: #70650
- next-upgrade: Default to release channel that's used: #70638
- feat(turbopack): add support for polling file watcher: #69684
- chore: improve accessibility of static indicator: #70612
- initially visited static pages should respect static staletime: #70640
- codemod: improve dynamic api codemod cases: #70593
- feat(next/image): add
images.localPatterns
config: #70529 - Recommend
React.use()
to unwrap async APIs in the browser: #70677 - Change default SWR delta value to 1 year: #70674
- [form] pages dir support: #68333
- chore(docs): refactor README.md: #70503
- Fix missing
await
ofparams
when metadata is used: #70698 - condense warnings for direct access of dynamic APIs: #70682
- Allow silencing direct access of dynamic APIs to unblock internal sync: #70705
- Separate the rendering of viewport from metadata: #70685
- codemod: fix merging react imports logic: #70706
- Rename StaticGenerationStore to WorkStore: #70721
- fix: Do not omit alt on getImgProps return type, ImgProps: #70608
- fix(next/image): handle undefined
images.localPatterns
config inimages-manifest.json
: #70730 - Run unstable_cache inside a CacheStore context: #70740
- Expand PrerenderStore to include the legacy mode static generation too: #70741
- Reapply "Dedupe sync access warning on the Server by callsite" (#70672): #70738
- Add RSC module ID mapping to the Client Manifest: #70524
- [i18n] Routing fix: #70761
- fix broken lock mechanism: #70764
- client router cache should still be cleared if server action revalidates + redirects: #70715
- ensure handleUnlock is called even for non-cached responses: #70766
- [dynamicIO] Error when dynamic behavior is outside of a Suspense boundary: #70734
- [Turbopack] add new backend: #69667
- Fix client reference access causing metadata missing: #70732
- Move reactLoadableManifest/assetPrefix to workStore: #70768
- Unwrap
registerServerReference
function: #70563 - Error if reading Request Store inside Prerender: #70775
- codemod: handle the async api type: #70785
- Create spans for
createServerReference
andregisterServerReference
: #70564 - Do not invoke server actions twice when
dynamicIO
is enabled: #70784 - feat: decouple cookies and action state from redirect error: #70769
- refactor: added more strict app segment config validation: #70480
- Fix recently re-introduced unique "key" prop warnings: #70807
- Run Middleware within WorkStore: #70808
- ensure export workers that are killed bubble up to parent process: #70997
- next-upgrade: Ensure correct React and types version are resolved when upgrading to Next.js rc: #70981
- codemod: leave comment on spread props: #70979
- docs: add
app-dir-runtime-config-experimental-edge
codemod: #71008 - docs: add
next-dynamic-access-named-export
codemod: #71012 - chore(next-upgrade): use process exit instead of throwing: #71018
- chore(next-upgrade): improve revision usage messages: #71019
- Revert "chore(next-upgrade): use process exit instead of throwing (#7…: #71021
- Disable server action transform in pages router: #71028
- chore(next-codemod): view current Next.js version, skip if already on or higher: #71034
- codemod: comment on reexport: #71017
- move workUnitAsyncStorage back into "client/components": #71046
- codemod: type cast async api calls in non entry file exports: #71040
- codemod upgrade: show link of migration guide after upgrade: #71036
- Defensively install patches: #71043
- fix(next/turbopack): Always preserve import attributes with esm modules: #71051
- codemod: fix type only react import: #71053
- types-plugin: enahnce type checking on interface params: #71059
- Move WorkStore and ActionStore to /server/app-render: #70934
- [Turbopack] Implement support for webpack’s
stats.json
: #70996 - chore(next-codemod): add verbose option to transform: #71079
- chore: polish warning for esmExternals: #71082
- go back to ignoring revalidates from render: #71088
- [Turbopack] add support for collectibles to new backend: #70798
- codemod: do not await on invalid prop: #71089
- chore(next-codemod): move app-dir-runtime-config-experimental-edge to 13.1.2: #71081
- Add cacheLife() / cacheTag() APIs: #71064
- Eagerly Pass Implicit Tags: #71105
- chore(next-codemod): add prompts for (un)installing packages: #71038
- [Turbopack] formatIssue is expensive, so avoid it if possible: #71117
- add phase tracking to workUnitStore: #71030
- [Turbopack] add unstable prefix to persistent caching option and force to provide an expected level of stability: #71090
- codemod: make parser more comptible: #71122
- Don't warn on well-known properties in
searchParams
: #71142 - Add source map support for server components/actions in the browser: #71042
- show webpack/turbopack compilation duration for next build: #71146
- tweak static indicator style & behavior: #71128
- feat(next-upgrade): suggest React codemod: #71016
- prevent revalidateTag/Path during render: #71093
- fix(turbopack): Fix
NextEcmascriptClientReferenceTransition
: #70603 - turn withRequestStore into createRequestStore: #71107
- Initial implementation of per-segment prefetch request handling: #71113
- Upgrade React from
2d16326d-20240930
to70fb1363-20241010
: #71118 - Revert "chore(next-codemod): move app-dir-runtime-config-experimental-edge to 13.1.2": #71157
- feat: block compilation on codemod comments and ask to remove: #71103
- Scope request store in render: #71109
- Reject hanging promises: #70994
- fix: allow custom app routes for metadata conventions: #71153
- chore(next-codemod): suggest pre-release codemods by their "stable" version: #71158
- misc(next-codemod): inform user whether current version is higher or on target version: #71160
- Update loading cache handler: #71121
- prevent cookies from being set in the wrong phase: #71094
- avoid accessing performance APIs if fetch is untracked: #71164
- Handle source map requests for Turbopack client chunks: #71168
- fix:
getStaticProps
appears instead ofgenerateStaticParams
during app router build: #71033 - Rename swrDelta config to expireTime: #71159
- tweak shadow on static indicator & update docs copy: #71171
- [dynamicIO] track Prerender environment name during dev: #71165
- chore: update migration comments: #71169
- Add support for
"use cache"
in route handlers: #70897 - For route handlers, call
loadComponents
also duringnext build
: #71202 - Handle thrown values that aren't
Error
instances in App router: #71210 - fix: add newrelic to server-external-packages.json: #71066
- chore: delete redundant blank spaces in
packages
directory: #71189 - Do not create client reference manifest for metadata route handlers: #71225
- Upgrade React from
70fb1363-20241010
tocd22717c-20241013
: #71223 - Cache in CacheScopeStore in use cache: #71221
- Encode binary cache keys as ucs-2 strings: #71224
- Hide stack for bad input by default: #71253
- [after] after is not dynamic anymore: #71231
- codemod: ensure install commands run in terminal: #71255
- codemod: install types into dev dependencies: #71257
- codemod: polish end message: #71259
- chore: Ensure Next.js is built with a specified version of TypeScript: #71256
- more detailed time display: #71248
- Propagate expire/stale times the same way we do with revalidate: #71228
- Update global cache handler ref: #71263
- Handle URL-encoded Turbopack client chunks when resolving source maps: #71274
- [BREAKING] Support ESLint v9 in plugin, config and
next lint
: #71218 - Make cacheLife profiles configurable: #71232
- [dynamicIO] warn in debug mode when prospective renders error: #71266
- codemod: prettier the version logging at the beginning: #71264
- Fix missing key in
LoadingBoundary
: #71222 - codemod: install core deps based on package.json group: #71265
- Set Next-Router-Stale-Time header from collected stale times: #71279
- Respect stale time header in client prefetch cache: #71280
- Mark revalidate: 0 on fetch or use cache as never resolving promise in Dynamic I/O: #71285
- static indicator shouldn't show for force-dynamic: #71284
- Implement cacheScope by caching a Promise: #71286
- codemod: update react-is if needed: #71276
- chore: remove experimental warning for next-config-ts: #71297
- fix(next): eslint v9 not picking up config: #71298
- Add support for
'use cache'
in route handlers using the Edge runtime: #71258 - Re-add canary gates for certain experimental features: #71307
- Fix symbol for cache: #71270
Documentation Changes
- Add WorkOS to list of auth solutions: #64395
- docs (mdx): update tree to include mdx-components.tsx file: #64376
- Update 02-server-actions-and-mutations.mdx: #64248
- Update 04-cypress.mdx: #64375
- Update 13-debugging.mdx: #64344
- docs: clarify
Internationalization (i18n) Routing
: #63853 - docs(pages): update slug value for optional catch all routes: #64381
- Fix optimizePackageImports docs for Pages Router: #64439
- Adds MDX Components file convention page and updates MDX page: #63568
- docs: fix config variable usage in memory docs: #64469
- Fix missing PagesOnly in 05-mdx: #64505
- chore(docs): Add example usage of PixelBin custom image loader: #64074
- docs(09-authentication): fixes link to NextAuth.js: #64457
- Improve auth docs : #63140
- Docs: Fix broken link: #64581
- docs: clarify runtime: #64593
Example Changes
- Add TypeGen to Sanity example: #64198
- Update Sanity example deps and tsconfig: #64570
- chore: fix a wrong link for with-service-worker example: #64666
- Update Nav.tsx: #64818
- Update with-storybook example: #64911
- bug fix on a pull request #64911: #64925
- Update Sanity example deps: #64939
- deps updated for with-mongodb-mongoose example: #64928
- Docs: Explain why Layouts (RSCs) can't access
pathname
: #64785 - fix(examples): blog-starter href, remove redundant public folder: #65025
- Ensure latest canary of Next.js is installed in repros: #64967
- Ensure latest canary of Next.js is installed in repros: #65197
- feat(examples): add with-turso: #61291
- Fix export function name on docs/routing/layouts-and-templates: #65240
- Fixes with-supertokens example: #65267
- @emotion/cache version fix: #65422
- update reproduction templates to use correct React: #65624
- Resolve grammatical errors in examples: #65644
- Update
middleware
example to App Router: #65618 - update cache handler version and added better logic for opting out of…: #65330
- Update Sanity example deps and implementation: #65744
- update convex README.md: #65765
- chore: Bump react-modal to 3.16.2 in with-router-as-modal example: #65841
- Update Google Analytics example for App Router: #66021
- fix(examples): blog-starter href, remove redundant public folder: #65025
- Ensure latest canary of Next.js is installed in repros: #64967
- Ensure latest canary of Next.js is installed in repros: #65197
- feat(examples): add with-turso: #61291
- Fix export function name on docs/routing/layouts-and-templates: #65240
- Fixes with-supertokens example: #65267
- @emotion/cache version fix: #65422
- update reproduction templates to use correct React: #65624
- Resolve grammatical errors in examples: #65644
- Update
middleware
example to App Router: #65618 - update cache handler version and added better logic for opting out of…: #65330
- Update Sanity example deps and implementation: #65744
- update convex README.md: #65765
- chore: Bump react-modal to 3.16.2 in with-router-as-modal example: #65841
- Update Google Analytics example for App Router: #66021
- adopt modern & supported Apollo Client patterns in the with-apollo example: #65316
- Update with-react-hook-form example: #66253
- chore(examples): update reproduction template: #66301
- Update to with-supertokens example: #66320
- refactor: rename API endpoint to '/api/protected-api' for comment: #66456
- Update Sanity example deps and prepare for next v15: #66158
- Update with-supertokens example: #66827
- fix: Prevent MongoDB client promise being cached: #66977
- Prepare for easier shadcn ui install: #66469
- Updated with-sitemap example for App Router: #66995
- Example/update blog starter: #66926
- fix: fix entry point for storybook, add storybook static ouput to gitignore: #67207
- examples(with-mdx): update to MDX 3: #62503
- Revert "examples(with-mdx): update to MDX 3": #67249
- add more examples to run-for-change script: #67250
- Fix Dead Links in @neshca/cache-handler-redis example README.md: #67415
- Update redirects example for App router: #67065
- Updated layout-component with new feature layout.js: #67447
- [Multi Zones] Update the with-zones example to use App Router: #67636
- fix: missing file when build docker: #67718
- Examples: updated the example of dynamic-routing to utilize the App Router: #67684
- Updated basic-export example with app router: #67760
- Migrated the active-class-name Example to App router: #67622
- Downgrade react and react-dom to 19.0.0-rc.0: #67788
- Examples: updated the example of head-elements to utilize the App Router: #67829
- Examples: updated the example of analyze-bundles to utilize the App Router: #67843
- fix[examples]: update example cache-handler-redis: #67350
- Examples: Updated the example of headers to utilize the App Router: #67920
- Updated/Migrated next-css example to the App Router: #67942
- [examples] fix: ant-design unstyled hydration issue: #68000
- Update cookie handling for Supabase SSR package: #67413
- Examples:Updated with-slate example to App Router: #68060
- Updated nested-components example to use App Router: #68065
- Examples: Updated the example of catch all routes to utilize the App Router: #68270
- docs: Custom Server for App Router: #68167
- update react remove properties to support app route: #68324
- Update Sanity example deps and fix readme typo: #68359
- Migrated svg-components to App-router: #68394
- with-mongodb update to add both App and Pages Router examples: #68461
- fix: ENV warn info: #68486
- Migrated 'with-absolute-imports' to App-router Convention: #68666
- Updated radix-ui example to use App Router: #68711
- updated the example of api-routes to utilize the App Router: #68771
- fix: inngest example for latest version: #68600
- Compose refactor: #68503
- Improve TypeGen in Sanity Example: #68580
- Update page.tsx - Fixing hydration error: #66868
- fix: cache-handler example should reconnect to redis after errors: #68221
- (Examples) Adds
with-google-tag-manager
example that uses@next/third-parties
: #57364 - Fix linting from #57364: #68951
- examples: avoid duplicate css insert for ant design: #57947
- docs(examples): fix next-translate prod hydration error in layout: #52653
- (Example) Remove redirects plugin from Sitecore XM Cloud example: #69094
- Supabase: improve sign in and sign up, add reset password: #69066
- Add Meilisearch example: #53251
- updated the example of custom-routes-proxying to utilize the App Router: #68941
- examples: update "ENV key value" format format to "ENV key=value": #69053
- fix: ENV warning: #69091
- Reduce TypeGen boilerplate in Sanity Example: #69134
- Examples - Updated with-windcss example for App Router: #69365
- examples: Supabase | ui.shadcn, App Router Layouts: #69308
- Fix: Example Template | with-supabase - wrong file name breaking build: #69394
- Fix/ Examples
use-supabase
| Multiple improvements : #69407 - examples: Updating WordPress example to Next 14: #62447
- Add
cms-umbraco
example: #52777 - Example: Updated the example of rewrites to utilize the App Router: #69495
- docs: Use
useFormState
overuseActionState
: #69547 - updated the example of modularize-imports to utilize the App Router: #69771
- updated the example of with-xstate to utilize the App Router: #69960
- Updated the example of with-eslint to utilize the App Router.: #70018
- Remove stores params: #69796
- Fix example URL for api-routes -> route-handlers: #69642
- Update with web worker example to utilize the App Router: #70058
- fix(examples): typo command name: #70094
- fix: button className in with_supabase example: #70121
- fix(examples): remove
version
attribute post deprecation: #70108 - Update examples/github-pages/README.md: #70057
- remove unsafe-inline from with-strict-csp: #69497
- chore/ examples use-supabase | update rate limit note: #69423
- examples(with-supabase): typo on env file name: #69291
- fix(examples/with-docker): remove not needed files from docker context: #68668
- updated the example of with-videojs to utilize the App Router: #70226
- updated the example of with-three-js to utilize the App Router: #70287
- Updated the example of with-vercel-fetch to utilize the App Router.: #70069
- Updated the example of ssr-caching to utilize the App Router.: #69560
- Updated the example of ssr-caching to utilize the App Router.: #69560
- fix(example): Change hostname in docker multiple env examples: #70105
- Updated the example of with-draft-js to utilize the App Router.: #70045
- Fix Stackblitz preview link on with-opentelemetry example: #70543
- [Multi-Zones] Update example and documentation with most recent practices for Multi-Zones: #70565
- updated the environment variables examples to utilize the App router: #70392
- chore(examples): updated the example of with-styled-components: #70796
- chore(examples):updated the example of with-stitches to utlize the App router: #71007
- docs(typo): fix typo in
cms-sanity
exampleREADME.md
: #71211
Credits
Huge thanks to @huozhi, @shuding, @wyattjoh, @PaulAsjes, @mcnaveen, @timneutkens, @stipsan, @aktoriukas, @sirTangale, @greatvivek11, @sokra, @anatoliik-lyft, @wbinnssmith, @coltonehrman, @hungdoansy, @kxlow, @ztanner, @manovotny, @leerob, @ryota-murakami, @ijjk, @pnutmath, @feugy, @Jeffrey-Zutt, @wiesson, @eps1lon, @devjiwonchoi, @Ethan-Arrowood, @kenji-webdev, @domdomegg, @samcx, @Jaaneek, @evanwinter, @kdy1, @balazsorban44, @feedthejim, @ForsakenHarmony, @kwonoj, @delbaoliveira, @xiaohanyu, @dvoytenko, @bobaaaaa, @bgw, @gaspar09, @souporserious, @unflxw, @kiner-tang, @Ehren12, @EffectDoplera, @IAmKushagraSharma, @Auxdible, @sean-rallycry, @jeanmax1me, @unstubbable, @NilsJacobsen, @adiguno, @ryan-nauman, @zsh77, @KagamiChan, @steveluscher, @MehfoozurRehman, @vkryachko, @chentsulin, @samijaber, @begalinsaf, @FluxCapacitor2, @lukahartwig, @brianshano, @pavelglac, @styfle, @symant233, @HristovCodes, @karlhorky, @jonluca, @jonathan-ingram, @mknichel, @sopranopillow, @Gomah, @imddc, @notrab, @gabrielrolfsen, @remorses, @AbhiShake1, @agadzik, @rishabhpoddar, @rezamauliadi, @IncognitoTGT, @webtinax, @BunsDev, @nisabmohd, @z0n, @bennettdams, @joeshub, @n1ckoates, @srkirkland, @RiskyMH, @coopbri, @okoyecharles, @diogocapela, @dnhn, @typeofweb, @davidsa03, @imranolas, @lubieowoce, @maxhaomh, @mirasayon, @blvdmitry, @hwangstar156, @lforst, @emmerich, @christian-bromann, @Lsnsh, @datner, @hiro0218, @flybayer, @ianmacartney, @ypessoa, @ryohidaka, @icyJoseph, @Arinji2, @lovell, @nsams, @Nayeem-XTREME, @JamBalaya56562, @Arindam200, @gaojude, @qqww08, @todor0v, @tokkiyaa, @arlyon, @lorensr, @Juneezee, @Sayakie, @IGassmann, @bosconian-dynamics, @phryneas, @akazwz, @atik-persei, @shubh73, @alpedia0, @chogyejin, @notomo, @ArnoldVanN, @dhruv-kaushik, @kevva, @Kahitar, @anay-208, @boris-szl, @devnyxie, @LorisSigrist, @M-YasirGhaffar, @Lada496, @kippmr, @torresgol10, @pkiv, @Netail, @jontewks, @ArnaudFavier, @chrisjstott, @mratlamwala, @mayank1513, @karlkeefer, @kshehadeh, @Marukome0743, @a89529294, @anku255, @KeisukeNagakawa, @andrii-bodnar, @aldosch, @versecafe, @steadily-worked, @cfrank, @QiuranHu, @farsabbutt, @joostmeijles, @saltcod, @archanaagivale30, @crutchcorn, @crebelskydico, @Maaz-Ahmed007, @jophy-ye, @remcohaszing, @JoshuaKGoldberg, @creativoma, @GyoHeon, @SukkaW, @MaxLeiter, @neila-a, @stylessh, @Teddir, @ManuLpz4, @Julian-Louis, @syi0808, @mert-duzgun, @amannn, @MonstraG, @hamirmahal, @tariknh, @Kikobeats, @LichuAcu, @Kuboczoch, @himself65, @Sam-Phillemon9493, @Shruthireddy04, @Hemanshu-Upadhyay, @timfuhrmann, @controversial, @pathliving, @mischnic, @mauroaccornero, @NavidNourani, @allanchau, @ekremkenter, @yurivangeffen, @gnoff, @darthmaim, @gdborton, @Willem-Jaap, @KentoMoriwaki, @TrevorSayre, @marlier, @Luluno01, @xixixao, @domin-mnd, @niketchandivade, @N2D4, @kjugi, @luciancah, @mud-ali, @codeSTACKr, @luojiyin1987, @mehmetozguldev, @ronanru, @tknickman, @joelhooks, @khawajaJunaid, @rubyisrust, @abdull-haseeb, @bewinsnw, @housseindjirdeh, @li-jia-nan, @aralroca, @s-ekai, @ah100101, @jantimon, @jordienr, @iscekic, @Strift, @slimbde, @nauvalazhar, @HughHzyb, @guisehn, @wesbos, @OlyaPolya, @paarthmadan, @AhmedBaset, @dineshh-m, @avdeev, @Bhavya031, @MildTomato, @Bjornnyborg, @amikofalvy, @yosefbeder, @kjac, @woutvanderploeg, @Ocheretovich, @ProchaLu, @luismiramirez, @omahs, @theoludwig, @abhi12299, @sommeeeer, @lumirlumir, @royalfig, @iampoul, @molebox, @txxxxc, @zce, @mamuso, @kahlstrm, @vercel-release-bot, @zhawtof, @PapatMayuri, @PlagueFPS, @IDNK2203, @jericopulvera, @liby, @CannonLock, @timfish, @whatisagi, @none23, @haouvw, @Pyr33x, @SouthLink, @frydj, @CrutchTheClutch, @sleevezip, @r34son, @yunsii, @md-rejoyan-islam, @kartheesan05, @nattui, @KonkenBonken, @weicheng95, @brekk, @Francoscopic, @B33fb0n3, @ImDR, @nurullah, @hdodov, @ebCrypto, @soedirgo, @floriangosse, @Tim-Zj, @raeyoung-kim, @erwannbst, @DerTimonius, @hirotomoyamada, @Develliot, @chandanpasunoori, @vicb, @ankur-dwivedi, @kidonng, @baeharam, @AnaTofuZ, @coderfin, @xugetsu, @alessiomaffeis, @kutsan, @jordyfontoura, @sebmarkbage, @tranvanhieu01012002, @jlbovenzo, @Luk-z, @jaredhan418, @bangseongbeom, @penicillin0, @neoFinch, @DeepakBalaraman, @Manoj-M-S, @Unsleeping, @lonr, @Aerilym, @ytori, @acdlite, @actopas, @n-ii-ma, @adcichowski, @mobeigi, @JohnGemstone, and @jjm2317 for helping!
v14.2.21
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Upgrade React from
14898b6
to178c267
: https://github.com/vercel/next.js/pull/74115 - Fix unstable_allowDynamic when used with pnpm: https://github.com/vercel/next.js/pull/73765
Misc Changes
- chore(docs): add missing search: '' on remotePatterns: https://github.com/vercel/next.js/pull/73927
- chore(docs): update version history of next/image: https://github.com/vercel/next.js/pull/73926
Credits
Huge thanks to @unstubbable, @ztanner, and @styfle for helping!
v14.2.20
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Fix fetch cloning bug (https://github.com/vercel/next.js/pull/73532)
Credits
Huge thanks to @wyattjoh for helping!
v14.2.19
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
Misc Changes
- Update max tag items limit in docs (#73445)
Credits
Huge thanks to @ztanner and @ijjk for helping!
v14.2.18
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Fix: (third-parties) sendGTMEvent not queueing events before GTM init (#68683) (#72111)
- Ignore error pages for cache revalidate (#72412) (#72484)
Credits
Huge thanks to @huozhi and @ijjk for helping!
v14.2.17
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Fix: revert the bad node binary handling (#72356)
- Ensure pages/500 handles cache-control as expected (#72050) (#72110)
- fix unhandled runtime error from generateMetadata in parallel routes (#72153)
Credits
Huge thanks to @huozhi, @ztanner, and @ijjk for helping!
v14.2.16
v14.2.15
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- support breadcrumb style catch-all parallel routes #65063
- Provide non-dynamic segments to catch-all parallel routes #65233
- Fix client reference access causing metadata missing #70732
- feat(next/image): add support for decoding prop #70298
- feat(next/image): add images.localPatterns config #70529
- fix(next/image): handle undefined images.localPatterns config in images-manifest.json
- fix: Do not omit alt on getImgProps return type, ImgProps #70608
- [i18n] Routing fix #70761
Credits
Huge thanks to @ztanner, @agadzik, @huozhi, @styfle, @icyJoseph and @wyattjoh for helping!
v14.2.14
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Fix: clone response in first handler to prevent race (#70082) (#70649)
- Respect reexports from metadata API routes (#70508) (#70647)
- Externalize node binary modules for app router (#70646)
- Fix revalidateTag() behaviour when invoked in server components (#70446) (#70642)
- Fix prefetch bailout detection for nested loading segments (#70618)
- Add missing node modules to externals (#70382)
- Feature: next/image: add support for images.remotePatterns.search (#70302)
Credits
Huge thanks to @styfle, @ztanner, @ijjk, @huozhi and @wyattjoh for helping!
v14.2.13
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Fix missing cache-control on SSR app route (#70265)
- feat: add polyfill of URL.canParse for browser compatibility (#70228)
- Fix vercel og package memory leak (#70214)
- Fix startTime error on Android 9 with Chrome 74 (#67391)
Credits
Huge thanks to @raeyoung-kim, @huozhi, @devjiwonchoi, and @ijjk for helping!
v14.2.12
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- update prefetching jsdoc & documentation (#68047)
- Ensure we chunk revalidate tag requests (#70189)
- (backport) fix(eslint): allow typescript-eslint v8 (#70090)
- [ppr] Don't mark RSC requests as /_next/data requests (backport of #66249) (#70083)
Credits
Huge thanks to @alvarlagerlof, @wyattjoh, @delbaoliveira, and @ijjk for helping!
v14.2.11
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- fix: correct metadata url suffix (https://github.com/vercel/next.js/pull/69959)
- fix: setting assetPrefix to URL format breaks HMR (#70040)
- Update revalidateTag to batch tags in one request (#65296)
Credits
Huge thanks to @huozhi, @devjiwonchoi, and @ijjk for helping!
v14.2.10
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Remove invalid fallback revalidate value (https://github.com/vercel/next.js/pull/69990)
- Revert server action optimization (https://github.com/vercel/next.js/pull/69925)
- Add ability to customize Cache-Control (#69802)
Credits
Huge thanks to @huozhi and @ijjk for helping!
v14.2.9
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Revert "Fix esm property def in flight loader (#66990)" (#69749)
- Disable experimental.optimizeServer by default to fix failed server action (#69788)
- Fix middleware fallback: false case (#69799)
- Fix status code for /_not-found route (#64058) (#69808)
- Fix metadata prop merging (#69807)
- create-next-app: fix font file corruption when using import alias (#69806)
Credits
Huge thanks to @huozhi, @ztanner, @ijjk, and @lubieowoce for helping!
v14.2.8
What's Changed
[!NOTE]
This release is backporting bug fixes and minor improvements. It does not include all pending features/changes on canary.
esmExternals
in app directory
Support - Support esm externals in app router (#65041)
- Turbopack: Allow client components from foreign code in app routes (#64751)
- Turbopack: add support for esm externals in app dir (#64918)
- other related MRs: #66990 #66727 #66286 #65519
Reading cookies set in middleware in components and actions
- initialize ALS with cookies in middleware (#65008)
- fix middleware cookie initialization (#65820)
- ensure cookies set in middleware can be read in a server action (#67924)
- fix: merged middleware cookies should preserve options (#67956)
Metadata and icons
- support facebook-specific metadata (
fb:app_id
,fb:admins
) in generateMetaData (#65713) - Always collect static icons for all segments (#68712)
- Fix favicon merging with customized icons (#67982)
- Warn metadataBase missing in standalone mode or non vercel deployment (#66296)
Parallel routes fixes
- fix missing stylesheets when parallel routes are present (#69507)
Draft mode and edge improvements
- fix: unstable_cache should not cache new result in draft mode (#67772)
- Add draft mode flag for multi-zone (#68997)
- Fix edge preview props are not matched with cookie (#67779)
- other related MRs: #65426, #67787, #64946, #64313, #64370
next/image
fixes
- Allow external image urls with _next/image pathname to be rendered via Image component (#69586)
Server actions improvements
- optimize server actions (#66523)
- Apply optimization for unused actions (#69178)
- Improve SWC transform ID generation (#69183)
Other changes
- Ensure we match comment minify behavior between terser and swc (#68372)
- send initialCanonicalUrl in array format to prevent crawler confusion (#69509)
Create-next-app updates
- enable @typescript-eslint/recommended in create-next-app --typescript (#52845)
- Update create-next-app template CSS (#66233)
- Update
create-next-app
template CSS (#66043) - Update create-next-app template (#65803)
- add font antialiasing to templates (#67425)
- Move
create-next-app
public/ assets from local folder→ remote URL (#66931) - Use classnames to set font family in Tailwind create-next-app templates (#66374)
- other related MRs: #64478, #68899, #68534, #69021, #67146, #66145
Full Changelog: https://github.com/vercel/next.js/compare/v14.2.7...v14.2.8
Huge thanks to everyone who contributed to this release: @abhi12299, @delbaoliveira, @eps1lon, @ForsakenHarmony, @huozhi, @ijjk, @JoshuaKGoldberg, @leerob, @lubieowoce, @Netail, @ronanru, @samcx, @shuding, @sokra, @stylessh, @timfuhrmann, @wbinnssmith, @wyattjoh, @ypessoa, @ztanner
v14.2.7
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Revert "chore: externalize undici for bundling" (#65727)
- Refactor internal routing headers to use request meta (#66987)
- fix(next): add cross origin in react dom preload (#67423)
- build: upgrade edge-runtime (#67565)
- GTM dataLayer parameter should take an object, not an array of strings (#66339)
- fix: properly patch lockfile against swc bindings (#66515)
- Add deployment id header for rsc payload if present (#67255)
- Update font data (#68639)
- fix i18n data pathname resolving (#68947)
- pages router: ensure x-middleware-cache is respected (#67734)
- Fix bad modRequest in flight entry manifest #68888
- Reject next image urls in image optimizer #68628
- Fix hmr assetPrefix escaping and reuse logic from other files #67983
Credits
Huge thanks to @kjugi, @huozhi, @ztanner, @SukkaW, @marlier, @Kikobeats, @syi0808, @ijjk, and @samcx for helping!
v14.2.6
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Ensure fetch cache TTL is updated properly (#69164)
v14.2.5
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- avoid merging global css in a way that leaks into other chunk groups (#67373)
- Fix server action edge redirect with middleware rewrite (#67148)
- fix(next): reject protocol-relative URLs in image optimization (#65752)
- fix(next-swc): correct path interop to filepath for wasm (#65633)
- Use addDependency to track metadata route file changes (#66714)
- Fix noindex is missing on static not-found page (#67135)
- perf: improve retrieving versionInfo on Turbo HMR (#67309)
- fix(next/image): handle invalid url (#67465)
- fix(next): initial prefetch cache not set properly with different search params (#65977)
- fix: Backport class properties fix (#67377)
- Upgrade acorn (#67592)
Misc
- Log stdio for pull-turbo-cache script (#66759)
- Ensure turbo is setup when building in docker (#66804)
Credits
Huge thanks to @devjiwonchoi, @ijjk, @emmerich, @huozhi, @kdy1, @kwonoj, @styfle, and @sokra for helping!
v14.2.4
[!NOTE]
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- fix: ensure route handlers properly track dynamic access (#66446)
- fix NextRequest proxy in edge runtime (#66551)
- Fix next/dynamic with babel and src dir (#65177)
- Use vercel deployment url for metadataBase fallbacks (#65089)
- fix(next/image): detect react@19 for fetchPriority prop (#65235)
- Fix loading navigation with metadata and prefetch (#66447)
- prevent duplicate RSC fetch when action redirects (#66620)
- ensure router cache updates reference the latest cache values (#66681)
- Prevent append of trailing slash in cases where path ends with a file extension (#66636)
- Fix inconsistency with 404 getStaticProps cache-control (#66674)
- Use addDependency to track metadata route file changes (#66714)
- Add timeout/retry handling for fetch cache (#66652)
- fix: app-router prefetch crash when an invalid URL is passed to Link (#66755)
Credits
Huge thanks to @ztanner, @ijjk, @wbinnssmith, @huozhi, and @lubieowoce for helping!
nodejs/node (node)
v22.12.0
: 2024-12-03, Version 22.12.0 'Jod' (LTS), @ruyadorno
Notable Changes
require(esm) is now enabled by default
Support for loading native ES modules using require() had been available on v20.x and v22.x under the command line flag --experimental-require-module, and available by default on v23.x. In this release, it is now no longer behind a flag on v22.x.
This feature is still experimental, and we are looking for user feedback to make more final tweaks before fully stabilizing it. For this reason, on v22.x, when the Node.js instance encounters a native ES module in require() for the first time, it will emit an experimental warning unless require()
comes from a path that contains node_modules
. If there happens to be any regressions caused by this feature, users can report it to the Node.js issue tracker. Meanwhile this feature can also be disabled using --no-experimental-require-module
as a workaround.
With this feature enabled, Node.js will no longer throw ERR_REQUIRE_ESM
if require()
is used to load a ES module. It can, however, throw ERR_REQUIRE_ASYNC_MODULE
if the ES module being loaded or its dependencies contain top-level await
. When the ES module is loaded successfully by require()
, the returned object will either be a ES module namespace object similar to what's returned by import()
, or what gets exported as "module.exports"
in the ES module.
Users can check process.features.require_module
to see whether require(esm)
is enabled in the current Node.js instance. For packages, the "module-sync"
exports condition can be used as a way to detect require(esm)
support in the current Node.js instance and allow both require()
and import
to load the same native ES module. See the documentation for more details about this feature.
Contributed by Joyee Cheung in #55085
ArrayBuffer
support in Buffer
Added resizable When a Buffer
is created using a resizable ArrayBuffer
, the Buffer
length will now correctly change as the underlying ArrayBuffer
size is changed.
const ab = new ArrayBuffer(10, { maxByteLength: 20 });
const buffer = Buffer.from(ab);
console.log(buffer.byteLength); 10
ab.resize(15);
console.log(buffer.byteLength); 15
ab.resize(5);
console.log(buffer.byteLength); 5
Contributed by James Snell in #55377
Update root certificates to NSS 3.104
This is the version of NSS that shipped in Firefox 131.0 on 2024-10-01.
Certificates added:
- FIRMAPROFESIONAL CA ROOT-A WEB
- TWCA CYBER Root CA
- SecureSign Root CA12
- SecureSign Root CA14
- SecureSign Root CA15
Contributed by Richard Lau in #55681
Other Notable Changes
- [
4920869935
] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862 - [
ccffd3b819
] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732 - [
acc6806900
] - doc: add jazelly to collaborators (Jason Zhang) #55531 - [
88d91e8bc2
] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333 - [
98bfc7dce5
] - (SEMVER-MINOR) http: add diagnostic channelhttp.client.request.created
(Marco Ippolito) #55586 - [
337f61fb25
] - (SEMVER-MINOR) lib: add UV_UDP_REUSEPORT for udp (theanarkh) #55403 - [
1628c48ad6
] - (SEMVER-MINOR) net: add UV_TCP_REUSEPORT for tcp (theanarkh) #55408 - [
457e73f4c9
] - (SEMVER-MINOR) sqlite: add support for SQLite Session Extension (Bart Louwers) #54181
Commits
- [
f6885e1c68
] - assert: fix the string length check for printing the simple diff (Giovanni Bucci) #55474 - [
907484f04d
] - assert: fix deepEqual always return true on URL (Xuguang Mei) #50853 - [
301844e249
] - assert: differentiate cases wherecause
isundefined
or missing (Antoine du Hamel) #55738 - [
89ccd3e3f4
] - assert: fixdeepStrictEqual
on errors whencause
is not undefined (Edigleysson Silva (Edy)) #55406 - [
4920869935
] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862 - [
c67aec368e
] - benchmark: addtest-reporters
(Aviv Keller) #55757 - [
49774cc2c0
] - benchmark: addtest_runner/mock-fn
(Aviv Keller) #55771 - [
4caaeb47b2
] - benchmark: add nodeTiming.uvmetricsinfo bench (RafaelGSS) #55614 - [
cac58564a1
] - benchmark: add --runs support to run.js (Rafael Gonzaga) #55158 - [
5c3ee886fc
] - benchmark: adjust byte size for buffer-copy (Rafael Gonzaga) #55295 - [
6023e1bdb2
] - (SEMVER-MINOR) buffer: make Buffer work with resizable ArrayBuffer (James M Snell) #55377 - [
a6c00c2204
] - build: add create release proposal action (Rafael Gonzaga) #55690 - [
b4e413933b
] - build: implement node_use_amaro flag in GN build (Cheng) #55798 - [
d1db202d4a
] - build: apply cpp linting and formatting to ncrypto (Aviv Keller) #55362 - [
8c670496da
] - build: use rclone instead of aws CLI (Michaël Zasso) #55617 - [
827e2065bd
] - build: stop pre-compilinglint-md
(Aviv Keller) #55266 - [
c3ca978d9c
] - build: fix building with system icu 76 (Michael Cho) #55563 - [
23e3287bbe
] - build: fix GN arg used in generate_config_gypi.py (Shelley Vohr) #55530 - [
2b561abb0d
] - build: fix GN build for sqlite and nghttp2 (Shelley Vohr) #55529 - [
7008f29d79
] - build: fix GN build for cares/uv deps (Cheng) #55477 - [
6ee94a394f
] - build: fix uninstall script for AIX 7.1 (Cloorc) #55438 - [
edbbd4a374
] - build: conditionally compile bundled sqlite (Richard Lau) #55409 - [
3d8e3a657c
] - build: tidy up cares.gyp (Richard Lau) #55445 - [
f0c12e8fcb
] - build: synchronize list of c-ares source files (Richard Lau) #55445 - [
8daa8a62f8
] - build: fix path concatenation (Mohammed Keyvanzadeh) #55387 - [
12faf0466e
] - build: fix make errors that occur in Makefile (minkyu_kim) #55287 - [
a21be0294d
] - build,win: enable pch for clang-cl (Stefan Stojanovic) #55249 - [
7ed058cd00
] - cli: add--heap-prof
flag available toNODE_OPTIONS
(Juan José) #54259 - [
c26b1bfe6a
] - crypto: allow length=0 for HKDF and PBKDF2 in SubtleCrypto.deriveBits (Filip Skokan) #55866 - [
a1201d0392
] - crypto: update root certificates to NSS 3.104 (Richard Lau) #55681 - [
20483aab7a
] - crypto: fixRSA_PKCS1_PADDING
error message (Richard Lau) #55629 - [
d345662d50
] - crypto: include openssl/rand.h explicitly (Shelley Vohr) #55425 - [
166ab3209d
] - deps: update simdutf to 5.6.1 (Node.js GitHub Bot) #55850 - [
934979e12e
] - deps: update undici to 6.21.0 (Node.js GitHub Bot) #55851 - [
af77f66424
] - deps: update c-ares to v1.34.3 (Node.js GitHub Bot) #55803 - [
948a88d2f4
] - deps: update icu to 76.1 (Node.js GitHub Bot) #55551 - [
fa4c58a983
] - deps: update acorn to 8.14.0 (Node.js GitHub Bot) #55699 - [
c91155f22e
] - deps: update sqlite to 3.47.0 (Node.js GitHub Bot) #55557 - [
d1cb7af95c
] - deps: update amaro to 0.2.0 (Node.js GitHub Bot) #55601 - [
655e5600cb
] - deps: update nghttp2 to 1.64.0 (Node.js GitHub Bot) #55559 - [
992450c469
] - deps: update acorn to 8.13.0 (Node.js GitHub Bot) #55558 - [
abd2bd4f64
] - deps: update undici to 6.20.1 (Node.js GitHub Bot) #55503 - [
7dc2c2edad
] - deps: update googletest todf1544b
(Node.js GitHub Bot) #55465 - [
fa9329c024
] - deps: update c-ares to v1.34.2 (Node.js GitHub Bot) #55463 - [
41a2bcd335
] - deps: update ada to 2.9.1 (Node.js GitHub Bot) #54679 - [
a3b793defd
] - deps: update simdutf to 5.6.0 (Node.js GitHub Bot) #55379 - [
551b8f897d
] - deps: update c-ares to v1.34.1 (Node.js GitHub Bot) #55369 - [
26861eaf4e
] - Revert "deps: disable io_uring support in libuv by default" (Santiago Gimeno) #55114 - [
41c50bc15e
] - deps: update libuv to 1.49.1 (Santiago Gimeno) #55114 - [
26fcc04084
] - deps: update amaro to 0.1.9 (Node.js GitHub Bot) #55348 - [
0ee6715921
] - diagnostics_channel: fix unsubscribe during publish (simon-id) #55116 - [
bf68733e7f
] - dns: stop using deprecatedares_query
(Aviv Keller) #55430 - [
ef6707eb9b
] - dns: honor the order option (Luigi Pinca) #55392 - [
0f3810f3e5
] - doc: add added tag and fix typo sqlite.md (Bart Louwers) #56012 - [
d1bd0ef1b7
] - doc: remove non-working example (Antoine du Hamel) #55856 - [
824ac650ed
] - doc: addnode:sqlite
to mandatorynode:
prefix list (翠 / green) #55846 - [
b3ea42d887
] - doc: add-S
flag release preparation example (Antoine du Hamel) #55836 - [
0bd5d8b9d9
] - doc: clarify UV_THREADPOOL_SIZE env var usage (Preveen P) #55832 - [
27b0236a99
] - doc: add notable-change mention to sec release (Rafael Gonzaga) #55830 - [
476075bada
] - doc: fix history info forURL.prototype.toJSON
(Antoine du Hamel) #55818 - [
2743b7b1d3
] - doc: correct max-semi-space-size statement (Joe Bowbeer) #55812 - [
3013870093
] - doc: update unflag info ofimport.meta.resolve
(skyclouds2001) #55810 - [
27bcd103e7
] - doc: run license-builder (github-actions[bot]) #55813 - [
72d4b30ead
] - doc: clarify triager role (Gireesh Punathil) #55775 - [
a30defe9dd
] - doc: clarify removal of experimental API does not require a deprecation (Antoine du Hamel) #55746 - [
ccffd3b819
] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732 - [
b6d2a4e816
] - doc: add path aliases typescript doc (Carlos Espa) #55766 - [
a435affa11
] - doc: add esm example inpath.md
(Aviv Keller) #55745 - [
91443c2711
] - doc: consistent use of word child process (Gireesh Punathil) #55654 - [
83fb0079d4
] - doc: clarity to available addon options (Preveen P) #55715 - [
6ca851457a
] - doc: update--max-semi-space-size
description (Joe Bowbeer) #55495 - [
e17fffc0ff
] - doc: brokenPerformanceObserver
code sample (Dom Harrington) #54227 - [
8bd5777f0f
] - doc: add write flag when open file as the demo code's intention (robberfree) #54626 - [
f1e0e0ba55
] - doc: remove mention of ECDH-ES in crypto.diffieHellman (Filip Skokan) #55611 - [
1d60b7ec97
] - doc: improve c++ embedder API doc (Gireesh Punathil) #55597 - [
bbf51d7000
] - doc: capitalize "MIT License" (Aviv Keller) #55575 - [
0e69f6d123
] - doc: add suggested tsconfig for type stripping (Marco Ippolito) #55534 - [
67beb37f50
] - doc: add esm examples to node:string_decoder (Alfredo González) #55507 - [
acc6806900
] - doc: add jazelly to collaborators (Jason Zhang) #55531 - [
a6b3ed54ae
] - doc: changed the command used to verify SHASUMS256 (adriancuadrado) #55420 - [
0ad7ca4f1d
] - doc: move dual package shipping docs to separate repo (Joyee Cheung) #55444 - [
e99a98ddfd
] - doc: add note about stdio streams in child_process (Ederin (Ed) Igharoro) #55322 - [
20302851a9
] - doc: addisBigIntObject
to documentation (leviscar) #55450 - [
50d983e80b
] - doc: remove outdated remarks abouthighWaterMark
in fs (Ian Kerins) #55462 - [
07c2fb2045
] - doc: move Danielle Adams key to old gpg keys (RafaelGSS) #55399 - [
41b045170d
] - doc: move Bryan English key to old gpg keys (RafaelGSS) #55399 - [
13724dcc20
] - doc: move Beth Griggs keys to old gpg keys (RafaelGSS) #55399 - [
0230fb1ead
] - doc: spell out condition restrictions (Jan Martin) #55187 - [
66e41f044d
] - doc: add instructions for WinGet build (Hüseyin Açacak) #55356 - [
23d89da3f1
] - doc: add missing return values in buffer docs (Karl Horky) #55273 - [
6e7b33a0ef
] - doc: fix ambasador markdown list (Rafael Gonzaga) #55361 - [
d8c552a060
] - doc: edit onboarding guide to clarify when mailmap addition is needed (Antoine du Hamel) #55334 - [
c7f82ec978
] - doc: fix the return type of outgoingMessage.setHeaders() (Jimmy Leung) #55290 - [
f1b9791694
] - doc: updaterequire(ESM)
history and stability status (Antoine du Hamel) #55199 - [
9ffd2dd43b
] - doc: consolidate history table of CustomEvent (Edigleysson Silva (Edy)) #55758 - [
64fb9e6516
] - doc: add history entries for JSON modules stabilization (Antoine du Hamel) #55855 - [
ae2ae2fef1
] - esm: fix import.meta.resolve crash (Marco Ippolito) #55777 - [
15dd43dd6e
] - esm: add a fallback when importer in not a file (Antoine du Hamel) #55471 - [
aed758d270
] - esm: fix inconsistency withimportAssertion
inresolve
hook (Wei Zhu) #55365 - [
88d91e8bc2
] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333 - [
a2c8de7fba
] - events: add hasEventListener util for validate (Sunghoon) #55230 - [
4f84cdc8a2
] - events: optimize EventTarget.addEventListener (Robert Nagy) #55312 - [
c17601557b
] - fs: prevent unwanteddependencyOwners
removal (Carlos Espa) #55565 - [
4dd609c685
] - fs: fix bufferSize option for opendir recursive (Ethan Arrowood) #55744 - [
d695bd4c4f
] - fs: pass correct path toDirentFromStats
duringglob
(Aviv Keller) #55071 - [
5357338b8e
] - fs: usewstring
on Windows paths (jazelly) #55171 - [
0a7f301a36
] - http: add diagnostic channelhttp.server.response.created
(Marco Ippolito) #55622 - [
98bfc7dce5
] - (SEMVER-MINOR) http: add diagnostic channelhttp.client.request.created
(Marco Ippolito) #55586 - [
d2430ee363
] - http2: fix client async storage persistence (Orgad Shaneh) #55460 - [
753cbede2a
] - lib: remove startsWith/endsWith primordials for char checks (Gürgün Dayıoğlu) #55407 - [
6e3e99c81e
] - lib: prefer logical assignment (Aviv Keller) #55044 - [
03902ebb74
] - lib: replacecreateDeferredPromise
util withPromise.withResolvers
(Yagiz Nizipli) #54836 - [
ee17fcd6f3
] - lib: prefer symbol to number in webidltype
function (Antoine du Hamel) #55737 - [
18f0f07e92
] - lib: implement webidl dictionary converter and use it in structuredClone (Jason Zhang) #55489 - [
bcead24e24
] - lib: prefer number to string in webidltype
function (Jason Zhang) #55489 - [
d48c5da039
] - lib: convert transfer sequence to array in js (Jason Zhang) #55317 - [
cefce4cbb0
] - lib: remove unnecessary optional chaining (Gürgün Dayıoğlu) #55728 - [
f2561fdeec
] - lib: usePromise.withResolvers()
in timers (Yagiz Nizipli) #55720 - [
337f61fb25
] - (SEMVER-MINOR) lib: add UV_UDP_REUSEPORT for udp (theanarkh) #55403 - [
4f89059f63
] - lib: add flag to drop connection when running in cluster mode (theanarkh) #54927 - [
29f7325e73
] - lib: test_runner#mock:timers respeced timeout_max behaviour (BadKey) #55375 - [
68bcec64b8
] - lib: remove settled dependant signals when they are GCed (Edigleysson Silva (Edy)) #55354 - [
3f8a5d8a28
] - meta: bump actions/setup-python from 5.2.0 to 5.3.0 (dependabot[bot]) #55688 - [
644ad5d60d
] - meta: bump actions/setup-node from 4.0.4 to 4.1.0 (dependabot[bot]) #55687 - [
334fa69c31
] - meta: bump rtCamp/action-slack-notify from 2.3.0 to 2.3.2 (dependabot[bot]) #55686 - [
fb3fa8bee2
] - meta: bump actions/upload-artifact from 4.4.0 to 4.4.3 (dependabot[bot]) #55685 - [
1aca3a8289
] - meta: bump actions/cache from 4.0.2 to 4.1.2 (dependabot[bot]) #55684 - [
a6c73eb9c2
] - meta: bump actions/checkout from 4.2.0 to 4.2.2 (dependabot[bot]) #55683 - [
06445bc4e3
] - meta: bump github/codeql-action from 3.26.10 to 3.27.0 (dependabot[bot]) #55682 - [
37bafce2d8
] - meta: make review-wanted message minimal (Aviv Keller) #55607 - [
4cca54b161
] - meta: show MR/issue title on review-wanted (Aviv Keller) #55606 - [
68decbf935
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #55381 - [
07fc40d823
] - meta: assign CODEOWNERS for /deps/ncrypto/* (Filip Skokan) #55426 - [
139e8f1579
] - meta: change color to blue notify review-wanted (Rafael Gonzaga) #55423 - [
c0614dc92c
] - meta: bump codecov/codecov-action from 4.5.0 to 4.6.0 (dependabot[bot]) #55222 - [
47b6c6748b
] - meta: bump github/codeql-action from 3.26.6 to 3.26.10 (dependabot[bot]) #55221 - [
6c836aa97e
] - meta: bump step-security/harden-runner from 2.9.1 to 2.10.1 (dependabot[bot]) #55220 - [
c81c818a21
] - module: throw ERR_NO_TYPESCRIPT when compiled without amaro (Marco Ippolito) #55332 - [
d6d1479fcc
] - module: simplify --inspect-brk handling (Joyee Cheung) #55679 - [
91fdec3a52
] - module: fix error thrown from require(esm) hitting TLA repeatedly (Joyee Cheung) #55520 - [
cb527a925d
] - module: do not warn when require(esm) comes from node_modules (Joyee Cheung) #55960 - [
16119f206f
] - module: trim off internal stack frames for require(esm) warnings (Joyee Cheung) #55496 - [
28b5b9a57d
] - module: allow ESM that failed to be required to be re-imported (Joyee Cheung) #55502 - [
6ac3400960
] - module: include module information in require(esm) warning (Joyee Cheung) #55397 - [
fcdd6167d8
] - module: check --experimental-require-module separately from detection (Joyee Cheung) #55250 - [
d8c34ced43
] - module: use kNodeModulesRE to detect node_modules (Joyee Cheung) #55243 - [
545c069eb5
] - module: support 'module.exports' interop export in require(esm) (Guy Bedford) #54563 - [
58d6871c45
] - (SEMVER-MINOR) module: unflag --experimental-require-module (Joyee Cheung) #55085 - [
1628c48ad6
] - (SEMVER-MINOR) net: add UV_TCP_REUSEPORT for tcp (theanarkh) #55408 - [
a5590083cd
] - node-api: add napi_create_buffer_from_arraybuffer method (Mert Can Altin) #54505 - [
21ec855feb
] - os: improve path check with direct index access (Mert Can Altin) #55434 - [
1fdaa15226
] - report: fix network queries in getReport libuv with exclude-network (Adrien Foulon) #55602 - [
457e73f4c9
] - (SEMVER-MINOR) sqlite: add support for SQLite Session Extension (Bart Louwers) #54181 - [
428701a6d8
] - sqlite: improve error handling using MaybeLocal (Tobias Nießen) #55571 - [
4e5878536a
] - sqlite: add readOnly option (Tobias Nießen) #55567 - [
8c35ad12de
] - sqlite: refactor open options (Tobias Nießen) #55442 - [
c3c403040a
] - sqlite: cache column names in stmt.all() (Fedor Indutny) #55373 - [
6858f7a4d3
] - src: use env strings to create sqlite results (Michaël Zasso) #55785 - [
db01eaf318
] - src: improvenode:os
userInfo performance (Yagiz Nizipli) #55719 - [
383d28489d
] - src: provide workaround for container-overflow (Daniel Lemire) #55591 - [
3477b6b4a5
] - src: move more key related stuff to ncrypto (James M Snell) #55368 - [
38c047e38f
] - src: refactor ECDHBitsJob signature (Filip Skokan) #55610 - [
acbb62902a
] - src: fix dns crash when failed to create NodeAresTask (theanarkh) #55521 - [
547cab9433
] - src: use NewFromUtf8Literal in NODE_DEFINE_CONSTANT (Charles Kerr) #55581 - [
231fe7b953
] - src: do not run IsWindowsBatchFile on non-windows (Yagiz Nizipli) #55560 - [
bde374ee6a
] - src: remove icu basedToASCII
andToUnicode
(Yagiz Nizipli) #55156 - [
6ad23e74be
] - src: fix winapi_strerror error string (Hüseyin Açacak) #55207 - [
63bc40550b
] - src: remove uv__node_patch_is_using_io_uring (Santiago Gimeno) #55114 - [
2af72a7671
] - src: implement IsInsideNodeModules() in C++ (Joyee Cheung) #55286 - [
e14fb2defb
] - src,lib: optimize nodeTiming.uvMetricsInfo (RafaelGSS) #55614 - [
e14dba3ee5
] - src,lib: introduceutil.getSystemErrorMessage(err)
(Juan José) #54075 - [
8f59c41d52
] - stream: propagate AbortSignal reason (Marvin ROGER) #55473 - [
7acb96362c
] - test: increase coverage ofpathToFileURL
(Antoine du Hamel) #55493 - [
5861135ddb
] - test: improve test coverage for child process message sending (Juan José) #55710 - [
554d4ace2f
] - test: ensure that test priority is not higher than current priority (Livia Medeiros) #55739 - [
b0ce62a9bd
] - test: add buffer to fs_permission tests (Rafael Gonzaga) #55734 - [
9d9ad81d54
] - test: improve test coverage forServerResponse
(Juan José) #55711 - [
273f84e01c
] - test: updateperformance-timeline
wpt (RedYetiDev) #55197 - [
89c9c46185
] - test: ignore unrelated events in FW watch tests (Carlos Espa) #55605 - [
fc69080669
] - test: refactor some esm tests (Antoine du Hamel) #55472 - [
a80c166733
] - test: split up test-runner-mock-timers test (Julian Gassner) #55506 - [
8c2fc11f7c
] - test: remove unneeded listeners (Luigi Pinca) #55486 - [
1c5872dbde
] - test: avoidapply()
calls with large amount of elements (Livia Medeiros) #55501 - [
2194eb4909
] - test: increase test coverage forhttp.OutgoingMessage.appendHeader()
(Juan José) #55467 - [
ad7e81379a
] - test: make test-node-output-v8-warning more flexible (Shelley Vohr) #55401 - [
6aeeaa719b
] - test: fix addons and node-api test assumptions (Antoine du Hamel) #55441 - [
73ab14fd8f
] - test: update wpt test for webmessaging/broadcastchannel (devstone) #55205 - [
ded1b68d10
] - test: deflaketest-cluster-shared-handle-bind-privileged-port
(Aviv Keller) #55378 - [
0e873c3031
] - test: updateconsole
wpt (Aviv Keller) #55192 - [
832300533b
] - test: remove duplicate tests (Luigi Pinca) #55393 - [
310a734c1b
] - test: update test_util.cc for coverage (minkyu_kim) #55291 - [
254badd480
] - test: updatecompression
wpt (Aviv Keller) #55191 - [
c52a808ac9
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55703 - [
445d117b67
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55512 - [
cd0d748ede
] - test,crypto: make crypto tests work with BoringSSL (Shelley Vohr) #55491 - [
8bac7c27c8
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55427 - [
363e7d5a76
] - test_runner: error on mocking an already mocked date (Aviv Keller) #55858 - [
f41d329e98
] - test_runner: add support for scheduler.wait on mock timers (Erick Wendel) #55244 - [
b9200c33ae
] - test_runner: require--enable-source-maps
for sourcemap coverage (Aviv Keller) #55359 - [
f11d93d8ef
] - tools: enforce ordering of error codes inerrors.md
(Antoine du Hamel) #55324 - [
85ca31a90a
] - tools: bump @eslint/plugin-kit from 0.2.0 to 0.2.3 in /tools/eslint (dependabot[bot]) #55875 - [
506aac567b
] - tools: fix exclude labels for commit-queue (Richard Lau) #55809 - [
14ffac9995
] - tools: make commit-queue check blocked label (Marco Ippolito) #55781 - [
eb22ec87e6
] - tools: remove non-existent file from eslint config (Aviv Keller) #55772 - [
5844565fb2
] - tools: fix c-ares updater script for Node.js 18 (Richard Lau) #55717 - [
0a79ebd257
] - tools: update ESLint to 9.14.0 (dependabot[bot]) #55689 - [
12543d560a
] - tools: useutil.parseArgs
inlint-md
(Aviv Keller) #55694 - [
d95aa244c2
] - tools: fix root certificate updater (Richard Lau) #55681 - [
3626891f8e
] - tools: compact jq output in daily-wpt-fyi.yml action (Filip Skokan) #55695 - [
02c902e68a
] - tools: run daily WPT.fyi report on all supported releases (Filip Skokan) #55619 - [
456b02351b
] - tools: lint README lists more strictly (Antoine du Hamel) #55625 - [
83a5983c7d
] - tools: update lint-md-dependencies (Node.js GitHub Bot) #55470 - [
72b4a8df6a
] - tools: update gyp-next to 0.18.3 (Node.js GitHub Bot) #55464 - [
6b6e6a5590
] - tools: add script to synch c-ares source lists (Richard Lau) #55445 - [
a6c444291b
] - tools: fix typos (Nathan Baulch) #55061 - [
d5e915ba5d
] - tools: addpolyfilled
option toprefer-primordials
rule (Antoine du Hamel) #55318 - [
c8e7f767b7
] - typings: add missing type ofArrayBufferPrototypeGetByteLength
(Wuli Zuo) #55439 - [
6317f77942
] - url: refactorpathToFileURL
to native (Antoine du Hamel) #55476 - [
5418d40256
] - url: handle "unsafe" characters properly inpathToFileURL
(Antoine du Hamel) #54545 - [
fce8c32c19
] - util: do not mark experimental feature as deprecated (Antoine du Hamel) #55740 - [
940d22ffe1
] - (SEMVER-MINOR) util: fix util.getCallSites plurality (Chengzhong Wu) #55626 - [
42ac0c2af3
] - util: do not catch on circular@@​toStringTag
errors (Aviv Keller) #55544
v22.11.0
: 2024-10-29, Version 22.11.0 'Jod' (LTS), @richardlau
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 reflect
that 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), @aduh95
Notable Changes
"module-sync"
exports condition
New This release introduces a "module-sync"
exports condition that's enabled when
require(esm)
is enabled, so packages can supply a synchronous ES module to the
Node.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 support
require(esm)
in Node.js, and allows dual-package authors to opt into ESM-first
only on newer versions of Node.js that supports require(esm)
to avoid the
dual-package hazard.
{
"type": "module",
"exports": {
"node": {
// On new version of Node.js, both require() and import get
// the ESM version
"module-sync": "./index.js",
// On older version of Node.js, where "module-sync" and require(esm) are
// not supported, use the CJS version to avoid dual-package hazard.
// When package authors think it's time to drop support for older versions of
// Node.js, they can remove the exports conditions and just use "main": "index.js".
"default": "./dist/index.cjs"
},
// On any other environment, use the ESM version.
"default": "./index.js"
}
}
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)
:
{
"type": "module",
"exports": {
// On new version of Node.js, both require() and import get the ESM version
"module-sync": "./index.js",
// On older version of Node.js, where "module-sync" and require(esm) are
// not supported, use the CJS version to avoid dual-package hazard.
// When package authors think it's time to drop support for older versions of
// Node.js, they can remove the exports conditions and just use "main": "index.js".
"default": "./dist/index.cjs"
}
}
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 simplify
their distributions by bumping the major version, dropping their CJS exports,
and removing the module-sync
exports condition (with only main
or default
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
and module
and point them to the same ESM file. If the package
already 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 the
transition period, and can drop module-sync
+module
when they no longer need
to 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'
or import './directory'
), so it would be
breaking to implement a "module"
condition without implementing the forbidden
ESM 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 stable
This CLI flag runs a specified command from a package.json
's "scripts"
object.
For the following package.json
:
{
"scripts": {
"test": "node --test-reporter junit --test ./test"
}
}
You can run node --run test
and that would start the test suite.
Contributed by Yagiz Nizipli in #53763.
Other notable changes
- [
f0b441230a
] - (SEMVER-MINOR) crypto: addKeyObject.prototype.toCryptoKey
(Filip Skokan) #55262 - [
349d2ed07b
] - (SEMVER-MINOR) crypto: add Date fields forvalidTo
andvalidFrom
(Andrew Moon) #54159 - [
bebc95ed58
] - doc: add abmusse to collaborators (Abdirahim Musse) #55086 - [
914db60159
] - (SEMVER-MINOR) http2: exposenghttp2_option_set_stream_reset_rate_limit
as an option (Maël Nison) #54875 - [
f7c3b03759
] - (SEMVER-MINOR) lib: propagate aborted state to dependent signals before firing events (jazelly) #54826 - [
32261fc98a
] - (SEMVER-MINOR) module: support loading entrypoint as url (RedYetiDev) #54933 - [
06957ff355
] - (SEMVER-MINOR) module: implementflushCompileCache()
(Joyee Cheung) #54971 - [
2dcf70c347
] - (SEMVER-MINOR) module: throw when invalid argument is passed toenableCompileCache()
(Joyee Cheung) #54971 - [
f9b19d7c44
] - (SEMVER-MINOR) module: write compile cache to temporary file and then rename it (Joyee Cheung) #54971 - [
e95163b170
] - (SEMVER-MINOR) process: addprocess.features.require_module
(Joyee Cheung) #55241 - [
4050f68e5d
] - (SEMVER-MINOR) process: addprocess.features.typescript
(Aviv Keller) #54295 - [
86f7cb802d
] - (SEMVER-MINOR) test_runner: support custom arguments inrun()
(Aviv Keller) #55126 - [
b62f2f8259
] - (SEMVER-MINOR) test_runner: add'test:summary'
event (Colin Ihrig) #54851 - [
d7c708aec5
] - (SEMVER-MINOR) test_runner: add support for coverage viarun()
(Chemi Atlow) #53937 - [
5fda4a1498
] - (SEMVER-MINOR) worker: addmarkAsUncloneable
api (Jason Zhang) #55234
Commits
- [
e3619510c8
] - assert: show the diff when deep comparing data with a custom message (Giovanni) #54759 - [
39c7a9e70c
] - benchmark: adjust config for deepEqual object (Rafael Gonzaga) #55254 - [
263526d5d0
] - benchmark: rewrite detect-esm-syntax benchmark (Joyee Cheung) #55238 - [
cd0795fb00
] - benchmark: add no-warnings to process.has bench (Rafael Gonzaga) #55159 - [
4352d9cc31
] - benchmark: create benchmark for typescript (Marco Ippolito) #54904 - [
452bc9b48d
] - benchmark: add webstorage benchmark (jakecastelli) #55040 - [
d4d5ba3a9b
] - benchmark: include ascii to fs/readfile (Rafael Gonzaga) #54988 - [
23b628db65
] - benchmark: add dotenv benchmark (Aviv Keller) #54278 - [
b1ebb0d8ca
] - buffer: coerce extrema to int inblob.slice
(Antoine du Hamel) #55141 - [
3a6e72483f
] - buffer: extract Blob's .arrayBuffer() & webidl changes (Matthew Aitken) #53372 - [
d109f1c4ff
] - buffer: use simdutf convert_latin1_to_utf8_safe (Robert Nagy) #54798 - [
77f8a3f9c2
] - build: fix notify-on-review-wanted action (Rafael Gonzaga) #55304 - [
0d93b1ed0c
] - build: fix not valid json in coverage (jakecastelli) #55179 - [
f89664d890
] - build: include.nycrc
in coverage workflows (Wuli Zuo) #55210 - [
d7a9df6417
] - build: notify via slack when review-wanted (Rafael Gonzaga) #55102 - [
68822cc861
] - build: add more information to Makefile help (Aviv Keller) #53381 - [
f3ca9c669b
] - build: update ruff and addlint-py-fix
(Aviv Keller) #54410 - [
d99ae548d7
] - build: remove -v flag to reduce noise (iwuliz) #55025 - [
d3dfbe7ff9
] - build: display free disk space after build in the test-macOS workflow (iwuliz) #55025 - [
3077f6a5b7
] - build: support up to python 3.13 in android-configure (Aviv Keller) #54529 - [
a929c71281
] - build: add the option to generate compile_commands.json in vcbuild.bat (Segev Finer) #52279 - [
a81f368b99
] - build: fix eslint makefile target (Aviv Keller) #54999 - [
c8b7a645ae
] - Revert "build: upgrade clang-format to v18" (Chengzhong Wu) #54994 - [
7861ca5dc3
] - build: printRunning XYZ linter...
for py and yml (Aviv Keller) #54386 - [
aaea3944e5
] - build,win: add winget config to set up env (Hüseyin Açacak) #54729 - [
30d47220bb
] - build,win: float VS 17.11 compilation patch (Stefan Stojanovic) #54970 - [
048a1ab350
] - cli: ensure --run has proper pwd (Yagiz Nizipli) #54949 - [
a97841ee10
] - cli: fix spacing for port range error (Aviv Keller) #54495 - [
1dcc5eedff
] - Revert "console: colorize console error and warn" (Aviv Keller) #54677 - [
f0b441230a
] - (SEMVER-MINOR) crypto: add KeyObject.prototype.toCryptoKey (Filip Skokan) #55262 - [
d3f8c35320
] - crypto: ensure invalid SubtleCrypto JWK data import results in DataError (Filip Skokan) #55041 - [
349d2ed07b
] - (SEMVER-MINOR) crypto: add Date fields forvalidTo
andvalidFrom
(Andrew Moon) #54159 - [
34ca36a397
] - deps: update undici to 6.20.0 (Node.js GitHub Bot) #55329 - [
f703652e84
] - deps: upgrade npm to 10.9.0 (npm team) #55255 - [
b533a51856
] - deps: V8: backport0d5d6e7
(Yagiz Nizipli) #55115 - [
2f65b3fd07
] - deps: V8: partially cherry-pick8953e49
(Ben Noordhuis) #55274 - [
bb9f77d53a
] - deps: update archs files for openssl-3.0.15+quic1 (Node.js GitHub Bot) #55184 - [
63d51c82fe
] - deps: upgrade openssl sources to quictls/openssl-3.0.15+quic1 (Node.js GitHub Bot) #55184 - [
29e6484f3c
] - deps: update archs files for openssl-3.0.14+quic1 (Node.js GitHub Bot) #54336 - [
283927ec88
] - deps: upgrade openssl sources to quictls/openssl-3.0.14+quic1 (Node.js GitHub Bot) #54336 - [
b0636a1e88
] - deps: update timezone to 2024b (Node.js GitHub Bot) #55056 - [
173464d76f
] - deps: update acorn-walk to 8.3.4 (Node.js GitHub Bot) #54950 - [
0d4536543b
] - deps: update corepack to 0.29.4 (Node.js GitHub Bot) #54845 - [
1de5512383
] - deps: V8: cherry-pick217457d
(Michaël Zasso) #54883 - [
1921d7a37c
] - doc: add release key for aduh95 (Antoine du Hamel) #55349 - [
d8e42be1b2
] - doc: moveERR_INVALID_PERFORMANCE_MARK
to legacy errors (Antoine du Hamel) #55247 - [
5ea8aa183c
] - doc: fix Markdown linter (Antoine du Hamel) #55344 - [
873588888d
] - Revert "doc: update test context.assert" (Antoine du Hamel) #55344 - [
707e7cc702
] - doc: add pmarchini to collaborators (Pietro Marchini) #55331 - [
b03272b9a1
] - doc: fixevents.once()
example usingAbortSignal
(Ivo Janssen) #55144 - [
85b765953d
] - doc: add onboarding details for ambassador program (Marco Ippolito) #55284 - [
5d41b8a8b0
] - doc: updaterequire(ESM)
history and stability status (Antoine du Hamel) #55199 - [
195df659e9
] - doc: moveERR_NAPI_TSFN_START/STOP_IDLE_LOOP
to legacy errors (Antoine du Hamel) #55248 - [
8eae0d3f3c
] - doc: fix initial default value of autoSelectFamily (Ihor Rohovets) #55245 - [
297cb0da5a
] - doc: tweak onboarding instructions (Michael Dawson) #55212 - [
7ddbfe8c2b
] - doc: update test context.assert (Pietro Marchini) #55186 - [
8a57550d20
] - doc: fix unordered error anchors (Antoine du Hamel) #55242 - [
286ea4ed3d
] - doc: mention addons to experimental permission (Rafael Gonzaga) #55166 - [
7c9ceabf38
] - doc: use correct dash in stability status (Antoine du Hamel) #55200 - [
781ffd8ba1
] - doc: fix link intest/README.md
(Livia Medeiros) #55165 - [
61b9ed3bf2
] - doc: add esm examples to node:net (Alfredo González) #55134 - [
bb3499038d
] - doc: remove outdated https import reference (Edigleysson Silva (Edy)) #55111 - [
6cc49518c7
] - doc: move the YAML changes element (sendoru) #55112 - [
b12b4a23e4
] - doc: remove random horizontal separators inprocess.md
(Antoine du Hamel) #55149 - [
7186ede388
] - doc: put --env-file-if-exists=config right under --env-file=config (Edigleysson Silva (Edy)) #55131 - [
8ad0dfff10
] - doc: fix the require resolve algorithm inmodules.md
(chirsz) #55117 - [
fd40f0873f
] - doc: update style guide (Aviv Keller) #53223 - [
12c9d9780f
] - doc: add missing:
torun()
'sglobPatterns
(Aviv Keller) #55135 - [
73b05cfb04
] - doc: correctcleanup
option in stream.(promises.)finished (René) #55043 - [
bebc95ed58
] - doc: add abmusse to collaborators (Abdirahim Musse) #55086 - [
a97c80c6ae
] - doc: add note about--expose-internals
(Aviv Keller) #52861 - [
89aeae63bd
] - doc: removeparseREPLKeyword
from REPL documentation (Aviv Keller) #54749 - [
b3e0490b8b
] - doc: add missing EventSource docs to globals (Matthew Aitken) #55022 - [
516c775fa5
] - doc: cover --experimental-test-module-mocks flag (Jonathan Sharpe) #55021 - [
4244f1a269
] - doc: add more details for localStorage and sessionStorage (Batuhan Tomo) #53881 - [
39a728c2e3
] - doc: change backporting guide with updated info (Aviv Keller) #53746 - [
3a5fe95ad7
] - doc: add missing definitions tointernal-api.md
(Aviv Keller) #53303 - [
f2d74a26a3
] - doc: fix history ofprocess.features
(Antoine du Hamel) #54982 - [
29866ca438
] - doc: fix typo callsite.lineNumber (Rafael Gonzaga) #54969 - [
c1d73abd29
] - doc: update documentation for externalizing deps (Michael Dawson) #54792 - [
eca9668231
] - doc: add documentation for process.features (Marco Ippolito) #54897 - [
0fb446e207
] - esm: do not interpret"main"
as a URL (Antoine du Hamel) #55003 - [
be2fe4b249
] - events: allow null/undefined eventInitDict (Matthew Aitken) #54643 - [
cb47e169a0
] - events: returncurrentTarget
when dispatching (Matthew Aitken) #54642 - [
dbfae3fe14
] - fs: acknowledgesignal
option infilehandle.createReadStream()
(Livia Medeiros) #55148 - [
1c94725c07
] - fs: check subdir correctly in cpSync (Jason Zhang) #55033 - [
79ffefab2a
] - fs: convert to u8 string for filesystem path (Jason Zhang) #54653 - [
914db60159
] - (SEMVER-MINOR) http2: expose nghttp2_option_set_stream_reset_rate_limit as an option (Maël Nison) #54875 - [
08b5e6c794
] - lib: fix module print timing when specifier includes"
(Antoine du Hamel) #55150 - [
bf7d7aef4b
] - lib: fix typos (Nathan Baulch) #55065 - [
d803355d92
] - lib: prefer optional chaining (Aviv Keller) #55045 - [
d4873bcd6d
] - lib: remove lib/internal/idna.js (Yagiz Nizipli) #55050 - [
f7c3b03759
] - (SEMVER-MINOR) lib: propagate aborted state to dependent signals before firing events (jazelly) #54826 - [
397ae418db
] - lib: the REPL should survive deletion of Array.prototype methods (Jordan Harband) #31457 - [
566179c9ec
] - lib, tools: remove duplicate requires (Aviv Keller) #54987 - [
c9a1bbbef2
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #55300 - [
d7b73bbd1d
] - meta: bump mozilla-actions/sccache-action from 0.0.5 to 0.0.6 (dependabot[bot]) #55225 - [
0f4269faa9
] - meta: bump actions/checkout from 4.1.7 to 4.2.0 (dependabot[bot]) #55224 - [
33be1990d8
] - meta: bump actions/setup-node from 4.0.3 to 4.0.4 (dependabot[bot]) #55223 - [
f5b4ae5bf8
] - meta: bump peter-evans/create-pull-request from 7.0.1 to 7.0.5 (dependabot[bot]) #55219 - [
1985d9016e
] - meta: add mailmap entry for abmusse (Abdirahim Musse) #55182 - [
93b215d5e6
] - meta: add more information about nightly releases (Aviv Keller) #55084 - [
aeae5973c3
] - meta: addlinux
to OS labels in collaborator guide (Aviv Keller) #54986 - [
4fb2c3baa8
] - meta: remove never-used workflow trigger (Aviv Keller) #54983 - [
e1f36d0da8
] - meta: remove unneeded ignore rules from ruff (Aviv Keller) #54360 - [
ce0d0c1ec8
] - meta: removebuild-windows.yml
(Aviv Keller) #54662 - [
ca67c97f33
] - meta: add links to alternative issue trackers (Aviv Keller) #54401 - [
6fcac73738
] - module: wrap swc error in ERR_INVALID_TYPESCRIPT_SYNTAX (Marco Ippolito) #55316 - [
0412ac8bf3
] - module: add internal type def forflushCompileCache
(Jacob Smith) #55226 - [
32261fc98a
] - (SEMVER-MINOR) module: support loading entrypoint as url (RedYetiDev) #54933 - [
111261e245
] - (SEMVER-MINOR) module: implement the "module-sync" exports condition (Joyee Cheung) #54648 - [
b6fc9adf5b
] - module: remove duplicated import (Aviv Keller) #54942 - [
06957ff355
] - (SEMVER-MINOR) module: implement flushCompileCache() (Joyee Cheung) #54971 - [
2dcf70c347
] - (SEMVER-MINOR) module: throw when invalid argument is passed to enableCompileCache() (Joyee Cheung) #54971 - [
f9b19d7c44
] - (SEMVER-MINOR) module: write compile cache to temporary file and then rename it (Joyee Cheung) #54971 - [
1d169764db
] - module: report unfinished TLA in ambiguous modules (Antoine du Hamel) #54980 - [
c89c93496d
] - module: refator ESM loader for adding future synchronous hooks (Joyee Cheung) #54769 - [
108cef22e6
] - module: remove bogus assertion in CJS entrypoint handling with --import (Joyee Cheung) #54592 - [
67ecb10c78
] - module: fix discrepancy between .ts and .js (Marco Ippolito) #54461 - [
3300d5990f
] - os: use const with early return for path (Trivikram Kamat) #54959 - [
90cce6ec7c
] - path: remove repetitive conditional operator inposix.resolve
(Wiyeong Seo) #54835 - [
cbfc980f89
] - perf_hooks: add missing type argument to getEntriesByName (Luke Taher) #54767 - [
e95163b170
] - (SEMVER-MINOR) process: add process.features.require_module (Joyee Cheung) #55241 - [
0655d3a384
] - process: fixprocess.features.typescript
when Amaro is unavailable (Antoine du Hamel) #55323 - [
4050f68e5d
] - (SEMVER-MINOR) process: addprocess.features.typescript
(Aviv Keller) #54295 - [
75073c50ae
] - quic: start adding in the internal quic js api (James M Snell) #53256 - [
538b1eb5b0
] - repl: catch\v
and\r
in new-line detection (Aviv Keller) #54512 - [
57a9d3f15e
] - sqlite: disable DQS misfeature by default (Tobias Nießen) #55297 - [
c126543374
] - sqlite: make sourceSQL and expandedSQL string-valued properties (Tobias Nießen) #54721 - [
67f5f46c56
] - sqlite: enable foreign key constraints by default (Tobias Nießen) #54777 - [
09999491bf
] - src: handle errors correctly in webstorage (Michaël Zasso) #54544 - [
295c17c4ea
] - src: make minor tweaks to quic c++ for c++20 (James M Snell) #53256 - [
b1d47d06f9
] - src: apply getCallSite optimization (RafaelGSS) #55174 - [
d6bcc44829
] - src: modernize likely/unlikely hints (Yagiz Nizipli) #55155 - [
1af5ad61ca
] - src: fixup Error.stackTraceLimit during snapshot building (Joyee Cheung) #55121 - [
b229083235
] - src: parse --stack-trace-limit and use it in --trace-* flags (Joyee Cheung) #55121 - [
942ad54e08
] - src: move more key handling to ncrypto (James M Snell) #55108 - [
0bb5584288
] - src: add receiver to fast api callback methods (Carlos Espa) #54408 - [
706e9611f0
] - src: fix typos (Nathan Baulch) #55064 - [
a96d5d1bcc
] - src: move more stuff over to use Maybe<void> (James M Snell) #54831 - [
ee0a98b5a2
] - src: decode native error messages as UTF-8 (Joyee Cheung) #55024 - [
1fc8edecf8
] - src: update clang-tidy and focus on modernization (Yagiz Nizipli) #53757 - [
3a1485a1a3
] - src: move evp stuff to ncrypto (James M Snell) #54911 - [
9ae80e1e4d
] - src: revert filesystem::path changes (Yagiz Nizipli) #55015 - [
465d05018a
] - src: mark node --run as stable (Yagiz Nizipli) #53763 - [
ef546c872c
] - src: cleanup per env handles directly without a list (Chengzhong Wu) #54993 - [
0876f78411
] - src: add unistd.h import if node posix credentials is defined (Jonas) #54528 - [
284db53866
] - src: remove duplicate code setting AF_INET (He Yang) #54939 - [
f332c4c4fc
] - src: useMaybe<void>
where bool isn't needed (Michaël Zasso) #54575 - [
c7ed2ff920
] - stream: handle undefined chunks correctly in decode stream (devstone) #55153 - [
a9675a0cbc
] - stream: treat null asyncIterator as undefined (Jason Zhang) #55119 - [
bf69ae1406
] - stream: set stream prototype to closest transferable superclass (Jason Zhang) #55067 - [
3273707a3a
] - test: fix tests when Amaro is unavailable (Richard Lau) #55320 - [
ff3cc3b2ab
] - test: use more informative errors intest-runner-cli
(Antoine du Hamel) #55321 - [
17d2f9de6d
] - test: maketest-loaders-workers-spawned
less flaky (Antoine du Hamel) #55172 - [
1b1104e69b
] - test: add resource to internal module stat test (RafaelGSS) #55157 - [
b36f8c2146
] - test: update multiple assert tests to use node:test (James M Snell) #54585 - [
1b30f7fdd6
] - test: move coverage source map tests to new file (Aviv Keller) #55123 - [
ce67e7b5b3
] - test: adding more tests for strip-types (Kevin Toshihiro Uehara) #54929 - [
a57c8ba3ef
] - test: update wpt test for encoding (devstone) #55151 - [
65fbe94d45
] - test: addescapePOSIXShell
util (Antoine du Hamel) #55125 - [
cc8838252e
] - test: remove unnecessaryawait
in test-watch-mode (Wuli) #55142 - [
9aeba48bf0
] - test: fix typos (Nathan Baulch) #55063 - [
0999b5e493
] - test: remove duplicated test descriptions (Christos Koutsiaris) #54140 - [
e99d4a4cb8
] - test: deflake test/pummel/test-timers.js (jakecastelli) #55098 - [
fb8470afd7
] - test: deflake test-http-remove-header-stays-removed (Luigi Pinca) #55004 - [
e879c5edf2
] - test: fix test-tls-junk-closes-server (Michael Dawson) #55089 - [
b885f0583c
] - test: fix more tests that fail when path contains a space (Antoine du Hamel) #55088 - [
85f1187942
] - test: fixassertSnapshot
when path contains a quote (Antoine du Hamel) #55087 - [
fdae57f1e1
] - test: fix some tests when path contains%
(Antoine du Hamel) #55082 - [
36c9ea8912
] - Revert "test: mark test-fs-watch-non-recursive flaky on Windows" (Luigi Pinca) #55079 - [
80da5993cc
] - test: remove interval and give more time to unsync (Pietro Marchini) #55006 - [
93c23e74b3
] - test: deflake test-inspector-strip-types (Luigi Pinca) #55058 - [
43bbca2c08
] - test: maketest-runner-assert
more robust (Aviv Keller) #55036 - [
268f1ec08f
] - test: update tls test to support OpenSSL32 (Michael Dawson) #55030 - [
a50dd21423
] - test: do not assumeprocess.execPath
contains no spaces (Antoine du Hamel) #55028 - [
c56e324cb8
] - test: fixtest-vm-context-dont-contextify
when path contains a space (Antoine du Hamel) #55026 - [
6d42e44264
] - test: adjust tls-set-ciphers for OpenSSL32 (Michael Dawson) #55016 - [
22e601a76c
] - test: addutil.stripVTControlCharacters
test (RedYetiDev) #54865 - [
a6796696d7
] - test: improve coverage for timer promises schedular (Aviv Keller) #53370 - [
9506f77b3e
] - test: removegetCallSite
from common (RedYetiDev) #54947 - [
20d3a806ea
] - test: remove unused common utilities (RedYetiDev) #54825 - [
341b6d9b94
] - test: deflake test-http-header-overflow (Luigi Pinca) #54978 - [
1e53c10853
] - test: fixsoucre
tosource
(Aviv Keller) #55038 - [
6843ca7e0d
] - test: add asserts to validate test assumptions (Michael Dawson) #54997 - [
98ff615c5e
] - test: add runner watch mode isolation tests (Pietro Marchini) #54888 - [
327a8f7b59
] - test: fix invalid wasm test (Aviv Keller) #54935 - [
5b012f544c
] - test: move test-http-max-sockets to parallel (Luigi Pinca) #54977 - [
22b413910e
] - test: remove test-http-max-sockets flaky designation (Luigi Pinca) #54976 - [
62b8640550
] - test: refactor test-whatwg-webstreams-encoding to be shorter (David Dong) #54569 - [
1f11d68173
] - test: adjust key sizes to support OpenSSL32 (Michael Dawson) #54972 - [
90a87ca8f7
] - test: update test to support OpenSSL32 (Michael Dawson) #54968 - [
9b7834536a
] - test: update DOM events web platform tests (Matthew Aitken) #54642 - [
1c001550a2
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55029 - [
800f7c44ed
] - test_runner: throw on invalid source map (Aviv Keller) #55055 - [
0f7e3f017f
] - test_runner: assert entry is a valid object (Edigleysson Silva (Edy)) #55231 - [
c308862d2e
] - test_runner: avoid spread operator on arrays (Antoine du Hamel) #55143 - [
12401972b7
] - test_runner: support typescript files in default glob (Aviv Keller) #55081 - [
19cfa3140f
] - test_runner: close and flush destinations on forced exit (Colin Ihrig) #55099 - [
86f7cb802d
] - (SEMVER-MINOR) test_runner: support custom arguments inrun()
(Aviv Keller) #55126 - [
7eaeba499a
] - test_runner: fix mocking modules with quote in their URL (Antoine du Hamel) #55083 - [
8818c6c88a
] - test_runner: report error on missing sourcemap source (Aviv Keller) #55037 - [
b62f2f8259
] - (SEMVER-MINOR) test_runner: add 'test:summary' event (Colin Ihrig) #54851 - [
449dad0db0
] - test_runner: usetest:
symbol on second print of parent test (RedYetiDev) #54956 - [
4b962a78c7
] - test_runner: replace ansi clear with ansi reset (Pietro Marchini) #55013 - [
d7c708aec5
] - (SEMVER-MINOR) test_runner: add support for coverage via run() (Chemi Atlow) #53937 - [
93c6c90219
] - test_runner: support typescript module mocking (Marco Ippolito) #54878 - [
1daec9a63f
] - test_runner: avoid coverage report partial file names (Pietro Marchini) #54379 - [
d51e5a8667
] - tools: enforce errors to not be documented in legacy section (Aviv Keller) #55218 - [
6a7d201b80
] - tools: update gyp-next to 0.18.2 (Node.js GitHub Bot) #55160 - [
c988e7e2e5
] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #55227 - [
7982d3d4ed
] - tools: only check teams on the default branch (Antoine du Hamel) #55124 - [
60a35eddb0
] - tools: makechoco install
script more readable (Aviv Keller) #54002 - [
b7b1fa6dd3
] - tools: bump Rollup from 4.18.1 to 4.22.4 forlint-md
(dependabot[bot]) #55093 - [
3304bf387f
] - tools: unlock versions of irrelevant DB deps (Michaël Zasso) #55042 - [
65c376a819
] - tools: remove redudant code from eslint require rule (Aviv Keller) #54892 - [
295f684b69
] - tools: update error message for ICU in license-builder (Aviv Keller) #54742 - [
ce4b6e403d
] - tools: refactor js2c.cc to use c++20 (Yagiz Nizipli) #54849 - [
31f0ef6ea3
] - tools: bump the eslint group in /tools/eslint with 7 updates (dependabot[bot]) #54821 - [
676d0a09a0
] - tools: update github_reporter to 1.7.1 (Node.js GitHub Bot) #54951 - [
0f01f38aea
] - tty: fix links for terminal colors (Aviv Keller) #54596 - [
d264639f5f
] - util: update ansi regex (Aviv Keller) #54865 - [
ea7aaf37bf
] - v8: out of bounds copy (Robert Nagy) #55261 - [
fa695facf5
] - watch: preserve output when gracefully restarted (Théo LUDWIG) #54323 - [
5fda4a1498
] - (SEMVER-MINOR) worker: addmarkAsUncloneable
api (Jason Zhang) #55234 - [
d65334c454
] - worker: throw InvalidStateError in postMessage after close (devstone) #55206 - [
fc90d7c63a
] - worker: handle--input-type
more consistently (Antoine du Hamel) #54979 - [
a9fa2da870
] - zlib: throw brotli initialization error from c++ (Yagiz Nizipli) #54698 - [
9abd1c7288
] - zlib: remove prototype primordials usage (Yagiz Nizipli) #54695
v22.9.0
: 2024-09-17, Version 22.9.0 (Current), @RafaelGSS
New API to retrieve execution Stack Trace
A new API getCallSite
has been introduced to the util
module. This API allows users
to retrieve the stacktrace of the current execution. Example:
const util = require('node:util');
function exampleFunction() {
const callSites = util.getCallSite();
console.log('Call Sites:');
callSites.forEach((callSite, index) => {
console.log(`CallSite ${index + 1}:`);
console.log(`Function Name: ${callSite.functionName}`);
console.log(`Script Name: ${callSite.scriptName}`);
console.log(`Line Number: ${callSite.lineNumber}`);
console.log(`Column Number: ${callSite.column}`);
});
// CallSite 1:
// Function Name: exampleFunction
// Script Name: /home/example.js
// Line Number: 5
// Column Number: 26
// CallSite 2:
// Function Name: anotherFunction
// Script Name: /home/example.js
// Line Number: 22
// Column Number: 3
// ...
}
// A function to simulate another stack layer
function anotherFunction() {
exampleFunction();
}
anotherFunction();
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
. For
now 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
- [
5c9599af5a
] - src: create handle scope in FastInternalModuleStat (Joyee Cheung) #54384 - [
e2307d87e8
] - (SEMVER-MINOR) stream: relocate the status checking code in the onwritecomplete (YoonSoo_Shin) #54032
Deprecations
- [
8433032948
] - repl: doc-deprecate instantiatingnode:repl
classes withoutnew
(Aviv Keller) #54842 - [
8c4c85cf31
] - zlib: deprecate instantiating classes without new (Yagiz Nizipli) #54708
Commits
- [
027b0ffe84
] - async_hooks: add an InactiveAsyncContextFrame class (Bryan English) #54510 - [
022767028e
] - benchmark: --no-warnings to avoid DEP/ExpWarn log (Rafael Gonzaga) #54928 - [
af1988c147
] - benchmark: add buffer.isAscii benchmark (RafaelGSS) #54740 - [
40c6849964
] - benchmark: add buffer.isUtf8 bench (RafaelGSS) #54740 - [
237d7dfbde
] - benchmark: add access async version to bench (Rafael Gonzaga) #54747 - [
ebe91db827
] - benchmark: enhance dc publish benchmark (Rafael Gonzaga) #54745 - [
060164485b
] - benchmark: add match and doesNotMatch bench (RafaelGSS) #54734 - [
2844180c7e
] - benchmark: add rejects and doesNotReject bench (RafaelGSS) #54734 - [
af7689ed02
] - benchmark: add throws and doesNotThrow bench (RafaelGSS) #54734 - [
456a1fe222
] - benchmark: add strictEqual and notStrictEqual bench (RafaelGSS) #54734 - [
721c63c858
] - benchmark: adds groups to better separate benchmarks (Giovanni Bucci) #54393 - [
68e45b406e
] - benchmark,doc: add CPU scaling governor to perf (Rafael Gonzaga) #54723 - [
d19efd7a50
] - benchmark,doc: mention bar.R to the list of scripts (Rafael Gonzaga) #54722 - [
1fb67afa2f
] - buffer: fix out of range for toString (Jason Zhang) #54553 - [
85b5ed5d41
] - buffer: re-enable Fast API for Buffer.write (Robert Nagy) #54526 - [
9a075279ec
] - build: upgrade clang-format to v18 (Aviv Keller) #53957 - [
69ec9d8d2b
] - build: fix conflicting V8 object print flags (Daeyeon Jeong) #54785 - [
948bba396c
] - build: do not build with code cache for core coverage collection (Joyee Cheung) #54633 - [
6200cf4fb6
] - build: don't store eslint locally (Aviv Keller) #54231 - [
3b5ed97fe9
] - build: turn off-Wrestrict
(Richard Lau) #54737 - [
e38e305a35
] - build,win: enable clang-cl compilation (Stefan Stojanovic) #54655 - [
5bba0781b0
] - crypto: reject dh,x25519,x448 in {Sign,Verify}Final (Huáng Jùnliàng) #53774 - [
3981853c00
] - crypto: return a clearer error when loading an unsupported pkcs12 (Tim Perry) #54485 - [
02ac5376b9
] - crypto: remove unusedkHashTypes
internal (Antoine du Hamel) #54627 - [
323d9da3c9
] - deps: update cjs-module-lexer to 1.4.1 (Node.js GitHub Bot) #54846 - [
bf4bf7cc6b
] - deps: update simdutf to 5.5.0 (Node.js GitHub Bot) #54434 - [
61047dd130
] - deps: upgrade npm to 10.8.3 (npm team) #54619 - [
2351da5034
] - deps: update cjs-module-lexer to 1.4.0 (Node.js GitHub Bot) #54713 - [
0659516823
] - deps: allow amaro to be externalizable (Michael Dawson) #54646 - [
6a32645dbc
] - deps: fix sign-compare warning in ncrypto (Cheng) #54624 - [
8f62f19197
] - doc: fix broken Android building link (Niklas Wenzel) #54922 - [
440c256d76
] - doc: add support link for aduh95 (Antoine du Hamel) #54866 - [
56aca2a1ca
] - doc: run license-builder (github-actions[bot]) #54854 - [
8931f569c6
] - doc: experimental flag for global accessible APIs (Chengzhong Wu) #54330 - [
6f8a6e9eb6
] - doc: addERR_INVALID_ADDRESS
toerrors.md
(Aviv Keller) #54661 - [
c1b92e05e7
] - doc: add support link for mcollina (Matteo Collina) #54786 - [
1def18122a
] - doc: mark--conditions
CLI flag as stable (Guy Bedford) #54209 - [
b8ae36b6c3
] - doc: fix typo in recognizing-contributors (Tobias Nießen) #54822 - [
2c2ae80924
] - doc: clarify--max-old-space-size
and--max-semi-space-size
units (Alexandre ABRIOUX) #54477 - [
5bd4be5ce7
] - doc: replace --allow-fs-read by --allow-fs-write in related section (M1CK431) #54427 - [
c0f3e4603f
] - doc: add support link for marco-ippolito (Marco Ippolito) #54789 - [
dc69eb8276
] - doc: fix typo in module.md (Tobias Nießen) #54794 - [
de225f5db9
] - doc: specify that preloaded modules affect subprocesses (Aviv Keller) #52939 - [
62b0007cbe
] - doc: clarify expandedSQL behavior (Tobias Nießen) #54685 - [
1c7bdf95db
] - doc: render type references in SQLite docs (Tobias Nießen) #54684 - [
5555095531
] - doc: fix typo (Michael Dawson) #54640 - [
754baa4efa
] - doc: fix webcrypto.md AES-GCM backticks (Filip Skokan) #54621 - [
5bfb4bcf45
] - doc: add documentation about os.tmpdir() overrides (Joyee Cheung) #54613 - [
22d873208e
] - doc, build: fixup build docs (Aviv Keller) #54899 - [
5e081a12b6
] - doc, child_process: add esm snippets (Aviv Keller) #53616 - [
2b68c30a26
] - doc, meta: fix broken link inonboarding.md
(Aviv Keller) #54886 - [
a624002fff
] - esm: throwERR_REQUIRE_ESM
instead ofERR_INTERNAL_ASSERTION
(Antoine du Hamel) #54868 - [
31d4ef91ee
] - esm: fix support forURL
instances inimport.meta.resolve
(Antoine du Hamel) #54690 - [
40ba89e452
] - esm: use Undici/fetch
data:
URL parser (Matthew Aitken) #54748 - [
93116dd7b1
] - fs: translate error code properly in cpSync (Jason Zhang) #54906 - [
375cbb592e
] - fs: refactor rimraf to avoid using primordials (Yagiz Nizipli) #54834 - [
ee89c3149e
] - fs: respect dereference when copy symlink directory (Jason Zhang) #54732 - [
7123bf7ca4
] - http: reduce likelihood of race conditions on keep-alive timeout (jazelly) #54863 - [
04ef3e4afd
] - https: only use default ALPNProtocols when appropriate (Brian White) #54411 - [
dc5593ba1e
] - lib: remove unnecessary async (jakecastelli) #54829 - [
2b9a6373da
] - lib: make WeakRef safe in abort_controller (jazelly) #54791 - [
5f02e1b850
] - lib: moveSymbol[Async]Dispose
polyfills tointernal/util
(Antoine du Hamel) #54853 - [
fc78ced7e4
] - lib: convert signals to array before validation (Jason Zhang) #54714 - [
21fef34a53
] - lib: add note about removingnode:sys
module (Rafael Gonzaga) #54743 - [
a37d805489
] - (SEMVER-MINOR) lib: add util.getCallSite() API (Rafael Gonzaga) #54380 - [
2a1f56cce6
] - lib: ensure no holey array in fixed_queue (Jason Zhang) #54537 - [
540b1dbaf6
] - lib: refactor SubtleCrypto experimental warnings (Filip Skokan) #54620 - [
b59c8b88c7
] - lib,src: use built-in array buffer detach, transfer (Yagiz Nizipli) #54837 - [
c1cc046de9
] - meta: bump peter-evans/create-pull-request from 6.1.0 to 7.0.1 (dependabot[bot]) #54820 - [
82c08ef483
] - meta: addWindows ARM64
to flaky-tests list (Aviv Keller) #54693 - [
df30e8efa1
] - meta: ping @nodejs/performance on bench changes (Rafael Gonzaga) #54752 - [
bdd9fbb905
] - meta: bump actions/setup-python from 5.1.1 to 5.2.0 (Rich Trott) #54691 - [
19574a8403
] - meta: update sccache to v0.8.1 (Aviv Keller) #54720 - [
9ebcfb2b28
] - meta: bump step-security/harden-runner from 2.9.0 to 2.9.1 (dependabot[bot]) #54704 - [
ea58feb959
] - meta: bump actions/upload-artifact from 4.3.4 to 4.4.0 (dependabot[bot]) #54703 - [
c6bd9e443e
] - meta: bump github/codeql-action from 3.25.15 to 3.26.6 (dependabot[bot]) #54702 - [
79b358af2e
] - meta: fix links inSECURITY.md
(Aviv Keller) #54696 - [
6c8a20d650
] - meta: fixcontributing
codeowners (Aviv Keller) #54641 - [
b7284ed099
] - module: do not warn for typeless package.json when there isn't one (Joyee Cheung) #54045 - [
ddd24a6e63
] - node-api: add external buffer creation benchmark (Chengzhong Wu) #54877 - [
4a7576efae
] - node-api: add support for UTF-8 and Latin-1 property keys (Mert Can Altin) #52984 - [
461e523498
] - os: improvetmpdir
performance (Yagiz Nizipli) #54709 - [
94fb7ab2e7
] - path: removeStringPrototypeCharCodeAt
fromposix.extname
(Aviv Keller) #54546 - [
67b1d4cb45
] - repl: avoid interpreting 'npm' as a command when errors are recoverable (Shima Ryuhei) #54848 - [
8433032948
] - repl: doc-deprecate instantiatingnode:repl
classes withoutnew
(Aviv Keller) #54842 - [
7766349dd0
] - sqlite: fix segfault in expandedSQL (Tobias Nießen) #54687 - [
4c1b98ba2b
] - sqlite: remove unnecessary auto assignment (Tobias Nießen) #54686 - [
77d162adb6
] - src: add--env-file-if-exists
flag (Bosco Domingo) #53060 - [
424bdc03b4
] - src: add Cleanable class to Environment (Gabriel Schulhof) #54880 - [
fbd08e3a9f
] - src: switch crypto APIs to use Maybe<void> (James M Snell) #54775 - [
5e72bd3545
] - src: eliminate ManagedEVPPkey (James M Snell) #54751 - [
97cbcfbb43
] - src: fix unhandled error in structuredClone (Daeyeon Jeong) #54764 - [
b89cd8d19a
] - src: move hkdf, scrypto, pbkdf2 impl to ncrypto (James M Snell) #54651 - [
5c9599af5a
] - src: create handle scope in FastInternalModuleStat (Joyee Cheung) #54384 - [
e2307d87e8
] - (SEMVER-MINOR) stream: relocate the status checking code in the onwritecomplete (YoonSoo_Shin) #54032 - [
ff54cabef6
] - test: adjust test-tls-junk-server for OpenSSL32 (Michael Dawson) #54926 - [
23fb03beed
] - test: remove duplicate skip AIX (Wuli) #54917 - [
2b5e70816a
] - test: adjust tls test for OpenSSL32 (Michael Dawson) #54909 - [
cefa692dcb
] - test: fix test-http2-socket-close.js (Hüseyin Açacak) #54900 - [
097f6d3e7e
] - test: improve test-internal-fs-syncwritestream (Sunghoon) #54671 - [
ed736a689f
] - test: deflake test-dns (Luigi Pinca) #54902 - [
bb4849f595
] - test: fix test test-tls-dhe for OpenSSL32 (Michael Dawson) #54903 - [
d9264bceca
] - test: use correct file naming syntax forutil-parse-env
(Aviv Keller) #53705 - [
115a7ca42a
] - test: add missing await (Luigi Pinca) #54828 - [
7a1d633d77
] - test: move more url tests tonode:test
(Yagiz Nizipli) #54636 - [
ee385d62b9
] - test: strip color chars intest-runner-run
(Giovanni Bucci) #54552 - [
2efec6221c
] - test: deflake test-http2-misbehaving-multiplex (Luigi Pinca) #54872 - [
b198a91404
] - test: remove dead code in test-http2-misbehaving-multiplex (Luigi Pinca) #54860 - [
194cb83f39
] - test: reduce test-esm-loader-hooks-inspect-wait flakiness (Luigi Pinca) #54827 - [
4b53558e8b
] - test: reduce the allocation size in test-worker-arraybuffer-zerofill (James M Snell) #54839 - [
c968d65d6d
] - test: fix test-tls-client-mindhsize for OpenSSL32 (Michael Dawson) #54739 - [
b998bb0933
] - test: remove need to make fs call for zlib test (Yagiz Nizipli) #54814 - [
f084ea2e01
] - test: use platform timeout (jakecastelli) #54591 - [
b10e434cf3
] - test: add platform timeout support for riscv64 (jakecastelli) #54591 - [
b875f2d7de
] - test: reduce stack size for test-error-serdes (James M Snell) #54840 - [
d1a411480a
] - test: reduce fs calls in test-fs-existssync-false (Yagiz Nizipli) #54815 - [
b96ee30a09
] - test: usenode:test
intest-cli-syntax.bad
(Aviv Keller) #54513 - [
5278b8b7a1
] - test: move test-http-server-request-timeouts-mixed (James M Snell) #54841 - [
8345a60d3a
] - test: fix Windows async-context-frame memory failure (Stephen Belanger) #54823 - [
cad404e1a1
] - test: fix volatile for CauseSegfault with clang (Ivan Trubach) #54325 - [
41682c7286
] - test: settest-http2-socket-close
as flaky (Yagiz Nizipli) #54802 - [
1e1ac48711
] - test: settest-worker-arraybuffer-zerofill
as flaky (Yagiz Nizipli) #54802 - [
56238debff
] - test: settest-runner-run-watch
as flaky (Yagiz Nizipli) #54802 - [
8291de1540
] - test: settest-http-server-request-timeouts-mixed
as flaky (Yagiz Nizipli) #54802 - [
32d340e6b3
] - test: settest-single-executable-application-empty
as flaky (Yagiz Nizipli) #54802 - [
6a2da4c4ca
] - test: settest-macos-app-sandbox
as flaky (Yagiz Nizipli) #54802 - [
2f408847a0
] - test: settest-fs-utimes
as flaky (Yagiz Nizipli) #54802 - [
e3b7c40ffc
] - test: settest-runner-run-watch
as flaky (Yagiz Nizipli) #54802 - [
d2ede46946
] - test: settest-sqlite-statement-sync
as flaky (Yagiz Nizipli) #54802 - [
b9f3385808
] - test: settest-writewrap
as flaky (Yagiz Nizipli) #54802 - [
d55fec8f40
] - test: settest-async-context-frame
as flaky (Yagiz Nizipli) #54802 - [
3dfb525f3e
] - test: settest-esm-loader-hooks-inspect-wait
as flaky (Yagiz Nizipli) #54802 - [
b0458a88b4
] - test: settest-http2-large-file
as flaky (Yagiz Nizipli) #54802 - [
5f6f8757e5
] - test: settest-runner-watch-mode-complex
as flaky (Yagiz Nizipli) #54802 - [
4231af336d
] - test: settest-performance-function
as flaky (Yagiz Nizipli) #54802 - [
45ef2a868e
] - test: settest-debugger-heap-profiler
as flaky (Yagiz Nizipli) #54802 - [
b5137f6405
] - test: fixtest-process-load-env-file
when path contains'
(Antoine du Hamel) #54511 - [
960116905a
] - test: refactor fs-watch tests due to macOS issue (Santiago Gimeno) #54498 - [
f074d74bf3
] - test: refactortest-esm-type-field-errors
(Giovanni Bucci) #54368 - [
67e30deced
] - test: move more zlib tests to node:test (Yagiz Nizipli) #54609 - [
fdb65111a3
] - test: improve output of child process utilities (Joyee Cheung) #54622 - [
55a12a4190
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #54925 - [
de0f445a7f
] - test_runner: reimplementassert.ok
to allow stack parsing (Aviv Keller) #54776 - [
a52c199d9d
] - (SEMVER-MINOR) test_runner: report coverage thresholds intest:coverage
(Aviv Keller) #54813 - [
6552fddef5
] - test_runner: update kPatterns (Pietro Marchini) #54728 - [
3396a4954d
] - test_runner: detect only tests when isolation is off (Colin Ihrig) #54832 - [
021f59b6bc
] - test_runner: apply filtering when tests begin (Colin Ihrig) #54832 - [
36da793350
] - test_runner: allow--import
with no isolation (Aviv Keller) #54697 - [
de73d1ee4b
] - test_runner: improve code coverage cleanup (Colin Ihrig) #54856 - [
3d478728f2
] - timers: avoid generating holey internal arrays (Gürgün Dayıoğlu) #54771 - [
b3d567ae0f
] - timers: document ref option for scheduler.wait (Paolo Insogna) #54605 - [
c2bf0134ce
] - (SEMVER-MINOR) tls: addallowPartialTrustChain
flag (Anna Henningsen) #54790 - [
608a611132
] - tools: add readability/fn_size to filter (Rafael Gonzaga) #54744 - [
93fab49099
] - tools: add util scripts to land and rebase MRs (Antoine du Hamel) #54656 - [
d6df542ff8
] - tools: remove readability/fn_size rule (Rafael Gonzaga) #54663 - [
689d127ee7
] - typings: fix TypedArray to a global type (1ilsang) #54063 - [
071dff1d34
] - typings: correct param type ofSafePromisePrototypeFinally
(Wuli) #54727 - [
5243e3240c
] - Revert "v8: enable maglev on supported architectures" (Joyee Cheung) #54384 - [
ade9da5b3a
] - vm: add vm proto property lookup test (Chengzhong Wu) #54606 - [
8385958b60
] - zlib: add typings for better dx (Yagiz Nizipli) #54699 - [
8c4c85cf31
] - zlib: deprecate instantiating classes without new (Yagiz Nizipli) #54708
v22.8.0
: 2024-09-03, Version 22.8.0 (Current), @RafaelGSS
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 global
object 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:
-
Branch coverage: Use
--test-coverage-branches=<threshold>
-
Function coverage: Use
--test-coverage-functions=<threshold>
-
Line coverage: Use
--test-coverage-lines=<threshold>
<threshold>
should be an integer between 0 and 100. If an invalid value is provided, a TypeError
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:
$ node --experimental-test-coverage --test-coverage-lines=80 --test-coverage-branches=60 example.js
Thanks Aviv Keller for working on this.
Other Notable Changes
- [
1f2cc2fa47
] - (SEMVER-MINOR) src,lib: add performance.uvMetricsInfo (Rafael Gonzaga) #54413 - [
1e01bdc0d0
] - (SEMVER-MINOR) net: exclude ipv6 loopback addresses from server.listen (Giovanni Bucci) #54264 - [
97fa075c2e
] - (SEMVER-MINOR) test_runner: support running tests in process (Colin Ihrig) #53927 - [
858b583c88
] - (SEMVER-MINOR) test_runner: defer inheriting hooks until run() (Colin Ihrig) #53927
Commits
- [
94985df9d6
] - benchmark: fix benchmark for file path and URL conversion (Early Riser) #54190 - [
ac178b094b
] - buffer: truncate instead of throw when writing beyond buffer (Robert Nagy) #54524 - [
afd8c1eb4f
] - buffer: allow invalid encoding in from (Robert Nagy) #54533 - [
6f0cf35cd3
] - build: reclaim disk space on macOS GHA runner (jakecastelli) #54658 - [
467ac3aec4
] - build: don't clean obj.target directory if it doesn't exist (Joyee Cheung) #54337 - [
71fdf961df
] - build: update required python version to 3.8 (Aviv Keller) #54358 - [
73604cf1c5
] - deps: update nghttp2 to 1.63.0 (Node.js GitHub Bot) #54589 - [
b00c087285
] - deps: V8: cherry-picke74d0f4
(Joyee Cheung) #54279 - [
33a6b3c7a9
] - deps: backport ICU-22787 to fix ClangCL on Windows (Stefan Stojanovic) #54502 - [
fe56949cbb
] - deps: update c-ares to v1.33.1 (Node.js GitHub Bot) #54549 - [
290f6ce619
] - deps: update amaro to 0.1.8 (Node.js GitHub Bot) #54520 - [
b5843568b4
] - deps: update amaro to 0.1.7 (Node.js GitHub Bot) #54473 - [
9c709209b4
] - deps: update undici to 6.19.8 (Node.js GitHub Bot) #54456 - [
a5ce24181b
] - deps: sqlite: fix Windows compilation (Colin Ihrig) #54433 - [
3caf29ea88
] - deps: update sqlite to 3.46.1 (Node.js GitHub Bot) #54433 - [
68758d4b08
] - doc: add support me link for anonrig (Yagiz Nizipli) #54611 - [
f5c5529266
] - doc: add alert on REPL from TCP socket (Rafael Gonzaga) #54594 - [
bf824483cd
] - doc: fix typo in styleText description (Rafael Gonzaga) #54616 - [
825d933fd4
] - doc: add getHeapStatistics() property descriptions (Benji Marinacci) #54584 - [
80e5150160
] - doc: fix module compile cache description (沈鸿飞) #54625 - [
7fd033fe56
] - doc: run license-builder (github-actions[bot]) #54562 - [
c499913732
] - doc: fix information about including coverage files (Aviv Keller) #54527 - [
c3dc83befc
] - doc: support collaborators - talk amplification (Michael Dawson) #54508 - [
fc57beaad3
] - doc: add note about shasum generation failure (Marco Ippolito) #54487 - [
1800a58f49
] - doc: update websocket flag description to reflect stable API status (Yelim Koo) #54482 - [
61affd77a7
] - doc: fix capitalization in module.md (shallow-beach) #54488 - [
25419915c7
] - doc: add esm examples to node:https (Alfredo González) #54399 - [
83b5efeb54
] - doc: reserve ABI 130 for Electron 33 (Calvin) #54383 - [
6ccbd32ae8
] - doc, meta: add missing,
toBUILDING.md
(Aviv Keller) #54409 - [
fc08a9b0cd
] - fs: refactor handleTimestampsAndMode to remove redundant call (HEESEUNG) #54369 - [
4a664b5fcb
] - lib: respect terminal capabilities on styleText (Rafael Gonzaga) #54389 - [
a9ce2b6a28
] - lib: fix emit warning for debuglog.time when disabled (Vinicius Lourenço) #54275 - [
b5a23c9783
] - meta: remind users to use a supported version in bug reports (Aviv Keller) #54481 - [
0d7171d8e9
] - meta: add more labels to dep-updaters (Aviv Keller) #54454 - [
c4996c189f
] - meta: run coverage-windows whenvcbuild.bat
updated (Aviv Keller) #54412 - [
3cf645768e
] - module: use amaro default transform values (Marco Ippolito) #54517 - [
336496b90e
] - module: add sourceURL magic comment hinting generated source (Chengzhong Wu) #54402 - [
04f83b50ad
] - Revert "net: validate host name for server listen" (jakecastelli) #54554 - [
1e01bdc0d0
] - (SEMVER-MINOR) net: exclude ipv6 loopback addresses from server.listen (Giovanni Bucci) #54264 - [
3cd10a3f40
] - node-api: remove RefBase and CallbackWrapper (Vladimir Morozov) #53590 - [
72c554abab
] - sqlite: return results with null prototype (Michaël Zasso) #54350 - [
e071651bb2
] - src: disable fast methods forbuffer.write
(Michaël Zasso) #54565 - [
f8cbbc685a
] - src: use v8::Isolate::GetDefaultLocale() to compute navigator.language (Joyee Cheung) #54279 - [
4baf4637eb
] - (SEMVER-MINOR) src: add JS APIs for compile cache and NODE_DISABLE_COMPILE_CACHE (Joyee Cheung) #54501 - [
101e299656
] - src: move more crypto_dh.cc code to ncrypto (James M Snell) #54459 - [
e6e1f4e8bd
] - src: remove redundant AESCipherMode (Tobias Nießen) #54438 - [
1ff3f63f5e
] - src: handle errors correctly inpermission.cc
(Michaël Zasso) #54541 - [
4938188682
] - src: returnv8::Object
from error constructors (Michaël Zasso) #54541 - [
4578e9485b
] - src: use better return types in KVStore (Michaël Zasso) #54539 - [
7d9e994791
] - src: change SetEncodedValue to return Maybe<void> (Tobias Nießen) #54443 - [
eef303028f
] - src: remove cached data tag from snapshot metadata (Joyee Cheung) #54122 - [
3a74c400d5
] - src: improvebuffer.transcode
performance (Yagiz Nizipli) #54153 - [
909c5320fd
] - src: move more crypto code to ncrypto (James M Snell) #54320 - [
9ba75faf5f
] - (SEMVER-MINOR) src,lib: add performance.uvMetricsInfo (Rafael Gonzaga) #54413 - [
fffc300c6d
] - stream: change stream to use index instead offor...of
(Wiyeong Seo) #54474 - [
a4a6ef8d29
] - test: fix test-tls-client-auth test for OpenSSL32 (Michael Dawson) #54610 - [
76345a5d7c
] - test: update TLS test for OpenSSL 3.2 (Richard Lau) #54612 - [
522d5a359d
] - test: run V8 Fast API tests in release mode too (Michaël Zasso) #54570 - [
edbecf5209
] - test: increase key size for ca2-cert.pem (Michael Dawson) #54599 - [
bc976cfc93
] - test: update test-abortsignal-cloneable to use node:test (James M Snell) #54581 - [
9f1ce732a8
] - test: update test-assert-typedarray-deepequal to use node:test (James M Snell) #54585 - [
c74f2aeb92
] - test: update test-assert to use node:test (James M Snell) #54585 - [
a0be95e4cc
] - test: merge ongc and gcutil into gc.js (tannal) #54355 - [
c10aff665e
] - test: move a couple of tests over to using node:test (James M Snell) #54582 - [
dbbc790949
] - test: update test-aborted-util to use node:test (James M Snell) #54578 - [
64442fce6b
] - test: refactor test-abortcontroller to use node:test (James M Snell) #54574 - [
72345dee1c
] - test: fix embedding test for Windows (Vladimir Morozov) #53659 - [
846e2b2896
] - test: refactor test_runner tests to change default reporter (Colin Ihrig) #54547 - [
b5eb24c86a
] - test: force spec reporter in test-runner-watch-mode.mjs (Colin Ihrig) #54538 - [
66ae9f4c0a
] - test: use valid hostnames (Luigi Pinca) #54556 - [
02d664b75f
] - test: fix improper path to URL conversion (Antoine du Hamel) #54509 - [
8a4f8a9eff
] - test: add tests for runner coverage with different stdout column widths (Pietro Marchini) #54494 - [
b0ed8dbb2f
] - test: prevent V8 from writing into the system's tmpdir (Michaël Zasso) #54395 - [
5ee234a5a6
] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #54593 - [
a4bebf8559
] - test_runner: ensure test watcher picks up new test files (Pietro Marchini) #54225 - [
d4310fe9c1
] - (SEMVER-MINOR) test_runner: add support for coverage thresholds (Aviv Keller) #54429 - [
0cf78aa24b
] - test_runner: refactormock_loader
(Antoine du Hamel) #54223 - [
97fa075c2e
] - (SEMVER-MINOR) test_runner: support running tests in process (Colin Ihrig) #53927 - [
858b583c88
] - (SEMVER-MINOR) test_runner: defer inheriting hooks until run() (Colin Ihrig) #53927 - [
45b0250692
] - test_runner: account for newline in source maps (Colin Ihrig) #54444 - [
1c29e74d30
] - test_runner: makemock.module
'sspecifier
consistent withimport()
(Antoine du Hamel) #54416 - [
cbe30a02a3
] - test_runner: finish build phase before running tests (Colin Ihrig) #54423 - [
8a4b26f00c
] - timers: fix validation (Paolo Insogna) #54404 - [
38798140c4
] - tools: remove unused python files (Aviv Keller) #53928 - [
da6c61def8
] - tools: add swc license (Marco Ippolito) #54462 - [
16d4c437e1
] - typings: provide internal types for wasi bindings (Andrew Moon) #54119 - [
fe5666f006
] - vm: return all own names and symbols in property enumerator interceptor (Chengzhong Wu) #54522 - [
db80eac496
] - (SEMVER-MINOR) vm: introduce vanilla contexts via vm.constants.DONT_CONTEXTIFY (Joyee Cheung) #54394 - [
8ffdd1e2b2
] - zlib: simplify validators (Yagiz Nizipli) #54442
v22.7.0
: 2024-08-22, Version 22.7.0 (Current), @RafaelGSS
Experimental transform types support
With the new flag --experimental-transform-types
it is possible to enable the
transformation of TypeScript-only syntax into JavaScript code.
This feature allows Node.js to support TypeScript syntax such as Enum
and namespace
.
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 now
enabled by default. Use --no-experimental-detect-module
to disable it if
needed.
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 parent
package.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"
to
the 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 MR's with significant
improvements to the Buffer.copy
and Buffer.write
methods. These are used throughout
the 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
- [
911de7dd6d
] - (SEMVER-MINOR) inspector: supportNetwork.loadingFailed
event (Kohei Ueno) #54246 - [
9ee4b16bd8
] - (SEMVER-MINOR) lib: rewrite AsyncLocalStorage without async_hooks (Stephen Belanger) #48528
Commits
- [
c6544ff5a6
] - benchmark: use assert.ok searchparams (Rafael Gonzaga) #54334 - [
51b8576897
] - benchmark: add stream.compose benchmark (jakecastelli) #54308 - [
c166036515
] - benchmark: rename count to n (Rafael Gonzaga) #54271 - [
1be0ee76ef
] - benchmark: change assert() to assert.ok() (Rafael Gonzaga) #54254 - [
4dd229f546
] - benchmark: support --help in CLI (Aviv Keller) #53358 - [
a5a320cd5b
] - benchmark: remove force option as force defaults to true (Yelim Koo) #54203 - [
db0a80a0eb
] - benchmark: use assert.ok instead of assert (Rafael Gonzaga) #54176 - [
8ba53ae7b7
] - buffer: properly apply dst offset and src length on fast path (Robert Nagy) #54391 - [
a5a60e6823
] - buffer: use fast API for writing one-byte strings (Robert Nagy) #54311 - [
7b641bc2bd
] - buffer: optimize byteLength for short strings (Robert Nagy) #54345 - [
28ca678f81
] - buffer: optimize byteLength for common encodings (Robert Nagy) #54342 - [
12785559be
] - buffer: optimize createFromString (Robert Nagy) #54324 - [
f7f7b0c498
] - buffer: optimize for common encodings (Robert Nagy) #54319 - [
37631f826b
] - buffer: add JSDoc to blob bytes method (Roberto Simonini) #54117 - [
ab6fae9dbf
] - buffer: faster type check (Robert Nagy) #54088 - [
9f8f26eb2f
] - buffer: use native copy impl (Robert Nagy) #54087 - [
019ebf03c1
] - buffer: use faster integer argument check (Robert Nagy) #54089 - [
c640a2f24c
] - build: always disable strict aliasing (Michaël Zasso) #54339 - [
6aa1d9e855
] - build: updateruff
to0.5.2
(Aviv Keller) #53909 - [
350e699443
] - build: supportlint-js-fix
invcbuild.bat
(Aviv Keller) #53695 - [
98fed763f7
] - build: add--without-amaro
build flag (Antoine du Hamel) #54136 - [
1ca598c5ce
] - cli: allow--test-[name/skip]-pattern
inNODE_OPTIONS
(Aviv Keller) #53001 - [
37960a67ae
] - console: use validateOneOf for colorMode validation (HEESEUNG) #54245 - [
d52f515bab
] - crypto: include NODE_EXTRA_CA_CERTS in all secure contexts by default (Eric Bickle) #44529 - [
b6a3e61353
] - deps: update amaro to 0.1.6 (Node.js GitHub Bot) #54374 - [
0d716ad3f3
] - deps: update simdutf to 5.3.4 (Node.js GitHub Bot) #54312 - [
18bfea5f33
] - deps: update zlib to 1.3.0.1-motley-71660e1 (Node.js GitHub Bot) #53464 - [
d0c23f332f
] - deps: update zlib to 1.3.0.1-motley-c2469fd (Node.js GitHub Bot) #53464 - [
e7db63972c
] - deps: update zlib to 1.3.0.1-motley-68e57e6 (Node.js GitHub Bot) #53464 - [
713ae95555
] - deps: update zlib to 1.3.0.1-motley-8b7eff8 (Node.js GitHub Bot) #53464 - [
758c9df36e
] - deps: update zlib to 1.3.0.1-motley-e432200 (Node.js GitHub Bot) #53464 - [
fe7e6c9563
] - deps: update zlib to 1.3.0.1-motley-887bb57 (Node.js GitHub Bot) #53464 - [
35722b7bca
] - deps: update simdjson to 3.10.0 (Node.js GitHub Bot) #54197 - [
a2a41557db
] - deps: fix GN build warning in ncrypto (Cheng) #54222 - [
869da204d7
] - deps: update c-ares to v1.33.0 (Node.js GitHub Bot) #54198 - [
e0d503a715
] - deps: update nbytes to 0.1.1 (Node.js GitHub Bot) #54277 - [
b0c768dae1
] - deps: update undici to 6.19.7 (Node.js GitHub Bot) #54286 - [
ef9a950cb9
] - deps: update acorn to 8.12.1 (Node.js GitHub Bot) #53465 - [
1597a1139a
] - deps: update undici to 6.19.5 (Node.js GitHub Bot) #54076 - [
103e4db3e0
] - deps: update simdutf to 5.3.1 (Node.js GitHub Bot) #54196 - [
9f115ba9e9
] - doc: fix error description of the max header size (Egawa Ryo) #54125 - [
f967ab3810
] - doc: add git node security --cleanup (Rafael Gonzaga) #54381 - [
8883c01afa
] - doc: add note on weakness of permission model (Tobias Nießen) #54268 - [
824bd58bc5
] - doc: add versions when--watch-preserve-output
was added (Théo LUDWIG) #54328 - [
33795cfd49
] - doc: replace v19 mention in Current release (Rafael Gonzaga) #54361 - [
aa6e770ea5
] - doc: correct peformance entry types (Jason Zhang) #54263 - [
4b099ce1bd
] - doc: fix typo in method name in the sea doc (Eliyah Sundström) #54027 - [
8a8d1d2281
] - doc: mark process.nextTick legacy (Marco Ippolito) #51280 - [
6f4b5d998e
] - doc: add esm examples to node:http2 (Alfredo González) #54292 - [
1535469c12
] - doc: explicitly mention node:fs module restriction (Rafael Gonzaga) #54269 - [
26c37f7910
] - doc: remove module-based permission doc (Rafael Gonzaga) #54266 - [
971b9f31f5
] - doc: updatebuffer.constants.MAX_LENGTH
size (Samuli Asmala) #54207 - [
3106149965
] - doc: warn for windows build bug (Jason Zhang) #54217 - [
55f8ac3e89
] - doc: make some parameters optional intracingChannel.traceCallback
(Deokjin Kim) #54068 - [
e3e2f22cab
] - doc: add esm examples to node:dns (Alfredo González) #54172 - [
0429b1eb9d
] - doc: add KevinEady as a triager (Chengzhong Wu) #54179 - [
4bfa7d8e54
] - doc: add esm examples to node:console (Alfredo González) #54108 - [
2f5309fc22
] - doc: fix sea assets example (Sadzurami) #54192 - [
88aef5a39d
] - doc: add links to security steward companies (Aviv Keller) #52981 - [
5175903c23
] - doc: moveonread
option fromsocket.connect()
tonew net.socket()
(sendoru) #54194 - [
144637e845
] - doc: move release key for Myles Borins (Richard Lau) #54059 - [
358fdacec6
] - doc: refresh instructions for building node from source (Liran Tal) #53768 - [
11fdaa6ad2
] - doc: add documentation for blob.bytes() method (jaexxin) #54114 - [
db3b0df42c
] - doc: add missing new lines to custom test reporter examples (Eddie Abbondanzio) #54152 - [
1cafefd2cf
] - doc: fix worker threadId/destination typo (Thomas Hunter II) #53933 - [
7772b46038
] - doc: update list of Triagers on theREADME.md
(Antoine du Hamel) #54138 - [
af99ba3dc9
] - doc: remove unused imports from worker_threads.md (Yelim Koo) #54147 - [
826edc4341
] - doc: expand troubleshooting section (Liran Tal) #53808 - [
923195b624
] - doc: clarifyuseCodeCache
setting for cross-platform SEA generation (Yelim Koo) #53994 - [
7c305a4900
] - doc, meta: replace command with link to keys (Aviv Keller) #53745 - [
6f986e0ee6
] - doc, test: simplify test README table (Aviv Keller) #53971 - [
112228c15a
] - fs: remove unnecessary option argument validation (Jonas) #53958 - [
911de7dd6d
] - (SEMVER-MINOR) inspector: supportNetwork.loadingFailed
event (Kohei Ueno) #54246 - [
1e825915d5
] - inspector: provide detailed info to fix DevTools frontend errors (Kohei Ueno) #54156 - [
417120a3a3
] - lib: replace spread operator with primordials function (YoonSoo_Shin) #54053 - [
09f411e6f6
] - lib: avoid for of loop and remove unnecessary variable in zlib (YoonSoo_Shin) #54258 - [
b8970570b0
] - lib: improve async_context_frame structure (Stephen Belanger) #54239 - [
783322fa16
] - lib: fix unhandled errors in webstream adapters (Fedor Indutny) #54206 - [
425b9562b9
] - lib: fix typos in comments within internal/streams (YoonSoo_Shin) #54093 - [
9ee4b16bd8
] - (SEMVER-MINOR) lib: rewrite AsyncLocalStorage without async_hooks (Stephen Belanger) #48528 - [
8c9a4ae12b
] - lib,permission: support Buffer to permission.has (Rafael Gonzaga) #54104 - [
c8e358c96c
] - meta: add test-permission-* CODEOWNERS (Rafael Gonzaga) #54267 - [
581c155cf8
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #54210 - [
3f0d7344e3
] - meta: add module label for the lib/internal/modules folder (Aviv Keller) #52858 - [
0157ec6bbd
] - meta: bumpactions/upload-artifact
from 4.3.3 to 4.3.4 (dependabot[bot]) #54166 - [
7fa95d2360
] - meta: bumpactions/download-artifact
from 4.1.7 to 4.1.8 (dependabot[bot]) #54167 - [
acc5b9a0c5
] - meta: bump actions/setup-python from 5.1.0 to 5.1.1 (dependabot[bot]) #54165 - [
dede30a8d0
] - meta: bumpstep-security/harden-runner
from 2.8.1 to 2.9.0 (dependabot[bot]) #54169 - [
b733854eac
] - meta: bumpactions/setup-node
from 4.0.2 to 4.0.3 (dependabot[bot]) #54170 - [
6a9f168cc6
] - meta: bumpgithub/codeql-action
from 3.25.11 to 3.25.15 (dependabot[bot]) #54168 - [
9bbd85e4fe
] - meta: bumpossf/scorecard-action
from 2.3.3 to 2.4.0 (dependabot[bot]) #54171 - [
33633eebd9
] - meta: add typescript team to codeowners (Marco Ippolito) #54101 - [
240d9296c1
] - (SEMVER-MINOR) module: add --experimental-transform-types flag (Marco Ippolito) #54283 - [
66dcb2a571
] - (SEMVER-MINOR) module: unflag detect-module (Geoffrey Booth) #53619 - [
100225fbe1
] - module: do not attempt to strip type when there's no source (Antoine du Hamel) #54287 - [
1ba2000703
] - module: refactor ts parser loading (Marco Ippolito) #54243 - [
13cc480030
] - module: remove outdated comment (Michaël Zasso) #54118 - [
e676d98435
] - module,win: fix long path resolve (Hüseyin Açacak) #53294 - [
9aec536083
] - path: changeposix.join
to use array (Wiyeong Seo) #54331 - [
8a770cf5c9
] - path: fix relative on Windows (Hüseyin Açacak) #53991 - [
267cd7f361
] - path: use the correct name invalidateString
(Benjamin Pasero) #53669 - [
31adeea855
] - sea: don't set code cache flags when snapshot is used (Joyee Cheung) #54120 - [
7f1bf1ce24
] - sqlite: split up large test file (Colin Ihrig) #54014 - [
94e2ea6f5c
] - sqlite: ensure statement finalization on db close (Colin Ihrig) #54014 - [
e077ff1f38
] - src: update compile cache storage structure (Joyee Cheung) #54291 - [
4e4d1def7e
] - src: refactor http parser binding initialization (Joyee Cheung) #54276 - [
409d9eb09b
] - src: shift even moar x509 to ncrypto (James M Snell) #54340 - [
f87aa27274
] - src: don't match after--
inDotenv::GetPathFromArgs
(Aviv Keller) #54237 - [
b6927dd981
] - src: move some X509Certificate stuff to ncrypto (James M Snell) #54241 - [
a394219fa5
] - src: skip inspector wait in internal workers (Chengzhong Wu) #54219 - [
8daeccfe92
] - src: shift more crypto impl details to ncrypto (James M Snell) #54028 - [
e619133ac9
] - src: move spkac methods to ncrypto (James M Snell) #53985 - [
b52c2fff75
] - src: account for OpenSSL unexpected version (Shelley Vohr) #54038 - [
0b16af1689
] - src,test: trackURL.canParse
fast API calls (Michaël Zasso) #54356 - [
2be78b03c3
] - src,test: ensure that V8 fast APIs are called (Michaël Zasso) #54317 - [
9297d29cdb
] - stream: make checking pendingcb on WritableStream backward compatible (jakecastelli) #54142 - [
2a6a12e493
] - stream: throw TypeError when criteria fulfilled in getIterator (jakecastelli) #53825 - [
7f68cc0f7f
] - test: make snapshot comparison more flexible (Shelley Vohr) #54375 - [
3df7938832
] - test: make sure current run result is pushed and reset (jakecastelli) #54332 - [
3e25be7b28
] - test: use relative paths in test-cli-permission tests (sendoru) #54188 - [
f49f1bb3e9
] - test: unmark test-sqlite as flaky (Colin Ihrig) #54014 - [
2f68a74702
] - test: fix timeout not being cleared (Isaac-yz-Liu) #54242 - [
f5cfa4454e
] - test: refactortest-runner-module-mocking
(Antoine du Hamel) #54233 - [
b85b13b418
] - test: use assert.{s,deepS}trictEqual() (Luigi Pinca) #54208 - [
6bcbfcd7bc
] - test: add subtests to test-node-run (sungpaks) #54204 - [
dafe97548f
] - test: set test-structuredclone-jstransferable non-flaky (Stefan Stojanovic) #54115 - [
be61793db5
] - test: update wpt test for streams (devstone) #54129 - [
670c796449
] - test: fix typo in test (Sonny) #54137 - [
1a15f3f613
] - test: add initial pull delay and prototype pollution prevention tests (Sonny) #54061 - [
5dbff81b71
] - test: add coverage for webstorage quota (jakecastelli) #53964 - [
141e9fe7cc
] - test_runner: use validateStringArray fortimers.enable()
(Deokjin Kim) #49534 - [
e70711e190
] - test_runner: report failures in filtered suites (Colin Ihrig) #54387 - [
7766c1dc9b
] - test_runner: remove parseCommandLine() from test.js (Colin Ihrig) #54353 - [
961cbf0be0
] - test_runner: refactor hook creation (Colin Ihrig) #54353 - [
69c78ca2f5
] - test_runner: return setup() from parseCommandLine() (Colin Ihrig) #54353 - [
ed1ede8c26
] - test_runner: pass global options to createTestTree() (Colin Ihrig) #54353 - [
1e88045a69
] - test_runner: pass harness object as option to root test (Colin Ihrig) #54353 - [
e3378f0679
] - test_runner: use run() argument names in parseCommandLine() (Colin Ihrig) #54353 - [
676bbd5c09
] - test_runner: fix delete test file cause dependency file not watched (jakecastelli) #53533 - [
fe793a6103
] - test_runner: do not expose internal loader (Antoine du Hamel) #54106 - [
7fad771bbf
] - test_runner: fix erroneous diagnostic warning when only: false (Pietro Marchini) #54116 - [
dc465736fb
] - test_runner: make mock_loader not confuse CJS and ESM resolution (Sung Ye In) #53846 - [
5a1afb2139
] - test_runner: remove outdated comment (Colin Ihrig) #54146 - [
20a01fcc39
] - test_runner: run after hooks even if test is aborted (Colin Ihrig) #54151 - [
df428adb6c
] - tools: remove header from c-ares license (Aviv Keller) #54335 - [
b659fc0f2b
] - tools: add find pyenv path on windows (Marco Ippolito) #54314 - [
b93c6d9f38
] - tools: make undici updater build wasm from src (Michael Dawson) #54128 - [
3835131559
] - tools: add workflow to ensureREADME
lists are in sync with gh teams (Antoine du Hamel) #53901 - [
e218b7ca8a
] - tools: add strip-types to label system (Marco Ippolito) #54185 - [
8b35f0e601
] - tools: update eslint to 9.8.0 (Node.js GitHub Bot) #54073 - [
d83421fbe5
] - tty: initialize winSize array with values (Michaël Zasso) #54281 - [
a4768374f2
] - typings: add util.styleText type definition (Rafael Gonzaga) #54252 - [
a4aecd2755
] - typings: add missing binding functionwriteFileUtf8()
(Jungku Lee) #54110 - [
0bed600df9
] - url: modify pathToFileURL to handle extended UNC path (Early Riser) #54262 - [
037672f15d
] - url: improve resolveObject with ObjectAssign (Early Riser) #54092 - [
4d8b53e475
] - watch: reload changes in contents of --env-file (Marek Piechut) #54109
v22.6.0
: 2024-08-06, Version 22.6.0 (Current), @RafaelGSS
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:
- Supports only inline type annotations, not features like
enums
ornamespaces
. - Requires explicit file extensions in import and require statements.
- Enforces the use of the type keyword for type imports to avoid runtime errors.
- Disabled for TypeScript in node_modules by default.
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:
$ node --inspect-wait --experimental-network-inspection index.js
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.
- Network inspection is limited to the
http
andhttps
modules only. - The Network tab in Chrome DevTools will not be available until the feature request on the Chrome DevTools side is addressed.
Thanks Kohei Ueno for working on this.
Other Notable Changes
- [
15a94e67b1
] - lib,src: drop --experimental-network-imports (Rafael Gonzaga) #53822 - [
68e444d2d8
] - (SEMVER-MINOR) http: add diagnostics channelhttp.client.request.error
(Kohei Ueno) #54054 - [
2d982d3dee
] - (SEMVER-MINOR) deps: V8: backport7857eb3
(Stephen Belanger) #53997 - [
15816bd0dd
] - (SEMVER-MINOR) stream: expose DuplexPair API (Austin Wright) #34111 - [
893c864542
] - (SEMVER-MINOR) test_runner: fix support watch with run(), add globPatterns option (Matteo Collina) #53866 - [
048d421ad1
] - meta: add jake to collaborators (jakecastelli) #54004 - [
6ad6e01bf3
] - (SEMVER-MINOR) test_runner: refactor snapshots to get file from context (Colin Ihrig) #53853 - [
698e44f8e7
] - (SEMVER-MINOR) test_runner: add context.filePath (Colin Ihrig) #53853
Commits
- [
063f46dc2a
] - assert: use isError instead of instanceof in innerOk (Pietro Marchini) #53980 - [
10bea42f81
] - build: update gcovr to 7.2 and codecov config (Benjamin E. Coe) #54019 - [
7c417c6cf4
] - build: avoid compiling with VS v17.10 (Hüseyin Açacak) #53863 - [
ee97c045b4
] - build: ensure v8_pointer_compression_sandbox is enabled on 64bit (Shelley Vohr) #53884 - [
bfbed0afd5
] - build: fix conflict gyp configs (Chengzhong Wu) #53605 - [
0f1fe63e32
] - build: trigger coverage ci when updating codecov (Yagiz Nizipli) #53929 - [
ad62b945f0
] - build: update codecov coverage build count (Yagiz Nizipli) #53929 - [
3c40868fd3
] - build: disable test-asan workflow (Michaël Zasso) #53844 - [
2a62d6ca57
] - build, tools: drop leading/
fromr2dir
(Richard Lau) #53951 - [
9c7b009f47
] - build,tools: simplify upload of shasum signatures (Michaël Zasso) #53892 - [
057bd44f9f
] - child_process: fix incomplete prototype pollution hardening (Liran Tal) #53781 - [
66f7c595c7
] - cli: document--inspect
port0
behavior (Aviv Keller) #53782 - [
fad3e74b47
] - console: fix issues with frozen intrinsics (Vinicius Lourenço) #54070 - [
e685ecd7ae
] - deps: update corepack to 0.29.3 (Node.js GitHub Bot) #54072 - [
e5f7250e6d
] - deps: update amaro to 0.0.6 (Node.js GitHub Bot) #54199 - [
2c1e9082e8
] - deps: update amaro to 0.0.5 (Node.js GitHub Bot) #54199 - [
2d982d3dee
] - (SEMVER-MINOR) deps: V8: backport7857eb3
(Stephen Belanger) #53997 - [
1061898462
] - deps: update c-ares to v1.32.3 (Node.js GitHub Bot) #54020 - [
f4a7ac5e18
] - deps: V8: cherry-pick35888fe
(Joyee Cheung) #53728 - [
1176310226
] - deps: add gn build files for ncrypto (Cheng) #53940 - [
7a1d5a4f84
] - deps: update c-ares to v1.32.2 (Node.js GitHub Bot) #53865 - [
66f6a2aec9
] - deps: V8: cherry-pick9812cb4
(Michaël Zasso) #53966 - [
8e66a18ef0
] - deps: start working on ncrypto dep (James M Snell) #53803 - [
c114082b12
] - deps: fix include_dirs of nbytes (Cheng) #53862 - [
b7315281be
] - doc: move numCPUs require to top of file in cluster CJS example (Alfredo González) #53932 - [
8e7c30c2a4
] - doc: update security-release process to automated one (Rafael Gonzaga) #53877 - [
52a4206be2
] - doc: fix typo in technical-priorities.md (YoonSoo_Shin) #54094 - [
30e18a04a3
] - doc: fix typo in diagnostic tooling support tiers document (Taejin Kim) #54058 - [
58aebfd31e
] - doc: move GeoffreyBooth to TSC regular member (Geoffrey Booth) #54047 - [
c1634c7213
] - doc: correct typescript stdin support (Marco Ippolito) #54036 - [
64812d5c22
] - doc: fix typo in recognizing-contributors (Marco Ippolito) #53990 - [
6b35994b6f
] - doc: fix documentation for--run
(Aviv Keller) #53976 - [
04d203a233
] - doc: update boxstarter README (Aviv Keller) #53785 - [
86fa46db1c
] - doc: add info about prefix-only modules tomodule.builtinModules
(Grigory) #53954 - [
defdc3c568
] - doc: removescroll-behavior: smooth;
(Cloyd Lau) #53942 - [
e907236dd9
] - doc: move --test-coverage-{ex,in}clude to proper location (Colin Ihrig) #53926 - [
8bf9960b98
] - doc: add--experimental-sqlite
note (Aviv Keller) #53907 - [
d7615004d8
] - doc: updateapi_assets
README for new files (Aviv Keller) #53676 - [
63cf715aa0
] - doc: add MattiasBuelens to collaborators (Mattias Buelens) #53895 - [
5b8dd78112
] - doc: fix release date for 22.5.0 (Antoine du Hamel) #53889 - [
dd2c0f349a
] - doc: fix casing of GitHub handle for two collaborators (Antoine du Hamel) #53857 - [
b47c2308e1
] - doc: update release-post nodejs.org script (Rafael Gonzaga) #53762 - [
88539527d5
] - doc, test: tracing channel hasSubscribers getter (Thomas Hunter II) #52908 - [
44a08f75b0
] - doc,tools: enforce use ofnode:
prefix (Antoine du Hamel) #53950 - [
87bab76df2
] - doc,tty: add documentation for ReadStream and WriteStream (jakecastelli) #53567 - [
dcca9ba560
] - esm: refactorget_format
(Antoine du Hamel) #53872 - [
5e03c17aae
] - fs: optimizefs.cpSync
js calls (Yagiz Nizipli) #53614 - [
e0054ee0a7
] - fs: ensure consistency for mkdtemp in both fs and fs/promises (YieldRay) #53776 - [
8086337ea9
] - fs: remove unnecessary option argument validation (Jonas) #53861 - [
b377b93a3f
] - fs: correctly pass dirent to excludewithFileTypes
(RedYetiDev) #53823 - [
68e444d2d8
] - (SEMVER-MINOR) http: add diagnostics channelhttp.client.request.error
(Kohei Ueno) #54054 - [
de1fbc292f
] - (SEMVER-MINOR) inspector: add initial support for network inspection (Kohei Ueno) #53593 - [
744df0be24
] - lib: support dynamic trace events on debugWithTimer (Vinicius Lourenço) #53913 - [
546dab29c1
] - lib: optimize copyError with ObjectAssign in primordials (HEESEUNG) #53999 - [
494df9835a
] - lib: improve cluster/primary code (Ehsan Khakifirooz) #53756 - [
03f353293b
] - lib: improve error message when index not found on cjs (Vinicius Lourenço) #53859 - [
d8375d6236
] - lib: decorate async stack trace in source maps (Chengzhong Wu) #53860 - [
15a94e67b1
] - lib,src: drop --experimental-network-imports (Rafael Gonzaga) #53822 - [
a6eedc401d
] - meta: addsqlite
to js subsystems (Alex Yang) #53911 - [
21098856de
] - meta: move tsc member to emeritus (Michael Dawson) #54029 - [
048d421ad1
] - meta: add jake to collaborators (jakecastelli) #54004 - [
20a8c96c41
] - meta: remove license for hljs (Aviv Keller) #53970 - [
2fd4ac4859
] - meta: make more bug-report information required (Aviv Keller) #53718 - [
b312ec0b0c
] - meta: reword linter messages (Aviv Keller) #53949 - [
d2526126a9
] - meta: store actions secrets in environment (Aviv Keller) #53930 - [
1688f00dce
] - meta: move anonrig to tsc voting members (Yagiz Nizipli) #53888 - [
c20e8418de
] - module: fix strip-types interaction with detect-module (Marco Ippolito) #54164 - [
ab1f0b415f
] - module: fix extensionless typescript in cjs loader (Marco Ippolito) #54062 - [
92439fc160
] - (SEMVER-MINOR) module: add --experimental-strip-types (Marco Ippolito) #53725 - [
f755d31bec
] - node-api: add property keys benchmark (Chengzhong Wu) #54012 - [
7382eefae5
] - node-api: rename nogc to basic (Gabriel Schulhof) #53830 - [
2c4470625b
] - process: unify experimental warning messages (Aviv Keller) #53704 - [
98a7ad2e0d
] - src: expose LookupAndCompile with parameters (Shelley Vohr) #53886 - [
dd3c66be0a
] - src: simplify AESCipherTraits::AdditionalConfig (Tobias Nießen) #53890 - [
ee82f224ff
] - src: remove redundant RsaPointer (use RSAPointer) (James M Snell) #54003 - [
2d77bd2929
] - src: fix -Wshadow warning (Shelley Vohr) #53885 - [
bd4a9ffe8c
] - src: start using ncrypto for CSPRNG calls (James M Snell) #53984 - [
3fdcf7a47d
] - src: returnundefined
if no rows are returned in SQLite (Deokjin Kim) #53981 - [
ca6854443d
] - src: fix slice of slice of file-backed Blob (Josh Lee) #53972 - [
c457f9ed5a
] - src: cache invariant code motion (Rafael Gonzaga) #53879 - [
fd0da6c2cf
] - src: avoid strcmp in ImportJWKAsymmetricKey (Tobias Nießen) #53813 - [
fbf74bcf99
] - src: switch from ToLocalChecked to ToLocal in node_webstorage (James M Snell) #53959 - [
04bb6778e5
] - src: moveToNamespacedPath
call of webstorage (Yagiz Nizipli) #53875 - [
9ffaf763e9
] - src: use Maybe<void> in SecureContext (Tobias Nießen) #53883 - [
a94c3ae06f
] - src: replace ToLocalChecked uses with ToLocal in node-file (James M Snell) #53869 - [
55461be05f
] - src: refactor webstorage implementation (Yagiz Nizipli) #53876 - [
c53cf449a6
] - src: fix env-file flag to ignore spaces before quotes (Mohit Malhotra) #53786 - [
bac3a485f6
] - src: fix potential segmentation fault in SQLite (Tobias Nießen) #53850 - [
df5083e5f9
] - src,lib: expose getCategoryEnabledBuffer to use on node.http (Vinicius Lourenço) #53602 - [
8664b9ad60
] - src,test: disallow unsafe integer coercion in SQLite (Tobias Nießen) #53851 - [
15816bd0dd
] - (SEMVER-MINOR) stream: expose DuplexPair API (Austin Wright) #34111 - [
718f6bc78c
] - test: do not swallow uncaughtException errors in exit code tests (Meghan Denny) #54039 - [
c6656c9251
] - test: move shared module totest/common
(Rich Trott) #54042 - [
e471e32d46
] - test: skip sea tests with more accurate available disk space estimation (Chengzhong Wu) #53996 - [
61971ec929
] - test: remove unnecessary console log (KAYYY) #53812 - [
1344bd2d6f
] - test: add comments and rename test for timer robustness (Rich Trott) #54008 - [
da3573409c
] - test: add test for one arg timers to increase coverage (Carlos Espa) #54007 - [
fc67abd97e
] - test: mark 'test/parallel/test-sqlite.js' as flaky (Colin Ihrig) #54031 - [
aa0ac3b57c
] - test: mark test-pipe-file-to-http as flaky (jakecastelli) #53751 - [
52bc8ec360
] - test: compare paths on Windows without considering case (Early Riser) #53993 - [
7e8a609579
] - test: skip sea tests in large debug builds (Chengzhong Wu) #53918 - [
30a94ca0c4
] - test: skip --title check on IBM i (Abdirahim Musse) #53952 - [
5cea7ed706
] - test: reduce flakiness oftest-assert-esm-cjs-message-verify
(Antoine du Hamel) #53967 - [
58cb0dd8a6
] - test: usePYTHON
executable from env inassertSnapshot
(Antoine du Hamel) #53938 - [
c247582591
] - test: deflake test-blob-file-backed (Luigi Pinca) #53920 - [
3999021653
] - test_runner: switched to internal readline interface (Emil Tayeb) #54000 - [
3fb97a90ee
] - test_runner: remove redundant bootstrap boolean (Colin Ihrig) #54013 - [
edd80e2bdc
] - test_runner: do not throw on mocked clearTimeout() (Aksinya Bykova) #54005 - [
893c864542
] - (SEMVER-MINOR) test_runner: fix support watch with run(), add globPatterns option (Matteo Collina) #53866 - [
4887213f2e
] - test_runner: added colors to dot reporter (Giovanni) #53450 - [
c4848c53e6
] - test_runner: cleanup global event listeners after run (Eddie Abbondanzio) #53878 - [
876e7b3226
] - test_runner: refactor coverage to pass in config options (Colin Ihrig) #53931 - [
f45edb4b5e
] - test_runner: refactor and simplify internals (Colin Ihrig) #53921 - [
6ad6e01bf3
] - (SEMVER-MINOR) test_runner: refactor snapshots to get file from context (Colin Ihrig) #53853 - [
698e44f8e7
] - (SEMVER-MINOR) test_runner: add context.filePath (Colin Ihrig) #53853 - [
97da7ca11b
] - test_runner: consolidate option parsing (Colin Ihrig) #53849 - [
43afcbf9dd
] - tools: fixSLACK_TITLE
in invalid commit workflow (Antoine du Hamel) #53912 - [
eed0963391
] - typings: apply lint (1ilsang) #54065 - [
e8ea49b256
] - typings: fix typo on quic onSessionDatagram (1ilsang) #54064
v22.5.1
: 2024-07-19, Version 22.5.1 (Current), @richardlau
Notable Changes
This release fixes a regression introduced in Node.js 22.5.0. The problem is known to display the following symptoms:
- Crash with
FATAL ERROR: v8::Object::GetCreationContextChecked No creation context available
#53902 - npm errors with
npm error Exit handler never called!
npm/cli#7657 - yarn hangs or outputs
Usage Error: Couldn't find the node_modules state file - running an install might help (findPackageLocation)
yarnpkg/berry#6398
Commits
- [
e2deeedc6e
] - Revert "fs: add v8 fast api to closeSync" (Aviv Keller) #53904
v22.5.0
: 2024-07-17, Version 22.5.0 (Current), @RafaelGSS prepared by @aduh95
Notable Changes
- [
1367c5558e
] - (SEMVER-MINOR) http: expose websockets (Natalia Venditto) #53721 - [
b31394920d
] - (SEMVER-MINOR) lib: addnode:sqlite
module (Colin Ihrig) #53752 - [
aa7df9551d
] - module: add__esModule
torequire()
'd ESM (Joyee Cheung) #52166 - [
8743c4d65a
] - (SEMVER-MINOR) path: addmatchesGlob
method (Aviv Keller) #52881 - [
77936c3d24
] - (SEMVER-MINOR) process: port on-exit-leak-free to core (Vinicius Lourenço) #53239 - [
82d88a83f8
] - (SEMVER-MINOR) stream: pipeline wait for close before calling the callback (jakecastelli) #53462 - [
3a0fcbb17a
] - test_runner: support glob matching coverage files (Aviv Keller) #53553 - [
22ca334090
] - (SEMVER-MINOR) worker: addpostMessageToThread
(Paolo Insogna) #53682
Commits
- [
eb4e370933
] - benchmark: add require-esm benchmark (Joyee Cheung) #52166 - [
4d4a8338db
] - benchmark: add cpSync benchmark (Yagiz Nizipli) #53612 - [
3d60b38afa
] - build: fix build warning of c-ares under GN build (Cheng) #53750 - [
a45c801048
] - build: fix build error in sqlite under GN build (Cheng) #53686 - [
40032eb623
] - build: add gn files for deps/nbytes (Cheng) #53685 - [
082799debb
] - build: fix mac build error of c-ares under GN (Cheng) #53687 - [
b05394ea6a
] - build: add version-specific library path for AIX (Richard Lau) #53585 - [
6237172eaf
] - cli: updatenode.1
to reflect Atom's sunset (Aviv Keller) #53734 - [
5697938cb7
] - crypto: avoid std::function (Tobias Nießen) #53683 - [
3cc01aa314
] - crypto: make deriveBits length parameter optional and nullable (Filip Skokan) #53601 - [
f82e20fdea
] - crypto: avoid taking ownership of OpenSSL objects (Tobias Nießen) #53460 - [
ad1e5610ec
] - deps: update googletest to4b21f1a
(Node.js GitHub Bot) #53842 - [
d285d610a0
] - deps: update minimatch to 10.0.1 (Node.js GitHub Bot) #53841 - [
70f5209c9f
] - deps: update corepack to 0.29.2 (Node.js GitHub Bot) #53838 - [
4930e12a45
] - deps: update simdutf to 5.3.0 (Node.js GitHub Bot) #53837 - [
d346833364
] - deps: update ada to 2.9.0 (Node.js GitHub Bot) #53748 - [
ab8abb5367
] - deps: upgrade npm to 10.8.2 (npm team) #53799 - [
1ad664905a
] - deps: update nbytes and add update script (Yagiz Nizipli) #53790 - [
a66f11e798
] - deps: update googletest to34ad51b
(Node.js GitHub Bot) #53157 - [
9bf61d6a0d
] - deps: update googletest to305e5a2
(Node.js GitHub Bot) #53157 - [
8542ace488
] - deps: V8: cherry-pick9ebca66
(Chengzhong Wu) #53755 - [
29a734c21d
] - deps: V8: cherry-picke061cf9
(Joyee Cheung) #53755 - [
c7624af44a
] - deps: update c-ares to v1.32.1 (Node.js GitHub Bot) #53753 - [
bbcec9e129
] - deps: update minimatch to 9.0.5 (Node.js GitHub Bot) #53646 - [
76032fd980
] - deps: update c-ares to v1.32.0 (Node.js GitHub Bot) #53722 - [
26386046ad
] - doc: move MylesBorins to emeritus (Myles Borins) #53760 - [
362875bda0
] - doc: add Rafael to the last security release (Rafael Gonzaga) #53769 - [
a1a5ad848d
] - doc: use mock.callCount() in examples (Sébastien Règne) #53754 - [
bb960c5471
] - doc: clarify authenticity of plaintexts in update (Tobias Nießen) #53784 - [
5dd3018eb4
] - doc: add option to have support me link (Michael Dawson) #53312 - [
0f95ad3d7d
] - doc: add OpenSSL security level to TLS docs (Afanasii Kurakin) #53647 - [
2d92ec2831
] - doc: updatescroll-padding-top
to 4rem (Cloyd Lau) #53662 - [
933359a786
] - doc: mention v8.setFlagsFromString to pm (Rafael Gonzaga) #53731 - [
e17c2618e3
] - doc: remove the last <pre> tag (Claudio W) #53741 - [
7f18a5f47a
] - doc: exclude voting and regular TSC from spotlight (Michael Dawson) #53694 - [
df3dcd1bd1
] - doc: fix releases guide for recent Git versions (Michaël Zasso) #53709 - [
50987ea833
] - doc: requirenode:process
in assert doc examples (Alfredo González) #53702 - [
fa58d01497
] - doc: add additional explanation to the wildcard section in permissions (jakecastelli) #53664 - [
28bf1e48ef
] - doc: mark NODE_MODULE_VERSION for Node.js 22.0.0 (Michaël Zasso) #53650 - [
1cc0b41f00
] - doc: include node.module_timer on available categories (Vinicius Lourenço) #53638 - [
d224e9eab5
] - doc: fix module customization hook examples (Elliot Goodrich) #53637 - [
2cf60964e6
] - doc: fix doc for correct usage with plan & TestContext (Emil Tayeb) #53615 - [
6df86ae056
] - doc: remove some news issues that are no longer (Michael Dawson) #53608 - [
42b9408f3e
] - doc: add issue for news from ambassadors (Michael Dawson) #53607 - [
2d1ff91953
] - doc: add esm example for os (Leonardo Peixoto) #53604 - [
de99d69d75
] - doc: clarify usage of coverage reporters (Eliphaz Bouye) #53523 - [
519c328dcf
] - doc: document addition testing options (Aviv Keller) #53569 - [
c6166cdfe4
] - doc: clarify that fs.exists() may return false for existing symlink (Tobias Nießen) #53566 - [
9139ab2848
] - doc: note http.closeAllConnections excludes upgraded sockets (Rob Hogan) #53560 - [
19b3718ee1
] - doc, meta: add PTAL to glossary (Aviv Keller) #53770 - [
80c1f5ce8a
] - doc, typings: events.once accepts symbol event type (René) #53542 - [
1a21e0f61e
] - esm: improvedefaultResolve
performance (Yagiz Nizipli) #53711 - [
262f2cb3b6
] - esm: remove unnecessary toNamespacedPath calls (Yagiz Nizipli) #53656 - [
e29c9453a9
] - esm: move hooks test with others (Geoffrey Booth) #53558 - [
8368555289
] - fs: add v8 fast api to closeSync (Yagiz Nizipli) #53627 - [
628a539810
] - fs: reduce throwing unnecessary errors on glob (Yagiz Nizipli) #53632 - [
076e82ca40
] - fs: moveToNamespacedPath
dir calls to c++ (Yagiz Nizipli) #53630 - [
128e514d81
] - fs: improve error performance offs.dir
(Yagiz Nizipli) #53667 - [
603c2c5c08
] - fs: fix typings (Yagiz Nizipli) #53626 - [
1367c5558e
] - (SEMVER-MINOR) http: expose websockets (Natalia Venditto) #53721 - [
7debb6c36e
] - http: remove prototype primordials (Antoine du Hamel) #53698 - [
b13aea5698
] - http, readline: replace sort with toSorted (Benjamin Gruenbaum) #53623 - [
1397f5d9f4
] - http2: remove prototype primordials (Antoine du Hamel) #53696 - [
f57d3cee2c
] - lib: make navigator not runtime-lookup process.version/arch/platform (Jordan Harband) #53765 - [
0a01abbd45
] - lib: refactorplatform
utility methods (Daniel Bayley) #53817 - [
afe7f4f819
] - lib: remove path.resolve from permissions.js (Rafael Gonzaga) #53729 - [
cbe77b30ca
] - lib: moveToNamespacedPath
call to c++ (Yagiz Nizipli) #53654 - [
0f146aac2c
] - lib: make navigator properties lazy (James M Snell) #53649 - [
0540308bd7
] - lib: add toJSON to PerformanceMeasure (theanarkh) #53603 - [
b31394920d
] - (SEMVER-MINOR) lib,src,test,doc: add node:sqlite module (Colin Ihrig) #53752 - [
1a7c2dc5ea
] - meta: remove redudant logging from dep updaters (Aviv Keller) #53783 - [
ac5d7b709d
] - meta: change email address of anonrig (Yagiz Nizipli) #53829 - [
085ec5533c
] - meta: addnode_sqlite.c
to MR label config (Aviv Keller) #53797 - [
c68d873e99
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53758 - [
5ae8ea489d
] - meta: use HTML entities in commit-queue comment (Aviv Keller) #53744 - [
ecd8fceb68
] - meta: move regular TSC member to emeritus (Michael Dawson) #53693 - [
05058f9809
] - meta: bump codecov/codecov-action from 4.4.1 to 4.5.0 (dependabot[bot]) #53675 - [
e272ffa3d6
] - meta: bump mozilla-actions/sccache-action from 0.0.4 to 0.0.5 (dependabot[bot]) #53674 - [
a39407560c
] - meta: bump github/codeql-action from 3.25.7 to 3.25.11 (dependabot[bot]) #53673 - [
e4ce92ee31
] - meta: bump actions/checkout from 4.1.6 to 4.1.7 (dependabot[bot]) #53672 - [
4cf98febe7
] - meta: bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (dependabot[bot]) #53671 - [
c28af95bf5
] - meta: bump step-security/harden-runner from 2.8.0 to 2.8.1 (dependabot[bot]) #53670 - [
dd2157bc83
] - meta: move member from TSC regular to emeriti (Michael Dawson) #53599 - [
508abfe178
] - meta: warnings bypass deprecation cycle (Benjamin Gruenbaum) #53513 - [
3c5ec839e3
] - meta: prevent constant references to issues in versioning (Aviv Keller) #53564 - [
aa7df9551d
] - module: add __esModule to require()'d ESM (Joyee Cheung) #52166 - [
8743c4d65a
] - (SEMVER-MINOR) path: addmatchesGlob
method (Aviv Keller) #52881 - [
77936c3d24
] - (SEMVER-MINOR) process: port on-exit-leak-free to core (Vinicius Lourenço) #53239 - [
5e4ca9fbb6
] - src: update outdated references to spec sections (Tobias Nießen) #53832 - [
c22d9d5167
] - src: use Maybe<void> in ManagedEVPPKey (Tobias Nießen) #53811 - [
d41ed44f49
] - src: moveloadEnvFile
toNamespacedPath call (Yagiz Nizipli) #53658 - [
dc99dd391f
] - src: fix error handling in ExportJWKAsymmetricKey (Tobias Nießen) #53767 - [
ab1e03e8cd
] - src: use Maybe<void> in node::crypto::error (Tobias Nießen) #53766 - [
9bde9b254d
] - src: fix implementation ofPropertySetterCallback
(Igor Sheludko) #53576 - [
021e2cf40f
] - src: remove unused ContextifyContext::WeakCallback (Chengzhong Wu) #53517 - [
87121a17c4
] - src: fix typo in node.h (Daeyeon Jeong) #53759 - [
94c7054c8d
] - src: document the Node.js context embedder data (Joyee Cheung) #53611 - [
c181940e83
] - src: zero-initialize data that are copied into the snapshot (Joyee Cheung) #53563 - [
8cda2db64c
] - Revert "src: make sure that memcpy-ed structs in snapshot have no padding" (Joyee Cheung) #53563 - [
81767f6089
] - src: fix Worker termination when '--inspect-brk' is passed (Daeyeon Jeong) #53724 - [
a9db553935
] - src: refactor embedded entrypoint loading (Joyee Cheung) #53573 - [
3ab8aba478
] - src: do not get string_view from temp string (Cheng) #53688 - [
664bf6c28f
] - src: replacekPathSeparator
with std::filesystem (Yagiz Nizipli) #53063 - [
cc1f49751a
] - src: moveFromNamespacedPath
to path.cc (Yagiz Nizipli) #53540 - [
e43a4e07ec
] - src: usestarts_with
in node_dotenv.cc (Yagiz Nizipli) #53539 - [
19488fd4ce
] - src,test: further cleanup references to osx (Daniel Bayley) #53820 - [
4bf62f6cbd
] - stream: improve inspector ergonomics (Benjamin Gruenbaum) #53800 - [
82d88a83f8
] - (SEMVER-MINOR) stream: pipeline wait for close before calling the callback (jakecastelli) #53462 - [
53a7dd7790
] - test: update wpt test (Mert Can Altin) #53814 - [
bc480902ab
] - test: update WPT WebIDL interfaces (Filip Skokan) #53720 - [
d13153d90f
] - test: un-set inspector-async-hook-setup-at-inspect-brk as flaky (Abdirahim Musse) #53692 - [
ac9c2e6bf2
] - test: use python3 instead of python in pummel test (Mathis Wiehl) #53057 - [
bac28678e6
] - test: do not assume cwd in snapshot tests (Antoine du Hamel) #53146 - [
41e106c0c6
] - test: useSet.difference()
(Richard Lau) #53597 - [
8aab680f66
] - test: fix OpenSSL version checks (Richard Lau) #53503 - [
6aa4f0f266
] - test: refactor, add assertion to http-request-end (jakecastelli) #53411 - [
fbc5cbb617
] - test_runner: remove plan option from run() (Colin Ihrig) #53834 - [
c590828ad8
] - test_runner: fix escaping in snapshot tests (Julian Kniephoff) #53833 - [
3a0fcbb17a
] - test_runner: support glob matching coverage files (Aviv Keller) #53553 - [
e6a1eeb73d
] - test_runner: support module detection in module mocks (Geoffrey Booth) #53642 - [
4d777de7d4
] - tls: add setKeyCert() to tls.Socket (Brian White) #53636 - [
ab9adfc42a
] - tls: remove prototype primordials (Antoine du Hamel) #53699 - [
03d378ffb9
] - tools: update lint-md-dependencies (Node.js GitHub Bot) #53840 - [
06377b1b11
] - tools: update eslint to 9.7.0 (Node.js GitHub Bot) #53839 - [
d6629a2d84
] - tools: use v8_features.json to populate config.gypi (Cheng) #53749 - [
d3653fe8ac
] - tools: update eslint to 9.6.0 (Node.js GitHub Bot) #53645 - [
1e930e93d4
] - tools: update lint-md-dependencies to unified@11.0.5 (Node.js GitHub Bot) #53555 - [
317a13b30f
] - tools: replace reference to NodeMainInstance with SnapshotBuilder (codediverdev) #53544 - [
0e25faea0a
] - typings: addfs_dir
types (Yagiz Nizipli) #53631 - [
7637f291be
] - url: fix typo (KAYYY) #53827 - [
2c6548afd1
] - url: reduce unnecessary string copies (Yagiz Nizipli) #53628 - [
0f2b57d1bc
] - url: make URL.parse enumerable (Filip Skokan) #53720 - [
1300169f80
] - url: add missing documentation forURL.parse()
(Yagiz Nizipli) #53733 - [
c55e72ed8b
] - util: fix crashing when emitting new Buffer() deprecation warning #53075 (Aras Abbasi) #53089 - [
5aa216320e
] - v8: moveToNamespacedPath
to c++ (Yagiz Nizipli) #53655 - [
9fd976b09d
] - vm,src: add property query interceptors (Chengzhong Wu) #53517 - [
22ca334090
] - (SEMVER-MINOR) worker: add postMessageToThread (Paolo Insogna) #53682 - [
5aecbefbd5
] - worker: allow copied NODE_OPTIONS in the env setting (Joyee Cheung) #53596
v22.4.1
: 2024-07-08, Version 22.4.1 (Current), @RafaelGSS
This is a security release.
Notable Changes
- CVE-2024-36138 - Bypass incomplete fix of CVE-2024-27980 (High)
- CVE-2024-22020 - Bypass network import restriction via data URL (Medium)
- CVE-2024-22018 - fs.lstat bypasses permission model (Low)
- CVE-2024-36137 - fs.fchown/fchmod bypasses permission model (Low)
- CVE-2024-37372 - Permission model improperly processes UNC paths (Low)
Commits
- [
110902ff5e
] - lib,esm: handle bypass network-import via data: (RafaelGSS) nodejs-private/node-private#522 - [
0a0de3d491
] - lib,permission: support fs.lstat (RafaelGSS) - [
93574335ff
] - lib,permission: disable fchmod/fchown when pm enabled (RafaelGSS) nodejs-private/node-private#584 - [
09899e6302
] - src: handle permissive extension on cmd check (RafaelGSS) nodejs-private/node-private#596 - [
5d9c811634
] - src,permission: fix UNC path resolution (RafaelGSS) nodejs-private/node-private#581
v22.4.0
: 2024-07-02, Version 22.4.0 (Current), @targos
Notable Changes
Experimental Web Storage API
- [
9e30724b53
] - (SEMVER-MINOR) deps,lib,src: add experimental web storage (Colin Ihrig) #52435
API stability updates
- [
201266706b
] - doc: movenode --run
stability to rc (Yagiz Nizipli) #53433 - [
16c0884d48
] - doc: mark WebSocket as stable (Matthew Aitken) #53352 - [
cf375e73c1
] - doc: mark --heap-prof and related flags stable (Joyee Cheung) #53343 - [
0160745057
] - doc: mark --cpu-prof and related flags stable (Joyee Cheung) #53343
Other Notable Changes
- [
df4762722c
] - doc: doc-only deprecate OpenSSL engine-based APIs (Richard Lau) #53329 - [
ad5282e196
] - inspector: fix disable async hooks onDebugger.setAsyncCallStackDepth
(Joyee Cheung) #53473 - [
e95af740fc
] - (SEMVER-MINOR) lib: add diagnostics_channel events to module loading (RafaelGSS) #44340 - [
50733a1abe
] - (SEMVER-MINOR) util: support--no-
for argument with boolean type for parseArgs (Zhenwei Jin) #53107
Commits
- [
9f32002397
] - assert,util: correct comparison when both contain same reference (Daniel Lemire) #53431 - [
dfdc062111
] - buffer: make indexOf(byte) faster (Tobias Nießen) #53455 - [
1de437527e
] - build: configure with shared sqlite3 (Chengzhong Wu) #53519 - [
c7d44ba1f3
] - build: find version of Clang installed on Windows (Stefan Stojanovic) #53228 - [
36aad8b204
] - build: fix spacing before NINJA_ARGS (jakecastelli) #53181 - [
82092cdaa3
] - crypto: improve GetECGroupBits signature (Tobias Nießen) #53364 - [
073c231607
] - deps: update c-ares to v1.31.0 (Node.js GitHub Bot) #53554 - [
977beab729
] - (SEMVER-MINOR) deps: sqlite: fix Windows compilation (Colin Ihrig) #52435 - [
e69b8d202c
] - deps: update undici to 6.19.2 (Node.js GitHub Bot) #53468 - [
c4a7e051c8
] - deps: update undici to 6.19.1 (Node.js GitHub Bot) #53468 - [
fa34f8fcf0
] - deps: update undici to 6.19.1 (Node.js GitHub Bot) #53468 - [
0b40bfad43
] - deps: update undici to 6.19.0 (Node.js GitHub Bot) #53468 - [
1877f22a79
] - deps: update simdjson to 3.9.4 (Node.js GitHub Bot) #53467 - [
1b84964b8d
] - deps: patch V8 to 12.4.254.21 (Node.js GitHub Bot) #53470 - [
6acadeb59b
] - deps: update acorn-walk to 8.3.3 (Node.js GitHub Bot) #53466 - [
7a7f438841
] - deps: update zlib to 1.3.0.1-motley-209717d (Node.js GitHub Bot) #53156 - [
bf891bf64c
] - deps: update c-ares to v1.30.0 (Node.js GitHub Bot) #53416 - [
bd68888261
] - deps: V8: cherry-picka3cc852
(kxxt) #53412 - [
2defaaf771
] - deps: V8: cherry-pick6ea594f
(kxxt) #53412 - [
9e30724b53
] - (SEMVER-MINOR) deps,lib,src: add experimental web storage (Colin Ihrig) #52435 - [
608cc05de1
] - doc: recommend not using libuv node-api function (Michael Dawson) #53521 - [
30858eca59
] - doc: add additional guidance for MRs to deps (Michael Dawson) #53499 - [
a5852cc710
] - doc: only apply content-visibility on all.html (Filip Skokan) #53510 - [
befabe5c58
] - doc: update the description of the return type for options.filter (Zhenwei Jin) #52742 - [
5ed1a036ba
] - doc: remove first timer badge (Aviv Keller) #53338 - [
201266706b
] - doc: movenode --run
stability to rc (Yagiz Nizipli) #53433 - [
46a7681cc4
] - doc: add Buffer.from(string) to functions that use buffer pool (Christian Bates-White) #52801 - [
ec5364f6de
] - doc: add initial text for ambassadors program (Michael Dawson) #52857 - [
fa113b8fc7
] - doc: fix typo (EhsanKhaki) #53397 - [
d9182d0086
] - doc: define more cases for stream event emissions (Aviv Keller) #53317 - [
923d24b6f2
] - doc: remove mentions of policy model from security info (Aviv Keller) #53249 - [
48f78cd31b
] - doc: fix mistakes in the moduleload
hook api (István Donkó) #53349 - [
16c0884d48
] - doc: mark WebSocket as stable (Matthew Aitken) #53352 - [
df4762722c
] - doc: doc-only deprecate OpenSSL engine-based APIs (Richard Lau) #53329 - [
cf375e73c1
] - doc: mark --heap-prof and related flags stable (Joyee Cheung) #53343 - [
0160745057
] - doc: mark --cpu-prof and related flags stable (Joyee Cheung) #53343 - [
6e12d9f049
] - doc: remove IRC from man page (Tobias Nießen) #53344 - [
24c7a9415b
] - doc, http: addrejectNonStandardBodyWrites
option, clear its behaviour (jakecastelli) #53396 - [
ec38f3dc6a
] - doc, meta: organize contributing to Node-API guide (Aviv Keller) #53243 - [
cf5a973c42
] - doc, meta: use markdown rather than HTML in CONTRIBUTING.md (Aviv Keller) #53235 - [
105b006fd2
] - fs: moveToNamespacedPath
to c++ (Yagiz Nizipli) #52135 - [
568377f7f0
] - fs: do not crash if the watched file is removed while setting up watch (Matteo Collina) #53452 - [
fad179307c
] - fs: add fast api forInternalModuleStat
(Yagiz Nizipli) #51344 - [
41100b65f6
] - http2: reject failed http2.connect when used with promisify (ehsankhfr) #53475 - [
ad5282e196
] - inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth (Joyee Cheung) #53473 - [
b5fc227344
] - lib: fix typo in comment (codediverdev) #53543 - [
e95af740fc
] - (SEMVER-MINOR) lib: add diagnostics_channel events to module loading (RafaelGSS) #44340 - [
123910f1de
] - lib: remove the unused code (theanarkh) #53463 - [
452011b719
] - lib: speed up MessageEvent creation internally (Matthew Aitken) #52951 - [
710cf7758c
] - lib: reduce amount of caught URL errors (Yagiz Nizipli) #52658 - [
45b59e58d1
] - lib: fix naming convention ofSymbol
(Deokjin Kim) #53387 - [
515dd24ee7
] - lib: fix timer leak (theanarkh) #53337 - [
77166137be
] - meta: use correct source for workflow in MR (Aviv Keller) #53490 - [
d1c10fee53
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53480 - [
a5026386bf
] - meta: fix typo in dependency updates (Aviv Keller) #53471 - [
0b9191da99
] - meta: bump step-security/harden-runner from 2.7.1 to 2.8.0 (dependabot[bot]) #53245 - [
49cfb9d001
] - src: resetprocess.versions
during pre-execution (Richard Lau) #53444 - [
15df4edd22
] - src: useargs.This()
instead ofHolder
(Michaël Zasso) #53474 - [
e16a04e852
] - src: fix dynamically linked OpenSSL version (Richard Lau) #53456 - [
5961253824
] - src: removebase64
fromprocess.versions
(Richard Lau) #53442 - [
11dd15c0b5
] - src: removeSetEncoding
from StringEncoder (Yagiz Nizipli) #53441 - [
0c7e69acd2
] - src: simplifysize() == 0
checks (Yagiz Nizipli) #53440 - [
f077afafda
] - src: add utilities to help debugging reproducibility of snapshots (Joyee Cheung) #50983 - [
004b9ea4c4
] - src: make sure that memcpy-ed structs in snapshot have no padding (Joyee Cheung) #50983 - [
bfc5236423
] - src: return non-empty data in context data serializer (Joyee Cheung) #50983 - [
955454ba4d
] - src: fix typo in env.cc (EhsanKhaki) #53418 - [
7d8787768c
] - src: avoid strcmp in favor of operator== (Tobias Nießen) #53439 - [
599e7c3d8e
] - src: remove ArrayBufferAllocator::Reallocate override (Shu-yu Guo) #52910 - [
f9075ff38e
] - src: print v8::OOMDetails::detail when it's available (Joyee Cheung) #53360 - [
4704270443
] - src: fix IsIPAddress for IPv6 (Hüseyin Açacak) #53400 - [
63f62d76de
] - src: fix permission inspector crash (theanarkh) #53389 - [
70bbc02dac
] - src, deps: add nbytes library (James M Snell) #53507 - [
8b877099d0
] - stream: update outdated highwatermark doc (Jay Kim) #53494 - [
eded1e9768
] - stream: support dispose in writable (Benjamin Gruenbaum) #48547 - [
b3372a8b0e
] - stream: callback should be called when pendingcb is 0 (jakecastelli) #53438 - [
f4efb7f625
] - stream: make sure _destroy is called (jakecastelli) #53213 - [
7dde37591c
] - stream: prevent stream unexpected pause when highWaterMark set to 0 (jakecastelli) #53261 - [
6e66d9763f
] - test: marktest-benchmark-crypto
as flaky (Antoine du Hamel) #52955 - [
1eebcbf9bf
] - test: skip reproducible snapshot test on 32-bit (Michaël Zasso) #53592 - [
91b2850303
] - test: extend env fortest-node-output-errors
(Richard Lau) #53535 - [
bcad560726
] - test: updatecompression
web-platform tests (Yagiz Nizipli) #53478 - [
b8f436c755
] - test: update encoding web-platform tests (Yagiz Nizipli) #53477 - [
d2c169a4f6
] - test: updateurl
web-platform tests (Yagiz Nizipli) #53472 - [
513e6aa4c7
] - test: check against run-time OpenSSL version (Richard Lau) #53456 - [
602b9d63c4
] - test: update tests for OpenSSL 3.0.14 (Richard Lau) #53373 - [
4a3525bb08
] - test: fix test-http-server-keepalive-req-gc (Etienne Pierre-doray) #53292 - [
7349edb28b
] - test: update TLS tests for OpenSSL 3.2 (Richard Lau) #53384 - [
a11a05763d
] - tls: check result of SSL_CTX_set_*_proto_version (Tobias Nießen) #53459 - [
4b47f89eb2
] - tls: avoid taking ownership of OpenSSL objects (Tobias Nießen) #53436 - [
ac8adeb99f
] - tls: use SSL_get_peer_tmp_key (Tobias Nießen) #53366 - [
d5c380bb09
] - tools: lock versions of irrelevant DB deps (Michaël Zasso) #53546 - [
71321bb249
] - tools: fix skip detection of test runner output (Richard Lau) #53545 - [
ca198f4125
] - tools: update eslint to 9.5.0 (Node.js GitHub Bot) #53515 - [
30fdd482a1
] - tools: move ESLint to tools/eslint (Michaël Zasso) #53413 - [
fe85e05ba9
] - tools: fix c-ares update script (Marco Ippolito) #53414 - [
8eb7bdf81b
] - tools: update lint-md-dependencies (Node.js GitHub Bot) #53158 - [
9ece63d415
] - tools: do not run Corepack code before it's reviewed (Antoine du Hamel) #53405 - [
ab2021492b
] - tools: move ESLint tools to tools/eslint (Michaël Zasso) #53393 - [
78a9037a6d
] - tools: use Ubuntu 24.04 and Clang on GitHub actions (Michaël Zasso) #53212 - [
855eb25dad
] - tools: add stream label on MR when related files being changed in lib (jakecastelli) #53269 - [
50733a1abe
] - (SEMVER-MINOR) util: support--no-
for argument with boolean type for parseArgs (Zhenwei Jin) #53107
v22.3.0
: 2024-06-11, Version 22.3.0 (Current), @RafaelGSS
Notable Changes
- [
5a41bcf9ca
] - (SEMVER-MINOR) src: traverse parent folders while running--run
(Yagiz Nizipli) #53154 - [
1d5934524b
] - (SEMVER-MINOR) buffer: add .bytes() method to Blob (Matthew Aitken) #53221 - [
75e5612fae
] - (SEMVER-MINOR) src,permission: --allow-wasi & prevent WASI exec (Rafael Gonzaga) #53124 - [
b5c30e2f5e
] - (SEMVER-MINOR) module: print amount of load time of a cjs module (Vinicius Lourenço) #52213 - [
8c6dffc269
] - (SEMVER-MINOR) test_runner: add snapshot testing (Colin Ihrig) #53169 - [
048478d351
] - (SEMVER-MINOR) doc: add context.assert docs (Colin Ihrig) #53169 - [
f6d2af8ee7
] - (SEMVER-MINOR) test_runner: add context.fullName (Colin Ihrig) #53169 - [
a0766bdf0e
] - (SEMVER-MINOR) net: add new net.server.listen tracing channel (Paolo Insogna) #53136 - [
374743cd4e
] - (SEMVER-MINOR) process: add process.getBuiltinModule(id) (Joyee Cheung) #52762 - [
1eb55f3550
] - (SEMVER-MINOR) doc: improve explanation about built-in modules (Joyee Cheung) #52762 - [
6165894774
] - fs: mark recursive cp methods as stable (Théo LUDWIG) #53127 - [
db5dd0c6df
] - doc: add StefanStojanovic to collaborators (StefanStojanovic) #53118 - [
cfcde78513
] - (SEMVER-MINOR) cli: addNODE_RUN_PACKAGE_JSON_PATH
env (Yagiz Nizipli) #53058 - [
7a67ecf161
] - (SEMVER-MINOR) test_runner: support module mocking (Colin Ihrig) #52848 - [
ee56aecced
] - (SEMVER-MINOR) lib: add EventSource Client (Aras Abbasi) #51575 - [
6413769bc7
] - (SEMVER-MINOR) lib: replace MessageEvent with undici's (Matthew Aitken) #52370 - [
c70b2f7a76
] - (SEMVER-MINOR) cli: addNODE_RUN_SCRIPT_NAME
env tonode --run
(Yagiz Nizipli) #53032 - [
badec0c38b
] - doc: add Marco Ippolito to TSC (Rafael Gonzaga) #53008
Commits
- [
feb0ba2860
] - benchmark: fix napi/ref addon (Michaël Zasso) #53233 - [
bb844de4e1
] - benchmark: fix api restriction for the permission category (Ryan Tsien) #51528 - [
1d5934524b
] - (SEMVER-MINOR) buffer: add .bytes() method to Blob (Matthew Aitken) #53221 - [
d87f9af5aa
] - buffer: make compare/equals faster (Tobias Nießen) #52993 - [
ec83431d71
] - build: generate binlog in out directories (Chengzhong Wu) #53325 - [
0976439417
] - build: fix --v8-lite-mode build (Daeyeon Jeong) #52725 - [
350c733ae6
] - build: support python 3.13 (Chengzhong Wu) #53190 - [
74cefa55a2
] - build: update ruff to v0.4.5 (Yagiz Nizipli) #53180 - [
33242ff042
] - build: add--skip-tests
totest-ci-js
target (Antoine du Hamel) #53105 - [
edcadf7f8a
] - build: fix building embedtest in GN build (Cheng) #53145 - [
d711942fce
] - build: use broader detection for 'help' (Aviv Keller) #53045 - [
ca655b61a7
] - build: fix -j propagation to ninja (Tobias Nießen) #53088 - [
5fba67ff9f
] - build: exit on unsupported host OS for Android (Mohammed Keyvanzadeh) #52882 - [
b7d7e9a084
] - build: fix--enable-d8
builds (Richard Lau) #53106 - [
14547c5d32
] - build: fix ./configure --help format error (Zhenwei Jin) #53066 - [
f9490806d3
] - build: set "clang" in config.gypi in GN build (Cheng) #53004 - [
638b510ce7
] - cli: add--expose-gc
flag available toNODE_OPTIONS
(Juan José) #53078 - [
cfcde78513
] - (SEMVER-MINOR) cli: addNODE_RUN_PACKAGE_JSON_PATH
env (Yagiz Nizipli) #53058 - [
c70b2f7a76
] - (SEMVER-MINOR) cli: addNODE_RUN_SCRIPT_NAME
env tonode --run
(Yagiz Nizipli) #53032 - [
34f20983fd
] - crypto: fix propagation of "memory limit exceeded" (Tobias Nießen) #53300 - [
fef067f4f4
] - deps: update nghttp2 to 1.62.1 (Node.js GitHub Bot) #52966 - [
fc949928ac
] - deps: update nghttp2 to 1.62.0 (Node.js GitHub Bot) #52966 - [
4a17dda8dc
] - deps: update undici to 6.18.2 (Node.js GitHub Bot) #53255 - [
e45cc2a551
] - deps: update ada to 2.8.0 (Node.js GitHub Bot) #53254 - [
77907a2619
] - deps: update corepack to 0.28.2 (Node.js GitHub Bot) #53253 - [
b688050778
] - deps: update simdjson to 3.9.3 (Node.js GitHub Bot) #53252 - [
6303f19cbe
] - deps: patch V8 to 12.4.254.20 (Node.js GitHub Bot) #53159 - [
257004c68f
] - deps: update c-ares to 1.29.0 (Node.js GitHub Bot) #53155 - [
0b375a3e36
] - deps: upgrade npm to 10.8.1 (npm team) #53207 - [
728c861b1c
] - deps: fix FP16 bitcasts.h (Stefan Stojanovic) #53134 - [
52a78737b1
] - deps: patch V8 to 12.4.254.19 (Node.js GitHub Bot) #53094 - [
4d27b32e58
] - deps: update undici to 6.18.1 (Node.js GitHub Bot) #53073 - [
b94199240b
] - deps: update undici to 6.18.0 (Node.js GitHub Bot) #53073 - [
793af1b3e7
] - deps: update undici to 6.17.0 (Node.js GitHub Bot) #53034 - [
fe00becc03
] - deps: update undici to 6.16.1 (Node.js GitHub Bot) #52948 - [
96f72ae54f
] - deps: update undici to 6.15.0 (Matthew Aitken) #52763 - [
af60fbb12b
] - deps: update googletest to33af80a
(Node.js GitHub Bot) #53053 - [
7b929df489
] - deps: patch V8 to 12.4.254.18 (Node.js GitHub Bot) #53054 - [
626037c0fc
] - deps: update zlib to 1.3.0.1-motley-4f653ff (Node.js GitHub Bot) #53052 - [
6d8589e558
] - deps: patch V8 to 12.4.254.17 (Node.js GitHub Bot) #52980 - [
fd91eaab34
] - deps: upgrade npm to 10.8.0 (npm team) #53014 - [
133cae0732
] - doc: fix broken link instatic-analysis.md
(Richard Lau) #53345 - [
7bc5f964fd
] - doc: indicate requirement on VS 17.6 or newer (Chengzhong Wu) #53301 - [
8c71522ced
] - doc: remove cases for keys not containing "*" in PATTERN_KEY_COMPARE (Maarten Zuidhoorn) #53215 - [
718a3ab1ab
] - doc: add err param to fs.cp callback (Feng Yu) #53234 - [
d89bde26ff
] - doc: adderr
param to fs.copyFile callback (Feng Yu) #53234 - [
91971ee344
] - doc: reserve 128 for Electron 32 (Keeley Hammond) #53203 - [
812f0e9e14
] - doc: add note to ninjia build for macOS using -jn flag (jakecastelli) #53187 - [
048478d351
] - (SEMVER-MINOR) doc: add context.assert docs (Colin Ihrig) #53169 - [
c391923445
] - doc: include ESM import for HTTP (Aviv Keller) #53165 - [
1eb55f3550
] - (SEMVER-MINOR) doc: improve explanation about built-in modules (Joyee Cheung) #52762 - [
67a766f7d4
] - doc: fix minor grammar and style issues in SECURITY.md (Rich Trott) #53168 - [
afbfe8922a
] - doc: mention pm is not enforced when using fd (Rafael Gonzaga) #53125 - [
1702d2632e
] - doc: fix format inesm.md
(Pop Moore) #53170 - [
070577e7d7
] - doc: fix wrong variable name in example oftimers.tick()
(Deokjin Kim) #53147 - [
7147c1df1f
] - doc: fix wrong function name in example ofcontext.plan()
(Deokjin Kim) #53140 - [
cf47384148
] - doc: add note for windows users and symlinks (Aviv Keller) #53117 - [
088dff1074
] - doc: move all TLS-PSK documentation to its section (Alba Mendez) #35717 - [
db5dd0c6df
] - doc: add StefanStojanovic to collaborators (StefanStojanovic) #53118 - [
0f0bc98ad7
] - doc: improve ninja build for --built-in-modules-path (jakecastelli) #53007 - [
4c65c52d30
] - doc: avoid hiding by navigation bar in anchor jumping (Cloyd Lau) #45131 - [
63fcbcfd62
] - doc: remove unavailable youtube link in pull requests (Deokjin Kim) #52982 - [
77fd504636
] - doc: add missing supported timer values intimers.enable()
(Deokjin Kim) #52969 - [
6708536b03
] - fs: fix cp dir/non-dir mismatch error messages (Mathis Wiehl) #53150 - [
6165894774
] - fs: mark recursive cp methods as stable (Théo LUDWIG) #53127 - [
7940db7be1
] - fs: remove basename in favor of std::filesystem (Yagiz Nizipli) #53062 - [
505e9a425b
] - lib: fix misleading argument of validateUint32 (Tobias Nießen) #53307 - [
98ae1ebdd6
] - lib: fix the name of the fetch global function (Gabriel Bota) #53227 - [
fe007cd1b4
] - lib: allow CJS source map cache to be reclaimed (Chengzhong Wu) #51711 - [
040be4a7b4
] - lib: do not call callback if socket is closed (theanarkh) #52829 - [
ee56aecced
] - (SEMVER-MINOR) lib: add EventSource Client (Aras Abbasi) #51575 - [
6413769bc7
] - (SEMVER-MINOR) lib: replace MessageEvent with undici's (Matthew Aitken) #52370 - [
879679e5a3
] - lib,doc: replace references to import assertions (Michaël Zasso) #52998 - [
062a0c6f67
] - meta: bump ossf/scorecard-action from 2.3.1 to 2.3.3 (dependabot[bot]) #53248 - [
e59b744b30
] - meta: bump actions/checkout from 4.1.4 to 4.1.6 (dependabot[bot]) #53247 - [
96924f48a0
] - meta: bump github/codeql-action from 3.25.3 to 3.25.7 (dependabot[bot]) #53246 - [
b7f5662dee
] - meta: bump codecov/codecov-action from 4.3.1 to 4.4.1 (dependabot[bot]) #53244 - [
e079967eb4
] - meta: removeinitializeCommand
from devcontainer (Aviv Keller) #53137 - [
3afeced572
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53065 - [
4b9cdea8a6
] - Revert "module: have a single hooks thread for all workers" (Matteo Collina) #53183 - [
b5c30e2f5e
] - (SEMVER-MINOR) module: print amount of load time of a cjs module (Vinicius Lourenço) #52213 - [
4cdb05a7a2
] - module: do not set CJS variables for Worker eval (Antoine du Hamel) #53050 - [
a0766bdf0e
] - (SEMVER-MINOR) net: add new net.server.listen tracing channel (Paolo Insogna) #53136 - [
374743cd4e
] - (SEMVER-MINOR) process: add process.getBuiltinModule(id) (Joyee Cheung) #52762 - [
e66eb376a0
] - repl: fix await object patterns without values (Luke Haas) #53331 - [
cb1329a8cf
] - src: use v8::(Des|S)erializeInternalFieldsCallback (Joyee Cheung) #53217 - [
1886fe99af
] - src: use __FUNCSIG__ on Windows in backtrace (Joyee Cheung) #53135 - [
3bfce6c816
] - src: use new V8 API to define stream accessor (Igor Sheludko) #53084 - [
11f790d911
] - src: do not use deprecated V8 API (ishell) #53084 - [
6b1731cbcc
] - src: convert all endian checks to constexpr (Tobias Nießen) #52974 - [
7aa9519ad4
] - src: fix external module env and kDisableNodeOptionsEnv (Rafael Gonzaga) #52905 - [
838fe59787
] - src: fix execArgv in worker (theanarkh) #53029 - [
4a2c6ff05d
] - src: reduce unnecessaryGetCwd
calls (Yagiz Nizipli) #53064 - [
ec44965b49
] - src: simplify node modules traverse path (Yagiz Nizipli) #53061 - [
190129b48e
] - src: remove unusedbase64_table_url
(Yagiz Nizipli) #53040 - [
d750a3c5c4
] - src: remove calls to recently deprecated V8 APIs (Adam Klein) #52996 - [
f1890abb18
] - src: replace deprecated GetImportAssertions V8 API (Michaël Zasso) #52997 - [
4347bd2acb
] - src: improve node::Dotenv declarations (Tobias Nießen) #52973 - [
e26166f30b
] - src,permission: handle process.chdir on pm (Rafael Gonzaga) #53175 - [
75e5612fae
] - (SEMVER-MINOR) src,permission: --allow-wasi & prevent WASI exec (Rafael Gonzaga) #53124 - [
7c66b27407
] - stream: micro-optimize writable condition (Orgad Shaneh) #53189 - [
a656cf6bc8
] - stream: fix memory usage regression in writable (Orgad Shaneh) #53188 - [
0e85a84fdc
] - test: fix test when compiled without engine support (Richard Lau) #53232 - [
cebbd83e47
] - test: update TLS trace tests for OpenSSL >= 3.2 (Richard Lau) #53229 - [
45c1eb19f1
] - Revert "test: skip v8-updates/test-linux-perf-logger" (Luke Albao) #52869 - [
c1138db3c1
] - test: unskip v8-updates/test-linux-perf-logger (Luke Albao) #52869 - [
65b64cf0f1
] - test: fix Windows native test suites (Stefan Stojanovic) #53173 - [
9a47792cd1
] - test: skiptest-setproctitle
whenps
is not available (Antoine du Hamel) #53104 - [
a371dea699
] - test: increase allocation so it fails for the test (Adam Majer) #53099 - [
3ce7a9a1b5
] - test: remove timers from test-tls-socket-close (Luigi Pinca) #53019 - [
494fa542af
] - test: replace.substr
with.slice
(Antoine du Hamel) #53070 - [
3f7d55b7db
] - test: add AbortController to knownGlobals (Luigi Pinca) #53020 - [
c61f909ab6
] - test,doc: enable running embedtest for Windows (Vladimir Morozov) #52646 - [
2d1ecbf827
] - test_runner: calculate executed lines using source map (Moshe Atlow) #53315 - [
d4f5f80f6c
] - test_runner: handle file rename and deletion under watch mode (jakecastelli) #53114 - [
07c601e32f
] - test_runner: refactor to use min/max ofvalidateInteger
(Deokjin Kim) #53148 - [
8c6dffc269
] - (SEMVER-MINOR) test_runner: add snapshot testing (Colin Ihrig) #53169 - [
f6d2af8ee7
] - (SEMVER-MINOR) test_runner: add context.fullName (Colin Ihrig) #53169 - [
7a67ecf161
] - (SEMVER-MINOR) test_runner: support module mocking (Colin Ihrig) #52848 - [
3ff174f2bf
] - test_runner: fix t.assert methods (Colin Ihrig) #53049 - [
e2211a07c2
] - test_runner: avoid error when coverage line not found (Moshe Atlow) #53000 - [
c249289121
] - test_runner,doc: align documentation with actual stdout/stderr behavior (Moshe Atlow) #53131 - [
5110b19a07
] - tls: fix negative sessionTimeout handling (Tobias Nießen) #53002 - [
0ecb770331
] - tools: remove no-goma arg from make-v8 script (Michaël Zasso) #53336 - [
e7f3a3c296
] - tools: use sccache Github action (Moshe Atlow) #53316 - [
98cc094bc5
] - tools: update eslint to 9.4.0 (Node.js GitHub Bot) #53298 - [
6409b1fe65
] - tools: update gyp-next to 0.18.1 (Node.js GitHub Bot) #53251 - [
86e80dcb9b
] - tools: move webcrypto into no-restricted-properties (Zihong Qu) #53023 - [
6022346f0e
] - tools: update error message for Type Error (Aviv Keller) #53047 - [
c1b3e0ed6f
] - Revert "tools: add --certify-safe to nci-ci" (Antoine du Hamel) #53098 - [
9f764a873c
] - tools: update ESLint to v9 and use flat config (Michaël Zasso) #52780 - [
2859f4c027
] - watch: fix variable naming (jakecastelli) #53101
v22.2.0
: 2024-05-15, Version 22.2.0 (Current), @targos
Notable Changes
- [
fb85d38e80
] - (SEMVER-MINOR) cli: allow running wasm in limited vmem with --disable-wasm-trap-handler (Joyee Cheung) #52766 - [
23a0d3339f
] - doc: add pimterry to collaborators (Tim Perry) #52874 - [
7d7a762156
] - (SEMVER-MINOR) fs: allow 'withFileTypes' to be used with globs (Aviv Keller) #52837 - [
8748dd6477
] - (SEMVER-MINOR) inspector: introduce the--inspect-wait
flag (Kohei Ueno) #52734 - [
9a7ae9b6c4
] - lib,src: remove --experimental-policy (Rafael Gonzaga) #52583 - [
1f7c2a93fc
] - (SEMVER-MINOR) perf_hooks: adddeliveryType
andresponseStatus
fields (Matthew Aitken) #51589 - [
2f59529dc5
] - (SEMVER-MINOR) test_runner: support test plans (Colin Ihrig) #52860 - [
6b4dac3eb5
] - (SEMVER-MINOR) zlib: expose zlib.crc32() (Joyee Cheung) #52692
Commits
- [
0f5716c364
] - assert: add deep equal check for more Error type (Zhenwei Jin) #51805 - [
2c7d7caa8a
] - benchmark: filter non-present deps fromstart-cli-version
(Adam Majer) #51746 - [
5db4c54bd6
] - bootstrap: print--help
message usingconsole.log
(Jacob Hummer) #51463 - [
67fcb6b85e
] - buffer: even faster atob (Daniel Lemire) #52443 - [
a5d63f9052
] - buffer: use size_t instead of uint32_t to avoid segmentation fault (Xavier Stouder) #48033 - [
f1bc994826
] - buffer: remove lines setting indexes to integer value (Zhenwei Jin) #52588 - [
a97ff753ab
] - build: add option to enable clang-cl on Windows (Michaël Zasso) #52870 - [
f96466a92c
] - build: enable building with shared uvwasi lib (Pooja D P) #43987 - [
b463385aa8
] - build: remove deprecated calls for argument groups (Mohammed Keyvanzadeh) #52913 - [
daeb7dbb3e
] - build: sync V8 warning cflags with BUILD.gn (Michaël Zasso) #52873 - [
eed967430d
] - build: harmonize Clang checks (Michaël Zasso) #52873 - [
e4b187433d
] - build: compile with C++20 support (Michaël Zasso) #52838 - [
aea6ca25ba
] - build: drop base64 dep in GN build (Cheng) #52856 - [
7f866a8225
] - build: make simdjson a public dep in GN build (Cheng) #52755 - [
e1bd53c098
] - build: defineNOMINMAX
in common.gypi (Chengzhong Wu) #52794 - [
18c530f8f7
] - build, tools: copy release assets to staging R2 bucket once built (flakey5) #51394 - [
fb85d38e80
] - (SEMVER-MINOR) cli: allow running wasm in limited vmem with --disable-wasm-trap-handler (Joyee Cheung) #52766 - [
11e978916f
] - cluster: replaceforEach
withfor-of
loop (Jérôme Benoit) #50317 - [
db76c58d68
] - console: colorize console error and warn (Jithil P Ponnan) #51629 - [
0d040a3035
] - crypto: fix duplicated switch-case return values (Mustafa Ateş UZUN) #49030 - [
ab7219f0b2
] - deps: update googletest tofa6de7f
(Node.js GitHub Bot) #52949 - [
4ab096eccc
] - deps: update simdjson to 3.9.2 (Node.js GitHub Bot) #52947 - [
89f275b1df
] - deps: update corepack to 0.28.1 (Node.js GitHub Bot) #52946 - [
fc568b4b42
] - deps: update simdutf to 5.2.8 (Node.js GitHub Bot) #52727 - [
e399360182
] - deps: update simdutf to 5.2.6 (Node.js GitHub Bot) #52727 - [
232831f013
] - deps: enable unbundling of simdjson, simdutf, ada (Daniel Lemire) #52924 - [
7ca83a5abc
] - deps: update googletest to2d16ed0
(Node.js GitHub Bot) #51657 - [
3b15eb5911
] - deps: update googletest tod83fee1
(Node.js GitHub Bot) #51657 - [
4190d70035
] - deps: update googletest to5a37b51
(Node.js GitHub Bot) #51657 - [
7a166a2871
] - deps: update googletest to5197b1a
(Node.js GitHub Bot) #51657 - [
812dbd749f
] - deps: update googletest toeff443c
(Node.js GitHub Bot) #51657 - [
cb3ae4b9ef
] - deps: update googletest toc231e6f
(Node.js GitHub Bot) #51657 - [
d97317aaa1
] - deps: update googletest toe4fdb87
(Node.js GitHub Bot) #51657 - [
ad8ca1259f
] - deps: update googletest to5df0241
(Node.js GitHub Bot) #51657 - [
828f0d7096
] - deps: update googletest tob75ecf1
(Node.js GitHub Bot) #51657 - [
3b60dbcf7b
] - deps: update googletest to4565741
(Node.js GitHub Bot) #51657 - [
37098eb880
] - deps: update simdjson to 3.9.1 (Node.js GitHub Bot) #52397 - [
a13cf1c049
] - deps: update uvwasi to 0.0.21 (Node.js GitHub Bot) #52863 - [
faf8ada719
] - deps: V8: cherry-pickf6bef09
(Richard Lau) #52802 - [
8e5844c2a4
] - doc: remove reference to AUTHORS file (Marco Ippolito) #52960 - [
1f3634e30f
] - doc: update hljs with the latest styles (Aviv Keller) #52911 - [
9102255749
] - doc: mention quicker way to build docs (Alex Crawford) #52937 - [
15db3ef5fb
] - doc: mention push.followTags config (Rafael Gonzaga) #52906 - [
80fa675af2
] - doc: document pipeline withend
option (Alois Klink) #48970 - [
c0000f4118
] - doc: add example forexecFileSync
method and ref to stdio (Evan Shortiss) #39412 - [
e0148e2653
] - doc: add examples and notes to http server.close et al (mary marchini) #49091 - [
030f56ee6d
] - doc: fixdns.lookup
family0
andall
descriptions (Adam Jones) #51653 - [
a6d624cd5a
] - doc: updatefs.realpath
documentation (sinkhaha) #48170 - [
5dab187ca8
] - doc: update fs read documentation for clarity (Mert Can Altin) #52453 - [
5d3ee7205d
] - doc: watermark string behavior (Benjamin Gruenbaum) #52842 - [
2dd8f092a8
] - doc: exclude commits with baking-for-lts (Marco Ippolito) #52896 - [
0c2539b913
] - doc: add names next to release key bash commands (Aviv Keller) #52878 - [
23a0d3339f
] - doc: add pimterry to collaborators (Tim Perry) #52874 - [
15aad62e0c
] - doc: update BUILDING.md previous versions links (Michaël Zasso) #52852 - [
f770a993d4
] - doc: add more definitions to GLOSSARY.md (Aviv Keller) #52798 - [
f35b838a65
] - doc: make docs more welcoming and descriptive for newcomers (Serkan Özel) #38056 - [
562a019a14
] - doc: add OpenSSL errors to API docs (John Lamp) #34213 - [
0cb7cf7aa9
] - doc: fix grammatical mistake (codershiba) #52808 - [
a0147ff8d0
] - doc: simplify copy-pasting ofbranch-diff
commands (Antoine du Hamel) #52757 - [
fce31fc829
] - doc: add test_runner to subsystem (Raz Luvaton) #52774 - [
ca5607bbc8
] - events: update MaxListenersExceededWarning message log (sinkhaha) #51921 - [
96566fc696
] - events: add stop propagation flag toEvent.stopImmediatePropagation
(Mickael Meausoone) #39463 - [
5ee69243ed
] - events: replace NodeCustomEvent with CustomEvent (Feng Yu) #43876 - [
f076e721cb
] - fs: keep fs.promises.readFile read until EOF is reached (Zhenwei Jin) #52178 - [
7d7a762156
] - (SEMVER-MINOR) fs: allow 'withFileTypes' to be used with globs (Aviv Keller) #52837 - [
ad9c4bddb1
] - http: correctly translate HTTP method (Paolo Insogna) #52701 - [
8748dd6477
] - (SEMVER-MINOR) inspector: introduce the--inspect-wait
flag (Kohei Ueno) #52734 - [
9a7ae9b6c4
] - lib,src: remove --experimental-policy (Rafael Gonzaga) #52583 - [
a850219600
] - meta: move@anonrig
to TSC regular member (Yagiz Nizipli) #52932 - [
4dc8a387b3
] - meta: add mailmap entry for legendecas (Chengzhong Wu) #52795 - [
d10182d81d
] - meta: bump actions/checkout from 4.1.1 to 4.1.4 (dependabot[bot]) #52787 - [
48d0ac0665
] - meta: bump github/codeql-action from 3.24.9 to 3.25.3 (dependabot[bot]) #52786 - [
7c7a25150e
] - meta: bump actions/upload-artifact from 4.3.1 to 4.3.3 (dependabot[bot]) #52785 - [
d9abf18342
] - meta: bump actions/download-artifact from 4.1.4 to 4.1.7 (dependabot[bot]) #52784 - [
590e5c6c45
] - meta: bump codecov/codecov-action from 4.1.1 to 4.3.1 (dependabot[bot]) #52783 - [
b3d1720515
] - meta: bump step-security/harden-runner from 2.7.0 to 2.7.1 (dependabot[bot]) #52782 - [
f74beb53de
] - module: cache synchronous module jobs before linking (Joyee Cheung) #52868 - [
8fbf6628d6
] - module: have a single hooks thread for all workers (Gabriel Bota) #52706 - [
609d90bb4b
] - path: fix toNamespacedPath on Windows (Hüseyin Açacak) #52915 - [
1f7c2a93fc
] - (SEMVER-MINOR) perf_hooks: adddeliveryType
andresponseStatus
fields (Matthew Aitken) #51589 - [
0bbc62c42a
] - process: improve event-loop (Aras Abbasi) #52108 - [
619ac79abb
] - quic: address coverity warning (Michael Dawson) #52824 - [
04de5766ee
] - repl: fix disruptive autocomplete without inspector (Nitzan Uziely) #40661 - [
663bb973ab
] - src: fix Worker termination ininspector.waitForDebugger
(Daeyeon Jeong) #52527 - [
fca38b2d6e
] - src: useS_ISDIR
to check if the file is a directory (theanarkh) #52164 - [
b228db579f
] - src: allow preventing debug signal handler start (Shelley Vohr) #46681 - [
ace65a9aac
] - src: make sure pass theargv
to worker threads (theanarkh) #52827 - [
75004d32ab
] - src: fix typo Unabled -> Unable (Simon Siefke) #52820 - [
c40a8273ef
] - src: avoid unused variable 'error' warning (Michaël Zasso) #52886 - [
d169d0f181
] - src: fix positional args in task runner (Yagiz Nizipli) #52810 - [
9c76c95c10
] - src: only apply fix in main thread (Paolo Insogna) #52702 - [
e1cba97df3
] - src: fix test local edge case (Paolo Insogna) #52702 - [
dc41c135d7
] - src: reduce unnecessary serialization of CLI options in C++ (Joyee Cheung) #52451 - [
fb24c4475c
] - src: rewrite task runner in c++ (Yagiz Nizipli) #52609 - [
323f95de9e
] - src: migrate to new V8 interceptors API (Michaël Zasso) #52745 - [
850ff02931
] - src,permission: resolve path on fs_permission (Rafael Gonzaga) #52761 - [
8d3b0b7ade
] - stream: useByteLengthQueuingStrategy
when not inobjectMode
(Jason) #48847 - [
fa715437b0
] - stream: fix util.inspect for compression/decompressionStream (Mert Can Altin) #52283 - [
b0e6a6b3d5
] - string_decoder: throw an error when writing a too long buffer (zhenweijin) #52215 - [
e016e952e6
] - test: addDebugger.setInstrumentationBreakpoint
known issue (Konstantin Ulitin) #31137 - [
a589de0886
] - test: usefor-of
instead offorEach
(Gibby Free) #49790 - [
578868ddf8
] - test: verify request payload is uploaded consistently (Austin Wright) #34066 - [
c676e522e6
] - test: add fuzzer for native/js string conversion (Adam Korczynski) #51120 - [
5f6415b41d
] - test: add fuzzer forClientHelloParser
(AdamKorcz) #51088 - [
4d50d51a5e
] - test: fix broken env fuzzer by initializing process (AdamKorcz) #51080 - [
cd00cdcbc8
] - test: replaceforEach()
intest-stream-pipe-unpipe-stream
(Dario) #50786 - [
5469adf458
] - test: test pipelineend
on transform streams (Alois Klink) #48970 - [
ea6070b0e8
] - test: improve coverage of lib/readline.js (Rongjian Zhang) #38646 - [
4f96b00307
] - test: updated for each to for of in test file (lyannel) #50308 - [
5d91cf1976
] - test: movetest-http-server-request-timeouts-mixed
to sequential (Madhuri) #45722 - [
f47e8fccbb
] - test: fix DNS cancel tests (Szymon Marczak) #44432 - [
0b073f885a
] - test: add http agent toexecutionAsyncResource
(psj-tar-gz) #34966 - [
fbce3178ba
] - test: reduce memory usage of test-worker-stdio (Adam Majer) #37769 - [
1f8eaec454
] - test: add common.expectRequiredModule() (Joyee Cheung) #52868 - [
5e731da572
] - test: skip unstable shadow realm gc tests (Chengzhong Wu) #52855 - [
30a35ae522
] - test: crypto-rsa-dsa testing for dynamic openssl (Michael Dawson) #52781 - [
968fe6a8b1
] - test: skip some console tests on dumb terminal (Adam Majer) #37770 - [
1448959e0d
] - test: skip v8-updates/test-linux-perf-logger (Michaël Zasso) #52821 - [
30a4248b48
] - test: add env variable test for --run (Yagiz Nizipli) #52811 - [
edb4ed3bc9
] - test: drop test-crypto-timing-safe-equal-benchmarks (Rafael Gonzaga) #52751 - [
944ae598b5
] - test, crypto: use correct object on assert (响马) #51820 - [
a814e720fa
] - test_runner: fix watch mode race condition (Moshe Atlow) #52954 - [
2f59529dc5
] - (SEMVER-MINOR) test_runner: support test plans (Colin Ihrig) #52860 - [
3267b3c063
] - test_runner: display failed test stack trace with dot reporter (Mihir Bhansali) #52655 - [
b96868b4e7
] - test_runner: preserve hook promise when executed twice (Moshe Atlow) #52791 - [
74341ba3c9
] - tools: fix v8-update workflow (Michaël Zasso) #52957 - [
afe39ed0df
] - tools: add --certify-safe to nci-ci (Matteo Collina) #52940 - [
bb97e1ccdd
] - tools: fix doc update action (Marco Ippolito) #52890 - [
c6043fe6c8
] - tools: fix get_asan_state() in tools/test.py (Joyee Cheung) #52766 - [
6e71accc5f
] - tools: support max_virtual_memory test configuration (Joyee Cheung) #52766 - [
1600bdac60
] - tools: support != in test status files (Joyee Cheung) #52766 - [
8ce23dc9f3
] - tools: update gyp-next to 0.18.0 (Node.js GitHub Bot) #52835 - [
c5f832adc0
] - tools: update gyp-next to 0.17.0 (Node.js GitHub Bot) #52835 - [
646a094782
] - tools: prepare custom rules for ESLint v9 (Michaël Zasso) #52889 - [
505566347d
] - tools: update lint-md-dependencies to rollup@4.17.2 (Node.js GitHub Bot) #52836 - [
466e0c1321
] - tools: updategr2m/create-or-update-pull-request-action
(Antoine du Hamel) #52843 - [
ce7a751ad1
] - tools: use sccache GitHub action (Michaël Zasso) #52839 - [
1ee38a5ec1
] - tools: specify a commit-message for V8 update workflow (Antoine du Hamel) #52844 - [
317998a1e8
] - tools: fix V8 update workflow (Antoine du Hamel) #52822 - [
ef6a2101e2
] - url,tools,benchmark: replace deprecatedsubstr()
(Jungku Lee) #51546 - [
0deef2d2b1
] - util: fix%s
format behavior withSymbol.toPrimitive
(Chenyu Yang) #50992 - [
a42b93b9aa
] - util: improveisInsideNodeModules
(uzlopak) #52147 - [
d71e16154a
] - watch: allow listening for grouped changes (Matthieu Sieben) #52722 - [
e895f7cf32
] - watch: enable passthrough ipc in watch mode (Zack) #50890 - [
f5d925706a
] - watch: fix arguments parsing (Moshe Atlow) #52760 - [
6b4dac3eb5
] - (SEMVER-MINOR) zlib: expose zlib.crc32() (Joyee Cheung) #52692
v22.1.0
: 2024-05-02, Version 22.1.0 (Current), @targos prepared by @aduh95
NODE_COMPILE_CACHE
for automatic on-disk code caching
module: implement This 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
- [
44ee04cf9f
] - buffer: improvebase64
andbase64url
performance (Yagiz Nizipli) #52428 - [
3c37ce5710
] - (SEMVER-MINOR) dns: add order option and support ipv6first (Paolo Insogna) #52492 - [
3026401be1
] - events,doc: mark CustomEvent as stable (Daeyeon Jeong) #52618 - [
64428dc1c9
] - (SEMVER-MINOR) lib, url: add awindows
option to path parsing (Aviv Keller) #52509 - [
d79ae74f71
] - (SEMVER-MINOR) net: add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474 - [
43fa6a1a45
] - (SEMVER-MINOR) src: addstring_view
overload to snapshot FromBlob (Anna Henningsen) #52595 - [
c6fe433d42
] - src,permission: throw async errors on async APIs (Rafael Gonzaga) #52730 - [
e247a61d15
] - (SEMVER-MINOR) test_runner: add --test-skip-pattern cli option (Aviv Keller) #52529 - [
9b18df9dcb
] - (SEMVER-MINOR) url: implement parse method for safer URL parsing (Ali Hassan) #52280
Commits
- [
35643c18c0
] - benchmark: reduce the buffer size for blob (Debadree Chatterjee) #52548 - [
7cdfe8a3fc
] - benchmark: inherit stdio/stderr instead of pipe (Ali Hassan) #52456 - [
7b82c17f22
] - benchmark: add ipc support to spawn stdio config (Ali Hassan) #52456 - [
dfda6fed61
] - buffer: add missing ARG_TYPE(ArrayBuffer) for isUtf8 (Jungku Lee) #52477 - [
44ee04cf9f
] - buffer: improvebase64
andbase64url
performance (Yagiz Nizipli) #52428 - [
c64a1a3b89
] - build: fix typo in node.gyp (Michaël Zasso) #52719 - [
4f713fbc2e
] - build: fix headers install for shared mode on Win (Segev Finer) #52442 - [
4baeb7b21d
] - build: fix arm64 cross-compilation bug on non-arm machines (Mahdi Sharifi) #52559 - [
d5cd468ce8
] - build,tools,node-api: fix building node-api tests for Windows Debug (Vladimir Morozov) #52632 - [
910533fcfd
] - crypto: simplify assertions in Safe*Print (David Benjamin) #49709 - [
61e1ac0b8c
] - crypto: enable NODE_EXTRA_CA_CERTS with BoringSSL (Shelley Vohr) #52217 - [
6e98eee256
] - deps: upgrade npm to 10.7.0 (npm team) #52767 - [
27a5f9418c
] - deps: V8: cherry-pick500de8b
(Richard Lau) #52676 - [
3b422ddcea
] - deps: update corepack to 0.28.0 (Node.js GitHub Bot) #52616 - [
d40e4d4c42
] - deps: update ada to 2.7.8 (Node.js GitHub Bot) #52517 - [
5b52a4870a
] - deps: update icu to 75.1 (Node.js GitHub Bot) #52573 - [
80cbe72c1f
] - deps: update undici to 6.13.0 (Node.js GitHub Bot) #52493 - [
9a44059055
] - deps: update zlib to 1.3.0.1-motley-7d77fb7 (Node.js GitHub Bot) #52516 - [
d67a9a5360
] - deps: update minimatch to 9.0.4 (Node.js GitHub Bot) #52524 - [
8738b89971
] - deps: upgrade npm to 10.5.2 (npm team) #52458 - [
8e4fd2842b
] - deps,src: simplify base64 encoding (Daniel Lemire) #52714 - [
3c37ce5710
] - (SEMVER-MINOR) dns: add order option and support ipv6first (Paolo Insogna) #52492 - [
3987a28a9e
] - doc: update process.versions properties (ishabi) #52736 - [
c0b58e07f1
] - doc: remove mold use on mac for speeding up build (Cong Zhang) #52252 - [
9a032cf6e2
] - doc: remove relative limitation to pm (Rafael Gonzaga) #52648 - [
90c6e77238
] - doc: fix info string causing duplicated code blocks (Mathieu Leenhardt) #52660 - [
4d577fa048
] - doc: add .gitattributes for md files (Hüseyin Açacak) #52161 - [
04c8e110e5
] - doc: run license-builder (github-actions[bot]) #52631 - [
3552829594
] - doc: add info on contributor spotlight program (Michael Dawson) #52598 - [
eeb80ad836
] - doc: correct unsafe URL example in http docs (Malte Legenhausen) #52555 - [
c83526a688
] - doc: replace U+00A0 with U+0020 (Luigi Pinca) #52590 - [
31831e9db8
] - doc: sort options alphabetically (Luigi Pinca) #52589 - [
a93f5d4aaa
] - doc: correct stream.finished changes (KaKa) #52551 - [
27ffa35540
] - doc: add RedYetiDev to triage team (Aviv Keller) #52556 - [
63cc2b870e
] - doc: fix issue detected in markdown lint update (Rich Trott) #52566 - [
7e93c4892b
] - doc: update test runner coverage limitations (Moshe Atlow) #52515 - [
3026401be1
] - events,doc: mark CustomEvent as stable (Daeyeon Jeong) #52618 - [
c6e0fe2f22
] - fs: allow setting Stat date properties (Nicolò Ribaudo) #52708 - [
f23fa1de72
] - fs: fix read / readSync positional offset types (Ruy Adorno) #52603 - [
a7e03d301a
] - fs: fixes recursive fs.watch crash on Linux when deleting files (Matteo Collina) #52349 - [
d5ecb6cd00
] - http2: fix excessive CPU usage when usingallowHTTP1=true
(Eugene) #52713 - [
d1adc9b140
] - lib: enforce ASCII order in error code imports (Antoine du Hamel) #52625 - [
9ffdcade37
] - lib: use predefined variable instead of bit operation (Deokjin Kim) #52580 - [
fdcde845ee
] - lib: refactor lazy loading of undici for fetch method (Victor Chen) #52275 - [
f6145aa2ca
] - lib: convert WeakMaps in cjs loader with private symbol properties (Chengzhong Wu) #52095 - [
014bf01efc
] - lib: replace string prototype usage with alternatives (Aviv Keller) #52440 - [
dc399ddd03
] - lib, doc: rename readme.md to README.md (Aviv Keller) #52471 - [
64428dc1c9
] - (SEMVER-MINOR) lib, url: add awindows
option to path parsing (Aviv Keller) #52509 - [
9b2b6abb62
] - lib,src: iterate module requests of a module wrap in JS (Chengzhong Wu) #52058 - [
896a80e366
] - meta: standardize regex (Aviv Keller) #52693 - [
20c07e922e
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #52633 - [
e70d8a4fa9
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #52457 - [
20ab8f2a88
] - module: support ESM detection in the CJS loader (Joyee Cheung) #52047 - [
544c602b75
] - module: skip NODE_COMPILE_CACHE when policy is enabled (Joyee Cheung) #52577 - [
3df3afc284
] - module: detect ESM syntax by trying to recompile as SourceTextModule (Joyee Cheung) #52413 - [
4d77fd2c46
] - (SEMVER-MINOR) module: implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) #52535 - [
9794d21b07
] - module: fix submodules loaded by require() and import() (Joyee Cheung) #52487 - [
b00766d9e7
] - module: tidy code and comments (Jacob Smith) #52437 - [
d79ae74f71
] - (SEMVER-MINOR) net: add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474 - [
b17cfea289
] - node-api: address coverity report (Michael Dawson) #52584 - [
1fca8baac1
] - node-api: copy external type tags when they are set (Niels Martignène) #52426 - [
d086ab42a1
] - quic: address recent coverity warnings (Michael Dawson) #52647 - [
fb4edf70cf
] - quic: rework TLSContext, additional cleanups (James M Snell) #51340 - [
0c58d0319b
] - src: remove misplaced windows code under posix guard in node.cc (Ali Hassan) #52545 - [
e20d2f1de3
] - src: cast to v8::Value before using v8::EmbedderGraph::V8Node (Joyee Cheung) #52638 - [
43fa6a1a45
] - (SEMVER-MINOR) src: addstring_view
overload to snapshot FromBlob (Anna Henningsen) #52595 - [
a56faff4d0
] - src: parse inspector profiles with simdjson (Joyee Cheung) #51783 - [
ac04c6434a
] - src: remove regex usage for env file parsing (IlyasShabi) #52406 - [
f283d27285
] - src: fix loadEnvFile ENOENT error (mathis-west-1) #52438 - [
c6fe433d42
] - src,permission: throw async errors on async APIs (Rafael Gonzaga) #52730 - [
9f9eca965a
] - stream: update ongoing promise in async iterator return() method (Mattias Buelens) #52657 - [
d568a9a38e
] - test: marktest-error-serdes
as flaky (Antoine du Hamel) #52739 - [
45f7002b90
] - test: mark test as flaky (Michael Dawson) #52671 - [
10596e20e8
] - test: fix backtick usage in docs (Aviv Keller) #52643 - [
b2f754c9f1
] - test: skip test-fs-watch-recursive-delete.js on IBM i (Abdirahim Musse) #52645 - [
ed080d868d
] - test: ensure that all worker servers are ready (Luigi Pinca) #52563 - [
c8c61737e4
] - test: fix test-tls-ticket-cluster.js (Hüseyin Açacak) #52431 - [
18aa5d6640
] - test: split wasi poll test for windows (Hüseyin Açacak) #52538 - [
e34e0a9ba1
] - test: write tests for assertIsArray http2 util (Sinan Sonmez (Chaush)) #52511 - [
e247a61d15
] - (SEMVER-MINOR) test_runner: add --test-skip-pattern cli option (Aviv Keller) #52529 - [
e066ba2ae4
] - test_runner: better error handing for test hook (Alex Yang) #52401 - [
328755341d
] - test_runner: don't exceed call stack when filtering (Colin Ihrig) #52488 - [
b4ccb6c626
] - test_runner: move end of work check to finalize() (Colin Ihrig) #52488 - [
2ef9380472
] - tools: update lint-md-dependencies to rollup@4.17.0 (Node.js GitHub Bot) #52729 - [
db421bdefc
] - tools: take co-authors into account infind-inactive-collaborators
(Antoine du Hamel) #52669 - [
01103a85cb
] - tools: fix invalid escape sequence in mkssldef (Michaël Zasso) #52624 - [
382d951b01
] - tools: update lint-md-dependencies to rollup@4.15.0 (Node.js GitHub Bot) #52617 - [
f9ddd77ff3
] - tools: add lint rule to keep primordials in ASCII order (Antoine du Hamel) #52592 - [
552642a498
] - tools: update lint-md-dependencies (Rich Trott) #52581 - [
df61feb655
] - tools: fix heading spaces for osx-entitlements.plist (Jackson Tian) #52561 - [
6b4bbfbb1f
] - tools: update lint-md-dependencies to rollup@4.14.2 vfile-reporter@8.1.1 (Node.js GitHub Bot) #52518 - [
4e5ce3afb7
] - tools: use stylistic ESLint plugin for formatting (Michaël Zasso) #50714 - [
15c5686381
] - tools: update minimatch index path (Marco Ippolito) #52523 - [
8ae1507ae1
] - tools: add a linter for README lists (Antoine du Hamel) #52476 - [
0b970316bc
] - typings: fix invalid JSDoc declarations (Yagiz Nizipli) #52659 - [
9b18df9dcb
] - (SEMVER-MINOR) url: implement parse method for safer URL parsing (Ali Hassan) #52280 - [
d33131af3a
] - vm: fix ASCII-betical order (Aviv Keller) #52686
v22.0.0
: 2024-04-24, Version 22.0.0 (Current), @RafaelGSS and @marco-ippolito
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
- [
25c79f3331
] - esm: drop support for import assertions (Nicolò Ribaudo) #52104 - [
818c10e86d
] - lib: improve perf ofAbortSignal
creation (Raz Luvaton) #52408 - [
4f68c7c1c9
] - watch: mark as stable (Moshe Atlow) #52074 - [
02b0bc01fe
] - (SEMVER-MAJOR) deps: update V8 to 12.4.254.14 (Michaël Zasso) #52465 - [
c975384264
] - (SEMVER-MAJOR) lib: enable WebSocket by default (Aras Abbasi) #51594 - [
1abff07392
] - (SEMVER-MAJOR) stream: bump default highWaterMark (Robert Nagy) #52037 - [
1a5acd0638
] - (SEMVER-MAJOR) v8: enable maglev on supported architectures (Keyhan Vakil) #51360 - [
128c60d906
] - (SEMVER-MINOR) cli: implementnode --run <script-in-package-json>
(Yagiz Nizipli) #52190 - [
151d365ad1
] - (SEMVER-MINOR) fs: expose glob and globSync (Moshe Atlow) #51912 - [
5f7fad2605
] - (SEMVER-MINOR) module: support require()ing synchronous ESM graphs (Joyee Cheung) #51977
Semver-Major Commits
- [
2b1e7c2fcb
] - (SEMVER-MAJOR) build: compile with C++20 support on Windows (StefanStojanovic) #52465 - [
12d00f1479
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #52465 - [
5f08e11a3c
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #52293 - [
94f0369d1d
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #51362 - [
58674cd1d8
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #50115 - [
60e836427e
] - (SEMVER-MAJOR) console: treat non-strings as separate argument in console.assert() (Jacob Hummer) #49722 - [
d62ab3a1ef
] - (SEMVER-MAJOR) crypto: runtime deprecate hmac constructor (Marco Ippolito) #52071 - [
de0602d190
] - (SEMVER-MAJOR) crypto: runtime deprecate Hash constructor (Marco Ippolito) #51880 - [
215f4d04b7
] - (SEMVER-MAJOR) crypto: move createCipher and createDecipher to eol (Marco Ippolito) #50973 - [
30801b8aaf
] - (SEMVER-MAJOR) deps: V8: cherry-pickcd10ad7
(Joyee Cheung) #52465 - [
521b629ab1
] - (SEMVER-MAJOR) deps: V8: revert CL5331688
(Michaël Zasso) #52465 - [
3795e97e6c
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (StefanStojanovic) #52465 - [
5bde9e677d
] - (SEMVER-MAJOR) deps: silence internal V8 deprecation warning (Michaël Zasso) #52465 - [
46e628c6f2
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #52465 - [
f824e40a82
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (Michaël Zasso) #52465 - [
d2c84c9a13
] - (SEMVER-MAJOR) deps: avoid compilation error with ASan (Michaël Zasso) #52465 - [
95d6045bdb
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (Michaël Zasso) #52465 - [
00f55f5743
] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #52465 - [
764085aa66
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #52465 - [
02b0bc01fe
] - (SEMVER-MAJOR) deps: update V8 to 12.4.254.14 (Michaël Zasso) #52465 - [
0ec50a19dd
] - (SEMVER-MAJOR) deps: V8: cherry-pickcd10ad7
(Joyee Cheung) #52293 - [
021b0b7dee
] - (SEMVER-MAJOR) deps: V8: backportc4be0a9
(Richard Lau) #52293 - [
681aaf85c7
] - (SEMVER-MAJOR) deps: silence internal V8 deprecation warning (Michaël Zasso) #52293 - [
c563a1c4e4
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (Stefan Stojanovic) #52293 - [
11e94b9987
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #52293 - [
856163e23c
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (Michaël Zasso) #52293 - [
b530214127
] - (SEMVER-MAJOR) deps: avoid compilation error with ASan (Michaël Zasso) #52293 - [
8054f69dd9
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (Michaël Zasso) #52293 - [
dee908be42
] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #52293 - [
cf069414ee
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #52293 - [
cc5792dd85
] - (SEMVER-MAJOR) deps: update V8 to 12.3.219.16 (Michaël Zasso) #52293 - [
61a0d3b4c4
] - (SEMVER-MAJOR) deps: V8: backportc4be0a9
(Richard Lau) #51362 - [
f55380a725
] - (SEMVER-MAJOR) deps: V8: cherry-pickf8d5e57
(Richard Lau) #51362 - [
b9d806a2dd
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (StefanStojanovic) #51362 - [
63b58bc17b
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #51362 - [
86056353c4
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (Michaël Zasso) #51362 - [
2e0efc1c8d
] - (SEMVER-MAJOR) deps: avoid compilation error with ASan (Michaël Zasso) #51362 - [
59e6f62e34
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (Michaël Zasso) #51362 - [
0423f7e27e
] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #51362 - [
f36620806d
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #51362 - [
09a8440b45
] - (SEMVER-MAJOR) deps: update V8 to 12.2.281.27 (Michaël Zasso) #51362 - [
0da3beebfc
] - (SEMVER-MAJOR) deps: V8: cherry-pickde611e6
(Keyhan Vakil) #50115 - [
b982335637
] - (SEMVER-MAJOR) deps: V8: cherry-pick0fd478b
(Joyee Cheung) #50115 - [
481a90116c
] - (SEMVER-MAJOR) deps: V8: cherry-pick0f9ebbc
(Chengzhong Wu) #50115 - [
782addbdc3
] - (SEMVER-MAJOR) deps: V8: cherry-pick8f0b946
(Lu Yahan) #50115 - [
b682e7f540
] - (SEMVER-MAJOR) deps: V8: cherry-pickf7d000a
(Luke Albao) #50115 - [
a60090c52f
] - (SEMVER-MAJOR) deps: V8: cherry-pick2590224
(Joyee Cheung) #50115 - [
8441d1fc18
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #50115 - [
e8e9bbd7a9
] - (SEMVER-MAJOR) deps: remove usage of a C++20 feature from V8 (Michaël Zasso) #50115 - [
785d5cd006
] - (SEMVER-MAJOR) deps: avoid compilation error with ASan (Michaël Zasso) #50115 - [
7071c1dafd
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (Michaël Zasso) #50115 - [
d1d60b297d
] - (SEMVER-MAJOR) deps: silence irrelevant V8 warning (Michaël Zasso) #50115 - [
5b240c62f9
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #50115 - [
d8c97e4857
] - (SEMVER-MAJOR) deps: update V8 to 11.9.169.7 (Michaël Zasso) #50115 - [
b9df88a8c2
] - (SEMVER-MAJOR) doc: runtime deprecate flag --trace-atomics-wait (marco-ippolito) #51179 - [
9ba5df30b4
] - (SEMVER-MAJOR) doc: bump FreeBSD experimental support to 13.2 (Michaël Zasso) #51231 - [
900d79caf2
] - (SEMVER-MAJOR) doc: add migration paths for deprecated utils (Marco Ippolito) #50488 - [
8206f6bb7f
] - (SEMVER-MAJOR) fs: runtime deprecate fs.Stats constructor (Marco Ippolito) #52067 - [
c14133503a
] - (SEMVER-MAJOR) fs: use private fields instead of symbols forDir
(Jungku Lee) #51037 - [
abbdc3efaa
] - (SEMVER-MAJOR) fs: make stats date fields lazy (Yagiz Nizipli) #50908 - [
4b76ccea95
] - (SEMVER-MAJOR) http: preserve raw header duplicates in writeHead after setHeader calls (Tim Perry) #50394 - [
c975384264
] - (SEMVER-MAJOR) lib: enable WebSocket by default (Aras Abbasi) #51594 - [
351495e938
] - (SEMVER-MAJOR) lib,test: handle new Iterator global (Michaël Zasso) #51362 - [
a8b21fdc90
] - (SEMVER-MAJOR) process: wait for'exit'
before printing result (Antoine du Hamel) #52172 - [
582ff5037c
] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 127 (Michaël Zasso) #52465 - [
c5c4b50260
] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 126 (Michaël Zasso) #52293 - [
d248639285
] - (SEMVER-MAJOR) src: use supported API to get stalled TLA messages (Michaël Zasso) #51362 - [
d34b02db4c
] - (SEMVER-MAJOR) src: update default V8 platform to override functions with location (Etienne Pierre-Doray) #51362 - [
d9c47e9b5f
] - (SEMVER-MAJOR) src: add missing TryCatch (Michaël Zasso) #51362 - [
5cddd3b2d8
] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 124 (Michaël Zasso) #51362 - [
1528846ada
] - (SEMVER-MAJOR) src: use non-deprecated v8::Uint8Array::kMaxLength (Michaël Zasso) #50115 - [
7166986626
] - (SEMVER-MAJOR) src: adapt to v8::Exception API change (Michaël Zasso) #50115 - [
4782818020
] - (SEMVER-MAJOR) src: use non-deprecated version of CreateSyntheticModule (Michaël Zasso) #50115 - [
2cff0ce411
] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 122 (Michaël Zasso) #50115 - [
1abff07392
] - (SEMVER-MAJOR) stream: bump default highWaterMark (Robert Nagy) #52037 - [
9efc84a2cb
] - (SEMVER-MAJOR) test: mark test-worker-arraybuffer-zerofill as flaky (Michaël Zasso) #51362 - [
84c2e712eb
] - (SEMVER-MAJOR) test: mark some GC-related tests as flaky (Michaël Zasso) #51362 - [
cdc4437b87
] - (SEMVER-MAJOR) test: allow slightly more diff in memory leak test (Michaël Zasso) #51362 - [
515b007fae
] - (SEMVER-MAJOR) test: replace always-opt flag with alway-turbofan (Michaël Zasso) #50115 - [
2341805eb2
] - (SEMVER-MAJOR) test: remove tests that create very large buffers (Michaël Zasso) #50115 - [
941cef5636
] - (SEMVER-MAJOR) test: adapt to new V8 trusted memory spaces (Michaël Zasso) #50115 - [
29de7f82cd
] - (SEMVER-MAJOR) test_runner: omit filtered test from output (Colin Ihrig) #52221 - [
00dc6d9d97
] - (SEMVER-MAJOR) test_runner: improve--test-name-pattern
to allow matching single test (Michał Drobniak) #51577 - [
5def8019d5
] - (SEMVER-MAJOR) tools: update V8 gypfiles for 12.4 (Michaël Zasso) #52465 - [
c22793d050
] - (SEMVER-MAJOR) tools: roughly port v8_abseil to gyp (Michaël Zasso) #51362 - [
ffb0302f0c
] - (SEMVER-MAJOR) tools: update V8 gypfiles for 12.2 (Michaël Zasso) #51362 - [
aadea12440
] - (SEMVER-MAJOR) tools: update V8 gypfiles for 12.1 (Michaël Zasso) #51362 - [
7784773967
] - (SEMVER-MAJOR) tools: update V8 gypfiles for 12.0 (Michaël Zasso) #51362 - [
9fe0424baa
] - (SEMVER-MAJOR) trace_events: use private fields instead of symbols forTracing
(Jungku Lee) #51180 - [
e96cd25007
] - (SEMVER-MAJOR) util: runtime deprecate util.log (Marco Ippolito) #50488 - [
6cf20d5e43
] - (SEMVER-MAJOR) util: runtime deprecate util.isUndefined (Marco Ippolito) #50488 - [
09e424921f
] - (SEMVER-MAJOR) util: runtime deprecate util.isSymbol (Marco Ippolito) #50488 - [
80b6bfd4e9
] - (SEMVER-MAJOR) util: runtime deprecate util.isString (Marco Ippolito) #50488 - [
d419edded9
] - (SEMVER-MAJOR) util: runtime deprecate util.isRegExp (Marco Ippolito) #50488 - [
e0b8de78ed
] - (SEMVER-MAJOR) util: runtime deprecate util.isPrimitive (Marco Ippolito) #50488 - [
5478e1129a
] - (SEMVER-MAJOR) util: runtime deprecate util.isObject (Marco Ippolito) #50488 - [
b05b1dd541
] - (SEMVER-MAJOR) util: runtime deprecate util.isNumber (Marco Ippolito) #50488 - [
5af9bf5f6a
] - (SEMVER-MAJOR) util: runtime deprecate util.isNullOrUndefined (Marco Ippolito) #50488 - [
860a10e10e
] - (SEMVER-MAJOR) util: runtime deprecate util.isNull (Marco Ippolito) #50488 - [
70330f5c2b
] - (SEMVER-MAJOR) util: runtime deprecate util.isFunction (Marco Ippolito) #50488 - [
7c69c33acc
] - (SEMVER-MAJOR) util: runtime deprecate util.isError (Marco Ippolito) #50488 - [
a0c5b871a9
] - (SEMVER-MAJOR) util: runtime deprecate util.isDate (Marco Ippolito) #50488 - [
3c670cb15d
] - (SEMVER-MAJOR) util: runtime deprecation util.isBuffer (Marco Ippolito) #50488 - [
c17a448ca9
] - (SEMVER-MAJOR) util: runtime deprecation util.isBoolean (Marco Ippolito) #50488 - [
fbb2f891aa
] - (SEMVER-MAJOR) util: runtime deprecate util.isArray (Marco Ippolito) #50488 - [
22d8062e42
] - (SEMVER-MAJOR) util: runtime deprecation util._extend (Marco Ippolito) #50488 - [
1a5acd0638
] - (SEMVER-MAJOR) v8: enable maglev on supported architectures (Keyhan Vakil) #51360
Semver-Minor Commits
- [
128c60d906
] - (SEMVER-MINOR) cli: implementnode --run <script-in-package-json>
(Yagiz Nizipli) #52190 - [
f69946b905
] - (SEMVER-MINOR) deps: update simdutf to 5.0.0 (Daniel Lemire) #52138 - [
828ad42eee
] - (SEMVER-MINOR) deps: update undici to 6.3.0 (Node.js GitHub Bot) #51462 - [
05f8172188
] - (SEMVER-MINOR) deps: update undici to 6.2.1 (Node.js GitHub Bot) #51278 - [
a0c466810a
] - (SEMVER-MINOR) doc: deprecate fs.Stats public constructor (Marco Ippolito) #51879 - [
151d365ad1
] - (SEMVER-MINOR) fs: expose glob and globSync (Moshe Atlow) #51912 - [
5f7fad2605
] - (SEMVER-MINOR) module: support require()ing synchronous ESM graphs (Joyee Cheung) #51977 - [
009665fb56
] - (SEMVER-MINOR) report: add--report-exclude-network
option (Ethan Arrowood) #51645 - [
80f86e5d02
] - (SEMVER-MINOR) src: add C++ ProcessEmitWarningSync() (Joyee Cheung) #51977 - [
78be0d0f1c
] - (SEMVER-MINOR) src: add uv_get_available_memory to report and process (theanarkh) #52023 - [
b34512e38e
] - (SEMVER-MINOR) src: preload function for Environment (Cheng Zhao) #51539 - [
7d258db1d7
] - (SEMVER-MINOR) stream: support typed arrays (IlyasShabi) #51866 - [
5276c0d5d4
] - (SEMVER-MINOR) test_runner: add suite() (Colin Ihrig) #52127 - [
84de97a61e
] - (SEMVER-MINOR) test_runner: support forced exit (Colin Ihrig) #52038 - [
aac5ad901d
] - (SEMVER-MINOR) test_runner: addtest:complete
event to reflect execution order (Moshe Atlow) #51909 - [
9a1e01c4ce
] - (SEMVER-MINOR) util: support array of formats in util.styleText (Marco Ippolito) #52040 - [
7f2d61f82a
] - (SEMVER-MINOR) v8: implement v8.queryObjects() for memory leak regression testing (Joyee Cheung) #51927 - [
d1d5da22e4
] - (SEMVER-MINOR) vm: harden module type checks (Chengzhong Wu) #52162
Semver-Patch Commits
- [
a760dadec3
] - benchmark: add AbortSignal.abort benchmarks (Raz Luvaton) #52408 - [
47c934e464
] - benchmark: conditionally use spawn with taskset for cpu pinning (Ali Hassan) #52253 - [
dde0cffb2e
] - benchmark: add toNamespacedPath bench (Rafael Gonzaga) #52236 - [
bda66ad711
] - benchmark: add style-text benchmark (Rafael Gonzaga) #52004 - [
21211a3fa9
] - buffer: improvebtoa
performance (Yagiz Nizipli) #52427 - [
6f504b71ac
] - buffer: use simdutf foratob
implementation (Yagiz Nizipli) #52381 - [
0ce7365856
] - build: temporary disable ubsan (Rafael Gonzaga) #52560 - [
4e278f0253
] - build: speed up compilation of some V8 files (Michaël Zasso) #52083 - [
ba06c5c509
] - build,tools: add test-ubsan ci (Rafael Gonzaga) #46297 - [
562369f348
] - child_process: use internal addAbortListener (Chemi Atlow) #52081 - [
8f61b658de
] - crypto: deprecate implicitly shortened GCM tags (Tobias Nießen) #52345 - [
08609b5222
] - crypto: make timingSafeEqual faster for Uint8Array (Tobias Nießen) #52341 - [
9f939f5af7
] - crypto: rejectEd25519
/Ed448 in Sign/Verify prototypes (Filip Skokan) #52340 - [
2241e8c5b3
] - crypto: validate RSA-PSS saltLength in subtle.sign and subtle.verify (Filip Skokan) #52262 - [
6dd1c75f4a
] - crypto: fixinput
validation incrypto.hash
(Antoine du Hamel) #52070 - [
a1d48f4a26
] - deps: update simdutf to 5.2.4 (Node.js GitHub Bot) #52473 - [
08ff4a0c9d
] - deps: update nghttp2 to 1.61.0 (Node.js GitHub Bot) #52395 - [
cf629366b9
] - deps: update simdutf to 5.2.3 (Yagiz Nizipli) #52381 - [
ad86a12964
] - deps: upgrade npm to 10.5.1 (npm team) #52351 - [
45cc32c9c6
] - deps: update c-ares to 1.28.1 (Node.js GitHub Bot) #52285 - [
38161c38d9
] - deps: update zlib to 1.3.0.1-motley-24c07df (Node.js GitHub Bot) #52199 - [
1264414700
] - deps: update simdjson to 3.8.0 (Node.js GitHub Bot) #52124 - [
f6996ee150
] - deps: V8: backportc4be0a9
(Richard Lau) #52183 - [
0d4bc4c40e
] - deps: V8: cherry-pickf8d5e57
(Richard Lau) #52183 - [
70a05103c8
] - deps: update zlib to 1.3.0.1-motley-24342f6 (Node.js GitHub Bot) #52123 - [
4c3e9659ed
] - deps: update corepack to 0.26.0 (Node.js GitHub Bot) #52027 - [
0b4cdb4b42
] - deps: update ada to 2.7.7 (Node.js GitHub Bot) #52028 - [
b241a1d0ae
] - deps: update simdutf to 4.0.9 (Node.js GitHub Bot) #51655 - [
36dcd399c0
] - deps: upgrade libuv to 1.48.0 (Santiago Gimeno) #51697 - [
8cf313cd72
] - deps: update undici to 6.6.0 (Node.js GitHub Bot) #51630 - [
dd4767f99f
] - deps: update undici to 6.4.0 (Node.js GitHub Bot) #51527 - [
8362caa7d8
] - dgram: use internal addAbortListener (Chemi Atlow) #52081 - [
4f3cf4e89a
] - diagnostics_channel: early-exit tracing channel trace methods (Stephen Belanger) #51915 - [
204018bba6
] - doc: deprecate --experimental-policy (RafaelGSS) #52602 - [
d32a914ac7
] - doc: add lint-js-fix into BUILDING.md (jakecastelli) #52290 - [
411503bacd
] - doc: remove Internet Explorer mention in BUILDING.md (Rich Trott) #52455 - [
e9ccf5aba2
] - doc: accommodate upcoming stricter .md linting (Rich Trott) #52454 - [
b4186ec2c1
] - doc: add Rafael to steward list (Rafael Gonzaga) #52452 - [
7b01bfb2be
] - doc: correct naming convention in C++ style guide (Mohammed Keyvanzadeh) #52424 - [
c82f3c9e80
] - doc: updateprocess.execArg
example to be more useful (Jacob Smith) #52412 - [
655b327a4d
] - doc: call out http(s).globalAgent default (mathis-west-1) #52392 - [
2c77be5488
] - doc: update the location ofbuild_with_cmake
(Emmanuel Ferdman) #52356 - [
7dd514f2db
] - doc: reserve 125 for Electron 31 (Shelley Vohr) #52379 - [
756acd0877
] - doc: use consistent plural form of "index" (Rich Trott) #52373 - [
ba07e4e5e6
] - doc: fix typo in cli.md (Daeyeon Jeong) #52388 - [
461d9d665d
] - doc: add Rafael to sec release stewards (Rafael Gonzaga) #52354 - [
d0c364a844
] - doc: document missing options of events.on (Chemi Atlow) #52080 - [
a63261cf2c
] - doc: add missing space (Augustin Mauroy) #52360 - [
dd711d221a
] - doc: add tips about vcpkg cause build faild on windows (Cong Zhang) #52181 - [
4df34cf6dd
] - doc: replace "below" with "following" (Rich Trott) #52315 - [
d9aa33fdbf
] - doc: fix email pattern to be wrapped with<<
instead of single<
(Raz Luvaton) #52284 - [
903f28e684
] - doc: update release gpg keyserver (marco-ippolito) #52257 - [
fd55458770
] - doc: add release key for marco-ippolito (marco-ippolito) #52257 - [
27493a1dd7
] - doc: fix arrow vertical alignment in HTML version (Akash Yeole) #52193 - [
af48641993
] - doc: move TSC members from regular to emeritus (Michael Dawson) #52209 - [
fa13ed6d79
] - doc: add section explaining todo tests (Colin Ihrig) #52204 - [
312ebd97c2
] - doc: editChildProcess
'message'
event docs (theanarkh) #52154 - [
f1635f442f
] - doc: quote test_runner glob parameters (Fabian Meyer) #52201 - [
fc029181df
] - doc: add mold to speeding up section (Cong Zhang) #52179 - [
8bd3cb2f8c
] - doc: http event order correction (wh0) #51464 - [
a7f170e45a
] - doc: move gabrielschulhof to TSC emeritus (Gabriel Schulhof) #52192 - [
305375ac16
] - doc: fix--env-file
docs for valid quotes for defining values (Gabriel Bota) #52157 - [
3fcaf7b900
] - doc: clarify what is supported in NODE_OPTIONS (Michael Dawson) #52076 - [
4fe87357f3
] - doc: fix typos in maintaining-dependencies.md (RoboSchmied) #52160 - [
f1949ac1ae
] - doc: add spec for contains module syntax (Geoffrey Booth) #52059 - [
707155424b
] - doc: optimize the doc about Unix abstract socket (theanarkh) #52043 - [
8a191e4e6a
] - doc: update pnpm link (Superchupu) #52113 - [
454d0806a1
] - doc: remove ableist language from crypto (Jamie King) #52063 - [
dafe004703
] - doc: update collaborator email (Ruy Adorno) #52088 - [
8824adb031
] - doc: state that removing npm is a non-goal (Geoffrey Booth) #51951 - [
b360532f1a
] - doc: mention NodeSource in RafaelGSS steward list (Rafael Gonzaga) #52057 - [
57d2e4881c
] - doc: remove ArrayBuffer from crypto.hash() data parameter type (fengmk2) #52069 - [
e11c1d2315
] - doc: add some commonly used lables up gront (Michael Dawson) #52006 - [
8f9f5db1e8
] - doc: document thatconst c2 = vm.createContext(c1); c1 === c2
is true (Daniel Kaplan) #51960 - [
d78a565713
] - doc: clarify what moderation issues are for (Antoine du Hamel) #51990 - [
4cac07c931
] - doc: add Hemanth HM mention to v21.7.0 changelog (Rafael Gonzaga) #52008 - [
73025c4dec
] - doc: add UlisesGascon as a collaborator (Ulises Gascón) #51991 - [
999c6b34fb
] - doc: test for cli options (Aras Abbasi) #51623 - [
edd6190836
] - doc: deprecate hmac public constructor (Marco Ippolito) #51881 - [
25c79f3331
] - esm: drop support for import assertions (Nicolò Ribaudo) #52104 - [
d619aab575
] - events: rename high & low watermark for consistency (Chemi Atlow) #52080 - [
e263946c2e
] - events: extract addAbortListener for safe internal use (Chemi Atlow) #52081 - [
40ef2da8d6
] - events: remove abort listener from signal inon
(Neal Beeken) #51091 - [
61e5de1268
] - fs: refactor maybeCallback function (Yagiz Nizipli) #52129 - [
39f1b899cd
] - fs: fix edge case in readFileSync utf8 fast path (Richard Lau) #52101 - [
639c096004
] - fs: validate fd from cpp onfchown
(Yagiz Nizipli) #52051 - [
9ac1fe05d7
] - fs: validate fd from cpp onclose
(Yagiz Nizipli) #52051 - [
3ec20f25df
] - fs: validate file mode from cpp (Yagiz Nizipli) #52050 - [
8c0b723ccb
] - fs,permission: make handling of buffers consistent (Tobias Nießen) #52348 - [
3fc8d2200e
] - http2: fix h2-over-h2 connection proxying (Tim Perry) #52368 - [
b9d8a14a03
] - http2: use internal addAbortListener (Chemi Atlow) #52081 - [
818c10e86d
] - lib: improve perf ofAbortSignal
creation (Raz Luvaton) #52408 - [
3f5ff8dc20
] - lib: .load .save add proper error message when no file passed (Thomas Mauran) #52225 - [
0a252c23d9
] - lib: fix type error for _refreshLine (Jackson Tian) #52133 - [
14de082ab4
] - lib: emit listening event once when call listen twice (theanarkh) #52119 - [
4e9ce7c035
] - lib: make sure clear the old timer in http server (theanarkh) #52118 - [
20525f14b9
] - lib: fix listen with handle in cluster worker (theanarkh) #52056 - [
8df54481f4
] - meta: bump actions/download-artifact from 4.1.3 to 4.1.4 (dependabot[bot]) #52314 - [
bcc102147a
] - meta: bump rtCamp/action-slack-notify from 2.2.1 to 2.3.0 (dependabot[bot]) #52313 - [
4e7e0ef9c3
] - meta: bump github/codeql-action from 3.24.6 to 3.24.9 (dependabot[bot]) #52312 - [
14a39881b8
] - meta: bump actions/cache from 4.0.1 to 4.0.2 (dependabot[bot]) #52311 - [
2f8f90dadb
] - meta: bump actions/setup-python from 5.0.0 to 5.1.0 (dependabot[bot]) #52310 - [
95efdaf01a
] - meta: bump codecov/codecov-action from 4.1.0 to 4.1.1 (dependabot[bot]) #52308 - [
24c1a8e739
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #52300 - [
60dcfad91e
] - meta: pass Codecov upload token to codecov action (Michaël Zasso) #51982 - [
db1746182b
] - module: disallow CJS <-> ESM edges in a cycle from require(esm) (Joyee Cheung) #52264 - [
d6b57f6629
] - module: centralize SourceTextModule compilation for builtin loader (Joyee Cheung) #52291 - [
f4a0a3b04b
] - module: warn on detection in typeless package (Geoffrey Booth) #52168 - [
8bc745944e
] - module: eliminate performance cost of detection for cjs entry (Geoffrey Booth) #52093 - [
63d04d4d80
] - module: fix detect-module not retrying as esm for cjs-only errors (Geoffrey Booth) #52024 - [
575ced8139
] - module: print location of unsettled top-level await in entry points (Joyee Cheung) #51999 - [
075c95f61f
] - module: refactor ESM loader initialization and entry point handling (Joyee Cheung) #51999 - [
45f0dd0192
] - module,win: fix long path resolve (Stefan Stojanovic) #51097 - [
d89fc73d45
] - net: use internal addAbortListener (Chemi Atlow) #52081 - [
f0e6acde2d
] - node-api: make tsfn accept napi_finalize once more (Gabriel Schulhof) #51801 - [
ff93f3e1a8
] - readline: use internal addAbortListener (Chemi Atlow) #52081 - [
4a6ca7a1d4
] - src: remove erroneous CVE-2024-27980 revert option (Tobias Nießen) #52543 - [
64b67779f7
] - src: disallow direct .bat and .cmd file spawning (Ben Noordhuis) nodejs-private/node-private#560 - [
9ef724bc81
] - src: update branch name in node_revert.h (Tobias Nießen) #52390 - [
ec1550407b
] - src: stop usingv8::BackingStore::Reallocate
(Michaël Zasso) #52292 - [
681b0a3df3
] - src: address coverity warning in module_wrap.cc (Michael Dawson) #52143 - [
04319228e0
] - src: fix move after use reported by coverity (Michael Dawson) #52141 - [
0eb2b727f6
] - src: return a number from process.constrainedMemory() constantly (Chengzhong Wu) #52039 - [
bec9b5fccc
] - src: use dedicated routine to compile function for builtin CJS loader (Joyee Cheung) #52016 - [
1f193165b9
] - src: fix reading empty string views in Blob[De]serializer (Joyee Cheung) #52000 - [
fb356b3305
] - src: refactor out FormatErrorMessage for error formatting (Joyee Cheung) #51999 - [
1a8ae9d6c0
] - src: use callback-based array iteration in Blob (Joyee Cheung) #51758 - [
5cd2ec8bd5
] - src: implement v8 array iteration using the new callback-based API (Joyee Cheung) #51758 - [
89a26b451e
] - src: fix node_version.h (Joyee Cheung) #50375 - [
c02de658a1
] - stream: make Duplex inherit destroy from Writable (Luigi Pinca) #52318 - [
63391e749d
] - stream: addnew
when constructingERR_MULTIPLE_CALLBACK
(haze) #52110 - [
a9528e87b9
] - stream: use internal addAbortListener (Chemi Atlow) #52081 - [
ee4fa77624
] - test: fix watch test with require not testing pid (Raz Luvaton) #52353 - [
05cb16dc1a
] - test: simplify ASan build checks (Michaël Zasso) #52430 - [
eb53121b77
] - test: fix Windows compiler warnings in overlapped-checker (Michaël Zasso) #52405 - [
7dfa4750af
] - test: add test for skip+todo combinations (Colin Ihrig) #52204 - [
5905596719
] - test: fix incorrect test fixture (Colin Ihrig) #52185 - [
bae14b7914
] - test: do not set concurrency on parallelized runs (Antoine du Hamel) #52177 - [
0b676736a0
] - test: add missing cctest/test_path.cc (Yagiz Nizipli) #52148 - [
c714cda9a7
] - test: addspawnSyncAndAssert
util (Antoine du Hamel) #52132 - [
978d5a26c9
] - test: reduce flakiness of test-runner-output.mjs (Colin Ihrig) #52146 - [
afaf889775
] - test: skip test for dynamically linked OpenSSL (Richard Lau) #52542 - [
be75821a12
] - test: add test for using--print
with promises (Antoine du Hamel) #52137 - [
4e109e5958
] - test: un-set test-emit-after-on-destroyed as flaky (Abdirahim Musse) #51995 - [
3f8cc88009
] - test_runner: fix clearing final timeout in own callback (Ben Richeson) #52332 - [
52f8dcfccc
] - test_runner: make end of work check stricter (Colin Ihrig) #52326 - [
433bd1b04d
] - test_runner: fix recursive run (Moshe Atlow) #52322 - [
e57992ffb2
] - test_runner: hide new line when no error in spec reporter (Moshe Atlow) #52297 - [
ac9e5e7527
] - test_runner: improve describe.only behavior (Moshe Atlow) #52296 - [
2c024cd24d
] - test_runner: disable highWatermark on TestsStream (Colin Ihrig) #52287 - [
7c02486f1f
] - test_runner: run afterEach hooks in correct order (Colin Ihrig) #52239 - [
6af4049810
] - test_runner: simplify test end time tracking (Colin Ihrig) #52182 - [
878047be0b
] - test_runner: simplify test start time tracking (Colin Ihrig) #52182 - [
4648c83dbc
] - test_runner: don't await the same promise for each test (Colin Ihrig) #52185 - [
f9755f6f79
] - test_runner: emit diagnostics when watch mode drains (Moshe Atlow) #52130 - [
4ba9f45d99
] - test_runner: ignore todo flag when running suites (Colin Ihrig) #52117 - [
6f4d6011ea
] - test_runner: skip each hooks for skipped tests (Colin Ihrig) #52115 - [
05db979c01
] - test_runner: run top level tests in a microtask (Colin Ihrig) #52092 - [
97b2c5344d
] - test_runner: remove redundant report call (Colin Ihrig) #52089 - [
780d030bdf
] - test_runner: use internal addAbortListener (Chemi Atlow) #52081 - [
814fa1ae74
] - test_runner: use source maps when reporting coverage (Moshe Atlow) #52060 - [
3c5764a0e2
] - test_runner: handle undefined test locations (Colin Ihrig) #52036 - [
328642bbb9
] - test_runner: use paths for test locations (Colin Ihrig) #52010 - [
6d625fe616
] - test_runner: support source mapped test locations (Colin Ihrig) #52010 - [
592c6907bf
] - test_runner: avoid overwriting root start time (Colin Ihrig) #52020 - [
29b231763e
] - test_runner: abort unfinished tests on async error (Colin Ihrig) #51996 - [
5d13419dbd
] - test_runner: run before hook immediately if test started (Moshe Atlow) #52003 - [
8451990668
] - test_runner: add support for null and date value output (Malthe Borch) #51920 - [
423ad47e0f
] - tools: change inactive limit to 12 months (Yagiz Nizipli) #52425 - [
0d1e64f64c
] - tools: update stale bot messaging (Wes Todd) #52423 - [
5bae73df90
] - tools: update lint-md-dependencies to rollup@4.14.0 (Node.js GitHub Bot) #52398 - [
468cb99ba4
] - tools: update Ruff to v0.3.4 (Michaël Zasso) #52302 - [
67b9dda003
] - tools: run test-ubsan on ubuntu-latest (Michaël Zasso) #52375 - [
f1f32d89e0
] - tools: update lint-md-dependencies to rollup@4.13.2 (Node.js GitHub Bot) #52286 - [
d7aa8fc9da
] - Revert "tools: runbuild-windows
workflow only on source changes" (Michaël Zasso) #52320 - [
a3b1fc3f27
] - tools: use Python 3.12 in GitHub Actions workflows (Michaël Zasso) #52301 - [
021cf91208
] - tools: allow local updates for llhttp (Paolo Insogna) #52085 - [
4d8602046e
] - tools: install npm PowerShell scripts on Windows (Luke Karrys) #52009 - [
081319d762
] - tools: update lint-md-dependencies to rollup@4.13.0 (Node.js GitHub Bot) #52122 - [
c43a944231
] - tools: fix error reported by coverity in js2c.cc (Michael Dawson) #52142 - [
f05b241f07
] - tools: sync ubsan workflow with asan (Michaël Zasso) #52152 - [
a21b15a14e
] - tools: update github_reporter to 1.7.0 (Node.js GitHub Bot) #52121 - [
d60a871db2
] - tools: remove gyp-next .github folder (Marco Ippolito) #52064 - [
6ad5353764
] - tools: update gyp-next to 0.16.2 (Node.js GitHub Bot) #52062 - [
dab85bdc06
] - tools: install manpage to share/man for FreeBSD (Po-Chuan Hsieh) #51791 - [
cde37e7b63
] - tools: automate gyp-next update (Marco Ippolito) #52014 - [
925a464cb8
] - url: remove #context from URLSearchParams (Matt Cowley) #51520 - [
893e2cf22b
] - watch: fix some node argument not passed to watched process (Raz Luvaton) #52358 - [
fec7e505fc
] - watch: use internal addAbortListener (Chemi Atlow) #52081 - [
4f68c7c1c9
] - watch: mark as stable (Moshe Atlow) #52074 - [
257f32296d
] - watch: batch file restarts (Moshe Atlow) #51992
facebook/react (react)
v19.0.0
Below is a list of all new features, APIs, deprecations, and breaking changes. Read React 19 release post and React 19 upgrade guide for more information.
Note: To help make the upgrade to React 19 easier, we’ve published a react@18.3 release that is identical to 18.2 but adds warnings for deprecated APIs and other changes that are needed for React 19. We recommend upgrading to React 18.3.1 first to help identify any issues before upgrading to React 19.
New Features
React
- Actions:
startTransition
can now accept async functions. Functions passed tostartTransition
are called “Actions”. A given Transition can include one or more Actions which update state in the background and update the UI with one commit. In addition to updating state, Actions can now perform side effects including async requests, and the Action will wait for the work to finish before finishing the Transition. This feature allows Transitions to include side effects likefetch()
in the pending state, and provides support for error handling, and optimistic updates. -
useActionState
: is a new hook to order Actions inside of a Transition with access to the state of the action, and the pending state. It accepts a reducer that can call Actions, and the initial state used for first render. It also accepts an optional string that is used if the action is passed to a formaction
prop to support progressive enhancement in forms. -
useOptimistic
: is a new hook to update state while a Transition is in progress. It returns the state, and a set function that can be called inside a transition to “optimistically” update the state to expected final value immediately while the Transition completes in the background. When the transition finishes, the state is updated to the new value. -
use
: is a new API that allows reading resources in render. In React 19,use
accepts a promise or Context. If provided a promise,use
will suspend until a value is resolved.use
can only be used in render but can be called conditionally. -
ref
as a prop: Refs can now be used as props, removing the need forforwardRef
. - Suspense sibling pre-warming: When a component suspends, React will immediately commit the fallback of the nearest Suspense boundary, without waiting for the entire sibling tree to render. After the fallback commits, React will schedule another render for the suspended siblings to “pre-warm” lazy requests.
React DOM Client
-
<form> action
prop: Form Actions allow you to manage forms automatically and integrate withuseFormStatus
. When a<form> action
succeeds, React will automatically reset the form for uncontrolled components. The form can be reset manually with the newrequestFormReset
API. -
<button> and <input> formAction
prop: Actions can be passed to theformAction
prop to configure form submission behavior. This allows using different Actions depending on the input. -
useFormStatus
: is a new hook that provides the status of the parent<form> action
, as if the form was a Context provider. The hook returns the values:pending
,data
,method
, andaction
. - Support for Document Metadata: We’ve added support for rendering document metadata tags in components natively. React will automatically hoist them into the
<head>
section of the document. - Support for Stylesheets: React 19 will ensure stylesheets are inserted into the
<head>
on the client before revealing the content of a Suspense boundary that depends on that stylesheet. - Support for async scripts: Async scripts can be rendered anywhere in the component tree and React will handle ordering and deduplication.
- Support for preloading resources: React 19 ships with
preinit
,preload
,prefetchDNS
, andpreconnect
APIs to optimize initial page loads by moving discovery of additional resources like fonts out of stylesheet loading. They can also be used to prefetch resources used by an anticipated navigation.
React DOM Server
- Added
prerender
andprerenderToNodeStream
APIs for static site generation. They are designed to work with streaming environments like Node.js Streams and Web Streams. UnlikerenderToString
, they wait for data to load for HTML generation.
React Server Components
- RSC features such as directives, server components, and server functions are now stable. This means libraries that ship with Server Components can now target React 19 as a peer dependency with a react-server export condition for use in frameworks that support the Full-stack React Architecture. The underlying APIs used to implement a React Server Components bundler or framework do not follow semver and may break between minors in React 19.x. See docs for how to support React Server Components.
Deprecations
- Deprecated:
element.ref
access: React 19 supports ref as a prop, so we’re deprecatingelement.ref
in favor ofelement.props.ref
. Accessing will result in a warning. -
react-test-renderer
: In React 19, react-test-renderer logs a deprecation warning and has switched to concurrent rendering for web usage. We recommend migrating your tests to @testing-library/react or @testing-library/react-native
Breaking Changes
React 19 brings in a number of breaking changes, including the removals of long-deprecated APIs. We recommend first upgrading to 18.3.1
, where we've added additional deprecation warnings. Check out the upgrade guide for more details and guidance on codemodding.
React
- New JSX Transform is now required: We introduced a new JSX transform in 2020 to improve bundle size and use JSX without importing React. In React 19, we’re adding additional improvements like using ref as a prop and JSX speed improvements that require the new transform.
- Errors in render are not re-thrown: Errors that are not caught by an Error Boundary are now reported to window.reportError. Errors that are caught by an Error Boundary are reported to console.error. We’ve introduced
onUncaughtError
andonCaughtError
methods tocreateRoot
andhydrateRoot
to customize this error handling. - Removed:
propTypes
: UsingpropTypes
will now be silently ignored. If required, we recommend migrating to TypeScript or another type-checking solution. - Removed:
defaultProps
for functions: ES6 default parameters can be used in place. Class components continue to supportdefaultProps
since there is no ES6 alternative. - Removed:
contextTypes
andgetChildContext
: Legacy Context for class components has been removed in favor of thecontextType
API. - Removed: string refs: Any usage of string refs need to be migrated to ref callbacks.
- Removed: Module pattern factories: A rarely used pattern that can be migrated to regular functions.
- Removed:
React.createFactory
: Now that JSX is broadly supported, allcreateFactory
usage can be migrated to JSX components. - Removed:
react-test-renderer/shallow
: This has been a re-export of react-shallow-renderer since React 18. If needed, you can continue to use the third-party package directly. We recommend using @testing-library/react or @testing-library/react-native instead.
React DOM
- Removed:
react-dom/test-utils
: We’ve movedact
fromreact-dom/test-utils
to react. All other utilities have been removed. - Removed:
ReactDOM
.render
,ReactDOM
.hydrate
: These have been removed in favor of the concurrent equivalents:ReactDOM
.createRoot
andReactDOM.hydrateRoot
. - Removed:
unmountComponentAtNode
: Removed in favor ofroot.unmount()
. - Removed:
ReactDOM
.findDOMNode
: You can replaceReactDOM
.findDOMNode
with DOM Refs.
Notable Changes
React
-
<Context>
as a provider: You can now render<Context>
as a provider instead of<Context.Provider>
. - Cleanup functions for refs: When the component unmounts, React will call the cleanup function returned from the ref callback.
-
useDeferredValue
initial value argument: When provided,useDeferredValue
will return the initial value for the initial render of a component, then schedule a re-render in the background with thedeferredValue
returned. - Support for Custom Elements: React 19 now passes all tests on Custom Elements Everywhere.
- StrictMode changes:
useMemo
anduseCallback
will now reuse the memoized results from the first render, during the second render. Additionally, StrictMode will now double-invoke ref callback functions on initial mount. - UMD builds removed: To load React 19 with a script tag, we recommend using an ESM-based CDN such as esm.sh.
React DOM
- Diffs for hydration errors: In the case of a mismatch, React 19 logs a single error with a diff of the mismatched content.
- Compatibility with third-party scripts and extensions: React will now force a client re-render to fix up any mismatched content caused by elements inserted by third-party JS.
TypeScript Changes
The most common changes can be codemodded with npx types-react-codemod@latest preset-19 ./path-to-your-react-ts-files
.
- Removed deprecated TypeScript types:
-
ReactChild
(replacement:React.ReactElement | number | string)
-
ReactFragment
(replacement:Iterable<React.ReactNode>
) -
ReactNodeArray
(replacement:ReadonlyArray<React.ReactNode>
) -
ReactText
(replacement:number | string
) -
VoidFunctionComponent
(replacement:FunctionComponent
) -
VFC
(replacement:FC
) - Moved to
prop-types
:Requireable
,ValidationMap
,Validator
,WeakValidationMap
- Moved to
create-react-class
:ClassicComponentClass
,ClassicComponent
,ClassicElement
,ComponentSpec
,Mixin
,ReactChildren
,ReactHTML
,ReactSVG
,SFCFactory
-
- Disallow implicit return in refs: refs can now accept cleanup functions. When you return something else, we can’t tell if you intentionally returned something not meant to clean up or returned the wrong value. Implicit returns of anything but functions will now error.
- Require initial argument to
useRef
: The initial argument is now required to matchuseState
,createContext
etc - Refs are mutable by default: Ref objects returned from
useRef()
are now always mutable instead of sometimes being immutable. This feature was too confusing for users and conflicted with legit cases where refs were managed by React and manually written to. - Strict
ReactElement
typing: The props of React elements now default tounknown
instead ofany
if the element is typed asReactElement
- JSX namespace in TypeScript: The global
JSX
namespace is removed to improve interoperability with other libraries using JSX. Instead, the JSX namespace is available from the React package:import { JSX } from 'react'
- Better
useReducer
typings: MostuseReducer
usage should not require explicit type arguments.
For example,
or-useReducer<React.Reducer<State, Action>>(reducer) +useReducer(reducer)
-useReducer<React.Reducer<State, Action>>(reducer) +useReducer<State, Action>(reducer)
All Changes
React
- Add support for async Actions (#26621, #26726, #28078, #28097, #29226, #29618, #29670, #26716 by @acdlite and @sebmarkbage)
- Add
useActionState()
hook to update state based on the result of a Form Action (#27270, #27278, #27309, #27302, #27307, #27366, #27370, #27321, #27374, #27372, #27397, #27399, #27460, #28557, #27570, #27571, #28631, #28788, #29694, #29695, #29694, #29665, #28232, #28319 by @acdlite, @eps1lon, and @rickhanlonii) - Add
use()
API to read resources in render (#25084, #25202, #25207, #25214, #25226, #25247, #25539, #25538, #25537, #25543, #25561, #25620, #25615, #25922, #25641, #25634, #26232, #26536, #26739, #28233 by @acdlite, @MofeiZ, @sebmarkbage, @sophiebits, @eps1lon, and @hansottowirtz) - Add
useOptimistic()
hook to display mutated state optimistically during an async mutation (#26740, #26772, #27277, #27453, #27454, #27936 by @acdlite) - Added an
initialValue
argument touseDeferredValue()
hook (#27500, #27509, #27512, #27888, #27550 by @acdlite) - Support refs as props, warn on
element.ref
access (#28348, #28464, #28731 by @acdlite) - Support Custom Elements (#22184, #26524, #26523, #27511, #24541 by @josepharhar, @sebmarkbage, @gnoff and @eps1lon)
- Add ref cleanup function (#25686, #28883, #28910 by @sammy-SC, @jackpope, and @kassens)
- Sibling pre-rendering replaced by sibling pre-warming (#26380, #26549, #30761, #30800, #30762, #30879, #30934, #30952, #31056, #31452 by @sammy-SC, @acdlite, @gnoff, @jackpope, @rickhanlonii)
- Don’t rethrow errors at the root (#28627, #28641 by @sebmarkbage)
- Batch sync discrete, continuous, and default lanes (#25700 by @tyao1)
- Switch
<Context>
to mean<Context.Provider>
(#28226 by @gaearon) - Changes to StrictMode
- Handle
info
,group
, andgroupCollapsed
in StrictMode logging (#25172 by @timneutkens) - Refs are now attached/detached/attached in StrictMode (#25049 by @sammy-SC)
- Fix
useSyncExternalStore()
hydration in StrictMode (#26791 by @sophiebits) - Always trigger
componentWillUnmount()
in StrictMode (#26842 by @tyao1) - Restore double invoking
useState()
anduseReducer()
initializer functions in StrictMode (#28248 by @eps1lon) - Reuse memoized result from first pass (#25583 by @acdlite)
- Fix
useId()
in StrictMode (#25713 by @gnoff) - Add component name to StrictMode error messages (#25718 by @sammy-SC)
- Handle
- Add support for rendering BigInt (#24580 by @eps1lon)
-
act()
no longer checksshouldYield
which can be inaccurate in test environments (#26317 by @acdlite) - Warn when keys are spread with props (#25697, #26080 by @sebmarkbage and @kassens)
- Generate sourcemaps for production build artifacts (#26446 by @markerikson)
- Improve stack diffing algorithm (#27132 by @KarimP)
- Suspense throttling lowered from 500ms to 300ms (#26803 by @acdlite)
- Lazily propagate context changes (#20890 by @acdlite and @gnoff)
- Immediately rerender pinged fiber (#25074 by @acdlite)
- Move update scheduling to microtask (#26512 by @acdlite)
- Consistently apply throttled retries (#26611, #26802 by @acdlite)
- Suspend Thenable/Lazy if it's used in React.Children (#28284 by @sebmarkbage)
- Detect infinite update loops caused by render phase updates (#26625 by @acdlite)
- Update conditional hooks warning (#29626 by @sophiebits)
- Update error URLs to go to new docs (#27240 by @rickhanlonii)
- Rename the
react.element
symbol toreact.transitional.element
(#28813 by @sebmarkbage) - Fix crash when suspending in shell during
useSyncExternalStore()
re-render (#27199 by @acdlite) - Fix incorrect “detected multiple renderers" error in tests (#22797 by @eps1lon)
- Fix bug where effect cleanup may be called twice after bailout (#26561 by @acdlite)
- Fix suspending in shell during discrete update (#25495 by @acdlite)
- Fix memory leak after repeated setState bailouts (#25309 by @acdlite)
- Fix
useSyncExternalStore()
dropped update when state is dispatched in render phase (#25578 by @pandaiolo) - Fix logging when rendering a lazy fragment (#30372 by @tom-sherman)
- Remove string refs (#25383, #28322 by @eps1lon and @acdlite)
- Remove Legacy Context (#30319 by @kassens)
- Remove
RefreshRuntime.findAffectedHostInstances
(#30538 by @gaearon) - Remove client caching from
cache()
API (#27977, #28250 by @acdlite and @gnoff) - Remove
propTypes
(#28324, #28326 by @gaearon) - Remove
defaultProps
support, except for classes (#28733 by @acdlite) - Remove UMD builds (#28735 by @gnoff)
- Remove delay for non-transition updates (#26597 by @acdlite)
- Remove
createFactory
(#27798 by @kassens)
React DOM
- Adds Form Actions to handle form submission (#26379, #26674, #26689, #26708, #26714, #26735, #26846, #27358, #28056 by @sebmarkbage, @acdlite, and @jupapios)
- Add
useFormStatus()
hook to provide status information of the last form submission (#26719, #26722, #26788, #29019, #28728, #28413 by @acdlite and @eps1lon) - Support for Document Metadata. Adds
preinit
,preinitModule
,preconnect
,prefetchDNS
,preload
, andpreloadModule
APIs.- #25060, #25243, #25388, #25432, #25436, #25426, #25500, #25480, #25508, #25515, #25514, #25532, #25536, #25534, #25546, #25559, #25569, #25599, #25689, #26106, #26152, #26239, #26237, #26280, #26154, #26256, #26353, #26427, #26450, #26502, #26514, #26531, #26532, #26557, #26871, #26881, #26877, #26873, #26880, #26942, #26938, #26940, #26939, #27030, #27201, #27212, #27217, #27218, #27220, #27224, #27223, #27269, #27260, #27347, #27346, #27361, #27400, #27541, #27610, #28110, #29693, #29732, #29811, #27586, #28069 by @gnoff, @sebmarkbage, @acdlite, @kassens, @sokra, @sweetliquid
- Add
fetchPriority
to<img>
and<link>
(#25927 by @styfle) - Add support for SVG
transformOrigin
prop (#26130 by @arav-ind) - Add support for
onScrollEnd
event (#26789 by @devongovett) - Allow
<hr>
as child of<select>
(#27632 by @SouSingh) - Add support for Popover API (#27981 by @eps1lon)
- Add support for
inert
(#24730 by @eps1lon) - Add support for
imageSizes
andimageSrcSet
(#22550 by @eps1lon) - Synchronously flush transitions in popstate events (#26025, #27559, #27505, #30759 by @tyao1 and @acdlite)
-
flushSync
exhausts queue even if something throws (#26366 by @acdlite) - Throw error if
react
andreact-dom
versions don’t match (#29236 by @acdlite) - Ensure
srcset
andsrc
are assigned last on<img>
instances (#30340 by @gnoff) - Javascript URLs are replaced with functions that throw errors (#26507, #29808 by @sebmarkbage and @kassens)
- Treat toggle and beforetoggle as discrete events (#29176 by @eps1lon)
- Filter out empty
src
andhref
attributes (unless for<a href=”” />
) (#18513, #28124 by @bvaughn and @eps1lon) - Fix unitless
scale
style property (#25601 by @JonnyBurger) - Fix
onChange
error message for controlled<select>
(#27740 by @Biki-das) - Fix focus restore in child windows after element reorder (#30951 by @ling1726)
- Remove
render
,hydrate
,findDOMNode
,unmountComponentAtNode
,unstable_createEventHandle
,unstable_renderSubtreeIntoContainer
, andunstable_runWithPriority
. MovecreateRoot
andhydrateRoot
toreact-dom/client
. (#28271 by @gnoff) - Remove
test-utils
(#28541 by @eps1lon) - Remove
unstable_flushControlled
(#26397 by @kassens) - Remove legacy mode (#28468 by @gnoff)
- Remove
renderToStaticNodeStream()
(#28873 by @gnoff) - Remove
unstable_renderSubtreeIntoContainer
(#29771 by @kassens)
React DOM Server
- Stable release of React Server Components (Many, many MRs by @sebmarkbage, @acdlite, @gnoff, @sammy-SC, @gaearon, @sophiebits, @unstubbable, @lubieowoce)
- Support Server Actions (#26124, #26632, #27459 by @sebmarkbage and @acdlite)
- Changes to SSR
- Add external runtime which bootstraps hydration on the client for binary transparency (#25437, #26169, #25499 by @MofeiZ and @acdlite)
- Support subresource integrity for
bootstrapScripts
andbootstrapModules
(#25104 by @gnoff) - Fix null bytes written at text chunk boundaries (#26228 by @sophiebits)
- Fix logic around attribute serialization (#26526 by @gnoff)
- Fix precomputed chunk cleared on Node 18 (#25645 by @feedthejim)
- Optimize end tag chunks (#27522 by @yujunjung)
- Gracefully handle suspending in DOM configs (#26768 by @sebmarkbage)
- Check for nullish values on ReactCustomFormAction (#26770 by @sebmarkbage)
- Preload
bootstrapModules
,bootstrapScripts
, and update priority queue (#26754, #26753, #27190, #27189 by @gnoff) - Client render the nearest child or parent suspense boundary if replay errors or is aborted (#27386 by @sebmarkbage)
- Don't bail out of flushing if we still have pending root tasks (#27385 by @sebmarkbage)
- Ensure Resumable State is Serializable (#27388 by @sebmarkbage)
- Remove extra render pass when reverting to client render (#26445 by @acdlite)
- Fix unwinding context during selective hydration (#25876 by @tyao1)
- Stop flowing and then abort if a stream is cancelled (#27405 by @sebmarkbage)
- Pass cancellation reason to abort (#27536 by @sebmarkbage)
- Add
onHeaders
entrypoint option (#27641, #27712 by @gnoff) - Escape
<style>
and<script>
textContent to enable rendering inner content without dangerouslySetInnerHTML (#28870, #28871 by @gnoff) - Fallback to client replaying actions for Blob serialization (#28987 by @sebmarkbage)
- Render Suspense fallback if boundary contains new stylesheet during sync update (#28965 by @gnoff)
- Fix header length tracking (#30327 by @gnoff)
- Use
srcset
to trigger load event on mount (#30351 by @gnoff) - Don't perform work when closing stream (#30497 by @gnoff)
- Allow aborting during render (#30488, #30730 by @gnoff)
- Start initial work immediately (#31079 by @gnoff)
- A transition flowing into a dehydrated boundary no longer suspends when showing fallback (#27230 by @acdlite)
- Fix selective hydration triggers false update loop error (#27439 by @acdlite)
- Warn for Child Iterator of all types but allow Generator Components (#28853 by @sebmarkbage)
- Include regular stack trace in serialized errors (#28684, #28738 by @sebmarkbage)
- Aborting early no longer infinitely suspends (#24751 by @sebmarkbage)
- Fix hydration warning suppression in text comparisons (#24784 by @gnoff)
- Changes to error handling in SSR
- Add diffs to hydration warnings (#28502, #28512 by @sebmarkbage)
- Make Error creation lazy (#24728 by @sebmarkbage)
- Remove recoverable error when a sync update flows into a dehydrated boundary (#25692 by @sebmarkbage)
- Don't "fix up" mismatched text content with suppressedHydrationWarning (#26391 by @sebmarkbage)
- Fix component stacks in errors (#27456 by @sebmarkbage)
- Add component stacks to
onError
(#27761, #27850 by @gnoff and @sebmarkbage) - Throw hydration mismatch errors once (#28502 by @sebmarkbage)
- Add Bun streaming server renderer (#25597 by @colinhacks)
- Add nonce support to bootstrap scripts (#26738 by @danieltott)
- Add
crossorigin
support to bootstrap scripts (#26844 by @HenriqueLimas) - Support
nonce
andfetchpriority
in preload links (#26826 by @liuyenwei) - Add
referrerPolicy
toReactDOM.preload()
(#27096 by @styfle) - Add server condition for
react/jsx-dev-runtime
(#28921 by @himself65) - Export version (#29596 by @unstubbable)
- Rename the secret export of Client and Server internals (#28786, #28789 by @sebmarkbage)
- Remove layout effect warning on server (#26395 by @rickhanlonii)
- Remove
errorInfo.digest
fromonRecoverableError
(#28222 by @gnoff)
ReactTestRenderer
- Add deprecation error to
react-test-renderer
on web (#27903, #28904 by @jackpope and @acdlite) - Render with ConcurrentRoot on web (#28498 by @jackpope)
- Remove
react-test-renderer/shallow
export (#25475, #28497 by @sebmarkbage and @jackpope)
React Reconciler
- Enable suspending commits without blocking render (#26398, #26427 by @acdlite)
- Remove
prepareUpdate
(#26583, #27409 by @sebmarkbage and @sophiebits)
React-Is
- Enable tree shaking (#27701 by @markerikson)
- Remove
isConcurrentMode
andisAsyncMode
methods (#28224 by @gaearon)
useSyncExternalStore
- Remove React internals access (#29868 by @phryneas)
- Fix stale selectors keeping previous store references (#25969 by @jellevoost)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This MR will be recreated if closed unmerged. Get config help if that's undesired.
- [ ] If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.