Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router)#92580
Merged
Conversation
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Contributor
Tests Passed |
Contributor
Stats from current PR✅ No significant changes detected📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📝 Changed Files (4 files)Files with changes:
View diffspages-turbo...ntime.dev.jsDiff too large to display pages-turbo...time.prod.js@@ -7,14 +7,14 @@ Read more: https://nextjs.org/docs/messages/no-document-import-in-page`),"__NEXT
Keys that need to be moved: ${t.join(", ")}.
Read more: https://nextjs.org/docs/messages/${r}`};function rb(e,t,r){let{destination:a,permanent:n,statusCode:i,basePath:s}=e,o=[],l=void 0!==i,c=void 0!==n;c&&l?o.push("`permanent` and `statusCode` can not both be provided"):c&&"boolean"!=typeof n?o.push("`permanent` must be `true` or `false`"):l&&!t2.has(i)&&o.push(`\`statusCode\` must undefined or one of ${[...t2].join(", ")}`);let u=typeof a;"string"!==u&&o.push(`\`destination\` should be string but received ${u}`);let d=typeof s;if("undefined"!==d&&"boolean"!==d&&o.push(`\`basePath\` should be undefined or a false, received ${d}`),o.length>0)throw Object.defineProperty(Error(`Invalid redirect object returned from ${r} for ${t.url}
-`+o.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1,configurable:!0})}async function rE(a,n,i,s,o,l,c,u){let d,h,p;(0,ef.C4)({req:a},"cookies",ei(a.headers));let f=c.deploymentId?`?dpl=${c.deploymentId}`:"",m=c.clientAssetToken?`?dpl=${c.clientAssetToken}`:"",g={assetQueryString:m,mutableAssetQueryString:f};s=Object.assign({},s);let{err:v,pageConfig:y={},buildManifest:b,reactLoadableManifest:E,ErrorDebug:x,getStaticProps:_,getStaticPaths:P,getServerSideProps:R,isNextDataRequest:w,params:C,previewProps:S,basePath:O,images:T,runtime:j,isExperimentalCompile:D,expireTime:$}=o,{App:N}=l,I=l.Document,M=o.Component,F=u.isFallback??!1;u.developmentNotFoundSourcePage;var L=s;for(let e of t6)delete L[e];let U=!!_,H=U&&o.isBuildTimePrerendering,z=N.getInitialProps===N.origGetInitialProps,X=!!(null==M?void 0:M.getInitialProps),V=null==M?void 0:M.unstable_scriptLoader,J=A(i),K="/_error"===i&&M.getInitialProps===M.origGetInitialProps;o.isBuildTimePrerendering&&X&&!K&&t(`Detected getInitialProps on page '${i}' while running export. It's recommended to use getStaticProps which has a more correct behavior for static exporting.
-Read more: https://nextjs.org/docs/messages/get-initial-props-export`);let Z=!X&&z&&!U&&!R;if(Z&&D&&(n.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=${k.eM}${r}`}({revalidate:!1,expire:$})),Z=!1),X&&U)throw Object.defineProperty(Error(k.iS+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(X&&R)throw Object.defineProperty(Error(k.bX+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(R&&U)throw Object.defineProperty(Error(k.g0+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(R&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E369",enumerable:!1,configurable:!0});if(P&&!J)throw Object.defineProperty(Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${i}'.
-Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`),"__NEXT_ERROR_CODE",{value:"E187",enumerable:!1,configurable:!0});if(P&&!U)throw Object.defineProperty(Error(`getStaticPaths was added without a getStaticProps in ${i}. Without getStaticProps, getStaticPaths does nothing`),"__NEXT_ERROR_CODE",{value:"E447",enumerable:!1,configurable:!0});if(U&&J&&!P)throw Object.defineProperty(Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${i}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1,configurable:!0});let Y=o.resolvedAsPath||a.url;for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==M?void 0:M[e])throw Object.defineProperty(Error(`page ${i} ${e} ${k.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1,configurable:!0});await tZ.preloadAll(),(U||R)&&!F&&S&&(p=!1!==(d=e(a,n,S,!!o.multiZoneDraftMode)));let Q=!!(R||X||!z&&!U||D),ee=new rg(i,s,Y,{isFallback:F},Q,O,o.locale,o.locales,o.defaultLocale,o.domainLocales,p,ev(a,"isLocaleDomain")),et={back(){ee.back()},forward(){ee.forward()},refresh(){ee.reload()},hmrRefresh(){},push(e,{scroll:t}={}){ee.push(e,void 0,{scroll:t})},replace(e,{scroll:t}={}){ee.replace(e,void 0,{scroll:t})},prefetch(e){ee.prefetch(e)}},er={},ea=(0,tM.createStyleRegistry)(),en=[(0,tD.jsx)("meta",{charSet:"utf-8"},"charset"),(0,tD.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")],es=[],eo={};V&&(eo.beforeInteractive=[].concat(V()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let el=a.headers["content-security-policy"]||a.headers["content-security-policy-report-only"],ec="string"==typeof el?function(e){var t;let r=e.split(";").map(e=>e.trim()),a=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!a)return;let n=null==(t=a.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(n){if(rh.test(n))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return n}}(el):void 0,eu=({children:e})=>{var t;return(0,tD.jsx)(rs.Provider,{value:et,children:(0,tD.jsx)(re.Provider,{value:(t=ee).isReady&&t.query?new URL(t.asPath,"http://n").searchParams:new URLSearchParams,children:(0,tD.jsx)(ri,{router:ee,isAutoExport:Z,children:(0,tD.jsx)(rr.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(q(e.pathname).groups))t[r]=e.query[r];return t}(ee),children:(0,tD.jsx)(tY.Provider,{value:ee,children:(0,tD.jsx)(tq.Provider,{value:{updateHead:e=>{en=e},updateScripts:e=>{er=e},scripts:eo,mountedInstances:new Set,nonce:ec},children:(0,tD.jsx)(tX.Provider,{value:e=>es.push(e),children:(0,tD.jsx)(tM.StyleRegistry,{registry:ea,children:(0,tD.jsx)(t4.Provider,{value:T,children:e})})})})})})})})})},ed=()=>null,eh=({children:e})=>(0,tD.jsxs)(tD.Fragment,{children:[(0,tD.jsx)(ed,{}),(0,tD.jsx)(eu,{children:(0,tD.jsxs)(tD.Fragment,{children:[e,(0,tD.jsx)(ed,{})]})})]}),ep={err:v,req:Z?void 0:a,res:Z?void 0:n,pathname:i,query:s,asPath:Y,locale:o.locale,locales:o.locales,defaultLocale:o.defaultLocale,AppTree:e=>(0,tD.jsx)(eh,{children:rv(N,M,{...e,router:ee})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:a}=await e.renderPage({enhanceApp:e=>t=>(0,tD.jsx)(e,{...t})}),n=ea.styles({nonce:t.nonce||ec});return ea.flush(),{html:r,head:a,styles:n}}},em=!U&&(o.isBuildTimePrerendering||"");if(h=await W(N,{AppTree:ep.AppTree,Component:M,router:ee,ctx:ep}),(U||R)&&p&&(h.__N_PREVIEW=!0),U&&(h.__N_SSG=!0),U&&!F){let e,t;try{e=await (0,eL.getTracer)().trace(eU.vr.getStaticProps,{spanName:`getStaticProps ${i}`,attributes:{"next.route":i}},()=>_({...J?{params:C}:void 0,...p?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale,revalidateReason:o.isOnDemandRevalidate?"on-demand":H?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(k.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(rb(e.redirect,a,"getStaticProps"),H)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${a.url})
-See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1,configurable:!0});e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0}if(H&&!g.isNotFound&&!tz(i,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1,configurable:!0});if("revalidate"in e){if(e.revalidate&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1,configurable:!0});if("number"==typeof e.revalidate)if(Number.isInteger(e.revalidate))if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${a.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
+`+o.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1,configurable:!0})}async function rE(a,n,i,s,o,l,c,u){let d,h,p;(0,ef.C4)({req:a},"cookies",ei(a.headers));let f="",m=c.deploymentId?`?dpl=${c.deploymentId}`:"",g=c.clientAssetToken?`?dpl=${c.clientAssetToken}`:"",v=f+(c.clientAssetToken?`${f?"&":"?"}dpl=${c.clientAssetToken}`:""),y={};s=Object.assign({},s);let{err:b,pageConfig:E={},buildManifest:x,reactLoadableManifest:_,ErrorDebug:P,getStaticProps:R,getStaticPaths:w,getServerSideProps:C,isNextDataRequest:S,params:O,previewProps:T,basePath:j,images:D,runtime:$,isExperimentalCompile:N,expireTime:I}=o,{App:M}=l,F=l.Document,L=o.Component,U=u.isFallback??!1;u.developmentNotFoundSourcePage;var H=s;for(let e of t6)delete H[e];let z=!!R,X=z&&o.isBuildTimePrerendering,V=M.getInitialProps===M.origGetInitialProps,J=!!(null==L?void 0:L.getInitialProps),K=null==L?void 0:L.unstable_scriptLoader,Z=A(i),Y="/_error"===i&&L.getInitialProps===L.origGetInitialProps;o.isBuildTimePrerendering&&J&&!Y&&t(`Detected getInitialProps on page '${i}' while running export. It's recommended to use getStaticProps which has a more correct behavior for static exporting.
+Read more: https://nextjs.org/docs/messages/get-initial-props-export`);let Q=!J&&V&&!z&&!C;if(Q&&N&&(n.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=${k.eM}${r}`}({revalidate:!1,expire:I})),Q=!1),J&&z)throw Object.defineProperty(Error(k.iS+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(J&&C)throw Object.defineProperty(Error(k.bX+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(C&&z)throw Object.defineProperty(Error(k.g0+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(C&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E369",enumerable:!1,configurable:!0});if(w&&!Z)throw Object.defineProperty(Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${i}'.
+Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`),"__NEXT_ERROR_CODE",{value:"E187",enumerable:!1,configurable:!0});if(w&&!z)throw Object.defineProperty(Error(`getStaticPaths was added without a getStaticProps in ${i}. Without getStaticProps, getStaticPaths does nothing`),"__NEXT_ERROR_CODE",{value:"E447",enumerable:!1,configurable:!0});if(z&&Z&&!w)throw Object.defineProperty(Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${i}'.
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1,configurable:!0});let ee=o.resolvedAsPath||a.url;for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==L?void 0:L[e])throw Object.defineProperty(Error(`page ${i} ${e} ${k.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1,configurable:!0});await tZ.preloadAll(),(z||C)&&!U&&T&&(p=!1!==(d=e(a,n,T,!!o.multiZoneDraftMode)));let et=!!(C||J||!V&&!z||N),er=new rg(i,s,ee,{isFallback:U},et,j,o.locale,o.locales,o.defaultLocale,o.domainLocales,p,ev(a,"isLocaleDomain")),ea={back(){er.back()},forward(){er.forward()},refresh(){er.reload()},hmrRefresh(){},push(e,{scroll:t}={}){er.push(e,void 0,{scroll:t})},replace(e,{scroll:t}={}){er.replace(e,void 0,{scroll:t})},prefetch(e){er.prefetch(e)}},en={},es=(0,tM.createStyleRegistry)(),eo=[(0,tD.jsx)("meta",{charSet:"utf-8"},"charset"),(0,tD.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")],el=[],ec={};K&&(ec.beforeInteractive=[].concat(K()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eu=a.headers["content-security-policy"]||a.headers["content-security-policy-report-only"],ed="string"==typeof eu?function(e){var t;let r=e.split(";").map(e=>e.trim()),a=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!a)return;let n=null==(t=a.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(n){if(rh.test(n))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return n}}(eu):void 0,eh=({children:e})=>{var t;return(0,tD.jsx)(rs.Provider,{value:ea,children:(0,tD.jsx)(re.Provider,{value:(t=er).isReady&&t.query?new URL(t.asPath,"http://n").searchParams:new URLSearchParams,children:(0,tD.jsx)(ri,{router:er,isAutoExport:Q,children:(0,tD.jsx)(rr.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(q(e.pathname).groups))t[r]=e.query[r];return t}(er),children:(0,tD.jsx)(tY.Provider,{value:er,children:(0,tD.jsx)(tq.Provider,{value:{updateHead:e=>{eo=e},updateScripts:e=>{en=e},scripts:ec,mountedInstances:new Set,nonce:ed},children:(0,tD.jsx)(tX.Provider,{value:e=>el.push(e),children:(0,tD.jsx)(tM.StyleRegistry,{registry:es,children:(0,tD.jsx)(t4.Provider,{value:D,children:e})})})})})})})})})},ep=()=>null,em=({children:e})=>(0,tD.jsxs)(tD.Fragment,{children:[(0,tD.jsx)(ep,{}),(0,tD.jsx)(eh,{children:(0,tD.jsxs)(tD.Fragment,{children:[e,(0,tD.jsx)(ep,{})]})})]}),eg={err:b,req:Q?void 0:a,res:Q?void 0:n,pathname:i,query:s,asPath:ee,locale:o.locale,locales:o.locales,defaultLocale:o.defaultLocale,AppTree:e=>(0,tD.jsx)(em,{children:rv(M,L,{...e,router:er})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:a}=await e.renderPage({enhanceApp:e=>t=>(0,tD.jsx)(e,{...t})}),n=es.styles({nonce:t.nonce||ed});return es.flush(),{html:r,head:a,styles:n}}},ey=!z&&(o.isBuildTimePrerendering||"");if(h=await W(M,{AppTree:eg.AppTree,Component:L,router:er,ctx:eg}),(z||C)&&p&&(h.__N_PREVIEW=!0),z&&(h.__N_SSG=!0),z&&!U){let e,t;try{e=await (0,eL.getTracer)().trace(eU.vr.getStaticProps,{spanName:`getStaticProps ${i}`,attributes:{"next.route":i}},()=>R({...Z?{params:O}:void 0,...p?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale,revalidateReason:o.isOnDemandRevalidate?"on-demand":X?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(k.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});y.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(rb(e.redirect,a,"getStaticProps"),X)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${a.url})
+See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1,configurable:!0});e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),y.isRedirect=!0}if(X&&!y.isNotFound&&!tz(i,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1,configurable:!0});if("revalidate"in e){if(e.revalidate&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1,configurable:!0});if("number"==typeof e.revalidate)if(Number.isInteger(e.revalidate))if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${a.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
To never revalidate, you can set revalidate to \`false\` (only ran once at build-time).
To revalidate as soon as possible, you can set the value to \`1\`.`),"__NEXT_ERROR_CODE",{value:"E311",enumerable:!1,configurable:!0});else e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${a.url}. This may have been done in error.
To only run getStaticProps at build-time and not revalidate at runtime, you can set \`revalidate\` to \`false\`!`),t=e.revalidate;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number for ${a.url}. Mixed numbers, such as '${e.revalidate}', cannot be used.
-Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1,configurable:!0});else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${a.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1,configurable:!0})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.cacheControl={revalidate:t,expire:void 0},g.pageData=h,g.isNotFound)return new e7(null,{metadata:g,contentType:null})}if(R&&(h.__N_SSP=!0),R&&!F){let e,t=!1;try{e=await (0,eL.getTracer)().trace(eU.vr.getServerSideProps,{spanName:`getServerSideProps ${i}`,attributes:{"next.route":i}},async()=>R({req:a,res:n,query:s,resolvedUrl:o.resolvedUrl,...J?{params:C}:void 0,...!1!==d?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale})),g.cacheControl={revalidate:0,expire:void 0}}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1,configurable:!0});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});return g.isNotFound=!0,new e7(null,{metadata:g,contentType:null})}if("redirect"in e&&"object"==typeof e.redirect&&(rb(e.redirect,a,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0),t&&(e.props=await e.props),H&&!tz(i,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1,configurable:!0});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(w&&!U||g.isRedirect)return new e7(JSON.stringify(h),{metadata:g,contentType:k.U2});if(F&&(h.pageProps={}),B(n)&&!U)return e7.EMPTY;let eg=b;if(Z&&J){let e,t=(e=eE(eb(i))).startsWith("/index/")&&!A(e)?e.slice(6):"/index"!==e?e:"/";t in eg.pages&&(eg={...eg,pages:{...eg.pages,[t]:[...eg.pages[t],...eg.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eg.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let ey=({children:e})=>(0,tD.jsx)("div",{id:"__next",children:e}),ex=async()=>{let e,t,r,a;async function i(e){let t=async(t={})=>{if(ep.err&&x)return e&&e(N,M),{html:await rm((0,tD.jsx)(ey,{children:(0,tD.jsx)(x,{})})),head:en};let{App:r,Component:a}="function"==typeof t?{App:N,Component:t(M)}:{App:t.enhanceApp?t.enhanceApp(N):N,Component:t.enhanceComponent?t.enhanceComponent(M):M},n=await e(r,a);return await n.allReady,{html:await eG(n),head:en}},r={...ep,renderPage:t},a=await W(I,r);if(B(n)&&!U)return null;if(!a||"string"!=typeof a.html)throw Object.defineProperty(Error(`"${G(I)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E1039",enumerable:!1,configurable:!0});return{docProps:a,documentCtx:r}}I.__NEXT_BUILTIN_DOCUMENT__;let s=async(e,t)=>{let r,a,n=(r=e||N,a=t||M,ep.err&&x?(0,tD.jsx)(ey,{children:(0,tD.jsx)(x,{})}):(0,tD.jsx)(ey,{children:(0,tD.jsx)(eh,{children:rv(r,a,{...h,router:ee})})}));return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eL.getTracer)().trace(eU.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:tI(),element:n})},o=!!I.getInitialProps;if(o)if(null===(e=await i(s)))t=null;else{let{docProps:r}=e;t=r.html}else{e={};let r=await s(N,M);await r.allReady,t=await eG(r)}let{docProps:l}=e||{};o?(r=l.styles,en=l.head):(r=ea.styles(),ea.flush());let c=await rm((a=ea.styles(),ea.flush(),(0,tD.jsx)(tD.Fragment,{children:a})));return null===t?null:{contentHTML:c+t,documentElement:e=>(0,tD.jsx)(I,{...e,...l}),head:en,headTags:[],styles:r}};(0,eL.getTracer)().setRootSpanAttribute("next.route",o.page);let e_=await (0,eL.getTracer)().trace(eU.vr.renderDocument,{spanName:`render route (pages) ${o.page}`,attributes:{"next.route":o.page}},async()=>ex());if(!e_)return new e7(null,{metadata:g,contentType:k.j9});let eP=new Set,eR=new Set;for(let e of es){let t=E[e];t&&(eP.add(t.id),t.files.forEach(e=>{eR.add(e)}))}let{assetPrefix:ew,defaultLocale:eC,disableOptimizedLoading:eS,domainLocales:eO,locale:eT,locales:eA}=o,ej={__NEXT_DATA__:{props:h,page:i,query:s,buildId:c.buildId,assetPrefix:""===ew?void 0:ew,nextExport:!0===em||void 0,autoExport:!0===Z||void 0,isFallback:F,isExperimentalCompile:D,dynamicIds:0===eP.size?void 0:Array.from(eP),err:o.err?function(e,t){if(e){let e="server";return e=t[rd]||"server",{name:t.name,source:e,message:t8()(t.message),stack:t.stack,digest:t.digest}}return{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}}(!1,o.err):void 0,gsp:!!_||void 0,gssp:!!R||void 0,customServer:c.customServer,gip:!!X||void 0,appGip:!z||void 0,locale:eT,locales:eA,defaultLocale:eC,domainLocales:eO,isPreview:!0===p||void 0,notFoundSrcPage:void 0},nonce:ec,buildManifest:eg,docComponentsRendered:{},dangerousAsPath:ee.asPath,isDevelopment:!1,deploymentId:c.deploymentId,dynamicImports:Array.from(eR),dynamicCssManifest:new Set(o.dynamicCssManifest||[]),assetPrefix:ew,unstable_runtimeJS:y.unstable_runtimeJS,unstable_JsPreload:y.unstable_JsPreload,assetQueryString:m||"",mutableAssetQueryString:f||"",scriptLoader:er,locale:eT,disableOptimizedLoading:eS,head:e_.head,headTags:e_.headTags,styles:e_.styles,crossOrigin:o.crossOrigin,optimizeCss:o.optimizeCss,nextConfigOutput:o.nextConfigOutput,nextScriptWorkers:o.nextScriptWorkers,runtime:j,largePageDataBytes:o.largePageDataBytes,nextFontManifest:o.nextFontManifest,experimentalClientTraceMetadata:o.experimental.clientTraceMetadata},eD=(0,tD.jsx)(tQ.Provider,{value:ej,children:e_.documentElement(ej)}),e$=await (0,eL.getTracer)().trace(eU.vr.renderToString,async()=>rm(eD)),[eN,ek]=e$.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),eI="";e$.startsWith(rp)||(eI+=rp);let eM=(eI+=eN)+e_.contentHTML+ek;return new e7(await r(eM,o),{metadata:g,contentType:k.j9})}let rx=(e,t,r,a,n,i,s)=>rE(e,t,r,a,n,n,i,s),r_=tN().createContext(null);function rP(e){let t=(0,t$.useContext)(r_);t&&t(e)}class rR extends tj{constructor(e){super(e),this.components=e.components}render(e,t,r){return rE(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document},r.sharedContext,r.renderContext)}}let rw={contexts:y},rC=rR})(),module.exports=i})();
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1,configurable:!0});else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${a.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1,configurable:!0})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),y.cacheControl={revalidate:t,expire:void 0},y.pageData=h,y.isNotFound)return new e7(null,{metadata:y,contentType:null})}if(C&&(h.__N_SSP=!0),C&&!U){let e,t=!1;try{e=await (0,eL.getTracer)().trace(eU.vr.getServerSideProps,{spanName:`getServerSideProps ${i}`,attributes:{"next.route":i}},async()=>C({req:a,res:n,query:s,resolvedUrl:o.resolvedUrl,...Z?{params:O}:void 0,...!1!==d?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale})),y.cacheControl={revalidate:0,expire:void 0}}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1,configurable:!0});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});return y.isNotFound=!0,new e7(null,{metadata:y,contentType:null})}if("redirect"in e&&"object"==typeof e.redirect&&(rb(e.redirect,a,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),y.isRedirect=!0),t&&(e.props=await e.props),X&&!tz(i,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1,configurable:!0});h.pageProps=Object.assign({},h.pageProps,e.props),y.pageData=h}if(S&&!z||y.isRedirect)return new e7(JSON.stringify(h),{metadata:y,contentType:k.U2});if(U&&(h.pageProps={}),B(n)&&!z)return e7.EMPTY;let ex=x;if(Q&&Z){let e,t=(e=eE(eb(i))).startsWith("/index/")&&!A(e)?e.slice(6):"/index"!==e?e:"/";t in ex.pages&&(ex={...ex,pages:{...ex.pages,[t]:[...ex.pages[t],...ex.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:ex.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e_=({children:e})=>(0,tD.jsx)("div",{id:"__next",children:e}),eP=async()=>{let e,t,r,a;async function i(e){let t=async(t={})=>{if(eg.err&&P)return e&&e(M,L),{html:await rm((0,tD.jsx)(e_,{children:(0,tD.jsx)(P,{})})),head:eo};let{App:r,Component:a}="function"==typeof t?{App:M,Component:t(L)}:{App:t.enhanceApp?t.enhanceApp(M):M,Component:t.enhanceComponent?t.enhanceComponent(L):L},n=await e(r,a);return await n.allReady,{html:await eG(n),head:eo}},r={...eg,renderPage:t},a=await W(F,r);if(B(n)&&!z)return null;if(!a||"string"!=typeof a.html)throw Object.defineProperty(Error(`"${G(F)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E1039",enumerable:!1,configurable:!0});return{docProps:a,documentCtx:r}}F.__NEXT_BUILTIN_DOCUMENT__;let s=async(e,t)=>{let r,a,n=(r=e||M,a=t||L,eg.err&&P?(0,tD.jsx)(e_,{children:(0,tD.jsx)(P,{})}):(0,tD.jsx)(e_,{children:(0,tD.jsx)(em,{children:rv(r,a,{...h,router:er})})}));return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eL.getTracer)().trace(eU.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:tI(),element:n})},o=!!F.getInitialProps;if(o)if(null===(e=await i(s)))t=null;else{let{docProps:r}=e;t=r.html}else{e={};let r=await s(M,L);await r.allReady,t=await eG(r)}let{docProps:l}=e||{};o?(r=l.styles,eo=l.head):(r=es.styles(),es.flush());let c=await rm((a=es.styles(),es.flush(),(0,tD.jsx)(tD.Fragment,{children:a})));return null===t?null:{contentHTML:c+t,documentElement:e=>(0,tD.jsx)(F,{...e,...l}),head:eo,headTags:[],styles:r}};(0,eL.getTracer)().setRootSpanAttribute("next.route",o.page);let eR=await (0,eL.getTracer)().trace(eU.vr.renderDocument,{spanName:`render route (pages) ${o.page}`,attributes:{"next.route":o.page}},async()=>eP());if(!eR)return new e7(null,{metadata:y,contentType:k.j9});let ew=new Set,eC=new Set;for(let e of el){let t=_[e];t&&(ew.add(t.id),t.files.forEach(e=>{eC.add(e)}))}let{assetPrefix:eS,defaultLocale:eO,disableOptimizedLoading:eT,domainLocales:eA,locale:ej,locales:eD}=o,e$={__NEXT_DATA__:{props:h,page:i,query:s,buildId:c.buildId,assetPrefix:""===eS?void 0:eS,nextExport:!0===ey||void 0,autoExport:!0===Q||void 0,isFallback:U,isExperimentalCompile:N,dynamicIds:0===ew.size?void 0:Array.from(ew),err:o.err?function(e,t){if(e){let e="server";return e=t[rd]||"server",{name:t.name,source:e,message:t8()(t.message),stack:t.stack,digest:t.digest}}return{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}}(!1,o.err):void 0,gsp:!!R||void 0,gssp:!!C||void 0,customServer:c.customServer,gip:!!J||void 0,appGip:!V||void 0,locale:ej,locales:eD,defaultLocale:eO,domainLocales:eA,isPreview:!0===p||void 0,notFoundSrcPage:void 0},nonce:ed,buildManifest:ex,docComponentsRendered:{},dangerousAsPath:er.asPath,isDevelopment:!1,deploymentId:c.deploymentId,dynamicImports:Array.from(eC),dynamicCssManifest:new Set(o.dynamicCssManifest||[]),assetPrefix:eS,unstable_runtimeJS:E.unstable_runtimeJS,unstable_JsPreload:E.unstable_JsPreload,assetQueryString:g,cssAssetQueryString:v,mutableAssetQueryString:m,scriptLoader:en,locale:ej,disableOptimizedLoading:eT,head:eR.head,headTags:eR.headTags,styles:eR.styles,crossOrigin:o.crossOrigin,optimizeCss:o.optimizeCss,nextConfigOutput:o.nextConfigOutput,nextScriptWorkers:o.nextScriptWorkers,runtime:$,largePageDataBytes:o.largePageDataBytes,nextFontManifest:o.nextFontManifest,experimentalClientTraceMetadata:o.experimental.clientTraceMetadata},eN=(0,tD.jsx)(tQ.Provider,{value:e$,children:eR.documentElement(e$)}),ek=await (0,eL.getTracer)().trace(eU.vr.renderToString,async()=>rm(eN)),[eI,eM]=ek.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),eF="";ek.startsWith(rp)||(eF+=rp);let eH=(eF+=eI)+eR.contentHTML+eM;return new e7(await r(eH,o),{metadata:y,contentType:k.j9})}let rx=(e,t,r,a,n,i,s)=>rE(e,t,r,a,n,n,i,s),r_=tN().createContext(null);function rP(e){let t=(0,t$.useContext)(r_);t&&t(e)}class rR extends tj{constructor(e){super(e),this.components=e.components}render(e,t,r){return rE(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document},r.sharedContext,r.renderContext)}}let rw={contexts:y},rC=rR})(),module.exports=i})();
//# sourceMappingURL=pages-turbo.runtime.prod.js.map
\ No newline at end of filepages.runtime.dev.jsDiff too large to display pages.runtime.prod.js@@ -7,14 +7,14 @@ Read more: https://nextjs.org/docs/messages/no-document-import-in-page`),"__NEXT
Keys that need to be moved: ${t.join(", ")}.
Read more: https://nextjs.org/docs/messages/${r}`};function rb(e,t,r){let{destination:a,permanent:n,statusCode:i,basePath:s}=e,o=[],l=void 0!==i,c=void 0!==n;c&&l?o.push("`permanent` and `statusCode` can not both be provided"):c&&"boolean"!=typeof n?o.push("`permanent` must be `true` or `false`"):l&&!t2.has(i)&&o.push(`\`statusCode\` must undefined or one of ${[...t2].join(", ")}`);let u=typeof a;"string"!==u&&o.push(`\`destination\` should be string but received ${u}`);let d=typeof s;if("undefined"!==d&&"boolean"!==d&&o.push(`\`basePath\` should be undefined or a false, received ${d}`),o.length>0)throw Object.defineProperty(Error(`Invalid redirect object returned from ${r} for ${t.url}
-`+o.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1,configurable:!0})}async function rE(a,n,i,s,o,l,c,u){let d,h,p;(0,ef.C4)({req:a},"cookies",ei(a.headers));let f=c.deploymentId?`?dpl=${c.deploymentId}`:"",m=c.clientAssetToken?`?dpl=${c.clientAssetToken}`:"",g={assetQueryString:m,mutableAssetQueryString:f};s=Object.assign({},s);let{err:v,pageConfig:y={},buildManifest:b,reactLoadableManifest:E,ErrorDebug:x,getStaticProps:_,getStaticPaths:P,getServerSideProps:R,isNextDataRequest:w,params:C,previewProps:S,basePath:O,images:T,runtime:j,isExperimentalCompile:D,expireTime:$}=o,{App:N}=l,I=l.Document,M=o.Component,F=u.isFallback??!1;u.developmentNotFoundSourcePage;var L=s;for(let e of t6)delete L[e];let U=!!_,H=U&&o.isBuildTimePrerendering,q=N.getInitialProps===N.origGetInitialProps,X=!!(null==M?void 0:M.getInitialProps),V=null==M?void 0:M.unstable_scriptLoader,J=A(i),K="/_error"===i&&M.getInitialProps===M.origGetInitialProps;o.isBuildTimePrerendering&&X&&!K&&t(`Detected getInitialProps on page '${i}' while running export. It's recommended to use getStaticProps which has a more correct behavior for static exporting.
-Read more: https://nextjs.org/docs/messages/get-initial-props-export`);let Z=!X&&q&&!U&&!R;if(Z&&D&&(n.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=${k.eM}${r}`}({revalidate:!1,expire:$})),Z=!1),X&&U)throw Object.defineProperty(Error(k.iS+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(X&&R)throw Object.defineProperty(Error(k.bX+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(R&&U)throw Object.defineProperty(Error(k.g0+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(R&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E369",enumerable:!1,configurable:!0});if(P&&!J)throw Object.defineProperty(Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${i}'.
-Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`),"__NEXT_ERROR_CODE",{value:"E187",enumerable:!1,configurable:!0});if(P&&!U)throw Object.defineProperty(Error(`getStaticPaths was added without a getStaticProps in ${i}. Without getStaticProps, getStaticPaths does nothing`),"__NEXT_ERROR_CODE",{value:"E447",enumerable:!1,configurable:!0});if(U&&J&&!P)throw Object.defineProperty(Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${i}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1,configurable:!0});let Y=o.resolvedAsPath||a.url;for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==M?void 0:M[e])throw Object.defineProperty(Error(`page ${i} ${e} ${k.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1,configurable:!0});await tZ.preloadAll(),(U||R)&&!F&&S&&(p=!1!==(d=e(a,n,S,!!o.multiZoneDraftMode)));let Q=!!(R||X||!q&&!U||D),ee=new rg(i,s,Y,{isFallback:F},Q,O,o.locale,o.locales,o.defaultLocale,o.domainLocales,p,ev(a,"isLocaleDomain")),et={back(){ee.back()},forward(){ee.forward()},refresh(){ee.reload()},hmrRefresh(){},push(e,{scroll:t}={}){ee.push(e,void 0,{scroll:t})},replace(e,{scroll:t}={}){ee.replace(e,void 0,{scroll:t})},prefetch(e){ee.prefetch(e)}},er={},ea=(0,tM.createStyleRegistry)(),en=[(0,tD.jsx)("meta",{charSet:"utf-8"},"charset"),(0,tD.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")],es=[],eo={};V&&(eo.beforeInteractive=[].concat(V()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let el=a.headers["content-security-policy"]||a.headers["content-security-policy-report-only"],ec="string"==typeof el?function(e){var t;let r=e.split(";").map(e=>e.trim()),a=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!a)return;let n=null==(t=a.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(n){if(rh.test(n))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return n}}(el):void 0,eu=({children:e})=>{var t;return(0,tD.jsx)(rs.Provider,{value:et,children:(0,tD.jsx)(re.Provider,{value:(t=ee).isReady&&t.query?new URL(t.asPath,"http://n").searchParams:new URLSearchParams,children:(0,tD.jsx)(ri,{router:ee,isAutoExport:Z,children:(0,tD.jsx)(rr.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(z(e.pathname).groups))t[r]=e.query[r];return t}(ee),children:(0,tD.jsx)(tY.Provider,{value:ee,children:(0,tD.jsx)(tz.Provider,{value:{updateHead:e=>{en=e},updateScripts:e=>{er=e},scripts:eo,mountedInstances:new Set,nonce:ec},children:(0,tD.jsx)(tX.Provider,{value:e=>es.push(e),children:(0,tD.jsx)(tM.StyleRegistry,{registry:ea,children:(0,tD.jsx)(t4.Provider,{value:T,children:e})})})})})})})})})},ed=()=>null,eh=({children:e})=>(0,tD.jsxs)(tD.Fragment,{children:[(0,tD.jsx)(ed,{}),(0,tD.jsx)(eu,{children:(0,tD.jsxs)(tD.Fragment,{children:[e,(0,tD.jsx)(ed,{})]})})]}),ep={err:v,req:Z?void 0:a,res:Z?void 0:n,pathname:i,query:s,asPath:Y,locale:o.locale,locales:o.locales,defaultLocale:o.defaultLocale,AppTree:e=>(0,tD.jsx)(eh,{children:rv(N,M,{...e,router:ee})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:a}=await e.renderPage({enhanceApp:e=>t=>(0,tD.jsx)(e,{...t})}),n=ea.styles({nonce:t.nonce||ec});return ea.flush(),{html:r,head:a,styles:n}}},em=!U&&(o.isBuildTimePrerendering||"");if(h=await W(N,{AppTree:ep.AppTree,Component:M,router:ee,ctx:ep}),(U||R)&&p&&(h.__N_PREVIEW=!0),U&&(h.__N_SSG=!0),U&&!F){let e,t;try{e=await (0,eL.getTracer)().trace(eU.vr.getStaticProps,{spanName:`getStaticProps ${i}`,attributes:{"next.route":i}},()=>_({...J?{params:C}:void 0,...p?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale,revalidateReason:o.isOnDemandRevalidate?"on-demand":H?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(k.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(rb(e.redirect,a,"getStaticProps"),H)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${a.url})
-See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1,configurable:!0});e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0}if(H&&!g.isNotFound&&!tq(i,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1,configurable:!0});if("revalidate"in e){if(e.revalidate&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1,configurable:!0});if("number"==typeof e.revalidate)if(Number.isInteger(e.revalidate))if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${a.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
+`+o.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1,configurable:!0})}async function rE(a,n,i,s,o,l,c,u){let d,h,p;(0,ef.C4)({req:a},"cookies",ei(a.headers));let f="",m=c.deploymentId?`?dpl=${c.deploymentId}`:"",g=c.clientAssetToken?`?dpl=${c.clientAssetToken}`:"",v=f+(c.clientAssetToken?`${f?"&":"?"}dpl=${c.clientAssetToken}`:""),y={};s=Object.assign({},s);let{err:b,pageConfig:E={},buildManifest:x,reactLoadableManifest:_,ErrorDebug:P,getStaticProps:R,getStaticPaths:w,getServerSideProps:C,isNextDataRequest:S,params:O,previewProps:T,basePath:j,images:D,runtime:$,isExperimentalCompile:N,expireTime:I}=o,{App:M}=l,F=l.Document,L=o.Component,U=u.isFallback??!1;u.developmentNotFoundSourcePage;var H=s;for(let e of t6)delete H[e];let q=!!R,X=q&&o.isBuildTimePrerendering,V=M.getInitialProps===M.origGetInitialProps,J=!!(null==L?void 0:L.getInitialProps),K=null==L?void 0:L.unstable_scriptLoader,Z=A(i),Y="/_error"===i&&L.getInitialProps===L.origGetInitialProps;o.isBuildTimePrerendering&&J&&!Y&&t(`Detected getInitialProps on page '${i}' while running export. It's recommended to use getStaticProps which has a more correct behavior for static exporting.
+Read more: https://nextjs.org/docs/messages/get-initial-props-export`);let Q=!J&&V&&!q&&!C;if(Q&&N&&(n.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=${k.eM}${r}`}({revalidate:!1,expire:I})),Q=!1),J&&q)throw Object.defineProperty(Error(k.iS+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(J&&C)throw Object.defineProperty(Error(k.bX+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(C&&q)throw Object.defineProperty(Error(k.g0+` ${i}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1,configurable:!0});if(C&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E369",enumerable:!1,configurable:!0});if(w&&!Z)throw Object.defineProperty(Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${i}'.
+Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`),"__NEXT_ERROR_CODE",{value:"E187",enumerable:!1,configurable:!0});if(w&&!q)throw Object.defineProperty(Error(`getStaticPaths was added without a getStaticProps in ${i}. Without getStaticProps, getStaticPaths does nothing`),"__NEXT_ERROR_CODE",{value:"E447",enumerable:!1,configurable:!0});if(q&&Z&&!w)throw Object.defineProperty(Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${i}'.
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1,configurable:!0});let ee=o.resolvedAsPath||a.url;for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==L?void 0:L[e])throw Object.defineProperty(Error(`page ${i} ${e} ${k.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1,configurable:!0});await tZ.preloadAll(),(q||C)&&!U&&T&&(p=!1!==(d=e(a,n,T,!!o.multiZoneDraftMode)));let et=!!(C||J||!V&&!q||N),er=new rg(i,s,ee,{isFallback:U},et,j,o.locale,o.locales,o.defaultLocale,o.domainLocales,p,ev(a,"isLocaleDomain")),ea={back(){er.back()},forward(){er.forward()},refresh(){er.reload()},hmrRefresh(){},push(e,{scroll:t}={}){er.push(e,void 0,{scroll:t})},replace(e,{scroll:t}={}){er.replace(e,void 0,{scroll:t})},prefetch(e){er.prefetch(e)}},en={},es=(0,tM.createStyleRegistry)(),eo=[(0,tD.jsx)("meta",{charSet:"utf-8"},"charset"),(0,tD.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")],el=[],ec={};K&&(ec.beforeInteractive=[].concat(K()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eu=a.headers["content-security-policy"]||a.headers["content-security-policy-report-only"],ed="string"==typeof eu?function(e){var t;let r=e.split(";").map(e=>e.trim()),a=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!a)return;let n=null==(t=a.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(n){if(rh.test(n))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return n}}(eu):void 0,eh=({children:e})=>{var t;return(0,tD.jsx)(rs.Provider,{value:ea,children:(0,tD.jsx)(re.Provider,{value:(t=er).isReady&&t.query?new URL(t.asPath,"http://n").searchParams:new URLSearchParams,children:(0,tD.jsx)(ri,{router:er,isAutoExport:Q,children:(0,tD.jsx)(rr.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(z(e.pathname).groups))t[r]=e.query[r];return t}(er),children:(0,tD.jsx)(tY.Provider,{value:er,children:(0,tD.jsx)(tz.Provider,{value:{updateHead:e=>{eo=e},updateScripts:e=>{en=e},scripts:ec,mountedInstances:new Set,nonce:ed},children:(0,tD.jsx)(tX.Provider,{value:e=>el.push(e),children:(0,tD.jsx)(tM.StyleRegistry,{registry:es,children:(0,tD.jsx)(t4.Provider,{value:D,children:e})})})})})})})})})},ep=()=>null,em=({children:e})=>(0,tD.jsxs)(tD.Fragment,{children:[(0,tD.jsx)(ep,{}),(0,tD.jsx)(eh,{children:(0,tD.jsxs)(tD.Fragment,{children:[e,(0,tD.jsx)(ep,{})]})})]}),eg={err:b,req:Q?void 0:a,res:Q?void 0:n,pathname:i,query:s,asPath:ee,locale:o.locale,locales:o.locales,defaultLocale:o.defaultLocale,AppTree:e=>(0,tD.jsx)(em,{children:rv(M,L,{...e,router:er})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:a}=await e.renderPage({enhanceApp:e=>t=>(0,tD.jsx)(e,{...t})}),n=es.styles({nonce:t.nonce||ed});return es.flush(),{html:r,head:a,styles:n}}},ey=!q&&(o.isBuildTimePrerendering||"");if(h=await W(M,{AppTree:eg.AppTree,Component:L,router:er,ctx:eg}),(q||C)&&p&&(h.__N_PREVIEW=!0),q&&(h.__N_SSG=!0),q&&!U){let e,t;try{e=await (0,eL.getTracer)().trace(eU.vr.getStaticProps,{spanName:`getStaticProps ${i}`,attributes:{"next.route":i}},()=>R({...Z?{params:O}:void 0,...p?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale,revalidateReason:o.isOnDemandRevalidate?"on-demand":X?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(k.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});y.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(rb(e.redirect,a,"getStaticProps"),X)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${a.url})
+See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1,configurable:!0});e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),y.isRedirect=!0}if(X&&!y.isNotFound&&!tq(i,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1,configurable:!0});if("revalidate"in e){if(e.revalidate&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1,configurable:!0});if("number"==typeof e.revalidate)if(Number.isInteger(e.revalidate))if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${a.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
To never revalidate, you can set revalidate to \`false\` (only ran once at build-time).
To revalidate as soon as possible, you can set the value to \`1\`.`),"__NEXT_ERROR_CODE",{value:"E311",enumerable:!1,configurable:!0});else e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${a.url}. This may have been done in error.
To only run getStaticProps at build-time and not revalidate at runtime, you can set \`revalidate\` to \`false\`!`),t=e.revalidate;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number for ${a.url}. Mixed numbers, such as '${e.revalidate}', cannot be used.
-Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1,configurable:!0});else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${a.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1,configurable:!0})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.cacheControl={revalidate:t,expire:void 0},g.pageData=h,g.isNotFound)return new e7(null,{metadata:g,contentType:null})}if(R&&(h.__N_SSP=!0),R&&!F){let e,t=!1;try{e=await (0,eL.getTracer)().trace(eU.vr.getServerSideProps,{spanName:`getServerSideProps ${i}`,attributes:{"next.route":i}},async()=>R({req:a,res:n,query:s,resolvedUrl:o.resolvedUrl,...J?{params:C}:void 0,...!1!==d?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale})),g.cacheControl={revalidate:0,expire:void 0}}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1,configurable:!0});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});return g.isNotFound=!0,new e7(null,{metadata:g,contentType:null})}if("redirect"in e&&"object"==typeof e.redirect&&(rb(e.redirect,a,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0),t&&(e.props=await e.props),H&&!tq(i,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1,configurable:!0});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(w&&!U||g.isRedirect)return new e7(JSON.stringify(h),{metadata:g,contentType:k.U2});if(F&&(h.pageProps={}),B(n)&&!U)return e7.EMPTY;let eg=b;if(Z&&J){let e,t=(e=eE(eb(i))).startsWith("/index/")&&!A(e)?e.slice(6):"/index"!==e?e:"/";t in eg.pages&&(eg={...eg,pages:{...eg.pages,[t]:[...eg.pages[t],...eg.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eg.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let ey=({children:e})=>(0,tD.jsx)("div",{id:"__next",children:e}),ex=async()=>{let e,t,r,a;async function i(e){let t=async(t={})=>{if(ep.err&&x)return e&&e(N,M),{html:await rm((0,tD.jsx)(ey,{children:(0,tD.jsx)(x,{})})),head:en};let{App:r,Component:a}="function"==typeof t?{App:N,Component:t(M)}:{App:t.enhanceApp?t.enhanceApp(N):N,Component:t.enhanceComponent?t.enhanceComponent(M):M},n=await e(r,a);return await n.allReady,{html:await eG(n),head:en}},r={...ep,renderPage:t},a=await W(I,r);if(B(n)&&!U)return null;if(!a||"string"!=typeof a.html)throw Object.defineProperty(Error(`"${G(I)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E1039",enumerable:!1,configurable:!0});return{docProps:a,documentCtx:r}}I.__NEXT_BUILTIN_DOCUMENT__;let s=async(e,t)=>{let r,a,n=(r=e||N,a=t||M,ep.err&&x?(0,tD.jsx)(ey,{children:(0,tD.jsx)(x,{})}):(0,tD.jsx)(ey,{children:(0,tD.jsx)(eh,{children:rv(r,a,{...h,router:ee})})}));return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eL.getTracer)().trace(eU.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:tI(),element:n})},o=!!I.getInitialProps;if(o)if(null===(e=await i(s)))t=null;else{let{docProps:r}=e;t=r.html}else{e={};let r=await s(N,M);await r.allReady,t=await eG(r)}let{docProps:l}=e||{};o?(r=l.styles,en=l.head):(r=ea.styles(),ea.flush());let c=await rm((a=ea.styles(),ea.flush(),(0,tD.jsx)(tD.Fragment,{children:a})));return null===t?null:{contentHTML:c+t,documentElement:e=>(0,tD.jsx)(I,{...e,...l}),head:en,headTags:[],styles:r}};(0,eL.getTracer)().setRootSpanAttribute("next.route",o.page);let e_=await (0,eL.getTracer)().trace(eU.vr.renderDocument,{spanName:`render route (pages) ${o.page}`,attributes:{"next.route":o.page}},async()=>ex());if(!e_)return new e7(null,{metadata:g,contentType:k.j9});let eP=new Set,eR=new Set;for(let e of es){let t=E[e];t&&(eP.add(t.id),t.files.forEach(e=>{eR.add(e)}))}let{assetPrefix:ew,defaultLocale:eC,disableOptimizedLoading:eS,domainLocales:eO,locale:eT,locales:eA}=o,ej={__NEXT_DATA__:{props:h,page:i,query:s,buildId:c.buildId,assetPrefix:""===ew?void 0:ew,nextExport:!0===em||void 0,autoExport:!0===Z||void 0,isFallback:F,isExperimentalCompile:D,dynamicIds:0===eP.size?void 0:Array.from(eP),err:o.err?function(e,t){if(e){let e="server";return e=t[rd]||"server",{name:t.name,source:e,message:t8()(t.message),stack:t.stack,digest:t.digest}}return{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}}(!1,o.err):void 0,gsp:!!_||void 0,gssp:!!R||void 0,customServer:c.customServer,gip:!!X||void 0,appGip:!q||void 0,locale:eT,locales:eA,defaultLocale:eC,domainLocales:eO,isPreview:!0===p||void 0,notFoundSrcPage:void 0},nonce:ec,buildManifest:eg,docComponentsRendered:{},dangerousAsPath:ee.asPath,isDevelopment:!1,deploymentId:c.deploymentId,dynamicImports:Array.from(eR),dynamicCssManifest:new Set(o.dynamicCssManifest||[]),assetPrefix:ew,unstable_runtimeJS:y.unstable_runtimeJS,unstable_JsPreload:y.unstable_JsPreload,assetQueryString:m||"",mutableAssetQueryString:f||"",scriptLoader:er,locale:eT,disableOptimizedLoading:eS,head:e_.head,headTags:e_.headTags,styles:e_.styles,crossOrigin:o.crossOrigin,optimizeCss:o.optimizeCss,nextConfigOutput:o.nextConfigOutput,nextScriptWorkers:o.nextScriptWorkers,runtime:j,largePageDataBytes:o.largePageDataBytes,nextFontManifest:o.nextFontManifest,experimentalClientTraceMetadata:o.experimental.clientTraceMetadata},eD=(0,tD.jsx)(tQ.Provider,{value:ej,children:e_.documentElement(ej)}),e$=await (0,eL.getTracer)().trace(eU.vr.renderToString,async()=>rm(eD)),[eN,ek]=e$.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),eI="";e$.startsWith(rp)||(eI+=rp);let eM=(eI+=eN)+e_.contentHTML+ek;return new e7(await r(eM,o),{metadata:g,contentType:k.j9})}let rx=(e,t,r,a,n,i,s)=>rE(e,t,r,a,n,n,i,s),r_=tN().createContext(null);function rP(e){let t=(0,t$.useContext)(r_);t&&t(e)}class rR extends tj{constructor(e){super(e),this.components=e.components}render(e,t,r){return rE(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document},r.sharedContext,r.renderContext)}}let rw={contexts:y},rC=rR})(),module.exports=i})();
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1,configurable:!0});else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${a.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1,configurable:!0})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),y.cacheControl={revalidate:t,expire:void 0},y.pageData=h,y.isNotFound)return new e7(null,{metadata:y,contentType:null})}if(C&&(h.__N_SSP=!0),C&&!U){let e,t=!1;try{e=await (0,eL.getTracer)().trace(eU.vr.getServerSideProps,{spanName:`getServerSideProps ${i}`,attributes:{"next.route":i}},async()=>C({req:a,res:n,query:s,resolvedUrl:o.resolvedUrl,...Z?{params:O}:void 0,...!1!==d?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale})),y.cacheControl={revalidate:0,expire:void 0}}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1,configurable:!0});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(ry("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});return y.isNotFound=!0,new e7(null,{metadata:y,contentType:null})}if("redirect"in e&&"object"==typeof e.redirect&&(rb(e.redirect,a,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:t3(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),y.isRedirect=!0),t&&(e.props=await e.props),X&&!tq(i,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1,configurable:!0});h.pageProps=Object.assign({},h.pageProps,e.props),y.pageData=h}if(S&&!q||y.isRedirect)return new e7(JSON.stringify(h),{metadata:y,contentType:k.U2});if(U&&(h.pageProps={}),B(n)&&!q)return e7.EMPTY;let ex=x;if(Q&&Z){let e,t=(e=eE(eb(i))).startsWith("/index/")&&!A(e)?e.slice(6):"/index"!==e?e:"/";t in ex.pages&&(ex={...ex,pages:{...ex.pages,[t]:[...ex.pages[t],...ex.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:ex.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e_=({children:e})=>(0,tD.jsx)("div",{id:"__next",children:e}),eP=async()=>{let e,t,r,a;async function i(e){let t=async(t={})=>{if(eg.err&&P)return e&&e(M,L),{html:await rm((0,tD.jsx)(e_,{children:(0,tD.jsx)(P,{})})),head:eo};let{App:r,Component:a}="function"==typeof t?{App:M,Component:t(L)}:{App:t.enhanceApp?t.enhanceApp(M):M,Component:t.enhanceComponent?t.enhanceComponent(L):L},n=await e(r,a);return await n.allReady,{html:await eG(n),head:eo}},r={...eg,renderPage:t},a=await W(F,r);if(B(n)&&!q)return null;if(!a||"string"!=typeof a.html)throw Object.defineProperty(Error(`"${G(F)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E1039",enumerable:!1,configurable:!0});return{docProps:a,documentCtx:r}}F.__NEXT_BUILTIN_DOCUMENT__;let s=async(e,t)=>{let r,a,n=(r=e||M,a=t||L,eg.err&&P?(0,tD.jsx)(e_,{children:(0,tD.jsx)(P,{})}):(0,tD.jsx)(e_,{children:(0,tD.jsx)(em,{children:rv(r,a,{...h,router:er})})}));return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eL.getTracer)().trace(eU.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:tI(),element:n})},o=!!F.getInitialProps;if(o)if(null===(e=await i(s)))t=null;else{let{docProps:r}=e;t=r.html}else{e={};let r=await s(M,L);await r.allReady,t=await eG(r)}let{docProps:l}=e||{};o?(r=l.styles,eo=l.head):(r=es.styles(),es.flush());let c=await rm((a=es.styles(),es.flush(),(0,tD.jsx)(tD.Fragment,{children:a})));return null===t?null:{contentHTML:c+t,documentElement:e=>(0,tD.jsx)(F,{...e,...l}),head:eo,headTags:[],styles:r}};(0,eL.getTracer)().setRootSpanAttribute("next.route",o.page);let eR=await (0,eL.getTracer)().trace(eU.vr.renderDocument,{spanName:`render route (pages) ${o.page}`,attributes:{"next.route":o.page}},async()=>eP());if(!eR)return new e7(null,{metadata:y,contentType:k.j9});let ew=new Set,eC=new Set;for(let e of el){let t=_[e];t&&(ew.add(t.id),t.files.forEach(e=>{eC.add(e)}))}let{assetPrefix:eS,defaultLocale:eO,disableOptimizedLoading:eT,domainLocales:eA,locale:ej,locales:eD}=o,e$={__NEXT_DATA__:{props:h,page:i,query:s,buildId:c.buildId,assetPrefix:""===eS?void 0:eS,nextExport:!0===ey||void 0,autoExport:!0===Q||void 0,isFallback:U,isExperimentalCompile:N,dynamicIds:0===ew.size?void 0:Array.from(ew),err:o.err?function(e,t){if(e){let e="server";return e=t[rd]||"server",{name:t.name,source:e,message:t8()(t.message),stack:t.stack,digest:t.digest}}return{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}}(!1,o.err):void 0,gsp:!!R||void 0,gssp:!!C||void 0,customServer:c.customServer,gip:!!J||void 0,appGip:!V||void 0,locale:ej,locales:eD,defaultLocale:eO,domainLocales:eA,isPreview:!0===p||void 0,notFoundSrcPage:void 0},nonce:ed,buildManifest:ex,docComponentsRendered:{},dangerousAsPath:er.asPath,isDevelopment:!1,deploymentId:c.deploymentId,dynamicImports:Array.from(eC),dynamicCssManifest:new Set(o.dynamicCssManifest||[]),assetPrefix:eS,unstable_runtimeJS:E.unstable_runtimeJS,unstable_JsPreload:E.unstable_JsPreload,assetQueryString:g,cssAssetQueryString:v,mutableAssetQueryString:m,scriptLoader:en,locale:ej,disableOptimizedLoading:eT,head:eR.head,headTags:eR.headTags,styles:eR.styles,crossOrigin:o.crossOrigin,optimizeCss:o.optimizeCss,nextConfigOutput:o.nextConfigOutput,nextScriptWorkers:o.nextScriptWorkers,runtime:$,largePageDataBytes:o.largePageDataBytes,nextFontManifest:o.nextFontManifest,experimentalClientTraceMetadata:o.experimental.clientTraceMetadata},eN=(0,tD.jsx)(tQ.Provider,{value:e$,children:eR.documentElement(e$)}),ek=await (0,eL.getTracer)().trace(eU.vr.renderToString,async()=>rm(eN)),[eI,eM]=ek.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),eF="";ek.startsWith(rp)||(eF+=rp);let eH=(eF+=eI)+eR.contentHTML+eM;return new e7(await r(eH,o),{metadata:y,contentType:k.j9})}let rx=(e,t,r,a,n,i,s)=>rE(e,t,r,a,n,n,i,s),r_=tN().createContext(null);function rP(e){let t=(0,t$.useContext)(r_);t&&t(e)}class rR extends tj{constructor(e){super(e),this.components=e.components}render(e,t,r){return rE(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document},r.sharedContext,r.renderContext)}}let rw={contexts:y},rC=rR})(),module.exports=i})();
//# sourceMappingURL=pages.runtime.prod.js.map
\ No newline at end of file📎 Tarball URL |
842ed1f to
9450ba7
Compare
bgw
approved these changes
Apr 13, 2026
11700b8 to
35e69fc
Compare
Contributor
Author
Merge activity
|
lukesandberg
added a commit
that referenced
this pull request
Apr 15, 2026
…#92580) ### What? Refactors the Safari `?ts=` cache-busting workaround in the Pages Router so it **only appears on CSS and font URLs**, not on script tags or script preload links. ### Why? The `?ts=` timestamp was originally added to all preloaded assets as a workaround for a [Safari caching bug](https://bugs.webkit.org/show_bug.cgi?id=187726) (see [#5860](#5860)). When it appears on `<script>` tags, the Turbopack runtime's `getAssetSuffixFromScriptSrc()` reads the executing script's query string and infers it as the `ASSET_SUFFIX`, which then leaks onto all static asset URLs — including images. This causes `next/image` validation errors because the image URL gets an unexpected `?ts=` parameter. Fixes #92118 ### How? Instead of maintaining parallel `assetQueryString` (with `?ts=`) and `scriptAssetQueryString` (without `?ts=`) paths, this PR: 1. **`assetQueryString`** carries only the deployment token (`?dpl=...`) and is used for all script-related URLs (script tags, script preloads) 2. **`safariCacheBuster`** is a new, separate field (`?ts=<timestamp>` or `""`) that is only combined with `assetQueryString` at the 3 CSS/font URL sites via a `joinQueryStrings()` helper 3. Removes the `scriptAssetQueryString` / `scriptMutableAssetQueryString` / `cssAssetQueryString` fields entirely The Safari cache-buster is computed the same way as before (dev server only, Safari user-agent check) — it just no longer contaminates the base query string. ### Test plan - [x] Updated existing test in `test/e2e/app-document/rendering.test.ts` to assert `?ts=` appears only on `<link rel="preload" as="style">` and `<link rel="preload" as="font">`, and does NOT appear on `<script>` or `<link rel="preload" as="script">` - [x] `pnpm --filter=next types` passes <!-- NEXT_JS_LLM_PR -->
patricebouillet
added a commit
to porscheofficial/porschedigital-technology-radar
that referenced
this pull request
Apr 22, 2026
… (ADR-0022) Consumer static-export builds (~180 prerendered pages) crash in next@16.2.4 with 'Cannot read properties of null (reading useContext)' on every Pages Router dynamic page. Tarball diff between 16.2.3 and 16.2.4 narrows the regression to PR vercel/next.js#92580, the only Pages-Router-touching change in that range. Pinned exactly (no caret) so the relax is a deliberate diffable act once upstream patches. See ADR-0022 for the full investigation, reproduction, and rationale.
This was referenced Apr 23, 2026
This file contains hidden or 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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What?
Refactors the Safari
?ts=cache-busting workaround in the Pages Router so it only appears on CSS and font URLs, not on script tags or script preload links.Why?
The
?ts=timestamp was originally added to all preloaded assets as a workaround for a Safari caching bug (see #5860). When it appears on<script>tags, the Turbopack runtime'sgetAssetSuffixFromScriptSrc()reads the executing script's query string and infers it as theASSET_SUFFIX, which then leaks onto all static asset URLs — including images. This causesnext/imagevalidation errors because the image URL gets an unexpected?ts=parameter.Fixes #92118
How?
Instead of maintaining parallel
assetQueryString(with?ts=) andscriptAssetQueryString(without?ts=) paths, this PR:assetQueryStringcarries only the deployment token (?dpl=...) and is used for all script-related URLs (script tags, script preloads)safariCacheBusteris a new, separate field (?ts=<timestamp>or"") that is only combined withassetQueryStringat the 3 CSS/font URL sites via ajoinQueryStrings()helperscriptAssetQueryString/scriptMutableAssetQueryString/cssAssetQueryStringfields entirelyThe Safari cache-buster is computed the same way as before (dev server only, Safari user-agent check) — it just no longer contaminates the base query string.
Test plan
test/e2e/app-document/rendering.test.tsto assert?ts=appears only on<link rel="preload" as="style">and<link rel="preload" as="font">, and does NOT appear on<script>or<link rel="preload" as="script">pnpm --filter=next typespasses