-
Notifications
You must be signed in to change notification settings - Fork 27.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: set swr delta #61330
fix: set swr delta #61330
Conversation
hi @wyattjoh, could you please help to review this PR? let me know what you think 🙏 |
Allow CI Workflow Run
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer |
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.
LGTM but cc @ijjk for confirmation 🙏
Co-authored-by: JJ Kasper <[email protected]>
Tests Passed |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
buildDuration | 14.2s | 14.2s | N/A |
buildDurationCached | 7.4s | 7.9s | |
nodeModulesSize | 196 MB | 197 MB | |
nextStartRea..uration (ms) | 431ms | 425ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
1068-HASH.js gzip | 30.3 kB | 30.3 kB | N/A |
3f784ff6-HASH.js gzip | 53.5 kB | 53.5 kB | N/A |
4944-HASH.js gzip | 5.04 kB | 5.03 kB | N/A |
8423.HASH.js gzip | 181 B | 181 B | ✓ |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 241 B | 242 B | N/A |
main-HASH.js gzip | 32.1 kB | 32.1 kB | N/A |
webpack-HASH.js gzip | 1.7 kB | 1.7 kB | ✓ |
Overall change | 47.1 kB | 47.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
_app-HASH.js gzip | 196 B | 196 B | ✓ |
_error-HASH.js gzip | 184 B | 183 B | N/A |
amp-HASH.js gzip | 503 B | 504 B | N/A |
css-HASH.js gzip | 323 B | 324 B | N/A |
dynamic-HASH.js gzip | 2.5 kB | 2.51 kB | N/A |
edge-ssr-HASH.js gzip | 258 B | 259 B | N/A |
head-HASH.js gzip | 353 B | 351 B | N/A |
hooks-HASH.js gzip | 370 B | 370 B | ✓ |
image-HASH.js gzip | 4.21 kB | 4.2 kB | N/A |
index-HASH.js gzip | 259 B | 259 B | ✓ |
link-HASH.js gzip | 2.68 kB | 2.67 kB | N/A |
routerDirect..HASH.js gzip | 313 B | 314 B | N/A |
script-HASH.js gzip | 386 B | 385 B | N/A |
withRouter-HASH.js gzip | 309 B | 311 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 931 B | 931 B | ✓ |
Client Build Manifests
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
_buildManifest.js gzip | 485 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
index.html gzip | 529 B | 528 B | N/A |
link.html gzip | 541 B | 540 B | N/A |
withRouter.html gzip | 524 B | 522 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
edge-ssr.js gzip | 2.29 kB | 2.29 kB | N/A |
page.js gzip | 2.98 kB | 2.98 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 623 B | 626 B | N/A |
middleware-r..fest.js gzip | 151 B | 151 B | ✓ |
middleware.js gzip | 466 B | 464 B | N/A |
edge-runtime..pack.js gzip | 839 B | 839 B | ✓ |
Overall change | 990 B | 990 B | ✓ |
Next Runtimes
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 166 kB | 166 kB | ✓ |
app-page-exp..prod.js gzip | 95.9 kB | 95.9 kB | ✓ |
app-page-tur..prod.js gzip | 97.6 kB | 97.6 kB | ✓ |
app-page-tur..prod.js gzip | 92 kB | 92 kB | ✓ |
app-page.run...dev.js gzip | 136 kB | 136 kB | ✓ |
app-page.run..prod.js gzip | 90.6 kB | 90.6 kB | ✓ |
app-route-ex...dev.js gzip | 22 kB | 22 kB | ✓ |
app-route-ex..prod.js gzip | 14.9 kB | 14.9 kB | ✓ |
app-route-tu..prod.js gzip | 14.9 kB | 14.9 kB | ✓ |
app-route-tu..prod.js gzip | 14.6 kB | 14.6 kB | ✓ |
app-route.ru...dev.js gzip | 21.7 kB | 21.7 kB | ✓ |
app-route.ru..prod.js gzip | 14.6 kB | 14.6 kB | ✓ |
pages-api-tu..prod.js gzip | 9.47 kB | 9.47 kB | ✓ |
pages-api.ru...dev.js gzip | 9.74 kB | 9.74 kB | ✓ |
pages-api.ru..prod.js gzip | 9.47 kB | 9.47 kB | ✓ |
pages-turbo...prod.js gzip | 22.1 kB | 22.1 kB | N/A |
pages.runtim...dev.js gzip | 22.7 kB | 22.8 kB | N/A |
pages.runtim..prod.js gzip | 22.1 kB | 22.1 kB | N/A |
server.runti..prod.js gzip | 50.1 kB | 50.2 kB | N/A |
Overall change | 810 kB | 810 kB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
---|---|---|---|
0.pack gzip | 1.49 MB | 1.49 MB | N/A |
index.pack gzip | 104 kB | 104 kB | |
Overall change | 104 kB | 104 kB |
Diff details
Diff for pages-turbo...time.prod.js
@@ -19,14 +19,14 @@ Reason: ${n}`)}}function N(e,t,r){if(!T(r))throw new $(e,t,"",`Props must be ret
Keys that need to be moved: ${t.join(", ")}.
Read more: https://nextjs.org/docs/messages/${r}`};function eK(e,t,r){let{destination:n,permanent:o,statusCode:s,basePath:a}=e,i=[],l=void 0!==s,u=void 0!==o;u&&l?i.push("`permanent` and `statusCode` can not both be provided"):u&&"boolean"!=typeof o?i.push("`permanent` must be `true` or `false`"):l&&!er.has(s)&&i.push(`\`statusCode\` must undefined or one of ${[...er].join(", ")}`);let d=typeof n;"string"!==d&&i.push(`\`destination\` should be string but received ${d}`);let c=typeof a;if("undefined"!==c&&"boolean"!==c&&i.push(`\`basePath\` should be undefined or a false, received ${c}`),i.length>0)throw Error(`Invalid redirect object returned from ${r} for ${t.url}
-`+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp")}async function e0(n,s,a,i,l,u){var d,c,p;let h,f,m,g;(0,x.gk)({req:n},"cookies",(c=n.headers,function(){let{cookie:e}=c;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let v={};if(v.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!v.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(v.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(v.assetQueryString+=`${v.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:b,dev:w=!1,ampPath:S="",pageConfig:R={},buildManifest:T,reactLoadableManifest:E,ErrorDebug:$,getStaticProps:I,getStaticPaths:k,getServerSideProps:M,isDataReq:q,params:D,previewProps:F,basePath:U,images:Z,runtime:K,isExperimentalCompile:ee}=l,{App:er}=u,ea=v.assetQueryString,ei=u.Document,el=l.Component,eu=!!i.__nextFallback,em=i.__nextNotFoundSrcPage;!function(e){for(let t of eL)delete e[t]}(i);let eg=!!I,ev=eg&&l.nextExport,ey=er.getInitialProps===er.origGetInitialProps,ex=!!(null==el?void 0:el.getInitialProps),eb=null==el?void 0:el.unstable_scriptLoader,ew=J(a),eS="/_error"===a&&el.getInitialProps===el.origGetInitialProps;l.nextExport&&ex&&!eS&&t(`Detected getInitialProps on page '${a}' 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 eP=!ex&&ey&&!eg&&!M;if(eP&&!w&&ee&&(s.setHeader("Cache-Control","number"==typeof!1?"s-maxage=false, stale-while-revalidate":`s-maxage=${j.BR}, stale-while-revalidate`),eP=!1),ex&&eg)throw Error(j.wh+` ${a}`);if(ex&&M)throw Error(j.Wo+` ${a}`);if(M&&eg)throw Error(j.oL+` ${a}`);if(M&&"export"===l.nextConfigOutput)throw Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if(k&&!ew)throw Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${a}'.
-Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`);if(k&&!eg)throw Error(`getStaticPaths was added without a getStaticProps in ${a}. Without getStaticProps, getStaticPaths does nothing`);if(eg&&ew&&!k)throw Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${a}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`);let e_=l.resolvedAsPath||n.url;if(w){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Error(`The default export is not a React Component in page: "${a}"`);if(!e(er))throw Error('The default export is not a React Component in page: "/_app"');if(!e(ei))throw Error('The default export is not a React Component in page: "/_document"');if((eP||eu)&&(i={...i.amp?{amp:i.amp}:{}},e_=`${a}${n.url.endsWith("/")&&"/"!==a&&!ew?"/":""}`,n.url=a),"/404"===a&&(ex||M))throw Error(`\`pages/404\` ${j.Ei}`);if(C.Er.includes(a)&&(ex||M))throw Error(`\`pages${a}\` ${j.Ei}`)}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Error(`page ${a} ${e} ${j.lk}`);await H.preloadAll(),(eg||M)&&!eu&&F&&(m=!1!==(h=e(n,s,F)));let ej=!!(M||ex||!ey&&!eg||ee),eC=new eZ(a,i,e_,{isFallback:eu},ej,U,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,et(n,"isLocaleDomain")),eR={back(){eC.back()},forward(){eC.forward()},refresh(){eC.reload()},push(e,t){let{scroll:r}=void 0===t?{}:t;eC.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eC.replace(e,void 0,{scroll:r})},prefetch(e){eC.prefetch(e)}},e$={},eO=(0,_.createStyleRegistry)(),ek={ampFirst:!0===R.amp,hasQuery:!!i.amp,hybrid:"hybrid"===R.amp},eM=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(ek),ez=function(e){void 0===e&&(e=!1);let t=[(0,y.jsx)("meta",{charSet:"utf-8"})];return e||t.push((0,y.jsx)("meta",{name:"viewport",content:"width=device-width"})),t}(eM),eB=[],eW={};eb&&(eW.beforeInteractive=[].concat(eb()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eU=({children:e})=>{var t;return(0,y.jsx)(eH.Provider,{value:eR,children:(0,y.jsx)(eA.Provider,{value:eC.isReady&&eC.query?(t=eC.asPath,new URL(t,"http://n").searchParams):new URLSearchParams,children:(0,y.jsx)(eF,{router:eC,isAutoExport:eP,children:(0,y.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={},r=function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ef(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=W.find(t=>e.startsWith(t)),o=e.match(/\[((?:\[.*\])|.+)\]/);if(t&&o){let{key:e,optional:s,repeat:a}=eD(o[1]);return r[e]={pos:n++,repeat:a,optional:s},"/"+eq(t)+"([^/]+?)"}if(!o)return"/"+eq(e);{let{key:e,repeat:t,optional:s}=eD(o[1]);return r[e]={pos:n++,repeat:t,optional:s},t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname),n=Object.keys(r.groups);for(let r of n)t[r]=e.query[r];return t}(eC),children:(0,y.jsx)(z.Provider,{value:eC,children:(0,y.jsx)(L.Provider,{value:ek,children:(0,y.jsx)(A.Provider,{value:{updateHead:e=>{ez=e},updateScripts:e=>{e$=e},scripts:eW,mountedInstances:new Set},children:(0,y.jsx)(O.Provider,{value:e=>eB.push(e),children:(0,y.jsx)(_.StyleRegistry,{registry:eO,children:(0,y.jsx)(eE.Provider,{value:Z,children:e})})})})})})})})})})},eV=()=>null,e0=({children:e})=>(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(eV,{}),(0,y.jsx)(eU,{children:(0,y.jsxs)(y.Fragment,{children:[w?(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(eV,{})]}):e,(0,y.jsx)(eV,{})]})})]}),e1={err:b,req:eP?void 0:n,res:eP?void 0:s,pathname:a,query:i,asPath:e_,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>(0,y.jsx)(e0,{children:eX(er,el,{...e,router:eC})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>(0,y.jsx)(e,{...t})}),o=eO.styles({nonce:t.nonce});return eO.flush(),{html:r,head:n,styles:o}}},e4=!eg&&(l.nextExport||w&&(eP||eu)),e3=()=>{let e=eO.styles();return eO.flush(),(0,y.jsx)(y.Fragment,{children:e})};if(f=await Q(er,{AppTree:e1.AppTree,Component:el,router:eC,ctx:e1}),(eg||M)&&m&&(f.__N_PREVIEW=!0),eg&&(f[C.NO]=!0),eg&&!eu){let e,t;try{e=await (0,eo.getTracer)().trace(es.xj.getStaticProps,{spanName:`getStaticProps ${a}`,attributes:{"next.route":a}},()=>I({...ew?{params:i}:void 0,...m?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Error(j.q6);let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Error(j.Eo);if(r.length)throw Error(eY("getStaticProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');v.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(eK(e.redirect,n,"getStaticProps"),ev)throw Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
-See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`);e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0}if((w||ev)&&!v.isNotFound&&!N(a,"getStaticProps",e.props))throw Error("invariant: getStaticProps did not return valid props. Please report this.");if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Error(`A page's revalidate option can not be less than or equal to zero for ${n.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
+`+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp")}async function e0(n,s,a,i,l,u){var d,c,p;let h,f,m,g;(0,x.gk)({req:n},"cookies",(c=n.headers,function(){let{cookie:e}=c;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let v={};if(v.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!v.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(v.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(v.assetQueryString+=`${v.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:b,dev:w=!1,ampPath:S="",pageConfig:R={},buildManifest:T,reactLoadableManifest:E,ErrorDebug:$,getStaticProps:I,getStaticPaths:k,getServerSideProps:M,isDataReq:q,params:D,previewProps:F,basePath:U,images:Z,runtime:K,isExperimentalCompile:ee,swrDelta:er}=l,{App:ea}=u,ei=v.assetQueryString,el=u.Document,eu=l.Component,em=!!i.__nextFallback,eg=i.__nextNotFoundSrcPage;!function(e){for(let t of eL)delete e[t]}(i);let ev=!!I,ey=ev&&l.nextExport,ex=ea.getInitialProps===ea.origGetInitialProps,eb=!!(null==eu?void 0:eu.getInitialProps),ew=null==eu?void 0:eu.unstable_scriptLoader,eS=J(a),eP="/_error"===a&&eu.getInitialProps===eu.origGetInitialProps;l.nextExport&&eb&&!eP&&t(`Detected getInitialProps on page '${a}' 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 e_=!eb&&ex&&!ev&&!M;if(e_&&!w&&ee&&(s.setHeader("Cache-Control",function({revalidate:e,swrDelta:t}){let r=t?`stale-while-revalidate=${t}`:"stale-while-revalidate";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}, ${r}`:`s-maxage=${j.BR}, ${r}`}({revalidate:!1,swrDelta:er})),e_=!1),eb&&ev)throw Error(j.wh+` ${a}`);if(eb&&M)throw Error(j.Wo+` ${a}`);if(M&&ev)throw Error(j.oL+` ${a}`);if(M&&"export"===l.nextConfigOutput)throw Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if(k&&!eS)throw Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${a}'.
+Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`);if(k&&!ev)throw Error(`getStaticPaths was added without a getStaticProps in ${a}. Without getStaticProps, getStaticPaths does nothing`);if(ev&&eS&&!k)throw Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${a}'.
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`);let ej=l.resolvedAsPath||n.url;if(w){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(eu))throw Error(`The default export is not a React Component in page: "${a}"`);if(!e(ea))throw Error('The default export is not a React Component in page: "/_app"');if(!e(el))throw Error('The default export is not a React Component in page: "/_document"');if((e_||em)&&(i={...i.amp?{amp:i.amp}:{}},ej=`${a}${n.url.endsWith("/")&&"/"!==a&&!eS?"/":""}`,n.url=a),"/404"===a&&(eb||M))throw Error(`\`pages/404\` ${j.Ei}`);if(C.Er.includes(a)&&(eb||M))throw Error(`\`pages${a}\` ${j.Ei}`)}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==eu?void 0:eu[e])throw Error(`page ${a} ${e} ${j.lk}`);await H.preloadAll(),(ev||M)&&!em&&F&&(m=!1!==(h=e(n,s,F)));let eC=!!(M||eb||!ex&&!ev||ee),eR=new eZ(a,i,ej,{isFallback:em},eC,U,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,et(n,"isLocaleDomain")),e$={back(){eR.back()},forward(){eR.forward()},refresh(){eR.reload()},push(e,t){let{scroll:r}=void 0===t?{}:t;eR.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eR.replace(e,void 0,{scroll:r})},prefetch(e){eR.prefetch(e)}},eO={},ek=(0,_.createStyleRegistry)(),eM={ampFirst:!0===R.amp,hasQuery:!!i.amp,hybrid:"hybrid"===R.amp},ez=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eM),eB=function(e){void 0===e&&(e=!1);let t=[(0,y.jsx)("meta",{charSet:"utf-8"})];return e||t.push((0,y.jsx)("meta",{name:"viewport",content:"width=device-width"})),t}(ez),eW=[],eU={};ew&&(eU.beforeInteractive=[].concat(ew()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eV=({children:e})=>{var t;return(0,y.jsx)(eH.Provider,{value:e$,children:(0,y.jsx)(eA.Provider,{value:eR.isReady&&eR.query?(t=eR.asPath,new URL(t,"http://n").searchParams):new URLSearchParams,children:(0,y.jsx)(eF,{router:eR,isAutoExport:e_,children:(0,y.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={},r=function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ef(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=W.find(t=>e.startsWith(t)),o=e.match(/\[((?:\[.*\])|.+)\]/);if(t&&o){let{key:e,optional:s,repeat:a}=eD(o[1]);return r[e]={pos:n++,repeat:a,optional:s},"/"+eq(t)+"([^/]+?)"}if(!o)return"/"+eq(e);{let{key:e,repeat:t,optional:s}=eD(o[1]);return r[e]={pos:n++,repeat:t,optional:s},t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname),n=Object.keys(r.groups);for(let r of n)t[r]=e.query[r];return t}(eR),children:(0,y.jsx)(z.Provider,{value:eR,children:(0,y.jsx)(L.Provider,{value:eM,children:(0,y.jsx)(A.Provider,{value:{updateHead:e=>{eB=e},updateScripts:e=>{eO=e},scripts:eU,mountedInstances:new Set},children:(0,y.jsx)(O.Provider,{value:e=>eW.push(e),children:(0,y.jsx)(_.StyleRegistry,{registry:ek,children:(0,y.jsx)(eE.Provider,{value:Z,children:e})})})})})})})})})})},e0=()=>null,e1=({children:e})=>(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(e0,{}),(0,y.jsx)(eV,{children:(0,y.jsxs)(y.Fragment,{children:[w?(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(e0,{})]}):e,(0,y.jsx)(e0,{})]})})]}),e4={err:b,req:e_?void 0:n,res:e_?void 0:s,pathname:a,query:i,asPath:ej,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>(0,y.jsx)(e1,{children:eX(ea,eu,{...e,router:eR})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>(0,y.jsx)(e,{...t})}),o=ek.styles({nonce:t.nonce});return ek.flush(),{html:r,head:n,styles:o}}},e3=!ev&&(l.nextExport||w&&(e_||em)),e2=()=>{let e=ek.styles();return ek.flush(),(0,y.jsx)(y.Fragment,{children:e})};if(f=await Q(ea,{AppTree:e4.AppTree,Component:eu,router:eR,ctx:e4}),(ev||M)&&m&&(f.__N_PREVIEW=!0),ev&&(f[C.NO]=!0),ev&&!em){let e,t;try{e=await (0,eo.getTracer)().trace(es.xj.getStaticProps,{spanName:`getStaticProps ${a}`,attributes:{"next.route":a}},()=>I({...eS?{params:i}:void 0,...m?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Error(j.q6);let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Error(j.Eo);if(r.length)throw Error(eY("getStaticProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');v.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(eK(e.redirect,n,"getStaticProps"),ey)throw Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
+See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`);e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0}if((w||ey)&&!v.isNotFound&&!N(a,"getStaticProps",e.props))throw Error("invariant: getStaticProps did not return valid props. Please report this.");if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Error(`A page's revalidate option can not be less than or equal to zero for ${n.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\`.`);e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${n.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 Error(`A page's revalidate option must be seconds expressed as a natural number for ${n.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.`)}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw 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 ${n.url}`)}else t=!1;if(f.pageProps=Object.assign({},f.pageProps,"props"in e?e.props:void 0),v.revalidate=t,v.pageData=f,v.isNotFound)return new eT(null,{metadata:v})}if(M&&(f[C.uY]=!0),M&&!eu){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(es.xj.getServerSideProps,{spanName:`getServerSideProps ${a}`,attributes:{"next.route":a}},async()=>M({req:n,res:s,query:i,resolvedUrl:l.resolvedUrl,...ew?{params:D}:void 0,...!1!==h?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}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 Error(j.Lx);e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${a}`);if(e.unstable_redirect)throw Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${a}`);if(r.length)throw Error(eY("getServerSideProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');return v.isNotFound=!0,new eT(null,{metadata:v})}if("redirect"in e&&"object"==typeof e.redirect&&(eK(e.redirect,n,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0),t&&(e.props=await e.props),(w||ev)&&!N(a,"getServerSideProps",e.props))throw Error("invariant: getServerSideProps did not return valid props. Please report this.");f.pageProps=Object.assign({},f.pageProps,e.props),v.pageData=f}if(q&&!eg||v.isRedirect)return new eT(JSON.stringify(f),{metadata:v});if(eu&&(f.pageProps={}),V(s)&&!eg)return new eT(null,{metadata:v});let e2=T;if(eP&&ew){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!J(e)?"/index"+e:"/"===e?"/index":B(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new X("Requested and resolved page mismatch: "+t+" "+n)}return t})(a).replace(/\\/g,"/")).startsWith("/index/")&&!J(e)?e.slice(6):"/index"!==e?e:"/";t in e2.pages&&(e2={...e2,pages:{...e2.pages,[t]:[...e2.pages[t],...e2.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:e2.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e8=({children:e})=>eM?e:(0,y.jsx)("div",{id:"__next",children:e}),e9=async()=>{let e,t,r;async function n(e){let t=async(t={})=>{if(e1.err&&$){e&&e(er,el);let t=await eQ((0,y.jsx)(e8,{children:(0,y.jsx)($,{error:e1.err})}));return{html:t,head:ez}}if(w&&(f.router||f.Component))throw Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props");let{App:r,Component:n}="function"==typeof t?{App:er,Component:t(el)}:{App:t.enhanceApp?t.enhanceApp(er):er,Component:t.enhanceComponent?t.enhanceComponent(el):el};if(e)return e(r,n).then(async e=>{await e.allReady;let t=await ep(e);return{html:t,head:ez}});let o=await eQ((0,y.jsx)(e8,{children:(0,y.jsx)(e0,{children:eX(r,n,{...f,router:eC})})}));return{html:o,head:ez}},r={...e1,renderPage:t},n=await Q(ei,r);if(V(s)&&!eg)return null;if(!n||"string"!=typeof n.html){let e=`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`;throw Error(e)}return{docProps:n,documentCtx:r}}ei[C.wU];let o=(e,t)=>{let r=e||er,n=t||el;return e1.err&&$?(0,y.jsx)(e8,{children:(0,y.jsx)($,{error:e1.err})}):(0,y.jsx)(e8,{children:(0,y.jsx)(e0,{children:eX(r,n,{...f,router:eC})})})},a=async(e,t)=>{let r=o(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(es.k0.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:P(),element:r})},i=(0,eo.getTracer)().wrap(es.xj.createBodyResult,(e,t)=>eh(e,{suffix:t,inlinedDataStream:void 0,isStaticGeneration:!0,getServerInsertedHTML:()=>eQ(e3()),serverInsertedHTMLToHead:!1,validateRootLayout:void 0})),l=!!ei.getInitialProps;if(l){if(null===(t=await n(a)))return null;let{docProps:r}=t;e=e=>i(ec(r.html+e))}else{let r=await a(er,el);e=e=>i(r,e),t={}}let{docProps:u}=t||{};return l?(r=u.styles,ez=u.head):(r=eO.styles(),eO.flush()),{bodyResult:e,documentElement:e=>(0,y.jsx)(ei,{...e,...u}),head:ez,headTags:[],styles:r}};null==(d=(0,eo.getTracer)().getRootSpanAttributes())||d.set("next.route",l.page);let e6=await (0,eo.getTracer)().trace(es.xj.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e9());if(!e6)return new eT(null,{metadata:v});let e5=new Set,e7=new Set;for(let e of eB){let t=E[e];t&&(e5.add(t.id),t.files.forEach(e=>{e7.add(e)}))}let te=ek.hybrid,{assetPrefix:tt,buildId:tr,customServer:tn,defaultLocale:to,disableOptimizedLoading:ts,domainLocales:ta,locale:ti,locales:tl,runtimeConfig:tu}=l,td={__NEXT_DATA__:{props:f,page:a,query:i,buildId:tr,assetPrefix:""===tt?void 0:tt,runtimeConfig:tu,nextExport:!0===e4||void 0,autoExport:!0===eP||void 0,isFallback:eu,isExperimentalCompile:ee,dynamicIds:0===e5.size?void 0:Array.from(e5),err:l.err?(p=l.err,w?(g="server",g=p[eJ]||"server",{name:p.name,source:g,message:eN()(p.message),stack:p.stack,digest:p.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!I||void 0,gssp:!!M||void 0,customServer:tn,gip:!!ex||void 0,appGip:!ey||void 0,locale:ti,locales:tl,defaultLocale:to,domainLocales:ta,isPreview:!0===m||void 0,notFoundSrcPage:em&&w?em:void 0},strictNextHead:l.strictNextHead,buildManifest:e2,docComponentsRendered:{},dangerousAsPath:eC.asPath,canonicalBase:!l.ampPath&&et(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:S,inAmpMode:eM,isDevelopment:!!w,hybridAmp:te,dynamicImports:Array.from(e7),assetPrefix:tt,unstable_runtimeJS:R.unstable_runtimeJS,unstable_JsPreload:R.unstable_JsPreload,assetQueryString:ea,scriptLoader:e$,locale:ti,disableOptimizedLoading:ts,head:e6.head,headTags:e6.headTags,styles:e6.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,optimizeFonts:l.optimizeFonts,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:K,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest},tc=(0,y.jsx)(L.Provider,{value:ek,children:(0,y.jsx)(Y.Provider,{value:td,children:e6.documentElement(td)})}),tp=await (0,eo.getTracer)().trace(es.xj.renderToString,async()=>eQ(tc)),[th,tf]=tp.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tm="";tp.startsWith(eG)||(tm+=eG),tm+=th,eM&&(tm+="<!-- __NEXT_DATA__ -->");let tg=await ep(ed(ec(tm),await e6.bodyResult(tf))),tv=await o(a,tg,l,{inAmpMode:eM,hybridAmp:te});return new eT(tv,{metadata:v})}let e1=(e,t,r,n,o)=>e0(e,t,r,n,o,o),e4=w().createContext(null);function e3(e){let t=(0,b.useContext)(e4);t&&t(e)}class e2 extends v{constructor(e){super(e),this.components=e.components}render(e,t,r){return e0(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e8={contexts:g},e9=e2})(),module.exports=n})();
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`)}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw 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 ${n.url}`)}else t=!1;if(f.pageProps=Object.assign({},f.pageProps,"props"in e?e.props:void 0),v.revalidate=t,v.pageData=f,v.isNotFound)return new eT(null,{metadata:v})}if(M&&(f[C.uY]=!0),M&&!em){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(es.xj.getServerSideProps,{spanName:`getServerSideProps ${a}`,attributes:{"next.route":a}},async()=>M({req:n,res:s,query:i,resolvedUrl:l.resolvedUrl,...eS?{params:D}:void 0,...!1!==h?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}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 Error(j.Lx);e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${a}`);if(e.unstable_redirect)throw Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${a}`);if(r.length)throw Error(eY("getServerSideProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');return v.isNotFound=!0,new eT(null,{metadata:v})}if("redirect"in e&&"object"==typeof e.redirect&&(eK(e.redirect,n,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0),t&&(e.props=await e.props),(w||ey)&&!N(a,"getServerSideProps",e.props))throw Error("invariant: getServerSideProps did not return valid props. Please report this.");f.pageProps=Object.assign({},f.pageProps,e.props),v.pageData=f}if(q&&!ev||v.isRedirect)return new eT(JSON.stringify(f),{metadata:v});if(em&&(f.pageProps={}),V(s)&&!ev)return new eT(null,{metadata:v});let e8=T;if(e_&&eS){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!J(e)?"/index"+e:"/"===e?"/index":B(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new X("Requested and resolved page mismatch: "+t+" "+n)}return t})(a).replace(/\\/g,"/")).startsWith("/index/")&&!J(e)?e.slice(6):"/index"!==e?e:"/";t in e8.pages&&(e8={...e8,pages:{...e8.pages,[t]:[...e8.pages[t],...e8.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:e8.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e9=({children:e})=>ez?e:(0,y.jsx)("div",{id:"__next",children:e}),e6=async()=>{let e,t,r;async function n(e){let t=async(t={})=>{if(e4.err&&$){e&&e(ea,eu);let t=await eQ((0,y.jsx)(e9,{children:(0,y.jsx)($,{error:e4.err})}));return{html:t,head:eB}}if(w&&(f.router||f.Component))throw Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props");let{App:r,Component:n}="function"==typeof t?{App:ea,Component:t(eu)}:{App:t.enhanceApp?t.enhanceApp(ea):ea,Component:t.enhanceComponent?t.enhanceComponent(eu):eu};if(e)return e(r,n).then(async e=>{await e.allReady;let t=await ep(e);return{html:t,head:eB}});let o=await eQ((0,y.jsx)(e9,{children:(0,y.jsx)(e1,{children:eX(r,n,{...f,router:eR})})}));return{html:o,head:eB}},r={...e4,renderPage:t},n=await Q(el,r);if(V(s)&&!ev)return null;if(!n||"string"!=typeof n.html){let e=`"${G(el)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`;throw Error(e)}return{docProps:n,documentCtx:r}}el[C.wU];let o=(e,t)=>{let r=e||ea,n=t||eu;return e4.err&&$?(0,y.jsx)(e9,{children:(0,y.jsx)($,{error:e4.err})}):(0,y.jsx)(e9,{children:(0,y.jsx)(e1,{children:eX(r,n,{...f,router:eR})})})},a=async(e,t)=>{let r=o(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(es.k0.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:P(),element:r})},i=(0,eo.getTracer)().wrap(es.xj.createBodyResult,(e,t)=>eh(e,{suffix:t,inlinedDataStream:void 0,isStaticGeneration:!0,getServerInsertedHTML:()=>eQ(e2()),serverInsertedHTMLToHead:!1,validateRootLayout:void 0})),l=!!el.getInitialProps;if(l){if(null===(t=await n(a)))return null;let{docProps:r}=t;e=e=>i(ec(r.html+e))}else{let r=await a(ea,eu);e=e=>i(r,e),t={}}let{docProps:u}=t||{};return l?(r=u.styles,eB=u.head):(r=ek.styles(),ek.flush()),{bodyResult:e,documentElement:e=>(0,y.jsx)(el,{...e,...u}),head:eB,headTags:[],styles:r}};null==(d=(0,eo.getTracer)().getRootSpanAttributes())||d.set("next.route",l.page);let e5=await (0,eo.getTracer)().trace(es.xj.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e6());if(!e5)return new eT(null,{metadata:v});let e7=new Set,te=new Set;for(let e of eW){let t=E[e];t&&(e7.add(t.id),t.files.forEach(e=>{te.add(e)}))}let tt=eM.hybrid,{assetPrefix:tr,buildId:tn,customServer:to,defaultLocale:ts,disableOptimizedLoading:ta,domainLocales:ti,locale:tl,locales:tu,runtimeConfig:td}=l,tc={__NEXT_DATA__:{props:f,page:a,query:i,buildId:tn,assetPrefix:""===tr?void 0:tr,runtimeConfig:td,nextExport:!0===e3||void 0,autoExport:!0===e_||void 0,isFallback:em,isExperimentalCompile:ee,dynamicIds:0===e7.size?void 0:Array.from(e7),err:l.err?(p=l.err,w?(g="server",g=p[eJ]||"server",{name:p.name,source:g,message:eN()(p.message),stack:p.stack,digest:p.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!I||void 0,gssp:!!M||void 0,customServer:to,gip:!!eb||void 0,appGip:!ex||void 0,locale:tl,locales:tu,defaultLocale:ts,domainLocales:ti,isPreview:!0===m||void 0,notFoundSrcPage:eg&&w?eg:void 0},strictNextHead:l.strictNextHead,buildManifest:e8,docComponentsRendered:{},dangerousAsPath:eR.asPath,canonicalBase:!l.ampPath&&et(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:S,inAmpMode:ez,isDevelopment:!!w,hybridAmp:tt,dynamicImports:Array.from(te),assetPrefix:tr,unstable_runtimeJS:R.unstable_runtimeJS,unstable_JsPreload:R.unstable_JsPreload,assetQueryString:ei,scriptLoader:eO,locale:tl,disableOptimizedLoading:ta,head:e5.head,headTags:e5.headTags,styles:e5.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,optimizeFonts:l.optimizeFonts,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:K,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest},tp=(0,y.jsx)(L.Provider,{value:eM,children:(0,y.jsx)(Y.Provider,{value:tc,children:e5.documentElement(tc)})}),th=await (0,eo.getTracer)().trace(es.xj.renderToString,async()=>eQ(tp)),[tf,tm]=th.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tg="";th.startsWith(eG)||(tg+=eG),tg+=tf,ez&&(tg+="<!-- __NEXT_DATA__ -->");let tv=await ep(ed(ec(tg),await e5.bodyResult(tm))),ty=await o(a,tv,l,{inAmpMode:ez,hybridAmp:tt});return new eT(ty,{metadata:v})}let e1=(e,t,r,n,o)=>e0(e,t,r,n,o,o),e4=w().createContext(null);function e3(e){let t=(0,b.useContext)(e4);t&&t(e)}class e2 extends v{constructor(e){super(e),this.components=e.components}render(e,t,r){return e0(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e8={contexts:g},e9=e2})(),module.exports=n})();
//# sourceMappingURL=pages-turbo.runtime.prod.js.map
\ No newline at end of file
Diff for pages.runtime.dev.js
@@ -11,19 +11,19 @@ Reason: ${n}`)}}function N(e,t,r){if(!T(r))throw new $(e,t,"",`Props must be ret
Keys that need to be moved: ${t.join(", ")}.
Read more: https://nextjs.org/docs/messages/${r}`};function e0(e,t,r){let{destination:n,permanent:o,statusCode:s,basePath:a}=e,i=[],l=void 0!==s,d=void 0!==o;d&&l?i.push("`permanent` and `statusCode` can not both be provided"):d&&"boolean"!=typeof o?i.push("`permanent` must be `true` or `false`"):l&&!er.has(s)&&i.push(`\`statusCode\` must undefined or one of ${[...er].join(", ")}`);let u=typeof n;"string"!==u&&i.push(`\`destination\` should be string but received ${u}`);let c=typeof a;if("undefined"!==c&&"boolean"!==c&&i.push(`\`basePath\` should be undefined or a false, received ${c}`),i.length>0)throw Error(`Invalid redirect object returned from ${r} for ${t.url}
-`+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp")}async function e1(n,s,a,i,l,d){var u,c,p;let h,m,f,g;(0,x.gk)({req:n},"cookies",(c=n.headers,function(){let{cookie:e}=c;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let v={};if(v.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!v.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(v.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(v.assetQueryString+=`${v.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:b,dev:w=!1,ampPath:S="",pageConfig:R={},buildManifest:T,reactLoadableManifest:E,ErrorDebug:$,getStaticProps:I,getStaticPaths:k,getServerSideProps:M,isDataReq:q,params:D,previewProps:F,basePath:U,images:Z,runtime:K,isExperimentalCompile:ee}=l,{App:er}=d,ea=v.assetQueryString,ei=d.Document,el=l.Component,ed=!!i.__nextFallback,ef=i.__nextNotFoundSrcPage;!function(e){for(let t of eL)delete e[t]}(i);let eg=!!I,ev=eg&&l.nextExport,ey=er.getInitialProps===er.origGetInitialProps,ex=!!(null==el?void 0:el.getInitialProps),eb=null==el?void 0:el.unstable_scriptLoader,ew=J(a),eS="/_error"===a&&el.getInitialProps===el.origGetInitialProps;l.nextExport&&ex&&!eS&&t(`Detected getInitialProps on page '${a}' 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 eP=!ex&&ey&&!eg&&!M;if(eP&&!w&&ee&&(s.setHeader("Cache-Control","number"==typeof!1?"s-maxage=false, stale-while-revalidate":`s-maxage=${j.BR}, stale-while-revalidate`),eP=!1),ex&&eg)throw Error(j.wh+` ${a}`);if(ex&&M)throw Error(j.Wo+` ${a}`);if(M&&eg)throw Error(j.oL+` ${a}`);if(M&&"export"===l.nextConfigOutput)throw Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if(k&&!ew)throw Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${a}'.
-Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`);if(k&&!eg)throw Error(`getStaticPaths was added without a getStaticProps in ${a}. Without getStaticProps, getStaticPaths does nothing`);if(eg&&ew&&!k)throw Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${a}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`);let e_=l.resolvedAsPath||n.url;if(w){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Error(`The default export is not a React Component in page: "${a}"`);if(!e(er))throw Error('The default export is not a React Component in page: "/_app"');if(!e(ei))throw Error('The default export is not a React Component in page: "/_document"');if((eP||ed)&&(i={...i.amp?{amp:i.amp}:{}},e_=`${a}${n.url.endsWith("/")&&"/"!==a&&!ew?"/":""}`,n.url=a),"/404"===a&&(ex||M))throw Error(`\`pages/404\` ${j.Ei}`);if(C.Er.includes(a)&&(ex||M))throw Error(`\`pages${a}\` ${j.Ei}`)}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Error(`page ${a} ${e} ${j.lk}`);await H.preloadAll(),(eg||M)&&!ed&&F&&(f=!1!==(h=e(n,s,F)));let ej=!!(M||ex||!ey&&!eg||ee),eC=new eY(a,i,e_,{isFallback:ed},ej,U,l.locale,l.locales,l.defaultLocale,l.domainLocales,f,et(n,"isLocaleDomain")),eR={back(){eC.back()},forward(){eC.forward()},refresh(){eC.reload()},push(e,t){let{scroll:r}=void 0===t?{}:t;eC.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eC.replace(e,void 0,{scroll:r})},prefetch(e){eC.prefetch(e)}},e$={},eO=(0,_.createStyleRegistry)(),ek={ampFirst:!0===R.amp,hasQuery:!!i.amp,hybrid:"hybrid"===R.amp},eM=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(ek),ez=function(e){void 0===e&&(e=!1);let t=[(0,y.jsx)("meta",{charSet:"utf-8"})];return e||t.push((0,y.jsx)("meta",{name:"viewport",content:"width=device-width"})),t}(eM),eB=[],eW={};eb&&(eW.beforeInteractive=[].concat(eb()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eU=({children:e})=>{var t;return(0,y.jsx)(eH.Provider,{value:eR,children:(0,y.jsx)(eA.Provider,{value:eC.isReady&&eC.query?(t=eC.asPath,new URL(t,"http://n").searchParams):new URLSearchParams,children:(0,y.jsx)(eF,{router:eC,isAutoExport:eP,children:(0,y.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={},r=function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=em(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=W.find(t=>e.startsWith(t)),o=e.match(/\[((?:\[.*\])|.+)\]/);if(t&&o){let{key:e,optional:s,repeat:a}=eD(o[1]);return r[e]={pos:n++,repeat:a,optional:s},"/"+eq(t)+"([^/]+?)"}if(!o)return"/"+eq(e);{let{key:e,repeat:t,optional:s}=eD(o[1]);return r[e]={pos:n++,repeat:t,optional:s},t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname),n=Object.keys(r.groups);for(let r of n)t[r]=e.query[r];return t}(eC),children:(0,y.jsx)(z.Provider,{value:eC,children:(0,y.jsx)(L.Provider,{value:ek,children:(0,y.jsx)(A.Provider,{value:{updateHead:e=>{ez=e},updateScripts:e=>{e$=e},scripts:eW,mountedInstances:new Set},children:(0,y.jsx)(O.Provider,{value:e=>eB.push(e),children:(0,y.jsx)(_.StyleRegistry,{registry:eO,children:(0,y.jsx)(eE.Provider,{value:Z,children:e})})})})})})})})})})},eQ=()=>null,e1=({children:e})=>(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(eQ,{}),(0,y.jsx)(eU,{children:(0,y.jsxs)(y.Fragment,{children:[w?(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(eQ,{})]}):e,(0,y.jsx)(eQ,{})]})})]}),e4={err:b,req:eP?void 0:n,res:eP?void 0:s,pathname:a,query:i,asPath:e_,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>(0,y.jsx)(e1,{children:eX(er,el,{...e,router:eC})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>(0,y.jsx)(e,{...t})}),o=eO.styles({nonce:t.nonce});return eO.flush(),{html:r,head:n,styles:o}}},e3=!eg&&(l.nextExport||w&&(eP||ed)),e2=()=>{let e=eO.styles();return eO.flush(),(0,y.jsx)(y.Fragment,{children:e})};if(m=await Q(er,{AppTree:e4.AppTree,Component:el,router:eC,ctx:e4}),(eg||M)&&f&&(m.__N_PREVIEW=!0),eg&&(m[C.NO]=!0),eg&&!ed){let e,t;try{e=await (0,eo.getTracer)().trace(es.xj.getStaticProps,{spanName:`getStaticProps ${a}`,attributes:{"next.route":a}},()=>I({...ew?{params:i}:void 0,...f?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Error(j.q6);let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Error(j.Eo);if(r.length)throw Error(eK("getStaticProps",r));if(void 0!==e.notFound&&void 0!==e.redirect)throw Error(`\`redirect\` and \`notFound\` can not both be returned from ${eg?"getStaticProps":"getServerSideProps"} at the same time. Page: ${a}
-See more info here: https://nextjs.org/docs/messages/gssp-mixed-not-found-redirect`);if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');v.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(e0(e.redirect,n,"getStaticProps"),ev)throw Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
-See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`);e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0}if((w||ev)&&!v.isNotFound&&!N(a,"getStaticProps",e.props))throw Error("invariant: getStaticProps did not return valid props. Please report this.");if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Error(`A page's revalidate option can not be less than or equal to zero for ${n.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
+`+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp")}async function e1(n,s,a,i,l,d){var u,c,p;let h,m,f,g;(0,x.gk)({req:n},"cookies",(c=n.headers,function(){let{cookie:e}=c;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let v={};if(v.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!v.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(v.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(v.assetQueryString+=`${v.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:b,dev:w=!1,ampPath:S="",pageConfig:R={},buildManifest:T,reactLoadableManifest:E,ErrorDebug:$,getStaticProps:I,getStaticPaths:k,getServerSideProps:M,isDataReq:q,params:D,previewProps:F,basePath:U,images:Z,runtime:K,isExperimentalCompile:ee,swrDelta:er}=l,{App:ea}=d,ei=v.assetQueryString,el=d.Document,ed=l.Component,ef=!!i.__nextFallback,eg=i.__nextNotFoundSrcPage;!function(e){for(let t of eL)delete e[t]}(i);let ev=!!I,ey=ev&&l.nextExport,ex=ea.getInitialProps===ea.origGetInitialProps,eb=!!(null==ed?void 0:ed.getInitialProps),ew=null==ed?void 0:ed.unstable_scriptLoader,eS=J(a),eP="/_error"===a&&ed.getInitialProps===ed.origGetInitialProps;l.nextExport&&eb&&!eP&&t(`Detected getInitialProps on page '${a}' 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 e_=!eb&&ex&&!ev&&!M;if(e_&&!w&&ee&&(s.setHeader("Cache-Control",function({revalidate:e,swrDelta:t}){let r=t?`stale-while-revalidate=${t}`:"stale-while-revalidate";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}, ${r}`:`s-maxage=${j.BR}, ${r}`}({revalidate:!1,swrDelta:er})),e_=!1),eb&&ev)throw Error(j.wh+` ${a}`);if(eb&&M)throw Error(j.Wo+` ${a}`);if(M&&ev)throw Error(j.oL+` ${a}`);if(M&&"export"===l.nextConfigOutput)throw Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if(k&&!eS)throw Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${a}'.
+Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`);if(k&&!ev)throw Error(`getStaticPaths was added without a getStaticProps in ${a}. Without getStaticProps, getStaticPaths does nothing`);if(ev&&eS&&!k)throw Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${a}'.
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`);let ej=l.resolvedAsPath||n.url;if(w){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(ed))throw Error(`The default export is not a React Component in page: "${a}"`);if(!e(ea))throw Error('The default export is not a React Component in page: "/_app"');if(!e(el))throw Error('The default export is not a React Component in page: "/_document"');if((e_||ef)&&(i={...i.amp?{amp:i.amp}:{}},ej=`${a}${n.url.endsWith("/")&&"/"!==a&&!eS?"/":""}`,n.url=a),"/404"===a&&(eb||M))throw Error(`\`pages/404\` ${j.Ei}`);if(C.Er.includes(a)&&(eb||M))throw Error(`\`pages${a}\` ${j.Ei}`)}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==ed?void 0:ed[e])throw Error(`page ${a} ${e} ${j.lk}`);await H.preloadAll(),(ev||M)&&!ef&&F&&(f=!1!==(h=e(n,s,F)));let eC=!!(M||eb||!ex&&!ev||ee),eR=new eY(a,i,ej,{isFallback:ef},eC,U,l.locale,l.locales,l.defaultLocale,l.domainLocales,f,et(n,"isLocaleDomain")),e$={back(){eR.back()},forward(){eR.forward()},refresh(){eR.reload()},push(e,t){let{scroll:r}=void 0===t?{}:t;eR.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eR.replace(e,void 0,{scroll:r})},prefetch(e){eR.prefetch(e)}},eO={},ek=(0,_.createStyleRegistry)(),eM={ampFirst:!0===R.amp,hasQuery:!!i.amp,hybrid:"hybrid"===R.amp},ez=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eM),eB=function(e){void 0===e&&(e=!1);let t=[(0,y.jsx)("meta",{charSet:"utf-8"})];return e||t.push((0,y.jsx)("meta",{name:"viewport",content:"width=device-width"})),t}(ez),eW=[],eU={};ew&&(eU.beforeInteractive=[].concat(ew()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eQ=({children:e})=>{var t;return(0,y.jsx)(eH.Provider,{value:e$,children:(0,y.jsx)(eA.Provider,{value:eR.isReady&&eR.query?(t=eR.asPath,new URL(t,"http://n").searchParams):new URLSearchParams,children:(0,y.jsx)(eF,{router:eR,isAutoExport:e_,children:(0,y.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={},r=function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=em(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=W.find(t=>e.startsWith(t)),o=e.match(/\[((?:\[.*\])|.+)\]/);if(t&&o){let{key:e,optional:s,repeat:a}=eD(o[1]);return r[e]={pos:n++,repeat:a,optional:s},"/"+eq(t)+"([^/]+?)"}if(!o)return"/"+eq(e);{let{key:e,repeat:t,optional:s}=eD(o[1]);return r[e]={pos:n++,repeat:t,optional:s},t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname),n=Object.keys(r.groups);for(let r of n)t[r]=e.query[r];return t}(eR),children:(0,y.jsx)(z.Provider,{value:eR,children:(0,y.jsx)(L.Provider,{value:eM,children:(0,y.jsx)(A.Provider,{value:{updateHead:e=>{eB=e},updateScripts:e=>{eO=e},scripts:eU,mountedInstances:new Set},children:(0,y.jsx)(O.Provider,{value:e=>eW.push(e),children:(0,y.jsx)(_.StyleRegistry,{registry:ek,children:(0,y.jsx)(eE.Provider,{value:Z,children:e})})})})})})})})})})},e1=()=>null,e4=({children:e})=>(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(e1,{}),(0,y.jsx)(eQ,{children:(0,y.jsxs)(y.Fragment,{children:[w?(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(e1,{})]}):e,(0,y.jsx)(e1,{})]})})]}),e3={err:b,req:e_?void 0:n,res:e_?void 0:s,pathname:a,query:i,asPath:ej,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>(0,y.jsx)(e4,{children:eX(ea,ed,{...e,router:eR})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>(0,y.jsx)(e,{...t})}),o=ek.styles({nonce:t.nonce});return ek.flush(),{html:r,head:n,styles:o}}},e2=!ev&&(l.nextExport||w&&(e_||ef)),e8=()=>{let e=ek.styles();return ek.flush(),(0,y.jsx)(y.Fragment,{children:e})};if(m=await Q(ea,{AppTree:e3.AppTree,Component:ed,router:eR,ctx:e3}),(ev||M)&&f&&(m.__N_PREVIEW=!0),ev&&(m[C.NO]=!0),ev&&!ef){let e,t;try{e=await (0,eo.getTracer)().trace(es.xj.getStaticProps,{spanName:`getStaticProps ${a}`,attributes:{"next.route":a}},()=>I({...eS?{params:i}:void 0,...f?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Error(j.q6);let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Error(j.Eo);if(r.length)throw Error(eK("getStaticProps",r));if(void 0!==e.notFound&&void 0!==e.redirect)throw Error(`\`redirect\` and \`notFound\` can not both be returned from ${ev?"getStaticProps":"getServerSideProps"} at the same time. Page: ${a}
+See more info here: https://nextjs.org/docs/messages/gssp-mixed-not-found-redirect`);if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');v.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(e0(e.redirect,n,"getStaticProps"),ey)throw Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
+See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`);e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0}if((w||ey)&&!v.isNotFound&&!N(a,"getStaticProps",e.props))throw Error("invariant: getStaticProps did not return valid props. Please report this.");if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Error(`A page's revalidate option can not be less than or equal to zero for ${n.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\`.`);e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${n.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 Error(`A page's revalidate option must be seconds expressed as a natural number for ${n.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.`)}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw 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 ${n.url}`)}else t=!1;if(m.pageProps=Object.assign({},m.pageProps,"props"in e?e.props:void 0),v.revalidate=t,v.pageData=m,v.isNotFound)return new eT(null,{metadata:v})}if(M&&(m[C.uY]=!0),M&&!ed){let e;let r=!0,o=s,d=!1;o=new Proxy(s,{get:function(e,n){if(!r){let e=`You should not access 'res' after getServerSideProps resolves.
-Read more: https://nextjs.org/docs/messages/gssp-no-mutating-res`;if(d)throw Error(e);t(e)}return eJ.g.get(e,n,s)}});try{e=await (0,eo.getTracer)().trace(es.xj.getServerSideProps,{spanName:`getServerSideProps ${a}`,attributes:{"next.route":a}},async()=>M({req:n,res:o,query:i,resolvedUrl:l.resolvedUrl,...ew?{params:D}:void 0,...!1!==h?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale})),r=!1}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 Error(j.Lx);e.props instanceof Promise&&(d=!0);let u=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${a}`);if(e.unstable_redirect)throw Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${a}`);if(u.length)throw Error(eK("getServerSideProps",u));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');return v.isNotFound=!0,new eT(null,{metadata:v})}if("redirect"in e&&"object"==typeof e.redirect&&(e0(e.redirect,n,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0),d&&(e.props=await e.props),(w||ev)&&!N(a,"getServerSideProps",e.props))throw Error("invariant: getServerSideProps did not return valid props. Please report this.");m.pageProps=Object.assign({},m.pageProps,e.props),v.pageData=m}if(!eg&&!M&&Object.keys((null==m?void 0:m.pageProps)||{}).includes("url")&&console.warn(`The prop \`url\` is a reserved prop in Next.js for legacy reasons and will be overridden on page ${a}
-See more info here: https://nextjs.org/docs/messages/reserved-page-prop`),q&&!eg||v.isRedirect)return new eT(JSON.stringify(m),{metadata:v});if(ed&&(m.pageProps={}),V(s)&&!eg)return new eT(null,{metadata:v});let e8=T;if(eP&&ew){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!J(e)?"/index"+e:"/"===e?"/index":B(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new Y("Requested and resolved page mismatch: "+t+" "+n)}return t})(a).replace(/\\/g,"/")).startsWith("/index/")&&!J(e)?e.slice(6):"/index"!==e?e:"/";t in e8.pages&&(e8={...e8,pages:{...e8.pages,[t]:[...e8.pages[t],...e8.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:e8.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e9=({children:e})=>eM?e:(0,y.jsx)("div",{id:"__next",children:e}),e6=async()=>{let e,t,r;async function n(e){let t=async(t={})=>{if(e4.err&&$){e&&e(er,el);let t=await eZ((0,y.jsx)(e9,{children:(0,y.jsx)($,{error:e4.err})}));return{html:t,head:ez}}if(w&&(m.router||m.Component))throw Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props");let{App:r,Component:n}="function"==typeof t?{App:er,Component:t(el)}:{App:t.enhanceApp?t.enhanceApp(er):er,Component:t.enhanceComponent?t.enhanceComponent(el):el};if(e)return e(r,n).then(async e=>{await e.allReady;let t=await ep(e);return{html:t,head:ez}});let o=await eZ((0,y.jsx)(e9,{children:(0,y.jsx)(e1,{children:eX(r,n,{...m,router:eC})})}));return{html:o,head:ez}},r={...e4,renderPage:t},n=await Q(ei,r);if(V(s)&&!eg)return null;if(!n||"string"!=typeof n.html){let e=`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`;throw Error(e)}return{docProps:n,documentCtx:r}}ei[C.wU];let o=(e,t)=>{let r=e||er,n=t||el;return e4.err&&$?(0,y.jsx)(e9,{children:(0,y.jsx)($,{error:e4.err})}):(0,y.jsx)(e9,{children:(0,y.jsx)(e1,{children:eX(r,n,{...m,router:eC})})})},a=async(e,t)=>{let r=o(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(es.k0.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:P(),element:r})},i=(0,eo.getTracer)().wrap(es.xj.createBodyResult,(e,t)=>eh(e,{suffix:t,inlinedDataStream:void 0,isStaticGeneration:!0,getServerInsertedHTML:()=>eZ(e2()),serverInsertedHTMLToHead:!1,validateRootLayout:void 0})),l=!!ei.getInitialProps;if(l){if(null===(t=await n(a)))return null;let{docProps:r}=t;e=e=>i(ec(r.html+e))}else{let r=await a(er,el);e=e=>i(r,e),t={}}let{docProps:d}=t||{};return l?(r=d.styles,ez=d.head):(r=eO.styles(),eO.flush()),{bodyResult:e,documentElement:e=>(0,y.jsx)(ei,{...e,...d}),head:ez,headTags:[],styles:r}};null==(u=(0,eo.getTracer)().getRootSpanAttributes())||u.set("next.route",l.page);let e5=await (0,eo.getTracer)().trace(es.xj.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e6());if(!e5)return new eT(null,{metadata:v});let e7=new Set,te=new Set;for(let e of eB){let t=E[e];t&&(e7.add(t.id),t.files.forEach(e=>{te.add(e)}))}let tt=ek.hybrid,tr={},{assetPrefix:tn,buildId:to,customServer:ts,defaultLocale:ta,disableOptimizedLoading:ti,domainLocales:tl,locale:td,locales:tu,runtimeConfig:tc}=l,tp={__NEXT_DATA__:{props:m,page:a,query:i,buildId:to,assetPrefix:""===tn?void 0:tn,runtimeConfig:tc,nextExport:!0===e3||void 0,autoExport:!0===eP||void 0,isFallback:ed,isExperimentalCompile:ee,dynamicIds:0===e7.size?void 0:Array.from(e7),err:l.err?(p=l.err,w?(g="server",g=p[eG]||"server",{name:p.name,source:g,message:eN()(p.message),stack:p.stack,digest:p.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!I||void 0,gssp:!!M||void 0,customServer:ts,gip:!!ex||void 0,appGip:!ey||void 0,locale:td,locales:tu,defaultLocale:ta,domainLocales:tl,isPreview:!0===f||void 0,notFoundSrcPage:ef&&w?ef:void 0},strictNextHead:l.strictNextHead,buildManifest:e8,docComponentsRendered:tr,dangerousAsPath:eC.asPath,canonicalBase:!l.ampPath&&et(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:S,inAmpMode:eM,isDevelopment:!!w,hybridAmp:tt,dynamicImports:Array.from(te),assetPrefix:tn,unstable_runtimeJS:void 0,unstable_JsPreload:R.unstable_JsPreload,assetQueryString:ea,scriptLoader:e$,locale:td,disableOptimizedLoading:ti,head:e5.head,headTags:e5.headTags,styles:e5.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,optimizeFonts:l.optimizeFonts,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:K,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest},th=(0,y.jsx)(L.Provider,{value:ek,children:(0,y.jsx)(X.Provider,{value:tp,children:e5.documentElement(tp)})}),tm=await (0,eo.getTracer)().trace(es.xj.renderToString,async()=>eZ(th));{let e=[];for(let t of["Main","Head","NextScript","Html"])tr[t]||e.push(t);if(e.length){let t=e.map(e=>`<${e} />`).join(", "),r=1!==e.length?"s":"";console.warn(`Your custom Document (pages/_document) did not render all the required subcomponent${r}.
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`)}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw 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 ${n.url}`)}else t=!1;if(m.pageProps=Object.assign({},m.pageProps,"props"in e?e.props:void 0),v.revalidate=t,v.pageData=m,v.isNotFound)return new eT(null,{metadata:v})}if(M&&(m[C.uY]=!0),M&&!ef){let e;let r=!0,o=s,d=!1;o=new Proxy(s,{get:function(e,n){if(!r){let e=`You should not access 'res' after getServerSideProps resolves.
+Read more: https://nextjs.org/docs/messages/gssp-no-mutating-res`;if(d)throw Error(e);t(e)}return eJ.g.get(e,n,s)}});try{e=await (0,eo.getTracer)().trace(es.xj.getServerSideProps,{spanName:`getServerSideProps ${a}`,attributes:{"next.route":a}},async()=>M({req:n,res:o,query:i,resolvedUrl:l.resolvedUrl,...eS?{params:D}:void 0,...!1!==h?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale})),r=!1}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 Error(j.Lx);e.props instanceof Promise&&(d=!0);let u=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${a}`);if(e.unstable_redirect)throw Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${a}`);if(u.length)throw Error(eK("getServerSideProps",u));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');return v.isNotFound=!0,new eT(null,{metadata:v})}if("redirect"in e&&"object"==typeof e.redirect&&(e0(e.redirect,n,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0),d&&(e.props=await e.props),(w||ey)&&!N(a,"getServerSideProps",e.props))throw Error("invariant: getServerSideProps did not return valid props. Please report this.");m.pageProps=Object.assign({},m.pageProps,e.props),v.pageData=m}if(!ev&&!M&&Object.keys((null==m?void 0:m.pageProps)||{}).includes("url")&&console.warn(`The prop \`url\` is a reserved prop in Next.js for legacy reasons and will be overridden on page ${a}
+See more info here: https://nextjs.org/docs/messages/reserved-page-prop`),q&&!ev||v.isRedirect)return new eT(JSON.stringify(m),{metadata:v});if(ef&&(m.pageProps={}),V(s)&&!ev)return new eT(null,{metadata:v});let e9=T;if(e_&&eS){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!J(e)?"/index"+e:"/"===e?"/index":B(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new Y("Requested and resolved page mismatch: "+t+" "+n)}return t})(a).replace(/\\/g,"/")).startsWith("/index/")&&!J(e)?e.slice(6):"/index"!==e?e:"/";t in e9.pages&&(e9={...e9,pages:{...e9.pages,[t]:[...e9.pages[t],...e9.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:e9.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e6=({children:e})=>ez?e:(0,y.jsx)("div",{id:"__next",children:e}),e5=async()=>{let e,t,r;async function n(e){let t=async(t={})=>{if(e3.err&&$){e&&e(ea,ed);let t=await eZ((0,y.jsx)(e6,{children:(0,y.jsx)($,{error:e3.err})}));return{html:t,head:eB}}if(w&&(m.router||m.Component))throw Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props");let{App:r,Component:n}="function"==typeof t?{App:ea,Component:t(ed)}:{App:t.enhanceApp?t.enhanceApp(ea):ea,Component:t.enhanceComponent?t.enhanceComponent(ed):ed};if(e)return e(r,n).then(async e=>{await e.allReady;let t=await ep(e);return{html:t,head:eB}});let o=await eZ((0,y.jsx)(e6,{children:(0,y.jsx)(e4,{children:eX(r,n,{...m,router:eR})})}));return{html:o,head:eB}},r={...e3,renderPage:t},n=await Q(el,r);if(V(s)&&!ev)return null;if(!n||"string"!=typeof n.html){let e=`"${G(el)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`;throw Error(e)}return{docProps:n,documentCtx:r}}el[C.wU];let o=(e,t)=>{let r=e||ea,n=t||ed;return e3.err&&$?(0,y.jsx)(e6,{children:(0,y.jsx)($,{error:e3.err})}):(0,y.jsx)(e6,{children:(0,y.jsx)(e4,{children:eX(r,n,{...m,router:eR})})})},a=async(e,t)=>{let r=o(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(es.k0.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:P(),element:r})},i=(0,eo.getTracer)().wrap(es.xj.createBodyResult,(e,t)=>eh(e,{suffix:t,inlinedDataStream:void 0,isStaticGeneration:!0,getServerInsertedHTML:()=>eZ(e8()),serverInsertedHTMLToHead:!1,validateRootLayout:void 0})),l=!!el.getInitialProps;if(l){if(null===(t=await n(a)))return null;let{docProps:r}=t;e=e=>i(ec(r.html+e))}else{let r=await a(ea,ed);e=e=>i(r,e),t={}}let{docProps:d}=t||{};return l?(r=d.styles,eB=d.head):(r=ek.styles(),ek.flush()),{bodyResult:e,documentElement:e=>(0,y.jsx)(el,{...e,...d}),head:eB,headTags:[],styles:r}};null==(u=(0,eo.getTracer)().getRootSpanAttributes())||u.set("next.route",l.page);let e7=await (0,eo.getTracer)().trace(es.xj.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e5());if(!e7)return new eT(null,{metadata:v});let te=new Set,tt=new Set;for(let e of eW){let t=E[e];t&&(te.add(t.id),t.files.forEach(e=>{tt.add(e)}))}let tr=eM.hybrid,tn={},{assetPrefix:to,buildId:ts,customServer:ta,defaultLocale:ti,disableOptimizedLoading:tl,domainLocales:td,locale:tu,locales:tc,runtimeConfig:tp}=l,th={__NEXT_DATA__:{props:m,page:a,query:i,buildId:ts,assetPrefix:""===to?void 0:to,runtimeConfig:tp,nextExport:!0===e2||void 0,autoExport:!0===e_||void 0,isFallback:ef,isExperimentalCompile:ee,dynamicIds:0===te.size?void 0:Array.from(te),err:l.err?(p=l.err,w?(g="server",g=p[eG]||"server",{name:p.name,source:g,message:eN()(p.message),stack:p.stack,digest:p.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!I||void 0,gssp:!!M||void 0,customServer:ta,gip:!!eb||void 0,appGip:!ex||void 0,locale:tu,locales:tc,defaultLocale:ti,domainLocales:td,isPreview:!0===f||void 0,notFoundSrcPage:eg&&w?eg:void 0},strictNextHead:l.strictNextHead,buildManifest:e9,docComponentsRendered:tn,dangerousAsPath:eR.asPath,canonicalBase:!l.ampPath&&et(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:S,inAmpMode:ez,isDevelopment:!!w,hybridAmp:tr,dynamicImports:Array.from(tt),assetPrefix:to,unstable_runtimeJS:void 0,unstable_JsPreload:R.unstable_JsPreload,assetQueryString:ei,scriptLoader:eO,locale:tu,disableOptimizedLoading:tl,head:e7.head,headTags:e7.headTags,styles:e7.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,optimizeFonts:l.optimizeFonts,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:K,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest},tm=(0,y.jsx)(L.Provider,{value:eM,children:(0,y.jsx)(X.Provider,{value:th,children:e7.documentElement(th)})}),tf=await (0,eo.getTracer)().trace(es.xj.renderToString,async()=>eZ(tm));{let e=[];for(let t of["Main","Head","NextScript","Html"])tn[t]||e.push(t);if(e.length){let t=e.map(e=>`<${e} />`).join(", "),r=1!==e.length?"s":"";console.warn(`Your custom Document (pages/_document) did not render all the required subcomponent${r}.
Missing component${r}: ${t}
-Read how to fix here: https://nextjs.org/docs/messages/missing-document-component`)}}let[tf,tg]=tm.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tv="";tm.startsWith(eV)||(tv+=eV),tv+=tf,eM&&(tv+="<!-- __NEXT_DATA__ -->");let ty=await ep(eu(ec(tv),await e5.bodyResult(tg))),tx=await o(a,ty,l,{inAmpMode:eM,hybridAmp:tt});return new eT(tx,{metadata:v})}let e4=(e,t,r,n,o)=>e1(e,t,r,n,o,o),e3=w().createContext(null);function e2(e){let t=(0,b.useContext)(e3);t&&t(e)}class e8 extends v{constructor(e){super(e),this.components=e.components}render(e,t,r){return e1(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e9={contexts:g},e6=e8})(),module.exports=n})();
+Read how to fix here: https://nextjs.org/docs/messages/missing-document-component`)}}let[tg,tv]=tf.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),ty="";tf.startsWith(eV)||(ty+=eV),ty+=tg,ez&&(ty+="<!-- __NEXT_DATA__ -->");let tx=await ep(eu(ec(ty),await e7.bodyResult(tv))),tb=await o(a,tx,l,{inAmpMode:ez,hybridAmp:tr});return new eT(tb,{metadata:v})}let e4=(e,t,r,n,o)=>e1(e,t,r,n,o,o),e3=w().createContext(null);function e2(e){let t=(0,b.useContext)(e3);t&&t(e)}class e8 extends v{constructor(e){super(e),this.components=e.components}render(e,t,r){return e1(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e9={contexts:g},e6=e8})(),module.exports=n})();
//# sourceMappingURL=pages.runtime.dev.js.map
\ No newline at end of file
Diff for pages.runtime.prod.js
@@ -19,14 +19,14 @@ Reason: ${n}`)}}function N(e,t,r){if(!T(r))throw new $(e,t,"",`Props must be ret
Keys that need to be moved: ${t.join(", ")}.
Read more: https://nextjs.org/docs/messages/${r}`};function eK(e,t,r){let{destination:n,permanent:o,statusCode:s,basePath:a}=e,i=[],l=void 0!==s,u=void 0!==o;u&&l?i.push("`permanent` and `statusCode` can not both be provided"):u&&"boolean"!=typeof o?i.push("`permanent` must be `true` or `false`"):l&&!er.has(s)&&i.push(`\`statusCode\` must undefined or one of ${[...er].join(", ")}`);let d=typeof n;"string"!==d&&i.push(`\`destination\` should be string but received ${d}`);let c=typeof a;if("undefined"!==c&&"boolean"!==c&&i.push(`\`basePath\` should be undefined or a false, received ${c}`),i.length>0)throw Error(`Invalid redirect object returned from ${r} for ${t.url}
-`+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp")}async function e0(n,s,a,i,l,u){var d,c,p;let h,f,m,g;(0,x.gk)({req:n},"cookies",(c=n.headers,function(){let{cookie:e}=c;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let v={};if(v.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!v.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(v.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(v.assetQueryString+=`${v.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:b,dev:w=!1,ampPath:S="",pageConfig:R={},buildManifest:T,reactLoadableManifest:E,ErrorDebug:$,getStaticProps:I,getStaticPaths:k,getServerSideProps:M,isDataReq:q,params:D,previewProps:F,basePath:U,images:Z,runtime:K,isExperimentalCompile:ee}=l,{App:er}=u,ea=v.assetQueryString,ei=u.Document,el=l.Component,eu=!!i.__nextFallback,em=i.__nextNotFoundSrcPage;!function(e){for(let t of eL)delete e[t]}(i);let eg=!!I,ev=eg&&l.nextExport,ey=er.getInitialProps===er.origGetInitialProps,ex=!!(null==el?void 0:el.getInitialProps),eb=null==el?void 0:el.unstable_scriptLoader,ew=J(a),eS="/_error"===a&&el.getInitialProps===el.origGetInitialProps;l.nextExport&&ex&&!eS&&t(`Detected getInitialProps on page '${a}' 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 eP=!ex&&ey&&!eg&&!M;if(eP&&!w&&ee&&(s.setHeader("Cache-Control","number"==typeof!1?"s-maxage=false, stale-while-revalidate":`s-maxage=${j.BR}, stale-while-revalidate`),eP=!1),ex&&eg)throw Error(j.wh+` ${a}`);if(ex&&M)throw Error(j.Wo+` ${a}`);if(M&&eg)throw Error(j.oL+` ${a}`);if(M&&"export"===l.nextConfigOutput)throw Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if(k&&!ew)throw Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${a}'.
-Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`);if(k&&!eg)throw Error(`getStaticPaths was added without a getStaticProps in ${a}. Without getStaticProps, getStaticPaths does nothing`);if(eg&&ew&&!k)throw Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${a}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`);let e_=l.resolvedAsPath||n.url;if(w){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Error(`The default export is not a React Component in page: "${a}"`);if(!e(er))throw Error('The default export is not a React Component in page: "/_app"');if(!e(ei))throw Error('The default export is not a React Component in page: "/_document"');if((eP||eu)&&(i={...i.amp?{amp:i.amp}:{}},e_=`${a}${n.url.endsWith("/")&&"/"!==a&&!ew?"/":""}`,n.url=a),"/404"===a&&(ex||M))throw Error(`\`pages/404\` ${j.Ei}`);if(C.Er.includes(a)&&(ex||M))throw Error(`\`pages${a}\` ${j.Ei}`)}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Error(`page ${a} ${e} ${j.lk}`);await H.preloadAll(),(eg||M)&&!eu&&F&&(m=!1!==(h=e(n,s,F)));let ej=!!(M||ex||!ey&&!eg||ee),eC=new eZ(a,i,e_,{isFallback:eu},ej,U,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,et(n,"isLocaleDomain")),eR={back(){eC.back()},forward(){eC.forward()},refresh(){eC.reload()},push(e,t){let{scroll:r}=void 0===t?{}:t;eC.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eC.replace(e,void 0,{scroll:r})},prefetch(e){eC.prefetch(e)}},e$={},eO=(0,_.createStyleRegistry)(),ek={ampFirst:!0===R.amp,hasQuery:!!i.amp,hybrid:"hybrid"===R.amp},eM=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(ek),ez=function(e){void 0===e&&(e=!1);let t=[(0,y.jsx)("meta",{charSet:"utf-8"})];return e||t.push((0,y.jsx)("meta",{name:"viewport",content:"width=device-width"})),t}(eM),eB=[],eW={};eb&&(eW.beforeInteractive=[].concat(eb()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eU=({children:e})=>{var t;return(0,y.jsx)(eH.Provider,{value:eR,children:(0,y.jsx)(eA.Provider,{value:eC.isReady&&eC.query?(t=eC.asPath,new URL(t,"http://n").searchParams):new URLSearchParams,children:(0,y.jsx)(eF,{router:eC,isAutoExport:eP,children:(0,y.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={},r=function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ef(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=W.find(t=>e.startsWith(t)),o=e.match(/\[((?:\[.*\])|.+)\]/);if(t&&o){let{key:e,optional:s,repeat:a}=eD(o[1]);return r[e]={pos:n++,repeat:a,optional:s},"/"+eq(t)+"([^/]+?)"}if(!o)return"/"+eq(e);{let{key:e,repeat:t,optional:s}=eD(o[1]);return r[e]={pos:n++,repeat:t,optional:s},t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname),n=Object.keys(r.groups);for(let r of n)t[r]=e.query[r];return t}(eC),children:(0,y.jsx)(z.Provider,{value:eC,children:(0,y.jsx)(L.Provider,{value:ek,children:(0,y.jsx)(A.Provider,{value:{updateHead:e=>{ez=e},updateScripts:e=>{e$=e},scripts:eW,mountedInstances:new Set},children:(0,y.jsx)(O.Provider,{value:e=>eB.push(e),children:(0,y.jsx)(_.StyleRegistry,{registry:eO,children:(0,y.jsx)(eE.Provider,{value:Z,children:e})})})})})})})})})})},eV=()=>null,e0=({children:e})=>(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(eV,{}),(0,y.jsx)(eU,{children:(0,y.jsxs)(y.Fragment,{children:[w?(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(eV,{})]}):e,(0,y.jsx)(eV,{})]})})]}),e1={err:b,req:eP?void 0:n,res:eP?void 0:s,pathname:a,query:i,asPath:e_,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>(0,y.jsx)(e0,{children:eX(er,el,{...e,router:eC})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>(0,y.jsx)(e,{...t})}),o=eO.styles({nonce:t.nonce});return eO.flush(),{html:r,head:n,styles:o}}},e4=!eg&&(l.nextExport||w&&(eP||eu)),e3=()=>{let e=eO.styles();return eO.flush(),(0,y.jsx)(y.Fragment,{children:e})};if(f=await Q(er,{AppTree:e1.AppTree,Component:el,router:eC,ctx:e1}),(eg||M)&&m&&(f.__N_PREVIEW=!0),eg&&(f[C.NO]=!0),eg&&!eu){let e,t;try{e=await (0,eo.getTracer)().trace(es.xj.getStaticProps,{spanName:`getStaticProps ${a}`,attributes:{"next.route":a}},()=>I({...ew?{params:i}:void 0,...m?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Error(j.q6);let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Error(j.Eo);if(r.length)throw Error(eY("getStaticProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');v.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(eK(e.redirect,n,"getStaticProps"),ev)throw Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
-See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`);e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0}if((w||ev)&&!v.isNotFound&&!N(a,"getStaticProps",e.props))throw Error("invariant: getStaticProps did not return valid props. Please report this.");if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Error(`A page's revalidate option can not be less than or equal to zero for ${n.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.
+`+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp")}async function e0(n,s,a,i,l,u){var d,c,p;let h,f,m,g;(0,x.gk)({req:n},"cookies",(c=n.headers,function(){let{cookie:e}=c;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let v={};if(v.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!v.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(v.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(v.assetQueryString+=`${v.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:b,dev:w=!1,ampPath:S="",pageConfig:R={},buildManifest:T,reactLoadableManifest:E,ErrorDebug:$,getStaticProps:I,getStaticPaths:k,getServerSideProps:M,isDataReq:q,params:D,previewProps:F,basePath:U,images:Z,runtime:K,isExperimentalCompile:ee,swrDelta:er}=l,{App:ea}=u,ei=v.assetQueryString,el=u.Document,eu=l.Component,em=!!i.__nextFallback,eg=i.__nextNotFoundSrcPage;!function(e){for(let t of eL)delete e[t]}(i);let ev=!!I,ey=ev&&l.nextExport,ex=ea.getInitialProps===ea.origGetInitialProps,eb=!!(null==eu?void 0:eu.getInitialProps),ew=null==eu?void 0:eu.unstable_scriptLoader,eS=J(a),eP="/_error"===a&&eu.getInitialProps===eu.origGetInitialProps;l.nextExport&&eb&&!eP&&t(`Detected getInitialProps on page '${a}' 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 e_=!eb&&ex&&!ev&&!M;if(e_&&!w&&ee&&(s.setHeader("Cache-Control",function({revalidate:e,swrDelta:t}){let r=t?`stale-while-revalidate=${t}`:"stale-while-revalidate";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}, ${r}`:`s-maxage=${j.BR}, ${r}`}({revalidate:!1,swrDelta:er})),e_=!1),eb&&ev)throw Error(j.wh+` ${a}`);if(eb&&M)throw Error(j.Wo+` ${a}`);if(M&&ev)throw Error(j.oL+` ${a}`);if(M&&"export"===l.nextConfigOutput)throw Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if(k&&!eS)throw Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${a}'.
+Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`);if(k&&!ev)throw Error(`getStaticPaths was added without a getStaticProps in ${a}. Without getStaticProps, getStaticPaths does nothing`);if(ev&&eS&&!k)throw Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${a}'.
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`);let ej=l.resolvedAsPath||n.url;if(w){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(eu))throw Error(`The default export is not a React Component in page: "${a}"`);if(!e(ea))throw Error('The default export is not a React Component in page: "/_app"');if(!e(el))throw Error('The default export is not a React Component in page: "/_document"');if((e_||em)&&(i={...i.amp?{amp:i.amp}:{}},ej=`${a}${n.url.endsWith("/")&&"/"!==a&&!eS?"/":""}`,n.url=a),"/404"===a&&(eb||M))throw Error(`\`pages/404\` ${j.Ei}`);if(C.Er.includes(a)&&(eb||M))throw Error(`\`pages${a}\` ${j.Ei}`)}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==eu?void 0:eu[e])throw Error(`page ${a} ${e} ${j.lk}`);await H.preloadAll(),(ev||M)&&!em&&F&&(m=!1!==(h=e(n,s,F)));let eC=!!(M||eb||!ex&&!ev||ee),eR=new eZ(a,i,ej,{isFallback:em},eC,U,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,et(n,"isLocaleDomain")),e$={back(){eR.back()},forward(){eR.forward()},refresh(){eR.reload()},push(e,t){let{scroll:r}=void 0===t?{}:t;eR.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eR.replace(e,void 0,{scroll:r})},prefetch(e){eR.prefetch(e)}},eO={},ek=(0,_.createStyleRegistry)(),eM={ampFirst:!0===R.amp,hasQuery:!!i.amp,hybrid:"hybrid"===R.amp},ez=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eM),eB=function(e){void 0===e&&(e=!1);let t=[(0,y.jsx)("meta",{charSet:"utf-8"})];return e||t.push((0,y.jsx)("meta",{name:"viewport",content:"width=device-width"})),t}(ez),eW=[],eU={};ew&&(eU.beforeInteractive=[].concat(ew()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let eV=({children:e})=>{var t;return(0,y.jsx)(eH.Provider,{value:e$,children:(0,y.jsx)(eA.Provider,{value:eR.isReady&&eR.query?(t=eR.asPath,new URL(t,"http://n").searchParams):new URLSearchParams,children:(0,y.jsx)(eF,{router:eR,isAutoExport:e_,children:(0,y.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={},r=function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ef(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=W.find(t=>e.startsWith(t)),o=e.match(/\[((?:\[.*\])|.+)\]/);if(t&&o){let{key:e,optional:s,repeat:a}=eD(o[1]);return r[e]={pos:n++,repeat:a,optional:s},"/"+eq(t)+"([^/]+?)"}if(!o)return"/"+eq(e);{let{key:e,repeat:t,optional:s}=eD(o[1]);return r[e]={pos:n++,repeat:t,optional:s},t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname),n=Object.keys(r.groups);for(let r of n)t[r]=e.query[r];return t}(eR),children:(0,y.jsx)(z.Provider,{value:eR,children:(0,y.jsx)(L.Provider,{value:eM,children:(0,y.jsx)(A.Provider,{value:{updateHead:e=>{eB=e},updateScripts:e=>{eO=e},scripts:eU,mountedInstances:new Set},children:(0,y.jsx)(O.Provider,{value:e=>eW.push(e),children:(0,y.jsx)(_.StyleRegistry,{registry:ek,children:(0,y.jsx)(eE.Provider,{value:Z,children:e})})})})})})})})})})},e0=()=>null,e1=({children:e})=>(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(e0,{}),(0,y.jsx)(eV,{children:(0,y.jsxs)(y.Fragment,{children:[w?(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(e0,{})]}):e,(0,y.jsx)(e0,{})]})})]}),e4={err:b,req:e_?void 0:n,res:e_?void 0:s,pathname:a,query:i,asPath:ej,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>(0,y.jsx)(e1,{children:eX(ea,eu,{...e,router:eR})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>(0,y.jsx)(e,{...t})}),o=ek.styles({nonce:t.nonce});return ek.flush(),{html:r,head:n,styles:o}}},e3=!ev&&(l.nextExport||w&&(e_||em)),e2=()=>{let e=ek.styles();return ek.flush(),(0,y.jsx)(y.Fragment,{children:e})};if(f=await Q(ea,{AppTree:e4.AppTree,Component:eu,router:eR,ctx:e4}),(ev||M)&&m&&(f.__N_PREVIEW=!0),ev&&(f[C.NO]=!0),ev&&!em){let e,t;try{e=await (0,eo.getTracer)().trace(es.xj.getStaticProps,{spanName:`getStaticProps ${a}`,attributes:{"next.route":a}},()=>I({...eS?{params:i}:void 0,...m?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Error(j.q6);let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Error(j.Eo);if(r.length)throw Error(eY("getStaticProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');v.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(eK(e.redirect,n,"getStaticProps"),ey)throw Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
+See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`);e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0}if((w||ey)&&!v.isNotFound&&!N(a,"getStaticProps",e.props))throw Error("invariant: getStaticProps did not return valid props. Please report this.");if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export');if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Error(`A page's revalidate option can not be less than or equal to zero for ${n.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\`.`);e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${n.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 Error(`A page's revalidate option must be seconds expressed as a natural number for ${n.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.`)}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw 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 ${n.url}`)}else t=!1;if(f.pageProps=Object.assign({},f.pageProps,"props"in e?e.props:void 0),v.revalidate=t,v.pageData=f,v.isNotFound)return new eT(null,{metadata:v})}if(M&&(f[C.uY]=!0),M&&!eu){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(es.xj.getServerSideProps,{spanName:`getServerSideProps ${a}`,attributes:{"next.route":a}},async()=>M({req:n,res:s,query:i,resolvedUrl:l.resolvedUrl,...ew?{params:D}:void 0,...!1!==h?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}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 Error(j.Lx);e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${a}`);if(e.unstable_redirect)throw Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${a}`);if(r.length)throw Error(eY("getServerSideProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');return v.isNotFound=!0,new eT(null,{metadata:v})}if("redirect"in e&&"object"==typeof e.redirect&&(eK(e.redirect,n,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0),t&&(e.props=await e.props),(w||ev)&&!N(a,"getServerSideProps",e.props))throw Error("invariant: getServerSideProps did not return valid props. Please report this.");f.pageProps=Object.assign({},f.pageProps,e.props),v.pageData=f}if(q&&!eg||v.isRedirect)return new eT(JSON.stringify(f),{metadata:v});if(eu&&(f.pageProps={}),V(s)&&!eg)return new eT(null,{metadata:v});let e2=T;if(eP&&ew){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!J(e)?"/index"+e:"/"===e?"/index":B(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new X("Requested and resolved page mismatch: "+t+" "+n)}return t})(a).replace(/\\/g,"/")).startsWith("/index/")&&!J(e)?e.slice(6):"/index"!==e?e:"/";t in e2.pages&&(e2={...e2,pages:{...e2.pages,[t]:[...e2.pages[t],...e2.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:e2.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e8=({children:e})=>eM?e:(0,y.jsx)("div",{id:"__next",children:e}),e9=async()=>{let e,t,r;async function n(e){let t=async(t={})=>{if(e1.err&&$){e&&e(er,el);let t=await eQ((0,y.jsx)(e8,{children:(0,y.jsx)($,{error:e1.err})}));return{html:t,head:ez}}if(w&&(f.router||f.Component))throw Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props");let{App:r,Component:n}="function"==typeof t?{App:er,Component:t(el)}:{App:t.enhanceApp?t.enhanceApp(er):er,Component:t.enhanceComponent?t.enhanceComponent(el):el};if(e)return e(r,n).then(async e=>{await e.allReady;let t=await ep(e);return{html:t,head:ez}});let o=await eQ((0,y.jsx)(e8,{children:(0,y.jsx)(e0,{children:eX(r,n,{...f,router:eC})})}));return{html:o,head:ez}},r={...e1,renderPage:t},n=await Q(ei,r);if(V(s)&&!eg)return null;if(!n||"string"!=typeof n.html){let e=`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`;throw Error(e)}return{docProps:n,documentCtx:r}}ei[C.wU];let o=(e,t)=>{let r=e||er,n=t||el;return e1.err&&$?(0,y.jsx)(e8,{children:(0,y.jsx)($,{error:e1.err})}):(0,y.jsx)(e8,{children:(0,y.jsx)(e0,{children:eX(r,n,{...f,router:eC})})})},a=async(e,t)=>{let r=o(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(es.k0.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:P(),element:r})},i=(0,eo.getTracer)().wrap(es.xj.createBodyResult,(e,t)=>eh(e,{suffix:t,inlinedDataStream:void 0,isStaticGeneration:!0,getServerInsertedHTML:()=>eQ(e3()),serverInsertedHTMLToHead:!1,validateRootLayout:void 0})),l=!!ei.getInitialProps;if(l){if(null===(t=await n(a)))return null;let{docProps:r}=t;e=e=>i(ec(r.html+e))}else{let r=await a(er,el);e=e=>i(r,e),t={}}let{docProps:u}=t||{};return l?(r=u.styles,ez=u.head):(r=eO.styles(),eO.flush()),{bodyResult:e,documentElement:e=>(0,y.jsx)(ei,{...e,...u}),head:ez,headTags:[],styles:r}};null==(d=(0,eo.getTracer)().getRootSpanAttributes())||d.set("next.route",l.page);let e6=await (0,eo.getTracer)().trace(es.xj.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e9());if(!e6)return new eT(null,{metadata:v});let e5=new Set,e7=new Set;for(let e of eB){let t=E[e];t&&(e5.add(t.id),t.files.forEach(e=>{e7.add(e)}))}let te=ek.hybrid,{assetPrefix:tt,buildId:tr,customServer:tn,defaultLocale:to,disableOptimizedLoading:ts,domainLocales:ta,locale:ti,locales:tl,runtimeConfig:tu}=l,td={__NEXT_DATA__:{props:f,page:a,query:i,buildId:tr,assetPrefix:""===tt?void 0:tt,runtimeConfig:tu,nextExport:!0===e4||void 0,autoExport:!0===eP||void 0,isFallback:eu,isExperimentalCompile:ee,dynamicIds:0===e5.size?void 0:Array.from(e5),err:l.err?(p=l.err,w?(g="server",g=p[eJ]||"server",{name:p.name,source:g,message:eN()(p.message),stack:p.stack,digest:p.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!I||void 0,gssp:!!M||void 0,customServer:tn,gip:!!ex||void 0,appGip:!ey||void 0,locale:ti,locales:tl,defaultLocale:to,domainLocales:ta,isPreview:!0===m||void 0,notFoundSrcPage:em&&w?em:void 0},strictNextHead:l.strictNextHead,buildManifest:e2,docComponentsRendered:{},dangerousAsPath:eC.asPath,canonicalBase:!l.ampPath&&et(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:S,inAmpMode:eM,isDevelopment:!!w,hybridAmp:te,dynamicImports:Array.from(e7),assetPrefix:tt,unstable_runtimeJS:R.unstable_runtimeJS,unstable_JsPreload:R.unstable_JsPreload,assetQueryString:ea,scriptLoader:e$,locale:ti,disableOptimizedLoading:ts,head:e6.head,headTags:e6.headTags,styles:e6.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,optimizeFonts:l.optimizeFonts,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:K,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest},tc=(0,y.jsx)(L.Provider,{value:ek,children:(0,y.jsx)(Y.Provider,{value:td,children:e6.documentElement(td)})}),tp=await (0,eo.getTracer)().trace(es.xj.renderToString,async()=>eQ(tc)),[th,tf]=tp.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tm="";tp.startsWith(eG)||(tm+=eG),tm+=th,eM&&(tm+="<!-- __NEXT_DATA__ -->");let tg=await ep(ed(ec(tm),await e6.bodyResult(tf))),tv=await o(a,tg,l,{inAmpMode:eM,hybridAmp:te});return new eT(tv,{metadata:v})}let e1=(e,t,r,n,o)=>e0(e,t,r,n,o,o),e4=w().createContext(null);function e3(e){let t=(0,b.useContext)(e4);t&&t(e)}class e2 extends v{constructor(e){super(e),this.components=e.components}render(e,t,r){return e0(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e8={contexts:g},e9=e2})(),module.exports=n})();
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`)}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw 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 ${n.url}`)}else t=!1;if(f.pageProps=Object.assign({},f.pageProps,"props"in e?e.props:void 0),v.revalidate=t,v.pageData=f,v.isNotFound)return new eT(null,{metadata:v})}if(M&&(f[C.uY]=!0),M&&!em){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(es.xj.getServerSideProps,{spanName:`getServerSideProps ${a}`,attributes:{"next.route":a}},async()=>M({req:n,res:s,query:i,resolvedUrl:l.resolvedUrl,...eS?{params:D}:void 0,...!1!==h?{draftMode:!0,preview:!0,previewData:h}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale}))}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 Error(j.Lx);e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${a}`);if(e.unstable_redirect)throw Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${a}`);if(r.length)throw Error(eY("getServerSideProps",r));if("notFound"in e&&e.notFound){if("/404"===a)throw Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!');return v.isNotFound=!0,new eT(null,{metadata:v})}if("redirect"in e&&"object"==typeof e.redirect&&(eK(e.redirect,n,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:en(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),v.isRedirect=!0),t&&(e.props=await e.props),(w||ey)&&!N(a,"getServerSideProps",e.props))throw Error("invariant: getServerSideProps did not return valid props. Please report this.");f.pageProps=Object.assign({},f.pageProps,e.props),v.pageData=f}if(q&&!ev||v.isRedirect)return new eT(JSON.stringify(f),{metadata:v});if(em&&(f.pageProps={}),V(s)&&!ev)return new eT(null,{metadata:v});let e8=T;if(e_&&eS){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!J(e)?"/index"+e:"/"===e?"/index":B(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new X("Requested and resolved page mismatch: "+t+" "+n)}return t})(a).replace(/\\/g,"/")).startsWith("/index/")&&!J(e)?e.slice(6):"/index"!==e?e:"/";t in e8.pages&&(e8={...e8,pages:{...e8.pages,[t]:[...e8.pages[t],...e8.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:e8.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e9=({children:e})=>ez?e:(0,y.jsx)("div",{id:"__next",children:e}),e6=async()=>{let e,t,r;async function n(e){let t=async(t={})=>{if(e4.err&&$){e&&e(ea,eu);let t=await eQ((0,y.jsx)(e9,{children:(0,y.jsx)($,{error:e4.err})}));return{html:t,head:eB}}if(w&&(f.router||f.Component))throw Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props");let{App:r,Component:n}="function"==typeof t?{App:ea,Component:t(eu)}:{App:t.enhanceApp?t.enhanceApp(ea):ea,Component:t.enhanceComponent?t.enhanceComponent(eu):eu};if(e)return e(r,n).then(async e=>{await e.allReady;let t=await ep(e);return{html:t,head:eB}});let o=await eQ((0,y.jsx)(e9,{children:(0,y.jsx)(e1,{children:eX(r,n,{...f,router:eR})})}));return{html:o,head:eB}},r={...e4,renderPage:t},n=await Q(el,r);if(V(s)&&!ev)return null;if(!n||"string"!=typeof n.html){let e=`"${G(el)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`;throw Error(e)}return{docProps:n,documentCtx:r}}el[C.wU];let o=(e,t)=>{let r=e||ea,n=t||eu;return e4.err&&$?(0,y.jsx)(e9,{children:(0,y.jsx)($,{error:e4.err})}):(0,y.jsx)(e9,{children:(0,y.jsx)(e1,{children:eX(r,n,{...f,router:eR})})})},a=async(e,t)=>{let r=o(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(es.k0.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:P(),element:r})},i=(0,eo.getTracer)().wrap(es.xj.createBodyResult,(e,t)=>eh(e,{suffix:t,inlinedDataStream:void 0,isStaticGeneration:!0,getServerInsertedHTML:()=>eQ(e2()),serverInsertedHTMLToHead:!1,validateRootLayout:void 0})),l=!!el.getInitialProps;if(l){if(null===(t=await n(a)))return null;let{docProps:r}=t;e=e=>i(ec(r.html+e))}else{let r=await a(ea,eu);e=e=>i(r,e),t={}}let{docProps:u}=t||{};return l?(r=u.styles,eB=u.head):(r=ek.styles(),ek.flush()),{bodyResult:e,documentElement:e=>(0,y.jsx)(el,{...e,...u}),head:eB,headTags:[],styles:r}};null==(d=(0,eo.getTracer)().getRootSpanAttributes())||d.set("next.route",l.page);let e5=await (0,eo.getTracer)().trace(es.xj.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e6());if(!e5)return new eT(null,{metadata:v});let e7=new Set,te=new Set;for(let e of eW){let t=E[e];t&&(e7.add(t.id),t.files.forEach(e=>{te.add(e)}))}let tt=eM.hybrid,{assetPrefix:tr,buildId:tn,customServer:to,defaultLocale:ts,disableOptimizedLoading:ta,domainLocales:ti,locale:tl,locales:tu,runtimeConfig:td}=l,tc={__NEXT_DATA__:{props:f,page:a,query:i,buildId:tn,assetPrefix:""===tr?void 0:tr,runtimeConfig:td,nextExport:!0===e3||void 0,autoExport:!0===e_||void 0,isFallback:em,isExperimentalCompile:ee,dynamicIds:0===e7.size?void 0:Array.from(e7),err:l.err?(p=l.err,w?(g="server",g=p[eJ]||"server",{name:p.name,source:g,message:eN()(p.message),stack:p.stack,digest:p.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!I||void 0,gssp:!!M||void 0,customServer:to,gip:!!eb||void 0,appGip:!ex||void 0,locale:tl,locales:tu,defaultLocale:ts,domainLocales:ti,isPreview:!0===m||void 0,notFoundSrcPage:eg&&w?eg:void 0},strictNextHead:l.strictNextHead,buildManifest:e8,docComponentsRendered:{},dangerousAsPath:eR.asPath,canonicalBase:!l.ampPath&&et(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:S,inAmpMode:ez,isDevelopment:!!w,hybridAmp:tt,dynamicImports:Array.from(te),assetPrefix:tr,unstable_runtimeJS:R.unstable_runtimeJS,unstable_JsPreload:R.unstable_JsPreload,assetQueryString:ei,scriptLoader:eO,locale:tl,disableOptimizedLoading:ta,head:e5.head,headTags:e5.headTags,styles:e5.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,optimizeFonts:l.optimizeFonts,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:K,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest},tp=(0,y.jsx)(L.Provider,{value:eM,children:(0,y.jsx)(Y.Provider,{value:tc,children:e5.documentElement(tc)})}),th=await (0,eo.getTracer)().trace(es.xj.renderToString,async()=>eQ(tp)),[tf,tm]=th.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tg="";th.startsWith(eG)||(tg+=eG),tg+=tf,ez&&(tg+="<!-- __NEXT_DATA__ -->");let tv=await ep(ed(ec(tg),await e5.bodyResult(tm))),ty=await o(a,tv,l,{inAmpMode:ez,hybridAmp:tt});return new eT(ty,{metadata:v})}let e1=(e,t,r,n,o)=>e0(e,t,r,n,o,o),e4=w().createContext(null);function e3(e){let t=(0,b.useContext)(e4);t&&t(e)}class e2 extends v{constructor(e){super(e),this.components=e.components}render(e,t,r){return e0(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e8={contexts:g},e9=e2})(),module.exports=n})();
//# sourceMappingURL=pages.runtime.prod.js.map
\ No newline at end of file
Diff for server.runtime.prod.js
Diff too large to display
Actually I'm not sure this change is safe, since if a CDN isn't present in front of Next.js then the client may unexpectedly consume this header instead causing unexpected behavior. We should confirm this first before changing |
@ijjk do you have suggestion how to test it? was checked running production build locally, there seems no difference. as for case with CDN, tested in Cloudfront, it allows Cloudfront to serve |
Was just double checking through https://datatracker.ietf.org/doc/html/rfc5861#section-3.1 and this may be fine. If a user does have a CDN in front of Next.js (most likely) then their CDN will dictate the behavior and then if there isn't a CDN then Also was reminded a previous PR we decided this was acceptable that failed to land #52251 |
thanks for the confirmation @ijjk ! |
hi @ijjk,
|
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.
@adrianha what do you think about putting this change behind an experimental flag and leaving the default to false
so that we avoid any breaking/test changes being needed by default and those who need it can opt-in?
do you mean adding new option to define swr on ISR pages @ijjk ? ex: |
No I mean an experimental config in |
hi @ijjk, just added |
61de029
to
2fefae4
Compare
Closes: #52251
Closes: #51823
Adding a feature
Added
stale-while-revalidate
delta amount to indicate that the cache could reuse a stale response while it revalidates, reference. It's also already supported by CloudFront.