next.js
next.js copied to clipboard
fix: set swr delta
Closes: https://github.com/vercel/next.js/pull/52251 Closes: https://github.com/vercel/next.js/issues/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.
hi @wyattjoh, could you please help to review this PR? let me know what you think 🙏
Allow CI Workflow Run
- [x] approve CI run for commit: 4b91b9fdd86f0539852856128cf17d0b0c9196d2
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer
got it, updated the swr value for ISR to 1 year, cc @shuding @ijjk
Tests Passed
Stats from current PR
Default Build (Increase detected ⚠️)
General Overall increase ⚠️
| vercel/next.js canary | adrianha/next.js set-swr-delta | Change | |
|---|---|---|---|
| buildDuration | 14.2s | 14.2s | N/A |
| buildDurationCached | 7.4s | 7.9s | ⚠️ +456ms |
| nodeModulesSize | 196 MB | 197 MB | ⚠️ +13.5 kB |
| 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 | ⚠️ +313 B |
| Overall change | 104 kB | 104 kB | ⚠️ +313 B |
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 STALE content while it revalidated in the background thus response RefreshHit, previously the response were only Hit or Miss
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 s-maxage will be ignored and then the client will be able to fallback to stale-while-revalidate behavior if supported which should match most CDN's handling
Also was reminded a previous PR we decided this was acceptable that failed to land https://github.com/vercel/next.js/pull/52251
thanks for the confirmation @ijjk !
reverted /gssp test value as swr is not defined https://github.com/vercel/next.js/blob/canary/test/production/standalone-mode/required-server-files/pages/gssp.js#L8 @ijjk
could you help to re-run the CI checks @ijjk ? also not sure why its failing on prefetch test
Yeah triggered run, I think the prefetch failure is due to the browser having the additional caching now which the test assumes it doesn't
its failed to set up the runner now
hi @ijjk , just adjusted some tests on prefetching, could you help to re-run the tests? changes on #61794 looks like related with rsc payload that impacting the tests
hi @ijjk,
- just removed
rsctest case on this commit, due to changes on #61794 and #61235 that removesnext-urlchanges that was added on #52746, kindly help to confirm if this removal is expected - also want to confirm if https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/router-reducer/fetch-server-response.ts#L86 should be removed? referring to
NEXT_URLremoval on https://github.com/vercel/next.js/pull/61794/files#diff-90d1d5f446bdf243be25cc4ea2295a9c91508859d655e51d5ec4a3562d3a24d9R1105
do you mean adding new option to define swr on ISR pages @ijjk ?
ex: { revalidate: 600, staleWhileRevalidate: 6000, }
No I mean an experimental config in next.config.js like exposeSwrDelta, that toggles it being set or not and it's defaulted to false which is the current behavior.
hi @ijjk, just added swrDelta option to next.config.js for specifying stale-while-revalidate delta amount