v13.5.1
Core Changes
- Update font data: #54257
- add experimental https support to next dev: #54016
- Fix emotion-js transform for server components: #54284
- Handle basePath for redirect(): #54277
- Remove unused array in router-server: #54278
- app-router: tweak prefetch cache status heuristics: #53864
- Adds nonce to preinit scripts: #54059
- Fix default export of server action utility aliases: #54254
- fix: improve error message when
output: export
in app router: #54202 - ci(trace): allow to opt in to upload full trace: #54347
- fix: server actions blocking navigation events: #54307
- Skip getStaticPaths check for non-dynamic app routes: #54351
- OpenTel: ensure that exceptions are recorded on an active span: #54131
- Testmode: intercept rewrite fetches: #54259
- Polyfill Array.prototype.at: #44436
- Fix missing locale info for middleware data request: #54357
- fix: minimum node version 16.14.0: #54331
- Merge app renderer process: #54143
- Fix data route ordering in dev: #54364
- fix(app): enable React Strict Mode by default: #53375
- Fix swc compiling of client components when directive appears later than exports: #54392
- Upgrade vendored react: #54399
- Code clean up: #54405
- Upgrade precompiled
ua-parser-js
: #54404 - Fix compilation of next/dynamic with
ssr: false
in App Router: #54411 - refactor: Use swc AST to determine use client and server directives: #54358
- Fix not found css not being preloaded while navigation: #53906
- Optimize webpack memory cache garbage collection: #54397
- Use push for Server Action redirections: #54458
- Decreased watchpack aggregate timeout: #54461
- Generate prefetch RSC paylod during build for SSR paths: #54403
- remove HMR polling in favor of more targeted events: #54406
- Trace upload fixup: #54455
- fix: custom incremental cache handlers should work when transpiled: #54472
- upgrade Edge Runtime dependency: #54489
- fix infinite navigate events when Promise is proxied: #54394
- Implement
named_import_transform
: #54530 - fix resolve routes behavior when matching a dynamic segment: #54539
- Turbopack: add edge support for pages apis: #54449
- chore(eslint): bump ESLint plugins: #54490
- Skip copying signal field for revalidate: #54533
- Fix missing new line for certain logs: #54442
- update turbopack: #54558
- fix(DX): More precise error messages for export const config deprecation: #54492
- Revert "Decreased watchpack aggregate timeout": #54515
- Forms and mutations docs.: #54314
optimize_barrel
SWC transform and newoptimizePackageImports
config: #54572- Reuse edgeConditionNames variable: #54594
- Update font data: #54585
- Add cleanup logic to worker.ts: #54500
- chore: add extra error info for rsc info helper: #54609
- Fix router CPU profiling: #54497
- Turbopack: add middleware support for next.rs api dev mode: #54555
- Rename hot-reloader to hot-reloader-webpack: #54628
- Implement hot-reloader interface: #54629
- Remove this as any cases: #54642
- Implement hot reloader interface for Turbopack: #54632
- Fix weight values above 900 not working with Google Fonts: #54339
- add support for app pages to next.rs api: #54668
- Remove unused cssnano-simple file: #54658
- File Reader Improvements: #54645
- Add new
permanentRedirect
function in App Router: #54047 - Default app router not found : #54199
- Cleanup of /_next/data handling in server: #54689
- Trace uploader: fix git binary on windows: #54580
- fix(next/image): import error
preload
is not exported fromreact-dom
: #54688 - turbopack: should only create _not-found when path_prefix is root: #54687
- fix app routes: #54701
- refactor: share utils and optimize segments normalization: #54611
- Improve barrel optimizer with loader caching and wilcard exports: #54695
- Move getBabelConfigFile to separate file: #54716
- Reimplement getBabelConfigFile to be simpler: #54741
- Fix memory watcher reboot: #54760
- Misc Typescript updates: #54734
- Fix unexpected full hmr reload when editing _app: #54690
- update turbopack: #54768
- Use variable for common isNodeOrEdgeCompilation condition: #54763
- Turbopack: Implement HMR in next-api : #54772
- Add
@visx/visx
to the import optimization list: #54778 - Remove experimental.appDir as it's stable: #54785
- Short circut 404's for /favicon.ico in development: #54747
- Remove additional appDir checks: #54788
- Remove experimental.pageEnv: #54789
- Update list of Next.js options in next.rs: #54798
- Fixes for Turbopack HMR: #54790
- Fix the build manifest path for
/
: #54744 - Allow any number of onFetch handlers for a single test: #54846
- Update @vercel/og to latest: #54849
- fix(turbopack): edge api entry path should not have
/route
suffix: #54851 - Don't send tracing spans if performance.measure doesn't return measurements: #54808
- Fix performance measures crashing the app #54858
- Update tag handling for app cache: #53321
- Simplify getPagePaths logic: #54908
- Debug tracing: time devserver startup: #54537
- Update turbopack: #54909
- Add types for hot reloader send method: #54932
- Fix typo in hot-reloader: #54944
- Ensure that barrel files behind wildcards are transformed into shortpath: #54951
- Fix group routes custom root not-found: #54931
- fix: server actions firing twice after navigation: #54948
- docs: fix document format for next_private_export_map: #54952
- Unify serverError hmr event: #54962
- Add serverError action to list of HMR events: #54964
- fix(next-swc): skips client/server only checks when running with Jest to unblock testing: #54891
- Remove pong HMR event as it is not used: #54965
- Add turbopack-connected HMR event: #54976
- Redesign nextjs logging: #54713
- chore: bump
undici
: #55007 - chore: restore options to opt-in for server-side transpilation: #55010
- upgrade edge-runtime: #55005
- [functions-config-manifest] use correct extra config for pages router: #54786
- Client-side HMR message types: #55009
- perf: use split chunks for the node server: #54988
- Remove
react-hot-toast
from the optimizePackageImports list: #55029 - Experimental server optimization: #54925
- Fix duplicated dynamic metadata routes in dev mode: #55026
- Adjust
optimizePackageImports
: #55040 - server: enable minification by default: #54960
- webpack: tweak config for split chunks: #55054
- fix(perf): lazy load
babel/code-frame
: #55024 - remove --turbo, use --experimental-turbo as --turbo: #55063
- fix:
skipTrailingSlashRedirect
being ignored inpages
: #55067 - Debug tracing: include session and anonymous ids: #55021
- Next SWC: Constrain Vc cell values with
Send
: #55077 - test(next-dev): migrate styled-jsx integration test: #55079
- perf: add bundled rendering runtimes: #52997
- chore: add structured app page path type: #55070
- Fixed i18n data route RegExp: #55109
- chore: upgrade to TypeScript 5.2.2: #55105
- fix: ensure mpa navigation render side effects are only fired once: #55032
- Revert "perf: add bundled rendering runtimes (#52997)": #55117
- Strip internal routing headers: #55114
- Add option to support log full request url in verbose mode: #55111
- Filter out pages tree view for app dir only output: #55120
- Check for type of route handler returned value at build time (via the TS plugin) and at runtime: #51394
- Set test headers via page.router API: #55087
- server: re-land bundled runtimes: #55139
- feat(turbopack): add dynamic metadata support: #54995
- server: require hook hotfix : #55146
- Revert swc versions to one that doesn't use lightningcss: #55148
- feat: support expanding urls in nexturbo (and fix static files): #55147
- Update font data: #55155
- server: remove turbopack-specific code when compiling with webpack: #55226
- Ensure
ImageResponse
extendsResponse
: #55187 - Remove render workers in favor of esm loader: #54813
- test(turbopack): migrate 404-related tests from next-dev: #55243
- feat: add reserved port validation: #55237
- build: fix externals resolution when importing from next/dist: #55269
- Make open editor icon size non-shrink in error overlay: #55273
- build: fix minimal trace caching: #55279
- reafactor: renamed pathname -> page: #55282
- feat(next-dev): reenable turbopack beta message: #55116
- Add libsql to external package list: #55266
- fix: removed unused intercepting route definition references: #55285
- refactor(next-font): use next-transform-font: #55252
- Remove unused option and unified ready message into start server: #55289
- remove
--experimental-turbo
from supported next-dev args: #55300 - test(next-dev): clean up 404 tests: #55292
- Use NextJsHotReloaderInterface in router-server: #55317
- server: switch pages to react dom edge renderer: #55318
- Logging improvements: #55298
- Updates Mozilla links to not include language preference: #55326
- fix
react-server-dom-webpack
cache invalidation: #55287 - docs: add explicit units to isrMemoryCacheSize option: #55108
- feat(turbopack): attach type metadata for static metadata item: #55340
- fix duplicated error logging when start server: #55328
- Revert react-server-dom require change: #55345
- fix turbopack HMR, fix disconnect detection: #55361
- Fix CPU profile generation: #55365
- fix memory leak in require.cache cleanup: #55377
- WEB-1135: Update examples and schema for Turbopack loaders config change: #54584
- feat(turbopack): support next.js specific node polyfills: #55343
- Turbopack: Allow Pages entrypoint template to import user's
.ts
files: #55296 - Revert "feat(turbopack): support next.js specific node polyfills": #55385
- Remove leftover worker code and types: #55383
- run validation logic for TURBOPACK too: #55379
- more turbopack HMR fixes and test case: #55368
- Revert "Revert react-server-dom require change": #55382
- Set standalone server default hostname to
0.0.0.0
: #54445 - Revert "Revert "feat(turbopack): support next.js specific node polyfills"": #55392
- Update React from dd480ef92 to d6dcad6a8.: #55399
- Memoize serverDistDir generation: #55375
- Remove IncomingMessage type where unused: #55387
- Remove unused file: #55378
- Update useParams typing to assume a given shape: #55126
- Remove setLazyProp from the hot path of all requests: #55391
- fix: server actions initiated from static pages: #51534
- Turbopack: log hmr compile changes: #55406
- fix: server actions initiated from static pages: #51534
- Turbopack: log hmr compile changes: #55406
- Update turbopack: #55402
- fix: sort imports to ensure consistent hash: #55358
- fix manifest load errors when using assetPrefix: #55416
- Turbopack: remap
next/head
on client in App Pages: #55419 - Ensure etags are not generated for static files when disabled: #55376
- use atomic writes to avoid seeing incomplete files: #55424
- fix server-side changes events: #55437
- server: bundle vendored react: #55362
- fix: move sort to loader to also sort query string: #55425
- Don't log error about root_task_dispose: #55458
- Skip JSON.parse in loadClientReferenceManifest: #55457
- Restrict useFormState in Server Components: #55417
- Generate middlewareManifestPath only once: #55489
- Test Mode: report onFetch interceptions in the test: #55456
- Turbopack: Setup HMR for client-only changes in App dir: #55464
- Remove esm loader: #55509
- update turbopack: #55515
- Remove process.env reading in require hook: #55520
- Allow server-only in server targets and client-only in client components targets to be available: #55394
- Make useSearchParams and useParams compatible between app and pages router: #55280
- fix(next-core): enable image extensions: #55460
- build: add aliases for react-dom/server usage in server bundles: #55536
- fix: run turbopack in forked process: #55545
- fix next.js own build on windows: #55544
- Fix notFound status code with ISR in app: #55542
- Disable client-only for middleware and pages api layer: #55541
- Fix missing module.compiled trace file and unhandledRejection in ensurePage: #55553
- Add
mui-core
to the defaultoptimizePackageImports
list: #55554 - Consolidate experimental React opt-in & add
ppr
flag: #55560 - Add react-icons to optimizePackageImports: #55572
- Fix useState function initialiser case for
optimize_server_react
transform: #55551 - Update supported config options for Turbopack: #55556
- Fix react packages are not bundled for metadata routes: #55579
- improve internal error logging: #55582
- fix styled-jsx alias: #55581
Documentation Changes
- docs: Bump minimum Node.js version to 16.14: #54285
- Docs: Fix broken links: #54340
- Docs: Add notes that revalidation is not available in the Edge runtime / only Node.js: #54338
- Docs: Update template.js section: #54370
- Docs: Clarify status codes w/ streaming: #54374
- Docs: Document
manifest
metadata file: #54380 - Docs: Refer users to IDE or MDN for manifest object options: #54385
- Docs: Remove runtime configuration from /app docs: #54336
- docs: Remove unneeded word in caching docs: #54451
- docs: Add
next-i18n-router
as a resource for internationalized routing: #52344 - Update 10-testing.mdx: #54107
- docs: Rewrite Rendering Section and React Essentials Page: #51579
- Docs: Fix formatting issues in the rendering docs: #54517
- docs: fix broken link missing leading slash: #54520
- docs: Add missing parameters to both
useSelectedLayoutSegment
&useSelectedLayoutSegments
: #53602 - chore(docs): add example of sanity image to
loaderFile
config: #54529 - docs: fix source files hash calculation: #54509
- docs: update 10-route-handlers.mdx: #54605
- Docs: Update Edge runtime and data revalidation information: #54499
- Update revalidatePath to revalidateTag: #54633
- docs: Add JS code snippets for forms: #54577
- docs: updates generateMetadata function signature: #54638
- docs: fix small typo: #54656
- Update revalidatePath.mdx: #54631
- Fixed typo in Building your application > 03. Rendering section: #54764
- (Docs) Add missing JS-Code, cookies function names updated accordingly.: #54703
- docs: clarify data type in Forms and Mutations section: #54630
- docs: Change Vite guide title: #54774
- docs: remove typo in
use-selected-layout-segments.mdx
: #54767 - chore: verify missing/invalid/private reproduction links: #54724
- docs: fix syntax error in i18n example code block: #54749
- docs: Add JS/TS code switchers to Middleware: #54726
- docs: define router instance in code block: #54707
- Fix typo in description of error.js: #54933
- docs: Minor formatting fix in Pages Router SSG: #54915
- docs: add
maxDuration
in API Routes config: #54844 - docs: add missing word in client components: #54830
- docs: Clarify the ability to access current route segments in layouts: #53349
- docs: Update Vercel YouTube channel url: #54912
- docs: Move general info about next.config.* to its index page: #53542
- docs: Fix typo in app/building-your-application/caching: #54841
- docs: Add template API reference: #54938
- Update eslint dependencies note in docs: #55023
- docs: Fix typo in getting-started/project-structure: #55035
- docs: fix typo: #54973
- docs: add missing quotation mark: #54968
- docs: Remove
app
reference onpages
doc for runtimes.: #55058 - docs: example of generated nonce to use base64 encoding as per spec: #55039
- Update 01-server-components.mdx: #55085
- docs: fix nested list: #55178
- docs: use
satisfies
for TypeScript code blocks: #55205 - docs: satisfies follow up: #55234
- Fix typo: #55245
- docs: clarify setting cookies docs: #55149
- Update docs for revalidatePath fix: #55083
- Update route-segment-config.mdx for fix broken link: #55212
- docs: Add some App Router FAQs: #55186
- Update 03-forms-and-mutations.mdx: #55386
- docs:
optimizePackageImports
: #55185 - docs: Update streaming section.: #55408
- Add route groups example to revalidatePath doc: #55543
- chore: Fix heading hierarchy in revalidateTag documentation: #55470
- chore: replace issue triaing actions with
nissuer
: #55525
Example Changes
- Update Contentful example for App Router.: #54205
- set hostname to 0.0.0.0: #54342
- (Example) Add CMS Sitecore XM Cloud Example: #54535
- updated sitecore deploy button: #54678
- (Example) Update with-segment-analytics to use segmentio/analytics-next and app layout: #52327
- update dependencies: #53334
- example: Add
elements.update()
to ensure latest payment amount is reflected: #54848 - fix: Fix grammar issues on README.md: #54921
- Fix: slug type issue: #54616
- chore: upgrade playwright example: #53584
- Update Jest and Vitest example for App Router.: #54989
- examples: Update strict-csp example with better nonce: #55131
- Fix/security: #55189
- examples: upgrade @makeswift/runtime from 0.2.2 to 0.10.13: #55203
- examples: update KeystoneJS version: #55201
- fix: upgrade recoil from 0.7.6 to 0.7.7: #55222
- chore(examples): upgrade
@keystone-next/keystone
: #55210 - fix: upgrade date-fns from 2.28.0 to 2.30.0: #55274
- fix: upgrade sharp from 0.29.3 to 0.32.5: #55254
- fix: upgrade react-native-web from 0.11.7 to 0.19.7: #55221
- fix: upgrade @emotion/css from 11.10.0 to 11.11.2: #55352
- example: fix example error: #54599
- fix: examples/cms-keystonejs-embedded/package.json to reduce vulnerabilities: #55354
- Hotfix for missing application/json header in Prepr example: #55517
- Type Error on Event Type payment_intent webhook: #55493
- Correct spelling in playwright docs: #55557
Misc Changes
- Add test for using custom font in metadata image routes: #54274
- Update
swc_core
tov0.79.69
: #54190 - docs: update a small typo in
02-app/01-building-your-application/06-optimizing/01-images.mdx
: #54311 - update readme in nextjs testing: #54322
- add test case for CSP with bootstrap scripts and preinit modules: #54348
- Fix windows next-swc builds: #54353
- test: add case for marking _document with edge runtime: #54316
- Update timeout for release stats: #54363
- Update
swc_core
tov0.79.70
: #54368 - chore(ci): add socket.yaml: #54446
- Update install-native script to avoid pnpm cache: #54462
- Fix failing TS test from new release: #54523
- Enable verbose logging for turbo in CI: #54525
- Update flakey image component tests: #54526
- Update runner labels for PR stats: #54524
- chore(ci): emit env vars that impact ci results: #54534
- Break-up install and build steps for PR stats: #54536
- Update release stats install/build executing: #54576
- Add missing install env for release stats: #54581
- modify bench scripts to not conflict with dev task: #54600
- Implement granular rust caching: #54582
- chore: update gitattributes with linguist-vendored: #54683
- Consider cargo config in granular cache key: #54700
- Updating Third party capital version. : #54418
- chore: label invalid issues: #54826
- chore: update triaging docs: #54828
- use pnpm for
next-with-deps
: #54847 - chore: fix autolabeler: #54916
- Update codeowners: #54966
- Update ready check for PR stats: #55022
- chore(ci): bump pnpm v8.6.11 to v8.7.1: #54873
- test: merge base path tests: #55069
- Update pull_request_template.md: #55098
- Reenable app-static usePathname tests: #55065
- enable all passing turbopack tests for CI: #55100
- test(nexttestsetup): teardown nextinstance gracefully: #55144
- tests(next-dev): migrate basic tailwind tests for turbopack: #55118
- test(fixture): improve finding ports to reduce flaky: #55151
- Test with latest
node@18
: #54000 - fix: upgrade listr2 from 5.0.5 to 5.0.8: #55223
- Update codeowners: #55355
- fix: added support for tests to add resolutions for deps: #55398
- Update
swc_core
tov0.83.12
: #55216 - add test for turbopack refresh error: #55447
- fix inconsistency with pnpm lockfile: #55440
- chore: remove replay from issue template: #55397
- test(integration): fix --turbo tests fixture setup: #55293
- Disable flakey middleware-dev-error test: #55539
- test(turbopack): enable async storage tests: #55413
- docs: add bun run dev command to template readme for create-next-app: #55504
- chore(third-parties): replace rimraf with rm.mjs: #55547
Credits
Huge thanks to @ztanner, @huozhi, @icyJoseph, @kdy1, @timneutkens, @feedthejim, @nbhargava, @shuding, @lauthieb, @leerob, @styfle, @tonskton, @delbaoliveira, @m4salah, @gnoff, @kwonoj, @ijjk, @dvoytenko, @sloanesturz, @balazsorban44, @wyattjoh, @wbinnssmith, @dcporter44, @Kikobeats, @uzairali001, @A7med3bdulBaset, @sokra, @ClementDreptin, @vvo, @Vector73, @ah100101, @chanyeinthaw, @emiliosheinz, @dikaio, @indraantoor, @steven-tey, @krychaxp, @smaeda-ks, @janicklas-ralph, @EdPutans, @vinaykulk621, @michaelangeloio, @mateuszaliyev, @lukebussey, @jridgewell, @Xvezda, @Aryan9592, @sadaffathali, @mayank1513, @ForsakenHarmony, @jsteele-stripe, @okoyecharles, @rob-johansen, @imageck, @ecklf, @Sylith1231, @SonMooSans, @rousan, @robertwbradford, @hiddenest, @innowhat, @sand4rt, @feugy, @ryota-murakami, @hyeewooon, @mewcoder, @CSY54, @csi-lk, @daltonmcphaden, @sidgaikwad, @joulev, @danaugrs, @olingern, @penberg, @sdaigo, @manovotny, @arsenykruglikov, @remorses, @alexandreferreirafr, @acdlite, @li-jia-nan, @wesleydebruijn, @Kevintjuhz, @ytkg, @roigecode, @hoop71, @romeobravo, and @padmaia for helping!