-
Notifications
You must be signed in to change notification settings - Fork 26.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(app): add
experimental.missingSuspenseWithCSRBailout
(#57642)
### What? This PR adds a new flag called `experimental.missingSuspenseWithCSRBailout`. ### Why? Via this PR we can break a build when calling `useSearchParams` without wrapping it in a suspense boundary. If no suspense boundaries are present, Next.js must avoid doing SSR and defer the entire page's rendering to the client. This is not a great default. Instead, we will now break the build so that you are forced to add a boundary. ### How? Add an experimental flag. If a `BailoutToCSRError` error is thrown and this flag is enabled, the build should fail and log an error, instead of showing a warning and bail the entire page to client-side rendering. Closes NEXT-1770 --------- Co-authored-by: Balázs Orbán <info@balazsorban.com> Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
- Loading branch information
1 parent
8aced5b
commit c52cb5a
Showing
30 changed files
with
471 additions
and
387 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- | ||
title: Missing Suspense with CSR Bailout | ||
--- | ||
|
||
#### Why This Error Occurred | ||
|
||
Certain methods like `useSearchParams()` opt Next.js into client-side rendering. Without a suspense boundary, this will opt the entire page into client-side rendering, which is likely not intended. | ||
|
||
#### Possible Ways to Fix It | ||
|
||
Make sure that the method is wrapped in a suspense boundary. This way Next.js will only opt the component into client-side rendering up to the suspense boundary. | ||
|
||
### Useful Links | ||
|
||
- [`useSearchParams`](https://nextjs.org/docs/app/api-reference/functions/use-search-params) |
13 changes: 5 additions & 8 deletions
13
packages/next/src/client/components/bailout-to-client-rendering.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,11 @@ | ||
import { throwWithNoSSR } from '../../shared/lib/lazy-dynamic/no-ssr-error' | ||
import { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr' | ||
import { staticGenerationAsyncStorage } from './static-generation-async-storage.external' | ||
|
||
export function bailoutToClientRendering(): void | never { | ||
export function bailoutToClientRendering(reason: string): void | never { | ||
const staticGenerationStore = staticGenerationAsyncStorage.getStore() | ||
|
||
if (staticGenerationStore?.forceStatic) { | ||
return | ||
} | ||
if (staticGenerationStore?.forceStatic) return | ||
|
||
if (staticGenerationStore?.isStaticGeneration) { | ||
throwWithNoSSR() | ||
} | ||
if (staticGenerationStore?.isStaticGeneration) | ||
throw new BailoutToCSRError(reason) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,8 @@ | ||
import { DYNAMIC_ERROR_CODE } from '../../client/components/hooks-server-context' | ||
import { isNotFoundError } from '../../client/components/not-found' | ||
import { isRedirectError } from '../../client/components/redirect' | ||
import { isBailoutCSRError } from '../../shared/lib/lazy-dynamic/no-ssr-error' | ||
|
||
export const isDynamicUsageError = (err: any) => | ||
err.digest === DYNAMIC_ERROR_CODE || | ||
isNotFoundError(err) || | ||
isBailoutCSRError(err) || | ||
isRedirectError(err) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 14 additions & 0 deletions
14
packages/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
// This has to be a shared module which is shared between client component error boundary and dynamic component | ||
|
||
const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING' | ||
|
||
/** An error that should be thrown when we want to bail out to client-side rendering. */ | ||
export class BailoutToCSRError extends Error { | ||
digest: typeof BAILOUT_TO_CSR = BAILOUT_TO_CSR | ||
} | ||
|
||
/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */ | ||
export function isBailoutToCSRError(err: unknown): err is BailoutToCSRError { | ||
if (typeof err !== 'object' || err === null) return false | ||
return 'digest' in err && err.digest === BAILOUT_TO_CSR | ||
} |
21 changes: 21 additions & 0 deletions
21
packages/next/src/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
'use client' | ||
|
||
import type { ReactElement } from 'react' | ||
import { BailoutToCSRError } from './bailout-to-csr' | ||
|
||
interface BailoutToCSRProps { | ||
reason: string | ||
children: ReactElement | ||
} | ||
|
||
/** | ||
* If rendered on the server, this component throws an error | ||
* to signal Next.js that it should bail out to client-side rendering instead. | ||
*/ | ||
export function BailoutToCSR({ reason, children }: BailoutToCSRProps) { | ||
if (typeof window === 'undefined') { | ||
throw new BailoutToCSRError(reason) | ||
} | ||
|
||
return children | ||
} |
14 changes: 0 additions & 14 deletions
14
packages/next/src/shared/lib/lazy-dynamic/dynamic-no-ssr.tsx
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
c52cb5a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stats from current release
Default Build (Increase detected⚠️ )
General
Client Bundles (main, webpack) Overall increase⚠️
Legacy Client Bundles (polyfills)
Client Pages
Client Build Manifests
Rendered Page Sizes
Edge SSR bundle Size Overall increase⚠️
Middleware size
Next Runtimes Overall increase⚠️
Diff details
Diff for page.js
Diff too large to display
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for dynamic-HASH.js
Diff for image-HASH.js
Diff for link-HASH.js
Diff for 170-HASH.js
Diff too large to display
Diff for 3f784ff6-HASH.js
Diff too large to display
Diff for _not-found-4..8d5a690ee.js
Diff for main-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
Diff for pages-api-tu..time.prod.js
@@ -17,5 +17,5 @@ * Copyright(c) 2012 TJ Holowaychuk * Copyright(c) 2016-2017 Douglas Christopher Wilson * MIT Licensed - */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})(); + */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser,R.shared]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})(); //# sourceMappingURL=pages-api-turbo.runtime.prod.js.map \ No newline at end of file
Diff for pages-api.runtime.dev.js
@@ -17,6 +17,6 @@ * Copyright(c) 2012 TJ Holowaychuk * Copyright(c) 2016-2017 Douglas Christopher Wilson * MIT Licensed - */var t=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function r(e){var t=e&&Date.parse(e);return"number"==typeof t?t:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&t.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var t=0,r=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===t&&(n=t=o+1);break;case 44:r.push(e.substring(n,t)),n=t=o+1;break;default:t=o+1}return r.push(e.substring(n,t)),r}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(r(c)<=r(o)))return!1}return!0}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}},i=!0;try{t[e](a,a.exports,n),i=!1}finally{i&&delete r[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=r.n(n);let a="aes-256-gcm";function i(e,t){let r=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,r),d=Buffer.concat([s.update(t,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,r,p,d]).toString("hex")}function s(e,t){let r=Buffer.from(t,"hex"),n=r.slice(0,64),i=r.slice(64,80),s=r.slice(80,96),d=r.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:t}){this.userland=e,this.definition=t}}var t,o,a,i,s,d,p,u,l,c,f,h=r("./dist/compiled/bytes/index.js"),v=r.n(h);let g=e=>{let t=e.length,r=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;r<t;)o^=e.charCodeAt(r++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,t=!1)=>(t?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=r("./dist/compiled/fresh/index.js"),x=r.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class A{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class _ extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new _}}class T extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return A.get(t,r,n);let o=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return A.get(t,a,n)},set(t,r,n,o){if("symbol"==typeof r)return A.set(t,r,n,o);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return A.set(t,i??r,n,o)},has(t,r){if("symbol"==typeof r)return A.has(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&A.has(t,o)},deleteProperty(t,r){if("symbol"==typeof r)return A.deleteProperty(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||A.deleteProperty(t,o)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return _.callable;default:return A.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new T(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",P=Symbol(H),k=Symbol(N);function E(e,t={}){if(k in e)return e;let{serialize:n}=r("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,k,{value:!0,enumerable:!1}),e}class M extends Error{constructor(e,t){super(t),this.statusCode=e}}function O(e,t,r){e.statusCode=t,e.statusMessage=r,e.end(r)}function L({req:e},t,r){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,t,{...n,get:()=>{let n=r();return Object.defineProperty(e,t,{...o,value:n}),n},set:r=>{Object.defineProperty(e,t,{...o,value:r})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(t||(t={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var $=r("./dist/compiled/@edge-runtime/cookies/index.js"),q=r("./dist/compiled/content-type/index.js");async function I(e,t){let n,o;try{n=(0,q.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,q.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=r("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:t})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new M(413,`Body exceeded ${t} limit`);throw new M(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new M(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=r("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,t,r,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...t.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(r.headers))a.includes(e)&&(o[e]=r.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${r.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&t.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:t});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(t){throw Error(`Failed to revalidate ${e}: ${j(t)?t.message:t}`)}}async function K(e,t,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){t.statusCode=404,t.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0,y=(null==(c=i.api)?void 0:c.externalResolver)||!1;L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,t,n){var o,a;let i;if(n&&function(e,t){let r=T.from(e.headers),n=r.get(w),o=n===t.previewModeId,a=r.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(P in e)return e[P];let s=T.from(e.headers),d=new $.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let t={};return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return E(t),!1;try{let e=r("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return E(t),!1}let{decryptWithSecret:l}=r("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let t=JSON.parse(c);return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}catch{return!1}})(e,t,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let b=0,R=g&&"boolean"!=typeof g?v().parse(g):4194304,j=t.write,A=t.end;t.write=(...e)=>(b+=Buffer.byteLength(e[0]||""),j.apply(t,e)),t.end=(...r)=>(r.length&&"function"!=typeof r[0]&&(b+=Buffer.byteLength(r[0]||"")),g&&b>=R&&console.warn(`API response for ${e.url} exceeds ${v().format(R)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),A.apply(t,r)),t.status=e=>(t.statusCode=e,t),t.send=r=>(function(e,t,r){if(null==r){t.end();return}if(204===t.statusCode||304===t.statusCode){t.removeHeader("Content-Type"),t.removeHeader("Content-Length"),t.removeHeader("Transfer-Encoding"),r&&console.warn(`A body was attempted to be set with a 204 statusCode for ${e.url}, this is invalid and the body was ignored. + */var t=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function r(e){var t=e&&Date.parse(e);return"number"==typeof t?t:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&t.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var t=0,r=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===t&&(n=t=o+1);break;case 44:r.push(e.substring(n,t)),n=t=o+1;break;default:t=o+1}return r.push(e.substring(n,t)),r}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(r(c)<=r(o)))return!1}return!0}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}},i=!0;try{t[e](a,a.exports,n),i=!1}finally{i&&delete r[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=r.n(n);let a="aes-256-gcm";function i(e,t){let r=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,r),d=Buffer.concat([s.update(t,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,r,p,d]).toString("hex")}function s(e,t){let r=Buffer.from(t,"hex"),n=r.slice(0,64),i=r.slice(64,80),s=r.slice(80,96),d=r.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:t}){this.userland=e,this.definition=t}}var t,o,a,i,s,d,p,u,l,c,f,h=r("./dist/compiled/bytes/index.js"),v=r.n(h);let g=e=>{let t=e.length,r=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;r<t;)o^=e.charCodeAt(r++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,t=!1)=>(t?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=r("./dist/compiled/fresh/index.js"),x=r.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser,R.shared]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class A{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class _ extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new _}}class T extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return A.get(t,r,n);let o=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return A.get(t,a,n)},set(t,r,n,o){if("symbol"==typeof r)return A.set(t,r,n,o);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return A.set(t,i??r,n,o)},has(t,r){if("symbol"==typeof r)return A.has(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&A.has(t,o)},deleteProperty(t,r){if("symbol"==typeof r)return A.deleteProperty(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||A.deleteProperty(t,o)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return _.callable;default:return A.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new T(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",P=Symbol(H),k=Symbol(N);function E(e,t={}){if(k in e)return e;let{serialize:n}=r("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,k,{value:!0,enumerable:!1}),e}class M extends Error{constructor(e,t){super(t),this.statusCode=e}}function O(e,t,r){e.statusCode=t,e.statusMessage=r,e.end(r)}function L({req:e},t,r){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,t,{...n,get:()=>{let n=r();return Object.defineProperty(e,t,{...o,value:n}),n},set:r=>{Object.defineProperty(e,t,{...o,value:r})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(t||(t={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var $=r("./dist/compiled/@edge-runtime/cookies/index.js"),q=r("./dist/compiled/content-type/index.js");async function I(e,t){let n,o;try{n=(0,q.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,q.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=r("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:t})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new M(413,`Body exceeded ${t} limit`);throw new M(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new M(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=r("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,t,r,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...t.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(r.headers))a.includes(e)&&(o[e]=r.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${r.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&t.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:t});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(t){throw Error(`Failed to revalidate ${e}: ${j(t)?t.message:t}`)}}async function K(e,t,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){t.statusCode=404,t.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0,y=(null==(c=i.api)?void 0:c.externalResolver)||!1;L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,t,n){var o,a;let i;if(n&&function(e,t){let r=T.from(e.headers),n=r.get(w),o=n===t.previewModeId,a=r.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(P in e)return e[P];let s=T.from(e.headers),d=new $.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let t={};return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return E(t),!1;try{let e=r("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return E(t),!1}let{decryptWithSecret:l}=r("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let t=JSON.parse(c);return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}catch{return!1}})(e,t,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let b=0,R=g&&"boolean"!=typeof g?v().parse(g):4194304,j=t.write,A=t.end;t.write=(...e)=>(b+=Buffer.byteLength(e[0]||""),j.apply(t,e)),t.end=(...r)=>(r.length&&"function"!=typeof r[0]&&(b+=Buffer.byteLength(r[0]||"")),g&&b>=R&&console.warn(`API response for ${e.url} exceeds ${v().format(R)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),A.apply(t,r)),t.status=e=>(t.statusCode=e,t),t.send=r=>(function(e,t,r){if(null==r){t.end();return}if(204===t.statusCode||304===t.statusCode){t.removeHeader("Content-Type"),t.removeHeader("Content-Length"),t.removeHeader("Transfer-Encoding"),r&&console.warn(`A body was attempted to be set with a 204 statusCode for ${e.url}, this is invalid and the body was ignored. See more info here https://nextjs.org/docs/messages/invalid-api-status-body`),t.end();return}let n=t.getHeader("Content-Type");if(r instanceof C.Stream){n||t.setHeader("Content-Type","application/octet-stream"),r.pipe(t);return}let o=["object","number","boolean"].includes(typeof r),a=o?JSON.stringify(r):r,i=m(a);if(i&&t.setHeader("ETag",i),!x()(e.headers,{etag:i})||(t.statusCode=304,t.end(),0)){if(Buffer.isBuffer(r)){n||t.setHeader("Content-Type","application/octet-stream"),t.setHeader("Content-Length",r.length),t.end(r);return}o&&t.setHeader("Content-Type","application/json; charset=utf-8"),t.setHeader("Content-Length",Buffer.byteLength(a)),t.end(a)}})(e,t,r),t.json=e=>{t.setHeader("Content-Type","application/json; charset=utf-8"),t.send(JSON.stringify(e))},t.redirect=(e,r)=>(function(e,t,r){if("string"==typeof t&&(r=t,t=307),"number"!=typeof t||"string"!=typeof r)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(t,{Location:r}),e.write(r),e.end(),e})(t,e,r),t.setDraftMode=(e={enable:!0})=>(function(e,t){if(!D(t.previewModeId))throw Error("invariant: invalid previewModeId");let n=t.enable?void 0:new Date(0),{serialize:o}=r("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,t.previewModeId,{httpOnly:!0,sameSite:"lax",secure:!1,path:"/",expires:n})]),e})(t,Object.assign({},a,e)),t.setPreviewData=(e,n={})=>(function(e,t,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=r("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=r("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(t))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=r("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(t,e,Object.assign({},a,n)),t.clearPreviewData=(e={})=>E(t,e),t.revalidate=(t,r)=>z(t,r||{},e,a);let _=o.default||o,k=!1;t.once("pipe",()=>k=!0),null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d);let M=await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,t));if(void 0!==M){if(M instanceof Response)throw Error('API route returned a Response object in the Node.js runtime, this is not supported. Please use `runtime: "edge"` instead: https://nextjs.org/docs/api-routes/edge-api-routes');console.warn(`API handler should not return a value, received ${typeof M}.`)}y||t.finished||t.headersSent||k||console.warn(`API resolved without sending a response for ${e.url}, this may result in stalled requests.`)}catch(e){if(e instanceof M)O(t,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;O(t,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,t,r){await K(e,t,r.query,this.userland,{...r.previewProps,revalidate:r.revalidate,trustHostHeader:r.trustHostHeader,allowedRevalidateHeaderKeys:r.allowedRevalidateHeaderKeys,hostname:r.hostname},r.minimalMode,r.dev,r.page)}}let F=U})(),module.exports=n})(); //# sourceMappingURL=pages-api.runtime.dev.js.map \ No newline at end of file
Diff for pages-api.ru..time.prod.js
@@ -17,5 +17,5 @@ * Copyright(c) 2012 TJ Holowaychuk * Copyright(c) 2016-2017 Douglas Christopher Wilson * MIT Licensed - */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})(); + */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser,R.shared]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})(); //# sourceMappingURL=pages-api.runtime.prod.js.map \ No newline at end of file
Diff for pages-turbo...time.prod.js
Diff too large to display
Diff for pages.runtime.dev.js
Diff too large to display
Diff for pages.runtime.prod.js
Diff too large to display
Diff for server.runtime.prod.js
Diff too large to display