Skip to content

v13.3.0

Compare
Choose a tag to compare
@ijjk ijjk released this 06 Apr 21:11
· 5708 commits to canary since this release
79031e6

Core Changes

  • Add Zod and router state validation: #46962
  • Support default arrow function export in server boundary #46977
  • Generate fixed route path for favicon.ico: #46997
  • update turbopack: #46994
  • Update next/font/google data: #46988
  • fix: added jsdom & canvas to the external packages list - fixes #46893: #46990
  • Add auto-detection of image/x-icon content type: #47013
  • fix: exclude 'mdx-bundler' from being bundled in server components: #46992
  • Add /route subpath to metadata static routes: #47030
  • Ensure router.refresh() matches revalidatePath('/') behavior: #46723
  • Reorganize client references manifest: #46777
  • Opt-in to dynamic rendering when reading searchParams: #46205
  • Fix CSS not being bundled in app dir: #45787
  • feat(standalone): allow configuring KEEP_ALIVE_TIMEOUT via env var: #46052
  • i18n Improvements: #47174
  • Support manifest.json static and dynamic route: #47240
  • Ensure config and fetch revalidate are honored: #47255
  • feat: add fetchPriority to next/image: #47222
  • chore: add missing ts type in next-edge-app-route-loader: #47243
  • Split app-render functions into separate files: #47282
  • fix: typo in output:export error messages: #47252
  • fix: handle different cases of React fetchPriority: #47302
  • [edge] limit the api surface of util: #47292
  • parallel routes: fix duplicate dev warning: #47317
  • next/font/local prep: compartmentalize next/font/google: #47213
  • Improve OTEL spans naming: #47209
  • fix invalid comment in parseParameter function: #47291
  • Add searchParams to leaf cache key: #47312
  • Remove duplicated if statement: #47322
  • Add a .catch to shared router for ssg fetching.: #47265
  • parallel routes: fix nested routes: #47323
  • [Nitpick] Remove unnecessary await in base-server: #47313
  • Warn about default exports with App Routes: #47263
  • Add better-sqlite3 to server external packages: #47327
  • Change App Route Route Handler signature: #47268
  • Calling turbopack from the next build CLI: #46602
  • Update Turbopack to turbopack-230321.1: #47342
  • parallel routes: fix HMR refetch issue: #47343
  • Fix bad route path for custom metadata routes: #47286
  • Fix POST fetch request cache heuristic in POST route handler: #47333
  • Fix: only apply metadata dynamic image routes convention for app dir: #47367
  • Marks app paths in dev as supporting dynamic html: #46848
  • fix: add pretty error for exportPathMap with app dir: #47371
  • Skip extra swc builds: #47378
  • Simplify moduleProxy alias: #47381
  • Skip warning if there is app directory for no-html-link-for-pages rule: #42516
  • Catch redirect() in root layout: #47345
  • Add useParams(): #47373
  • Refactor ES chunk evaluate logic into a Runtime trait: #47116
  • Add more spans into OTEL instrumentation to wrap all user defined functions: #47368
  • Support HOC cases in server entries: #47379
  • Support dynamic routes for social images and icons: #47372
  • Fix build spinner in TTY env: #47383
  • upgrade vendored React to 18.3.0-next-12a1d140e-20230321: #47405
  • Add default meta tags to error page: #47404
  • Extend not-found.js to catch all unmatched routes: #47328
  • Add optional match support of rewrites and redirects in typedRoutes: #47398
  • Support dynamic routes for social images and icons: #47425
  • turbopack: Implement streamed middleware: #47264
  • Fix twitter metadata info merging: #47433
  • improve source mapping of console output and errors: #47388
  • Fix closure and rest params handling in SWC transform: #47401
  • feat: change next build to emit output with output: export: #47376
  • Error during dev if returning Response in pages API routes in Node.js runtime: #47442
  • Add content hash for dynamic og image routes: #47440
  • chore: add telemetry for output: export: #47464
  • Update fetch cache memory handling: #47465
  • add useReportWebVitals that makes use of web-vitals package: #47319
  • Ignore folders prefixed by underscore (_) in App Router: #47439
  • Finalize HOC support with server entries and add encodeReply & decodeReply: #47438
  • Locale fixes for App Directory: #47429
  • Fix useSelectedLayoutSegments including PAGE: #47492
  • parallel routes: implement default route + fix bugs on navigation: #47436
  • Add http.route into root otel span: #47392
  • fix: typo in max cache size error message: #47505
  • Fix other case for useSelectedLayoutSegments: #47511
  • fix error handling and hanging problems: #47457
  • restore dynamic directory embedding: #47260
  • Remove head.js: #47507
  • Return null for useParams in pages: #47490
  • Clean up leftover loaders: #46801
  • Feat(next-types-plugin): added support for Route Handlers: #47185
  • Add warning when deopting page into client rendering entirely: #47531
  • Integrating capsize latest: #47428
  • Rename app-render/index.tsx to app-render/app-render.tsx: #47285
  • refactor(relay): Use transform from swc/plugins repository: #47441
  • remove unused turbo dependencies: #47557
  • Add initial tree shaking refactorings: #47559
  • next/font/local support for Turbopack: #47369
  • Handle unknown platform triples in next-swc: #47570
  • Fix fetch cache config and fetch revalidates: #47573
  • Fix instrumentation not being called on edge in some cases: #47495
  • Implement automatic font fallback support for next/font/local: #47463
  • Document various structs and methods in next/font: #47588
  • Fix race condition of invalidation: #47586
  • add test case for nested imports: #47580
  • Underscore Handling Fixes: #47581
  • Move App Route handler logic into bundle: #47582
  • Revert "Move App Route handler logic into bundle": #47614
  • Make sure the global not found route doesn't conflict with existing /not-found route: #47619
  • Fix robots.txt generation: #47625
  • fix typescript errors in next-core: #47607
  • Expose metadata types: #47630
  • show most recent error first in turbopack error overlay: #47414
  • Move App Route handler logic into bundle: #47633
  • fix: handle output: export with use client: #47635
  • provide Buffer polyfill to client and edge: #47610
  • fix: image loaderFile with edge runtime: #47659
  • Update vendored react to 18.3.0-next-85de6fde5-20230328: #47675
  • fix: improve type of ExportPathMap: #47676
  • Fix(next-types-plugin): remove unused imports: #47667
  • resolve browser modules for edge api in turbopack: #47604
  • build(next-swc): introduce turbo-binding: #47512
  • Revert "Update vendored react to 18.3.0-next-85de6fde5-20230328": #47687
  • Fix next-types-plugin generated files for Node16/NodeNext: #47571
  • Revert "Vendor @vercel/og and expose ImageResponse (#47657": #47711
  • fix: handle empty src prop on next/image: #47695
  • Add not found boundary and move head cache to app router: #47688
  • Fix turbopack _devPagesManifest.json on next-site: #47427
  • Update MetadataRoute to namespace: #47674
  • Provide default metadataBase for local and vercel deployment: #47568
  • Fix duplicated default metadata tags: #47690
  • chore(docs): update next export to output: 'export': #47717
  • Vendor @vercel/og and expose ImageResponse : #47715
  • Turbopack: Fix images.remotePatterns port/protocol serialization: #47721
  • Combine Route Handlers with Route Modules: #47679
  • feat(next-swc): add compile-time heap profiler flag: #47729
  • Add NEXT_RUNTIME process env to turbopack: #47713
  • Small fixes to copy of Turbopack errors: #47734
  • fix: correctly handle Set-Cookie headers: #47718
  • Support relative path for metadata alternates urls: #47743
  • remove next-core package.json dev script: #47746
  • Restart static paths worker after finishing task: #47716
  • feat: bump minimum ts version to 4.5.2: #47712
  • Turobpack: Implement Streaming App/API rendering: #47476
  • Update app router filter handling: #47761
  • fix: improve error message pages for output: export: #47765
  • add consistent import sorting/grouping to rustfmt: #47745
  • turbopack: ensure ENV values are available in middleware: #47767
  • Fix skipMiddlewareUrlNormalize with i18n: #47773
  • Fix typo in error overlay: #47762
  • provide full polyfill for process: #47764
  • Turbopack: Use SharedError for body streaming: #47677
  • fix(export): make static export work with worker_threads: #47784
  • Skip favicon.js for metadata: #47790
  • Fix module resolving error in tracer: #47786
  • Fix fetchCache config and On-Demand Revalidate handling: #47803
  • Add computeWorkerKey to the static optimization worker: #47792
  • fix(next-types-plugin): add ParamCheck type only for route.ts files: #47739
  • fix: added tab and carriage to isWhitespace function to make robust: #47785
  • Fix prefetch only being applied once: #47797
  • Fix failing rust-check: #47811
  • Move modularize imports for next/server to next-swc: #47788
  • Add initial separated route resolving: #47208
  • Fix dev ipc request on node v16: #47825
  • Update render IPC handling: #47835
  • Fix: fill route params for dynamic route metadata images url: #47829
  • Enable context caching for middleware/edge functions in dev: #47840
  • New app routes resolving logic for turbopack: #47737
  • Polish metadata warnings: #47853
  • Memory improvements to static workers: #47823
  • Hide internal fetches OTel traces in dev mode and assert duplicate OTel spans are present only in dev mode: #47822
  • feat(turbopack): support transform options: #47365
  • Update dev IPC request: #47877
  • Fix type plugin for NX workspaces: #47534
  • Change package path from gitpkg.now.sh to gitpkg.vercel.app: #47879
  • TS plugin: ensure error and global-error files are client components: #47882
  • Decrease required open telemetry peer-dependency version: #47861
  • router: implement route interceptions: #47565
  • Fix issue where NextServer.prepare wouldn't be called when deployed: #47899
  • Add missing module.hot.accept call to server CSS modules: #47913
  • mark resolve issues inside a try block as warnings: #47763
  • Hide not ENOENT errors for not found in ipc server: #47854
  • Update react docs link: #47891
  • turbopack: defer dev code evaluation until after page render IPC connects: #47888
  • add test case for alias field: #47856
  • add test case for ignore modules: #47758
  • Small refactoring to build/index.ts: #47935
  • Compare modules' layer when tracking server CSS changes: #47927
  • Extend type for streamEntrypoints: #47874
  • Add strict next head handling: #47938
  • ChunkingContext refactor pt. 1: #47693
  • Add dynamic parameter marker to router cache key: #47957
  • Vendor react@experimental under an experimentalReact flag: #47759
  • avoid duplicated error output: #47954
  • add a warning when using implicit metadata: #47928
  • Fallback to localhost for metadataBase when it's used and missing: #47910
  • Fix app metadata in edge runtime: #47941
  • Auto-restart dev server when next.config.js changes: #47912
  • Unify Request types: #47884
  • Update search params/route params handling on deploy: #47930
  • turbopack: add vary header to app routes: #47946
  • Check for null before reading value in useParams: #47875
  • Fix metadata nested twitter props rendering: #47972
  • Create unique route path for og under group routes: #47985
  • allow turbopack HMR to recover from react errors without hard refresh: #47771
  • Implement Route type for router APIs: #47931
  • If prefetching detected as app route, pass "as" to handleHardNavigation instead of "url": #47949
  • update turbopack: #47994
  • Revert "update turbopack": #48001
  • update turbopack: #48006
  • Fix css applying for root not found: #47992
  • fix code generation for loader tree: #47987
  • interception routes: re-implementation: #48027
  • parallel routes: return a 404 when a parallel route does not have a default page/do not match: #47872
  • Update normalize revalidate params for named matches: #48032
  • fix: handle error case for output: export in next dev: #47768
  • report error when using "use server" on module level: #47967
  • Only cache successful fetches: #48033
  • Revert "Vendor react@experimental under an experimentalReact flag": #48038
  • Replaced Reflect with ReflectAdapter: #48000

