github serverless-nextjs/serverless-next.js v3.1.0-alpha.0

latest releases: v3.8.0-alpha.0, v3.7.0, v3.7.0-alpha.12...
pre-release2 years ago

3.1.0-alpha.0 (2021-06-17)

Note: from now on we are using Lerna fixed mode, see here: #1243. This changelog has a lot of items in it since it's the first published in fixed mode.

Bug Fixes

  • aws-cloudfront: add 200 status code to custom error pages (#774) (bc17565)
  • cdk: resources should not be assigned names (#912) (81d9d18)
  • cdk-construct: #943 give access to underlying resources and enable custom s3 props (#955) (026901b)
  • cdk-construct: fix build error in cdk-construct (d708265)
  • cdk-construct: unique construct id for each domain name (#1013) (19ec092)
  • core: add logging of path when pathToRegexStr fails (#1082) (31cc4b1)
  • core: check for explicitly disabled locale detection (#1129) (0a39211)
  • core: data request page JS path should use the one from the manifest (#1241) (f774a30)
  • core: extend locale matching to secondary languages (#1040) (a2c476c)
  • core: fix accept language redirect condition (#1110) (f05ccbc)
  • core: fix infinite redirects on NEXT_LOCALE cookie (#1128) (01d4d88)
  • core: redirect based on NEXT_LOCALE cookie and add e2e test for … (#1116) (48773f4)
  • core: use JS page path from manifest instead of manually constru… (#1238) (cac8918)
  • core, lambda-at-edge: fix page inclusion logic in default-handler build (#1126) (5fdf3fe)
  • core, lambda-at-edge: set error status codes in core, refactor error handling (#1153) (6d4ae93)
  • core, lambda-at-edge: support static 500 page and localized stat… (#1135) (c0573c1)
  • core, lambda-at-edge, e2e-tests: fix locale rewrites to dynamic ssr (#1132) (91c1ddf)
  • domain: pass certificateArn to domain component (#826) (b7cf083)
  • e2e-tests: fix small issue causing running e2e tests only on windows (448d663)
  • lambda-at-edge: add new defaults trailingSlash=true redirect regex formats to remove to prevent redirect loop (#868) (5dd836e)
  • lambda-at-edge: also copy chunks for the revalidate lambda (#1099) (704b866)
  • lambda-at-edge: await external API rewrite (#1232) (9f777d7)
  • lambda-at-edge: copy js chunks from .next/serverless/chunks to api/default lambdas if present (#1095) (f04fe34)
  • lambda-at-edge: do not follow redirect in fetch during rewrite (#942) (0383cf2)
  • lambda-at-edge: downgrade @rollup/plugin-commonjs to 18.1.0 to fix bundling issue of decodeHTML functions in SQS client (#1227) (5dc04e1)
  • lambda-at-edge: ensure dist/sharp_node_modules empty before copying (#980) (c43b2f8)
  • lambda-at-edge: external rewrites should use method, header, body from cloudfront request (#864) (f7dd42a)
  • lambda-at-edge: fix dynamic vs. catch-all route precedence (#974) (2a3140a)
  • lambda-at-edge: fix fallback (non-prerendered) SSG requests not … (#800) (29719f5)
  • lambda-at-edge: fix language detection (#963) (72d14e8)
  • lambda-at-edge: fix locale rewrites, enable rewrite tests for lo… (#916) (6c34aa4)
  • lambda-at-edge: fix not found for public files with encoded characters in path (#825) (b63f199)
  • lambda-at-edge: fix redirect loop in Next 10.0.4 and up due to new internal redirect regexes (#879) (36e5716)
  • lambda-at-edge: fix router path in fallback SSG (#1026) (9772397)
  • lambda-at-edge: fix SSG fallback with basepath (#992) (dff598b)
  • lambda-at-edge: fix vulnerability in trailing slash redirect (#1018) (f31931c)
  • lambda-at-edge: handle prerender-manifest v3 locales properly (#910) (5200d74)
  • lambda-at-edge: handle preview request gracefully (#780) (93b36a7)
  • lambda-at-edge: handle/merge query params in redirect/rewrite destinat… (#816) (cd03658)
  • lambda-at-edge: include all build files in sharp package.json (7256ab9)
  • lambda-at-edge: include all vendor files in sharp package.json so npm publish will copy all vendor libs correctly (#842) (0f3c417)
  • lambda-at-edge: locale subpath bug fixes (#888) (f9a6787)
  • lambda-at-edge: minor fix to optional catch-all base route at root level (#820) (60cee0d)
  • lambda-at-edge: move uuid to be a dependency of lambda-at-edge to fix bundling issues (b9d1395)
  • lambda-at-edge: pass body correctly into external rewrite (#867) (5fb175f)
  • lambda-at-edge: remove blacklisted CloudFront headers before returning api/default/image handler response (#923) (3fcb59d)
  • lambda-at-edge: remove uuid and use datetime milliseconds to fix bundling issue (8e003ae)
  • lambda-at-edge: render 404 SSR page when there is no static 404 page during fallback response (9f430dc)
  • lambda-at-edge: revert @rollup/plugin-node-resolve to v10 to fix bundling issue (#1189) (74f8aef)
  • lambda-at-edge: try to copy all files in sharp_node_modules (#841) (9234c1a)
  • lambda-at-edge: use 307 redirect for root -> locale URI instead … (#886) (98e963b)
  • lambda-at-edge: use posix relative path when determining JS files to exclude/include in default handler (#1201) (3e74ff0)
  • lambda-at-edge: various 404 page fixes: (#1001) (719f767)
  • lambda-at-edge, e2e-test: fixes for fallback and fallback e2e tests (#997) (aad8536)
  • lambda-at-edge, nextjs-cdk-construct: fix several posix path normalizations (313c600)
  • nextjs-cdk-construct: match dynamic route segments with square bracket (#1235) (979a633)
  • nextjs-cdk-construct: update default memory and timeout to be mo… (#1167) (10a16b6)
  • nextjs-cdk-construct: use posix paths for s3 assets and invalidations (#1025) (b8b4393)
  • nextjs-component: allow custom cache behavior for _next/image* (#1046) (a6325c2)
  • nextjs-component: allow specifying role arn for all lambdas (#1125) (6496f26)
  • nextjs-component: don't override _next/image* and _next/static/* origin request lambda with the default lambda (#859) (20e513c)
  • nextjs-component: fixes error when removing domain from cloudfront, cannot read property debug of undefined (#793) (aca72d9)
  • nextjs-component: image lambda role should also use inputs.roleArn if it exists (#903) (93f2562)
  • nextjs-component: sqs region should be same as regeneration lambda region (using s3 bucket region) (#1155) (41b6be1)
  • only delete the sqs queue if it already exists in the state (#1147) (c072437)
  • aws-cloudfront: do not override aliases when not specified in serverless.yml inputs (#704) (2188d26)
  • aws-cloudfront: IncludeBody option only with viewer-request or origin-request (#533) (5c4b2c4)
  • aws-cloudfront, nextjs-component: fix aliases updating when domain is used (#731) (d41a6a9)
  • aws-cloudfront, nextjs-component: fix inability to set cloudfront comment input (#695) (6803378)
  • domain, nextjs-component: set aliases correctly with domainType of apex and domain starting with www (#723) (c68a4fc)
  • lambda-at-edge: add retries for s3 calls (#720) (72252fc)
  • lambda-at-edge: don't rewrite data requests (#719) (5b6f848)
  • lambda-at-edge: dont throw when no prev .next dir (8dfd19d)
  • lambda-at-edge: exclude prerender js files from default handler if no API routes are used (#600) (73d0f48)
  • lambda-at-edge: explicitly set host header for s3 origin (#412) (2f44795)
  • lambda-at-edge: fail build when "public/static" folder exists as this conflicts with static/* cache behavior (#709) (187bbc8)
  • lambda-at-edge: fix broken npm install by changing src/command.js -> dist/command.js (fde41ee)
  • lambda-at-edge: fix broken redirects with full URLs as destinations (#638) (ee95e54)
  • lambda-at-edge: fix compilation of query strings in redirect des… (#647) (9ed7159)
  • lambda-at-edge: fix data request routing / client-side navigation for SSR index page (#574) (f580786)
  • lambda-at-edge: fix dynamic route precedence conflicting with fallback pages (#714) (e667e76)
  • lambda-at-edge: fix dynamic routes with getStaticPaths interfering with public files (#679) (17beb1f)
  • lambda-at-edge: fix for 404s on public files (#577) (a854139)
  • lambda-at-edge: fix next 9.5 root uri problem (#528) (ceb9218)
  • lambda-at-edge: fix possible redirect loop in API handler (#671) (ed92ebc)
  • lambda-at-edge: fix reading next.config.js in build step when it exports a function (#569) (16272b4)
  • lambda-at-edge: fix routing for pages with basePath (#572) (b185a7a)
  • lambda-at-edge: fix routing issue when looking up root / path in prerender-manifest (7eedd69)
  • lambda-at-edge: fix s3 bucket not being normalized for public assets (#497) (7e39902)
  • lambda-at-edge: for serverless-trace target, exclude files that are not in node-modules folder (#758) (2d72f4f)
  • lambda-at-edge: for serverless-trace, don't copy when source and destination are the same (#760) (29ef6a6)
  • lambda-at-edge: ignore package.json during serverless-trace (#552) (d21f1d5)
  • lambda-at-edge: move path-to-regexp to prod deps (e4d9dbd)
  • lambda-at-edge: non-dynamic pages (SSG, SSR) should be prioritized over dynamic fallback pages (#685) (71b61e7)
  • lambda-at-edge: non-dynamic routes for rewrite should not include routes in prerender manifest (#700) (06d4edb)
  • lambda-at-edge: render Next 500 page when SSR render fails, and ensure 404 pages return 404 status codes (#570) (bdd1e3f)
  • lambda-at-edge: resolve dependencies using .next/serverless as base path (#425) (d60982f)
  • lambda-at-edge: serve HTML pages with no props (i.e static pages) properly on preview mode enabled (#701) (57cd668)
  • lambda-at-edge, e2e-tests: don't rewrite non-dynamic api routes (#698) (27526e7)
  • lambda-at-edge, e2e-tests: fix issue where SSR data request should be directly rendered in Lambda, not retrieved from S3 (2fa8910)
  • lambda-at-edge, e2e-tests: non-dynamic routes should never be rewritten (#697) (f16c9a0)
  • lambda-at-edge, e2e-tests: PUT or DELETE S3 methods should just … (#680) (f9910a0)
  • next-aws-cloudfront: ignore calls to res.end() after the first one (#526) (c4c9f6f)
  • nextjs-component: allow all CloudFront HTTP methods for default caching behavior (#609) (6066fa1)
  • nextjs-component: fix inability to set custom behavior for _next/data/* (#684) (326acc8)
  • nextjs-component: make execa point directly at next .bin (3ffbc17)
  • nextjs-component: parse cloudfront headers correctly (9a22f5b)
  • nextjs-component: remove domain on component removal (e478ffc)
  • nextjs-component: route / requests to index.html correctly (ed3cace)
  • plugin: move config referencing out of plugin constructor (#248) (16d66a2)
  • s3-static-assets: always use posix path join for fast-glob in re… (#940) (d513192)
  • s3-static-assets: fix s3 directory read for fast-glob on windows (#986) (7218008)
  • s3-static-assets: Fixed missing posix conversion in s3 uploads. (#551) (296d1b0)
  • s3-static-assets: prevent client cache of static pages (#421) (647d74a)
  • serverless-component: bump aws-lambda with fix for catch all routes (a09b469)
  • serverless-component: create the DNS record only when hosted zone exists (#635) (3bbac6b)
  • serverless-component: custom cloudfront configuration bug fixes (#407) (093edec)
  • serverless-component: don't overwrite the cloudfront default.forward config (#460) (12da1de)
  • serverless-component: enforce compression for the default cloudfront behaviour (#462) (7e8f0d4)
  • serverless-component: fix "main" package.json property (96d510d)
  • serverless-component: fix for AWS accounts with more than 100 domains (69574c7)
  • serverless-component: fixes 307 errors when using bucket region outside us-east-1 (#495) (561e05f)
  • serverless-component: upload whole .next/static folder and dont clear cache between builds (4406ebb)
  • serverless-component: wait sequentially for resources to be removed, so as to avoid race conditions (#588) (7bcb032)
  • serverless-component: when adding primary domain name to CloudFront distribution aliases, don't replace other aliases (#658) (4428d5c)
  • serverless-next.js: fix API Lambda description input (b1b6cdf)
  • serverless-next.js: fix resolution of next-aws-cloudfront (0c22c85)
  • serverless-next.js: Fix the issue with TypeError hasHeader is not a function (#342) (20f42fd), closes /github.com/zeit/next.js/blob/v9.3.1/packages/next/next-server/server/send-payload.ts#L25 zeit/next.js#11223 #329 #331
  • serverless-nextjs-component: fix require of next-aws-cloudfront compat in edge fn handlers (e6a8336)
  • sls-next/cdk-construct: defaultBehavior.edgeLambdas only applied to defaultBehavior (#1031) (a5a0ccd)
  • cache header for s3 files (#241) (311747a)
  • change default TTL to 0 seconds (#264) (0362b2c)
  • dont throw when public dir doesnt exist (3580b8c)
  • handle empty req url (#315) (ad7bec1)
  • recursively read assets inside public folder (#245) (5f93912)
  • Throw friendly error if next app target is not set to serverless (#204) (83c31e2)

Features

  • aws-cloudfront: adding new input (distributionId) to aws-cloudfront (#508) (8fa5a10)
  • nextjs-cdk-construct: support override props for CloudFront distribution (#1236) (783b888)
  • use high throughput mode for regeneration SQS (#1148) (f3d033c)
  • aws-cloudfront: add ability to persist cache behaviors not set in serverless (#809) (b339bf5)
  • aws-cloudfront: allow predefined originAccessIdentityId (#811) (8785727)
  • aws-cloudfront: allow setting CloudFront distribution aliases (#654) (ea180e6)
  • aws-cloudfront: allow setting configuration for custom origins (#657) (5f97683)
  • aws-cloudfront, nextjs-component: support setting certificate input in cloudfront (#727) (6f68bf1)
  • aws-cloudfront, nextjs-component: support setting geo restrictions (#726) (964b936)
  • aws-cloudfront, nextjs-component: support setting WAF web ACL id (#724) (1a11594)
  • aws-cloudfront, s3-static-assets: support setting individual min, max, default CloudFront TTLs, update Cache-Control headers and TTLs for _next/data files (#593) (fb8e61d)
  • aws-cloudfront, serverless-component: add cloudfront custom error responses (#590) (f3d2a17)
  • cdk-construct: adding support for multiple domainNames (#1009) (c9e87fc)
  • cdk-construct: Support for outside hosted domain (#1037) (dcc6bd2), closes #1027
  • cloudfront, serverless-component: add optional invalidation paths configuration (#814) (088d0c0)
  • component: dynamic routes rendered from static pages (#239) (af17d71)
  • experimental: CDK Construct (#878) (d38e2aa)
  • lambda-at-edge: add a binary to allow use without copying example (#688) (0c138a2)
  • lambda-at-edge: add baseDir and resolve build options to serverless-trace (#779) (8f978bb), closes vercel/nft#153
  • lambda-at-edge: add minifyHandlers input to minify handler code using Terser (#659) (1b33e72)
  • lambda-at-edge: add opt in lambda execution times logging (#549) (066bd27)
  • lambda-at-edge: add serverless trace target support (#405) (d800951)
  • lambda-at-edge: autogenerate serverless config (#418) (0f9a176)
  • lambda-at-edge: create new package with Lambda@Edge builder and handlers (94f0a29)
  • lambda-at-edge: fallback: "blocking" (#1007) (ef3c9ad)
  • lambda-at-edge: incremental static regeneration (#1028) (d5bbdc6)
  • lambda-at-edge: initial support for routing to locale-specific … (#884) (b4666d3)
  • lambda-at-edge: no-op rewrite support (#759) (2107ab1)
  • lambda-at-edge: start copying locale-specific page/data files t… (#883) (8bc889c)
  • lambda-at-edge: support custom headers (with caveats) (#662) (8b9e822)
  • lambda-at-edge: support custom redirects (#627) (d2f9679)
  • lambda-at-edge: support custom redirects from API routes (#640) (b68d46a)
  • lambda-at-edge: support external rewrites (#839) (d57f75f)
  • lambda-at-edge: support fallback: false for getStaticPaths and fix cache-control header (#681) (3ef5c17)
  • lambda-at-edge: support image optimization (#829) (f6c5156)
  • lambda-at-edge: support optional catch-all (#791) (ba9d409)
  • lambda-at-edge: support page and API rewrites (#653) (f187b91)
  • lambda-at-edge: support trailing slash / non-trailing slash redirects (#556) (ca63b80)
  • lambda-at-edge: use new aws s3 client for faster require time (#583) (f9eef45)
  • lambda-at-edge: use S3 regional endpoint when not in us-east-1 (#474) (5ecff1a)
  • lambda-at-edge-compat, lambda-at-edge, nextjs-component: let CloudFront do the Gzipping (#692) (05fb0eb)
  • lambda-at-edge, next-aws-cloudfront: support Preview Mode (#562) (5e1ea38)
  • lambda-at-edge, nextjs-commponent: rewrite from root using accept-language header, other minor bugfixes for locales (#885) (828b9dd)
  • lambda-at-edge, nextjs-component: add new input domainRedirects (#639) (a12e31a)
  • lambda-at-edge, nextjs-component: allow handler input for custom handler code (#649) (cecd327)
  • lambda-at-edge, nextjs-component, s3-static-assets: support ver… (#803) (015065d)
  • lambda-at-edge,serverless-component: basePath support (#510) (b17ce30)
  • next-aws-lambda,next-aws-cloudfront: fix status code and body bugs (#437) (7291f83)
  • nextjs-component: add baseDir from #779 to component to facilitate usage in monorepos (#953) (86844e6)
  • nextjs-component: add build.postBuildCommands input to execute any command or script post-build (#772) (b2cc97f)
  • nextjs-component: add deploy input which can be set to false to skip deployment (#691) (5adaf2b)
  • nextjs-component: add inputs.roleArn for existing lambda role (#827) (f63bc76)
  • nextjs-component: allow disabling s3 transfer acceleration (#926) (9aaeec7)
  • nextjs-component: allow setting custom API cache behavior (#623) (ca8094b)
  • nextjs-component: change ServerlessComponentInputs.deploy and BuildOptions.enabled to a union type (#999) (#1000) (3896b12)
  • nextjs-component: enable custom domain names (d8c3f97)
  • nextjs-component, lambda-at-edge: support single username/password basic authen… (#773) (220da4a)
  • serverless-component: add manual ACM SSL ARN specification (#655) (6bb1443)
  • serverless-component: add support for custom s3 region (#451) (ffef4ad)
  • serverless-component: allow CloudFront PriceClass to be set (#515) (943958a)
  • serverless-component: allow custom configuration for Cloudfront (#282) (e7bed6a)
  • serverless-component: allow passing an inline policy (#575) (05ddcc9)
  • serverless-component: allow users to set the node.js runtime for the lambda functions (#422) (a0534ab)
  • serverless-component: cache static pages and invalidate distribution after deploy (#435) (5d75936)
  • serverless-component: custom cloudfront.origins input (#376) (69beb5a)
  • serverless-component: implement getStaticProps / getStaticPaths [fallback: false] (#390) (5185649)
  • serverless-component, lambda-at-edge: add support for static 404.html page (#432) (0ba8931)
  • serverless-component, lambda-at-edge, lambda-at-edge-compat, s3-static-assets: add support for getStaticPaths fallback true (#544) (a08217b)
  • serverless-component,lambda-at-edge: getServerSideProps support (#429) (7aeb26e)
  • sls-next/cdk-construct: edgeLambdas concatenated with default edge lambdas (#1024) (32772c0)
  • add custom input for lambda(s) timeout (#275) (236231e)
  • add custom inputs for lambda name (#283) (704120b), closes #232
  • ignore subdomain if not present (#231) (ac2f819)
  • memory input for lambdas (#255) (54dfaa2)

Performance Improvements

  • core, lambda-at-edge: cold start improvements (#1044) (0ee1394)
  • lambda-at-edge: do not decompress content from fetch in external rewrite (#871) (f0a9b86)
  • lambda-at-edge: fix rollup bundling for dynamic imports perf (#1029) (f8f694c)

Reverts

  • Revert "test: remove flaky test" (86f1ced)

Don't miss a new serverless-next.js release

NewReleases is sending notifications on new releases.