next 16.1.1-canary.31 → 16.1.1-canary.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-commit +1 -1
- package/dist/bin/next +2 -2
- package/dist/build/index.js +3 -3
- package/dist/build/swc/index.js +1 -1
- package/dist/build/webpack-config.js +3 -3
- package/dist/bundle-analyzer/404.html +2 -2
- package/dist/bundle-analyzer/__next.__PAGE__.txt +1 -1
- package/dist/bundle-analyzer/__next._full.txt +1 -1
- package/dist/bundle-analyzer/__next._head.txt +1 -1
- package/dist/bundle-analyzer/__next._index.txt +1 -1
- package/dist/bundle-analyzer/__next._tree.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._full.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._head.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._index.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._not-found.txt +1 -1
- package/dist/bundle-analyzer/_not-found/__next._tree.txt +1 -1
- package/dist/bundle-analyzer/_not-found.html +2 -2
- package/dist/bundle-analyzer/_not-found.txt +1 -1
- package/dist/bundle-analyzer/index.html +2 -2
- package/dist/bundle-analyzer/index.txt +1 -1
- package/dist/client/app-bootstrap.js +1 -1
- package/dist/client/index.js +1 -1
- package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js +1 -1
- package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
- package/dist/compiled/next-server/server.runtime.prod.js +1 -1
- package/dist/esm/build/index.js +3 -3
- package/dist/esm/build/swc/index.js +1 -1
- package/dist/esm/build/webpack-config.js +3 -3
- package/dist/esm/client/app-bootstrap.js +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/lib/resolve-build-paths.js +7 -19
- package/dist/esm/lib/resolve-build-paths.js.map +1 -1
- package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/esm/server/lib/app-info-log.js +1 -1
- package/dist/esm/server/lib/start-server.js +1 -1
- package/dist/esm/server/node-environment-extensions/fast-set-immediate.external.js +2 -2
- package/dist/esm/server/node-environment-extensions/fast-set-immediate.external.js.map +1 -1
- package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/lib/resolve-build-paths.js +7 -19
- package/dist/lib/resolve-build-paths.js.map +1 -1
- package/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/server/node-environment-extensions/fast-set-immediate.external.js +2 -2
- package/dist/server/node-environment-extensions/fast-set-immediate.external.js.map +1 -1
- package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/telemetry/events/session-stopped.js +2 -2
- package/dist/telemetry/events/version.js +2 -2
- package/package.json +15 -15
- /package/dist/bundle-analyzer/_next/static/{Nj0DMjMmkmFqbF6pIiv9O → 0oIhBbysU4HGiEvWfSsub}/_buildManifest.js +0 -0
- /package/dist/bundle-analyzer/_next/static/{Nj0DMjMmkmFqbF6pIiv9O → 0oIhBbysU4HGiEvWfSsub}/_clientMiddlewareManifest.json +0 -0
- /package/dist/bundle-analyzer/_next/static/{Nj0DMjMmkmFqbF6pIiv9O → 0oIhBbysU4HGiEvWfSsub}/_ssgManifest.js +0 -0
|
@@ -10,7 +10,7 @@ You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED
|
|
|
10
10
|
|
|
11
11
|
You can silence warnings related to this behavior by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=silent\` environment variable.
|
|
12
12
|
|
|
13
|
-
You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=debug\` environment variable.`),eO(),p.call(process))}),process.listeners=eC(f,function(e){return"unhandledRejection"===e?(null==t||t("Retrieving all 'unhandledRejection' listeners."),[eT,...ex]):f.call(process,e)}),e_=!0}();let eS=require("next/dist/server/app-render/work-async-storage.external.js");var ej=r("../../node_modules/.pnpm/react@19.3.0-canary-bef88f7c-20260116/node_modules/react/index.js");new WeakMap;class eN extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}function eA(e,t,r,n){let i,s,a=n.dynamicTracking;(i=Object.defineProperty(Error(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).digest="NEXT_PRERENDER_INTERRUPTED",n.controller.abort(i),(s=n.dynamicTracking)&&s.dynamicAccesses.push({stack:s.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}if(ej.unstable_postpone,!1===("Route %%% needs to bail out of prerendering at this point because it used ^^^. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error".includes("needs to bail out of prerendering at this point because it used")&&"Route %%% needs to bail out of prerendering at this point because it used ^^^. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error".includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});function eD(e,t){let r=B.workUnitAsyncStorage.getStore(),n=eS.workAsyncStorage.getStore();if(r&&n)switch(r.type){case"prerender":case"prerender-runtime":if(!1===r.controller.signal.aborted){let i;switch(t){case"time":i=`Route "${n.route}" used ${e} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing the current time in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time`;break;case"random":i=`Route "${n.route}" used ${e} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-random`;break;case"crypto":i=`Route "${n.route}" used ${e} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random cryptographic values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto`;break;default:throw Object.defineProperty(new eN("Unknown expression type in abortOnSynchronousPlatformIOAccess."),"__NEXT_ERROR_CODE",{value:"E526",enumerable:!1,configurable:!0})}eA(n.route,e,Object.defineProperty(Error(i),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),r)}break;case"prerender-client":if(!1===r.controller.signal.aborted){let i;switch(t){case"time":i=`Route "${n.route}" used ${e} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time-client`;break;case"random":i=`Route "${n.route}" used ${e} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-random-client`;break;case"crypto":i=`Route "${n.route}" used ${e} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto-client`;break;default:throw Object.defineProperty(new eN("Unknown expression type in abortOnSynchronousPlatformIOAccess."),"__NEXT_ERROR_CODE",{value:"E526",enumerable:!1,configurable:!0})}eA(n.route,e,Object.defineProperty(Error(i),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),r)}}}RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at __next_root_layout_boundary__ \\([^\\n]*\\)`),RegExp(`\\n\\s+at __next_metadata_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_viewport_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_outlet_boundary__[\\n\\s]`),require("next/dist/server/runtime-reacts.external.js");let e$="`Math.random()`";try{let e=Math.random;Math.random=(function(){return eD(e$,"random"),e.apply(null,arguments)}).bind(null),Object.defineProperty(Math.random,"name",{value:"random"})}catch{console.error(`Failed to install ${e$} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}try{let e,t,r,n;Date=(v=Date,(e=Object.getOwnPropertyDescriptors(v)).now.value=(b=v.now,({now:function(){return eD("`Date.now()`","time"),b()}})["now".slice()].bind(null)),t=Reflect.apply,r=Reflect.construct,n=Object.defineProperties(function(){return new.target===void 0?(eD("`Date()`","time"),t(v,void 0,arguments)):(0==arguments.length&&eD("`new Date()`","time"),r(v,arguments,new.target))},e),Object.defineProperty(v.prototype,"constructor",{value:n}),n)}catch{console.error("Failed to install `Date` class extension. When using `cacheComponents`, APIs that read the current time will not correctly trigger dynamic behavior.")}m="undefined"==typeof crypto?r("node:crypto").webcrypto:crypto;let ek="`crypto.getRandomValues()`";try{let e=m.getRandomValues;m.getRandomValues=function(){return eD(ek,"crypto"),e.apply(m,arguments)}}catch{console.error(`Failed to install ${ek} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}try{let e=m.randomUUID;m.randomUUID=function(){return eD("`crypto.randomUUID()`","crypto"),e.apply(m,arguments)}}catch{console.error(`Failed to install ${ek} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}{let e=r("node:crypto"),t="`require('node:crypto').randomUUID()`";try{let r=e.randomUUID;e.randomUUID=function(){return eD(t,"random"),r.apply(this,arguments)}}catch{console.error(`Failed to install ${t} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}let n="`require('node:crypto').randomBytes(size)`";try{let t=e.randomBytes;e.randomBytes=function(){return"function"!=typeof arguments[1]&&eD(n,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${n} extension. When using \`cacheComponents\` calling this function without a callback argument will not correctly trigger dynamic behavior.`)}let i="`require('node:crypto').randomFillSync(...)`";try{let t=e.randomFillSync;e.randomFillSync=function(){return eD(i,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${i} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}try{let t=e.randomInt;e.randomInt=function(){return"function"!=typeof arguments[2]&&eD("`require('node:crypto').randomInt(min, max)`","random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${n} extension. When using \`cacheComponents\` calling this function without a callback argument will not correctly trigger dynamic behavior.`)}let s="`require('node:crypto').generatePrimeSync(...)`";try{let t=e.generatePrimeSync;e.generatePrimeSync=function(){return eD(s,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${s} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}let a="`require('node:crypto').generateKeyPairSync(...)`";try{let t=e.generateKeyPairSync;e.generateKeyPairSync=function(){return eD(a,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${a} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}let o="`require('node:crypto').generateKeySync(...)`";try{let t=e.generateKeySync;e.generateKeySync=function(){return eD(o,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${o} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}}require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js");let eI=r("path"),eM=r("module"),eL=eM.prototype.require,eq=eM._resolveFilename,eH=require.resolve,eF=new Map;!function(e=[]){for(let[t,r]of e)eF.set(t,r)}(Object.entries({"styled-jsx":eI.dirname(eH("styled-jsx/package.json")),"styled-jsx/style":eH("styled-jsx/style"),"styled-jsx/style.js":eH("styled-jsx/style")}).map(([e,t])=>[e,eH(t)])),eM._resolveFilename=(function(e,t,r,n,i,s){let a=t.get(r);return a&&(r=a),e.call(eM,r,n,i,s)}).bind(null,eq,eF),eM.prototype.require=function(e){return e.endsWith(".shared-runtime")?eL.call(this,`next/dist/server/route-modules/pages/vendored/contexts/${eI.basename(e,".shared-runtime")}`):eL.call(this,e)},r("./dist/esm/server/node-polyfill-crypto.js"),"undefined"!=typeof performance&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class ez extends Error{}class eU extends Error{}class eX extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class eW extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}var eB=r("./dist/compiled/path-to-regexp/index.js");let eG="_NEXTSEP_";function eV(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function eK(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${eG}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${eG}`)}function eY(e){return e.replace(RegExp(`\\)${eG}`,"g"),")")}function eJ(e,t,r){if("string"!=typeof e)return(0,eB.pathToRegexp)(e,t,r);let n=eV(e),i=n?eK(e):e;try{return(0,eB.pathToRegexp)(i,t,r)}catch(i){if(!n)try{let n=eK(e);return(0,eB.pathToRegexp)(n,t,r)}catch(e){}throw i}}function eQ(e,t){let r=eV(e),n=r?eK(e):e;try{let e=(0,eB.compile)(n,t);if(r)return t=>eY(e(t));return e}catch(n){if(!r)try{let r=eK(e),n=(0,eB.compile)(r,t);return e=>eY(n(e))}catch(e){}throw n}}function eZ({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let i=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new ez("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},s={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?s[e]=t.split("/").map(e=>i(e)):s[e]=i(t))}return s},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${eG}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${eG}`),""):e):n[e]=r;return n}}let e0=Symbol.for("NextInternalRequestMeta");function e1(e,t){let r=e[e0]||{};return"string"==typeof t?r[t]:r}function e4(e,t,r){let n=e1(e);return n[t]=r,e[e0]=n,n}function e2(e,t){let r=e1(e);return delete r[t],e[e0]=r,r}r("./dist/esm/shared/lib/modern-browserslist-target.js");let e3="/_not-found",e8=`${e3}/page`,e9="pages-manifest.json",e6="app-paths-manifest.json",e5="server";[...process?.features?.typescript?["next.config.mts"]:[]];let e7=["/_document","/_app","/_error"];Symbol("polyfills");let te=["/500"];function tt(e,t){let r=A().join(e,t);return ed().existsSync(r)||(r=A().join(e,"src",t),ed().existsSync(r))?r:null}class tr{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class tn extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new tn}}class ti extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return tr.get(t,r,n);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);if(void 0!==s)return tr.get(t,s,n)},set(t,r,n,i){if("symbol"==typeof r)return tr.set(t,r,n,i);let s=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===s);return tr.set(t,a??r,n,i)},has(t,r){if("symbol"==typeof r)return tr.has(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==i&&tr.has(t,i)},deleteProperty(t,r){if("symbol"==typeof r)return tr.deleteProperty(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===i||tr.deleteProperty(t,i)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return tn.callable;default:return tr.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new ti(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}let ts="text/html; charset=utf-8",ta="nxtP",to="nxtI",tl="x-matched-path",tc=".segments",tu=".segment.rsc",td=".rsc",th=".json",tp=".meta",tf="x-next-cache-tags",tm="x-next-revalidated-tags",tg={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"};({...tg,GROUP:{builtinReact:[tg.reactServerComponents,tg.actionBrowser],serverOnly:[tg.reactServerComponents,tg.actionBrowser,tg.instrument,tg.middleware],neutralTarget:[tg.apiNode,tg.apiEdge],clientOnly:[tg.serverSideRendering,tg.appPagesBrowser],bundled:[tg.reactServerComponents,tg.actionBrowser,tg.serverSideRendering,tg.appPagesBrowser,tg.shared,tg.instrument,tg.middleware],appPages:[tg.reactServerComponents,tg.serverSideRendering,tg.appPagesBrowser,tg.actionBrowser]}});let ty=require("next/dist/server/lib/trace/tracer");var tv=((E=tv||{}).handleRequest="BaseServer.handleRequest",E.run="BaseServer.run",E.pipe="BaseServer.pipe",E.getStaticHTML="BaseServer.getStaticHTML",E.render="BaseServer.render",E.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",E.renderToResponse="BaseServer.renderToResponse",E.renderToHTML="BaseServer.renderToHTML",E.renderError="BaseServer.renderError",E.renderErrorToResponse="BaseServer.renderErrorToResponse",E.renderErrorToHTML="BaseServer.renderErrorToHTML",E.render404="BaseServer.render404",E),tb=((_=tb||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",_.loadComponents="LoadComponents.loadComponents",_),tE=((x=tE||{}).compression="NextNodeServer.compression",x.getBuildId="NextNodeServer.getBuildId",x.createComponentTree="NextNodeServer.createComponentTree",x.clientComponentLoading="NextNodeServer.clientComponentLoading",x.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",x.generateStaticRoutes="NextNodeServer.generateStaticRoutes",x.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",x.generatePublicRoutes="NextNodeServer.generatePublicRoutes",x.generateImageRoutes="NextNodeServer.generateImageRoutes.route",x.sendRenderResult="NextNodeServer.sendRenderResult",x.proxyRequest="NextNodeServer.proxyRequest",x.runApi="NextNodeServer.runApi",x.render="NextNodeServer.render",x.renderHTML="NextNodeServer.renderHTML",x.imageOptimizer="NextNodeServer.imageOptimizer",x.getPagePath="NextNodeServer.getPagePath",x.getRoutesManifest="NextNodeServer.getRoutesManifest",x.findPageComponents="NextNodeServer.findPageComponents",x.getFontManifest="NextNodeServer.getFontManifest",x.getServerComponentManifest="NextNodeServer.getServerComponentManifest",x.getRequestHandler="NextNodeServer.getRequestHandler",x.renderToHTML="NextNodeServer.renderToHTML",x.renderError="NextNodeServer.renderError",x.renderErrorToHTML="NextNodeServer.renderErrorToHTML",x.render404="NextNodeServer.render404",x.startResponse="NextNodeServer.startResponse",x.route="route",x.onProxyReq="onProxyReq",x.apiResolver="apiResolver",x.internalFetch="internalFetch",x);Symbol("__next_preview_data");let t_=Symbol("__prerender_bypass");var tx=((w={})[w.SeeOther=303]="SeeOther",w[w.TemporaryRedirect=307]="TemporaryRedirect",w[w.PermanentRedirect=308]="PermanentRedirect",w);function tw(e){return function(){let{cookie:t}=e;if(!t)return{};let{parse:n}=r("./dist/compiled/cookie/index.js");return n(Array.isArray(t)?t.join("; "):t)}}class tR{constructor(e,t,r){this.method=e,this.url=t,this.body=r}get cookies(){return this._cookies?this._cookies:this._cookies=tw(this.headers)()}}class tC{constructor(e){this.destination=e}redirect(e,t){return this.setHeader("Location",e),this.statusCode=t,t===tx.PermanentRedirect&&this.setHeader("Refresh",`0;url=${e}`),this}}class tP extends tR{static #e=T=e0;constructor(e){var t;super(e.method.toUpperCase(),e.url,e),this._req=e,this.headers=this._req.headers,this.fetchMetrics=null==(t=this._req)?void 0:t.fetchMetrics,this[T]=this._req[e0]||{},this.streaming=!1}get originalRequest(){return this._req[e0]=this[e0],this._req.url=this.url,this._req.cookies=this.cookies,this._req}set originalRequest(e){this._req=e}stream(){if(this.streaming)throw Object.defineProperty(Error("Invariant: NodeNextRequest.stream() can only be called once"),"__NEXT_ERROR_CODE",{value:"E467",enumerable:!1,configurable:!0});return this.streaming=!0,new ReadableStream({start:e=>{this._req.on("data",t=>{e.enqueue(new Uint8Array(t))}),this._req.on("end",()=>{e.close()}),this._req.on("error",t=>{e.error(t)})}})}}class tO extends tC{get originalResponse(){return t_ in this&&(this._res[t_]=this[t_]),this._res}constructor(e){super(e),this._res=e,this.textBody=void 0}get sent(){return this._res.finished||this._res.headersSent}get statusCode(){return this._res.statusCode}set statusCode(e){this._res.statusCode=e}get statusMessage(){return this._res.statusMessage}set statusMessage(e){this._res.statusMessage=e}setHeader(e,t){return this._res.setHeader(e,t),this}removeHeader(e){return this._res.removeHeader(e),this}getHeaderValues(e){let t=this._res.getHeader(e);if(void 0!==t)return(Array.isArray(t)?t:[t]).map(e=>e.toString())}hasHeader(e){return this._res.hasHeader(e)}getHeader(e){let t=this.getHeaderValues(e);return Array.isArray(t)?t.join(","):void 0}getHeaders(){return this._res.getHeaders()}appendHeader(e,t){let r=this.getHeaderValues(e)??[];return r.includes(t)||this._res.setHeader(e,[...r,t]),this}body(e){return this.textBody=e,this}send(){this._res.end(this.textBody)}onClose(e){this.originalResponse.on("close",e)}}var tT=r("./dist/compiled/fresh/index.js"),tS=r.n(tT);async function tj({req:e,res:t,result:r,generateEtags:n,poweredByHeader:i,cacheControl:s}){if(t.finished||t.headersSent)return;i&&r.contentType===ts&&t.setHeader("X-Powered-By","Next.js"),s&&!t.getHeader("Cache-Control")&&t.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=31536000${r}`}(s));let a=r.isDynamic?null:r.toUnchunkedString();if(n&&null!==a){let r=((e,t=!1)=>(t?'W/"':'"')+(e=>{let t=e.length,r=0,n=0,i=8997,s=0,a=33826,o=0,l=40164,c=0,u=52210;for(;r<t;)i^=e.charCodeAt(r++),n=435*i,s=435*a,o=435*l,c=435*u,o+=i<<8,c+=a<<8,s+=n>>>16,i=65535&n,o+=s>>>16,a=65535&s,u=c+(o>>>16)&65535,l=65535&o;return(15&u)*0x1000000000000+0x100000000*l+65536*a+(i^u>>4)})(e).toString(36)+e.length.toString(36)+'"')(a);if(r&&t.setHeader("ETag",r),tS()(e.headers,{etag:r})&&(t.statusCode=304,t.end(),1))return}(!t.getHeader("Content-Type")&&r.contentType&&t.setHeader("Content-Type",r.contentType),a&&t.setHeader("Content-Length",Buffer.byteLength(a)),"HEAD"===e.method)?t.end(null):null!==a?t.end(a):await r.pipeToNodeResponse(t)}function tN(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function tA(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function tD(e){if(e.startsWith("/"))return function(e,t,r=!0){let n=new URL("http://n"),i=e.startsWith(".")?new URL("http://n"):n,{pathname:s,searchParams:a,search:o,hash:l,href:c,origin:u}=e.startsWith("/")?new URL(`${i.protocol}//${i.host}${e}`):new URL(e,i);if(u!==n.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${e}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:s,port:null,protocol:null,query:r?tN(a):void 0,search:o,hash:l,href:c.slice(u.length),slashes:null}}(e);let t=new URL(e),r=t.username,n=t.password,i=r?n?`${r}:${n}`:r:null,s=t.pathname,a=t.search;return{auth:i,hash:t.hash,hostname:t.hostname,href:t.href,pathname:s,port:t.port,protocol:t.protocol,query:tN(t.searchParams),search:a,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}let t$={wait:es(Q("○")),error:et(Q("⨯")),warn:en(Q("⚠")),ready:"▲",info:es(Q(" ")),event:er(Q("✓")),trace:ei(Q("\xbb"))},tk={log:"log",warn:"warn",error:"error"};function tI(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in tk?tk[e]:"log",n=t$[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function tM(e){console.log(e)}function tL(...e){tI("wait",...e)}function tq(...e){tI("error",...e)}function tH(...e){tI("warn",...e)}function tF(...e){tI("ready",...e)}function tz(...e){tI("info",...e)}function tU(...e){tI("event",...e)}function tX(...e){tI("trace",...e)}let tW=new M(1e4,e=>e.length);function tB(...e){let t=e.join(" ");tW.has(t)||(tW.set(t,t),tH(...e))}let tG=new M(1e4,e=>e.length);function tV(...e){let t=e.join(" ");tG.has(t)||(tG.set(t,t),tq(...e))}var tK=r("os"),tY=r.n(tK);let tJ="100 MB";function tQ(e){let t=r("./dist/compiled/bytes/index.js").parse(e??tJ);return null===t||isNaN(t)||t<1?void 0:t}Object.freeze({env:{},webpack:null,typescript:{ignoreBuildErrors:!1,tsconfigPath:void 0},typedRoutes:!1,distDir:".next",cleanDistDir:!0,assetPrefix:"",cacheHandler:process.env.NEXT_CACHE_HANDLER_PATH,cacheMaxMemorySize:0x3200000,configOrigin:"default",useFileSystemPublicRoutes:!0,generateBuildId:()=>null,generateEtags:!0,pageExtensions:["tsx","ts","jsx","js"],poweredByHeader:!0,compress:!0,images:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1},devIndicators:{position:"bottom-left"},onDemandEntries:{maxInactiveAge:6e4,pagesBufferLength:5},basePath:"",sassOptions:{},trailingSlash:!1,i18n:null,productionBrowserSourceMaps:!1,excludeDefaultMomentLocales:!0,reactProductionProfiling:!1,reactStrictMode:null,reactMaxHeadersLength:6e3,httpAgentOptions:{keepAlive:!0},logging:{},compiler:{},expireTime:process.env.NEXT_PRIVATE_CDN_CONSUMED_SWR_CACHE_CONTROL?void 0:31536e3,staticPageGenerationTimeout:60,output:process.env.NEXT_PRIVATE_STANDALONE?"standalone":void 0,modularizeImports:void 0,outputFileTracingRoot:process.env.NEXT_PRIVATE_OUTPUT_TRACE_ROOT||"",allowedDevOrigins:void 0,enablePrerenderSourceMaps:void 0,cacheComponents:!1,cacheLife:{default:{stale:void 0,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},cacheHandlers:{default:process.env.NEXT_DEFAULT_CACHE_HANDLER_PATH,remote:process.env.NEXT_REMOTE_CACHE_HANDLER_PATH,static:process.env.NEXT_STATIC_CACHE_HANDLER_PATH},experimental:{adapterPath:process.env.NEXT_ADAPTER_PATH||void 0,useSkewCookie:!1,cssChunking:!0,multiZoneDraftMode:!1,appNavFailHandling:!1,prerenderEarlyExit:!0,serverMinification:!0,linkNoTouchStart:!1,caseSensitiveRoutes:!1,clientParamParsingOrigins:void 0,dynamicOnHover:!1,preloadEntriesOnStart:!0,clientRouterFilter:!0,clientRouterFilterRedirects:!1,fetchCacheKeyPrefix:"",proxyPrefetch:"flexible",optimisticClientCache:!0,manualClientBasePath:!1,cpus:Math.max(1,(Number(process.env.CIRCLE_NODE_TOTAL)||(tY().cpus()||{length:1}).length)-1),memoryBasedWorkersCount:!1,imgOptConcurrency:null,imgOptTimeoutInSeconds:7,imgOptMaxInputPixels:0xfff8001,imgOptSequentialRead:null,imgOptSkipMetadata:null,isrFlushToDisk:!0,workerThreads:!1,proxyTimeout:void 0,optimizeCss:!1,nextScriptWorkers:!1,scrollRestoration:!1,externalDir:!1,disableOptimizedLoading:!1,gzipSize:!0,craCompat:!1,esmExternals:!0,fullySpecified:!1,swcTraceProfiling:!1,forceSwcTransforms:!1,swcPlugins:void 0,largePageDataBytes:128e3,disablePostcssPresetEnv:void 0,urlImports:void 0,typedEnv:!1,clientTraceMetadata:void 0,parallelServerCompiles:!1,parallelServerBuildTraces:!1,ppr:!1,authInterrupts:!1,webpackBuildWorker:void 0,webpackMemoryOptimizations:!1,optimizeServerReact:!0,strictRouteTypes:!1,viewTransition:!1,removeUncaughtErrorAndRejectionListeners:!1,validateRSCRequestHeaders:!!(process.env.__NEXT_TEST_MODE||!(!"16.1.1-canary.31".includes("canary")&&!process.env.__NEXT_TEST_MODE&&!process.env.NEXT_PRIVATE_LOCAL_DEV)),staleTimes:{dynamic:0,static:300},allowDevelopmentBuild:void 0,reactDebugChannel:!1,staticGenerationRetryCount:void 0,serverComponentsHmrCache:!0,staticGenerationMaxConcurrency:8,staticGenerationMinPagesPerWorker:25,transitionIndicator:!1,inlineCss:!1,useCache:void 0,slowModuleDetection:void 0,globalNotFound:!1,browserDebugInfoInTerminal:"warn",lockDistDir:!0,isolatedDevBuild:!0,proxyClientMaxBodySize:0xa00000,hideLogsAfterAbort:!1,mcpServer:!0,turbopackFileSystemCacheForDev:!0,turbopackFileSystemCacheForBuild:!1,turbopackInferModuleSideEffects:!0,devCacheControlNoCache:!1},htmlLimitedBots:void 0,bundlePagesRouterDependencies:!1});let tZ="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",t0=`(${tZ}[.]){3}${tZ}`,t1="(?:[0-9a-fA-F]{1,4})",t4=RegExp(`^((?:${t1}:){7}(?:${t1}|:)|(?:${t1}:){6}(?:${t0}|:${t1}|:)|(?:${t1}:){5}(?::${t0}|(:${t1}){1,2}|:)|(?:${t1}:){4}(?:(:${t1}){0,1}:${t0}|(:${t1}){1,3}|:)|(?:${t1}:){3}(?:(:${t1}){0,2}:${t0}|(:${t1}){1,4}|:)|(?:${t1}:){2}(?:(:${t1}){0,3}:${t0}|(:${t1}){1,5}|:)|(?:${t1}:){1}(?:(:${t1}){0,4}:${t0}|(:${t1}){1,6}|:)|(?::((?::${t1}){0,5}:${t0}|(?::${t1}){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$`);function t2(e){return e.startsWith("/")?e:`/${e}`}function t3(e){return t2(e.split("/").reduce((e,t,r,n)=>t?"("===t[0]&&t.endsWith(")")||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`:e,""))}function t8(e){return e.replace(/\.rsc($|\?)/,"$1")}let t9=["(..)(..)","(.)","(..)","(...)"];function t6(e){return void 0!==e.split("/").find(e=>t9.find(t=>e.startsWith(t)))}let t5=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,t7=/\/\[[^/]+\](?=\/|$)/;function re(e,t=!0){return(t6(e)&&(e=function(e){let t,r,n;for(let i of e.split("/"))if(r=t9.find(e=>i.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=t3(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let i=t.split("/");if(i.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=i.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}(e).interceptedRoute),t)?t7.test(e):t5.test(e)}let rt=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,rr=/Googlebot(?!-)|Googlebot$/i,rn=rt.source;function ri(){}new Uint8Array([60,104,116,109,108]),new Uint8Array([60,98,111,100,121]),new Uint8Array([60,47,104,101,97,100,62]),new Uint8Array([60,47,98,111,100,121,62]),new Uint8Array([60,47,104,116,109,108,62]),new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62]),new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34]);let rs=new TextEncoder;function ra(e){return new ReadableStream({start(t){t.enqueue(rs.encode(e)),t.close()}})}function ro(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function rl(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n="";for await(let i of e){if(null==t?void 0:t.aborted)return n;n+=r.decode(i,{stream:!0})}return n+r.decode()}function rc(e){var t,r,n,i,s,a=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,s=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),i=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(s=!0,o=i,a.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!s||o>=e.length)&&a.push(e.substring(t,e.length))}return a}function ru(e){let t={},r=[];if(e)for(let[n,i]of e.entries())"set-cookie"===n.toLowerCase()?(r.push(...rc(i)),t[n]=1===r.length?r[0]:r):t[n]=i;return t}function rd(e){try{return String(new URL(String(e)))}catch(t){throw Object.defineProperty(Error(`URL is malformed "${String(e)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:t}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function rh(e){for(let t of[ta,to])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function rp(e){return e.replace(/\/$/,"")||"/"}function rf(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function rm(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:i}=rf(e);return`${t}${r}${n}${i}`}function rg(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:i}=rf(e);return`${r}${t}${n}${i}`}function ry(e,t){if("string"!=typeof e)return!1;let{pathname:r}=rf(e);return r===t||r.startsWith(t+"/")}function rv(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}let rb=new WeakMap;function rE(e,t){let r;if(!t)return{pathname:e};let n=rb.get(t);n||(n=t.map(e=>e.toLowerCase()),rb.set(t,n));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),a=n.indexOf(s);return a<0?{pathname:e}:(r=t[a],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function r_(e,t){if(!ry(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}function rx(e,t){let{basePath:r,i18n:n,trailingSlash:i}=t.nextConfig??{},s={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):i};r&&ry(s.pathname,r)&&(s.pathname=r_(s.pathname,r),s.basePath=r);let a=s.pathname;if(s.pathname.startsWith("/_next/data/")&&s.pathname.endsWith(".json")){let e=s.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");s.buildId=e[0],a="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(s.pathname=a)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(s.pathname):rE(s.pathname,n.locales);s.locale=e.detectedLocale,s.pathname=e.pathname??s.pathname,!e.detectedLocale&&s.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(a):rE(a,n.locales)).detectedLocale&&(s.locale=e.detectedLocale)}return s}let rw=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function rR(e,t){return new URL(String(e).replace(rw,"localhost"),t&&String(t).replace(rw,"localhost"))}let rC=Symbol("NextURLInternal");class rP{constructor(e,t,r){let n,i;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,i=r||{}):i=r||t||{},this[rC]={url:rR(e,n??i.base),options:i,basePath:""},this.analyze()}analyze(){var e,t,r,n,i;let s=rx(this[rC].url.pathname,{nextConfig:this[rC].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[rC].options.i18nProvider}),a=rv(this[rC].url,this[rC].options.headers);this[rC].domainLocale=this[rC].options.i18nProvider?this[rC].options.i18nProvider.detectDomainLocale(a):function(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}(null==(t=this[rC].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,a);let o=(null==(r=this[rC].domainLocale)?void 0:r.defaultLocale)||(null==(i=this[rC].options.nextConfig)||null==(n=i.i18n)?void 0:n.defaultLocale);this[rC].url.pathname=s.pathname,this[rC].defaultLocale=o,this[rC].basePath=s.basePath??"",this[rC].buildId=s.buildId,this[rC].locale=s.locale??o,this[rC].trailingSlash=s.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let i=e.toLowerCase();return!n&&(ry(i,"/api")||ry(i,`/${t.toLowerCase()}`))?e:rm(e,`/${t}`)}((e={basePath:this[rC].basePath,buildId:this[rC].buildId,defaultLocale:this[rC].options.forceLocale?void 0:this[rC].defaultLocale,locale:this[rC].locale,pathname:this[rC].url.pathname,trailingSlash:this[rC].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=rp(t)),e.buildId&&(t=rg(rm(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=rm(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:rg(t,"/"):rp(t)}formatSearch(){return this[rC].url.search}get buildId(){return this[rC].buildId}set buildId(e){this[rC].buildId=e}get locale(){return this[rC].locale??""}set locale(e){var t,r;if(!this[rC].locale||!(null==(r=this[rC].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[rC].locale=e}get defaultLocale(){return this[rC].defaultLocale}get domainLocale(){return this[rC].domainLocale}get searchParams(){return this[rC].url.searchParams}get host(){return this[rC].url.host}set host(e){this[rC].url.host=e}get hostname(){return this[rC].url.hostname}set hostname(e){this[rC].url.hostname=e}get port(){return this[rC].url.port}set port(e){this[rC].url.port=e}get protocol(){return this[rC].url.protocol}set protocol(e){this[rC].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[rC].url=rR(e),this.analyze()}get origin(){return this[rC].url.origin}get pathname(){return this[rC].url.pathname}set pathname(e){this[rC].url.pathname=e}get hash(){return this[rC].url.hash}set hash(e){this[rC].url.hash=e}get search(){return this[rC].url.search}set search(e){this[rC].url.search=e}get password(){return this[rC].url.password}set password(e){this[rC].url.password=e}get username(){return this[rC].url.username}set username(e){this[rC].url.username=e}get basePath(){return this[rC].basePath}set basePath(e){this[rC].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new rP(String(this),this[rC].options)}}class rO extends Error{constructor({page:e}){super(`The middleware "${e}" accepts an async API directly with the form:
|
|
13
|
+
You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=debug\` environment variable.`),eO(),p.call(process))}),process.listeners=eC(f,function(e){return"unhandledRejection"===e?(null==t||t("Retrieving all 'unhandledRejection' listeners."),[eT,...ex]):f.call(process,e)}),e_=!0}();let eS=require("next/dist/server/app-render/work-async-storage.external.js");var ej=r("../../node_modules/.pnpm/react@19.3.0-canary-bef88f7c-20260116/node_modules/react/index.js");new WeakMap;class eN extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}function eA(e,t,r,n){let i,s,a=n.dynamicTracking;(i=Object.defineProperty(Error(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).digest="NEXT_PRERENDER_INTERRUPTED",n.controller.abort(i),(s=n.dynamicTracking)&&s.dynamicAccesses.push({stack:s.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}if(ej.unstable_postpone,!1===("Route %%% needs to bail out of prerendering at this point because it used ^^^. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error".includes("needs to bail out of prerendering at this point because it used")&&"Route %%% needs to bail out of prerendering at this point because it used ^^^. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error".includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});function eD(e,t){let r=B.workUnitAsyncStorage.getStore(),n=eS.workAsyncStorage.getStore();if(r&&n)switch(r.type){case"prerender":case"prerender-runtime":if(!1===r.controller.signal.aborted){let i;switch(t){case"time":i=`Route "${n.route}" used ${e} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing the current time in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time`;break;case"random":i=`Route "${n.route}" used ${e} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-random`;break;case"crypto":i=`Route "${n.route}" used ${e} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random cryptographic values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto`;break;default:throw Object.defineProperty(new eN("Unknown expression type in abortOnSynchronousPlatformIOAccess."),"__NEXT_ERROR_CODE",{value:"E526",enumerable:!1,configurable:!0})}eA(n.route,e,Object.defineProperty(Error(i),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),r)}break;case"prerender-client":if(!1===r.controller.signal.aborted){let i;switch(t){case"time":i=`Route "${n.route}" used ${e} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time-client`;break;case"random":i=`Route "${n.route}" used ${e} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-random-client`;break;case"crypto":i=`Route "${n.route}" used ${e} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto-client`;break;default:throw Object.defineProperty(new eN("Unknown expression type in abortOnSynchronousPlatformIOAccess."),"__NEXT_ERROR_CODE",{value:"E526",enumerable:!1,configurable:!0})}eA(n.route,e,Object.defineProperty(Error(i),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),r)}}}RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at __next_root_layout_boundary__ \\([^\\n]*\\)`),RegExp(`\\n\\s+at __next_metadata_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_viewport_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_outlet_boundary__[\\n\\s]`),require("next/dist/server/runtime-reacts.external.js");let e$="`Math.random()`";try{let e=Math.random;Math.random=(function(){return eD(e$,"random"),e.apply(null,arguments)}).bind(null),Object.defineProperty(Math.random,"name",{value:"random"})}catch{console.error(`Failed to install ${e$} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}try{let e,t,r,n;Date=(v=Date,(e=Object.getOwnPropertyDescriptors(v)).now.value=(b=v.now,({now:function(){return eD("`Date.now()`","time"),b()}})["now".slice()].bind(null)),t=Reflect.apply,r=Reflect.construct,n=Object.defineProperties(function(){return new.target===void 0?(eD("`Date()`","time"),t(v,void 0,arguments)):(0==arguments.length&&eD("`new Date()`","time"),r(v,arguments,new.target))},e),Object.defineProperty(v.prototype,"constructor",{value:n}),n)}catch{console.error("Failed to install `Date` class extension. When using `cacheComponents`, APIs that read the current time will not correctly trigger dynamic behavior.")}m="undefined"==typeof crypto?r("node:crypto").webcrypto:crypto;let ek="`crypto.getRandomValues()`";try{let e=m.getRandomValues;m.getRandomValues=function(){return eD(ek,"crypto"),e.apply(m,arguments)}}catch{console.error(`Failed to install ${ek} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}try{let e=m.randomUUID;m.randomUUID=function(){return eD("`crypto.randomUUID()`","crypto"),e.apply(m,arguments)}}catch{console.error(`Failed to install ${ek} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}{let e=r("node:crypto"),t="`require('node:crypto').randomUUID()`";try{let r=e.randomUUID;e.randomUUID=function(){return eD(t,"random"),r.apply(this,arguments)}}catch{console.error(`Failed to install ${t} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}let n="`require('node:crypto').randomBytes(size)`";try{let t=e.randomBytes;e.randomBytes=function(){return"function"!=typeof arguments[1]&&eD(n,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${n} extension. When using \`cacheComponents\` calling this function without a callback argument will not correctly trigger dynamic behavior.`)}let i="`require('node:crypto').randomFillSync(...)`";try{let t=e.randomFillSync;e.randomFillSync=function(){return eD(i,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${i} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}try{let t=e.randomInt;e.randomInt=function(){return"function"!=typeof arguments[2]&&eD("`require('node:crypto').randomInt(min, max)`","random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${n} extension. When using \`cacheComponents\` calling this function without a callback argument will not correctly trigger dynamic behavior.`)}let s="`require('node:crypto').generatePrimeSync(...)`";try{let t=e.generatePrimeSync;e.generatePrimeSync=function(){return eD(s,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${s} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}let a="`require('node:crypto').generateKeyPairSync(...)`";try{let t=e.generateKeyPairSync;e.generateKeyPairSync=function(){return eD(a,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${a} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}let o="`require('node:crypto').generateKeySync(...)`";try{let t=e.generateKeySync;e.generateKeySync=function(){return eD(o,"random"),t.apply(this,arguments)}}catch{console.error(`Failed to install ${o} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`)}}require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js");let eI=r("path"),eM=r("module"),eL=eM.prototype.require,eq=eM._resolveFilename,eH=require.resolve,eF=new Map;!function(e=[]){for(let[t,r]of e)eF.set(t,r)}(Object.entries({"styled-jsx":eI.dirname(eH("styled-jsx/package.json")),"styled-jsx/style":eH("styled-jsx/style"),"styled-jsx/style.js":eH("styled-jsx/style")}).map(([e,t])=>[e,eH(t)])),eM._resolveFilename=(function(e,t,r,n,i,s){let a=t.get(r);return a&&(r=a),e.call(eM,r,n,i,s)}).bind(null,eq,eF),eM.prototype.require=function(e){return e.endsWith(".shared-runtime")?eL.call(this,`next/dist/server/route-modules/pages/vendored/contexts/${eI.basename(e,".shared-runtime")}`):eL.call(this,e)},r("./dist/esm/server/node-polyfill-crypto.js"),"undefined"!=typeof performance&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class ez extends Error{}class eU extends Error{}class eX extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class eW extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}var eB=r("./dist/compiled/path-to-regexp/index.js");let eG="_NEXTSEP_";function eV(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function eK(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${eG}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${eG}`)}function eY(e){return e.replace(RegExp(`\\)${eG}`,"g"),")")}function eJ(e,t,r){if("string"!=typeof e)return(0,eB.pathToRegexp)(e,t,r);let n=eV(e),i=n?eK(e):e;try{return(0,eB.pathToRegexp)(i,t,r)}catch(i){if(!n)try{let n=eK(e);return(0,eB.pathToRegexp)(n,t,r)}catch(e){}throw i}}function eQ(e,t){let r=eV(e),n=r?eK(e):e;try{let e=(0,eB.compile)(n,t);if(r)return t=>eY(e(t));return e}catch(n){if(!r)try{let r=eK(e),n=(0,eB.compile)(r,t);return e=>eY(n(e))}catch(e){}throw n}}function eZ({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let i=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new ez("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},s={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?s[e]=t.split("/").map(e=>i(e)):s[e]=i(t))}return s},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${eG}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${eG}`),""):e):n[e]=r;return n}}let e0=Symbol.for("NextInternalRequestMeta");function e1(e,t){let r=e[e0]||{};return"string"==typeof t?r[t]:r}function e4(e,t,r){let n=e1(e);return n[t]=r,e[e0]=n,n}function e2(e,t){let r=e1(e);return delete r[t],e[e0]=r,r}r("./dist/esm/shared/lib/modern-browserslist-target.js");let e3="/_not-found",e8=`${e3}/page`,e9="pages-manifest.json",e6="app-paths-manifest.json",e5="server";[...process?.features?.typescript?["next.config.mts"]:[]];let e7=["/_document","/_app","/_error"];Symbol("polyfills");let te=["/500"];function tt(e,t){let r=A().join(e,t);return ed().existsSync(r)||(r=A().join(e,"src",t),ed().existsSync(r))?r:null}class tr{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class tn extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new tn}}class ti extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return tr.get(t,r,n);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);if(void 0!==s)return tr.get(t,s,n)},set(t,r,n,i){if("symbol"==typeof r)return tr.set(t,r,n,i);let s=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===s);return tr.set(t,a??r,n,i)},has(t,r){if("symbol"==typeof r)return tr.has(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==i&&tr.has(t,i)},deleteProperty(t,r){if("symbol"==typeof r)return tr.deleteProperty(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===i||tr.deleteProperty(t,i)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return tn.callable;default:return tr.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new ti(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}let ts="text/html; charset=utf-8",ta="nxtP",to="nxtI",tl="x-matched-path",tc=".segments",tu=".segment.rsc",td=".rsc",th=".json",tp=".meta",tf="x-next-cache-tags",tm="x-next-revalidated-tags",tg={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"};({...tg,GROUP:{builtinReact:[tg.reactServerComponents,tg.actionBrowser],serverOnly:[tg.reactServerComponents,tg.actionBrowser,tg.instrument,tg.middleware],neutralTarget:[tg.apiNode,tg.apiEdge],clientOnly:[tg.serverSideRendering,tg.appPagesBrowser],bundled:[tg.reactServerComponents,tg.actionBrowser,tg.serverSideRendering,tg.appPagesBrowser,tg.shared,tg.instrument,tg.middleware],appPages:[tg.reactServerComponents,tg.serverSideRendering,tg.appPagesBrowser,tg.actionBrowser]}});let ty=require("next/dist/server/lib/trace/tracer");var tv=((E=tv||{}).handleRequest="BaseServer.handleRequest",E.run="BaseServer.run",E.pipe="BaseServer.pipe",E.getStaticHTML="BaseServer.getStaticHTML",E.render="BaseServer.render",E.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",E.renderToResponse="BaseServer.renderToResponse",E.renderToHTML="BaseServer.renderToHTML",E.renderError="BaseServer.renderError",E.renderErrorToResponse="BaseServer.renderErrorToResponse",E.renderErrorToHTML="BaseServer.renderErrorToHTML",E.render404="BaseServer.render404",E),tb=((_=tb||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",_.loadComponents="LoadComponents.loadComponents",_),tE=((x=tE||{}).compression="NextNodeServer.compression",x.getBuildId="NextNodeServer.getBuildId",x.createComponentTree="NextNodeServer.createComponentTree",x.clientComponentLoading="NextNodeServer.clientComponentLoading",x.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",x.generateStaticRoutes="NextNodeServer.generateStaticRoutes",x.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",x.generatePublicRoutes="NextNodeServer.generatePublicRoutes",x.generateImageRoutes="NextNodeServer.generateImageRoutes.route",x.sendRenderResult="NextNodeServer.sendRenderResult",x.proxyRequest="NextNodeServer.proxyRequest",x.runApi="NextNodeServer.runApi",x.render="NextNodeServer.render",x.renderHTML="NextNodeServer.renderHTML",x.imageOptimizer="NextNodeServer.imageOptimizer",x.getPagePath="NextNodeServer.getPagePath",x.getRoutesManifest="NextNodeServer.getRoutesManifest",x.findPageComponents="NextNodeServer.findPageComponents",x.getFontManifest="NextNodeServer.getFontManifest",x.getServerComponentManifest="NextNodeServer.getServerComponentManifest",x.getRequestHandler="NextNodeServer.getRequestHandler",x.renderToHTML="NextNodeServer.renderToHTML",x.renderError="NextNodeServer.renderError",x.renderErrorToHTML="NextNodeServer.renderErrorToHTML",x.render404="NextNodeServer.render404",x.startResponse="NextNodeServer.startResponse",x.route="route",x.onProxyReq="onProxyReq",x.apiResolver="apiResolver",x.internalFetch="internalFetch",x);Symbol("__next_preview_data");let t_=Symbol("__prerender_bypass");var tx=((w={})[w.SeeOther=303]="SeeOther",w[w.TemporaryRedirect=307]="TemporaryRedirect",w[w.PermanentRedirect=308]="PermanentRedirect",w);function tw(e){return function(){let{cookie:t}=e;if(!t)return{};let{parse:n}=r("./dist/compiled/cookie/index.js");return n(Array.isArray(t)?t.join("; "):t)}}class tR{constructor(e,t,r){this.method=e,this.url=t,this.body=r}get cookies(){return this._cookies?this._cookies:this._cookies=tw(this.headers)()}}class tC{constructor(e){this.destination=e}redirect(e,t){return this.setHeader("Location",e),this.statusCode=t,t===tx.PermanentRedirect&&this.setHeader("Refresh",`0;url=${e}`),this}}class tP extends tR{static #e=T=e0;constructor(e){var t;super(e.method.toUpperCase(),e.url,e),this._req=e,this.headers=this._req.headers,this.fetchMetrics=null==(t=this._req)?void 0:t.fetchMetrics,this[T]=this._req[e0]||{},this.streaming=!1}get originalRequest(){return this._req[e0]=this[e0],this._req.url=this.url,this._req.cookies=this.cookies,this._req}set originalRequest(e){this._req=e}stream(){if(this.streaming)throw Object.defineProperty(Error("Invariant: NodeNextRequest.stream() can only be called once"),"__NEXT_ERROR_CODE",{value:"E467",enumerable:!1,configurable:!0});return this.streaming=!0,new ReadableStream({start:e=>{this._req.on("data",t=>{e.enqueue(new Uint8Array(t))}),this._req.on("end",()=>{e.close()}),this._req.on("error",t=>{e.error(t)})}})}}class tO extends tC{get originalResponse(){return t_ in this&&(this._res[t_]=this[t_]),this._res}constructor(e){super(e),this._res=e,this.textBody=void 0}get sent(){return this._res.finished||this._res.headersSent}get statusCode(){return this._res.statusCode}set statusCode(e){this._res.statusCode=e}get statusMessage(){return this._res.statusMessage}set statusMessage(e){this._res.statusMessage=e}setHeader(e,t){return this._res.setHeader(e,t),this}removeHeader(e){return this._res.removeHeader(e),this}getHeaderValues(e){let t=this._res.getHeader(e);if(void 0!==t)return(Array.isArray(t)?t:[t]).map(e=>e.toString())}hasHeader(e){return this._res.hasHeader(e)}getHeader(e){let t=this.getHeaderValues(e);return Array.isArray(t)?t.join(","):void 0}getHeaders(){return this._res.getHeaders()}appendHeader(e,t){let r=this.getHeaderValues(e)??[];return r.includes(t)||this._res.setHeader(e,[...r,t]),this}body(e){return this.textBody=e,this}send(){this._res.end(this.textBody)}onClose(e){this.originalResponse.on("close",e)}}var tT=r("./dist/compiled/fresh/index.js"),tS=r.n(tT);async function tj({req:e,res:t,result:r,generateEtags:n,poweredByHeader:i,cacheControl:s}){if(t.finished||t.headersSent)return;i&&r.contentType===ts&&t.setHeader("X-Powered-By","Next.js"),s&&!t.getHeader("Cache-Control")&&t.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e<t?`, stale-while-revalidate=${t-e}`:"";return 0===e?"private, no-cache, no-store, max-age=0, must-revalidate":"number"==typeof e?`s-maxage=${e}${r}`:`s-maxage=31536000${r}`}(s));let a=r.isDynamic?null:r.toUnchunkedString();if(n&&null!==a){let r=((e,t=!1)=>(t?'W/"':'"')+(e=>{let t=e.length,r=0,n=0,i=8997,s=0,a=33826,o=0,l=40164,c=0,u=52210;for(;r<t;)i^=e.charCodeAt(r++),n=435*i,s=435*a,o=435*l,c=435*u,o+=i<<8,c+=a<<8,s+=n>>>16,i=65535&n,o+=s>>>16,a=65535&s,u=c+(o>>>16)&65535,l=65535&o;return(15&u)*0x1000000000000+0x100000000*l+65536*a+(i^u>>4)})(e).toString(36)+e.length.toString(36)+'"')(a);if(r&&t.setHeader("ETag",r),tS()(e.headers,{etag:r})&&(t.statusCode=304,t.end(),1))return}(!t.getHeader("Content-Type")&&r.contentType&&t.setHeader("Content-Type",r.contentType),a&&t.setHeader("Content-Length",Buffer.byteLength(a)),"HEAD"===e.method)?t.end(null):null!==a?t.end(a):await r.pipeToNodeResponse(t)}function tN(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function tA(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function tD(e){if(e.startsWith("/"))return function(e,t,r=!0){let n=new URL("http://n"),i=e.startsWith(".")?new URL("http://n"):n,{pathname:s,searchParams:a,search:o,hash:l,href:c,origin:u}=e.startsWith("/")?new URL(`${i.protocol}//${i.host}${e}`):new URL(e,i);if(u!==n.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${e}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:s,port:null,protocol:null,query:r?tN(a):void 0,search:o,hash:l,href:c.slice(u.length),slashes:null}}(e);let t=new URL(e),r=t.username,n=t.password,i=r?n?`${r}:${n}`:r:null,s=t.pathname,a=t.search;return{auth:i,hash:t.hash,hostname:t.hostname,href:t.href,pathname:s,port:t.port,protocol:t.protocol,query:tN(t.searchParams),search:a,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}let t$={wait:es(Q("○")),error:et(Q("⨯")),warn:en(Q("⚠")),ready:"▲",info:es(Q(" ")),event:er(Q("✓")),trace:ei(Q("\xbb"))},tk={log:"log",warn:"warn",error:"error"};function tI(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in tk?tk[e]:"log",n=t$[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function tM(e){console.log(e)}function tL(...e){tI("wait",...e)}function tq(...e){tI("error",...e)}function tH(...e){tI("warn",...e)}function tF(...e){tI("ready",...e)}function tz(...e){tI("info",...e)}function tU(...e){tI("event",...e)}function tX(...e){tI("trace",...e)}let tW=new M(1e4,e=>e.length);function tB(...e){let t=e.join(" ");tW.has(t)||(tW.set(t,t),tH(...e))}let tG=new M(1e4,e=>e.length);function tV(...e){let t=e.join(" ");tG.has(t)||(tG.set(t,t),tq(...e))}var tK=r("os"),tY=r.n(tK);let tJ="100 MB";function tQ(e){let t=r("./dist/compiled/bytes/index.js").parse(e??tJ);return null===t||isNaN(t)||t<1?void 0:t}Object.freeze({env:{},webpack:null,typescript:{ignoreBuildErrors:!1,tsconfigPath:void 0},typedRoutes:!1,distDir:".next",cleanDistDir:!0,assetPrefix:"",cacheHandler:process.env.NEXT_CACHE_HANDLER_PATH,cacheMaxMemorySize:0x3200000,configOrigin:"default",useFileSystemPublicRoutes:!0,generateBuildId:()=>null,generateEtags:!0,pageExtensions:["tsx","ts","jsx","js"],poweredByHeader:!0,compress:!0,images:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1},devIndicators:{position:"bottom-left"},onDemandEntries:{maxInactiveAge:6e4,pagesBufferLength:5},basePath:"",sassOptions:{},trailingSlash:!1,i18n:null,productionBrowserSourceMaps:!1,excludeDefaultMomentLocales:!0,reactProductionProfiling:!1,reactStrictMode:null,reactMaxHeadersLength:6e3,httpAgentOptions:{keepAlive:!0},logging:{},compiler:{},expireTime:process.env.NEXT_PRIVATE_CDN_CONSUMED_SWR_CACHE_CONTROL?void 0:31536e3,staticPageGenerationTimeout:60,output:process.env.NEXT_PRIVATE_STANDALONE?"standalone":void 0,modularizeImports:void 0,outputFileTracingRoot:process.env.NEXT_PRIVATE_OUTPUT_TRACE_ROOT||"",allowedDevOrigins:void 0,enablePrerenderSourceMaps:void 0,cacheComponents:!1,cacheLife:{default:{stale:void 0,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},cacheHandlers:{default:process.env.NEXT_DEFAULT_CACHE_HANDLER_PATH,remote:process.env.NEXT_REMOTE_CACHE_HANDLER_PATH,static:process.env.NEXT_STATIC_CACHE_HANDLER_PATH},experimental:{adapterPath:process.env.NEXT_ADAPTER_PATH||void 0,useSkewCookie:!1,cssChunking:!0,multiZoneDraftMode:!1,appNavFailHandling:!1,prerenderEarlyExit:!0,serverMinification:!0,linkNoTouchStart:!1,caseSensitiveRoutes:!1,clientParamParsingOrigins:void 0,dynamicOnHover:!1,preloadEntriesOnStart:!0,clientRouterFilter:!0,clientRouterFilterRedirects:!1,fetchCacheKeyPrefix:"",proxyPrefetch:"flexible",optimisticClientCache:!0,manualClientBasePath:!1,cpus:Math.max(1,(Number(process.env.CIRCLE_NODE_TOTAL)||(tY().cpus()||{length:1}).length)-1),memoryBasedWorkersCount:!1,imgOptConcurrency:null,imgOptTimeoutInSeconds:7,imgOptMaxInputPixels:0xfff8001,imgOptSequentialRead:null,imgOptSkipMetadata:null,isrFlushToDisk:!0,workerThreads:!1,proxyTimeout:void 0,optimizeCss:!1,nextScriptWorkers:!1,scrollRestoration:!1,externalDir:!1,disableOptimizedLoading:!1,gzipSize:!0,craCompat:!1,esmExternals:!0,fullySpecified:!1,swcTraceProfiling:!1,forceSwcTransforms:!1,swcPlugins:void 0,largePageDataBytes:128e3,disablePostcssPresetEnv:void 0,urlImports:void 0,typedEnv:!1,clientTraceMetadata:void 0,parallelServerCompiles:!1,parallelServerBuildTraces:!1,ppr:!1,authInterrupts:!1,webpackBuildWorker:void 0,webpackMemoryOptimizations:!1,optimizeServerReact:!0,strictRouteTypes:!1,viewTransition:!1,removeUncaughtErrorAndRejectionListeners:!1,validateRSCRequestHeaders:!!(process.env.__NEXT_TEST_MODE||!(!"16.1.1-canary.33".includes("canary")&&!process.env.__NEXT_TEST_MODE&&!process.env.NEXT_PRIVATE_LOCAL_DEV)),staleTimes:{dynamic:0,static:300},allowDevelopmentBuild:void 0,reactDebugChannel:!1,staticGenerationRetryCount:void 0,serverComponentsHmrCache:!0,staticGenerationMaxConcurrency:8,staticGenerationMinPagesPerWorker:25,transitionIndicator:!1,inlineCss:!1,useCache:void 0,slowModuleDetection:void 0,globalNotFound:!1,browserDebugInfoInTerminal:"warn",lockDistDir:!0,isolatedDevBuild:!0,proxyClientMaxBodySize:0xa00000,hideLogsAfterAbort:!1,mcpServer:!0,turbopackFileSystemCacheForDev:!0,turbopackFileSystemCacheForBuild:!1,turbopackInferModuleSideEffects:!0,devCacheControlNoCache:!1},htmlLimitedBots:void 0,bundlePagesRouterDependencies:!1});let tZ="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",t0=`(${tZ}[.]){3}${tZ}`,t1="(?:[0-9a-fA-F]{1,4})",t4=RegExp(`^((?:${t1}:){7}(?:${t1}|:)|(?:${t1}:){6}(?:${t0}|:${t1}|:)|(?:${t1}:){5}(?::${t0}|(:${t1}){1,2}|:)|(?:${t1}:){4}(?:(:${t1}){0,1}:${t0}|(:${t1}){1,3}|:)|(?:${t1}:){3}(?:(:${t1}){0,2}:${t0}|(:${t1}){1,4}|:)|(?:${t1}:){2}(?:(:${t1}){0,3}:${t0}|(:${t1}){1,5}|:)|(?:${t1}:){1}(?:(:${t1}){0,4}:${t0}|(:${t1}){1,6}|:)|(?::((?::${t1}){0,5}:${t0}|(?::${t1}){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$`);function t2(e){return e.startsWith("/")?e:`/${e}`}function t3(e){return t2(e.split("/").reduce((e,t,r,n)=>t?"("===t[0]&&t.endsWith(")")||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`:e,""))}function t8(e){return e.replace(/\.rsc($|\?)/,"$1")}let t9=["(..)(..)","(.)","(..)","(...)"];function t6(e){return void 0!==e.split("/").find(e=>t9.find(t=>e.startsWith(t)))}let t5=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,t7=/\/\[[^/]+\](?=\/|$)/;function re(e,t=!0){return(t6(e)&&(e=function(e){let t,r,n;for(let i of e.split("/"))if(r=t9.find(e=>i.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=t3(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let i=t.split("/");if(i.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=i.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}(e).interceptedRoute),t)?t7.test(e):t5.test(e)}let rt=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,rr=/Googlebot(?!-)|Googlebot$/i,rn=rt.source;function ri(){}new Uint8Array([60,104,116,109,108]),new Uint8Array([60,98,111,100,121]),new Uint8Array([60,47,104,101,97,100,62]),new Uint8Array([60,47,98,111,100,121,62]),new Uint8Array([60,47,104,116,109,108,62]),new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62]),new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34]);let rs=new TextEncoder;function ra(e){return new ReadableStream({start(t){t.enqueue(rs.encode(e)),t.close()}})}function ro(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function rl(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n="";for await(let i of e){if(null==t?void 0:t.aborted)return n;n+=r.decode(i,{stream:!0})}return n+r.decode()}function rc(e){var t,r,n,i,s,a=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,s=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),i=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(s=!0,o=i,a.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!s||o>=e.length)&&a.push(e.substring(t,e.length))}return a}function ru(e){let t={},r=[];if(e)for(let[n,i]of e.entries())"set-cookie"===n.toLowerCase()?(r.push(...rc(i)),t[n]=1===r.length?r[0]:r):t[n]=i;return t}function rd(e){try{return String(new URL(String(e)))}catch(t){throw Object.defineProperty(Error(`URL is malformed "${String(e)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:t}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function rh(e){for(let t of[ta,to])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function rp(e){return e.replace(/\/$/,"")||"/"}function rf(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function rm(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:i}=rf(e);return`${t}${r}${n}${i}`}function rg(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:i}=rf(e);return`${r}${t}${n}${i}`}function ry(e,t){if("string"!=typeof e)return!1;let{pathname:r}=rf(e);return r===t||r.startsWith(t+"/")}function rv(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}let rb=new WeakMap;function rE(e,t){let r;if(!t)return{pathname:e};let n=rb.get(t);n||(n=t.map(e=>e.toLowerCase()),rb.set(t,n));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),a=n.indexOf(s);return a<0?{pathname:e}:(r=t[a],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function r_(e,t){if(!ry(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}function rx(e,t){let{basePath:r,i18n:n,trailingSlash:i}=t.nextConfig??{},s={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):i};r&&ry(s.pathname,r)&&(s.pathname=r_(s.pathname,r),s.basePath=r);let a=s.pathname;if(s.pathname.startsWith("/_next/data/")&&s.pathname.endsWith(".json")){let e=s.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");s.buildId=e[0],a="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(s.pathname=a)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(s.pathname):rE(s.pathname,n.locales);s.locale=e.detectedLocale,s.pathname=e.pathname??s.pathname,!e.detectedLocale&&s.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(a):rE(a,n.locales)).detectedLocale&&(s.locale=e.detectedLocale)}return s}let rw=/(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/;function rR(e,t){return new URL(String(e).replace(rw,"localhost"),t&&String(t).replace(rw,"localhost"))}let rC=Symbol("NextURLInternal");class rP{constructor(e,t,r){let n,i;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,i=r||{}):i=r||t||{},this[rC]={url:rR(e,n??i.base),options:i,basePath:""},this.analyze()}analyze(){var e,t,r,n,i;let s=rx(this[rC].url.pathname,{nextConfig:this[rC].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[rC].options.i18nProvider}),a=rv(this[rC].url,this[rC].options.headers);this[rC].domainLocale=this[rC].options.i18nProvider?this[rC].options.i18nProvider.detectDomainLocale(a):function(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}(null==(t=this[rC].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,a);let o=(null==(r=this[rC].domainLocale)?void 0:r.defaultLocale)||(null==(i=this[rC].options.nextConfig)||null==(n=i.i18n)?void 0:n.defaultLocale);this[rC].url.pathname=s.pathname,this[rC].defaultLocale=o,this[rC].basePath=s.basePath??"",this[rC].buildId=s.buildId,this[rC].locale=s.locale??o,this[rC].trailingSlash=s.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let i=e.toLowerCase();return!n&&(ry(i,"/api")||ry(i,`/${t.toLowerCase()}`))?e:rm(e,`/${t}`)}((e={basePath:this[rC].basePath,buildId:this[rC].buildId,defaultLocale:this[rC].options.forceLocale?void 0:this[rC].defaultLocale,locale:this[rC].locale,pathname:this[rC].url.pathname,trailingSlash:this[rC].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=rp(t)),e.buildId&&(t=rg(rm(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=rm(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:rg(t,"/"):rp(t)}formatSearch(){return this[rC].url.search}get buildId(){return this[rC].buildId}set buildId(e){this[rC].buildId=e}get locale(){return this[rC].locale??""}set locale(e){var t,r;if(!this[rC].locale||!(null==(r=this[rC].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[rC].locale=e}get defaultLocale(){return this[rC].defaultLocale}get domainLocale(){return this[rC].domainLocale}get searchParams(){return this[rC].url.searchParams}get host(){return this[rC].url.host}set host(e){this[rC].url.host=e}get hostname(){return this[rC].url.hostname}set hostname(e){this[rC].url.hostname=e}get port(){return this[rC].url.port}set port(e){this[rC].url.port=e}get protocol(){return this[rC].url.protocol}set protocol(e){this[rC].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[rC].url=rR(e),this.analyze()}get origin(){return this[rC].url.origin}get pathname(){return this[rC].url.pathname}set pathname(e){this[rC].url.pathname=e}get hash(){return this[rC].url.hash}set hash(e){this[rC].url.hash=e}get search(){return this[rC].url.search}set search(e){this[rC].url.search=e}get password(){return this[rC].url.password}set password(e){this[rC].url.password=e}get username(){return this[rC].url.username}set username(e){this[rC].url.username=e}get basePath(){return this[rC].basePath}set basePath(e){this[rC].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new rP(String(this),this[rC].options)}}class rO extends Error{constructor({page:e}){super(`The middleware "${e}" accepts an async API directly with the form:
|
|
14
14
|
|
|
15
15
|
export function middleware(request, event) {
|
|
16
16
|
return NextResponse.redirect('/new-location')
|
package/dist/esm/build/index.js
CHANGED
|
@@ -312,7 +312,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
|
|
|
312
312
|
try {
|
|
313
313
|
const nextBuildSpan = trace('next-build', undefined, {
|
|
314
314
|
buildMode: experimentalBuildMode,
|
|
315
|
-
version: "16.1.1-canary.
|
|
315
|
+
version: "16.1.1-canary.33"
|
|
316
316
|
});
|
|
317
317
|
NextBuildContext.nextBuildSpan = nextBuildSpan;
|
|
318
318
|
NextBuildContext.dir = dir;
|
|
@@ -822,7 +822,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
|
|
|
822
822
|
// Files outside of the distDir can be "type": "module"
|
|
823
823
|
await writeFileUtf8(path.join(distDir, 'package.json'), '{"type": "commonjs"}');
|
|
824
824
|
// These are written to distDir, so they need to come after creating and cleaning distDr.
|
|
825
|
-
await recordFrameworkVersion("16.1.1-canary.
|
|
825
|
+
await recordFrameworkVersion("16.1.1-canary.33");
|
|
826
826
|
await updateBuildDiagnostics({
|
|
827
827
|
buildStage: 'start'
|
|
828
828
|
});
|
|
@@ -2505,7 +2505,7 @@ export default async function build(dir, experimentalAnalyze = false, reactProdu
|
|
|
2505
2505
|
configOutDir: path.join(dir, configOutDir),
|
|
2506
2506
|
staticPages,
|
|
2507
2507
|
serverPropsPages,
|
|
2508
|
-
nextVersion: "16.1.1-canary.
|
|
2508
|
+
nextVersion: "16.1.1-canary.33",
|
|
2509
2509
|
tracingRoot: outputFileTracingRoot,
|
|
2510
2510
|
hasNodeMiddleware,
|
|
2511
2511
|
hasInstrumentationHook,
|
|
@@ -10,7 +10,7 @@ import { downloadNativeNextSwc, downloadWasmSwc } from '../../lib/download-swc';
|
|
|
10
10
|
import { isDeepStrictEqual } from 'util';
|
|
11
11
|
import { getDefineEnv } from '../define-env';
|
|
12
12
|
import { throwTurbopackInternalError } from '../../shared/lib/turbopack/internal-error';
|
|
13
|
-
const nextVersion = "16.1.1-canary.
|
|
13
|
+
const nextVersion = "16.1.1-canary.33";
|
|
14
14
|
const ArchName = arch();
|
|
15
15
|
const PlatformName = platform();
|
|
16
16
|
function infoLog(...args) {
|
|
@@ -1622,7 +1622,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
|
|
|
1622
1622
|
isClient && new CopyFilePlugin({
|
|
1623
1623
|
// file path to build output of `@next/polyfill-nomodule`
|
|
1624
1624
|
filePath: require.resolve('./polyfills/polyfill-nomodule'),
|
|
1625
|
-
cacheKey: "16.1.1-canary.
|
|
1625
|
+
cacheKey: "16.1.1-canary.33",
|
|
1626
1626
|
name: `static/chunks/polyfills${dev ? '' : '-[hash]'}.js`,
|
|
1627
1627
|
minimize: false,
|
|
1628
1628
|
info: {
|
|
@@ -1816,7 +1816,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
|
|
|
1816
1816
|
// - Next.js location on disk (some loaders use absolute paths and some resolve options depend on absolute paths)
|
|
1817
1817
|
// - Next.js version
|
|
1818
1818
|
// - next.config.js keys that affect compilation
|
|
1819
|
-
version: `${__dirname}|${"16.1.1-canary.
|
|
1819
|
+
version: `${__dirname}|${"16.1.1-canary.33"}|${configVars}`,
|
|
1820
1820
|
cacheDirectory: path.join(distDir, 'cache', 'webpack'),
|
|
1821
1821
|
// For production builds, it's more efficient to compress all cache files together instead of compression each one individually.
|
|
1822
1822
|
// So we disable compression here and allow the build runner to take care of compressing the cache as a whole.
|
|
@@ -1872,7 +1872,7 @@ export default async function getBaseWebpackConfig(dir, { buildId, encryptionKey
|
|
|
1872
1872
|
type: 'filesystem',
|
|
1873
1873
|
directory: cache.cacheDirectory
|
|
1874
1874
|
},
|
|
1875
|
-
version: `${__dirname}|${"16.1.1-canary.
|
|
1875
|
+
version: `${__dirname}|${"16.1.1-canary.33"}|${configVars}`
|
|
1876
1876
|
};
|
|
1877
1877
|
}
|
|
1878
1878
|
if (process.env.NEXT_WEBPACK_LOGGING) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - next/script with `beforeInteractive` strategy
|
|
6
6
|
*/ import { getAssetPrefix } from './asset-prefix';
|
|
7
7
|
import { setAttributesFromProps } from './set-attributes-from-props';
|
|
8
|
-
const version = "16.1.1-canary.
|
|
8
|
+
const version = "16.1.1-canary.33";
|
|
9
9
|
window.next = {
|
|
10
10
|
version,
|
|
11
11
|
appDir: true
|
package/dist/esm/client/index.js
CHANGED
|
@@ -25,7 +25,7 @@ import { SearchParamsContext, PathParamsContext } from '../shared/lib/hooks-clie
|
|
|
25
25
|
import { onRecoverableError } from './react-client-callbacks/on-recoverable-error';
|
|
26
26
|
import tracer from './tracing/tracer';
|
|
27
27
|
import { isNextRouterError } from './components/is-next-router-error';
|
|
28
|
-
export const version = "16.1.1-canary.
|
|
28
|
+
export const version = "16.1.1-canary.33";
|
|
29
29
|
export let router;
|
|
30
30
|
export const emitter = mitt();
|
|
31
31
|
const looseToArray = (input)=>[].slice.call(input);
|
|
@@ -6,25 +6,13 @@ import fs from 'fs';
|
|
|
6
6
|
import isError from './is-error';
|
|
7
7
|
const glob = promisify(globOriginal);
|
|
8
8
|
/**
|
|
9
|
-
* Escapes bracket expressions
|
|
10
|
-
*
|
|
9
|
+
* Escapes Next.js dynamic route bracket expressions so glob treats them as
|
|
10
|
+
* literal directory names rather than character classes.
|
|
11
11
|
*
|
|
12
12
|
* e.g., "app/blog/[slug]/** /page.tsx" → "app/blog/\[slug\]/** /page.tsx"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const bracketRegex = /\[\[?\.\.\.[^\]]+\]?\]|\[[^\]]+\]/g;
|
|
17
|
-
let lastIndex = 0;
|
|
18
|
-
let result = '';
|
|
19
|
-
let match;
|
|
20
|
-
while((match = bracketRegex.exec(pattern)) !== null){
|
|
21
|
-
const pathPrefix = pattern.slice(0, match.index + match[0].length);
|
|
22
|
-
const exists = fs.existsSync(path.join(projectDir, pathPrefix));
|
|
23
|
-
result += pattern.slice(lastIndex, match.index);
|
|
24
|
-
result += exists ? match[0].replace(/\[/g, '\\[').replace(/\]/g, '\\]') : match[0];
|
|
25
|
-
lastIndex = match.index + match[0].length;
|
|
26
|
-
}
|
|
27
|
-
return result + pattern.slice(lastIndex);
|
|
13
|
+
*/ function escapeBrackets(pattern) {
|
|
14
|
+
// Match Next.js dynamic route patterns: [name], [...name], [[...name]]
|
|
15
|
+
return pattern.replace(/\[\[?\.\.\.[^\]]+\]?\]|\[[^\]]+\]/g, (match)=>match.replace(/\[/g, '\\[').replace(/\]/g, '\\]'));
|
|
28
16
|
}
|
|
29
17
|
/**
|
|
30
18
|
* Resolves glob patterns and explicit paths to actual file paths.
|
|
@@ -36,8 +24,8 @@ const glob = promisify(globOriginal);
|
|
|
36
24
|
const trimmed = pattern.trim();
|
|
37
25
|
if (!trimmed) continue;
|
|
38
26
|
try {
|
|
39
|
-
// Escape brackets
|
|
40
|
-
const escapedPattern =
|
|
27
|
+
// Escape brackets for Next.js dynamic route directories
|
|
28
|
+
const escapedPattern = escapeBrackets(trimmed);
|
|
41
29
|
const matches = await glob(escapedPattern, {
|
|
42
30
|
cwd: projectDir
|
|
43
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/resolve-build-paths.ts"],"sourcesContent":["import { promisify } from 'util'\nimport globOriginal from 'next/dist/compiled/glob'\nimport * as Log from '../build/output/log'\nimport path from 'path'\nimport fs from 'fs'\nimport isError from './is-error'\n\nconst glob = promisify(globOriginal)\n\ninterface ResolvedBuildPaths {\n appPaths: string[]\n pagePaths: string[]\n}\n\n/**\n * Escapes bracket expressions
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/resolve-build-paths.ts"],"sourcesContent":["import { promisify } from 'util'\nimport globOriginal from 'next/dist/compiled/glob'\nimport * as Log from '../build/output/log'\nimport path from 'path'\nimport fs from 'fs'\nimport isError from './is-error'\n\nconst glob = promisify(globOriginal)\n\ninterface ResolvedBuildPaths {\n appPaths: string[]\n pagePaths: string[]\n}\n\n/**\n * Escapes Next.js dynamic route bracket expressions so glob treats them as\n * literal directory names rather than character classes.\n *\n * e.g., \"app/blog/[slug]/** /page.tsx\" → \"app/blog/\\[slug\\]/** /page.tsx\"\n */\nfunction escapeBrackets(pattern: string): string {\n // Match Next.js dynamic route patterns: [name], [...name], [[...name]]\n return pattern.replace(/\\[\\[?\\.\\.\\.[^\\]]+\\]?\\]|\\[[^\\]]+\\]/g, (match) =>\n match.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]')\n )\n}\n\n/**\n * Resolves glob patterns and explicit paths to actual file paths.\n * Categorizes them into App Router and Pages Router paths.\n */\nexport async function resolveBuildPaths(\n patterns: string[],\n projectDir: string\n): Promise<ResolvedBuildPaths> {\n const appPaths: Set<string> = new Set()\n const pagePaths: Set<string> = new Set()\n\n for (const pattern of patterns) {\n const trimmed = pattern.trim()\n if (!trimmed) continue\n\n try {\n // Escape brackets for Next.js dynamic route directories\n const escapedPattern = escapeBrackets(trimmed)\n const matches = (await glob(escapedPattern, {\n cwd: projectDir,\n })) as string[]\n\n if (matches.length === 0) {\n Log.warn(`Pattern \"${trimmed}\" did not match any files`)\n }\n\n for (const file of matches) {\n if (!fs.statSync(path.join(projectDir, file)).isDirectory()) {\n categorizeAndAddPath(file, appPaths, pagePaths)\n }\n }\n } catch (error) {\n throw new Error(\n `Failed to resolve pattern \"${trimmed}\": ${\n isError(error) ? error.message : String(error)\n }`\n )\n }\n }\n\n return {\n appPaths: Array.from(appPaths).sort(),\n pagePaths: Array.from(pagePaths).sort(),\n }\n}\n\n/**\n * Categorizes a file path to either app or pages router based on its prefix.\n *\n * Examples:\n * - \"app/page.tsx\" → appPaths.add(\"/page.tsx\")\n * - \"pages/index.tsx\" → pagePaths.add(\"/index.tsx\")\n */\nfunction categorizeAndAddPath(\n filePath: string,\n appPaths: Set<string>,\n pagePaths: Set<string>\n): void {\n const normalized = filePath.replace(/\\\\/g, '/')\n\n if (normalized.startsWith('app/')) {\n appPaths.add('/' + normalized.slice(4))\n } else if (normalized.startsWith('pages/')) {\n pagePaths.add('/' + normalized.slice(6))\n }\n}\n\n/**\n * Parse build paths from comma-separated format\n * Supports:\n * - Comma-separated values: \"app/page.tsx,app/about/page.tsx\"\n *\n * @param input - String input to parse\n * @returns Array of path patterns\n */\nexport function parseBuildPathsInput(input: string): string[] {\n // Comma-separated values\n return input\n .split(',')\n .map((p) => p.trim())\n .filter((p) => p.length > 0)\n}\n"],"names":["promisify","globOriginal","Log","path","fs","isError","glob","escapeBrackets","pattern","replace","match","resolveBuildPaths","patterns","projectDir","appPaths","Set","pagePaths","trimmed","trim","escapedPattern","matches","cwd","length","warn","file","statSync","join","isDirectory","categorizeAndAddPath","error","Error","message","String","Array","from","sort","filePath","normalized","startsWith","add","slice","parseBuildPathsInput","input","split","map","p","filter"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAM;AAChC,OAAOC,kBAAkB,0BAAyB;AAClD,YAAYC,SAAS,sBAAqB;AAC1C,OAAOC,UAAU,OAAM;AACvB,OAAOC,QAAQ,KAAI;AACnB,OAAOC,aAAa,aAAY;AAEhC,MAAMC,OAAON,UAAUC;AAOvB;;;;;CAKC,GACD,SAASM,eAAeC,OAAe;IACrC,uEAAuE;IACvE,OAAOA,QAAQC,OAAO,CAAC,sCAAsC,CAACC,QAC5DA,MAAMD,OAAO,CAAC,OAAO,OAAOA,OAAO,CAAC,OAAO;AAE/C;AAEA;;;CAGC,GACD,OAAO,eAAeE,kBACpBC,QAAkB,EAClBC,UAAkB;IAElB,MAAMC,WAAwB,IAAIC;IAClC,MAAMC,YAAyB,IAAID;IAEnC,KAAK,MAAMP,WAAWI,SAAU;QAC9B,MAAMK,UAAUT,QAAQU,IAAI;QAC5B,IAAI,CAACD,SAAS;QAEd,IAAI;YACF,wDAAwD;YACxD,MAAME,iBAAiBZ,eAAeU;YACtC,MAAMG,UAAW,MAAMd,KAAKa,gBAAgB;gBAC1CE,KAAKR;YACP;YAEA,IAAIO,QAAQE,MAAM,KAAK,GAAG;gBACxBpB,IAAIqB,IAAI,CAAC,CAAC,SAAS,EAAEN,QAAQ,yBAAyB,CAAC;YACzD;YAEA,KAAK,MAAMO,QAAQJ,QAAS;gBAC1B,IAAI,CAAChB,GAAGqB,QAAQ,CAACtB,KAAKuB,IAAI,CAACb,YAAYW,OAAOG,WAAW,IAAI;oBAC3DC,qBAAqBJ,MAAMV,UAAUE;gBACvC;YACF;QACF,EAAE,OAAOa,OAAO;YACd,MAAM,qBAIL,CAJK,IAAIC,MACR,CAAC,2BAA2B,EAAEb,QAAQ,GAAG,EACvCZ,QAAQwB,SAASA,MAAME,OAAO,GAAGC,OAAOH,QACxC,GAHE,qBAAA;uBAAA;4BAAA;8BAAA;YAIN;QACF;IACF;IAEA,OAAO;QACLf,UAAUmB,MAAMC,IAAI,CAACpB,UAAUqB,IAAI;QACnCnB,WAAWiB,MAAMC,IAAI,CAAClB,WAAWmB,IAAI;IACvC;AACF;AAEA;;;;;;CAMC,GACD,SAASP,qBACPQ,QAAgB,EAChBtB,QAAqB,EACrBE,SAAsB;IAEtB,MAAMqB,aAAaD,SAAS3B,OAAO,CAAC,OAAO;IAE3C,IAAI4B,WAAWC,UAAU,CAAC,SAAS;QACjCxB,SAASyB,GAAG,CAAC,MAAMF,WAAWG,KAAK,CAAC;IACtC,OAAO,IAAIH,WAAWC,UAAU,CAAC,WAAW;QAC1CtB,UAAUuB,GAAG,CAAC,MAAMF,WAAWG,KAAK,CAAC;IACvC;AACF;AAEA;;;;;;;CAOC,GACD,OAAO,SAASC,qBAAqBC,KAAa;IAChD,yBAAyB;IACzB,OAAOA,MACJC,KAAK,CAAC,KACNC,GAAG,CAAC,CAACC,IAAMA,EAAE3B,IAAI,IACjB4B,MAAM,CAAC,CAACD,IAAMA,EAAEvB,MAAM,GAAG;AAC9B","ignoreList":[0]}
|
|
@@ -97,7 +97,7 @@ export async function createHotReloaderTurbopack(opts, serverFields, distDir, re
|
|
|
97
97
|
}
|
|
98
98
|
const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0;
|
|
99
99
|
const hotReloaderSpan = trace('hot-reloader', undefined, {
|
|
100
|
-
version: "16.1.1-canary.
|
|
100
|
+
version: "16.1.1-canary.33"
|
|
101
101
|
});
|
|
102
102
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
103
103
|
// of the current `next dev` invocation.
|
|
@@ -165,7 +165,7 @@ export default class HotReloaderWebpack {
|
|
|
165
165
|
this.previewProps = previewProps;
|
|
166
166
|
this.rewrites = rewrites;
|
|
167
167
|
this.hotReloaderSpan = trace('hot-reloader', undefined, {
|
|
168
|
-
version: "16.1.1-canary.
|
|
168
|
+
version: "16.1.1-canary.33"
|
|
169
169
|
});
|
|
170
170
|
// Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing
|
|
171
171
|
// of the current `next dev` invocation.
|
|
@@ -21,7 +21,7 @@ import { experimentalSchema } from '../config-schema';
|
|
|
21
21
|
if (parts.length > 0) {
|
|
22
22
|
versionSuffix = ` (${parts.join(', ')})`;
|
|
23
23
|
}
|
|
24
|
-
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"16.1.1-canary.
|
|
24
|
+
Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"16.1.1-canary.33"}`))}${versionSuffix}`);
|
|
25
25
|
if (appUrl) {
|
|
26
26
|
Log.bootstrap(`- Local: ${appUrl}`);
|
|
27
27
|
}
|
|
@@ -109,7 +109,7 @@ export async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup,
|
|
|
109
109
|
export async function startServer(serverOptions) {
|
|
110
110
|
const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate } = serverOptions;
|
|
111
111
|
let { port } = serverOptions;
|
|
112
|
-
process.title = `next-server (v${"16.1.1-canary.
|
|
112
|
+
process.title = `next-server (v${"16.1.1-canary.33"})`;
|
|
113
113
|
let handlersReady = ()=>{};
|
|
114
114
|
let handlersError = ()=>{};
|
|
115
115
|
let handlersPromise = new Promise((resolve, reject)=>{
|
|
@@ -14,8 +14,8 @@ let currentExecution = null;
|
|
|
14
14
|
const originalSetImmediate = globalThis.setImmediate;
|
|
15
15
|
const originalClearImmediate = globalThis.clearImmediate;
|
|
16
16
|
const originalNextTick = process.nextTick;
|
|
17
|
-
const originalSetImmediatePromisify =
|
|
18
|
-
|
|
17
|
+
const originalSetImmediatePromisify = typeof originalSetImmediate === 'function' ? originalSetImmediate[promisify.custom] : // and won't ever enable the patch, so this can be a dummy value
|
|
18
|
+
undefined;
|
|
19
19
|
export { originalSetImmediate as unpatchedSetImmediate };
|
|
20
20
|
function install() {
|
|
21
21
|
if (process.env.NEXT_RUNTIME === 'edge') {
|