Documentation Changes

  • Improve static export documentation: #47251
  • Add note about Windows Defender: #47298
  • fix: update capitalization of ISR doc heading: #47370
  • Updating the default URL of Amplify Hosting: #47420
  • clarify warning about edge + ISR support: #47452
  • Update Error Boundaries link to new ReactJS documentation: #47474
  • Update react hydration error message page title: #47499
  • Docs typo: #47528
  • Add note about req to circular-structure error doc: #47162
  • docs(image): Update browser bugs section for Safari 16.4 release: #47577
  • Switch to ESM Jest config in docs: #42144
  • Fix typo: #47634
  • Grammar fix: #47600
  • docs: clarify returning response in Middleware: #47696
  • Replace AWS Serverless to SST in Serverless: #47725
  • Linking to SST Next.js tutorial.: #47752
  • chore(docs): add typesafe-i18n as a new i18n option: #47315
  • Document node.js APIs for Edge Runtime: #47760
  • Update error-handling.md: #47779
  • Update react-strict-mode.md: #47780
  • [docs] Update getting-started.md with New react docs link: #47841
  • Add documentation on OTEL support: #47194
  • Update Local Images Example to Use Assets Folder: #47878
  • Docs: Improve Open Telemetry documentation: #47955
  • Recommend @opentelemetry/api instead of @vercel/otel reexport: #48013
  • fix lint issue: #48023

Example Changes

  • fix typo: #47235
  • chore(examples): fix Mongoose deprecation warning: #47358
  • chore: fix localhost port: #47413
  • Update to supertokens example app: #47435
  • chore(examples): Fix for destroy is not a function error: #47469
  • Updated the versus short form in ssg-ssr example in docs: #47397
  • fix-(Examples) Updated link tags in Auth0 example code.: #47518
  • Remove incorrect entries for pnpm debug log: #47241
  • Use App Router for static export example.: #47584
  • Update Convex example to convex@0.12.0: #47175
  • Updates with-supertokens example app: #47701
  • Update github link: #47900

Misc Changes

  • Update next/font/google data: #46988
  • fix: added jsdom & canvas to the external packages list - fixes #46893: #46990
  • Add auto-detection of image/x-icon content type: #47013
  • fix: exclude 'mdx-bundler' from being bundled in server components: #46992
  • Add /route subpath to metadata static routes: #47030
  • test: update amp test to always check redbox: #47050
  • Fix generateStaticParams check in app dir: #47051
  • Fix URL anchor position in going-to-production.md: #47056
  • Rewrite action transform in SWC: #47049
  • Cleanup remove directive logic to reduce allocate: #47055
  • Initial support of redirection in server handlers (#46944
  • Move next-* crates from Turbopack: #47019
  • chore(examples): upgrade Sentry to support Middleware: #47067
  • Merge branch 'canary' into jrl-next-crates
  • Merge pull request #47019 from vercel/jrl-next-crates
  • [with-jest]: Update to use automatic path aliases: #46982
  • Update _mongoClientPromise type error: #46985
  • Prevent handleDisconnect being called twice: #46959
  • Fix next/image config injection during static generation: #47007
  • Refactor renderers and RenderResult: #46955
  • Update app route handler proxy handling: #47088
  • Detect common invalid cases for the server directive: #47069
  • Implement route announcer for app dir: #47018
  • Fix: Update README templates in create-next-app: #47037
  • chore(examples): fix @ts-ignore in Cloudinary config: #47029
  • Add instructions to bug issue template: #47090
  • Remove experimental fontLoaders option from next.config.js: #46886
  • Verify router state query params can't grow out of control: #47094
  • Fix(typedRoutes): fixed empty DynamicRoutes or StaticRoutes causing Route to turn into type string: #46980
  • Dynamic routes for toplevel robots and sitemap: #47091
  • Correctly list unsupported turbopack experimental options: #47093
  • Continue page rendering after handling server requests: #47089
  • fix(mdx): export NextMDXOptions interface: #46441
  • updated zustand example to 4.3.6, changed out deprecated methods: #46911
  • Fix #46621 - include status code in cache: #47096
  • Finish up otel example with working docker and small guide in readme: #46819
  • Add @feedthejim as a codeowner for docs, examples and errors: #47104
  • Add support for scrolling to hash fragment: #46995
  • re-enable next-dev-tests: #47087
  • feat: add output: export support for appDir: #47022
  • Refactor app-render to decouple type definitions (#47128
  • update prettier in stats action: #47158
  • Fix RenderOpts type import: #47167
  • Implement custom Turbopack Next transformers: #47137
  • Implement server entry creation in client layer (#47127
  • chore(ci): automatically deploy selected examples: #47130
  • fix: app dir with next dev and output: export: #47171
  • Fix(typedRoutes): fixed files from directories other than pages and app getting into Route: #47184
  • Not apply image loader to metadata images: #47197
  • Adjust transpiler to support inlined server functions with annotations: #47186
  • improve turbopack error overlay: #47132
  • feat(cli): introduce --tailwind flag: #46927
  • Align on next-transform-font: #47179
  • Add OTEL tests: #47149
  • Handle defaultLocale on client router filter: #47180
  • fix build issue and future incompatibility: #47176
  • fix: show error for api route handler with output: export: #47219
  • Fix missing option in createFromFetch: #47216
  • Fix failing CI checks: #47223
  • docs: commentary correction for i18n app folder: #47226
  • Support passing both closure arguments and parameters: #47212
  • Fix deploy example: #47228
  • next-swc: Switch to testing::fixture: #47183
  • update turbopack: #47205
  • Update router.md: #47210
  • print reason for compilation: #47190
  • [edge] support Node.js core modules in edge runtime: #47191
  • Generate metadata images generation with app routes: #47225
  • Emit late streaming meta tags: #47207
  • fix: typo in message for experimental.runtime: #47248
  • Fix loader rule with wrong matching conditions (#47261
  • Fix contributing.md link in the rendering benchmark: #47303
  • fix(cli): handle Tailwind CSS + src/ correctly: #47238
  • Update failing e2e deploy test: #47325
  • fix(cli): unify styles/content of templates: #47294
  • Replace bg-opacity with bg-color/opacity in tailwindcss templates: #47253
  • chore: fix issue labeler: #47206
  • chore: add checkout step to issue labeler action: #47346
  • Ensure all server entry exports are functions (#47364)Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
  • Don't set git config features.manyFiles on post install: #47375
  • fix(cli): change file name from route.ts to route.js: #47352
  • chore: tweak PR labeler pattern: #47395
  • Revert "Support dynamic routes for social images and icons" (#47416
  • Update failing e2e checks: #47423
  • Add test for force-dynamic and catch-all routes (#47418
  • Update CODEOWNERS
  • chore: reduce noisy logs when updating timing gist: #47446
  • Update failing e2e deploy test: #47453
  • chore: clean up CODEOWNERS: #47451
  • chore: run all tests for next/image against app dir: #47267
  • Update failing i18n e2e deploy test: #47462
  • Add workflow to trigger release: #47461
  • Fix trigger_release workflow type: #47466
  • Update version script
  • Tweak trigger release cloning
  • chore: tweak CODEOWNERS: #47491
  • Fix failing og api e2e test: #47500
  • add auto labeling for turbopack/the web-tooling team: #47502
  • Update flakey app dev tests: #47504
  • Update release package.json scripts: #47529
  • Update pre-compiled
  • Add ownership of build folder to Web Tooling team: #47508
  • test(test-utils): correct --turbo error overlay lookup: #46901
  • Update failing i18n e2e deploy test: #47555
  • Update some flakey test cases: #47556
  • Remove unneeded waiting in otel tests: #47431
  • Improve client boundary source type detection (#47532)Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
  • ci(workflow): run checks for the test specific features: #47572
  • Update test create-next-app running: #47611
  • Fix rust-check
  • Update pnpm version for trigger release
  • Vendor @vercel/og and expose ImageResponse (#47657
  • test: disable the flaky test for parallel-routes-and-interception: #47694
  • Handle async require when importing ESM in instrumentation.ts: #47658
  • Run turbopack integration tests for next.js changes too: #47608
  • Revert "Revert "Update vendored react to 18.3.0-next-85de6fde5-20230328"" (#47700
  • test: remove unreliable font test: #47714
  • Update CODEOWNERS to override image wildcard: #47722
  • chore(ci): fix codemod tests: #47710
  • Add tests for Suspensey CSS: #47708
  • Add test to ensure image generation works in the Node.js runtime: #47719
  • test(turbopack): blocking CI for turbopack integration test: #47709
  • Update publish canary to undraft automatically: #47775
  • Update metadata e2e test on deploy: #47776
  • Tweak canary undrafting: #47777
  • Fix docs only check for test-native-integration: #47800
  • Tweak Vercel CLI installing for E2E tests: #47804
  • Fix flaky css test and remove unused tests deps: #47806
  • (Fix)(Tests)Fix typo in unit testing: #47644
  • Update to retry undrafting canary: #47826
  • Update set-cookies deploy test: #47836
  • Update flakey tests and add Node.js setup retrying: #47871
  • Test disabling kodiak: #47880
  • Ensure GH actions tests run for trunk branches: #47883
  • Revert "Test disabling kodiak (#47880)"
  • chore: update labels: #47904
  • Disable Kodiak for testing
  • Add merge_group actions trigger
  • Run bench tests as part of CI: #47849
  • Increase CI test timeout: #47973
  • docs: Add "special" to the Alex allowlist: #48021
  • Speed up native dev build: #48028

Credits

Huge thanks to @shuding, @huozhi, @sokra, @hanneslund, @JesseKoldewijn, @kaguya3222, @yangshun, @ijjk, @konomae, @Brooooooklyn, @jridgewell, @zlrlyy, @JohnDaly, @abhiyandhakal, @benjie, @johnnyomair, @nk980113, @dirheimerb, @DerTimonius, @DuCanhGH, @padmaia, @stafyniaksacha, @gladowar, @zek, @jankaifer, @styfle, @balazsorban44, @wbinnssmith, @chibicode, @ForsakenHarmony, @franktronics, @FSaldanha, @Schniz, @raisedadead, @AdamKatzDev, @wyattjoh, @leerob, @meesvandongen, @vladikoff, @feedthejim, @tka5, @pyjun01, @gdborton, @M3kH, @aretrace, @shivanshubisht, @alexkirsz, @agrattan0820, @vinaykulk621, @heyitsuzair, @mrkldshv, @timneutkens, @furkanmavili, @swaminator, @EndangeredMassa, @DevEsteves, @rishabhpoddar, @schehata, @molebox, @dlehmhus, @akshaynox, @sp00ls, @janicklas-ralph, @tomryanx, @kwonoj, @karlhorky, @kdy1, @dante-robinson, @lachlanjc, @ianmacartney, @hotters, @isaackatayev, @insik-han, @jayair, @ivanhofer, @javivelasco, @SukkaW, @visshaljagtap, @imranbarbhuiya, @nivak-monarch, @HarshaVardhanReddyDuvvuru, @ianldgs, @ricardofiorani, @swarnava, @gustavostz, and @nabsul for helping!