Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: make locales array immutable #74037

Merged
merged 1 commit into from
Dec 17, 2024
Merged

Conversation

wyattjoh
Copy link
Member

@wyattjoh wyattjoh commented Dec 17, 2024

To improve memory efficiency, this marks all the locale arrays as readonly. This ensures that there's no undefined behaviour from accidentally mutating the array, and allows us to use the locales array as a stable reference for a future optimization PR.

@ijjk ijjk added created-by: Next.js team PRs by the Next.js team. type: next labels Dec 17, 2024
Copy link
Member Author

wyattjoh commented Dec 17, 2024

This stack of pull requests is managed by Graphite. Learn more about stacking.

@wyattjoh wyattjoh marked this pull request as ready for review December 17, 2024 18:51
@ijjk
Copy link
Member

ijjk commented Dec 17, 2024

Stats from current PR

Default Build
General Overall increase ⚠️
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
buildDuration 17.2s 15.6s N/A
buildDurationCached 14.7s 12.5s N/A
nodeModulesSize 410 MB 410 MB ⚠️ +10 kB
nextStartRea..uration (ms) 469ms 473ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
1187-HASH.js gzip 51.4 kB 51.4 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.36 kB 5.36 kB N/A
bccd1874-HASH.js gzip 53 kB 53 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 232 B 235 B N/A
main-HASH.js gzip 34.1 kB 34 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.49 kB 4.49 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.34 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
_buildManifest.js gzip 749 B 746 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
index.html gzip 524 B 523 B N/A
link.html gzip 539 B 537 B N/A
withRouter.html gzip 520 B 519 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 204 kB 204 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
middleware-b..fest.js gzip 670 B 667 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.2 kB 31.2 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
523-experime...dev.js gzip 322 B 322 B
523.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 324 kB 324 kB N/A
app-page-exp..prod.js gzip 128 kB 128 kB
app-page-tur..prod.js gzip 141 kB 141 kB
app-page-tur..prod.js gzip 136 kB 136 kB
app-page.run...dev.js gzip 314 kB 314 kB N/A
app-page.run..prod.js gzip 124 kB 124 kB
app-route-ex...dev.js gzip 37.4 kB 37.4 kB
app-route-ex..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.3 kB 25.3 kB
app-route.ru...dev.js gzip 39 kB 39 kB
app-route.ru..prod.js gzip 25.3 kB 25.3 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.7 kB 21.7 kB N/A
pages.runtim...dev.js gzip 27.4 kB 27.4 kB N/A
pages.runtim..prod.js gzip 21.7 kB 21.7 kB N/A
server.runti..prod.js gzip 916 kB 916 kB N/A
Overall change 737 kB 737 kB
build cache
vercel/next.js canary vercel/next.js refactor/readonly-locales Change
0.pack gzip 2.08 MB 2.08 MB N/A
index.pack gzip 74.3 kB 73.8 kB N/A
Overall change 0 B 0 B
Diff details
Diff for edge-ssr.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for pages-turbo...time.prod.js
@@ -22,11 +22,11 @@ Read more: https://nextjs.org/docs/messages/${r}`};function e1(e,t,r){let{destin
 `+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1})}async function e4(n,a,s,i,l,u){var d,c;let p,h,m,f;(0,b.C4)({req:n},"cookies",(d=n.headers,function(){let{cookie:e}=d;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let g={};if(g.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!g.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(g.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(g.assetQueryString+=`${g.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:y,dev:_=!1,ampPath:x="",pageConfig:w={},buildManifest:P,reactLoadableManifest:C,ErrorDebug:j,getStaticProps:T,getStaticPaths:A,getServerSideProps:I,isNextDataRequest:k,params:M,previewProps:z,basePath:X,images:U,runtime:Y,isExperimentalCompile:K,expireTime:et}=l,{App:er}=u,es=g.assetQueryString,ei=u.Document,el=l.Component,eu=!!i.__nextFallback,ep=i.__nextNotFoundSrcPage;!function(e){for(let t of eD)delete e[t]}(i);let eh=!!T,em=eh&&l.nextExport,ef=er.getInitialProps===er.origGetInitialProps,eg=!!(null==el?void 0:el.getInitialProps),ev=null==el?void 0:el.unstable_scriptLoader,eb=W(s),ey="/_error"===s&&el.getInitialProps===el.origGetInitialProps;l.nextExport&&eg&&!ey&&t(`Detected getInitialProps on page '${s}' 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_=!eg&&ef&&!eh&&!I;if(e_&&!_&&K&&(a.setHeader("Cache-Control",function({revalidate:e,expireTime:t}){let r="number"==typeof e&&void 0!==t?e>=t?"":`stale-while-revalidate=${t-e}`:"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=${S.qF}, ${r}`}({revalidate:!1,expireTime:et})),e_=!1),eg&&eh)throw Object.defineProperty(Error(S.iS+` ${s}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1});if(eg&&I)throw Object.defineProperty(Error(S.bX+` ${s}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1});if(I&&eh)throw Object.defineProperty(Error(S.g0+` ${s}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1});if(I&&"export"===l.nextConfigOutput)throw Object.defineProperty(Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E369",enumerable:!1});if(A&&!eb)throw Object.defineProperty(Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${s}'.
 Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`),"__NEXT_ERROR_CODE",{value:"E187",enumerable:!1});if(A&&!eh)throw Object.defineProperty(Error(`getStaticPaths was added without a getStaticProps in ${s}. Without getStaticProps, getStaticPaths does nothing`),"__NEXT_ERROR_CODE",{value:"E447",enumerable:!1});if(eh&&eb&&!A)throw Object.defineProperty(Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${s}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1});let ex=l.resolvedAsPath||n.url;if(_){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Object.defineProperty(Error(`The default export is not a React Component in page: "${s}"`),"__NEXT_ERROR_CODE",{value:"E286",enumerable:!1});if(!e(er))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_app"'),"__NEXT_ERROR_CODE",{value:"E464",enumerable:!1});if(!e(ei))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_document"'),"__NEXT_ERROR_CODE",{value:"E511",enumerable:!1});if((e_||eu)&&(i={...i.amp?{amp:i.amp}:{}},ex=`${s}${n.url.endsWith("/")&&"/"!==s&&!eb?"/":""}`,n.url=s),"/404"===s&&(eg||I))throw Object.defineProperty(Error(`\`pages/404\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E134",enumerable:!1});if(O.includes(s)&&(eg||I))throw Object.defineProperty(Error(`\`pages${s}\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E125",enumerable:!1})}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Object.defineProperty(Error(`page ${s} ${e} ${S.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1});await F.preloadAll(),(eh||I)&&!eu&&z&&(m=!1!==(p=e(n,a,z,!!l.multiZoneDraftMode)));let eE=new eY(s,i,ex,{isFallback:eu},!!(I||eg||!ef&&!eh||K),X,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,ee(n,"isLocaleDomain")),eR={back(){eE.back()},forward(){eE.forward()},refresh(){eE.reload()},hmrRefresh(){},push(e,t){let{scroll:r}=void 0===t?{}:t;eE.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eE.replace(e,void 0,{scroll:r})},prefetch(e){eE.prefetch(e)}},eS={},ew=(0,R.createStyleRegistry)(),eO={ampFirst:!0===w.amp,hasQuery:!!i.amp,hybrid:"hybrid"===w.amp},eP=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eO),eC=function(e){void 0===e&&(e=!1);let t=[/*#__PURE__*/(0,v.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push(/*#__PURE__*/(0,v.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}(eP),eN=[],eA={};ev&&(eA.beforeInteractive=[].concat(ev()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let ek=({children:e})=>/*#__PURE__*/(0,v.jsx)(eH.Provider,{value:eR,children:/*#__PURE__*/(0,v.jsx)(eL.Provider,{value:eE.isReady&&eE.query?new URL(eE.asPath,"http://n").searchParams:new URLSearchParams,children:/*#__PURE__*/(0,v.jsx)(eB,{router:eE,isAutoExport:e_,children:/*#__PURE__*/(0,v.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ec(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=q.find(t=>e.startsWith(t)),o=e.match(eX);if(t&&o){let{key:e,optional:a,repeat:s}=eF(o[1]);return r[e]={pos:n++,repeat:s,optional:a},"/"+ez(t)+"([^/]+?)"}if(!o)return"/"+ez(e);{let{key:e,repeat:t,optional:a}=eF(o[1]);return r[e]={pos:n++,repeat:t,optional:a},t?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname).groups))t[r]=e.query[r];return t}(eE),children:/*#__PURE__*/(0,v.jsx)(B.Provider,{value:eE,children:/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(D.Provider,{value:{updateHead:e=>{eC=e},updateScripts:e=>{eS=e},scripts:eA,mountedInstances:new Set},children:/*#__PURE__*/(0,v.jsx)(L.Provider,{value:e=>eN.push(e),children:/*#__PURE__*/(0,v.jsx)(R.StyleRegistry,{registry:ew,children:/*#__PURE__*/(0,v.jsx)(eT.Provider,{value:U,children:e})})})})})})})})})}),eM=()=>null,eq=({children:e})=>/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[/*#__PURE__*/(0,v.jsx)(eM,{}),/*#__PURE__*/(0,v.jsx)(ek,{children:/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[_?/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[e,/*#__PURE__*/(0,v.jsx)(eM,{})]}):e,/*#__PURE__*/(0,v.jsx)(eM,{})]})})]}),eU={err:y,req:e_?void 0:n,res:e_?void 0:a,pathname:s,query:i,asPath:ex,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>/*#__PURE__*/(0,v.jsx)(eq,{children:eK(er,el,{...e,router:eE})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>/*#__PURE__*/(0,v.jsx)(e,{...t})}),o=ew.styles({nonce:t.nonce});return ew.flush(),{html:r,head:n,styles:o}}},eW=!eh&&(l.nextExport||_&&(e_||eu)),eG=()=>{let e=ew.styles();return ew.flush(),/*#__PURE__*/(0,v.jsx)(v.Fragment,{children:e})};if(h=await J(er,{AppTree:eU.AppTree,Component:el,router:eE,ctx:eU}),(eh||I)&&m&&(h.__N_PREVIEW=!0),eh&&(h.__N_SSG=!0),eh&&!eu){let e,t;try{e=await (0,eo.getTracer)().trace(ea.vr.getStaticProps,{spanName:`getStaticProps ${s}`,attributes:{"next.route":s}},()=>T({...eb?{params:M}:void 0,...m?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale,revalidateReason:l.isOnDemandRevalidate?"on-demand":em?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(S.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(e1(e.redirect,n,"getStaticProps"),em)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1});let ex=l.resolvedAsPath||n.url;if(_){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Object.defineProperty(Error(`The default export is not a React Component in page: "${s}"`),"__NEXT_ERROR_CODE",{value:"E286",enumerable:!1});if(!e(er))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_app"'),"__NEXT_ERROR_CODE",{value:"E464",enumerable:!1});if(!e(ei))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_document"'),"__NEXT_ERROR_CODE",{value:"E511",enumerable:!1});if((e_||eu)&&(i={...i.amp?{amp:i.amp}:{}},ex=`${s}${n.url.endsWith("/")&&"/"!==s&&!eb?"/":""}`,n.url=s),"/404"===s&&(eg||I))throw Object.defineProperty(Error(`\`pages/404\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E134",enumerable:!1});if(O.includes(s)&&(eg||I))throw Object.defineProperty(Error(`\`pages${s}\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E125",enumerable:!1})}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Object.defineProperty(Error(`page ${s} ${e} ${S.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1});await F.preloadAll(),(eh||I)&&!eu&&z&&(m=!1!==(p=e(n,a,z,!!l.multiZoneDraftMode)));let eE=new eY(s,i,ex,{isFallback:eu},!!(I||eg||!ef&&!eh||K),X,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,ee(n,"isLocaleDomain")),eR={back(){eE.back()},forward(){eE.forward()},refresh(){eE.reload()},hmrRefresh(){},push(e,t){let{scroll:r}=void 0===t?{}:t;eE.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eE.replace(e,void 0,{scroll:r})},prefetch(e){eE.prefetch(e)}},eS={},ew=(0,R.createStyleRegistry)(),eO={ampFirst:!0===w.amp,hasQuery:!!i.amp,hybrid:"hybrid"===w.amp},eP=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eO),eC=function(e){void 0===e&&(e=!1);let t=[/*#__PURE__*/(0,v.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push(/*#__PURE__*/(0,v.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}(eP),eN=[],eA={};ev&&(eA.beforeInteractive=[].concat(ev()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let ek=({children:e})=>/*#__PURE__*/(0,v.jsx)(eH.Provider,{value:eR,children:/*#__PURE__*/(0,v.jsx)(eL.Provider,{value:eE.isReady&&eE.query?new URL(eE.asPath,"http://n").searchParams:new URLSearchParams,children:/*#__PURE__*/(0,v.jsx)(eB,{router:eE,isAutoExport:e_,children:/*#__PURE__*/(0,v.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ec(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=q.find(t=>e.startsWith(t)),o=e.match(eX);if(t&&o){let{key:e,optional:a,repeat:s}=eF(o[1]);return r[e]={pos:n++,repeat:s,optional:a},"/"+ez(t)+"([^/]+?)"}if(!o)return"/"+ez(e);{let{key:e,repeat:t,optional:a}=eF(o[1]);return r[e]={pos:n++,repeat:t,optional:a},t?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname).groups))t[r]=e.query[r];return t}(eE),children:/*#__PURE__*/(0,v.jsx)(B.Provider,{value:eE,children:/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(D.Provider,{value:{updateHead:e=>{eC=e},updateScripts:e=>{eS=e},scripts:eA,mountedInstances:new Set},children:/*#__PURE__*/(0,v.jsx)(L.Provider,{value:e=>eN.push(e),children:/*#__PURE__*/(0,v.jsx)(R.StyleRegistry,{registry:ew,children:/*#__PURE__*/(0,v.jsx)(eT.Provider,{value:U,children:e})})})})})})})})})}),eM=()=>null,eq=({children:e})=>/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[/*#__PURE__*/(0,v.jsx)(eM,{}),/*#__PURE__*/(0,v.jsx)(ek,{children:/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[_?/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[e,/*#__PURE__*/(0,v.jsx)(eM,{})]}):e,/*#__PURE__*/(0,v.jsx)(eM,{})]})})]}),eU={err:y,req:e_?void 0:n,res:e_?void 0:a,pathname:s,query:i,asPath:ex,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>/*#__PURE__*/(0,v.jsx)(eq,{children:eK(er,el,{...e,router:eE})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>/*#__PURE__*/(0,v.jsx)(e,{...t})}),o=ew.styles({nonce:t.nonce});return ew.flush(),{html:r,head:n,styles:o}}},eW=!eh&&(l.nextExport||_&&(e_||eu)),eG=()=>{let e=ew.styles();return ew.flush(),/*#__PURE__*/(0,v.jsx)(v.Fragment,{children:e})};if(h=await J(er,{AppTree:eU.AppTree,Component:el,router:eE,ctx:eU}),(eh||I)&&m&&(h.__N_PREVIEW=!0),eh&&(h.__N_SSG=!0),eh&&!eu){let e,t;try{e=await (0,eo.getTracer)().trace(ea.vr.getStaticProps,{spanName:`getStaticProps ${s}`,attributes:{"next.route":s}},()=>T({...eb?{params:M}:void 0,...m?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:[...l.locales??[]],locale:l.locale,defaultLocale:l.defaultLocale,revalidateReason:l.isOnDemandRevalidate?"on-demand":em?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(S.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(e1(e.redirect,n,"getStaticProps"),em)throw Object.defineProperty(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`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1});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),g.isRedirect=!0}if((_||em)&&!g.isNotFound&&!N(s,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1});if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1});if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${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\`.`),"__NEXT_ERROR_CODE",{value:"E311",enumerable:!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 Object.defineProperty(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.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1})}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${n.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.revalidate=t,g.pageData=h,g.isNotFound)return new ej(null,{metadata:g})}if(I&&(h.__N_SSP=!0),I&&!eu){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(ea.vr.getServerSideProps,{spanName:`getServerSideProps ${s}`,attributes:{"next.route":s}},async()=>I({req:n,res:a,query:i,resolvedUrl:l.resolvedUrl,...eb?{params:M}:void 0,...!1!==p?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale})),g.revalidate=0}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});return g.isNotFound=!0,new ej(null,{metadata:g})}if("redirect"in e&&"object"==typeof e.redirect&&(e1(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),g.isRedirect=!0),t&&(e.props=await e.props),(_||em)&&!N(s,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(k&&!eh||g.isRedirect)return new ej(JSON.stringify(h),{metadata:g});if(eu&&(h.pageProps={}),V(a)&&!eh)return new ej(null,{metadata:g});let eQ=P;if(e_&&eb){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!W(e)?"/index"+e:"/"===e?"/index":H(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new Q("Requested and resolved page mismatch: "+t+" "+n)}return t})(s).replace(/\\/g,"/")).startsWith("/index/")&&!W(e)?e.slice(6):"/index"!==e?e:"/";t in eQ.pages&&(eQ={...eQ,pages:{...eQ.pages,[t]:[...eQ.pages[t],...eQ.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eQ.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e4=({children:e})=>eP?e:/*#__PURE__*/(0,v.jsx)("div",{id:"__next",children:e}),e2=async()=>{let e,t;async function r(e){let t=async(t={})=>{if(eU.err&&j)return e&&e(er,el),{html:await eZ(/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})})),head:eC};if(_&&(h.router||h.Component))throw Object.defineProperty(Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props"),"__NEXT_ERROR_CODE",{value:"E230",enumerable:!1});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},o=await e(r,n);return await o.allReady,{html:await ed(o),head:eC}},r={...eU,renderPage:t},n=await J(ei,r);if(V(a)&&!eh)return null;if(!n||"string"!=typeof n.html)throw Object.defineProperty(Error(`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});return{docProps:n,documentCtx:r}}ei.__NEXT_BUILTIN_DOCUMENT__;let n=(e,t)=>{let r=e||er,n=t||el;return eU.err&&j?/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})}):/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(eq,{children:eK(r,n,{...h,router:eE})})})},o=async(e,t)=>{let r=n(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(ea.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:E(),element:r})},s=!!ei.getInitialProps,[i,l]=await Promise.all([eZ(eG()),(async()=>{if(s){if(null===(e=await r(o)))return null;let{docProps:t}=e;return t.html}{e={};let t=await o(er,el);return await t.allReady,ed(t)}})()]);if(null===l)return null;let{docProps:u}=e||{};return s?(t=u.styles,eC=u.head):(t=ew.styles(),ew.flush()),{contentHTML:i+l,documentElement:e=>/*#__PURE__*/(0,v.jsx)(ei,{...e,...u}),head:eC,headTags:[],styles:t}};(0,eo.getTracer)().setRootSpanAttribute("next.route",l.page);let e3=await (0,eo.getTracer)().trace(ea.vr.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e2());if(!e3)return new ej(null,{metadata:g});let e9=new Set,e8=new Set;for(let e of eN){let t=C[e];t&&(e9.add(t.id),t.files.forEach(e=>{e8.add(e)}))}let e6=eO.hybrid,{assetPrefix:e5,buildId:e7,customServer:te,defaultLocale:tt,disableOptimizedLoading:tr,domainLocales:tn,locale:to,locales:ta,runtimeConfig:ts}=l,ti={__NEXT_DATA__:{props:h,page:s,query:i,buildId:e7,assetPrefix:""===e5?void 0:e5,runtimeConfig:ts,nextExport:!0===eW||void 0,autoExport:!0===e_||void 0,isFallback:eu,isExperimentalCompile:K,dynamicIds:0===e9.size?void 0:Array.from(e9),err:l.err?(c=l.err,_?(f="server",f=c[eV]||"server",{name:c.name,source:f,message:e$()(c.message),stack:c.stack,digest:c.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!T||void 0,gssp:!!I||void 0,customServer:te,gip:!!eg||void 0,appGip:!ef||void 0,locale:to,locales:ta,defaultLocale:tt,domainLocales:tn,isPreview:!0===m||void 0,notFoundSrcPage:ep&&_?ep:void 0},strictNextHead:l.strictNextHead,buildManifest:eQ,docComponentsRendered:{},dangerousAsPath:eE.asPath,canonicalBase:!l.ampPath&&ee(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:x,inAmpMode:eP,isDevelopment:!!_,hybridAmp:e6,dynamicImports:Array.from(e8),dynamicCssManifest:new Set(l.dynamicCssManifest||[]),assetPrefix:e5,unstable_runtimeJS:w.unstable_runtimeJS,unstable_JsPreload:w.unstable_JsPreload,assetQueryString:es,scriptLoader:eS,locale:to,disableOptimizedLoading:tr,head:e3.head,headTags:e3.headTags,styles:e3.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:Y,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest,experimentalClientTraceMetadata:l.experimental.clientTraceMetadata},tl=/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(Z.Provider,{value:ti,children:e3.documentElement(ti)})}),tu=await (0,eo.getTracer)().trace(ea.vr.renderToString,async()=>eZ(tl)),[td,tc]=tu.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tp="";tu.startsWith(eJ)||(tp+=eJ),tp+=td,eP&&(tp+="\x3c!-- __NEXT_DATA__ --\x3e");let th=tp+e3.contentHTML+tc;return new ej(await o(s,th,l,{inAmpMode:eP,hybridAmp:e6}),{metadata:g})}let e2=(e,t,r,n,o)=>e4(e,t,r,n,o,o),e3=/*#__PURE__*/_().createContext(null);function e9(e){let t=(0,y.useContext)(e3);t&&t(e)}class e8 extends g{constructor(e){super(e),this.components=e.components}render(e,t,r){return e4(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e6={contexts:f},e5=e8})(),module.exports=n})();
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1})}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${n.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.revalidate=t,g.pageData=h,g.isNotFound)return new ej(null,{metadata:g})}if(I&&(h.__N_SSP=!0),I&&!eu){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(ea.vr.getServerSideProps,{spanName:`getServerSideProps ${s}`,attributes:{"next.route":s}},async()=>I({req:n,res:a,query:i,resolvedUrl:l.resolvedUrl,...eb?{params:M}:void 0,...!1!==p?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:[...l.locales??[]],locale:l.locale,defaultLocale:l.defaultLocale})),g.revalidate=0}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});return g.isNotFound=!0,new ej(null,{metadata:g})}if("redirect"in e&&"object"==typeof e.redirect&&(e1(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),g.isRedirect=!0),t&&(e.props=await e.props),(_||em)&&!N(s,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(k&&!eh||g.isRedirect)return new ej(JSON.stringify(h),{metadata:g});if(eu&&(h.pageProps={}),V(a)&&!eh)return new ej(null,{metadata:g});let eQ=P;if(e_&&eb){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!W(e)?"/index"+e:"/"===e?"/index":H(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new Q("Requested and resolved page mismatch: "+t+" "+n)}return t})(s).replace(/\\/g,"/")).startsWith("/index/")&&!W(e)?e.slice(6):"/index"!==e?e:"/";t in eQ.pages&&(eQ={...eQ,pages:{...eQ.pages,[t]:[...eQ.pages[t],...eQ.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eQ.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e4=({children:e})=>eP?e:/*#__PURE__*/(0,v.jsx)("div",{id:"__next",children:e}),e2=async()=>{let e,t;async function r(e){let t=async(t={})=>{if(eU.err&&j)return e&&e(er,el),{html:await eZ(/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})})),head:eC};if(_&&(h.router||h.Component))throw Object.defineProperty(Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props"),"__NEXT_ERROR_CODE",{value:"E230",enumerable:!1});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},o=await e(r,n);return await o.allReady,{html:await ed(o),head:eC}},r={...eU,renderPage:t},n=await J(ei,r);if(V(a)&&!eh)return null;if(!n||"string"!=typeof n.html)throw Object.defineProperty(Error(`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});return{docProps:n,documentCtx:r}}ei.__NEXT_BUILTIN_DOCUMENT__;let n=(e,t)=>{let r=e||er,n=t||el;return eU.err&&j?/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})}):/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(eq,{children:eK(r,n,{...h,router:eE})})})},o=async(e,t)=>{let r=n(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(ea.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:E(),element:r})},s=!!ei.getInitialProps,[i,l]=await Promise.all([eZ(eG()),(async()=>{if(s){if(null===(e=await r(o)))return null;let{docProps:t}=e;return t.html}{e={};let t=await o(er,el);return await t.allReady,ed(t)}})()]);if(null===l)return null;let{docProps:u}=e||{};return s?(t=u.styles,eC=u.head):(t=ew.styles(),ew.flush()),{contentHTML:i+l,documentElement:e=>/*#__PURE__*/(0,v.jsx)(ei,{...e,...u}),head:eC,headTags:[],styles:t}};(0,eo.getTracer)().setRootSpanAttribute("next.route",l.page);let e3=await (0,eo.getTracer)().trace(ea.vr.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e2());if(!e3)return new ej(null,{metadata:g});let e9=new Set,e8=new Set;for(let e of eN){let t=C[e];t&&(e9.add(t.id),t.files.forEach(e=>{e8.add(e)}))}let e6=eO.hybrid,{assetPrefix:e5,buildId:e7,customServer:te,defaultLocale:tt,disableOptimizedLoading:tr,domainLocales:tn,locale:to,locales:ta,runtimeConfig:ts}=l,ti={__NEXT_DATA__:{props:h,page:s,query:i,buildId:e7,assetPrefix:""===e5?void 0:e5,runtimeConfig:ts,nextExport:!0===eW||void 0,autoExport:!0===e_||void 0,isFallback:eu,isExperimentalCompile:K,dynamicIds:0===e9.size?void 0:Array.from(e9),err:l.err?(c=l.err,_?(f="server",f=c[eV]||"server",{name:c.name,source:f,message:e$()(c.message),stack:c.stack,digest:c.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!T||void 0,gssp:!!I||void 0,customServer:te,gip:!!eg||void 0,appGip:!ef||void 0,locale:to,locales:ta,defaultLocale:tt,domainLocales:tn,isPreview:!0===m||void 0,notFoundSrcPage:ep&&_?ep:void 0},strictNextHead:l.strictNextHead,buildManifest:eQ,docComponentsRendered:{},dangerousAsPath:eE.asPath,canonicalBase:!l.ampPath&&ee(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:x,inAmpMode:eP,isDevelopment:!!_,hybridAmp:e6,dynamicImports:Array.from(e8),dynamicCssManifest:new Set(l.dynamicCssManifest||[]),assetPrefix:e5,unstable_runtimeJS:w.unstable_runtimeJS,unstable_JsPreload:w.unstable_JsPreload,assetQueryString:es,scriptLoader:eS,locale:to,disableOptimizedLoading:tr,head:e3.head,headTags:e3.headTags,styles:e3.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:Y,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest,experimentalClientTraceMetadata:l.experimental.clientTraceMetadata},tl=/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(Z.Provider,{value:ti,children:e3.documentElement(ti)})}),tu=await (0,eo.getTracer)().trace(ea.vr.renderToString,async()=>eZ(tl)),[td,tc]=tu.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tp="";tu.startsWith(eJ)||(tp+=eJ),tp+=td,eP&&(tp+="\x3c!-- __NEXT_DATA__ --\x3e");let th=tp+e3.contentHTML+tc;return new ej(await o(s,th,l,{inAmpMode:eP,hybridAmp:e6}),{metadata:g})}let e2=(e,t,r,n,o)=>e4(e,t,r,n,o,o),e3=/*#__PURE__*/_().createContext(null);function e9(e){let t=(0,y.useContext)(e3);t&&t(e)}class e8 extends g{constructor(e){super(e),this.components=e.components}render(e,t,r){return e4(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e6={contexts:f},e5=e8})(),module.exports=n})();
 //# sourceMappingURL=pages-turbo.runtime.prod.js.map
\ No newline at end of file
Diff for pages.runtime.dev.js

Diff too large to display

Diff for pages.runtime.prod.js
@@ -22,11 +22,11 @@ Read more: https://nextjs.org/docs/messages/${r}`};function e1(e,t,r){let{destin
 `+i.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1})}async function e4(n,a,s,i,l,u){var d,c;let p,h,m,f;(0,b.C4)({req:n},"cookies",(d=n.headers,function(){let{cookie:e}=d;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)}));let g={};if(g.assetQueryString=l.dev&&l.assetQueryString||"",l.dev&&!g.assetQueryString){let e=(n.headers["user-agent"]||"").toLowerCase();e.includes("safari")&&!e.includes("chrome")&&(g.assetQueryString=`?ts=${Date.now()}`)}l.deploymentId&&(g.assetQueryString+=`${g.assetQueryString?"&":"?"}dpl=${l.deploymentId}`),i=Object.assign({},i);let{err:y,dev:_=!1,ampPath:x="",pageConfig:w={},buildManifest:P,reactLoadableManifest:C,ErrorDebug:j,getStaticProps:T,getStaticPaths:A,getServerSideProps:I,isNextDataRequest:k,params:M,previewProps:z,basePath:X,images:U,runtime:Y,isExperimentalCompile:K,expireTime:et}=l,{App:er}=u,es=g.assetQueryString,ei=u.Document,el=l.Component,eu=!!i.__nextFallback,ep=i.__nextNotFoundSrcPage;!function(e){for(let t of eD)delete e[t]}(i);let eh=!!T,em=eh&&l.nextExport,ef=er.getInitialProps===er.origGetInitialProps,eg=!!(null==el?void 0:el.getInitialProps),ev=null==el?void 0:el.unstable_scriptLoader,eb=W(s),ey="/_error"===s&&el.getInitialProps===el.origGetInitialProps;l.nextExport&&eg&&!ey&&t(`Detected getInitialProps on page '${s}' 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_=!eg&&ef&&!eh&&!I;if(e_&&!_&&K&&(a.setHeader("Cache-Control",function({revalidate:e,expireTime:t}){let r="number"==typeof e&&void 0!==t?e>=t?"":`stale-while-revalidate=${t-e}`:"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=${S.qF}, ${r}`}({revalidate:!1,expireTime:et})),e_=!1),eg&&eh)throw Object.defineProperty(Error(S.iS+` ${s}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1});if(eg&&I)throw Object.defineProperty(Error(S.bX+` ${s}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1});if(I&&eh)throw Object.defineProperty(Error(S.g0+` ${s}`),"__NEXT_ERROR_CODE",{value:"E262",enumerable:!1});if(I&&"export"===l.nextConfigOutput)throw Object.defineProperty(Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E369",enumerable:!1});if(A&&!eb)throw Object.defineProperty(Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${s}'.
 Read more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`),"__NEXT_ERROR_CODE",{value:"E187",enumerable:!1});if(A&&!eh)throw Object.defineProperty(Error(`getStaticPaths was added without a getStaticProps in ${s}. Without getStaticProps, getStaticPaths does nothing`),"__NEXT_ERROR_CODE",{value:"E447",enumerable:!1});if(eh&&eb&&!A)throw Object.defineProperty(Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${s}'.
-Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1});let ex=l.resolvedAsPath||n.url;if(_){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Object.defineProperty(Error(`The default export is not a React Component in page: "${s}"`),"__NEXT_ERROR_CODE",{value:"E286",enumerable:!1});if(!e(er))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_app"'),"__NEXT_ERROR_CODE",{value:"E464",enumerable:!1});if(!e(ei))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_document"'),"__NEXT_ERROR_CODE",{value:"E511",enumerable:!1});if((e_||eu)&&(i={...i.amp?{amp:i.amp}:{}},ex=`${s}${n.url.endsWith("/")&&"/"!==s&&!eb?"/":""}`,n.url=s),"/404"===s&&(eg||I))throw Object.defineProperty(Error(`\`pages/404\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E134",enumerable:!1});if(O.includes(s)&&(eg||I))throw Object.defineProperty(Error(`\`pages${s}\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E125",enumerable:!1})}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Object.defineProperty(Error(`page ${s} ${e} ${S.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1});await F.preloadAll(),(eh||I)&&!eu&&z&&(m=!1!==(p=e(n,a,z,!!l.multiZoneDraftMode)));let eE=new eY(s,i,ex,{isFallback:eu},!!(I||eg||!ef&&!eh||K),X,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,ee(n,"isLocaleDomain")),eR={back(){eE.back()},forward(){eE.forward()},refresh(){eE.reload()},hmrRefresh(){},push(e,t){let{scroll:r}=void 0===t?{}:t;eE.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eE.replace(e,void 0,{scroll:r})},prefetch(e){eE.prefetch(e)}},eS={},ew=(0,R.createStyleRegistry)(),eO={ampFirst:!0===w.amp,hasQuery:!!i.amp,hybrid:"hybrid"===w.amp},eP=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eO),eC=function(e){void 0===e&&(e=!1);let t=[/*#__PURE__*/(0,v.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push(/*#__PURE__*/(0,v.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}(eP),eN=[],eA={};ev&&(eA.beforeInteractive=[].concat(ev()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let ek=({children:e})=>/*#__PURE__*/(0,v.jsx)(eH.Provider,{value:eR,children:/*#__PURE__*/(0,v.jsx)(eL.Provider,{value:eE.isReady&&eE.query?new URL(eE.asPath,"http://n").searchParams:new URLSearchParams,children:/*#__PURE__*/(0,v.jsx)(eB,{router:eE,isAutoExport:e_,children:/*#__PURE__*/(0,v.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ec(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=q.find(t=>e.startsWith(t)),o=e.match(eX);if(t&&o){let{key:e,optional:a,repeat:s}=eF(o[1]);return r[e]={pos:n++,repeat:s,optional:a},"/"+ez(t)+"([^/]+?)"}if(!o)return"/"+ez(e);{let{key:e,repeat:t,optional:a}=eF(o[1]);return r[e]={pos:n++,repeat:t,optional:a},t?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname).groups))t[r]=e.query[r];return t}(eE),children:/*#__PURE__*/(0,v.jsx)(B.Provider,{value:eE,children:/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(D.Provider,{value:{updateHead:e=>{eC=e},updateScripts:e=>{eS=e},scripts:eA,mountedInstances:new Set},children:/*#__PURE__*/(0,v.jsx)(L.Provider,{value:e=>eN.push(e),children:/*#__PURE__*/(0,v.jsx)(R.StyleRegistry,{registry:ew,children:/*#__PURE__*/(0,v.jsx)(eT.Provider,{value:U,children:e})})})})})})})})})}),eM=()=>null,eq=({children:e})=>/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[/*#__PURE__*/(0,v.jsx)(eM,{}),/*#__PURE__*/(0,v.jsx)(ek,{children:/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[_?/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[e,/*#__PURE__*/(0,v.jsx)(eM,{})]}):e,/*#__PURE__*/(0,v.jsx)(eM,{})]})})]}),eU={err:y,req:e_?void 0:n,res:e_?void 0:a,pathname:s,query:i,asPath:ex,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>/*#__PURE__*/(0,v.jsx)(eq,{children:eK(er,el,{...e,router:eE})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>/*#__PURE__*/(0,v.jsx)(e,{...t})}),o=ew.styles({nonce:t.nonce});return ew.flush(),{html:r,head:n,styles:o}}},eW=!eh&&(l.nextExport||_&&(e_||eu)),eG=()=>{let e=ew.styles();return ew.flush(),/*#__PURE__*/(0,v.jsx)(v.Fragment,{children:e})};if(h=await J(er,{AppTree:eU.AppTree,Component:el,router:eE,ctx:eU}),(eh||I)&&m&&(h.__N_PREVIEW=!0),eh&&(h.__N_SSG=!0),eh&&!eu){let e,t;try{e=await (0,eo.getTracer)().trace(ea.vr.getStaticProps,{spanName:`getStaticProps ${s}`,attributes:{"next.route":s}},()=>T({...eb?{params:M}:void 0,...m?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale,revalidateReason:l.isOnDemandRevalidate?"on-demand":em?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(S.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(e1(e.redirect,n,"getStaticProps"),em)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${n.url})
+Read more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`),"__NEXT_ERROR_CODE",{value:"E255",enumerable:!1});let ex=l.resolvedAsPath||n.url;if(_){let{isValidElementType:e}=r("./dist/compiled/react-is/index.js");if(!e(el))throw Object.defineProperty(Error(`The default export is not a React Component in page: "${s}"`),"__NEXT_ERROR_CODE",{value:"E286",enumerable:!1});if(!e(er))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_app"'),"__NEXT_ERROR_CODE",{value:"E464",enumerable:!1});if(!e(ei))throw Object.defineProperty(Error('The default export is not a React Component in page: "/_document"'),"__NEXT_ERROR_CODE",{value:"E511",enumerable:!1});if((e_||eu)&&(i={...i.amp?{amp:i.amp}:{}},ex=`${s}${n.url.endsWith("/")&&"/"!==s&&!eb?"/":""}`,n.url=s),"/404"===s&&(eg||I))throw Object.defineProperty(Error(`\`pages/404\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E134",enumerable:!1});if(O.includes(s)&&(eg||I))throw Object.defineProperty(Error(`\`pages${s}\` ${S._I}`),"__NEXT_ERROR_CODE",{value:"E125",enumerable:!1})}for(let e of["getStaticProps","getServerSideProps","getStaticPaths"])if(null==el?void 0:el[e])throw Object.defineProperty(Error(`page ${s} ${e} ${S.Oh}`),"__NEXT_ERROR_CODE",{value:"E417",enumerable:!1});await F.preloadAll(),(eh||I)&&!eu&&z&&(m=!1!==(p=e(n,a,z,!!l.multiZoneDraftMode)));let eE=new eY(s,i,ex,{isFallback:eu},!!(I||eg||!ef&&!eh||K),X,l.locale,l.locales,l.defaultLocale,l.domainLocales,m,ee(n,"isLocaleDomain")),eR={back(){eE.back()},forward(){eE.forward()},refresh(){eE.reload()},hmrRefresh(){},push(e,t){let{scroll:r}=void 0===t?{}:t;eE.push(e,void 0,{scroll:r})},replace(e,t){let{scroll:r}=void 0===t?{}:t;eE.replace(e,void 0,{scroll:r})},prefetch(e){eE.prefetch(e)}},eS={},ew=(0,R.createStyleRegistry)(),eO={ampFirst:!0===w.amp,hasQuery:!!i.amp,hybrid:"hybrid"===w.amp},eP=function(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}(eO),eC=function(e){void 0===e&&(e=!1);let t=[/*#__PURE__*/(0,v.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push(/*#__PURE__*/(0,v.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}(eP),eN=[],eA={};ev&&(eA.beforeInteractive=[].concat(ev()).filter(e=>"beforeInteractive"===e.props.strategy).map(e=>e.props));let ek=({children:e})=>/*#__PURE__*/(0,v.jsx)(eH.Provider,{value:eR,children:/*#__PURE__*/(0,v.jsx)(eL.Provider,{value:eE.isReady&&eE.query?new URL(eE.asPath,"http://n").searchParams:new URLSearchParams,children:/*#__PURE__*/(0,v.jsx)(eB,{router:eE,isAutoExport:e_,children:/*#__PURE__*/(0,v.jsx)(eI.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(function(e){let{parameterizedRoute:t,groups:r}=function(e){let t=ec(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=q.find(t=>e.startsWith(t)),o=e.match(eX);if(t&&o){let{key:e,optional:a,repeat:s}=eF(o[1]);return r[e]={pos:n++,repeat:s,optional:a},"/"+ez(t)+"([^/]+?)"}if(!o)return"/"+ez(e);{let{key:e,repeat:t,optional:a}=eF(o[1]);return r[e]={pos:n++,repeat:t,optional:a},t?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}(e.pathname).groups))t[r]=e.query[r];return t}(eE),children:/*#__PURE__*/(0,v.jsx)(B.Provider,{value:eE,children:/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(D.Provider,{value:{updateHead:e=>{eC=e},updateScripts:e=>{eS=e},scripts:eA,mountedInstances:new Set},children:/*#__PURE__*/(0,v.jsx)(L.Provider,{value:e=>eN.push(e),children:/*#__PURE__*/(0,v.jsx)(R.StyleRegistry,{registry:ew,children:/*#__PURE__*/(0,v.jsx)(eT.Provider,{value:U,children:e})})})})})})})})})}),eM=()=>null,eq=({children:e})=>/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[/*#__PURE__*/(0,v.jsx)(eM,{}),/*#__PURE__*/(0,v.jsx)(ek,{children:/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[_?/*#__PURE__*/(0,v.jsxs)(v.Fragment,{children:[e,/*#__PURE__*/(0,v.jsx)(eM,{})]}):e,/*#__PURE__*/(0,v.jsx)(eM,{})]})})]}),eU={err:y,req:e_?void 0:n,res:e_?void 0:a,pathname:s,query:i,asPath:ex,locale:l.locale,locales:l.locales,defaultLocale:l.defaultLocale,AppTree:e=>/*#__PURE__*/(0,v.jsx)(eq,{children:eK(er,el,{...e,router:eE})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:n}=await e.renderPage({enhanceApp:e=>t=>/*#__PURE__*/(0,v.jsx)(e,{...t})}),o=ew.styles({nonce:t.nonce});return ew.flush(),{html:r,head:n,styles:o}}},eW=!eh&&(l.nextExport||_&&(e_||eu)),eG=()=>{let e=ew.styles();return ew.flush(),/*#__PURE__*/(0,v.jsx)(v.Fragment,{children:e})};if(h=await J(er,{AppTree:eU.AppTree,Component:el,router:eE,ctx:eU}),(eh||I)&&m&&(h.__N_PREVIEW=!0),eh&&(h.__N_SSG=!0),eh&&!eu){let e,t;try{e=await (0,eo.getTracer)().trace(ea.vr.getStaticProps,{spanName:`getStaticProps ${s}`,attributes:{"next.route":s}},()=>T({...eb?{params:M}:void 0,...m?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:[...l.locales??[]],locale:l.locale,defaultLocale:l.defaultLocale,revalidateReason:l.isOnDemandRevalidate?"on-demand":em?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(S.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(e1(e.redirect,n,"getStaticProps"),em)throw Object.defineProperty(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`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1});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),g.isRedirect=!0}if((_||em)&&!g.isNotFound&&!N(s,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1});if("revalidate"in e){if(e.revalidate&&"export"===l.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1});if("number"==typeof e.revalidate){if(Number.isInteger(e.revalidate)){if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${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\`.`),"__NEXT_ERROR_CODE",{value:"E311",enumerable:!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 Object.defineProperty(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.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1})}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${n.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.revalidate=t,g.pageData=h,g.isNotFound)return new ej(null,{metadata:g})}if(I&&(h.__N_SSP=!0),I&&!eu){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(ea.vr.getServerSideProps,{spanName:`getServerSideProps ${s}`,attributes:{"next.route":s}},async()=>I({req:n,res:a,query:i,resolvedUrl:l.resolvedUrl,...eb?{params:M}:void 0,...!1!==p?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:l.locales,locale:l.locale,defaultLocale:l.defaultLocale})),g.revalidate=0}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});return g.isNotFound=!0,new ej(null,{metadata:g})}if("redirect"in e&&"object"==typeof e.redirect&&(e1(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),g.isRedirect=!0),t&&(e.props=await e.props),(_||em)&&!N(s,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(k&&!eh||g.isRedirect)return new ej(JSON.stringify(h),{metadata:g});if(eu&&(h.pageProps={}),V(a)&&!eh)return new ej(null,{metadata:g});let eQ=P;if(e_&&eb){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!W(e)?"/index"+e:"/"===e?"/index":H(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new Q("Requested and resolved page mismatch: "+t+" "+n)}return t})(s).replace(/\\/g,"/")).startsWith("/index/")&&!W(e)?e.slice(6):"/index"!==e?e:"/";t in eQ.pages&&(eQ={...eQ,pages:{...eQ.pages,[t]:[...eQ.pages[t],...eQ.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eQ.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e4=({children:e})=>eP?e:/*#__PURE__*/(0,v.jsx)("div",{id:"__next",children:e}),e2=async()=>{let e,t;async function r(e){let t=async(t={})=>{if(eU.err&&j)return e&&e(er,el),{html:await eZ(/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})})),head:eC};if(_&&(h.router||h.Component))throw Object.defineProperty(Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props"),"__NEXT_ERROR_CODE",{value:"E230",enumerable:!1});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},o=await e(r,n);return await o.allReady,{html:await ed(o),head:eC}},r={...eU,renderPage:t},n=await J(ei,r);if(V(a)&&!eh)return null;if(!n||"string"!=typeof n.html)throw Object.defineProperty(Error(`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});return{docProps:n,documentCtx:r}}ei.__NEXT_BUILTIN_DOCUMENT__;let n=(e,t)=>{let r=e||er,n=t||el;return eU.err&&j?/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})}):/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(eq,{children:eK(r,n,{...h,router:eE})})})},o=async(e,t)=>{let r=n(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(ea.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:E(),element:r})},s=!!ei.getInitialProps,[i,l]=await Promise.all([eZ(eG()),(async()=>{if(s){if(null===(e=await r(o)))return null;let{docProps:t}=e;return t.html}{e={};let t=await o(er,el);return await t.allReady,ed(t)}})()]);if(null===l)return null;let{docProps:u}=e||{};return s?(t=u.styles,eC=u.head):(t=ew.styles(),ew.flush()),{contentHTML:i+l,documentElement:e=>/*#__PURE__*/(0,v.jsx)(ei,{...e,...u}),head:eC,headTags:[],styles:t}};(0,eo.getTracer)().setRootSpanAttribute("next.route",l.page);let e3=await (0,eo.getTracer)().trace(ea.vr.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e2());if(!e3)return new ej(null,{metadata:g});let e9=new Set,e8=new Set;for(let e of eN){let t=C[e];t&&(e9.add(t.id),t.files.forEach(e=>{e8.add(e)}))}let e6=eO.hybrid,{assetPrefix:e5,buildId:e7,customServer:te,defaultLocale:tt,disableOptimizedLoading:tr,domainLocales:tn,locale:to,locales:ta,runtimeConfig:ts}=l,ti={__NEXT_DATA__:{props:h,page:s,query:i,buildId:e7,assetPrefix:""===e5?void 0:e5,runtimeConfig:ts,nextExport:!0===eW||void 0,autoExport:!0===e_||void 0,isFallback:eu,isExperimentalCompile:K,dynamicIds:0===e9.size?void 0:Array.from(e9),err:l.err?(c=l.err,_?(f="server",f=c[eV]||"server",{name:c.name,source:f,message:e$()(c.message),stack:c.stack,digest:c.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!T||void 0,gssp:!!I||void 0,customServer:te,gip:!!eg||void 0,appGip:!ef||void 0,locale:to,locales:ta,defaultLocale:tt,domainLocales:tn,isPreview:!0===m||void 0,notFoundSrcPage:ep&&_?ep:void 0},strictNextHead:l.strictNextHead,buildManifest:eQ,docComponentsRendered:{},dangerousAsPath:eE.asPath,canonicalBase:!l.ampPath&&ee(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:x,inAmpMode:eP,isDevelopment:!!_,hybridAmp:e6,dynamicImports:Array.from(e8),dynamicCssManifest:new Set(l.dynamicCssManifest||[]),assetPrefix:e5,unstable_runtimeJS:w.unstable_runtimeJS,unstable_JsPreload:w.unstable_JsPreload,assetQueryString:es,scriptLoader:eS,locale:to,disableOptimizedLoading:tr,head:e3.head,headTags:e3.headTags,styles:e3.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:Y,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest,experimentalClientTraceMetadata:l.experimental.clientTraceMetadata},tl=/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(Z.Provider,{value:ti,children:e3.documentElement(ti)})}),tu=await (0,eo.getTracer)().trace(ea.vr.renderToString,async()=>eZ(tl)),[td,tc]=tu.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tp="";tu.startsWith(eJ)||(tp+=eJ),tp+=td,eP&&(tp+="\x3c!-- __NEXT_DATA__ --\x3e");let th=tp+e3.contentHTML+tc;return new ej(await o(s,th,l,{inAmpMode:eP,hybridAmp:e6}),{metadata:g})}let e2=(e,t,r,n,o)=>e4(e,t,r,n,o,o),e3=/*#__PURE__*/_().createContext(null);function e9(e){let t=(0,y.useContext)(e3);t&&t(e)}class e8 extends g{constructor(e){super(e),this.components=e.components}render(e,t,r){return e4(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e6={contexts:f},e5=e8})(),module.exports=n})();
+Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1})}else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${n.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.revalidate=t,g.pageData=h,g.isNotFound)return new ej(null,{metadata:g})}if(I&&(h.__N_SSP=!0),I&&!eu){let e;let t=!1;try{e=await (0,eo.getTracer)().trace(ea.vr.getServerSideProps,{spanName:`getServerSideProps ${s}`,attributes:{"next.route":s}},async()=>I({req:n,res:a,query:i,resolvedUrl:l.resolvedUrl,...eb?{params:M}:void 0,...!1!==p?{draftMode:!0,preview:!0,previewData:p}:void 0,locales:[...l.locales??[]],locale:l.locale,defaultLocale:l.defaultLocale})),g.revalidate=0}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(S.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${s}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1});if(r.length)throw Object.defineProperty(Error(e0("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});if("notFound"in e&&e.notFound){if("/404"===s)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1});return g.isNotFound=!0,new ej(null,{metadata:g})}if("redirect"in e&&"object"==typeof e.redirect&&(e1(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),g.isRedirect=!0),t&&(e.props=await e.props),(_||em)&&!N(s,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(k&&!eh||g.isRedirect)return new ej(JSON.stringify(h),{metadata:g});if(eu&&(h.pageProps={}),V(a)&&!eh)return new ej(null,{metadata:g});let eQ=P;if(e_&&eb){let e;let t=(e=(function(e){let t=/^\/index(\/|$)/.test(e)&&!W(e)?"/index"+e:"/"===e?"/index":H(e);{let{posix:e}=r("path"),n=e.normalize(t);if(n!==t)throw new Q("Requested and resolved page mismatch: "+t+" "+n)}return t})(s).replace(/\\/g,"/")).startsWith("/index/")&&!W(e)?e.slice(6):"/index"!==e?e:"/";t in eQ.pages&&(eQ={...eQ,pages:{...eQ.pages,[t]:[...eQ.pages[t],...eQ.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eQ.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let e4=({children:e})=>eP?e:/*#__PURE__*/(0,v.jsx)("div",{id:"__next",children:e}),e2=async()=>{let e,t;async function r(e){let t=async(t={})=>{if(eU.err&&j)return e&&e(er,el),{html:await eZ(/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})})),head:eC};if(_&&(h.router||h.Component))throw Object.defineProperty(Error("'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props"),"__NEXT_ERROR_CODE",{value:"E230",enumerable:!1});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},o=await e(r,n);return await o.allReady,{html:await ed(o),head:eC}},r={...eU,renderPage:t},n=await J(ei,r);if(V(a)&&!eh)return null;if(!n||"string"!=typeof n.html)throw Object.defineProperty(Error(`"${G(ei)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1});return{docProps:n,documentCtx:r}}ei.__NEXT_BUILTIN_DOCUMENT__;let n=(e,t)=>{let r=e||er,n=t||el;return eU.err&&j?/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(j,{error:eU.err})}):/*#__PURE__*/(0,v.jsx)(e4,{children:/*#__PURE__*/(0,v.jsx)(eq,{children:eK(r,n,{...h,router:eE})})})},o=async(e,t)=>{let r=n(e,t);return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eo.getTracer)().trace(ea.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:E(),element:r})},s=!!ei.getInitialProps,[i,l]=await Promise.all([eZ(eG()),(async()=>{if(s){if(null===(e=await r(o)))return null;let{docProps:t}=e;return t.html}{e={};let t=await o(er,el);return await t.allReady,ed(t)}})()]);if(null===l)return null;let{docProps:u}=e||{};return s?(t=u.styles,eC=u.head):(t=ew.styles(),ew.flush()),{contentHTML:i+l,documentElement:e=>/*#__PURE__*/(0,v.jsx)(ei,{...e,...u}),head:eC,headTags:[],styles:t}};(0,eo.getTracer)().setRootSpanAttribute("next.route",l.page);let e3=await (0,eo.getTracer)().trace(ea.vr.renderDocument,{spanName:`render route (pages) ${l.page}`,attributes:{"next.route":l.page}},async()=>e2());if(!e3)return new ej(null,{metadata:g});let e9=new Set,e8=new Set;for(let e of eN){let t=C[e];t&&(e9.add(t.id),t.files.forEach(e=>{e8.add(e)}))}let e6=eO.hybrid,{assetPrefix:e5,buildId:e7,customServer:te,defaultLocale:tt,disableOptimizedLoading:tr,domainLocales:tn,locale:to,locales:ta,runtimeConfig:ts}=l,ti={__NEXT_DATA__:{props:h,page:s,query:i,buildId:e7,assetPrefix:""===e5?void 0:e5,runtimeConfig:ts,nextExport:!0===eW||void 0,autoExport:!0===e_||void 0,isFallback:eu,isExperimentalCompile:K,dynamicIds:0===e9.size?void 0:Array.from(e9),err:l.err?(c=l.err,_?(f="server",f=c[eV]||"server",{name:c.name,source:f,message:e$()(c.message),stack:c.stack,digest:c.digest}):{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}):void 0,gsp:!!T||void 0,gssp:!!I||void 0,customServer:te,gip:!!eg||void 0,appGip:!ef||void 0,locale:to,locales:ta,defaultLocale:tt,domainLocales:tn,isPreview:!0===m||void 0,notFoundSrcPage:ep&&_?ep:void 0},strictNextHead:l.strictNextHead,buildManifest:eQ,docComponentsRendered:{},dangerousAsPath:eE.asPath,canonicalBase:!l.ampPath&&ee(n,"didStripLocale")?`${l.canonicalBase||""}/${l.locale}`:l.canonicalBase,ampPath:x,inAmpMode:eP,isDevelopment:!!_,hybridAmp:e6,dynamicImports:Array.from(e8),dynamicCssManifest:new Set(l.dynamicCssManifest||[]),assetPrefix:e5,unstable_runtimeJS:w.unstable_runtimeJS,unstable_JsPreload:w.unstable_JsPreload,assetQueryString:es,scriptLoader:eS,locale:to,disableOptimizedLoading:tr,head:e3.head,headTags:e3.headTags,styles:e3.styles,crossOrigin:l.crossOrigin,optimizeCss:l.optimizeCss,nextConfigOutput:l.nextConfigOutput,nextScriptWorkers:l.nextScriptWorkers,runtime:Y,largePageDataBytes:l.largePageDataBytes,nextFontManifest:l.nextFontManifest,experimentalClientTraceMetadata:l.experimental.clientTraceMetadata},tl=/*#__PURE__*/(0,v.jsx)($.Provider,{value:eO,children:/*#__PURE__*/(0,v.jsx)(Z.Provider,{value:ti,children:e3.documentElement(ti)})}),tu=await (0,eo.getTracer)().trace(ea.vr.renderToString,async()=>eZ(tl)),[td,tc]=tu.split("<next-js-internal-body-render-target></next-js-internal-body-render-target>",2),tp="";tu.startsWith(eJ)||(tp+=eJ),tp+=td,eP&&(tp+="\x3c!-- __NEXT_DATA__ --\x3e");let th=tp+e3.contentHTML+tc;return new ej(await o(s,th,l,{inAmpMode:eP,hybridAmp:e6}),{metadata:g})}let e2=(e,t,r,n,o)=>e4(e,t,r,n,o,o),e3=/*#__PURE__*/_().createContext(null);function e9(e){let t=(0,y.useContext)(e3);t&&t(e)}class e8 extends g{constructor(e){super(e),this.components=e.components}render(e,t,r){return e4(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document})}}let e6={contexts:f},e5=e8})(),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

Commit: a4089c7


export interface I18NConfig {
defaultLocale: string
domains?: I18NDomains
localeDetection?: false
locales: string[]
locales: readonly string[]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I needed to double-check, so I'm adding it here for posterity: A change in this direction (adding readonly) will not lead to compiler errors in users' existing Next.js configs, only the other direction (removing readonly) would potentially be problematic.

@wyattjoh wyattjoh merged commit 4f5df6a into canary Dec 17, 2024
125 of 130 checks passed
@wyattjoh wyattjoh deleted the refactor/readonly-locales branch December 17, 2024 19:55
@github-actions github-actions bot added the locked label Jan 1, 2025
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 1, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants