| (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,937,(__turbopack_context__,module,exports)=>{"use strict";var React=__turbopack_context__.r(47443);function formatProdErrorMessage(code){var url="https://react.dev/errors/"+code;if(1<arguments.length){url+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)url+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+code+"; visit "+url+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function noop(){}var Internals={d:{f:noop,r:function(){throw Error(formatProdErrorMessage(522))},D:noop,C:noop,L:noop,m:noop,X:noop,S:noop,M:noop},p:0,findDOMNode:null},REACT_PORTAL_TYPE=Symbol.for("react.portal"),REACT_OPTIMISTIC_KEY=Symbol.for("react.optimistic_key");function createPortal$1(children,containerInfo,implementation){var key=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:REACT_PORTAL_TYPE,key:null==key?null:key===REACT_OPTIMISTIC_KEY?REACT_OPTIMISTIC_KEY:""+key,children:children,containerInfo:containerInfo,implementation:implementation}}var ReactSharedInternals=React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function getCrossOriginStringAs(as,input){return"font"===as?"":"string"==typeof input?"use-credentials"===input?input:"":void 0}exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Internals,exports.createPortal=function(children,container){var key=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!container||1!==container.nodeType&&9!==container.nodeType&&11!==container.nodeType)throw Error(formatProdErrorMessage(299));return createPortal$1(children,container,null,key)},exports.flushSync=function(fn){var previousTransition=ReactSharedInternals.T,previousUpdatePriority=Internals.p;try{if(ReactSharedInternals.T=null,Internals.p=2,fn)return fn()}finally{ReactSharedInternals.T=previousTransition,Internals.p=previousUpdatePriority,Internals.d.f()}},exports.preconnect=function(href,options){"string"==typeof href&&(options=options?"string"==typeof(options=options.crossOrigin)?"use-credentials"===options?options:"":void 0:null,Internals.d.C(href,options))},exports.prefetchDNS=function(href){"string"==typeof href&&Internals.d.D(href)},exports.preinit=function(href,options){if("string"==typeof href&&options&&"string"==typeof options.as){var as=options.as,crossOrigin=getCrossOriginStringAs(as,options.crossOrigin),integrity="string"==typeof options.integrity?options.integrity:void 0,fetchPriority="string"==typeof options.fetchPriority?options.fetchPriority:void 0;"style"===as?Internals.d.S(href,"string"==typeof options.precedence?options.precedence:void 0,{crossOrigin:crossOrigin,integrity:integrity,fetchPriority:fetchPriority}):"script"===as&&Internals.d.X(href,{crossOrigin:crossOrigin,integrity:integrity,fetchPriority:fetchPriority,nonce:"string"==typeof options.nonce?options.nonce:void 0})}},exports.preinitModule=function(href,options){if("string"==typeof href)if("object"==typeof options&&null!==options){if(null==options.as||"script"===options.as){var crossOrigin=getCrossOriginStringAs(options.as,options.crossOrigin);Internals.d.M(href,{crossOrigin:crossOrigin,integrity:"string"==typeof options.integrity?options.integrity:void 0,nonce:"string"==typeof options.nonce?options.nonce:void 0})}}else null==options&&Internals.d.M(href)},exports.preload=function(href,options){if("string"==typeof href&&"object"==typeof options&&null!==options&&"string"==typeof options.as){var as=options.as,crossOrigin=getCrossOriginStringAs(as,options.crossOrigin);Internals.d.L(href,as,{crossOrigin:crossOrigin,integrity:"string"==typeof options.integrity?options.integrity:void 0,nonce:"string"==typeof options.nonce?options.nonce:void 0,type:"string"==typeof options.type?options.type:void 0,fetchPriority:"string"==typeof options.fetchPriority?options.fetchPriority:void 0,referrerPolicy:"string"==typeof options.referrerPolicy?options.referrerPolicy:void 0,imageSrcSet:"string"==typeof options.imageSrcSet?options.imageSrcSet:void 0,imageSizes:"string"==typeof options.imageSizes?options.imageSizes:void 0,media:"string"==typeof options.media?options.media:void 0})}},exports.preloadModule=function(href,options){if("string"==typeof href)if(options){var crossOrigin=getCrossOriginStringAs(options.as,options.crossOrigin);Internals.d.m(href,{as:"string"==typeof options.as&&"script"!==options.as?options.as:void 0,crossOrigin:crossOrigin,integrity:"string"==typeof options.integrity?options.integrity:void 0})}else Internals.d.m(href)},exports.requestFormReset=function(form){Internals.d.r(form)},exports.unstable_batchedUpdates=function(fn,a){return fn(a)},exports.useFormState=function(action,initialState,permalink){return ReactSharedInternals.H.useFormState(action,initialState,permalink)},exports.useFormStatus=function(){return ReactSharedInternals.H.useHostTransitionStatus()},exports.version="19.3.0-canary-3f0b9e61-20260317"},92804,(__turbopack_context__,module,exports)=>{"use strict";function checkDCE(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(err){console.error(err)}}checkDCE(),module.exports=__turbopack_context__.r(937)},22422,(__turbopack_context__,module,exports)=>{var e={229:function(e){var r,n,u,t=e.exports={};function defaultSetTimout(){throw Error("setTimeout has not been defined")}function defaultClearTimeout(){throw Error("clearTimeout has not been defined")}try{r="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){r=defaultSetTimout}try{n="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){n=defaultClearTimeout}function runTimeout(e){if(r===setTimeout)return setTimeout(e,0);if((r===defaultSetTimout||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout)return clearTimeout(e);if((n===defaultClearTimeout||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[],o=!1,a=-1;function cleanUpNextTick(){o&&u&&(o=!1,u.length?i=u.concat(i):a=-1,i.length&&drainQueue())}function drainQueue(){if(!o){var e=runTimeout(cleanUpNextTick);o=!0;for(var t=i.length;t;){for(u=i,i=[];++a<t;)u&&u[a].run();a=-1,t=i.length}u=null,o=!1,runClearTimeout(e)}}function Item(e,t){this.fun=e,this.array=t}function noop(){}t.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];i.push(new Item(e,t)),1!==i.length||o||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={},t.on=noop,t.addListener=noop,t.once=noop,t.off=noop,t.removeListener=noop,t.removeAllListeners=noop,t.emit=noop,t.prependListener=noop,t.prependOnceListener=noop,t.listeners=function(e){return[]},t.binding=function(e){throw Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(e){throw Error("process.chdir is not supported")},t.umask=function(){return 0}}},t={};function __nccwpck_require__(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}},o=!0;try{e[r](i,i.exports,__nccwpck_require__),o=!1}finally{o&&delete t[r]}return i.exports}__nccwpck_require__.ab="/ROOT/node_modules/.pnpm/next@16.2.3_@babel+core@7.26.10_@opentelemetry+api@1.9.0_@playwright+test@1.58.2_babel-_98ea51fa7e705bb4b4a145f97d0b14ad/node_modules/next/dist/compiled/process/",module.exports=__nccwpck_require__(229)},37353,(__turbopack_context__,module,exports)=>{"use strict";var _global_process,_global_process1;module.exports=(null==(_global_process=__turbopack_context__.g.process)?void 0:_global_process.env)&&"object"==typeof(null==(_global_process1=__turbopack_context__.g.process)?void 0:_global_process1.env)?__turbopack_context__.g.process:__turbopack_context__.r(22422)},47608,(__turbopack_context__,module,exports)=>{"use strict";var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element");function jsxProd(type,config,maybeKey){var key=null;if(void 0!==maybeKey&&(key=""+maybeKey),void 0!==config.key&&(key=""+config.key),"key"in config)for(var propName in maybeKey={},config)"key"!==propName&&(maybeKey[propName]=config[propName]);else maybeKey=config;return{$$typeof:REACT_ELEMENT_TYPE,type:type,key:key,ref:void 0!==(config=maybeKey.ref)?config:null,props:maybeKey}}exports.Fragment=Symbol.for("react.fragment"),exports.jsx=jsxProd,exports.jsxs=jsxProd},2852,(__turbopack_context__,module,exports)=>{"use strict";module.exports=__turbopack_context__.r(47608)},9355,(__turbopack_context__,module,exports)=>{"use strict";var __TURBOPACK__imported__module__37353__=__turbopack_context__.i(37353),REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element"),REACT_PORTAL_TYPE=Symbol.for("react.portal"),REACT_FRAGMENT_TYPE=Symbol.for("react.fragment"),REACT_STRICT_MODE_TYPE=Symbol.for("react.strict_mode"),REACT_PROFILER_TYPE=Symbol.for("react.profiler"),REACT_CONSUMER_TYPE=Symbol.for("react.consumer"),REACT_CONTEXT_TYPE=Symbol.for("react.context"),REACT_FORWARD_REF_TYPE=Symbol.for("react.forward_ref"),REACT_SUSPENSE_TYPE=Symbol.for("react.suspense"),REACT_MEMO_TYPE=Symbol.for("react.memo"),REACT_LAZY_TYPE=Symbol.for("react.lazy"),REACT_ACTIVITY_TYPE=Symbol.for("react.activity"),REACT_VIEW_TRANSITION_TYPE=Symbol.for("react.view_transition"),MAYBE_ITERATOR_SYMBOL=Symbol.iterator;function getIteratorFn(maybeIterable){return null===maybeIterable||"object"!=typeof maybeIterable?null:"function"==typeof(maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable["@@iterator"])?maybeIterable:null}var ReactNoopUpdateQueue={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},assign=Object.assign,emptyObject={};function Component(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}function ComponentDummy(){}function PureComponent(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}Component.prototype.isReactComponent={},Component.prototype.setState=function(partialState,callback){if("object"!=typeof partialState&&"function"!=typeof partialState&&null!=partialState)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,partialState,callback,"setState")},Component.prototype.forceUpdate=function(callback){this.updater.enqueueForceUpdate(this,callback,"forceUpdate")},ComponentDummy.prototype=Component.prototype;var pureComponentPrototype=PureComponent.prototype=new ComponentDummy;pureComponentPrototype.constructor=PureComponent,assign(pureComponentPrototype,Component.prototype),pureComponentPrototype.isPureReactComponent=!0;var isArrayImpl=Array.isArray;function noop(){}var ReactSharedInternals={H:null,A:null,T:null,S:null},hasOwnProperty=Object.prototype.hasOwnProperty;function ReactElement(type,key,props){var refProp=props.ref;return{$$typeof:REACT_ELEMENT_TYPE,type:type,key:key,ref:void 0!==refProp?refProp:null,props:props}}function cloneAndReplaceKey(oldElement,newKey){return ReactElement(oldElement.type,newKey,oldElement.props)}function isValidElement(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE}function escape(key){var escaperLookup={"=":"=0",":":"=2"};return"$"+key.replace(/[=:]/g,function(match){return escaperLookup[match]})}var userProvidedKeyEscapeRegex=/\/+/g;function getElementKey(element,index){return"object"==typeof element&&null!==element&&null!=element.key?escape(""+element.key):index.toString(36)}function resolveThenable(thenable){switch(thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason;default:switch("string"==typeof thenable.status?thenable.then(noop,noop):(thenable.status="pending",thenable.then(function(fulfilledValue){"pending"===thenable.status&&(thenable.status="fulfilled",thenable.value=fulfilledValue)},function(error){"pending"===thenable.status&&(thenable.status="rejected",thenable.reason=error)})),thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason}}throw thenable}function mapIntoArray(children,array,escapedPrefix,nameSoFar,callback){var type=typeof children;("undefined"===type||"boolean"===type)&&(children=null);var invokeCallback=!1;if(null===children)invokeCallback=!0;else switch(type){case"bigint":case"string":case"number":invokeCallback=!0;break;case"object":switch(children.$$typeof){case REACT_ELEMENT_TYPE:case REACT_PORTAL_TYPE:invokeCallback=!0;break;case REACT_LAZY_TYPE:return mapIntoArray((invokeCallback=children._init)(children._payload),array,escapedPrefix,nameSoFar,callback)}}if(invokeCallback)return callback=callback(children),invokeCallback=""===nameSoFar?"."+getElementKey(children,0):nameSoFar,isArrayImpl(callback)?(escapedPrefix="",null!=invokeCallback&&(escapedPrefix=invokeCallback.replace(userProvidedKeyEscapeRegex,"$&/")+"/"),mapIntoArray(callback,array,escapedPrefix,"",function(c){return c})):null!=callback&&(isValidElement(callback)&&(callback=cloneAndReplaceKey(callback,escapedPrefix+(null==callback.key||children&&children.key===callback.key?"":(""+callback.key).replace(userProvidedKeyEscapeRegex,"$&/")+"/")+invokeCallback)),array.push(callback)),1;invokeCallback=0;var nextNamePrefix=""===nameSoFar?".":nameSoFar+":";if(isArrayImpl(children))for(var i=0;i<children.length;i++)type=nextNamePrefix+getElementKey(nameSoFar=children[i],i),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if("function"==typeof(i=getIteratorFn(children)))for(children=i.call(children),i=0;!(nameSoFar=children.next()).done;)type=nextNamePrefix+getElementKey(nameSoFar=nameSoFar.value,i++),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if("object"===type){if("function"==typeof children.then)return mapIntoArray(resolveThenable(children),array,escapedPrefix,nameSoFar,callback);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(array=String(children))?"object with keys {"+Object.keys(children).join(", ")+"}":array)+"). If you meant to render a collection of children, use an array instead.")}return invokeCallback}function mapChildren(children,func,context){if(null==children)return children;var result=[],count=0;return mapIntoArray(children,result,"","",function(child){return func.call(context,child,count++)}),result}function lazyInitializer(payload){if(-1===payload._status){var thenable=(0,payload._result)();thenable.then(function(moduleObject){(0===payload._status||-1===payload._status)&&(payload._status=1,payload._result=moduleObject,void 0===thenable.status&&(thenable.status="fulfilled",thenable.value=moduleObject))},function(error){(0===payload._status||-1===payload._status)&&(payload._status=2,payload._result=error,void 0===thenable.status&&(thenable.status="rejected",thenable.reason=error))}),-1===payload._status&&(payload._status=0,payload._result=thenable)}if(1===payload._status)return payload._result.default;throw payload._result}var reportGlobalError="function"==typeof reportError?reportError:function(error){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var event=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof error&&null!==error&&"string"==typeof error.message?String(error.message):String(error),error:error});if(!window.dispatchEvent(event))return}else if("object"==typeof __TURBOPACK__imported__module__37353__.default&&"function"==typeof __TURBOPACK__imported__module__37353__.default.emit)return void __TURBOPACK__imported__module__37353__.default.emit("uncaughtException",error);console.error(error)};function startTransition(scope){var prevTransition=ReactSharedInternals.T,currentTransition={};currentTransition.types=null!==prevTransition?prevTransition.types:null,ReactSharedInternals.T=currentTransition;try{var returnValue=scope(),onStartTransitionFinish=ReactSharedInternals.S;null!==onStartTransitionFinish&&onStartTransitionFinish(currentTransition,returnValue),"object"==typeof returnValue&&null!==returnValue&&"function"==typeof returnValue.then&&returnValue.then(noop,reportGlobalError)}catch(error){reportGlobalError(error)}finally{null!==prevTransition&&null!==currentTransition.types&&(prevTransition.types=currentTransition.types),ReactSharedInternals.T=prevTransition}}function addTransitionType(type){var transition=ReactSharedInternals.T;if(null!==transition){var transitionTypes=transition.types;null===transitionTypes?transition.types=[type]:-1===transitionTypes.indexOf(type)&&transitionTypes.push(type)}else startTransition(addTransitionType.bind(null,type))}exports.Activity=REACT_ACTIVITY_TYPE,exports.Children={map:mapChildren,forEach:function(children,forEachFunc,forEachContext){mapChildren(children,function(){forEachFunc.apply(this,arguments)},forEachContext)},count:function(children){var n=0;return mapChildren(children,function(){n++}),n},toArray:function(children){return mapChildren(children,function(child){return child})||[]},only:function(children){if(!isValidElement(children))throw Error("React.Children.only expected to receive a single React element child.");return children}},exports.Component=Component,exports.Fragment=REACT_FRAGMENT_TYPE,exports.Profiler=REACT_PROFILER_TYPE,exports.PureComponent=PureComponent,exports.StrictMode=REACT_STRICT_MODE_TYPE,exports.Suspense=REACT_SUSPENSE_TYPE,exports.ViewTransition=REACT_VIEW_TRANSITION_TYPE,exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=ReactSharedInternals,exports.__COMPILER_RUNTIME={__proto__:null,c:function(size){return ReactSharedInternals.H.useMemoCache(size)}},exports.addTransitionType=addTransitionType,exports.cache=function(fn){return function(){return fn.apply(null,arguments)}},exports.cacheSignal=function(){return null},exports.cloneElement=function(element,config,children){if(null==element)throw Error("The argument must be a React element, but you passed "+element+".");var props=assign({},element.props),key=element.key;if(null!=config)for(propName in void 0!==config.key&&(key=""+config.key),config)hasOwnProperty.call(config,propName)&&"key"!==propName&&"__self"!==propName&&"__source"!==propName&&("ref"!==propName||void 0!==config.ref)&&(props[propName]=config[propName]);var propName=arguments.length-2;if(1===propName)props.children=children;else if(1<propName){for(var childArray=Array(propName),i=0;i<propName;i++)childArray[i]=arguments[i+2];props.children=childArray}return ReactElement(element.type,key,props)},exports.createContext=function(defaultValue){return(defaultValue={$$typeof:REACT_CONTEXT_TYPE,_currentValue:defaultValue,_currentValue2:defaultValue,_threadCount:0,Provider:null,Consumer:null}).Provider=defaultValue,defaultValue.Consumer={$$typeof:REACT_CONSUMER_TYPE,_context:defaultValue},defaultValue},exports.createElement=function(type,config,children){var propName,props={},key=null;if(null!=config)for(propName in void 0!==config.key&&(key=""+config.key),config)hasOwnProperty.call(config,propName)&&"key"!==propName&&"__self"!==propName&&"__source"!==propName&&(props[propName]=config[propName]);var childrenLength=arguments.length-2;if(1===childrenLength)props.children=children;else if(1<childrenLength){for(var childArray=Array(childrenLength),i=0;i<childrenLength;i++)childArray[i]=arguments[i+2];props.children=childArray}if(type&&type.defaultProps)for(propName in childrenLength=type.defaultProps)void 0===props[propName]&&(props[propName]=childrenLength[propName]);return ReactElement(type,key,props)},exports.createRef=function(){return{current:null}},exports.forwardRef=function(render){return{$$typeof:REACT_FORWARD_REF_TYPE,render:render}},exports.isValidElement=isValidElement,exports.lazy=function(ctor){return{$$typeof:REACT_LAZY_TYPE,_payload:{_status:-1,_result:ctor},_init:lazyInitializer}},exports.memo=function(type,compare){return{$$typeof:REACT_MEMO_TYPE,type:type,compare:void 0===compare?null:compare}},exports.startTransition=startTransition,exports.unstable_useCacheRefresh=function(){return ReactSharedInternals.H.useCacheRefresh()},exports.use=function(usable){return ReactSharedInternals.H.use(usable)},exports.useActionState=function(action,initialState,permalink){return ReactSharedInternals.H.useActionState(action,initialState,permalink)},exports.useCallback=function(callback,deps){return ReactSharedInternals.H.useCallback(callback,deps)},exports.useContext=function(Context){return ReactSharedInternals.H.useContext(Context)},exports.useDebugValue=function(){},exports.useDeferredValue=function(value,initialValue){return ReactSharedInternals.H.useDeferredValue(value,initialValue)},exports.useEffect=function(create,deps){return ReactSharedInternals.H.useEffect(create,deps)},exports.useEffectEvent=function(callback){return ReactSharedInternals.H.useEffectEvent(callback)},exports.useId=function(){return ReactSharedInternals.H.useId()},exports.useImperativeHandle=function(ref,create,deps){return ReactSharedInternals.H.useImperativeHandle(ref,create,deps)},exports.useInsertionEffect=function(create,deps){return ReactSharedInternals.H.useInsertionEffect(create,deps)},exports.useLayoutEffect=function(create,deps){return ReactSharedInternals.H.useLayoutEffect(create,deps)},exports.useMemo=function(create,deps){return ReactSharedInternals.H.useMemo(create,deps)},exports.useOptimistic=function(passthrough,reducer){return ReactSharedInternals.H.useOptimistic(passthrough,reducer)},exports.useReducer=function(reducer,initialArg,init){return ReactSharedInternals.H.useReducer(reducer,initialArg,init)},exports.useRef=function(initialValue){return ReactSharedInternals.H.useRef(initialValue)},exports.useState=function(initialState){return ReactSharedInternals.H.useState(initialState)},exports.useSyncExternalStore=function(subscribe,getSnapshot,getServerSnapshot){return ReactSharedInternals.H.useSyncExternalStore(subscribe,getSnapshot,getServerSnapshot)},exports.useTransition=function(){return ReactSharedInternals.H.useTransition()},exports.version="19.3.0-canary-3f0b9e61-20260317"},47443,(__turbopack_context__,module,exports)=>{"use strict";module.exports=__turbopack_context__.r(9355)},81258,(__turbopack_context__,module,exports)=>{"use strict";exports._=function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}},22747,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:all[name]})}(exports,{bindSnapshot:function(){return bindSnapshot},createAsyncLocalStorage:function(){return createAsyncLocalStorage},createSnapshot:function(){return createSnapshot}});let sharedAsyncLocalStorageNotAvailableError=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class FakeAsyncLocalStorage{disable(){throw sharedAsyncLocalStorageNotAvailableError}getStore(){}run(){throw sharedAsyncLocalStorageNotAvailableError}exit(){throw sharedAsyncLocalStorageNotAvailableError}enterWith(){throw sharedAsyncLocalStorageNotAvailableError}static bind(fn){return fn}}let maybeGlobalAsyncLocalStorage="u">typeof globalThis&&globalThis.AsyncLocalStorage;function createAsyncLocalStorage(){return maybeGlobalAsyncLocalStorage?new maybeGlobalAsyncLocalStorage:new FakeAsyncLocalStorage}function bindSnapshot(fn){return maybeGlobalAsyncLocalStorage?maybeGlobalAsyncLocalStorage.bind(fn):FakeAsyncLocalStorage.bind(fn)}function createSnapshot(){return maybeGlobalAsyncLocalStorage?maybeGlobalAsyncLocalStorage.snapshot():function(fn,...args){return fn(...args)}}},8731,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"workAsyncStorageInstance",{enumerable:!0,get:function(){return workAsyncStorageInstance}});let workAsyncStorageInstance=(0,__turbopack_context__.r(22747).createAsyncLocalStorage)()},76818,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"workAsyncStorage",{enumerable:!0,get:function(){return _workasyncstorageinstance.workAsyncStorageInstance}});let _workasyncstorageinstance=__turbopack_context__.r(8731)},74989,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"handleISRError",{enumerable:!0,get:function(){return handleISRError}});let workAsyncStorage="u"<typeof window?__turbopack_context__.r(76818).workAsyncStorage:void 0;function handleISRError({error}){if(workAsyncStorage){let store=workAsyncStorage.getStore();if(store?.isStaticGeneration)throw error&&console.error(error),error}}("function"==typeof exports.default||"object"==typeof exports.default&&null!==exports.default)&&void 0===exports.default.__esModule&&(Object.defineProperty(exports.default,"__esModule",{value:!0}),Object.assign(exports.default,exports),module.exports=exports.default)},81217,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:all[name]})}(exports,{WarningIcon:function(){return WarningIcon},errorStyles:function(){return errorStyles},errorThemeCss:function(){return errorThemeCss}}),__turbopack_context__.r(81258);let _jsxruntime=__turbopack_context__.r(2852);__turbopack_context__.r(47443);let errorStyles={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},errorThemeCss=` | ||
| :root { | ||
| --next-error-bg: #fff; | ||
| --next-error-text: #171717; | ||
| --next-error-title: #171717; | ||
| --next-error-message: #171717; | ||
| --next-error-digest: #666666; | ||
| --next-error-btn-text: #fff; | ||
| --next-error-btn-bg: #171717; | ||
| --next-error-btn-border: none; | ||
| --next-error-btn-secondary-text: #171717; | ||
| --next-error-btn-secondary-bg: transparent; | ||
| --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); | ||
| } | ||
| @media (prefers-color-scheme: dark) { | ||
| :root { | ||
| --next-error-bg: #0a0a0a; | ||
| --next-error-text: #ededed; | ||
| --next-error-title: #ededed; | ||
| --next-error-message: #ededed; | ||
| --next-error-digest: #a0a0a0; | ||
| --next-error-btn-text: #0a0a0a; | ||
| --next-error-btn-bg: #ededed; | ||
| --next-error-btn-border: none; | ||
| --next-error-btn-secondary-text: #ededed; | ||
| --next-error-btn-secondary-bg: transparent; | ||
| --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); | ||
| } | ||
| } | ||
| body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } | ||
| `.replace(/\n\s*/g,"");function WarningIcon(){return(0,_jsxruntime.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:errorStyles.icon,children:(0,_jsxruntime.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof exports.default||"object"==typeof exports.default&&null!==exports.default)&&void 0===exports.default.__esModule&&(Object.defineProperty(exports.default,"__esModule",{value:!0}),Object.assign(exports.default,exports),module.exports=exports.default)},38091,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return _default}}),__turbopack_context__.r(81258);let _jsxruntime=__turbopack_context__.r(2852);__turbopack_context__.r(47443);let _handleisrerror=__turbopack_context__.r(74989),_errorstyles=__turbopack_context__.r(81217),_default=function DefaultGlobalError({error}){let digest=error?.digest,isServerError=!!digest;return(0,_handleisrerror.handleISRError)({error}),(0,_jsxruntime.jsxs)("html",{id:"__next_error__",children:[(0,_jsxruntime.jsx)("head",{children:(0,_jsxruntime.jsx)("style",{dangerouslySetInnerHTML:{__html:_errorstyles.errorThemeCss}})}),(0,_jsxruntime.jsxs)("body",{children:[(0,_jsxruntime.jsx)("div",{style:_errorstyles.errorStyles.container,children:(0,_jsxruntime.jsxs)("div",{style:_errorstyles.errorStyles.card,children:[(0,_jsxruntime.jsx)(_errorstyles.WarningIcon,{}),(0,_jsxruntime.jsx)("h1",{style:_errorstyles.errorStyles.title,children:"This page couldn’t load"}),(0,_jsxruntime.jsx)("p",{style:_errorstyles.errorStyles.message,children:isServerError?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,_jsxruntime.jsxs)("div",{style:_errorstyles.errorStyles.buttonGroup,children:[(0,_jsxruntime.jsx)("form",{style:_errorstyles.errorStyles.form,children:(0,_jsxruntime.jsx)("button",{type:"submit",style:_errorstyles.errorStyles.button,children:"Reload"})}),!isServerError&&(0,_jsxruntime.jsx)("button",{type:"button",style:_errorstyles.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),digest&&(0,_jsxruntime.jsxs)("p",{style:_errorstyles.errorStyles.digestFooter,children:["ERROR ",digest]})]})]})};("function"==typeof exports.default||"object"==typeof exports.default&&null!==exports.default)&&void 0===exports.default.__esModule&&(Object.defineProperty(exports.default,"__esModule",{value:!0}),Object.assign(exports.default,exports),module.exports=exports.default)}]); |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0a-g8v4cpzcih.js","static/chunks/0xje~h0slum0~.js","static/chunks/0mqexaqehw118.js"],runtimeModuleIds:[7261]}]),(()=>{let BACKEND;if(!Array.isArray(globalThis.TURBOPACK))return;let CHUNK_BASE_PATH="/_next/",ASSET_SUFFIX=getAssetSuffixFromScriptSrc(),WORKER_FORWARDED_GLOBALS=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var SourceType,SourceType1=((SourceType=SourceType1||{})[SourceType.Runtime=0]="Runtime",SourceType[SourceType.Parent=1]="Parent",SourceType[SourceType.Update=2]="Update",SourceType);let REEXPORTED_OBJECTS=new WeakMap;function Context(module,exports){this.m=module,this.e=exports}let contextPrototype=Context.prototype,hasOwnProperty=Object.prototype.hasOwnProperty,toStringTag="u">typeof Symbol&&Symbol.toStringTag;function defineProp(obj,name,options){hasOwnProperty.call(obj,name)||Object.defineProperty(obj,name,options)}function getOverwrittenModule(moduleCache,id){let module=moduleCache[id];return module||(module=createModuleObject(id),moduleCache[id]=module),module}function createModuleObject(id){return{exports:{},error:void 0,id,namespaceObject:void 0}}function esm(exports,bindings){defineProp(exports,"__esModule",{value:!0}),toStringTag&&defineProp(exports,toStringTag,{value:"Module"});let i=0;for(;i<bindings.length;){let propName=bindings[i++],tagOrFunction=bindings[i++];if("number"==typeof tagOrFunction)if(0===tagOrFunction)defineProp(exports,propName,{value:bindings[i++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${tagOrFunction}`);else"function"==typeof bindings[i]?defineProp(exports,propName,{get:tagOrFunction,set:bindings[i++],enumerable:!0}):defineProp(exports,propName,{get:tagOrFunction,enumerable:!0})}Object.seal(exports)}function ensureDynamicExports(module,exports){let reexportedObjects=REEXPORTED_OBJECTS.get(module);return reexportedObjects||(REEXPORTED_OBJECTS.set(module,reexportedObjects=[]),module.exports=module.namespaceObject=new Proxy(exports,{get(target,prop){if(hasOwnProperty.call(target,prop)||"default"===prop||"__esModule"===prop)return Reflect.get(target,prop);for(let obj of reexportedObjects){let value=Reflect.get(obj,prop);if(void 0!==value)return value}},ownKeys(target){let keys=Reflect.ownKeys(target);for(let obj of reexportedObjects)for(let key of Reflect.ownKeys(obj))"default"===key||keys.includes(key)||keys.push(key);return keys}})),reexportedObjects}function exportValue(value,id){(null!=id?getOverwrittenModule(this.c,id):this.m).exports=value}function createGetter(obj,key){return()=>obj[key]}contextPrototype.s=function esmExport(bindings,id){let module,exports;null!=id?exports=(module=getOverwrittenModule(this.c,id)).exports:(module=this.m,exports=this.e),module.namespaceObject=exports,esm(exports,bindings)},contextPrototype.j=function dynamicExport(object,id){let module,exports;null!=id?exports=(module=getOverwrittenModule(this.c,id)).exports:(module=this.m,exports=this.e);let reexportedObjects=ensureDynamicExports(module,exports);"object"==typeof object&&null!==object&&reexportedObjects.push(object)},contextPrototype.v=exportValue,contextPrototype.n=function exportNamespace(namespace,id){let module;(module=null!=id?getOverwrittenModule(this.c,id):this.m).exports=module.namespaceObject=namespace};let getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,LEAF_PROTOTYPES=[null,getProto({}),getProto([]),getProto(getProto)];function interopEsm(raw,ns,allowExportDefault){let bindings=[],defaultLocation=-1;for(let current=raw;("object"==typeof current||"function"==typeof current)&&!LEAF_PROTOTYPES.includes(current);current=getProto(current))for(let key of Object.getOwnPropertyNames(current))bindings.push(key,createGetter(raw,key)),-1===defaultLocation&&"default"===key&&(defaultLocation=bindings.length-1);return allowExportDefault&&defaultLocation>=0||(defaultLocation>=0?bindings.splice(defaultLocation,1,0,raw):bindings.push("default",0,raw)),esm(ns,bindings),ns}function createNS(raw){return"function"==typeof raw?function(...args){return raw.apply(this,args)}:Object.create(null)}function esmImport(id){let module=getOrInstantiateModuleFromParent(id,this.m);if(module.namespaceObject)return module.namespaceObject;let raw=module.exports;return module.namespaceObject=interopEsm(raw,createNS(raw),raw&&raw.__esModule)}function parseRequest(request){let hashIndex=request.indexOf("#");-1!==hashIndex&&(request=request.substring(0,hashIndex));let queryIndex=request.indexOf("?");return -1!==queryIndex&&(request=request.substring(0,queryIndex)),request}function getChunkPath(chunkData){return"string"==typeof chunkData?chunkData:chunkData.path}function isPromise(maybePromise){return null!=maybePromise&&"object"==typeof maybePromise&&"then"in maybePromise&&"function"==typeof maybePromise.then}function isAsyncModuleExt(obj){return turbopackQueues in obj}function createPromise(){let resolve,reject;return{promise:new Promise((res,rej)=>{reject=rej,resolve=res}),resolve:resolve,reject:reject}}function installCompressedModuleFactories(chunkModules,offset,moduleFactories,newModuleId){let i=offset;for(;i<chunkModules.length;){let existingGroupFactory,end=i+1;for(;end<chunkModules.length&&"function"!=typeof chunkModules[end];)end++;if(end===chunkModules.length)throw Error("malformed chunk format, expected a factory function");let moduleFactoryFn=chunkModules[end];for(let j=i;j<end;j++){let id=chunkModules[j],existingFactory=moduleFactories.get(id);if(existingFactory){existingGroupFactory=existingFactory;break}}let factoryToInstall=existingGroupFactory??moduleFactoryFn,didInstallFactory=!1;for(let j=i;j<end;j++){let id=chunkModules[j];moduleFactories.has(id)||(didInstallFactory||(factoryToInstall===moduleFactoryFn&&applyModuleFactoryName(moduleFactoryFn),didInstallFactory=!0),moduleFactories.set(id,factoryToInstall),newModuleId?.(id))}i=end+1}}contextPrototype.i=esmImport,contextPrototype.A=function asyncLoader(moduleId){return this.r(moduleId)(esmImport.bind(this))},contextPrototype.t="function"==typeof require?require:function require1(){throw Error("Unexpected use of runtime require")},contextPrototype.r=function commonJsRequire(id){return getOrInstantiateModuleFromParent(id,this.m).exports},contextPrototype.f=function moduleContext(map){function moduleContext(id){if(id=parseRequest(id),hasOwnProperty.call(map,id))return map[id].module();let e=Error(`Cannot find module '${id}'`);throw e.code="MODULE_NOT_FOUND",e}return moduleContext.keys=()=>Object.keys(map),moduleContext.resolve=id=>{if(id=parseRequest(id),hasOwnProperty.call(map,id))return map[id].id();let e=Error(`Cannot find module '${id}'`);throw e.code="MODULE_NOT_FOUND",e},moduleContext.import=async id=>await moduleContext(id),moduleContext};let turbopackQueues=Symbol("turbopack queues"),turbopackExports=Symbol("turbopack exports"),turbopackError=Symbol("turbopack error");function resolveQueue(queue){queue&&1!==queue.status&&(queue.status=1,queue.forEach(fn=>fn.queueCount--),queue.forEach(fn=>fn.queueCount--?fn.queueCount++:fn()))}function wrapDeps(deps){return deps.map(dep=>{if(null!==dep&&"object"==typeof dep){if(isAsyncModuleExt(dep))return dep;if(isPromise(dep)){let queue=Object.assign([],{status:0}),obj={[turbopackExports]:{},[turbopackQueues]:fn=>fn(queue)};return dep.then(res=>{obj[turbopackExports]=res,resolveQueue(queue)},err=>{obj[turbopackError]=err,resolveQueue(queue)}),obj}}return{[turbopackExports]:dep,[turbopackQueues]:()=>{}}})}contextPrototype.a=function asyncModule(body,hasAwait){let module=this.m,queue=hasAwait?Object.assign([],{status:-1}):void 0,depQueues=new Set,{resolve,reject,promise:rawPromise}=createPromise(),promise=Object.assign(rawPromise,{[turbopackExports]:module.exports,[turbopackQueues]:fn=>{queue&&fn(queue),depQueues.forEach(fn),promise.catch(()=>{})}}),attributes={get:()=>promise,set(v){v!==promise&&(promise[turbopackExports]=v)}};Object.defineProperty(module,"exports",attributes),Object.defineProperty(module,"namespaceObject",attributes),body(function handleAsyncDependencies(deps){let currentDeps=wrapDeps(deps),getResult=()=>currentDeps.map(d=>{if(d[turbopackError])throw d[turbopackError];return d[turbopackExports]}),{promise,resolve}=createPromise(),fn=Object.assign(()=>resolve(getResult),{queueCount:0});function fnQueue(q){q!==queue&&!depQueues.has(q)&&(depQueues.add(q),q&&0===q.status&&(fn.queueCount++,q.push(fn)))}return currentDeps.map(dep=>dep[turbopackQueues](fnQueue)),fn.queueCount?promise:getResult()},function asyncResult(err){err?reject(promise[turbopackError]=err):resolve(promise[turbopackExports]),resolveQueue(queue)}),queue&&-1===queue.status&&(queue.status=0)};let relativeURL=function relativeURL(inputUrl){let realUrl=new URL(inputUrl,"x:/"),values={};for(let key in realUrl)values[key]=realUrl[key];for(let key in values.href=inputUrl,values.pathname=inputUrl.replace(/[?#].*/,""),values.origin=values.protocol="",values.toString=values.toJSON=(..._args)=>inputUrl,values)Object.defineProperty(this,key,{enumerable:!0,configurable:!0,value:values[key]})};function invariant(never,computeMessage){throw Error(`Invariant: ${computeMessage(never)}`)}function factoryNotAvailableMessage(moduleId,sourceType,sourceData){let instantiationReason;switch(sourceType){case 0:instantiationReason=`as a runtime entry of chunk ${sourceData}`;break;case 1:instantiationReason=`because it was required from module ${sourceData}`;break;case 2:instantiationReason="because of an HMR update";break;default:invariant(sourceType,sourceType=>`Unknown source type: ${sourceType}`)}return`Module ${moduleId} was instantiated ${instantiationReason}, but the module factory is not available.`}function applyModuleFactoryName(factory){Object.defineProperty(factory,"name",{value:"module evaluation"})}relativeURL.prototype=URL.prototype,contextPrototype.U=relativeURL,contextPrototype.z=function requireStub(_moduleId){throw Error("dynamic usage of require is not supported")},contextPrototype.g=globalThis;let browserContextPrototype=Context.prototype,moduleFactories=new Map;contextPrototype.M=moduleFactories;let availableModules=new Map,availableModuleChunks=new Map;function loadInitialChunk(chunkPath,chunkData){return loadChunkInternal(SourceType1.Runtime,chunkPath,chunkData)}async function loadChunkInternal(sourceType,sourceData,chunkData){let promise;if("string"==typeof chunkData)return loadChunkByUrlInternal(sourceType,sourceData,getChunkRelativeUrl(chunkData));let includedList=chunkData.included||[],modulesPromises=includedList.map(included=>!!moduleFactories.has(included)||availableModules.get(included));if(modulesPromises.length>0&&modulesPromises.every(p=>p))return void await Promise.all(modulesPromises);let includedModuleChunksList=chunkData.moduleChunks||[],moduleChunksPromises=includedModuleChunksList.map(included=>availableModuleChunks.get(included)).filter(p=>p);if(moduleChunksPromises.length>0){if(moduleChunksPromises.length===includedModuleChunksList.length)return void await Promise.all(moduleChunksPromises);let moduleChunksToLoad=new Set;for(let moduleChunk of includedModuleChunksList)availableModuleChunks.has(moduleChunk)||moduleChunksToLoad.add(moduleChunk);for(let moduleChunkToLoad of moduleChunksToLoad){let promise=loadChunkByUrlInternal(sourceType,sourceData,getChunkRelativeUrl(moduleChunkToLoad));availableModuleChunks.set(moduleChunkToLoad,promise),moduleChunksPromises.push(promise)}promise=Promise.all(moduleChunksPromises)}else{for(let includedModuleChunk of(promise=loadChunkByUrlInternal(sourceType,sourceData,getChunkRelativeUrl(chunkData.path)),includedModuleChunksList))availableModuleChunks.has(includedModuleChunk)||availableModuleChunks.set(includedModuleChunk,promise)}for(let included of includedList)availableModules.has(included)||availableModules.set(included,promise);await promise}browserContextPrototype.l=function loadChunk(chunkData){return loadChunkInternal(SourceType1.Parent,this.m.id,chunkData)};let loadedChunk=Promise.resolve(void 0),instrumentedBackendLoadChunks=new WeakMap;function loadChunkByUrlInternal(sourceType,sourceData,chunkUrl){let thenable=BACKEND.loadChunkCached(sourceType,chunkUrl),entry=instrumentedBackendLoadChunks.get(thenable);if(void 0===entry){let resolve=instrumentedBackendLoadChunks.set.bind(instrumentedBackendLoadChunks,thenable,loadedChunk);entry=thenable.then(resolve).catch(cause=>{let loadReason;switch(sourceType){case SourceType1.Runtime:loadReason=`as a runtime dependency of chunk ${sourceData}`;break;case SourceType1.Parent:loadReason=`from module ${sourceData}`;break;case SourceType1.Update:loadReason="from an HMR update";break;default:invariant(sourceType,sourceType=>`Unknown source type: ${sourceType}`)}let error=Error(`Failed to load chunk ${chunkUrl} ${loadReason}${cause?`: ${cause}`:""}`,cause?{cause}:void 0);throw error.name="ChunkLoadError",error}),instrumentedBackendLoadChunks.set(thenable,entry)}return entry}function getChunkRelativeUrl(chunkPath){return`${CHUNK_BASE_PATH}${chunkPath.split("/").map(p=>encodeURIComponent(p)).join("/")}${ASSET_SUFFIX}`}function getPathFromScript(chunkScript){if("string"==typeof chunkScript)return chunkScript;let src=decodeURIComponent(chunkScript.src.replace(/[?#].*$/,""));return src.startsWith(CHUNK_BASE_PATH)?src.slice(CHUNK_BASE_PATH.length):src}function getUrlFromScript(chunk){return"string"==typeof chunk?getChunkRelativeUrl(chunk):chunk.src}function getChunkFromRegistration(chunk){if("string"==typeof chunk)return chunk;if(chunk)return{src:chunk.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}browserContextPrototype.L=function loadChunkByUrl(chunkUrl){return loadChunkByUrlInternal(SourceType1.Parent,this.m.id,chunkUrl)},browserContextPrototype.R=function resolvePathFromModule(moduleId){let exported=this.r(moduleId);return exported?.default??exported},browserContextPrototype.P=function resolveAbsolutePath(modulePath){return`/ROOT/${modulePath??""}`},browserContextPrototype.q=function exportUrl(url,id){exportValue.call(this,`${url}${ASSET_SUFFIX}`,id)},browserContextPrototype.b=function createWorker(WorkerConstructor,entrypoint,moduleChunks,workerOptions){let isSharedWorker="SharedWorker"===WorkerConstructor.name,params=[moduleChunks.map(chunk=>getChunkRelativeUrl(chunk)).reverse(),ASSET_SUFFIX];for(let globalName of WORKER_FORWARDED_GLOBALS)params.push(globalThis[globalName]);let url=new URL(getChunkRelativeUrl(entrypoint),location.origin),paramsJson=JSON.stringify(params);return isSharedWorker?url.searchParams.set("params",paramsJson):url.hash="#params="+encodeURIComponent(paramsJson),new WorkerConstructor(url,workerOptions?{...workerOptions,type:void 0}:void 0)};let regexJsUrl=/\.js(?:\?[^#]*)?(?:#.*)?$/,regexCssUrl=/\.css(?:\?[^#]*)?(?:#.*)?$/;function isCss(chunkUrl){return regexCssUrl.test(chunkUrl)}contextPrototype.w=function loadWebAssembly(chunkPath,edgeModule,importsObj){return BACKEND.loadWebAssembly(SourceType1.Parent,this.m.id,chunkPath,edgeModule,importsObj)},contextPrototype.u=function loadWebAssemblyModule(chunkPath,edgeModule){return BACKEND.loadWebAssemblyModule(SourceType1.Parent,this.m.id,chunkPath,edgeModule)};let moduleCache={};function getOrInstantiateRuntimeModule(chunkPath,moduleId){let module=moduleCache[moduleId];if(module){if(module.error)throw module.error;return module}return instantiateModule(moduleId,SourceType1.Runtime,chunkPath)}contextPrototype.c=moduleCache;let getOrInstantiateModuleFromParent=(id,sourceModule)=>{let module=moduleCache[id];if(module){if(module.error)throw module.error;return module}return instantiateModule(id,SourceType1.Parent,sourceModule.id)};function instantiateModule(id,sourceType,sourceData){let moduleFactory=moduleFactories.get(id);if("function"!=typeof moduleFactory)throw Error(factoryNotAvailableMessage(id,sourceType,sourceData));let module=createModuleObject(id),exports=module.exports;moduleCache[id]=module;let context=new Context(module,exports);try{moduleFactory(context,module,exports)}catch(error){throw module.error=error,error}return module.namespaceObject&&module.exports!==module.namespaceObject&&interopEsm(module.exports,module.namespaceObject),module}function registerChunk(registration){let runtimeParams,chunk=getChunkFromRegistration(registration[0]);return 2===registration.length?runtimeParams=registration[1]:(runtimeParams=void 0,installCompressedModuleFactories(registration,1,moduleFactories)),BACKEND.registerChunk(chunk,runtimeParams)}function getAssetSuffixFromScriptSrc(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let src=document?.currentScript?.getAttribute?.("src")??"",qi=src.indexOf("?");return qi>=0?src.slice(qi):""}let chunkResolvers=new Map;function getOrCreateResolver(chunkUrl){let resolver=chunkResolvers.get(chunkUrl);if(!resolver){let resolve,reject;resolver={resolved:!1,loadingStarted:!1,promise:new Promise((innerResolve,innerReject)=>{resolve=innerResolve,reject=innerReject}),resolve:()=>{resolver.resolved=!0,resolve()},reject:reject},chunkResolvers.set(chunkUrl,resolver)}return resolver}function doLoadChunk(sourceType,chunkUrl){let resolver=getOrCreateResolver(chunkUrl);if(resolver.loadingStarted)return resolver.promise;if(sourceType===SourceType1.Runtime)return resolver.loadingStarted=!0,isCss(chunkUrl)&&resolver.resolve(),resolver.promise;if("function"==typeof importScripts)if(isCss(chunkUrl));else if(regexJsUrl.test(chunkUrl))self.TURBOPACK_NEXT_CHUNK_URLS.push(chunkUrl),importScripts(chunkUrl);else throw Error(`can't infer type of chunk from URL ${chunkUrl} in worker`);else{let decodedChunkUrl=decodeURI(chunkUrl);if(isCss(chunkUrl))if(document.querySelectorAll(`link[rel=stylesheet][href="${chunkUrl}"],link[rel=stylesheet][href^="${chunkUrl}?"],link[rel=stylesheet][href="${decodedChunkUrl}"],link[rel=stylesheet][href^="${decodedChunkUrl}?"]`).length>0)resolver.resolve();else{let link=document.createElement("link");link.rel="stylesheet",link.href=chunkUrl,link.onerror=()=>{resolver.reject()},link.onload=()=>{resolver.resolve()},document.head.appendChild(link)}else if(regexJsUrl.test(chunkUrl)){let previousScripts=document.querySelectorAll(`script[src="${chunkUrl}"],script[src^="${chunkUrl}?"],script[src="${decodedChunkUrl}"],script[src^="${decodedChunkUrl}?"]`);if(previousScripts.length>0)for(let script of Array.from(previousScripts))script.addEventListener("error",()=>{resolver.reject()});else{let script=document.createElement("script");script.src=chunkUrl,script.onerror=()=>{resolver.reject()},document.head.appendChild(script)}}else throw Error(`can't infer type of chunk from URL ${chunkUrl}`)}return resolver.loadingStarted=!0,resolver.promise}BACKEND={async registerChunk(chunk,params){let chunkPath=getPathFromScript(chunk);if(getOrCreateResolver(getUrlFromScript(chunk)).resolve(),null!=params){for(let otherChunkData of params.otherChunks)getOrCreateResolver(getChunkRelativeUrl(getChunkPath(otherChunkData)));if(await Promise.all(params.otherChunks.map(otherChunkData=>loadInitialChunk(chunkPath,otherChunkData))),params.runtimeModuleIds.length>0)for(let moduleId of params.runtimeModuleIds)getOrInstantiateRuntimeModule(chunkPath,moduleId)}},loadChunkCached:(sourceType,chunkUrl)=>doLoadChunk(sourceType,chunkUrl),async loadWebAssembly(_sourceType,_sourceData,wasmChunkPath,_edgeModule,importsObj){let req=fetch(getChunkRelativeUrl(wasmChunkPath)),{instance}=await WebAssembly.instantiateStreaming(req,importsObj);return instance.exports},async loadWebAssemblyModule(_sourceType,_sourceData,wasmChunkPath,_edgeModule){let req=fetch(getChunkRelativeUrl(wasmChunkPath));return await WebAssembly.compileStreaming(req)}};let chunksToRegister=globalThis.TURBOPACK;globalThis.TURBOPACK={push:registerChunk},chunksToRegister.forEach(registerChunk)})(); |
| self.__BUILD_MANIFEST = { | ||
| "__rewrites": { | ||
| "afterFiles": [], | ||
| "beforeFiles": [], | ||
| "fallback": [] | ||
| }, | ||
| "sortedPages": [ | ||
| "/_app", | ||
| "/_error" | ||
| ] | ||
| };self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() |
| self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB() |
| self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() |
| /** | ||
| * Tees a cache entry's single-use value stream into two independent entries. | ||
| * The original entry is mutated to hold one branch of the tee, and a clone is | ||
| * returned holding the other, so both can be consumed independently. | ||
| */ export function cloneCacheEntry(entry) { | ||
| const [streamA, streamB] = entry.value.tee(); | ||
| entry.value = streamA; | ||
| const clonedEntry = { | ||
| value: streamB, | ||
| timestamp: entry.timestamp, | ||
| revalidate: entry.revalidate, | ||
| expire: entry.expire, | ||
| stale: entry.stale, | ||
| tags: entry.tags | ||
| }; | ||
| return [ | ||
| entry, | ||
| clonedEntry | ||
| ]; | ||
| } | ||
| //# sourceMappingURL=clone-cache-entry.js.map |
| {"version":3,"sources":["../../../../src/server/use-cache/clone-cache-entry.ts"],"sourcesContent":["import type { CacheEntry } from '../lib/cache-handlers/types'\n\n/**\n * Tees a cache entry's single-use value stream into two independent entries.\n * The original entry is mutated to hold one branch of the tee, and a clone is\n * returned holding the other, so both can be consumed independently.\n */\nexport function cloneCacheEntry(entry: CacheEntry): [CacheEntry, CacheEntry] {\n const [streamA, streamB] = entry.value.tee()\n entry.value = streamA\n const clonedEntry: CacheEntry = {\n value: streamB,\n timestamp: entry.timestamp,\n revalidate: entry.revalidate,\n expire: entry.expire,\n stale: entry.stale,\n tags: entry.tags,\n }\n return [entry, clonedEntry]\n}\n"],"names":["cloneCacheEntry","entry","streamA","streamB","value","tee","clonedEntry","timestamp","revalidate","expire","stale","tags"],"mappings":"AAEA;;;;CAIC,GACD,OAAO,SAASA,gBAAgBC,KAAiB;IAC/C,MAAM,CAACC,SAASC,QAAQ,GAAGF,MAAMG,KAAK,CAACC,GAAG;IAC1CJ,MAAMG,KAAK,GAAGF;IACd,MAAMI,cAA0B;QAC9BF,OAAOD;QACPI,WAAWN,MAAMM,SAAS;QAC1BC,YAAYP,MAAMO,UAAU;QAC5BC,QAAQR,MAAMQ,MAAM;QACpBC,OAAOT,MAAMS,KAAK;QAClBC,MAAMV,MAAMU,IAAI;IAClB;IACA,OAAO;QAACV;QAAOK;KAAY;AAC7B","ignoreList":[0]} |
| import { workAsyncStorage } from '../app-render/work-async-storage.external'; | ||
| import { cloneCacheEntry } from './clone-cache-entry'; | ||
| /** | ||
| * Development-only. Puts a fast built-in in-memory `front` handler in front of | ||
| * a slower or persistent user-configured `backing` handler. Its only job is to | ||
| * guarantee that warm reads resolve in a microtask (so they aren't counted as | ||
| * cache misses at a staged-render boundary, which would otherwise surface a | ||
| * cold cache indicator), while keeping the front in sync with the backing. | ||
| * | ||
| * It implements only `get` and `set` because that is all the wrapper calls on | ||
| * its handler. Regeneration is never done here; this only reads, mirrors, and | ||
| * writes through. | ||
| * | ||
| * The handler is a per-kind singleton (the front and backing are both shared), | ||
| * so its in-flight map can serialize background front syncs for a key across | ||
| * concurrent reads, running them one at a time instead of in parallel. | ||
| */ export function createTieredCacheHandler(front, backing) { | ||
| // Holds the in-flight (or chained) background sync per key, so a sync for a | ||
| // key runs after any earlier one for that key rather than in parallel. | ||
| const inFlightSyncs = new Map(); | ||
| function scheduleBackgroundSync(cacheKey, sync) { | ||
| // Serialize syncs per key: chain this one after any in-flight sync rather | ||
| // than running a second in parallel. The trailing sync still re-reads the | ||
| // backing, so the front converges to the latest state; a later read is | ||
| // never dropped in favor of an earlier, possibly stale, in-flight read. | ||
| const previous = inFlightSyncs.get(cacheKey); | ||
| let pending; | ||
| if (previous) { | ||
| pending = previous.then(sync); | ||
| } else { | ||
| pending = sync(); | ||
| } | ||
| pending = pending.finally(()=>{ | ||
| if (inFlightSyncs.get(cacheKey) === pending) { | ||
| inFlightSyncs.delete(cacheKey); | ||
| } | ||
| }); | ||
| inFlightSyncs.set(cacheKey, pending); | ||
| // Register the sync on the current request's revalidation writes so it is | ||
| // awaited rather than left untracked. Reading the work store here (rather | ||
| // than capturing it at construction) is what lets the handler be a shared | ||
| // singleton; `get` always runs within the request's async context, so the | ||
| // store is present. | ||
| const workStore = workAsyncStorage.getStore(); | ||
| if (workStore) { | ||
| workStore.pendingRevalidateWrites ??= []; | ||
| workStore.pendingRevalidateWrites.push(pending); | ||
| } | ||
| } | ||
| return { | ||
| async get (cacheKey, softTags) { | ||
| const frontEntry = await front.get(cacheKey, softTags); | ||
| if (frontEntry) { | ||
| // Warm hit: serve immediately (in a microtask). A background reconcile | ||
| // keeps the front in sync with the backing for the next read; | ||
| // reconciles for the same key are serialized, so concurrent warm reads | ||
| // don't hit the backing in parallel. | ||
| scheduleBackgroundSync(cacheKey, ()=>reconcileFrontFromBacking(front, backing, cacheKey, softTags, frontEntry)); | ||
| return frontEntry; | ||
| } | ||
| // Cold or evicted front entry: we pay the backing latency here (this is a | ||
| // read that may legitimately surface a cold cache indicator). A miss | ||
| // returns undefined and the "use cache" wrapper generates the entry and | ||
| // writes it through both tiers via `set`. | ||
| const backingEntry = await backing.get(cacheKey, softTags); | ||
| if (!backingEntry) { | ||
| return undefined; | ||
| } | ||
| // Mirror this freshly read backing entry into the front so the next read | ||
| // is warm. The mirror is serialized per key: if a sync is already | ||
| // running, this chains after it, so the front converges to this read even | ||
| // if the backing changed since that sync started. | ||
| const [servedEntry, mirroredEntry] = cloneCacheEntry(backingEntry); | ||
| scheduleBackgroundSync(cacheKey, ()=>mirrorIntoFront(front, cacheKey, mirroredEntry)); | ||
| return servedEntry; | ||
| }, | ||
| async set (cacheKey, pendingEntry) { | ||
| // Write through to both tiers. The entry's value stream is single-use, so | ||
| // tee it into one entry per tier. | ||
| const entry = await pendingEntry; | ||
| const [frontEntry, backingEntry] = cloneCacheEntry(entry); | ||
| await Promise.all([ | ||
| front.set(cacheKey, Promise.resolve(frontEntry)), | ||
| backing.set(cacheKey, Promise.resolve(backingEntry)) | ||
| ]); | ||
| } | ||
| }; | ||
| } | ||
| /** | ||
| * After serving a warm front hit, consult the backing and mirror a newer entry | ||
| * into the front for the next read. Runs in the background; failures are | ||
| * non-fatal. | ||
| */ async function reconcileFrontFromBacking(front, backing, cacheKey, softTags, frontEntry) { | ||
| try { | ||
| const backingEntry = await backing.get(cacheKey, softTags); | ||
| if (!backingEntry) { | ||
| // The backing no longer has this entry (it was purged out-of-band). The | ||
| // cache-handler interface has no per-key delete, so evict the front entry | ||
| // by overwriting it with an already-expired copy: the next read sees a | ||
| // front miss, falls through to the (also empty) backing, and the wrapper | ||
| // regenerates. The entry we just served was the last stale read. | ||
| await front.set(cacheKey, Promise.resolve(toExpiredEntry(frontEntry))); | ||
| return; | ||
| } | ||
| if (backingEntry.timestamp > frontEntry.timestamp) { | ||
| await front.set(cacheKey, Promise.resolve(backingEntry)); | ||
| } else { | ||
| // The front is already up to date, so the backing entry goes unused. | ||
| // Release its stream without awaiting: a teed stream's `cancel()` only | ||
| // settles once the sibling branch (retained by the backing handler) is | ||
| // also cancelled, so awaiting it here would hang the reconcile. | ||
| void backingEntry.value.cancel(); | ||
| } | ||
| } catch { | ||
| // Background warming; failures are non-fatal. | ||
| } | ||
| } | ||
| /** | ||
| * Mirror a backing entry into the front. | ||
| */ async function mirrorIntoFront(front, cacheKey, entry) { | ||
| try { | ||
| await front.set(cacheKey, Promise.resolve(entry)); | ||
| } catch { | ||
| // Background warming; failures are non-fatal. | ||
| } | ||
| } | ||
| /** | ||
| * Build an already-expired copy of an entry, used to evict it from the front | ||
| * handler (which has no per-key delete) once the backing no longer has it. In | ||
| * dev the default handler treats an entry as missing once `now > timestamp + | ||
| * expire * 1000`, so `expire: 0` against the original (past) timestamp makes | ||
| * the next read a miss. The value is never read once the entry is expired, but | ||
| * it must carry at least one byte because the built-in LRU cache refuses to | ||
| * store size-0 entries. | ||
| */ function toExpiredEntry(entry) { | ||
| return { | ||
| ...entry, | ||
| expire: 0, | ||
| value: new ReadableStream({ | ||
| start (controller) { | ||
| controller.enqueue(new Uint8Array(1)); | ||
| controller.close(); | ||
| } | ||
| }) | ||
| }; | ||
| } | ||
| //# sourceMappingURL=tiered-cache-handler.js.map |
| {"version":3,"sources":["../../../../src/server/use-cache/tiered-cache-handler.ts"],"sourcesContent":["import type { CacheEntry, CacheHandler } from '../lib/cache-handlers/types'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { cloneCacheEntry } from './clone-cache-entry'\n\n/**\n * The subset of the cache-handler interface used on the per-invocation\n * read/write path in the \"use cache\" wrapper. Tag operations are intentionally\n * excluded: they are applied to the front and backing handlers individually by\n * the registry iterators (`getCacheHandlers` / `getCacheHandlerEntries`), never\n * through this composite, so the composite is never registered.\n */\nexport type CacheReadWriteHandler = Pick<CacheHandler, 'get' | 'set'>\n\n/**\n * Development-only. Puts a fast built-in in-memory `front` handler in front of\n * a slower or persistent user-configured `backing` handler. Its only job is to\n * guarantee that warm reads resolve in a microtask (so they aren't counted as\n * cache misses at a staged-render boundary, which would otherwise surface a\n * cold cache indicator), while keeping the front in sync with the backing.\n *\n * It implements only `get` and `set` because that is all the wrapper calls on\n * its handler. Regeneration is never done here; this only reads, mirrors, and\n * writes through.\n *\n * The handler is a per-kind singleton (the front and backing are both shared),\n * so its in-flight map can serialize background front syncs for a key across\n * concurrent reads, running them one at a time instead of in parallel.\n */\nexport function createTieredCacheHandler(\n front: CacheHandler,\n backing: CacheHandler\n): CacheReadWriteHandler {\n // Holds the in-flight (or chained) background sync per key, so a sync for a\n // key runs after any earlier one for that key rather than in parallel.\n const inFlightSyncs = new Map<string, Promise<void>>()\n\n function scheduleBackgroundSync(\n cacheKey: string,\n sync: () => Promise<void>\n ): void {\n // Serialize syncs per key: chain this one after any in-flight sync rather\n // than running a second in parallel. The trailing sync still re-reads the\n // backing, so the front converges to the latest state; a later read is\n // never dropped in favor of an earlier, possibly stale, in-flight read.\n const previous = inFlightSyncs.get(cacheKey)\n\n let pending: Promise<void>\n if (previous) {\n pending = previous.then(sync)\n } else {\n pending = sync()\n }\n\n pending = pending.finally(() => {\n if (inFlightSyncs.get(cacheKey) === pending) {\n inFlightSyncs.delete(cacheKey)\n }\n })\n\n inFlightSyncs.set(cacheKey, pending)\n\n // Register the sync on the current request's revalidation writes so it is\n // awaited rather than left untracked. Reading the work store here (rather\n // than capturing it at construction) is what lets the handler be a shared\n // singleton; `get` always runs within the request's async context, so the\n // store is present.\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pendingRevalidateWrites ??= []\n workStore.pendingRevalidateWrites.push(pending)\n }\n }\n\n return {\n async get(cacheKey, softTags) {\n const frontEntry = await front.get(cacheKey, softTags)\n\n if (frontEntry) {\n // Warm hit: serve immediately (in a microtask). A background reconcile\n // keeps the front in sync with the backing for the next read;\n // reconciles for the same key are serialized, so concurrent warm reads\n // don't hit the backing in parallel.\n scheduleBackgroundSync(cacheKey, () =>\n reconcileFrontFromBacking(\n front,\n backing,\n cacheKey,\n softTags,\n frontEntry\n )\n )\n\n return frontEntry\n }\n\n // Cold or evicted front entry: we pay the backing latency here (this is a\n // read that may legitimately surface a cold cache indicator). A miss\n // returns undefined and the \"use cache\" wrapper generates the entry and\n // writes it through both tiers via `set`.\n const backingEntry = await backing.get(cacheKey, softTags)\n\n if (!backingEntry) {\n return undefined\n }\n\n // Mirror this freshly read backing entry into the front so the next read\n // is warm. The mirror is serialized per key: if a sync is already\n // running, this chains after it, so the front converges to this read even\n // if the backing changed since that sync started.\n const [servedEntry, mirroredEntry] = cloneCacheEntry(backingEntry)\n scheduleBackgroundSync(cacheKey, () =>\n mirrorIntoFront(front, cacheKey, mirroredEntry)\n )\n\n return servedEntry\n },\n\n async set(cacheKey, pendingEntry) {\n // Write through to both tiers. The entry's value stream is single-use, so\n // tee it into one entry per tier.\n const entry = await pendingEntry\n const [frontEntry, backingEntry] = cloneCacheEntry(entry)\n\n await Promise.all([\n front.set(cacheKey, Promise.resolve(frontEntry)),\n backing.set(cacheKey, Promise.resolve(backingEntry)),\n ])\n },\n }\n}\n\n/**\n * After serving a warm front hit, consult the backing and mirror a newer entry\n * into the front for the next read. Runs in the background; failures are\n * non-fatal.\n */\nasync function reconcileFrontFromBacking(\n front: CacheHandler,\n backing: CacheHandler,\n cacheKey: string,\n softTags: string[],\n frontEntry: CacheEntry\n): Promise<void> {\n try {\n const backingEntry = await backing.get(cacheKey, softTags)\n\n if (!backingEntry) {\n // The backing no longer has this entry (it was purged out-of-band). The\n // cache-handler interface has no per-key delete, so evict the front entry\n // by overwriting it with an already-expired copy: the next read sees a\n // front miss, falls through to the (also empty) backing, and the wrapper\n // regenerates. The entry we just served was the last stale read.\n await front.set(cacheKey, Promise.resolve(toExpiredEntry(frontEntry)))\n\n return\n }\n\n if (backingEntry.timestamp > frontEntry.timestamp) {\n await front.set(cacheKey, Promise.resolve(backingEntry))\n } else {\n // The front is already up to date, so the backing entry goes unused.\n // Release its stream without awaiting: a teed stream's `cancel()` only\n // settles once the sibling branch (retained by the backing handler) is\n // also cancelled, so awaiting it here would hang the reconcile.\n void backingEntry.value.cancel()\n }\n } catch {\n // Background warming; failures are non-fatal.\n }\n}\n\n/**\n * Mirror a backing entry into the front.\n */\nasync function mirrorIntoFront(\n front: CacheHandler,\n cacheKey: string,\n entry: CacheEntry\n): Promise<void> {\n try {\n await front.set(cacheKey, Promise.resolve(entry))\n } catch {\n // Background warming; failures are non-fatal.\n }\n}\n\n/**\n * Build an already-expired copy of an entry, used to evict it from the front\n * handler (which has no per-key delete) once the backing no longer has it. In\n * dev the default handler treats an entry as missing once `now > timestamp +\n * expire * 1000`, so `expire: 0` against the original (past) timestamp makes\n * the next read a miss. The value is never read once the entry is expired, but\n * it must carry at least one byte because the built-in LRU cache refuses to\n * store size-0 entries.\n */\nfunction toExpiredEntry(entry: CacheEntry): CacheEntry {\n return {\n ...entry,\n expire: 0,\n value: new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(1))\n controller.close()\n },\n }),\n }\n}\n"],"names":["workAsyncStorage","cloneCacheEntry","createTieredCacheHandler","front","backing","inFlightSyncs","Map","scheduleBackgroundSync","cacheKey","sync","previous","get","pending","then","finally","delete","set","workStore","getStore","pendingRevalidateWrites","push","softTags","frontEntry","reconcileFrontFromBacking","backingEntry","undefined","servedEntry","mirroredEntry","mirrorIntoFront","pendingEntry","entry","Promise","all","resolve","toExpiredEntry","timestamp","value","cancel","expire","ReadableStream","start","controller","enqueue","Uint8Array","close"],"mappings":"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","ignoreList":[0]} |
| export declare function CopyPromptIcon(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element; |
| import type { CacheEntry } from '../lib/cache-handlers/types'; | ||
| /** | ||
| * Tees a cache entry's single-use value stream into two independent entries. | ||
| * The original entry is mutated to hold one branch of the tee, and a clone is | ||
| * returned holding the other, so both can be consumed independently. | ||
| */ | ||
| export declare function cloneCacheEntry(entry: CacheEntry): [CacheEntry, CacheEntry]; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| Object.defineProperty(exports, "cloneCacheEntry", { | ||
| enumerable: true, | ||
| get: function() { | ||
| return cloneCacheEntry; | ||
| } | ||
| }); | ||
| function cloneCacheEntry(entry) { | ||
| const [streamA, streamB] = entry.value.tee(); | ||
| entry.value = streamA; | ||
| const clonedEntry = { | ||
| value: streamB, | ||
| timestamp: entry.timestamp, | ||
| revalidate: entry.revalidate, | ||
| expire: entry.expire, | ||
| stale: entry.stale, | ||
| tags: entry.tags | ||
| }; | ||
| return [ | ||
| entry, | ||
| clonedEntry | ||
| ]; | ||
| } | ||
| //# sourceMappingURL=clone-cache-entry.js.map |
| {"version":3,"sources":["../../../src/server/use-cache/clone-cache-entry.ts"],"sourcesContent":["import type { CacheEntry } from '../lib/cache-handlers/types'\n\n/**\n * Tees a cache entry's single-use value stream into two independent entries.\n * The original entry is mutated to hold one branch of the tee, and a clone is\n * returned holding the other, so both can be consumed independently.\n */\nexport function cloneCacheEntry(entry: CacheEntry): [CacheEntry, CacheEntry] {\n const [streamA, streamB] = entry.value.tee()\n entry.value = streamA\n const clonedEntry: CacheEntry = {\n value: streamB,\n timestamp: entry.timestamp,\n revalidate: entry.revalidate,\n expire: entry.expire,\n stale: entry.stale,\n tags: entry.tags,\n }\n return [entry, clonedEntry]\n}\n"],"names":["cloneCacheEntry","entry","streamA","streamB","value","tee","clonedEntry","timestamp","revalidate","expire","stale","tags"],"mappings":";;;;+BAOgBA;;;eAAAA;;;AAAT,SAASA,gBAAgBC,KAAiB;IAC/C,MAAM,CAACC,SAASC,QAAQ,GAAGF,MAAMG,KAAK,CAACC,GAAG;IAC1CJ,MAAMG,KAAK,GAAGF;IACd,MAAMI,cAA0B;QAC9BF,OAAOD;QACPI,WAAWN,MAAMM,SAAS;QAC1BC,YAAYP,MAAMO,UAAU;QAC5BC,QAAQR,MAAMQ,MAAM;QACpBC,OAAOT,MAAMS,KAAK;QAClBC,MAAMV,MAAMU,IAAI;IAClB;IACA,OAAO;QAACV;QAAOK;KAAY;AAC7B","ignoreList":[0]} |
| import type { CacheHandler } from '../lib/cache-handlers/types'; | ||
| /** | ||
| * The subset of the cache-handler interface used on the per-invocation | ||
| * read/write path in the "use cache" wrapper. Tag operations are intentionally | ||
| * excluded: they are applied to the front and backing handlers individually by | ||
| * the registry iterators (`getCacheHandlers` / `getCacheHandlerEntries`), never | ||
| * through this composite, so the composite is never registered. | ||
| */ | ||
| export type CacheReadWriteHandler = Pick<CacheHandler, 'get' | 'set'>; | ||
| /** | ||
| * Development-only. Puts a fast built-in in-memory `front` handler in front of | ||
| * a slower or persistent user-configured `backing` handler. Its only job is to | ||
| * guarantee that warm reads resolve in a microtask (so they aren't counted as | ||
| * cache misses at a staged-render boundary, which would otherwise surface a | ||
| * cold cache indicator), while keeping the front in sync with the backing. | ||
| * | ||
| * It implements only `get` and `set` because that is all the wrapper calls on | ||
| * its handler. Regeneration is never done here; this only reads, mirrors, and | ||
| * writes through. | ||
| * | ||
| * The handler is a per-kind singleton (the front and backing are both shared), | ||
| * so its in-flight map can serialize background front syncs for a key across | ||
| * concurrent reads, running them one at a time instead of in parallel. | ||
| */ | ||
| export declare function createTieredCacheHandler(front: CacheHandler, backing: CacheHandler): CacheReadWriteHandler; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| Object.defineProperty(exports, "createTieredCacheHandler", { | ||
| enumerable: true, | ||
| get: function() { | ||
| return createTieredCacheHandler; | ||
| } | ||
| }); | ||
| const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); | ||
| const _clonecacheentry = require("./clone-cache-entry"); | ||
| function createTieredCacheHandler(front, backing) { | ||
| // Holds the in-flight (or chained) background sync per key, so a sync for a | ||
| // key runs after any earlier one for that key rather than in parallel. | ||
| const inFlightSyncs = new Map(); | ||
| function scheduleBackgroundSync(cacheKey, sync) { | ||
| // Serialize syncs per key: chain this one after any in-flight sync rather | ||
| // than running a second in parallel. The trailing sync still re-reads the | ||
| // backing, so the front converges to the latest state; a later read is | ||
| // never dropped in favor of an earlier, possibly stale, in-flight read. | ||
| const previous = inFlightSyncs.get(cacheKey); | ||
| let pending; | ||
| if (previous) { | ||
| pending = previous.then(sync); | ||
| } else { | ||
| pending = sync(); | ||
| } | ||
| pending = pending.finally(()=>{ | ||
| if (inFlightSyncs.get(cacheKey) === pending) { | ||
| inFlightSyncs.delete(cacheKey); | ||
| } | ||
| }); | ||
| inFlightSyncs.set(cacheKey, pending); | ||
| // Register the sync on the current request's revalidation writes so it is | ||
| // awaited rather than left untracked. Reading the work store here (rather | ||
| // than capturing it at construction) is what lets the handler be a shared | ||
| // singleton; `get` always runs within the request's async context, so the | ||
| // store is present. | ||
| const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); | ||
| if (workStore) { | ||
| workStore.pendingRevalidateWrites ??= []; | ||
| workStore.pendingRevalidateWrites.push(pending); | ||
| } | ||
| } | ||
| return { | ||
| async get (cacheKey, softTags) { | ||
| const frontEntry = await front.get(cacheKey, softTags); | ||
| if (frontEntry) { | ||
| // Warm hit: serve immediately (in a microtask). A background reconcile | ||
| // keeps the front in sync with the backing for the next read; | ||
| // reconciles for the same key are serialized, so concurrent warm reads | ||
| // don't hit the backing in parallel. | ||
| scheduleBackgroundSync(cacheKey, ()=>reconcileFrontFromBacking(front, backing, cacheKey, softTags, frontEntry)); | ||
| return frontEntry; | ||
| } | ||
| // Cold or evicted front entry: we pay the backing latency here (this is a | ||
| // read that may legitimately surface a cold cache indicator). A miss | ||
| // returns undefined and the "use cache" wrapper generates the entry and | ||
| // writes it through both tiers via `set`. | ||
| const backingEntry = await backing.get(cacheKey, softTags); | ||
| if (!backingEntry) { | ||
| return undefined; | ||
| } | ||
| // Mirror this freshly read backing entry into the front so the next read | ||
| // is warm. The mirror is serialized per key: if a sync is already | ||
| // running, this chains after it, so the front converges to this read even | ||
| // if the backing changed since that sync started. | ||
| const [servedEntry, mirroredEntry] = (0, _clonecacheentry.cloneCacheEntry)(backingEntry); | ||
| scheduleBackgroundSync(cacheKey, ()=>mirrorIntoFront(front, cacheKey, mirroredEntry)); | ||
| return servedEntry; | ||
| }, | ||
| async set (cacheKey, pendingEntry) { | ||
| // Write through to both tiers. The entry's value stream is single-use, so | ||
| // tee it into one entry per tier. | ||
| const entry = await pendingEntry; | ||
| const [frontEntry, backingEntry] = (0, _clonecacheentry.cloneCacheEntry)(entry); | ||
| await Promise.all([ | ||
| front.set(cacheKey, Promise.resolve(frontEntry)), | ||
| backing.set(cacheKey, Promise.resolve(backingEntry)) | ||
| ]); | ||
| } | ||
| }; | ||
| } | ||
| /** | ||
| * After serving a warm front hit, consult the backing and mirror a newer entry | ||
| * into the front for the next read. Runs in the background; failures are | ||
| * non-fatal. | ||
| */ async function reconcileFrontFromBacking(front, backing, cacheKey, softTags, frontEntry) { | ||
| try { | ||
| const backingEntry = await backing.get(cacheKey, softTags); | ||
| if (!backingEntry) { | ||
| // The backing no longer has this entry (it was purged out-of-band). The | ||
| // cache-handler interface has no per-key delete, so evict the front entry | ||
| // by overwriting it with an already-expired copy: the next read sees a | ||
| // front miss, falls through to the (also empty) backing, and the wrapper | ||
| // regenerates. The entry we just served was the last stale read. | ||
| await front.set(cacheKey, Promise.resolve(toExpiredEntry(frontEntry))); | ||
| return; | ||
| } | ||
| if (backingEntry.timestamp > frontEntry.timestamp) { | ||
| await front.set(cacheKey, Promise.resolve(backingEntry)); | ||
| } else { | ||
| // The front is already up to date, so the backing entry goes unused. | ||
| // Release its stream without awaiting: a teed stream's `cancel()` only | ||
| // settles once the sibling branch (retained by the backing handler) is | ||
| // also cancelled, so awaiting it here would hang the reconcile. | ||
| void backingEntry.value.cancel(); | ||
| } | ||
| } catch { | ||
| // Background warming; failures are non-fatal. | ||
| } | ||
| } | ||
| /** | ||
| * Mirror a backing entry into the front. | ||
| */ async function mirrorIntoFront(front, cacheKey, entry) { | ||
| try { | ||
| await front.set(cacheKey, Promise.resolve(entry)); | ||
| } catch { | ||
| // Background warming; failures are non-fatal. | ||
| } | ||
| } | ||
| /** | ||
| * Build an already-expired copy of an entry, used to evict it from the front | ||
| * handler (which has no per-key delete) once the backing no longer has it. In | ||
| * dev the default handler treats an entry as missing once `now > timestamp + | ||
| * expire * 1000`, so `expire: 0` against the original (past) timestamp makes | ||
| * the next read a miss. The value is never read once the entry is expired, but | ||
| * it must carry at least one byte because the built-in LRU cache refuses to | ||
| * store size-0 entries. | ||
| */ function toExpiredEntry(entry) { | ||
| return { | ||
| ...entry, | ||
| expire: 0, | ||
| value: new ReadableStream({ | ||
| start (controller) { | ||
| controller.enqueue(new Uint8Array(1)); | ||
| controller.close(); | ||
| } | ||
| }) | ||
| }; | ||
| } | ||
| //# sourceMappingURL=tiered-cache-handler.js.map |
| {"version":3,"sources":["../../../src/server/use-cache/tiered-cache-handler.ts"],"sourcesContent":["import type { CacheEntry, CacheHandler } from '../lib/cache-handlers/types'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { cloneCacheEntry } from './clone-cache-entry'\n\n/**\n * The subset of the cache-handler interface used on the per-invocation\n * read/write path in the \"use cache\" wrapper. Tag operations are intentionally\n * excluded: they are applied to the front and backing handlers individually by\n * the registry iterators (`getCacheHandlers` / `getCacheHandlerEntries`), never\n * through this composite, so the composite is never registered.\n */\nexport type CacheReadWriteHandler = Pick<CacheHandler, 'get' | 'set'>\n\n/**\n * Development-only. Puts a fast built-in in-memory `front` handler in front of\n * a slower or persistent user-configured `backing` handler. Its only job is to\n * guarantee that warm reads resolve in a microtask (so they aren't counted as\n * cache misses at a staged-render boundary, which would otherwise surface a\n * cold cache indicator), while keeping the front in sync with the backing.\n *\n * It implements only `get` and `set` because that is all the wrapper calls on\n * its handler. Regeneration is never done here; this only reads, mirrors, and\n * writes through.\n *\n * The handler is a per-kind singleton (the front and backing are both shared),\n * so its in-flight map can serialize background front syncs for a key across\n * concurrent reads, running them one at a time instead of in parallel.\n */\nexport function createTieredCacheHandler(\n front: CacheHandler,\n backing: CacheHandler\n): CacheReadWriteHandler {\n // Holds the in-flight (or chained) background sync per key, so a sync for a\n // key runs after any earlier one for that key rather than in parallel.\n const inFlightSyncs = new Map<string, Promise<void>>()\n\n function scheduleBackgroundSync(\n cacheKey: string,\n sync: () => Promise<void>\n ): void {\n // Serialize syncs per key: chain this one after any in-flight sync rather\n // than running a second in parallel. The trailing sync still re-reads the\n // backing, so the front converges to the latest state; a later read is\n // never dropped in favor of an earlier, possibly stale, in-flight read.\n const previous = inFlightSyncs.get(cacheKey)\n\n let pending: Promise<void>\n if (previous) {\n pending = previous.then(sync)\n } else {\n pending = sync()\n }\n\n pending = pending.finally(() => {\n if (inFlightSyncs.get(cacheKey) === pending) {\n inFlightSyncs.delete(cacheKey)\n }\n })\n\n inFlightSyncs.set(cacheKey, pending)\n\n // Register the sync on the current request's revalidation writes so it is\n // awaited rather than left untracked. Reading the work store here (rather\n // than capturing it at construction) is what lets the handler be a shared\n // singleton; `get` always runs within the request's async context, so the\n // store is present.\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pendingRevalidateWrites ??= []\n workStore.pendingRevalidateWrites.push(pending)\n }\n }\n\n return {\n async get(cacheKey, softTags) {\n const frontEntry = await front.get(cacheKey, softTags)\n\n if (frontEntry) {\n // Warm hit: serve immediately (in a microtask). A background reconcile\n // keeps the front in sync with the backing for the next read;\n // reconciles for the same key are serialized, so concurrent warm reads\n // don't hit the backing in parallel.\n scheduleBackgroundSync(cacheKey, () =>\n reconcileFrontFromBacking(\n front,\n backing,\n cacheKey,\n softTags,\n frontEntry\n )\n )\n\n return frontEntry\n }\n\n // Cold or evicted front entry: we pay the backing latency here (this is a\n // read that may legitimately surface a cold cache indicator). A miss\n // returns undefined and the \"use cache\" wrapper generates the entry and\n // writes it through both tiers via `set`.\n const backingEntry = await backing.get(cacheKey, softTags)\n\n if (!backingEntry) {\n return undefined\n }\n\n // Mirror this freshly read backing entry into the front so the next read\n // is warm. The mirror is serialized per key: if a sync is already\n // running, this chains after it, so the front converges to this read even\n // if the backing changed since that sync started.\n const [servedEntry, mirroredEntry] = cloneCacheEntry(backingEntry)\n scheduleBackgroundSync(cacheKey, () =>\n mirrorIntoFront(front, cacheKey, mirroredEntry)\n )\n\n return servedEntry\n },\n\n async set(cacheKey, pendingEntry) {\n // Write through to both tiers. The entry's value stream is single-use, so\n // tee it into one entry per tier.\n const entry = await pendingEntry\n const [frontEntry, backingEntry] = cloneCacheEntry(entry)\n\n await Promise.all([\n front.set(cacheKey, Promise.resolve(frontEntry)),\n backing.set(cacheKey, Promise.resolve(backingEntry)),\n ])\n },\n }\n}\n\n/**\n * After serving a warm front hit, consult the backing and mirror a newer entry\n * into the front for the next read. Runs in the background; failures are\n * non-fatal.\n */\nasync function reconcileFrontFromBacking(\n front: CacheHandler,\n backing: CacheHandler,\n cacheKey: string,\n softTags: string[],\n frontEntry: CacheEntry\n): Promise<void> {\n try {\n const backingEntry = await backing.get(cacheKey, softTags)\n\n if (!backingEntry) {\n // The backing no longer has this entry (it was purged out-of-band). The\n // cache-handler interface has no per-key delete, so evict the front entry\n // by overwriting it with an already-expired copy: the next read sees a\n // front miss, falls through to the (also empty) backing, and the wrapper\n // regenerates. The entry we just served was the last stale read.\n await front.set(cacheKey, Promise.resolve(toExpiredEntry(frontEntry)))\n\n return\n }\n\n if (backingEntry.timestamp > frontEntry.timestamp) {\n await front.set(cacheKey, Promise.resolve(backingEntry))\n } else {\n // The front is already up to date, so the backing entry goes unused.\n // Release its stream without awaiting: a teed stream's `cancel()` only\n // settles once the sibling branch (retained by the backing handler) is\n // also cancelled, so awaiting it here would hang the reconcile.\n void backingEntry.value.cancel()\n }\n } catch {\n // Background warming; failures are non-fatal.\n }\n}\n\n/**\n * Mirror a backing entry into the front.\n */\nasync function mirrorIntoFront(\n front: CacheHandler,\n cacheKey: string,\n entry: CacheEntry\n): Promise<void> {\n try {\n await front.set(cacheKey, Promise.resolve(entry))\n } catch {\n // Background warming; failures are non-fatal.\n }\n}\n\n/**\n * Build an already-expired copy of an entry, used to evict it from the front\n * handler (which has no per-key delete) once the backing no longer has it. In\n * dev the default handler treats an entry as missing once `now > timestamp +\n * expire * 1000`, so `expire: 0` against the original (past) timestamp makes\n * the next read a miss. The value is never read once the entry is expired, but\n * it must carry at least one byte because the built-in LRU cache refuses to\n * store size-0 entries.\n */\nfunction toExpiredEntry(entry: CacheEntry): CacheEntry {\n return {\n ...entry,\n expire: 0,\n value: new ReadableStream({\n start(controller) {\n controller.enqueue(new Uint8Array(1))\n controller.close()\n },\n }),\n }\n}\n"],"names":["createTieredCacheHandler","front","backing","inFlightSyncs","Map","scheduleBackgroundSync","cacheKey","sync","previous","get","pending","then","finally","delete","set","workStore","workAsyncStorage","getStore","pendingRevalidateWrites","push","softTags","frontEntry","reconcileFrontFromBacking","backingEntry","undefined","servedEntry","mirroredEntry","cloneCacheEntry","mirrorIntoFront","pendingEntry","entry","Promise","all","resolve","toExpiredEntry","timestamp","value","cancel","expire","ReadableStream","start","controller","enqueue","Uint8Array","close"],"mappings":"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","ignoreList":[0]} |
@@ -58,10 +58,10 @@ "use strict"; | ||
| if (topLevelWarnings.length > 0) { | ||
| console.warn(`Turbopack build encountered ${topLevelWarnings.length} warnings:\n${topLevelWarnings.join('\n')}`); | ||
| console.warn(`Turbopack build encountered ${topLevelWarnings.length} ${topLevelWarnings.length === 1 ? 'warning' : 'warnings'}:\n${topLevelWarnings.join('\n')}`); | ||
| } | ||
| if (topLevelErrors.length > 0) { | ||
| console.error(`Turbopack build encountered ${topLevelErrors.length} errors:\n${topLevelErrors.join('\n')}`); | ||
| console.error(`Turbopack build encountered ${topLevelErrors.length} ${topLevelErrors.length === 1 ? 'error' : 'errors'}:\n${topLevelErrors.join('\n')}`); | ||
| } | ||
| if (topLevelFatalIssues.length > 0) { | ||
| throw Object.defineProperty(new Error(`Turbopack build failed with ${topLevelFatalIssues.length} errors:\n${topLevelFatalIssues.join('\n')}`), "__NEXT_ERROR_CODE", { | ||
| value: "E425", | ||
| throw Object.defineProperty(new Error(`Turbopack build failed with ${topLevelFatalIssues.length} ${topLevelFatalIssues.length === 1 ? 'error' : 'errors'}:\n${topLevelFatalIssues.join('\n')}`), "__NEXT_ERROR_CODE", { | ||
| value: "E1366", | ||
| enumerable: false, | ||
@@ -68,0 +68,0 @@ configurable: true |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/build/print-build-errors.ts"],"sourcesContent":["import { formatIssue, isRelevantWarning } from '../shared/lib/turbopack/utils'\nimport type { TurbopackResult } from './swc/types'\n\n/**\n * Processes and reports build issues from Turbopack entrypoints.\n *\n * @param entrypoints - The result object containing build issues to process.\n * @param isDev - A flag indicating if the build is running in development mode.\n * @return This function does not return a value but logs or throws errors based on the issues.\n * @throws {Error} If a fatal issue is encountered, this function throws an error. In development mode, we only throw on\n * 'fatal' and 'bug' issues. In production mode, we also throw on 'error' issues.\n */\nexport function printBuildErrors(\n entrypoints: TurbopackResult,\n isDev: boolean\n): void {\n // Issues that we want to stop the server from executing\n const topLevelFatalIssues = []\n // Issues that are true errors, but we believe we can keep running and allow the user to address the issue\n const topLevelErrors = []\n // Issues that are warnings but should not affect the running of the build\n const topLevelWarnings = []\n\n // Track seen formatted error messages to avoid duplicates\n const seenFatalIssues = new Set<string>()\n const seenErrors = new Set<string>()\n const seenWarnings = new Set<string>()\n\n for (const issue of entrypoints.issues) {\n // We only want to completely shut down the server\n if (issue.severity === 'fatal' || issue.severity === 'bug') {\n const formatted = formatIssue(issue)\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n } else if (isRelevantWarning(issue)) {\n const formatted = formatIssue(issue)\n if (!seenWarnings.has(formatted)) {\n seenWarnings.add(formatted)\n topLevelWarnings.push(formatted)\n }\n } else if (issue.severity === 'error') {\n const formatted = formatIssue(issue)\n if (isDev) {\n // We want to treat errors as recoverable in development\n // so that we can show the errors in the site and allow users\n // to respond to the errors when necessary. In production builds\n // though we want to error out and stop the build process.\n if (!seenErrors.has(formatted)) {\n seenErrors.add(formatted)\n topLevelErrors.push(formatted)\n }\n } else {\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n }\n }\n }\n // TODO: print in order by source location so issues from the same file are displayed together and then add a summary at the end about the number of warnings/errors\n if (topLevelWarnings.length > 0) {\n console.warn(\n `Turbopack build encountered ${\n topLevelWarnings.length\n } warnings:\\n${topLevelWarnings.join('\\n')}`\n )\n }\n\n if (topLevelErrors.length > 0) {\n console.error(\n `Turbopack build encountered ${\n topLevelErrors.length\n } errors:\\n${topLevelErrors.join('\\n')}`\n )\n }\n\n if (topLevelFatalIssues.length > 0) {\n throw new Error(\n `Turbopack build failed with ${\n topLevelFatalIssues.length\n } errors:\\n${topLevelFatalIssues.join('\\n')}`\n )\n }\n}\n"],"names":["printBuildErrors","entrypoints","isDev","topLevelFatalIssues","topLevelErrors","topLevelWarnings","seenFatalIssues","Set","seenErrors","seenWarnings","issue","issues","severity","formatted","formatIssue","has","add","push","isRelevantWarning","length","console","warn","join","error","Error"],"mappings":";;;;+BAYgBA;;;eAAAA;;;uBAZ+B;AAYxC,SAASA,iBACdC,WAA4B,EAC5BC,KAAc;IAEd,wDAAwD;IACxD,MAAMC,sBAAsB,EAAE;IAC9B,0GAA0G;IAC1G,MAAMC,iBAAiB,EAAE;IACzB,0EAA0E;IAC1E,MAAMC,mBAAmB,EAAE;IAE3B,0DAA0D;IAC1D,MAAMC,kBAAkB,IAAIC;IAC5B,MAAMC,aAAa,IAAID;IACvB,MAAME,eAAe,IAAIF;IAEzB,KAAK,MAAMG,SAAST,YAAYU,MAAM,CAAE;QACtC,kDAAkD;QAClD,IAAID,MAAME,QAAQ,KAAK,WAAWF,MAAME,QAAQ,KAAK,OAAO;YAC1D,MAAMC,YAAYC,IAAAA,kBAAW,EAACJ;YAC9B,IAAI,CAACJ,gBAAgBS,GAAG,CAACF,YAAY;gBACnCP,gBAAgBU,GAAG,CAACH;gBACpBV,oBAAoBc,IAAI,CAACJ;YAC3B;QACF,OAAO,IAAIK,IAAAA,wBAAiB,EAACR,QAAQ;YACnC,MAAMG,YAAYC,IAAAA,kBAAW,EAACJ;YAC9B,IAAI,CAACD,aAAaM,GAAG,CAACF,YAAY;gBAChCJ,aAAaO,GAAG,CAACH;gBACjBR,iBAAiBY,IAAI,CAACJ;YACxB;QACF,OAAO,IAAIH,MAAME,QAAQ,KAAK,SAAS;YACrC,MAAMC,YAAYC,IAAAA,kBAAW,EAACJ;YAC9B,IAAIR,OAAO;gBACT,wDAAwD;gBACxD,6DAA6D;gBAC7D,gEAAgE;gBAChE,0DAA0D;gBAC1D,IAAI,CAACM,WAAWO,GAAG,CAACF,YAAY;oBAC9BL,WAAWQ,GAAG,CAACH;oBACfT,eAAea,IAAI,CAACJ;gBACtB;YACF,OAAO;gBACL,IAAI,CAACP,gBAAgBS,GAAG,CAACF,YAAY;oBACnCP,gBAAgBU,GAAG,CAACH;oBACpBV,oBAAoBc,IAAI,CAACJ;gBAC3B;YACF;QACF;IACF;IACA,oKAAoK;IACpK,IAAIR,iBAAiBc,MAAM,GAAG,GAAG;QAC/BC,QAAQC,IAAI,CACV,CAAC,4BAA4B,EAC3BhB,iBAAiBc,MAAM,CACxB,YAAY,EAAEd,iBAAiBiB,IAAI,CAAC,OAAO;IAEhD;IAEA,IAAIlB,eAAee,MAAM,GAAG,GAAG;QAC7BC,QAAQG,KAAK,CACX,CAAC,4BAA4B,EAC3BnB,eAAee,MAAM,CACtB,UAAU,EAAEf,eAAekB,IAAI,CAAC,OAAO;IAE5C;IAEA,IAAInB,oBAAoBgB,MAAM,GAAG,GAAG;QAClC,MAAM,qBAIL,CAJK,IAAIK,MACR,CAAC,4BAA4B,EAC3BrB,oBAAoBgB,MAAM,CAC3B,UAAU,EAAEhB,oBAAoBmB,IAAI,CAAC,OAAO,GAHzC,qBAAA;mBAAA;wBAAA;0BAAA;QAIN;IACF;AACF","ignoreList":[0]} | ||
| {"version":3,"sources":["../../src/build/print-build-errors.ts"],"sourcesContent":["import { formatIssue, isRelevantWarning } from '../shared/lib/turbopack/utils'\nimport type { TurbopackResult } from './swc/types'\n\n/**\n * Processes and reports build issues from Turbopack entrypoints.\n *\n * @param entrypoints - The result object containing build issues to process.\n * @param isDev - A flag indicating if the build is running in development mode.\n * @return This function does not return a value but logs or throws errors based on the issues.\n * @throws {Error} If a fatal issue is encountered, this function throws an error. In development mode, we only throw on\n * 'fatal' and 'bug' issues. In production mode, we also throw on 'error' issues.\n */\nexport function printBuildErrors(\n entrypoints: TurbopackResult,\n isDev: boolean\n): void {\n // Issues that we want to stop the server from executing\n const topLevelFatalIssues = []\n // Issues that are true errors, but we believe we can keep running and allow the user to address the issue\n const topLevelErrors = []\n // Issues that are warnings but should not affect the running of the build\n const topLevelWarnings = []\n\n // Track seen formatted error messages to avoid duplicates\n const seenFatalIssues = new Set<string>()\n const seenErrors = new Set<string>()\n const seenWarnings = new Set<string>()\n\n for (const issue of entrypoints.issues) {\n // We only want to completely shut down the server\n if (issue.severity === 'fatal' || issue.severity === 'bug') {\n const formatted = formatIssue(issue)\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n } else if (isRelevantWarning(issue)) {\n const formatted = formatIssue(issue)\n if (!seenWarnings.has(formatted)) {\n seenWarnings.add(formatted)\n topLevelWarnings.push(formatted)\n }\n } else if (issue.severity === 'error') {\n const formatted = formatIssue(issue)\n if (isDev) {\n // We want to treat errors as recoverable in development\n // so that we can show the errors in the site and allow users\n // to respond to the errors when necessary. In production builds\n // though we want to error out and stop the build process.\n if (!seenErrors.has(formatted)) {\n seenErrors.add(formatted)\n topLevelErrors.push(formatted)\n }\n } else {\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n }\n }\n }\n // TODO: print in order by source location so issues from the same file are displayed together and then add a summary at the end about the number of warnings/errors\n if (topLevelWarnings.length > 0) {\n console.warn(\n `Turbopack build encountered ${\n topLevelWarnings.length\n } ${topLevelWarnings.length === 1 ? 'warning' : 'warnings'}:\\n${topLevelWarnings.join('\\n')}`\n )\n }\n\n if (topLevelErrors.length > 0) {\n console.error(\n `Turbopack build encountered ${\n topLevelErrors.length\n } ${topLevelErrors.length === 1 ? 'error' : 'errors'}:\\n${topLevelErrors.join('\\n')}`\n )\n }\n\n if (topLevelFatalIssues.length > 0) {\n throw new Error(\n `Turbopack build failed with ${\n topLevelFatalIssues.length\n } ${topLevelFatalIssues.length === 1 ? 'error' : 'errors'}:\\n${topLevelFatalIssues.join('\\n')}`\n )\n }\n}\n"],"names":["printBuildErrors","entrypoints","isDev","topLevelFatalIssues","topLevelErrors","topLevelWarnings","seenFatalIssues","Set","seenErrors","seenWarnings","issue","issues","severity","formatted","formatIssue","has","add","push","isRelevantWarning","length","console","warn","join","error","Error"],"mappings":";;;;+BAYgBA;;;eAAAA;;;uBAZ+B;AAYxC,SAASA,iBACdC,WAA4B,EAC5BC,KAAc;IAEd,wDAAwD;IACxD,MAAMC,sBAAsB,EAAE;IAC9B,0GAA0G;IAC1G,MAAMC,iBAAiB,EAAE;IACzB,0EAA0E;IAC1E,MAAMC,mBAAmB,EAAE;IAE3B,0DAA0D;IAC1D,MAAMC,kBAAkB,IAAIC;IAC5B,MAAMC,aAAa,IAAID;IACvB,MAAME,eAAe,IAAIF;IAEzB,KAAK,MAAMG,SAAST,YAAYU,MAAM,CAAE;QACtC,kDAAkD;QAClD,IAAID,MAAME,QAAQ,KAAK,WAAWF,MAAME,QAAQ,KAAK,OAAO;YAC1D,MAAMC,YAAYC,IAAAA,kBAAW,EAACJ;YAC9B,IAAI,CAACJ,gBAAgBS,GAAG,CAACF,YAAY;gBACnCP,gBAAgBU,GAAG,CAACH;gBACpBV,oBAAoBc,IAAI,CAACJ;YAC3B;QACF,OAAO,IAAIK,IAAAA,wBAAiB,EAACR,QAAQ;YACnC,MAAMG,YAAYC,IAAAA,kBAAW,EAACJ;YAC9B,IAAI,CAACD,aAAaM,GAAG,CAACF,YAAY;gBAChCJ,aAAaO,GAAG,CAACH;gBACjBR,iBAAiBY,IAAI,CAACJ;YACxB;QACF,OAAO,IAAIH,MAAME,QAAQ,KAAK,SAAS;YACrC,MAAMC,YAAYC,IAAAA,kBAAW,EAACJ;YAC9B,IAAIR,OAAO;gBACT,wDAAwD;gBACxD,6DAA6D;gBAC7D,gEAAgE;gBAChE,0DAA0D;gBAC1D,IAAI,CAACM,WAAWO,GAAG,CAACF,YAAY;oBAC9BL,WAAWQ,GAAG,CAACH;oBACfT,eAAea,IAAI,CAACJ;gBACtB;YACF,OAAO;gBACL,IAAI,CAACP,gBAAgBS,GAAG,CAACF,YAAY;oBACnCP,gBAAgBU,GAAG,CAACH;oBACpBV,oBAAoBc,IAAI,CAACJ;gBAC3B;YACF;QACF;IACF;IACA,oKAAoK;IACpK,IAAIR,iBAAiBc,MAAM,GAAG,GAAG;QAC/BC,QAAQC,IAAI,CACV,CAAC,4BAA4B,EAC3BhB,iBAAiBc,MAAM,CACxB,CAAC,EAAEd,iBAAiBc,MAAM,KAAK,IAAI,YAAY,WAAW,GAAG,EAAEd,iBAAiBiB,IAAI,CAAC,OAAO;IAEjG;IAEA,IAAIlB,eAAee,MAAM,GAAG,GAAG;QAC7BC,QAAQG,KAAK,CACX,CAAC,4BAA4B,EAC3BnB,eAAee,MAAM,CACtB,CAAC,EAAEf,eAAee,MAAM,KAAK,IAAI,UAAU,SAAS,GAAG,EAAEf,eAAekB,IAAI,CAAC,OAAO;IAEzF;IAEA,IAAInB,oBAAoBgB,MAAM,GAAG,GAAG;QAClC,MAAM,qBAIL,CAJK,IAAIK,MACR,CAAC,4BAA4B,EAC3BrB,oBAAoBgB,MAAM,CAC3B,CAAC,EAAEhB,oBAAoBgB,MAAM,KAAK,IAAI,UAAU,SAAS,GAAG,EAAEhB,oBAAoBmB,IAAI,CAAC,OAAO,GAH3F,qBAAA;mBAAA;wBAAA;0BAAA;QAIN;IACF;AACF","ignoreList":[0]} |
@@ -70,2 +70,7 @@ // Manual additions to make the generated types below work. | ||
| } | ||
| export const enum NapiCodeFrameColorMode { | ||
| Error = 0, | ||
| Warning = 1, | ||
| Info = 2, | ||
| } | ||
| export interface NapiCodeFrameOptions { | ||
@@ -79,3 +84,3 @@ /** Number of lines to show above the error (default: 2) */ | ||
| /** Whether to use ANSI colors (default: false) */ | ||
| color?: boolean | ||
| color?: NapiCodeFrameColorMode | boolean | ||
| /** | ||
@@ -82,0 +87,0 @@ * Whether to highlight code syntax (default: follows color) |
@@ -138,3 +138,3 @@ "use strict"; | ||
| }({}); | ||
| const nextVersion = "16.3.0-canary.52"; | ||
| const nextVersion = "16.3.0-canary.53"; | ||
| const ArchName = (0, _os.arch)(); | ||
@@ -141,0 +141,0 @@ const PlatformName = (0, _os.platform)(); |
@@ -215,34 +215,2 @@ "use strict"; | ||
| let parentSpan; | ||
| const invokeRouteModule = async (span)=>{ | ||
| return routeModule.handle(nextReq, context).finally(()=>{ | ||
| if (!span) return; | ||
| span.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || normalizedSrcPage; | ||
| const name = `${method} ${route}`; | ||
| span.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| span.updateName(name); | ||
| // Propagate http.route to the parent span if one exists (e.g. | ||
| // a platform-created HTTP span in adapter deployments). | ||
| if (parentSpan && parentSpan !== span) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| }); | ||
| }; | ||
| const handleResponse = async (currentSpan)=>{ | ||
@@ -259,3 +227,3 @@ var _cacheEntry_value; | ||
| } | ||
| const response = await invokeRouteModule(currentSpan); | ||
| const response = await routeModule.handle(nextReq, context); | ||
| req.fetchMetrics = context.renderOpts.fetchMetrics; | ||
@@ -328,2 +296,46 @@ let pendingWaitUntil = context.renderOpts.pendingWaitUntil; | ||
| throw err; | ||
| } finally{ | ||
| // An IIFE to make early returns easier. | ||
| ; | ||
| (()=>{ | ||
| if (!currentSpan) { | ||
| return; | ||
| } | ||
| currentSpan.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| if (res.statusCode && res.statusCode >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| currentSpan.setStatus({ | ||
| code: _tracer.SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| currentSpan.setAttribute('error.type', res.statusCode.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || normalizedSrcPage; | ||
| const name = `${method} ${route}`; | ||
| currentSpan.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| currentSpan.updateName(name); | ||
| // Propagate http.route to the parent span if one exists (e.g. | ||
| // a platform-created HTTP span in adapter deployments). | ||
| if (parentSpan && parentSpan !== currentSpan) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| })(); | ||
| } | ||
@@ -330,0 +342,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/build/templates/app-route.ts"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // Always use a lazy require factory so that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled. Eagerly\n // calling require() would pass that Promise directly to the constructor\n // and break _initFromUserland().\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["handler","patchFetch","routeModule","serverHooks","workAsyncStorage","workUnitAsyncStorage","AppRouteRouteModule","definition","kind","RouteKind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","_patchFetch","req","res","ctx","requestMeta","setRequestMeta","isDev","addRequestMeta","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","normalizeAppPath","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","NoFallbackError","cacheKey","supportsDynamicResponse","isStaticGeneration","setManifestsSingleton","method","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","getRequestMeta","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","NodeNextRequest","nodeNextRes","NodeNextResponse","nextReq","NextRequestAdapter","fromNodeNextRequest","signalFromNodeResponse","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","toNodeOutgoingHttpHeaders","NEXT_CACHE_TAGS_HEADER","type","revalidate","collectedRevalidate","INFINITE_CACHE","expire","collectedExpire","expireTime","value","CachedRouteKind","status","body","Buffer","from","arrayBuffer","cacheControl","sendResponse","err","isStale","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","fromNodeOutgoingHttpHeaders","delete","getHeader","set","getCacheControlHeader","Response","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":";;;;;;;;;;;;;;;;;;;IAqGsBA,OAAO;eAAPA;;IAHpBC,UAAU;eAAVA;;IAJAC,WAAW;eAAXA;;IAGAC,WAAW;eAAXA;;IAFAC,gBAAgB;eAAhBA;;IACAC,oBAAoB;eAApBA;;;gCA5FK;2BACmB;4BACgB;6BAOnC;wBACwC;oCACT;0BACL;sBACiB;6BAI3C;2BACwB;uBACK;8BACP;wBAItB;8BAC+B;4BACiB;yCACvB;+BAKzB;AAOP,2EAA2E;AAC3E,UAAU;AACV,0BAA0B;AAE1B,MAAMH,cAAc,IAAII,mCAAmB,CAAC;IAC1CC,YAAY;QACVC,MAAMC,oBAAS,CAACC,SAAS;QACzBC,MAAM;QACNC,UAAU;QACVC,UAAU;QACVC,YAAY;IACd;IACAC,SAASC,QAAQC,GAAG,CAACC,wBAAwB,IAAI;IACjDC,oBAAoBH,QAAQC,GAAG,CAACG,2BAA2B,IAAI;IAC/DC,kBAAkB;IAClBC;IACA,6CAA6C;IAC7C,0EAA0E;IAC1E,2EAA2E;IAC3E,yBAAyB;IACzB,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,mCAAmC;IACnCC,UAAU,IAAMC,QAAQ;IACxB,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,uEAAuE;IACvE,GAAIR,QAAQC,GAAG,CAACQ,SAAS,IAAIT,QAAQC,GAAG,CAACS,iBAAiB,GACtD;QACEC,aAAa,IACXH,QAAQ;IACZ,IACA,CAAC,CAAC;AACR;AAEA,2EAA2E;AAC3E,2EAA2E;AAC3E,mCAAmC;AACnC,MAAM,EAAEpB,gBAAgB,EAAEC,oBAAoB,EAAEF,WAAW,EAAE,GAAGD;AAEhE,SAASD;IACP,OAAO2B,IAAAA,sBAAW,EAAC;QACjBxB;QACAC;IACF;AACF;AAUO,eAAeL,QACpB6B,GAAoB,EACpBC,GAAmB,EACnBC,GAGC;IAED,IAAIA,IAAIC,WAAW,EAAE;QACnBC,IAAAA,2BAAc,EAACJ,KAAKE,IAAIC,WAAW;IACrC;IACA,IAAI9B,YAAYgC,KAAK,EAAE;QACrBC,IAAAA,2BAAc,EAACN,KAAK,gCAAgCb,QAAQoB,MAAM,CAACC,MAAM;IAC3E;IACA,IAAIC,UAAU;IAEd,wDAAwD;IACxD,mDAAmD;IACnD,6DAA6D;IAC7D,IAAItB,QAAQC,GAAG,CAACQ,SAAS,EAAE;QACzBa,UAAUA,QAAQC,OAAO,CAAC,YAAY,OAAO;IAC/C,OAAO,IAAID,YAAY,UAAU;QAC/B,0CAA0C;QAC1CA,UAAU;IACZ;IACA,MAAME,qBAAqBxB,QAAQC,GAAG,CACnCwB,4BAA4B;IAE/B,MAAMC,gBAAgB,MAAMxC,YAAYyC,OAAO,CAACd,KAAKC,KAAK;QACxDQ;QACAE;IACF;IAEA,IAAI,CAACE,eAAe;QAClBZ,IAAIc,UAAU,GAAG;QACjBd,IAAIe,GAAG,CAAC;QACRd,IAAIe,SAAS,oBAAbf,IAAIe,SAAS,MAAbf,KAAgBgB,QAAQC,OAAO;QAC/B,OAAO;IACT;IAEA,MAAM,EACJC,OAAO,EACPC,YAAY,EACZC,MAAM,EACNC,UAAU,EACVC,SAAS,EACTC,WAAW,EACXC,iBAAiB,EACjBC,mBAAmB,EACnBC,oBAAoB,EACpBC,uBAAuB,EACvBC,gBAAgB,EAChBC,uBAAuB,EACvBC,qBAAqB,EACtB,GAAGnB;IAEJ,MAAMoB,oBAAoBC,IAAAA,0BAAgB,EAACzB;IAE3C,IAAI0B,QAAQC,QACVV,kBAAkBW,aAAa,CAACJ,kBAAkB,IAChDP,kBAAkBY,MAAM,CAACR,iBAAiB;IAG9C,MAAMS,YAAY;QAChB,4DAA4D;QAC5D,IAAIZ,uCAAAA,oBAAqBY,SAAS,EAAE;YAClC,MAAMZ,oBAAoBY,SAAS,CAACvC,KAAKC,KAAKuB,WAAW;QAC3D,OAAO;YACLvB,IAAIe,GAAG,CAAC;QACV;QACA,OAAO;IACT;IAEA,IAAImB,SAAS,CAACV,aAAa;QACzB,MAAMe,gBAAgBJ,QAAQV,kBAAkBY,MAAM,CAACR,iBAAiB;QACxE,MAAMW,gBAAgBf,kBAAkBW,aAAa,CAACJ,kBAAkB;QAExE,IAAIQ,eAAe;YACjB,IAAIA,cAAcC,QAAQ,KAAK,SAAS,CAACF,eAAe;gBACtD,IAAIjB,WAAWoB,WAAW,EAAE;oBAC1B,OAAO,MAAMJ;gBACf;gBACA,MAAM,IAAIK,wCAAe;YAC3B;QACF;IACF;IAEA,IAAIC,WAA0B;IAE9B,IAAIV,SAAS,CAAC9D,YAAYgC,KAAK,IAAI,CAACoB,aAAa;QAC/CoB,WAAWf;QACX,+CAA+C;QAC/Ce,WAAWA,aAAa,WAAW,MAAMA;IAC3C;IAEA,MAAMC,0BACJ,0DAA0D;IAC1DzE,YAAYgC,KAAK,KAAK,QACtB,qEAAqE;IACrE,gBAAgB;IAChB,CAAC8B;IAEH,gEAAgE;IAChE,+DAA+D;IAC/D,4DAA4D;IAC5D,WAAW;IACX,MAAMY,qBAAqBZ,SAAS,CAACW;IAErC,0EAA0E;IAC1E,qEAAqE;IACrE,0EAA0E;IAC1E,IAAId,yBAAyBD,yBAAyB;QACpDiB,IAAAA,yCAAqB,EAAC;YACpBlE,MAAM2B;YACNsB;YACAC;QACF;IACF;IAEA,MAAMiB,SAASjD,IAAIiD,MAAM,IAAI;IAC7B,MAAMC,SAASC,IAAAA,iBAAS;IACxB,MAAMC,aAAaF,OAAOG,kBAAkB;IAC5C,MAAMC,wBAAwBlB,QAC5BT,uCAAAA,oBAAqB2B,qBAAqB;IAE5C,MAAMC,gBAAgBnB,QAAQoB,IAAAA,2BAAc,EAACxD,KAAK;IAElD,MAAMyD,mBACJD,IAAAA,2BAAc,EAACxD,KAAK,uBACnB,MAAM3B,YAAYqF,mBAAmB,CACpC1D,KACAuB,YACAG,mBACA6B;IAGJE,oCAAAA,iBAAkBE,iBAAiB;IACjCC,WAAmBC,kBAAkB,GAAGJ;IAE1C,MAAMK,UAAuC;QAC3CxC;QACAyC,cAAcrC,kBAAkBsC,OAAO;QACvCC,YAAY;YACVC,cAAc;gBACZC,gBAAgB/B,QAAQb,WAAW2C,YAAY,CAACC,cAAc;gBAC9DC,iBAAiB7C,WAAW2C,YAAY,CAACE,eAAe;YAC1D;YACAC,iBAAiBjC,QAAQb,WAAW8C,eAAe;YACnDC,iBAAiB/C,WAAW2C,YAAY,CAACK,eAAe,CAACD,eAAe;YACxExB;YACAW;YACAe,mBAAmBjD,WAAWkD,SAAS;YACvCC,6BAA6BnD,WAAWmD,2BAA2B;YACnEzD,WAAWf,IAAIe,SAAS;YACxB0D,SAAS,CAACC;gBACR3E,IAAI4E,EAAE,CAAC,SAASD;YAClB;YACAE,kBAAkBC;YAClBC,+BAA+B,CAC7BC,OACAC,UACAC,cACAC,aAEA/G,YAAYgH,cAAc,CACxBrF,KACAiF,OACAE,cACAC,YACAzD;QAEN;QACA2D,eAAe;YACblE;YACAC;QACF;IACF;IACA,MAAMkE,cAAc,IAAIC,qBAAe,CAACxF;IACxC,MAAMyF,cAAc,IAAIC,sBAAgB,CAACzF;IAEzC,MAAM0F,UAAUC,+BAAkB,CAACC,mBAAmB,CACpDN,aACAO,IAAAA,mCAAsB,EAAC7F;IAGzB,IAAI;QACF,IAAI8F;QACJ,MAAMC,oBAAoB,OAAOC;YAC/B,OAAO5H,YAAY6H,MAAM,CAACP,SAAS7B,SAASqC,OAAO,CAAC;gBAClD,IAAI,CAACF,MAAM;gBAEXA,KAAKG,aAAa,CAAC;oBACjB,oBAAoBnG,IAAIc,UAAU;oBAClC,YAAY;gBACd;gBAEA,MAAMsF,qBAAqBnD,OAAOoD,qBAAqB;gBACvD,iEAAiE;gBACjE,IAAI,CAACD,oBAAoB;oBACvB;gBACF;gBAEA,IACEA,mBAAmBE,GAAG,CAAC,sBACvBC,yBAAc,CAACC,aAAa,EAC5B;oBACAC,QAAQC,IAAI,CACV,CAAC,2BAA2B,EAAEN,mBAAmBE,GAAG,CAClD,kBACA,qEAAqE,CAAC;oBAE1E;gBACF;gBAEA,MAAMK,QAAQP,mBAAmBE,GAAG,CAAC,iBAAiBtE;gBACtD,MAAM4E,OAAO,GAAG5D,OAAO,CAAC,EAAE2D,OAAO;gBAEjCX,KAAKG,aAAa,CAAC;oBACjB,cAAcQ;oBACd,cAAcA;oBACd,kBAAkBC;gBACpB;gBACAZ,KAAKa,UAAU,CAACD;gBAEhB,8DAA8D;gBAC9D,wDAAwD;gBACxD,IAAId,cAAcA,eAAeE,MAAM;oBACrCF,WAAWgB,YAAY,CAAC,cAAcH;oBACtCb,WAAWe,UAAU,CAACD;gBACxB;YACF;QACF;QAEA,MAAMG,iBAAiB,OAAOC;gBA0IxBC;YAzIJ,MAAMC,oBAAuC,OAAO,EAClDC,kBAAkB,EACnB;gBACC,IAAI;oBACF,IACE,CAAC7D,iBACD3B,wBACAC,2BACA,CAACuF,oBACD;wBACAnH,IAAIc,UAAU,GAAG;wBACjB,+CAA+C;wBAC/Cd,IAAIoH,SAAS,CAAC,kBAAkB;wBAChCpH,IAAIe,GAAG,CAAC;wBACR,OAAO;oBACT;oBAEA,MAAMsG,WAAW,MAAMtB,kBAAkBiB;oBAEvCjH,IAAYuH,YAAY,GAAG,AAACzD,QAAQG,UAAU,CAASsD,YAAY;oBACrE,IAAIC,mBAAmB1D,QAAQG,UAAU,CAACuD,gBAAgB;oBAE1D,gDAAgD;oBAChD,qDAAqD;oBACrD,IAAIA,kBAAkB;wBACpB,IAAItH,IAAIe,SAAS,EAAE;4BACjBf,IAAIe,SAAS,CAACuG;4BACdA,mBAAmBzC;wBACrB;oBACF;oBACA,MAAM0C,YAAY3D,QAAQG,UAAU,CAACyD,aAAa;oBAElD,mEAAmE;oBACnE,oBAAoB;oBACpB,IAAIvF,OAAO;wBACT,MAAMwF,OAAO,MAAML,SAASK,IAAI;wBAEhC,sCAAsC;wBACtC,MAAMC,UAAUC,IAAAA,iCAAyB,EAACP,SAASM,OAAO;wBAE1D,IAAIH,WAAW;4BACbG,OAAO,CAACE,kCAAsB,CAAC,GAAGL;wBACpC;wBAEA,IAAI,CAACG,OAAO,CAAC,eAAe,IAAID,KAAKI,IAAI,EAAE;4BACzCH,OAAO,CAAC,eAAe,GAAGD,KAAKI,IAAI;wBACrC;wBAEA,MAAMC,aACJ,OAAOlE,QAAQG,UAAU,CAACgE,mBAAmB,KAAK,eAClDnE,QAAQG,UAAU,CAACgE,mBAAmB,IAAIC,0BAAc,GACpD,QACApE,QAAQG,UAAU,CAACgE,mBAAmB;wBAE5C,MAAME,SACJ,OAAOrE,QAAQG,UAAU,CAACmE,eAAe,KAAK,eAC9CtE,QAAQG,UAAU,CAACmE,eAAe,IAAIF,0BAAc,GAEhD,yDAAyD;wBACzD,6DAA6D;wBAC7D,2DAA2D;wBAC3D,6DAA6D;wBAC7D,wDAAwD;wBACxD,8DAA8D;wBAC9D,4BAA4B;wBAC5BF,eAAe,SAASA,aAAa,IACnCzG,WAAW8G,UAAU,GACrBtD,YACFjB,QAAQG,UAAU,CAACmE,eAAe;wBAExC,2CAA2C;wBAC3C,MAAMlB,aAAiC;4BACrCoB,OAAO;gCACL3J,MAAM4J,8BAAe,CAAC1J,SAAS;gCAC/B2J,QAAQlB,SAASkB,MAAM;gCACvBC,MAAMC,OAAOC,IAAI,CAAC,MAAMhB,KAAKiB,WAAW;gCACxChB;4BACF;4BACAiB,cAAc;gCAAEb;gCAAYG;4BAAO;wBACrC;wBAEA,OAAOjB;oBACT,OAAO;wBACL,2CAA2C;wBAC3C,MAAM4B,IAAAA,0BAAY,EAChBvD,aACAE,aACA6B,UACAE;wBAEF,OAAO;oBACT;gBACF,EAAE,OAAOuB,KAAK;oBACZ,uDAAuD;oBACvD,gDAAgD;oBAChD,IAAI3B,sCAAAA,mBAAoB4B,OAAO,EAAE;wBAC/B,MAAM5D,aAAa;wBACnB,MAAM/G,YAAYgH,cAAc,CAC9BrF,KACA+I,KACA;4BACEE,YAAY;4BACZC,WAAWzI;4BACX0I,WAAW;4BACXC,kBAAkBC,IAAAA,0BAAmB,EAAC;gCACpCtG;gCACAnB;4BACF;wBACF,GACAwD,YACAzD;oBAEJ;oBACA,MAAMoH;gBACR;YACF;YAEA,MAAM7B,aAAa,MAAM7I,YAAY2I,cAAc,CAAC;gBAClDhH;gBACAuB;gBACAsB;gBACAyG,WAAW1K,oBAAS,CAACC,SAAS;gBAC9B0K,YAAY;gBACZ7H;gBACA8H,mBAAmB;gBACnB5H;gBACAC;gBACAsF;gBACAlG,WAAWf,IAAIe,SAAS;gBACxBsC;YACF;YAEA,uCAAuC;YACvC,IAAI,CAACpB,OAAO;gBACV,OAAO;YACT;YAEA,IAAI+E,CAAAA,+BAAAA,oBAAAA,WAAYoB,KAAK,qBAAjBpB,kBAAmBvI,IAAI,MAAK4J,8BAAe,CAAC1J,SAAS,EAAE;oBAEFqI;gBADvD,MAAM,qBAEL,CAFK,IAAIuC,MACR,CAAC,kDAAkD,EAAEvC,+BAAAA,qBAAAA,WAAYoB,KAAK,qBAAjBpB,mBAAmBvI,IAAI,EAAE,GAD1E,qBAAA;2BAAA;gCAAA;kCAAA;gBAEN;YACF;YAEA,IAAI,CAAC4E,eAAe;gBAClBtD,IAAIoH,SAAS,CACX,kBACAzF,uBACI,gBACAsF,WAAWwC,MAAM,GACf,SACAxC,WAAW8B,OAAO,GAChB,UACA;YAEZ;YAEA,oCAAoC;YACpC,IAAIvH,aAAa;gBACfxB,IAAIoH,SAAS,CACX,iBACA;YAEJ;YAEA,MAAMO,UAAU+B,IAAAA,mCAA2B,EAACzC,WAAWoB,KAAK,CAACV,OAAO;YAEpE,IAAI,CAAErE,CAAAA,iBAAiBpB,KAAI,GAAI;gBAC7ByF,QAAQgC,MAAM,CAAC9B,kCAAsB;YACvC;YAEA,2DAA2D;YAC3D,6DAA6D;YAC7D,IACEZ,WAAW2B,YAAY,IACvB,CAAC5I,IAAI4J,SAAS,CAAC,oBACf,CAACjC,QAAQrB,GAAG,CAAC,kBACb;gBACAqB,QAAQkC,GAAG,CACT,iBACAC,IAAAA,mCAAqB,EAAC7C,WAAW2B,YAAY;YAEjD;YAEA,MAAMC,IAAAA,0BAAY,EAChBvD,aACAE,aACA,sIAAsI;YACtI,IAAIuE,SAAS9C,WAAWoB,KAAK,CAACG,IAAI,EAAE;gBAClCb;gBACAY,QAAQtB,WAAWoB,KAAK,CAACE,MAAM,IAAI;YACrC;YAEF,OAAO;QACT;QAEA,oDAAoD;QACpD,yDAAyD;QACzD,IAAIlF,yBAAyBF,YAAY;YACvC,MAAM4D,eAAe5D;QACvB,OAAO;YACL2C,aAAa7C,OAAOG,kBAAkB;YACtC,MAAMH,OAAO+G,qBAAqB,CAChCjK,IAAI4H,OAAO,EACX,IACE1E,OAAOgH,KAAK,CACV1D,yBAAc,CAACC,aAAa,EAC5B;oBACE0D,UAAU,GAAGlH,OAAO,CAAC,EAAExC,SAAS;oBAChC9B,MAAMyL,gBAAQ,CAACC,MAAM;oBACrBC,YAAY;wBACV,eAAerH;wBACf,eAAejD,IAAIuK,GAAG;oBACxB;gBACF,GACAvD,iBAEJjC,WACA,CAACzB;QAEL;IACF,EAAE,OAAOyF,KAAK;QACZ,IAAI,CAAEA,CAAAA,eAAenG,wCAAe,AAAD,GAAI;YACrC,MAAMwC,aAAa;YACnB,MAAM/G,YAAYgH,cAAc,CAC9BrF,KACA+I,KACA;gBACEE,YAAY;gBACZC,WAAWjH;gBACXkH,WAAW;gBACXC,kBAAkBC,IAAAA,0BAAmB,EAAC;oBACpCtG;oBACAnB;gBACF;YACF,GACAwD,YACAzD;QAEJ;QAEA,mDAAmD;QAEnD,8DAA8D;QAC9D,IAAIQ,OAAO,MAAM4G;QAEjB,kCAAkC;QAClC,MAAMD,IAAAA,0BAAY,EAChBvD,aACAE,aACA,IAAIuE,SAAS,MAAM;YAAExB,QAAQ;QAAI;QAEnC,OAAO;IACT;AACF","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/build/templates/app-route.ts"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // Always use a lazy require factory so that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled. Eagerly\n // calling require() would pass that Promise directly to the constructor\n // and break _initFromUserland().\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await routeModule.handle(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n } finally {\n // An IIFE to make early returns easier.\n ;(() => {\n if (!currentSpan) {\n return\n }\n currentSpan.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n if (res.statusCode && res.statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', res.statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route =\n rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["handler","patchFetch","routeModule","serverHooks","workAsyncStorage","workUnitAsyncStorage","AppRouteRouteModule","definition","kind","RouteKind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","_patchFetch","req","res","ctx","requestMeta","setRequestMeta","isDev","addRequestMeta","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","normalizeAppPath","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","NoFallbackError","cacheKey","supportsDynamicResponse","isStaticGeneration","setManifestsSingleton","method","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","getRequestMeta","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","NodeNextRequest","nodeNextRes","NodeNextResponse","nextReq","NextRequestAdapter","fromNodeNextRequest","signalFromNodeResponse","parentSpan","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","toNodeOutgoingHttpHeaders","NEXT_CACHE_TAGS_HEADER","type","revalidate","collectedRevalidate","INFINITE_CACHE","expire","collectedExpire","expireTime","value","CachedRouteKind","status","body","Buffer","from","arrayBuffer","cacheControl","sendResponse","err","isStale","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","setAttributes","setStatus","code","SpanStatusCode","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","fromNodeOutgoingHttpHeaders","delete","getHeader","set","getCacheControlHeader","Response","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]} |
@@ -270,2 +270,11 @@ "use strict"; | ||
| }); | ||
| if (finalStatus && finalStatus >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| span.setStatus({ | ||
| code: _tracer.SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| span.setAttribute('error.type', finalStatus.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
@@ -272,0 +281,0 @@ // We were unable to get attributes, probably OTEL is not enabled |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/build/templates/edge-ssr-app.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\n\nimport * as pageMod from 'VAR_USERLAND'\n\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../server/lib/trace/tracer'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type {\n AppPageRouteHandlerContext,\n AppPageRouteModule,\n} from '../../server/route-modules/app-page/module.compiled'\nimport type { AppPageRenderResultMetadata } from '../../server/render-result'\nimport type RenderResult from '../../server/render-result'\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta'\nimport { getBotType } from '../../shared/lib/router/utils/is-bot'\nimport { interopDefault } from '../../lib/interop-default'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { checkIsOnDemandRevalidate } from '../../server/api-utils'\nimport { CloseController } from '../../server/web/web-on-close'\nimport { parseMaxPostponedStateSize } from '../../shared/lib/size-limit'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\nimport type { RequestMeta } from '../../server/request-meta'\n\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:incrementalCacheHandler\n// INJECT_RAW:cacheHandlerImports\n\nconst maybeJSONParse = (str?: string) => (str ? JSON.parse(str) : undefined)\n\nconst rscManifest = self.__RSC_MANIFEST?.['VAR_PAGE']\nconst rscServerManifest = maybeJSONParse(self.__RSC_SERVER_MANIFEST)\n\nif (rscManifest && rscServerManifest) {\n setManifestsSingleton({\n page: 'VAR_PAGE',\n clientReferenceManifest: rscManifest,\n serverActionsManifest: rscServerManifest,\n })\n}\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_PAGE'\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const baseRes = new WebNextResponse(undefined)\n\n const pageRouteModule = pageMod.routeModule as AppPageRouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n nextFontManifest,\n resolvedPathname,\n interceptionRoutePatterns,\n routerServerContext,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n // Initialize the cache handlers interface.\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const isPossibleServerAction = getIsPossibleServerAction(req)\n const botType = getBotType(req.headers.get('User-Agent') || '')\n const { isOnDemandRevalidate } = checkIsOnDemandRevalidate(\n req.headers,\n prerenderManifest.preview\n )\n\n const closeController = new CloseController()\n\n const renderContext: AppPageRouteHandlerContext = {\n page: normalizedSrcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n },\n fallbackRouteParams: null,\n\n renderOpts: {\n App: () => null,\n Document: () => null,\n pageConfig: {},\n ComponentMod,\n Component: interopDefault(ComponentMod),\n routeModule: pageRouteModule,\n\n params,\n page: srcPage,\n postponed: undefined,\n shouldWaitOnAllReady: false,\n serveStreamingMetadata: true,\n supportsDynamicResponse: true,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n dir: pageRouteModule.relativeProjectDir,\n botType,\n isDraftMode: false,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n images: nextConfig.images,\n previewProps: prerenderManifest.preview,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n multiZoneDraftMode: false,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n logServerFunctions:\n typeof nextConfig.logging === 'object' &&\n Boolean(nextConfig.logging.serverFunctions),\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n experimental: {\n isRoutePPREnabled: false,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n optimisticRouting: Boolean(nextConfig.experimental.optimisticRouting),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n cachedNavigations: Boolean(nextConfig.experimental.cachedNavigations),\n appShells: nextConfig.experimental.appShells,\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata || ([] as any),\n clientParamParsingOrigins:\n nextConfig.experimental.clientParamParsingOrigins,\n maxPostponedStateSizeBytes: parseMaxPostponedStateSize(\n nextConfig.experimental.maxPostponedStateSize\n ),\n },\n\n incrementalCache: await pageRouteModule.getIncrementalCache(\n baseReq,\n nextConfig,\n prerenderManifest,\n true\n ),\n\n waitUntil: event.waitUntil.bind(event),\n onClose: (cb) => {\n closeController.onClose(cb)\n },\n onAfterTaskError: () => {},\n\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n pageRouteModule.onRequestError(\n baseReq,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<AppPageRenderResultMetadata>\n ): Response => {\n const varyHeader = pageRouteModule.getVaryHeader(\n resolvedPathname,\n interceptionRoutePatterns\n )\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n closeController.dispatchClose()\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n const headers = new Headers()\n finalStatus = metadata.statusCode || baseRes.statusCode || 200\n // Pull any fetch metrics from the render onto the request.\n ;(req as any).fetchMetrics = metadata.fetchMetrics\n\n // Set content type\n const contentType = result.contentType || 'text/html; charset=utf-8'\n headers.set('Content-Type', contentType)\n headers.set('x-edge-runtime', '1')\n\n if (varyHeader) {\n headers.set('Vary', varyHeader)\n }\n\n // Add existing headers\n for (const [key, value] of Object.entries({\n ...baseRes.getHeaders(),\n ...metadata.headers,\n })) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n closeController.dispatchClose()\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result\n .pipeTo(writable)\n .catch((err: unknown) => {\n console.error('Error piping RenderResult to response:', err)\n })\n .finally(() => closeController.dispatchClose())\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(baseReq, baseRes, renderContext)\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = normalizedSrcPage\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const silenceLog = false\n await pageRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': normalizedSrcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n page: 'VAR_PAGE',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_PAGE',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["ComponentMod","handler","self","maybeJSONParse","str","JSON","parse","undefined","rscManifest","__RSC_MANIFEST","rscServerManifest","__RSC_SERVER_MANIFEST","setManifestsSingleton","page","clientReferenceManifest","serverActionsManifest","pageMod","requestHandler","req","event","srcPage","normalizedSrcPage","normalizeAppPath","relativeUrl","nextUrl","pathname","search","baseReq","WebNextRequest","baseRes","WebNextResponse","pageRouteModule","routeModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","nextConfig","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","nextFontManifest","resolvedPathname","interceptionRoutePatterns","routerServerContext","deploymentId","clientAssetToken","cacheHandlers","initializeCacheHandlers","cacheMaxMemorySize","isPossibleServerAction","getIsPossibleServerAction","botType","getBotType","headers","get","isOnDemandRevalidate","checkIsOnDemandRevalidate","preview","closeController","CloseController","renderContext","sharedContext","fallbackRouteParams","renderOpts","App","Document","pageConfig","Component","interopDefault","postponed","shouldWaitOnAllReady","serveStreamingMetadata","supportsDynamicResponse","setIsrStatus","dir","relativeProjectDir","isDraftMode","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","images","previewProps","enableTainting","experimental","taint","htmlLimitedBots","reactMaxHeadersLength","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","basePath","serverActions","logServerFunctions","logging","Boolean","serverFunctions","cacheComponents","validationLevel","instantInsights","isRoutePPREnabled","expireTime","staleTimes","dynamicOnHover","optimisticRouting","inlineCss","prefetchInlining","authInterrupts","useCacheTimeout","cachedNavigations","appShells","clientTraceMetadata","clientParamParsingOrigins","maxPostponedStateSizeBytes","parseMaxPostponedStateSize","maxPostponedStateSize","incrementalCache","getIncrementalCache","waitUntil","bind","onClose","cb","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","finalStatus","renderResultToResponse","result","varyHeader","getVaryHeader","isNull","dispatchClose","metadata","Headers","statusCode","fetchMetrics","contentType","set","key","value","Object","entries","getHeaders","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","finally","invokeRender","span","render","setAttributes","rootSpanAttributes","tracer","getRootSpanAttributes","BaseServerSpan","handleRequest","warn","route","name","method","updateName","routerKind","routePath","routeType","revalidateReason","getTracer","withPropagatedContext","trace","spanName","kind","SpanKind","SERVER","attributes","internalHandler","opts","adapter","IncrementalCache","incrementalCacheHandler","request","ctx","url","toNodeOutgoingHttpHeaders","process","env","__NEXT_BASE_PATH","i18n","__NEXT_I18N_CONFIG","__NEXT_TRAILING_SLASH","__NEXT_CACHE_LIFE","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/build/templates/edge-ssr-app.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\n\nimport * as pageMod from 'VAR_USERLAND'\n\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n type Span,\n} from '../../server/lib/trace/tracer'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type {\n AppPageRouteHandlerContext,\n AppPageRouteModule,\n} from '../../server/route-modules/app-page/module.compiled'\nimport type { AppPageRenderResultMetadata } from '../../server/render-result'\nimport type RenderResult from '../../server/render-result'\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta'\nimport { getBotType } from '../../shared/lib/router/utils/is-bot'\nimport { interopDefault } from '../../lib/interop-default'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { checkIsOnDemandRevalidate } from '../../server/api-utils'\nimport { CloseController } from '../../server/web/web-on-close'\nimport { parseMaxPostponedStateSize } from '../../shared/lib/size-limit'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\nimport type { RequestMeta } from '../../server/request-meta'\n\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:incrementalCacheHandler\n// INJECT_RAW:cacheHandlerImports\n\nconst maybeJSONParse = (str?: string) => (str ? JSON.parse(str) : undefined)\n\nconst rscManifest = self.__RSC_MANIFEST?.['VAR_PAGE']\nconst rscServerManifest = maybeJSONParse(self.__RSC_SERVER_MANIFEST)\n\nif (rscManifest && rscServerManifest) {\n setManifestsSingleton({\n page: 'VAR_PAGE',\n clientReferenceManifest: rscManifest,\n serverActionsManifest: rscServerManifest,\n })\n}\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_PAGE'\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const baseRes = new WebNextResponse(undefined)\n\n const pageRouteModule = pageMod.routeModule as AppPageRouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n nextFontManifest,\n resolvedPathname,\n interceptionRoutePatterns,\n routerServerContext,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n // Initialize the cache handlers interface.\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const isPossibleServerAction = getIsPossibleServerAction(req)\n const botType = getBotType(req.headers.get('User-Agent') || '')\n const { isOnDemandRevalidate } = checkIsOnDemandRevalidate(\n req.headers,\n prerenderManifest.preview\n )\n\n const closeController = new CloseController()\n\n const renderContext: AppPageRouteHandlerContext = {\n page: normalizedSrcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n },\n fallbackRouteParams: null,\n\n renderOpts: {\n App: () => null,\n Document: () => null,\n pageConfig: {},\n ComponentMod,\n Component: interopDefault(ComponentMod),\n routeModule: pageRouteModule,\n\n params,\n page: srcPage,\n postponed: undefined,\n shouldWaitOnAllReady: false,\n serveStreamingMetadata: true,\n supportsDynamicResponse: true,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n dir: pageRouteModule.relativeProjectDir,\n botType,\n isDraftMode: false,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n images: nextConfig.images,\n previewProps: prerenderManifest.preview,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n multiZoneDraftMode: false,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n logServerFunctions:\n typeof nextConfig.logging === 'object' &&\n Boolean(nextConfig.logging.serverFunctions),\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n experimental: {\n isRoutePPREnabled: false,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n optimisticRouting: Boolean(nextConfig.experimental.optimisticRouting),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n cachedNavigations: Boolean(nextConfig.experimental.cachedNavigations),\n appShells: nextConfig.experimental.appShells,\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata || ([] as any),\n clientParamParsingOrigins:\n nextConfig.experimental.clientParamParsingOrigins,\n maxPostponedStateSizeBytes: parseMaxPostponedStateSize(\n nextConfig.experimental.maxPostponedStateSize\n ),\n },\n\n incrementalCache: await pageRouteModule.getIncrementalCache(\n baseReq,\n nextConfig,\n prerenderManifest,\n true\n ),\n\n waitUntil: event.waitUntil.bind(event),\n onClose: (cb) => {\n closeController.onClose(cb)\n },\n onAfterTaskError: () => {},\n\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n pageRouteModule.onRequestError(\n baseReq,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<AppPageRenderResultMetadata>\n ): Response => {\n const varyHeader = pageRouteModule.getVaryHeader(\n resolvedPathname,\n interceptionRoutePatterns\n )\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n closeController.dispatchClose()\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n const headers = new Headers()\n finalStatus = metadata.statusCode || baseRes.statusCode || 200\n // Pull any fetch metrics from the render onto the request.\n ;(req as any).fetchMetrics = metadata.fetchMetrics\n\n // Set content type\n const contentType = result.contentType || 'text/html; charset=utf-8'\n headers.set('Content-Type', contentType)\n headers.set('x-edge-runtime', '1')\n\n if (varyHeader) {\n headers.set('Vary', varyHeader)\n }\n\n // Add existing headers\n for (const [key, value] of Object.entries({\n ...baseRes.getHeaders(),\n ...metadata.headers,\n })) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n closeController.dispatchClose()\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result\n .pipeTo(writable)\n .catch((err: unknown) => {\n console.error('Error piping RenderResult to response:', err)\n })\n .finally(() => closeController.dispatchClose())\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(baseReq, baseRes, renderContext)\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n if (finalStatus && finalStatus >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', finalStatus.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = normalizedSrcPage\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const silenceLog = false\n await pageRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': normalizedSrcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n page: 'VAR_PAGE',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_PAGE',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["ComponentMod","handler","self","maybeJSONParse","str","JSON","parse","undefined","rscManifest","__RSC_MANIFEST","rscServerManifest","__RSC_SERVER_MANIFEST","setManifestsSingleton","page","clientReferenceManifest","serverActionsManifest","pageMod","requestHandler","req","event","srcPage","normalizedSrcPage","normalizeAppPath","relativeUrl","nextUrl","pathname","search","baseReq","WebNextRequest","baseRes","WebNextResponse","pageRouteModule","routeModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","nextConfig","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","nextFontManifest","resolvedPathname","interceptionRoutePatterns","routerServerContext","deploymentId","clientAssetToken","cacheHandlers","initializeCacheHandlers","cacheMaxMemorySize","isPossibleServerAction","getIsPossibleServerAction","botType","getBotType","headers","get","isOnDemandRevalidate","checkIsOnDemandRevalidate","preview","closeController","CloseController","renderContext","sharedContext","fallbackRouteParams","renderOpts","App","Document","pageConfig","Component","interopDefault","postponed","shouldWaitOnAllReady","serveStreamingMetadata","supportsDynamicResponse","setIsrStatus","dir","relativeProjectDir","isDraftMode","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","images","previewProps","enableTainting","experimental","taint","htmlLimitedBots","reactMaxHeadersLength","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","basePath","serverActions","logServerFunctions","logging","Boolean","serverFunctions","cacheComponents","validationLevel","instantInsights","isRoutePPREnabled","expireTime","staleTimes","dynamicOnHover","optimisticRouting","inlineCss","prefetchInlining","authInterrupts","useCacheTimeout","cachedNavigations","appShells","clientTraceMetadata","clientParamParsingOrigins","maxPostponedStateSizeBytes","parseMaxPostponedStateSize","maxPostponedStateSize","incrementalCache","getIncrementalCache","waitUntil","bind","onClose","cb","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","finalStatus","renderResultToResponse","result","varyHeader","getVaryHeader","isNull","dispatchClose","metadata","Headers","statusCode","fetchMetrics","contentType","set","key","value","Object","entries","getHeaders","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","finally","invokeRender","span","render","setAttributes","setStatus","code","SpanStatusCode","ERROR","setAttribute","toString","rootSpanAttributes","tracer","getRootSpanAttributes","BaseServerSpan","handleRequest","warn","route","name","method","updateName","routerKind","routePath","routeType","revalidateReason","getTracer","withPropagatedContext","trace","spanName","kind","SpanKind","SERVER","attributes","internalHandler","opts","adapter","IncrementalCache","incrementalCacheHandler","request","ctx","url","toNodeOutgoingHttpHeaders","process","env","__NEXT_BASE_PATH","i18n","__NEXT_I18N_CONFIG","__NEXT_TRAILING_SLASH","__NEXT_CACHE_LIFE","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} |
@@ -269,2 +269,11 @@ "use strict"; | ||
| }); | ||
| if (finalStatus && finalStatus >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| span.setStatus({ | ||
| code: _tracer.SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| span.setAttribute('error.type', finalStatus.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
@@ -271,0 +280,0 @@ // We were unable to get attributes, probably OTEL is not enabled |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/build/templates/edge-ssr.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\n\nimport Document from 'VAR_MODULE_DOCUMENT'\nimport * as appMod from 'VAR_MODULE_APP'\nimport * as userlandPage from 'VAR_USERLAND'\nimport * as userlandErrorPage from 'VAR_MODULE_GLOBAL_ERROR'\n\ndeclare const userland500Page: any\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:* as userland500Page\n// OPTIONAL_IMPORT:incrementalCacheHandler\n\nimport RouteModule, {\n type PagesRouteHandlerContext,\n} from '../../server/route-modules/pages/module'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\n\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type RenderResult from '../../server/render-result'\nimport type { RenderResultMetadata } from '../../server/render-result'\nimport { getTracer, SpanKind, type Span } from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants'\nimport type { RequestMeta } from '../../server/request-meta'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\n\n// injected by the loader afterwards.\ndeclare const pageRouteModuleOptions: any\ndeclare const errorRouteModuleOptions: any\ndeclare const user500RouteModuleOptions: any\n// INJECT:pageRouteModuleOptions\n// INJECT:errorRouteModuleOptions\n// INJECT:user500RouteModuleOptions\n// INJECT_RAW:cacheHandlerImports\n\nconst pageMod = {\n ...userlandPage,\n routeModule: new RouteModule({\n ...pageRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\nconst errorMod = {\n ...userlandErrorPage,\n routeModule: new RouteModule({\n ...errorRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandErrorPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\n// FIXME: this needs to be made compatible with the template\nconst error500Mod = userland500Page\n ? {\n ...userland500Page,\n routeModule: new RouteModule({\n ...user500RouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userland500Page,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n }\n : null\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n _event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_DEFINITION_PATHNAME'\n\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const pageRouteModule = pageMod.routeModule as RouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n deploymentId,\n isNextDataRequest,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n clientAssetToken,\n } = prepareResult\n\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const renderContext: PagesRouteHandlerContext = {\n page: srcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n customServer: undefined,\n },\n\n renderContext: {\n isFallback: false,\n isDraftMode: false,\n developmentNotFoundSourcePage: undefined,\n },\n\n renderOpts: {\n params,\n page: srcPage,\n supportsDynamicResponse: true,\n Component: pageMod.Component,\n ComponentMod: pageMod,\n pageConfig: pageMod.pageConfig,\n routeModule: pageMod.routeModule,\n previewProps: prerenderManifest.preview,\n basePath: nextConfig.basePath,\n assetPrefix: nextConfig.assetPrefix,\n images: nextConfig.images,\n optimizeCss: nextConfig.experimental.optimizeCss,\n nextConfigOutput: nextConfig.output,\n nextScriptWorkers: nextConfig.experimental.nextScriptWorkers,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n domainLocales: nextConfig.i18n?.domains,\n distDir: '',\n crossOrigin: nextConfig.crossOrigin ? nextConfig.crossOrigin : undefined,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile: nextConfig.experimental.isExperimentalCompile,\n // `htmlLimitedBots` is passed to server as serialized config in string format\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata,\n },\n\n buildManifest,\n subresourceIntegrityManifest,\n reactLoadableManifest,\n dynamicCssManifest,\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<RenderResultMetadata>\n ): Response => {\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n finalStatus = metadata.statusCode || 200\n const headers = new Headers()\n\n // Set content type\n const contentType = result.contentType || HTML_CONTENT_TYPE_HEADER\n headers.set('Content-Type', contentType)\n\n // Add metadata headers\n if (metadata.headers) {\n for (const [key, value] of Object.entries(metadata.headers)) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result.pipeTo(writable).catch((err) => {\n console.error('Error piping RenderResult to response:', err)\n })\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: pageMod.getServerSideProps,\n Component: pageMod.default || pageMod,\n ComponentMod: pageMod,\n pageConfig: pageMod.config,\n isNextDataRequest,\n },\n }\n )\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const errModule = error500Mod || errorMod\n const errRouteModule = errModule.routeModule as RouteModule\n\n if (errRouteModule.isDev) {\n throw err\n }\n\n const silenceLog = false\n await errRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n\n const errResult = await errRouteModule.render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n page: error500Mod ? '/500' : '/_error',\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: errModule.getServerSideProps,\n Component: errModule.default || errModule,\n ComponentMod: errModule,\n pageConfig: errModule.config,\n },\n }\n )\n\n return renderResultToResponse(errResult)\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': srcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n bypassNextUrl: true,\n page: 'VAR_DEFINITION_PATHNAME',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_DEFINITION_PATHNAME',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["ComponentMod","handler","pageMod","userlandPage","routeModule","RouteModule","pageRouteModuleOptions","components","App","appMod","default","Document","userland","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","errorMod","userlandErrorPage","errorRouteModuleOptions","error500Mod","userland500Page","user500RouteModuleOptions","requestHandler","req","_event","nextConfig","srcPage","relativeUrl","nextUrl","pathname","search","baseReq","WebNextRequest","pageRouteModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","deploymentId","isNextDataRequest","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","clientAssetToken","cacheHandlers","initializeCacheHandlers","cacheMaxMemorySize","renderContext","page","sharedContext","customServer","undefined","isFallback","isDraftMode","developmentNotFoundSourcePage","renderOpts","supportsDynamicResponse","Component","pageConfig","previewProps","preview","basePath","assetPrefix","images","optimizeCss","experimental","nextConfigOutput","output","nextScriptWorkers","disableOptimizedLoading","domainLocales","i18n","domains","crossOrigin","largePageDataBytes","isExperimentalCompile","clientTraceMetadata","finalStatus","renderResultToResponse","result","isNull","metadata","statusCode","headers","Headers","contentType","HTML_CONTENT_TYPE_HEADER","set","key","value","Object","entries","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","error","invokeRender","span","render","WebNextResponse","getServerSideProps","config","finally","setAttributes","rootSpanAttributes","tracer","getRootSpanAttributes","get","BaseServerSpan","handleRequest","warn","route","name","method","updateName","errModule","errRouteModule","isDev","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","errResult","getTracer","withPropagatedContext","trace","spanName","kind","SpanKind","SERVER","attributes","internalHandler","opts","adapter","IncrementalCache","incrementalCacheHandler","bypassNextUrl","request","ctx","url","toNodeOutgoingHttpHeaders","__NEXT_BASE_PATH","__NEXT_I18N_CONFIG","trailingSlash","Boolean","__NEXT_TRAILING_SLASH","cacheLife","__NEXT_CACHE_LIFE","authInterrupts","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","clientParamParsingOrigins","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","waitUntil","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/build/templates/edge-ssr.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\n\nimport Document from 'VAR_MODULE_DOCUMENT'\nimport * as appMod from 'VAR_MODULE_APP'\nimport * as userlandPage from 'VAR_USERLAND'\nimport * as userlandErrorPage from 'VAR_MODULE_GLOBAL_ERROR'\n\ndeclare const userland500Page: any\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:* as userland500Page\n// OPTIONAL_IMPORT:incrementalCacheHandler\n\nimport RouteModule, {\n type PagesRouteHandlerContext,\n} from '../../server/route-modules/pages/module'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\n\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type RenderResult from '../../server/render-result'\nimport type { RenderResultMetadata } from '../../server/render-result'\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n type Span,\n} from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants'\nimport type { RequestMeta } from '../../server/request-meta'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\n\n// injected by the loader afterwards.\ndeclare const pageRouteModuleOptions: any\ndeclare const errorRouteModuleOptions: any\ndeclare const user500RouteModuleOptions: any\n// INJECT:pageRouteModuleOptions\n// INJECT:errorRouteModuleOptions\n// INJECT:user500RouteModuleOptions\n// INJECT_RAW:cacheHandlerImports\n\nconst pageMod = {\n ...userlandPage,\n routeModule: new RouteModule({\n ...pageRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\nconst errorMod = {\n ...userlandErrorPage,\n routeModule: new RouteModule({\n ...errorRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandErrorPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\n// FIXME: this needs to be made compatible with the template\nconst error500Mod = userland500Page\n ? {\n ...userland500Page,\n routeModule: new RouteModule({\n ...user500RouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userland500Page,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n }\n : null\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n _event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_DEFINITION_PATHNAME'\n\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const pageRouteModule = pageMod.routeModule as RouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n deploymentId,\n isNextDataRequest,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n clientAssetToken,\n } = prepareResult\n\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const renderContext: PagesRouteHandlerContext = {\n page: srcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n customServer: undefined,\n },\n\n renderContext: {\n isFallback: false,\n isDraftMode: false,\n developmentNotFoundSourcePage: undefined,\n },\n\n renderOpts: {\n params,\n page: srcPage,\n supportsDynamicResponse: true,\n Component: pageMod.Component,\n ComponentMod: pageMod,\n pageConfig: pageMod.pageConfig,\n routeModule: pageMod.routeModule,\n previewProps: prerenderManifest.preview,\n basePath: nextConfig.basePath,\n assetPrefix: nextConfig.assetPrefix,\n images: nextConfig.images,\n optimizeCss: nextConfig.experimental.optimizeCss,\n nextConfigOutput: nextConfig.output,\n nextScriptWorkers: nextConfig.experimental.nextScriptWorkers,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n domainLocales: nextConfig.i18n?.domains,\n distDir: '',\n crossOrigin: nextConfig.crossOrigin ? nextConfig.crossOrigin : undefined,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile: nextConfig.experimental.isExperimentalCompile,\n // `htmlLimitedBots` is passed to server as serialized config in string format\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata,\n },\n\n buildManifest,\n subresourceIntegrityManifest,\n reactLoadableManifest,\n dynamicCssManifest,\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<RenderResultMetadata>\n ): Response => {\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n finalStatus = metadata.statusCode || 200\n const headers = new Headers()\n\n // Set content type\n const contentType = result.contentType || HTML_CONTENT_TYPE_HEADER\n headers.set('Content-Type', contentType)\n\n // Add metadata headers\n if (metadata.headers) {\n for (const [key, value] of Object.entries(metadata.headers)) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result.pipeTo(writable).catch((err) => {\n console.error('Error piping RenderResult to response:', err)\n })\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: pageMod.getServerSideProps,\n Component: pageMod.default || pageMod,\n ComponentMod: pageMod,\n pageConfig: pageMod.config,\n isNextDataRequest,\n },\n }\n )\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n if (finalStatus && finalStatus >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', finalStatus.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const errModule = error500Mod || errorMod\n const errRouteModule = errModule.routeModule as RouteModule\n\n if (errRouteModule.isDev) {\n throw err\n }\n\n const silenceLog = false\n await errRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n\n const errResult = await errRouteModule.render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n page: error500Mod ? '/500' : '/_error',\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: errModule.getServerSideProps,\n Component: errModule.default || errModule,\n ComponentMod: errModule,\n pageConfig: errModule.config,\n },\n }\n )\n\n return renderResultToResponse(errResult)\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': srcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n bypassNextUrl: true,\n page: 'VAR_DEFINITION_PATHNAME',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_DEFINITION_PATHNAME',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["ComponentMod","handler","pageMod","userlandPage","routeModule","RouteModule","pageRouteModuleOptions","components","App","appMod","default","Document","userland","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","errorMod","userlandErrorPage","errorRouteModuleOptions","error500Mod","userland500Page","user500RouteModuleOptions","requestHandler","req","_event","nextConfig","srcPage","relativeUrl","nextUrl","pathname","search","baseReq","WebNextRequest","pageRouteModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","deploymentId","isNextDataRequest","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","clientAssetToken","cacheHandlers","initializeCacheHandlers","cacheMaxMemorySize","renderContext","page","sharedContext","customServer","undefined","isFallback","isDraftMode","developmentNotFoundSourcePage","renderOpts","supportsDynamicResponse","Component","pageConfig","previewProps","preview","basePath","assetPrefix","images","optimizeCss","experimental","nextConfigOutput","output","nextScriptWorkers","disableOptimizedLoading","domainLocales","i18n","domains","crossOrigin","largePageDataBytes","isExperimentalCompile","clientTraceMetadata","finalStatus","renderResultToResponse","result","isNull","metadata","statusCode","headers","Headers","contentType","HTML_CONTENT_TYPE_HEADER","set","key","value","Object","entries","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","error","invokeRender","span","render","WebNextResponse","getServerSideProps","config","finally","setAttributes","setStatus","code","SpanStatusCode","ERROR","setAttribute","toString","rootSpanAttributes","tracer","getRootSpanAttributes","get","BaseServerSpan","handleRequest","warn","route","name","method","updateName","errModule","errRouteModule","isDev","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","errResult","getTracer","withPropagatedContext","trace","spanName","kind","SpanKind","SERVER","attributes","internalHandler","opts","adapter","IncrementalCache","incrementalCacheHandler","bypassNextUrl","request","ctx","url","toNodeOutgoingHttpHeaders","__NEXT_BASE_PATH","__NEXT_I18N_CONFIG","trailingSlash","Boolean","__NEXT_TRAILING_SLASH","cacheLife","__NEXT_CACHE_LIFE","authInterrupts","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","clientParamParsingOrigins","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","waitUntil","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} |
@@ -147,2 +147,11 @@ "use strict"; | ||
| }); | ||
| if (res.statusCode && res.statusCode >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| span.setStatus({ | ||
| code: _tracer.SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| span.setAttribute('error.type', res.statusCode.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
@@ -149,0 +158,0 @@ // We were unable to get attributes, probably OTEL is not enabled |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/build/templates/pages-api.ts"],"sourcesContent":["import type { NextApiResponse } from '../../types'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\n\nimport { sendError } from '../../server/api-utils'\nimport { RouteKind } from '../../server/route-kind'\nimport type { Span } from '../../server/lib/trace/tracer'\nimport { PagesAPIRouteModule } from '../../server/route-modules/pages-api/module.compiled'\n\nimport { hoist } from './helpers'\n\n// Import the userland code.\nimport * as userland from 'VAR_USERLAND'\nimport { getTracer, SpanKind } from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport type { InstrumentationOnRequestError } from '../../server/instrumentation/types'\nimport {\n addRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\n\n// Re-export the handler (should be the default export).\nexport default hoist(userland, 'default')\n\n// Re-export config.\nexport const config = hoist(userland, 'config')\n\n// Create and export the route module that will be consumed.\nconst routeModule = new PagesAPIRouteModule({\n definition: {\n kind: RouteKind.PAGES_API,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n },\n userland,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n})\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n }\n\n const prepareResult = await routeModule.prepare(req, res, { srcPage })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const { query, params, prerenderManifest, routerServerContext } =\n prepareResult\n\n try {\n const method = req.method || 'GET'\n const tracer = getTracer()\n\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const onRequestError =\n routeModule.instrumentationOnRequestError.bind(routeModule)\n\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) =>\n routeModule\n .render(req, res, {\n query: {\n ...query,\n ...params,\n },\n params,\n allowedRevalidateHeaderKeys: process.env\n .__NEXT_ALLOWED_REVALIDATE_HEADERS as any as string[],\n multiZoneDraftMode: Boolean(process.env.__NEXT_MULTI_ZONE_DRAFT_MODE),\n trustHostHeader: process.env\n .__NEXT_TRUST_HOST_HEADER as any as boolean,\n // TODO: get this from from runtime env so manifest\n // doesn't need to load\n previewProps: prerenderManifest.preview,\n propagateError: false,\n dev: routeModule.isDev,\n page: 'VAR_DEFINITION_PAGE',\n\n internalRevalidate: routerServerContext?.revalidate,\n\n onError: (...args: Parameters<InstrumentationOnRequestError>) =>\n onRequestError(req, ...args),\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await invokeRouteModule(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n invokeRouteModule\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n // we re-throw in dev to show the error overlay\n if (routeModule.isDev) {\n throw err\n }\n // this is technically an invariant as error handling\n // should be done inside of api-resolver onError\n sendError(res as NextApiResponse, 500, 'Internal Server Error')\n } finally {\n // We don't allow any waitUntil work in pages API routes currently\n // so if callback is present return with resolved promise since no\n // pending work\n ctx.waitUntil?.(Promise.resolve())\n }\n}\n"],"names":["config","handler","hoist","userland","routeModule","PagesAPIRouteModule","definition","kind","RouteKind","PAGES_API","page","pathname","bundlePath","filename","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","req","res","ctx","requestMeta","setRequestMeta","isDev","addRequestMeta","hrtime","bigint","srcPage","TURBOPACK","replace","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","query","params","prerenderManifest","routerServerContext","method","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","Boolean","onRequestError","instrumentationOnRequestError","bind","parentSpan","invokeRouteModule","span","render","allowedRevalidateHeaderKeys","__NEXT_ALLOWED_REVALIDATE_HEADERS","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","trustHostHeader","__NEXT_TRUST_HOST_HEADER","previewProps","preview","propagateError","dev","internalRevalidate","revalidate","onError","args","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","setAttribute","withPropagatedContext","headers","trace","spanName","SpanKind","SERVER","attributes","url","undefined","err","sendError"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/build/templates/pages-api.ts"],"sourcesContent":["import type { NextApiResponse } from '../../types'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\n\nimport { sendError } from '../../server/api-utils'\nimport { RouteKind } from '../../server/route-kind'\nimport type { Span } from '../../server/lib/trace/tracer'\nimport { PagesAPIRouteModule } from '../../server/route-modules/pages-api/module.compiled'\n\nimport { hoist } from './helpers'\n\n// Import the userland code.\nimport * as userland from 'VAR_USERLAND'\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport type { InstrumentationOnRequestError } from '../../server/instrumentation/types'\nimport {\n addRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\n\n// Re-export the handler (should be the default export).\nexport default hoist(userland, 'default')\n\n// Re-export config.\nexport const config = hoist(userland, 'config')\n\n// Create and export the route module that will be consumed.\nconst routeModule = new PagesAPIRouteModule({\n definition: {\n kind: RouteKind.PAGES_API,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n },\n userland,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n})\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n }\n\n const prepareResult = await routeModule.prepare(req, res, { srcPage })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const { query, params, prerenderManifest, routerServerContext } =\n prepareResult\n\n try {\n const method = req.method || 'GET'\n const tracer = getTracer()\n\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const onRequestError =\n routeModule.instrumentationOnRequestError.bind(routeModule)\n\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) =>\n routeModule\n .render(req, res, {\n query: {\n ...query,\n ...params,\n },\n params,\n allowedRevalidateHeaderKeys: process.env\n .__NEXT_ALLOWED_REVALIDATE_HEADERS as any as string[],\n multiZoneDraftMode: Boolean(process.env.__NEXT_MULTI_ZONE_DRAFT_MODE),\n trustHostHeader: process.env\n .__NEXT_TRUST_HOST_HEADER as any as boolean,\n // TODO: get this from from runtime env so manifest\n // doesn't need to load\n previewProps: prerenderManifest.preview,\n propagateError: false,\n dev: routeModule.isDev,\n page: 'VAR_DEFINITION_PAGE',\n\n internalRevalidate: routerServerContext?.revalidate,\n\n onError: (...args: Parameters<InstrumentationOnRequestError>) =>\n onRequestError(req, ...args),\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n if (res.statusCode && res.statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', res.statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await invokeRouteModule(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n invokeRouteModule\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n // we re-throw in dev to show the error overlay\n if (routeModule.isDev) {\n throw err\n }\n // this is technically an invariant as error handling\n // should be done inside of api-resolver onError\n sendError(res as NextApiResponse, 500, 'Internal Server Error')\n } finally {\n // We don't allow any waitUntil work in pages API routes currently\n // so if callback is present return with resolved promise since no\n // pending work\n ctx.waitUntil?.(Promise.resolve())\n }\n}\n"],"names":["config","handler","hoist","userland","routeModule","PagesAPIRouteModule","definition","kind","RouteKind","PAGES_API","page","pathname","bundlePath","filename","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","req","res","ctx","requestMeta","setRequestMeta","isDev","addRequestMeta","hrtime","bigint","srcPage","TURBOPACK","replace","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","query","params","prerenderManifest","routerServerContext","method","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","Boolean","onRequestError","instrumentationOnRequestError","bind","parentSpan","invokeRouteModule","span","render","allowedRevalidateHeaderKeys","__NEXT_ALLOWED_REVALIDATE_HEADERS","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","trustHostHeader","__NEXT_TRUST_HOST_HEADER","previewProps","preview","propagateError","dev","internalRevalidate","revalidate","onError","args","finally","setAttributes","setStatus","code","SpanStatusCode","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","withPropagatedContext","headers","trace","spanName","SpanKind","SERVER","attributes","url","undefined","err","sendError"],"mappings":";;;;;;;;;;;;;;;;IA6BaA,MAAM;eAANA;;IAJb,wDAAwD;IACxD,OAAyC;eAAzC;;IAoBsBC,OAAO;eAAPA;;;0BA3CI;2BACA;gCAEU;yBAEd;sEAGI;wBAKnB;2BACwB;6BAMxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGP,WAAeC,IAAAA,cAAK,EAACC,eAAU;AAGxB,MAAMH,SAASE,IAAAA,cAAK,EAACC,eAAU;AAEtC,4DAA4D;AAC5D,MAAMC,cAAc,IAAIC,mCAAmB,CAAC;IAC1CC,YAAY;QACVC,MAAMC,oBAAS,CAACC,SAAS;QACzBC,MAAM;QACNC,UAAU;QACV,2CAA2C;QAC3CC,YAAY;QACZC,UAAU;IACZ;IACAV,UAAAA;IACAW,SAASC,QAAQC,GAAG,CAACC,wBAAwB,IAAI;IACjDC,oBAAoBH,QAAQC,GAAG,CAACG,2BAA2B,IAAI;AACjE;AAEO,eAAelB,QACpBmB,GAAoB,EACpBC,GAAmB,EACnBC,GAGC;IAED,IAAIA,IAAIC,WAAW,EAAE;QACnBC,IAAAA,2BAAc,EAACJ,KAAKE,IAAIC,WAAW;IACrC;IACA,IAAInB,YAAYqB,KAAK,EAAE;QACrBC,IAAAA,2BAAc,EAACN,KAAK,gCAAgCL,QAAQY,MAAM,CAACC,MAAM;IAC3E;IACA,IAAIC,UAAU;IAEd,wDAAwD;IACxD,mDAAmD;IACnD,6DAA6D;IAC7D,IAAId,QAAQC,GAAG,CAACc,SAAS,EAAE;QACzBD,UAAUA,QAAQE,OAAO,CAAC,YAAY,OAAO;IAC/C;IAEA,MAAMC,gBAAgB,MAAM5B,YAAY6B,OAAO,CAACb,KAAKC,KAAK;QAAEQ;IAAQ;IAEpE,IAAI,CAACG,eAAe;QAClBX,IAAIa,UAAU,GAAG;QACjBb,IAAIc,GAAG,CAAC;QACRb,IAAIc,SAAS,oBAAbd,IAAIc,SAAS,MAAbd,KAAgBe,QAAQC,OAAO;QAC/B;IACF;IAEA,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,iBAAiB,EAAEC,mBAAmB,EAAE,GAC7DV;IAEF,IAAI;QACF,MAAMW,SAASvB,IAAIuB,MAAM,IAAI;QAC7B,MAAMC,SAASC,IAAAA,iBAAS;QAExB,MAAMC,aAAaF,OAAOG,kBAAkB;QAC5C,MAAMC,wBAAwBC,QAC5BP,uCAAAA,oBAAqBM,qBAAqB;QAE5C,MAAME,iBACJ9C,YAAY+C,6BAA6B,CAACC,IAAI,CAAChD;QAEjD,IAAIiD;QACJ,MAAMC,oBAAoB,OAAOC,OAC/BnD,YACGoD,MAAM,CAACpC,KAAKC,KAAK;gBAChBkB,OAAO;oBACL,GAAGA,KAAK;oBACR,GAAGC,MAAM;gBACX;gBACAA;gBACAiB,6BAA6B1C,QAAQC,GAAG,CACrC0C,iCAAiC;gBACpCC,oBAAoBV,QAAQlC,QAAQC,GAAG,CAAC4C,4BAA4B;gBACpEC,iBAAiB9C,QAAQC,GAAG,CACzB8C,wBAAwB;gBAC3B,mDAAmD;gBACnD,uBAAuB;gBACvBC,cAActB,kBAAkBuB,OAAO;gBACvCC,gBAAgB;gBAChBC,KAAK9D,YAAYqB,KAAK;gBACtBf,MAAM;gBAENyD,kBAAkB,EAAEzB,uCAAAA,oBAAqB0B,UAAU;gBAEnDC,SAAS,CAAC,GAAGC,OACXpB,eAAe9B,QAAQkD;YAC3B,GACCC,OAAO,CAAC;gBACP,IAAI,CAAChB,MAAM;gBAEXA,KAAKiB,aAAa,CAAC;oBACjB,oBAAoBnD,IAAIa,UAAU;oBAClC,YAAY;gBACd;gBAEA,IAAIb,IAAIa,UAAU,IAAIb,IAAIa,UAAU,IAAI,KAAK;oBAC3C,8DAA8D;oBAC9D,6EAA6E;oBAC7EqB,KAAKkB,SAAS,CAAC;wBACbC,MAAMC,sBAAc,CAACC,KAAK;oBAC5B;oBACA,8DAA8D;oBAC9DrB,KAAKsB,YAAY,CAAC,cAAcxD,IAAIa,UAAU,CAAC4C,QAAQ;gBACzD;gBAEA,MAAMC,qBAAqBnC,OAAOoC,qBAAqB;gBACvD,iEAAiE;gBACjE,IAAI,CAACD,oBAAoB;oBACvB;gBACF;gBAEA,IACEA,mBAAmBE,GAAG,CAAC,sBACvBC,yBAAc,CAACC,aAAa,EAC5B;oBACAC,QAAQC,IAAI,CACV,CAAC,2BAA2B,EAAEN,mBAAmBE,GAAG,CAClD,kBACA,qEAAqE,CAAC;oBAE1E;gBACF;gBAEA,MAAMK,QAAQP,mBAAmBE,GAAG,CAAC,iBAAiBpD;gBACtD,MAAM0D,OAAO,GAAG5C,OAAO,CAAC,EAAE2C,OAAO;gBAEjC/B,KAAKiB,aAAa,CAAC;oBACjB,cAAcc;oBACd,cAAcA;oBACd,kBAAkBC;gBACpB;gBACAhC,KAAKiC,UAAU,CAACD;gBAEhB,8DAA8D;gBAC9D,wDAAwD;gBACxD,IAAIlC,cAAcA,eAAeE,MAAM;oBACrCF,WAAWwB,YAAY,CAAC,cAAcS;oBACtCjC,WAAWmC,UAAU,CAACD;gBACxB;YACF;QAEJ,oDAAoD;QACpD,yDAAyD;QACzD,IAAIvC,yBAAyBF,YAAY;YACvC,MAAMQ,kBAAkBR;QAC1B,OAAO;YACLO,aAAaT,OAAOG,kBAAkB;YACtC,MAAMH,OAAO6C,qBAAqB,CAChCrE,IAAIsE,OAAO,EACX,IACE9C,OAAO+C,KAAK,CACVT,yBAAc,CAACC,aAAa,EAC5B;oBACES,UAAU,GAAGjD,OAAO,CAAC,EAAEd,SAAS;oBAChCtB,MAAMsF,gBAAQ,CAACC,MAAM;oBACrBC,YAAY;wBACV,eAAepD;wBACf,eAAevB,IAAI4E,GAAG;oBACxB;gBACF,GACA1C,oBAEJ2C,WACA,CAACjD;QAEL;IACF,EAAE,OAAOkD,KAAK;QACZ,+CAA+C;QAC/C,IAAI9F,YAAYqB,KAAK,EAAE;YACrB,MAAMyE;QACR;QACA,qDAAqD;QACrD,gDAAgD;QAChDC,IAAAA,mBAAS,EAAC9E,KAAwB,KAAK;IACzC,SAAU;QACR,kEAAkE;QAClE,kEAAkE;QAClE,eAAe;QACfC,IAAIc,SAAS,oBAAbd,IAAIc,SAAS,MAAbd,KAAgBe,QAAQC,OAAO;IACjC;AACF","ignoreList":[0]} |
@@ -96,3 +96,3 @@ "use strict"; | ||
| isPersistentCachingEnabled: persistentCaching, | ||
| nextVersion: "16.3.0-canary.52" | ||
| nextVersion: "16.3.0-canary.53" | ||
| }, { | ||
@@ -99,0 +99,0 @@ turbopackMemoryEviction: config.experimental.turbopackMemoryEvictionMode, |
@@ -118,3 +118,3 @@ // Import cpu-profile first to start profiling early if enabled | ||
| deferredEntries: config.experimental.deferredEntries, | ||
| nextVersion: "16.3.0-canary.52" | ||
| nextVersion: "16.3.0-canary.53" | ||
| }; | ||
@@ -121,0 +121,0 @@ const sharedTurboOptions = { |
| 1:"$Sreact.fragment" | ||
| 2:I[61160,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ClientPageRoot"] | ||
| 3:I[79331,["/_next/static/chunks/17pjmhs~7~vuy.js","/_next/static/chunks/14uzda.yuj~vn.js"],"default"] | ||
| 6:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"OutletBoundary"] | ||
| 2:I[44810,["/_next/static/chunks/0gpjr2kumy04~.js"],"ClientPageRoot"] | ||
| 3:I[79331,["/_next/static/chunks/0gpjr2kumy04~.js","/_next/static/chunks/0mob8t-jqg_61.js"],"default"] | ||
| 6:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"OutletBoundary"] | ||
| 7:"$Sreact.suspense" | ||
| 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/14uzda.yuj~vn.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0mob8t-jqg_61.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"delpRIFeiHi-JA-w5_ZeS"} | ||
| 4:{} | ||
| 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" | ||
| 8:null |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 4:I[61160,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ClientPageRoot"] | ||
| 5:I[79331,["/_next/static/chunks/17pjmhs~7~vuy.js","/_next/static/chunks/14uzda.yuj~vn.js"],"default"] | ||
| 8:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"OutletBoundary"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 4:I[44810,["/_next/static/chunks/0gpjr2kumy04~.js"],"ClientPageRoot"] | ||
| 5:I[79331,["/_next/static/chunks/0gpjr2kumy04~.js","/_next/static/chunks/0mob8t-jqg_61.js"],"default"] | ||
| 8:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"OutletBoundary"] | ||
| 9:"$Sreact.suspense" | ||
| b:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ViewportBoundary"] | ||
| d:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"MetadataBoundary"] | ||
| f:I[11480,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default",1] | ||
| b:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"ViewportBoundary"] | ||
| d:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"MetadataBoundary"] | ||
| f:I[38091,["/_next/static/chunks/0gpjr2kumy04~.js"],"default",1] | ||
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/17pjmhs~7~vuy.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/14uzda.yuj~vn.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0gpjr2kumy04~.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0mob8t-jqg_61.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"delpRIFeiHi-JA-w5_ZeS"} | ||
| 6:{} | ||
@@ -14,0 +14,0 @@ 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" |
| 1:"$Sreact.fragment" | ||
| 2:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ViewportBoundary"] | ||
| 3:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"MetadataBoundary"] | ||
| 2:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"ViewportBoundary"] | ||
| 3:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"MetadataBoundary"] | ||
| 4:"$Sreact.suspense" | ||
| 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Next.js Bundle Analyzer"}],["$","meta","1",{"name":"description","content":"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Next.js Bundle Analyzer"}],["$","meta","1",{"name":"description","content":"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"delpRIFeiHi-JA-w5_ZeS"} |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/17pjmhs~7~vuy.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0gpjr2kumy04~.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"delpRIFeiHi-JA-w5_ZeS"} |
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"delpRIFeiHi-JA-w5_ZeS"} |
@@ -1,2 +0,2 @@ | ||
| <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i88bcw_h0tc6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/03jpk8cp.v-fb.js"/><script src="/_next/static/chunks/0y5eiibg048qu.js" async=""></script><script src="/_next/static/chunks/07kjyv4ygq3ax.js" async=""></script><script src="/_next/static/chunks/turbopack-0sjo7y3khqr6a.js" async=""></script><script src="/_next/static/chunks/17pjmhs~7~vuy.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Next.js Bundle Analyzer</title><meta name="description" content="Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"/><script> | ||
| <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i88bcw_h0tc6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0a-g8v4cpzcih.js"/><script src="/_next/static/chunks/0xje~h0slum0~.js" async=""></script><script src="/_next/static/chunks/0mqexaqehw118.js" async=""></script><script src="/_next/static/chunks/turbopack-0jo~vdsq9-wzl.js" async=""></script><script src="/_next/static/chunks/0gpjr2kumy04~.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Next.js Bundle Analyzer</title><meta name="description" content="Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"/><script> | ||
| (function() { | ||
@@ -10,2 +10,2 @@ const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; | ||
| })(); | ||
| </script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/03jpk8cp.v-fb.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7512,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\"]\n3:I[13537,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\"]\n4:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"ViewportBoundary\"]\na:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"MetadataBoundary\"]\nc:I[11480,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17pjmhs~7~vuy.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n\\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) =\u003e {\\n document.documentElement.classList.toggle('dark', e.matches);\\n });\\n })();\\n \"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"6lwDwQJdRbU-gx-lLSkD4\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Bundle Analyzer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis\"}]]\n"])</script></body></html> | ||
| </script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0a-g8v4cpzcih.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[292,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\"]\n3:I[6975,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\"]\n4:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"ViewportBoundary\"]\na:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"MetadataBoundary\"]\nc:I[38091,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0gpjr2kumy04~.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n\\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) =\u003e {\\n document.documentElement.classList.toggle('dark', e.matches);\\n });\\n })();\\n \"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"delpRIFeiHi-JA-w5_ZeS\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Bundle Analyzer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis\"}]]\n"])</script></body></html> |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 4:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"OutletBoundary"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 4:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"OutletBoundary"] | ||
| 5:"$Sreact.suspense" | ||
| 8:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ViewportBoundary"] | ||
| a:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"MetadataBoundary"] | ||
| c:I[11480,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default",1] | ||
| 8:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"ViewportBoundary"] | ||
| a:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"MetadataBoundary"] | ||
| c:I[38091,["/_next/static/chunks/0gpjr2kumy04~.js"],"default",1] | ||
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/17pjmhs~7~vuy.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0gpjr2kumy04~.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"delpRIFeiHi-JA-w5_ZeS"} | ||
| d:[] | ||
@@ -12,0 +12,0 @@ 7:"$Wd" |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 4:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"OutletBoundary"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 4:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"OutletBoundary"] | ||
| 5:"$Sreact.suspense" | ||
| 8:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ViewportBoundary"] | ||
| a:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"MetadataBoundary"] | ||
| c:I[11480,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default",1] | ||
| 8:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"ViewportBoundary"] | ||
| a:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"MetadataBoundary"] | ||
| c:I[38091,["/_next/static/chunks/0gpjr2kumy04~.js"],"default",1] | ||
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/17pjmhs~7~vuy.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0gpjr2kumy04~.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"delpRIFeiHi-JA-w5_ZeS"} | ||
| d:[] | ||
@@ -12,0 +12,0 @@ 7:"$Wd" |
| 1:"$Sreact.fragment" | ||
| 2:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ViewportBoundary"] | ||
| 3:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"MetadataBoundary"] | ||
| 2:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"ViewportBoundary"] | ||
| 3:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"MetadataBoundary"] | ||
| 4:"$Sreact.suspense" | ||
| 0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Next.js Bundle Analyzer"}],["$","meta","1",{"name":"description","content":"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Next.js Bundle Analyzer"}],["$","meta","1",{"name":"description","content":"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"delpRIFeiHi-JA-w5_ZeS"} |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/17pjmhs~7~vuy.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0gpjr2kumy04~.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"delpRIFeiHi-JA-w5_ZeS"} |
| 1:"$Sreact.fragment" | ||
| 2:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"OutletBoundary"] | ||
| 2:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"OutletBoundary"] | ||
| 3:"$Sreact.suspense" | ||
| 0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"delpRIFeiHi-JA-w5_ZeS"} | ||
| 4:null |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 4:[] | ||
| 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"delpRIFeiHi-JA-w5_ZeS"} |
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"delpRIFeiHi-JA-w5_ZeS"} |
@@ -1,2 +0,2 @@ | ||
| <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i88bcw_h0tc6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/03jpk8cp.v-fb.js"/><script src="/_next/static/chunks/0y5eiibg048qu.js" async=""></script><script src="/_next/static/chunks/07kjyv4ygq3ax.js" async=""></script><script src="/_next/static/chunks/turbopack-0sjo7y3khqr6a.js" async=""></script><script src="/_next/static/chunks/17pjmhs~7~vuy.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Next.js Bundle Analyzer</title><meta name="description" content="Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"/><script> | ||
| <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i88bcw_h0tc6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0a-g8v4cpzcih.js"/><script src="/_next/static/chunks/0xje~h0slum0~.js" async=""></script><script src="/_next/static/chunks/0mqexaqehw118.js" async=""></script><script src="/_next/static/chunks/turbopack-0jo~vdsq9-wzl.js" async=""></script><script src="/_next/static/chunks/0gpjr2kumy04~.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Next.js Bundle Analyzer</title><meta name="description" content="Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"/><script> | ||
| (function() { | ||
@@ -10,2 +10,2 @@ const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; | ||
| })(); | ||
| </script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/03jpk8cp.v-fb.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7512,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\"]\n3:I[13537,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\"]\n4:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"ViewportBoundary\"]\na:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"MetadataBoundary\"]\nc:I[11480,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17pjmhs~7~vuy.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n\\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) =\u003e {\\n document.documentElement.classList.toggle('dark', e.matches);\\n });\\n })();\\n \"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"6lwDwQJdRbU-gx-lLSkD4\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Bundle Analyzer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis\"}]]\n"])</script></body></html> | ||
| </script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0a-g8v4cpzcih.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[292,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\"]\n3:I[6975,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\"]\n4:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"ViewportBoundary\"]\na:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"MetadataBoundary\"]\nc:I[38091,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0gpjr2kumy04~.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n\\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) =\u003e {\\n document.documentElement.classList.toggle('dark', e.matches);\\n });\\n })();\\n \"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"delpRIFeiHi-JA-w5_ZeS\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Bundle Analyzer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis\"}]]\n"])</script></body></html> |
@@ -1,2 +0,2 @@ | ||
| <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i88bcw_h0tc6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/03jpk8cp.v-fb.js"/><script src="/_next/static/chunks/0y5eiibg048qu.js" async=""></script><script src="/_next/static/chunks/07kjyv4ygq3ax.js" async=""></script><script src="/_next/static/chunks/turbopack-0sjo7y3khqr6a.js" async=""></script><script src="/_next/static/chunks/17pjmhs~7~vuy.js" async=""></script><script src="/_next/static/chunks/14uzda.yuj~vn.js" async=""></script><title>Next.js Bundle Analyzer</title><meta name="description" content="Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"/><script> | ||
| <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0i88bcw_h0tc6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0a-g8v4cpzcih.js"/><script src="/_next/static/chunks/0xje~h0slum0~.js" async=""></script><script src="/_next/static/chunks/0mqexaqehw118.js" async=""></script><script src="/_next/static/chunks/turbopack-0jo~vdsq9-wzl.js" async=""></script><script src="/_next/static/chunks/0gpjr2kumy04~.js" async=""></script><script src="/_next/static/chunks/0mob8t-jqg_61.js" async=""></script><title>Next.js Bundle Analyzer</title><meta name="description" content="Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis"/><script> | ||
| (function() { | ||
@@ -10,2 +10,2 @@ const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; | ||
| })(); | ||
| </script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><main class="h-screen flex flex-col bg-background"><div class="flex-none px-4 py-2 border-b border-border flex items-center gap-3"><div class="flex-1 flex"><div class="flex items-center gap-2 min-w-64 max-w-full"><button class="inline-flex items-center gap-2 whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2 flex-grow-1 w-full justify-between font-mono text-sm" role="combobox" aria-expanded="false" disabled="" type="button" aria-haspopup="dialog" aria-controls="radix-_R_lbtb_" data-state="closed"><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-loader mr-2 inline animate-spin" aria-hidden="true"><path d="M12 2v4"></path><path d="m16.2 7.8 2.9-2.9"></path><path d="M18 12h4"></path><path d="m16.2 16.2 2.9 2.9"></path><path d="M12 18v4"></path><path d="m4.9 19.1 2.9-2.9"></path><path d="M2 12h4"></path><path d="m4.9 4.9 2.9 2.9"></path></svg>Loading routes...</div><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevrons-up-down h-4 w-4 shrink-0 opacity-50" aria-hidden="true"><path d="m7 15 5 5 5-5"></path><path d="m7 9 5-5 5 5"></path></svg></div></button></div></div><div class="flex items-center gap-2"></div></div><div class="flex-1 flex min-h-0"><div class="flex-1 min-w-0 p-4 bg-background"><div class="h-full w-full grid grid-cols-12 grid-rows-8 gap-2"><div class="animate-pulse rounded-md bg-muted col-span-5 row-span-4"></div><div class="animate-pulse rounded-md bg-muted col-span-4 row-span-3"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-3"></div><div class="animate-pulse rounded-md bg-muted col-span-4 row-span-1"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-4"></div><div class="animate-pulse rounded-md bg-muted col-span-2 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-2 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-4 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-2 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-2"></div></div></div><button type="button" class="flex-none w-1 bg-border cursor-col-resize transition-colors" disabled="" aria-label="Resize sidebar"></button><div class="flex-none bg-muted border-l border-border overflow-y-auto" style="width:20%"><div class="flex-1 p-3 space-y-4 overflow-y-auto"><div class="animate-pulse rounded-md bg-muted h-4 w-3/4"></div><div class="animate-pulse rounded-md bg-muted h-4 w-full"></div><div class="animate-pulse rounded-md bg-muted h-4 w-5/6"></div><div class="mt-4 space-y-2"><div class="animate-pulse rounded-md bg-muted h-3 w-full"></div><div class="animate-pulse rounded-md bg-muted h-3 w-full"></div><div class="animate-pulse rounded-md bg-muted h-3 w-4/5"></div></div></div></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/03jpk8cp.v-fb.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7512,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\"]\n3:I[13537,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\"]\n4:I[61160,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"ClientPageRoot\"]\n5:I[79331,[\"/_next/static/chunks/17pjmhs~7~vuy.js\",\"/_next/static/chunks/14uzda.yuj~vn.js\"],\"default\"]\n8:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"ViewportBoundary\"]\nd:I[37998,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"MetadataBoundary\"]\nf:I[11480,[\"/_next/static/chunks/17pjmhs~7~vuy.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17pjmhs~7~vuy.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n\\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) =\u003e {\\n document.documentElement.classList.toggle('dark', e.matches);\\n });\\n })();\\n \"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/14uzda.yuj~vn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"6lwDwQJdRbU-gx-lLSkD4\"}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"a:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Bundle Analyzer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis\"}]]\n"])</script></body></html> | ||
| </script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><main class="h-screen flex flex-col bg-background"><div class="flex-none px-4 py-2 border-b border-border flex items-center gap-3"><div class="flex-1 flex"><div class="flex items-center gap-2 min-w-64 max-w-full"><button class="inline-flex items-center gap-2 whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2 flex-grow-1 w-full justify-between font-mono text-sm" role="combobox" aria-expanded="false" disabled="" type="button" aria-haspopup="dialog" aria-controls="radix-_R_lbtb_" data-state="closed"><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-loader mr-2 inline animate-spin" aria-hidden="true"><path d="M12 2v4"></path><path d="m16.2 7.8 2.9-2.9"></path><path d="M18 12h4"></path><path d="m16.2 16.2 2.9 2.9"></path><path d="M12 18v4"></path><path d="m4.9 19.1 2.9-2.9"></path><path d="M2 12h4"></path><path d="m4.9 4.9 2.9 2.9"></path></svg>Loading routes...</div><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevrons-up-down h-4 w-4 shrink-0 opacity-50" aria-hidden="true"><path d="m7 15 5 5 5-5"></path><path d="m7 9 5-5 5 5"></path></svg></div></button></div></div><div class="flex items-center gap-2"></div></div><div class="flex-1 flex min-h-0"><div class="flex-1 min-w-0 p-4 bg-background"><div class="h-full w-full grid grid-cols-12 grid-rows-8 gap-2"><div class="animate-pulse rounded-md bg-muted col-span-5 row-span-4"></div><div class="animate-pulse rounded-md bg-muted col-span-4 row-span-3"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-3"></div><div class="animate-pulse rounded-md bg-muted col-span-4 row-span-1"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-4"></div><div class="animate-pulse rounded-md bg-muted col-span-2 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-2 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-4 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-2 row-span-2"></div><div class="animate-pulse rounded-md bg-muted col-span-3 row-span-2"></div></div></div><button type="button" class="flex-none w-1 bg-border cursor-col-resize transition-colors" disabled="" aria-label="Resize sidebar"></button><div class="flex-none bg-muted border-l border-border overflow-y-auto" style="width:20%"><div class="flex-1 p-3 space-y-4 overflow-y-auto"><div class="animate-pulse rounded-md bg-muted h-4 w-3/4"></div><div class="animate-pulse rounded-md bg-muted h-4 w-full"></div><div class="animate-pulse rounded-md bg-muted h-4 w-5/6"></div><div class="mt-4 space-y-2"><div class="animate-pulse rounded-md bg-muted h-3 w-full"></div><div class="animate-pulse rounded-md bg-muted h-3 w-full"></div><div class="animate-pulse rounded-md bg-muted h-3 w-4/5"></div></div></div></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/0a-g8v4cpzcih.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[292,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\"]\n3:I[6975,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\"]\n4:I[44810,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"ClientPageRoot\"]\n5:I[79331,[\"/_next/static/chunks/0gpjr2kumy04~.js\",\"/_next/static/chunks/0mob8t-jqg_61.js\"],\"default\"]\n8:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"ViewportBoundary\"]\nd:I[10190,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"MetadataBoundary\"]\nf:I[38091,[\"/_next/static/chunks/0gpjr2kumy04~.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0gpjr2kumy04~.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function() {\\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\\n document.documentElement.classList.toggle('dark', theme === 'dark');\\n\\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) =\u003e {\\n document.documentElement.classList.toggle('dark', e.matches);\\n });\\n })();\\n \"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0mob8t-jqg_61.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0i88bcw_h0tc6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"delpRIFeiHi-JA-w5_ZeS\"}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"a:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Bundle Analyzer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visualize and analyze your Next.js bundle sizes with interactive treemap and dependency analysis\"}]]\n"])</script></body></html> |
| 1:"$Sreact.fragment" | ||
| 2:I[7512,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 3:I[13537,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default"] | ||
| 4:I[61160,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ClientPageRoot"] | ||
| 5:I[79331,["/_next/static/chunks/17pjmhs~7~vuy.js","/_next/static/chunks/14uzda.yuj~vn.js"],"default"] | ||
| 8:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"OutletBoundary"] | ||
| 2:I[292,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 3:I[6975,["/_next/static/chunks/0gpjr2kumy04~.js"],"default"] | ||
| 4:I[44810,["/_next/static/chunks/0gpjr2kumy04~.js"],"ClientPageRoot"] | ||
| 5:I[79331,["/_next/static/chunks/0gpjr2kumy04~.js","/_next/static/chunks/0mob8t-jqg_61.js"],"default"] | ||
| 8:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"OutletBoundary"] | ||
| 9:"$Sreact.suspense" | ||
| b:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"ViewportBoundary"] | ||
| d:I[37998,["/_next/static/chunks/17pjmhs~7~vuy.js"],"MetadataBoundary"] | ||
| f:I[11480,["/_next/static/chunks/17pjmhs~7~vuy.js"],"default",1] | ||
| b:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"ViewportBoundary"] | ||
| d:I[10190,["/_next/static/chunks/0gpjr2kumy04~.js"],"MetadataBoundary"] | ||
| f:I[38091,["/_next/static/chunks/0gpjr2kumy04~.js"],"default",1] | ||
| :HL["/_next/static/chunks/0i88bcw_h0tc6.css","style"] | ||
| 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/17pjmhs~7~vuy.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/14uzda.yuj~vn.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"6lwDwQJdRbU-gx-lLSkD4"} | ||
| 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0gpjr2kumy04~.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n (function() {\n const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n document.documentElement.classList.toggle('dark', theme === 'dark');\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n document.documentElement.classList.toggle('dark', e.matches);\n });\n })();\n "}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0mob8t-jqg_61.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0i88bcw_h0tc6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"delpRIFeiHi-JA-w5_ZeS"} | ||
| 6:{} | ||
@@ -14,0 +14,0 @@ 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" |
@@ -42,3 +42,3 @@ #!/usr/bin/env node | ||
| const nextBuild = async (options, directory)=>{ | ||
| process.title = `next-build (v${"16.3.0-canary.52"})`; | ||
| process.title = `next-build (v${"16.3.0-canary.53"})`; | ||
| process.on('SIGTERM', ()=>{ | ||
@@ -45,0 +45,0 @@ (0, _cpuprofile.saveCpuProfile)(); |
@@ -43,3 +43,3 @@ #!/usr/bin/env node | ||
| const bindings = await (0, _swc.loadBindings)((_config_experimental1 = config.experimental) == null ? void 0 : _config_experimental1.useWasmBinary); | ||
| await bindings.turbo.databaseCompact(cachePath, "16.3.0-canary.52"); | ||
| await bindings.turbo.databaseCompact(cachePath, "16.3.0-canary.53"); | ||
| console.log('Turbopack database compaction complete.'); | ||
@@ -46,0 +46,0 @@ }; |
@@ -18,3 +18,3 @@ /** | ||
| const _setattributesfromprops = require("./set-attributes-from-props"); | ||
| const version = "16.3.0-canary.52"; | ||
| const version = "16.3.0-canary.53"; | ||
| window.next = { | ||
@@ -21,0 +21,0 @@ version, |
@@ -63,3 +63,3 @@ /* global location */ // imports polyfill from `@next/polyfill-module` after build. | ||
| const _isnextroutererror = require("./components/is-next-router-error"); | ||
| const version = "16.3.0-canary.52"; | ||
| const version = "16.3.0-canary.53"; | ||
| let router; | ||
@@ -66,0 +66,0 @@ const emitter = (0, _mitt.default)(); |
@@ -425,3 +425,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; | ||
| "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && | ||
@@ -428,0 +428,0 @@ "function" === |
@@ -216,2 +216,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; |
@@ -339,3 +339,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; | ||
| })(); |
@@ -152,2 +152,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; |
@@ -75,6 +75,6 @@ { | ||
| "dependencies": { | ||
| "scheduler": "0.0.0-experimental-43bcbf80-20260603" | ||
| "scheduler": "0.0.0-experimental-d9158919-20260615" | ||
| }, | ||
| "peerDependencies": { | ||
| "react": "0.0.0-experimental-43bcbf80-20260603" | ||
| "react": "0.0.0-experimental-d9158919-20260615" | ||
| }, | ||
@@ -81,0 +81,0 @@ "browser": { |
@@ -425,3 +425,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; | ||
| "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && | ||
@@ -428,0 +428,0 @@ "function" === |
@@ -216,2 +216,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; |
@@ -339,3 +339,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; | ||
| })(); |
@@ -152,2 +152,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; |
@@ -70,6 +70,6 @@ { | ||
| "dependencies": { | ||
| "scheduler": "0.28.0-canary-43bcbf80-20260603" | ||
| "scheduler": "0.28.0-canary-d9158919-20260615" | ||
| }, | ||
| "peerDependencies": { | ||
| "react": "19.3.0-canary-43bcbf80-20260603" | ||
| "react": "19.3.0-canary-d9158919-20260615" | ||
| }, | ||
@@ -76,0 +76,0 @@ "browser": { |
@@ -1394,3 +1394,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; | ||
| "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && | ||
@@ -1397,0 +1397,0 @@ "function" === |
@@ -616,2 +616,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; |
@@ -1064,3 +1064,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; | ||
| })(); |
@@ -582,2 +582,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-experimental-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-experimental-d9158919-20260615"; |
| { | ||
| "name": "react-is", | ||
| "version": "19.3.0-canary-43bcbf80-20260603", | ||
| "version": "19.3.0-canary-d9158919-20260615", | ||
| "description": "Brand checking of React Elements.", | ||
@@ -9,3 +9,3 @@ "main": "index.js", | ||
| "type": "git", | ||
| "url": "https://github.com/facebook/react.git", | ||
| "url": "https://github.com/react/react.git", | ||
| "directory": "packages/react-is" | ||
@@ -18,3 +18,3 @@ }, | ||
| "bugs": { | ||
| "url": "https://github.com/facebook/react/issues" | ||
| "url": "https://github.com/react/react/issues" | ||
| }, | ||
@@ -21,0 +21,0 @@ "homepage": "https://react.dev/", |
@@ -51,5 +51,5 @@ { | ||
| "peerDependencies": { | ||
| "react": "0.0.0-experimental-43bcbf80-20260603", | ||
| "react-dom": "0.0.0-experimental-43bcbf80-20260603" | ||
| "react": "0.0.0-experimental-d9158919-20260615", | ||
| "react-dom": "0.0.0-experimental-d9158919-20260615" | ||
| } | ||
| } |
@@ -51,5 +51,5 @@ { | ||
| "peerDependencies": { | ||
| "react": "19.3.0-canary-43bcbf80-20260603", | ||
| "react-dom": "19.3.0-canary-43bcbf80-20260603" | ||
| "react": "19.3.0-canary-d9158919-20260615", | ||
| "react-dom": "19.3.0-canary-d9158919-20260615" | ||
| } | ||
| } |
@@ -55,6 +55,6 @@ { | ||
| "peerDependencies": { | ||
| "react": "0.0.0-experimental-43bcbf80-20260603", | ||
| "react-dom": "0.0.0-experimental-43bcbf80-20260603", | ||
| "react": "0.0.0-experimental-d9158919-20260615", | ||
| "react-dom": "0.0.0-experimental-d9158919-20260615", | ||
| "webpack": "^5.59.0" | ||
| } | ||
| } |
@@ -55,6 +55,6 @@ { | ||
| "peerDependencies": { | ||
| "react": "19.3.0-canary-43bcbf80-20260603", | ||
| "react-dom": "19.3.0-canary-43bcbf80-20260603", | ||
| "react": "19.3.0-canary-d9158919-20260615", | ||
| "react-dom": "19.3.0-canary-d9158919-20260615", | ||
| "webpack": "^5.59.0" | ||
| } | ||
| } |
@@ -1325,3 +1325,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; | ||
| "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && | ||
@@ -1328,0 +1328,0 @@ "function" === |
@@ -565,2 +565,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; |
@@ -877,3 +877,3 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; | ||
| })(); |
@@ -436,2 +436,2 @@ /** | ||
| }; | ||
| exports.version = "19.3.0-canary-43bcbf80-20260603"; | ||
| exports.version = "19.3.0-canary-d9158919-20260615"; |
@@ -1,1 +0,1 @@ | ||
| (()=>{var t={348:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a<i.length;a++)i[a]===t?t=null:_.push(i[a]);i=_}function e(_,a,f){t=a?_:n(n({},t),_);for(var o=i,c=0;c<o.length;c++)o[c](t,f)}return t=t||{},{action:function(i){function r(t){e(t,!1,i)}return function(){for(var _=arguments,a=[t],f=0;f<arguments.length;f++)a.push(_[f]);var o=i.apply(this,a);if(null!=o)return o.then?o.then(r):r(o)}},setState:e,subscribe:function(t){return i.push(t),function(){u(t)}},unsubscribe:u,getState:function(){return t}}}}};var i={};function __nccwpck_require__(_){var a=i[_];if(a!==undefined){return a.exports}var f=i[_]={exports:{}};var o=true;try{t[_](f,f.exports,__nccwpck_require__);o=false}finally{if(o)delete i[_]}return f.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(348);module.exports=_})(); | ||
| (()=>{var t={721:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a<i.length;a++)i[a]===t?t=null:_.push(i[a]);i=_}function e(_,a,f){t=a?_:n(n({},t),_);for(var o=i,c=0;c<o.length;c++)o[c](t,f)}return t=t||{},{action:function(i){function r(t){e(t,!1,i)}return function(){for(var _=arguments,a=[t],f=0;f<arguments.length;f++)a.push(_[f]);var o=i.apply(this,a);if(null!=o)return o.then?o.then(r):r(o)}},setState:e,subscribe:function(t){return i.push(t),function(){u(t)}},unsubscribe:u,getState:function(){return t}}}}};var i={};function __nccwpck_require__(_){var a=i[_];if(a!==undefined){return a.exports}var f=i[_]={exports:{}};var o=true;try{t[_](f,f.exports,__nccwpck_require__);o=false}finally{if(o)delete i[_]}return f.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(721);module.exports=_})(); |
@@ -56,10 +56,10 @@ import { formatIssue, isRelevantWarning } from '../shared/lib/turbopack/utils'; | ||
| if (topLevelWarnings.length > 0) { | ||
| console.warn(`Turbopack build encountered ${topLevelWarnings.length} warnings:\n${topLevelWarnings.join('\n')}`); | ||
| console.warn(`Turbopack build encountered ${topLevelWarnings.length} ${topLevelWarnings.length === 1 ? 'warning' : 'warnings'}:\n${topLevelWarnings.join('\n')}`); | ||
| } | ||
| if (topLevelErrors.length > 0) { | ||
| console.error(`Turbopack build encountered ${topLevelErrors.length} errors:\n${topLevelErrors.join('\n')}`); | ||
| console.error(`Turbopack build encountered ${topLevelErrors.length} ${topLevelErrors.length === 1 ? 'error' : 'errors'}:\n${topLevelErrors.join('\n')}`); | ||
| } | ||
| if (topLevelFatalIssues.length > 0) { | ||
| throw Object.defineProperty(new Error(`Turbopack build failed with ${topLevelFatalIssues.length} errors:\n${topLevelFatalIssues.join('\n')}`), "__NEXT_ERROR_CODE", { | ||
| value: "E425", | ||
| throw Object.defineProperty(new Error(`Turbopack build failed with ${topLevelFatalIssues.length} ${topLevelFatalIssues.length === 1 ? 'error' : 'errors'}:\n${topLevelFatalIssues.join('\n')}`), "__NEXT_ERROR_CODE", { | ||
| value: "E1366", | ||
| enumerable: false, | ||
@@ -66,0 +66,0 @@ configurable: true |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/build/print-build-errors.ts"],"sourcesContent":["import { formatIssue, isRelevantWarning } from '../shared/lib/turbopack/utils'\nimport type { TurbopackResult } from './swc/types'\n\n/**\n * Processes and reports build issues from Turbopack entrypoints.\n *\n * @param entrypoints - The result object containing build issues to process.\n * @param isDev - A flag indicating if the build is running in development mode.\n * @return This function does not return a value but logs or throws errors based on the issues.\n * @throws {Error} If a fatal issue is encountered, this function throws an error. In development mode, we only throw on\n * 'fatal' and 'bug' issues. In production mode, we also throw on 'error' issues.\n */\nexport function printBuildErrors(\n entrypoints: TurbopackResult,\n isDev: boolean\n): void {\n // Issues that we want to stop the server from executing\n const topLevelFatalIssues = []\n // Issues that are true errors, but we believe we can keep running and allow the user to address the issue\n const topLevelErrors = []\n // Issues that are warnings but should not affect the running of the build\n const topLevelWarnings = []\n\n // Track seen formatted error messages to avoid duplicates\n const seenFatalIssues = new Set<string>()\n const seenErrors = new Set<string>()\n const seenWarnings = new Set<string>()\n\n for (const issue of entrypoints.issues) {\n // We only want to completely shut down the server\n if (issue.severity === 'fatal' || issue.severity === 'bug') {\n const formatted = formatIssue(issue)\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n } else if (isRelevantWarning(issue)) {\n const formatted = formatIssue(issue)\n if (!seenWarnings.has(formatted)) {\n seenWarnings.add(formatted)\n topLevelWarnings.push(formatted)\n }\n } else if (issue.severity === 'error') {\n const formatted = formatIssue(issue)\n if (isDev) {\n // We want to treat errors as recoverable in development\n // so that we can show the errors in the site and allow users\n // to respond to the errors when necessary. In production builds\n // though we want to error out and stop the build process.\n if (!seenErrors.has(formatted)) {\n seenErrors.add(formatted)\n topLevelErrors.push(formatted)\n }\n } else {\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n }\n }\n }\n // TODO: print in order by source location so issues from the same file are displayed together and then add a summary at the end about the number of warnings/errors\n if (topLevelWarnings.length > 0) {\n console.warn(\n `Turbopack build encountered ${\n topLevelWarnings.length\n } warnings:\\n${topLevelWarnings.join('\\n')}`\n )\n }\n\n if (topLevelErrors.length > 0) {\n console.error(\n `Turbopack build encountered ${\n topLevelErrors.length\n } errors:\\n${topLevelErrors.join('\\n')}`\n )\n }\n\n if (topLevelFatalIssues.length > 0) {\n throw new Error(\n `Turbopack build failed with ${\n topLevelFatalIssues.length\n } errors:\\n${topLevelFatalIssues.join('\\n')}`\n )\n }\n}\n"],"names":["formatIssue","isRelevantWarning","printBuildErrors","entrypoints","isDev","topLevelFatalIssues","topLevelErrors","topLevelWarnings","seenFatalIssues","Set","seenErrors","seenWarnings","issue","issues","severity","formatted","has","add","push","length","console","warn","join","error","Error"],"mappings":"AAAA,SAASA,WAAW,EAAEC,iBAAiB,QAAQ,gCAA+B;AAG9E;;;;;;;;CAQC,GACD,OAAO,SAASC,iBACdC,WAA4B,EAC5BC,KAAc;IAEd,wDAAwD;IACxD,MAAMC,sBAAsB,EAAE;IAC9B,0GAA0G;IAC1G,MAAMC,iBAAiB,EAAE;IACzB,0EAA0E;IAC1E,MAAMC,mBAAmB,EAAE;IAE3B,0DAA0D;IAC1D,MAAMC,kBAAkB,IAAIC;IAC5B,MAAMC,aAAa,IAAID;IACvB,MAAME,eAAe,IAAIF;IAEzB,KAAK,MAAMG,SAAST,YAAYU,MAAM,CAAE;QACtC,kDAAkD;QAClD,IAAID,MAAME,QAAQ,KAAK,WAAWF,MAAME,QAAQ,KAAK,OAAO;YAC1D,MAAMC,YAAYf,YAAYY;YAC9B,IAAI,CAACJ,gBAAgBQ,GAAG,CAACD,YAAY;gBACnCP,gBAAgBS,GAAG,CAACF;gBACpBV,oBAAoBa,IAAI,CAACH;YAC3B;QACF,OAAO,IAAId,kBAAkBW,QAAQ;YACnC,MAAMG,YAAYf,YAAYY;YAC9B,IAAI,CAACD,aAAaK,GAAG,CAACD,YAAY;gBAChCJ,aAAaM,GAAG,CAACF;gBACjBR,iBAAiBW,IAAI,CAACH;YACxB;QACF,OAAO,IAAIH,MAAME,QAAQ,KAAK,SAAS;YACrC,MAAMC,YAAYf,YAAYY;YAC9B,IAAIR,OAAO;gBACT,wDAAwD;gBACxD,6DAA6D;gBAC7D,gEAAgE;gBAChE,0DAA0D;gBAC1D,IAAI,CAACM,WAAWM,GAAG,CAACD,YAAY;oBAC9BL,WAAWO,GAAG,CAACF;oBACfT,eAAeY,IAAI,CAACH;gBACtB;YACF,OAAO;gBACL,IAAI,CAACP,gBAAgBQ,GAAG,CAACD,YAAY;oBACnCP,gBAAgBS,GAAG,CAACF;oBACpBV,oBAAoBa,IAAI,CAACH;gBAC3B;YACF;QACF;IACF;IACA,oKAAoK;IACpK,IAAIR,iBAAiBY,MAAM,GAAG,GAAG;QAC/BC,QAAQC,IAAI,CACV,CAAC,4BAA4B,EAC3Bd,iBAAiBY,MAAM,CACxB,YAAY,EAAEZ,iBAAiBe,IAAI,CAAC,OAAO;IAEhD;IAEA,IAAIhB,eAAea,MAAM,GAAG,GAAG;QAC7BC,QAAQG,KAAK,CACX,CAAC,4BAA4B,EAC3BjB,eAAea,MAAM,CACtB,UAAU,EAAEb,eAAegB,IAAI,CAAC,OAAO;IAE5C;IAEA,IAAIjB,oBAAoBc,MAAM,GAAG,GAAG;QAClC,MAAM,qBAIL,CAJK,IAAIK,MACR,CAAC,4BAA4B,EAC3BnB,oBAAoBc,MAAM,CAC3B,UAAU,EAAEd,oBAAoBiB,IAAI,CAAC,OAAO,GAHzC,qBAAA;mBAAA;wBAAA;0BAAA;QAIN;IACF;AACF","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/build/print-build-errors.ts"],"sourcesContent":["import { formatIssue, isRelevantWarning } from '../shared/lib/turbopack/utils'\nimport type { TurbopackResult } from './swc/types'\n\n/**\n * Processes and reports build issues from Turbopack entrypoints.\n *\n * @param entrypoints - The result object containing build issues to process.\n * @param isDev - A flag indicating if the build is running in development mode.\n * @return This function does not return a value but logs or throws errors based on the issues.\n * @throws {Error} If a fatal issue is encountered, this function throws an error. In development mode, we only throw on\n * 'fatal' and 'bug' issues. In production mode, we also throw on 'error' issues.\n */\nexport function printBuildErrors(\n entrypoints: TurbopackResult,\n isDev: boolean\n): void {\n // Issues that we want to stop the server from executing\n const topLevelFatalIssues = []\n // Issues that are true errors, but we believe we can keep running and allow the user to address the issue\n const topLevelErrors = []\n // Issues that are warnings but should not affect the running of the build\n const topLevelWarnings = []\n\n // Track seen formatted error messages to avoid duplicates\n const seenFatalIssues = new Set<string>()\n const seenErrors = new Set<string>()\n const seenWarnings = new Set<string>()\n\n for (const issue of entrypoints.issues) {\n // We only want to completely shut down the server\n if (issue.severity === 'fatal' || issue.severity === 'bug') {\n const formatted = formatIssue(issue)\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n } else if (isRelevantWarning(issue)) {\n const formatted = formatIssue(issue)\n if (!seenWarnings.has(formatted)) {\n seenWarnings.add(formatted)\n topLevelWarnings.push(formatted)\n }\n } else if (issue.severity === 'error') {\n const formatted = formatIssue(issue)\n if (isDev) {\n // We want to treat errors as recoverable in development\n // so that we can show the errors in the site and allow users\n // to respond to the errors when necessary. In production builds\n // though we want to error out and stop the build process.\n if (!seenErrors.has(formatted)) {\n seenErrors.add(formatted)\n topLevelErrors.push(formatted)\n }\n } else {\n if (!seenFatalIssues.has(formatted)) {\n seenFatalIssues.add(formatted)\n topLevelFatalIssues.push(formatted)\n }\n }\n }\n }\n // TODO: print in order by source location so issues from the same file are displayed together and then add a summary at the end about the number of warnings/errors\n if (topLevelWarnings.length > 0) {\n console.warn(\n `Turbopack build encountered ${\n topLevelWarnings.length\n } ${topLevelWarnings.length === 1 ? 'warning' : 'warnings'}:\\n${topLevelWarnings.join('\\n')}`\n )\n }\n\n if (topLevelErrors.length > 0) {\n console.error(\n `Turbopack build encountered ${\n topLevelErrors.length\n } ${topLevelErrors.length === 1 ? 'error' : 'errors'}:\\n${topLevelErrors.join('\\n')}`\n )\n }\n\n if (topLevelFatalIssues.length > 0) {\n throw new Error(\n `Turbopack build failed with ${\n topLevelFatalIssues.length\n } ${topLevelFatalIssues.length === 1 ? 'error' : 'errors'}:\\n${topLevelFatalIssues.join('\\n')}`\n )\n }\n}\n"],"names":["formatIssue","isRelevantWarning","printBuildErrors","entrypoints","isDev","topLevelFatalIssues","topLevelErrors","topLevelWarnings","seenFatalIssues","Set","seenErrors","seenWarnings","issue","issues","severity","formatted","has","add","push","length","console","warn","join","error","Error"],"mappings":"AAAA,SAASA,WAAW,EAAEC,iBAAiB,QAAQ,gCAA+B;AAG9E;;;;;;;;CAQC,GACD,OAAO,SAASC,iBACdC,WAA4B,EAC5BC,KAAc;IAEd,wDAAwD;IACxD,MAAMC,sBAAsB,EAAE;IAC9B,0GAA0G;IAC1G,MAAMC,iBAAiB,EAAE;IACzB,0EAA0E;IAC1E,MAAMC,mBAAmB,EAAE;IAE3B,0DAA0D;IAC1D,MAAMC,kBAAkB,IAAIC;IAC5B,MAAMC,aAAa,IAAID;IACvB,MAAME,eAAe,IAAIF;IAEzB,KAAK,MAAMG,SAAST,YAAYU,MAAM,CAAE;QACtC,kDAAkD;QAClD,IAAID,MAAME,QAAQ,KAAK,WAAWF,MAAME,QAAQ,KAAK,OAAO;YAC1D,MAAMC,YAAYf,YAAYY;YAC9B,IAAI,CAACJ,gBAAgBQ,GAAG,CAACD,YAAY;gBACnCP,gBAAgBS,GAAG,CAACF;gBACpBV,oBAAoBa,IAAI,CAACH;YAC3B;QACF,OAAO,IAAId,kBAAkBW,QAAQ;YACnC,MAAMG,YAAYf,YAAYY;YAC9B,IAAI,CAACD,aAAaK,GAAG,CAACD,YAAY;gBAChCJ,aAAaM,GAAG,CAACF;gBACjBR,iBAAiBW,IAAI,CAACH;YACxB;QACF,OAAO,IAAIH,MAAME,QAAQ,KAAK,SAAS;YACrC,MAAMC,YAAYf,YAAYY;YAC9B,IAAIR,OAAO;gBACT,wDAAwD;gBACxD,6DAA6D;gBAC7D,gEAAgE;gBAChE,0DAA0D;gBAC1D,IAAI,CAACM,WAAWM,GAAG,CAACD,YAAY;oBAC9BL,WAAWO,GAAG,CAACF;oBACfT,eAAeY,IAAI,CAACH;gBACtB;YACF,OAAO;gBACL,IAAI,CAACP,gBAAgBQ,GAAG,CAACD,YAAY;oBACnCP,gBAAgBS,GAAG,CAACF;oBACpBV,oBAAoBa,IAAI,CAACH;gBAC3B;YACF;QACF;IACF;IACA,oKAAoK;IACpK,IAAIR,iBAAiBY,MAAM,GAAG,GAAG;QAC/BC,QAAQC,IAAI,CACV,CAAC,4BAA4B,EAC3Bd,iBAAiBY,MAAM,CACxB,CAAC,EAAEZ,iBAAiBY,MAAM,KAAK,IAAI,YAAY,WAAW,GAAG,EAAEZ,iBAAiBe,IAAI,CAAC,OAAO;IAEjG;IAEA,IAAIhB,eAAea,MAAM,GAAG,GAAG;QAC7BC,QAAQG,KAAK,CACX,CAAC,4BAA4B,EAC3BjB,eAAea,MAAM,CACtB,CAAC,EAAEb,eAAea,MAAM,KAAK,IAAI,UAAU,SAAS,GAAG,EAAEb,eAAegB,IAAI,CAAC,OAAO;IAEzF;IAEA,IAAIjB,oBAAoBc,MAAM,GAAG,GAAG;QAClC,MAAM,qBAIL,CAJK,IAAIK,MACR,CAAC,4BAA4B,EAC3BnB,oBAAoBc,MAAM,CAC3B,CAAC,EAAEd,oBAAoBc,MAAM,KAAK,IAAI,UAAU,SAAS,GAAG,EAAEd,oBAAoBiB,IAAI,CAAC,OAAO,GAH3F,qBAAA;mBAAA;wBAAA;0BAAA;QAIN;IACF;AACF","ignoreList":[0]} |
@@ -70,2 +70,7 @@ // Manual additions to make the generated types below work. | ||
| } | ||
| export const enum NapiCodeFrameColorMode { | ||
| Error = 0, | ||
| Warning = 1, | ||
| Info = 2, | ||
| } | ||
| export interface NapiCodeFrameOptions { | ||
@@ -79,3 +84,3 @@ /** Number of lines to show above the error (default: 2) */ | ||
| /** Whether to use ANSI colors (default: false) */ | ||
| color?: boolean | ||
| color?: NapiCodeFrameColorMode | boolean | ||
| /** | ||
@@ -82,0 +87,0 @@ * Whether to highlight code syntax (default: follows color) |
@@ -14,3 +14,3 @@ import path from 'path'; | ||
| }({}); | ||
| const nextVersion = "16.3.0-canary.52"; | ||
| const nextVersion = "16.3.0-canary.53"; | ||
| const ArchName = arch(); | ||
@@ -17,0 +17,0 @@ const PlatformName = platform(); |
@@ -5,3 +5,3 @@ import { AppRouteRouteModule } from '../../server/route-modules/app-route/module.compiled'; | ||
| import { addRequestMeta, getRequestMeta, setRequestMeta } from '../../server/request-meta'; | ||
| import { getTracer, SpanKind } from '../../server/lib/trace/tracer'; | ||
| import { getTracer, SpanKind, SpanStatusCode } from '../../server/lib/trace/tracer'; | ||
| import { setManifestsSingleton } from '../../server/app-render/manifests-singleton'; | ||
@@ -179,34 +179,2 @@ import { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'; | ||
| let parentSpan; | ||
| const invokeRouteModule = async (span)=>{ | ||
| return routeModule.handle(nextReq, context).finally(()=>{ | ||
| if (!span) return; | ||
| span.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || normalizedSrcPage; | ||
| const name = `${method} ${route}`; | ||
| span.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| span.updateName(name); | ||
| // Propagate http.route to the parent span if one exists (e.g. | ||
| // a platform-created HTTP span in adapter deployments). | ||
| if (parentSpan && parentSpan !== span) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| }); | ||
| }; | ||
| const handleResponse = async (currentSpan)=>{ | ||
@@ -223,3 +191,3 @@ var _cacheEntry_value; | ||
| } | ||
| const response = await invokeRouteModule(currentSpan); | ||
| const response = await routeModule.handle(nextReq, context); | ||
| req.fetchMetrics = context.renderOpts.fetchMetrics; | ||
@@ -292,2 +260,46 @@ let pendingWaitUntil = context.renderOpts.pendingWaitUntil; | ||
| throw err; | ||
| } finally{ | ||
| // An IIFE to make early returns easier. | ||
| ; | ||
| (()=>{ | ||
| if (!currentSpan) { | ||
| return; | ||
| } | ||
| currentSpan.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| if (res.statusCode && res.statusCode >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| currentSpan.setStatus({ | ||
| code: SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| currentSpan.setAttribute('error.type', res.statusCode.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || normalizedSrcPage; | ||
| const name = `${method} ${route}`; | ||
| currentSpan.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| currentSpan.updateName(name); | ||
| // Propagate http.route to the parent span if one exists (e.g. | ||
| // a platform-created HTTP span in adapter deployments). | ||
| if (parentSpan && parentSpan !== currentSpan) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| })(); | ||
| } | ||
@@ -294,0 +306,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/build/templates/app-route.ts"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport { getTracer, type Span, SpanKind } from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // Always use a lazy require factory so that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled. Eagerly\n // calling require() would pass that Promise directly to the constructor\n // and break _initFromUserland().\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) => {\n return routeModule.handle(nextReq, context).finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n }\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await invokeRouteModule(currentSpan)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","invokeRouteModule","span","handle","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","setAttribute","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","delete","getHeader","set","Response","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/build/templates/app-route.ts"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // Always use a lazy require factory so that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled. Eagerly\n // calling require() would pass that Promise directly to the constructor\n // and break _initFromUserland().\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n try {\n let parentSpan: Span | undefined\n\n const handleResponse = async (currentSpan?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await routeModule.handle(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n response,\n pendingWaitUntil\n )\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n } finally {\n // An IIFE to make early returns easier.\n ;(() => {\n if (!currentSpan) {\n return\n }\n currentSpan.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n if (res.statusCode && res.statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', res.statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route =\n rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return null\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return null\n }\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","parentSpan","handleResponse","currentSpan","cacheEntry","responseGenerator","previousCacheEntry","setHeader","response","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","routeKind","isFallback","isRoutePPREnabled","Error","isMiss","delete","getHeader","set","Response","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"AAAA,SACEA,mBAAmB,QAGd,uDAAsD;AAC7D,SAASC,SAAS,QAAQ,0BAAyB;AACnD,SAASC,cAAcC,WAAW,QAAQ,+BAA8B;AAExE,SACEC,cAAc,EACdC,cAAc,EACdC,cAAc,QAET,4BAA2B;AAClC,SACEC,SAAS,EAETC,QAAQ,EACRC,cAAc,QACT,gCAA+B;AACtC,SAASC,qBAAqB,QAAQ,8CAA6C;AACnF,SAASC,gBAAgB,QAAQ,0CAAyC;AAC1E,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,8BAA6B;AAC/E,SACEC,kBAAkB,EAClBC,sBAAsB,QACjB,wDAAuD;AAC9D,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,mBAAmB,QAAQ,qCAAoC;AACxE,SAASC,YAAY,QAAQ,6BAA4B;AACzD,SACEC,2BAA2B,EAC3BC,yBAAyB,QACpB,yBAAwB;AAC/B,SAASC,qBAAqB,QAAQ,iCAAgC;AACtE,SAASC,cAAc,EAAEC,sBAAsB,QAAQ,sBAAqB;AAC5E,SAASC,eAAe,QAAQ,8CAA6C;AAC7E,SACEC,eAAe,QAGV,8BAA6B;AAOpC,2EAA2E;AAC3E,UAAU;AACV,0BAA0B;AAE1B,MAAMC,cAAc,IAAI1B,oBAAoB;IAC1C2B,YAAY;QACVC,MAAM3B,UAAU4B,SAAS;QACzBC,MAAM;QACNC,UAAU;QACVC,UAAU;QACVC,YAAY;IACd;IACAC,SAASC,QAAQC,GAAG,CAACC,wBAAwB,IAAI;IACjDC,oBAAoBH,QAAQC,GAAG,CAACG,2BAA2B,IAAI;IAC/DC,kBAAkB;IAClBC;IACA,6CAA6C;IAC7C,0EAA0E;IAC1E,2EAA2E;IAC3E,yBAAyB;IACzB,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,mCAAmC;IACnCC,UAAU,IAAMC,QAAQ;IACxB,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,uEAAuE;IACvE,GAAIR,QAAQC,GAAG,CAACQ,SAAS,IAAIT,QAAQC,GAAG,CAACS,iBAAiB,GACtD;QACEC,aAAa,IACXH,QAAQ;IACZ,IACA,CAAC,CAAC;AACR;AAEA,2EAA2E;AAC3E,2EAA2E;AAC3E,mCAAmC;AACnC,MAAM,EAAEI,gBAAgB,EAAEC,oBAAoB,EAAEC,WAAW,EAAE,GAAGvB;AAEhE,SAASxB;IACP,OAAOC,YAAY;QACjB4C;QACAC;IACF;AACF;AAEA,SACEtB,WAAW,EACXqB,gBAAgB,EAChBC,oBAAoB,EACpBC,WAAW,EACX/C,UAAU,KACX;AAED,OAAO,eAAegD,QACpBC,GAAoB,EACpBC,GAAmB,EACnBC,GAGC;IAED,IAAIA,IAAIC,WAAW,EAAE;QACnBhD,eAAe6C,KAAKE,IAAIC,WAAW;IACrC;IACA,IAAI5B,YAAY6B,KAAK,EAAE;QACrBnD,eAAe+C,KAAK,gCAAgChB,QAAQqB,MAAM,CAACC,MAAM;IAC3E;IACA,IAAIC,UAAU;IAEd,wDAAwD;IACxD,mDAAmD;IACnD,6DAA6D;IAC7D,IAAIvB,QAAQC,GAAG,CAACQ,SAAS,EAAE;QACzBc,UAAUA,QAAQC,OAAO,CAAC,YAAY,OAAO;IAC/C,OAAO,IAAID,YAAY,UAAU;QAC/B,0CAA0C;QAC1CA,UAAU;IACZ;IACA,MAAME,qBAAqBzB,QAAQC,GAAG,CACnCyB,4BAA4B;IAE/B,MAAMC,gBAAgB,MAAMpC,YAAYqC,OAAO,CAACZ,KAAKC,KAAK;QACxDM;QACAE;IACF;IAEA,IAAI,CAACE,eAAe;QAClBV,IAAIY,UAAU,GAAG;QACjBZ,IAAIa,GAAG,CAAC;QACRZ,IAAIa,SAAS,oBAAbb,IAAIa,SAAS,MAAbb,KAAgBc,QAAQC,OAAO;QAC/B,OAAO;IACT;IAEA,MAAM,EACJC,OAAO,EACPC,YAAY,EACZC,MAAM,EACNC,UAAU,EACVC,SAAS,EACTC,WAAW,EACXC,iBAAiB,EACjBC,mBAAmB,EACnBC,oBAAoB,EACpBC,uBAAuB,EACvBC,gBAAgB,EAChBC,uBAAuB,EACvBC,qBAAqB,EACtB,GAAGnB;IAEJ,MAAMoB,oBAAoBvE,iBAAiB+C;IAE3C,IAAIyB,QAAQC,QACVT,kBAAkBU,aAAa,CAACH,kBAAkB,IAChDP,kBAAkBW,MAAM,CAACP,iBAAiB;IAG9C,MAAMQ,YAAY;QAChB,4DAA4D;QAC5D,IAAIX,uCAAAA,oBAAqBW,SAAS,EAAE;YAClC,MAAMX,oBAAoBW,SAAS,CAACpC,KAAKC,KAAKqB,WAAW;QAC3D,OAAO;YACLrB,IAAIa,GAAG,CAAC;QACV;QACA,OAAO;IACT;IAEA,IAAIkB,SAAS,CAACT,aAAa;QACzB,MAAMc,gBAAgBJ,QAAQT,kBAAkBW,MAAM,CAACP,iBAAiB;QACxE,MAAMU,gBAAgBd,kBAAkBU,aAAa,CAACH,kBAAkB;QAExE,IAAIO,eAAe;YACjB,IAAIA,cAAcC,QAAQ,KAAK,SAAS,CAACF,eAAe;gBACtD,IAAIhB,WAAWmB,WAAW,EAAE;oBAC1B,OAAO,MAAMJ;gBACf;gBACA,MAAM,IAAI/D;YACZ;QACF;IACF;IAEA,IAAIoE,WAA0B;IAE9B,IAAIT,SAAS,CAACzD,YAAY6B,KAAK,IAAI,CAACmB,aAAa;QAC/CkB,WAAWb;QACX,+CAA+C;QAC/Ca,WAAWA,aAAa,WAAW,MAAMA;IAC3C;IAEA,MAAMC,0BACJ,0DAA0D;IAC1DnE,YAAY6B,KAAK,KAAK,QACtB,qEAAqE;IACrE,gBAAgB;IAChB,CAAC4B;IAEH,gEAAgE;IAChE,+DAA+D;IAC/D,4DAA4D;IAC5D,WAAW;IACX,MAAMW,qBAAqBX,SAAS,CAACU;IAErC,0EAA0E;IAC1E,qEAAqE;IACrE,0EAA0E;IAC1E,IAAIZ,yBAAyBD,yBAAyB;QACpDtE,sBAAsB;YACpBoB,MAAM4B;YACNsB;YACAC;QACF;IACF;IAEA,MAAMc,SAAS5C,IAAI4C,MAAM,IAAI;IAC7B,MAAMC,SAASzF;IACf,MAAM0F,aAAaD,OAAOE,kBAAkB;IAC5C,MAAMC,wBAAwBf,QAC5BR,uCAAAA,oBAAqBuB,qBAAqB;IAE5C,MAAMC,gBAAgBhB,QAAQ/E,eAAe8C,KAAK;IAElD,MAAMkD,mBACJhG,eAAe8C,KAAK,uBACnB,MAAMzB,YAAY4E,mBAAmB,CACpCnD,KACAqB,YACAG,mBACAyB;IAGJC,oCAAAA,iBAAkBE,iBAAiB;IACjCC,WAAmBC,kBAAkB,GAAGJ;IAE1C,MAAMK,UAAuC;QAC3CnC;QACAoC,cAAchC,kBAAkBiC,OAAO;QACvCC,YAAY;YACVC,cAAc;gBACZC,gBAAgB3B,QAAQZ,WAAWsC,YAAY,CAACC,cAAc;gBAC9DC,iBAAiBxC,WAAWsC,YAAY,CAACE,eAAe;YAC1D;YACAC,iBAAiB7B,QAAQZ,WAAWyC,eAAe;YACnDC,iBAAiB1C,WAAWsC,YAAY,CAACK,eAAe,CAACD,eAAe;YACxErB;YACAQ;YACAe,mBAAmB5C,WAAW6C,SAAS;YACvCC,6BAA6B9C,WAAW8C,2BAA2B;YACnEpD,WAAWb,IAAIa,SAAS;YACxBqD,SAAS,CAACC;gBACRpE,IAAIqE,EAAE,CAAC,SAASD;YAClB;YACAE,kBAAkBC;YAClBC,+BAA+B,CAC7BC,OACAC,UACAC,cACAC,aAEAtG,YAAYuG,cAAc,CACxB9E,KACA0E,OACAE,cACAC,YACApD;QAEN;QACAsD,eAAe;YACb7D;YACAC;QACF;IACF;IACA,MAAM6D,cAAc,IAAIvH,gBAAgBuC;IACxC,MAAMiF,cAAc,IAAIvH,iBAAiBuC;IAEzC,MAAMiF,UAAUvH,mBAAmBwH,mBAAmB,CACpDH,aACApH,uBAAuBqC;IAGzB,IAAI;QACF,IAAImF;QAEJ,MAAMC,iBAAiB,OAAOC;gBAmMxBC;YAlMJ,MAAMC,oBAAuC,OAAO,EAClDC,kBAAkB,EACnB;gBACC,IAAI;oBACF,IACE,CAACxC,iBACDvB,wBACAC,2BACA,CAAC8D,oBACD;wBACAxF,IAAIY,UAAU,GAAG;wBACjB,+CAA+C;wBAC/CZ,IAAIyF,SAAS,CAAC,kBAAkB;wBAChCzF,IAAIa,GAAG,CAAC;wBACR,OAAO;oBACT;oBAEA,MAAM6E,WAAW,MAAMpH,YAAYqH,MAAM,CAACV,SAAS3B;oBAEjDvD,IAAY6F,YAAY,GAAG,AAACtC,QAAQG,UAAU,CAASmC,YAAY;oBACrE,IAAIC,mBAAmBvC,QAAQG,UAAU,CAACoC,gBAAgB;oBAE1D,gDAAgD;oBAChD,qDAAqD;oBACrD,IAAIA,kBAAkB;wBACpB,IAAI5F,IAAIa,SAAS,EAAE;4BACjBb,IAAIa,SAAS,CAAC+E;4BACdA,mBAAmBtB;wBACrB;oBACF;oBACA,MAAMuB,YAAYxC,QAAQG,UAAU,CAACsC,aAAa;oBAElD,mEAAmE;oBACnE,oBAAoB;oBACpB,IAAIhE,OAAO;wBACT,MAAMiE,OAAO,MAAMN,SAASM,IAAI;wBAEhC,sCAAsC;wBACtC,MAAMC,UAAUjI,0BAA0B0H,SAASO,OAAO;wBAE1D,IAAIH,WAAW;4BACbG,OAAO,CAAC9H,uBAAuB,GAAG2H;wBACpC;wBAEA,IAAI,CAACG,OAAO,CAAC,eAAe,IAAID,KAAKE,IAAI,EAAE;4BACzCD,OAAO,CAAC,eAAe,GAAGD,KAAKE,IAAI;wBACrC;wBAEA,MAAMC,aACJ,OAAO7C,QAAQG,UAAU,CAAC2C,mBAAmB,KAAK,eAClD9C,QAAQG,UAAU,CAAC2C,mBAAmB,IAAIlI,iBACtC,QACAoF,QAAQG,UAAU,CAAC2C,mBAAmB;wBAE5C,MAAMC,SACJ,OAAO/C,QAAQG,UAAU,CAAC6C,eAAe,KAAK,eAC9ChD,QAAQG,UAAU,CAAC6C,eAAe,IAAIpI,iBAElC,yDAAyD;wBACzD,6DAA6D;wBAC7D,2DAA2D;wBAC3D,6DAA6D;wBAC7D,wDAAwD;wBACxD,8DAA8D;wBAC9D,4BAA4B;wBAC5BiI,eAAe,SAASA,aAAa,IACnC/E,WAAWmF,UAAU,GACrBhC,YACFjB,QAAQG,UAAU,CAAC6C,eAAe;wBAExC,2CAA2C;wBAC3C,MAAMhB,aAAiC;4BACrCkB,OAAO;gCACLhI,MAAMH,gBAAgBI,SAAS;gCAC/BgI,QAAQf,SAASe,MAAM;gCACvBC,MAAMC,OAAOC,IAAI,CAAC,MAAMZ,KAAKa,WAAW;gCACxCZ;4BACF;4BACAa,cAAc;gCAAEX;gCAAYE;4BAAO;wBACrC;wBAEA,OAAOf;oBACT,OAAO;wBACL,2CAA2C;wBAC3C,MAAMxH,aACJiH,aACAC,aACAU,UACAG;wBAEF,OAAO;oBACT;gBACF,EAAE,OAAOkB,KAAK;oBACZ,uDAAuD;oBACvD,gDAAgD;oBAChD,IAAIvB,sCAAAA,mBAAoBwB,OAAO,EAAE;wBAC/B,MAAMpC,aAAa;wBACnB,MAAMtG,YAAYuG,cAAc,CAC9B9E,KACAgH,KACA;4BACEE,YAAY;4BACZC,WAAW5G;4BACX6G,WAAW;4BACXC,kBAAkBvJ,oBAAoB;gCACpC6E;gCACAjB;4BACF;wBACF,GACAmD,YACApD;oBAEJ;oBACA,MAAMuF;gBACR,SAAU;oBACR,wCAAwC;;oBACtC,CAAA;wBACA,IAAI,CAAC1B,aAAa;4BAChB;wBACF;wBACAA,YAAYgC,aAAa,CAAC;4BACxB,oBAAoBrH,IAAIY,UAAU;4BAClC,YAAY;wBACd;wBAEA,IAAIZ,IAAIY,UAAU,IAAIZ,IAAIY,UAAU,IAAI,KAAK;4BAC3C,8DAA8D;4BAC9D,6EAA6E;4BAC7EyE,YAAYiC,SAAS,CAAC;gCACpBC,MAAMlK,eAAemK,KAAK;4BAC5B;4BACA,8DAA8D;4BAC9DnC,YAAYoC,YAAY,CAAC,cAAczH,IAAIY,UAAU,CAAC8G,QAAQ;wBAChE;wBAEA,MAAMC,qBAAqB/E,OAAOgF,qBAAqB;wBACvD,iEAAiE;wBACjE,IAAI,CAACD,oBAAoB;4BACvB;wBACF;wBAEA,IACEA,mBAAmBE,GAAG,CAAC,sBACvBjK,eAAekK,aAAa,EAC5B;4BACAC,QAAQC,IAAI,CACV,CAAC,2BAA2B,EAAEL,mBAAmBE,GAAG,CAClD,kBACA,qEAAqE,CAAC;4BAE1E;wBACF;wBAEA,MAAMI,QACJN,mBAAmBE,GAAG,CAAC,iBAAiB/F;wBAC1C,MAAMoG,OAAO,GAAGvF,OAAO,CAAC,EAAEsF,OAAO;wBAEjC5C,YAAYgC,aAAa,CAAC;4BACxB,cAAcY;4BACd,cAAcA;4BACd,kBAAkBC;wBACpB;wBACA7C,YAAY8C,UAAU,CAACD;wBAEvB,8DAA8D;wBAC9D,wDAAwD;wBACxD,IAAI/C,cAAcA,eAAeE,aAAa;4BAC5CF,WAAWsC,YAAY,CAAC,cAAcQ;4BACtC9C,WAAWgD,UAAU,CAACD;wBACxB;oBACF,CAAA;gBACF;YACF;YAEA,MAAM5C,aAAa,MAAMhH,YAAY8G,cAAc,CAAC;gBAClDrF;gBACAqB;gBACAoB;gBACA4F,WAAWvL,UAAU4B,SAAS;gBAC9B4J,YAAY;gBACZ9G;gBACA+G,mBAAmB;gBACnB7G;gBACAC;gBACA6D;gBACAzE,WAAWb,IAAIa,SAAS;gBACxBkC;YACF;YAEA,uCAAuC;YACvC,IAAI,CAACjB,OAAO;gBACV,OAAO;YACT;YAEA,IAAIuD,CAAAA,+BAAAA,oBAAAA,WAAYkB,KAAK,qBAAjBlB,kBAAmB9G,IAAI,MAAKH,gBAAgBI,SAAS,EAAE;oBAEF6G;gBADvD,MAAM,qBAEL,CAFK,IAAIiD,MACR,CAAC,kDAAkD,EAAEjD,+BAAAA,qBAAAA,WAAYkB,KAAK,qBAAjBlB,mBAAmB9G,IAAI,EAAE,GAD1E,qBAAA;2BAAA;gCAAA;kCAAA;gBAEN;YACF;YAEA,IAAI,CAACwE,eAAe;gBAClBhD,IAAIyF,SAAS,CACX,kBACAhE,uBACI,gBACA6D,WAAWkD,MAAM,GACf,SACAlD,WAAW0B,OAAO,GAChB,UACA;YAEZ;YAEA,oCAAoC;YACpC,IAAI1F,aAAa;gBACftB,IAAIyF,SAAS,CACX,iBACA;YAEJ;YAEA,MAAMQ,UAAUlI,4BAA4BuH,WAAWkB,KAAK,CAACP,OAAO;YAEpE,IAAI,CAAEjD,CAAAA,iBAAiBjB,KAAI,GAAI;gBAC7BkE,QAAQwC,MAAM,CAACtK;YACjB;YAEA,2DAA2D;YAC3D,6DAA6D;YAC7D,IACEmH,WAAWwB,YAAY,IACvB,CAAC9G,IAAI0I,SAAS,CAAC,oBACf,CAACzC,QAAQ4B,GAAG,CAAC,kBACb;gBACA5B,QAAQ0C,GAAG,CACT,iBACA1K,sBAAsBqH,WAAWwB,YAAY;YAEjD;YAEA,MAAMhJ,aACJiH,aACAC,aACA,sIAAsI;YACtI,IAAI4D,SAAStD,WAAWkB,KAAK,CAACE,IAAI,EAAE;gBAClCT;gBACAQ,QAAQnB,WAAWkB,KAAK,CAACC,MAAM,IAAI;YACrC;YAEF,OAAO;QACT;QAEA,oDAAoD;QACpD,yDAAyD;QACzD,IAAI1D,yBAAyBF,YAAY;YACvC,MAAMuC,eAAevC;QACvB,OAAO;YACLsC,aAAavC,OAAOE,kBAAkB;YACtC,MAAMF,OAAOiG,qBAAqB,CAChC9I,IAAIkG,OAAO,EACX,IACErD,OAAOkG,KAAK,CACVlL,eAAekK,aAAa,EAC5B;oBACEiB,UAAU,GAAGpG,OAAO,CAAC,EAAErC,SAAS;oBAChC9B,MAAMpB,SAAS4L,MAAM;oBACrBC,YAAY;wBACV,eAAetG;wBACf,eAAe5C,IAAImJ,GAAG;oBACxB;gBACF,GACA9D,iBAEJb,WACA,CAACxB;QAEL;IACF,EAAE,OAAOgE,KAAK;QACZ,IAAI,CAAEA,CAAAA,eAAe3I,eAAc,GAAI;YACrC,MAAMwG,aAAa;YACnB,MAAMtG,YAAYuG,cAAc,CAC9B9E,KACAgH,KACA;gBACEE,YAAY;gBACZC,WAAWpF;gBACXqF,WAAW;gBACXC,kBAAkBvJ,oBAAoB;oBACpC6E;oBACAjB;gBACF;YACF,GACAmD,YACApD;QAEJ;QAEA,mDAAmD;QAEnD,8DAA8D;QAC9D,IAAIO,OAAO,MAAMgF;QAEjB,kCAAkC;QAClC,MAAMjJ,aACJiH,aACAC,aACA,IAAI4D,SAAS,MAAM;YAAEnC,QAAQ;QAAI;QAEnC,OAAO;IACT;AACF","ignoreList":[0]} |
@@ -9,3 +9,3 @@ var _self___RSC_MANIFEST; | ||
| import { BaseServerSpan } from '../../server/lib/trace/constants'; | ||
| import { getTracer, SpanKind } from '../../server/lib/trace/tracer'; | ||
| import { getTracer, SpanKind, SpanStatusCode } from '../../server/lib/trace/tracer'; | ||
| import { WebNextRequest, WebNextResponse } from '../../server/base-http/web'; | ||
@@ -203,2 +203,11 @@ import { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta'; | ||
| }); | ||
| if (finalStatus && finalStatus >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| span.setStatus({ | ||
| code: SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| span.setAttribute('error.type', finalStatus.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
@@ -205,0 +214,0 @@ // We were unable to get attributes, probably OTEL is not enabled |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/build/templates/edge-ssr-app.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\n\nimport * as pageMod from 'VAR_USERLAND'\n\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../server/lib/trace/tracer'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type {\n AppPageRouteHandlerContext,\n AppPageRouteModule,\n} from '../../server/route-modules/app-page/module.compiled'\nimport type { AppPageRenderResultMetadata } from '../../server/render-result'\nimport type RenderResult from '../../server/render-result'\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta'\nimport { getBotType } from '../../shared/lib/router/utils/is-bot'\nimport { interopDefault } from '../../lib/interop-default'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { checkIsOnDemandRevalidate } from '../../server/api-utils'\nimport { CloseController } from '../../server/web/web-on-close'\nimport { parseMaxPostponedStateSize } from '../../shared/lib/size-limit'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\nimport type { RequestMeta } from '../../server/request-meta'\n\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:incrementalCacheHandler\n// INJECT_RAW:cacheHandlerImports\n\nconst maybeJSONParse = (str?: string) => (str ? JSON.parse(str) : undefined)\n\nconst rscManifest = self.__RSC_MANIFEST?.['VAR_PAGE']\nconst rscServerManifest = maybeJSONParse(self.__RSC_SERVER_MANIFEST)\n\nif (rscManifest && rscServerManifest) {\n setManifestsSingleton({\n page: 'VAR_PAGE',\n clientReferenceManifest: rscManifest,\n serverActionsManifest: rscServerManifest,\n })\n}\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_PAGE'\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const baseRes = new WebNextResponse(undefined)\n\n const pageRouteModule = pageMod.routeModule as AppPageRouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n nextFontManifest,\n resolvedPathname,\n interceptionRoutePatterns,\n routerServerContext,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n // Initialize the cache handlers interface.\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const isPossibleServerAction = getIsPossibleServerAction(req)\n const botType = getBotType(req.headers.get('User-Agent') || '')\n const { isOnDemandRevalidate } = checkIsOnDemandRevalidate(\n req.headers,\n prerenderManifest.preview\n )\n\n const closeController = new CloseController()\n\n const renderContext: AppPageRouteHandlerContext = {\n page: normalizedSrcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n },\n fallbackRouteParams: null,\n\n renderOpts: {\n App: () => null,\n Document: () => null,\n pageConfig: {},\n ComponentMod,\n Component: interopDefault(ComponentMod),\n routeModule: pageRouteModule,\n\n params,\n page: srcPage,\n postponed: undefined,\n shouldWaitOnAllReady: false,\n serveStreamingMetadata: true,\n supportsDynamicResponse: true,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n dir: pageRouteModule.relativeProjectDir,\n botType,\n isDraftMode: false,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n images: nextConfig.images,\n previewProps: prerenderManifest.preview,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n multiZoneDraftMode: false,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n logServerFunctions:\n typeof nextConfig.logging === 'object' &&\n Boolean(nextConfig.logging.serverFunctions),\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n experimental: {\n isRoutePPREnabled: false,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n optimisticRouting: Boolean(nextConfig.experimental.optimisticRouting),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n cachedNavigations: Boolean(nextConfig.experimental.cachedNavigations),\n appShells: nextConfig.experimental.appShells,\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata || ([] as any),\n clientParamParsingOrigins:\n nextConfig.experimental.clientParamParsingOrigins,\n maxPostponedStateSizeBytes: parseMaxPostponedStateSize(\n nextConfig.experimental.maxPostponedStateSize\n ),\n },\n\n incrementalCache: await pageRouteModule.getIncrementalCache(\n baseReq,\n nextConfig,\n prerenderManifest,\n true\n ),\n\n waitUntil: event.waitUntil.bind(event),\n onClose: (cb) => {\n closeController.onClose(cb)\n },\n onAfterTaskError: () => {},\n\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n pageRouteModule.onRequestError(\n baseReq,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<AppPageRenderResultMetadata>\n ): Response => {\n const varyHeader = pageRouteModule.getVaryHeader(\n resolvedPathname,\n interceptionRoutePatterns\n )\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n closeController.dispatchClose()\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n const headers = new Headers()\n finalStatus = metadata.statusCode || baseRes.statusCode || 200\n // Pull any fetch metrics from the render onto the request.\n ;(req as any).fetchMetrics = metadata.fetchMetrics\n\n // Set content type\n const contentType = result.contentType || 'text/html; charset=utf-8'\n headers.set('Content-Type', contentType)\n headers.set('x-edge-runtime', '1')\n\n if (varyHeader) {\n headers.set('Vary', varyHeader)\n }\n\n // Add existing headers\n for (const [key, value] of Object.entries({\n ...baseRes.getHeaders(),\n ...metadata.headers,\n })) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n closeController.dispatchClose()\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result\n .pipeTo(writable)\n .catch((err: unknown) => {\n console.error('Error piping RenderResult to response:', err)\n })\n .finally(() => closeController.dispatchClose())\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(baseReq, baseRes, renderContext)\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = normalizedSrcPage\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const silenceLog = false\n await pageRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': normalizedSrcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n page: 'VAR_PAGE',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_PAGE',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["self","adapter","IncrementalCache","pageMod","setManifestsSingleton","cacheHandlers","BaseServerSpan","getTracer","SpanKind","WebNextRequest","WebNextResponse","getIsPossibleServerAction","getBotType","interopDefault","normalizeAppPath","checkIsOnDemandRevalidate","CloseController","parseMaxPostponedStateSize","toNodeOutgoingHttpHeaders","maybeJSONParse","str","JSON","parse","undefined","rscManifest","__RSC_MANIFEST","rscServerManifest","__RSC_SERVER_MANIFEST","page","clientReferenceManifest","serverActionsManifest","ComponentMod","requestHandler","req","event","srcPage","normalizedSrcPage","relativeUrl","nextUrl","pathname","search","baseReq","baseRes","pageRouteModule","routeModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","nextConfig","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","nextFontManifest","resolvedPathname","interceptionRoutePatterns","routerServerContext","deploymentId","clientAssetToken","initializeCacheHandlers","cacheMaxMemorySize","isPossibleServerAction","botType","headers","get","isOnDemandRevalidate","preview","closeController","renderContext","sharedContext","fallbackRouteParams","renderOpts","App","Document","pageConfig","Component","postponed","shouldWaitOnAllReady","serveStreamingMetadata","supportsDynamicResponse","setIsrStatus","dir","relativeProjectDir","isDraftMode","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","images","previewProps","enableTainting","experimental","taint","htmlLimitedBots","reactMaxHeadersLength","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","basePath","serverActions","logServerFunctions","logging","Boolean","serverFunctions","cacheComponents","validationLevel","instantInsights","isRoutePPREnabled","expireTime","staleTimes","dynamicOnHover","optimisticRouting","inlineCss","prefetchInlining","authInterrupts","useCacheTimeout","cachedNavigations","appShells","clientTraceMetadata","clientParamParsingOrigins","maxPostponedStateSizeBytes","maxPostponedStateSize","incrementalCache","getIncrementalCache","waitUntil","bind","onClose","cb","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","finalStatus","renderResultToResponse","result","varyHeader","getVaryHeader","isNull","dispatchClose","metadata","Headers","statusCode","fetchMetrics","contentType","set","key","value","Object","entries","getHeaders","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","finally","invokeRender","span","render","setAttributes","rootSpanAttributes","tracer","getRootSpanAttributes","handleRequest","warn","route","name","method","updateName","routerKind","routePath","routeType","revalidateReason","withPropagatedContext","trace","spanName","kind","SERVER","attributes","internalHandler","opts","handler","incrementalCacheHandler","request","ctx","url","process","env","__NEXT_BASE_PATH","i18n","__NEXT_I18N_CONFIG","__NEXT_TRAILING_SLASH","__NEXT_CACHE_LIFE","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/build/templates/edge-ssr-app.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\n\nimport * as pageMod from 'VAR_USERLAND'\n\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n type Span,\n} from '../../server/lib/trace/tracer'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type {\n AppPageRouteHandlerContext,\n AppPageRouteModule,\n} from '../../server/route-modules/app-page/module.compiled'\nimport type { AppPageRenderResultMetadata } from '../../server/render-result'\nimport type RenderResult from '../../server/render-result'\nimport { getIsPossibleServerAction } from '../../server/lib/server-action-request-meta'\nimport { getBotType } from '../../shared/lib/router/utils/is-bot'\nimport { interopDefault } from '../../lib/interop-default'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { checkIsOnDemandRevalidate } from '../../server/api-utils'\nimport { CloseController } from '../../server/web/web-on-close'\nimport { parseMaxPostponedStateSize } from '../../shared/lib/size-limit'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\nimport type { RequestMeta } from '../../server/request-meta'\n\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:incrementalCacheHandler\n// INJECT_RAW:cacheHandlerImports\n\nconst maybeJSONParse = (str?: string) => (str ? JSON.parse(str) : undefined)\n\nconst rscManifest = self.__RSC_MANIFEST?.['VAR_PAGE']\nconst rscServerManifest = maybeJSONParse(self.__RSC_SERVER_MANIFEST)\n\nif (rscManifest && rscServerManifest) {\n setManifestsSingleton({\n page: 'VAR_PAGE',\n clientReferenceManifest: rscManifest,\n serverActionsManifest: rscServerManifest,\n })\n}\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_PAGE'\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const baseRes = new WebNextResponse(undefined)\n\n const pageRouteModule = pageMod.routeModule as AppPageRouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n nextFontManifest,\n resolvedPathname,\n interceptionRoutePatterns,\n routerServerContext,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n // Initialize the cache handlers interface.\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const isPossibleServerAction = getIsPossibleServerAction(req)\n const botType = getBotType(req.headers.get('User-Agent') || '')\n const { isOnDemandRevalidate } = checkIsOnDemandRevalidate(\n req.headers,\n prerenderManifest.preview\n )\n\n const closeController = new CloseController()\n\n const renderContext: AppPageRouteHandlerContext = {\n page: normalizedSrcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n },\n fallbackRouteParams: null,\n\n renderOpts: {\n App: () => null,\n Document: () => null,\n pageConfig: {},\n ComponentMod,\n Component: interopDefault(ComponentMod),\n routeModule: pageRouteModule,\n\n params,\n page: srcPage,\n postponed: undefined,\n shouldWaitOnAllReady: false,\n serveStreamingMetadata: true,\n supportsDynamicResponse: true,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n dir: pageRouteModule.relativeProjectDir,\n botType,\n isDraftMode: false,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n images: nextConfig.images,\n previewProps: prerenderManifest.preview,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n\n multiZoneDraftMode: false,\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n logServerFunctions:\n typeof nextConfig.logging === 'object' &&\n Boolean(nextConfig.logging.serverFunctions),\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n experimental: {\n isRoutePPREnabled: false,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n optimisticRouting: Boolean(nextConfig.experimental.optimisticRouting),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n prefetchInlining: nextConfig.experimental.prefetchInlining ?? false,\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n cachedNavigations: Boolean(nextConfig.experimental.cachedNavigations),\n appShells: nextConfig.experimental.appShells,\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata || ([] as any),\n clientParamParsingOrigins:\n nextConfig.experimental.clientParamParsingOrigins,\n maxPostponedStateSizeBytes: parseMaxPostponedStateSize(\n nextConfig.experimental.maxPostponedStateSize\n ),\n },\n\n incrementalCache: await pageRouteModule.getIncrementalCache(\n baseReq,\n nextConfig,\n prerenderManifest,\n true\n ),\n\n waitUntil: event.waitUntil.bind(event),\n onClose: (cb) => {\n closeController.onClose(cb)\n },\n onAfterTaskError: () => {},\n\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n pageRouteModule.onRequestError(\n baseReq,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<AppPageRenderResultMetadata>\n ): Response => {\n const varyHeader = pageRouteModule.getVaryHeader(\n resolvedPathname,\n interceptionRoutePatterns\n )\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n closeController.dispatchClose()\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n const headers = new Headers()\n finalStatus = metadata.statusCode || baseRes.statusCode || 200\n // Pull any fetch metrics from the render onto the request.\n ;(req as any).fetchMetrics = metadata.fetchMetrics\n\n // Set content type\n const contentType = result.contentType || 'text/html; charset=utf-8'\n headers.set('Content-Type', contentType)\n headers.set('x-edge-runtime', '1')\n\n if (varyHeader) {\n headers.set('Vary', varyHeader)\n }\n\n // Add existing headers\n for (const [key, value] of Object.entries({\n ...baseRes.getHeaders(),\n ...metadata.headers,\n })) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n closeController.dispatchClose()\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result\n .pipeTo(writable)\n .catch((err: unknown) => {\n console.error('Error piping RenderResult to response:', err)\n })\n .finally(() => closeController.dispatchClose())\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(baseReq, baseRes, renderContext)\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n if (finalStatus && finalStatus >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', finalStatus.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = normalizedSrcPage\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const silenceLog = false\n await pageRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': normalizedSrcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n page: 'VAR_PAGE',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_PAGE',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["self","adapter","IncrementalCache","pageMod","setManifestsSingleton","cacheHandlers","BaseServerSpan","getTracer","SpanKind","SpanStatusCode","WebNextRequest","WebNextResponse","getIsPossibleServerAction","getBotType","interopDefault","normalizeAppPath","checkIsOnDemandRevalidate","CloseController","parseMaxPostponedStateSize","toNodeOutgoingHttpHeaders","maybeJSONParse","str","JSON","parse","undefined","rscManifest","__RSC_MANIFEST","rscServerManifest","__RSC_SERVER_MANIFEST","page","clientReferenceManifest","serverActionsManifest","ComponentMod","requestHandler","req","event","srcPage","normalizedSrcPage","relativeUrl","nextUrl","pathname","search","baseReq","baseRes","pageRouteModule","routeModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","nextConfig","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","nextFontManifest","resolvedPathname","interceptionRoutePatterns","routerServerContext","deploymentId","clientAssetToken","initializeCacheHandlers","cacheMaxMemorySize","isPossibleServerAction","botType","headers","get","isOnDemandRevalidate","preview","closeController","renderContext","sharedContext","fallbackRouteParams","renderOpts","App","Document","pageConfig","Component","postponed","shouldWaitOnAllReady","serveStreamingMetadata","supportsDynamicResponse","setIsrStatus","dir","relativeProjectDir","isDraftMode","assetPrefix","nextConfigOutput","output","crossOrigin","trailingSlash","images","previewProps","enableTainting","experimental","taint","htmlLimitedBots","reactMaxHeadersLength","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","basePath","serverActions","logServerFunctions","logging","Boolean","serverFunctions","cacheComponents","validationLevel","instantInsights","isRoutePPREnabled","expireTime","staleTimes","dynamicOnHover","optimisticRouting","inlineCss","prefetchInlining","authInterrupts","useCacheTimeout","cachedNavigations","appShells","clientTraceMetadata","clientParamParsingOrigins","maxPostponedStateSizeBytes","maxPostponedStateSize","incrementalCache","getIncrementalCache","waitUntil","bind","onClose","cb","onAfterTaskError","onInstrumentationRequestError","error","_request","errorContext","silenceLog","onRequestError","finalStatus","renderResultToResponse","result","varyHeader","getVaryHeader","isNull","dispatchClose","metadata","Headers","statusCode","fetchMetrics","contentType","set","key","value","Object","entries","getHeaders","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","finally","invokeRender","span","render","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","tracer","getRootSpanAttributes","handleRequest","warn","route","name","method","updateName","routerKind","routePath","routeType","revalidateReason","withPropagatedContext","trace","spanName","kind","SERVER","attributes","internalHandler","opts","handler","incrementalCacheHandler","request","ctx","url","process","env","__NEXT_BASE_PATH","i18n","__NEXT_I18N_CONFIG","__NEXT_TRAILING_SLASH","__NEXT_CACHE_LIFE","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","requestMeta","signal","AbortController","response"],"mappings":"IA2CoBA;AA3CpB,OAAO,2BAA0B;AACjC,SACEC,OAAO,QAGF,2BAA0B;AACjC,SAASC,gBAAgB,QAAQ,qCAAoC;AAErE,YAAYC,aAAa,eAAc;AAEvC,SAASC,qBAAqB,QAAQ,8CAA6C;AACnF,YAAYC,mBAAmB,kCAAiC;AAChE,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SACEC,SAAS,EACTC,QAAQ,EACRC,cAAc,QAET,gCAA+B;AACtC,SAASC,cAAc,EAAEC,eAAe,QAAQ,6BAA4B;AAQ5E,SAASC,yBAAyB,QAAQ,8CAA6C;AACvF,SAASC,UAAU,QAAQ,uCAAsC;AACjE,SAASC,cAAc,QAAQ,4BAA2B;AAC1D,SAASC,gBAAgB,QAAQ,0CAAyC;AAC1E,SAASC,yBAAyB,QAAQ,yBAAwB;AAClE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,0BAA0B,QAAQ,8BAA6B;AACxE,SAASC,yBAAyB,QAAQ,yBAAwB;AAIlE,0CAA0C;AAC1C,iCAAiC;AAEjC,MAAMC,iBAAiB,CAACC,MAAkBA,MAAMC,KAAKC,KAAK,CAACF,OAAOG;AAElE,MAAMC,eAAczB,uBAAAA,KAAK0B,cAAc,qBAAnB1B,oBAAqB,CAAC,WAAW;AACrD,MAAM2B,oBAAoBP,eAAepB,KAAK4B,qBAAqB;AAEnE,IAAIH,eAAeE,mBAAmB;IACpCvB,sBAAsB;QACpByB,MAAM;QACNC,yBAAyBL;QACzBM,uBAAuBJ;IACzB;AACF;AAEA,OAAO,MAAMK,eAAe7B,QAAO;AAEnC,eAAe8B,eACbC,GAAoB,EACpBC,KAAqB;IAErB,IAAIC,UAAU;IAEd,MAAMC,oBAAoBtB,iBAAiBqB;IAC3C,MAAME,cAAc,GAAGJ,IAAIK,OAAO,CAACC,QAAQ,GAAGN,IAAIK,OAAO,CAACE,MAAM,EAAE;IAClE,MAAMC,UAAU,IAAIhC,eAAewB;IACnC,MAAMS,UAAU,IAAIhC,gBAAgBa;IAEpC,MAAMoB,kBAAkBzC,QAAQ0C,WAAW;IAC3C,MAAMC,gBAAgB,MAAMF,gBAAgBG,OAAO,CAACL,SAAS,MAAM;QACjEN;QACAY,oBAAoB;IACtB;IAEA,IAAI,CAACF,eAAe;QAClB,OAAO,IAAIG,SAAS,eAAe;YACjCC,QAAQ;QACV;IACF;IACA,MAAM,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,UAAU,EACVC,aAAa,EACbC,iBAAiB,EACjBC,qBAAqB,EACrBC,4BAA4B,EAC5BC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAChBC,yBAAyB,EACzBC,mBAAmB,EACnBC,YAAY,EACZC,gBAAgB,EACjB,GAAGnB;IAEJ,2CAA2C;IAC3CzC,cAAc6D,uBAAuB,CAACZ,WAAWa,kBAAkB;IACnE,sCAAsC;IAEtC,MAAMC,yBAAyBxD,0BAA0BsB;IACzD,MAAMmC,UAAUxD,WAAWqB,IAAIoC,OAAO,CAACC,GAAG,CAAC,iBAAiB;IAC5D,MAAM,EAAEC,oBAAoB,EAAE,GAAGxD,0BAC/BkB,IAAIoC,OAAO,EACXd,kBAAkBiB,OAAO;IAG3B,MAAMC,kBAAkB,IAAIzD;IAE5B,MAAM0D,gBAA4C;QAChD9C,MAAMQ;QACNc;QACAC;QAEAwB,eAAe;YACbvB;YACAW;YACAC;QACF;QACAY,qBAAqB;QAErBC,YAAY;YACVC,KAAK,IAAM;YACXC,UAAU,IAAM;YAChBC,YAAY,CAAC;YACbjD;YACAkD,WAAWpE,eAAekB;YAC1Ba,aAAaD;YAEbQ;YACAvB,MAAMO;YACN+C,WAAW3D;YACX4D,sBAAsB;YACtBC,wBAAwB;YACxBC,yBAAyB;YACzB/B;YACAK;YACAH;YACAC;YACAC;YACA4B,YAAY,EAAExB,uCAAAA,oBAAqBwB,YAAY;YAE/CC,KAAK5C,gBAAgB6C,kBAAkB;YACvCpB;YACAqB,aAAa;YACblB;YACAJ;YACAuB,aAAarC,WAAWqC,WAAW;YACnCC,kBAAkBtC,WAAWuC,MAAM;YACnCC,aAAaxC,WAAWwC,WAAW;YACnCC,eAAezC,WAAWyC,aAAa;YACvCC,QAAQ1C,WAAW0C,MAAM;YACzBC,cAAczC,kBAAkBiB,OAAO;YACvCyB,gBAAgB5C,WAAW6C,YAAY,CAACC,KAAK;YAC7CC,iBAAiB/C,WAAW+C,eAAe;YAC3CC,uBAAuBhD,WAAWgD,qBAAqB;YAEvDtD,oBAAoB;YACpBuD,mBAAmBjD,WAAWkD,SAAS;YACvCC,6BAA6BnD,WAAWmD,2BAA2B;YACnEC,UAAUpD,WAAWoD,QAAQ;YAC7BC,eAAerD,WAAW6C,YAAY,CAACQ,aAAa;YACpDC,oBACE,OAAOtD,WAAWuD,OAAO,KAAK,YAC9BC,QAAQxD,WAAWuD,OAAO,CAACE,eAAe;YAC5CC,iBAAiBF,QAAQxD,WAAW0D,eAAe;YACnDC,iBAAiB3D,WAAW6C,YAAY,CAACe,eAAe,CAACD,eAAe;YACxEd,cAAc;gBACZgB,mBAAmB;gBACnBC,YAAY9D,WAAW8D,UAAU;gBACjCC,YAAY/D,WAAW6C,YAAY,CAACkB,UAAU;gBAC9CC,gBAAgBR,QAAQxD,WAAW6C,YAAY,CAACmB,cAAc;gBAC9DC,mBAAmBT,QAAQxD,WAAW6C,YAAY,CAACoB,iBAAiB;gBACpEC,WAAWV,QAAQxD,WAAW6C,YAAY,CAACqB,SAAS;gBACpDC,kBAAkBnE,WAAW6C,YAAY,CAACsB,gBAAgB,IAAI;gBAC9DC,gBAAgBZ,QAAQxD,WAAW6C,YAAY,CAACuB,cAAc;gBAC9DC,iBAAiBrE,WAAW6C,YAAY,CAACwB,eAAe;gBACxDC,mBAAmBd,QAAQxD,WAAW6C,YAAY,CAACyB,iBAAiB;gBACpEC,WAAWvE,WAAW6C,YAAY,CAAC0B,SAAS;gBAC5CC,qBACExE,WAAW6C,YAAY,CAAC2B,mBAAmB,IAAK,EAAE;gBACpDC,2BACEzE,WAAW6C,YAAY,CAAC4B,yBAAyB;gBACnDC,4BAA4B9G,2BAC1BoC,WAAW6C,YAAY,CAAC8B,qBAAqB;YAEjD;YAEAC,kBAAkB,MAAMtF,gBAAgBuF,mBAAmB,CACzDzF,SACAY,YACAE,mBACA;YAGF4E,WAAWjG,MAAMiG,SAAS,CAACC,IAAI,CAAClG;YAChCmG,SAAS,CAACC;gBACR7D,gBAAgB4D,OAAO,CAACC;YAC1B;YACAC,kBAAkB,KAAO;YAEzBC,+BAA+B,CAC7BC,OACAC,UACAC,cACAC,aAEAjG,gBAAgBkG,cAAc,CAC5BpG,SACAgG,OACAE,cACAC,YACA9E;QAEN;IACF;IACA,IAAIgF,cAAc;IAElB,MAAMC,yBAAyB,CAC7BC;QAEA,MAAMC,aAAatG,gBAAgBuG,aAAa,CAC9CtF,kBACAC;QAEF,wBAAwB;QACxB,IAAImF,OAAOG,MAAM,EAAE;YACjBL,cAAc;YACdrE,gBAAgB2E,aAAa;YAC7B,OAAO,IAAIpG,SAAS,MAAM;gBAAEC,QAAQ;YAAI;QAC1C;QAEA,mBAAmB;QACnB,MAAM,EAAEoG,QAAQ,EAAE,GAAGL;QACrB,MAAM3E,UAAU,IAAIiF;QACpBR,cAAcO,SAASE,UAAU,IAAI7G,QAAQ6G,UAAU,IAAI;QAEzDtH,IAAYuH,YAAY,GAAGH,SAASG,YAAY;QAElD,mBAAmB;QACnB,MAAMC,cAAcT,OAAOS,WAAW,IAAI;QAC1CpF,QAAQqF,GAAG,CAAC,gBAAgBD;QAC5BpF,QAAQqF,GAAG,CAAC,kBAAkB;QAE9B,IAAIT,YAAY;YACd5E,QAAQqF,GAAG,CAAC,QAAQT;QACtB;QAEA,uBAAuB;QACvB,KAAK,MAAM,CAACU,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAAC;YACxC,GAAGpH,QAAQqH,UAAU,EAAE;YACvB,GAAGV,SAAShF,OAAO;QACrB,GAAI;YACF,IAAIuF,UAAUrI,WAAW;gBACvB,IAAIyI,MAAMC,OAAO,CAACL,QAAQ;oBACxB,gCAAgC;oBAChC,KAAK,MAAMM,KAAKN,MAAO;wBACrBvF,QAAQ8F,MAAM,CAACR,KAAKS,OAAOF;oBAC7B;gBACF,OAAO;oBACL7F,QAAQqF,GAAG,CAACC,KAAKS,OAAOR;gBAC1B;YACF;QACF;QAEA,yBAAyB;QACzB,IAAI,CAACZ,OAAOqB,SAAS,EAAE;YACrB,MAAMC,OAAOtB,OAAOuB,iBAAiB;YACrClG,QAAQqF,GAAG,CACT,kBACAU,OAAO,IAAII,cAAcC,MAAM,CAACH,MAAMI,MAAM;YAE9CjG,gBAAgB2E,aAAa;YAC7B,OAAO,IAAIpG,SAASsH,MAAM;gBACxBrH,QAAQ6F;gBACRzE;YACF;QACF;QAEA,oCAAoC;QACpC,mFAAmF;QACnF,MAAM,EAAEsG,QAAQ,EAAEC,QAAQ,EAAE,GAAG,IAAIC;QAEnC,iDAAiD;QACjD,sEAAsE;QACtE7B,OACG8B,MAAM,CAACF,UACPG,KAAK,CAAC,CAACC;YACNC,QAAQxC,KAAK,CAAC,0CAA0CuC;QAC1D,GACCE,OAAO,CAAC,IAAMzG,gBAAgB2E,aAAa;QAE9C,OAAO,IAAIpG,SAAS2H,UAAU;YAC5B1H,QAAQ6F;YACRzE;QACF;IACF;IAEA,MAAM8G,eAAe,OAAOC;QAC1B,IAAI;YACF,MAAMpC,SAAS,MAAMrG,gBAClB0I,MAAM,CAAC5I,SAASC,SAASgC,eACzBwG,OAAO,CAAC;gBACP,IAAI,CAACE,MAAM;gBAEXA,KAAKE,aAAa,CAAC;oBACjB,oBAAoBxC;oBACpB,YAAY;gBACd;gBAEA,IAAIA,eAAeA,eAAe,KAAK;oBACrC,8DAA8D;oBAC9D,6EAA6E;oBAC7EsC,KAAKG,SAAS,CAAC;wBACbC,MAAMhL,eAAeiL,KAAK;oBAC5B;oBACA,8DAA8D;oBAC9DL,KAAKM,YAAY,CAAC,cAAc5C,YAAY6C,QAAQ;gBACtD;gBAEA,MAAMC,qBAAqBC,OAAOC,qBAAqB;gBACvD,iEAAiE;gBACjE,IAAI,CAACF,oBAAoB;oBACvB;gBACF;gBAEA,IACEA,mBAAmBtH,GAAG,CAAC,sBACvBjE,eAAe0L,aAAa,EAC5B;oBACAd,QAAQe,IAAI,CACV,CAAC,2BAA2B,EAAEJ,mBAAmBtH,GAAG,CAClD,kBACA,qEAAqE,CAAC;oBAE1E;gBACF;gBAEA,MAAM2H,QAAQ7J;gBACd,IAAI6J,OAAO;oBACT,MAAMC,OAAO,GAAGjK,IAAIkK,MAAM,CAAC,CAAC,EAAEF,OAAO;oBAErCb,KAAKE,aAAa,CAAC;wBACjB,cAAcW;wBACd,cAAcA;wBACd,kBAAkBC;oBACpB;oBACAd,KAAKgB,UAAU,CAACF;gBAClB,OAAO;oBACLd,KAAKgB,UAAU,CAAC,GAAGnK,IAAIkK,MAAM,CAAC,CAAC,EAAEhK,SAAS;gBAC5C;YACF;YAEF,OAAO4G,uBAAuBC;QAChC,EAAE,OAAOgC,KAAK;YACZ,MAAMpC,aAAa;YACnB,MAAMjG,gBAAgBkG,cAAc,CAClCpG,SACAuI,KACA;gBACEqB,YAAY;gBACZC,WAAWlK;gBACXmK,WAAW;gBACXC,kBAAkBjL;YACpB,GACAqH;YAEF,mDAAmD;YACnD,MAAMoC;QACR;IACF;IAEA,MAAMa,SAASvL;IAEf,OAAOuL,OAAOY,qBAAqB,CAACxK,IAAIoC,OAAO,EAAE,IAC/CwH,OAAOa,KAAK,CACVrM,eAAe0L,aAAa,EAC5B;YACEY,UAAU,GAAG1K,IAAIkK,MAAM,CAAC,CAAC,EAAEhK,SAAS;YACpCyK,MAAMrM,SAASsM,MAAM;YACrBC,YAAY;gBACV,eAAe7K,IAAIkK,MAAM;gBACzB,eAAe9J;gBACf,cAAcD;YAChB;QACF,GACA+I;AAGN;AAEA,MAAM4B,kBAA+B,CAACC;IACpC,OAAOhN,QAAQ;QACb,GAAGgN,IAAI;QACP/M;QACAgN,SAASjL;QACTkL;QACAtL,MAAM;IACR;AACF;AAEA,OAAO,eAAeqL,QACpBE,OAAgB,EAChBC,GAIC;IAED,MAAMpE,SAAS,MAAM+D,gBAAgB;QACnCI,SAAS;YACPE,KAAKF,QAAQE,GAAG;YAChBlB,QAAQgB,QAAQhB,MAAM;YACtB9H,SAASnD,0BAA0BiM,QAAQ9I,OAAO;YAClDhB,YAAY;gBACVoD,UAAU6G,QAAQC,GAAG,CAACC,gBAAgB;gBACtCC,MAAMH,QAAQC,GAAG,CAACG,kBAAkB;gBACpC5H,eAAee,QAAQyG,QAAQC,GAAG,CAACI,qBAAqB;gBACxDzH,cAAc;oBACZK,WAAW+G,QAAQC,GAAG,CAACK,iBAAiB;oBACxCnG,gBAAgBZ,QACdyG,QAAQC,GAAG,CAACM,mCAAmC;oBAEjD/F,2BAA2BwF,QAAQC,GAAG,CACnCO,mCAAmC;gBACxC;YACF;YACAlM,MAAM;gBACJsK,MAAM;YACR;YACA5B,MACE6C,QAAQhB,MAAM,KAAK,SAASgB,QAAQhB,MAAM,KAAK,SAC1CgB,QAAQ7C,IAAI,IAAI/I,YACjBA;YACN4G,WAAWiF,IAAIjF,SAAS;YACxB4F,aAAaX,IAAIW,WAAW;YAC5BC,QAAQZ,IAAIY,MAAM,IAAI,IAAIC,kBAAkBD,MAAM;QACpD;IACF;IAEAZ,IAAIjF,SAAS,oBAAbiF,IAAIjF,SAAS,MAAbiF,KAAgBpE,OAAOb,SAAS;IAEhC,OAAOa,OAAOkF,QAAQ;AACxB;AAEA,mBAAmB;AACnB,eAAenB,gBAAe","ignoreList":[0]} |
@@ -13,3 +13,3 @@ import '../../server/web/globals'; | ||
| import { WebNextRequest, WebNextResponse } from '../../server/base-http/web'; | ||
| import { getTracer, SpanKind } from '../../server/lib/trace/tracer'; | ||
| import { getTracer, SpanKind, SpanStatusCode } from '../../server/lib/trace/tracer'; | ||
| import { BaseServerSpan } from '../../server/lib/trace/constants'; | ||
@@ -199,2 +199,11 @@ import { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants'; | ||
| }); | ||
| if (finalStatus && finalStatus >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| span.setStatus({ | ||
| code: SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| span.setAttribute('error.type', finalStatus.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
@@ -201,0 +210,0 @@ // We were unable to get attributes, probably OTEL is not enabled |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/build/templates/edge-ssr.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\n\nimport Document from 'VAR_MODULE_DOCUMENT'\nimport * as appMod from 'VAR_MODULE_APP'\nimport * as userlandPage from 'VAR_USERLAND'\nimport * as userlandErrorPage from 'VAR_MODULE_GLOBAL_ERROR'\n\ndeclare const userland500Page: any\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:* as userland500Page\n// OPTIONAL_IMPORT:incrementalCacheHandler\n\nimport RouteModule, {\n type PagesRouteHandlerContext,\n} from '../../server/route-modules/pages/module'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\n\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type RenderResult from '../../server/render-result'\nimport type { RenderResultMetadata } from '../../server/render-result'\nimport { getTracer, SpanKind, type Span } from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants'\nimport type { RequestMeta } from '../../server/request-meta'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\n\n// injected by the loader afterwards.\ndeclare const pageRouteModuleOptions: any\ndeclare const errorRouteModuleOptions: any\ndeclare const user500RouteModuleOptions: any\n// INJECT:pageRouteModuleOptions\n// INJECT:errorRouteModuleOptions\n// INJECT:user500RouteModuleOptions\n// INJECT_RAW:cacheHandlerImports\n\nconst pageMod = {\n ...userlandPage,\n routeModule: new RouteModule({\n ...pageRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\nconst errorMod = {\n ...userlandErrorPage,\n routeModule: new RouteModule({\n ...errorRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandErrorPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\n// FIXME: this needs to be made compatible with the template\nconst error500Mod = userland500Page\n ? {\n ...userland500Page,\n routeModule: new RouteModule({\n ...user500RouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userland500Page,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n }\n : null\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n _event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_DEFINITION_PATHNAME'\n\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const pageRouteModule = pageMod.routeModule as RouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n deploymentId,\n isNextDataRequest,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n clientAssetToken,\n } = prepareResult\n\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const renderContext: PagesRouteHandlerContext = {\n page: srcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n customServer: undefined,\n },\n\n renderContext: {\n isFallback: false,\n isDraftMode: false,\n developmentNotFoundSourcePage: undefined,\n },\n\n renderOpts: {\n params,\n page: srcPage,\n supportsDynamicResponse: true,\n Component: pageMod.Component,\n ComponentMod: pageMod,\n pageConfig: pageMod.pageConfig,\n routeModule: pageMod.routeModule,\n previewProps: prerenderManifest.preview,\n basePath: nextConfig.basePath,\n assetPrefix: nextConfig.assetPrefix,\n images: nextConfig.images,\n optimizeCss: nextConfig.experimental.optimizeCss,\n nextConfigOutput: nextConfig.output,\n nextScriptWorkers: nextConfig.experimental.nextScriptWorkers,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n domainLocales: nextConfig.i18n?.domains,\n distDir: '',\n crossOrigin: nextConfig.crossOrigin ? nextConfig.crossOrigin : undefined,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile: nextConfig.experimental.isExperimentalCompile,\n // `htmlLimitedBots` is passed to server as serialized config in string format\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata,\n },\n\n buildManifest,\n subresourceIntegrityManifest,\n reactLoadableManifest,\n dynamicCssManifest,\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<RenderResultMetadata>\n ): Response => {\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n finalStatus = metadata.statusCode || 200\n const headers = new Headers()\n\n // Set content type\n const contentType = result.contentType || HTML_CONTENT_TYPE_HEADER\n headers.set('Content-Type', contentType)\n\n // Add metadata headers\n if (metadata.headers) {\n for (const [key, value] of Object.entries(metadata.headers)) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result.pipeTo(writable).catch((err) => {\n console.error('Error piping RenderResult to response:', err)\n })\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: pageMod.getServerSideProps,\n Component: pageMod.default || pageMod,\n ComponentMod: pageMod,\n pageConfig: pageMod.config,\n isNextDataRequest,\n },\n }\n )\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const errModule = error500Mod || errorMod\n const errRouteModule = errModule.routeModule as RouteModule\n\n if (errRouteModule.isDev) {\n throw err\n }\n\n const silenceLog = false\n await errRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n\n const errResult = await errRouteModule.render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n page: error500Mod ? '/500' : '/_error',\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: errModule.getServerSideProps,\n Component: errModule.default || errModule,\n ComponentMod: errModule,\n pageConfig: errModule.config,\n },\n }\n )\n\n return renderResultToResponse(errResult)\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': srcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n bypassNextUrl: true,\n page: 'VAR_DEFINITION_PATHNAME',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_DEFINITION_PATHNAME',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["adapter","IncrementalCache","cacheHandlers","Document","appMod","userlandPage","userlandErrorPage","RouteModule","WebNextRequest","WebNextResponse","getTracer","SpanKind","BaseServerSpan","HTML_CONTENT_TYPE_HEADER","toNodeOutgoingHttpHeaders","pageMod","routeModule","pageRouteModuleOptions","components","App","default","userland","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","errorMod","errorRouteModuleOptions","error500Mod","userland500Page","user500RouteModuleOptions","ComponentMod","requestHandler","req","_event","nextConfig","srcPage","relativeUrl","nextUrl","pathname","search","baseReq","pageRouteModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","deploymentId","isNextDataRequest","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","clientAssetToken","initializeCacheHandlers","cacheMaxMemorySize","renderContext","page","sharedContext","customServer","undefined","isFallback","isDraftMode","developmentNotFoundSourcePage","renderOpts","supportsDynamicResponse","Component","pageConfig","previewProps","preview","basePath","assetPrefix","images","optimizeCss","experimental","nextConfigOutput","output","nextScriptWorkers","disableOptimizedLoading","domainLocales","i18n","domains","crossOrigin","largePageDataBytes","isExperimentalCompile","clientTraceMetadata","finalStatus","renderResultToResponse","result","isNull","metadata","statusCode","headers","Headers","contentType","set","key","value","Object","entries","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","error","invokeRender","span","render","getServerSideProps","config","finally","setAttributes","rootSpanAttributes","tracer","getRootSpanAttributes","get","handleRequest","warn","route","name","method","updateName","errModule","errRouteModule","isDev","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","errResult","withPropagatedContext","trace","spanName","kind","SERVER","attributes","internalHandler","opts","handler","incrementalCacheHandler","bypassNextUrl","request","ctx","url","__NEXT_BASE_PATH","__NEXT_I18N_CONFIG","trailingSlash","Boolean","__NEXT_TRAILING_SLASH","cacheLife","__NEXT_CACHE_LIFE","authInterrupts","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","clientParamParsingOrigins","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","waitUntil","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/build/templates/edge-ssr.ts"],"sourcesContent":["import '../../server/web/globals'\nimport {\n adapter,\n type EdgeHandler,\n type NextRequestHint,\n} from '../../server/web/adapter'\nimport { IncrementalCache } from '../../server/lib/incremental-cache'\nimport * as cacheHandlers from '../../server/use-cache/handlers'\n\nimport Document from 'VAR_MODULE_DOCUMENT'\nimport * as appMod from 'VAR_MODULE_APP'\nimport * as userlandPage from 'VAR_USERLAND'\nimport * as userlandErrorPage from 'VAR_MODULE_GLOBAL_ERROR'\n\ndeclare const userland500Page: any\ndeclare const incrementalCacheHandler: any\n// OPTIONAL_IMPORT:* as userland500Page\n// OPTIONAL_IMPORT:incrementalCacheHandler\n\nimport RouteModule, {\n type PagesRouteHandlerContext,\n} from '../../server/route-modules/pages/module'\nimport { WebNextRequest, WebNextResponse } from '../../server/base-http/web'\n\nimport type { NextFetchEvent } from '../../server/web/spec-extension/fetch-event'\nimport type RenderResult from '../../server/render-result'\nimport type { RenderResultMetadata } from '../../server/render-result'\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n type Span,\n} from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants'\nimport type { RequestMeta } from '../../server/request-meta'\nimport { toNodeOutgoingHttpHeaders } from '../../server/web/utils'\n\n// injected by the loader afterwards.\ndeclare const pageRouteModuleOptions: any\ndeclare const errorRouteModuleOptions: any\ndeclare const user500RouteModuleOptions: any\n// INJECT:pageRouteModuleOptions\n// INJECT:errorRouteModuleOptions\n// INJECT:user500RouteModuleOptions\n// INJECT_RAW:cacheHandlerImports\n\nconst pageMod = {\n ...userlandPage,\n routeModule: new RouteModule({\n ...pageRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\nconst errorMod = {\n ...userlandErrorPage,\n routeModule: new RouteModule({\n ...errorRouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userlandErrorPage,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n}\n\n// FIXME: this needs to be made compatible with the template\nconst error500Mod = userland500Page\n ? {\n ...userland500Page,\n routeModule: new RouteModule({\n ...user500RouteModuleOptions,\n components: {\n App: appMod.default,\n Document,\n },\n userland: userland500Page,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n }),\n }\n : null\n\nexport const ComponentMod = pageMod\n\nasync function requestHandler(\n req: NextRequestHint,\n _event: NextFetchEvent\n): Promise<Response> {\n let srcPage = 'VAR_DEFINITION_PATHNAME'\n\n const relativeUrl = `${req.nextUrl.pathname}${req.nextUrl.search}`\n const baseReq = new WebNextRequest(req)\n const pageRouteModule = pageMod.routeModule as RouteModule\n const prepareResult = await pageRouteModule.prepare(baseReq, null, {\n srcPage,\n multiZoneDraftMode: false,\n })\n\n if (!prepareResult) {\n return new Response('Bad Request', {\n status: 400,\n })\n }\n const {\n query,\n params,\n buildId,\n nextConfig,\n deploymentId,\n isNextDataRequest,\n buildManifest,\n prerenderManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n dynamicCssManifest,\n clientAssetToken,\n } = prepareResult\n\n cacheHandlers.initializeCacheHandlers(nextConfig.cacheMaxMemorySize)\n // INJECT_RAW:cacheHandlerRegistration\n\n const renderContext: PagesRouteHandlerContext = {\n page: srcPage,\n query,\n params,\n\n sharedContext: {\n buildId,\n deploymentId,\n clientAssetToken,\n customServer: undefined,\n },\n\n renderContext: {\n isFallback: false,\n isDraftMode: false,\n developmentNotFoundSourcePage: undefined,\n },\n\n renderOpts: {\n params,\n page: srcPage,\n supportsDynamicResponse: true,\n Component: pageMod.Component,\n ComponentMod: pageMod,\n pageConfig: pageMod.pageConfig,\n routeModule: pageMod.routeModule,\n previewProps: prerenderManifest.preview,\n basePath: nextConfig.basePath,\n assetPrefix: nextConfig.assetPrefix,\n images: nextConfig.images,\n optimizeCss: nextConfig.experimental.optimizeCss,\n nextConfigOutput: nextConfig.output,\n nextScriptWorkers: nextConfig.experimental.nextScriptWorkers,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n domainLocales: nextConfig.i18n?.domains,\n distDir: '',\n crossOrigin: nextConfig.crossOrigin ? nextConfig.crossOrigin : undefined,\n largePageDataBytes: nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile: nextConfig.experimental.isExperimentalCompile,\n // `htmlLimitedBots` is passed to server as serialized config in string format\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata,\n },\n\n buildManifest,\n subresourceIntegrityManifest,\n reactLoadableManifest,\n dynamicCssManifest,\n },\n }\n let finalStatus = 200\n\n const renderResultToResponse = (\n result: RenderResult<RenderResultMetadata>\n ): Response => {\n // Handle null responses\n if (result.isNull) {\n finalStatus = 500\n return new Response(null, { status: 500 })\n }\n\n // Extract metadata\n const { metadata } = result\n finalStatus = metadata.statusCode || 200\n const headers = new Headers()\n\n // Set content type\n const contentType = result.contentType || HTML_CONTENT_TYPE_HEADER\n headers.set('Content-Type', contentType)\n\n // Add metadata headers\n if (metadata.headers) {\n for (const [key, value] of Object.entries(metadata.headers)) {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // Handle multiple header values\n for (const v of value) {\n headers.append(key, String(v))\n }\n } else {\n headers.set(key, String(value))\n }\n }\n }\n }\n\n // Handle static response\n if (!result.isDynamic) {\n const body = result.toUnchunkedString()\n headers.set(\n 'Content-Length',\n String(new TextEncoder().encode(body).length)\n )\n return new Response(body, {\n status: finalStatus,\n headers,\n })\n }\n\n // Handle dynamic/streaming response\n // For edge runtime, we need to create a readable stream that pipes from the result\n const { readable, writable } = new TransformStream()\n\n // Start piping the result to the writable stream\n // This is done asynchronously to avoid blocking the response creation\n result.pipeTo(writable).catch((err) => {\n console.error('Error piping RenderResult to response:', err)\n })\n\n return new Response(readable, {\n status: finalStatus,\n headers,\n })\n }\n\n const invokeRender = async (span?: Span): Promise<Response> => {\n try {\n const result = await pageRouteModule\n .render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: pageMod.getServerSideProps,\n Component: pageMod.default || pageMod,\n ComponentMod: pageMod,\n pageConfig: pageMod.config,\n isNextDataRequest,\n },\n }\n )\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': finalStatus,\n 'next.rsc': false,\n })\n\n if (finalStatus && finalStatus >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', finalStatus.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route')\n if (route) {\n const name = `${req.method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n } else {\n span.updateName(`${req.method} ${srcPage}`)\n }\n })\n\n return renderResultToResponse(result)\n } catch (err) {\n const errModule = error500Mod || errorMod\n const errRouteModule = errModule.routeModule as RouteModule\n\n if (errRouteModule.isDev) {\n throw err\n }\n\n const silenceLog = false\n await errRouteModule.onRequestError(\n baseReq,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: undefined,\n },\n silenceLog\n )\n\n const errResult = await errRouteModule.render(\n // @ts-expect-error we don't type this for edge\n baseReq,\n new WebNextResponse(undefined),\n {\n ...renderContext,\n page: error500Mod ? '/500' : '/_error',\n renderOpts: {\n ...renderContext.renderOpts,\n getServerSideProps: errModule.getServerSideProps,\n Component: errModule.default || errModule,\n ComponentMod: errModule,\n pageConfig: errModule.config,\n },\n }\n )\n\n return renderResultToResponse(errResult)\n }\n }\n\n const tracer = getTracer()\n\n return tracer.withPropagatedContext(req.headers, () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${req.method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': req.method,\n 'http.target': relativeUrl,\n 'http.route': srcPage,\n },\n },\n invokeRender\n )\n )\n}\n\nconst internalHandler: EdgeHandler = (opts) => {\n return adapter({\n ...opts,\n IncrementalCache,\n handler: requestHandler,\n incrementalCacheHandler,\n bypassNextUrl: true,\n page: 'VAR_DEFINITION_PATHNAME',\n })\n}\n\nexport async function handler(\n request: Request,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n signal?: AbortSignal\n requestMeta?: RequestMeta\n }\n): Promise<Response> {\n const result = await internalHandler({\n request: {\n url: request.url,\n method: request.method,\n headers: toNodeOutgoingHttpHeaders(request.headers),\n nextConfig: {\n basePath: process.env.__NEXT_BASE_PATH,\n i18n: process.env.__NEXT_I18N_CONFIG as any,\n trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH),\n experimental: {\n cacheLife: process.env.__NEXT_CACHE_LIFE as any,\n authInterrupts: Boolean(\n process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS\n ),\n clientParamParsingOrigins: process.env\n .__NEXT_CLIENT_PARAM_PARSING_ORIGINS as any,\n },\n },\n page: {\n name: 'VAR_DEFINITION_PATHNAME',\n },\n body:\n request.method !== 'GET' && request.method !== 'HEAD'\n ? (request.body ?? undefined)\n : undefined,\n waitUntil: ctx.waitUntil,\n requestMeta: ctx.requestMeta,\n signal: ctx.signal || new AbortController().signal,\n },\n })\n\n ctx.waitUntil?.(result.waitUntil)\n\n return result.response\n}\n\n// backwards compat\nexport default internalHandler\n"],"names":["adapter","IncrementalCache","cacheHandlers","Document","appMod","userlandPage","userlandErrorPage","RouteModule","WebNextRequest","WebNextResponse","getTracer","SpanKind","SpanStatusCode","BaseServerSpan","HTML_CONTENT_TYPE_HEADER","toNodeOutgoingHttpHeaders","pageMod","routeModule","pageRouteModuleOptions","components","App","default","userland","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","errorMod","errorRouteModuleOptions","error500Mod","userland500Page","user500RouteModuleOptions","ComponentMod","requestHandler","req","_event","nextConfig","srcPage","relativeUrl","nextUrl","pathname","search","baseReq","pageRouteModule","prepareResult","prepare","multiZoneDraftMode","Response","status","query","params","buildId","deploymentId","isNextDataRequest","buildManifest","prerenderManifest","reactLoadableManifest","subresourceIntegrityManifest","dynamicCssManifest","clientAssetToken","initializeCacheHandlers","cacheMaxMemorySize","renderContext","page","sharedContext","customServer","undefined","isFallback","isDraftMode","developmentNotFoundSourcePage","renderOpts","supportsDynamicResponse","Component","pageConfig","previewProps","preview","basePath","assetPrefix","images","optimizeCss","experimental","nextConfigOutput","output","nextScriptWorkers","disableOptimizedLoading","domainLocales","i18n","domains","crossOrigin","largePageDataBytes","isExperimentalCompile","clientTraceMetadata","finalStatus","renderResultToResponse","result","isNull","metadata","statusCode","headers","Headers","contentType","set","key","value","Object","entries","Array","isArray","v","append","String","isDynamic","body","toUnchunkedString","TextEncoder","encode","length","readable","writable","TransformStream","pipeTo","catch","err","console","error","invokeRender","span","render","getServerSideProps","config","finally","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","tracer","getRootSpanAttributes","get","handleRequest","warn","route","name","method","updateName","errModule","errRouteModule","isDev","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","errResult","withPropagatedContext","trace","spanName","kind","SERVER","attributes","internalHandler","opts","handler","incrementalCacheHandler","bypassNextUrl","request","ctx","url","__NEXT_BASE_PATH","__NEXT_I18N_CONFIG","trailingSlash","Boolean","__NEXT_TRAILING_SLASH","cacheLife","__NEXT_CACHE_LIFE","authInterrupts","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","clientParamParsingOrigins","__NEXT_CLIENT_PARAM_PARSING_ORIGINS","waitUntil","requestMeta","signal","AbortController","response"],"mappings":"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","ignoreList":[0]} |
@@ -7,3 +7,3 @@ import { sendError } from '../../server/api-utils'; | ||
| import * as userland from 'VAR_USERLAND'; | ||
| import { getTracer, SpanKind } from '../../server/lib/trace/tracer'; | ||
| import { getTracer, SpanKind, SpanStatusCode } from '../../server/lib/trace/tracer'; | ||
| import { BaseServerSpan } from '../../server/lib/trace/constants'; | ||
@@ -83,2 +83,11 @@ import { addRequestMeta, setRequestMeta } from '../../server/request-meta'; | ||
| }); | ||
| if (res.statusCode && res.statusCode >= 500) { | ||
| // For 5xx status codes: SHOULD be set to 'Error' span status. | ||
| // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status | ||
| span.setStatus({ | ||
| code: SpanStatusCode.ERROR | ||
| }); | ||
| // For span status 'Error', SHOULD set 'error.type' attribute. | ||
| span.setAttribute('error.type', res.statusCode.toString()); | ||
| } | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
@@ -85,0 +94,0 @@ // We were unable to get attributes, probably OTEL is not enabled |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/build/templates/pages-api.ts"],"sourcesContent":["import type { NextApiResponse } from '../../types'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\n\nimport { sendError } from '../../server/api-utils'\nimport { RouteKind } from '../../server/route-kind'\nimport type { Span } from '../../server/lib/trace/tracer'\nimport { PagesAPIRouteModule } from '../../server/route-modules/pages-api/module.compiled'\n\nimport { hoist } from './helpers'\n\n// Import the userland code.\nimport * as userland from 'VAR_USERLAND'\nimport { getTracer, SpanKind } from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport type { InstrumentationOnRequestError } from '../../server/instrumentation/types'\nimport {\n addRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\n\n// Re-export the handler (should be the default export).\nexport default hoist(userland, 'default')\n\n// Re-export config.\nexport const config = hoist(userland, 'config')\n\n// Create and export the route module that will be consumed.\nconst routeModule = new PagesAPIRouteModule({\n definition: {\n kind: RouteKind.PAGES_API,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n },\n userland,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n})\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n }\n\n const prepareResult = await routeModule.prepare(req, res, { srcPage })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const { query, params, prerenderManifest, routerServerContext } =\n prepareResult\n\n try {\n const method = req.method || 'GET'\n const tracer = getTracer()\n\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const onRequestError =\n routeModule.instrumentationOnRequestError.bind(routeModule)\n\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) =>\n routeModule\n .render(req, res, {\n query: {\n ...query,\n ...params,\n },\n params,\n allowedRevalidateHeaderKeys: process.env\n .__NEXT_ALLOWED_REVALIDATE_HEADERS as any as string[],\n multiZoneDraftMode: Boolean(process.env.__NEXT_MULTI_ZONE_DRAFT_MODE),\n trustHostHeader: process.env\n .__NEXT_TRUST_HOST_HEADER as any as boolean,\n // TODO: get this from from runtime env so manifest\n // doesn't need to load\n previewProps: prerenderManifest.preview,\n propagateError: false,\n dev: routeModule.isDev,\n page: 'VAR_DEFINITION_PAGE',\n\n internalRevalidate: routerServerContext?.revalidate,\n\n onError: (...args: Parameters<InstrumentationOnRequestError>) =>\n onRequestError(req, ...args),\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await invokeRouteModule(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n invokeRouteModule\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n // we re-throw in dev to show the error overlay\n if (routeModule.isDev) {\n throw err\n }\n // this is technically an invariant as error handling\n // should be done inside of api-resolver onError\n sendError(res as NextApiResponse, 500, 'Internal Server Error')\n } finally {\n // We don't allow any waitUntil work in pages API routes currently\n // so if callback is present return with resolved promise since no\n // pending work\n ctx.waitUntil?.(Promise.resolve())\n }\n}\n"],"names":["sendError","RouteKind","PagesAPIRouteModule","hoist","userland","getTracer","SpanKind","BaseServerSpan","addRequestMeta","setRequestMeta","config","routeModule","definition","kind","PAGES_API","page","pathname","bundlePath","filename","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","TURBOPACK","replace","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","query","params","prerenderManifest","routerServerContext","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","Boolean","onRequestError","instrumentationOnRequestError","bind","parentSpan","invokeRouteModule","span","render","allowedRevalidateHeaderKeys","__NEXT_ALLOWED_REVALIDATE_HEADERS","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","trustHostHeader","__NEXT_TRUST_HOST_HEADER","previewProps","preview","propagateError","dev","internalRevalidate","revalidate","onError","args","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","setAttribute","withPropagatedContext","headers","trace","spanName","SERVER","attributes","url","undefined","err"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/build/templates/pages-api.ts"],"sourcesContent":["import type { NextApiResponse } from '../../types'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\n\nimport { sendError } from '../../server/api-utils'\nimport { RouteKind } from '../../server/route-kind'\nimport type { Span } from '../../server/lib/trace/tracer'\nimport { PagesAPIRouteModule } from '../../server/route-modules/pages-api/module.compiled'\n\nimport { hoist } from './helpers'\n\n// Import the userland code.\nimport * as userland from 'VAR_USERLAND'\nimport {\n getTracer,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport type { InstrumentationOnRequestError } from '../../server/instrumentation/types'\nimport {\n addRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\n\n// Re-export the handler (should be the default export).\nexport default hoist(userland, 'default')\n\n// Re-export config.\nexport const config = hoist(userland, 'config')\n\n// Create and export the route module that will be consumed.\nconst routeModule = new PagesAPIRouteModule({\n definition: {\n kind: RouteKind.PAGES_API,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n },\n userland,\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n})\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n }\n\n const prepareResult = await routeModule.prepare(req, res, { srcPage })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const { query, params, prerenderManifest, routerServerContext } =\n prepareResult\n\n try {\n const method = req.method || 'GET'\n const tracer = getTracer()\n\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const onRequestError =\n routeModule.instrumentationOnRequestError.bind(routeModule)\n\n let parentSpan: Span | undefined\n const invokeRouteModule = async (span?: Span) =>\n routeModule\n .render(req, res, {\n query: {\n ...query,\n ...params,\n },\n params,\n allowedRevalidateHeaderKeys: process.env\n .__NEXT_ALLOWED_REVALIDATE_HEADERS as any as string[],\n multiZoneDraftMode: Boolean(process.env.__NEXT_MULTI_ZONE_DRAFT_MODE),\n trustHostHeader: process.env\n .__NEXT_TRUST_HOST_HEADER as any as boolean,\n // TODO: get this from from runtime env so manifest\n // doesn't need to load\n previewProps: prerenderManifest.preview,\n propagateError: false,\n dev: routeModule.isDev,\n page: 'VAR_DEFINITION_PAGE',\n\n internalRevalidate: routerServerContext?.revalidate,\n\n onError: (...args: Parameters<InstrumentationOnRequestError>) =>\n onRequestError(req, ...args),\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n if (res.statusCode && res.statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n span.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n span.setAttribute('error.type', res.statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await invokeRouteModule(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n invokeRouteModule\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n // we re-throw in dev to show the error overlay\n if (routeModule.isDev) {\n throw err\n }\n // this is technically an invariant as error handling\n // should be done inside of api-resolver onError\n sendError(res as NextApiResponse, 500, 'Internal Server Error')\n } finally {\n // We don't allow any waitUntil work in pages API routes currently\n // so if callback is present return with resolved promise since no\n // pending work\n ctx.waitUntil?.(Promise.resolve())\n }\n}\n"],"names":["sendError","RouteKind","PagesAPIRouteModule","hoist","userland","getTracer","SpanKind","SpanStatusCode","BaseServerSpan","addRequestMeta","setRequestMeta","config","routeModule","definition","kind","PAGES_API","page","pathname","bundlePath","filename","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","TURBOPACK","replace","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","query","params","prerenderManifest","routerServerContext","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","Boolean","onRequestError","instrumentationOnRequestError","bind","parentSpan","invokeRouteModule","span","render","allowedRevalidateHeaderKeys","__NEXT_ALLOWED_REVALIDATE_HEADERS","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","trustHostHeader","__NEXT_TRUST_HOST_HEADER","previewProps","preview","propagateError","dev","internalRevalidate","revalidate","onError","args","finally","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","withPropagatedContext","headers","trace","spanName","SERVER","attributes","url","undefined","err"],"mappings":"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","ignoreList":[0]} |
@@ -69,3 +69,3 @@ import path from 'path'; | ||
| isPersistentCachingEnabled: persistentCaching, | ||
| nextVersion: "16.3.0-canary.52" | ||
| nextVersion: "16.3.0-canary.53" | ||
| }, { | ||
@@ -72,0 +72,0 @@ turbopackMemoryEviction: config.experimental.turbopackMemoryEvictionMode, |
@@ -87,3 +87,3 @@ // Import cpu-profile first to start profiling early if enabled | ||
| deferredEntries: config.experimental.deferredEntries, | ||
| nextVersion: "16.3.0-canary.52" | ||
| nextVersion: "16.3.0-canary.53" | ||
| }; | ||
@@ -90,0 +90,0 @@ const sharedTurboOptions = { |
@@ -8,3 +8,3 @@ /** | ||
| import { setAttributesFromProps } from './set-attributes-from-props'; | ||
| const version = "16.3.0-canary.52"; | ||
| const version = "16.3.0-canary.53"; | ||
| window.next = { | ||
@@ -11,0 +11,0 @@ version, |
@@ -28,3 +28,3 @@ /* global location */ // imports polyfill from `@next/polyfill-module` after build. | ||
| import { isNextRouterError } from './components/is-next-router-error'; | ||
| export const version = "16.3.0-canary.52"; | ||
| export const version = "16.3.0-canary.53"; | ||
| export let router; | ||
@@ -31,0 +31,0 @@ export const emitter = mitt(); |
| // Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_import_map.rs | ||
| export function needsExperimentalReact(config) { | ||
| const { taint, transitionIndicator, gestureTransition } = config.experimental || {}; | ||
| return Boolean(taint || transitionIndicator || gestureTransition); | ||
| const { useExperimentalReact, taint, transitionIndicator, gestureTransition } = config.experimental || {}; | ||
| return Boolean(useExperimentalReact || taint || transitionIndicator || gestureTransition); | ||
| } | ||
| //# sourceMappingURL=needs-experimental-react.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/lib/needs-experimental-react.ts"],"sourcesContent":["import type { NextConfig } from '../server/config-shared'\n\n// Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_import_map.rs\nexport function needsExperimentalReact(config: NextConfig) {\n const { taint, transitionIndicator, gestureTransition } =\n config.experimental || {}\n return Boolean(taint || transitionIndicator || gestureTransition)\n}\n"],"names":["needsExperimentalReact","config","taint","transitionIndicator","gestureTransition","experimental","Boolean"],"mappings":"AAEA,wHAAwH;AACxH,OAAO,SAASA,uBAAuBC,MAAkB;IACvD,MAAM,EAAEC,KAAK,EAAEC,mBAAmB,EAAEC,iBAAiB,EAAE,GACrDH,OAAOI,YAAY,IAAI,CAAC;IAC1B,OAAOC,QAAQJ,SAASC,uBAAuBC;AACjD","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/lib/needs-experimental-react.ts"],"sourcesContent":["import type { NextConfig } from '../server/config-shared'\n\n// Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_import_map.rs\nexport function needsExperimentalReact(config: NextConfig) {\n const {\n useExperimentalReact,\n taint,\n transitionIndicator,\n gestureTransition,\n } = config.experimental || {}\n return Boolean(\n useExperimentalReact || taint || transitionIndicator || gestureTransition\n )\n}\n"],"names":["needsExperimentalReact","config","useExperimentalReact","taint","transitionIndicator","gestureTransition","experimental","Boolean"],"mappings":"AAEA,wHAAwH;AACxH,OAAO,SAASA,uBAAuBC,MAAkB;IACvD,MAAM,EACJC,oBAAoB,EACpBC,KAAK,EACLC,mBAAmB,EACnBC,iBAAiB,EAClB,GAAGJ,OAAOK,YAAY,IAAI,CAAC;IAC5B,OAAOC,QACLL,wBAAwBC,SAASC,uBAAuBC;AAE5D","ignoreList":[0]} |
@@ -20,3 +20,3 @@ import { readFileSync, writeFileSync } from 'fs'; | ||
| const data = await res.json(); | ||
| const versionData = data.versions["16.3.0-canary.52"]; | ||
| const versionData = data.versions["16.3.0-canary.53"]; | ||
| return { | ||
@@ -54,3 +54,3 @@ os: versionData.os, | ||
| lockfileParsed.dependencies[pkg] = { | ||
| version: "16.3.0-canary.52", | ||
| version: "16.3.0-canary.53", | ||
| resolved: pkgData.tarball, | ||
@@ -63,3 +63,3 @@ integrity: pkgData.integrity, | ||
| lockfileParsed.packages[pkg] = { | ||
| version: "16.3.0-canary.52", | ||
| version: "16.3.0-canary.53", | ||
| resolved: pkgData.tarball, | ||
@@ -66,0 +66,0 @@ integrity: pkgData.integrity, |
@@ -288,2 +288,3 @@ import { VALID_LOADERS } from '../shared/lib/image-config'; | ||
| taint: z.boolean().optional(), | ||
| useExperimentalReact: z.boolean().optional(), | ||
| prerenderEarlyExit: z.boolean().optional(), | ||
@@ -290,0 +291,0 @@ proxyTimeout: z.number().gte(0).optional(), |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/server/config-schema.ts"],"sourcesContent":["import type { NextConfig } from './config'\nimport { VALID_LOADERS } from '../shared/lib/image-config'\n\nimport { z } from 'next/dist/compiled/zod'\nimport type zod from 'next/dist/compiled/zod'\n\nimport type { SizeLimit } from '../types'\nimport {\n LIGHTNINGCSS_FEATURE_NAMES,\n type ExportPathMap,\n type TurbopackLoaderItem,\n type TurbopackOptions,\n type TurbopackRuleConfigItem,\n type TurbopackRuleConfigCollection,\n type TurbopackRuleCondition,\n type TurbopackLoaderBuiltinCondition,\n} from './config-shared'\nimport type {\n Header,\n Rewrite,\n RouteHas,\n Redirect,\n} from '../lib/load-custom-routes'\nimport { SUPPORTED_TEST_RUNNERS_LIST } from '../cli/next-test'\n\n// A custom zod schema for the SizeLimit type\nconst zSizeLimit = z.custom<SizeLimit>((val) => {\n if (typeof val === 'number' || typeof val === 'string') {\n return true\n }\n return false\n})\n\nconst zExportMap: zod.ZodType<ExportPathMap> = z.record(\n z.string(),\n z.object({\n page: z.string(),\n query: z.any(), // NextParsedUrlQuery\n\n // private optional properties\n _fallbackRouteParams: z.array(z.any()).optional(),\n _isAppDir: z.boolean().optional(),\n _isDynamicError: z.boolean().optional(),\n _isRoutePPREnabled: z.boolean().optional(),\n _allowEmptyStaticShell: z.boolean().optional(),\n })\n)\n\nconst zRouteHas: zod.ZodType<RouteHas> = z.union([\n z.object({\n type: z.enum(['header', 'query', 'cookie']),\n key: z.string(),\n value: z.string().optional(),\n }),\n z.object({\n type: z.literal('host'),\n key: z.undefined().optional(),\n value: z.string(),\n }),\n])\n\nconst zRewrite: zod.ZodType<Rewrite> = z.object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n})\n\nconst zRedirect: zod.ZodType<Redirect> = z\n .object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n })\n .and(\n z.union([\n z.object({\n statusCode: z.never().optional(),\n permanent: z.boolean(),\n }),\n z.object({\n statusCode: z.number(),\n permanent: z.never().optional(),\n }),\n ])\n )\n\nconst zHeader: zod.ZodType<Header> = z.object({\n source: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n headers: z.array(z.object({ key: z.string(), value: z.string() })),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n\n internal: z.boolean().optional(),\n})\n\nconst zTurbopackLoaderItem: zod.ZodType<TurbopackLoaderItem> = z.union([\n z.string(),\n z.strictObject({\n loader: z.string(),\n // Any JSON value can be used as turbo loader options, so use z.any() here\n options: z.record(z.string(), z.any()).optional(),\n }),\n])\n\nconst zTurbopackLoaderBuiltinCondition: zod.ZodType<TurbopackLoaderBuiltinCondition> =\n z.union([\n z.literal('browser'),\n z.literal('foreign'),\n z.literal('development'),\n z.literal('production'),\n z.literal('node'),\n z.literal('edge-light'),\n ])\n\nconst zTurbopackCondition: zod.ZodType<TurbopackRuleCondition> = z.union([\n z.strictObject({ all: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ any: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ not: z.lazy(() => zTurbopackCondition) }),\n zTurbopackLoaderBuiltinCondition,\n z.strictObject({\n path: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n content: z.instanceof(RegExp).optional(),\n query: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n contentType: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n }),\n])\n\nconst zTurbopackModuleType = z.enum([\n 'asset',\n 'ecmascript',\n 'typescript',\n 'css',\n 'css-module',\n 'wasm',\n 'raw',\n 'node',\n 'bytes',\n])\n\nconst zTurbopackRuleConfigItem: zod.ZodType<TurbopackRuleConfigItem> =\n z.strictObject({\n loaders: z.array(zTurbopackLoaderItem).optional(),\n as: z.string().optional(),\n condition: zTurbopackCondition.optional(),\n type: zTurbopackModuleType.optional(),\n })\n\nconst zTurbopackRuleConfigCollection: zod.ZodType<TurbopackRuleConfigCollection> =\n z.union([\n zTurbopackRuleConfigItem,\n z.array(z.union([zTurbopackLoaderItem, zTurbopackRuleConfigItem])),\n ])\n\nconst zTurbopackConfig: zod.ZodType<TurbopackOptions> = z.strictObject({\n rules: z.record(z.string(), zTurbopackRuleConfigCollection).optional(),\n resolveAlias: z\n .record(\n z.string(),\n z.union([\n z.string(),\n z.array(z.string()),\n z.record(z.string(), z.union([z.string(), z.array(z.string())])),\n ])\n )\n .optional(),\n resolveExtensions: z.array(z.string()).optional(),\n root: z.string().optional(),\n debugIds: z.boolean().optional(),\n chunkLoadingGlobal: z.string().optional(),\n ignoreIssue: z\n .array(\n z.object({\n path: z.union([z.string(), z.instanceof(RegExp)]),\n title: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n description: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n })\n )\n .optional(),\n})\n\nexport const experimentalSchema = {\n outputHashSalt: z.string().optional(),\n useSkewCookie: z.boolean().optional(),\n after: z.boolean().optional(),\n appNavFailHandling: z.boolean().optional(),\n appNewScrollHandler: z.boolean().optional(),\n preloadEntriesOnStart: z.boolean().optional(),\n allowedRevalidateHeaderKeys: z.array(z.string()).optional(),\n staleTimes: z\n .object({\n dynamic: z.number().optional(),\n static: z.number().gte(30).optional(),\n })\n .optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n clientRouterFilter: z.boolean().optional(),\n clientRouterFilterRedirects: z.boolean().optional(),\n clientRouterFilterAllowedRate: z.number().optional(),\n cpus: z.number().optional(),\n memoryBasedWorkersCount: z.boolean().optional(),\n craCompat: z.boolean().optional(),\n caseSensitiveRoutes: z.boolean().optional(),\n clientParamParsingOrigins: z.array(z.string()).optional(),\n cachedNavigations: z.boolean().optional(),\n dynamicOnHover: z.boolean().optional(),\n useOffline: z.boolean().optional(),\n optimisticRouting: z.boolean().optional(),\n appShells: z.boolean().optional(),\n varyParams: z.boolean().optional(),\n prefetchInlining: z\n .union([\n z.boolean(),\n z.object({\n maxSize: z.number().optional(),\n maxBundleSize: z.number().optional(),\n }),\n ])\n .optional(),\n disableOptimizedLoading: z.boolean().optional(),\n disablePostcssPresetEnv: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n inlineCss: z.boolean().optional(),\n esmExternals: z.union([z.boolean(), z.literal('loose')]).optional(),\n serverActions: z\n .object({\n bodySizeLimit: zSizeLimit.optional(),\n allowedOrigins: z.array(z.string()).optional(),\n })\n .optional(),\n maxPostponedStateSize: zSizeLimit.optional(),\n // The original type was Record<string, any>\n extensionAlias: z.record(z.string(), z.any()).optional(),\n externalDir: z.boolean().optional(),\n externalMiddlewareRewritesResolve: z.boolean().optional(),\n externalProxyRewritesResolve: z.boolean().optional(),\n exposeTestingApiInProductionBuild: z.boolean().optional(),\n fallbackNodePolyfills: z.literal(false).optional(),\n fetchCacheKeyPrefix: z.string().optional(),\n forceSwcTransforms: z.boolean().optional(),\n fullySpecified: z.boolean().optional(),\n gzipSize: z.boolean().optional(),\n imgOptConcurrency: z.number().int().optional().nullable(),\n imgOptOperationCache: z.boolean().optional().nullable(),\n imgOptTimeoutInSeconds: z.number().int().optional(),\n imgOptMaxInputPixels: z.number().int().optional(),\n imgOptSequentialRead: z.boolean().optional().nullable(),\n imgOptSkipMetadata: z.boolean().optional().nullable(),\n isrFlushToDisk: z.boolean().optional(),\n largePageDataBytes: z.number().optional(),\n linkNoTouchStart: z.boolean().optional(),\n manualClientBasePath: z.boolean().optional(),\n middlewarePrefetch: z.enum(['strict', 'flexible']).optional(),\n proxyPrefetch: z.enum(['strict', 'flexible']).optional(),\n middlewareClientMaxBodySize: zSizeLimit.optional(),\n proxyClientMaxBodySize: zSizeLimit.optional(),\n multiZoneDraftMode: z.boolean().optional(),\n cssChunking: z\n .union([\n z.boolean(),\n z.literal('strict'),\n z.literal('loose'),\n z.literal('graph'),\n z.strictObject({ type: z.literal('strict') }),\n z.strictObject({ type: z.literal('loose') }),\n z.strictObject({\n type: z.literal('graph'),\n requestCost: z.number().nonnegative().finite().optional(),\n moduleFactorCost: z.number().nonnegative().finite().optional(),\n }),\n ])\n .optional(),\n nextScriptWorkers: z.boolean().optional(),\n // The critter option is unknown, use z.any() here\n optimizeCss: z.union([z.boolean(), z.any()]).optional(),\n optimisticClientCache: z.boolean().optional(),\n parallelServerCompiles: z.boolean().optional(),\n parallelServerBuildTraces: z.boolean().optional(),\n ppr: z\n .union([z.boolean(), z.literal('incremental')])\n .readonly()\n .optional(),\n taint: z.boolean().optional(),\n prerenderEarlyExit: z.boolean().optional(),\n proxyTimeout: z.number().gte(0).optional(),\n rootParams: z.boolean().optional(),\n mcpServer: z.boolean().optional(),\n removeUncaughtErrorAndRejectionListeners: z.boolean().optional(),\n validateRSCRequestHeaders: z.boolean().optional(),\n scrollRestoration: z.boolean().optional(),\n sri: z\n .object({\n algorithm: z.enum(['sha256', 'sha384', 'sha512']).optional(),\n })\n .optional(),\n swcPlugins: z\n // The specific swc plugin's option is unknown, use z.any() here\n .array(z.tuple([z.string(), z.record(z.string(), z.any())]))\n .optional(),\n swcEnvOptions: z\n .object({\n mode: z.enum(['usage', 'entry']).optional(),\n coreJs: z.string().optional(),\n skip: z.array(z.string()).optional(),\n include: z.array(z.string()).optional(),\n exclude: z.array(z.string()).optional(),\n shippedProposals: z.boolean().optional(),\n forceAllTransforms: z.boolean().optional(),\n debug: z.boolean().optional(),\n loose: z.boolean().optional(),\n })\n .optional(),\n swcTraceProfiling: z.boolean().optional(),\n // NonNullable<webpack.Configuration['experiments']>['buildHttp']\n urlImports: z.any().optional(),\n viewTransition: z.boolean().optional(),\n workerThreads: z.boolean().optional(),\n webVitalsAttribution: z\n .array(\n z.union([\n z.literal('CLS'),\n z.literal('FCP'),\n z.literal('FID'),\n z.literal('INP'),\n z.literal('LCP'),\n z.literal('TTFB'),\n ])\n )\n .optional(),\n // This is partial set of mdx-rs transform options we support, aligned\n // with next_core::next_config::MdxRsOptions. Ensure both types are kept in sync.\n mdxRs: z\n .union([\n z.boolean(),\n z.object({\n development: z.boolean().optional(),\n jsxRuntime: z.string().optional(),\n jsxImportSource: z.string().optional(),\n providerImportSource: z.string().optional(),\n mdxType: z.enum(['gfm', 'commonmark']).optional(),\n }),\n ])\n .optional(),\n transitionIndicator: z.boolean().optional(),\n gestureTransition: z.boolean().optional(),\n typedRoutes: z.boolean().optional(),\n webpackBuildWorker: z.boolean().optional(),\n webpackMemoryOptimizations: z.boolean().optional(),\n turbopackMemoryEviction: z\n .union([z.literal(false), z.literal('full')])\n .optional(),\n turbopackPluginRuntimeStrategy: z\n .enum(['workerThreads', 'childProcesses', 'forceWorkerThreads'])\n .optional(),\n turbopackMinify: z.boolean().optional(),\n turbopackFileSystemCacheForDev: z.boolean().optional(),\n turbopackFileSystemCacheForBuild: z.boolean().optional(),\n turbopackSourceMaps: z.boolean().optional(),\n turbopackInputSourceMaps: z.boolean().optional(),\n turbopackTreeShaking: z.boolean().optional(),\n turbopackRemoveUnusedImports: z.boolean().optional(),\n turbopackRemoveUnusedExports: z.boolean().optional(),\n turbopackScopeHoisting: z.boolean().optional(),\n turbopackWorkerAssetPrefix: z.string().optional(),\n turbopackClientSideNestedAsyncChunking: z.boolean().optional(),\n turbopackServerSideNestedAsyncChunking: z.boolean().optional(),\n turbopackImportTypeBytes: z.boolean().optional(),\n turbopackImportTypeText: z.boolean().optional(),\n turbopackUseBuiltinBabel: z.boolean().optional(),\n turbopackUseBuiltinSass: z.boolean().optional(),\n turbopackLocalPostcssConfig: z.boolean().optional(),\n turbopackModuleIds: z.enum(['named', 'deterministic']).optional(),\n turbopackInferModuleSideEffects: z.boolean().optional(),\n turbopackServerFastRefresh: z.boolean().optional(),\n optimizePackageImports: z.array(z.string()).optional(),\n optimizeServerReact: z.boolean().optional(),\n strictRouteTypes: z.boolean().optional(),\n clientTraceMetadata: z.array(z.string()).optional(),\n serverMinification: z.boolean().optional(),\n serverSourceMaps: z.boolean().optional(),\n useWasmBinary: z.boolean().optional(),\n useLightningcss: z.boolean().optional(),\n lightningCssFeatures: z\n .object({\n include: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n exclude: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n })\n .optional(),\n testProxy: z.boolean().optional(),\n defaultTestRunner: z.enum(SUPPORTED_TEST_RUNNERS_LIST).optional(),\n allowDevelopmentBuild: z.literal(true).optional(),\n\n reactDebugChannel: z.boolean().optional(),\n instantInsights: z\n .object({\n validationLevel: z\n .enum([\n 'warning',\n 'manual-warning',\n 'experimental-error',\n 'experimental-manual-error',\n ])\n .optional(),\n })\n .optional(),\n staticGenerationRetryCount: z.number().int().optional(),\n staticGenerationMaxConcurrency: z.number().int().optional(),\n staticGenerationMinPagesPerWorker: z.number().int().optional(),\n typedEnv: z.boolean().optional(),\n serverComponentsHmrCache: z.boolean().optional(),\n authInterrupts: z.boolean().optional(),\n useCache: z.boolean().optional(),\n useCacheTimeout: z.number().positive().optional(),\n slowModuleDetection: z\n .object({\n buildTimeThresholdMs: z.number().int(),\n })\n .optional(),\n globalNotFound: z.boolean().optional(),\n turbopackRustReactCompiler: z.boolean().optional(),\n browserDebugInfoInTerminal: z\n .union([\n z.boolean(),\n z.enum(['error', 'warn', 'verbose']),\n z.object({\n level: z.enum(['error', 'warn', 'verbose']).optional(),\n depthLimit: z.number().int().positive().optional(),\n edgeLimit: z.number().int().positive().optional(),\n showSourceLocation: z.boolean().optional(),\n }),\n ])\n .optional(),\n lockDistDir: z.boolean().optional(),\n hideLogsAfterAbort: z.boolean().optional(),\n runtimeServerDeploymentId: z.boolean().optional(),\n supportsImmutableAssets: z.boolean().optional(),\n deferredEntries: z.array(z.string()).optional(),\n onBeforeDeferredEntries: z.function().returns(z.promise(z.void())).optional(),\n reportSystemEnvInlining: z.enum(['warn', 'error']).optional(),\n}\n\nexport const configSchema: zod.ZodType<NextConfig> = z.lazy(() =>\n z.strictObject({\n adapterPath: z.string().optional(),\n agentRules: z.boolean().optional(),\n allowedDevOrigins: z.array(z.string()).optional(),\n assetPrefix: z.string().optional(),\n basePath: z.string().optional(),\n bundlePagesRouterDependencies: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n cacheHandler: z.string().min(1).optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheMaxMemorySize: z.number().optional(),\n cleanDistDir: z.boolean().optional(),\n compiler: z\n .strictObject({\n emotion: z\n .union([\n z.boolean(),\n z.object({\n sourceMap: z.boolean().optional(),\n autoLabel: z\n .union([\n z.literal('always'),\n z.literal('dev-only'),\n z.literal('never'),\n ])\n .optional(),\n labelFormat: z.string().min(1).optional(),\n importMap: z\n .record(\n z.string(),\n z.record(\n z.string(),\n z.object({\n canonicalImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n styledBaseImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n })\n )\n )\n .optional(),\n }),\n ])\n .optional(),\n reactRemoveProperties: z\n .union([\n z.boolean().optional(),\n z.object({\n properties: z.array(z.string()).optional(),\n }),\n ])\n .optional(),\n relay: z\n .object({\n src: z.string(),\n artifactDirectory: z.string().optional(),\n language: z.enum(['javascript', 'typescript', 'flow']).optional(),\n eagerEsModules: z.boolean().optional(),\n })\n .optional(),\n removeConsole: z\n .union([\n z.boolean().optional(),\n z.object({\n exclude: z.array(z.string()).min(1).optional(),\n }),\n ])\n .optional(),\n styledComponents: z.union([\n z.boolean().optional(),\n z.object({\n displayName: z.boolean().optional(),\n topLevelImportPaths: z.array(z.string()).optional(),\n ssr: z.boolean().optional(),\n fileName: z.boolean().optional(),\n meaninglessFileNames: z.array(z.string()).optional(),\n minify: z.boolean().optional(),\n transpileTemplateLiterals: z.boolean().optional(),\n namespace: z.string().min(1).optional(),\n pure: z.boolean().optional(),\n cssProp: z.boolean().optional(),\n }),\n ]),\n styledJsx: z.union([\n z.boolean().optional(),\n z.object({\n useLightningcss: z.boolean().optional(),\n }),\n ]),\n define: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n defineServer: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n runAfterProductionCompile: z\n .function()\n .returns(z.promise(z.void()))\n .optional(),\n })\n .optional(),\n compress: z.boolean().optional(),\n configOrigin: z.string().optional(),\n crossOrigin: z\n .union([z.literal('anonymous'), z.literal('use-credentials')])\n .optional(),\n deploymentId: z.string().optional(),\n devIndicators: z\n .union([\n z.object({\n position: z\n .union([\n z.literal('bottom-left'),\n z.literal('bottom-right'),\n z.literal('top-left'),\n z.literal('top-right'),\n ])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n distDir: z.string().min(1).optional(),\n env: z.record(z.string(), z.union([z.string(), z.undefined()])).optional(),\n enablePrerenderSourceMaps: z.boolean().optional(),\n excludeDefaultMomentLocales: z.boolean().optional(),\n experimental: z.strictObject(experimentalSchema).optional(),\n exportPathMap: z\n .function()\n .args(\n zExportMap,\n z.object({\n dev: z.boolean(),\n dir: z.string(),\n outDir: z.string().nullable(),\n distDir: z.string(),\n buildId: z.string(),\n })\n )\n .returns(z.union([zExportMap, z.promise(zExportMap)]))\n .optional(),\n generateBuildId: z\n .function()\n .args()\n .returns(\n z.union([\n z.string(),\n z.null(),\n z.promise(z.union([z.string(), z.null()])),\n ])\n )\n .optional(),\n generateEtags: z.boolean().optional(),\n headers: z\n .function()\n .args()\n .returns(z.promise(z.array(zHeader)))\n .optional(),\n htmlLimitedBots: z.instanceof(RegExp).optional(),\n httpAgentOptions: z\n .strictObject({ keepAlive: z.boolean().optional() })\n .optional(),\n i18n: z\n .strictObject({\n defaultLocale: z.string().min(1),\n domains: z\n .array(\n z.strictObject({\n defaultLocale: z.string().min(1),\n domain: z.string().min(1),\n http: z.literal(true).optional(),\n locales: z.array(z.string().min(1)).optional(),\n })\n )\n .optional(),\n localeDetection: z.literal(false).optional(),\n locales: z.array(z.string().min(1)),\n })\n .nullable()\n .optional(),\n images: z\n .strictObject({\n localPatterns: z\n .array(\n z.strictObject({\n pathname: z.string().optional(),\n search: z.string().optional(),\n })\n )\n .max(25)\n .optional(),\n remotePatterns: z\n .array(\n z.union([\n z.instanceof(URL),\n z.strictObject({\n hostname: z.string(),\n pathname: z.string().optional(),\n port: z.string().max(5).optional(),\n protocol: z.enum(['http', 'https']).optional(),\n search: z.string().optional(),\n }),\n ])\n )\n .max(50)\n .optional(),\n unoptimized: z.boolean().optional(),\n customCacheHandler: z.boolean().optional(),\n contentSecurityPolicy: z.string().optional(),\n contentDispositionType: z.enum(['inline', 'attachment']).optional(),\n dangerouslyAllowSVG: z.boolean().optional(),\n dangerouslyAllowLocalIP: z.boolean().optional(),\n deviceSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .max(25)\n .optional(),\n disableStaticImages: z.boolean().optional(),\n domains: z.array(z.string()).max(50).optional(),\n formats: z\n .array(z.enum(['image/avif', 'image/webp']))\n .max(4)\n .optional(),\n imageSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .min(0)\n .max(25)\n .optional(),\n loader: z.enum(VALID_LOADERS).optional(),\n loaderFile: z.string().optional(),\n maximumDiskCacheSize: z.number().int().min(0).optional(),\n maximumRedirects: z.number().int().min(0).max(20).optional(),\n maximumResponseBody: z\n .number()\n .int()\n .min(1)\n .max(Number.MAX_SAFE_INTEGER)\n .optional(),\n minimumCacheTTL: z.number().int().gte(0).optional(),\n path: z.string().optional(),\n qualities: z\n .array(z.number().int().gte(1).lte(100))\n .min(1)\n .max(20)\n .optional(),\n })\n .optional(),\n logging: z\n .union([\n z.object({\n fetches: z\n .object({\n fullUrl: z.boolean().optional(),\n hmrRefreshes: z.boolean().optional(),\n })\n .optional(),\n incomingRequests: z\n .union([\n z.boolean(),\n z.object({\n ignore: z.array(z.instanceof(RegExp)),\n }),\n ])\n .optional(),\n serverFunctions: z.boolean().optional(),\n browserToTerminal: z\n .union([z.boolean(), z.enum(['error', 'warn'])])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n modularizeImports: z\n .record(\n z.string(),\n z.object({\n transform: z.union([z.string(), z.record(z.string(), z.string())]),\n preventFullImport: z.boolean().optional(),\n skipDefaultConversion: z.boolean().optional(),\n })\n )\n .optional(),\n onDemandEntries: z\n .strictObject({\n maxInactiveAge: z.number().optional(),\n pagesBufferLength: z.number().optional(),\n })\n .optional(),\n output: z.enum(['standalone', 'export']).optional(),\n outputFileTracingRoot: z.string().optional(),\n outputFileTracingExcludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n outputFileTracingIncludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n pageExtensions: z.array(z.string()).min(1).optional(),\n instrumentationClientInject: z.array(z.string()).optional(),\n partialPrefetching: z\n .union([z.boolean(), z.literal('unstable_eager')])\n .optional(),\n poweredByHeader: z.boolean().optional(),\n productionBrowserSourceMaps: z.boolean().optional(),\n reactCompiler: z.union([\n z.boolean(),\n z\n .object({\n compilationMode: z.enum(['infer', 'annotation', 'all']).optional(),\n panicThreshold: z\n .enum(['none', 'critical_errors', 'all_errors'])\n .optional(),\n })\n .optional(),\n ]),\n reactProductionProfiling: z.boolean().optional(),\n reactStrictMode: z.boolean().nullable().optional(),\n reactMaxHeadersLength: z.number().nonnegative().int().optional(),\n redirects: z\n .function()\n .args()\n .returns(z.promise(z.array(zRedirect)))\n .optional(),\n rewrites: z\n .function()\n .args()\n .returns(\n z.promise(\n z.union([\n z.array(zRewrite),\n z.object({\n beforeFiles: z.array(zRewrite),\n afterFiles: z.array(zRewrite),\n fallback: z.array(zRewrite),\n }),\n ])\n )\n )\n .optional(),\n // sassOptions properties are unknown besides implementation, use z.any() here\n sassOptions: z\n .object({\n implementation: z.string().optional(),\n })\n .catchall(z.any())\n .optional(),\n serverExternalPackages: z.array(z.string()).optional(),\n skipMiddlewareUrlNormalize: z.boolean().optional(),\n skipProxyUrlNormalize: z.boolean().optional(),\n skipTrailingSlashRedirect: z.boolean().optional(),\n staticPageGenerationTimeout: z.number().optional(),\n expireTime: z.number().optional(),\n target: z.string().optional(),\n trailingSlash: z.boolean().optional(),\n transpilePackages: z.array(z.string()).optional(),\n turbopack: zTurbopackConfig.optional(),\n typescript: z\n .strictObject({\n ignoreBuildErrors: z.boolean().optional(),\n tsconfigPath: z.string().min(1).optional(),\n })\n .optional(),\n typedRoutes: z.boolean().optional(),\n useFileSystemPublicRoutes: z.boolean().optional(),\n // The webpack config type is unknown, use z.any() here\n webpack: z.any().nullable().optional(),\n watchOptions: z\n .strictObject({\n pollIntervalMs: z.number().positive().finite().optional(),\n })\n .optional(),\n })\n)\n"],"names":["VALID_LOADERS","z","LIGHTNINGCSS_FEATURE_NAMES","SUPPORTED_TEST_RUNNERS_LIST","zSizeLimit","custom","val","zExportMap","record","string","object","page","query","any","_fallbackRouteParams","array","optional","_isAppDir","boolean","_isDynamicError","_isRoutePPREnabled","_allowEmptyStaticShell","zRouteHas","union","type","enum","key","value","literal","undefined","zRewrite","source","destination","basePath","locale","has","missing","internal","zRedirect","and","statusCode","never","permanent","number","zHeader","headers","zTurbopackLoaderItem","strictObject","loader","options","zTurbopackLoaderBuiltinCondition","zTurbopackCondition","all","lazy","not","path","instanceof","RegExp","content","contentType","zTurbopackModuleType","zTurbopackRuleConfigItem","loaders","as","condition","zTurbopackRuleConfigCollection","zTurbopackConfig","rules","resolveAlias","resolveExtensions","root","debugIds","chunkLoadingGlobal","ignoreIssue","title","description","experimentalSchema","outputHashSalt","useSkewCookie","after","appNavFailHandling","appNewScrollHandler","preloadEntriesOnStart","allowedRevalidateHeaderKeys","staleTimes","dynamic","static","gte","cacheLife","stale","revalidate","expire","cacheHandlers","clientRouterFilter","clientRouterFilterRedirects","clientRouterFilterAllowedRate","cpus","memoryBasedWorkersCount","craCompat","caseSensitiveRoutes","clientParamParsingOrigins","cachedNavigations","dynamicOnHover","useOffline","optimisticRouting","appShells","varyParams","prefetchInlining","maxSize","maxBundleSize","disableOptimizedLoading","disablePostcssPresetEnv","cacheComponents","inlineCss","esmExternals","serverActions","bodySizeLimit","allowedOrigins","maxPostponedStateSize","extensionAlias","externalDir","externalMiddlewareRewritesResolve","externalProxyRewritesResolve","exposeTestingApiInProductionBuild","fallbackNodePolyfills","fetchCacheKeyPrefix","forceSwcTransforms","fullySpecified","gzipSize","imgOptConcurrency","int","nullable","imgOptOperationCache","imgOptTimeoutInSeconds","imgOptMaxInputPixels","imgOptSequentialRead","imgOptSkipMetadata","isrFlushToDisk","largePageDataBytes","linkNoTouchStart","manualClientBasePath","middlewarePrefetch","proxyPrefetch","middlewareClientMaxBodySize","proxyClientMaxBodySize","multiZoneDraftMode","cssChunking","requestCost","nonnegative","finite","moduleFactorCost","nextScriptWorkers","optimizeCss","optimisticClientCache","parallelServerCompiles","parallelServerBuildTraces","ppr","readonly","taint","prerenderEarlyExit","proxyTimeout","rootParams","mcpServer","removeUncaughtErrorAndRejectionListeners","validateRSCRequestHeaders","scrollRestoration","sri","algorithm","swcPlugins","tuple","swcEnvOptions","mode","coreJs","skip","include","exclude","shippedProposals","forceAllTransforms","debug","loose","swcTraceProfiling","urlImports","viewTransition","workerThreads","webVitalsAttribution","mdxRs","development","jsxRuntime","jsxImportSource","providerImportSource","mdxType","transitionIndicator","gestureTransition","typedRoutes","webpackBuildWorker","webpackMemoryOptimizations","turbopackMemoryEviction","turbopackPluginRuntimeStrategy","turbopackMinify","turbopackFileSystemCacheForDev","turbopackFileSystemCacheForBuild","turbopackSourceMaps","turbopackInputSourceMaps","turbopackTreeShaking","turbopackRemoveUnusedImports","turbopackRemoveUnusedExports","turbopackScopeHoisting","turbopackWorkerAssetPrefix","turbopackClientSideNestedAsyncChunking","turbopackServerSideNestedAsyncChunking","turbopackImportTypeBytes","turbopackImportTypeText","turbopackUseBuiltinBabel","turbopackUseBuiltinSass","turbopackLocalPostcssConfig","turbopackModuleIds","turbopackInferModuleSideEffects","turbopackServerFastRefresh","optimizePackageImports","optimizeServerReact","strictRouteTypes","clientTraceMetadata","serverMinification","serverSourceMaps","useWasmBinary","useLightningcss","lightningCssFeatures","testProxy","defaultTestRunner","allowDevelopmentBuild","reactDebugChannel","instantInsights","validationLevel","staticGenerationRetryCount","staticGenerationMaxConcurrency","staticGenerationMinPagesPerWorker","typedEnv","serverComponentsHmrCache","authInterrupts","useCache","useCacheTimeout","positive","slowModuleDetection","buildTimeThresholdMs","globalNotFound","turbopackRustReactCompiler","browserDebugInfoInTerminal","level","depthLimit","edgeLimit","showSourceLocation","lockDistDir","hideLogsAfterAbort","runtimeServerDeploymentId","supportsImmutableAssets","deferredEntries","onBeforeDeferredEntries","function","returns","promise","void","reportSystemEnvInlining","configSchema","adapterPath","agentRules","allowedDevOrigins","assetPrefix","bundlePagesRouterDependencies","cacheHandler","min","cacheMaxMemorySize","cleanDistDir","compiler","emotion","sourceMap","autoLabel","labelFormat","importMap","canonicalImport","styledBaseImport","reactRemoveProperties","properties","relay","src","artifactDirectory","language","eagerEsModules","removeConsole","styledComponents","displayName","topLevelImportPaths","ssr","fileName","meaninglessFileNames","minify","transpileTemplateLiterals","namespace","pure","cssProp","styledJsx","define","defineServer","runAfterProductionCompile","compress","configOrigin","crossOrigin","deploymentId","devIndicators","position","distDir","env","enablePrerenderSourceMaps","excludeDefaultMomentLocales","experimental","exportPathMap","args","dev","dir","outDir","buildId","generateBuildId","null","generateEtags","htmlLimitedBots","httpAgentOptions","keepAlive","i18n","defaultLocale","domains","domain","http","locales","localeDetection","images","localPatterns","pathname","search","max","remotePatterns","URL","hostname","port","protocol","unoptimized","customCacheHandler","contentSecurityPolicy","contentDispositionType","dangerouslyAllowSVG","dangerouslyAllowLocalIP","deviceSizes","lte","disableStaticImages","formats","imageSizes","loaderFile","maximumDiskCacheSize","maximumRedirects","maximumResponseBody","Number","MAX_SAFE_INTEGER","minimumCacheTTL","qualities","logging","fetches","fullUrl","hmrRefreshes","incomingRequests","ignore","serverFunctions","browserToTerminal","modularizeImports","transform","preventFullImport","skipDefaultConversion","onDemandEntries","maxInactiveAge","pagesBufferLength","output","outputFileTracingRoot","outputFileTracingExcludes","outputFileTracingIncludes","pageExtensions","instrumentationClientInject","partialPrefetching","poweredByHeader","productionBrowserSourceMaps","reactCompiler","compilationMode","panicThreshold","reactProductionProfiling","reactStrictMode","reactMaxHeadersLength","redirects","rewrites","beforeFiles","afterFiles","fallback","sassOptions","implementation","catchall","serverExternalPackages","skipMiddlewareUrlNormalize","skipProxyUrlNormalize","skipTrailingSlashRedirect","staticPageGenerationTimeout","expireTime","target","trailingSlash","transpilePackages","turbopack","typescript","ignoreBuildErrors","tsconfigPath","useFileSystemPublicRoutes","webpack","watchOptions","pollIntervalMs"],"mappings":"AACA,SAASA,aAAa,QAAQ,6BAA4B;AAE1D,SAASC,CAAC,QAAQ,yBAAwB;AAI1C,SACEC,0BAA0B,QAQrB,kBAAiB;AAOxB,SAASC,2BAA2B,QAAQ,mBAAkB;AAE9D,6CAA6C;AAC7C,MAAMC,aAAaH,EAAEI,MAAM,CAAY,CAACC;IACtC,IAAI,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,UAAU;QACtD,OAAO;IACT;IACA,OAAO;AACT;AAEA,MAAMC,aAAyCN,EAAEO,MAAM,CACrDP,EAAEQ,MAAM,IACRR,EAAES,MAAM,CAAC;IACPC,MAAMV,EAAEQ,MAAM;IACdG,OAAOX,EAAEY,GAAG;IAEZ,8BAA8B;IAC9BC,sBAAsBb,EAAEc,KAAK,CAACd,EAAEY,GAAG,IAAIG,QAAQ;IAC/CC,WAAWhB,EAAEiB,OAAO,GAAGF,QAAQ;IAC/BG,iBAAiBlB,EAAEiB,OAAO,GAAGF,QAAQ;IACrCI,oBAAoBnB,EAAEiB,OAAO,GAAGF,QAAQ;IACxCK,wBAAwBpB,EAAEiB,OAAO,GAAGF,QAAQ;AAC9C;AAGF,MAAMM,YAAmCrB,EAAEsB,KAAK,CAAC;IAC/CtB,EAAES,MAAM,CAAC;QACPc,MAAMvB,EAAEwB,IAAI,CAAC;YAAC;YAAU;YAAS;SAAS;QAC1CC,KAAKzB,EAAEQ,MAAM;QACbkB,OAAO1B,EAAEQ,MAAM,GAAGO,QAAQ;IAC5B;IACAf,EAAES,MAAM,CAAC;QACPc,MAAMvB,EAAE2B,OAAO,CAAC;QAChBF,KAAKzB,EAAE4B,SAAS,GAAGb,QAAQ;QAC3BW,OAAO1B,EAAEQ,MAAM;IACjB;CACD;AAED,MAAMqB,WAAiC7B,EAAES,MAAM,CAAC;IAC9CqB,QAAQ9B,EAAEQ,MAAM;IAChBuB,aAAa/B,EAAEQ,MAAM;IACrBwB,UAAUhC,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IACnCkB,QAAQjC,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IACjCmB,KAAKlC,EAAEc,KAAK,CAACO,WAAWN,QAAQ;IAChCoB,SAASnC,EAAEc,KAAK,CAACO,WAAWN,QAAQ;IACpCqB,UAAUpC,EAAEiB,OAAO,GAAGF,QAAQ;AAChC;AAEA,MAAMsB,YAAmCrC,EACtCS,MAAM,CAAC;IACNqB,QAAQ9B,EAAEQ,MAAM;IAChBuB,aAAa/B,EAAEQ,MAAM;IACrBwB,UAAUhC,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IACnCkB,QAAQjC,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IACjCmB,KAAKlC,EAAEc,KAAK,CAACO,WAAWN,QAAQ;IAChCoB,SAASnC,EAAEc,KAAK,CAACO,WAAWN,QAAQ;IACpCqB,UAAUpC,EAAEiB,OAAO,GAAGF,QAAQ;AAChC,GACCuB,GAAG,CACFtC,EAAEsB,KAAK,CAAC;IACNtB,EAAES,MAAM,CAAC;QACP8B,YAAYvC,EAAEwC,KAAK,GAAGzB,QAAQ;QAC9B0B,WAAWzC,EAAEiB,OAAO;IACtB;IACAjB,EAAES,MAAM,CAAC;QACP8B,YAAYvC,EAAE0C,MAAM;QACpBD,WAAWzC,EAAEwC,KAAK,GAAGzB,QAAQ;IAC/B;CACD;AAGL,MAAM4B,UAA+B3C,EAAES,MAAM,CAAC;IAC5CqB,QAAQ9B,EAAEQ,MAAM;IAChBwB,UAAUhC,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IACnCkB,QAAQjC,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IACjC6B,SAAS5C,EAAEc,KAAK,CAACd,EAAES,MAAM,CAAC;QAAEgB,KAAKzB,EAAEQ,MAAM;QAAIkB,OAAO1B,EAAEQ,MAAM;IAAG;IAC/D0B,KAAKlC,EAAEc,KAAK,CAACO,WAAWN,QAAQ;IAChCoB,SAASnC,EAAEc,KAAK,CAACO,WAAWN,QAAQ;IAEpCqB,UAAUpC,EAAEiB,OAAO,GAAGF,QAAQ;AAChC;AAEA,MAAM8B,uBAAyD7C,EAAEsB,KAAK,CAAC;IACrEtB,EAAEQ,MAAM;IACRR,EAAE8C,YAAY,CAAC;QACbC,QAAQ/C,EAAEQ,MAAM;QAChB,0EAA0E;QAC1EwC,SAAShD,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEY,GAAG,IAAIG,QAAQ;IACjD;CACD;AAED,MAAMkC,mCACJjD,EAAEsB,KAAK,CAAC;IACNtB,EAAE2B,OAAO,CAAC;IACV3B,EAAE2B,OAAO,CAAC;IACV3B,EAAE2B,OAAO,CAAC;IACV3B,EAAE2B,OAAO,CAAC;IACV3B,EAAE2B,OAAO,CAAC;IACV3B,EAAE2B,OAAO,CAAC;CACX;AAEH,MAAMuB,sBAA2DlD,EAAEsB,KAAK,CAAC;IACvEtB,EAAE8C,YAAY,CAAC;QAAEK,KAAKnD,EAAEoD,IAAI,CAAC,IAAMpD,EAAEc,KAAK,CAACoC;IAAsB;IACjElD,EAAE8C,YAAY,CAAC;QAAElC,KAAKZ,EAAEoD,IAAI,CAAC,IAAMpD,EAAEc,KAAK,CAACoC;IAAsB;IACjElD,EAAE8C,YAAY,CAAC;QAAEO,KAAKrD,EAAEoD,IAAI,CAAC,IAAMF;IAAqB;IACxDD;IACAjD,EAAE8C,YAAY,CAAC;QACbQ,MAAMtD,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEuD,UAAU,CAACC;SAAQ,EAAEzC,QAAQ;QAC1D0C,SAASzD,EAAEuD,UAAU,CAACC,QAAQzC,QAAQ;QACtCJ,OAAOX,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEuD,UAAU,CAACC;SAAQ,EAAEzC,QAAQ;QAC3D2C,aAAa1D,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEuD,UAAU,CAACC;SAAQ,EAAEzC,QAAQ;IACnE;CACD;AAED,MAAM4C,uBAAuB3D,EAAEwB,IAAI,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,MAAMoC,2BACJ5D,EAAE8C,YAAY,CAAC;IACbe,SAAS7D,EAAEc,KAAK,CAAC+B,sBAAsB9B,QAAQ;IAC/C+C,IAAI9D,EAAEQ,MAAM,GAAGO,QAAQ;IACvBgD,WAAWb,oBAAoBnC,QAAQ;IACvCQ,MAAMoC,qBAAqB5C,QAAQ;AACrC;AAEF,MAAMiD,iCACJhE,EAAEsB,KAAK,CAAC;IACNsC;IACA5D,EAAEc,KAAK,CAACd,EAAEsB,KAAK,CAAC;QAACuB;QAAsBe;KAAyB;CACjE;AAEH,MAAMK,mBAAkDjE,EAAE8C,YAAY,CAAC;IACrEoB,OAAOlE,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIwD,gCAAgCjD,QAAQ;IACpEoD,cAAcnE,EACXO,MAAM,CACLP,EAAEQ,MAAM,IACRR,EAAEsB,KAAK,CAAC;QACNtB,EAAEQ,MAAM;QACRR,EAAEc,KAAK,CAACd,EAAEQ,MAAM;QAChBR,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEc,KAAK,CAACd,EAAEQ,MAAM;SAAI;KAC/D,GAEFO,QAAQ;IACXqD,mBAAmBpE,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IAC/CsD,MAAMrE,EAAEQ,MAAM,GAAGO,QAAQ;IACzBuD,UAAUtE,EAAEiB,OAAO,GAAGF,QAAQ;IAC9BwD,oBAAoBvE,EAAEQ,MAAM,GAAGO,QAAQ;IACvCyD,aAAaxE,EACVc,KAAK,CACJd,EAAES,MAAM,CAAC;QACP6C,MAAMtD,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEuD,UAAU,CAACC;SAAQ;QAChDiB,OAAOzE,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEuD,UAAU,CAACC;SAAQ,EAAEzC,QAAQ;QAC3D2D,aAAa1E,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAEuD,UAAU,CAACC;SAAQ,EAAEzC,QAAQ;IACnE,IAEDA,QAAQ;AACb;AAEA,OAAO,MAAM4D,qBAAqB;IAChCC,gBAAgB5E,EAAEQ,MAAM,GAAGO,QAAQ;IACnC8D,eAAe7E,EAAEiB,OAAO,GAAGF,QAAQ;IACnC+D,OAAO9E,EAAEiB,OAAO,GAAGF,QAAQ;IAC3BgE,oBAAoB/E,EAAEiB,OAAO,GAAGF,QAAQ;IACxCiE,qBAAqBhF,EAAEiB,OAAO,GAAGF,QAAQ;IACzCkE,uBAAuBjF,EAAEiB,OAAO,GAAGF,QAAQ;IAC3CmE,6BAA6BlF,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IACzDoE,YAAYnF,EACTS,MAAM,CAAC;QACN2E,SAASpF,EAAE0C,MAAM,GAAG3B,QAAQ;QAC5BsE,QAAQrF,EAAE0C,MAAM,GAAG4C,GAAG,CAAC,IAAIvE,QAAQ;IACrC,GACCA,QAAQ;IACXwE,WAAWvF,EACRO,MAAM,CACLP,EAAES,MAAM,CAAC;QACP+E,OAAOxF,EAAE0C,MAAM,GAAG3B,QAAQ;QAC1B0E,YAAYzF,EAAE0C,MAAM,GAAG3B,QAAQ;QAC/B2E,QAAQ1F,EAAE0C,MAAM,GAAG3B,QAAQ;IAC7B,IAEDA,QAAQ;IACX4E,eAAe3F,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEQ,MAAM,GAAGO,QAAQ,IAAIA,QAAQ;IACnE6E,oBAAoB5F,EAAEiB,OAAO,GAAGF,QAAQ;IACxC8E,6BAA6B7F,EAAEiB,OAAO,GAAGF,QAAQ;IACjD+E,+BAA+B9F,EAAE0C,MAAM,GAAG3B,QAAQ;IAClDgF,MAAM/F,EAAE0C,MAAM,GAAG3B,QAAQ;IACzBiF,yBAAyBhG,EAAEiB,OAAO,GAAGF,QAAQ;IAC7CkF,WAAWjG,EAAEiB,OAAO,GAAGF,QAAQ;IAC/BmF,qBAAqBlG,EAAEiB,OAAO,GAAGF,QAAQ;IACzCoF,2BAA2BnG,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IACvDqF,mBAAmBpG,EAAEiB,OAAO,GAAGF,QAAQ;IACvCsF,gBAAgBrG,EAAEiB,OAAO,GAAGF,QAAQ;IACpCuF,YAAYtG,EAAEiB,OAAO,GAAGF,QAAQ;IAChCwF,mBAAmBvG,EAAEiB,OAAO,GAAGF,QAAQ;IACvCyF,WAAWxG,EAAEiB,OAAO,GAAGF,QAAQ;IAC/B0F,YAAYzG,EAAEiB,OAAO,GAAGF,QAAQ;IAChC2F,kBAAkB1G,EACfsB,KAAK,CAAC;QACLtB,EAAEiB,OAAO;QACTjB,EAAES,MAAM,CAAC;YACPkG,SAAS3G,EAAE0C,MAAM,GAAG3B,QAAQ;YAC5B6F,eAAe5G,EAAE0C,MAAM,GAAG3B,QAAQ;QACpC;KACD,EACAA,QAAQ;IACX8F,yBAAyB7G,EAAEiB,OAAO,GAAGF,QAAQ;IAC7C+F,yBAAyB9G,EAAEiB,OAAO,GAAGF,QAAQ;IAC7CgG,iBAAiB/G,EAAEiB,OAAO,GAAGF,QAAQ;IACrCiG,WAAWhH,EAAEiB,OAAO,GAAGF,QAAQ;IAC/BkG,cAAcjH,EAAEsB,KAAK,CAAC;QAACtB,EAAEiB,OAAO;QAAIjB,EAAE2B,OAAO,CAAC;KAAS,EAAEZ,QAAQ;IACjEmG,eAAelH,EACZS,MAAM,CAAC;QACN0G,eAAehH,WAAWY,QAAQ;QAClCqG,gBAAgBpH,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IAC9C,GACCA,QAAQ;IACXsG,uBAAuBlH,WAAWY,QAAQ;IAC1C,4CAA4C;IAC5CuG,gBAAgBtH,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEY,GAAG,IAAIG,QAAQ;IACtDwG,aAAavH,EAAEiB,OAAO,GAAGF,QAAQ;IACjCyG,mCAAmCxH,EAAEiB,OAAO,GAAGF,QAAQ;IACvD0G,8BAA8BzH,EAAEiB,OAAO,GAAGF,QAAQ;IAClD2G,mCAAmC1H,EAAEiB,OAAO,GAAGF,QAAQ;IACvD4G,uBAAuB3H,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;IAChD6G,qBAAqB5H,EAAEQ,MAAM,GAAGO,QAAQ;IACxC8G,oBAAoB7H,EAAEiB,OAAO,GAAGF,QAAQ;IACxC+G,gBAAgB9H,EAAEiB,OAAO,GAAGF,QAAQ;IACpCgH,UAAU/H,EAAEiB,OAAO,GAAGF,QAAQ;IAC9BiH,mBAAmBhI,EAAE0C,MAAM,GAAGuF,GAAG,GAAGlH,QAAQ,GAAGmH,QAAQ;IACvDC,sBAAsBnI,EAAEiB,OAAO,GAAGF,QAAQ,GAAGmH,QAAQ;IACrDE,wBAAwBpI,EAAE0C,MAAM,GAAGuF,GAAG,GAAGlH,QAAQ;IACjDsH,sBAAsBrI,EAAE0C,MAAM,GAAGuF,GAAG,GAAGlH,QAAQ;IAC/CuH,sBAAsBtI,EAAEiB,OAAO,GAAGF,QAAQ,GAAGmH,QAAQ;IACrDK,oBAAoBvI,EAAEiB,OAAO,GAAGF,QAAQ,GAAGmH,QAAQ;IACnDM,gBAAgBxI,EAAEiB,OAAO,GAAGF,QAAQ;IACpC0H,oBAAoBzI,EAAE0C,MAAM,GAAG3B,QAAQ;IACvC2H,kBAAkB1I,EAAEiB,OAAO,GAAGF,QAAQ;IACtC4H,sBAAsB3I,EAAEiB,OAAO,GAAGF,QAAQ;IAC1C6H,oBAAoB5I,EAAEwB,IAAI,CAAC;QAAC;QAAU;KAAW,EAAET,QAAQ;IAC3D8H,eAAe7I,EAAEwB,IAAI,CAAC;QAAC;QAAU;KAAW,EAAET,QAAQ;IACtD+H,6BAA6B3I,WAAWY,QAAQ;IAChDgI,wBAAwB5I,WAAWY,QAAQ;IAC3CiI,oBAAoBhJ,EAAEiB,OAAO,GAAGF,QAAQ;IACxCkI,aAAajJ,EACVsB,KAAK,CAAC;QACLtB,EAAEiB,OAAO;QACTjB,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;QACV3B,EAAE8C,YAAY,CAAC;YAAEvB,MAAMvB,EAAE2B,OAAO,CAAC;QAAU;QAC3C3B,EAAE8C,YAAY,CAAC;YAAEvB,MAAMvB,EAAE2B,OAAO,CAAC;QAAS;QAC1C3B,EAAE8C,YAAY,CAAC;YACbvB,MAAMvB,EAAE2B,OAAO,CAAC;YAChBuH,aAAalJ,EAAE0C,MAAM,GAAGyG,WAAW,GAAGC,MAAM,GAAGrI,QAAQ;YACvDsI,kBAAkBrJ,EAAE0C,MAAM,GAAGyG,WAAW,GAAGC,MAAM,GAAGrI,QAAQ;QAC9D;KACD,EACAA,QAAQ;IACXuI,mBAAmBtJ,EAAEiB,OAAO,GAAGF,QAAQ;IACvC,kDAAkD;IAClDwI,aAAavJ,EAAEsB,KAAK,CAAC;QAACtB,EAAEiB,OAAO;QAAIjB,EAAEY,GAAG;KAAG,EAAEG,QAAQ;IACrDyI,uBAAuBxJ,EAAEiB,OAAO,GAAGF,QAAQ;IAC3C0I,wBAAwBzJ,EAAEiB,OAAO,GAAGF,QAAQ;IAC5C2I,2BAA2B1J,EAAEiB,OAAO,GAAGF,QAAQ;IAC/C4I,KAAK3J,EACFsB,KAAK,CAAC;QAACtB,EAAEiB,OAAO;QAAIjB,EAAE2B,OAAO,CAAC;KAAe,EAC7CiI,QAAQ,GACR7I,QAAQ;IACX8I,OAAO7J,EAAEiB,OAAO,GAAGF,QAAQ;IAC3B+I,oBAAoB9J,EAAEiB,OAAO,GAAGF,QAAQ;IACxCgJ,cAAc/J,EAAE0C,MAAM,GAAG4C,GAAG,CAAC,GAAGvE,QAAQ;IACxCiJ,YAAYhK,EAAEiB,OAAO,GAAGF,QAAQ;IAChCkJ,WAAWjK,EAAEiB,OAAO,GAAGF,QAAQ;IAC/BmJ,0CAA0ClK,EAAEiB,OAAO,GAAGF,QAAQ;IAC9DoJ,2BAA2BnK,EAAEiB,OAAO,GAAGF,QAAQ;IAC/CqJ,mBAAmBpK,EAAEiB,OAAO,GAAGF,QAAQ;IACvCsJ,KAAKrK,EACFS,MAAM,CAAC;QACN6J,WAAWtK,EAAEwB,IAAI,CAAC;YAAC;YAAU;YAAU;SAAS,EAAET,QAAQ;IAC5D,GACCA,QAAQ;IACXwJ,YAAYvK,CACV,gEAAgE;KAC/Dc,KAAK,CAACd,EAAEwK,KAAK,CAAC;QAACxK,EAAEQ,MAAM;QAAIR,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEY,GAAG;KAAI,GACzDG,QAAQ;IACX0J,eAAezK,EACZS,MAAM,CAAC;QACNiK,MAAM1K,EAAEwB,IAAI,CAAC;YAAC;YAAS;SAAQ,EAAET,QAAQ;QACzC4J,QAAQ3K,EAAEQ,MAAM,GAAGO,QAAQ;QAC3B6J,MAAM5K,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QAClC8J,SAAS7K,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QACrC+J,SAAS9K,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QACrCgK,kBAAkB/K,EAAEiB,OAAO,GAAGF,QAAQ;QACtCiK,oBAAoBhL,EAAEiB,OAAO,GAAGF,QAAQ;QACxCkK,OAAOjL,EAAEiB,OAAO,GAAGF,QAAQ;QAC3BmK,OAAOlL,EAAEiB,OAAO,GAAGF,QAAQ;IAC7B,GACCA,QAAQ;IACXoK,mBAAmBnL,EAAEiB,OAAO,GAAGF,QAAQ;IACvC,iEAAiE;IACjEqK,YAAYpL,EAAEY,GAAG,GAAGG,QAAQ;IAC5BsK,gBAAgBrL,EAAEiB,OAAO,GAAGF,QAAQ;IACpCuK,eAAetL,EAAEiB,OAAO,GAAGF,QAAQ;IACnCwK,sBAAsBvL,EACnBc,KAAK,CACJd,EAAEsB,KAAK,CAAC;QACNtB,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;QACV3B,EAAE2B,OAAO,CAAC;KACX,GAEFZ,QAAQ;IACX,sEAAsE;IACtE,iFAAiF;IACjFyK,OAAOxL,EACJsB,KAAK,CAAC;QACLtB,EAAEiB,OAAO;QACTjB,EAAES,MAAM,CAAC;YACPgL,aAAazL,EAAEiB,OAAO,GAAGF,QAAQ;YACjC2K,YAAY1L,EAAEQ,MAAM,GAAGO,QAAQ;YAC/B4K,iBAAiB3L,EAAEQ,MAAM,GAAGO,QAAQ;YACpC6K,sBAAsB5L,EAAEQ,MAAM,GAAGO,QAAQ;YACzC8K,SAAS7L,EAAEwB,IAAI,CAAC;gBAAC;gBAAO;aAAa,EAAET,QAAQ;QACjD;KACD,EACAA,QAAQ;IACX+K,qBAAqB9L,EAAEiB,OAAO,GAAGF,QAAQ;IACzCgL,mBAAmB/L,EAAEiB,OAAO,GAAGF,QAAQ;IACvCiL,aAAahM,EAAEiB,OAAO,GAAGF,QAAQ;IACjCkL,oBAAoBjM,EAAEiB,OAAO,GAAGF,QAAQ;IACxCmL,4BAA4BlM,EAAEiB,OAAO,GAAGF,QAAQ;IAChDoL,yBAAyBnM,EACtBsB,KAAK,CAAC;QAACtB,EAAE2B,OAAO,CAAC;QAAQ3B,EAAE2B,OAAO,CAAC;KAAQ,EAC3CZ,QAAQ;IACXqL,gCAAgCpM,EAC7BwB,IAAI,CAAC;QAAC;QAAiB;QAAkB;KAAqB,EAC9DT,QAAQ;IACXsL,iBAAiBrM,EAAEiB,OAAO,GAAGF,QAAQ;IACrCuL,gCAAgCtM,EAAEiB,OAAO,GAAGF,QAAQ;IACpDwL,kCAAkCvM,EAAEiB,OAAO,GAAGF,QAAQ;IACtDyL,qBAAqBxM,EAAEiB,OAAO,GAAGF,QAAQ;IACzC0L,0BAA0BzM,EAAEiB,OAAO,GAAGF,QAAQ;IAC9C2L,sBAAsB1M,EAAEiB,OAAO,GAAGF,QAAQ;IAC1C4L,8BAA8B3M,EAAEiB,OAAO,GAAGF,QAAQ;IAClD6L,8BAA8B5M,EAAEiB,OAAO,GAAGF,QAAQ;IAClD8L,wBAAwB7M,EAAEiB,OAAO,GAAGF,QAAQ;IAC5C+L,4BAA4B9M,EAAEQ,MAAM,GAAGO,QAAQ;IAC/CgM,wCAAwC/M,EAAEiB,OAAO,GAAGF,QAAQ;IAC5DiM,wCAAwChN,EAAEiB,OAAO,GAAGF,QAAQ;IAC5DkM,0BAA0BjN,EAAEiB,OAAO,GAAGF,QAAQ;IAC9CmM,yBAAyBlN,EAAEiB,OAAO,GAAGF,QAAQ;IAC7CoM,0BAA0BnN,EAAEiB,OAAO,GAAGF,QAAQ;IAC9CqM,yBAAyBpN,EAAEiB,OAAO,GAAGF,QAAQ;IAC7CsM,6BAA6BrN,EAAEiB,OAAO,GAAGF,QAAQ;IACjDuM,oBAAoBtN,EAAEwB,IAAI,CAAC;QAAC;QAAS;KAAgB,EAAET,QAAQ;IAC/DwM,iCAAiCvN,EAAEiB,OAAO,GAAGF,QAAQ;IACrDyM,4BAA4BxN,EAAEiB,OAAO,GAAGF,QAAQ;IAChD0M,wBAAwBzN,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IACpD2M,qBAAqB1N,EAAEiB,OAAO,GAAGF,QAAQ;IACzC4M,kBAAkB3N,EAAEiB,OAAO,GAAGF,QAAQ;IACtC6M,qBAAqB5N,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IACjD8M,oBAAoB7N,EAAEiB,OAAO,GAAGF,QAAQ;IACxC+M,kBAAkB9N,EAAEiB,OAAO,GAAGF,QAAQ;IACtCgN,eAAe/N,EAAEiB,OAAO,GAAGF,QAAQ;IACnCiN,iBAAiBhO,EAAEiB,OAAO,GAAGF,QAAQ;IACrCkN,sBAAsBjO,EACnBS,MAAM,CAAC;QACNoK,SAAS7K,EAAEc,KAAK,CAACd,EAAEwB,IAAI,CAACvB,6BAA6Bc,QAAQ;QAC7D+J,SAAS9K,EAAEc,KAAK,CAACd,EAAEwB,IAAI,CAACvB,6BAA6Bc,QAAQ;IAC/D,GACCA,QAAQ;IACXmN,WAAWlO,EAAEiB,OAAO,GAAGF,QAAQ;IAC/BoN,mBAAmBnO,EAAEwB,IAAI,CAACtB,6BAA6Ba,QAAQ;IAC/DqN,uBAAuBpO,EAAE2B,OAAO,CAAC,MAAMZ,QAAQ;IAE/CsN,mBAAmBrO,EAAEiB,OAAO,GAAGF,QAAQ;IACvCuN,iBAAiBtO,EACdS,MAAM,CAAC;QACN8N,iBAAiBvO,EACdwB,IAAI,CAAC;YACJ;YACA;YACA;YACA;SACD,EACAT,QAAQ;IACb,GACCA,QAAQ;IACXyN,4BAA4BxO,EAAE0C,MAAM,GAAGuF,GAAG,GAAGlH,QAAQ;IACrD0N,gCAAgCzO,EAAE0C,MAAM,GAAGuF,GAAG,GAAGlH,QAAQ;IACzD2N,mCAAmC1O,EAAE0C,MAAM,GAAGuF,GAAG,GAAGlH,QAAQ;IAC5D4N,UAAU3O,EAAEiB,OAAO,GAAGF,QAAQ;IAC9B6N,0BAA0B5O,EAAEiB,OAAO,GAAGF,QAAQ;IAC9C8N,gBAAgB7O,EAAEiB,OAAO,GAAGF,QAAQ;IACpC+N,UAAU9O,EAAEiB,OAAO,GAAGF,QAAQ;IAC9BgO,iBAAiB/O,EAAE0C,MAAM,GAAGsM,QAAQ,GAAGjO,QAAQ;IAC/CkO,qBAAqBjP,EAClBS,MAAM,CAAC;QACNyO,sBAAsBlP,EAAE0C,MAAM,GAAGuF,GAAG;IACtC,GACClH,QAAQ;IACXoO,gBAAgBnP,EAAEiB,OAAO,GAAGF,QAAQ;IACpCqO,4BAA4BpP,EAAEiB,OAAO,GAAGF,QAAQ;IAChDsO,4BAA4BrP,EACzBsB,KAAK,CAAC;QACLtB,EAAEiB,OAAO;QACTjB,EAAEwB,IAAI,CAAC;YAAC;YAAS;YAAQ;SAAU;QACnCxB,EAAES,MAAM,CAAC;YACP6O,OAAOtP,EAAEwB,IAAI,CAAC;gBAAC;gBAAS;gBAAQ;aAAU,EAAET,QAAQ;YACpDwO,YAAYvP,EAAE0C,MAAM,GAAGuF,GAAG,GAAG+G,QAAQ,GAAGjO,QAAQ;YAChDyO,WAAWxP,EAAE0C,MAAM,GAAGuF,GAAG,GAAG+G,QAAQ,GAAGjO,QAAQ;YAC/C0O,oBAAoBzP,EAAEiB,OAAO,GAAGF,QAAQ;QAC1C;KACD,EACAA,QAAQ;IACX2O,aAAa1P,EAAEiB,OAAO,GAAGF,QAAQ;IACjC4O,oBAAoB3P,EAAEiB,OAAO,GAAGF,QAAQ;IACxC6O,2BAA2B5P,EAAEiB,OAAO,GAAGF,QAAQ;IAC/C8O,yBAAyB7P,EAAEiB,OAAO,GAAGF,QAAQ;IAC7C+O,iBAAiB9P,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;IAC7CgP,yBAAyB/P,EAAEgQ,QAAQ,GAAGC,OAAO,CAACjQ,EAAEkQ,OAAO,CAAClQ,EAAEmQ,IAAI,KAAKpP,QAAQ;IAC3EqP,yBAAyBpQ,EAAEwB,IAAI,CAAC;QAAC;QAAQ;KAAQ,EAAET,QAAQ;AAC7D,EAAC;AAED,OAAO,MAAMsP,eAAwCrQ,EAAEoD,IAAI,CAAC,IAC1DpD,EAAE8C,YAAY,CAAC;QACbwN,aAAatQ,EAAEQ,MAAM,GAAGO,QAAQ;QAChCwP,YAAYvQ,EAAEiB,OAAO,GAAGF,QAAQ;QAChCyP,mBAAmBxQ,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QAC/C0P,aAAazQ,EAAEQ,MAAM,GAAGO,QAAQ;QAChCiB,UAAUhC,EAAEQ,MAAM,GAAGO,QAAQ;QAC7B2P,+BAA+B1Q,EAAEiB,OAAO,GAAGF,QAAQ;QACnDgG,iBAAiB/G,EAAEiB,OAAO,GAAGF,QAAQ;QACrC4P,cAAc3Q,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC,GAAG7P,QAAQ;QACxC4E,eAAe3F,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEQ,MAAM,GAAGO,QAAQ,IAAIA,QAAQ;QACnEwE,WAAWvF,EACRO,MAAM,CACLP,EAAES,MAAM,CAAC;YACP+E,OAAOxF,EAAE0C,MAAM,GAAG3B,QAAQ;YAC1B0E,YAAYzF,EAAE0C,MAAM,GAAG3B,QAAQ;YAC/B2E,QAAQ1F,EAAE0C,MAAM,GAAG3B,QAAQ;QAC7B,IAEDA,QAAQ;QACX8P,oBAAoB7Q,EAAE0C,MAAM,GAAG3B,QAAQ;QACvC+P,cAAc9Q,EAAEiB,OAAO,GAAGF,QAAQ;QAClCgQ,UAAU/Q,EACP8C,YAAY,CAAC;YACZkO,SAAShR,EACNsB,KAAK,CAAC;gBACLtB,EAAEiB,OAAO;gBACTjB,EAAES,MAAM,CAAC;oBACPwQ,WAAWjR,EAAEiB,OAAO,GAAGF,QAAQ;oBAC/BmQ,WAAWlR,EACRsB,KAAK,CAAC;wBACLtB,EAAE2B,OAAO,CAAC;wBACV3B,EAAE2B,OAAO,CAAC;wBACV3B,EAAE2B,OAAO,CAAC;qBACX,EACAZ,QAAQ;oBACXoQ,aAAanR,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC,GAAG7P,QAAQ;oBACvCqQ,WAAWpR,EACRO,MAAM,CACLP,EAAEQ,MAAM,IACRR,EAAEO,MAAM,CACNP,EAAEQ,MAAM,IACRR,EAAES,MAAM,CAAC;wBACP4Q,iBAAiBrR,EACdwK,KAAK,CAAC;4BAACxK,EAAEQ,MAAM;4BAAIR,EAAEQ,MAAM;yBAAG,EAC9BO,QAAQ;wBACXuQ,kBAAkBtR,EACfwK,KAAK,CAAC;4BAACxK,EAAEQ,MAAM;4BAAIR,EAAEQ,MAAM;yBAAG,EAC9BO,QAAQ;oBACb,KAGHA,QAAQ;gBACb;aACD,EACAA,QAAQ;YACXwQ,uBAAuBvR,EACpBsB,KAAK,CAAC;gBACLtB,EAAEiB,OAAO,GAAGF,QAAQ;gBACpBf,EAAES,MAAM,CAAC;oBACP+Q,YAAYxR,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;gBAC1C;aACD,EACAA,QAAQ;YACX0Q,OAAOzR,EACJS,MAAM,CAAC;gBACNiR,KAAK1R,EAAEQ,MAAM;gBACbmR,mBAAmB3R,EAAEQ,MAAM,GAAGO,QAAQ;gBACtC6Q,UAAU5R,EAAEwB,IAAI,CAAC;oBAAC;oBAAc;oBAAc;iBAAO,EAAET,QAAQ;gBAC/D8Q,gBAAgB7R,EAAEiB,OAAO,GAAGF,QAAQ;YACtC,GACCA,QAAQ;YACX+Q,eAAe9R,EACZsB,KAAK,CAAC;gBACLtB,EAAEiB,OAAO,GAAGF,QAAQ;gBACpBf,EAAES,MAAM,CAAC;oBACPqK,SAAS9K,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIoQ,GAAG,CAAC,GAAG7P,QAAQ;gBAC9C;aACD,EACAA,QAAQ;YACXgR,kBAAkB/R,EAAEsB,KAAK,CAAC;gBACxBtB,EAAEiB,OAAO,GAAGF,QAAQ;gBACpBf,EAAES,MAAM,CAAC;oBACPuR,aAAahS,EAAEiB,OAAO,GAAGF,QAAQ;oBACjCkR,qBAAqBjS,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;oBACjDmR,KAAKlS,EAAEiB,OAAO,GAAGF,QAAQ;oBACzBoR,UAAUnS,EAAEiB,OAAO,GAAGF,QAAQ;oBAC9BqR,sBAAsBpS,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;oBAClDsR,QAAQrS,EAAEiB,OAAO,GAAGF,QAAQ;oBAC5BuR,2BAA2BtS,EAAEiB,OAAO,GAAGF,QAAQ;oBAC/CwR,WAAWvS,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC,GAAG7P,QAAQ;oBACrCyR,MAAMxS,EAAEiB,OAAO,GAAGF,QAAQ;oBAC1B0R,SAASzS,EAAEiB,OAAO,GAAGF,QAAQ;gBAC/B;aACD;YACD2R,WAAW1S,EAAEsB,KAAK,CAAC;gBACjBtB,EAAEiB,OAAO,GAAGF,QAAQ;gBACpBf,EAAES,MAAM,CAAC;oBACPuN,iBAAiBhO,EAAEiB,OAAO,GAAGF,QAAQ;gBACvC;aACD;YACD4R,QAAQ3S,EACLO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEsB,KAAK,CAAC;gBAACtB,EAAEQ,MAAM;gBAAIR,EAAE0C,MAAM;gBAAI1C,EAAEiB,OAAO;aAAG,GAChEF,QAAQ;YACX6R,cAAc5S,EACXO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEsB,KAAK,CAAC;gBAACtB,EAAEQ,MAAM;gBAAIR,EAAE0C,MAAM;gBAAI1C,EAAEiB,OAAO;aAAG,GAChEF,QAAQ;YACX8R,2BAA2B7S,EACxBgQ,QAAQ,GACRC,OAAO,CAACjQ,EAAEkQ,OAAO,CAAClQ,EAAEmQ,IAAI,KACxBpP,QAAQ;QACb,GACCA,QAAQ;QACX+R,UAAU9S,EAAEiB,OAAO,GAAGF,QAAQ;QAC9BgS,cAAc/S,EAAEQ,MAAM,GAAGO,QAAQ;QACjCiS,aAAahT,EACVsB,KAAK,CAAC;YAACtB,EAAE2B,OAAO,CAAC;YAAc3B,EAAE2B,OAAO,CAAC;SAAmB,EAC5DZ,QAAQ;QACXkS,cAAcjT,EAAEQ,MAAM,GAAGO,QAAQ;QACjCmS,eAAelT,EACZsB,KAAK,CAAC;YACLtB,EAAES,MAAM,CAAC;gBACP0S,UAAUnT,EACPsB,KAAK,CAAC;oBACLtB,EAAE2B,OAAO,CAAC;oBACV3B,EAAE2B,OAAO,CAAC;oBACV3B,EAAE2B,OAAO,CAAC;oBACV3B,EAAE2B,OAAO,CAAC;iBACX,EACAZ,QAAQ;YACb;YACAf,EAAE2B,OAAO,CAAC;SACX,EACAZ,QAAQ;QACXqS,SAASpT,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC,GAAG7P,QAAQ;QACnCsS,KAAKrT,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEsB,KAAK,CAAC;YAACtB,EAAEQ,MAAM;YAAIR,EAAE4B,SAAS;SAAG,GAAGb,QAAQ;QACxEuS,2BAA2BtT,EAAEiB,OAAO,GAAGF,QAAQ;QAC/CwS,6BAA6BvT,EAAEiB,OAAO,GAAGF,QAAQ;QACjDyS,cAAcxT,EAAE8C,YAAY,CAAC6B,oBAAoB5D,QAAQ;QACzD0S,eAAezT,EACZgQ,QAAQ,GACR0D,IAAI,CACHpT,YACAN,EAAES,MAAM,CAAC;YACPkT,KAAK3T,EAAEiB,OAAO;YACd2S,KAAK5T,EAAEQ,MAAM;YACbqT,QAAQ7T,EAAEQ,MAAM,GAAG0H,QAAQ;YAC3BkL,SAASpT,EAAEQ,MAAM;YACjBsT,SAAS9T,EAAEQ,MAAM;QACnB,IAEDyP,OAAO,CAACjQ,EAAEsB,KAAK,CAAC;YAAChB;YAAYN,EAAEkQ,OAAO,CAAC5P;SAAY,GACnDS,QAAQ;QACXgT,iBAAiB/T,EACdgQ,QAAQ,GACR0D,IAAI,GACJzD,OAAO,CACNjQ,EAAEsB,KAAK,CAAC;YACNtB,EAAEQ,MAAM;YACRR,EAAEgU,IAAI;YACNhU,EAAEkQ,OAAO,CAAClQ,EAAEsB,KAAK,CAAC;gBAACtB,EAAEQ,MAAM;gBAAIR,EAAEgU,IAAI;aAAG;SACzC,GAEFjT,QAAQ;QACXkT,eAAejU,EAAEiB,OAAO,GAAGF,QAAQ;QACnC6B,SAAS5C,EACNgQ,QAAQ,GACR0D,IAAI,GACJzD,OAAO,CAACjQ,EAAEkQ,OAAO,CAAClQ,EAAEc,KAAK,CAAC6B,WAC1B5B,QAAQ;QACXmT,iBAAiBlU,EAAEuD,UAAU,CAACC,QAAQzC,QAAQ;QAC9CoT,kBAAkBnU,EACf8C,YAAY,CAAC;YAAEsR,WAAWpU,EAAEiB,OAAO,GAAGF,QAAQ;QAAG,GACjDA,QAAQ;QACXsT,MAAMrU,EACH8C,YAAY,CAAC;YACZwR,eAAetU,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC;YAC9B2D,SAASvU,EACNc,KAAK,CACJd,EAAE8C,YAAY,CAAC;gBACbwR,eAAetU,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC;gBAC9B4D,QAAQxU,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC;gBACvB6D,MAAMzU,EAAE2B,OAAO,CAAC,MAAMZ,QAAQ;gBAC9B2T,SAAS1U,EAAEc,KAAK,CAACd,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC,IAAI7P,QAAQ;YAC9C,IAEDA,QAAQ;YACX4T,iBAAiB3U,EAAE2B,OAAO,CAAC,OAAOZ,QAAQ;YAC1C2T,SAAS1U,EAAEc,KAAK,CAACd,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC;QAClC,GACC1I,QAAQ,GACRnH,QAAQ;QACX6T,QAAQ5U,EACL8C,YAAY,CAAC;YACZ+R,eAAe7U,EACZc,KAAK,CACJd,EAAE8C,YAAY,CAAC;gBACbgS,UAAU9U,EAAEQ,MAAM,GAAGO,QAAQ;gBAC7BgU,QAAQ/U,EAAEQ,MAAM,GAAGO,QAAQ;YAC7B,IAEDiU,GAAG,CAAC,IACJjU,QAAQ;YACXkU,gBAAgBjV,EACbc,KAAK,CACJd,EAAEsB,KAAK,CAAC;gBACNtB,EAAEuD,UAAU,CAAC2R;gBACblV,EAAE8C,YAAY,CAAC;oBACbqS,UAAUnV,EAAEQ,MAAM;oBAClBsU,UAAU9U,EAAEQ,MAAM,GAAGO,QAAQ;oBAC7BqU,MAAMpV,EAAEQ,MAAM,GAAGwU,GAAG,CAAC,GAAGjU,QAAQ;oBAChCsU,UAAUrV,EAAEwB,IAAI,CAAC;wBAAC;wBAAQ;qBAAQ,EAAET,QAAQ;oBAC5CgU,QAAQ/U,EAAEQ,MAAM,GAAGO,QAAQ;gBAC7B;aACD,GAEFiU,GAAG,CAAC,IACJjU,QAAQ;YACXuU,aAAatV,EAAEiB,OAAO,GAAGF,QAAQ;YACjCwU,oBAAoBvV,EAAEiB,OAAO,GAAGF,QAAQ;YACxCyU,uBAAuBxV,EAAEQ,MAAM,GAAGO,QAAQ;YAC1C0U,wBAAwBzV,EAAEwB,IAAI,CAAC;gBAAC;gBAAU;aAAa,EAAET,QAAQ;YACjE2U,qBAAqB1V,EAAEiB,OAAO,GAAGF,QAAQ;YACzC4U,yBAAyB3V,EAAEiB,OAAO,GAAGF,QAAQ;YAC7C6U,aAAa5V,EACVc,KAAK,CAACd,EAAE0C,MAAM,GAAGuF,GAAG,GAAG3C,GAAG,CAAC,GAAGuQ,GAAG,CAAC,QAClCb,GAAG,CAAC,IACJjU,QAAQ;YACX+U,qBAAqB9V,EAAEiB,OAAO,GAAGF,QAAQ;YACzCwT,SAASvU,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIwU,GAAG,CAAC,IAAIjU,QAAQ;YAC7CgV,SAAS/V,EACNc,KAAK,CAACd,EAAEwB,IAAI,CAAC;gBAAC;gBAAc;aAAa,GACzCwT,GAAG,CAAC,GACJjU,QAAQ;YACXiV,YAAYhW,EACTc,KAAK,CAACd,EAAE0C,MAAM,GAAGuF,GAAG,GAAG3C,GAAG,CAAC,GAAGuQ,GAAG,CAAC,QAClCjF,GAAG,CAAC,GACJoE,GAAG,CAAC,IACJjU,QAAQ;YACXgC,QAAQ/C,EAAEwB,IAAI,CAACzB,eAAegB,QAAQ;YACtCkV,YAAYjW,EAAEQ,MAAM,GAAGO,QAAQ;YAC/BmV,sBAAsBlW,EAAE0C,MAAM,GAAGuF,GAAG,GAAG2I,GAAG,CAAC,GAAG7P,QAAQ;YACtDoV,kBAAkBnW,EAAE0C,MAAM,GAAGuF,GAAG,GAAG2I,GAAG,CAAC,GAAGoE,GAAG,CAAC,IAAIjU,QAAQ;YAC1DqV,qBAAqBpW,EAClB0C,MAAM,GACNuF,GAAG,GACH2I,GAAG,CAAC,GACJoE,GAAG,CAACqB,OAAOC,gBAAgB,EAC3BvV,QAAQ;YACXwV,iBAAiBvW,EAAE0C,MAAM,GAAGuF,GAAG,GAAG3C,GAAG,CAAC,GAAGvE,QAAQ;YACjDuC,MAAMtD,EAAEQ,MAAM,GAAGO,QAAQ;YACzByV,WAAWxW,EACRc,KAAK,CAACd,EAAE0C,MAAM,GAAGuF,GAAG,GAAG3C,GAAG,CAAC,GAAGuQ,GAAG,CAAC,MAClCjF,GAAG,CAAC,GACJoE,GAAG,CAAC,IACJjU,QAAQ;QACb,GACCA,QAAQ;QACX0V,SAASzW,EACNsB,KAAK,CAAC;YACLtB,EAAES,MAAM,CAAC;gBACPiW,SAAS1W,EACNS,MAAM,CAAC;oBACNkW,SAAS3W,EAAEiB,OAAO,GAAGF,QAAQ;oBAC7B6V,cAAc5W,EAAEiB,OAAO,GAAGF,QAAQ;gBACpC,GACCA,QAAQ;gBACX8V,kBAAkB7W,EACfsB,KAAK,CAAC;oBACLtB,EAAEiB,OAAO;oBACTjB,EAAES,MAAM,CAAC;wBACPqW,QAAQ9W,EAAEc,KAAK,CAACd,EAAEuD,UAAU,CAACC;oBAC/B;iBACD,EACAzC,QAAQ;gBACXgW,iBAAiB/W,EAAEiB,OAAO,GAAGF,QAAQ;gBACrCiW,mBAAmBhX,EAChBsB,KAAK,CAAC;oBAACtB,EAAEiB,OAAO;oBAAIjB,EAAEwB,IAAI,CAAC;wBAAC;wBAAS;qBAAO;iBAAE,EAC9CT,QAAQ;YACb;YACAf,EAAE2B,OAAO,CAAC;SACX,EACAZ,QAAQ;QACXkW,mBAAmBjX,EAChBO,MAAM,CACLP,EAAEQ,MAAM,IACRR,EAAES,MAAM,CAAC;YACPyW,WAAWlX,EAAEsB,KAAK,CAAC;gBAACtB,EAAEQ,MAAM;gBAAIR,EAAEO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEQ,MAAM;aAAI;YACjE2W,mBAAmBnX,EAAEiB,OAAO,GAAGF,QAAQ;YACvCqW,uBAAuBpX,EAAEiB,OAAO,GAAGF,QAAQ;QAC7C,IAEDA,QAAQ;QACXsW,iBAAiBrX,EACd8C,YAAY,CAAC;YACZwU,gBAAgBtX,EAAE0C,MAAM,GAAG3B,QAAQ;YACnCwW,mBAAmBvX,EAAE0C,MAAM,GAAG3B,QAAQ;QACxC,GACCA,QAAQ;QACXyW,QAAQxX,EAAEwB,IAAI,CAAC;YAAC;YAAc;SAAS,EAAET,QAAQ;QACjD0W,uBAAuBzX,EAAEQ,MAAM,GAAGO,QAAQ;QAC1C2W,2BAA2B1X,EACxBO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEc,KAAK,CAACd,EAAEQ,MAAM,KACnCO,QAAQ;QACX4W,2BAA2B3X,EACxBO,MAAM,CAACP,EAAEQ,MAAM,IAAIR,EAAEc,KAAK,CAACd,EAAEQ,MAAM,KACnCO,QAAQ;QACX6W,gBAAgB5X,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIoQ,GAAG,CAAC,GAAG7P,QAAQ;QACnD8W,6BAA6B7X,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QACzD+W,oBAAoB9X,EACjBsB,KAAK,CAAC;YAACtB,EAAEiB,OAAO;YAAIjB,EAAE2B,OAAO,CAAC;SAAkB,EAChDZ,QAAQ;QACXgX,iBAAiB/X,EAAEiB,OAAO,GAAGF,QAAQ;QACrCiX,6BAA6BhY,EAAEiB,OAAO,GAAGF,QAAQ;QACjDkX,eAAejY,EAAEsB,KAAK,CAAC;YACrBtB,EAAEiB,OAAO;YACTjB,EACGS,MAAM,CAAC;gBACNyX,iBAAiBlY,EAAEwB,IAAI,CAAC;oBAAC;oBAAS;oBAAc;iBAAM,EAAET,QAAQ;gBAChEoX,gBAAgBnY,EACbwB,IAAI,CAAC;oBAAC;oBAAQ;oBAAmB;iBAAa,EAC9CT,QAAQ;YACb,GACCA,QAAQ;SACZ;QACDqX,0BAA0BpY,EAAEiB,OAAO,GAAGF,QAAQ;QAC9CsX,iBAAiBrY,EAAEiB,OAAO,GAAGiH,QAAQ,GAAGnH,QAAQ;QAChDuX,uBAAuBtY,EAAE0C,MAAM,GAAGyG,WAAW,GAAGlB,GAAG,GAAGlH,QAAQ;QAC9DwX,WAAWvY,EACRgQ,QAAQ,GACR0D,IAAI,GACJzD,OAAO,CAACjQ,EAAEkQ,OAAO,CAAClQ,EAAEc,KAAK,CAACuB,aAC1BtB,QAAQ;QACXyX,UAAUxY,EACPgQ,QAAQ,GACR0D,IAAI,GACJzD,OAAO,CACNjQ,EAAEkQ,OAAO,CACPlQ,EAAEsB,KAAK,CAAC;YACNtB,EAAEc,KAAK,CAACe;YACR7B,EAAES,MAAM,CAAC;gBACPgY,aAAazY,EAAEc,KAAK,CAACe;gBACrB6W,YAAY1Y,EAAEc,KAAK,CAACe;gBACpB8W,UAAU3Y,EAAEc,KAAK,CAACe;YACpB;SACD,IAGJd,QAAQ;QACX,8EAA8E;QAC9E6X,aAAa5Y,EACVS,MAAM,CAAC;YACNoY,gBAAgB7Y,EAAEQ,MAAM,GAAGO,QAAQ;QACrC,GACC+X,QAAQ,CAAC9Y,EAAEY,GAAG,IACdG,QAAQ;QACXgY,wBAAwB/Y,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QACpDiY,4BAA4BhZ,EAAEiB,OAAO,GAAGF,QAAQ;QAChDkY,uBAAuBjZ,EAAEiB,OAAO,GAAGF,QAAQ;QAC3CmY,2BAA2BlZ,EAAEiB,OAAO,GAAGF,QAAQ;QAC/CoY,6BAA6BnZ,EAAE0C,MAAM,GAAG3B,QAAQ;QAChDqY,YAAYpZ,EAAE0C,MAAM,GAAG3B,QAAQ;QAC/BsY,QAAQrZ,EAAEQ,MAAM,GAAGO,QAAQ;QAC3BuY,eAAetZ,EAAEiB,OAAO,GAAGF,QAAQ;QACnCwY,mBAAmBvZ,EAAEc,KAAK,CAACd,EAAEQ,MAAM,IAAIO,QAAQ;QAC/CyY,WAAWvV,iBAAiBlD,QAAQ;QACpC0Y,YAAYzZ,EACT8C,YAAY,CAAC;YACZ4W,mBAAmB1Z,EAAEiB,OAAO,GAAGF,QAAQ;YACvC4Y,cAAc3Z,EAAEQ,MAAM,GAAGoQ,GAAG,CAAC,GAAG7P,QAAQ;QAC1C,GACCA,QAAQ;QACXiL,aAAahM,EAAEiB,OAAO,GAAGF,QAAQ;QACjC6Y,2BAA2B5Z,EAAEiB,OAAO,GAAGF,QAAQ;QAC/C,uDAAuD;QACvD8Y,SAAS7Z,EAAEY,GAAG,GAAGsH,QAAQ,GAAGnH,QAAQ;QACpC+Y,cAAc9Z,EACX8C,YAAY,CAAC;YACZiX,gBAAgB/Z,EAAE0C,MAAM,GAAGsM,QAAQ,GAAG5F,MAAM,GAAGrI,QAAQ;QACzD,GACCA,QAAQ;IACb,IACD","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/server/config-schema.ts"],"sourcesContent":["import type { NextConfig } from './config'\nimport { VALID_LOADERS } from '../shared/lib/image-config'\n\nimport { z } from 'next/dist/compiled/zod'\nimport type zod from 'next/dist/compiled/zod'\n\nimport type { SizeLimit } from '../types'\nimport {\n LIGHTNINGCSS_FEATURE_NAMES,\n type ExportPathMap,\n type TurbopackLoaderItem,\n type TurbopackOptions,\n type TurbopackRuleConfigItem,\n type TurbopackRuleConfigCollection,\n type TurbopackRuleCondition,\n type TurbopackLoaderBuiltinCondition,\n} from './config-shared'\nimport type {\n Header,\n Rewrite,\n RouteHas,\n Redirect,\n} from '../lib/load-custom-routes'\nimport { SUPPORTED_TEST_RUNNERS_LIST } from '../cli/next-test'\n\n// A custom zod schema for the SizeLimit type\nconst zSizeLimit = z.custom<SizeLimit>((val) => {\n if (typeof val === 'number' || typeof val === 'string') {\n return true\n }\n return false\n})\n\nconst zExportMap: zod.ZodType<ExportPathMap> = z.record(\n z.string(),\n z.object({\n page: z.string(),\n query: z.any(), // NextParsedUrlQuery\n\n // private optional properties\n _fallbackRouteParams: z.array(z.any()).optional(),\n _isAppDir: z.boolean().optional(),\n _isDynamicError: z.boolean().optional(),\n _isRoutePPREnabled: z.boolean().optional(),\n _allowEmptyStaticShell: z.boolean().optional(),\n })\n)\n\nconst zRouteHas: zod.ZodType<RouteHas> = z.union([\n z.object({\n type: z.enum(['header', 'query', 'cookie']),\n key: z.string(),\n value: z.string().optional(),\n }),\n z.object({\n type: z.literal('host'),\n key: z.undefined().optional(),\n value: z.string(),\n }),\n])\n\nconst zRewrite: zod.ZodType<Rewrite> = z.object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n})\n\nconst zRedirect: zod.ZodType<Redirect> = z\n .object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n })\n .and(\n z.union([\n z.object({\n statusCode: z.never().optional(),\n permanent: z.boolean(),\n }),\n z.object({\n statusCode: z.number(),\n permanent: z.never().optional(),\n }),\n ])\n )\n\nconst zHeader: zod.ZodType<Header> = z.object({\n source: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n headers: z.array(z.object({ key: z.string(), value: z.string() })),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n\n internal: z.boolean().optional(),\n})\n\nconst zTurbopackLoaderItem: zod.ZodType<TurbopackLoaderItem> = z.union([\n z.string(),\n z.strictObject({\n loader: z.string(),\n // Any JSON value can be used as turbo loader options, so use z.any() here\n options: z.record(z.string(), z.any()).optional(),\n }),\n])\n\nconst zTurbopackLoaderBuiltinCondition: zod.ZodType<TurbopackLoaderBuiltinCondition> =\n z.union([\n z.literal('browser'),\n z.literal('foreign'),\n z.literal('development'),\n z.literal('production'),\n z.literal('node'),\n z.literal('edge-light'),\n ])\n\nconst zTurbopackCondition: zod.ZodType<TurbopackRuleCondition> = z.union([\n z.strictObject({ all: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ any: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ not: z.lazy(() => zTurbopackCondition) }),\n zTurbopackLoaderBuiltinCondition,\n z.strictObject({\n path: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n content: z.instanceof(RegExp).optional(),\n query: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n contentType: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n }),\n])\n\nconst zTurbopackModuleType = z.enum([\n 'asset',\n 'ecmascript',\n 'typescript',\n 'css',\n 'css-module',\n 'wasm',\n 'raw',\n 'node',\n 'bytes',\n])\n\nconst zTurbopackRuleConfigItem: zod.ZodType<TurbopackRuleConfigItem> =\n z.strictObject({\n loaders: z.array(zTurbopackLoaderItem).optional(),\n as: z.string().optional(),\n condition: zTurbopackCondition.optional(),\n type: zTurbopackModuleType.optional(),\n })\n\nconst zTurbopackRuleConfigCollection: zod.ZodType<TurbopackRuleConfigCollection> =\n z.union([\n zTurbopackRuleConfigItem,\n z.array(z.union([zTurbopackLoaderItem, zTurbopackRuleConfigItem])),\n ])\n\nconst zTurbopackConfig: zod.ZodType<TurbopackOptions> = z.strictObject({\n rules: z.record(z.string(), zTurbopackRuleConfigCollection).optional(),\n resolveAlias: z\n .record(\n z.string(),\n z.union([\n z.string(),\n z.array(z.string()),\n z.record(z.string(), z.union([z.string(), z.array(z.string())])),\n ])\n )\n .optional(),\n resolveExtensions: z.array(z.string()).optional(),\n root: z.string().optional(),\n debugIds: z.boolean().optional(),\n chunkLoadingGlobal: z.string().optional(),\n ignoreIssue: z\n .array(\n z.object({\n path: z.union([z.string(), z.instanceof(RegExp)]),\n title: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n description: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n })\n )\n .optional(),\n})\n\nexport const experimentalSchema = {\n outputHashSalt: z.string().optional(),\n useSkewCookie: z.boolean().optional(),\n after: z.boolean().optional(),\n appNavFailHandling: z.boolean().optional(),\n appNewScrollHandler: z.boolean().optional(),\n preloadEntriesOnStart: z.boolean().optional(),\n allowedRevalidateHeaderKeys: z.array(z.string()).optional(),\n staleTimes: z\n .object({\n dynamic: z.number().optional(),\n static: z.number().gte(30).optional(),\n })\n .optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n clientRouterFilter: z.boolean().optional(),\n clientRouterFilterRedirects: z.boolean().optional(),\n clientRouterFilterAllowedRate: z.number().optional(),\n cpus: z.number().optional(),\n memoryBasedWorkersCount: z.boolean().optional(),\n craCompat: z.boolean().optional(),\n caseSensitiveRoutes: z.boolean().optional(),\n clientParamParsingOrigins: z.array(z.string()).optional(),\n cachedNavigations: z.boolean().optional(),\n dynamicOnHover: z.boolean().optional(),\n useOffline: z.boolean().optional(),\n optimisticRouting: z.boolean().optional(),\n appShells: z.boolean().optional(),\n varyParams: z.boolean().optional(),\n prefetchInlining: z\n .union([\n z.boolean(),\n z.object({\n maxSize: z.number().optional(),\n maxBundleSize: z.number().optional(),\n }),\n ])\n .optional(),\n disableOptimizedLoading: z.boolean().optional(),\n disablePostcssPresetEnv: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n inlineCss: z.boolean().optional(),\n esmExternals: z.union([z.boolean(), z.literal('loose')]).optional(),\n serverActions: z\n .object({\n bodySizeLimit: zSizeLimit.optional(),\n allowedOrigins: z.array(z.string()).optional(),\n })\n .optional(),\n maxPostponedStateSize: zSizeLimit.optional(),\n // The original type was Record<string, any>\n extensionAlias: z.record(z.string(), z.any()).optional(),\n externalDir: z.boolean().optional(),\n externalMiddlewareRewritesResolve: z.boolean().optional(),\n externalProxyRewritesResolve: z.boolean().optional(),\n exposeTestingApiInProductionBuild: z.boolean().optional(),\n fallbackNodePolyfills: z.literal(false).optional(),\n fetchCacheKeyPrefix: z.string().optional(),\n forceSwcTransforms: z.boolean().optional(),\n fullySpecified: z.boolean().optional(),\n gzipSize: z.boolean().optional(),\n imgOptConcurrency: z.number().int().optional().nullable(),\n imgOptOperationCache: z.boolean().optional().nullable(),\n imgOptTimeoutInSeconds: z.number().int().optional(),\n imgOptMaxInputPixels: z.number().int().optional(),\n imgOptSequentialRead: z.boolean().optional().nullable(),\n imgOptSkipMetadata: z.boolean().optional().nullable(),\n isrFlushToDisk: z.boolean().optional(),\n largePageDataBytes: z.number().optional(),\n linkNoTouchStart: z.boolean().optional(),\n manualClientBasePath: z.boolean().optional(),\n middlewarePrefetch: z.enum(['strict', 'flexible']).optional(),\n proxyPrefetch: z.enum(['strict', 'flexible']).optional(),\n middlewareClientMaxBodySize: zSizeLimit.optional(),\n proxyClientMaxBodySize: zSizeLimit.optional(),\n multiZoneDraftMode: z.boolean().optional(),\n cssChunking: z\n .union([\n z.boolean(),\n z.literal('strict'),\n z.literal('loose'),\n z.literal('graph'),\n z.strictObject({ type: z.literal('strict') }),\n z.strictObject({ type: z.literal('loose') }),\n z.strictObject({\n type: z.literal('graph'),\n requestCost: z.number().nonnegative().finite().optional(),\n moduleFactorCost: z.number().nonnegative().finite().optional(),\n }),\n ])\n .optional(),\n nextScriptWorkers: z.boolean().optional(),\n // The critter option is unknown, use z.any() here\n optimizeCss: z.union([z.boolean(), z.any()]).optional(),\n optimisticClientCache: z.boolean().optional(),\n parallelServerCompiles: z.boolean().optional(),\n parallelServerBuildTraces: z.boolean().optional(),\n ppr: z\n .union([z.boolean(), z.literal('incremental')])\n .readonly()\n .optional(),\n taint: z.boolean().optional(),\n useExperimentalReact: z.boolean().optional(),\n prerenderEarlyExit: z.boolean().optional(),\n proxyTimeout: z.number().gte(0).optional(),\n rootParams: z.boolean().optional(),\n mcpServer: z.boolean().optional(),\n removeUncaughtErrorAndRejectionListeners: z.boolean().optional(),\n validateRSCRequestHeaders: z.boolean().optional(),\n scrollRestoration: z.boolean().optional(),\n sri: z\n .object({\n algorithm: z.enum(['sha256', 'sha384', 'sha512']).optional(),\n })\n .optional(),\n swcPlugins: z\n // The specific swc plugin's option is unknown, use z.any() here\n .array(z.tuple([z.string(), z.record(z.string(), z.any())]))\n .optional(),\n swcEnvOptions: z\n .object({\n mode: z.enum(['usage', 'entry']).optional(),\n coreJs: z.string().optional(),\n skip: z.array(z.string()).optional(),\n include: z.array(z.string()).optional(),\n exclude: z.array(z.string()).optional(),\n shippedProposals: z.boolean().optional(),\n forceAllTransforms: z.boolean().optional(),\n debug: z.boolean().optional(),\n loose: z.boolean().optional(),\n })\n .optional(),\n swcTraceProfiling: z.boolean().optional(),\n // NonNullable<webpack.Configuration['experiments']>['buildHttp']\n urlImports: z.any().optional(),\n viewTransition: z.boolean().optional(),\n workerThreads: z.boolean().optional(),\n webVitalsAttribution: z\n .array(\n z.union([\n z.literal('CLS'),\n z.literal('FCP'),\n z.literal('FID'),\n z.literal('INP'),\n z.literal('LCP'),\n z.literal('TTFB'),\n ])\n )\n .optional(),\n // This is partial set of mdx-rs transform options we support, aligned\n // with next_core::next_config::MdxRsOptions. Ensure both types are kept in sync.\n mdxRs: z\n .union([\n z.boolean(),\n z.object({\n development: z.boolean().optional(),\n jsxRuntime: z.string().optional(),\n jsxImportSource: z.string().optional(),\n providerImportSource: z.string().optional(),\n mdxType: z.enum(['gfm', 'commonmark']).optional(),\n }),\n ])\n .optional(),\n transitionIndicator: z.boolean().optional(),\n gestureTransition: z.boolean().optional(),\n typedRoutes: z.boolean().optional(),\n webpackBuildWorker: z.boolean().optional(),\n webpackMemoryOptimizations: z.boolean().optional(),\n turbopackMemoryEviction: z\n .union([z.literal(false), z.literal('full')])\n .optional(),\n turbopackPluginRuntimeStrategy: z\n .enum(['workerThreads', 'childProcesses', 'forceWorkerThreads'])\n .optional(),\n turbopackMinify: z.boolean().optional(),\n turbopackFileSystemCacheForDev: z.boolean().optional(),\n turbopackFileSystemCacheForBuild: z.boolean().optional(),\n turbopackSourceMaps: z.boolean().optional(),\n turbopackInputSourceMaps: z.boolean().optional(),\n turbopackTreeShaking: z.boolean().optional(),\n turbopackRemoveUnusedImports: z.boolean().optional(),\n turbopackRemoveUnusedExports: z.boolean().optional(),\n turbopackScopeHoisting: z.boolean().optional(),\n turbopackWorkerAssetPrefix: z.string().optional(),\n turbopackClientSideNestedAsyncChunking: z.boolean().optional(),\n turbopackServerSideNestedAsyncChunking: z.boolean().optional(),\n turbopackImportTypeBytes: z.boolean().optional(),\n turbopackImportTypeText: z.boolean().optional(),\n turbopackUseBuiltinBabel: z.boolean().optional(),\n turbopackUseBuiltinSass: z.boolean().optional(),\n turbopackLocalPostcssConfig: z.boolean().optional(),\n turbopackModuleIds: z.enum(['named', 'deterministic']).optional(),\n turbopackInferModuleSideEffects: z.boolean().optional(),\n turbopackServerFastRefresh: z.boolean().optional(),\n optimizePackageImports: z.array(z.string()).optional(),\n optimizeServerReact: z.boolean().optional(),\n strictRouteTypes: z.boolean().optional(),\n clientTraceMetadata: z.array(z.string()).optional(),\n serverMinification: z.boolean().optional(),\n serverSourceMaps: z.boolean().optional(),\n useWasmBinary: z.boolean().optional(),\n useLightningcss: z.boolean().optional(),\n lightningCssFeatures: z\n .object({\n include: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n exclude: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n })\n .optional(),\n testProxy: z.boolean().optional(),\n defaultTestRunner: z.enum(SUPPORTED_TEST_RUNNERS_LIST).optional(),\n allowDevelopmentBuild: z.literal(true).optional(),\n\n reactDebugChannel: z.boolean().optional(),\n instantInsights: z\n .object({\n validationLevel: z\n .enum([\n 'warning',\n 'manual-warning',\n 'experimental-error',\n 'experimental-manual-error',\n ])\n .optional(),\n })\n .optional(),\n staticGenerationRetryCount: z.number().int().optional(),\n staticGenerationMaxConcurrency: z.number().int().optional(),\n staticGenerationMinPagesPerWorker: z.number().int().optional(),\n typedEnv: z.boolean().optional(),\n serverComponentsHmrCache: z.boolean().optional(),\n authInterrupts: z.boolean().optional(),\n useCache: z.boolean().optional(),\n useCacheTimeout: z.number().positive().optional(),\n slowModuleDetection: z\n .object({\n buildTimeThresholdMs: z.number().int(),\n })\n .optional(),\n globalNotFound: z.boolean().optional(),\n turbopackRustReactCompiler: z.boolean().optional(),\n browserDebugInfoInTerminal: z\n .union([\n z.boolean(),\n z.enum(['error', 'warn', 'verbose']),\n z.object({\n level: z.enum(['error', 'warn', 'verbose']).optional(),\n depthLimit: z.number().int().positive().optional(),\n edgeLimit: z.number().int().positive().optional(),\n showSourceLocation: z.boolean().optional(),\n }),\n ])\n .optional(),\n lockDistDir: z.boolean().optional(),\n hideLogsAfterAbort: z.boolean().optional(),\n runtimeServerDeploymentId: z.boolean().optional(),\n supportsImmutableAssets: z.boolean().optional(),\n deferredEntries: z.array(z.string()).optional(),\n onBeforeDeferredEntries: z.function().returns(z.promise(z.void())).optional(),\n reportSystemEnvInlining: z.enum(['warn', 'error']).optional(),\n}\n\nexport const configSchema: zod.ZodType<NextConfig> = z.lazy(() =>\n z.strictObject({\n adapterPath: z.string().optional(),\n agentRules: z.boolean().optional(),\n allowedDevOrigins: z.array(z.string()).optional(),\n assetPrefix: z.string().optional(),\n basePath: z.string().optional(),\n bundlePagesRouterDependencies: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n cacheHandler: z.string().min(1).optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheMaxMemorySize: z.number().optional(),\n cleanDistDir: z.boolean().optional(),\n compiler: z\n .strictObject({\n emotion: z\n .union([\n z.boolean(),\n z.object({\n sourceMap: z.boolean().optional(),\n autoLabel: z\n .union([\n z.literal('always'),\n z.literal('dev-only'),\n z.literal('never'),\n ])\n .optional(),\n labelFormat: z.string().min(1).optional(),\n importMap: z\n .record(\n z.string(),\n z.record(\n z.string(),\n z.object({\n canonicalImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n styledBaseImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n })\n )\n )\n .optional(),\n }),\n ])\n .optional(),\n reactRemoveProperties: z\n .union([\n z.boolean().optional(),\n z.object({\n properties: z.array(z.string()).optional(),\n }),\n ])\n .optional(),\n relay: z\n .object({\n src: z.string(),\n artifactDirectory: z.string().optional(),\n language: z.enum(['javascript', 'typescript', 'flow']).optional(),\n eagerEsModules: z.boolean().optional(),\n })\n .optional(),\n removeConsole: z\n .union([\n z.boolean().optional(),\n z.object({\n exclude: z.array(z.string()).min(1).optional(),\n }),\n ])\n .optional(),\n styledComponents: z.union([\n z.boolean().optional(),\n z.object({\n displayName: z.boolean().optional(),\n topLevelImportPaths: z.array(z.string()).optional(),\n ssr: z.boolean().optional(),\n fileName: z.boolean().optional(),\n meaninglessFileNames: z.array(z.string()).optional(),\n minify: z.boolean().optional(),\n transpileTemplateLiterals: z.boolean().optional(),\n namespace: z.string().min(1).optional(),\n pure: z.boolean().optional(),\n cssProp: z.boolean().optional(),\n }),\n ]),\n styledJsx: z.union([\n z.boolean().optional(),\n z.object({\n useLightningcss: z.boolean().optional(),\n }),\n ]),\n define: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n defineServer: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n runAfterProductionCompile: z\n .function()\n .returns(z.promise(z.void()))\n .optional(),\n })\n .optional(),\n compress: z.boolean().optional(),\n configOrigin: z.string().optional(),\n crossOrigin: z\n .union([z.literal('anonymous'), z.literal('use-credentials')])\n .optional(),\n deploymentId: z.string().optional(),\n devIndicators: z\n .union([\n z.object({\n position: z\n .union([\n z.literal('bottom-left'),\n z.literal('bottom-right'),\n z.literal('top-left'),\n z.literal('top-right'),\n ])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n distDir: z.string().min(1).optional(),\n env: z.record(z.string(), z.union([z.string(), z.undefined()])).optional(),\n enablePrerenderSourceMaps: z.boolean().optional(),\n excludeDefaultMomentLocales: z.boolean().optional(),\n experimental: z.strictObject(experimentalSchema).optional(),\n exportPathMap: z\n .function()\n .args(\n zExportMap,\n z.object({\n dev: z.boolean(),\n dir: z.string(),\n outDir: z.string().nullable(),\n distDir: z.string(),\n buildId: z.string(),\n })\n )\n .returns(z.union([zExportMap, z.promise(zExportMap)]))\n .optional(),\n generateBuildId: z\n .function()\n .args()\n .returns(\n z.union([\n z.string(),\n z.null(),\n z.promise(z.union([z.string(), z.null()])),\n ])\n )\n .optional(),\n generateEtags: z.boolean().optional(),\n headers: z\n .function()\n .args()\n .returns(z.promise(z.array(zHeader)))\n .optional(),\n htmlLimitedBots: z.instanceof(RegExp).optional(),\n httpAgentOptions: z\n .strictObject({ keepAlive: z.boolean().optional() })\n .optional(),\n i18n: z\n .strictObject({\n defaultLocale: z.string().min(1),\n domains: z\n .array(\n z.strictObject({\n defaultLocale: z.string().min(1),\n domain: z.string().min(1),\n http: z.literal(true).optional(),\n locales: z.array(z.string().min(1)).optional(),\n })\n )\n .optional(),\n localeDetection: z.literal(false).optional(),\n locales: z.array(z.string().min(1)),\n })\n .nullable()\n .optional(),\n images: z\n .strictObject({\n localPatterns: z\n .array(\n z.strictObject({\n pathname: z.string().optional(),\n search: z.string().optional(),\n })\n )\n .max(25)\n .optional(),\n remotePatterns: z\n .array(\n z.union([\n z.instanceof(URL),\n z.strictObject({\n hostname: z.string(),\n pathname: z.string().optional(),\n port: z.string().max(5).optional(),\n protocol: z.enum(['http', 'https']).optional(),\n search: z.string().optional(),\n }),\n ])\n )\n .max(50)\n .optional(),\n unoptimized: z.boolean().optional(),\n customCacheHandler: z.boolean().optional(),\n contentSecurityPolicy: z.string().optional(),\n contentDispositionType: z.enum(['inline', 'attachment']).optional(),\n dangerouslyAllowSVG: z.boolean().optional(),\n dangerouslyAllowLocalIP: z.boolean().optional(),\n deviceSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .max(25)\n .optional(),\n disableStaticImages: z.boolean().optional(),\n domains: z.array(z.string()).max(50).optional(),\n formats: z\n .array(z.enum(['image/avif', 'image/webp']))\n .max(4)\n .optional(),\n imageSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .min(0)\n .max(25)\n .optional(),\n loader: z.enum(VALID_LOADERS).optional(),\n loaderFile: z.string().optional(),\n maximumDiskCacheSize: z.number().int().min(0).optional(),\n maximumRedirects: z.number().int().min(0).max(20).optional(),\n maximumResponseBody: z\n .number()\n .int()\n .min(1)\n .max(Number.MAX_SAFE_INTEGER)\n .optional(),\n minimumCacheTTL: z.number().int().gte(0).optional(),\n path: z.string().optional(),\n qualities: z\n .array(z.number().int().gte(1).lte(100))\n .min(1)\n .max(20)\n .optional(),\n })\n .optional(),\n logging: z\n .union([\n z.object({\n fetches: z\n .object({\n fullUrl: z.boolean().optional(),\n hmrRefreshes: z.boolean().optional(),\n })\n .optional(),\n incomingRequests: z\n .union([\n z.boolean(),\n z.object({\n ignore: z.array(z.instanceof(RegExp)),\n }),\n ])\n .optional(),\n serverFunctions: z.boolean().optional(),\n browserToTerminal: z\n .union([z.boolean(), z.enum(['error', 'warn'])])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n modularizeImports: z\n .record(\n z.string(),\n z.object({\n transform: z.union([z.string(), z.record(z.string(), z.string())]),\n preventFullImport: z.boolean().optional(),\n skipDefaultConversion: z.boolean().optional(),\n })\n )\n .optional(),\n onDemandEntries: z\n .strictObject({\n maxInactiveAge: z.number().optional(),\n pagesBufferLength: z.number().optional(),\n })\n .optional(),\n output: z.enum(['standalone', 'export']).optional(),\n outputFileTracingRoot: z.string().optional(),\n outputFileTracingExcludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n outputFileTracingIncludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n pageExtensions: z.array(z.string()).min(1).optional(),\n instrumentationClientInject: z.array(z.string()).optional(),\n partialPrefetching: z\n .union([z.boolean(), z.literal('unstable_eager')])\n .optional(),\n poweredByHeader: z.boolean().optional(),\n productionBrowserSourceMaps: z.boolean().optional(),\n reactCompiler: z.union([\n z.boolean(),\n z\n .object({\n compilationMode: z.enum(['infer', 'annotation', 'all']).optional(),\n panicThreshold: z\n .enum(['none', 'critical_errors', 'all_errors'])\n .optional(),\n })\n .optional(),\n ]),\n reactProductionProfiling: z.boolean().optional(),\n reactStrictMode: z.boolean().nullable().optional(),\n reactMaxHeadersLength: z.number().nonnegative().int().optional(),\n redirects: z\n .function()\n .args()\n .returns(z.promise(z.array(zRedirect)))\n .optional(),\n rewrites: z\n .function()\n .args()\n .returns(\n z.promise(\n z.union([\n z.array(zRewrite),\n z.object({\n beforeFiles: z.array(zRewrite),\n afterFiles: z.array(zRewrite),\n fallback: z.array(zRewrite),\n }),\n ])\n )\n )\n .optional(),\n // sassOptions properties are unknown besides implementation, use z.any() here\n sassOptions: z\n .object({\n implementation: z.string().optional(),\n })\n .catchall(z.any())\n .optional(),\n serverExternalPackages: z.array(z.string()).optional(),\n skipMiddlewareUrlNormalize: z.boolean().optional(),\n skipProxyUrlNormalize: z.boolean().optional(),\n skipTrailingSlashRedirect: z.boolean().optional(),\n staticPageGenerationTimeout: z.number().optional(),\n expireTime: z.number().optional(),\n target: z.string().optional(),\n trailingSlash: z.boolean().optional(),\n transpilePackages: z.array(z.string()).optional(),\n turbopack: zTurbopackConfig.optional(),\n typescript: z\n .strictObject({\n ignoreBuildErrors: z.boolean().optional(),\n tsconfigPath: z.string().min(1).optional(),\n })\n .optional(),\n typedRoutes: z.boolean().optional(),\n useFileSystemPublicRoutes: z.boolean().optional(),\n // The webpack config type is unknown, use z.any() here\n webpack: z.any().nullable().optional(),\n watchOptions: z\n .strictObject({\n pollIntervalMs: z.number().positive().finite().optional(),\n })\n .optional(),\n })\n)\n"],"names":["VALID_LOADERS","z","LIGHTNINGCSS_FEATURE_NAMES","SUPPORTED_TEST_RUNNERS_LIST","zSizeLimit","custom","val","zExportMap","record","string","object","page","query","any","_fallbackRouteParams","array","optional","_isAppDir","boolean","_isDynamicError","_isRoutePPREnabled","_allowEmptyStaticShell","zRouteHas","union","type","enum","key","value","literal","undefined","zRewrite","source","destination","basePath","locale","has","missing","internal","zRedirect","and","statusCode","never","permanent","number","zHeader","headers","zTurbopackLoaderItem","strictObject","loader","options","zTurbopackLoaderBuiltinCondition","zTurbopackCondition","all","lazy","not","path","instanceof","RegExp","content","contentType","zTurbopackModuleType","zTurbopackRuleConfigItem","loaders","as","condition","zTurbopackRuleConfigCollection","zTurbopackConfig","rules","resolveAlias","resolveExtensions","root","debugIds","chunkLoadingGlobal","ignoreIssue","title","description","experimentalSchema","outputHashSalt","useSkewCookie","after","appNavFailHandling","appNewScrollHandler","preloadEntriesOnStart","allowedRevalidateHeaderKeys","staleTimes","dynamic","static","gte","cacheLife","stale","revalidate","expire","cacheHandlers","clientRouterFilter","clientRouterFilterRedirects","clientRouterFilterAllowedRate","cpus","memoryBasedWorkersCount","craCompat","caseSensitiveRoutes","clientParamParsingOrigins","cachedNavigations","dynamicOnHover","useOffline","optimisticRouting","appShells","varyParams","prefetchInlining","maxSize","maxBundleSize","disableOptimizedLoading","disablePostcssPresetEnv","cacheComponents","inlineCss","esmExternals","serverActions","bodySizeLimit","allowedOrigins","maxPostponedStateSize","extensionAlias","externalDir","externalMiddlewareRewritesResolve","externalProxyRewritesResolve","exposeTestingApiInProductionBuild","fallbackNodePolyfills","fetchCacheKeyPrefix","forceSwcTransforms","fullySpecified","gzipSize","imgOptConcurrency","int","nullable","imgOptOperationCache","imgOptTimeoutInSeconds","imgOptMaxInputPixels","imgOptSequentialRead","imgOptSkipMetadata","isrFlushToDisk","largePageDataBytes","linkNoTouchStart","manualClientBasePath","middlewarePrefetch","proxyPrefetch","middlewareClientMaxBodySize","proxyClientMaxBodySize","multiZoneDraftMode","cssChunking","requestCost","nonnegative","finite","moduleFactorCost","nextScriptWorkers","optimizeCss","optimisticClientCache","parallelServerCompiles","parallelServerBuildTraces","ppr","readonly","taint","useExperimentalReact","prerenderEarlyExit","proxyTimeout","rootParams","mcpServer","removeUncaughtErrorAndRejectionListeners","validateRSCRequestHeaders","scrollRestoration","sri","algorithm","swcPlugins","tuple","swcEnvOptions","mode","coreJs","skip","include","exclude","shippedProposals","forceAllTransforms","debug","loose","swcTraceProfiling","urlImports","viewTransition","workerThreads","webVitalsAttribution","mdxRs","development","jsxRuntime","jsxImportSource","providerImportSource","mdxType","transitionIndicator","gestureTransition","typedRoutes","webpackBuildWorker","webpackMemoryOptimizations","turbopackMemoryEviction","turbopackPluginRuntimeStrategy","turbopackMinify","turbopackFileSystemCacheForDev","turbopackFileSystemCacheForBuild","turbopackSourceMaps","turbopackInputSourceMaps","turbopackTreeShaking","turbopackRemoveUnusedImports","turbopackRemoveUnusedExports","turbopackScopeHoisting","turbopackWorkerAssetPrefix","turbopackClientSideNestedAsyncChunking","turbopackServerSideNestedAsyncChunking","turbopackImportTypeBytes","turbopackImportTypeText","turbopackUseBuiltinBabel","turbopackUseBuiltinSass","turbopackLocalPostcssConfig","turbopackModuleIds","turbopackInferModuleSideEffects","turbopackServerFastRefresh","optimizePackageImports","optimizeServerReact","strictRouteTypes","clientTraceMetadata","serverMinification","serverSourceMaps","useWasmBinary","useLightningcss","lightningCssFeatures","testProxy","defaultTestRunner","allowDevelopmentBuild","reactDebugChannel","instantInsights","validationLevel","staticGenerationRetryCount","staticGenerationMaxConcurrency","staticGenerationMinPagesPerWorker","typedEnv","serverComponentsHmrCache","authInterrupts","useCache","useCacheTimeout","positive","slowModuleDetection","buildTimeThresholdMs","globalNotFound","turbopackRustReactCompiler","browserDebugInfoInTerminal","level","depthLimit","edgeLimit","showSourceLocation","lockDistDir","hideLogsAfterAbort","runtimeServerDeploymentId","supportsImmutableAssets","deferredEntries","onBeforeDeferredEntries","function","returns","promise","void","reportSystemEnvInlining","configSchema","adapterPath","agentRules","allowedDevOrigins","assetPrefix","bundlePagesRouterDependencies","cacheHandler","min","cacheMaxMemorySize","cleanDistDir","compiler","emotion","sourceMap","autoLabel","labelFormat","importMap","canonicalImport","styledBaseImport","reactRemoveProperties","properties","relay","src","artifactDirectory","language","eagerEsModules","removeConsole","styledComponents","displayName","topLevelImportPaths","ssr","fileName","meaninglessFileNames","minify","transpileTemplateLiterals","namespace","pure","cssProp","styledJsx","define","defineServer","runAfterProductionCompile","compress","configOrigin","crossOrigin","deploymentId","devIndicators","position","distDir","env","enablePrerenderSourceMaps","excludeDefaultMomentLocales","experimental","exportPathMap","args","dev","dir","outDir","buildId","generateBuildId","null","generateEtags","htmlLimitedBots","httpAgentOptions","keepAlive","i18n","defaultLocale","domains","domain","http","locales","localeDetection","images","localPatterns","pathname","search","max","remotePatterns","URL","hostname","port","protocol","unoptimized","customCacheHandler","contentSecurityPolicy","contentDispositionType","dangerouslyAllowSVG","dangerouslyAllowLocalIP","deviceSizes","lte","disableStaticImages","formats","imageSizes","loaderFile","maximumDiskCacheSize","maximumRedirects","maximumResponseBody","Number","MAX_SAFE_INTEGER","minimumCacheTTL","qualities","logging","fetches","fullUrl","hmrRefreshes","incomingRequests","ignore","serverFunctions","browserToTerminal","modularizeImports","transform","preventFullImport","skipDefaultConversion","onDemandEntries","maxInactiveAge","pagesBufferLength","output","outputFileTracingRoot","outputFileTracingExcludes","outputFileTracingIncludes","pageExtensions","instrumentationClientInject","partialPrefetching","poweredByHeader","productionBrowserSourceMaps","reactCompiler","compilationMode","panicThreshold","reactProductionProfiling","reactStrictMode","reactMaxHeadersLength","redirects","rewrites","beforeFiles","afterFiles","fallback","sassOptions","implementation","catchall","serverExternalPackages","skipMiddlewareUrlNormalize","skipProxyUrlNormalize","skipTrailingSlashRedirect","staticPageGenerationTimeout","expireTime","target","trailingSlash","transpilePackages","turbopack","typescript","ignoreBuildErrors","tsconfigPath","useFileSystemPublicRoutes","webpack","watchOptions","pollIntervalMs"],"mappings":"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","ignoreList":[0]} |
@@ -26,3 +26,3 @@ import { loadEnvConfig } from '@next/env'; | ||
| } | ||
| Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"16.3.0-canary.52"}`))}${versionSuffix}`); | ||
| Log.bootstrap(`${bold(purple(`${Log.prefixes.ready} Next.js ${"16.3.0-canary.53"}`))}${versionSuffix}`); | ||
| if (appUrl) { | ||
@@ -29,0 +29,0 @@ Log.bootstrap(`- Local: ${appUrl}`); |
@@ -112,3 +112,3 @@ // Start CPU profile if it wasn't already started. | ||
| let { port } = serverOptions; | ||
| process.title = `next-server (v${"16.3.0-canary.52"})`; | ||
| process.title = `next-server (v${"16.3.0-canary.53"})`; | ||
| let handlersReady = ()=>{}; | ||
@@ -115,0 +115,0 @@ let handlersError = ()=>{}; |
@@ -25,3 +25,3 @@ import { RouteKind } from '../../route-kind'; | ||
| return async function handler(req, res, ctx) { | ||
| var _serverFilesManifest_config_experimental, _serverFilesManifest_config; | ||
| var _serverFilesManifest_config_experimental, _serverFilesManifest_config, _parsedUrl_pathname; | ||
| if (ctx.requestMeta) { | ||
@@ -108,235 +108,204 @@ setRequestMeta(req, ctx.requestMeta); | ||
| const isWrappedByNextServer = Boolean(routerServerContext == null ? void 0 : routerServerContext.isWrappedByNextServer); | ||
| try { | ||
| var _parsedUrl_pathname; | ||
| const method = req.method || 'GET'; | ||
| const resolvedUrl = formatUrl({ | ||
| pathname: nextConfig.trailingSlash ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && ((_parsedUrl_pathname = parsedUrl.pathname) == null ? void 0 : _parsedUrl_pathname.endsWith('/')) ? '/' : ''}` : removeTrailingSlash(encodedResolvedPathname || '/'), | ||
| // make sure to only add query values from original URL | ||
| query: hasStaticProps ? {} : originalQuery | ||
| }); | ||
| let parentSpan; | ||
| const handleResponse = async (span)=>{ | ||
| const responseGenerator = async ({ previousCacheEntry })=>{ | ||
| var _previousCacheEntry_value; | ||
| const doRender = async ()=>{ | ||
| try { | ||
| var _nextConfig_i18n; | ||
| return await routeModule.render(req, res, { | ||
| query: hasStaticProps && !isExperimentalCompile ? { | ||
| ...params | ||
| } : { | ||
| ...query, | ||
| ...params | ||
| }, | ||
| const method = req.method || 'GET'; | ||
| const resolvedUrl = formatUrl({ | ||
| pathname: nextConfig.trailingSlash ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && ((_parsedUrl_pathname = parsedUrl.pathname) == null ? void 0 : _parsedUrl_pathname.endsWith('/')) ? '/' : ''}` : removeTrailingSlash(encodedResolvedPathname || '/'), | ||
| // make sure to only add query values from original URL | ||
| query: hasStaticProps ? {} : originalQuery | ||
| }); | ||
| let parentSpan; | ||
| const handleResponse = async (span)=>{ | ||
| const responseGenerator = async ({ previousCacheEntry })=>{ | ||
| var _previousCacheEntry_value; | ||
| const doRender = async ()=>{ | ||
| try { | ||
| var _nextConfig_i18n; | ||
| return await routeModule.render(req, res, { | ||
| query: hasStaticProps && !isExperimentalCompile ? { | ||
| ...params | ||
| } : { | ||
| ...query, | ||
| ...params | ||
| }, | ||
| params, | ||
| page: srcPage, | ||
| renderContext: { | ||
| isDraftMode, | ||
| isFallback: isIsrFallback, | ||
| developmentNotFoundSourcePage: getRequestMeta(req, 'developmentNotFoundSourcePage') | ||
| }, | ||
| sharedContext: { | ||
| buildId, | ||
| customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined, | ||
| deploymentId, | ||
| clientAssetToken | ||
| }, | ||
| renderOpts: { | ||
| params, | ||
| routeModule, | ||
| page: srcPage, | ||
| renderContext: { | ||
| isDraftMode, | ||
| isFallback: isIsrFallback, | ||
| developmentNotFoundSourcePage: getRequestMeta(req, 'developmentNotFoundSourcePage') | ||
| pageConfig: config || {}, | ||
| Component: interopDefault(userland), | ||
| ComponentMod: userland, | ||
| getStaticProps, | ||
| getStaticPaths, | ||
| getServerSideProps, | ||
| supportsDynamicResponse: !hasStaticProps, | ||
| buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest, | ||
| nextFontManifest, | ||
| reactLoadableManifest, | ||
| assetPrefix: nextConfig.assetPrefix, | ||
| previewProps: prerenderManifest.preview, | ||
| images: nextConfig.images, | ||
| nextConfigOutput: nextConfig.output, | ||
| optimizeCss: Boolean(nextConfig.experimental.optimizeCss), | ||
| nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers), | ||
| domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains, | ||
| crossOrigin: nextConfig.crossOrigin, | ||
| multiZoneDraftMode, | ||
| basePath: nextConfig.basePath, | ||
| disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading, | ||
| largePageDataBytes: nextConfig.experimental.largePageDataBytes, | ||
| isExperimentalCompile, | ||
| experimental: { | ||
| clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [] | ||
| }, | ||
| sharedContext: { | ||
| buildId, | ||
| customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined, | ||
| deploymentId, | ||
| clientAssetToken | ||
| }, | ||
| renderOpts: { | ||
| params, | ||
| routeModule, | ||
| page: srcPage, | ||
| pageConfig: config || {}, | ||
| Component: interopDefault(userland), | ||
| ComponentMod: userland, | ||
| getStaticProps, | ||
| getStaticPaths, | ||
| getServerSideProps, | ||
| supportsDynamicResponse: !hasStaticProps, | ||
| buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest, | ||
| nextFontManifest, | ||
| reactLoadableManifest, | ||
| assetPrefix: nextConfig.assetPrefix, | ||
| previewProps: prerenderManifest.preview, | ||
| images: nextConfig.images, | ||
| nextConfigOutput: nextConfig.output, | ||
| optimizeCss: Boolean(nextConfig.experimental.optimizeCss), | ||
| nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers), | ||
| domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains, | ||
| crossOrigin: nextConfig.crossOrigin, | ||
| multiZoneDraftMode, | ||
| basePath: nextConfig.basePath, | ||
| disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading, | ||
| largePageDataBytes: nextConfig.experimental.largePageDataBytes, | ||
| isExperimentalCompile, | ||
| experimental: { | ||
| clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [] | ||
| }, | ||
| locale, | ||
| locales, | ||
| defaultLocale, | ||
| setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus, | ||
| isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps), | ||
| resolvedUrl, | ||
| // For getServerSideProps and getInitialProps we need to ensure we use the original URL | ||
| // and not the resolved URL to prevent a hydration mismatch on | ||
| // asPath | ||
| resolvedAsPath: hasServerProps || hasGetInitialProps ? formatUrl({ | ||
| // we use the original URL pathname less the _next/data prefix if | ||
| // present | ||
| pathname: isNextDataRequest ? normalizeDataPath(originalPathname) : originalPathname, | ||
| query: originalQuery | ||
| }) : resolvedUrl, | ||
| isOnDemandRevalidate, | ||
| ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'), | ||
| err: getRequestMeta(req, 'invokeError'), | ||
| // needed for experimental.optimizeCss feature | ||
| distDir: path.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir) | ||
| } | ||
| }).then((renderResult)=>{ | ||
| const { metadata } = renderResult; | ||
| let cacheControl = metadata.cacheControl; | ||
| // Apply the `expireTime` fallback as soon as we have the | ||
| // render's `cacheControl`, so every downstream consumer (the | ||
| // cache stored via `incrementalCache.set`, the response | ||
| // Cache-Control header, the outgoing entry returned from this | ||
| // responseGenerator) sees a finalized `cacheControl` with a | ||
| // populated `expire`. This mirrors the build-time fallback in | ||
| // `build/index.ts` so we don't apply an expire to routes that | ||
| // opt out of revalidation entirely (`revalidate: false`) or | ||
| // that are dynamic (`revalidate: 0`). | ||
| if (cacheControl && cacheControl.revalidate !== false && cacheControl.revalidate > 0 && cacheControl.expire === undefined) { | ||
| cacheControl.expire = nextConfig.expireTime; | ||
| } | ||
| if ('isNotFound' in metadata && metadata.isNotFound) { | ||
| return { | ||
| value: null, | ||
| cacheControl | ||
| }; | ||
| } | ||
| // Handle `isRedirect`. | ||
| if (metadata.isRedirect) { | ||
| return { | ||
| value: { | ||
| kind: CachedRouteKind.REDIRECT, | ||
| props: metadata.pageData ?? metadata.flightData | ||
| }, | ||
| cacheControl | ||
| }; | ||
| } | ||
| locale, | ||
| locales, | ||
| defaultLocale, | ||
| setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus, | ||
| isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps), | ||
| resolvedUrl, | ||
| // For getServerSideProps and getInitialProps we need to ensure we use the original URL | ||
| // and not the resolved URL to prevent a hydration mismatch on | ||
| // asPath | ||
| resolvedAsPath: hasServerProps || hasGetInitialProps ? formatUrl({ | ||
| // we use the original URL pathname less the _next/data prefix if | ||
| // present | ||
| pathname: isNextDataRequest ? normalizeDataPath(originalPathname) : originalPathname, | ||
| query: originalQuery | ||
| }) : resolvedUrl, | ||
| isOnDemandRevalidate, | ||
| ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'), | ||
| err: getRequestMeta(req, 'invokeError'), | ||
| // needed for experimental.optimizeCss feature | ||
| distDir: path.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir) | ||
| } | ||
| }).then((renderResult)=>{ | ||
| const { metadata } = renderResult; | ||
| let cacheControl = metadata.cacheControl; | ||
| // Apply the `expireTime` fallback as soon as we have the | ||
| // render's `cacheControl`, so every downstream consumer (the | ||
| // cache stored via `incrementalCache.set`, the response | ||
| // Cache-Control header, the outgoing entry returned from this | ||
| // responseGenerator) sees a finalized `cacheControl` with a | ||
| // populated `expire`. This mirrors the build-time fallback in | ||
| // `build/index.ts` so we don't apply an expire to routes that | ||
| // opt out of revalidation entirely (`revalidate: false`) or | ||
| // that are dynamic (`revalidate: 0`). | ||
| if (cacheControl && cacheControl.revalidate !== false && cacheControl.revalidate > 0 && cacheControl.expire === undefined) { | ||
| cacheControl.expire = nextConfig.expireTime; | ||
| } | ||
| if ('isNotFound' in metadata && metadata.isNotFound) { | ||
| return { | ||
| value: null, | ||
| cacheControl | ||
| }; | ||
| } | ||
| // Handle `isRedirect`. | ||
| if (metadata.isRedirect) { | ||
| return { | ||
| value: { | ||
| kind: CachedRouteKind.PAGES, | ||
| html: renderResult, | ||
| pageData: renderResult.metadata.pageData, | ||
| headers: renderResult.metadata.headers, | ||
| status: renderResult.metadata.statusCode | ||
| kind: CachedRouteKind.REDIRECT, | ||
| props: metadata.pageData ?? metadata.flightData | ||
| }, | ||
| cacheControl | ||
| }; | ||
| }).finally(()=>{ | ||
| if (!span) return; | ||
| span.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || srcPage; | ||
| const name = `${method} ${route}`; | ||
| span.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| span.updateName(name); | ||
| // Propagate http.route to the parent span if one exists | ||
| // (e.g. a platform-created HTTP span in adapter | ||
| // deployments). | ||
| if (parentSpan && parentSpan !== span) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| }); | ||
| } catch (err) { | ||
| // if this is a background revalidate we need to report | ||
| // the request error here as it won't be bubbled | ||
| if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: getRevalidateReason({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| throw err; | ||
| return { | ||
| value: { | ||
| kind: CachedRouteKind.PAGES, | ||
| html: renderResult, | ||
| pageData: renderResult.metadata.pageData, | ||
| headers: renderResult.metadata.headers, | ||
| status: renderResult.metadata.statusCode | ||
| }, | ||
| cacheControl | ||
| }; | ||
| }); | ||
| } catch (err) { | ||
| // if this is a background revalidate we need to report | ||
| // the request error here as it won't be bubbled | ||
| if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: getRevalidateReason({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| }; | ||
| // if we've already generated this page we no longer | ||
| // serve the fallback | ||
| if (previousCacheEntry) { | ||
| isIsrFallback = false; | ||
| throw err; | ||
| } | ||
| if (isIsrFallback) { | ||
| const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{ | ||
| if (!routeModule.isDev) { | ||
| return toResponseCacheEntry(previousFallbackCacheEntry); | ||
| } | ||
| return doRender(); | ||
| }, { | ||
| routeKind: RouteKind.PAGES, | ||
| isFallback: true, | ||
| isRoutePPREnabled: false, | ||
| isOnDemandRevalidate: false, | ||
| incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode), | ||
| waitUntil: ctx.waitUntil | ||
| }); | ||
| if (fallbackResponse) { | ||
| // Remove the cache control from the response to prevent it from being | ||
| // used in the surrounding cache. | ||
| delete fallbackResponse.cacheControl; | ||
| fallbackResponse.isMiss = true; | ||
| return fallbackResponse; | ||
| }; | ||
| // if we've already generated this page we no longer | ||
| // serve the fallback | ||
| if (previousCacheEntry) { | ||
| isIsrFallback = false; | ||
| } | ||
| if (isIsrFallback) { | ||
| const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{ | ||
| if (!routeModule.isDev) { | ||
| return toResponseCacheEntry(previousFallbackCacheEntry); | ||
| } | ||
| return doRender(); | ||
| }, { | ||
| routeKind: RouteKind.PAGES, | ||
| isFallback: true, | ||
| isRoutePPREnabled: false, | ||
| isOnDemandRevalidate: false, | ||
| incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode), | ||
| waitUntil: ctx.waitUntil | ||
| }); | ||
| if (fallbackResponse) { | ||
| // Remove the cache control from the response to prevent it from being | ||
| // used in the surrounding cache. | ||
| delete fallbackResponse.cacheControl; | ||
| fallbackResponse.isMiss = true; | ||
| return fallbackResponse; | ||
| } | ||
| if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) { | ||
| res.statusCode = 404; | ||
| // on-demand revalidate always sets this header | ||
| res.setHeader('x-nextjs-cache', 'REVALIDATED'); | ||
| res.end('This page could not be found'); | ||
| return null; | ||
| } | ||
| if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === CachedRouteKind.PAGES) { | ||
| return { | ||
| value: { | ||
| kind: CachedRouteKind.PAGES, | ||
| html: new RenderResult(previousCacheEntry.value.html, { | ||
| contentType: HTML_CONTENT_TYPE_HEADER, | ||
| metadata: { | ||
| statusCode: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| } | ||
| }), | ||
| pageData: {}, | ||
| status: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| }, | ||
| cacheControl: { | ||
| revalidate: 0, | ||
| expire: undefined | ||
| } | ||
| }; | ||
| } | ||
| return doRender(); | ||
| }; | ||
| } | ||
| if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) { | ||
| res.statusCode = 404; | ||
| // on-demand revalidate always sets this header | ||
| res.setHeader('x-nextjs-cache', 'REVALIDATED'); | ||
| res.end('This page could not be found'); | ||
| return null; | ||
| } | ||
| if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === CachedRouteKind.PAGES) { | ||
| return { | ||
| value: { | ||
| kind: CachedRouteKind.PAGES, | ||
| html: new RenderResult(previousCacheEntry.value.html, { | ||
| contentType: HTML_CONTENT_TYPE_HEADER, | ||
| metadata: { | ||
| statusCode: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| } | ||
| }), | ||
| pageData: {}, | ||
| status: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| }, | ||
| cacheControl: { | ||
| revalidate: 0, | ||
| expire: undefined | ||
| } | ||
| }; | ||
| } | ||
| return doRender(); | ||
| }; | ||
| try { | ||
| const result = await routeModule.handleResponse({ | ||
@@ -505,33 +474,67 @@ cacheKey, | ||
| }); | ||
| }; | ||
| // TODO: activeSpan code path is for when wrapped by | ||
| // next-server can be removed when this is no longer used | ||
| if (isWrappedByNextServer && activeSpan) { | ||
| await handleResponse(activeSpan); | ||
| } else { | ||
| parentSpan = tracer.getActiveScopeSpan(); | ||
| await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, { | ||
| spanName: `${method} ${srcPage}`, | ||
| kind: SpanKind.SERVER, | ||
| attributes: { | ||
| 'http.method': method, | ||
| 'http.target': req.url | ||
| } | ||
| }, handleResponse), undefined, !isWrappedByNextServer); | ||
| } catch (err) { | ||
| if (!(err instanceof NoFallbackError)) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: getRevalidateReason({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| // rethrow so that we can handle serving error page | ||
| throw err; | ||
| } finally{ | ||
| // An IIFE to make early returns easier. | ||
| ; | ||
| (()=>{ | ||
| if (!span) return; | ||
| span.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || srcPage; | ||
| const name = `${method} ${route}`; | ||
| span.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| span.updateName(name); | ||
| // Propagate http.route to the parent span if one exists | ||
| // (e.g. a platform-created HTTP span in adapter | ||
| // deployments). | ||
| if (parentSpan && parentSpan !== span) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| })(); | ||
| } | ||
| } catch (err) { | ||
| if (!(err instanceof NoFallbackError)) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: getRevalidateReason({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| // rethrow so that we can handle serving error page | ||
| throw err; | ||
| }; | ||
| // TODO: activeSpan code path is for when wrapped by | ||
| // next-server can be removed when this is no longer used | ||
| if (isWrappedByNextServer && activeSpan) { | ||
| await handleResponse(activeSpan); | ||
| } else { | ||
| parentSpan = tracer.getActiveScopeSpan(); | ||
| await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, { | ||
| spanName: `${method} ${srcPage}`, | ||
| kind: SpanKind.SERVER, | ||
| attributes: { | ||
| 'http.method': method, | ||
| 'http.target': req.url | ||
| } | ||
| }, handleResponse), undefined, !isWrappedByNextServer); | ||
| } | ||
@@ -538,0 +541,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n CachedRouteKind,\n type CachedPageValue,\n type CachedRedirectValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n getCacheControlHeader,\n type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n CACHE_ONE_YEAR_SECONDS,\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n NEXT_NAV_DEPLOYMENT_ID_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n GetServerSideProps,\n GetStaticPaths,\n GetStaticProps,\n} from '../../../types'\n\nexport const getHandler = ({\n srcPage: originalSrcPage,\n config,\n userland,\n routeModule,\n isFallbackError,\n getStaticPaths,\n getStaticProps,\n getServerSideProps,\n}: {\n srcPage: string\n config: Record<string, any> | undefined\n userland: any\n isFallbackError?: boolean\n routeModule: PagesRouteModule\n getStaticProps?: GetStaticProps\n getStaticPaths?: GetStaticPaths\n getServerSideProps?: GetServerSideProps\n}) => {\n return async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n let srcPage = originalSrcPage\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n }\n\n const {\n buildId,\n query,\n params,\n parsedUrl,\n originalQuery,\n originalPathname,\n buildManifest,\n fallbackBuildManifest,\n nextFontManifest,\n serverFilesManifest,\n reactLoadableManifest,\n prerenderManifest,\n isDraftMode,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n locale,\n locales,\n defaultLocale,\n routerServerContext,\n nextConfig,\n resolvedPathname,\n encodedResolvedPathname,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n const isExperimentalCompile =\n serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n const hasServerProps = Boolean(getServerSideProps)\n const hasStaticProps = Boolean(getStaticProps)\n const hasStaticPaths = Boolean(getStaticPaths)\n const hasGetInitialProps = Boolean(\n (userland.default || userland).getInitialProps\n )\n let cacheKey: null | string = null\n let isIsrFallback = false\n let isNextDataRequest =\n prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n const is404Page = srcPage === '/404'\n const is500Page = srcPage === '/500'\n const isErrorPage = srcPage === '/_error'\n\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${\n (srcPage === '/' || resolvedPathname === '/') && locale\n ? ''\n : resolvedPathname\n }`\n\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n }\n\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = removeTrailingSlash(\n locale\n ? addPathPrefix(resolvedPathname, `/${locale}`)\n : resolvedPathname\n )\n const isPrerendered =\n Boolean(prerenderManifest.routes[decodedPathname]) ||\n prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n\n if (\n typeof prerenderInfo.fallback === 'string' &&\n !isPrerendered &&\n !isNextDataRequest\n ) {\n isIsrFallback = true\n }\n }\n }\n\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (\n (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n isMinimalMode\n ) {\n isIsrFallback = false\n }\n\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n\n try {\n const method = req.method || 'GET'\n\n const resolvedUrl = formatUrl({\n pathname: nextConfig.trailingSlash\n ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n : removeTrailingSlash(encodedResolvedPathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery,\n })\n\n let parentSpan: Span | undefined\n const handleResponse = async (span?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n const doRender = async () => {\n try {\n return await routeModule\n .render(req, res, {\n query:\n hasStaticProps && !isExperimentalCompile\n ? ({\n ...params,\n } as ParsedUrlQuery)\n : {\n ...query,\n ...params,\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: getRequestMeta(\n req,\n 'developmentNotFoundSourcePage'\n ),\n },\n sharedContext: {\n buildId,\n customServer:\n Boolean(routerServerContext?.isCustomServer) || undefined,\n deploymentId,\n clientAssetToken,\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: interopDefault(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError\n ? fallbackBuildManifest\n : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images as any,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(\n nextConfig.experimental.nextScriptWorkers\n ),\n domainLocales: nextConfig.i18n?.domains,\n crossOrigin: nextConfig.crossOrigin,\n\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n disableOptimizedLoading:\n nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes:\n nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile,\n\n experimental: {\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata ||\n ([] as any),\n },\n\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n isNextDataRequest:\n isNextDataRequest && (hasServerProps || hasStaticProps),\n\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath:\n hasServerProps || hasGetInitialProps\n ? formatUrl({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest\n ? normalizeDataPath(originalPathname)\n : originalPathname,\n query: originalQuery,\n })\n : resolvedUrl,\n\n isOnDemandRevalidate,\n\n ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n err: getRequestMeta(req, 'invokeError'),\n\n // needed for experimental.optimizeCss feature\n distDir: path.join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir,\n routeModule.distDir\n ),\n },\n })\n .then((renderResult): ResponseCacheEntry => {\n const { metadata } = renderResult\n\n let cacheControl: CacheControl | undefined =\n metadata.cacheControl\n\n // Apply the `expireTime` fallback as soon as we have the\n // render's `cacheControl`, so every downstream consumer (the\n // cache stored via `incrementalCache.set`, the response\n // Cache-Control header, the outgoing entry returned from this\n // responseGenerator) sees a finalized `cacheControl` with a\n // populated `expire`. This mirrors the build-time fallback in\n // `build/index.ts` so we don't apply an expire to routes that\n // opt out of revalidation entirely (`revalidate: false`) or\n // that are dynamic (`revalidate: 0`).\n if (\n cacheControl &&\n cacheControl.revalidate !== false &&\n cacheControl.revalidate > 0 &&\n cacheControl.expire === undefined\n ) {\n cacheControl.expire = nextConfig.expireTime\n }\n\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData,\n } satisfies CachedRedirectValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode,\n },\n cacheControl,\n }\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists\n // (e.g. a platform-created HTTP span in adapter\n // deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n } catch (err: unknown) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false\n }\n\n if (isIsrFallback) {\n const fallbackResponse = await routeModule\n .getResponseCache(req)\n .get(\n routeModule.isDev\n ? null\n : locale\n ? `/${locale}${srcPage}`\n : srcPage,\n async ({\n previousCacheEntry: previousFallbackCacheEntry = null,\n }) => {\n if (!routeModule.isDev) {\n return toResponseCacheEntry(previousFallbackCacheEntry)\n }\n return doRender()\n },\n {\n routeKind: RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil: ctx.waitUntil,\n }\n )\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n fallbackResponse.isMiss = true\n return fallbackResponse\n }\n }\n\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n if (\n isIsrFallback &&\n previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n ) {\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: new RenderResult(previousCacheEntry.value.html, {\n contentType: HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n },\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n } satisfies CachedPageValue,\n cacheControl: { revalidate: 0, expire: undefined },\n } satisfies ResponseCacheEntry\n }\n return doRender()\n }\n\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest,\n isMinimalMode,\n })\n\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !result?.isMiss) {\n isIsrFallback = false\n }\n\n // response is finished is no cache entry\n if (!result) {\n return\n }\n\n if (hasStaticProps && !isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : result.isMiss\n ? 'MISS'\n : result.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n let cacheControl: CacheControl | undefined\n\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n } else if (is404Page) {\n const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n cacheControl = {\n revalidate:\n typeof notFoundRevalidate === 'undefined'\n ? 0\n : notFoundRevalidate,\n expire: undefined,\n }\n } else if (is500Page) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n if (result.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n )\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: result.cacheControl.expire,\n }\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: CACHE_ONE_YEAR_SECONDS,\n expire: undefined,\n }\n }\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n }\n\n // notFound: true case\n if (!result.value) {\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n addRequestMeta(\n req,\n 'notFoundRevalidate',\n result.cacheControl?.revalidate\n )\n\n res.statusCode = 404\n\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.end('{\"notFound\":true}')\n return\n }\n return await render404()\n }\n\n if (result.value.kind === CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n res.end(JSON.stringify(result.value.props))\n return\n } else {\n const handleRedirect = (pageData: any) => {\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n }\n const statusCode = getRedirectStatus(redirect)\n const { basePath } = nextConfig\n\n if (\n basePath &&\n redirect.basePath !== false &&\n redirect.destination.startsWith('/')\n ) {\n redirect.destination = `${basePath}${redirect.destination}`\n }\n\n if (redirect.destination.startsWith('/')) {\n redirect.destination = normalizeRepeatedSlashes(\n redirect.destination\n )\n }\n\n res.statusCode = statusCode\n res.setHeader('Location', redirect.destination)\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`)\n }\n res.end(redirect.destination)\n }\n await handleRedirect(result.value.props)\n return null\n }\n }\n\n if (result.value.kind !== CachedRouteKind.PAGES) {\n throw new Error(\n `Invariant: received non-pages cache entry in pages handler`\n )\n }\n\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-cache, must-revalidate')\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if (\n getRequestMeta(req, 'customErrorRender') ||\n (isErrorPage && isMinimalMode && res.statusCode === 500)\n ) {\n return null\n }\n\n // Add deployment ID header for data requests\n if (isNextDataRequest && !isErrorPage && !is500Page) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n }\n\n await sendRenderResult({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result:\n isNextDataRequest && !isErrorPage && !is500Page\n ? new RenderResult(JSON.stringify(result.value.pageData), {\n contentType: JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata,\n })\n : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n })\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n}\n"],"names":["RouteKind","BaseServerSpan","getTracer","SpanKind","formatUrl","addRequestMeta","getRequestMeta","setRequestMeta","interopDefault","getRevalidateReason","normalizeDataPath","CachedRouteKind","getCacheControlHeader","normalizeRepeatedSlashes","getRedirectStatus","CACHE_ONE_YEAR_SECONDS","HTML_CONTENT_TYPE_HEADER","JSON_CONTENT_TYPE_HEADER","NEXT_NAV_DEPLOYMENT_ID_HEADER","path","sendRenderResult","RenderResult","toResponseCacheEntry","NoFallbackError","RedirectStatusCode","isBot","addPathPrefix","removeTrailingSlash","getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","requestMeta","isDev","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","render404","routerServerContext","parsedUrl","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","deploymentId","clientAssetToken","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","headers","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","method","resolvedUrl","pathname","trailingSlash","endsWith","parentSpan","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","renderOpts","pageConfig","Component","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","ErrorDebug","err","distDir","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","revalidate","expire","expireTime","isNotFound","value","isRedirect","kind","REDIRECT","props","pageData","flightData","PAGES","html","status","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","handleRequest","console","warn","route","name","updateName","setAttribute","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","previousFallbackCacheEntry","routeKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","contentType","result","getHeader","notFoundRevalidate","Error","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","startsWith","PermanentRedirect","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n CachedRouteKind,\n type CachedPageValue,\n type CachedRedirectValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n getCacheControlHeader,\n type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n CACHE_ONE_YEAR_SECONDS,\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n NEXT_NAV_DEPLOYMENT_ID_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n GetServerSideProps,\n GetStaticPaths,\n GetStaticProps,\n} from '../../../types'\n\nexport const getHandler = ({\n srcPage: originalSrcPage,\n config,\n userland,\n routeModule,\n isFallbackError,\n getStaticPaths,\n getStaticProps,\n getServerSideProps,\n}: {\n srcPage: string\n config: Record<string, any> | undefined\n userland: any\n isFallbackError?: boolean\n routeModule: PagesRouteModule\n getStaticProps?: GetStaticProps\n getStaticPaths?: GetStaticPaths\n getServerSideProps?: GetServerSideProps\n}) => {\n return async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n let srcPage = originalSrcPage\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n }\n\n const {\n buildId,\n query,\n params,\n parsedUrl,\n originalQuery,\n originalPathname,\n buildManifest,\n fallbackBuildManifest,\n nextFontManifest,\n serverFilesManifest,\n reactLoadableManifest,\n prerenderManifest,\n isDraftMode,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n locale,\n locales,\n defaultLocale,\n routerServerContext,\n nextConfig,\n resolvedPathname,\n encodedResolvedPathname,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n const isExperimentalCompile =\n serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n const hasServerProps = Boolean(getServerSideProps)\n const hasStaticProps = Boolean(getStaticProps)\n const hasStaticPaths = Boolean(getStaticPaths)\n const hasGetInitialProps = Boolean(\n (userland.default || userland).getInitialProps\n )\n let cacheKey: null | string = null\n let isIsrFallback = false\n let isNextDataRequest =\n prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n const is404Page = srcPage === '/404'\n const is500Page = srcPage === '/500'\n const isErrorPage = srcPage === '/_error'\n\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${\n (srcPage === '/' || resolvedPathname === '/') && locale\n ? ''\n : resolvedPathname\n }`\n\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n }\n\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = removeTrailingSlash(\n locale\n ? addPathPrefix(resolvedPathname, `/${locale}`)\n : resolvedPathname\n )\n const isPrerendered =\n Boolean(prerenderManifest.routes[decodedPathname]) ||\n prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n\n if (\n typeof prerenderInfo.fallback === 'string' &&\n !isPrerendered &&\n !isNextDataRequest\n ) {\n isIsrFallback = true\n }\n }\n }\n\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (\n (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n isMinimalMode\n ) {\n isIsrFallback = false\n }\n\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n\n const method = req.method || 'GET'\n\n const resolvedUrl = formatUrl({\n pathname: nextConfig.trailingSlash\n ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n : removeTrailingSlash(encodedResolvedPathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery,\n })\n\n let parentSpan: Span | undefined\n const handleResponse = async (span?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n const doRender = async () => {\n try {\n return await routeModule\n .render(req, res, {\n query:\n hasStaticProps && !isExperimentalCompile\n ? ({\n ...params,\n } as ParsedUrlQuery)\n : {\n ...query,\n ...params,\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: getRequestMeta(\n req,\n 'developmentNotFoundSourcePage'\n ),\n },\n sharedContext: {\n buildId,\n customServer:\n Boolean(routerServerContext?.isCustomServer) || undefined,\n deploymentId,\n clientAssetToken,\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: interopDefault(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError\n ? fallbackBuildManifest\n : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images as any,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(\n nextConfig.experimental.nextScriptWorkers\n ),\n domainLocales: nextConfig.i18n?.domains,\n crossOrigin: nextConfig.crossOrigin,\n\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n disableOptimizedLoading:\n nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes:\n nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile,\n\n experimental: {\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata ||\n ([] as any),\n },\n\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n isNextDataRequest:\n isNextDataRequest && (hasServerProps || hasStaticProps),\n\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath:\n hasServerProps || hasGetInitialProps\n ? formatUrl({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest\n ? normalizeDataPath(originalPathname)\n : originalPathname,\n query: originalQuery,\n })\n : resolvedUrl,\n\n isOnDemandRevalidate,\n\n ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n err: getRequestMeta(req, 'invokeError'),\n\n // needed for experimental.optimizeCss feature\n distDir: path.join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir,\n routeModule.distDir\n ),\n },\n })\n .then((renderResult): ResponseCacheEntry => {\n const { metadata } = renderResult\n\n let cacheControl: CacheControl | undefined =\n metadata.cacheControl\n\n // Apply the `expireTime` fallback as soon as we have the\n // render's `cacheControl`, so every downstream consumer (the\n // cache stored via `incrementalCache.set`, the response\n // Cache-Control header, the outgoing entry returned from this\n // responseGenerator) sees a finalized `cacheControl` with a\n // populated `expire`. This mirrors the build-time fallback in\n // `build/index.ts` so we don't apply an expire to routes that\n // opt out of revalidation entirely (`revalidate: false`) or\n // that are dynamic (`revalidate: 0`).\n if (\n cacheControl &&\n cacheControl.revalidate !== false &&\n cacheControl.revalidate > 0 &&\n cacheControl.expire === undefined\n ) {\n cacheControl.expire = nextConfig.expireTime\n }\n\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData,\n } satisfies CachedRedirectValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode,\n },\n cacheControl,\n }\n })\n } catch (err: unknown) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false\n }\n\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(\n routeModule.isDev\n ? null\n : locale\n ? `/${locale}${srcPage}`\n : srcPage,\n async ({\n previousCacheEntry: previousFallbackCacheEntry = null,\n }) => {\n if (!routeModule.isDev) {\n return toResponseCacheEntry(previousFallbackCacheEntry)\n }\n return doRender()\n },\n {\n routeKind: RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil: ctx.waitUntil,\n }\n )\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n fallbackResponse.isMiss = true\n return fallbackResponse\n }\n }\n\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n if (\n isIsrFallback &&\n previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n ) {\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: new RenderResult(previousCacheEntry.value.html, {\n contentType: HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n },\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n } satisfies CachedPageValue,\n cacheControl: { revalidate: 0, expire: undefined },\n } satisfies ResponseCacheEntry\n }\n return doRender()\n }\n\n try {\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest,\n isMinimalMode,\n })\n\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !result?.isMiss) {\n isIsrFallback = false\n }\n\n // response is finished is no cache entry\n if (!result) {\n return\n }\n\n if (hasStaticProps && !isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : result.isMiss\n ? 'MISS'\n : result.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n let cacheControl: CacheControl | undefined\n\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n } else if (is404Page) {\n const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n cacheControl = {\n revalidate:\n typeof notFoundRevalidate === 'undefined'\n ? 0\n : notFoundRevalidate,\n expire: undefined,\n }\n } else if (is500Page) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n if (result.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n )\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: result.cacheControl.expire,\n }\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: CACHE_ONE_YEAR_SECONDS,\n expire: undefined,\n }\n }\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n }\n\n // notFound: true case\n if (!result.value) {\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n addRequestMeta(\n req,\n 'notFoundRevalidate',\n result.cacheControl?.revalidate\n )\n\n res.statusCode = 404\n\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.end('{\"notFound\":true}')\n return\n }\n return await render404()\n }\n\n if (result.value.kind === CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n res.end(JSON.stringify(result.value.props))\n return\n } else {\n const handleRedirect = (pageData: any) => {\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n }\n const statusCode = getRedirectStatus(redirect)\n const { basePath } = nextConfig\n\n if (\n basePath &&\n redirect.basePath !== false &&\n redirect.destination.startsWith('/')\n ) {\n redirect.destination = `${basePath}${redirect.destination}`\n }\n\n if (redirect.destination.startsWith('/')) {\n redirect.destination = normalizeRepeatedSlashes(\n redirect.destination\n )\n }\n\n res.statusCode = statusCode\n res.setHeader('Location', redirect.destination)\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`)\n }\n res.end(redirect.destination)\n }\n await handleRedirect(result.value.props)\n return null\n }\n }\n\n if (result.value.kind !== CachedRouteKind.PAGES) {\n throw new Error(\n `Invariant: received non-pages cache entry in pages handler`\n )\n }\n\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-cache, must-revalidate')\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if (\n getRequestMeta(req, 'customErrorRender') ||\n (isErrorPage && isMinimalMode && res.statusCode === 500)\n ) {\n return null\n }\n\n // Add deployment ID header for data requests\n if (isNextDataRequest && !isErrorPage && !is500Page) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n }\n\n await sendRenderResult({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result:\n isNextDataRequest && !isErrorPage && !is500Page\n ? new RenderResult(JSON.stringify(result.value.pageData), {\n contentType: JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata,\n })\n : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n })\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n } finally {\n // An IIFE to make early returns easier.\n ;(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists\n // (e.g. a platform-created HTTP span in adapter\n // deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n }\n}\n"],"names":["RouteKind","BaseServerSpan","getTracer","SpanKind","formatUrl","addRequestMeta","getRequestMeta","setRequestMeta","interopDefault","getRevalidateReason","normalizeDataPath","CachedRouteKind","getCacheControlHeader","normalizeRepeatedSlashes","getRedirectStatus","CACHE_ONE_YEAR_SECONDS","HTML_CONTENT_TYPE_HEADER","JSON_CONTENT_TYPE_HEADER","NEXT_NAV_DEPLOYMENT_ID_HEADER","path","sendRenderResult","RenderResult","toResponseCacheEntry","NoFallbackError","RedirectStatusCode","isBot","addPathPrefix","removeTrailingSlash","getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","parsedUrl","requestMeta","isDev","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","render404","routerServerContext","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","deploymentId","clientAssetToken","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","headers","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","method","resolvedUrl","pathname","trailingSlash","endsWith","parentSpan","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","renderOpts","pageConfig","Component","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","ErrorDebug","err","distDir","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","revalidate","expire","expireTime","isNotFound","value","isRedirect","kind","REDIRECT","props","pageData","flightData","PAGES","html","status","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","get","previousFallbackCacheEntry","routeKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","contentType","result","getHeader","notFoundRevalidate","Error","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","startsWith","PermanentRedirect","generateEtags","poweredByHeader","setAttributes","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","name","updateName","setAttribute","withPropagatedContext","trace","spanName","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]} |
| import { createDefaultCacheHandler } from '../lib/cache-handlers/default'; | ||
| import { createTieredCacheHandler } from './tiered-cache-handler'; | ||
| const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE ? (message, ...args)=>{ | ||
@@ -9,3 +10,12 @@ console.log(`use-cache: ${message}`, ...args); | ||
| const privateHandlerSymbol = Symbol.for('@next/cache-handlers-private'); | ||
| const devFrontHandlersSymbol = Symbol.for('@next/cache-handlers-dev-fronts'); | ||
| const devTieredHandlersSymbol = Symbol.for('@next/cache-handlers-dev-tiered'); | ||
| const memoryCacheDisabledSymbol = Symbol.for('@next/cache-handlers-memory-disabled'); | ||
| /** | ||
| * The in-memory size used for the dev-only built-in handlers (the private | ||
| * handler, the size-0 replacement, and the per-kind front handlers for custom | ||
| * kinds). Mirrors the framework default so `cacheMaxMemorySize: 0` does not | ||
| * disable caching in development. | ||
| */ const DEV_MEMORY_CACHE_SIZE = 50 * 1024 * 1024; | ||
| /** | ||
| * The reference to the cache handlers. We store the cache handlers on the | ||
@@ -27,3 +37,10 @@ * global object so that we can access the same instance across different | ||
| debug == null ? void 0 : debug('initializing cache handlers'); | ||
| reference[handlersMapSymbol] = new Map(); | ||
| const handlersMap = new Map(); | ||
| reference[handlersMapSymbol] = handlersMap; | ||
| // In development, `cacheMaxMemorySize: 0` would make the built-in default | ||
| // handler a no-op, so every reload would miss. Use a real in-memory size | ||
| // instead so dev stays fast; the "use cache" wrapper forces a dynamic cache | ||
| // life for this case so it still behaves close to "no cache" (serve stale, | ||
| // regenerate in the background). Production keeps the no-op handler. | ||
| const builtInSize = process.env.__NEXT_DEV_SERVER && cacheMaxMemorySize === 0 ? DEV_MEMORY_CACHE_SIZE : cacheMaxMemorySize; | ||
| // Initialize the cache from the symbol contents first. | ||
@@ -37,30 +54,40 @@ if (reference[handlersSymbol]) { | ||
| debug == null ? void 0 : debug('setting "default" cache handler from default'); | ||
| fallback = createDefaultCacheHandler(cacheMaxMemorySize); | ||
| fallback = createDefaultCacheHandler(builtInSize); | ||
| } | ||
| reference[handlersMapSymbol].set('default', fallback); | ||
| handlersMap.set('default', fallback); | ||
| if (reference[handlersSymbol].RemoteCache) { | ||
| debug == null ? void 0 : debug('setting "remote" cache handler from symbol'); | ||
| reference[handlersMapSymbol].set('remote', reference[handlersSymbol].RemoteCache); | ||
| handlersMap.set('remote', reference[handlersSymbol].RemoteCache); | ||
| } else { | ||
| debug == null ? void 0 : debug('setting "remote" cache handler from default'); | ||
| reference[handlersMapSymbol].set('remote', fallback); | ||
| handlersMap.set('remote', fallback); | ||
| } | ||
| } else { | ||
| const handler = createDefaultCacheHandler(cacheMaxMemorySize); | ||
| const handler = createDefaultCacheHandler(builtInSize); | ||
| debug == null ? void 0 : debug('setting "default" cache handler from default'); | ||
| reference[handlersMapSymbol].set('default', handler); | ||
| handlersMap.set('default', handler); | ||
| debug == null ? void 0 : debug('setting "remote" cache handler from default'); | ||
| reference[handlersMapSymbol].set('remote', handler); | ||
| handlersMap.set('remote', handler); | ||
| } | ||
| // Create a set of the cache handlers. | ||
| reference[handlersSetSymbol] = new Set(reference[handlersMapSymbol].values()); | ||
| // In development, private caches are persisted in a dedicated built-in | ||
| // in-memory handler so that warm reloads are fast. This must always be the | ||
| // built-in handler, never the user-configured `default` alias (which could be | ||
| // a remote or otherwise persistent handler), because private cache entries | ||
| // can hold data specific to the incoming request (for example, derived from | ||
| // its cookies or headers). It is gated on the dev server so production never | ||
| // persists private caches. | ||
| reference[handlersSetSymbol] = new Set(handlersMap.values()); | ||
| // In development we add dedicated built-in in-memory handlers so that warm | ||
| // reloads are fast. These are always built-in handlers, never a | ||
| // user-configured one, and are gated on the dev server so production behaves | ||
| // exactly as configured. | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| reference[privateHandlerSymbol] = createDefaultCacheHandler(cacheMaxMemorySize); | ||
| reference[memoryCacheDisabledSymbol] = cacheMaxMemorySize === 0; | ||
| // Private caches are persisted here so warm reloads are fast. Private | ||
| // entries can hold data specific to the incoming request (for example, | ||
| // derived from its cookies or headers), so this is never the | ||
| // user-configured `default` alias. Sized so it still caches under | ||
| // `cacheMaxMemorySize: 0` (otherwise it would become the no-op stub and | ||
| // private reloads would miss). | ||
| reference[privateHandlerSymbol] = createDefaultCacheHandler(DEV_MEMORY_CACHE_SIZE); | ||
| // Built-in front handlers, one per custom kind, and the tiered handlers | ||
| // that place a front in front of a (possibly slow or remote) backing | ||
| // handler so warm reads resolve in a microtask, are both created per kind | ||
| // in `setCacheHandler`. | ||
| reference[devFrontHandlersSymbol] = new Map(); | ||
| reference[devTieredHandlersSymbol] = new Map(); | ||
| } | ||
@@ -102,12 +129,66 @@ return true; | ||
| /** | ||
| * Get a set iterator over the cache handlers. | ||
| * Whether the in-memory cache is disabled (`cacheMaxMemorySize: 0`). Dev-only | ||
| * signal used to force a dynamic cache life so that the size-0 case still | ||
| * serves stale and regenerates in the background. Always `false` in production. | ||
| */ export function isMemoryCacheDisabled() { | ||
| return reference[memoryCacheDisabledSymbol] ?? false; | ||
| } | ||
| /** | ||
| * Whether `kind` is backed by a real user-configured handler rather than the | ||
| * built-in in-memory default. Such a handler may be slow or remote, so in | ||
| * development a built-in front handler is placed in front of it (see | ||
| * `getDevTieredCacheHandler`) to keep warm reads microtask-fast. The presence | ||
| * of a dev front handler is the signal, since front handlers are created | ||
| * exactly for user-registered kinds. Always `false` in production. | ||
| */ export function isCustomCacheHandler(kind) { | ||
| var _reference_devFrontHandlersSymbol; | ||
| if (!process.env.__NEXT_DEV_SERVER) { | ||
| return false; | ||
| } | ||
| return ((_reference_devFrontHandlersSymbol = reference[devFrontHandlersSymbol]) == null ? void 0 : _reference_devFrontHandlersSymbol.has(kind)) ?? false; | ||
| } | ||
| /** | ||
| * Get the dev-only tiered cache handler for a custom `kind`: a fast built-in | ||
| * in-memory front handler in front of the user-configured backing handler, so | ||
| * warm reads resolve in a microtask. Returns `undefined` if there is none (a | ||
| * built-in kind, or production). | ||
| */ export function getDevTieredCacheHandler(kind) { | ||
| var _reference_devTieredHandlersSymbol; | ||
| if (!process.env.__NEXT_DEV_SERVER) { | ||
| return undefined; | ||
| } | ||
| return (_reference_devTieredHandlersSymbol = reference[devTieredHandlersSymbol]) == null ? void 0 : _reference_devTieredHandlersSymbol.get(kind); | ||
| } | ||
| /** | ||
| * Get an iterator over the cache handlers. | ||
| * @returns An iterator over the cache handlers, or `undefined` if they are not | ||
| * initialized. | ||
| */ export function getCacheHandlers() { | ||
| if (!reference[handlersSetSymbol]) { | ||
| const handlersSet = reference[handlersSetSymbol]; | ||
| if (!handlersSet) { | ||
| return undefined; | ||
| } | ||
| return reference[handlersSetSymbol].values(); | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| return iterateCacheHandlersWithDevBuiltIns(handlersSet); | ||
| } | ||
| return handlersSet.values(); | ||
| } | ||
| /** | ||
| * Yields the registered handlers plus the dev-only built-in handlers (the | ||
| * private handler and the per-kind front handlers). The built-in handlers are | ||
| * not part of the registered set, but tag operations must still reach them: | ||
| * their `updateTags` writes the shared tags manifest that their `get` consults, | ||
| * so `revalidateTag` can invalidate their entries. | ||
| */ function* iterateCacheHandlersWithDevBuiltIns(handlersSet) { | ||
| yield* handlersSet; | ||
| const privateHandler = reference[privateHandlerSymbol]; | ||
| if (privateHandler) { | ||
| yield privateHandler; | ||
| } | ||
| const devFrontHandlers = reference[devFrontHandlersSymbol]; | ||
| if (devFrontHandlers) { | ||
| yield* devFrontHandlers.values(); | ||
| } | ||
| } | ||
| /** | ||
| * Get a map iterator over the cache handlers (keyed by kind). | ||
@@ -118,8 +199,30 @@ * @returns An iterator over the cache handler entries, or `undefined` if they | ||
| */ export function getCacheHandlerEntries() { | ||
| if (!reference[handlersMapSymbol]) { | ||
| const handlersMap = reference[handlersMapSymbol]; | ||
| if (!handlersMap) { | ||
| return undefined; | ||
| } | ||
| return reference[handlersMapSymbol].entries(); | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| return iterateCacheHandlerEntriesWithDevBuiltIns(handlersMap); | ||
| } | ||
| return handlersMap.entries(); | ||
| } | ||
| /** | ||
| * Yields the registered entries plus the dev-only private handler under its | ||
| * kind, so that per-kind tag operations (`refreshTags` / `getExpiration` for | ||
| * implicit tags) apply to private entries. Custom-kind front handlers are | ||
| * intentionally omitted: the backing handler (already in the map) is | ||
| * authoritative for that kind's `getExpiration`, and a front entry is discarded | ||
| * via that same value. | ||
| */ function* iterateCacheHandlerEntriesWithDevBuiltIns(handlersMap) { | ||
| yield* handlersMap.entries(); | ||
| const privateHandler = reference[privateHandlerSymbol]; | ||
| if (privateHandler) { | ||
| const privateEntry = [ | ||
| 'private', | ||
| privateHandler | ||
| ]; | ||
| yield privateEntry; | ||
| } | ||
| } | ||
| /** | ||
| * Set a cache handler by kind. | ||
@@ -140,4 +243,16 @@ * @param kind - The kind of cache handler to set. | ||
| reference[handlersSetSymbol].add(cacheHandler); | ||
| // A user-configured handler may be slow or remote. In development, give it a | ||
| // dedicated built-in in-memory front handler so warm reads resolve in a | ||
| // microtask, and pair the two into a tiered handler the wrapper reads | ||
| // through. Both are created alongside registration so their lifecycle matches | ||
| // the backing handler's, and the front handler's presence is the signal that | ||
| // this kind is backed by a real handler (see `isCustomCacheHandler`). | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| var _reference_devFrontHandlersSymbol, _reference_devTieredHandlersSymbol; | ||
| const frontHandler = createDefaultCacheHandler(DEV_MEMORY_CACHE_SIZE); | ||
| (_reference_devFrontHandlersSymbol = reference[devFrontHandlersSymbol]) == null ? void 0 : _reference_devFrontHandlersSymbol.set(kind, frontHandler); | ||
| (_reference_devTieredHandlersSymbol = reference[devTieredHandlersSymbol]) == null ? void 0 : _reference_devTieredHandlersSymbol.set(kind, createTieredCacheHandler(frontHandler, cacheHandler)); | ||
| } | ||
| } | ||
| //# sourceMappingURL=handlers.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/server/use-cache/handlers.ts"],"sourcesContent":["import { createDefaultCacheHandler } from '../lib/cache-handlers/default'\nimport type { CacheHandler } from '../lib/cache-handlers/types'\n\nconst debug = process.env.NEXT_PRIVATE_DEBUG_CACHE\n ? (message: string, ...args: any[]) => {\n console.log(`use-cache: ${message}`, ...args)\n }\n : undefined\n\nconst handlersSymbol = Symbol.for('@next/cache-handlers')\nconst handlersMapSymbol = Symbol.for('@next/cache-handlers-map')\nconst handlersSetSymbol = Symbol.for('@next/cache-handlers-set')\nconst privateHandlerSymbol = Symbol.for('@next/cache-handlers-private')\n\n/**\n * The reference to the cache handlers. We store the cache handlers on the\n * global object so that we can access the same instance across different\n * boundaries (such as different copies of the same module).\n */\nconst reference: typeof globalThis & {\n [handlersSymbol]?: {\n RemoteCache?: CacheHandler\n DefaultCache?: CacheHandler\n }\n [handlersMapSymbol]?: Map<string, CacheHandler>\n [handlersSetSymbol]?: Set<CacheHandler>\n // DEV-only\n [privateHandlerSymbol]?: CacheHandler\n} = globalThis\n\n/**\n * Initialize the cache handlers.\n * @param cacheMaxMemorySize - The maximum memory size of the cache in bytes, if\n * not provided, the default memory size will be used.\n * @returns `true` if the cache handlers were initialized, `false` if they were already initialized.\n */\nexport function initializeCacheHandlers(cacheMaxMemorySize: number): boolean {\n // If the cache handlers have already been initialized, don't do it again.\n if (reference[handlersMapSymbol]) {\n debug?.('cache handlers already initialized')\n return false\n }\n\n debug?.('initializing cache handlers')\n reference[handlersMapSymbol] = new Map<string, CacheHandler>()\n\n // Initialize the cache from the symbol contents first.\n if (reference[handlersSymbol]) {\n let fallback: CacheHandler\n if (reference[handlersSymbol].DefaultCache) {\n debug?.('setting \"default\" cache handler from symbol')\n fallback = reference[handlersSymbol].DefaultCache\n } else {\n debug?.('setting \"default\" cache handler from default')\n fallback = createDefaultCacheHandler(cacheMaxMemorySize)\n }\n\n reference[handlersMapSymbol].set('default', fallback)\n\n if (reference[handlersSymbol].RemoteCache) {\n debug?.('setting \"remote\" cache handler from symbol')\n reference[handlersMapSymbol].set(\n 'remote',\n reference[handlersSymbol].RemoteCache\n )\n } else {\n debug?.('setting \"remote\" cache handler from default')\n reference[handlersMapSymbol].set('remote', fallback)\n }\n } else {\n const handler = createDefaultCacheHandler(cacheMaxMemorySize)\n\n debug?.('setting \"default\" cache handler from default')\n reference[handlersMapSymbol].set('default', handler)\n debug?.('setting \"remote\" cache handler from default')\n reference[handlersMapSymbol].set('remote', handler)\n }\n\n // Create a set of the cache handlers.\n reference[handlersSetSymbol] = new Set(reference[handlersMapSymbol].values())\n\n // In development, private caches are persisted in a dedicated built-in\n // in-memory handler so that warm reloads are fast. This must always be the\n // built-in handler, never the user-configured `default` alias (which could be\n // a remote or otherwise persistent handler), because private cache entries\n // can hold data specific to the incoming request (for example, derived from\n // its cookies or headers). It is gated on the dev server so production never\n // persists private caches.\n if (process.env.__NEXT_DEV_SERVER) {\n reference[privateHandlerSymbol] =\n createDefaultCacheHandler(cacheMaxMemorySize)\n }\n\n return true\n}\n\n/**\n * Get a cache handler by kind.\n * @param kind - The kind of cache handler to get.\n * @returns The cache handler, or `undefined` if it does not exist.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandler(kind: string): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[handlersMapSymbol].get(kind)\n}\n\n/**\n * Get the dedicated in-memory cache handler that persists private caches in\n * development. Returns `undefined` outside the dev server, where private caches\n * must not be persisted. This is intentionally not part of the kind-keyed\n * handlers map so that it can never be replaced by a user-configured handler.\n */\nexport function getPrivateCacheHandler(): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[privateHandlerSymbol]\n}\n\n/**\n * Get a set iterator over the cache handlers.\n * @returns An iterator over the cache handlers, or `undefined` if they are not\n * initialized.\n */\nexport function getCacheHandlers(): SetIterator<CacheHandler> | undefined {\n if (!reference[handlersSetSymbol]) {\n return undefined\n }\n\n return reference[handlersSetSymbol].values()\n}\n\n/**\n * Get a map iterator over the cache handlers (keyed by kind).\n * @returns An iterator over the cache handler entries, or `undefined` if they\n * are not initialized.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandlerEntries():\n | MapIterator<[string, CacheHandler]>\n | undefined {\n if (!reference[handlersMapSymbol]) {\n return undefined\n }\n\n return reference[handlersMapSymbol].entries()\n}\n\n/**\n * Set a cache handler by kind.\n * @param kind - The kind of cache handler to set.\n * @param cacheHandler - The cache handler to set.\n */\nexport function setCacheHandler(\n kind: string,\n cacheHandler: CacheHandler\n): void {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol] || !reference[handlersSetSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n debug?.('setting cache handler for \"%s\"', kind)\n reference[handlersMapSymbol].set(kind, cacheHandler)\n reference[handlersSetSymbol].add(cacheHandler)\n}\n"],"names":["createDefaultCacheHandler","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","message","args","console","log","undefined","handlersSymbol","Symbol","for","handlersMapSymbol","handlersSetSymbol","privateHandlerSymbol","reference","globalThis","initializeCacheHandlers","cacheMaxMemorySize","Map","fallback","DefaultCache","set","RemoteCache","handler","Set","values","__NEXT_DEV_SERVER","getCacheHandler","kind","Error","get","getPrivateCacheHandler","getCacheHandlers","getCacheHandlerEntries","entries","setCacheHandler","cacheHandler","add"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/server/use-cache/handlers.ts"],"sourcesContent":["import { createDefaultCacheHandler } from '../lib/cache-handlers/default'\nimport type { CacheHandler } from '../lib/cache-handlers/types'\nimport {\n createTieredCacheHandler,\n type CacheReadWriteHandler,\n} from './tiered-cache-handler'\n\nconst debug = process.env.NEXT_PRIVATE_DEBUG_CACHE\n ? (message: string, ...args: any[]) => {\n console.log(`use-cache: ${message}`, ...args)\n }\n : undefined\n\nconst handlersSymbol = Symbol.for('@next/cache-handlers')\nconst handlersMapSymbol = Symbol.for('@next/cache-handlers-map')\nconst handlersSetSymbol = Symbol.for('@next/cache-handlers-set')\nconst privateHandlerSymbol = Symbol.for('@next/cache-handlers-private')\nconst devFrontHandlersSymbol = Symbol.for('@next/cache-handlers-dev-fronts')\nconst devTieredHandlersSymbol = Symbol.for('@next/cache-handlers-dev-tiered')\nconst memoryCacheDisabledSymbol = Symbol.for(\n '@next/cache-handlers-memory-disabled'\n)\n\n/**\n * The in-memory size used for the dev-only built-in handlers (the private\n * handler, the size-0 replacement, and the per-kind front handlers for custom\n * kinds). Mirrors the framework default so `cacheMaxMemorySize: 0` does not\n * disable caching in development.\n */\nconst DEV_MEMORY_CACHE_SIZE = 50 * 1024 * 1024\n\n/**\n * The reference to the cache handlers. We store the cache handlers on the\n * global object so that we can access the same instance across different\n * boundaries (such as different copies of the same module).\n */\nconst reference: typeof globalThis & {\n [handlersSymbol]?: {\n RemoteCache?: CacheHandler\n DefaultCache?: CacheHandler\n }\n [handlersMapSymbol]?: Map<string, CacheHandler>\n [handlersSetSymbol]?: Set<CacheHandler>\n // DEV-only\n [privateHandlerSymbol]?: CacheHandler\n [devFrontHandlersSymbol]?: Map<string, CacheHandler>\n [devTieredHandlersSymbol]?: Map<string, CacheReadWriteHandler>\n [memoryCacheDisabledSymbol]?: boolean\n} = globalThis\n\n/**\n * Initialize the cache handlers.\n * @param cacheMaxMemorySize - The maximum memory size of the cache in bytes, if\n * not provided, the default memory size will be used.\n * @returns `true` if the cache handlers were initialized, `false` if they were already initialized.\n */\nexport function initializeCacheHandlers(cacheMaxMemorySize: number): boolean {\n // If the cache handlers have already been initialized, don't do it again.\n if (reference[handlersMapSymbol]) {\n debug?.('cache handlers already initialized')\n return false\n }\n\n debug?.('initializing cache handlers')\n const handlersMap = new Map<string, CacheHandler>()\n reference[handlersMapSymbol] = handlersMap\n\n // In development, `cacheMaxMemorySize: 0` would make the built-in default\n // handler a no-op, so every reload would miss. Use a real in-memory size\n // instead so dev stays fast; the \"use cache\" wrapper forces a dynamic cache\n // life for this case so it still behaves close to \"no cache\" (serve stale,\n // regenerate in the background). Production keeps the no-op handler.\n const builtInSize =\n process.env.__NEXT_DEV_SERVER && cacheMaxMemorySize === 0\n ? DEV_MEMORY_CACHE_SIZE\n : cacheMaxMemorySize\n\n // Initialize the cache from the symbol contents first.\n if (reference[handlersSymbol]) {\n let fallback: CacheHandler\n if (reference[handlersSymbol].DefaultCache) {\n debug?.('setting \"default\" cache handler from symbol')\n fallback = reference[handlersSymbol].DefaultCache\n } else {\n debug?.('setting \"default\" cache handler from default')\n fallback = createDefaultCacheHandler(builtInSize)\n }\n\n handlersMap.set('default', fallback)\n\n if (reference[handlersSymbol].RemoteCache) {\n debug?.('setting \"remote\" cache handler from symbol')\n handlersMap.set('remote', reference[handlersSymbol].RemoteCache)\n } else {\n debug?.('setting \"remote\" cache handler from default')\n handlersMap.set('remote', fallback)\n }\n } else {\n const handler = createDefaultCacheHandler(builtInSize)\n\n debug?.('setting \"default\" cache handler from default')\n handlersMap.set('default', handler)\n debug?.('setting \"remote\" cache handler from default')\n handlersMap.set('remote', handler)\n }\n\n // Create a set of the cache handlers.\n reference[handlersSetSymbol] = new Set(handlersMap.values())\n\n // In development we add dedicated built-in in-memory handlers so that warm\n // reloads are fast. These are always built-in handlers, never a\n // user-configured one, and are gated on the dev server so production behaves\n // exactly as configured.\n if (process.env.__NEXT_DEV_SERVER) {\n reference[memoryCacheDisabledSymbol] = cacheMaxMemorySize === 0\n\n // Private caches are persisted here so warm reloads are fast. Private\n // entries can hold data specific to the incoming request (for example,\n // derived from its cookies or headers), so this is never the\n // user-configured `default` alias. Sized so it still caches under\n // `cacheMaxMemorySize: 0` (otherwise it would become the no-op stub and\n // private reloads would miss).\n reference[privateHandlerSymbol] = createDefaultCacheHandler(\n DEV_MEMORY_CACHE_SIZE\n )\n\n // Built-in front handlers, one per custom kind, and the tiered handlers\n // that place a front in front of a (possibly slow or remote) backing\n // handler so warm reads resolve in a microtask, are both created per kind\n // in `setCacheHandler`.\n reference[devFrontHandlersSymbol] = new Map()\n reference[devTieredHandlersSymbol] = new Map()\n }\n\n return true\n}\n\n/**\n * Get a cache handler by kind.\n * @param kind - The kind of cache handler to get.\n * @returns The cache handler, or `undefined` if it does not exist.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandler(kind: string): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[handlersMapSymbol].get(kind)\n}\n\n/**\n * Get the dedicated in-memory cache handler that persists private caches in\n * development. Returns `undefined` outside the dev server, where private caches\n * must not be persisted. This is intentionally not part of the kind-keyed\n * handlers map so that it can never be replaced by a user-configured handler.\n */\nexport function getPrivateCacheHandler(): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[privateHandlerSymbol]\n}\n\n/**\n * Whether the in-memory cache is disabled (`cacheMaxMemorySize: 0`). Dev-only\n * signal used to force a dynamic cache life so that the size-0 case still\n * serves stale and regenerates in the background. Always `false` in production.\n */\nexport function isMemoryCacheDisabled(): boolean {\n return reference[memoryCacheDisabledSymbol] ?? false\n}\n\n/**\n * Whether `kind` is backed by a real user-configured handler rather than the\n * built-in in-memory default. Such a handler may be slow or remote, so in\n * development a built-in front handler is placed in front of it (see\n * `getDevTieredCacheHandler`) to keep warm reads microtask-fast. The presence\n * of a dev front handler is the signal, since front handlers are created\n * exactly for user-registered kinds. Always `false` in production.\n */\nexport function isCustomCacheHandler(kind: string): boolean {\n if (!process.env.__NEXT_DEV_SERVER) {\n return false\n }\n\n return reference[devFrontHandlersSymbol]?.has(kind) ?? false\n}\n\n/**\n * Get the dev-only tiered cache handler for a custom `kind`: a fast built-in\n * in-memory front handler in front of the user-configured backing handler, so\n * warm reads resolve in a microtask. Returns `undefined` if there is none (a\n * built-in kind, or production).\n */\nexport function getDevTieredCacheHandler(\n kind: string\n): CacheReadWriteHandler | undefined {\n if (!process.env.__NEXT_DEV_SERVER) {\n return undefined\n }\n\n return reference[devTieredHandlersSymbol]?.get(kind)\n}\n\n/**\n * Get an iterator over the cache handlers.\n * @returns An iterator over the cache handlers, or `undefined` if they are not\n * initialized.\n */\nexport function getCacheHandlers(): IterableIterator<CacheHandler> | undefined {\n const handlersSet = reference[handlersSetSymbol]\n if (!handlersSet) {\n return undefined\n }\n\n if (process.env.__NEXT_DEV_SERVER) {\n return iterateCacheHandlersWithDevBuiltIns(handlersSet)\n }\n\n return handlersSet.values()\n}\n\n/**\n * Yields the registered handlers plus the dev-only built-in handlers (the\n * private handler and the per-kind front handlers). The built-in handlers are\n * not part of the registered set, but tag operations must still reach them:\n * their `updateTags` writes the shared tags manifest that their `get` consults,\n * so `revalidateTag` can invalidate their entries.\n */\nfunction* iterateCacheHandlersWithDevBuiltIns(\n handlersSet: Set<CacheHandler>\n): IterableIterator<CacheHandler> {\n yield* handlersSet\n\n const privateHandler = reference[privateHandlerSymbol]\n if (privateHandler) {\n yield privateHandler\n }\n\n const devFrontHandlers = reference[devFrontHandlersSymbol]\n if (devFrontHandlers) {\n yield* devFrontHandlers.values()\n }\n}\n\n/**\n * Get a map iterator over the cache handlers (keyed by kind).\n * @returns An iterator over the cache handler entries, or `undefined` if they\n * are not initialized.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandlerEntries():\n | IterableIterator<[string, CacheHandler]>\n | undefined {\n const handlersMap = reference[handlersMapSymbol]\n if (!handlersMap) {\n return undefined\n }\n\n if (process.env.__NEXT_DEV_SERVER) {\n return iterateCacheHandlerEntriesWithDevBuiltIns(handlersMap)\n }\n\n return handlersMap.entries()\n}\n\n/**\n * Yields the registered entries plus the dev-only private handler under its\n * kind, so that per-kind tag operations (`refreshTags` / `getExpiration` for\n * implicit tags) apply to private entries. Custom-kind front handlers are\n * intentionally omitted: the backing handler (already in the map) is\n * authoritative for that kind's `getExpiration`, and a front entry is discarded\n * via that same value.\n */\nfunction* iterateCacheHandlerEntriesWithDevBuiltIns(\n handlersMap: Map<string, CacheHandler>\n): IterableIterator<[string, CacheHandler]> {\n yield* handlersMap.entries()\n\n const privateHandler = reference[privateHandlerSymbol]\n if (privateHandler) {\n const privateEntry: [string, CacheHandler] = ['private', privateHandler]\n yield privateEntry\n }\n}\n\n/**\n * Set a cache handler by kind.\n * @param kind - The kind of cache handler to set.\n * @param cacheHandler - The cache handler to set.\n */\nexport function setCacheHandler(\n kind: string,\n cacheHandler: CacheHandler\n): void {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol] || !reference[handlersSetSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n debug?.('setting cache handler for \"%s\"', kind)\n reference[handlersMapSymbol].set(kind, cacheHandler)\n reference[handlersSetSymbol].add(cacheHandler)\n\n // A user-configured handler may be slow or remote. In development, give it a\n // dedicated built-in in-memory front handler so warm reads resolve in a\n // microtask, and pair the two into a tiered handler the wrapper reads\n // through. Both are created alongside registration so their lifecycle matches\n // the backing handler's, and the front handler's presence is the signal that\n // this kind is backed by a real handler (see `isCustomCacheHandler`).\n if (process.env.__NEXT_DEV_SERVER) {\n const frontHandler = createDefaultCacheHandler(DEV_MEMORY_CACHE_SIZE)\n reference[devFrontHandlersSymbol]?.set(kind, frontHandler)\n reference[devTieredHandlersSymbol]?.set(\n kind,\n createTieredCacheHandler(frontHandler, cacheHandler)\n )\n }\n}\n"],"names":["createDefaultCacheHandler","createTieredCacheHandler","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","message","args","console","log","undefined","handlersSymbol","Symbol","for","handlersMapSymbol","handlersSetSymbol","privateHandlerSymbol","devFrontHandlersSymbol","devTieredHandlersSymbol","memoryCacheDisabledSymbol","DEV_MEMORY_CACHE_SIZE","reference","globalThis","initializeCacheHandlers","cacheMaxMemorySize","handlersMap","Map","builtInSize","__NEXT_DEV_SERVER","fallback","DefaultCache","set","RemoteCache","handler","Set","values","getCacheHandler","kind","Error","get","getPrivateCacheHandler","isMemoryCacheDisabled","isCustomCacheHandler","has","getDevTieredCacheHandler","getCacheHandlers","handlersSet","iterateCacheHandlersWithDevBuiltIns","privateHandler","devFrontHandlers","getCacheHandlerEntries","iterateCacheHandlerEntriesWithDevBuiltIns","entries","privateEntry","setCacheHandler","cacheHandler","add","frontHandler"],"mappings":"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","ignoreList":[0]} |
| export function isStableBuild() { | ||
| return !"16.3.0-canary.52"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV; | ||
| return !"16.3.0-canary.53"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV; | ||
| } | ||
@@ -4,0 +4,0 @@ export class CanaryOnlyConfigError extends Error { |
@@ -1,2 +0,2 @@ | ||
| import { bold, green, magenta, red } from '../../../lib/picocolors'; | ||
| import { bold, green, magenta, red, yellow } from '../../../lib/picocolors'; | ||
| import { deobfuscateText } from '../magic-identifier'; | ||
@@ -60,5 +60,12 @@ import * as Log from '../../../build/output/log'; | ||
| export function formatIssue(issue) { | ||
| const { filePath, title, description, detail, source, importTraces } = issue; | ||
| const { filePath, title, description, detail, source, importTraces, severity } = issue; | ||
| let { documentationLink } = issue; | ||
| const formattedTitle = renderStyledStringToErrorAnsi(title).replace(/\n/g, '\n '); | ||
| let formattedTitle = renderStyledStringToErrorAnsi(title).replace(/\n/g, '\n '); | ||
| if (severity === 'bug' || severity === 'error' || severity === 'fatal') { | ||
| formattedTitle = bold(`${red('Error')}: ${formattedTitle}`); | ||
| } else if (severity === 'warning') { | ||
| formattedTitle = bold(`${yellow('Warning')}: ${formattedTitle}`); | ||
| } else { | ||
| formattedTitle = bold(`Info: ${formattedTitle}`); | ||
| } | ||
| // TODO: Use error codes to identify these | ||
@@ -65,0 +72,0 @@ // TODO: Generalize adapting Turbopack errors to Next.js errors |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../../src/shared/lib/turbopack/utils.ts"],"sourcesContent":["import type {\n Issue,\n PlainTraceItem,\n StyledString,\n TurbopackResult,\n} from '../../../build/swc/types'\n\nimport { bold, green, magenta, red } from '../../../lib/picocolors'\nimport { deobfuscateText } from '../magic-identifier'\nimport type { EntryKey } from './entry-key'\nimport * as Log from '../../../build/output/log'\nimport type { NextConfigComplete } from '../../../server/config-shared'\n\ntype IssueKey = `${Issue['severity']}-${Issue['filePath']}-${string}-${string}`\nexport type IssuesMap = Map<IssueKey, Issue>\nexport type EntryIssuesMap = Map<EntryKey, IssuesMap>\nexport type TopLevelIssuesMap = IssuesMap\n\nconst VERBOSE_ISSUES = !!process.env.NEXT_TURBOPACK_VERBOSE_ISSUES\n\n/**\n * An error generated from emitted Turbopack issues. This can include build\n * errors caused by issues with user code.\n */\nexport class ModuleBuildError extends Error {\n name = 'ModuleBuildError'\n}\n\n/**\n * Thin stopgap workaround layer to mimic existing wellknown-errors-plugin in webpack's build\n * to emit certain type of errors into cli.\n */\nexport function isWellKnownError(issue: Issue): boolean {\n const { title } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title)\n // TODO: add more well known errors\n if (\n formattedTitle.includes('Module not found') ||\n formattedTitle.includes('Unknown module type')\n ) {\n return true\n }\n\n return false\n}\n\nexport function getIssueKey(issue: Issue): IssueKey {\n return `${issue.severity}-${issue.filePath}-${JSON.stringify(\n issue.title\n )}-${JSON.stringify(issue.description)}`\n}\n\nexport function processIssues(\n currentEntryIssues: EntryIssuesMap,\n key: EntryKey,\n result: TurbopackResult,\n throwIssue: boolean,\n logErrors: boolean\n) {\n const newIssues = new Map<IssueKey, Issue>()\n currentEntryIssues.set(key, newIssues)\n\n const relevantIssues = new Set()\n\n for (const issue of result.issues) {\n if (\n issue.severity !== 'error' &&\n issue.severity !== 'fatal' &&\n issue.severity !== 'warning'\n )\n continue\n\n const issueKey = getIssueKey(issue)\n newIssues.set(issueKey, issue)\n\n if (issue.severity !== 'warning') {\n if (throwIssue) {\n const formatted = formatIssue(issue)\n relevantIssues.add(formatted)\n }\n // if we throw the issue it will most likely get handed and logged elsewhere\n else if (logErrors && isWellKnownError(issue)) {\n const formatted = formatIssue(issue)\n Log.error(formatted)\n }\n }\n }\n\n if (relevantIssues.size && throwIssue) {\n throw new ModuleBuildError([...relevantIssues].join('\\n\\n'))\n }\n}\n\nfunction formatFilePath(filePath: string): string {\n return filePath\n .replace('[project]/', './')\n .replaceAll('/./', '/')\n .replace('\\\\\\\\?\\\\', '')\n}\n\nexport function formatIssue(issue: Issue) {\n const { filePath, title, description, detail, source, importTraces } = issue\n let { documentationLink } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title).replace(\n /\\n/g,\n '\\n '\n )\n\n // TODO: Use error codes to identify these\n // TODO: Generalize adapting Turbopack errors to Next.js errors\n if (formattedTitle.includes('Module not found')) {\n // For compatiblity with webpack\n // TODO: include columns in webpack errors.\n documentationLink = 'https://nextjs.org/docs/messages/module-not-found'\n }\n\n const formattedFilePath = formatFilePath(filePath)\n\n let message = ''\n\n if (source?.range) {\n const { start } = source.range\n message = `${formattedFilePath}:${start.line + 1}:${\n start.column + 1\n }\\n${formattedTitle}`\n } else if (formattedFilePath) {\n message = `${formattedFilePath}\\n${formattedTitle}`\n } else {\n message = formattedTitle\n }\n message += '\\n'\n\n if (issue.codeFrame) {\n message += issue.codeFrame.trimEnd() + '\\n\\n'\n }\n\n if (description) {\n if (\n description.type === 'text' &&\n description.value.includes(`Cannot find module 'sass'`)\n ) {\n message +=\n \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\"\n message += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n'\n message += '\\nLearn more: https://nextjs.org/docs/messages/install-sass\\n'\n } else {\n message += renderStyledStringToErrorAnsi(description) + '\\n\\n'\n }\n }\n\n // TODO: make it easier to enable this for debugging\n if (VERBOSE_ISSUES && detail) {\n message += renderStyledStringToErrorAnsi(detail) + '\\n\\n'\n }\n\n // Render additional sources (e.g., generated code from a loader)\n for (const additional of issue.additionalSources ?? []) {\n if (additional.codeFrame) {\n const additionalFilePath = formatFilePath(\n additional.source.source.filePath\n )\n const loc = additional.source.range\n ? `:${additional.source.range.start.line + 1}:${additional.source.range.start.column + 1}`\n : ''\n message += `${additional.description}:\\n${additionalFilePath}${loc}\\n${additional.codeFrame.trimEnd()}\\n\\n`\n }\n }\n\n if (importTraces?.length) {\n // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs\n // We end up with multiple traces when the file with the error is reachable from multiple\n // different entry points (e.g. ssr, client)\n message += `Import trace${importTraces.length > 1 ? 's' : ''}:\\n`\n const everyTraceHasADistinctRootLayer =\n new Set(importTraces.map(leafLayerName).filter((l) => l != null)).size ===\n importTraces.length\n for (let i = 0; i < importTraces.length; i++) {\n const trace = importTraces[i]\n const layer = leafLayerName(trace)\n let traceIndent = ' '\n // If this is true, layer must be present\n if (everyTraceHasADistinctRootLayer) {\n message += ` ${layer}:\\n`\n } else {\n if (importTraces.length > 1) {\n // Otherwise use simple 1 based indices to disambiguate\n message += ` #${i + 1}`\n if (layer) {\n message += ` [${layer}]`\n }\n message += ':\\n'\n } else if (layer) {\n message += ` [${layer}]:\\n`\n } else {\n // If there is a single trace and no layer name just don't indent it.\n traceIndent = ' '\n }\n }\n message += formatIssueTrace(trace, traceIndent, !identicalLayers(trace))\n }\n }\n if (documentationLink) {\n message += documentationLink + '\\n\\n'\n }\n return message\n}\n\n/** Returns the first present layer name in the trace */\nfunction leafLayerName(items: PlainTraceItem[]): string | undefined {\n for (const item of items) {\n const layer = item.layer\n if (layer != null) return layer\n }\n return undefined\n}\n\n/**\n * Returns whether or not all items share the same layer.\n * If a layer is absent we ignore it in this analysis\n */\nfunction identicalLayers(items: PlainTraceItem[]): boolean {\n const firstPresentLayer = items.findIndex((t) => t.layer != null)\n if (firstPresentLayer === -1) return true // all layers are absent\n const layer = items[firstPresentLayer].layer\n for (let i = firstPresentLayer + 1; i < items.length; i++) {\n const itemLayer = items[i].layer\n if (itemLayer == null || itemLayer !== layer) {\n return false\n }\n }\n return true\n}\n\nfunction formatIssueTrace(\n items: PlainTraceItem[],\n indent: string,\n printLayers: boolean\n): string {\n return `${items\n .map((item) => {\n let r = indent\n if (item.fsName !== 'project') {\n r += `[${item.fsName}]/`\n } else {\n // This is consistent with webpack's output\n r += './'\n }\n r += item.path\n if (printLayers && item.layer) {\n r += ` [${item.layer}]`\n }\n return r\n })\n .join('\\n')}\\n\\n`\n}\n\nexport function isRelevantWarning(issue: Issue): boolean {\n return issue.severity === 'warning' && !isNodeModulesIssue(issue)\n}\n\nfunction isNodeModulesIssue(issue: Issue): boolean {\n if (issue.severity === 'warning' && issue.stage === 'config') {\n // Override for the externalize issue\n // `Package foo (serverExternalPackages or default list) can't be external`\n if (\n renderStyledStringToErrorAnsi(issue.title).includes(\"can't be external\")\n ) {\n return false\n }\n }\n\n return (\n issue.severity === 'warning' &&\n (issue.filePath.match(/^(?:.*[\\\\/])?node_modules(?:[\\\\/].*)?$/) !== null ||\n // Ignore Next.js itself when running next directly in the monorepo where it is not inside\n // node_modules anyway.\n // TODO(mischnic) prevent matches when this is published to npm\n issue.filePath.startsWith('[project]/packages/next/'))\n )\n}\n\nexport function renderStyledStringToErrorAnsi(string: StyledString): string {\n function applyDeobfuscation(str: string): string {\n // Use shared deobfuscate function and apply magenta color to identifiers\n const deobfuscated = deobfuscateText(str)\n // Color any {...} wrapped identifiers with magenta\n return deobfuscated.replace(/\\{([^}]+)\\}/g, (match) => magenta(match))\n }\n\n switch (string.type) {\n case 'text':\n return applyDeobfuscation(string.value)\n case 'strong':\n return bold(red(applyDeobfuscation(string.value)))\n case 'code':\n return green(applyDeobfuscation(string.value))\n case 'line':\n return string.value.map(renderStyledStringToErrorAnsi).join('')\n case 'stack':\n return string.value.map(renderStyledStringToErrorAnsi).join('\\n')\n default:\n throw new Error('Unknown StyledString type', string)\n }\n}\n\nexport function isFileSystemCacheEnabledForDev(\n config: NextConfigComplete\n): boolean {\n return config.experimental?.turbopackFileSystemCacheForDev || false\n}\n"],"names":["bold","green","magenta","red","deobfuscateText","Log","VERBOSE_ISSUES","process","env","NEXT_TURBOPACK_VERBOSE_ISSUES","ModuleBuildError","Error","name","isWellKnownError","issue","title","formattedTitle","renderStyledStringToErrorAnsi","includes","getIssueKey","severity","filePath","JSON","stringify","description","processIssues","currentEntryIssues","key","result","throwIssue","logErrors","newIssues","Map","set","relevantIssues","Set","issues","issueKey","formatted","formatIssue","add","error","size","join","formatFilePath","replace","replaceAll","detail","source","importTraces","documentationLink","formattedFilePath","message","range","start","line","column","codeFrame","trimEnd","type","value","additional","additionalSources","additionalFilePath","loc","length","everyTraceHasADistinctRootLayer","map","leafLayerName","filter","l","i","trace","layer","traceIndent","formatIssueTrace","identicalLayers","items","item","undefined","firstPresentLayer","findIndex","t","itemLayer","indent","printLayers","r","fsName","path","isRelevantWarning","isNodeModulesIssue","stage","match","startsWith","string","applyDeobfuscation","str","deobfuscated","isFileSystemCacheEnabledForDev","config","experimental","turbopackFileSystemCacheForDev"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../../src/shared/lib/turbopack/utils.ts"],"sourcesContent":["import type {\n Issue,\n PlainTraceItem,\n StyledString,\n TurbopackResult,\n} from '../../../build/swc/types'\n\nimport { bold, green, magenta, red, yellow } from '../../../lib/picocolors'\nimport { deobfuscateText } from '../magic-identifier'\nimport type { EntryKey } from './entry-key'\nimport * as Log from '../../../build/output/log'\nimport type { NextConfigComplete } from '../../../server/config-shared'\n\ntype IssueKey = `${Issue['severity']}-${Issue['filePath']}-${string}-${string}`\nexport type IssuesMap = Map<IssueKey, Issue>\nexport type EntryIssuesMap = Map<EntryKey, IssuesMap>\nexport type TopLevelIssuesMap = IssuesMap\n\nconst VERBOSE_ISSUES = !!process.env.NEXT_TURBOPACK_VERBOSE_ISSUES\n\n/**\n * An error generated from emitted Turbopack issues. This can include build\n * errors caused by issues with user code.\n */\nexport class ModuleBuildError extends Error {\n name = 'ModuleBuildError'\n}\n\n/**\n * Thin stopgap workaround layer to mimic existing wellknown-errors-plugin in webpack's build\n * to emit certain type of errors into cli.\n */\nexport function isWellKnownError(issue: Issue): boolean {\n const { title } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title)\n // TODO: add more well known errors\n if (\n formattedTitle.includes('Module not found') ||\n formattedTitle.includes('Unknown module type')\n ) {\n return true\n }\n\n return false\n}\n\nexport function getIssueKey(issue: Issue): IssueKey {\n return `${issue.severity}-${issue.filePath}-${JSON.stringify(\n issue.title\n )}-${JSON.stringify(issue.description)}`\n}\n\nexport function processIssues(\n currentEntryIssues: EntryIssuesMap,\n key: EntryKey,\n result: TurbopackResult,\n throwIssue: boolean,\n logErrors: boolean\n) {\n const newIssues = new Map<IssueKey, Issue>()\n currentEntryIssues.set(key, newIssues)\n\n const relevantIssues = new Set()\n\n for (const issue of result.issues) {\n if (\n issue.severity !== 'error' &&\n issue.severity !== 'fatal' &&\n issue.severity !== 'warning'\n )\n continue\n\n const issueKey = getIssueKey(issue)\n newIssues.set(issueKey, issue)\n\n if (issue.severity !== 'warning') {\n if (throwIssue) {\n const formatted = formatIssue(issue)\n relevantIssues.add(formatted)\n }\n // if we throw the issue it will most likely get handed and logged elsewhere\n else if (logErrors && isWellKnownError(issue)) {\n const formatted = formatIssue(issue)\n Log.error(formatted)\n }\n }\n }\n\n if (relevantIssues.size && throwIssue) {\n throw new ModuleBuildError([...relevantIssues].join('\\n\\n'))\n }\n}\n\nfunction formatFilePath(filePath: string): string {\n return filePath\n .replace('[project]/', './')\n .replaceAll('/./', '/')\n .replace('\\\\\\\\?\\\\', '')\n}\n\nexport function formatIssue(issue: Issue) {\n const {\n filePath,\n title,\n description,\n detail,\n source,\n importTraces,\n severity,\n } = issue\n let { documentationLink } = issue\n let formattedTitle = renderStyledStringToErrorAnsi(title).replace(\n /\\n/g,\n '\\n '\n )\n\n if (severity === 'bug' || severity === 'error' || severity === 'fatal') {\n formattedTitle = bold(`${red('Error')}: ${formattedTitle}`)\n } else if (severity === 'warning') {\n formattedTitle = bold(`${yellow('Warning')}: ${formattedTitle}`)\n } else {\n formattedTitle = bold(`Info: ${formattedTitle}`)\n }\n\n // TODO: Use error codes to identify these\n // TODO: Generalize adapting Turbopack errors to Next.js errors\n if (formattedTitle.includes('Module not found')) {\n // For compatiblity with webpack\n // TODO: include columns in webpack errors.\n documentationLink = 'https://nextjs.org/docs/messages/module-not-found'\n }\n\n const formattedFilePath = formatFilePath(filePath)\n\n let message = ''\n\n if (source?.range) {\n const { start } = source.range\n message = `${formattedFilePath}:${start.line + 1}:${\n start.column + 1\n }\\n${formattedTitle}`\n } else if (formattedFilePath) {\n message = `${formattedFilePath}\\n${formattedTitle}`\n } else {\n message = formattedTitle\n }\n message += '\\n'\n\n if (issue.codeFrame) {\n message += issue.codeFrame.trimEnd() + '\\n\\n'\n }\n\n if (description) {\n if (\n description.type === 'text' &&\n description.value.includes(`Cannot find module 'sass'`)\n ) {\n message +=\n \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\"\n message += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n'\n message += '\\nLearn more: https://nextjs.org/docs/messages/install-sass\\n'\n } else {\n message += renderStyledStringToErrorAnsi(description) + '\\n\\n'\n }\n }\n\n // TODO: make it easier to enable this for debugging\n if (VERBOSE_ISSUES && detail) {\n message += renderStyledStringToErrorAnsi(detail) + '\\n\\n'\n }\n\n // Render additional sources (e.g., generated code from a loader)\n for (const additional of issue.additionalSources ?? []) {\n if (additional.codeFrame) {\n const additionalFilePath = formatFilePath(\n additional.source.source.filePath\n )\n const loc = additional.source.range\n ? `:${additional.source.range.start.line + 1}:${additional.source.range.start.column + 1}`\n : ''\n message += `${additional.description}:\\n${additionalFilePath}${loc}\\n${additional.codeFrame.trimEnd()}\\n\\n`\n }\n }\n\n if (importTraces?.length) {\n // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs\n // We end up with multiple traces when the file with the error is reachable from multiple\n // different entry points (e.g. ssr, client)\n message += `Import trace${importTraces.length > 1 ? 's' : ''}:\\n`\n const everyTraceHasADistinctRootLayer =\n new Set(importTraces.map(leafLayerName).filter((l) => l != null)).size ===\n importTraces.length\n for (let i = 0; i < importTraces.length; i++) {\n const trace = importTraces[i]\n const layer = leafLayerName(trace)\n let traceIndent = ' '\n // If this is true, layer must be present\n if (everyTraceHasADistinctRootLayer) {\n message += ` ${layer}:\\n`\n } else {\n if (importTraces.length > 1) {\n // Otherwise use simple 1 based indices to disambiguate\n message += ` #${i + 1}`\n if (layer) {\n message += ` [${layer}]`\n }\n message += ':\\n'\n } else if (layer) {\n message += ` [${layer}]:\\n`\n } else {\n // If there is a single trace and no layer name just don't indent it.\n traceIndent = ' '\n }\n }\n message += formatIssueTrace(trace, traceIndent, !identicalLayers(trace))\n }\n }\n if (documentationLink) {\n message += documentationLink + '\\n\\n'\n }\n return message\n}\n\n/** Returns the first present layer name in the trace */\nfunction leafLayerName(items: PlainTraceItem[]): string | undefined {\n for (const item of items) {\n const layer = item.layer\n if (layer != null) return layer\n }\n return undefined\n}\n\n/**\n * Returns whether or not all items share the same layer.\n * If a layer is absent we ignore it in this analysis\n */\nfunction identicalLayers(items: PlainTraceItem[]): boolean {\n const firstPresentLayer = items.findIndex((t) => t.layer != null)\n if (firstPresentLayer === -1) return true // all layers are absent\n const layer = items[firstPresentLayer].layer\n for (let i = firstPresentLayer + 1; i < items.length; i++) {\n const itemLayer = items[i].layer\n if (itemLayer == null || itemLayer !== layer) {\n return false\n }\n }\n return true\n}\n\nfunction formatIssueTrace(\n items: PlainTraceItem[],\n indent: string,\n printLayers: boolean\n): string {\n return `${items\n .map((item) => {\n let r = indent\n if (item.fsName !== 'project') {\n r += `[${item.fsName}]/`\n } else {\n // This is consistent with webpack's output\n r += './'\n }\n r += item.path\n if (printLayers && item.layer) {\n r += ` [${item.layer}]`\n }\n return r\n })\n .join('\\n')}\\n\\n`\n}\n\nexport function isRelevantWarning(issue: Issue): boolean {\n return issue.severity === 'warning' && !isNodeModulesIssue(issue)\n}\n\nfunction isNodeModulesIssue(issue: Issue): boolean {\n if (issue.severity === 'warning' && issue.stage === 'config') {\n // Override for the externalize issue\n // `Package foo (serverExternalPackages or default list) can't be external`\n if (\n renderStyledStringToErrorAnsi(issue.title).includes(\"can't be external\")\n ) {\n return false\n }\n }\n\n return (\n issue.severity === 'warning' &&\n (issue.filePath.match(/^(?:.*[\\\\/])?node_modules(?:[\\\\/].*)?$/) !== null ||\n // Ignore Next.js itself when running next directly in the monorepo where it is not inside\n // node_modules anyway.\n // TODO(mischnic) prevent matches when this is published to npm\n issue.filePath.startsWith('[project]/packages/next/'))\n )\n}\n\nexport function renderStyledStringToErrorAnsi(string: StyledString): string {\n function applyDeobfuscation(str: string): string {\n // Use shared deobfuscate function and apply magenta color to identifiers\n const deobfuscated = deobfuscateText(str)\n // Color any {...} wrapped identifiers with magenta\n return deobfuscated.replace(/\\{([^}]+)\\}/g, (match) => magenta(match))\n }\n\n switch (string.type) {\n case 'text':\n return applyDeobfuscation(string.value)\n case 'strong':\n return bold(red(applyDeobfuscation(string.value)))\n case 'code':\n return green(applyDeobfuscation(string.value))\n case 'line':\n return string.value.map(renderStyledStringToErrorAnsi).join('')\n case 'stack':\n return string.value.map(renderStyledStringToErrorAnsi).join('\\n')\n default:\n throw new Error('Unknown StyledString type', string)\n }\n}\n\nexport function isFileSystemCacheEnabledForDev(\n config: NextConfigComplete\n): boolean {\n return config.experimental?.turbopackFileSystemCacheForDev || false\n}\n"],"names":["bold","green","magenta","red","yellow","deobfuscateText","Log","VERBOSE_ISSUES","process","env","NEXT_TURBOPACK_VERBOSE_ISSUES","ModuleBuildError","Error","name","isWellKnownError","issue","title","formattedTitle","renderStyledStringToErrorAnsi","includes","getIssueKey","severity","filePath","JSON","stringify","description","processIssues","currentEntryIssues","key","result","throwIssue","logErrors","newIssues","Map","set","relevantIssues","Set","issues","issueKey","formatted","formatIssue","add","error","size","join","formatFilePath","replace","replaceAll","detail","source","importTraces","documentationLink","formattedFilePath","message","range","start","line","column","codeFrame","trimEnd","type","value","additional","additionalSources","additionalFilePath","loc","length","everyTraceHasADistinctRootLayer","map","leafLayerName","filter","l","i","trace","layer","traceIndent","formatIssueTrace","identicalLayers","items","item","undefined","firstPresentLayer","findIndex","t","itemLayer","indent","printLayers","r","fsName","path","isRelevantWarning","isNodeModulesIssue","stage","match","startsWith","string","applyDeobfuscation","str","deobfuscated","isFileSystemCacheEnabledForDev","config","experimental","turbopackFileSystemCacheForDev"],"mappings":"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","ignoreList":[0]} |
@@ -12,6 +12,6 @@ "use strict"; | ||
| function needsExperimentalReact(config) { | ||
| const { taint, transitionIndicator, gestureTransition } = config.experimental || {}; | ||
| return Boolean(taint || transitionIndicator || gestureTransition); | ||
| const { useExperimentalReact, taint, transitionIndicator, gestureTransition } = config.experimental || {}; | ||
| return Boolean(useExperimentalReact || taint || transitionIndicator || gestureTransition); | ||
| } | ||
| //# sourceMappingURL=needs-experimental-react.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/lib/needs-experimental-react.ts"],"sourcesContent":["import type { NextConfig } from '../server/config-shared'\n\n// Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_import_map.rs\nexport function needsExperimentalReact(config: NextConfig) {\n const { taint, transitionIndicator, gestureTransition } =\n config.experimental || {}\n return Boolean(taint || transitionIndicator || gestureTransition)\n}\n"],"names":["needsExperimentalReact","config","taint","transitionIndicator","gestureTransition","experimental","Boolean"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,uBAAuBC,MAAkB;IACvD,MAAM,EAAEC,KAAK,EAAEC,mBAAmB,EAAEC,iBAAiB,EAAE,GACrDH,OAAOI,YAAY,IAAI,CAAC;IAC1B,OAAOC,QAAQJ,SAASC,uBAAuBC;AACjD","ignoreList":[0]} | ||
| {"version":3,"sources":["../../src/lib/needs-experimental-react.ts"],"sourcesContent":["import type { NextConfig } from '../server/config-shared'\n\n// Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_import_map.rs\nexport function needsExperimentalReact(config: NextConfig) {\n const {\n useExperimentalReact,\n taint,\n transitionIndicator,\n gestureTransition,\n } = config.experimental || {}\n return Boolean(\n useExperimentalReact || taint || transitionIndicator || gestureTransition\n )\n}\n"],"names":["needsExperimentalReact","config","useExperimentalReact","taint","transitionIndicator","gestureTransition","experimental","Boolean"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,uBAAuBC,MAAkB;IACvD,MAAM,EACJC,oBAAoB,EACpBC,KAAK,EACLC,mBAAmB,EACnBC,iBAAiB,EAClB,GAAGJ,OAAOK,YAAY,IAAI,CAAC;IAC5B,OAAOC,QACLL,wBAAwBC,SAASC,uBAAuBC;AAE5D","ignoreList":[0]} |
@@ -75,3 +75,3 @@ "use strict"; | ||
| const data = await res.json(); | ||
| const versionData = data.versions["16.3.0-canary.52"]; | ||
| const versionData = data.versions["16.3.0-canary.53"]; | ||
| return { | ||
@@ -104,3 +104,3 @@ os: versionData.os, | ||
| lockfileParsed.dependencies[pkg] = { | ||
| version: "16.3.0-canary.52", | ||
| version: "16.3.0-canary.53", | ||
| resolved: pkgData.tarball, | ||
@@ -113,3 +113,3 @@ integrity: pkgData.integrity, | ||
| lockfileParsed.packages[pkg] = { | ||
| version: "16.3.0-canary.52", | ||
| version: "16.3.0-canary.53", | ||
| resolved: pkgData.tarball, | ||
@@ -116,0 +116,0 @@ integrity: pkgData.integrity, |
@@ -6,2 +6,4 @@ import * as React from 'react'; | ||
| icon?: React.ReactNode; | ||
| /** When true, render the action/success label next to the icon. */ | ||
| showLabel?: boolean; | ||
| }; | ||
@@ -12,3 +14,4 @@ export declare function CopyButton(props: CopyButtonProps & { | ||
| }): import("react/jsx-runtime").JSX.Element; | ||
| export declare function CopyIcon(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element; | ||
| export declare const COPY_BUTTON_STYLES = "\n .nextjs-data-copy-button {\n color: inherit;\n\n svg {\n width: var(--size-16);\n height: var(--size-16);\n }\n }\n .nextjs-data-copy-button[aria-disabled=\"true\"] {\n background-color: var(--color-gray-100);\n cursor: not-allowed;\n }\n .nextjs-data-copy-button[data-pending=\"true\"] {\n cursor: wait;\n }\n .nextjs-data-copy-button--initial:hover:not([aria-disabled=\"true\"]) {\n cursor: pointer;\n }\n .nextjs-data-copy-button--error:not([aria-disabled=\"true\"]),\n .nextjs-data-copy-button--error:hover:not([aria-disabled=\"true\"]) {\n color: var(--color-ansi-red);\n }\n .nextjs-data-copy-button--success:not([aria-disabled=\"true\"]) {\n color: var(--color-gray-900);\n }\n"; | ||
| export {}; |
@@ -1,2 +0,1 @@ | ||
| import type { DebugInfo } from '../../../../shared/types'; | ||
| import type { VersionInfo } from '../../../../../server/dev/parse-version-info'; | ||
@@ -14,9 +13,6 @@ import { type ErrorOverlayTabBarRenderer } from '../error-overlay-pagination/error-overlay-pagination'; | ||
| versionInfo?: VersionInfo; | ||
| error: ReadyRuntimeError['error']; | ||
| debugInfo?: DebugInfo; | ||
| generateErrorInfo: () => Promise<string>; | ||
| renderTabBar?: ErrorOverlayTabBarRenderer; | ||
| }; | ||
| export declare function ErrorOverlayNav({ runtimeErrors, activeIdx, setActiveIndex, canGoPrevious, canGoNext, onPrevious, onNext, versionInfo, error, debugInfo, generateErrorInfo, renderTabBar, }: ErrorOverlayNavProps): import("react/jsx-runtime").JSX.Element; | ||
| export declare function ErrorOverlayNav({ runtimeErrors, activeIdx, setActiveIndex, canGoPrevious, canGoNext, onPrevious, onNext, versionInfo, renderTabBar, }: ErrorOverlayNavProps): import("react/jsx-runtime").JSX.Element; | ||
| export declare const styles = "\n [data-nextjs-error-overlay-nav] {\n --stroke-color: var(--color-gray-400);\n --background-color: var(--color-background-100);\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n\n width: 100%;\n\n position: relative;\n z-index: 2;\n outline: none;\n translate: var(--next-dialog-border-width) var(--next-dialog-border-width);\n max-width: var(--next-dialog-max-width);\n\n .error-overlay-nav-item {\n translate: calc(var(--next-dialog-border-width) * -1);\n width: auto;\n padding: 12px;\n position: relative;\n\n &[data-side='left'] {\n padding-right: 0;\n }\n\n &[data-side='right'] {\n padding-left: 0;\n }\n }\n }\n\n @media (max-width: 767px) {\n [data-nextjs-error-overlay-nav] {\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n }\n\n"; | ||
| export {}; |
@@ -1,2 +0,1 @@ | ||
| import type { VersionInfo } from '../../../../../server/dev/parse-version-info'; | ||
| import type { DebugInfo } from '../../../../shared/types'; | ||
@@ -8,7 +7,5 @@ type ErrorOverlayToolbarProps = { | ||
| generateErrorInfo: () => Promise<string>; | ||
| versionInfo?: VersionInfo; | ||
| bundlerName?: 'Turbopack' | 'Webpack' | 'Rspack'; | ||
| }; | ||
| export declare function ErrorOverlayToolbar({ error, debugInfo, feedbackButton, generateErrorInfo, versionInfo, bundlerName, }: ErrorOverlayToolbarProps): import("react/jsx-runtime").JSX.Element; | ||
| export declare function ErrorOverlayToolbar({ error, debugInfo, feedbackButton, generateErrorInfo, }: ErrorOverlayToolbarProps): import("react/jsx-runtime").JSX.Element; | ||
| export declare const styles = "\n .error-overlay-toolbar {\n display: flex;\n gap: 6px;\n }\n\n @media (max-width: 575px) {\n .error-overlay-toolbar {\n gap: 4px;\n }\n }\n\n .nodejs-inspector-button,\n .copy-error-button,\n .docs-link-button {\n display: flex;\n justify-content: center;\n align-items: center;\n\n width: var(--size-24);\n height: var(--size-24);\n background: none;\n border: none;\n border-radius: var(--rounded-full);\n\n svg {\n width: var(--size-14);\n height: var(--size-14);\n }\n\n &:focus {\n outline: var(--focus-ring);\n }\n\n &:not(:disabled):hover {\n background: var(--color-gray-alpha-100);\n }\n\n &:not(:disabled):active {\n background: var(--color-gray-alpha-200);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .nodejs-inspector-button[data-pending='true'] {\n cursor: wait;\n }\n\n .error-overlay-toolbar-button-icon {\n color: var(--color-gray-900);\n }\n"; | ||
| export {}; |
@@ -75,3 +75,3 @@ import React from 'react'; | ||
| export declare function Errors({ getSquashedHydrationErrorDetails, runtimeErrors, debugInfo, onClose, ...props }: ErrorsProps): import("react/jsx-runtime").JSX.Element | null; | ||
| export declare const styles = "\n .nextjs-error-with-static {\n bottom: calc(16px * 4.5);\n }\n p.nextjs__container_errors__link {\n font-size: var(--size-14);\n }\n p.nextjs__container_errors__notes {\n color: var(--color-stack-notes);\n font-size: var(--size-14);\n line-height: 1.5;\n }\n .nextjs-container-errors-body > h2:not(:first-child) {\n margin-top: calc(16px + 8px);\n }\n .nextjs-container-errors-body > h2 {\n color: var(--color-title-color);\n margin-bottom: 8px;\n font-size: var(--size-20);\n }\n .nextjs-toast-errors-parent {\n cursor: pointer;\n transition: transform 0.2s ease;\n }\n .nextjs-toast-errors-parent:hover {\n transform: scale(1.1);\n }\n .nextjs-toast-errors {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n }\n .nextjs-toast-errors > svg {\n margin-right: 8px;\n }\n .nextjs-toast-hide-button {\n margin-left: 24px;\n border: none;\n background: none;\n color: var(--color-ansi-bright-white);\n padding: 0;\n transition: opacity 0.25s ease;\n opacity: 0.7;\n }\n .nextjs-toast-hide-button:hover {\n opacity: 1;\n }\n .nextjs__container_errors__error_title {\n display: flex;\n align-items: start;\n justify-content: space-between;\n gap: 12px;\n position: relative;\n }\n .error-overlay-notes-container {\n margin: 8px 2px;\n }\n .error-overlay-notes-container p {\n white-space: pre-wrap;\n }\n @media (max-width: 767px) {\n .nextjs__container_errors__error_title {\n flex-direction: column-reverse;\n }\n }\n .external-link, .external-link:hover {\n color:inherit;\n }\n\n .error-overlay-tab-bar {\n display: flex;\n gap: 6px;\n translate: var(--next-dialog-border-width) 0;\n max-width: var(--next-dialog-max-width);\n width: 100%;\n position: relative;\n z-index: 1;\n }\n\n .error-overlay-tab {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 4px;\n border: none;\n background: none;\n color: var(--color-gray-800);\n font-size: var(--size-13);\n font-family: var(--font-stack-sans);\n cursor: pointer;\n position: relative;\n transition: color 0.15s ease;\n border-radius: var(--rounded-md);\n\n &:hover:not(:disabled) {\n color: var(--color-gray-1000);\n }\n\n &[data-active='true'] {\n color: var(--color-gray-1000);\n font-weight: 500;\n }\n\n &:disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n &:focus-visible {\n outline: var(--focus-ring);\n outline-offset: 2px;\n }\n }\n\n .error-overlay-tab-count {\n display: flex;\n align-items: center;\n color: inherit;\n\n &[data-active='true'] {\n .error-overlay-pagination-count {\n font-weight: 500;\n }\n }\n }\n\n"; | ||
| export declare const styles = "\n .nextjs-error-with-static {\n bottom: calc(16px * 4.5);\n }\n p.nextjs__container_errors__link {\n font-size: var(--size-14);\n }\n p.nextjs__container_errors__notes {\n color: var(--color-stack-notes);\n font-size: var(--size-14);\n line-height: 1.5;\n }\n .nextjs-container-errors-body > h2:not(:first-child) {\n margin-top: calc(16px + 8px);\n }\n .nextjs-container-errors-body > h2 {\n color: var(--color-title-color);\n margin-bottom: 8px;\n font-size: var(--size-20);\n }\n .nextjs-toast-errors-parent {\n cursor: pointer;\n transition: transform 0.2s ease;\n }\n .nextjs-toast-errors-parent:hover {\n transform: scale(1.1);\n }\n .nextjs-toast-errors {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n }\n .nextjs-toast-errors > svg {\n margin-right: 8px;\n }\n .nextjs-toast-hide-button {\n margin-left: 24px;\n border: none;\n background: none;\n color: var(--color-ansi-bright-white);\n padding: 0;\n transition: opacity 0.25s ease;\n opacity: 0.7;\n }\n .nextjs-toast-hide-button:hover {\n opacity: 1;\n }\n .nextjs__container_errors__error_title {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n position: relative;\n }\n .nextjs__container_errors__error_title__row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 8px;\n width: 100%;\n }\n .error-overlay-notes-container {\n margin: 8px 2px;\n }\n .error-overlay-notes-container p {\n white-space: pre-wrap;\n }\n .external-link, .external-link:hover {\n color:inherit;\n }\n\n .error-overlay-tab-bar {\n display: flex;\n gap: 6px;\n translate: var(--next-dialog-border-width) 0;\n max-width: var(--next-dialog-max-width);\n width: 100%;\n position: relative;\n z-index: 1;\n }\n\n .error-overlay-tab {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 4px;\n border: none;\n background: none;\n color: var(--color-gray-800);\n font-size: var(--size-13);\n font-family: var(--font-stack-sans);\n cursor: pointer;\n position: relative;\n transition: color 0.15s ease;\n border-radius: var(--rounded-md);\n\n &:hover:not(:disabled) {\n color: var(--color-gray-1000);\n }\n\n &[data-active='true'] {\n color: var(--color-gray-1000);\n font-weight: 500;\n }\n\n &:disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n &:focus-visible {\n outline: var(--focus-ring);\n outline-offset: 2px;\n }\n }\n\n .error-overlay-tab-count {\n display: flex;\n align-items: center;\n color: inherit;\n\n &[data-active='true'] {\n .error-overlay-pagination-count {\n font-weight: 500;\n }\n }\n }\n\n"; | ||
| export {}; |
@@ -8,3 +8,3 @@ import React from 'react'; | ||
| export declare function ErrorCause({ cause, dialogResizerRef }: ErrorCauseProps): import("react/jsx-runtime").JSX.Element; | ||
| export declare const styles = "\n [data-nextjs-error-cause] {\n border-top: 1px solid var(--color-gray-400);\n margin-top: 16px;\n padding-top: 16px;\n }\n\n .error-cause-header {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n }\n\n .error-cause-label {\n padding: 2px 6px;\n margin: 0;\n border-radius: var(--rounded-md-2);\n background: var(--color-red-100);\n font-weight: 600;\n font-size: var(--size-12);\n color: var(--color-red-900);\n font-family: var(--font-stack-monospace);\n line-height: var(--size-20);\n }\n\n .error-cause-message {\n margin: 0;\n margin-left: 4px;\n color: var(--color-red-900);\n font-weight: 500;\n font-size: var(--size-16);\n letter-spacing: -0.32px;\n line-height: var(--size-24);\n overflow-wrap: break-word;\n white-space: pre-wrap;\n }\n"; | ||
| export declare const styles = "\n [data-nextjs-error-cause] {\n border-top: 1px solid var(--color-gray-400);\n margin-top: 16px;\n padding-top: 16px;\n }\n\n .error-cause-header {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n }\n\n .error-cause-label {\n padding: 2px 6px;\n margin: 0;\n border-radius: var(--rounded-md-2);\n background: var(--color-red-100);\n font-weight: 600;\n font-size: var(--size-12);\n color: var(--color-red-900);\n font-family: var(--font-stack-monospace);\n line-height: var(--size-20);\n }\n\n .error-cause-message {\n margin: 0 0 16px 4px;\n color: var(--color-red-900);\n font-weight: 500;\n font-size: var(--size-16);\n letter-spacing: -0.32px;\n line-height: var(--size-24);\n overflow-wrap: break-word;\n white-space: pre-wrap;\n }\n"; | ||
| export {}; |
@@ -7,3 +7,3 @@ import { type ReadyRuntimeError } from '../../utils/get-error-by-type'; | ||
| export declare function RuntimeError({ error, dialogResizerRef }: RuntimeErrorProps): import("react/jsx-runtime").JSX.Element; | ||
| export declare const styles = "\n \n [data-nextjs-container-errors-pseudo-html] {\n padding: 8px 0;\n margin: 8px 0;\n border: 1px solid var(--color-gray-400);\n background: var(--color-background-200);\n color: var(--color-syntax-constant);\n font-family: var(--font-stack-monospace);\n font-size: var(--size-12);\n line-height: 1.33em; /* 16px in 12px font size */\n border-radius: var(--rounded-md-2);\n }\n [data-nextjs-container-errors-pseudo-html-line] {\n display: inline-block;\n width: 100%;\n padding-left: 40px;\n line-height: calc(5 / 3);\n }\n [data-nextjs-container-errors-pseudo-html--diff='error'] {\n background: var(--color-amber-100);\n box-shadow: 2px 0 0 0 var(--color-amber-900) inset;\n font-weight: bold;\n }\n [data-nextjs-container-errors-pseudo-html-collapse-button] {\n all: unset;\n margin-left: 12px;\n &:focus {\n outline: none;\n }\n }\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\n background: var(--color-green-300);\n }\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n margin-left: calc(24px * -1);\n margin-right: 24px;\n }\n [data-nextjs-container-errors-pseudo-html--diff='add']\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n color: var(--color-green-900);\n }\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\n background: var(--color-red-300);\n }\n [data-nextjs-container-errors-pseudo-html--diff='remove']\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n color: var(--color-red-900);\n margin-left: calc(24px * -1);\n margin-right: 24px;\n }\n [data-nextjs-container-errors-pseudo-html--diff='error']\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n color: var(--color-amber-900);\n }\n \n [data-nextjs-container-errors-pseudo-html--hint] {\n display: inline-block;\n font-size: 0;\n height: 0;\n }\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\n color: var(--color-accents-1);\n }\n .nextjs__container_errors__component-stack {\n margin: 0;\n }\n [data-nextjs-container-errors-pseudo-html-collapse='true']\n .nextjs__container_errors__component-stack\n code {\n max-height: 120px;\n mask-image: linear-gradient(to bottom,rgba(0,0,0,0) 0%,black 10%);\n padding-bottom: 40px;\n }\n .nextjs__container_errors__component-stack code {\n display: block;\n width: 100%;\n white-space: pre-wrap;\n scroll-snap-type: y mandatory;\n overflow-y: hidden;\n }\n [data-nextjs-container-errors-pseudo-html--diff] {\n scroll-snap-align: center;\n }\n .error-overlay-hydration-error-diff-plus-icon {\n color: var(--color-green-900);\n }\n .error-overlay-hydration-error-diff-minus-icon {\n color: var(--color-red-900);\n }\n [data-nextjs-hydration-diff-header] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 12px 0 0;\n }\n [data-nextjs-hydration-diff-badge] {\n display: flex;\n gap: 8px;\n font-size: var(--size-12);\n }\n [data-nextjs-hydration-diff-badge-item] {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--color-gray-900);\n }\n [data-nextjs-hydration-diff-badge-item='client'] span:first-child {\n color: var(--color-green-900);\n font-weight: bold;\n }\n [data-nextjs-hydration-diff-badge-item='server'] span:first-child {\n color: var(--color-red-900);\n font-weight: bold;\n }\n\n \n [data-nextjs-error-cause] {\n border-top: 1px solid var(--color-gray-400);\n margin-top: 16px;\n padding-top: 16px;\n }\n\n .error-cause-header {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n }\n\n .error-cause-label {\n padding: 2px 6px;\n margin: 0;\n border-radius: var(--rounded-md-2);\n background: var(--color-red-100);\n font-weight: 600;\n font-size: var(--size-12);\n color: var(--color-red-900);\n font-family: var(--font-stack-monospace);\n line-height: var(--size-20);\n }\n\n .error-cause-message {\n margin: 0;\n margin-left: 4px;\n color: var(--color-red-900);\n font-weight: 500;\n font-size: var(--size-16);\n letter-spacing: -0.32px;\n line-height: var(--size-24);\n overflow-wrap: break-word;\n white-space: pre-wrap;\n }\n\n \n [data-nextjs-error-aggregate-error] {\n border-top: 1px solid var(--color-gray-400);\n margin-top: 16px;\n padding-top: 16px;\n }\n\n .error-aggregate-error-header {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n }\n\n .error-aggregate-error-label {\n padding: 2px 6px;\n margin: 0;\n border-radius: var(--rounded-md-2);\n background: var(--color-red-100);\n font-weight: 600;\n font-size: var(--size-12);\n color: var(--color-red-900);\n font-family: var(--font-stack-monospace);\n line-height: var(--size-20);\n }\n\n .error-aggregate-error-message {\n margin: 0;\n margin-left: 4px;\n color: var(--color-red-900);\n font-weight: 500;\n font-size: var(--size-16);\n letter-spacing: -0.32px;\n line-height: var(--size-24);\n overflow-wrap: break-word;\n white-space: pre-wrap;\n }\n\n"; | ||
| export declare const styles = "\n \n [data-nextjs-container-errors-pseudo-html] {\n padding: 8px 0;\n margin: 8px 0;\n border: 1px solid var(--color-gray-400);\n background: var(--color-background-200);\n color: var(--color-syntax-constant);\n font-family: var(--font-stack-monospace);\n font-size: var(--size-12);\n line-height: 1.33em; /* 16px in 12px font size */\n border-radius: var(--rounded-md-2);\n }\n [data-nextjs-container-errors-pseudo-html-line] {\n display: inline-block;\n width: 100%;\n padding-left: 40px;\n line-height: calc(5 / 3);\n }\n [data-nextjs-container-errors-pseudo-html--diff='error'] {\n background: var(--color-amber-100);\n box-shadow: 2px 0 0 0 var(--color-amber-900) inset;\n font-weight: bold;\n }\n [data-nextjs-container-errors-pseudo-html-collapse-button] {\n all: unset;\n margin-left: 12px;\n &:focus {\n outline: none;\n }\n }\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\n background: var(--color-green-300);\n }\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n margin-left: calc(24px * -1);\n margin-right: 24px;\n }\n [data-nextjs-container-errors-pseudo-html--diff='add']\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n color: var(--color-green-900);\n }\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\n background: var(--color-red-300);\n }\n [data-nextjs-container-errors-pseudo-html--diff='remove']\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n color: var(--color-red-900);\n margin-left: calc(24px * -1);\n margin-right: 24px;\n }\n [data-nextjs-container-errors-pseudo-html--diff='error']\n [data-nextjs-container-errors-pseudo-html-line-sign] {\n color: var(--color-amber-900);\n }\n \n [data-nextjs-container-errors-pseudo-html--hint] {\n display: inline-block;\n font-size: 0;\n height: 0;\n }\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\n color: var(--color-accents-1);\n }\n .nextjs__container_errors__component-stack {\n margin: 0;\n }\n [data-nextjs-container-errors-pseudo-html-collapse='true']\n .nextjs__container_errors__component-stack\n code {\n max-height: 120px;\n mask-image: linear-gradient(to bottom,rgba(0,0,0,0) 0%,black 10%);\n padding-bottom: 40px;\n }\n .nextjs__container_errors__component-stack code {\n display: block;\n width: 100%;\n white-space: pre-wrap;\n scroll-snap-type: y mandatory;\n overflow-y: hidden;\n }\n [data-nextjs-container-errors-pseudo-html--diff] {\n scroll-snap-align: center;\n }\n .error-overlay-hydration-error-diff-plus-icon {\n color: var(--color-green-900);\n }\n .error-overlay-hydration-error-diff-minus-icon {\n color: var(--color-red-900);\n }\n [data-nextjs-hydration-diff-header] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 12px 0 0;\n }\n [data-nextjs-hydration-diff-badge] {\n display: flex;\n gap: 8px;\n font-size: var(--size-12);\n }\n [data-nextjs-hydration-diff-badge-item] {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--color-gray-900);\n }\n [data-nextjs-hydration-diff-badge-item='client'] span:first-child {\n color: var(--color-green-900);\n font-weight: bold;\n }\n [data-nextjs-hydration-diff-badge-item='server'] span:first-child {\n color: var(--color-red-900);\n font-weight: bold;\n }\n\n \n [data-nextjs-error-cause] {\n border-top: 1px solid var(--color-gray-400);\n margin-top: 16px;\n padding-top: 16px;\n }\n\n .error-cause-header {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n }\n\n .error-cause-label {\n padding: 2px 6px;\n margin: 0;\n border-radius: var(--rounded-md-2);\n background: var(--color-red-100);\n font-weight: 600;\n font-size: var(--size-12);\n color: var(--color-red-900);\n font-family: var(--font-stack-monospace);\n line-height: var(--size-20);\n }\n\n .error-cause-message {\n margin: 0 0 16px 4px;\n color: var(--color-red-900);\n font-weight: 500;\n font-size: var(--size-16);\n letter-spacing: -0.32px;\n line-height: var(--size-24);\n overflow-wrap: break-word;\n white-space: pre-wrap;\n }\n\n \n [data-nextjs-error-aggregate-error] {\n border-top: 1px solid var(--color-gray-400);\n margin-top: 16px;\n padding-top: 16px;\n }\n\n .error-aggregate-error-header {\n display: flex;\n align-items: center;\n margin-bottom: 8px;\n }\n\n .error-aggregate-error-label {\n padding: 2px 6px;\n margin: 0;\n border-radius: var(--rounded-md-2);\n background: var(--color-red-100);\n font-weight: 600;\n font-size: var(--size-12);\n color: var(--color-red-900);\n font-family: var(--font-stack-monospace);\n line-height: var(--size-20);\n }\n\n .error-aggregate-error-message {\n margin: 0;\n margin-left: 4px;\n color: var(--color-red-900);\n font-weight: 500;\n font-size: var(--size-16);\n letter-spacing: -0.32px;\n line-height: var(--size-24);\n overflow-wrap: break-word;\n white-space: pre-wrap;\n }\n\n"; | ||
| export {}; |
@@ -134,2 +134,3 @@ import type { NextConfig } from './config'; | ||
| taint: z.ZodOptional<z.ZodBoolean>; | ||
| useExperimentalReact: z.ZodOptional<z.ZodBoolean>; | ||
| prerenderEarlyExit: z.ZodOptional<z.ZodBoolean>; | ||
@@ -136,0 +137,0 @@ proxyTimeout: z.ZodOptional<z.ZodNumber>; |
@@ -310,2 +310,3 @@ "use strict"; | ||
| taint: _zod.z.boolean().optional(), | ||
| useExperimentalReact: _zod.z.boolean().optional(), | ||
| prerenderEarlyExit: _zod.z.boolean().optional(), | ||
@@ -312,0 +313,0 @@ proxyTimeout: _zod.z.number().gte(0).optional(), |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../src/server/config-schema.ts"],"sourcesContent":["import type { NextConfig } from './config'\nimport { VALID_LOADERS } from '../shared/lib/image-config'\n\nimport { z } from 'next/dist/compiled/zod'\nimport type zod from 'next/dist/compiled/zod'\n\nimport type { SizeLimit } from '../types'\nimport {\n LIGHTNINGCSS_FEATURE_NAMES,\n type ExportPathMap,\n type TurbopackLoaderItem,\n type TurbopackOptions,\n type TurbopackRuleConfigItem,\n type TurbopackRuleConfigCollection,\n type TurbopackRuleCondition,\n type TurbopackLoaderBuiltinCondition,\n} from './config-shared'\nimport type {\n Header,\n Rewrite,\n RouteHas,\n Redirect,\n} from '../lib/load-custom-routes'\nimport { SUPPORTED_TEST_RUNNERS_LIST } from '../cli/next-test'\n\n// A custom zod schema for the SizeLimit type\nconst zSizeLimit = z.custom<SizeLimit>((val) => {\n if (typeof val === 'number' || typeof val === 'string') {\n return true\n }\n return false\n})\n\nconst zExportMap: zod.ZodType<ExportPathMap> = z.record(\n z.string(),\n z.object({\n page: z.string(),\n query: z.any(), // NextParsedUrlQuery\n\n // private optional properties\n _fallbackRouteParams: z.array(z.any()).optional(),\n _isAppDir: z.boolean().optional(),\n _isDynamicError: z.boolean().optional(),\n _isRoutePPREnabled: z.boolean().optional(),\n _allowEmptyStaticShell: z.boolean().optional(),\n })\n)\n\nconst zRouteHas: zod.ZodType<RouteHas> = z.union([\n z.object({\n type: z.enum(['header', 'query', 'cookie']),\n key: z.string(),\n value: z.string().optional(),\n }),\n z.object({\n type: z.literal('host'),\n key: z.undefined().optional(),\n value: z.string(),\n }),\n])\n\nconst zRewrite: zod.ZodType<Rewrite> = z.object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n})\n\nconst zRedirect: zod.ZodType<Redirect> = z\n .object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n })\n .and(\n z.union([\n z.object({\n statusCode: z.never().optional(),\n permanent: z.boolean(),\n }),\n z.object({\n statusCode: z.number(),\n permanent: z.never().optional(),\n }),\n ])\n )\n\nconst zHeader: zod.ZodType<Header> = z.object({\n source: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n headers: z.array(z.object({ key: z.string(), value: z.string() })),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n\n internal: z.boolean().optional(),\n})\n\nconst zTurbopackLoaderItem: zod.ZodType<TurbopackLoaderItem> = z.union([\n z.string(),\n z.strictObject({\n loader: z.string(),\n // Any JSON value can be used as turbo loader options, so use z.any() here\n options: z.record(z.string(), z.any()).optional(),\n }),\n])\n\nconst zTurbopackLoaderBuiltinCondition: zod.ZodType<TurbopackLoaderBuiltinCondition> =\n z.union([\n z.literal('browser'),\n z.literal('foreign'),\n z.literal('development'),\n z.literal('production'),\n z.literal('node'),\n z.literal('edge-light'),\n ])\n\nconst zTurbopackCondition: zod.ZodType<TurbopackRuleCondition> = z.union([\n z.strictObject({ all: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ any: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ not: z.lazy(() => zTurbopackCondition) }),\n zTurbopackLoaderBuiltinCondition,\n z.strictObject({\n path: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n content: z.instanceof(RegExp).optional(),\n query: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n contentType: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n }),\n])\n\nconst zTurbopackModuleType = z.enum([\n 'asset',\n 'ecmascript',\n 'typescript',\n 'css',\n 'css-module',\n 'wasm',\n 'raw',\n 'node',\n 'bytes',\n])\n\nconst zTurbopackRuleConfigItem: zod.ZodType<TurbopackRuleConfigItem> =\n z.strictObject({\n loaders: z.array(zTurbopackLoaderItem).optional(),\n as: z.string().optional(),\n condition: zTurbopackCondition.optional(),\n type: zTurbopackModuleType.optional(),\n })\n\nconst zTurbopackRuleConfigCollection: zod.ZodType<TurbopackRuleConfigCollection> =\n z.union([\n zTurbopackRuleConfigItem,\n z.array(z.union([zTurbopackLoaderItem, zTurbopackRuleConfigItem])),\n ])\n\nconst zTurbopackConfig: zod.ZodType<TurbopackOptions> = z.strictObject({\n rules: z.record(z.string(), zTurbopackRuleConfigCollection).optional(),\n resolveAlias: z\n .record(\n z.string(),\n z.union([\n z.string(),\n z.array(z.string()),\n z.record(z.string(), z.union([z.string(), z.array(z.string())])),\n ])\n )\n .optional(),\n resolveExtensions: z.array(z.string()).optional(),\n root: z.string().optional(),\n debugIds: z.boolean().optional(),\n chunkLoadingGlobal: z.string().optional(),\n ignoreIssue: z\n .array(\n z.object({\n path: z.union([z.string(), z.instanceof(RegExp)]),\n title: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n description: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n })\n )\n .optional(),\n})\n\nexport const experimentalSchema = {\n outputHashSalt: z.string().optional(),\n useSkewCookie: z.boolean().optional(),\n after: z.boolean().optional(),\n appNavFailHandling: z.boolean().optional(),\n appNewScrollHandler: z.boolean().optional(),\n preloadEntriesOnStart: z.boolean().optional(),\n allowedRevalidateHeaderKeys: z.array(z.string()).optional(),\n staleTimes: z\n .object({\n dynamic: z.number().optional(),\n static: z.number().gte(30).optional(),\n })\n .optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n clientRouterFilter: z.boolean().optional(),\n clientRouterFilterRedirects: z.boolean().optional(),\n clientRouterFilterAllowedRate: z.number().optional(),\n cpus: z.number().optional(),\n memoryBasedWorkersCount: z.boolean().optional(),\n craCompat: z.boolean().optional(),\n caseSensitiveRoutes: z.boolean().optional(),\n clientParamParsingOrigins: z.array(z.string()).optional(),\n cachedNavigations: z.boolean().optional(),\n dynamicOnHover: z.boolean().optional(),\n useOffline: z.boolean().optional(),\n optimisticRouting: z.boolean().optional(),\n appShells: z.boolean().optional(),\n varyParams: z.boolean().optional(),\n prefetchInlining: z\n .union([\n z.boolean(),\n z.object({\n maxSize: z.number().optional(),\n maxBundleSize: z.number().optional(),\n }),\n ])\n .optional(),\n disableOptimizedLoading: z.boolean().optional(),\n disablePostcssPresetEnv: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n inlineCss: z.boolean().optional(),\n esmExternals: z.union([z.boolean(), z.literal('loose')]).optional(),\n serverActions: z\n .object({\n bodySizeLimit: zSizeLimit.optional(),\n allowedOrigins: z.array(z.string()).optional(),\n })\n .optional(),\n maxPostponedStateSize: zSizeLimit.optional(),\n // The original type was Record<string, any>\n extensionAlias: z.record(z.string(), z.any()).optional(),\n externalDir: z.boolean().optional(),\n externalMiddlewareRewritesResolve: z.boolean().optional(),\n externalProxyRewritesResolve: z.boolean().optional(),\n exposeTestingApiInProductionBuild: z.boolean().optional(),\n fallbackNodePolyfills: z.literal(false).optional(),\n fetchCacheKeyPrefix: z.string().optional(),\n forceSwcTransforms: z.boolean().optional(),\n fullySpecified: z.boolean().optional(),\n gzipSize: z.boolean().optional(),\n imgOptConcurrency: z.number().int().optional().nullable(),\n imgOptOperationCache: z.boolean().optional().nullable(),\n imgOptTimeoutInSeconds: z.number().int().optional(),\n imgOptMaxInputPixels: z.number().int().optional(),\n imgOptSequentialRead: z.boolean().optional().nullable(),\n imgOptSkipMetadata: z.boolean().optional().nullable(),\n isrFlushToDisk: z.boolean().optional(),\n largePageDataBytes: z.number().optional(),\n linkNoTouchStart: z.boolean().optional(),\n manualClientBasePath: z.boolean().optional(),\n middlewarePrefetch: z.enum(['strict', 'flexible']).optional(),\n proxyPrefetch: z.enum(['strict', 'flexible']).optional(),\n middlewareClientMaxBodySize: zSizeLimit.optional(),\n proxyClientMaxBodySize: zSizeLimit.optional(),\n multiZoneDraftMode: z.boolean().optional(),\n cssChunking: z\n .union([\n z.boolean(),\n z.literal('strict'),\n z.literal('loose'),\n z.literal('graph'),\n z.strictObject({ type: z.literal('strict') }),\n z.strictObject({ type: z.literal('loose') }),\n z.strictObject({\n type: z.literal('graph'),\n requestCost: z.number().nonnegative().finite().optional(),\n moduleFactorCost: z.number().nonnegative().finite().optional(),\n }),\n ])\n .optional(),\n nextScriptWorkers: z.boolean().optional(),\n // The critter option is unknown, use z.any() here\n optimizeCss: z.union([z.boolean(), z.any()]).optional(),\n optimisticClientCache: z.boolean().optional(),\n parallelServerCompiles: z.boolean().optional(),\n parallelServerBuildTraces: z.boolean().optional(),\n ppr: z\n .union([z.boolean(), z.literal('incremental')])\n .readonly()\n .optional(),\n taint: z.boolean().optional(),\n prerenderEarlyExit: z.boolean().optional(),\n proxyTimeout: z.number().gte(0).optional(),\n rootParams: z.boolean().optional(),\n mcpServer: z.boolean().optional(),\n removeUncaughtErrorAndRejectionListeners: z.boolean().optional(),\n validateRSCRequestHeaders: z.boolean().optional(),\n scrollRestoration: z.boolean().optional(),\n sri: z\n .object({\n algorithm: z.enum(['sha256', 'sha384', 'sha512']).optional(),\n })\n .optional(),\n swcPlugins: z\n // The specific swc plugin's option is unknown, use z.any() here\n .array(z.tuple([z.string(), z.record(z.string(), z.any())]))\n .optional(),\n swcEnvOptions: z\n .object({\n mode: z.enum(['usage', 'entry']).optional(),\n coreJs: z.string().optional(),\n skip: z.array(z.string()).optional(),\n include: z.array(z.string()).optional(),\n exclude: z.array(z.string()).optional(),\n shippedProposals: z.boolean().optional(),\n forceAllTransforms: z.boolean().optional(),\n debug: z.boolean().optional(),\n loose: z.boolean().optional(),\n })\n .optional(),\n swcTraceProfiling: z.boolean().optional(),\n // NonNullable<webpack.Configuration['experiments']>['buildHttp']\n urlImports: z.any().optional(),\n viewTransition: z.boolean().optional(),\n workerThreads: z.boolean().optional(),\n webVitalsAttribution: z\n .array(\n z.union([\n z.literal('CLS'),\n z.literal('FCP'),\n z.literal('FID'),\n z.literal('INP'),\n z.literal('LCP'),\n z.literal('TTFB'),\n ])\n )\n .optional(),\n // This is partial set of mdx-rs transform options we support, aligned\n // with next_core::next_config::MdxRsOptions. Ensure both types are kept in sync.\n mdxRs: z\n .union([\n z.boolean(),\n z.object({\n development: z.boolean().optional(),\n jsxRuntime: z.string().optional(),\n jsxImportSource: z.string().optional(),\n providerImportSource: z.string().optional(),\n mdxType: z.enum(['gfm', 'commonmark']).optional(),\n }),\n ])\n .optional(),\n transitionIndicator: z.boolean().optional(),\n gestureTransition: z.boolean().optional(),\n typedRoutes: z.boolean().optional(),\n webpackBuildWorker: z.boolean().optional(),\n webpackMemoryOptimizations: z.boolean().optional(),\n turbopackMemoryEviction: z\n .union([z.literal(false), z.literal('full')])\n .optional(),\n turbopackPluginRuntimeStrategy: z\n .enum(['workerThreads', 'childProcesses', 'forceWorkerThreads'])\n .optional(),\n turbopackMinify: z.boolean().optional(),\n turbopackFileSystemCacheForDev: z.boolean().optional(),\n turbopackFileSystemCacheForBuild: z.boolean().optional(),\n turbopackSourceMaps: z.boolean().optional(),\n turbopackInputSourceMaps: z.boolean().optional(),\n turbopackTreeShaking: z.boolean().optional(),\n turbopackRemoveUnusedImports: z.boolean().optional(),\n turbopackRemoveUnusedExports: z.boolean().optional(),\n turbopackScopeHoisting: z.boolean().optional(),\n turbopackWorkerAssetPrefix: z.string().optional(),\n turbopackClientSideNestedAsyncChunking: z.boolean().optional(),\n turbopackServerSideNestedAsyncChunking: z.boolean().optional(),\n turbopackImportTypeBytes: z.boolean().optional(),\n turbopackImportTypeText: z.boolean().optional(),\n turbopackUseBuiltinBabel: z.boolean().optional(),\n turbopackUseBuiltinSass: z.boolean().optional(),\n turbopackLocalPostcssConfig: z.boolean().optional(),\n turbopackModuleIds: z.enum(['named', 'deterministic']).optional(),\n turbopackInferModuleSideEffects: z.boolean().optional(),\n turbopackServerFastRefresh: z.boolean().optional(),\n optimizePackageImports: z.array(z.string()).optional(),\n optimizeServerReact: z.boolean().optional(),\n strictRouteTypes: z.boolean().optional(),\n clientTraceMetadata: z.array(z.string()).optional(),\n serverMinification: z.boolean().optional(),\n serverSourceMaps: z.boolean().optional(),\n useWasmBinary: z.boolean().optional(),\n useLightningcss: z.boolean().optional(),\n lightningCssFeatures: z\n .object({\n include: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n exclude: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n })\n .optional(),\n testProxy: z.boolean().optional(),\n defaultTestRunner: z.enum(SUPPORTED_TEST_RUNNERS_LIST).optional(),\n allowDevelopmentBuild: z.literal(true).optional(),\n\n reactDebugChannel: z.boolean().optional(),\n instantInsights: z\n .object({\n validationLevel: z\n .enum([\n 'warning',\n 'manual-warning',\n 'experimental-error',\n 'experimental-manual-error',\n ])\n .optional(),\n })\n .optional(),\n staticGenerationRetryCount: z.number().int().optional(),\n staticGenerationMaxConcurrency: z.number().int().optional(),\n staticGenerationMinPagesPerWorker: z.number().int().optional(),\n typedEnv: z.boolean().optional(),\n serverComponentsHmrCache: z.boolean().optional(),\n authInterrupts: z.boolean().optional(),\n useCache: z.boolean().optional(),\n useCacheTimeout: z.number().positive().optional(),\n slowModuleDetection: z\n .object({\n buildTimeThresholdMs: z.number().int(),\n })\n .optional(),\n globalNotFound: z.boolean().optional(),\n turbopackRustReactCompiler: z.boolean().optional(),\n browserDebugInfoInTerminal: z\n .union([\n z.boolean(),\n z.enum(['error', 'warn', 'verbose']),\n z.object({\n level: z.enum(['error', 'warn', 'verbose']).optional(),\n depthLimit: z.number().int().positive().optional(),\n edgeLimit: z.number().int().positive().optional(),\n showSourceLocation: z.boolean().optional(),\n }),\n ])\n .optional(),\n lockDistDir: z.boolean().optional(),\n hideLogsAfterAbort: z.boolean().optional(),\n runtimeServerDeploymentId: z.boolean().optional(),\n supportsImmutableAssets: z.boolean().optional(),\n deferredEntries: z.array(z.string()).optional(),\n onBeforeDeferredEntries: z.function().returns(z.promise(z.void())).optional(),\n reportSystemEnvInlining: z.enum(['warn', 'error']).optional(),\n}\n\nexport const configSchema: zod.ZodType<NextConfig> = z.lazy(() =>\n z.strictObject({\n adapterPath: z.string().optional(),\n agentRules: z.boolean().optional(),\n allowedDevOrigins: z.array(z.string()).optional(),\n assetPrefix: z.string().optional(),\n basePath: z.string().optional(),\n bundlePagesRouterDependencies: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n cacheHandler: z.string().min(1).optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheMaxMemorySize: z.number().optional(),\n cleanDistDir: z.boolean().optional(),\n compiler: z\n .strictObject({\n emotion: z\n .union([\n z.boolean(),\n z.object({\n sourceMap: z.boolean().optional(),\n autoLabel: z\n .union([\n z.literal('always'),\n z.literal('dev-only'),\n z.literal('never'),\n ])\n .optional(),\n labelFormat: z.string().min(1).optional(),\n importMap: z\n .record(\n z.string(),\n z.record(\n z.string(),\n z.object({\n canonicalImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n styledBaseImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n })\n )\n )\n .optional(),\n }),\n ])\n .optional(),\n reactRemoveProperties: z\n .union([\n z.boolean().optional(),\n z.object({\n properties: z.array(z.string()).optional(),\n }),\n ])\n .optional(),\n relay: z\n .object({\n src: z.string(),\n artifactDirectory: z.string().optional(),\n language: z.enum(['javascript', 'typescript', 'flow']).optional(),\n eagerEsModules: z.boolean().optional(),\n })\n .optional(),\n removeConsole: z\n .union([\n z.boolean().optional(),\n z.object({\n exclude: z.array(z.string()).min(1).optional(),\n }),\n ])\n .optional(),\n styledComponents: z.union([\n z.boolean().optional(),\n z.object({\n displayName: z.boolean().optional(),\n topLevelImportPaths: z.array(z.string()).optional(),\n ssr: z.boolean().optional(),\n fileName: z.boolean().optional(),\n meaninglessFileNames: z.array(z.string()).optional(),\n minify: z.boolean().optional(),\n transpileTemplateLiterals: z.boolean().optional(),\n namespace: z.string().min(1).optional(),\n pure: z.boolean().optional(),\n cssProp: z.boolean().optional(),\n }),\n ]),\n styledJsx: z.union([\n z.boolean().optional(),\n z.object({\n useLightningcss: z.boolean().optional(),\n }),\n ]),\n define: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n defineServer: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n runAfterProductionCompile: z\n .function()\n .returns(z.promise(z.void()))\n .optional(),\n })\n .optional(),\n compress: z.boolean().optional(),\n configOrigin: z.string().optional(),\n crossOrigin: z\n .union([z.literal('anonymous'), z.literal('use-credentials')])\n .optional(),\n deploymentId: z.string().optional(),\n devIndicators: z\n .union([\n z.object({\n position: z\n .union([\n z.literal('bottom-left'),\n z.literal('bottom-right'),\n z.literal('top-left'),\n z.literal('top-right'),\n ])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n distDir: z.string().min(1).optional(),\n env: z.record(z.string(), z.union([z.string(), z.undefined()])).optional(),\n enablePrerenderSourceMaps: z.boolean().optional(),\n excludeDefaultMomentLocales: z.boolean().optional(),\n experimental: z.strictObject(experimentalSchema).optional(),\n exportPathMap: z\n .function()\n .args(\n zExportMap,\n z.object({\n dev: z.boolean(),\n dir: z.string(),\n outDir: z.string().nullable(),\n distDir: z.string(),\n buildId: z.string(),\n })\n )\n .returns(z.union([zExportMap, z.promise(zExportMap)]))\n .optional(),\n generateBuildId: z\n .function()\n .args()\n .returns(\n z.union([\n z.string(),\n z.null(),\n z.promise(z.union([z.string(), z.null()])),\n ])\n )\n .optional(),\n generateEtags: z.boolean().optional(),\n headers: z\n .function()\n .args()\n .returns(z.promise(z.array(zHeader)))\n .optional(),\n htmlLimitedBots: z.instanceof(RegExp).optional(),\n httpAgentOptions: z\n .strictObject({ keepAlive: z.boolean().optional() })\n .optional(),\n i18n: z\n .strictObject({\n defaultLocale: z.string().min(1),\n domains: z\n .array(\n z.strictObject({\n defaultLocale: z.string().min(1),\n domain: z.string().min(1),\n http: z.literal(true).optional(),\n locales: z.array(z.string().min(1)).optional(),\n })\n )\n .optional(),\n localeDetection: z.literal(false).optional(),\n locales: z.array(z.string().min(1)),\n })\n .nullable()\n .optional(),\n images: z\n .strictObject({\n localPatterns: z\n .array(\n z.strictObject({\n pathname: z.string().optional(),\n search: z.string().optional(),\n })\n )\n .max(25)\n .optional(),\n remotePatterns: z\n .array(\n z.union([\n z.instanceof(URL),\n z.strictObject({\n hostname: z.string(),\n pathname: z.string().optional(),\n port: z.string().max(5).optional(),\n protocol: z.enum(['http', 'https']).optional(),\n search: z.string().optional(),\n }),\n ])\n )\n .max(50)\n .optional(),\n unoptimized: z.boolean().optional(),\n customCacheHandler: z.boolean().optional(),\n contentSecurityPolicy: z.string().optional(),\n contentDispositionType: z.enum(['inline', 'attachment']).optional(),\n dangerouslyAllowSVG: z.boolean().optional(),\n dangerouslyAllowLocalIP: z.boolean().optional(),\n deviceSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .max(25)\n .optional(),\n disableStaticImages: z.boolean().optional(),\n domains: z.array(z.string()).max(50).optional(),\n formats: z\n .array(z.enum(['image/avif', 'image/webp']))\n .max(4)\n .optional(),\n imageSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .min(0)\n .max(25)\n .optional(),\n loader: z.enum(VALID_LOADERS).optional(),\n loaderFile: z.string().optional(),\n maximumDiskCacheSize: z.number().int().min(0).optional(),\n maximumRedirects: z.number().int().min(0).max(20).optional(),\n maximumResponseBody: z\n .number()\n .int()\n .min(1)\n .max(Number.MAX_SAFE_INTEGER)\n .optional(),\n minimumCacheTTL: z.number().int().gte(0).optional(),\n path: z.string().optional(),\n qualities: z\n .array(z.number().int().gte(1).lte(100))\n .min(1)\n .max(20)\n .optional(),\n })\n .optional(),\n logging: z\n .union([\n z.object({\n fetches: z\n .object({\n fullUrl: z.boolean().optional(),\n hmrRefreshes: z.boolean().optional(),\n })\n .optional(),\n incomingRequests: z\n .union([\n z.boolean(),\n z.object({\n ignore: z.array(z.instanceof(RegExp)),\n }),\n ])\n .optional(),\n serverFunctions: z.boolean().optional(),\n browserToTerminal: z\n .union([z.boolean(), z.enum(['error', 'warn'])])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n modularizeImports: z\n .record(\n z.string(),\n z.object({\n transform: z.union([z.string(), z.record(z.string(), z.string())]),\n preventFullImport: z.boolean().optional(),\n skipDefaultConversion: z.boolean().optional(),\n })\n )\n .optional(),\n onDemandEntries: z\n .strictObject({\n maxInactiveAge: z.number().optional(),\n pagesBufferLength: z.number().optional(),\n })\n .optional(),\n output: z.enum(['standalone', 'export']).optional(),\n outputFileTracingRoot: z.string().optional(),\n outputFileTracingExcludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n outputFileTracingIncludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n pageExtensions: z.array(z.string()).min(1).optional(),\n instrumentationClientInject: z.array(z.string()).optional(),\n partialPrefetching: z\n .union([z.boolean(), z.literal('unstable_eager')])\n .optional(),\n poweredByHeader: z.boolean().optional(),\n productionBrowserSourceMaps: z.boolean().optional(),\n reactCompiler: z.union([\n z.boolean(),\n z\n .object({\n compilationMode: z.enum(['infer', 'annotation', 'all']).optional(),\n panicThreshold: z\n .enum(['none', 'critical_errors', 'all_errors'])\n .optional(),\n })\n .optional(),\n ]),\n reactProductionProfiling: z.boolean().optional(),\n reactStrictMode: z.boolean().nullable().optional(),\n reactMaxHeadersLength: z.number().nonnegative().int().optional(),\n redirects: z\n .function()\n .args()\n .returns(z.promise(z.array(zRedirect)))\n .optional(),\n rewrites: z\n .function()\n .args()\n .returns(\n z.promise(\n z.union([\n z.array(zRewrite),\n z.object({\n beforeFiles: z.array(zRewrite),\n afterFiles: z.array(zRewrite),\n fallback: z.array(zRewrite),\n }),\n ])\n )\n )\n .optional(),\n // sassOptions properties are unknown besides implementation, use z.any() here\n sassOptions: z\n .object({\n implementation: z.string().optional(),\n })\n .catchall(z.any())\n .optional(),\n serverExternalPackages: z.array(z.string()).optional(),\n skipMiddlewareUrlNormalize: z.boolean().optional(),\n skipProxyUrlNormalize: z.boolean().optional(),\n skipTrailingSlashRedirect: z.boolean().optional(),\n staticPageGenerationTimeout: z.number().optional(),\n expireTime: z.number().optional(),\n target: z.string().optional(),\n trailingSlash: z.boolean().optional(),\n transpilePackages: z.array(z.string()).optional(),\n turbopack: zTurbopackConfig.optional(),\n typescript: z\n .strictObject({\n ignoreBuildErrors: z.boolean().optional(),\n tsconfigPath: z.string().min(1).optional(),\n })\n .optional(),\n typedRoutes: z.boolean().optional(),\n useFileSystemPublicRoutes: z.boolean().optional(),\n // The webpack config type is unknown, use z.any() here\n webpack: z.any().nullable().optional(),\n watchOptions: z\n .strictObject({\n pollIntervalMs: z.number().positive().finite().optional(),\n })\n .optional(),\n })\n)\n"],"names":["configSchema","experimentalSchema","zSizeLimit","z","custom","val","zExportMap","record","string","object","page","query","any","_fallbackRouteParams","array","optional","_isAppDir","boolean","_isDynamicError","_isRoutePPREnabled","_allowEmptyStaticShell","zRouteHas","union","type","enum","key","value","literal","undefined","zRewrite","source","destination","basePath","locale","has","missing","internal","zRedirect","and","statusCode","never","permanent","number","zHeader","headers","zTurbopackLoaderItem","strictObject","loader","options","zTurbopackLoaderBuiltinCondition","zTurbopackCondition","all","lazy","not","path","instanceof","RegExp","content","contentType","zTurbopackModuleType","zTurbopackRuleConfigItem","loaders","as","condition","zTurbopackRuleConfigCollection","zTurbopackConfig","rules","resolveAlias","resolveExtensions","root","debugIds","chunkLoadingGlobal","ignoreIssue","title","description","outputHashSalt","useSkewCookie","after","appNavFailHandling","appNewScrollHandler","preloadEntriesOnStart","allowedRevalidateHeaderKeys","staleTimes","dynamic","static","gte","cacheLife","stale","revalidate","expire","cacheHandlers","clientRouterFilter","clientRouterFilterRedirects","clientRouterFilterAllowedRate","cpus","memoryBasedWorkersCount","craCompat","caseSensitiveRoutes","clientParamParsingOrigins","cachedNavigations","dynamicOnHover","useOffline","optimisticRouting","appShells","varyParams","prefetchInlining","maxSize","maxBundleSize","disableOptimizedLoading","disablePostcssPresetEnv","cacheComponents","inlineCss","esmExternals","serverActions","bodySizeLimit","allowedOrigins","maxPostponedStateSize","extensionAlias","externalDir","externalMiddlewareRewritesResolve","externalProxyRewritesResolve","exposeTestingApiInProductionBuild","fallbackNodePolyfills","fetchCacheKeyPrefix","forceSwcTransforms","fullySpecified","gzipSize","imgOptConcurrency","int","nullable","imgOptOperationCache","imgOptTimeoutInSeconds","imgOptMaxInputPixels","imgOptSequentialRead","imgOptSkipMetadata","isrFlushToDisk","largePageDataBytes","linkNoTouchStart","manualClientBasePath","middlewarePrefetch","proxyPrefetch","middlewareClientMaxBodySize","proxyClientMaxBodySize","multiZoneDraftMode","cssChunking","requestCost","nonnegative","finite","moduleFactorCost","nextScriptWorkers","optimizeCss","optimisticClientCache","parallelServerCompiles","parallelServerBuildTraces","ppr","readonly","taint","prerenderEarlyExit","proxyTimeout","rootParams","mcpServer","removeUncaughtErrorAndRejectionListeners","validateRSCRequestHeaders","scrollRestoration","sri","algorithm","swcPlugins","tuple","swcEnvOptions","mode","coreJs","skip","include","exclude","shippedProposals","forceAllTransforms","debug","loose","swcTraceProfiling","urlImports","viewTransition","workerThreads","webVitalsAttribution","mdxRs","development","jsxRuntime","jsxImportSource","providerImportSource","mdxType","transitionIndicator","gestureTransition","typedRoutes","webpackBuildWorker","webpackMemoryOptimizations","turbopackMemoryEviction","turbopackPluginRuntimeStrategy","turbopackMinify","turbopackFileSystemCacheForDev","turbopackFileSystemCacheForBuild","turbopackSourceMaps","turbopackInputSourceMaps","turbopackTreeShaking","turbopackRemoveUnusedImports","turbopackRemoveUnusedExports","turbopackScopeHoisting","turbopackWorkerAssetPrefix","turbopackClientSideNestedAsyncChunking","turbopackServerSideNestedAsyncChunking","turbopackImportTypeBytes","turbopackImportTypeText","turbopackUseBuiltinBabel","turbopackUseBuiltinSass","turbopackLocalPostcssConfig","turbopackModuleIds","turbopackInferModuleSideEffects","turbopackServerFastRefresh","optimizePackageImports","optimizeServerReact","strictRouteTypes","clientTraceMetadata","serverMinification","serverSourceMaps","useWasmBinary","useLightningcss","lightningCssFeatures","LIGHTNINGCSS_FEATURE_NAMES","testProxy","defaultTestRunner","SUPPORTED_TEST_RUNNERS_LIST","allowDevelopmentBuild","reactDebugChannel","instantInsights","validationLevel","staticGenerationRetryCount","staticGenerationMaxConcurrency","staticGenerationMinPagesPerWorker","typedEnv","serverComponentsHmrCache","authInterrupts","useCache","useCacheTimeout","positive","slowModuleDetection","buildTimeThresholdMs","globalNotFound","turbopackRustReactCompiler","browserDebugInfoInTerminal","level","depthLimit","edgeLimit","showSourceLocation","lockDistDir","hideLogsAfterAbort","runtimeServerDeploymentId","supportsImmutableAssets","deferredEntries","onBeforeDeferredEntries","function","returns","promise","void","reportSystemEnvInlining","adapterPath","agentRules","allowedDevOrigins","assetPrefix","bundlePagesRouterDependencies","cacheHandler","min","cacheMaxMemorySize","cleanDistDir","compiler","emotion","sourceMap","autoLabel","labelFormat","importMap","canonicalImport","styledBaseImport","reactRemoveProperties","properties","relay","src","artifactDirectory","language","eagerEsModules","removeConsole","styledComponents","displayName","topLevelImportPaths","ssr","fileName","meaninglessFileNames","minify","transpileTemplateLiterals","namespace","pure","cssProp","styledJsx","define","defineServer","runAfterProductionCompile","compress","configOrigin","crossOrigin","deploymentId","devIndicators","position","distDir","env","enablePrerenderSourceMaps","excludeDefaultMomentLocales","experimental","exportPathMap","args","dev","dir","outDir","buildId","generateBuildId","null","generateEtags","htmlLimitedBots","httpAgentOptions","keepAlive","i18n","defaultLocale","domains","domain","http","locales","localeDetection","images","localPatterns","pathname","search","max","remotePatterns","URL","hostname","port","protocol","unoptimized","customCacheHandler","contentSecurityPolicy","contentDispositionType","dangerouslyAllowSVG","dangerouslyAllowLocalIP","deviceSizes","lte","disableStaticImages","formats","imageSizes","VALID_LOADERS","loaderFile","maximumDiskCacheSize","maximumRedirects","maximumResponseBody","Number","MAX_SAFE_INTEGER","minimumCacheTTL","qualities","logging","fetches","fullUrl","hmrRefreshes","incomingRequests","ignore","serverFunctions","browserToTerminal","modularizeImports","transform","preventFullImport","skipDefaultConversion","onDemandEntries","maxInactiveAge","pagesBufferLength","output","outputFileTracingRoot","outputFileTracingExcludes","outputFileTracingIncludes","pageExtensions","instrumentationClientInject","partialPrefetching","poweredByHeader","productionBrowserSourceMaps","reactCompiler","compilationMode","panicThreshold","reactProductionProfiling","reactStrictMode","reactMaxHeadersLength","redirects","rewrites","beforeFiles","afterFiles","fallback","sassOptions","implementation","catchall","serverExternalPackages","skipMiddlewareUrlNormalize","skipProxyUrlNormalize","skipTrailingSlashRedirect","staticPageGenerationTimeout","expireTime","target","trailingSlash","transpilePackages","turbopack","typescript","ignoreBuildErrors","tsconfigPath","useFileSystemPublicRoutes","webpack","watchOptions","pollIntervalMs"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../src/server/config-schema.ts"],"sourcesContent":["import type { NextConfig } from './config'\nimport { VALID_LOADERS } from '../shared/lib/image-config'\n\nimport { z } from 'next/dist/compiled/zod'\nimport type zod from 'next/dist/compiled/zod'\n\nimport type { SizeLimit } from '../types'\nimport {\n LIGHTNINGCSS_FEATURE_NAMES,\n type ExportPathMap,\n type TurbopackLoaderItem,\n type TurbopackOptions,\n type TurbopackRuleConfigItem,\n type TurbopackRuleConfigCollection,\n type TurbopackRuleCondition,\n type TurbopackLoaderBuiltinCondition,\n} from './config-shared'\nimport type {\n Header,\n Rewrite,\n RouteHas,\n Redirect,\n} from '../lib/load-custom-routes'\nimport { SUPPORTED_TEST_RUNNERS_LIST } from '../cli/next-test'\n\n// A custom zod schema for the SizeLimit type\nconst zSizeLimit = z.custom<SizeLimit>((val) => {\n if (typeof val === 'number' || typeof val === 'string') {\n return true\n }\n return false\n})\n\nconst zExportMap: zod.ZodType<ExportPathMap> = z.record(\n z.string(),\n z.object({\n page: z.string(),\n query: z.any(), // NextParsedUrlQuery\n\n // private optional properties\n _fallbackRouteParams: z.array(z.any()).optional(),\n _isAppDir: z.boolean().optional(),\n _isDynamicError: z.boolean().optional(),\n _isRoutePPREnabled: z.boolean().optional(),\n _allowEmptyStaticShell: z.boolean().optional(),\n })\n)\n\nconst zRouteHas: zod.ZodType<RouteHas> = z.union([\n z.object({\n type: z.enum(['header', 'query', 'cookie']),\n key: z.string(),\n value: z.string().optional(),\n }),\n z.object({\n type: z.literal('host'),\n key: z.undefined().optional(),\n value: z.string(),\n }),\n])\n\nconst zRewrite: zod.ZodType<Rewrite> = z.object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n})\n\nconst zRedirect: zod.ZodType<Redirect> = z\n .object({\n source: z.string(),\n destination: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n internal: z.boolean().optional(),\n })\n .and(\n z.union([\n z.object({\n statusCode: z.never().optional(),\n permanent: z.boolean(),\n }),\n z.object({\n statusCode: z.number(),\n permanent: z.never().optional(),\n }),\n ])\n )\n\nconst zHeader: zod.ZodType<Header> = z.object({\n source: z.string(),\n basePath: z.literal(false).optional(),\n locale: z.literal(false).optional(),\n headers: z.array(z.object({ key: z.string(), value: z.string() })),\n has: z.array(zRouteHas).optional(),\n missing: z.array(zRouteHas).optional(),\n\n internal: z.boolean().optional(),\n})\n\nconst zTurbopackLoaderItem: zod.ZodType<TurbopackLoaderItem> = z.union([\n z.string(),\n z.strictObject({\n loader: z.string(),\n // Any JSON value can be used as turbo loader options, so use z.any() here\n options: z.record(z.string(), z.any()).optional(),\n }),\n])\n\nconst zTurbopackLoaderBuiltinCondition: zod.ZodType<TurbopackLoaderBuiltinCondition> =\n z.union([\n z.literal('browser'),\n z.literal('foreign'),\n z.literal('development'),\n z.literal('production'),\n z.literal('node'),\n z.literal('edge-light'),\n ])\n\nconst zTurbopackCondition: zod.ZodType<TurbopackRuleCondition> = z.union([\n z.strictObject({ all: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ any: z.lazy(() => z.array(zTurbopackCondition)) }),\n z.strictObject({ not: z.lazy(() => zTurbopackCondition) }),\n zTurbopackLoaderBuiltinCondition,\n z.strictObject({\n path: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n content: z.instanceof(RegExp).optional(),\n query: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n contentType: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n }),\n])\n\nconst zTurbopackModuleType = z.enum([\n 'asset',\n 'ecmascript',\n 'typescript',\n 'css',\n 'css-module',\n 'wasm',\n 'raw',\n 'node',\n 'bytes',\n])\n\nconst zTurbopackRuleConfigItem: zod.ZodType<TurbopackRuleConfigItem> =\n z.strictObject({\n loaders: z.array(zTurbopackLoaderItem).optional(),\n as: z.string().optional(),\n condition: zTurbopackCondition.optional(),\n type: zTurbopackModuleType.optional(),\n })\n\nconst zTurbopackRuleConfigCollection: zod.ZodType<TurbopackRuleConfigCollection> =\n z.union([\n zTurbopackRuleConfigItem,\n z.array(z.union([zTurbopackLoaderItem, zTurbopackRuleConfigItem])),\n ])\n\nconst zTurbopackConfig: zod.ZodType<TurbopackOptions> = z.strictObject({\n rules: z.record(z.string(), zTurbopackRuleConfigCollection).optional(),\n resolveAlias: z\n .record(\n z.string(),\n z.union([\n z.string(),\n z.array(z.string()),\n z.record(z.string(), z.union([z.string(), z.array(z.string())])),\n ])\n )\n .optional(),\n resolveExtensions: z.array(z.string()).optional(),\n root: z.string().optional(),\n debugIds: z.boolean().optional(),\n chunkLoadingGlobal: z.string().optional(),\n ignoreIssue: z\n .array(\n z.object({\n path: z.union([z.string(), z.instanceof(RegExp)]),\n title: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n description: z.union([z.string(), z.instanceof(RegExp)]).optional(),\n })\n )\n .optional(),\n})\n\nexport const experimentalSchema = {\n outputHashSalt: z.string().optional(),\n useSkewCookie: z.boolean().optional(),\n after: z.boolean().optional(),\n appNavFailHandling: z.boolean().optional(),\n appNewScrollHandler: z.boolean().optional(),\n preloadEntriesOnStart: z.boolean().optional(),\n allowedRevalidateHeaderKeys: z.array(z.string()).optional(),\n staleTimes: z\n .object({\n dynamic: z.number().optional(),\n static: z.number().gte(30).optional(),\n })\n .optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n clientRouterFilter: z.boolean().optional(),\n clientRouterFilterRedirects: z.boolean().optional(),\n clientRouterFilterAllowedRate: z.number().optional(),\n cpus: z.number().optional(),\n memoryBasedWorkersCount: z.boolean().optional(),\n craCompat: z.boolean().optional(),\n caseSensitiveRoutes: z.boolean().optional(),\n clientParamParsingOrigins: z.array(z.string()).optional(),\n cachedNavigations: z.boolean().optional(),\n dynamicOnHover: z.boolean().optional(),\n useOffline: z.boolean().optional(),\n optimisticRouting: z.boolean().optional(),\n appShells: z.boolean().optional(),\n varyParams: z.boolean().optional(),\n prefetchInlining: z\n .union([\n z.boolean(),\n z.object({\n maxSize: z.number().optional(),\n maxBundleSize: z.number().optional(),\n }),\n ])\n .optional(),\n disableOptimizedLoading: z.boolean().optional(),\n disablePostcssPresetEnv: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n inlineCss: z.boolean().optional(),\n esmExternals: z.union([z.boolean(), z.literal('loose')]).optional(),\n serverActions: z\n .object({\n bodySizeLimit: zSizeLimit.optional(),\n allowedOrigins: z.array(z.string()).optional(),\n })\n .optional(),\n maxPostponedStateSize: zSizeLimit.optional(),\n // The original type was Record<string, any>\n extensionAlias: z.record(z.string(), z.any()).optional(),\n externalDir: z.boolean().optional(),\n externalMiddlewareRewritesResolve: z.boolean().optional(),\n externalProxyRewritesResolve: z.boolean().optional(),\n exposeTestingApiInProductionBuild: z.boolean().optional(),\n fallbackNodePolyfills: z.literal(false).optional(),\n fetchCacheKeyPrefix: z.string().optional(),\n forceSwcTransforms: z.boolean().optional(),\n fullySpecified: z.boolean().optional(),\n gzipSize: z.boolean().optional(),\n imgOptConcurrency: z.number().int().optional().nullable(),\n imgOptOperationCache: z.boolean().optional().nullable(),\n imgOptTimeoutInSeconds: z.number().int().optional(),\n imgOptMaxInputPixels: z.number().int().optional(),\n imgOptSequentialRead: z.boolean().optional().nullable(),\n imgOptSkipMetadata: z.boolean().optional().nullable(),\n isrFlushToDisk: z.boolean().optional(),\n largePageDataBytes: z.number().optional(),\n linkNoTouchStart: z.boolean().optional(),\n manualClientBasePath: z.boolean().optional(),\n middlewarePrefetch: z.enum(['strict', 'flexible']).optional(),\n proxyPrefetch: z.enum(['strict', 'flexible']).optional(),\n middlewareClientMaxBodySize: zSizeLimit.optional(),\n proxyClientMaxBodySize: zSizeLimit.optional(),\n multiZoneDraftMode: z.boolean().optional(),\n cssChunking: z\n .union([\n z.boolean(),\n z.literal('strict'),\n z.literal('loose'),\n z.literal('graph'),\n z.strictObject({ type: z.literal('strict') }),\n z.strictObject({ type: z.literal('loose') }),\n z.strictObject({\n type: z.literal('graph'),\n requestCost: z.number().nonnegative().finite().optional(),\n moduleFactorCost: z.number().nonnegative().finite().optional(),\n }),\n ])\n .optional(),\n nextScriptWorkers: z.boolean().optional(),\n // The critter option is unknown, use z.any() here\n optimizeCss: z.union([z.boolean(), z.any()]).optional(),\n optimisticClientCache: z.boolean().optional(),\n parallelServerCompiles: z.boolean().optional(),\n parallelServerBuildTraces: z.boolean().optional(),\n ppr: z\n .union([z.boolean(), z.literal('incremental')])\n .readonly()\n .optional(),\n taint: z.boolean().optional(),\n useExperimentalReact: z.boolean().optional(),\n prerenderEarlyExit: z.boolean().optional(),\n proxyTimeout: z.number().gte(0).optional(),\n rootParams: z.boolean().optional(),\n mcpServer: z.boolean().optional(),\n removeUncaughtErrorAndRejectionListeners: z.boolean().optional(),\n validateRSCRequestHeaders: z.boolean().optional(),\n scrollRestoration: z.boolean().optional(),\n sri: z\n .object({\n algorithm: z.enum(['sha256', 'sha384', 'sha512']).optional(),\n })\n .optional(),\n swcPlugins: z\n // The specific swc plugin's option is unknown, use z.any() here\n .array(z.tuple([z.string(), z.record(z.string(), z.any())]))\n .optional(),\n swcEnvOptions: z\n .object({\n mode: z.enum(['usage', 'entry']).optional(),\n coreJs: z.string().optional(),\n skip: z.array(z.string()).optional(),\n include: z.array(z.string()).optional(),\n exclude: z.array(z.string()).optional(),\n shippedProposals: z.boolean().optional(),\n forceAllTransforms: z.boolean().optional(),\n debug: z.boolean().optional(),\n loose: z.boolean().optional(),\n })\n .optional(),\n swcTraceProfiling: z.boolean().optional(),\n // NonNullable<webpack.Configuration['experiments']>['buildHttp']\n urlImports: z.any().optional(),\n viewTransition: z.boolean().optional(),\n workerThreads: z.boolean().optional(),\n webVitalsAttribution: z\n .array(\n z.union([\n z.literal('CLS'),\n z.literal('FCP'),\n z.literal('FID'),\n z.literal('INP'),\n z.literal('LCP'),\n z.literal('TTFB'),\n ])\n )\n .optional(),\n // This is partial set of mdx-rs transform options we support, aligned\n // with next_core::next_config::MdxRsOptions. Ensure both types are kept in sync.\n mdxRs: z\n .union([\n z.boolean(),\n z.object({\n development: z.boolean().optional(),\n jsxRuntime: z.string().optional(),\n jsxImportSource: z.string().optional(),\n providerImportSource: z.string().optional(),\n mdxType: z.enum(['gfm', 'commonmark']).optional(),\n }),\n ])\n .optional(),\n transitionIndicator: z.boolean().optional(),\n gestureTransition: z.boolean().optional(),\n typedRoutes: z.boolean().optional(),\n webpackBuildWorker: z.boolean().optional(),\n webpackMemoryOptimizations: z.boolean().optional(),\n turbopackMemoryEviction: z\n .union([z.literal(false), z.literal('full')])\n .optional(),\n turbopackPluginRuntimeStrategy: z\n .enum(['workerThreads', 'childProcesses', 'forceWorkerThreads'])\n .optional(),\n turbopackMinify: z.boolean().optional(),\n turbopackFileSystemCacheForDev: z.boolean().optional(),\n turbopackFileSystemCacheForBuild: z.boolean().optional(),\n turbopackSourceMaps: z.boolean().optional(),\n turbopackInputSourceMaps: z.boolean().optional(),\n turbopackTreeShaking: z.boolean().optional(),\n turbopackRemoveUnusedImports: z.boolean().optional(),\n turbopackRemoveUnusedExports: z.boolean().optional(),\n turbopackScopeHoisting: z.boolean().optional(),\n turbopackWorkerAssetPrefix: z.string().optional(),\n turbopackClientSideNestedAsyncChunking: z.boolean().optional(),\n turbopackServerSideNestedAsyncChunking: z.boolean().optional(),\n turbopackImportTypeBytes: z.boolean().optional(),\n turbopackImportTypeText: z.boolean().optional(),\n turbopackUseBuiltinBabel: z.boolean().optional(),\n turbopackUseBuiltinSass: z.boolean().optional(),\n turbopackLocalPostcssConfig: z.boolean().optional(),\n turbopackModuleIds: z.enum(['named', 'deterministic']).optional(),\n turbopackInferModuleSideEffects: z.boolean().optional(),\n turbopackServerFastRefresh: z.boolean().optional(),\n optimizePackageImports: z.array(z.string()).optional(),\n optimizeServerReact: z.boolean().optional(),\n strictRouteTypes: z.boolean().optional(),\n clientTraceMetadata: z.array(z.string()).optional(),\n serverMinification: z.boolean().optional(),\n serverSourceMaps: z.boolean().optional(),\n useWasmBinary: z.boolean().optional(),\n useLightningcss: z.boolean().optional(),\n lightningCssFeatures: z\n .object({\n include: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n exclude: z.array(z.enum(LIGHTNINGCSS_FEATURE_NAMES)).optional(),\n })\n .optional(),\n testProxy: z.boolean().optional(),\n defaultTestRunner: z.enum(SUPPORTED_TEST_RUNNERS_LIST).optional(),\n allowDevelopmentBuild: z.literal(true).optional(),\n\n reactDebugChannel: z.boolean().optional(),\n instantInsights: z\n .object({\n validationLevel: z\n .enum([\n 'warning',\n 'manual-warning',\n 'experimental-error',\n 'experimental-manual-error',\n ])\n .optional(),\n })\n .optional(),\n staticGenerationRetryCount: z.number().int().optional(),\n staticGenerationMaxConcurrency: z.number().int().optional(),\n staticGenerationMinPagesPerWorker: z.number().int().optional(),\n typedEnv: z.boolean().optional(),\n serverComponentsHmrCache: z.boolean().optional(),\n authInterrupts: z.boolean().optional(),\n useCache: z.boolean().optional(),\n useCacheTimeout: z.number().positive().optional(),\n slowModuleDetection: z\n .object({\n buildTimeThresholdMs: z.number().int(),\n })\n .optional(),\n globalNotFound: z.boolean().optional(),\n turbopackRustReactCompiler: z.boolean().optional(),\n browserDebugInfoInTerminal: z\n .union([\n z.boolean(),\n z.enum(['error', 'warn', 'verbose']),\n z.object({\n level: z.enum(['error', 'warn', 'verbose']).optional(),\n depthLimit: z.number().int().positive().optional(),\n edgeLimit: z.number().int().positive().optional(),\n showSourceLocation: z.boolean().optional(),\n }),\n ])\n .optional(),\n lockDistDir: z.boolean().optional(),\n hideLogsAfterAbort: z.boolean().optional(),\n runtimeServerDeploymentId: z.boolean().optional(),\n supportsImmutableAssets: z.boolean().optional(),\n deferredEntries: z.array(z.string()).optional(),\n onBeforeDeferredEntries: z.function().returns(z.promise(z.void())).optional(),\n reportSystemEnvInlining: z.enum(['warn', 'error']).optional(),\n}\n\nexport const configSchema: zod.ZodType<NextConfig> = z.lazy(() =>\n z.strictObject({\n adapterPath: z.string().optional(),\n agentRules: z.boolean().optional(),\n allowedDevOrigins: z.array(z.string()).optional(),\n assetPrefix: z.string().optional(),\n basePath: z.string().optional(),\n bundlePagesRouterDependencies: z.boolean().optional(),\n cacheComponents: z.boolean().optional(),\n cacheHandler: z.string().min(1).optional(),\n cacheHandlers: z.record(z.string(), z.string().optional()).optional(),\n cacheLife: z\n .record(\n z.object({\n stale: z.number().optional(),\n revalidate: z.number().optional(),\n expire: z.number().optional(),\n })\n )\n .optional(),\n cacheMaxMemorySize: z.number().optional(),\n cleanDistDir: z.boolean().optional(),\n compiler: z\n .strictObject({\n emotion: z\n .union([\n z.boolean(),\n z.object({\n sourceMap: z.boolean().optional(),\n autoLabel: z\n .union([\n z.literal('always'),\n z.literal('dev-only'),\n z.literal('never'),\n ])\n .optional(),\n labelFormat: z.string().min(1).optional(),\n importMap: z\n .record(\n z.string(),\n z.record(\n z.string(),\n z.object({\n canonicalImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n styledBaseImport: z\n .tuple([z.string(), z.string()])\n .optional(),\n })\n )\n )\n .optional(),\n }),\n ])\n .optional(),\n reactRemoveProperties: z\n .union([\n z.boolean().optional(),\n z.object({\n properties: z.array(z.string()).optional(),\n }),\n ])\n .optional(),\n relay: z\n .object({\n src: z.string(),\n artifactDirectory: z.string().optional(),\n language: z.enum(['javascript', 'typescript', 'flow']).optional(),\n eagerEsModules: z.boolean().optional(),\n })\n .optional(),\n removeConsole: z\n .union([\n z.boolean().optional(),\n z.object({\n exclude: z.array(z.string()).min(1).optional(),\n }),\n ])\n .optional(),\n styledComponents: z.union([\n z.boolean().optional(),\n z.object({\n displayName: z.boolean().optional(),\n topLevelImportPaths: z.array(z.string()).optional(),\n ssr: z.boolean().optional(),\n fileName: z.boolean().optional(),\n meaninglessFileNames: z.array(z.string()).optional(),\n minify: z.boolean().optional(),\n transpileTemplateLiterals: z.boolean().optional(),\n namespace: z.string().min(1).optional(),\n pure: z.boolean().optional(),\n cssProp: z.boolean().optional(),\n }),\n ]),\n styledJsx: z.union([\n z.boolean().optional(),\n z.object({\n useLightningcss: z.boolean().optional(),\n }),\n ]),\n define: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n defineServer: z\n .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))\n .optional(),\n runAfterProductionCompile: z\n .function()\n .returns(z.promise(z.void()))\n .optional(),\n })\n .optional(),\n compress: z.boolean().optional(),\n configOrigin: z.string().optional(),\n crossOrigin: z\n .union([z.literal('anonymous'), z.literal('use-credentials')])\n .optional(),\n deploymentId: z.string().optional(),\n devIndicators: z\n .union([\n z.object({\n position: z\n .union([\n z.literal('bottom-left'),\n z.literal('bottom-right'),\n z.literal('top-left'),\n z.literal('top-right'),\n ])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n distDir: z.string().min(1).optional(),\n env: z.record(z.string(), z.union([z.string(), z.undefined()])).optional(),\n enablePrerenderSourceMaps: z.boolean().optional(),\n excludeDefaultMomentLocales: z.boolean().optional(),\n experimental: z.strictObject(experimentalSchema).optional(),\n exportPathMap: z\n .function()\n .args(\n zExportMap,\n z.object({\n dev: z.boolean(),\n dir: z.string(),\n outDir: z.string().nullable(),\n distDir: z.string(),\n buildId: z.string(),\n })\n )\n .returns(z.union([zExportMap, z.promise(zExportMap)]))\n .optional(),\n generateBuildId: z\n .function()\n .args()\n .returns(\n z.union([\n z.string(),\n z.null(),\n z.promise(z.union([z.string(), z.null()])),\n ])\n )\n .optional(),\n generateEtags: z.boolean().optional(),\n headers: z\n .function()\n .args()\n .returns(z.promise(z.array(zHeader)))\n .optional(),\n htmlLimitedBots: z.instanceof(RegExp).optional(),\n httpAgentOptions: z\n .strictObject({ keepAlive: z.boolean().optional() })\n .optional(),\n i18n: z\n .strictObject({\n defaultLocale: z.string().min(1),\n domains: z\n .array(\n z.strictObject({\n defaultLocale: z.string().min(1),\n domain: z.string().min(1),\n http: z.literal(true).optional(),\n locales: z.array(z.string().min(1)).optional(),\n })\n )\n .optional(),\n localeDetection: z.literal(false).optional(),\n locales: z.array(z.string().min(1)),\n })\n .nullable()\n .optional(),\n images: z\n .strictObject({\n localPatterns: z\n .array(\n z.strictObject({\n pathname: z.string().optional(),\n search: z.string().optional(),\n })\n )\n .max(25)\n .optional(),\n remotePatterns: z\n .array(\n z.union([\n z.instanceof(URL),\n z.strictObject({\n hostname: z.string(),\n pathname: z.string().optional(),\n port: z.string().max(5).optional(),\n protocol: z.enum(['http', 'https']).optional(),\n search: z.string().optional(),\n }),\n ])\n )\n .max(50)\n .optional(),\n unoptimized: z.boolean().optional(),\n customCacheHandler: z.boolean().optional(),\n contentSecurityPolicy: z.string().optional(),\n contentDispositionType: z.enum(['inline', 'attachment']).optional(),\n dangerouslyAllowSVG: z.boolean().optional(),\n dangerouslyAllowLocalIP: z.boolean().optional(),\n deviceSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .max(25)\n .optional(),\n disableStaticImages: z.boolean().optional(),\n domains: z.array(z.string()).max(50).optional(),\n formats: z\n .array(z.enum(['image/avif', 'image/webp']))\n .max(4)\n .optional(),\n imageSizes: z\n .array(z.number().int().gte(1).lte(10000))\n .min(0)\n .max(25)\n .optional(),\n loader: z.enum(VALID_LOADERS).optional(),\n loaderFile: z.string().optional(),\n maximumDiskCacheSize: z.number().int().min(0).optional(),\n maximumRedirects: z.number().int().min(0).max(20).optional(),\n maximumResponseBody: z\n .number()\n .int()\n .min(1)\n .max(Number.MAX_SAFE_INTEGER)\n .optional(),\n minimumCacheTTL: z.number().int().gte(0).optional(),\n path: z.string().optional(),\n qualities: z\n .array(z.number().int().gte(1).lte(100))\n .min(1)\n .max(20)\n .optional(),\n })\n .optional(),\n logging: z\n .union([\n z.object({\n fetches: z\n .object({\n fullUrl: z.boolean().optional(),\n hmrRefreshes: z.boolean().optional(),\n })\n .optional(),\n incomingRequests: z\n .union([\n z.boolean(),\n z.object({\n ignore: z.array(z.instanceof(RegExp)),\n }),\n ])\n .optional(),\n serverFunctions: z.boolean().optional(),\n browserToTerminal: z\n .union([z.boolean(), z.enum(['error', 'warn'])])\n .optional(),\n }),\n z.literal(false),\n ])\n .optional(),\n modularizeImports: z\n .record(\n z.string(),\n z.object({\n transform: z.union([z.string(), z.record(z.string(), z.string())]),\n preventFullImport: z.boolean().optional(),\n skipDefaultConversion: z.boolean().optional(),\n })\n )\n .optional(),\n onDemandEntries: z\n .strictObject({\n maxInactiveAge: z.number().optional(),\n pagesBufferLength: z.number().optional(),\n })\n .optional(),\n output: z.enum(['standalone', 'export']).optional(),\n outputFileTracingRoot: z.string().optional(),\n outputFileTracingExcludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n outputFileTracingIncludes: z\n .record(z.string(), z.array(z.string()))\n .optional(),\n pageExtensions: z.array(z.string()).min(1).optional(),\n instrumentationClientInject: z.array(z.string()).optional(),\n partialPrefetching: z\n .union([z.boolean(), z.literal('unstable_eager')])\n .optional(),\n poweredByHeader: z.boolean().optional(),\n productionBrowserSourceMaps: z.boolean().optional(),\n reactCompiler: z.union([\n z.boolean(),\n z\n .object({\n compilationMode: z.enum(['infer', 'annotation', 'all']).optional(),\n panicThreshold: z\n .enum(['none', 'critical_errors', 'all_errors'])\n .optional(),\n })\n .optional(),\n ]),\n reactProductionProfiling: z.boolean().optional(),\n reactStrictMode: z.boolean().nullable().optional(),\n reactMaxHeadersLength: z.number().nonnegative().int().optional(),\n redirects: z\n .function()\n .args()\n .returns(z.promise(z.array(zRedirect)))\n .optional(),\n rewrites: z\n .function()\n .args()\n .returns(\n z.promise(\n z.union([\n z.array(zRewrite),\n z.object({\n beforeFiles: z.array(zRewrite),\n afterFiles: z.array(zRewrite),\n fallback: z.array(zRewrite),\n }),\n ])\n )\n )\n .optional(),\n // sassOptions properties are unknown besides implementation, use z.any() here\n sassOptions: z\n .object({\n implementation: z.string().optional(),\n })\n .catchall(z.any())\n .optional(),\n serverExternalPackages: z.array(z.string()).optional(),\n skipMiddlewareUrlNormalize: z.boolean().optional(),\n skipProxyUrlNormalize: z.boolean().optional(),\n skipTrailingSlashRedirect: z.boolean().optional(),\n staticPageGenerationTimeout: z.number().optional(),\n expireTime: z.number().optional(),\n target: z.string().optional(),\n trailingSlash: z.boolean().optional(),\n transpilePackages: z.array(z.string()).optional(),\n turbopack: zTurbopackConfig.optional(),\n typescript: z\n .strictObject({\n ignoreBuildErrors: z.boolean().optional(),\n tsconfigPath: z.string().min(1).optional(),\n })\n .optional(),\n typedRoutes: z.boolean().optional(),\n useFileSystemPublicRoutes: z.boolean().optional(),\n // The webpack config type is unknown, use z.any() here\n webpack: z.any().nullable().optional(),\n watchOptions: z\n .strictObject({\n pollIntervalMs: z.number().positive().finite().optional(),\n })\n .optional(),\n })\n)\n"],"names":["configSchema","experimentalSchema","zSizeLimit","z","custom","val","zExportMap","record","string","object","page","query","any","_fallbackRouteParams","array","optional","_isAppDir","boolean","_isDynamicError","_isRoutePPREnabled","_allowEmptyStaticShell","zRouteHas","union","type","enum","key","value","literal","undefined","zRewrite","source","destination","basePath","locale","has","missing","internal","zRedirect","and","statusCode","never","permanent","number","zHeader","headers","zTurbopackLoaderItem","strictObject","loader","options","zTurbopackLoaderBuiltinCondition","zTurbopackCondition","all","lazy","not","path","instanceof","RegExp","content","contentType","zTurbopackModuleType","zTurbopackRuleConfigItem","loaders","as","condition","zTurbopackRuleConfigCollection","zTurbopackConfig","rules","resolveAlias","resolveExtensions","root","debugIds","chunkLoadingGlobal","ignoreIssue","title","description","outputHashSalt","useSkewCookie","after","appNavFailHandling","appNewScrollHandler","preloadEntriesOnStart","allowedRevalidateHeaderKeys","staleTimes","dynamic","static","gte","cacheLife","stale","revalidate","expire","cacheHandlers","clientRouterFilter","clientRouterFilterRedirects","clientRouterFilterAllowedRate","cpus","memoryBasedWorkersCount","craCompat","caseSensitiveRoutes","clientParamParsingOrigins","cachedNavigations","dynamicOnHover","useOffline","optimisticRouting","appShells","varyParams","prefetchInlining","maxSize","maxBundleSize","disableOptimizedLoading","disablePostcssPresetEnv","cacheComponents","inlineCss","esmExternals","serverActions","bodySizeLimit","allowedOrigins","maxPostponedStateSize","extensionAlias","externalDir","externalMiddlewareRewritesResolve","externalProxyRewritesResolve","exposeTestingApiInProductionBuild","fallbackNodePolyfills","fetchCacheKeyPrefix","forceSwcTransforms","fullySpecified","gzipSize","imgOptConcurrency","int","nullable","imgOptOperationCache","imgOptTimeoutInSeconds","imgOptMaxInputPixels","imgOptSequentialRead","imgOptSkipMetadata","isrFlushToDisk","largePageDataBytes","linkNoTouchStart","manualClientBasePath","middlewarePrefetch","proxyPrefetch","middlewareClientMaxBodySize","proxyClientMaxBodySize","multiZoneDraftMode","cssChunking","requestCost","nonnegative","finite","moduleFactorCost","nextScriptWorkers","optimizeCss","optimisticClientCache","parallelServerCompiles","parallelServerBuildTraces","ppr","readonly","taint","useExperimentalReact","prerenderEarlyExit","proxyTimeout","rootParams","mcpServer","removeUncaughtErrorAndRejectionListeners","validateRSCRequestHeaders","scrollRestoration","sri","algorithm","swcPlugins","tuple","swcEnvOptions","mode","coreJs","skip","include","exclude","shippedProposals","forceAllTransforms","debug","loose","swcTraceProfiling","urlImports","viewTransition","workerThreads","webVitalsAttribution","mdxRs","development","jsxRuntime","jsxImportSource","providerImportSource","mdxType","transitionIndicator","gestureTransition","typedRoutes","webpackBuildWorker","webpackMemoryOptimizations","turbopackMemoryEviction","turbopackPluginRuntimeStrategy","turbopackMinify","turbopackFileSystemCacheForDev","turbopackFileSystemCacheForBuild","turbopackSourceMaps","turbopackInputSourceMaps","turbopackTreeShaking","turbopackRemoveUnusedImports","turbopackRemoveUnusedExports","turbopackScopeHoisting","turbopackWorkerAssetPrefix","turbopackClientSideNestedAsyncChunking","turbopackServerSideNestedAsyncChunking","turbopackImportTypeBytes","turbopackImportTypeText","turbopackUseBuiltinBabel","turbopackUseBuiltinSass","turbopackLocalPostcssConfig","turbopackModuleIds","turbopackInferModuleSideEffects","turbopackServerFastRefresh","optimizePackageImports","optimizeServerReact","strictRouteTypes","clientTraceMetadata","serverMinification","serverSourceMaps","useWasmBinary","useLightningcss","lightningCssFeatures","LIGHTNINGCSS_FEATURE_NAMES","testProxy","defaultTestRunner","SUPPORTED_TEST_RUNNERS_LIST","allowDevelopmentBuild","reactDebugChannel","instantInsights","validationLevel","staticGenerationRetryCount","staticGenerationMaxConcurrency","staticGenerationMinPagesPerWorker","typedEnv","serverComponentsHmrCache","authInterrupts","useCache","useCacheTimeout","positive","slowModuleDetection","buildTimeThresholdMs","globalNotFound","turbopackRustReactCompiler","browserDebugInfoInTerminal","level","depthLimit","edgeLimit","showSourceLocation","lockDistDir","hideLogsAfterAbort","runtimeServerDeploymentId","supportsImmutableAssets","deferredEntries","onBeforeDeferredEntries","function","returns","promise","void","reportSystemEnvInlining","adapterPath","agentRules","allowedDevOrigins","assetPrefix","bundlePagesRouterDependencies","cacheHandler","min","cacheMaxMemorySize","cleanDistDir","compiler","emotion","sourceMap","autoLabel","labelFormat","importMap","canonicalImport","styledBaseImport","reactRemoveProperties","properties","relay","src","artifactDirectory","language","eagerEsModules","removeConsole","styledComponents","displayName","topLevelImportPaths","ssr","fileName","meaninglessFileNames","minify","transpileTemplateLiterals","namespace","pure","cssProp","styledJsx","define","defineServer","runAfterProductionCompile","compress","configOrigin","crossOrigin","deploymentId","devIndicators","position","distDir","env","enablePrerenderSourceMaps","excludeDefaultMomentLocales","experimental","exportPathMap","args","dev","dir","outDir","buildId","generateBuildId","null","generateEtags","htmlLimitedBots","httpAgentOptions","keepAlive","i18n","defaultLocale","domains","domain","http","locales","localeDetection","images","localPatterns","pathname","search","max","remotePatterns","URL","hostname","port","protocol","unoptimized","customCacheHandler","contentSecurityPolicy","contentDispositionType","dangerouslyAllowSVG","dangerouslyAllowLocalIP","deviceSizes","lte","disableStaticImages","formats","imageSizes","VALID_LOADERS","loaderFile","maximumDiskCacheSize","maximumRedirects","maximumResponseBody","Number","MAX_SAFE_INTEGER","minimumCacheTTL","qualities","logging","fetches","fullUrl","hmrRefreshes","incomingRequests","ignore","serverFunctions","browserToTerminal","modularizeImports","transform","preventFullImport","skipDefaultConversion","onDemandEntries","maxInactiveAge","pagesBufferLength","output","outputFileTracingRoot","outputFileTracingExcludes","outputFileTracingIncludes","pageExtensions","instrumentationClientInject","partialPrefetching","poweredByHeader","productionBrowserSourceMaps","reactCompiler","compilationMode","panicThreshold","reactProductionProfiling","reactStrictMode","reactMaxHeadersLength","redirects","rewrites","beforeFiles","afterFiles","fallback","sassOptions","implementation","catchall","serverExternalPackages","skipMiddlewareUrlNormalize","skipProxyUrlNormalize","skipTrailingSlashRedirect","staticPageGenerationTimeout","expireTime","target","trailingSlash","transpilePackages","turbopack","typescript","ignoreBuildErrors","tsconfigPath","useFileSystemPublicRoutes","webpack","watchOptions","pollIntervalMs"],"mappings":"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","ignoreList":[0]} |
@@ -94,3 +94,3 @@ "use strict"; | ||
| } | ||
| _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.3.0-canary.52"}`))}${versionSuffix}`); | ||
| _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.3.0-canary.53"}`))}${versionSuffix}`); | ||
| if (appUrl) { | ||
@@ -97,0 +97,0 @@ _log.bootstrap(`- Local: ${appUrl}`); |
@@ -180,3 +180,3 @@ // Start CPU profile if it wasn't already started. | ||
| let { port } = serverOptions; | ||
| process.title = `next-server (v${"16.3.0-canary.52"})`; | ||
| process.title = `next-server (v${"16.3.0-canary.53"})`; | ||
| let handlersReady = ()=>{}; | ||
@@ -183,0 +183,0 @@ let handlersError = ()=>{}; |
@@ -40,3 +40,3 @@ "use strict"; | ||
| return async function handler(req, res, ctx) { | ||
| var _serverFilesManifest_config_experimental, _serverFilesManifest_config; | ||
| var _serverFilesManifest_config_experimental, _serverFilesManifest_config, _parsedUrl_pathname; | ||
| if (ctx.requestMeta) { | ||
@@ -123,235 +123,204 @@ (0, _requestmeta.setRequestMeta)(req, ctx.requestMeta); | ||
| const isWrappedByNextServer = Boolean(routerServerContext == null ? void 0 : routerServerContext.isWrappedByNextServer); | ||
| try { | ||
| var _parsedUrl_pathname; | ||
| const method = req.method || 'GET'; | ||
| const resolvedUrl = (0, _formaturl.formatUrl)({ | ||
| pathname: nextConfig.trailingSlash ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && ((_parsedUrl_pathname = parsedUrl.pathname) == null ? void 0 : _parsedUrl_pathname.endsWith('/')) ? '/' : ''}` : (0, _removetrailingslash.removeTrailingSlash)(encodedResolvedPathname || '/'), | ||
| // make sure to only add query values from original URL | ||
| query: hasStaticProps ? {} : originalQuery | ||
| }); | ||
| let parentSpan; | ||
| const handleResponse = async (span)=>{ | ||
| const responseGenerator = async ({ previousCacheEntry })=>{ | ||
| var _previousCacheEntry_value; | ||
| const doRender = async ()=>{ | ||
| try { | ||
| var _nextConfig_i18n; | ||
| return await routeModule.render(req, res, { | ||
| query: hasStaticProps && !isExperimentalCompile ? { | ||
| ...params | ||
| } : { | ||
| ...query, | ||
| ...params | ||
| }, | ||
| const method = req.method || 'GET'; | ||
| const resolvedUrl = (0, _formaturl.formatUrl)({ | ||
| pathname: nextConfig.trailingSlash ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && ((_parsedUrl_pathname = parsedUrl.pathname) == null ? void 0 : _parsedUrl_pathname.endsWith('/')) ? '/' : ''}` : (0, _removetrailingslash.removeTrailingSlash)(encodedResolvedPathname || '/'), | ||
| // make sure to only add query values from original URL | ||
| query: hasStaticProps ? {} : originalQuery | ||
| }); | ||
| let parentSpan; | ||
| const handleResponse = async (span)=>{ | ||
| const responseGenerator = async ({ previousCacheEntry })=>{ | ||
| var _previousCacheEntry_value; | ||
| const doRender = async ()=>{ | ||
| try { | ||
| var _nextConfig_i18n; | ||
| return await routeModule.render(req, res, { | ||
| query: hasStaticProps && !isExperimentalCompile ? { | ||
| ...params | ||
| } : { | ||
| ...query, | ||
| ...params | ||
| }, | ||
| params, | ||
| page: srcPage, | ||
| renderContext: { | ||
| isDraftMode, | ||
| isFallback: isIsrFallback, | ||
| developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage') | ||
| }, | ||
| sharedContext: { | ||
| buildId, | ||
| customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined, | ||
| deploymentId, | ||
| clientAssetToken | ||
| }, | ||
| renderOpts: { | ||
| params, | ||
| routeModule, | ||
| page: srcPage, | ||
| renderContext: { | ||
| isDraftMode, | ||
| isFallback: isIsrFallback, | ||
| developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage') | ||
| pageConfig: config || {}, | ||
| Component: (0, _interopdefault.interopDefault)(userland), | ||
| ComponentMod: userland, | ||
| getStaticProps, | ||
| getStaticPaths, | ||
| getServerSideProps, | ||
| supportsDynamicResponse: !hasStaticProps, | ||
| buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest, | ||
| nextFontManifest, | ||
| reactLoadableManifest, | ||
| assetPrefix: nextConfig.assetPrefix, | ||
| previewProps: prerenderManifest.preview, | ||
| images: nextConfig.images, | ||
| nextConfigOutput: nextConfig.output, | ||
| optimizeCss: Boolean(nextConfig.experimental.optimizeCss), | ||
| nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers), | ||
| domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains, | ||
| crossOrigin: nextConfig.crossOrigin, | ||
| multiZoneDraftMode, | ||
| basePath: nextConfig.basePath, | ||
| disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading, | ||
| largePageDataBytes: nextConfig.experimental.largePageDataBytes, | ||
| isExperimentalCompile, | ||
| experimental: { | ||
| clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [] | ||
| }, | ||
| sharedContext: { | ||
| buildId, | ||
| customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined, | ||
| deploymentId, | ||
| clientAssetToken | ||
| }, | ||
| renderOpts: { | ||
| params, | ||
| routeModule, | ||
| page: srcPage, | ||
| pageConfig: config || {}, | ||
| Component: (0, _interopdefault.interopDefault)(userland), | ||
| ComponentMod: userland, | ||
| getStaticProps, | ||
| getStaticPaths, | ||
| getServerSideProps, | ||
| supportsDynamicResponse: !hasStaticProps, | ||
| buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest, | ||
| nextFontManifest, | ||
| reactLoadableManifest, | ||
| assetPrefix: nextConfig.assetPrefix, | ||
| previewProps: prerenderManifest.preview, | ||
| images: nextConfig.images, | ||
| nextConfigOutput: nextConfig.output, | ||
| optimizeCss: Boolean(nextConfig.experimental.optimizeCss), | ||
| nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers), | ||
| domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains, | ||
| crossOrigin: nextConfig.crossOrigin, | ||
| multiZoneDraftMode, | ||
| basePath: nextConfig.basePath, | ||
| disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading, | ||
| largePageDataBytes: nextConfig.experimental.largePageDataBytes, | ||
| isExperimentalCompile, | ||
| experimental: { | ||
| clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [] | ||
| }, | ||
| locale, | ||
| locales, | ||
| defaultLocale, | ||
| setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus, | ||
| isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps), | ||
| resolvedUrl, | ||
| // For getServerSideProps and getInitialProps we need to ensure we use the original URL | ||
| // and not the resolved URL to prevent a hydration mismatch on | ||
| // asPath | ||
| resolvedAsPath: hasServerProps || hasGetInitialProps ? (0, _formaturl.formatUrl)({ | ||
| // we use the original URL pathname less the _next/data prefix if | ||
| // present | ||
| pathname: isNextDataRequest ? (0, _normalizedatapath.normalizeDataPath)(originalPathname) : originalPathname, | ||
| query: originalQuery | ||
| }) : resolvedUrl, | ||
| isOnDemandRevalidate, | ||
| ErrorDebug: (0, _requestmeta.getRequestMeta)(req, 'PagesErrorDebug'), | ||
| err: (0, _requestmeta.getRequestMeta)(req, 'invokeError'), | ||
| // needed for experimental.optimizeCss feature | ||
| distDir: _path.default.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir) | ||
| } | ||
| }).then((renderResult)=>{ | ||
| const { metadata } = renderResult; | ||
| let cacheControl = metadata.cacheControl; | ||
| // Apply the `expireTime` fallback as soon as we have the | ||
| // render's `cacheControl`, so every downstream consumer (the | ||
| // cache stored via `incrementalCache.set`, the response | ||
| // Cache-Control header, the outgoing entry returned from this | ||
| // responseGenerator) sees a finalized `cacheControl` with a | ||
| // populated `expire`. This mirrors the build-time fallback in | ||
| // `build/index.ts` so we don't apply an expire to routes that | ||
| // opt out of revalidation entirely (`revalidate: false`) or | ||
| // that are dynamic (`revalidate: 0`). | ||
| if (cacheControl && cacheControl.revalidate !== false && cacheControl.revalidate > 0 && cacheControl.expire === undefined) { | ||
| cacheControl.expire = nextConfig.expireTime; | ||
| } | ||
| if ('isNotFound' in metadata && metadata.isNotFound) { | ||
| return { | ||
| value: null, | ||
| cacheControl | ||
| }; | ||
| } | ||
| // Handle `isRedirect`. | ||
| if (metadata.isRedirect) { | ||
| return { | ||
| value: { | ||
| kind: _responsecache.CachedRouteKind.REDIRECT, | ||
| props: metadata.pageData ?? metadata.flightData | ||
| }, | ||
| cacheControl | ||
| }; | ||
| } | ||
| locale, | ||
| locales, | ||
| defaultLocale, | ||
| setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus, | ||
| isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps), | ||
| resolvedUrl, | ||
| // For getServerSideProps and getInitialProps we need to ensure we use the original URL | ||
| // and not the resolved URL to prevent a hydration mismatch on | ||
| // asPath | ||
| resolvedAsPath: hasServerProps || hasGetInitialProps ? (0, _formaturl.formatUrl)({ | ||
| // we use the original URL pathname less the _next/data prefix if | ||
| // present | ||
| pathname: isNextDataRequest ? (0, _normalizedatapath.normalizeDataPath)(originalPathname) : originalPathname, | ||
| query: originalQuery | ||
| }) : resolvedUrl, | ||
| isOnDemandRevalidate, | ||
| ErrorDebug: (0, _requestmeta.getRequestMeta)(req, 'PagesErrorDebug'), | ||
| err: (0, _requestmeta.getRequestMeta)(req, 'invokeError'), | ||
| // needed for experimental.optimizeCss feature | ||
| distDir: _path.default.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir) | ||
| } | ||
| }).then((renderResult)=>{ | ||
| const { metadata } = renderResult; | ||
| let cacheControl = metadata.cacheControl; | ||
| // Apply the `expireTime` fallback as soon as we have the | ||
| // render's `cacheControl`, so every downstream consumer (the | ||
| // cache stored via `incrementalCache.set`, the response | ||
| // Cache-Control header, the outgoing entry returned from this | ||
| // responseGenerator) sees a finalized `cacheControl` with a | ||
| // populated `expire`. This mirrors the build-time fallback in | ||
| // `build/index.ts` so we don't apply an expire to routes that | ||
| // opt out of revalidation entirely (`revalidate: false`) or | ||
| // that are dynamic (`revalidate: 0`). | ||
| if (cacheControl && cacheControl.revalidate !== false && cacheControl.revalidate > 0 && cacheControl.expire === undefined) { | ||
| cacheControl.expire = nextConfig.expireTime; | ||
| } | ||
| if ('isNotFound' in metadata && metadata.isNotFound) { | ||
| return { | ||
| value: null, | ||
| cacheControl | ||
| }; | ||
| } | ||
| // Handle `isRedirect`. | ||
| if (metadata.isRedirect) { | ||
| return { | ||
| value: { | ||
| kind: _responsecache.CachedRouteKind.PAGES, | ||
| html: renderResult, | ||
| pageData: renderResult.metadata.pageData, | ||
| headers: renderResult.metadata.headers, | ||
| status: renderResult.metadata.statusCode | ||
| kind: _responsecache.CachedRouteKind.REDIRECT, | ||
| props: metadata.pageData ?? metadata.flightData | ||
| }, | ||
| cacheControl | ||
| }; | ||
| }).finally(()=>{ | ||
| if (!span) return; | ||
| span.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || srcPage; | ||
| const name = `${method} ${route}`; | ||
| span.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| span.updateName(name); | ||
| // Propagate http.route to the parent span if one exists | ||
| // (e.g. a platform-created HTTP span in adapter | ||
| // deployments). | ||
| if (parentSpan && parentSpan !== span) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| }); | ||
| } catch (err) { | ||
| // if this is a background revalidate we need to report | ||
| // the request error here as it won't be bubbled | ||
| if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: (0, _utils.getRevalidateReason)({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| throw err; | ||
| return { | ||
| value: { | ||
| kind: _responsecache.CachedRouteKind.PAGES, | ||
| html: renderResult, | ||
| pageData: renderResult.metadata.pageData, | ||
| headers: renderResult.metadata.headers, | ||
| status: renderResult.metadata.statusCode | ||
| }, | ||
| cacheControl | ||
| }; | ||
| }); | ||
| } catch (err) { | ||
| // if this is a background revalidate we need to report | ||
| // the request error here as it won't be bubbled | ||
| if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: (0, _utils.getRevalidateReason)({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| }; | ||
| // if we've already generated this page we no longer | ||
| // serve the fallback | ||
| if (previousCacheEntry) { | ||
| isIsrFallback = false; | ||
| throw err; | ||
| } | ||
| if (isIsrFallback) { | ||
| const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{ | ||
| if (!routeModule.isDev) { | ||
| return (0, _utils2.toResponseCacheEntry)(previousFallbackCacheEntry); | ||
| } | ||
| return doRender(); | ||
| }, { | ||
| routeKind: _routekind.RouteKind.PAGES, | ||
| isFallback: true, | ||
| isRoutePPREnabled: false, | ||
| isOnDemandRevalidate: false, | ||
| incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode), | ||
| waitUntil: ctx.waitUntil | ||
| }); | ||
| if (fallbackResponse) { | ||
| // Remove the cache control from the response to prevent it from being | ||
| // used in the surrounding cache. | ||
| delete fallbackResponse.cacheControl; | ||
| fallbackResponse.isMiss = true; | ||
| return fallbackResponse; | ||
| }; | ||
| // if we've already generated this page we no longer | ||
| // serve the fallback | ||
| if (previousCacheEntry) { | ||
| isIsrFallback = false; | ||
| } | ||
| if (isIsrFallback) { | ||
| const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{ | ||
| if (!routeModule.isDev) { | ||
| return (0, _utils2.toResponseCacheEntry)(previousFallbackCacheEntry); | ||
| } | ||
| return doRender(); | ||
| }, { | ||
| routeKind: _routekind.RouteKind.PAGES, | ||
| isFallback: true, | ||
| isRoutePPREnabled: false, | ||
| isOnDemandRevalidate: false, | ||
| incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode), | ||
| waitUntil: ctx.waitUntil | ||
| }); | ||
| if (fallbackResponse) { | ||
| // Remove the cache control from the response to prevent it from being | ||
| // used in the surrounding cache. | ||
| delete fallbackResponse.cacheControl; | ||
| fallbackResponse.isMiss = true; | ||
| return fallbackResponse; | ||
| } | ||
| if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) { | ||
| res.statusCode = 404; | ||
| // on-demand revalidate always sets this header | ||
| res.setHeader('x-nextjs-cache', 'REVALIDATED'); | ||
| res.end('This page could not be found'); | ||
| return null; | ||
| } | ||
| if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === _responsecache.CachedRouteKind.PAGES) { | ||
| return { | ||
| value: { | ||
| kind: _responsecache.CachedRouteKind.PAGES, | ||
| html: new _renderresult.default(previousCacheEntry.value.html, { | ||
| contentType: _constants1.HTML_CONTENT_TYPE_HEADER, | ||
| metadata: { | ||
| statusCode: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| } | ||
| }), | ||
| pageData: {}, | ||
| status: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| }, | ||
| cacheControl: { | ||
| revalidate: 0, | ||
| expire: undefined | ||
| } | ||
| }; | ||
| } | ||
| return doRender(); | ||
| }; | ||
| } | ||
| if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) { | ||
| res.statusCode = 404; | ||
| // on-demand revalidate always sets this header | ||
| res.setHeader('x-nextjs-cache', 'REVALIDATED'); | ||
| res.end('This page could not be found'); | ||
| return null; | ||
| } | ||
| if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === _responsecache.CachedRouteKind.PAGES) { | ||
| return { | ||
| value: { | ||
| kind: _responsecache.CachedRouteKind.PAGES, | ||
| html: new _renderresult.default(previousCacheEntry.value.html, { | ||
| contentType: _constants1.HTML_CONTENT_TYPE_HEADER, | ||
| metadata: { | ||
| statusCode: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| } | ||
| }), | ||
| pageData: {}, | ||
| status: previousCacheEntry.value.status, | ||
| headers: previousCacheEntry.value.headers | ||
| }, | ||
| cacheControl: { | ||
| revalidate: 0, | ||
| expire: undefined | ||
| } | ||
| }; | ||
| } | ||
| return doRender(); | ||
| }; | ||
| try { | ||
| const result = await routeModule.handleResponse({ | ||
@@ -520,33 +489,67 @@ cacheKey, | ||
| }); | ||
| }; | ||
| // TODO: activeSpan code path is for when wrapped by | ||
| // next-server can be removed when this is no longer used | ||
| if (isWrappedByNextServer && activeSpan) { | ||
| await handleResponse(activeSpan); | ||
| } else { | ||
| parentSpan = tracer.getActiveScopeSpan(); | ||
| await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(_constants.BaseServerSpan.handleRequest, { | ||
| spanName: `${method} ${srcPage}`, | ||
| kind: _tracer.SpanKind.SERVER, | ||
| attributes: { | ||
| 'http.method': method, | ||
| 'http.target': req.url | ||
| } | ||
| }, handleResponse), undefined, !isWrappedByNextServer); | ||
| } catch (err) { | ||
| if (!(err instanceof _nofallbackerrorexternal.NoFallbackError)) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: (0, _utils.getRevalidateReason)({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| // rethrow so that we can handle serving error page | ||
| throw err; | ||
| } finally{ | ||
| // An IIFE to make early returns easier. | ||
| ; | ||
| (()=>{ | ||
| if (!span) return; | ||
| span.setAttributes({ | ||
| 'http.status_code': res.statusCode, | ||
| 'next.rsc': false | ||
| }); | ||
| const rootSpanAttributes = tracer.getRootSpanAttributes(); | ||
| // We were unable to get attributes, probably OTEL is not enabled | ||
| if (!rootSpanAttributes) { | ||
| return; | ||
| } | ||
| if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) { | ||
| console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); | ||
| return; | ||
| } | ||
| const route = rootSpanAttributes.get('next.route') || srcPage; | ||
| const name = `${method} ${route}`; | ||
| span.setAttributes({ | ||
| 'next.route': route, | ||
| 'http.route': route, | ||
| 'next.span_name': name | ||
| }); | ||
| span.updateName(name); | ||
| // Propagate http.route to the parent span if one exists | ||
| // (e.g. a platform-created HTTP span in adapter | ||
| // deployments). | ||
| if (parentSpan && parentSpan !== span) { | ||
| parentSpan.setAttribute('http.route', route); | ||
| parentSpan.updateName(name); | ||
| } | ||
| })(); | ||
| } | ||
| } catch (err) { | ||
| if (!(err instanceof _nofallbackerrorexternal.NoFallbackError)) { | ||
| const silenceLog = false; | ||
| await routeModule.onRequestError(req, err, { | ||
| routerKind: 'Pages Router', | ||
| routePath: srcPage, | ||
| routeType: 'render', | ||
| revalidateReason: (0, _utils.getRevalidateReason)({ | ||
| isStaticGeneration: hasStaticProps, | ||
| isOnDemandRevalidate | ||
| }) | ||
| }, silenceLog, routerServerContext); | ||
| } | ||
| // rethrow so that we can handle serving error page | ||
| throw err; | ||
| }; | ||
| // TODO: activeSpan code path is for when wrapped by | ||
| // next-server can be removed when this is no longer used | ||
| if (isWrappedByNextServer && activeSpan) { | ||
| await handleResponse(activeSpan); | ||
| } else { | ||
| parentSpan = tracer.getActiveScopeSpan(); | ||
| await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(_constants.BaseServerSpan.handleRequest, { | ||
| spanName: `${method} ${srcPage}`, | ||
| kind: _tracer.SpanKind.SERVER, | ||
| attributes: { | ||
| 'http.method': method, | ||
| 'http.target': req.url | ||
| } | ||
| }, handleResponse), undefined, !isWrappedByNextServer); | ||
| } | ||
@@ -553,0 +556,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n CachedRouteKind,\n type CachedPageValue,\n type CachedRedirectValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n getCacheControlHeader,\n type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n CACHE_ONE_YEAR_SECONDS,\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n NEXT_NAV_DEPLOYMENT_ID_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n GetServerSideProps,\n GetStaticPaths,\n GetStaticProps,\n} from '../../../types'\n\nexport const getHandler = ({\n srcPage: originalSrcPage,\n config,\n userland,\n routeModule,\n isFallbackError,\n getStaticPaths,\n getStaticProps,\n getServerSideProps,\n}: {\n srcPage: string\n config: Record<string, any> | undefined\n userland: any\n isFallbackError?: boolean\n routeModule: PagesRouteModule\n getStaticProps?: GetStaticProps\n getStaticPaths?: GetStaticPaths\n getServerSideProps?: GetServerSideProps\n}) => {\n return async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n let srcPage = originalSrcPage\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n }\n\n const {\n buildId,\n query,\n params,\n parsedUrl,\n originalQuery,\n originalPathname,\n buildManifest,\n fallbackBuildManifest,\n nextFontManifest,\n serverFilesManifest,\n reactLoadableManifest,\n prerenderManifest,\n isDraftMode,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n locale,\n locales,\n defaultLocale,\n routerServerContext,\n nextConfig,\n resolvedPathname,\n encodedResolvedPathname,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n const isExperimentalCompile =\n serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n const hasServerProps = Boolean(getServerSideProps)\n const hasStaticProps = Boolean(getStaticProps)\n const hasStaticPaths = Boolean(getStaticPaths)\n const hasGetInitialProps = Boolean(\n (userland.default || userland).getInitialProps\n )\n let cacheKey: null | string = null\n let isIsrFallback = false\n let isNextDataRequest =\n prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n const is404Page = srcPage === '/404'\n const is500Page = srcPage === '/500'\n const isErrorPage = srcPage === '/_error'\n\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${\n (srcPage === '/' || resolvedPathname === '/') && locale\n ? ''\n : resolvedPathname\n }`\n\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n }\n\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = removeTrailingSlash(\n locale\n ? addPathPrefix(resolvedPathname, `/${locale}`)\n : resolvedPathname\n )\n const isPrerendered =\n Boolean(prerenderManifest.routes[decodedPathname]) ||\n prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n\n if (\n typeof prerenderInfo.fallback === 'string' &&\n !isPrerendered &&\n !isNextDataRequest\n ) {\n isIsrFallback = true\n }\n }\n }\n\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (\n (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n isMinimalMode\n ) {\n isIsrFallback = false\n }\n\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n\n try {\n const method = req.method || 'GET'\n\n const resolvedUrl = formatUrl({\n pathname: nextConfig.trailingSlash\n ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n : removeTrailingSlash(encodedResolvedPathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery,\n })\n\n let parentSpan: Span | undefined\n const handleResponse = async (span?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n const doRender = async () => {\n try {\n return await routeModule\n .render(req, res, {\n query:\n hasStaticProps && !isExperimentalCompile\n ? ({\n ...params,\n } as ParsedUrlQuery)\n : {\n ...query,\n ...params,\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: getRequestMeta(\n req,\n 'developmentNotFoundSourcePage'\n ),\n },\n sharedContext: {\n buildId,\n customServer:\n Boolean(routerServerContext?.isCustomServer) || undefined,\n deploymentId,\n clientAssetToken,\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: interopDefault(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError\n ? fallbackBuildManifest\n : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images as any,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(\n nextConfig.experimental.nextScriptWorkers\n ),\n domainLocales: nextConfig.i18n?.domains,\n crossOrigin: nextConfig.crossOrigin,\n\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n disableOptimizedLoading:\n nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes:\n nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile,\n\n experimental: {\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata ||\n ([] as any),\n },\n\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n isNextDataRequest:\n isNextDataRequest && (hasServerProps || hasStaticProps),\n\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath:\n hasServerProps || hasGetInitialProps\n ? formatUrl({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest\n ? normalizeDataPath(originalPathname)\n : originalPathname,\n query: originalQuery,\n })\n : resolvedUrl,\n\n isOnDemandRevalidate,\n\n ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n err: getRequestMeta(req, 'invokeError'),\n\n // needed for experimental.optimizeCss feature\n distDir: path.join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir,\n routeModule.distDir\n ),\n },\n })\n .then((renderResult): ResponseCacheEntry => {\n const { metadata } = renderResult\n\n let cacheControl: CacheControl | undefined =\n metadata.cacheControl\n\n // Apply the `expireTime` fallback as soon as we have the\n // render's `cacheControl`, so every downstream consumer (the\n // cache stored via `incrementalCache.set`, the response\n // Cache-Control header, the outgoing entry returned from this\n // responseGenerator) sees a finalized `cacheControl` with a\n // populated `expire`. This mirrors the build-time fallback in\n // `build/index.ts` so we don't apply an expire to routes that\n // opt out of revalidation entirely (`revalidate: false`) or\n // that are dynamic (`revalidate: 0`).\n if (\n cacheControl &&\n cacheControl.revalidate !== false &&\n cacheControl.revalidate > 0 &&\n cacheControl.expire === undefined\n ) {\n cacheControl.expire = nextConfig.expireTime\n }\n\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData,\n } satisfies CachedRedirectValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode,\n },\n cacheControl,\n }\n })\n .finally(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists\n // (e.g. a platform-created HTTP span in adapter\n // deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })\n } catch (err: unknown) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false\n }\n\n if (isIsrFallback) {\n const fallbackResponse = await routeModule\n .getResponseCache(req)\n .get(\n routeModule.isDev\n ? null\n : locale\n ? `/${locale}${srcPage}`\n : srcPage,\n async ({\n previousCacheEntry: previousFallbackCacheEntry = null,\n }) => {\n if (!routeModule.isDev) {\n return toResponseCacheEntry(previousFallbackCacheEntry)\n }\n return doRender()\n },\n {\n routeKind: RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil: ctx.waitUntil,\n }\n )\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n fallbackResponse.isMiss = true\n return fallbackResponse\n }\n }\n\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n if (\n isIsrFallback &&\n previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n ) {\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: new RenderResult(previousCacheEntry.value.html, {\n contentType: HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n },\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n } satisfies CachedPageValue,\n cacheControl: { revalidate: 0, expire: undefined },\n } satisfies ResponseCacheEntry\n }\n return doRender()\n }\n\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest,\n isMinimalMode,\n })\n\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !result?.isMiss) {\n isIsrFallback = false\n }\n\n // response is finished is no cache entry\n if (!result) {\n return\n }\n\n if (hasStaticProps && !isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : result.isMiss\n ? 'MISS'\n : result.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n let cacheControl: CacheControl | undefined\n\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n } else if (is404Page) {\n const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n cacheControl = {\n revalidate:\n typeof notFoundRevalidate === 'undefined'\n ? 0\n : notFoundRevalidate,\n expire: undefined,\n }\n } else if (is500Page) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n if (result.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n )\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: result.cacheControl.expire,\n }\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: CACHE_ONE_YEAR_SECONDS,\n expire: undefined,\n }\n }\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n }\n\n // notFound: true case\n if (!result.value) {\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n addRequestMeta(\n req,\n 'notFoundRevalidate',\n result.cacheControl?.revalidate\n )\n\n res.statusCode = 404\n\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.end('{\"notFound\":true}')\n return\n }\n return await render404()\n }\n\n if (result.value.kind === CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n res.end(JSON.stringify(result.value.props))\n return\n } else {\n const handleRedirect = (pageData: any) => {\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n }\n const statusCode = getRedirectStatus(redirect)\n const { basePath } = nextConfig\n\n if (\n basePath &&\n redirect.basePath !== false &&\n redirect.destination.startsWith('/')\n ) {\n redirect.destination = `${basePath}${redirect.destination}`\n }\n\n if (redirect.destination.startsWith('/')) {\n redirect.destination = normalizeRepeatedSlashes(\n redirect.destination\n )\n }\n\n res.statusCode = statusCode\n res.setHeader('Location', redirect.destination)\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`)\n }\n res.end(redirect.destination)\n }\n await handleRedirect(result.value.props)\n return null\n }\n }\n\n if (result.value.kind !== CachedRouteKind.PAGES) {\n throw new Error(\n `Invariant: received non-pages cache entry in pages handler`\n )\n }\n\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-cache, must-revalidate')\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if (\n getRequestMeta(req, 'customErrorRender') ||\n (isErrorPage && isMinimalMode && res.statusCode === 500)\n ) {\n return null\n }\n\n // Add deployment ID header for data requests\n if (isNextDataRequest && !isErrorPage && !is500Page) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n }\n\n await sendRenderResult({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result:\n isNextDataRequest && !isErrorPage && !is500Page\n ? new RenderResult(JSON.stringify(result.value.pageData), {\n contentType: JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata,\n })\n : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n })\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n }\n }\n}\n"],"names":["getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","requestMeta","setRequestMeta","isDev","addRequestMeta","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","getRequestMeta","render404","routerServerContext","parsedUrl","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","deploymentId","clientAssetToken","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","removeTrailingSlash","addPathPrefix","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","NoFallbackError","isBot","headers","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","method","resolvedUrl","formatUrl","pathname","trailingSlash","endsWith","parentSpan","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","renderOpts","pageConfig","Component","interopDefault","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","normalizeDataPath","ErrorDebug","err","distDir","path","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","revalidate","expire","expireTime","isNotFound","value","isRedirect","kind","CachedRouteKind","REDIRECT","props","pageData","flightData","PAGES","html","status","finally","setAttributes","rootSpanAttributes","getRootSpanAttributes","get","BaseServerSpan","handleRequest","console","warn","route","name","updateName","setAttribute","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","previousFallbackCacheEntry","toResponseCacheEntry","routeKind","RouteKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","RenderResult","contentType","HTML_CONTENT_TYPE_HEADER","result","getHeader","notFoundRevalidate","Error","CACHE_ONE_YEAR_SECONDS","getCacheControlHeader","NEXT_NAV_DEPLOYMENT_ID_HEADER","JSON_CONTENT_TYPE_HEADER","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","getRedirectStatus","startsWith","normalizeRepeatedSlashes","RedirectStatusCode","PermanentRedirect","sendRenderResult","generateEtags","poweredByHeader","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":";;;;+BAmDaA;;;eAAAA;;;2BAjDa;2BACK;wBACgB;2BACrB;6BAMnB;gCACwB;uBACK;mCACF;+BAO3B;8BAKA;wBACkC;gCACP;4BAM3B;6DACU;6BACgB;qEACR;wBACY;yCACL;oCACG;uBACb;+BACQ;qCACM;;;;;;AAQ7B,MAAMA,aAAa,CAAC,EACzBC,SAASC,eAAe,EACxBC,MAAM,EACNC,QAAQ,EACRC,WAAW,EACXC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,kBAAkB,EAUnB;IACC,OAAO,eAAeC,QACpBC,GAAoB,EACpBC,GAAmB,EACnBC,GAGC;YA4ECC,0CAAAA;QA1EF,IAAID,IAAIE,WAAW,EAAE;YACnBC,IAAAA,2BAAc,EAACL,KAAKE,IAAIE,WAAW;QACrC;QACA,IAAIV,YAAYY,KAAK,EAAE;YACrBC,IAAAA,2BAAc,EACZP,KACA,gCACAQ,QAAQC,MAAM,CAACC,MAAM;QAEzB;QACA,IAAIpB,UAAUC;QACd,wDAAwD;QACxD,mDAAmD;QACnD,6DAA6D;QAC7D,IAAIiB,QAAQG,GAAG,CAACC,SAAS,EAAE;YACzBtB,UAAUA,QAAQuB,OAAO,CAAC,YAAY,OAAO;QAC/C,OAAO,IAAIvB,YAAY,UAAU;YAC/B,0CAA0C;YAC1CA,UAAU;QACZ;QACA,MAAMwB,qBAAqBN,QAAQG,GAAG,CACnCI,4BAA4B;QAE/B,MAAMC,gBAAgB,MAAMtB,YAAYuB,OAAO,CAACjB,KAAKC,KAAK;YACxDX;YACAwB;QACF;QAEA,IAAI,CAACE,eAAe;YAClBf,IAAIiB,UAAU,GAAG;YACjBjB,IAAIkB,GAAG,CAAC;YACRjB,IAAIkB,SAAS,oBAAblB,IAAIkB,SAAS,MAAblB,KAAgBmB,QAAQC,OAAO;YAC/B;QACF;QAEA,MAAMC,gBAAgBC,QAAQC,IAAAA,2BAAc,EAACzB,KAAK;QAElD,MAAM0B,YAAY;YAChB,4DAA4D;YAC5D,IAAIC,uCAAAA,oBAAqBD,SAAS,EAAE;gBAClC,MAAMC,oBAAoBD,SAAS,CAAC1B,KAAKC,KAAK2B,WAAW;YAC3D,OAAO;gBACL3B,IAAIkB,GAAG,CAAC;YACV;QACF;QAEA,MAAM,EACJU,OAAO,EACPC,KAAK,EACLC,MAAM,EACNH,SAAS,EACTI,aAAa,EACbC,gBAAgB,EAChBC,aAAa,EACbC,qBAAqB,EACrBC,gBAAgB,EAChBjC,mBAAmB,EACnBkC,qBAAqB,EACrBC,iBAAiB,EACjBC,WAAW,EACXC,oBAAoB,EACpBC,uBAAuB,EACvBC,MAAM,EACNC,OAAO,EACPC,aAAa,EACbjB,mBAAmB,EACnBkB,UAAU,EACVC,gBAAgB,EAChBC,uBAAuB,EACvBC,YAAY,EACZC,gBAAgB,EACjB,GAAGjC;QAEJ,MAAMkC,wBACJ/C,wCAAAA,8BAAAA,oBAAqBX,MAAM,sBAA3BW,2CAAAA,4BAA6BgD,YAAY,qBAAzChD,yCAA2C+C,qBAAqB;QAElE,MAAME,iBAAiB5B,QAAQ1B;QAC/B,MAAMuD,iBAAiB7B,QAAQ3B;QAC/B,MAAMyD,iBAAiB9B,QAAQ5B;QAC/B,MAAM2D,qBAAqB/B,QACzB,AAAC/B,CAAAA,SAAS+D,OAAO,IAAI/D,QAAO,EAAGgE,eAAe;QAEhD,IAAIC,WAA0B;QAC9B,IAAIC,gBAAgB;QACpB,IAAIC,oBACF5C,cAAc4C,iBAAiB,IAAKP,CAAAA,kBAAkBD,cAAa;QAErE,MAAMS,YAAYvE,YAAY;QAC9B,MAAMwE,YAAYxE,YAAY;QAC9B,MAAMyE,cAAczE,YAAY;QAEhC,IAAI,CAACI,YAAYY,KAAK,IAAI,CAACiC,eAAec,gBAAgB;YACxDK,WAAW,GAAGhB,SAAS,CAAC,CAAC,EAAEA,QAAQ,GAAG,KACpC,AAACpD,CAAAA,YAAY,OAAOwD,qBAAqB,GAAE,KAAMJ,SAC7C,KACAI,kBACJ;YAEF,IAAIe,aAAaC,aAAaC,aAAa;gBACzCL,WAAW,GAAGhB,SAAS,CAAC,CAAC,EAAEA,QAAQ,GAAG,KAAKpD,SAAS;YACtD;YAEA,+CAA+C;YAC/CoE,WAAWA,aAAa,WAAW,MAAMA;QAC3C;QAEA,IAAIJ,kBAAkB,CAACf,aAAa;YAClC,MAAMyB,kBAAkBC,IAAAA,wCAAmB,EACzCvB,SACIwB,IAAAA,4BAAa,EAACpB,kBAAkB,CAAC,CAAC,EAAEJ,QAAQ,IAC5CI;YAEN,MAAMqB,gBACJ3C,QAAQc,kBAAkB8B,MAAM,CAACJ,gBAAgB,KACjD1B,kBAAkB+B,cAAc,CAACC,QAAQ,CAACN;YAE5C,MAAMO,gBAAgBjC,kBAAkBkC,aAAa,CAAClF,QAAQ;YAE9D,IAAIiF,eAAe;gBACjB,IAAIA,cAAcE,QAAQ,KAAK,SAAS,CAACN,eAAe;oBACtD,IAAItB,WAAW6B,WAAW,EAAE;wBAC1B,OAAO,MAAMhD;oBACf;oBACA,MAAM,IAAIiD,wCAAe;gBAC3B;gBAEA,IACE,OAAOJ,cAAcE,QAAQ,KAAK,YAClC,CAACN,iBACD,CAACP,mBACD;oBACAD,gBAAgB;gBAClB;YACF;QACF;QAEA,yEAAyE;QACzE,wEAAwE;QACxE,0BAA0B;QAC1B,IACE,AAACA,iBAAiBiB,IAAAA,YAAK,EAAC5E,IAAI6E,OAAO,CAAC,aAAa,IAAI,OACrDtD,eACA;YACAoC,gBAAgB;QAClB;QAEA,MAAMmB,SAASC,IAAAA,iBAAS;QACxB,MAAMC,aAAaF,OAAOG,kBAAkB;QAC5C,MAAMC,wBAAwB1D,QAC5BG,uCAAAA,oBAAqBuD,qBAAqB;QAG5C,IAAI;gBAK2EtD;YAJ7E,MAAMuD,SAASnF,IAAImF,MAAM,IAAI;YAE7B,MAAMC,cAAcC,IAAAA,oBAAS,EAAC;gBAC5BC,UAAUzC,WAAW0C,aAAa,GAC9B,GAAGxC,0BAA0B,CAACA,wBAAwByC,QAAQ,CAAC,UAAQ5D,sBAAAA,UAAU0D,QAAQ,qBAAlB1D,oBAAoB4D,QAAQ,CAAC,QAAO,MAAM,IAAI,GACrHvB,IAAAA,wCAAmB,EAAClB,2BAA2B;gBACnD,uDAAuD;gBACvDjB,OAAOuB,iBAAiB,CAAC,IAAIrB;YAC/B;YAEA,IAAIyD;YACJ,MAAMC,iBAAiB,OAAOC;gBAC5B,MAAMC,oBAAuC,OAAO,EAClDC,kBAAkB,EACnB;wBAuSGA;oBAtSF,MAAMC,WAAW;wBACf,IAAI;gCAsDmBjD;4BArDrB,OAAO,MAAMnD,YACVqG,MAAM,CAAC/F,KAAKC,KAAK;gCAChB6B,OACEuB,kBAAkB,CAACH,wBACd;oCACC,GAAGnB,MAAM;gCACX,IACA;oCACE,GAAGD,KAAK;oCACR,GAAGC,MAAM;gCACX;gCACNA;gCACAiE,MAAM1G;gCACN2G,eAAe;oCACb1D;oCACA2D,YAAYvC;oCACZwC,+BAA+B1E,IAAAA,2BAAc,EAC3CzB,KACA;gCAEJ;gCACAoG,eAAe;oCACbvE;oCACAwE,cACE7E,QAAQG,uCAAAA,oBAAqB2E,cAAc,KAAKC;oCAClDvD;oCACAC;gCACF;gCACAuD,YAAY;oCACVzE;oCACArC;oCACAsG,MAAM1G;oCACNmH,YAAYjH,UAAU,CAAC;oCACvBkH,WAAWC,IAAAA,8BAAc,EAAClH;oCAC1BmH,cAAcnH;oCACdI;oCACAD;oCACAE;oCACA+G,yBAAyB,CAACxD;oCAC1BnB,eAAevC,kBACXwC,wBACAD;oCACJE;oCACAC;oCAEAyE,aAAajE,WAAWiE,WAAW;oCACnCC,cAAczE,kBAAkB0E,OAAO;oCACvCC,QAAQpE,WAAWoE,MAAM;oCACzBC,kBAAkBrE,WAAWsE,MAAM;oCACnCC,aAAa5F,QAAQqB,WAAWM,YAAY,CAACiE,WAAW;oCACxDC,mBAAmB7F,QACjBqB,WAAWM,YAAY,CAACkE,iBAAiB;oCAE3CC,aAAa,GAAEzE,mBAAAA,WAAW0E,IAAI,qBAAf1E,iBAAiB2E,OAAO;oCACvCC,aAAa5E,WAAW4E,WAAW;oCAEnC3G;oCACA4G,UAAU7E,WAAW6E,QAAQ;oCAC7BC,yBACE9E,WAAWM,YAAY,CAACwE,uBAAuB;oCACjDC,oBACE/E,WAAWM,YAAY,CAACyE,kBAAkB;oCAE5C1E;oCAEAC,cAAc;wCACZ0E,qBACEhF,WAAWM,YAAY,CAAC0E,mBAAmB,IAC1C,EAAE;oCACP;oCAEAnF;oCACAC;oCACAC;oCACAkF,YAAY,EAAEnG,uCAAAA,oBAAqBmG,YAAY;oCAE/ClE,mBACEA,qBAAsBR,CAAAA,kBAAkBC,cAAa;oCAEvD+B;oCACA,uFAAuF;oCACvF,8DAA8D;oCAC9D,SAAS;oCACT2C,gBACE3E,kBAAkBG,qBACd8B,IAAAA,oBAAS,EAAC;wCACR,iEAAiE;wCACjE,UAAU;wCACVC,UAAU1B,oBACNoE,IAAAA,oCAAiB,EAAC/F,oBAClBA;wCACJH,OAAOE;oCACT,KACAoD;oCAEN5C;oCAEAyF,YAAYxG,IAAAA,2BAAc,EAACzB,KAAK;oCAChCkI,KAAKzG,IAAAA,2BAAc,EAACzB,KAAK;oCAEzB,8CAA8C;oCAC9CmI,SAASC,aAAI,CAACC,IAAI,CAChB,yBAAyB,GACzB7H,QAAQ8H,GAAG,IACX5I,YAAY6I,kBAAkB,EAC9B7I,YAAYyI,OAAO;gCAEvB;4BACF,GACCK,IAAI,CAAC,CAACC;gCACL,MAAM,EAAEC,QAAQ,EAAE,GAAGD;gCAErB,IAAIE,eACFD,SAASC,YAAY;gCAEvB,yDAAyD;gCACzD,6DAA6D;gCAC7D,wDAAwD;gCACxD,8DAA8D;gCAC9D,4DAA4D;gCAC5D,8DAA8D;gCAC9D,8DAA8D;gCAC9D,4DAA4D;gCAC5D,sCAAsC;gCACtC,IACEA,gBACAA,aAAaC,UAAU,KAAK,SAC5BD,aAAaC,UAAU,GAAG,KAC1BD,aAAaE,MAAM,KAAKtC,WACxB;oCACAoC,aAAaE,MAAM,GAAGhG,WAAWiG,UAAU;gCAC7C;gCAEA,IAAI,gBAAgBJ,YAAYA,SAASK,UAAU,EAAE;oCACnD,OAAO;wCACLC,OAAO;wCACPL;oCACF;gCACF;gCAEA,uBAAuB;gCACvB,IAAID,SAASO,UAAU,EAAE;oCACvB,OAAO;wCACLD,OAAO;4CACLE,MAAMC,8BAAe,CAACC,QAAQ;4CAC9BC,OAAOX,SAASY,QAAQ,IAAIZ,SAASa,UAAU;wCACjD;wCACAZ;oCACF;gCACF;gCAEA,OAAO;oCACLK,OAAO;wCACLE,MAAMC,8BAAe,CAACK,KAAK;wCAC3BC,MAAMhB;wCACNa,UAAUb,aAAaC,QAAQ,CAACY,QAAQ;wCACxCzE,SAAS4D,aAAaC,QAAQ,CAAC7D,OAAO;wCACtC6E,QAAQjB,aAAaC,QAAQ,CAACxH,UAAU;oCAC1C;oCACAyH;gCACF;4BACF,GACCgB,OAAO,CAAC;gCACP,IAAI,CAAChE,MAAM;gCAEXA,KAAKiE,aAAa,CAAC;oCACjB,oBAAoB3J,IAAIiB,UAAU;oCAClC,YAAY;gCACd;gCAEA,MAAM2I,qBAAqB/E,OAAOgF,qBAAqB;gCACvD,iEAAiE;gCACjE,IAAI,CAACD,oBAAoB;oCACvB;gCACF;gCAEA,IACEA,mBAAmBE,GAAG,CAAC,sBACvBC,yBAAc,CAACC,aAAa,EAC5B;oCACAC,QAAQC,IAAI,CACV,CAAC,2BAA2B,EAAEN,mBAAmBE,GAAG,CAClD,kBACA,qEAAqE,CAAC;oCAE1E;gCACF;gCAEA,MAAMK,QAAQP,mBAAmBE,GAAG,CAAC,iBAAiBzK;gCACtD,MAAM+K,OAAO,GAAGlF,OAAO,CAAC,EAAEiF,OAAO;gCAEjCzE,KAAKiE,aAAa,CAAC;oCACjB,cAAcQ;oCACd,cAAcA;oCACd,kBAAkBC;gCACpB;gCACA1E,KAAK2E,UAAU,CAACD;gCAEhB,wDAAwD;gCACxD,gDAAgD;gCAChD,gBAAgB;gCAChB,IAAI5E,cAAcA,eAAeE,MAAM;oCACrCF,WAAW8E,YAAY,CAAC,cAAcH;oCACtC3E,WAAW6E,UAAU,CAACD;gCACxB;4BACF;wBACJ,EAAE,OAAOnC,KAAc;4BACrB,uDAAuD;4BACvD,gDAAgD;4BAChD,IAAIrC,sCAAAA,mBAAoB2E,OAAO,EAAE;gCAC/B,MAAMC,aAAa;gCACnB,MAAM/K,YAAYgL,cAAc,CAC9B1K,KACAkI,KACA;oCACEyC,YAAY;oCACZC,WAAWtL;oCACXuL,WAAW;oCACXC,kBAAkBC,IAAAA,0BAAmB,EAAC;wCACpCC,oBAAoB3H;wCACpBb;oCACF;gCACF,GACAiI,YACA9I;4BAEJ;4BACA,MAAMuG;wBACR;oBACF;oBAEA,oDAAoD;oBACpD,qBAAqB;oBACrB,IAAIrC,oBAAoB;wBACtBlC,gBAAgB;oBAClB;oBAEA,IAAIA,eAAe;wBACjB,MAAMsH,mBAAmB,MAAMvL,YAC5BwL,gBAAgB,CAAClL,KACjB+J,GAAG,CACFrK,YAAYY,KAAK,GACb,OACAoC,SACE,CAAC,CAAC,EAAEA,SAASpD,SAAS,GACtBA,SACN,OAAO,EACLuG,oBAAoBsF,6BAA6B,IAAI,EACtD;4BACC,IAAI,CAACzL,YAAYY,KAAK,EAAE;gCACtB,OAAO8K,IAAAA,4BAAoB,EAACD;4BAC9B;4BACA,OAAOrF;wBACT,GACA;4BACEuF,WAAWC,oBAAS,CAAC9B,KAAK;4BAC1BtD,YAAY;4BACZqF,mBAAmB;4BACnB/I,sBAAsB;4BACtBgJ,kBAAkB,MAAM9L,YAAY+L,mBAAmB,CACrDzL,KACA6C,YACAP,mBACAf;4BAEFH,WAAWlB,IAAIkB,SAAS;wBAC1B;wBAEJ,IAAI6J,kBAAkB;4BACpB,sEAAsE;4BACtE,iCAAiC;4BACjC,OAAOA,iBAAiBtC,YAAY;4BACpCsC,iBAAiBS,MAAM,GAAG;4BAC1B,OAAOT;wBACT;oBACF;oBAEA,IACE,CAAC1J,iBACDiB,wBACAC,2BACA,CAACoD,oBACD;wBACA5F,IAAIiB,UAAU,GAAG;wBACjB,+CAA+C;wBAC/CjB,IAAI0L,SAAS,CAAC,kBAAkB;wBAChC1L,IAAIkB,GAAG,CAAC;wBACR,OAAO;oBACT;oBAEA,IACEwC,iBACAkC,CAAAA,uCAAAA,4BAAAA,mBAAoBmD,KAAK,qBAAzBnD,0BAA2BqD,IAAI,MAAKC,8BAAe,CAACK,KAAK,EACzD;wBACA,OAAO;4BACLR,OAAO;gCACLE,MAAMC,8BAAe,CAACK,KAAK;gCAC3BC,MAAM,IAAImC,qBAAY,CAAC/F,mBAAmBmD,KAAK,CAACS,IAAI,EAAE;oCACpDoC,aAAaC,oCAAwB;oCACrCpD,UAAU;wCACRxH,YAAY2E,mBAAmBmD,KAAK,CAACU,MAAM;wCAC3C7E,SAASgB,mBAAmBmD,KAAK,CAACnE,OAAO;oCAC3C;gCACF;gCACAyE,UAAU,CAAC;gCACXI,QAAQ7D,mBAAmBmD,KAAK,CAACU,MAAM;gCACvC7E,SAASgB,mBAAmBmD,KAAK,CAACnE,OAAO;4BAC3C;4BACA8D,cAAc;gCAAEC,YAAY;gCAAGC,QAAQtC;4BAAU;wBACnD;oBACF;oBACA,OAAOT;gBACT;gBAEA,MAAMiG,SAAS,MAAMrM,YAAYgG,cAAc,CAAC;oBAC9ChC;oBACA1D;oBACA6C;oBACAwI,WAAWC,oBAAS,CAAC9B,KAAK;oBAC1BhH;oBACAC;oBACArB,WAAWlB,IAAIkB,SAAS;oBACxBwE,mBAAmBA;oBACnBtD;oBACAf;gBACF;gBAEA,oDAAoD;gBACpD,uDAAuD;gBACvD,qBAAqB;gBACrB,IAAIoC,iBAAiB,EAACoI,0BAAAA,OAAQL,MAAM,GAAE;oBACpC/H,gBAAgB;gBAClB;gBAEA,yCAAyC;gBACzC,IAAI,CAACoI,QAAQ;oBACX;gBACF;gBAEA,IAAI1I,kBAAkB,CAAC9B,eAAe;oBACpCtB,IAAI0L,SAAS,CACX,kBACAnJ,uBACI,gBACAuJ,OAAOL,MAAM,GACX,SACAK,OAAOvB,OAAO,GACZ,UACA;gBAEZ;gBAEA,IAAI7B;gBAEJ,IAAI,CAACtF,kBAAkBM,eAAe;oBACpC,IAAI,CAAC1D,IAAI+L,SAAS,CAAC,kBAAkB;wBACnCrD,eAAe;4BAAEC,YAAY;4BAAGC,QAAQtC;wBAAU;oBACpD;gBACF,OAAO,IAAI1C,WAAW;oBACpB,MAAMoI,qBAAqBxK,IAAAA,2BAAc,EAACzB,KAAK;oBAE/C2I,eAAe;wBACbC,YACE,OAAOqD,uBAAuB,cAC1B,IACAA;wBACNpD,QAAQtC;oBACV;gBACF,OAAO,IAAIzC,WAAW;oBACpB6E,eAAe;wBAAEC,YAAY;wBAAGC,QAAQtC;oBAAU;gBACpD,OAAO,IAAIwF,OAAOpD,YAAY,EAAE;oBAC9B,wEAAwE;oBACxE,oBAAoB;oBACpB,IAAI,OAAOoD,OAAOpD,YAAY,CAACC,UAAU,KAAK,UAAU;wBACtD,IAAImD,OAAOpD,YAAY,CAACC,UAAU,GAAG,GAAG;4BACtC,MAAM,qBAEL,CAFK,IAAIsD,MACR,CAAC,2CAA2C,EAAEH,OAAOpD,YAAY,CAACC,UAAU,CAAC,IAAI,CAAC,GAD9E,qBAAA;uCAAA;4CAAA;8CAAA;4BAEN;wBACF;wBACAD,eAAe;4BACbC,YAAYmD,OAAOpD,YAAY,CAACC,UAAU;4BAC1CC,QAAQkD,OAAOpD,YAAY,CAACE,MAAM;wBACpC;oBACF,OAAO;wBACL,oBAAoB;wBACpBF,eAAe;4BACbC,YAAYuD,kCAAsB;4BAClCtD,QAAQtC;wBACV;oBACF;gBACF;gBAEA,2DAA2D;gBAC3D,6DAA6D;gBAC7D,IAAIoC,gBAAgB,CAAC1I,IAAI+L,SAAS,CAAC,kBAAkB;oBACnD/L,IAAI0L,SAAS,CAAC,iBAAiBS,IAAAA,mCAAqB,EAACzD;gBACvD;gBAEA,sBAAsB;gBACtB,IAAI,CAACoD,OAAO/C,KAAK,EAAE;wBAQf+C;oBAPF,oDAAoD;oBACpD,qDAAqD;oBACrD,4DAA4D;oBAC5D,2BAA2B;oBAC3BxL,IAAAA,2BAAc,EACZP,KACA,uBACA+L,uBAAAA,OAAOpD,YAAY,qBAAnBoD,qBAAqBnD,UAAU;oBAGjC3I,IAAIiB,UAAU,GAAG;oBAEjB,IAAI0C,mBAAmB;wBACrB,IAAIZ,cAAc;4BAChB/C,IAAI0L,SAAS,CAACU,yCAA6B,EAAErJ;wBAC/C;wBACA/C,IAAIkB,GAAG,CAAC;wBACR;oBACF;oBACA,OAAO,MAAMO;gBACf;gBAEA,IAAIqK,OAAO/C,KAAK,CAACE,IAAI,KAAKC,8BAAe,CAACC,QAAQ,EAAE;oBAClD,IAAIxF,mBAAmB;wBACrB,IAAIZ,cAAc;4BAChB/C,IAAI0L,SAAS,CAACU,yCAA6B,EAAErJ;wBAC/C;wBACA/C,IAAI0L,SAAS,CAAC,gBAAgBW,oCAAwB;wBACtDrM,IAAIkB,GAAG,CAACoL,KAAKC,SAAS,CAACT,OAAO/C,KAAK,CAACK,KAAK;wBACzC;oBACF,OAAO;wBACL,MAAMoD,iBAAiB,CAACnD;4BACtB,MAAMoD,WAAW;gCACfC,aAAarD,SAASsD,SAAS,CAACC,YAAY;gCAC5C3L,YAAYoI,SAASsD,SAAS,CAACE,mBAAmB;gCAClDpF,UAAU4B,SAASsD,SAAS,CAACG,sBAAsB;4BACrD;4BACA,MAAM7L,aAAa8L,IAAAA,iCAAiB,EAACN;4BACrC,MAAM,EAAEhF,QAAQ,EAAE,GAAG7E;4BAErB,IACE6E,YACAgF,SAAShF,QAAQ,KAAK,SACtBgF,SAASC,WAAW,CAACM,UAAU,CAAC,MAChC;gCACAP,SAASC,WAAW,GAAG,GAAGjF,WAAWgF,SAASC,WAAW,EAAE;4BAC7D;4BAEA,IAAID,SAASC,WAAW,CAACM,UAAU,CAAC,MAAM;gCACxCP,SAASC,WAAW,GAAGO,IAAAA,gCAAwB,EAC7CR,SAASC,WAAW;4BAExB;4BAEA1M,IAAIiB,UAAU,GAAGA;4BACjBjB,IAAI0L,SAAS,CAAC,YAAYe,SAASC,WAAW;4BAC9C,IAAIzL,eAAeiM,sCAAkB,CAACC,iBAAiB,EAAE;gCACvDnN,IAAI0L,SAAS,CAAC,WAAW,CAAC,MAAM,EAAEe,SAASC,WAAW,EAAE;4BAC1D;4BACA1M,IAAIkB,GAAG,CAACuL,SAASC,WAAW;wBAC9B;wBACA,MAAMF,eAAeV,OAAO/C,KAAK,CAACK,KAAK;wBACvC,OAAO;oBACT;gBACF;gBAEA,IAAI0C,OAAO/C,KAAK,CAACE,IAAI,KAAKC,8BAAe,CAACK,KAAK,EAAE;oBAC/C,MAAM,qBAEL,CAFK,IAAI0C,MACR,CAAC,0DAA0D,CAAC,GADxD,qBAAA;+BAAA;oCAAA;sCAAA;oBAEN;gBACF;gBAEA,oDAAoD;gBACpD,IAAIxM,YAAYY,KAAK,EAAE;oBACrBL,IAAI0L,SAAS,CAAC,iBAAiB;gBACjC;gBAEA,oCAAoC;gBACpC,IAAIpJ,aAAa;oBACftC,IAAI0L,SAAS,CACX,iBACA;gBAEJ;gBAEA,0DAA0D;gBAC1D,2BAA2B;gBAC3B,IACElK,IAAAA,2BAAc,EAACzB,KAAK,wBACnB+D,eAAexC,iBAAiBtB,IAAIiB,UAAU,KAAK,KACpD;oBACA,OAAO;gBACT;gBAEA,6CAA6C;gBAC7C,IAAI0C,qBAAqB,CAACG,eAAe,CAACD,WAAW;oBACnD,IAAId,cAAc;wBAChB/C,IAAI0L,SAAS,CAACU,yCAA6B,EAAErJ;oBAC/C;gBACF;gBAEA,MAAMqK,IAAAA,6BAAgB,EAAC;oBACrBrN;oBACAC;oBACA,6DAA6D;oBAC7D,UAAU;oBACV8L,QACEnI,qBAAqB,CAACG,eAAe,CAACD,YAClC,IAAI8H,qBAAY,CAACW,KAAKC,SAAS,CAACT,OAAO/C,KAAK,CAACM,QAAQ,GAAG;wBACtDuC,aAAaS,oCAAwB;wBACrC5D,UAAUqD,OAAO/C,KAAK,CAACS,IAAI,CAACf,QAAQ;oBACtC,KACAqD,OAAO/C,KAAK,CAACS,IAAI;oBACvB6D,eAAezK,WAAWyK,aAAa;oBACvCC,iBAAiB1K,WAAW0K,eAAe;oBAC3C5E,cAAcjJ,YAAYY,KAAK,GAAGiG,YAAYoC;gBAChD;YACF;YAEA,oDAAoD;YACpD,yDAAyD;YACzD,IAAIzD,yBAAyBF,YAAY;gBACvC,MAAMU,eAAeV;YACvB,OAAO;gBACLS,aAAaX,OAAOG,kBAAkB;gBACtC,MAAMH,OAAO0I,qBAAqB,CAChCxN,IAAI6E,OAAO,EACX,IACEC,OAAO2I,KAAK,CACVzD,yBAAc,CAACC,aAAa,EAC5B;wBACEyD,UAAU,GAAGvI,OAAO,CAAC,EAAE7F,SAAS;wBAChC4J,MAAMyE,gBAAQ,CAACC,MAAM;wBACrBC,YAAY;4BACV,eAAe1I;4BACf,eAAenF,IAAI8N,GAAG;wBACxB;oBACF,GACApI,iBAEJa,WACA,CAACrB;YAEL;QACF,EAAE,OAAOgD,KAAK;YACZ,IAAI,CAAEA,CAAAA,eAAevD,wCAAe,AAAD,GAAI;gBACrC,MAAM8F,aAAa;gBACnB,MAAM/K,YAAYgL,cAAc,CAC9B1K,KACAkI,KACA;oBACEyC,YAAY;oBACZC,WAAWtL;oBACXuL,WAAW;oBACXC,kBAAkBC,IAAAA,0BAAmB,EAAC;wBACpCC,oBAAoB3H;wBACpBb;oBACF;gBACF,GACAiI,YACA9I;YAEJ;YAEA,mDAAmD;YACnD,MAAMuG;QACR;IACF;AACF","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/server/route-modules/pages/pages-handler.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport type { ParsedUrlQuery } from 'node:querystring'\nimport { RouteKind } from '../../route-kind'\nimport { BaseServerSpan } from '../../lib/trace/constants'\nimport { getTracer, SpanKind, type Span } from '../../lib/trace/tracer'\nimport { formatUrl } from '../../../shared/lib/router/utils/format-url'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../request-meta'\nimport { interopDefault } from '../../app-render/interop-default'\nimport { getRevalidateReason } from '../../instrumentation/utils'\nimport { normalizeDataPath } from '../../../shared/lib/page-path/normalize-data-path'\nimport {\n CachedRouteKind,\n type CachedPageValue,\n type CachedRedirectValue,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../response-cache'\n\nimport {\n getCacheControlHeader,\n type CacheControl,\n} from '../../lib/cache-control'\nimport { normalizeRepeatedSlashes } from '../../../shared/lib/utils'\nimport { getRedirectStatus } from '../../../lib/redirect-status'\nimport {\n CACHE_ONE_YEAR_SECONDS,\n HTML_CONTENT_TYPE_HEADER,\n JSON_CONTENT_TYPE_HEADER,\n NEXT_NAV_DEPLOYMENT_ID_HEADER,\n} from '../../../lib/constants'\nimport path from 'path'\nimport { sendRenderResult } from '../../send-payload'\nimport RenderResult from '../../render-result'\nimport { toResponseCacheEntry } from '../../response-cache/utils'\nimport { NoFallbackError } from '../../../shared/lib/no-fallback-error.external'\nimport { RedirectStatusCode } from '../../../client/components/redirect-status-code'\nimport { isBot } from '../../../shared/lib/router/utils/is-bot'\nimport { addPathPrefix } from '../../../shared/lib/router/utils/add-path-prefix'\nimport { removeTrailingSlash } from '../../../shared/lib/router/utils/remove-trailing-slash'\nimport type { PagesRouteModule } from './module.compiled'\nimport type {\n GetServerSideProps,\n GetStaticPaths,\n GetStaticProps,\n} from '../../../types'\n\nexport const getHandler = ({\n srcPage: originalSrcPage,\n config,\n userland,\n routeModule,\n isFallbackError,\n getStaticPaths,\n getStaticProps,\n getServerSideProps,\n}: {\n srcPage: string\n config: Record<string, any> | undefined\n userland: any\n isFallbackError?: boolean\n routeModule: PagesRouteModule\n getStaticProps?: GetStaticProps\n getStaticPaths?: GetStaticPaths\n getServerSideProps?: GetServerSideProps\n}) => {\n return async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n ) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(\n req,\n 'devRequestTimingInternalsEnd',\n process.hrtime.bigint()\n )\n }\n let srcPage = originalSrcPage\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return\n }\n\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n }\n\n const {\n buildId,\n query,\n params,\n parsedUrl,\n originalQuery,\n originalPathname,\n buildManifest,\n fallbackBuildManifest,\n nextFontManifest,\n serverFilesManifest,\n reactLoadableManifest,\n prerenderManifest,\n isDraftMode,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n locale,\n locales,\n defaultLocale,\n routerServerContext,\n nextConfig,\n resolvedPathname,\n encodedResolvedPathname,\n deploymentId,\n clientAssetToken,\n } = prepareResult\n\n const isExperimentalCompile =\n serverFilesManifest?.config?.experimental?.isExperimentalCompile\n\n const hasServerProps = Boolean(getServerSideProps)\n const hasStaticProps = Boolean(getStaticProps)\n const hasStaticPaths = Boolean(getStaticPaths)\n const hasGetInitialProps = Boolean(\n (userland.default || userland).getInitialProps\n )\n let cacheKey: null | string = null\n let isIsrFallback = false\n let isNextDataRequest =\n prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps)\n\n const is404Page = srcPage === '/404'\n const is500Page = srcPage === '/500'\n const isErrorPage = srcPage === '/_error'\n\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${\n (srcPage === '/' || resolvedPathname === '/') && locale\n ? ''\n : resolvedPathname\n }`\n\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`\n }\n\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = removeTrailingSlash(\n locale\n ? addPathPrefix(resolvedPathname, `/${locale}`)\n : resolvedPathname\n )\n const isPrerendered =\n Boolean(prerenderManifest.routes[decodedPathname]) ||\n prerenderManifest.notFoundRoutes.includes(decodedPathname)\n\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n\n if (\n typeof prerenderInfo.fallback === 'string' &&\n !isPrerendered &&\n !isNextDataRequest\n ) {\n isIsrFallback = true\n }\n }\n }\n\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (\n (isIsrFallback && isBot(req.headers['user-agent'] || '')) ||\n isMinimalMode\n ) {\n isIsrFallback = false\n }\n\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n\n const method = req.method || 'GET'\n\n const resolvedUrl = formatUrl({\n pathname: nextConfig.trailingSlash\n ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && parsedUrl.pathname?.endsWith('/') ? '/' : ''}`\n : removeTrailingSlash(encodedResolvedPathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery,\n })\n\n let parentSpan: Span | undefined\n const handleResponse = async (span?: Span) => {\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n const doRender = async () => {\n try {\n return await routeModule\n .render(req, res, {\n query:\n hasStaticProps && !isExperimentalCompile\n ? ({\n ...params,\n } as ParsedUrlQuery)\n : {\n ...query,\n ...params,\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: getRequestMeta(\n req,\n 'developmentNotFoundSourcePage'\n ),\n },\n sharedContext: {\n buildId,\n customServer:\n Boolean(routerServerContext?.isCustomServer) || undefined,\n deploymentId,\n clientAssetToken,\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: interopDefault(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError\n ? fallbackBuildManifest\n : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images as any,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(\n nextConfig.experimental.nextScriptWorkers\n ),\n domainLocales: nextConfig.i18n?.domains,\n crossOrigin: nextConfig.crossOrigin,\n\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n disableOptimizedLoading:\n nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes:\n nextConfig.experimental.largePageDataBytes,\n\n isExperimentalCompile,\n\n experimental: {\n clientTraceMetadata:\n nextConfig.experimental.clientTraceMetadata ||\n ([] as any),\n },\n\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext?.setIsrStatus,\n\n isNextDataRequest:\n isNextDataRequest && (hasServerProps || hasStaticProps),\n\n resolvedUrl,\n // For getServerSideProps and getInitialProps we need to ensure we use the original URL\n // and not the resolved URL to prevent a hydration mismatch on\n // asPath\n resolvedAsPath:\n hasServerProps || hasGetInitialProps\n ? formatUrl({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest\n ? normalizeDataPath(originalPathname)\n : originalPathname,\n query: originalQuery,\n })\n : resolvedUrl,\n\n isOnDemandRevalidate,\n\n ErrorDebug: getRequestMeta(req, 'PagesErrorDebug'),\n err: getRequestMeta(req, 'invokeError'),\n\n // needed for experimental.optimizeCss feature\n distDir: path.join(\n /* turbopackIgnore: true */\n process.cwd(),\n routeModule.relativeProjectDir,\n routeModule.distDir\n ),\n },\n })\n .then((renderResult): ResponseCacheEntry => {\n const { metadata } = renderResult\n\n let cacheControl: CacheControl | undefined =\n metadata.cacheControl\n\n // Apply the `expireTime` fallback as soon as we have the\n // render's `cacheControl`, so every downstream consumer (the\n // cache stored via `incrementalCache.set`, the response\n // Cache-Control header, the outgoing entry returned from this\n // responseGenerator) sees a finalized `cacheControl` with a\n // populated `expire`. This mirrors the build-time fallback in\n // `build/index.ts` so we don't apply an expire to routes that\n // opt out of revalidation entirely (`revalidate: false`) or\n // that are dynamic (`revalidate: 0`).\n if (\n cacheControl &&\n cacheControl.revalidate !== false &&\n cacheControl.revalidate > 0 &&\n cacheControl.expire === undefined\n ) {\n cacheControl.expire = nextConfig.expireTime\n }\n\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData,\n } satisfies CachedRedirectValue,\n cacheControl,\n } satisfies ResponseCacheEntry\n }\n\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode,\n },\n cacheControl,\n }\n })\n } catch (err: unknown) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false\n }\n\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(\n routeModule.isDev\n ? null\n : locale\n ? `/${locale}${srcPage}`\n : srcPage,\n async ({\n previousCacheEntry: previousFallbackCacheEntry = null,\n }) => {\n if (!routeModule.isDev) {\n return toResponseCacheEntry(previousFallbackCacheEntry)\n }\n return doRender()\n },\n {\n routeKind: RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ),\n waitUntil: ctx.waitUntil,\n }\n )\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl\n fallbackResponse.isMiss = true\n return fallbackResponse\n }\n }\n\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n if (\n isIsrFallback &&\n previousCacheEntry?.value?.kind === CachedRouteKind.PAGES\n ) {\n return {\n value: {\n kind: CachedRouteKind.PAGES,\n html: new RenderResult(previousCacheEntry.value.html, {\n contentType: HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n },\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers,\n } satisfies CachedPageValue,\n cacheControl: { revalidate: 0, expire: undefined },\n } satisfies ResponseCacheEntry\n }\n return doRender()\n }\n\n try {\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest,\n isMinimalMode,\n })\n\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !result?.isMiss) {\n isIsrFallback = false\n }\n\n // response is finished is no cache entry\n if (!result) {\n return\n }\n\n if (hasStaticProps && !isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : result.isMiss\n ? 'MISS'\n : result.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n let cacheControl: CacheControl | undefined\n\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = { revalidate: 0, expire: undefined }\n }\n } else if (is404Page) {\n const notFoundRevalidate = getRequestMeta(req, 'notFoundRevalidate')\n\n cacheControl = {\n revalidate:\n typeof notFoundRevalidate === 'undefined'\n ? 0\n : notFoundRevalidate,\n expire: undefined,\n }\n } else if (is500Page) {\n cacheControl = { revalidate: 0, expire: undefined }\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n if (result.cacheControl.revalidate < 1) {\n throw new Error(\n `Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`\n )\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: result.cacheControl.expire,\n }\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: CACHE_ONE_YEAR_SECONDS,\n expire: undefined,\n }\n }\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl))\n }\n\n // notFound: true case\n if (!result.value) {\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n addRequestMeta(\n req,\n 'notFoundRevalidate',\n result.cacheControl?.revalidate\n )\n\n res.statusCode = 404\n\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.end('{\"notFound\":true}')\n return\n }\n return await render404()\n }\n\n if (result.value.kind === CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n res.setHeader('content-type', JSON_CONTENT_TYPE_HEADER)\n res.end(JSON.stringify(result.value.props))\n return\n } else {\n const handleRedirect = (pageData: any) => {\n const redirect = {\n destination: pageData.pageProps.__N_REDIRECT,\n statusCode: pageData.pageProps.__N_REDIRECT_STATUS,\n basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH,\n }\n const statusCode = getRedirectStatus(redirect)\n const { basePath } = nextConfig\n\n if (\n basePath &&\n redirect.basePath !== false &&\n redirect.destination.startsWith('/')\n ) {\n redirect.destination = `${basePath}${redirect.destination}`\n }\n\n if (redirect.destination.startsWith('/')) {\n redirect.destination = normalizeRepeatedSlashes(\n redirect.destination\n )\n }\n\n res.statusCode = statusCode\n res.setHeader('Location', redirect.destination)\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`)\n }\n res.end(redirect.destination)\n }\n await handleRedirect(result.value.props)\n return null\n }\n }\n\n if (result.value.kind !== CachedRouteKind.PAGES) {\n throw new Error(\n `Invariant: received non-pages cache entry in pages handler`\n )\n }\n\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-cache, must-revalidate')\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if (\n getRequestMeta(req, 'customErrorRender') ||\n (isErrorPage && isMinimalMode && res.statusCode === 500)\n ) {\n return null\n }\n\n // Add deployment ID header for data requests\n if (isNextDataRequest && !isErrorPage && !is500Page) {\n if (deploymentId) {\n res.setHeader(NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId)\n }\n }\n\n await sendRenderResult({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result:\n isNextDataRequest && !isErrorPage && !is500Page\n ? new RenderResult(JSON.stringify(result.value.pageData), {\n contentType: JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata,\n })\n : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl,\n })\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: hasStaticProps,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n throw err\n } finally {\n // An IIFE to make early returns easier.\n ;(() => {\n if (!span) return\n\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false,\n })\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || srcPage\n const name = `${method} ${route}`\n\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n span.updateName(name)\n\n // Propagate http.route to the parent span if one exists\n // (e.g. a platform-created HTTP span in adapter\n // deployments).\n if (parentSpan && parentSpan !== span) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan)\n } else {\n parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n handleResponse\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n }\n}\n"],"names":["getHandler","srcPage","originalSrcPage","config","userland","routeModule","isFallbackError","getStaticPaths","getStaticProps","getServerSideProps","handler","req","res","ctx","serverFilesManifest","parsedUrl","requestMeta","setRequestMeta","isDev","addRequestMeta","process","hrtime","bigint","env","TURBOPACK","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","isMinimalMode","Boolean","getRequestMeta","render404","routerServerContext","buildId","query","params","originalQuery","originalPathname","buildManifest","fallbackBuildManifest","nextFontManifest","reactLoadableManifest","prerenderManifest","isDraftMode","isOnDemandRevalidate","revalidateOnlyGenerated","locale","locales","defaultLocale","nextConfig","resolvedPathname","encodedResolvedPathname","deploymentId","clientAssetToken","isExperimentalCompile","experimental","hasServerProps","hasStaticProps","hasStaticPaths","hasGetInitialProps","default","getInitialProps","cacheKey","isIsrFallback","isNextDataRequest","is404Page","is500Page","isErrorPage","decodedPathname","removeTrailingSlash","addPathPrefix","isPrerendered","routes","notFoundRoutes","includes","prerenderInfo","dynamicRoutes","fallback","adapterPath","NoFallbackError","isBot","headers","tracer","getTracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","method","resolvedUrl","formatUrl","pathname","trailingSlash","endsWith","parentSpan","handleResponse","span","responseGenerator","previousCacheEntry","doRender","render","page","renderContext","isFallback","developmentNotFoundSourcePage","sharedContext","customServer","isCustomServer","undefined","renderOpts","pageConfig","Component","interopDefault","ComponentMod","supportsDynamicResponse","assetPrefix","previewProps","preview","images","nextConfigOutput","output","optimizeCss","nextScriptWorkers","domainLocales","i18n","domains","crossOrigin","basePath","disableOptimizedLoading","largePageDataBytes","clientTraceMetadata","setIsrStatus","resolvedAsPath","normalizeDataPath","ErrorDebug","err","distDir","path","join","cwd","relativeProjectDir","then","renderResult","metadata","cacheControl","revalidate","expire","expireTime","isNotFound","value","isRedirect","kind","CachedRouteKind","REDIRECT","props","pageData","flightData","PAGES","html","status","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","getRevalidateReason","isStaticGeneration","fallbackResponse","getResponseCache","get","previousFallbackCacheEntry","toResponseCacheEntry","routeKind","RouteKind","isRoutePPREnabled","incrementalCache","getIncrementalCache","isMiss","setHeader","RenderResult","contentType","HTML_CONTENT_TYPE_HEADER","result","getHeader","notFoundRevalidate","Error","CACHE_ONE_YEAR_SECONDS","getCacheControlHeader","NEXT_NAV_DEPLOYMENT_ID_HEADER","JSON_CONTENT_TYPE_HEADER","JSON","stringify","handleRedirect","redirect","destination","pageProps","__N_REDIRECT","__N_REDIRECT_STATUS","__N_REDIRECT_BASE_PATH","getRedirectStatus","startsWith","normalizeRepeatedSlashes","RedirectStatusCode","PermanentRedirect","sendRenderResult","generateEtags","poweredByHeader","setAttributes","rootSpanAttributes","getRootSpanAttributes","BaseServerSpan","handleRequest","console","warn","route","name","updateName","setAttribute","withPropagatedContext","trace","spanName","SpanKind","SERVER","attributes","url"],"mappings":"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","ignoreList":[0]} |
| import type { CacheHandler } from '../lib/cache-handlers/types'; | ||
| import { type CacheReadWriteHandler } from './tiered-cache-handler'; | ||
| /** | ||
@@ -24,7 +25,29 @@ * Initialize the cache handlers. | ||
| /** | ||
| * Get a set iterator over the cache handlers. | ||
| * Whether the in-memory cache is disabled (`cacheMaxMemorySize: 0`). Dev-only | ||
| * signal used to force a dynamic cache life so that the size-0 case still | ||
| * serves stale and regenerates in the background. Always `false` in production. | ||
| */ | ||
| export declare function isMemoryCacheDisabled(): boolean; | ||
| /** | ||
| * Whether `kind` is backed by a real user-configured handler rather than the | ||
| * built-in in-memory default. Such a handler may be slow or remote, so in | ||
| * development a built-in front handler is placed in front of it (see | ||
| * `getDevTieredCacheHandler`) to keep warm reads microtask-fast. The presence | ||
| * of a dev front handler is the signal, since front handlers are created | ||
| * exactly for user-registered kinds. Always `false` in production. | ||
| */ | ||
| export declare function isCustomCacheHandler(kind: string): boolean; | ||
| /** | ||
| * Get the dev-only tiered cache handler for a custom `kind`: a fast built-in | ||
| * in-memory front handler in front of the user-configured backing handler, so | ||
| * warm reads resolve in a microtask. Returns `undefined` if there is none (a | ||
| * built-in kind, or production). | ||
| */ | ||
| export declare function getDevTieredCacheHandler(kind: string): CacheReadWriteHandler | undefined; | ||
| /** | ||
| * Get an iterator over the cache handlers. | ||
| * @returns An iterator over the cache handlers, or `undefined` if they are not | ||
| * initialized. | ||
| */ | ||
| export declare function getCacheHandlers(): SetIterator<CacheHandler> | undefined; | ||
| export declare function getCacheHandlers(): IterableIterator<CacheHandler> | undefined; | ||
| /** | ||
@@ -36,3 +59,3 @@ * Get a map iterator over the cache handlers (keyed by kind). | ||
| */ | ||
| export declare function getCacheHandlerEntries(): MapIterator<[string, CacheHandler]> | undefined; | ||
| export declare function getCacheHandlerEntries(): IterableIterator<[string, CacheHandler]> | undefined; | ||
| /** | ||
@@ -39,0 +62,0 @@ * Set a cache handler by kind. |
@@ -9,4 +9,7 @@ "use strict"; | ||
| getCacheHandlers: null, | ||
| getDevTieredCacheHandler: null, | ||
| getPrivateCacheHandler: null, | ||
| initializeCacheHandlers: null, | ||
| isCustomCacheHandler: null, | ||
| isMemoryCacheDisabled: null, | ||
| setCacheHandler: null | ||
@@ -30,2 +33,5 @@ }); | ||
| }, | ||
| getDevTieredCacheHandler: function() { | ||
| return getDevTieredCacheHandler; | ||
| }, | ||
| getPrivateCacheHandler: function() { | ||
@@ -37,2 +43,8 @@ return getPrivateCacheHandler; | ||
| }, | ||
| isCustomCacheHandler: function() { | ||
| return isCustomCacheHandler; | ||
| }, | ||
| isMemoryCacheDisabled: function() { | ||
| return isMemoryCacheDisabled; | ||
| }, | ||
| setCacheHandler: function() { | ||
@@ -43,2 +55,3 @@ return setCacheHandler; | ||
| const _default = require("../lib/cache-handlers/default"); | ||
| const _tieredcachehandler = require("./tiered-cache-handler"); | ||
| const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE ? (message, ...args)=>{ | ||
@@ -51,3 +64,12 @@ console.log(`use-cache: ${message}`, ...args); | ||
| const privateHandlerSymbol = Symbol.for('@next/cache-handlers-private'); | ||
| const devFrontHandlersSymbol = Symbol.for('@next/cache-handlers-dev-fronts'); | ||
| const devTieredHandlersSymbol = Symbol.for('@next/cache-handlers-dev-tiered'); | ||
| const memoryCacheDisabledSymbol = Symbol.for('@next/cache-handlers-memory-disabled'); | ||
| /** | ||
| * The in-memory size used for the dev-only built-in handlers (the private | ||
| * handler, the size-0 replacement, and the per-kind front handlers for custom | ||
| * kinds). Mirrors the framework default so `cacheMaxMemorySize: 0` does not | ||
| * disable caching in development. | ||
| */ const DEV_MEMORY_CACHE_SIZE = 50 * 1024 * 1024; | ||
| /** | ||
| * The reference to the cache handlers. We store the cache handlers on the | ||
@@ -64,3 +86,10 @@ * global object so that we can access the same instance across different | ||
| debug == null ? void 0 : debug('initializing cache handlers'); | ||
| reference[handlersMapSymbol] = new Map(); | ||
| const handlersMap = new Map(); | ||
| reference[handlersMapSymbol] = handlersMap; | ||
| // In development, `cacheMaxMemorySize: 0` would make the built-in default | ||
| // handler a no-op, so every reload would miss. Use a real in-memory size | ||
| // instead so dev stays fast; the "use cache" wrapper forces a dynamic cache | ||
| // life for this case so it still behaves close to "no cache" (serve stale, | ||
| // regenerate in the background). Production keeps the no-op handler. | ||
| const builtInSize = process.env.__NEXT_DEV_SERVER && cacheMaxMemorySize === 0 ? DEV_MEMORY_CACHE_SIZE : cacheMaxMemorySize; | ||
| // Initialize the cache from the symbol contents first. | ||
@@ -74,30 +103,40 @@ if (reference[handlersSymbol]) { | ||
| debug == null ? void 0 : debug('setting "default" cache handler from default'); | ||
| fallback = (0, _default.createDefaultCacheHandler)(cacheMaxMemorySize); | ||
| fallback = (0, _default.createDefaultCacheHandler)(builtInSize); | ||
| } | ||
| reference[handlersMapSymbol].set('default', fallback); | ||
| handlersMap.set('default', fallback); | ||
| if (reference[handlersSymbol].RemoteCache) { | ||
| debug == null ? void 0 : debug('setting "remote" cache handler from symbol'); | ||
| reference[handlersMapSymbol].set('remote', reference[handlersSymbol].RemoteCache); | ||
| handlersMap.set('remote', reference[handlersSymbol].RemoteCache); | ||
| } else { | ||
| debug == null ? void 0 : debug('setting "remote" cache handler from default'); | ||
| reference[handlersMapSymbol].set('remote', fallback); | ||
| handlersMap.set('remote', fallback); | ||
| } | ||
| } else { | ||
| const handler = (0, _default.createDefaultCacheHandler)(cacheMaxMemorySize); | ||
| const handler = (0, _default.createDefaultCacheHandler)(builtInSize); | ||
| debug == null ? void 0 : debug('setting "default" cache handler from default'); | ||
| reference[handlersMapSymbol].set('default', handler); | ||
| handlersMap.set('default', handler); | ||
| debug == null ? void 0 : debug('setting "remote" cache handler from default'); | ||
| reference[handlersMapSymbol].set('remote', handler); | ||
| handlersMap.set('remote', handler); | ||
| } | ||
| // Create a set of the cache handlers. | ||
| reference[handlersSetSymbol] = new Set(reference[handlersMapSymbol].values()); | ||
| // In development, private caches are persisted in a dedicated built-in | ||
| // in-memory handler so that warm reloads are fast. This must always be the | ||
| // built-in handler, never the user-configured `default` alias (which could be | ||
| // a remote or otherwise persistent handler), because private cache entries | ||
| // can hold data specific to the incoming request (for example, derived from | ||
| // its cookies or headers). It is gated on the dev server so production never | ||
| // persists private caches. | ||
| reference[handlersSetSymbol] = new Set(handlersMap.values()); | ||
| // In development we add dedicated built-in in-memory handlers so that warm | ||
| // reloads are fast. These are always built-in handlers, never a | ||
| // user-configured one, and are gated on the dev server so production behaves | ||
| // exactly as configured. | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| reference[privateHandlerSymbol] = (0, _default.createDefaultCacheHandler)(cacheMaxMemorySize); | ||
| reference[memoryCacheDisabledSymbol] = cacheMaxMemorySize === 0; | ||
| // Private caches are persisted here so warm reloads are fast. Private | ||
| // entries can hold data specific to the incoming request (for example, | ||
| // derived from its cookies or headers), so this is never the | ||
| // user-configured `default` alias. Sized so it still caches under | ||
| // `cacheMaxMemorySize: 0` (otherwise it would become the no-op stub and | ||
| // private reloads would miss). | ||
| reference[privateHandlerSymbol] = (0, _default.createDefaultCacheHandler)(DEV_MEMORY_CACHE_SIZE); | ||
| // Built-in front handlers, one per custom kind, and the tiered handlers | ||
| // that place a front in front of a (possibly slow or remote) backing | ||
| // handler so warm reads resolve in a microtask, are both created per kind | ||
| // in `setCacheHandler`. | ||
| reference[devFrontHandlersSymbol] = new Map(); | ||
| reference[devTieredHandlersSymbol] = new Map(); | ||
| } | ||
@@ -128,14 +167,74 @@ return true; | ||
| } | ||
| function isMemoryCacheDisabled() { | ||
| return reference[memoryCacheDisabledSymbol] ?? false; | ||
| } | ||
| function isCustomCacheHandler(kind) { | ||
| var _reference_devFrontHandlersSymbol; | ||
| if (!process.env.__NEXT_DEV_SERVER) { | ||
| return false; | ||
| } | ||
| return ((_reference_devFrontHandlersSymbol = reference[devFrontHandlersSymbol]) == null ? void 0 : _reference_devFrontHandlersSymbol.has(kind)) ?? false; | ||
| } | ||
| function getDevTieredCacheHandler(kind) { | ||
| var _reference_devTieredHandlersSymbol; | ||
| if (!process.env.__NEXT_DEV_SERVER) { | ||
| return undefined; | ||
| } | ||
| return (_reference_devTieredHandlersSymbol = reference[devTieredHandlersSymbol]) == null ? void 0 : _reference_devTieredHandlersSymbol.get(kind); | ||
| } | ||
| function getCacheHandlers() { | ||
| if (!reference[handlersSetSymbol]) { | ||
| const handlersSet = reference[handlersSetSymbol]; | ||
| if (!handlersSet) { | ||
| return undefined; | ||
| } | ||
| return reference[handlersSetSymbol].values(); | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| return iterateCacheHandlersWithDevBuiltIns(handlersSet); | ||
| } | ||
| return handlersSet.values(); | ||
| } | ||
| /** | ||
| * Yields the registered handlers plus the dev-only built-in handlers (the | ||
| * private handler and the per-kind front handlers). The built-in handlers are | ||
| * not part of the registered set, but tag operations must still reach them: | ||
| * their `updateTags` writes the shared tags manifest that their `get` consults, | ||
| * so `revalidateTag` can invalidate their entries. | ||
| */ function* iterateCacheHandlersWithDevBuiltIns(handlersSet) { | ||
| yield* handlersSet; | ||
| const privateHandler = reference[privateHandlerSymbol]; | ||
| if (privateHandler) { | ||
| yield privateHandler; | ||
| } | ||
| const devFrontHandlers = reference[devFrontHandlersSymbol]; | ||
| if (devFrontHandlers) { | ||
| yield* devFrontHandlers.values(); | ||
| } | ||
| } | ||
| function getCacheHandlerEntries() { | ||
| if (!reference[handlersMapSymbol]) { | ||
| const handlersMap = reference[handlersMapSymbol]; | ||
| if (!handlersMap) { | ||
| return undefined; | ||
| } | ||
| return reference[handlersMapSymbol].entries(); | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| return iterateCacheHandlerEntriesWithDevBuiltIns(handlersMap); | ||
| } | ||
| return handlersMap.entries(); | ||
| } | ||
| /** | ||
| * Yields the registered entries plus the dev-only private handler under its | ||
| * kind, so that per-kind tag operations (`refreshTags` / `getExpiration` for | ||
| * implicit tags) apply to private entries. Custom-kind front handlers are | ||
| * intentionally omitted: the backing handler (already in the map) is | ||
| * authoritative for that kind's `getExpiration`, and a front entry is discarded | ||
| * via that same value. | ||
| */ function* iterateCacheHandlerEntriesWithDevBuiltIns(handlersMap) { | ||
| yield* handlersMap.entries(); | ||
| const privateHandler = reference[privateHandlerSymbol]; | ||
| if (privateHandler) { | ||
| const privateEntry = [ | ||
| 'private', | ||
| privateHandler | ||
| ]; | ||
| yield privateEntry; | ||
| } | ||
| } | ||
| function setCacheHandler(kind, cacheHandler) { | ||
@@ -153,4 +252,16 @@ // This should never be called before initializeCacheHandlers. | ||
| reference[handlersSetSymbol].add(cacheHandler); | ||
| // A user-configured handler may be slow or remote. In development, give it a | ||
| // dedicated built-in in-memory front handler so warm reads resolve in a | ||
| // microtask, and pair the two into a tiered handler the wrapper reads | ||
| // through. Both are created alongside registration so their lifecycle matches | ||
| // the backing handler's, and the front handler's presence is the signal that | ||
| // this kind is backed by a real handler (see `isCustomCacheHandler`). | ||
| if (process.env.__NEXT_DEV_SERVER) { | ||
| var _reference_devFrontHandlersSymbol, _reference_devTieredHandlersSymbol; | ||
| const frontHandler = (0, _default.createDefaultCacheHandler)(DEV_MEMORY_CACHE_SIZE); | ||
| (_reference_devFrontHandlersSymbol = reference[devFrontHandlersSymbol]) == null ? void 0 : _reference_devFrontHandlersSymbol.set(kind, frontHandler); | ||
| (_reference_devTieredHandlersSymbol = reference[devTieredHandlersSymbol]) == null ? void 0 : _reference_devTieredHandlersSymbol.set(kind, (0, _tieredcachehandler.createTieredCacheHandler)(frontHandler, cacheHandler)); | ||
| } | ||
| } | ||
| //# sourceMappingURL=handlers.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../src/server/use-cache/handlers.ts"],"sourcesContent":["import { createDefaultCacheHandler } from '../lib/cache-handlers/default'\nimport type { CacheHandler } from '../lib/cache-handlers/types'\n\nconst debug = process.env.NEXT_PRIVATE_DEBUG_CACHE\n ? (message: string, ...args: any[]) => {\n console.log(`use-cache: ${message}`, ...args)\n }\n : undefined\n\nconst handlersSymbol = Symbol.for('@next/cache-handlers')\nconst handlersMapSymbol = Symbol.for('@next/cache-handlers-map')\nconst handlersSetSymbol = Symbol.for('@next/cache-handlers-set')\nconst privateHandlerSymbol = Symbol.for('@next/cache-handlers-private')\n\n/**\n * The reference to the cache handlers. We store the cache handlers on the\n * global object so that we can access the same instance across different\n * boundaries (such as different copies of the same module).\n */\nconst reference: typeof globalThis & {\n [handlersSymbol]?: {\n RemoteCache?: CacheHandler\n DefaultCache?: CacheHandler\n }\n [handlersMapSymbol]?: Map<string, CacheHandler>\n [handlersSetSymbol]?: Set<CacheHandler>\n // DEV-only\n [privateHandlerSymbol]?: CacheHandler\n} = globalThis\n\n/**\n * Initialize the cache handlers.\n * @param cacheMaxMemorySize - The maximum memory size of the cache in bytes, if\n * not provided, the default memory size will be used.\n * @returns `true` if the cache handlers were initialized, `false` if they were already initialized.\n */\nexport function initializeCacheHandlers(cacheMaxMemorySize: number): boolean {\n // If the cache handlers have already been initialized, don't do it again.\n if (reference[handlersMapSymbol]) {\n debug?.('cache handlers already initialized')\n return false\n }\n\n debug?.('initializing cache handlers')\n reference[handlersMapSymbol] = new Map<string, CacheHandler>()\n\n // Initialize the cache from the symbol contents first.\n if (reference[handlersSymbol]) {\n let fallback: CacheHandler\n if (reference[handlersSymbol].DefaultCache) {\n debug?.('setting \"default\" cache handler from symbol')\n fallback = reference[handlersSymbol].DefaultCache\n } else {\n debug?.('setting \"default\" cache handler from default')\n fallback = createDefaultCacheHandler(cacheMaxMemorySize)\n }\n\n reference[handlersMapSymbol].set('default', fallback)\n\n if (reference[handlersSymbol].RemoteCache) {\n debug?.('setting \"remote\" cache handler from symbol')\n reference[handlersMapSymbol].set(\n 'remote',\n reference[handlersSymbol].RemoteCache\n )\n } else {\n debug?.('setting \"remote\" cache handler from default')\n reference[handlersMapSymbol].set('remote', fallback)\n }\n } else {\n const handler = createDefaultCacheHandler(cacheMaxMemorySize)\n\n debug?.('setting \"default\" cache handler from default')\n reference[handlersMapSymbol].set('default', handler)\n debug?.('setting \"remote\" cache handler from default')\n reference[handlersMapSymbol].set('remote', handler)\n }\n\n // Create a set of the cache handlers.\n reference[handlersSetSymbol] = new Set(reference[handlersMapSymbol].values())\n\n // In development, private caches are persisted in a dedicated built-in\n // in-memory handler so that warm reloads are fast. This must always be the\n // built-in handler, never the user-configured `default` alias (which could be\n // a remote or otherwise persistent handler), because private cache entries\n // can hold data specific to the incoming request (for example, derived from\n // its cookies or headers). It is gated on the dev server so production never\n // persists private caches.\n if (process.env.__NEXT_DEV_SERVER) {\n reference[privateHandlerSymbol] =\n createDefaultCacheHandler(cacheMaxMemorySize)\n }\n\n return true\n}\n\n/**\n * Get a cache handler by kind.\n * @param kind - The kind of cache handler to get.\n * @returns The cache handler, or `undefined` if it does not exist.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandler(kind: string): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[handlersMapSymbol].get(kind)\n}\n\n/**\n * Get the dedicated in-memory cache handler that persists private caches in\n * development. Returns `undefined` outside the dev server, where private caches\n * must not be persisted. This is intentionally not part of the kind-keyed\n * handlers map so that it can never be replaced by a user-configured handler.\n */\nexport function getPrivateCacheHandler(): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[privateHandlerSymbol]\n}\n\n/**\n * Get a set iterator over the cache handlers.\n * @returns An iterator over the cache handlers, or `undefined` if they are not\n * initialized.\n */\nexport function getCacheHandlers(): SetIterator<CacheHandler> | undefined {\n if (!reference[handlersSetSymbol]) {\n return undefined\n }\n\n return reference[handlersSetSymbol].values()\n}\n\n/**\n * Get a map iterator over the cache handlers (keyed by kind).\n * @returns An iterator over the cache handler entries, or `undefined` if they\n * are not initialized.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandlerEntries():\n | MapIterator<[string, CacheHandler]>\n | undefined {\n if (!reference[handlersMapSymbol]) {\n return undefined\n }\n\n return reference[handlersMapSymbol].entries()\n}\n\n/**\n * Set a cache handler by kind.\n * @param kind - The kind of cache handler to set.\n * @param cacheHandler - The cache handler to set.\n */\nexport function setCacheHandler(\n kind: string,\n cacheHandler: CacheHandler\n): void {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol] || !reference[handlersSetSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n debug?.('setting cache handler for \"%s\"', kind)\n reference[handlersMapSymbol].set(kind, cacheHandler)\n reference[handlersSetSymbol].add(cacheHandler)\n}\n"],"names":["getCacheHandler","getCacheHandlerEntries","getCacheHandlers","getPrivateCacheHandler","initializeCacheHandlers","setCacheHandler","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","message","args","console","log","undefined","handlersSymbol","Symbol","for","handlersMapSymbol","handlersSetSymbol","privateHandlerSymbol","reference","globalThis","cacheMaxMemorySize","Map","fallback","DefaultCache","createDefaultCacheHandler","set","RemoteCache","handler","Set","values","__NEXT_DEV_SERVER","kind","Error","get","entries","cacheHandler","add"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../src/server/use-cache/handlers.ts"],"sourcesContent":["import { createDefaultCacheHandler } from '../lib/cache-handlers/default'\nimport type { CacheHandler } from '../lib/cache-handlers/types'\nimport {\n createTieredCacheHandler,\n type CacheReadWriteHandler,\n} from './tiered-cache-handler'\n\nconst debug = process.env.NEXT_PRIVATE_DEBUG_CACHE\n ? (message: string, ...args: any[]) => {\n console.log(`use-cache: ${message}`, ...args)\n }\n : undefined\n\nconst handlersSymbol = Symbol.for('@next/cache-handlers')\nconst handlersMapSymbol = Symbol.for('@next/cache-handlers-map')\nconst handlersSetSymbol = Symbol.for('@next/cache-handlers-set')\nconst privateHandlerSymbol = Symbol.for('@next/cache-handlers-private')\nconst devFrontHandlersSymbol = Symbol.for('@next/cache-handlers-dev-fronts')\nconst devTieredHandlersSymbol = Symbol.for('@next/cache-handlers-dev-tiered')\nconst memoryCacheDisabledSymbol = Symbol.for(\n '@next/cache-handlers-memory-disabled'\n)\n\n/**\n * The in-memory size used for the dev-only built-in handlers (the private\n * handler, the size-0 replacement, and the per-kind front handlers for custom\n * kinds). Mirrors the framework default so `cacheMaxMemorySize: 0` does not\n * disable caching in development.\n */\nconst DEV_MEMORY_CACHE_SIZE = 50 * 1024 * 1024\n\n/**\n * The reference to the cache handlers. We store the cache handlers on the\n * global object so that we can access the same instance across different\n * boundaries (such as different copies of the same module).\n */\nconst reference: typeof globalThis & {\n [handlersSymbol]?: {\n RemoteCache?: CacheHandler\n DefaultCache?: CacheHandler\n }\n [handlersMapSymbol]?: Map<string, CacheHandler>\n [handlersSetSymbol]?: Set<CacheHandler>\n // DEV-only\n [privateHandlerSymbol]?: CacheHandler\n [devFrontHandlersSymbol]?: Map<string, CacheHandler>\n [devTieredHandlersSymbol]?: Map<string, CacheReadWriteHandler>\n [memoryCacheDisabledSymbol]?: boolean\n} = globalThis\n\n/**\n * Initialize the cache handlers.\n * @param cacheMaxMemorySize - The maximum memory size of the cache in bytes, if\n * not provided, the default memory size will be used.\n * @returns `true` if the cache handlers were initialized, `false` if they were already initialized.\n */\nexport function initializeCacheHandlers(cacheMaxMemorySize: number): boolean {\n // If the cache handlers have already been initialized, don't do it again.\n if (reference[handlersMapSymbol]) {\n debug?.('cache handlers already initialized')\n return false\n }\n\n debug?.('initializing cache handlers')\n const handlersMap = new Map<string, CacheHandler>()\n reference[handlersMapSymbol] = handlersMap\n\n // In development, `cacheMaxMemorySize: 0` would make the built-in default\n // handler a no-op, so every reload would miss. Use a real in-memory size\n // instead so dev stays fast; the \"use cache\" wrapper forces a dynamic cache\n // life for this case so it still behaves close to \"no cache\" (serve stale,\n // regenerate in the background). Production keeps the no-op handler.\n const builtInSize =\n process.env.__NEXT_DEV_SERVER && cacheMaxMemorySize === 0\n ? DEV_MEMORY_CACHE_SIZE\n : cacheMaxMemorySize\n\n // Initialize the cache from the symbol contents first.\n if (reference[handlersSymbol]) {\n let fallback: CacheHandler\n if (reference[handlersSymbol].DefaultCache) {\n debug?.('setting \"default\" cache handler from symbol')\n fallback = reference[handlersSymbol].DefaultCache\n } else {\n debug?.('setting \"default\" cache handler from default')\n fallback = createDefaultCacheHandler(builtInSize)\n }\n\n handlersMap.set('default', fallback)\n\n if (reference[handlersSymbol].RemoteCache) {\n debug?.('setting \"remote\" cache handler from symbol')\n handlersMap.set('remote', reference[handlersSymbol].RemoteCache)\n } else {\n debug?.('setting \"remote\" cache handler from default')\n handlersMap.set('remote', fallback)\n }\n } else {\n const handler = createDefaultCacheHandler(builtInSize)\n\n debug?.('setting \"default\" cache handler from default')\n handlersMap.set('default', handler)\n debug?.('setting \"remote\" cache handler from default')\n handlersMap.set('remote', handler)\n }\n\n // Create a set of the cache handlers.\n reference[handlersSetSymbol] = new Set(handlersMap.values())\n\n // In development we add dedicated built-in in-memory handlers so that warm\n // reloads are fast. These are always built-in handlers, never a\n // user-configured one, and are gated on the dev server so production behaves\n // exactly as configured.\n if (process.env.__NEXT_DEV_SERVER) {\n reference[memoryCacheDisabledSymbol] = cacheMaxMemorySize === 0\n\n // Private caches are persisted here so warm reloads are fast. Private\n // entries can hold data specific to the incoming request (for example,\n // derived from its cookies or headers), so this is never the\n // user-configured `default` alias. Sized so it still caches under\n // `cacheMaxMemorySize: 0` (otherwise it would become the no-op stub and\n // private reloads would miss).\n reference[privateHandlerSymbol] = createDefaultCacheHandler(\n DEV_MEMORY_CACHE_SIZE\n )\n\n // Built-in front handlers, one per custom kind, and the tiered handlers\n // that place a front in front of a (possibly slow or remote) backing\n // handler so warm reads resolve in a microtask, are both created per kind\n // in `setCacheHandler`.\n reference[devFrontHandlersSymbol] = new Map()\n reference[devTieredHandlersSymbol] = new Map()\n }\n\n return true\n}\n\n/**\n * Get a cache handler by kind.\n * @param kind - The kind of cache handler to get.\n * @returns The cache handler, or `undefined` if it does not exist.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandler(kind: string): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[handlersMapSymbol].get(kind)\n}\n\n/**\n * Get the dedicated in-memory cache handler that persists private caches in\n * development. Returns `undefined` outside the dev server, where private caches\n * must not be persisted. This is intentionally not part of the kind-keyed\n * handlers map so that it can never be replaced by a user-configured handler.\n */\nexport function getPrivateCacheHandler(): CacheHandler | undefined {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n return reference[privateHandlerSymbol]\n}\n\n/**\n * Whether the in-memory cache is disabled (`cacheMaxMemorySize: 0`). Dev-only\n * signal used to force a dynamic cache life so that the size-0 case still\n * serves stale and regenerates in the background. Always `false` in production.\n */\nexport function isMemoryCacheDisabled(): boolean {\n return reference[memoryCacheDisabledSymbol] ?? false\n}\n\n/**\n * Whether `kind` is backed by a real user-configured handler rather than the\n * built-in in-memory default. Such a handler may be slow or remote, so in\n * development a built-in front handler is placed in front of it (see\n * `getDevTieredCacheHandler`) to keep warm reads microtask-fast. The presence\n * of a dev front handler is the signal, since front handlers are created\n * exactly for user-registered kinds. Always `false` in production.\n */\nexport function isCustomCacheHandler(kind: string): boolean {\n if (!process.env.__NEXT_DEV_SERVER) {\n return false\n }\n\n return reference[devFrontHandlersSymbol]?.has(kind) ?? false\n}\n\n/**\n * Get the dev-only tiered cache handler for a custom `kind`: a fast built-in\n * in-memory front handler in front of the user-configured backing handler, so\n * warm reads resolve in a microtask. Returns `undefined` if there is none (a\n * built-in kind, or production).\n */\nexport function getDevTieredCacheHandler(\n kind: string\n): CacheReadWriteHandler | undefined {\n if (!process.env.__NEXT_DEV_SERVER) {\n return undefined\n }\n\n return reference[devTieredHandlersSymbol]?.get(kind)\n}\n\n/**\n * Get an iterator over the cache handlers.\n * @returns An iterator over the cache handlers, or `undefined` if they are not\n * initialized.\n */\nexport function getCacheHandlers(): IterableIterator<CacheHandler> | undefined {\n const handlersSet = reference[handlersSetSymbol]\n if (!handlersSet) {\n return undefined\n }\n\n if (process.env.__NEXT_DEV_SERVER) {\n return iterateCacheHandlersWithDevBuiltIns(handlersSet)\n }\n\n return handlersSet.values()\n}\n\n/**\n * Yields the registered handlers plus the dev-only built-in handlers (the\n * private handler and the per-kind front handlers). The built-in handlers are\n * not part of the registered set, but tag operations must still reach them:\n * their `updateTags` writes the shared tags manifest that their `get` consults,\n * so `revalidateTag` can invalidate their entries.\n */\nfunction* iterateCacheHandlersWithDevBuiltIns(\n handlersSet: Set<CacheHandler>\n): IterableIterator<CacheHandler> {\n yield* handlersSet\n\n const privateHandler = reference[privateHandlerSymbol]\n if (privateHandler) {\n yield privateHandler\n }\n\n const devFrontHandlers = reference[devFrontHandlersSymbol]\n if (devFrontHandlers) {\n yield* devFrontHandlers.values()\n }\n}\n\n/**\n * Get a map iterator over the cache handlers (keyed by kind).\n * @returns An iterator over the cache handler entries, or `undefined` if they\n * are not initialized.\n * @throws If the cache handlers are not initialized.\n */\nexport function getCacheHandlerEntries():\n | IterableIterator<[string, CacheHandler]>\n | undefined {\n const handlersMap = reference[handlersMapSymbol]\n if (!handlersMap) {\n return undefined\n }\n\n if (process.env.__NEXT_DEV_SERVER) {\n return iterateCacheHandlerEntriesWithDevBuiltIns(handlersMap)\n }\n\n return handlersMap.entries()\n}\n\n/**\n * Yields the registered entries plus the dev-only private handler under its\n * kind, so that per-kind tag operations (`refreshTags` / `getExpiration` for\n * implicit tags) apply to private entries. Custom-kind front handlers are\n * intentionally omitted: the backing handler (already in the map) is\n * authoritative for that kind's `getExpiration`, and a front entry is discarded\n * via that same value.\n */\nfunction* iterateCacheHandlerEntriesWithDevBuiltIns(\n handlersMap: Map<string, CacheHandler>\n): IterableIterator<[string, CacheHandler]> {\n yield* handlersMap.entries()\n\n const privateHandler = reference[privateHandlerSymbol]\n if (privateHandler) {\n const privateEntry: [string, CacheHandler] = ['private', privateHandler]\n yield privateEntry\n }\n}\n\n/**\n * Set a cache handler by kind.\n * @param kind - The kind of cache handler to set.\n * @param cacheHandler - The cache handler to set.\n */\nexport function setCacheHandler(\n kind: string,\n cacheHandler: CacheHandler\n): void {\n // This should never be called before initializeCacheHandlers.\n if (!reference[handlersMapSymbol] || !reference[handlersSetSymbol]) {\n throw new Error('Cache handlers not initialized')\n }\n\n debug?.('setting cache handler for \"%s\"', kind)\n reference[handlersMapSymbol].set(kind, cacheHandler)\n reference[handlersSetSymbol].add(cacheHandler)\n\n // A user-configured handler may be slow or remote. In development, give it a\n // dedicated built-in in-memory front handler so warm reads resolve in a\n // microtask, and pair the two into a tiered handler the wrapper reads\n // through. Both are created alongside registration so their lifecycle matches\n // the backing handler's, and the front handler's presence is the signal that\n // this kind is backed by a real handler (see `isCustomCacheHandler`).\n if (process.env.__NEXT_DEV_SERVER) {\n const frontHandler = createDefaultCacheHandler(DEV_MEMORY_CACHE_SIZE)\n reference[devFrontHandlersSymbol]?.set(kind, frontHandler)\n reference[devTieredHandlersSymbol]?.set(\n kind,\n createTieredCacheHandler(frontHandler, cacheHandler)\n )\n }\n}\n"],"names":["getCacheHandler","getCacheHandlerEntries","getCacheHandlers","getDevTieredCacheHandler","getPrivateCacheHandler","initializeCacheHandlers","isCustomCacheHandler","isMemoryCacheDisabled","setCacheHandler","debug","process","env","NEXT_PRIVATE_DEBUG_CACHE","message","args","console","log","undefined","handlersSymbol","Symbol","for","handlersMapSymbol","handlersSetSymbol","privateHandlerSymbol","devFrontHandlersSymbol","devTieredHandlersSymbol","memoryCacheDisabledSymbol","DEV_MEMORY_CACHE_SIZE","reference","globalThis","cacheMaxMemorySize","handlersMap","Map","builtInSize","__NEXT_DEV_SERVER","fallback","DefaultCache","createDefaultCacheHandler","set","RemoteCache","handler","Set","values","kind","Error","get","has","handlersSet","iterateCacheHandlersWithDevBuiltIns","privateHandler","devFrontHandlers","iterateCacheHandlerEntriesWithDevBuiltIns","entries","privateEntry","cacheHandler","add","frontHandler","createTieredCacheHandler"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IA+IgBA,eAAe;eAAfA;;IAgHAC,sBAAsB;eAAtBA;;IA1CAC,gBAAgB;eAAhBA;;IAfAC,wBAAwB;eAAxBA;;IAxCAC,sBAAsB;eAAtBA;;IAtGAC,uBAAuB;eAAvBA;;IAgIAC,oBAAoB;eAApBA;;IAZAC,qBAAqB;eAArBA;;IA2HAC,eAAe;eAAfA;;;yBAvS0B;oCAKnC;AAEP,MAAMC,QAAQC,QAAQC,GAAG,CAACC,wBAAwB,GAC9C,CAACC,SAAiB,GAAGC;IACnBC,QAAQC,GAAG,CAAC,CAAC,WAAW,EAAEH,SAAS,KAAKC;AAC1C,IACAG;AAEJ,MAAMC,iBAAiBC,OAAOC,GAAG,CAAC;AAClC,MAAMC,oBAAoBF,OAAOC,GAAG,CAAC;AACrC,MAAME,oBAAoBH,OAAOC,GAAG,CAAC;AACrC,MAAMG,uBAAuBJ,OAAOC,GAAG,CAAC;AACxC,MAAMI,yBAAyBL,OAAOC,GAAG,CAAC;AAC1C,MAAMK,0BAA0BN,OAAOC,GAAG,CAAC;AAC3C,MAAMM,4BAA4BP,OAAOC,GAAG,CAC1C;AAGF;;;;;CAKC,GACD,MAAMO,wBAAwB,KAAK,OAAO;AAE1C;;;;CAIC,GACD,MAAMC,YAYFC;AAQG,SAASxB,wBAAwByB,kBAA0B;IAChE,0EAA0E;IAC1E,IAAIF,SAAS,CAACP,kBAAkB,EAAE;QAChCZ,yBAAAA,MAAQ;QACR,OAAO;IACT;IAEAA,yBAAAA,MAAQ;IACR,MAAMsB,cAAc,IAAIC;IACxBJ,SAAS,CAACP,kBAAkB,GAAGU;IAE/B,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,MAAME,cACJvB,QAAQC,GAAG,CAACuB,iBAAiB,IAAIJ,uBAAuB,IACpDH,wBACAG;IAEN,uDAAuD;IACvD,IAAIF,SAAS,CAACV,eAAe,EAAE;QAC7B,IAAIiB;QACJ,IAAIP,SAAS,CAACV,eAAe,CAACkB,YAAY,EAAE;YAC1C3B,yBAAAA,MAAQ;YACR0B,WAAWP,SAAS,CAACV,eAAe,CAACkB,YAAY;QACnD,OAAO;YACL3B,yBAAAA,MAAQ;YACR0B,WAAWE,IAAAA,kCAAyB,EAACJ;QACvC;QAEAF,YAAYO,GAAG,CAAC,WAAWH;QAE3B,IAAIP,SAAS,CAACV,eAAe,CAACqB,WAAW,EAAE;YACzC9B,yBAAAA,MAAQ;YACRsB,YAAYO,GAAG,CAAC,UAAUV,SAAS,CAACV,eAAe,CAACqB,WAAW;QACjE,OAAO;YACL9B,yBAAAA,MAAQ;YACRsB,YAAYO,GAAG,CAAC,UAAUH;QAC5B;IACF,OAAO;QACL,MAAMK,UAAUH,IAAAA,kCAAyB,EAACJ;QAE1CxB,yBAAAA,MAAQ;QACRsB,YAAYO,GAAG,CAAC,WAAWE;QAC3B/B,yBAAAA,MAAQ;QACRsB,YAAYO,GAAG,CAAC,UAAUE;IAC5B;IAEA,sCAAsC;IACtCZ,SAAS,CAACN,kBAAkB,GAAG,IAAImB,IAAIV,YAAYW,MAAM;IAEzD,2EAA2E;IAC3E,gEAAgE;IAChE,6EAA6E;IAC7E,yBAAyB;IACzB,IAAIhC,QAAQC,GAAG,CAACuB,iBAAiB,EAAE;QACjCN,SAAS,CAACF,0BAA0B,GAAGI,uBAAuB;QAE9D,sEAAsE;QACtE,uEAAuE;QACvE,6DAA6D;QAC7D,kEAAkE;QAClE,wEAAwE;QACxE,+BAA+B;QAC/BF,SAAS,CAACL,qBAAqB,GAAGc,IAAAA,kCAAyB,EACzDV;QAGF,wEAAwE;QACxE,qEAAqE;QACrE,0EAA0E;QAC1E,wBAAwB;QACxBC,SAAS,CAACJ,uBAAuB,GAAG,IAAIQ;QACxCJ,SAAS,CAACH,wBAAwB,GAAG,IAAIO;IAC3C;IAEA,OAAO;AACT;AAQO,SAAShC,gBAAgB2C,IAAY;IAC1C,8DAA8D;IAC9D,IAAI,CAACf,SAAS,CAACP,kBAAkB,EAAE;QACjC,MAAM,qBAA2C,CAA3C,IAAIuB,MAAM,mCAAV,qBAAA;mBAAA;wBAAA;0BAAA;QAA0C;IAClD;IAEA,OAAOhB,SAAS,CAACP,kBAAkB,CAACwB,GAAG,CAACF;AAC1C;AAQO,SAASvC;IACd,8DAA8D;IAC9D,IAAI,CAACwB,SAAS,CAACP,kBAAkB,EAAE;QACjC,MAAM,qBAA2C,CAA3C,IAAIuB,MAAM,mCAAV,qBAAA;mBAAA;wBAAA;0BAAA;QAA0C;IAClD;IAEA,OAAOhB,SAAS,CAACL,qBAAqB;AACxC;AAOO,SAAShB;IACd,OAAOqB,SAAS,CAACF,0BAA0B,IAAI;AACjD;AAUO,SAASpB,qBAAqBqC,IAAY;QAKxCf;IAJP,IAAI,CAAClB,QAAQC,GAAG,CAACuB,iBAAiB,EAAE;QAClC,OAAO;IACT;IAEA,OAAON,EAAAA,oCAAAA,SAAS,CAACJ,uBAAuB,qBAAjCI,kCAAmCkB,GAAG,CAACH,UAAS;AACzD;AAQO,SAASxC,yBACdwC,IAAY;QAMLf;IAJP,IAAI,CAAClB,QAAQC,GAAG,CAACuB,iBAAiB,EAAE;QAClC,OAAOjB;IACT;IAEA,QAAOW,qCAAAA,SAAS,CAACH,wBAAwB,qBAAlCG,mCAAoCiB,GAAG,CAACF;AACjD;AAOO,SAASzC;IACd,MAAM6C,cAAcnB,SAAS,CAACN,kBAAkB;IAChD,IAAI,CAACyB,aAAa;QAChB,OAAO9B;IACT;IAEA,IAAIP,QAAQC,GAAG,CAACuB,iBAAiB,EAAE;QACjC,OAAOc,oCAAoCD;IAC7C;IAEA,OAAOA,YAAYL,MAAM;AAC3B;AAEA;;;;;;CAMC,GACD,UAAUM,oCACRD,WAA8B;IAE9B,OAAOA;IAEP,MAAME,iBAAiBrB,SAAS,CAACL,qBAAqB;IACtD,IAAI0B,gBAAgB;QAClB,MAAMA;IACR;IAEA,MAAMC,mBAAmBtB,SAAS,CAACJ,uBAAuB;IAC1D,IAAI0B,kBAAkB;QACpB,OAAOA,iBAAiBR,MAAM;IAChC;AACF;AAQO,SAASzC;IAGd,MAAM8B,cAAcH,SAAS,CAACP,kBAAkB;IAChD,IAAI,CAACU,aAAa;QAChB,OAAOd;IACT;IAEA,IAAIP,QAAQC,GAAG,CAACuB,iBAAiB,EAAE;QACjC,OAAOiB,0CAA0CpB;IACnD;IAEA,OAAOA,YAAYqB,OAAO;AAC5B;AAEA;;;;;;;CAOC,GACD,UAAUD,0CACRpB,WAAsC;IAEtC,OAAOA,YAAYqB,OAAO;IAE1B,MAAMH,iBAAiBrB,SAAS,CAACL,qBAAqB;IACtD,IAAI0B,gBAAgB;QAClB,MAAMI,eAAuC;YAAC;YAAWJ;SAAe;QACxE,MAAMI;IACR;AACF;AAOO,SAAS7C,gBACdmC,IAAY,EACZW,YAA0B;IAE1B,8DAA8D;IAC9D,IAAI,CAAC1B,SAAS,CAACP,kBAAkB,IAAI,CAACO,SAAS,CAACN,kBAAkB,EAAE;QAClE,MAAM,qBAA2C,CAA3C,IAAIsB,MAAM,mCAAV,qBAAA;mBAAA;wBAAA;0BAAA;QAA0C;IAClD;IAEAnC,yBAAAA,MAAQ,kCAAkCkC;IAC1Cf,SAAS,CAACP,kBAAkB,CAACiB,GAAG,CAACK,MAAMW;IACvC1B,SAAS,CAACN,kBAAkB,CAACiC,GAAG,CAACD;IAEjC,6EAA6E;IAC7E,wEAAwE;IACxE,sEAAsE;IACtE,8EAA8E;IAC9E,6EAA6E;IAC7E,sEAAsE;IACtE,IAAI5C,QAAQC,GAAG,CAACuB,iBAAiB,EAAE;YAEjCN,mCACAA;QAFA,MAAM4B,eAAenB,IAAAA,kCAAyB,EAACV;SAC/CC,oCAAAA,SAAS,CAACJ,uBAAuB,qBAAjCI,kCAAmCU,GAAG,CAACK,MAAMa;SAC7C5B,qCAAAA,SAAS,CAACH,wBAAwB,qBAAlCG,mCAAoCU,GAAG,CACrCK,MACAc,IAAAA,4CAAwB,EAACD,cAAcF;IAE3C;AACF","ignoreList":[0]} |
@@ -24,3 +24,3 @@ "use strict"; | ||
| function isStableBuild() { | ||
| return !"16.3.0-canary.52"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV; | ||
| return !"16.3.0-canary.53"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV; | ||
| } | ||
@@ -27,0 +27,0 @@ class CanaryOnlyConfigError extends Error { |
@@ -101,5 +101,12 @@ "use strict"; | ||
| function formatIssue(issue) { | ||
| const { filePath, title, description, detail, source, importTraces } = issue; | ||
| const { filePath, title, description, detail, source, importTraces, severity } = issue; | ||
| let { documentationLink } = issue; | ||
| const formattedTitle = renderStyledStringToErrorAnsi(title).replace(/\n/g, '\n '); | ||
| let formattedTitle = renderStyledStringToErrorAnsi(title).replace(/\n/g, '\n '); | ||
| if (severity === 'bug' || severity === 'error' || severity === 'fatal') { | ||
| formattedTitle = (0, _picocolors.bold)(`${(0, _picocolors.red)('Error')}: ${formattedTitle}`); | ||
| } else if (severity === 'warning') { | ||
| formattedTitle = (0, _picocolors.bold)(`${(0, _picocolors.yellow)('Warning')}: ${formattedTitle}`); | ||
| } else { | ||
| formattedTitle = (0, _picocolors.bold)(`Info: ${formattedTitle}`); | ||
| } | ||
| // TODO: Use error codes to identify these | ||
@@ -106,0 +113,0 @@ // TODO: Generalize adapting Turbopack errors to Next.js errors |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../../../../src/shared/lib/turbopack/utils.ts"],"sourcesContent":["import type {\n Issue,\n PlainTraceItem,\n StyledString,\n TurbopackResult,\n} from '../../../build/swc/types'\n\nimport { bold, green, magenta, red } from '../../../lib/picocolors'\nimport { deobfuscateText } from '../magic-identifier'\nimport type { EntryKey } from './entry-key'\nimport * as Log from '../../../build/output/log'\nimport type { NextConfigComplete } from '../../../server/config-shared'\n\ntype IssueKey = `${Issue['severity']}-${Issue['filePath']}-${string}-${string}`\nexport type IssuesMap = Map<IssueKey, Issue>\nexport type EntryIssuesMap = Map<EntryKey, IssuesMap>\nexport type TopLevelIssuesMap = IssuesMap\n\nconst VERBOSE_ISSUES = !!process.env.NEXT_TURBOPACK_VERBOSE_ISSUES\n\n/**\n * An error generated from emitted Turbopack issues. This can include build\n * errors caused by issues with user code.\n */\nexport class ModuleBuildError extends Error {\n name = 'ModuleBuildError'\n}\n\n/**\n * Thin stopgap workaround layer to mimic existing wellknown-errors-plugin in webpack's build\n * to emit certain type of errors into cli.\n */\nexport function isWellKnownError(issue: Issue): boolean {\n const { title } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title)\n // TODO: add more well known errors\n if (\n formattedTitle.includes('Module not found') ||\n formattedTitle.includes('Unknown module type')\n ) {\n return true\n }\n\n return false\n}\n\nexport function getIssueKey(issue: Issue): IssueKey {\n return `${issue.severity}-${issue.filePath}-${JSON.stringify(\n issue.title\n )}-${JSON.stringify(issue.description)}`\n}\n\nexport function processIssues(\n currentEntryIssues: EntryIssuesMap,\n key: EntryKey,\n result: TurbopackResult,\n throwIssue: boolean,\n logErrors: boolean\n) {\n const newIssues = new Map<IssueKey, Issue>()\n currentEntryIssues.set(key, newIssues)\n\n const relevantIssues = new Set()\n\n for (const issue of result.issues) {\n if (\n issue.severity !== 'error' &&\n issue.severity !== 'fatal' &&\n issue.severity !== 'warning'\n )\n continue\n\n const issueKey = getIssueKey(issue)\n newIssues.set(issueKey, issue)\n\n if (issue.severity !== 'warning') {\n if (throwIssue) {\n const formatted = formatIssue(issue)\n relevantIssues.add(formatted)\n }\n // if we throw the issue it will most likely get handed and logged elsewhere\n else if (logErrors && isWellKnownError(issue)) {\n const formatted = formatIssue(issue)\n Log.error(formatted)\n }\n }\n }\n\n if (relevantIssues.size && throwIssue) {\n throw new ModuleBuildError([...relevantIssues].join('\\n\\n'))\n }\n}\n\nfunction formatFilePath(filePath: string): string {\n return filePath\n .replace('[project]/', './')\n .replaceAll('/./', '/')\n .replace('\\\\\\\\?\\\\', '')\n}\n\nexport function formatIssue(issue: Issue) {\n const { filePath, title, description, detail, source, importTraces } = issue\n let { documentationLink } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title).replace(\n /\\n/g,\n '\\n '\n )\n\n // TODO: Use error codes to identify these\n // TODO: Generalize adapting Turbopack errors to Next.js errors\n if (formattedTitle.includes('Module not found')) {\n // For compatiblity with webpack\n // TODO: include columns in webpack errors.\n documentationLink = 'https://nextjs.org/docs/messages/module-not-found'\n }\n\n const formattedFilePath = formatFilePath(filePath)\n\n let message = ''\n\n if (source?.range) {\n const { start } = source.range\n message = `${formattedFilePath}:${start.line + 1}:${\n start.column + 1\n }\\n${formattedTitle}`\n } else if (formattedFilePath) {\n message = `${formattedFilePath}\\n${formattedTitle}`\n } else {\n message = formattedTitle\n }\n message += '\\n'\n\n if (issue.codeFrame) {\n message += issue.codeFrame.trimEnd() + '\\n\\n'\n }\n\n if (description) {\n if (\n description.type === 'text' &&\n description.value.includes(`Cannot find module 'sass'`)\n ) {\n message +=\n \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\"\n message += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n'\n message += '\\nLearn more: https://nextjs.org/docs/messages/install-sass\\n'\n } else {\n message += renderStyledStringToErrorAnsi(description) + '\\n\\n'\n }\n }\n\n // TODO: make it easier to enable this for debugging\n if (VERBOSE_ISSUES && detail) {\n message += renderStyledStringToErrorAnsi(detail) + '\\n\\n'\n }\n\n // Render additional sources (e.g., generated code from a loader)\n for (const additional of issue.additionalSources ?? []) {\n if (additional.codeFrame) {\n const additionalFilePath = formatFilePath(\n additional.source.source.filePath\n )\n const loc = additional.source.range\n ? `:${additional.source.range.start.line + 1}:${additional.source.range.start.column + 1}`\n : ''\n message += `${additional.description}:\\n${additionalFilePath}${loc}\\n${additional.codeFrame.trimEnd()}\\n\\n`\n }\n }\n\n if (importTraces?.length) {\n // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs\n // We end up with multiple traces when the file with the error is reachable from multiple\n // different entry points (e.g. ssr, client)\n message += `Import trace${importTraces.length > 1 ? 's' : ''}:\\n`\n const everyTraceHasADistinctRootLayer =\n new Set(importTraces.map(leafLayerName).filter((l) => l != null)).size ===\n importTraces.length\n for (let i = 0; i < importTraces.length; i++) {\n const trace = importTraces[i]\n const layer = leafLayerName(trace)\n let traceIndent = ' '\n // If this is true, layer must be present\n if (everyTraceHasADistinctRootLayer) {\n message += ` ${layer}:\\n`\n } else {\n if (importTraces.length > 1) {\n // Otherwise use simple 1 based indices to disambiguate\n message += ` #${i + 1}`\n if (layer) {\n message += ` [${layer}]`\n }\n message += ':\\n'\n } else if (layer) {\n message += ` [${layer}]:\\n`\n } else {\n // If there is a single trace and no layer name just don't indent it.\n traceIndent = ' '\n }\n }\n message += formatIssueTrace(trace, traceIndent, !identicalLayers(trace))\n }\n }\n if (documentationLink) {\n message += documentationLink + '\\n\\n'\n }\n return message\n}\n\n/** Returns the first present layer name in the trace */\nfunction leafLayerName(items: PlainTraceItem[]): string | undefined {\n for (const item of items) {\n const layer = item.layer\n if (layer != null) return layer\n }\n return undefined\n}\n\n/**\n * Returns whether or not all items share the same layer.\n * If a layer is absent we ignore it in this analysis\n */\nfunction identicalLayers(items: PlainTraceItem[]): boolean {\n const firstPresentLayer = items.findIndex((t) => t.layer != null)\n if (firstPresentLayer === -1) return true // all layers are absent\n const layer = items[firstPresentLayer].layer\n for (let i = firstPresentLayer + 1; i < items.length; i++) {\n const itemLayer = items[i].layer\n if (itemLayer == null || itemLayer !== layer) {\n return false\n }\n }\n return true\n}\n\nfunction formatIssueTrace(\n items: PlainTraceItem[],\n indent: string,\n printLayers: boolean\n): string {\n return `${items\n .map((item) => {\n let r = indent\n if (item.fsName !== 'project') {\n r += `[${item.fsName}]/`\n } else {\n // This is consistent with webpack's output\n r += './'\n }\n r += item.path\n if (printLayers && item.layer) {\n r += ` [${item.layer}]`\n }\n return r\n })\n .join('\\n')}\\n\\n`\n}\n\nexport function isRelevantWarning(issue: Issue): boolean {\n return issue.severity === 'warning' && !isNodeModulesIssue(issue)\n}\n\nfunction isNodeModulesIssue(issue: Issue): boolean {\n if (issue.severity === 'warning' && issue.stage === 'config') {\n // Override for the externalize issue\n // `Package foo (serverExternalPackages or default list) can't be external`\n if (\n renderStyledStringToErrorAnsi(issue.title).includes(\"can't be external\")\n ) {\n return false\n }\n }\n\n return (\n issue.severity === 'warning' &&\n (issue.filePath.match(/^(?:.*[\\\\/])?node_modules(?:[\\\\/].*)?$/) !== null ||\n // Ignore Next.js itself when running next directly in the monorepo where it is not inside\n // node_modules anyway.\n // TODO(mischnic) prevent matches when this is published to npm\n issue.filePath.startsWith('[project]/packages/next/'))\n )\n}\n\nexport function renderStyledStringToErrorAnsi(string: StyledString): string {\n function applyDeobfuscation(str: string): string {\n // Use shared deobfuscate function and apply magenta color to identifiers\n const deobfuscated = deobfuscateText(str)\n // Color any {...} wrapped identifiers with magenta\n return deobfuscated.replace(/\\{([^}]+)\\}/g, (match) => magenta(match))\n }\n\n switch (string.type) {\n case 'text':\n return applyDeobfuscation(string.value)\n case 'strong':\n return bold(red(applyDeobfuscation(string.value)))\n case 'code':\n return green(applyDeobfuscation(string.value))\n case 'line':\n return string.value.map(renderStyledStringToErrorAnsi).join('')\n case 'stack':\n return string.value.map(renderStyledStringToErrorAnsi).join('\\n')\n default:\n throw new Error('Unknown StyledString type', string)\n }\n}\n\nexport function isFileSystemCacheEnabledForDev(\n config: NextConfigComplete\n): boolean {\n return config.experimental?.turbopackFileSystemCacheForDev || false\n}\n"],"names":["ModuleBuildError","formatIssue","getIssueKey","isFileSystemCacheEnabledForDev","isRelevantWarning","isWellKnownError","processIssues","renderStyledStringToErrorAnsi","VERBOSE_ISSUES","process","env","NEXT_TURBOPACK_VERBOSE_ISSUES","Error","name","issue","title","formattedTitle","includes","severity","filePath","JSON","stringify","description","currentEntryIssues","key","result","throwIssue","logErrors","newIssues","Map","set","relevantIssues","Set","issues","issueKey","formatted","add","Log","error","size","join","formatFilePath","replace","replaceAll","detail","source","importTraces","documentationLink","formattedFilePath","message","range","start","line","column","codeFrame","trimEnd","type","value","additional","additionalSources","additionalFilePath","loc","length","everyTraceHasADistinctRootLayer","map","leafLayerName","filter","l","i","trace","layer","traceIndent","formatIssueTrace","identicalLayers","items","item","undefined","firstPresentLayer","findIndex","t","itemLayer","indent","printLayers","r","fsName","path","isNodeModulesIssue","stage","match","startsWith","string","applyDeobfuscation","str","deobfuscated","deobfuscateText","magenta","bold","red","green","config","experimental","turbopackFileSystemCacheForDev"],"mappings":"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","ignoreList":[0]} | ||
| {"version":3,"sources":["../../../../src/shared/lib/turbopack/utils.ts"],"sourcesContent":["import type {\n Issue,\n PlainTraceItem,\n StyledString,\n TurbopackResult,\n} from '../../../build/swc/types'\n\nimport { bold, green, magenta, red, yellow } from '../../../lib/picocolors'\nimport { deobfuscateText } from '../magic-identifier'\nimport type { EntryKey } from './entry-key'\nimport * as Log from '../../../build/output/log'\nimport type { NextConfigComplete } from '../../../server/config-shared'\n\ntype IssueKey = `${Issue['severity']}-${Issue['filePath']}-${string}-${string}`\nexport type IssuesMap = Map<IssueKey, Issue>\nexport type EntryIssuesMap = Map<EntryKey, IssuesMap>\nexport type TopLevelIssuesMap = IssuesMap\n\nconst VERBOSE_ISSUES = !!process.env.NEXT_TURBOPACK_VERBOSE_ISSUES\n\n/**\n * An error generated from emitted Turbopack issues. This can include build\n * errors caused by issues with user code.\n */\nexport class ModuleBuildError extends Error {\n name = 'ModuleBuildError'\n}\n\n/**\n * Thin stopgap workaround layer to mimic existing wellknown-errors-plugin in webpack's build\n * to emit certain type of errors into cli.\n */\nexport function isWellKnownError(issue: Issue): boolean {\n const { title } = issue\n const formattedTitle = renderStyledStringToErrorAnsi(title)\n // TODO: add more well known errors\n if (\n formattedTitle.includes('Module not found') ||\n formattedTitle.includes('Unknown module type')\n ) {\n return true\n }\n\n return false\n}\n\nexport function getIssueKey(issue: Issue): IssueKey {\n return `${issue.severity}-${issue.filePath}-${JSON.stringify(\n issue.title\n )}-${JSON.stringify(issue.description)}`\n}\n\nexport function processIssues(\n currentEntryIssues: EntryIssuesMap,\n key: EntryKey,\n result: TurbopackResult,\n throwIssue: boolean,\n logErrors: boolean\n) {\n const newIssues = new Map<IssueKey, Issue>()\n currentEntryIssues.set(key, newIssues)\n\n const relevantIssues = new Set()\n\n for (const issue of result.issues) {\n if (\n issue.severity !== 'error' &&\n issue.severity !== 'fatal' &&\n issue.severity !== 'warning'\n )\n continue\n\n const issueKey = getIssueKey(issue)\n newIssues.set(issueKey, issue)\n\n if (issue.severity !== 'warning') {\n if (throwIssue) {\n const formatted = formatIssue(issue)\n relevantIssues.add(formatted)\n }\n // if we throw the issue it will most likely get handed and logged elsewhere\n else if (logErrors && isWellKnownError(issue)) {\n const formatted = formatIssue(issue)\n Log.error(formatted)\n }\n }\n }\n\n if (relevantIssues.size && throwIssue) {\n throw new ModuleBuildError([...relevantIssues].join('\\n\\n'))\n }\n}\n\nfunction formatFilePath(filePath: string): string {\n return filePath\n .replace('[project]/', './')\n .replaceAll('/./', '/')\n .replace('\\\\\\\\?\\\\', '')\n}\n\nexport function formatIssue(issue: Issue) {\n const {\n filePath,\n title,\n description,\n detail,\n source,\n importTraces,\n severity,\n } = issue\n let { documentationLink } = issue\n let formattedTitle = renderStyledStringToErrorAnsi(title).replace(\n /\\n/g,\n '\\n '\n )\n\n if (severity === 'bug' || severity === 'error' || severity === 'fatal') {\n formattedTitle = bold(`${red('Error')}: ${formattedTitle}`)\n } else if (severity === 'warning') {\n formattedTitle = bold(`${yellow('Warning')}: ${formattedTitle}`)\n } else {\n formattedTitle = bold(`Info: ${formattedTitle}`)\n }\n\n // TODO: Use error codes to identify these\n // TODO: Generalize adapting Turbopack errors to Next.js errors\n if (formattedTitle.includes('Module not found')) {\n // For compatiblity with webpack\n // TODO: include columns in webpack errors.\n documentationLink = 'https://nextjs.org/docs/messages/module-not-found'\n }\n\n const formattedFilePath = formatFilePath(filePath)\n\n let message = ''\n\n if (source?.range) {\n const { start } = source.range\n message = `${formattedFilePath}:${start.line + 1}:${\n start.column + 1\n }\\n${formattedTitle}`\n } else if (formattedFilePath) {\n message = `${formattedFilePath}\\n${formattedTitle}`\n } else {\n message = formattedTitle\n }\n message += '\\n'\n\n if (issue.codeFrame) {\n message += issue.codeFrame.trimEnd() + '\\n\\n'\n }\n\n if (description) {\n if (\n description.type === 'text' &&\n description.value.includes(`Cannot find module 'sass'`)\n ) {\n message +=\n \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\"\n message += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n'\n message += '\\nLearn more: https://nextjs.org/docs/messages/install-sass\\n'\n } else {\n message += renderStyledStringToErrorAnsi(description) + '\\n\\n'\n }\n }\n\n // TODO: make it easier to enable this for debugging\n if (VERBOSE_ISSUES && detail) {\n message += renderStyledStringToErrorAnsi(detail) + '\\n\\n'\n }\n\n // Render additional sources (e.g., generated code from a loader)\n for (const additional of issue.additionalSources ?? []) {\n if (additional.codeFrame) {\n const additionalFilePath = formatFilePath(\n additional.source.source.filePath\n )\n const loc = additional.source.range\n ? `:${additional.source.range.start.line + 1}:${additional.source.range.start.column + 1}`\n : ''\n message += `${additional.description}:\\n${additionalFilePath}${loc}\\n${additional.codeFrame.trimEnd()}\\n\\n`\n }\n }\n\n if (importTraces?.length) {\n // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs\n // We end up with multiple traces when the file with the error is reachable from multiple\n // different entry points (e.g. ssr, client)\n message += `Import trace${importTraces.length > 1 ? 's' : ''}:\\n`\n const everyTraceHasADistinctRootLayer =\n new Set(importTraces.map(leafLayerName).filter((l) => l != null)).size ===\n importTraces.length\n for (let i = 0; i < importTraces.length; i++) {\n const trace = importTraces[i]\n const layer = leafLayerName(trace)\n let traceIndent = ' '\n // If this is true, layer must be present\n if (everyTraceHasADistinctRootLayer) {\n message += ` ${layer}:\\n`\n } else {\n if (importTraces.length > 1) {\n // Otherwise use simple 1 based indices to disambiguate\n message += ` #${i + 1}`\n if (layer) {\n message += ` [${layer}]`\n }\n message += ':\\n'\n } else if (layer) {\n message += ` [${layer}]:\\n`\n } else {\n // If there is a single trace and no layer name just don't indent it.\n traceIndent = ' '\n }\n }\n message += formatIssueTrace(trace, traceIndent, !identicalLayers(trace))\n }\n }\n if (documentationLink) {\n message += documentationLink + '\\n\\n'\n }\n return message\n}\n\n/** Returns the first present layer name in the trace */\nfunction leafLayerName(items: PlainTraceItem[]): string | undefined {\n for (const item of items) {\n const layer = item.layer\n if (layer != null) return layer\n }\n return undefined\n}\n\n/**\n * Returns whether or not all items share the same layer.\n * If a layer is absent we ignore it in this analysis\n */\nfunction identicalLayers(items: PlainTraceItem[]): boolean {\n const firstPresentLayer = items.findIndex((t) => t.layer != null)\n if (firstPresentLayer === -1) return true // all layers are absent\n const layer = items[firstPresentLayer].layer\n for (let i = firstPresentLayer + 1; i < items.length; i++) {\n const itemLayer = items[i].layer\n if (itemLayer == null || itemLayer !== layer) {\n return false\n }\n }\n return true\n}\n\nfunction formatIssueTrace(\n items: PlainTraceItem[],\n indent: string,\n printLayers: boolean\n): string {\n return `${items\n .map((item) => {\n let r = indent\n if (item.fsName !== 'project') {\n r += `[${item.fsName}]/`\n } else {\n // This is consistent with webpack's output\n r += './'\n }\n r += item.path\n if (printLayers && item.layer) {\n r += ` [${item.layer}]`\n }\n return r\n })\n .join('\\n')}\\n\\n`\n}\n\nexport function isRelevantWarning(issue: Issue): boolean {\n return issue.severity === 'warning' && !isNodeModulesIssue(issue)\n}\n\nfunction isNodeModulesIssue(issue: Issue): boolean {\n if (issue.severity === 'warning' && issue.stage === 'config') {\n // Override for the externalize issue\n // `Package foo (serverExternalPackages or default list) can't be external`\n if (\n renderStyledStringToErrorAnsi(issue.title).includes(\"can't be external\")\n ) {\n return false\n }\n }\n\n return (\n issue.severity === 'warning' &&\n (issue.filePath.match(/^(?:.*[\\\\/])?node_modules(?:[\\\\/].*)?$/) !== null ||\n // Ignore Next.js itself when running next directly in the monorepo where it is not inside\n // node_modules anyway.\n // TODO(mischnic) prevent matches when this is published to npm\n issue.filePath.startsWith('[project]/packages/next/'))\n )\n}\n\nexport function renderStyledStringToErrorAnsi(string: StyledString): string {\n function applyDeobfuscation(str: string): string {\n // Use shared deobfuscate function and apply magenta color to identifiers\n const deobfuscated = deobfuscateText(str)\n // Color any {...} wrapped identifiers with magenta\n return deobfuscated.replace(/\\{([^}]+)\\}/g, (match) => magenta(match))\n }\n\n switch (string.type) {\n case 'text':\n return applyDeobfuscation(string.value)\n case 'strong':\n return bold(red(applyDeobfuscation(string.value)))\n case 'code':\n return green(applyDeobfuscation(string.value))\n case 'line':\n return string.value.map(renderStyledStringToErrorAnsi).join('')\n case 'stack':\n return string.value.map(renderStyledStringToErrorAnsi).join('\\n')\n default:\n throw new Error('Unknown StyledString type', string)\n }\n}\n\nexport function isFileSystemCacheEnabledForDev(\n config: NextConfigComplete\n): boolean {\n return config.experimental?.turbopackFileSystemCacheForDev || false\n}\n"],"names":["ModuleBuildError","formatIssue","getIssueKey","isFileSystemCacheEnabledForDev","isRelevantWarning","isWellKnownError","processIssues","renderStyledStringToErrorAnsi","VERBOSE_ISSUES","process","env","NEXT_TURBOPACK_VERBOSE_ISSUES","Error","name","issue","title","formattedTitle","includes","severity","filePath","JSON","stringify","description","currentEntryIssues","key","result","throwIssue","logErrors","newIssues","Map","set","relevantIssues","Set","issues","issueKey","formatted","add","Log","error","size","join","formatFilePath","replace","replaceAll","detail","source","importTraces","documentationLink","bold","red","yellow","formattedFilePath","message","range","start","line","column","codeFrame","trimEnd","type","value","additional","additionalSources","additionalFilePath","loc","length","everyTraceHasADistinctRootLayer","map","leafLayerName","filter","l","i","trace","layer","traceIndent","formatIssueTrace","identicalLayers","items","item","undefined","firstPresentLayer","findIndex","t","itemLayer","indent","printLayers","r","fsName","path","isNodeModulesIssue","stage","match","startsWith","string","applyDeobfuscation","str","deobfuscated","deobfuscateText","magenta","green","config","experimental","turbopackFileSystemCacheForDev"],"mappings":"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","ignoreList":[0]} |
@@ -84,3 +84,3 @@ "use strict"; | ||
| ciName: _ciinfo.isCI && _ciinfo.name || null, | ||
| nextVersion: "16.3.0-canary.52" | ||
| nextVersion: "16.3.0-canary.53" | ||
| }; | ||
@@ -87,0 +87,0 @@ return traits; |
@@ -14,7 +14,7 @@ "use strict"; | ||
| // This should be an invariant, if it fails our build tooling is broken. | ||
| if (typeof "16.3.0-canary.52" !== 'string') { | ||
| if (typeof "16.3.0-canary.53" !== 'string') { | ||
| return []; | ||
| } | ||
| const payload = { | ||
| nextVersion: "16.3.0-canary.52", | ||
| nextVersion: "16.3.0-canary.53", | ||
| nodeVersion: process.version, | ||
@@ -21,0 +21,0 @@ cliCommand: event.cliCommand, |
@@ -41,3 +41,3 @@ "use strict"; | ||
| payload: { | ||
| nextVersion: "16.3.0-canary.52", | ||
| nextVersion: "16.3.0-canary.53", | ||
| glibcVersion, | ||
@@ -44,0 +44,0 @@ installedSwcPackages, |
@@ -15,3 +15,3 @@ "use strict"; | ||
| // This should be an invariant, if it fails our build tooling is broken. | ||
| if (typeof "16.3.0-canary.52" !== 'string') { | ||
| if (typeof "16.3.0-canary.53" !== 'string') { | ||
| return []; | ||
@@ -21,3 +21,3 @@ } | ||
| const payload = { | ||
| nextVersion: "16.3.0-canary.52", | ||
| nextVersion: "16.3.0-canary.53", | ||
| nodeVersion: process.version, | ||
@@ -24,0 +24,0 @@ cliCommand: event.cliCommand, |
+15
-15
| { | ||
| "name": "next", | ||
| "version": "16.3.0-canary.52", | ||
| "version": "16.3.0-canary.53", | ||
| "description": "The React Framework", | ||
@@ -104,3 +104,3 @@ "main": "./dist/server/next.js", | ||
| "dependencies": { | ||
| "@next/env": "16.3.0-canary.52", | ||
| "@next/env": "16.3.0-canary.53", | ||
| "@swc/helpers": "0.5.15", | ||
@@ -136,10 +136,10 @@ "baseline-browser-mapping": "^2.9.19", | ||
| "sharp": "^0.34.5", | ||
| "@next/swc-darwin-arm64": "16.3.0-canary.52", | ||
| "@next/swc-darwin-x64": "16.3.0-canary.52", | ||
| "@next/swc-linux-arm64-gnu": "16.3.0-canary.52", | ||
| "@next/swc-linux-arm64-musl": "16.3.0-canary.52", | ||
| "@next/swc-linux-x64-gnu": "16.3.0-canary.52", | ||
| "@next/swc-linux-x64-musl": "16.3.0-canary.52", | ||
| "@next/swc-win32-arm64-msvc": "16.3.0-canary.52", | ||
| "@next/swc-win32-x64-msvc": "16.3.0-canary.52" | ||
| "@next/swc-darwin-arm64": "16.3.0-canary.53", | ||
| "@next/swc-darwin-x64": "16.3.0-canary.53", | ||
| "@next/swc-linux-arm64-gnu": "16.3.0-canary.53", | ||
| "@next/swc-linux-arm64-musl": "16.3.0-canary.53", | ||
| "@next/swc-linux-x64-gnu": "16.3.0-canary.53", | ||
| "@next/swc-linux-x64-musl": "16.3.0-canary.53", | ||
| "@next/swc-win32-arm64-msvc": "16.3.0-canary.53", | ||
| "@next/swc-win32-x64-msvc": "16.3.0-canary.53" | ||
| }, | ||
@@ -178,7 +178,7 @@ "devDependencies": { | ||
| "@napi-rs/triples": "1.2.0", | ||
| "@next/font": "16.3.0-canary.52", | ||
| "@next/polyfill-module": "16.3.0-canary.52", | ||
| "@next/polyfill-nomodule": "16.3.0-canary.52", | ||
| "@next/react-refresh-utils": "16.3.0-canary.52", | ||
| "@next/swc": "16.3.0-canary.52", | ||
| "@next/font": "16.3.0-canary.53", | ||
| "@next/polyfill-module": "16.3.0-canary.53", | ||
| "@next/polyfill-nomodule": "16.3.0-canary.53", | ||
| "@next/react-refresh-utils": "16.3.0-canary.53", | ||
| "@next/swc": "16.3.0-canary.53", | ||
| "@opentelemetry/api": "1.6.0", | ||
@@ -185,0 +185,0 @@ "@playwright/test": "1.58.2", |
| self.__BUILD_MANIFEST = { | ||
| "__rewrites": { | ||
| "afterFiles": [], | ||
| "beforeFiles": [], | ||
| "fallback": [] | ||
| }, | ||
| "sortedPages": [ | ||
| "/_app", | ||
| "/_error" | ||
| ] | ||
| };self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() |
| self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB() |
| self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() |
| (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,88184,(__turbopack_context__,module,exports)=>{"use strict";var React=__turbopack_context__.r(28181);function formatProdErrorMessage(code){var url="https://react.dev/errors/"+code;if(1<arguments.length){url+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)url+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+code+"; visit "+url+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function noop(){}var Internals={d:{f:noop,r:function(){throw Error(formatProdErrorMessage(522))},D:noop,C:noop,L:noop,m:noop,X:noop,S:noop,M:noop},p:0,findDOMNode:null},REACT_PORTAL_TYPE=Symbol.for("react.portal"),REACT_OPTIMISTIC_KEY=Symbol.for("react.optimistic_key");function createPortal$1(children,containerInfo,implementation){var key=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:REACT_PORTAL_TYPE,key:null==key?null:key===REACT_OPTIMISTIC_KEY?REACT_OPTIMISTIC_KEY:""+key,children:children,containerInfo:containerInfo,implementation:implementation}}var ReactSharedInternals=React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function getCrossOriginStringAs(as,input){return"font"===as?"":"string"==typeof input?"use-credentials"===input?input:"":void 0}exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Internals,exports.createPortal=function(children,container){var key=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!container||1!==container.nodeType&&9!==container.nodeType&&11!==container.nodeType)throw Error(formatProdErrorMessage(299));return createPortal$1(children,container,null,key)},exports.flushSync=function(fn){var previousTransition=ReactSharedInternals.T,previousUpdatePriority=Internals.p;try{if(ReactSharedInternals.T=null,Internals.p=2,fn)return fn()}finally{ReactSharedInternals.T=previousTransition,Internals.p=previousUpdatePriority,Internals.d.f()}},exports.preconnect=function(href,options){"string"==typeof href&&(options=options?"string"==typeof(options=options.crossOrigin)?"use-credentials"===options?options:"":void 0:null,Internals.d.C(href,options))},exports.prefetchDNS=function(href){"string"==typeof href&&Internals.d.D(href)},exports.preinit=function(href,options){if("string"==typeof href&&options&&"string"==typeof options.as){var as=options.as,crossOrigin=getCrossOriginStringAs(as,options.crossOrigin),integrity="string"==typeof options.integrity?options.integrity:void 0,fetchPriority="string"==typeof options.fetchPriority?options.fetchPriority:void 0;"style"===as?Internals.d.S(href,"string"==typeof options.precedence?options.precedence:void 0,{crossOrigin:crossOrigin,integrity:integrity,fetchPriority:fetchPriority}):"script"===as&&Internals.d.X(href,{crossOrigin:crossOrigin,integrity:integrity,fetchPriority:fetchPriority,nonce:"string"==typeof options.nonce?options.nonce:void 0})}},exports.preinitModule=function(href,options){if("string"==typeof href)if("object"==typeof options&&null!==options){if(null==options.as||"script"===options.as){var crossOrigin=getCrossOriginStringAs(options.as,options.crossOrigin);Internals.d.M(href,{crossOrigin:crossOrigin,integrity:"string"==typeof options.integrity?options.integrity:void 0,nonce:"string"==typeof options.nonce?options.nonce:void 0})}}else null==options&&Internals.d.M(href)},exports.preload=function(href,options){if("string"==typeof href&&"object"==typeof options&&null!==options&&"string"==typeof options.as){var as=options.as,crossOrigin=getCrossOriginStringAs(as,options.crossOrigin);Internals.d.L(href,as,{crossOrigin:crossOrigin,integrity:"string"==typeof options.integrity?options.integrity:void 0,nonce:"string"==typeof options.nonce?options.nonce:void 0,type:"string"==typeof options.type?options.type:void 0,fetchPriority:"string"==typeof options.fetchPriority?options.fetchPriority:void 0,referrerPolicy:"string"==typeof options.referrerPolicy?options.referrerPolicy:void 0,imageSrcSet:"string"==typeof options.imageSrcSet?options.imageSrcSet:void 0,imageSizes:"string"==typeof options.imageSizes?options.imageSizes:void 0,media:"string"==typeof options.media?options.media:void 0})}},exports.preloadModule=function(href,options){if("string"==typeof href)if(options){var crossOrigin=getCrossOriginStringAs(options.as,options.crossOrigin);Internals.d.m(href,{as:"string"==typeof options.as&&"script"!==options.as?options.as:void 0,crossOrigin:crossOrigin,integrity:"string"==typeof options.integrity?options.integrity:void 0})}else Internals.d.m(href)},exports.requestFormReset=function(form){Internals.d.r(form)},exports.unstable_batchedUpdates=function(fn,a){return fn(a)},exports.useFormState=function(action,initialState,permalink){return ReactSharedInternals.H.useFormState(action,initialState,permalink)},exports.useFormStatus=function(){return ReactSharedInternals.H.useHostTransitionStatus()},exports.version="19.3.0-canary-3f0b9e61-20260317"},7714,(__turbopack_context__,module,exports)=>{"use strict";function checkDCE(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(err){console.error(err)}}checkDCE(),module.exports=__turbopack_context__.r(88184)},62337,(__turbopack_context__,module,exports)=>{var e={229:function(e){var r,n,u,t=e.exports={};function defaultSetTimout(){throw Error("setTimeout has not been defined")}function defaultClearTimeout(){throw Error("clearTimeout has not been defined")}try{r="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){r=defaultSetTimout}try{n="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){n=defaultClearTimeout}function runTimeout(e){if(r===setTimeout)return setTimeout(e,0);if((r===defaultSetTimout||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout)return clearTimeout(e);if((n===defaultClearTimeout||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[],o=!1,a=-1;function cleanUpNextTick(){o&&u&&(o=!1,u.length?i=u.concat(i):a=-1,i.length&&drainQueue())}function drainQueue(){if(!o){var e=runTimeout(cleanUpNextTick);o=!0;for(var t=i.length;t;){for(u=i,i=[];++a<t;)u&&u[a].run();a=-1,t=i.length}u=null,o=!1,runClearTimeout(e)}}function Item(e,t){this.fun=e,this.array=t}function noop(){}t.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];i.push(new Item(e,t)),1!==i.length||o||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={},t.on=noop,t.addListener=noop,t.once=noop,t.off=noop,t.removeListener=noop,t.removeAllListeners=noop,t.emit=noop,t.prependListener=noop,t.prependOnceListener=noop,t.listeners=function(e){return[]},t.binding=function(e){throw Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(e){throw Error("process.chdir is not supported")},t.umask=function(){return 0}}},t={};function __nccwpck_require__(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}},o=!0;try{e[r](i,i.exports,__nccwpck_require__),o=!1}finally{o&&delete t[r]}return i.exports}__nccwpck_require__.ab="/ROOT/node_modules/.pnpm/next@16.2.3_@babel+core@7.26.10_@opentelemetry+api@1.9.0_@playwright+test@1.58.2_babel-_dacd024c0e06e2c6be8675c3484d2479/node_modules/next/dist/compiled/process/",module.exports=__nccwpck_require__(229)},17021,(__turbopack_context__,module,exports)=>{"use strict";var _global_process,_global_process1;module.exports=(null==(_global_process=__turbopack_context__.g.process)?void 0:_global_process.env)&&"object"==typeof(null==(_global_process1=__turbopack_context__.g.process)?void 0:_global_process1.env)?__turbopack_context__.g.process:__turbopack_context__.r(62337)},37891,(__turbopack_context__,module,exports)=>{"use strict";var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element");function jsxProd(type,config,maybeKey){var key=null;if(void 0!==maybeKey&&(key=""+maybeKey),void 0!==config.key&&(key=""+config.key),"key"in config)for(var propName in maybeKey={},config)"key"!==propName&&(maybeKey[propName]=config[propName]);else maybeKey=config;return{$$typeof:REACT_ELEMENT_TYPE,type:type,key:key,ref:void 0!==(config=maybeKey.ref)?config:null,props:maybeKey}}exports.Fragment=Symbol.for("react.fragment"),exports.jsx=jsxProd,exports.jsxs=jsxProd},53238,(__turbopack_context__,module,exports)=>{"use strict";module.exports=__turbopack_context__.r(37891)},37527,(__turbopack_context__,module,exports)=>{"use strict";var __TURBOPACK__imported__module__17021__=__turbopack_context__.i(17021),REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element"),REACT_PORTAL_TYPE=Symbol.for("react.portal"),REACT_FRAGMENT_TYPE=Symbol.for("react.fragment"),REACT_STRICT_MODE_TYPE=Symbol.for("react.strict_mode"),REACT_PROFILER_TYPE=Symbol.for("react.profiler"),REACT_CONSUMER_TYPE=Symbol.for("react.consumer"),REACT_CONTEXT_TYPE=Symbol.for("react.context"),REACT_FORWARD_REF_TYPE=Symbol.for("react.forward_ref"),REACT_SUSPENSE_TYPE=Symbol.for("react.suspense"),REACT_MEMO_TYPE=Symbol.for("react.memo"),REACT_LAZY_TYPE=Symbol.for("react.lazy"),REACT_ACTIVITY_TYPE=Symbol.for("react.activity"),REACT_VIEW_TRANSITION_TYPE=Symbol.for("react.view_transition"),MAYBE_ITERATOR_SYMBOL=Symbol.iterator;function getIteratorFn(maybeIterable){return null===maybeIterable||"object"!=typeof maybeIterable?null:"function"==typeof(maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable["@@iterator"])?maybeIterable:null}var ReactNoopUpdateQueue={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},assign=Object.assign,emptyObject={};function Component(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}function ComponentDummy(){}function PureComponent(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}Component.prototype.isReactComponent={},Component.prototype.setState=function(partialState,callback){if("object"!=typeof partialState&&"function"!=typeof partialState&&null!=partialState)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,partialState,callback,"setState")},Component.prototype.forceUpdate=function(callback){this.updater.enqueueForceUpdate(this,callback,"forceUpdate")},ComponentDummy.prototype=Component.prototype;var pureComponentPrototype=PureComponent.prototype=new ComponentDummy;pureComponentPrototype.constructor=PureComponent,assign(pureComponentPrototype,Component.prototype),pureComponentPrototype.isPureReactComponent=!0;var isArrayImpl=Array.isArray;function noop(){}var ReactSharedInternals={H:null,A:null,T:null,S:null},hasOwnProperty=Object.prototype.hasOwnProperty;function ReactElement(type,key,props){var refProp=props.ref;return{$$typeof:REACT_ELEMENT_TYPE,type:type,key:key,ref:void 0!==refProp?refProp:null,props:props}}function cloneAndReplaceKey(oldElement,newKey){return ReactElement(oldElement.type,newKey,oldElement.props)}function isValidElement(object){return"object"==typeof object&&null!==object&&object.$$typeof===REACT_ELEMENT_TYPE}function escape(key){var escaperLookup={"=":"=0",":":"=2"};return"$"+key.replace(/[=:]/g,function(match){return escaperLookup[match]})}var userProvidedKeyEscapeRegex=/\/+/g;function getElementKey(element,index){return"object"==typeof element&&null!==element&&null!=element.key?escape(""+element.key):index.toString(36)}function resolveThenable(thenable){switch(thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason;default:switch("string"==typeof thenable.status?thenable.then(noop,noop):(thenable.status="pending",thenable.then(function(fulfilledValue){"pending"===thenable.status&&(thenable.status="fulfilled",thenable.value=fulfilledValue)},function(error){"pending"===thenable.status&&(thenable.status="rejected",thenable.reason=error)})),thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason}}throw thenable}function mapIntoArray(children,array,escapedPrefix,nameSoFar,callback){var type=typeof children;("undefined"===type||"boolean"===type)&&(children=null);var invokeCallback=!1;if(null===children)invokeCallback=!0;else switch(type){case"bigint":case"string":case"number":invokeCallback=!0;break;case"object":switch(children.$$typeof){case REACT_ELEMENT_TYPE:case REACT_PORTAL_TYPE:invokeCallback=!0;break;case REACT_LAZY_TYPE:return mapIntoArray((invokeCallback=children._init)(children._payload),array,escapedPrefix,nameSoFar,callback)}}if(invokeCallback)return callback=callback(children),invokeCallback=""===nameSoFar?"."+getElementKey(children,0):nameSoFar,isArrayImpl(callback)?(escapedPrefix="",null!=invokeCallback&&(escapedPrefix=invokeCallback.replace(userProvidedKeyEscapeRegex,"$&/")+"/"),mapIntoArray(callback,array,escapedPrefix,"",function(c){return c})):null!=callback&&(isValidElement(callback)&&(callback=cloneAndReplaceKey(callback,escapedPrefix+(null==callback.key||children&&children.key===callback.key?"":(""+callback.key).replace(userProvidedKeyEscapeRegex,"$&/")+"/")+invokeCallback)),array.push(callback)),1;invokeCallback=0;var nextNamePrefix=""===nameSoFar?".":nameSoFar+":";if(isArrayImpl(children))for(var i=0;i<children.length;i++)type=nextNamePrefix+getElementKey(nameSoFar=children[i],i),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if("function"==typeof(i=getIteratorFn(children)))for(children=i.call(children),i=0;!(nameSoFar=children.next()).done;)type=nextNamePrefix+getElementKey(nameSoFar=nameSoFar.value,i++),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if("object"===type){if("function"==typeof children.then)return mapIntoArray(resolveThenable(children),array,escapedPrefix,nameSoFar,callback);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(array=String(children))?"object with keys {"+Object.keys(children).join(", ")+"}":array)+"). If you meant to render a collection of children, use an array instead.")}return invokeCallback}function mapChildren(children,func,context){if(null==children)return children;var result=[],count=0;return mapIntoArray(children,result,"","",function(child){return func.call(context,child,count++)}),result}function lazyInitializer(payload){if(-1===payload._status){var thenable=(0,payload._result)();thenable.then(function(moduleObject){(0===payload._status||-1===payload._status)&&(payload._status=1,payload._result=moduleObject,void 0===thenable.status&&(thenable.status="fulfilled",thenable.value=moduleObject))},function(error){(0===payload._status||-1===payload._status)&&(payload._status=2,payload._result=error,void 0===thenable.status&&(thenable.status="rejected",thenable.reason=error))}),-1===payload._status&&(payload._status=0,payload._result=thenable)}if(1===payload._status)return payload._result.default;throw payload._result}var reportGlobalError="function"==typeof reportError?reportError:function(error){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var event=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof error&&null!==error&&"string"==typeof error.message?String(error.message):String(error),error:error});if(!window.dispatchEvent(event))return}else if("object"==typeof __TURBOPACK__imported__module__17021__.default&&"function"==typeof __TURBOPACK__imported__module__17021__.default.emit)return void __TURBOPACK__imported__module__17021__.default.emit("uncaughtException",error);console.error(error)};function startTransition(scope){var prevTransition=ReactSharedInternals.T,currentTransition={};currentTransition.types=null!==prevTransition?prevTransition.types:null,ReactSharedInternals.T=currentTransition;try{var returnValue=scope(),onStartTransitionFinish=ReactSharedInternals.S;null!==onStartTransitionFinish&&onStartTransitionFinish(currentTransition,returnValue),"object"==typeof returnValue&&null!==returnValue&&"function"==typeof returnValue.then&&returnValue.then(noop,reportGlobalError)}catch(error){reportGlobalError(error)}finally{null!==prevTransition&&null!==currentTransition.types&&(prevTransition.types=currentTransition.types),ReactSharedInternals.T=prevTransition}}function addTransitionType(type){var transition=ReactSharedInternals.T;if(null!==transition){var transitionTypes=transition.types;null===transitionTypes?transition.types=[type]:-1===transitionTypes.indexOf(type)&&transitionTypes.push(type)}else startTransition(addTransitionType.bind(null,type))}exports.Activity=REACT_ACTIVITY_TYPE,exports.Children={map:mapChildren,forEach:function(children,forEachFunc,forEachContext){mapChildren(children,function(){forEachFunc.apply(this,arguments)},forEachContext)},count:function(children){var n=0;return mapChildren(children,function(){n++}),n},toArray:function(children){return mapChildren(children,function(child){return child})||[]},only:function(children){if(!isValidElement(children))throw Error("React.Children.only expected to receive a single React element child.");return children}},exports.Component=Component,exports.Fragment=REACT_FRAGMENT_TYPE,exports.Profiler=REACT_PROFILER_TYPE,exports.PureComponent=PureComponent,exports.StrictMode=REACT_STRICT_MODE_TYPE,exports.Suspense=REACT_SUSPENSE_TYPE,exports.ViewTransition=REACT_VIEW_TRANSITION_TYPE,exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=ReactSharedInternals,exports.__COMPILER_RUNTIME={__proto__:null,c:function(size){return ReactSharedInternals.H.useMemoCache(size)}},exports.addTransitionType=addTransitionType,exports.cache=function(fn){return function(){return fn.apply(null,arguments)}},exports.cacheSignal=function(){return null},exports.cloneElement=function(element,config,children){if(null==element)throw Error("The argument must be a React element, but you passed "+element+".");var props=assign({},element.props),key=element.key;if(null!=config)for(propName in void 0!==config.key&&(key=""+config.key),config)hasOwnProperty.call(config,propName)&&"key"!==propName&&"__self"!==propName&&"__source"!==propName&&("ref"!==propName||void 0!==config.ref)&&(props[propName]=config[propName]);var propName=arguments.length-2;if(1===propName)props.children=children;else if(1<propName){for(var childArray=Array(propName),i=0;i<propName;i++)childArray[i]=arguments[i+2];props.children=childArray}return ReactElement(element.type,key,props)},exports.createContext=function(defaultValue){return(defaultValue={$$typeof:REACT_CONTEXT_TYPE,_currentValue:defaultValue,_currentValue2:defaultValue,_threadCount:0,Provider:null,Consumer:null}).Provider=defaultValue,defaultValue.Consumer={$$typeof:REACT_CONSUMER_TYPE,_context:defaultValue},defaultValue},exports.createElement=function(type,config,children){var propName,props={},key=null;if(null!=config)for(propName in void 0!==config.key&&(key=""+config.key),config)hasOwnProperty.call(config,propName)&&"key"!==propName&&"__self"!==propName&&"__source"!==propName&&(props[propName]=config[propName]);var childrenLength=arguments.length-2;if(1===childrenLength)props.children=children;else if(1<childrenLength){for(var childArray=Array(childrenLength),i=0;i<childrenLength;i++)childArray[i]=arguments[i+2];props.children=childArray}if(type&&type.defaultProps)for(propName in childrenLength=type.defaultProps)void 0===props[propName]&&(props[propName]=childrenLength[propName]);return ReactElement(type,key,props)},exports.createRef=function(){return{current:null}},exports.forwardRef=function(render){return{$$typeof:REACT_FORWARD_REF_TYPE,render:render}},exports.isValidElement=isValidElement,exports.lazy=function(ctor){return{$$typeof:REACT_LAZY_TYPE,_payload:{_status:-1,_result:ctor},_init:lazyInitializer}},exports.memo=function(type,compare){return{$$typeof:REACT_MEMO_TYPE,type:type,compare:void 0===compare?null:compare}},exports.startTransition=startTransition,exports.unstable_useCacheRefresh=function(){return ReactSharedInternals.H.useCacheRefresh()},exports.use=function(usable){return ReactSharedInternals.H.use(usable)},exports.useActionState=function(action,initialState,permalink){return ReactSharedInternals.H.useActionState(action,initialState,permalink)},exports.useCallback=function(callback,deps){return ReactSharedInternals.H.useCallback(callback,deps)},exports.useContext=function(Context){return ReactSharedInternals.H.useContext(Context)},exports.useDebugValue=function(){},exports.useDeferredValue=function(value,initialValue){return ReactSharedInternals.H.useDeferredValue(value,initialValue)},exports.useEffect=function(create,deps){return ReactSharedInternals.H.useEffect(create,deps)},exports.useEffectEvent=function(callback){return ReactSharedInternals.H.useEffectEvent(callback)},exports.useId=function(){return ReactSharedInternals.H.useId()},exports.useImperativeHandle=function(ref,create,deps){return ReactSharedInternals.H.useImperativeHandle(ref,create,deps)},exports.useInsertionEffect=function(create,deps){return ReactSharedInternals.H.useInsertionEffect(create,deps)},exports.useLayoutEffect=function(create,deps){return ReactSharedInternals.H.useLayoutEffect(create,deps)},exports.useMemo=function(create,deps){return ReactSharedInternals.H.useMemo(create,deps)},exports.useOptimistic=function(passthrough,reducer){return ReactSharedInternals.H.useOptimistic(passthrough,reducer)},exports.useReducer=function(reducer,initialArg,init){return ReactSharedInternals.H.useReducer(reducer,initialArg,init)},exports.useRef=function(initialValue){return ReactSharedInternals.H.useRef(initialValue)},exports.useState=function(initialState){return ReactSharedInternals.H.useState(initialState)},exports.useSyncExternalStore=function(subscribe,getSnapshot,getServerSnapshot){return ReactSharedInternals.H.useSyncExternalStore(subscribe,getSnapshot,getServerSnapshot)},exports.useTransition=function(){return ReactSharedInternals.H.useTransition()},exports.version="19.3.0-canary-3f0b9e61-20260317"},28181,(__turbopack_context__,module,exports)=>{"use strict";module.exports=__turbopack_context__.r(37527)},81258,(__turbopack_context__,module,exports)=>{"use strict";exports._=function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}},17030,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:all[name]})}(exports,{bindSnapshot:function(){return bindSnapshot},createAsyncLocalStorage:function(){return createAsyncLocalStorage},createSnapshot:function(){return createSnapshot}});let sharedAsyncLocalStorageNotAvailableError=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class FakeAsyncLocalStorage{disable(){throw sharedAsyncLocalStorageNotAvailableError}getStore(){}run(){throw sharedAsyncLocalStorageNotAvailableError}exit(){throw sharedAsyncLocalStorageNotAvailableError}enterWith(){throw sharedAsyncLocalStorageNotAvailableError}static bind(fn){return fn}}let maybeGlobalAsyncLocalStorage="u">typeof globalThis&&globalThis.AsyncLocalStorage;function createAsyncLocalStorage(){return maybeGlobalAsyncLocalStorage?new maybeGlobalAsyncLocalStorage:new FakeAsyncLocalStorage}function bindSnapshot(fn){return maybeGlobalAsyncLocalStorage?maybeGlobalAsyncLocalStorage.bind(fn):FakeAsyncLocalStorage.bind(fn)}function createSnapshot(){return maybeGlobalAsyncLocalStorage?maybeGlobalAsyncLocalStorage.snapshot():function(fn,...args){return fn(...args)}}},40824,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"workAsyncStorageInstance",{enumerable:!0,get:function(){return workAsyncStorageInstance}});let workAsyncStorageInstance=(0,__turbopack_context__.r(17030).createAsyncLocalStorage)()},87150,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"workAsyncStorage",{enumerable:!0,get:function(){return _workasyncstorageinstance.workAsyncStorageInstance}});let _workasyncstorageinstance=__turbopack_context__.r(40824)},4980,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"handleISRError",{enumerable:!0,get:function(){return handleISRError}});let workAsyncStorage="u"<typeof window?__turbopack_context__.r(87150).workAsyncStorage:void 0;function handleISRError({error}){if(workAsyncStorage){let store=workAsyncStorage.getStore();if(store?.isStaticGeneration)throw error&&console.error(error),error}}("function"==typeof exports.default||"object"==typeof exports.default&&null!==exports.default)&&void 0===exports.default.__esModule&&(Object.defineProperty(exports.default,"__esModule",{value:!0}),Object.assign(exports.default,exports),module.exports=exports.default)},2075,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:all[name]})}(exports,{WarningIcon:function(){return WarningIcon},errorStyles:function(){return errorStyles},errorThemeCss:function(){return errorThemeCss}}),__turbopack_context__.r(81258);let _jsxruntime=__turbopack_context__.r(53238);__turbopack_context__.r(28181);let errorStyles={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},errorThemeCss=` | ||
| :root { | ||
| --next-error-bg: #fff; | ||
| --next-error-text: #171717; | ||
| --next-error-title: #171717; | ||
| --next-error-message: #171717; | ||
| --next-error-digest: #666666; | ||
| --next-error-btn-text: #fff; | ||
| --next-error-btn-bg: #171717; | ||
| --next-error-btn-border: none; | ||
| --next-error-btn-secondary-text: #171717; | ||
| --next-error-btn-secondary-bg: transparent; | ||
| --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); | ||
| } | ||
| @media (prefers-color-scheme: dark) { | ||
| :root { | ||
| --next-error-bg: #0a0a0a; | ||
| --next-error-text: #ededed; | ||
| --next-error-title: #ededed; | ||
| --next-error-message: #ededed; | ||
| --next-error-digest: #a0a0a0; | ||
| --next-error-btn-text: #0a0a0a; | ||
| --next-error-btn-bg: #ededed; | ||
| --next-error-btn-border: none; | ||
| --next-error-btn-secondary-text: #ededed; | ||
| --next-error-btn-secondary-bg: transparent; | ||
| --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); | ||
| } | ||
| } | ||
| body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } | ||
| `.replace(/\n\s*/g,"");function WarningIcon(){return(0,_jsxruntime.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:errorStyles.icon,children:(0,_jsxruntime.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof exports.default||"object"==typeof exports.default&&null!==exports.default)&&void 0===exports.default.__esModule&&(Object.defineProperty(exports.default,"__esModule",{value:!0}),Object.assign(exports.default,exports),module.exports=exports.default)},11480,(__turbopack_context__,module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return _default}}),__turbopack_context__.r(81258);let _jsxruntime=__turbopack_context__.r(53238);__turbopack_context__.r(28181);let _handleisrerror=__turbopack_context__.r(4980),_errorstyles=__turbopack_context__.r(2075),_default=function DefaultGlobalError({error}){let digest=error?.digest,isServerError=!!digest;return(0,_handleisrerror.handleISRError)({error}),(0,_jsxruntime.jsxs)("html",{id:"__next_error__",children:[(0,_jsxruntime.jsx)("head",{children:(0,_jsxruntime.jsx)("style",{dangerouslySetInnerHTML:{__html:_errorstyles.errorThemeCss}})}),(0,_jsxruntime.jsxs)("body",{children:[(0,_jsxruntime.jsx)("div",{style:_errorstyles.errorStyles.container,children:(0,_jsxruntime.jsxs)("div",{style:_errorstyles.errorStyles.card,children:[(0,_jsxruntime.jsx)(_errorstyles.WarningIcon,{}),(0,_jsxruntime.jsx)("h1",{style:_errorstyles.errorStyles.title,children:"This page couldn’t load"}),(0,_jsxruntime.jsx)("p",{style:_errorstyles.errorStyles.message,children:isServerError?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,_jsxruntime.jsxs)("div",{style:_errorstyles.errorStyles.buttonGroup,children:[(0,_jsxruntime.jsx)("form",{style:_errorstyles.errorStyles.form,children:(0,_jsxruntime.jsx)("button",{type:"submit",style:_errorstyles.errorStyles.button,children:"Reload"})}),!isServerError&&(0,_jsxruntime.jsx)("button",{type:"button",style:_errorstyles.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),digest&&(0,_jsxruntime.jsxs)("p",{style:_errorstyles.errorStyles.digestFooter,children:["ERROR ",digest]})]})]})};("function"==typeof exports.default||"object"==typeof exports.default&&null!==exports.default)&&void 0===exports.default.__esModule&&(Object.defineProperty(exports.default,"__esModule",{value:!0}),Object.assign(exports.default,exports),module.exports=exports.default)}]); |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/03jpk8cp.v-fb.js","static/chunks/0y5eiibg048qu.js","static/chunks/07kjyv4ygq3ax.js"],runtimeModuleIds:[95253]}]),(()=>{let BACKEND;if(!Array.isArray(globalThis.TURBOPACK))return;let CHUNK_BASE_PATH="/_next/",ASSET_SUFFIX=getAssetSuffixFromScriptSrc(),WORKER_FORWARDED_GLOBALS=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var SourceType,SourceType1=((SourceType=SourceType1||{})[SourceType.Runtime=0]="Runtime",SourceType[SourceType.Parent=1]="Parent",SourceType[SourceType.Update=2]="Update",SourceType);let REEXPORTED_OBJECTS=new WeakMap;function Context(module,exports){this.m=module,this.e=exports}let contextPrototype=Context.prototype,hasOwnProperty=Object.prototype.hasOwnProperty,toStringTag="u">typeof Symbol&&Symbol.toStringTag;function defineProp(obj,name,options){hasOwnProperty.call(obj,name)||Object.defineProperty(obj,name,options)}function getOverwrittenModule(moduleCache,id){let module=moduleCache[id];return module||(module=createModuleObject(id),moduleCache[id]=module),module}function createModuleObject(id){return{exports:{},error:void 0,id,namespaceObject:void 0}}function esm(exports,bindings){defineProp(exports,"__esModule",{value:!0}),toStringTag&&defineProp(exports,toStringTag,{value:"Module"});let i=0;for(;i<bindings.length;){let propName=bindings[i++],tagOrFunction=bindings[i++];if("number"==typeof tagOrFunction)if(0===tagOrFunction)defineProp(exports,propName,{value:bindings[i++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${tagOrFunction}`);else"function"==typeof bindings[i]?defineProp(exports,propName,{get:tagOrFunction,set:bindings[i++],enumerable:!0}):defineProp(exports,propName,{get:tagOrFunction,enumerable:!0})}Object.seal(exports)}function ensureDynamicExports(module,exports){let reexportedObjects=REEXPORTED_OBJECTS.get(module);return reexportedObjects||(REEXPORTED_OBJECTS.set(module,reexportedObjects=[]),module.exports=module.namespaceObject=new Proxy(exports,{get(target,prop){if(hasOwnProperty.call(target,prop)||"default"===prop||"__esModule"===prop)return Reflect.get(target,prop);for(let obj of reexportedObjects){let value=Reflect.get(obj,prop);if(void 0!==value)return value}},ownKeys(target){let keys=Reflect.ownKeys(target);for(let obj of reexportedObjects)for(let key of Reflect.ownKeys(obj))"default"===key||keys.includes(key)||keys.push(key);return keys}})),reexportedObjects}function exportValue(value,id){(null!=id?getOverwrittenModule(this.c,id):this.m).exports=value}function createGetter(obj,key){return()=>obj[key]}contextPrototype.s=function esmExport(bindings,id){let module,exports;null!=id?exports=(module=getOverwrittenModule(this.c,id)).exports:(module=this.m,exports=this.e),module.namespaceObject=exports,esm(exports,bindings)},contextPrototype.j=function dynamicExport(object,id){let module,exports;null!=id?exports=(module=getOverwrittenModule(this.c,id)).exports:(module=this.m,exports=this.e);let reexportedObjects=ensureDynamicExports(module,exports);"object"==typeof object&&null!==object&&reexportedObjects.push(object)},contextPrototype.v=exportValue,contextPrototype.n=function exportNamespace(namespace,id){let module;(module=null!=id?getOverwrittenModule(this.c,id):this.m).exports=module.namespaceObject=namespace};let getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,LEAF_PROTOTYPES=[null,getProto({}),getProto([]),getProto(getProto)];function interopEsm(raw,ns,allowExportDefault){let bindings=[],defaultLocation=-1;for(let current=raw;("object"==typeof current||"function"==typeof current)&&!LEAF_PROTOTYPES.includes(current);current=getProto(current))for(let key of Object.getOwnPropertyNames(current))bindings.push(key,createGetter(raw,key)),-1===defaultLocation&&"default"===key&&(defaultLocation=bindings.length-1);return allowExportDefault&&defaultLocation>=0||(defaultLocation>=0?bindings.splice(defaultLocation,1,0,raw):bindings.push("default",0,raw)),esm(ns,bindings),ns}function createNS(raw){return"function"==typeof raw?function(...args){return raw.apply(this,args)}:Object.create(null)}function esmImport(id){let module=getOrInstantiateModuleFromParent(id,this.m);if(module.namespaceObject)return module.namespaceObject;let raw=module.exports;return module.namespaceObject=interopEsm(raw,createNS(raw),raw&&raw.__esModule)}function parseRequest(request){let hashIndex=request.indexOf("#");-1!==hashIndex&&(request=request.substring(0,hashIndex));let queryIndex=request.indexOf("?");return -1!==queryIndex&&(request=request.substring(0,queryIndex)),request}function getChunkPath(chunkData){return"string"==typeof chunkData?chunkData:chunkData.path}function isPromise(maybePromise){return null!=maybePromise&&"object"==typeof maybePromise&&"then"in maybePromise&&"function"==typeof maybePromise.then}function isAsyncModuleExt(obj){return turbopackQueues in obj}function createPromise(){let resolve,reject;return{promise:new Promise((res,rej)=>{reject=rej,resolve=res}),resolve:resolve,reject:reject}}function installCompressedModuleFactories(chunkModules,offset,moduleFactories,newModuleId){let i=offset;for(;i<chunkModules.length;){let existingGroupFactory,end=i+1;for(;end<chunkModules.length&&"function"!=typeof chunkModules[end];)end++;if(end===chunkModules.length)throw Error("malformed chunk format, expected a factory function");let moduleFactoryFn=chunkModules[end];for(let j=i;j<end;j++){let id=chunkModules[j],existingFactory=moduleFactories.get(id);if(existingFactory){existingGroupFactory=existingFactory;break}}let factoryToInstall=existingGroupFactory??moduleFactoryFn,didInstallFactory=!1;for(let j=i;j<end;j++){let id=chunkModules[j];moduleFactories.has(id)||(didInstallFactory||(factoryToInstall===moduleFactoryFn&&applyModuleFactoryName(moduleFactoryFn),didInstallFactory=!0),moduleFactories.set(id,factoryToInstall),newModuleId?.(id))}i=end+1}}contextPrototype.i=esmImport,contextPrototype.A=function asyncLoader(moduleId){return this.r(moduleId)(esmImport.bind(this))},contextPrototype.t="function"==typeof require?require:function require1(){throw Error("Unexpected use of runtime require")},contextPrototype.r=function commonJsRequire(id){return getOrInstantiateModuleFromParent(id,this.m).exports},contextPrototype.f=function moduleContext(map){function moduleContext(id){if(id=parseRequest(id),hasOwnProperty.call(map,id))return map[id].module();let e=Error(`Cannot find module '${id}'`);throw e.code="MODULE_NOT_FOUND",e}return moduleContext.keys=()=>Object.keys(map),moduleContext.resolve=id=>{if(id=parseRequest(id),hasOwnProperty.call(map,id))return map[id].id();let e=Error(`Cannot find module '${id}'`);throw e.code="MODULE_NOT_FOUND",e},moduleContext.import=async id=>await moduleContext(id),moduleContext};let turbopackQueues=Symbol("turbopack queues"),turbopackExports=Symbol("turbopack exports"),turbopackError=Symbol("turbopack error");function resolveQueue(queue){queue&&1!==queue.status&&(queue.status=1,queue.forEach(fn=>fn.queueCount--),queue.forEach(fn=>fn.queueCount--?fn.queueCount++:fn()))}function wrapDeps(deps){return deps.map(dep=>{if(null!==dep&&"object"==typeof dep){if(isAsyncModuleExt(dep))return dep;if(isPromise(dep)){let queue=Object.assign([],{status:0}),obj={[turbopackExports]:{},[turbopackQueues]:fn=>fn(queue)};return dep.then(res=>{obj[turbopackExports]=res,resolveQueue(queue)},err=>{obj[turbopackError]=err,resolveQueue(queue)}),obj}}return{[turbopackExports]:dep,[turbopackQueues]:()=>{}}})}contextPrototype.a=function asyncModule(body,hasAwait){let module=this.m,queue=hasAwait?Object.assign([],{status:-1}):void 0,depQueues=new Set,{resolve,reject,promise:rawPromise}=createPromise(),promise=Object.assign(rawPromise,{[turbopackExports]:module.exports,[turbopackQueues]:fn=>{queue&&fn(queue),depQueues.forEach(fn),promise.catch(()=>{})}}),attributes={get:()=>promise,set(v){v!==promise&&(promise[turbopackExports]=v)}};Object.defineProperty(module,"exports",attributes),Object.defineProperty(module,"namespaceObject",attributes),body(function handleAsyncDependencies(deps){let currentDeps=wrapDeps(deps),getResult=()=>currentDeps.map(d=>{if(d[turbopackError])throw d[turbopackError];return d[turbopackExports]}),{promise,resolve}=createPromise(),fn=Object.assign(()=>resolve(getResult),{queueCount:0});function fnQueue(q){q!==queue&&!depQueues.has(q)&&(depQueues.add(q),q&&0===q.status&&(fn.queueCount++,q.push(fn)))}return currentDeps.map(dep=>dep[turbopackQueues](fnQueue)),fn.queueCount?promise:getResult()},function asyncResult(err){err?reject(promise[turbopackError]=err):resolve(promise[turbopackExports]),resolveQueue(queue)}),queue&&-1===queue.status&&(queue.status=0)};let relativeURL=function relativeURL(inputUrl){let realUrl=new URL(inputUrl,"x:/"),values={};for(let key in realUrl)values[key]=realUrl[key];for(let key in values.href=inputUrl,values.pathname=inputUrl.replace(/[?#].*/,""),values.origin=values.protocol="",values.toString=values.toJSON=(..._args)=>inputUrl,values)Object.defineProperty(this,key,{enumerable:!0,configurable:!0,value:values[key]})};function invariant(never,computeMessage){throw Error(`Invariant: ${computeMessage(never)}`)}function factoryNotAvailableMessage(moduleId,sourceType,sourceData){let instantiationReason;switch(sourceType){case 0:instantiationReason=`as a runtime entry of chunk ${sourceData}`;break;case 1:instantiationReason=`because it was required from module ${sourceData}`;break;case 2:instantiationReason="because of an HMR update";break;default:invariant(sourceType,sourceType=>`Unknown source type: ${sourceType}`)}return`Module ${moduleId} was instantiated ${instantiationReason}, but the module factory is not available.`}function applyModuleFactoryName(factory){Object.defineProperty(factory,"name",{value:"module evaluation"})}relativeURL.prototype=URL.prototype,contextPrototype.U=relativeURL,contextPrototype.z=function requireStub(_moduleId){throw Error("dynamic usage of require is not supported")},contextPrototype.g=globalThis;let browserContextPrototype=Context.prototype,moduleFactories=new Map;contextPrototype.M=moduleFactories;let availableModules=new Map,availableModuleChunks=new Map;function loadInitialChunk(chunkPath,chunkData){return loadChunkInternal(SourceType1.Runtime,chunkPath,chunkData)}async function loadChunkInternal(sourceType,sourceData,chunkData){let promise;if("string"==typeof chunkData)return loadChunkByUrlInternal(sourceType,sourceData,getChunkRelativeUrl(chunkData));let includedList=chunkData.included||[],modulesPromises=includedList.map(included=>!!moduleFactories.has(included)||availableModules.get(included));if(modulesPromises.length>0&&modulesPromises.every(p=>p))return void await Promise.all(modulesPromises);let includedModuleChunksList=chunkData.moduleChunks||[],moduleChunksPromises=includedModuleChunksList.map(included=>availableModuleChunks.get(included)).filter(p=>p);if(moduleChunksPromises.length>0){if(moduleChunksPromises.length===includedModuleChunksList.length)return void await Promise.all(moduleChunksPromises);let moduleChunksToLoad=new Set;for(let moduleChunk of includedModuleChunksList)availableModuleChunks.has(moduleChunk)||moduleChunksToLoad.add(moduleChunk);for(let moduleChunkToLoad of moduleChunksToLoad){let promise=loadChunkByUrlInternal(sourceType,sourceData,getChunkRelativeUrl(moduleChunkToLoad));availableModuleChunks.set(moduleChunkToLoad,promise),moduleChunksPromises.push(promise)}promise=Promise.all(moduleChunksPromises)}else{for(let includedModuleChunk of(promise=loadChunkByUrlInternal(sourceType,sourceData,getChunkRelativeUrl(chunkData.path)),includedModuleChunksList))availableModuleChunks.has(includedModuleChunk)||availableModuleChunks.set(includedModuleChunk,promise)}for(let included of includedList)availableModules.has(included)||availableModules.set(included,promise);await promise}browserContextPrototype.l=function loadChunk(chunkData){return loadChunkInternal(SourceType1.Parent,this.m.id,chunkData)};let loadedChunk=Promise.resolve(void 0),instrumentedBackendLoadChunks=new WeakMap;function loadChunkByUrlInternal(sourceType,sourceData,chunkUrl){let thenable=BACKEND.loadChunkCached(sourceType,chunkUrl),entry=instrumentedBackendLoadChunks.get(thenable);if(void 0===entry){let resolve=instrumentedBackendLoadChunks.set.bind(instrumentedBackendLoadChunks,thenable,loadedChunk);entry=thenable.then(resolve).catch(cause=>{let loadReason;switch(sourceType){case SourceType1.Runtime:loadReason=`as a runtime dependency of chunk ${sourceData}`;break;case SourceType1.Parent:loadReason=`from module ${sourceData}`;break;case SourceType1.Update:loadReason="from an HMR update";break;default:invariant(sourceType,sourceType=>`Unknown source type: ${sourceType}`)}let error=Error(`Failed to load chunk ${chunkUrl} ${loadReason}${cause?`: ${cause}`:""}`,cause?{cause}:void 0);throw error.name="ChunkLoadError",error}),instrumentedBackendLoadChunks.set(thenable,entry)}return entry}function getChunkRelativeUrl(chunkPath){return`${CHUNK_BASE_PATH}${chunkPath.split("/").map(p=>encodeURIComponent(p)).join("/")}${ASSET_SUFFIX}`}function getPathFromScript(chunkScript){if("string"==typeof chunkScript)return chunkScript;let src=decodeURIComponent(chunkScript.src.replace(/[?#].*$/,""));return src.startsWith(CHUNK_BASE_PATH)?src.slice(CHUNK_BASE_PATH.length):src}function getUrlFromScript(chunk){return"string"==typeof chunk?getChunkRelativeUrl(chunk):chunk.src}function getChunkFromRegistration(chunk){if("string"==typeof chunk)return chunk;if(chunk)return{src:chunk.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}browserContextPrototype.L=function loadChunkByUrl(chunkUrl){return loadChunkByUrlInternal(SourceType1.Parent,this.m.id,chunkUrl)},browserContextPrototype.R=function resolvePathFromModule(moduleId){let exported=this.r(moduleId);return exported?.default??exported},browserContextPrototype.P=function resolveAbsolutePath(modulePath){return`/ROOT/${modulePath??""}`},browserContextPrototype.q=function exportUrl(url,id){exportValue.call(this,`${url}${ASSET_SUFFIX}`,id)},browserContextPrototype.b=function createWorker(WorkerConstructor,entrypoint,moduleChunks,workerOptions){let isSharedWorker="SharedWorker"===WorkerConstructor.name,params=[moduleChunks.map(chunk=>getChunkRelativeUrl(chunk)).reverse(),ASSET_SUFFIX];for(let globalName of WORKER_FORWARDED_GLOBALS)params.push(globalThis[globalName]);let url=new URL(getChunkRelativeUrl(entrypoint),location.origin),paramsJson=JSON.stringify(params);return isSharedWorker?url.searchParams.set("params",paramsJson):url.hash="#params="+encodeURIComponent(paramsJson),new WorkerConstructor(url,workerOptions?{...workerOptions,type:void 0}:void 0)};let regexJsUrl=/\.js(?:\?[^#]*)?(?:#.*)?$/,regexCssUrl=/\.css(?:\?[^#]*)?(?:#.*)?$/;function isCss(chunkUrl){return regexCssUrl.test(chunkUrl)}contextPrototype.w=function loadWebAssembly(chunkPath,edgeModule,importsObj){return BACKEND.loadWebAssembly(SourceType1.Parent,this.m.id,chunkPath,edgeModule,importsObj)},contextPrototype.u=function loadWebAssemblyModule(chunkPath,edgeModule){return BACKEND.loadWebAssemblyModule(SourceType1.Parent,this.m.id,chunkPath,edgeModule)};let moduleCache={};function getOrInstantiateRuntimeModule(chunkPath,moduleId){let module=moduleCache[moduleId];if(module){if(module.error)throw module.error;return module}return instantiateModule(moduleId,SourceType1.Runtime,chunkPath)}contextPrototype.c=moduleCache;let getOrInstantiateModuleFromParent=(id,sourceModule)=>{let module=moduleCache[id];if(module){if(module.error)throw module.error;return module}return instantiateModule(id,SourceType1.Parent,sourceModule.id)};function instantiateModule(id,sourceType,sourceData){let moduleFactory=moduleFactories.get(id);if("function"!=typeof moduleFactory)throw Error(factoryNotAvailableMessage(id,sourceType,sourceData));let module=createModuleObject(id),exports=module.exports;moduleCache[id]=module;let context=new Context(module,exports);try{moduleFactory(context,module,exports)}catch(error){throw module.error=error,error}return module.namespaceObject&&module.exports!==module.namespaceObject&&interopEsm(module.exports,module.namespaceObject),module}function registerChunk(registration){let runtimeParams,chunk=getChunkFromRegistration(registration[0]);return 2===registration.length?runtimeParams=registration[1]:(runtimeParams=void 0,installCompressedModuleFactories(registration,1,moduleFactories)),BACKEND.registerChunk(chunk,runtimeParams)}function getAssetSuffixFromScriptSrc(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let src=document?.currentScript?.getAttribute?.("src")??"",qi=src.indexOf("?");return qi>=0?src.slice(qi):""}let chunkResolvers=new Map;function getOrCreateResolver(chunkUrl){let resolver=chunkResolvers.get(chunkUrl);if(!resolver){let resolve,reject;resolver={resolved:!1,loadingStarted:!1,promise:new Promise((innerResolve,innerReject)=>{resolve=innerResolve,reject=innerReject}),resolve:()=>{resolver.resolved=!0,resolve()},reject:reject},chunkResolvers.set(chunkUrl,resolver)}return resolver}function doLoadChunk(sourceType,chunkUrl){let resolver=getOrCreateResolver(chunkUrl);if(resolver.loadingStarted)return resolver.promise;if(sourceType===SourceType1.Runtime)return resolver.loadingStarted=!0,isCss(chunkUrl)&&resolver.resolve(),resolver.promise;if("function"==typeof importScripts)if(isCss(chunkUrl));else if(regexJsUrl.test(chunkUrl))self.TURBOPACK_NEXT_CHUNK_URLS.push(chunkUrl),importScripts(chunkUrl);else throw Error(`can't infer type of chunk from URL ${chunkUrl} in worker`);else{let decodedChunkUrl=decodeURI(chunkUrl);if(isCss(chunkUrl))if(document.querySelectorAll(`link[rel=stylesheet][href="${chunkUrl}"],link[rel=stylesheet][href^="${chunkUrl}?"],link[rel=stylesheet][href="${decodedChunkUrl}"],link[rel=stylesheet][href^="${decodedChunkUrl}?"]`).length>0)resolver.resolve();else{let link=document.createElement("link");link.rel="stylesheet",link.href=chunkUrl,link.onerror=()=>{resolver.reject()},link.onload=()=>{resolver.resolve()},document.head.appendChild(link)}else if(regexJsUrl.test(chunkUrl)){let previousScripts=document.querySelectorAll(`script[src="${chunkUrl}"],script[src^="${chunkUrl}?"],script[src="${decodedChunkUrl}"],script[src^="${decodedChunkUrl}?"]`);if(previousScripts.length>0)for(let script of Array.from(previousScripts))script.addEventListener("error",()=>{resolver.reject()});else{let script=document.createElement("script");script.src=chunkUrl,script.onerror=()=>{resolver.reject()},document.head.appendChild(script)}}else throw Error(`can't infer type of chunk from URL ${chunkUrl}`)}return resolver.loadingStarted=!0,resolver.promise}BACKEND={async registerChunk(chunk,params){let chunkPath=getPathFromScript(chunk);if(getOrCreateResolver(getUrlFromScript(chunk)).resolve(),null!=params){for(let otherChunkData of params.otherChunks)getOrCreateResolver(getChunkRelativeUrl(getChunkPath(otherChunkData)));if(await Promise.all(params.otherChunks.map(otherChunkData=>loadInitialChunk(chunkPath,otherChunkData))),params.runtimeModuleIds.length>0)for(let moduleId of params.runtimeModuleIds)getOrInstantiateRuntimeModule(chunkPath,moduleId)}},loadChunkCached:(sourceType,chunkUrl)=>doLoadChunk(sourceType,chunkUrl),async loadWebAssembly(_sourceType,_sourceData,wasmChunkPath,_edgeModule,importsObj){let req=fetch(getChunkRelativeUrl(wasmChunkPath)),{instance}=await WebAssembly.instantiateStreaming(req,importsObj);return instance.exports},async loadWebAssemblyModule(_sourceType,_sourceData,wasmChunkPath,_edgeModule){let req=fetch(getChunkRelativeUrl(wasmChunkPath));return await WebAssembly.compileStreaming(req)}};let chunksToRegister=globalThis.TURBOPACK;globalThis.TURBOPACK={push:registerChunk},chunksToRegister.forEach(registerChunk)})(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Potential vulnerability
Supply chain riskInitial human review suggests the presence of a vulnerability in this package. It is pending further analysis and confirmation.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 5 instances
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Potential vulnerability
Supply chain riskInitial human review suggests the presence of a vulnerability in this package. It is pending further analysis and confirmation.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 5 instances
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
168223378
0.31%8270
0.13%1272884
0.1%4330
1.05%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated