v5.0.0
5.0.0 (2024-04-02)
Features
- add build time o11ty to the runtime (#372) (93036f7)
- add first part of the open telemetry integration to the runtime (#232) (8b17f09)
- add middleware routing (#146) (8fc84c5)
- add mono repository support (#123) (53f0f36)
- add next.js version check and fail the build if version not satisfied (#291) (72101f3)
- add system logging to middleware handler (#174) (1eee565)
- add systemlog shim (#127) (dab9ead)
- check for root publish dir (#292) (f2084b8)
- fail build if BUILD_ID is not found at location it will be read from in runtime (#313) (d06ca25)
- handle /_next/image through Netlify Image CDN for local images (#149) (4bf8641)
- normalise URLs in edge middleware (#176) (5155474)
- remove x-nextjs-cache header and add Cache-Status instead (#158) (5b477db)
- start moving to SugaredTracer and collect spans manually to be able to create 'server-timing' header when debugging (#358) (311fafe)
- stop running middleware at the origin (#125) (3e743de)
- support also x-next-debug-logging to enable server-timing (#359) (d045755)
- support edge middleware (#114) (a1eaca3)
- support nx integrated setups inside runtime (#251) (994be8e)
- support static export (#349) (e2737bc)
- swap publish/static dirs (#93) (a31816e)
- use blob key encoding (#108) (1277f85)
- use in-source path over redirects for Server Handler (#122) (aaf12cc)
- use new blob store api (#100) (0f4eb7a)
- use prerenderManifest data instead of globbing when copying prerendered content (#105) (60594f1)
- write tags manifest at build time to simplify request time response tagging (#94) (a0c93ca)
Bug Fixes
- apply permanent cdn-cache-control for fully static page (#274) (9c2f0bb)
- avoid PPR build error (#286) (8217f50)
- await copyStaticExport (#374) (1c814f8)
- blob key collisions (#212) (7c33ac3)
- bundle edge chunks with lambda (#152) (c5008a4)
- cache freshness for ISR content (#235) (4a0c285)
- concatenate all edge chunks (#319) (b3aaed6)
- copy-next-code on windows (#297) (077cc18)
- correctly handle middleware header mutations (#225) (da7aa22)
- correctly handle query params on data rewrites (#196) (abd7509)
- correctly serve images by storing binary as base64 (#241) (22afaa8)
- create server handler in sequential steps (#373) (96f8fe7)
- deps: update dependency @netlify/blobs to ^4.2.0 (#86) (77c2a9c)
- deps: update dependency @netlify/blobs to v6 (#92) (f462438)
- deps: update dependency @netlify/functions to ^2.4.0 (c566ffa)
- disable transfer-encoding leading to problems in fastly (#333) (4080e1c)
- don't mutate route data, instead create new object to set as blob (#391) (98eb35f)
- don't run middleware on rewrite target (#270) (c6af678)
- don't set SWR cdn cache control on stale responses (#259) (7555b68)
- don't use windows path separators for path templating in monorepo (#293) (5b26311)
- ensure cdn cache control only set for get and head methods (#137) (bf63aa8)
- fetch cache tag invalidation (#268) (ede6277)
- fix proxying on next@<14.0.2 (#366) (83e9a39)
- fixes an issue where the runtime was not working with pnpm package manager (#96) (b77512e)
- fixes an issue where the symlinks where not correctly preserved for pnpm monorepos (#216) (9c35799)
- fixes the runtime inside monorepos like turborepo (#204) (219588e)
- fixes the usage of a custom distDir (#269) (6a35de6)
- handle ipx redirect that visitors might have browser cached from v4 (#390) (9c0490c)
- handle locales in middleware redirects (#198) (97af130)
- handle long blob names by truncating them (#182) (b55ca06)
- handle middleware rewrite bodies and loops (#193) (fd3c754)
- handle middleware rewrites to in data requests (#180) (8b5687c)
- handle multiple matchers for middleware (#203) (8e9dbb5)
- handle pages router notFound pages (#318) (27a5645)
- handle parallel routes default layout (#150) (ebe579f)
- handle redirect response body (#142) (f149e89)
- honor skipMiddlewareUrlNormalize (#287) (01e9450)
- import server in module scope (#363) (bce994d)
- include static files in the function bundle (#200) (7e79ba7)
- init blobStore in CacheHandler constructor and not global scope (#164) (1ab8d82)
- init deployStore on fs.readFile and not when lambda spawns (#277) (6b3edc3)
- LastModified Date (#211) (4e5d5fc)
- let next-server handle SWR behavior (#206) (d2eeda9)
- limit amount of concurrent handling of prerendered content (#356) (416f66c)
- make on-demand revalidation reliable (#245) (d85332a)
- match bare route for i18n site middleware (#288) (590db9b)
- middleware should run in/out of src dir (#219) (3fb5bda)
- normalise basepath (#228) (15116a0)
- normalise middleware data URL requests (#267) (fa41fce)
- normalise redirect/rewrite target locales (#226) (402caae)
- only populate build cache when run inside buildbot (#199) (a4c49e2)
- overriding headers in route handlers should work (#195) (636449d)
- pass correct domain to server (#144) (ae4285a)
- preserve functions in patched middleware manifest (#139) (d17c030)
- preserve locale in redirects (#276) (c4c4214)
- prevent infinite loop cause by global fetch patched by Next.js (#167) (616b94a)
- prewarm entrypoint (#351) (31484aa)
- put in real system logger (#177) (b874afc)
- reduce reliance on PACKAGE_PATH (#340) (4b53c21)
- remove accepts encoding workaround (#264) (d79d333)
- remove temp publish dir before moving static content (#278) (3d7b20f)
- resolve run-config.json in runtime from PLUGIN_DIR not cwd (#285) (0348fac)
- respect user defined included_files for functions from netlify.toml (#298) (e5192f2)
- rewrites shouldn't be following redirects (#253) (30b091c)
- set correct date header for cached objects (#124) (4523c5f)
- shim
require("node:buffer")
(#233) (00662dc) - shim process in edge runtime (#132) (7d01157)
- standardize stale-while-revalidate header (#95) (1220e04)
- strip internal middleware header from responses (#160) (e270811)
- strip locale from path passed to middleware (#194) (5e88d33)
- support basepath for static assets (#141) (84b3a63)
- support wasm chunks (#190) (739fbdd)
- try to resolve styled-jsx from next context, not serverHandlerContext (#300) (87f3215)
- unstable_cache not working (#237) (c076448)
- use response cache key for tag manifest first before falling back to pathname (#280) (51dcbe0)
- use unpatched fetch for all deploystores (#240) (8972e5b)
- windows doesnt like renaming into a directory that already exists (#299) (8a60324)
Performance Improvements
- check any revalidatedTags passed from next first before checking blobs, memoize tag manifest blob gets for duration of request (#229) (39ab537)
- ensure blob directory exist just once (#357) (037b695)
- reuse lastModified captured in cache handler to calculate date header (#260) (e33bd93)
- shim next's telemetry module to improve startup performance (#365) (3d2c429)
Miscellaneous Chores
- release 5.0.0 (2599934)