elysia 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bun/index.js CHANGED
@@ -1,27 +1,27 @@
1
1
  // @bun
2
- var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames:L8}=Object;var E8=Object.prototype.hasOwnProperty;var V0=($,Z,W)=>{W=$!=null?q8(R8($)):{};const X=Z||!$||!$.__esModule?C1(W,"default",{value:$,enumerable:!0}):W;for(let J of L8($))if(!E8.call(X,J))C1(X,J,{get:()=>$[J],enumerable:!0});return X};var z0=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var E1=z0((A$,Q1)=>{var S0=function(){},H8=function($,Z,W){this.fn=$,this.context=Z,this.once=W||!1},L1=function($,Z,W,X,J){if(typeof W!=="function")throw new TypeError("The listener must be a function");var Q=new H8(W,X||$,J),Y=y?y+Z:Z;if(!$._events[Y])$._events[Y]=Q,$._eventsCount++;else if(!$._events[Y].fn)$._events[Y].push(Q);else $._events[Y]=[$._events[Y],Q];return $},u0=function($,Z){if(--$._eventsCount===0)$._events=new S0;else delete $._events[Z]},g=function(){this._events=new S0,this._eventsCount=0},b8=Object.prototype.hasOwnProperty,y="~";if(Object.create){if(S0.prototype=Object.create(null),!new S0().__proto__)y=!1}g.prototype.eventNames=function $(){var Z=[],W,X;if(this._eventsCount===0)return Z;for(X in W=this._events)if(b8.call(W,X))Z.push(y?X.slice(1):X);if(Object.getOwnPropertySymbols)return Z.concat(Object.getOwnPropertySymbols(W));return Z};g.prototype.listeners=function $(Z){var W=y?y+Z:Z,X=this._events[W];if(!X)return[];if(X.fn)return[X.fn];for(var J=0,Q=X.length,Y=new Array(Q);J<Q;J++)Y[J]=X[J].fn;return Y};g.prototype.listenerCount=function $(Z){var W=y?y+Z:Z,X=this._events[W];if(!X)return 0;if(X.fn)return 1;return X.length};g.prototype.emit=function $(Z,W,X,J,Q,Y){var G=y?y+Z:Z;if(!this._events[G])return!1;var B=this._events[G],_=arguments.length,K,z;if(B.fn){if(B.once)this.removeListener(Z,B.fn,void 0,!0);switch(_){case 1:return B.fn.call(B.context),!0;case 2:return B.fn.call(B.context,W),!0;case 3:return B.fn.call(B.context,W,X),!0;case 4:return B.fn.call(B.context,W,X,J),!0;case 5:return B.fn.call(B.context,W,X,J,Q),!0;case 6:return B.fn.call(B.context,W,X,J,Q,Y),!0}for(z=1,K=new Array(_-1);z<_;z++)K[z-1]=arguments[z];B.fn.apply(B.context,K)}else{var M=B.length,A;for(z=0;z<M;z++){if(B[z].once)this.removeListener(Z,B[z].fn,void 0,!0);switch(_){case 1:B[z].fn.call(B[z].context);break;case 2:B[z].fn.call(B[z].context,W);break;case 3:B[z].fn.call(B[z].context,W,X);break;case 4:B[z].fn.call(B[z].context,W,X,J);break;default:if(!K)for(A=1,K=new Array(_-1);A<_;A++)K[A-1]=arguments[A];B[z].fn.apply(B[z].context,K)}}}return!0};g.prototype.on=function $(Z,W,X){return L1(this,Z,W,X,!1)};g.prototype.once=function $(Z,W,X){return L1(this,Z,W,X,!0)};g.prototype.removeListener=function $(Z,W,X,J){var Q=y?y+Z:Z;if(!this._events[Q])return this;if(!W)return u0(this,Q),this;var Y=this._events[Q];if(Y.fn){if(Y.fn===W&&(!J||Y.once)&&(!X||Y.context===X))u0(this,Q)}else{for(var G=0,B=[],_=Y.length;G<_;G++)if(Y[G].fn!==W||J&&!Y[G].once||X&&Y[G].context!==X)B.push(Y[G]);if(B.length)this._events[Q]=B.length===1?B[0]:B;else u0(this,Q)}return this};g.prototype.removeAllListeners=function $(Z){var W;if(Z){if(W=y?y+Z:Z,this._events[W])u0(this,W)}else this._events=new S0,this._eventsCount=0;return this};g.prototype.off=g.prototype.removeListener;g.prototype.addListener=g.prototype.on;g.prefixed=y;g.EventEmitter=g;if(typeof Q1!=="undefined")Q1.exports=g});var p0=z0((I$,c1)=>{var s8=function($){var Z=$.indexOf("%");if(Z===-1)return $;var W=$.length,X="",J=0,Q=0,Y=Z,G=m1;while(Z>-1&&Z<W){var B=d1($[Z+1],4),_=d1($[Z+2],0),K=B|_,z=U1[K];if(G=U1[256+G+z],Q=Q<<6|K&U1[364+z],G===m1)X+=$.slice(J,Y),X+=Q<=65535?String.fromCharCode(Q):String.fromCharCode(55232+(Q>>10),56320+(Q&1023)),Q=0,J=Z+3,Z=Y=$.indexOf("%",J);else if(G===t8)return null;else{if(Z+=3,Z<W&&$.charCodeAt(Z)===37)continue;return null}}return X+$.slice(J)},d1=function($,Z){var W=r8[$];return W===void 0?255:W<<Z},m1=12,t8=0,U1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7],r8={"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};c1.exports=s8});var Q8=z0((p$,J8)=>{var J$=function($){const Z=new X8;if(typeof $!=="string")return Z;let W=$.length,X="",J="",Q=-1,Y=-1,G=!1,B=!1,_=!1,K=!1,z=!1,M=0;for(let A=0;A<W+1;A++)if(M=A!==W?$.charCodeAt(A):38,M===38){if(z=Y>Q,!z)Y=A;if(X=$.slice(Q+1,Y),z||X.length>0){if(_)X=X.replace(W8," ");if(G)X=Z8(X)||X;if(z){if(J=$.slice(Y+1,A),K)J=J.replace(W8," ");if(B)J=Z8(J)||J}const j=Z[X];if(j===void 0)Z[X]=J;else if(j.pop)j.push(J);else Z[X]=[j,J]}J="",Q=A,Y=A,G=!1,B=!1,_=!1,K=!1}else if(M===61)if(Y<=Q)Y=A;else B=!0;else if(M===43)if(Y>Q)K=!0;else _=!0;else if(M===37)if(Y>Q)B=!0;else G=!0;return Z},Z8=p0(),W8=/\+/g,X8=function(){};X8.prototype=Object.create(null);J8.exports=J$});var G8=z0((l$,Y8)=>{var Y$=function($){const Z=$.length;if(Z===0)return"";let W="",X=0,J=0;$:for(;J<Z;J++){let Q=$.charCodeAt(J);while(Q<128){if(Q$[Q]!==1){if(X<J)W+=$.slice(X,J);X=J+1,W+=s[Q]}if(++J===Z)break $;Q=$.charCodeAt(J)}if(X<J)W+=$.slice(X,J);if(Q<2048){X=J+1,W+=s[192|Q>>6]+s[128|Q&63];continue}if(Q<55296||Q>=57344){X=J+1,W+=s[224|Q>>12]+s[128|Q>>6&63]+s[128|Q&63];continue}if(++J,J>=Z)throw new Error("URI malformed");const Y=$.charCodeAt(J)&1023;X=J+1,Q=65536+((Q&1023)<<10|Y),W+=s[240|Q>>18]+s[128|Q>>12&63]+s[128|Q>>6&63]+s[128|Q&63]}if(X===0)return $;if(X<Z)return W+$.slice(X);return W},s=Array.from({length:256},($,Z)=>"%"+((Z<16?"0":"")+Z.toString(16)).toUpperCase()),Q$=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);Y8.exports={encodeString:Y$}});var K8=z0((i$,U8)=>{var B8=function($){const Z=typeof $;if(Z==="string")return w1($);else if(Z==="bigint")return $.toString();else if(Z==="boolean")return $?"true":"false";else if(Z==="number"&&Number.isFinite($))return $<1000000000000000000000?""+$:w1(""+$);return""},G$=function($){let Z="";if($===null||typeof $!=="object")return Z;const W="&",X=Object.keys($),J=X.length;let Q=0;for(let Y=0;Y<J;Y++){const G=X[Y],B=$[G],_=w1(G)+"=";if(Y)Z+=W;if(Array.isArray(B)){Q=B.length;for(let K=0;K<Q;K++){if(K)Z+=W;Z+=_,Z+=B8(B[K])}}else Z+=_,Z+=B8(B)}return Z},{encodeString:w1}=G8();U8.exports=G$});var P1=z0((t$,E0)=>{var _8=Q8(),z8=K8(),F8={parse:_8,stringify:z8};E0.exports=F8;E0.exports.default=F8;E0.exports.parse=_8;E0.exports.stringify=z8});var F0=($,Z)=>({part:$,store:null,inert:Z!==void 0?new Map(Z.map((W)=>[W.part.charCodeAt(0),W])):null,params:null,wildcardStore:null}),q1=($,Z)=>({...$,part:Z}),R1=($)=>({paramName:$,store:null,inert:null});class X0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g};add($,Z,W){let X;if(typeof Z!="string")throw TypeError("Route path must be a string");Z===""?Z="/":Z[0]!=="/"&&(Z=`/${Z}`),this.history.push([$,Z,W]);let J=Z[Z.length-1]==="*";J&&(Z=Z.slice(0,-1));let Q=Z.split(X0.regex.static),Y=Z.match(X0.regex.params)||[];Q[Q.length-1]===""&&Q.pop(),X=this.root[$]?this.root[$]:this.root[$]=F0("/");let G=0;for(let B=0;B<Q.length;++B){let _=Q[B];if(B>0){let K=Y[G++].slice(1);if(X.params===null)X.params=R1(K);else if(X.params.paramName!==K)throw Error(`Cannot create route "${Z}" with parameter "${K}" because a route already exists with a different parameter name ("${X.params.paramName}") in the same location`);let z=X.params;if(z.inert===null){X=z.inert=F0(_);continue}X=z.inert}for(let K=0;;){if(K===_.length){if(K<X.part.length){let z=q1(X,X.part.slice(K));Object.assign(X,F0(_,[z]))}break}if(K===X.part.length){if(X.inert===null)X.inert=new Map;else if(X.inert.has(_.charCodeAt(K))){X=X.inert.get(_.charCodeAt(K)),_=_.slice(K),K=0;continue}let z=F0(_.slice(K));X.inert.set(_.charCodeAt(K),z),X=z;break}if(_[K]!==X.part[K]){let z=q1(X,X.part.slice(K)),M=F0(_.slice(K));Object.assign(X,F0(X.part.slice(0,K),[z,M])),X=M;break}++K}}if(G<Y.length){let B=Y[G],_=B.slice(1);if(X.params===null)X.params=R1(_);else if(X.params.paramName!==_)throw Error(`Cannot create route "${Z}" with parameter "${_}" because a route already exists with a different parameter name ("${X.params.paramName}") in the same location`);return X.params.store===null&&(X.params.store=W),X.params.store}return J?(X.wildcardStore===null&&(X.wildcardStore=W),X.wildcardStore):(X.store===null&&(X.store=W),X.store)}find($,Z){let W=this.root[$];return W?J1(Z,Z.length,W,0):null}}var J1=($,Z,W,X)=>{let J=W?.part,Q=X+J.length;if(J.length>1){if(Q>Z)return null;if(J.length<15){for(let Y=1,G=X+1;Y<J.length;++Y,++G)if(J.charCodeAt(Y)!==$.charCodeAt(G))return null}else if($.substring(X,Q)!==J)return null}if(Q===Z)return W.store!==null?{store:W.store,params:{}}:W.wildcardStore!==null?{store:W.wildcardStore,params:{"*":""}}:null;if(W.inert!==null){let Y=W.inert.get($.charCodeAt(Q));if(Y!==void 0){let G=J1($,Z,Y,Q);if(G!==null)return G}}if(W.params!==null){let Y=W.params,G=$.indexOf("/",Q);if(G!==Q){if(G===-1||G>=Z){if(Y.store!==null){let B={};return B[Y.paramName]=$.substring(Q,Z),{store:Y.store,params:B}}}else if(Y.inert!==null){let B=J1($,Z,Y.inert,G);if(B!==null)return B.params[Y.paramName]=$.substring(Q,G),B}}}return W.wildcardStore!==null?{store:W.wildcardStore,params:{"*":$.substring(Q,Z)}}:null};var b1=V0(E1(),1);var H1=b1.default;var h0=()=>{let $;return[new Promise((W)=>{$=W}),$]},Z0=()=>{const[$,Z]=h0(),[W,X]=h0(),J=[],Q=[];return{signal:$,consume:(Y)=>{switch(Y.type){case"begin":if(Y.unit&&J.length===0)for(let G=0;G<Y.unit;G++){const[B,_]=h0(),[K,z]=h0();J.push(B),Q.push([(M)=>{_({children:[],end:K,name:M.name??"",skip:!1,time:M.time})},(M)=>{z(M)}])}Z({children:J,end:W,name:Y.name??"",skip:!1,time:Y.time});break;case"end":X(Y.time);break}},consumeChild(Y){switch(Y.type){case"begin":if(!Q[0])return;const[G]=Q[0];G({children:[],end:W,name:Y.name??"",skip:!1,time:Y.time});break;case"end":const B=Q.shift();if(!B)return;B[1](Y.time)}},resolve(){Z({children:[],end:new Promise((Y)=>Y(0)),name:"",skip:!0,time:0});for(let[Y,G]of Q)Y({children:[],end:new Promise((B)=>B(0)),name:"",skip:!0,time:0}),G(0);X(0)}}},x1=($,Z,W)=>{if(typeof W==="object")W=W.fn;return async function X(X){if(X.event!=="request"||X.type!=="begin")return;const J=X.id,Q=$(),Y=Z0(),G=Z0(),B=Z0(),_=Z0(),K=Z0(),z=Z0(),M=Z0(),A=Z0();Y.consume(X);const j=(O)=>{if(O.id===J)switch(O.event){case"request":Y.consume(O);break;case"request.unit":Y.consumeChild(O);break;case"parse":G.consume(O);break;case"parse.unit":G.consumeChild(O);break;case"transform":B.consume(O);break;case"transform.unit":B.consumeChild(O);break;case"beforeHandle":_.consume(O);break;case"beforeHandle.unit":_.consumeChild(O);break;case"handle":K.consume(O);break;case"afterHandle":z.consume(O);break;case"afterHandle.unit":z.consumeChild(O);break;case"error":M.consume(O);break;case"error.unit":M.consumeChild(O);break;case"response":if(O.type==="begin")Y.resolve(),G.resolve(),B.resolve(),_.resolve(),K.resolve(),z.resolve(),M.resolve();else Q.off("event",j);A.consume(O);break;case"response.unit":A.consumeChild(O);break;case"exit":Y.resolve(),G.resolve(),B.resolve(),_.resolve(),K.resolve(),z.resolve(),M.resolve();break}};Q.on("event",j),await W({id:J,context:X.ctx,set:X.ctx?.set,store:X.ctx?.store,time:X.time,request:Y.signal,parse:G.signal,transform:B.signal,beforeHandle:_.signal,handle:K.signal,afterHandle:z.signal,error:M.signal,response:A.signal}),Q.emit(`res${J}.${Z}`,void 0)}};var y1=($)=>{if($.startsWith("async"))$=$.slice(6);let Z=-1;if($.charCodeAt(0)===40){if(Z=$.indexOf(") => {\n"),Z!==-1)return[$.slice(1,Z),$.slice(Z+5)];if(Z=$.indexOf(") => "),Z!==-1)return[$.slice(1,Z),$.slice(Z+5)]}if($.startsWith("function")){Z=$.indexOf("(");const X=$.indexOf(")");return[$.slice(Z+1,X),$.slice(X+2)]}const W=$.indexOf("(");if(W!==-1){const[X,J]=$.split("\n",2),Q=X.lastIndexOf(")")+1;return[X.slice(W,Q),"{"+J]}return $.split("\n",2)},v1=($)=>{const Z=$.indexOf("{");if(Z===-1)return[-1,0];let W=Z+1,X=1;for(;W<$.length;W++){const J=$.charCodeAt(W);if(J===123)X++;else if(J===125)X--;if(X===0)break}if(X!==0)return[0,$.length];return[Z,W+1]},x8=($)=>{const Z=$.lastIndexOf("}");if(Z===-1)return[-1,0];let W=Z-1,X=1;for(;W>=0;W--){const J=$.charCodeAt(W);if(J===125)X++;else if(J===123)X--;if(X===0)break}if(X!==0)return[-1,0];return[W,Z+1]},m0=($)=>{if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)$=$.slice(2,-2);while(!0){const[Z,W]=v1($);if(Z===-1)break;$=$.slice(0,Z-2)+$.slice(W+1)}return $.replace(/:/g,"").trim()},g8=($,Z)=>{const W=m0($);if(!Z.query&&W.includes("query"))Z.query=!0;if(!Z.headers&&W.includes("headers"))Z.headers=!0;if(!Z.body&&W.includes("body"))Z.body=!0;if(!Z.cookie&&W.includes("cookie"))Z.cookie=!0;if(!Z.set&&W.includes("set"))Z.set=!0;return W},y8=($,Z)=>{const W=m0($);if(!Z.request&&W.includes("request"))Z.request=!0;if(!Z.parse&&W.includes("parse"))Z.parse=!0;if(!Z.transform&&W.includes("transform"))Z.transform=!0;if(!Z.handle&&W.includes("handle"))Z.handle=!0;if(!Z.beforeHandle&&W.includes("beforeHandle"))Z.beforeHandle=!0;if(!Z.afterHandle&&W.includes("afterHandle"))Z.afterHandle=!0;if(!Z.error&&W.includes("error"))Z.error=!0;if(!Z.context&&W.includes("context"))Z.context=!0;if(!Z.store&&W.includes("store"))Z.store=!0;if(!Z.set&&W.includes("set"))Z.set=!0;return W},k1=($,Z,W)=>{const X=Z.indexOf($+"\n",W),J=Z.indexOf($+"\t",W),Q=Z.indexOf($+",",W),Y=Z.indexOf($+";",W),G=Z.indexOf($+" ",W);return[X,J,Q,Y,G].filter((B)=>B>0).sort((B,_)=>B-_)[0]||-1},v8=($,Z,W)=>{const X=Z.indexOf($+"]",W),J=Z.indexOf($+"'",W),Q=Z.indexOf($+'"',W);return[X,J,Q].filter((Y)=>Y>0).sort((Y,G)=>Y-G)[0]||-1},Y1=($,Z,W=0)=>{if(W>5)return[];const X=[];let J=Z;while(!0){let Q=k1(" = "+$,J);if(Q===-1){const B=J.indexOf(" = "+$);if(B+3+$.length!==J.length)break;Q=B}const Y=J.slice(0,Q);let G=Y.slice(Y.lastIndexOf(" ")+1);if(G==="}"){const[B,_]=x8(Y);X.push(J.slice(B,_)),J=J.slice(Q+3+$.length);continue}while(G.charCodeAt(0)===44)G=G.slice(1);while(G.charCodeAt(0)===9)G=G.slice(1);X.push(G),J=J.slice(Q+3+$.length)}for(let Q of X){if(Q.charCodeAt(0)===123)continue;const Y=Y1(Q,Z);if(Y.length>0)X.push(...Y)}return X},f1=($,Z)=>[$+"."+Z,$+'["'+Z+'"]',$+"['"+Z+"']"],u1=($)=>{if(!$)return;if(!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return $}const W=$.indexOf("...");if(W===-1)return;return $.slice(W+3).trimEnd()},g1=($,Z,W)=>{const X=(J,Q)=>$.includes(Q+"."+J)||$.includes(Q+'["'+J+'"]')||$.includes(Q+"['"+J+"']");for(let J of Z){if(!J)continue;if(J.charCodeAt(0)===123){if(J=m0(J),!W.query&&J.includes("query"))W.query=!0;if(!W.headers&&J.includes("headers"))W.headers=!0;if(!W.body&&J.includes("body"))W.body=!0;if(!W.cookie&&J.includes("cookie"))W.cookie=!0;if(!W.set&&J.includes("set"))W.set=!0;continue}if($.includes("("+J+")")){W.query=!0,W.headers=!0,W.body=!0,W.cookie=!0,W.set=!0,W.queries=[],W.unknownQueries=!0;break}if(!W.query&&X("query",J))W.query=!0;if($.includes("return "+J)||f1("return "+J,"query").some((Q)=>$.includes(Q)))W.query=!0,W.unknownQueries=!0;if(W.query&&!W.unknownQueries)while(!0){let Q=J+".";if($.includes(Q+"query"))Q=J+".query";let Y=!1,G=$.indexOf(Q);if(G===-1)Y=!0,G=$.indexOf(J+'["');if(G===-1)Y=!0,G=$.indexOf(J+"['");if(G===-1&&$.indexOf(J+"[")!==-1){W.queries=[],W.unknownQueries=!0;break}if(G!==-1){let B=Y?v8("",$,G+Q.length+1):k1("",$,G+Q.length+1);if(B===-1)B=void 0;const _=G+J.length+1;$=$.slice(G+J.length+1);let K=$.slice(0,B?B-_:B).trimEnd();while(G!==-1)if(G=K.indexOf("."),G!==-1)K=K.slice(G+1);if(K.charCodeAt(K.length-1)===59)K=K.slice(0,-1);if(K.charCodeAt(K.length-1)===44)K=K.slice(0,-1);if(K.charCodeAt(K.length-1)===93)K=K.slice(0,-1);if(K.charCodeAt(K.length-1)===41)K=K.slice(0,-1);if(Y)K=K.replaceAll(/("|')/g,"");if(K&&!W.queries.includes(K)){W.queries.push(K);continue}}break}if(!W.headers&&X("headers",J))W.headers=!0;if(!W.body&&X("body",J))W.body=!0;if(!W.cookie&&X("cookie",J))W.cookie=!0;if(!W.set&&X("set",J))W.set=!0;if(W.query&&W.headers&&W.body&&W.cookie&&W.set)break}return Z},k8=($)=>{while(!0){const Z=$.indexOf("=");if(Z===-1)break;const W=$.indexOf(",",Z),X=$.indexOf("}",Z),J=[W,X].filter((Q)=>Q>0).sort((Q,Y)=>Q-Y)[0]||-1;if(J===-1){$=$.slice(0,Z);break}$=$.slice(0,Z)+$.slice(J)}return $.split(",").map((Z)=>Z.trim()).join(", ")},f8=($)=>{for(let Z of $){if(Z.charCodeAt(0)===123)return!1;if(Z.indexOf("'")!==-1)return!1;if(Z.indexOf('"')!==-1)return!1;if(Z.indexOf("\n")!==-1)return!1;if(Z.indexOf("\t")!==-1)return!1}return!0},u8=($,Z,W)=>{const X=(J,Q)=>$.includes(J+"."+Q)||$.includes(J+'["'+Q+'"]')||$.includes(J+"['"+Q+"']");for(let J of Z){if(J.charCodeAt(0)===123){if(J=m0(J),!W.request&&J.includes("request"))W.request=!0;if(!W.parse&&J.includes("parse"))W.parse=!0;if(!W.transform&&J.includes("transform"))W.transform=!0;if(!W.handle&&J.includes("handle"))W.handle=!0;if(!W.beforeHandle&&J.includes("beforeHandle"))W.beforeHandle=!0;if(!W.afterHandle&&J.includes("afterHandle"))W.afterHandle=!0;if(!W.error&&J.includes("error"))W.error=!0;if(!W.context&&J.includes("context"))W.context=!0;if(!W.store&&J.includes("store"))W.store=!0;if(!W.set&&J.includes("set"))W.set=!0;continue}if($.includes("("+J+")")){W.request=!0,W.parse=!0,W.transform=!0,W.handle=!0,W.beforeHandle=!0,W.afterHandle=!0,W.error=!0,W.context=!0,W.store=!0,W.set=!0;break}if(!W.request&&X("request",J))W.request=!0;if(!W.parse&&X("parse",J))W.parse=!0;if(!W.transform&&X("transform",J))W.transform=!0;if(!W.handle&&X("handle",J))W.handle=!0;if(!W.beforeHandle&&X("beforeHandle",J))W.beforeHandle=!0;if(!W.afterHandle&&X("afterHandle",J))W.afterHandle=!0;if(!W.error&&X("error",J))W.error=!0;if(!W.context&&X("context",J))W.context=!0;if(!W.store&&X("store",J))W.store=!0;if(!W.set&&X("set",J))W.set=!0;if(W.request&&W.parse&&W.transform&&W.handle&&W.beforeHandle&&W.afterHandle&&W.error&&W.context&&W.store&&W.set)break}return Z},d0=($,Z={queries:[],query:!1,headers:!1,body:!1,cookie:!1,set:!1,unknownQueries:!1})=>{const W=[];if($.handler&&typeof $.handler==="function")W.push($.handler);if($.beforeHandle?.length)W.push(...$.beforeHandle);if($.parse?.length)W.push(...$.parse);if($.error?.length)W.push(...$.error);if($.transform?.length)W.push(...$.transform);if($.afterHandle?.length)W.push(...$.afterHandle);if($.mapResponse?.length)W.push(...$.mapResponse);if($.request?.length)W.push(...$.request);if($.onResponse?.length)W.push(...$.onResponse);for(let X of W){if(!X)continue;const J="fn"in X?X.fn:X,[Q,Y]=y1(J.toString()),G=g8(Q,Z),B=u1(G);if(B){const K=Y1(B,Y);K.splice(0,-1,B),g1(Y,K,Z)}const _=G||B;if(_&&["","return "].some((K)=>f1(K+_,"query").some((z)=>Y.includes(z))))Z.query=!0,Z.unknownQueries=!0;if(Z.query){g1(Y,["query"],Z);const K=Q.indexOf("query: {");if(K!==-1){const z=Q.slice(K+7),[M,A]=v1(z),j=k8(z.slice(M,A));for(let O of j.slice(1,-1).split(",")){const U=O.indexOf(":");if(U!==-1)O=O.slice(0,U);if(O=O.trim(),O&&!Z.queries.includes(O))Z.queries.push(O.trim())}}}if(Z.query&&Z.headers&&Z.body&&Z.cookie&&Z.set)break}if(!f8(Z.queries))Z.unknownQueries=!0,Z.queries=[];return Z},h1=($,Z={request:!1,parse:!1,transform:!1,handle:!1,beforeHandle:!1,afterHandle:!1,error:!1,context:!1,store:!1,set:!1})=>{for(let W of $){const[X,J]=y1(W.toString()),Q=y8(X,Z),Y=u1(Q);if(Y){const G=Y1(Y,J);G.splice(0,-1,Y),u8(J,G,Z);continue}if(Z.request&&Z.parse&&Z.transform&&Z.handle&&Z.beforeHandle&&Z.afterHandle&&Z.error&&Z.context&&Z.store&&Z.set)break}return Z};import{Value as o0} from"@sinclair/typebox/value";import{Kind as _1} from"@sinclair/typebox";import{Value as M0} from"@sinclair/typebox/value";import{TypeCompiler as r1} from"@sinclair/typebox/compiler";var m8=function($,Z){if(typeof $!=="string")throw new TypeError("argument str must be a string");var W={},X=Z||{},J=X.decode||c8,Q=0;while(Q<$.length){var Y=$.indexOf("=",Q);if(Y===-1)break;var G=$.indexOf(";",Q);if(G===-1)G=$.length;else if(G<Y){Q=$.lastIndexOf(";",Y-1)+1;continue}var B=$.slice(Q,Y).trim();if(W[B]===void 0){var _=$.slice(Y+1,G).trim();if(_.charCodeAt(0)===34)_=_.slice(1,-1);W[B]=i8(_,J)}Q=G+1}return W},d8=function($,Z,W){var X=W||{},J=X.encode||p8;if(typeof J!=="function")throw new TypeError("option encode is invalid");if(!c0.test($))throw new TypeError("argument name is invalid");var Q=J(Z);if(Q&&!c0.test(Q))throw new TypeError("argument val is invalid");var Y=$+"="+Q;if(X.maxAge!=null){var G=X.maxAge-0;if(isNaN(G)||!isFinite(G))throw new TypeError("option maxAge is invalid");Y+="; Max-Age="+Math.floor(G)}if(X.domain){if(!c0.test(X.domain))throw new TypeError("option domain is invalid");Y+="; Domain="+X.domain}if(X.path){if(!c0.test(X.path))throw new TypeError("option path is invalid");Y+="; Path="+X.path}if(X.expires){var B=X.expires;if(!l8(B)||isNaN(B.valueOf()))throw new TypeError("option expires is invalid");Y+="; Expires="+B.toUTCString()}if(X.httpOnly)Y+="; HttpOnly";if(X.secure)Y+="; Secure";if(X.partitioned)Y+="; Partitioned";if(X.priority){var _=typeof X.priority==="string"?X.priority.toLowerCase():X.priority;switch(_){case"low":Y+="; Priority=Low";break;case"medium":Y+="; Priority=Medium";break;case"high":Y+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(X.sameSite){var K=typeof X.sameSite==="string"?X.sameSite.toLowerCase():X.sameSite;switch(K){case!0:Y+="; SameSite=Strict";break;case"lax":Y+="; SameSite=Lax";break;case"strict":Y+="; SameSite=Strict";break;case"none":Y+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Y},c8=function($){return $.indexOf("%")!==-1?decodeURIComponent($):$},p8=function($){return encodeURIComponent($)},l8=function($){return h8.call($)==="[object Date]"||$ instanceof Date},i8=function($,Z){try{return Z($)}catch(W){return $}};/*!
2
+ var q$=Object.create;var{defineProperty:C1,getPrototypeOf:R$,getOwnPropertyNames:L$}=Object;var E$=Object.prototype.hasOwnProperty;var V0=($,Z,W)=>{W=$!=null?q$(R$($)):{};const X=Z||!$||!$.__esModule?C1(W,"default",{value:$,enumerable:!0}):W;for(let J of L$($))if(!E$.call(X,J))C1(X,J,{get:()=>$[J],enumerable:!0});return X};var z0=($,Z)=>()=>(Z||$((Z={exports:{}}).exports,Z),Z.exports);var E1=z0((A8,Y1)=>{var S0=function(){},H$=function($,Z,W){this.fn=$,this.context=Z,this.once=W||!1},L1=function($,Z,W,X,J){if(typeof W!=="function")throw new TypeError("The listener must be a function");var Y=new H$(W,X||$,J),Q=y?y+Z:Z;if(!$._events[Q])$._events[Q]=Y,$._eventsCount++;else if(!$._events[Q].fn)$._events[Q].push(Y);else $._events[Q]=[$._events[Q],Y];return $},u0=function($,Z){if(--$._eventsCount===0)$._events=new S0;else delete $._events[Z]},g=function(){this._events=new S0,this._eventsCount=0},b$=Object.prototype.hasOwnProperty,y="~";if(Object.create){if(S0.prototype=Object.create(null),!new S0().__proto__)y=!1}g.prototype.eventNames=function $(){var Z=[],W,X;if(this._eventsCount===0)return Z;for(X in W=this._events)if(b$.call(W,X))Z.push(y?X.slice(1):X);if(Object.getOwnPropertySymbols)return Z.concat(Object.getOwnPropertySymbols(W));return Z};g.prototype.listeners=function $(Z){var W=y?y+Z:Z,X=this._events[W];if(!X)return[];if(X.fn)return[X.fn];for(var J=0,Y=X.length,Q=new Array(Y);J<Y;J++)Q[J]=X[J].fn;return Q};g.prototype.listenerCount=function $(Z){var W=y?y+Z:Z,X=this._events[W];if(!X)return 0;if(X.fn)return 1;return X.length};g.prototype.emit=function $(Z,W,X,J,Y,Q){var G=y?y+Z:Z;if(!this._events[G])return!1;var B=this._events[G],_=arguments.length,K,z;if(B.fn){if(B.once)this.removeListener(Z,B.fn,void 0,!0);switch(_){case 1:return B.fn.call(B.context),!0;case 2:return B.fn.call(B.context,W),!0;case 3:return B.fn.call(B.context,W,X),!0;case 4:return B.fn.call(B.context,W,X,J),!0;case 5:return B.fn.call(B.context,W,X,J,Y),!0;case 6:return B.fn.call(B.context,W,X,J,Y,Q),!0}for(z=1,K=new Array(_-1);z<_;z++)K[z-1]=arguments[z];B.fn.apply(B.context,K)}else{var M=B.length,A;for(z=0;z<M;z++){if(B[z].once)this.removeListener(Z,B[z].fn,void 0,!0);switch(_){case 1:B[z].fn.call(B[z].context);break;case 2:B[z].fn.call(B[z].context,W);break;case 3:B[z].fn.call(B[z].context,W,X);break;case 4:B[z].fn.call(B[z].context,W,X,J);break;default:if(!K)for(A=1,K=new Array(_-1);A<_;A++)K[A-1]=arguments[A];B[z].fn.apply(B[z].context,K)}}}return!0};g.prototype.on=function $(Z,W,X){return L1(this,Z,W,X,!1)};g.prototype.once=function $(Z,W,X){return L1(this,Z,W,X,!0)};g.prototype.removeListener=function $(Z,W,X,J){var Y=y?y+Z:Z;if(!this._events[Y])return this;if(!W)return u0(this,Y),this;var Q=this._events[Y];if(Q.fn){if(Q.fn===W&&(!J||Q.once)&&(!X||Q.context===X))u0(this,Y)}else{for(var G=0,B=[],_=Q.length;G<_;G++)if(Q[G].fn!==W||J&&!Q[G].once||X&&Q[G].context!==X)B.push(Q[G]);if(B.length)this._events[Y]=B.length===1?B[0]:B;else u0(this,Y)}return this};g.prototype.removeAllListeners=function $(Z){var W;if(Z){if(W=y?y+Z:Z,this._events[W])u0(this,W)}else this._events=new S0,this._eventsCount=0;return this};g.prototype.off=g.prototype.removeListener;g.prototype.addListener=g.prototype.on;g.prefixed=y;g.EventEmitter=g;if(typeof Y1!=="undefined")Y1.exports=g});var p0=z0((I8,c1)=>{var s$=function($){var Z=$.indexOf("%");if(Z===-1)return $;var W=$.length,X="",J=0,Y=0,Q=Z,G=m1;while(Z>-1&&Z<W){var B=d1($[Z+1],4),_=d1($[Z+2],0),K=B|_,z=U1[K];if(G=U1[256+G+z],Y=Y<<6|K&U1[364+z],G===m1)X+=$.slice(J,Q),X+=Y<=65535?String.fromCharCode(Y):String.fromCharCode(55232+(Y>>10),56320+(Y&1023)),Y=0,J=Z+3,Z=Q=$.indexOf("%",J);else if(G===t$)return null;else{if(Z+=3,Z<W&&$.charCodeAt(Z)===37)continue;return null}}return X+$.slice(J)},d1=function($,Z){var W=r$[$];return W===void 0?255:W<<Z},m1=12,t$=0,U1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7],r$={"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};c1.exports=s$});var Y$=z0((p8,J$)=>{var J8=function($){const Z=new X$;if(typeof $!=="string")return Z;let W=$.length,X="",J="",Y=-1,Q=-1,G=!1,B=!1,_=!1,K=!1,z=!1,M=0;for(let A=0;A<W+1;A++)if(M=A!==W?$.charCodeAt(A):38,M===38){if(z=Q>Y,!z)Q=A;if(X=$.slice(Y+1,Q),z||X.length>0){if(_)X=X.replace(W$," ");if(G)X=Z$(X)||X;if(z){if(J=$.slice(Q+1,A),K)J=J.replace(W$," ");if(B)J=Z$(J)||J}const j=Z[X];if(j===void 0)Z[X]=J;else if(j.pop)j.push(J);else Z[X]=[j,J]}J="",Y=A,Q=A,G=!1,B=!1,_=!1,K=!1}else if(M===61)if(Q<=Y)Q=A;else B=!0;else if(M===43)if(Q>Y)K=!0;else _=!0;else if(M===37)if(Q>Y)B=!0;else G=!0;return Z},Z$=p0(),W$=/\+/g,X$=function(){};X$.prototype=Object.create(null);J$.exports=J8});var G$=z0((l8,Q$)=>{var Q8=function($){const Z=$.length;if(Z===0)return"";let W="",X=0,J=0;$:for(;J<Z;J++){let Y=$.charCodeAt(J);while(Y<128){if(Y8[Y]!==1){if(X<J)W+=$.slice(X,J);X=J+1,W+=s[Y]}if(++J===Z)break $;Y=$.charCodeAt(J)}if(X<J)W+=$.slice(X,J);if(Y<2048){X=J+1,W+=s[192|Y>>6]+s[128|Y&63];continue}if(Y<55296||Y>=57344){X=J+1,W+=s[224|Y>>12]+s[128|Y>>6&63]+s[128|Y&63];continue}if(++J,J>=Z)throw new Error("URI malformed");const Q=$.charCodeAt(J)&1023;X=J+1,Y=65536+((Y&1023)<<10|Q),W+=s[240|Y>>18]+s[128|Y>>12&63]+s[128|Y>>6&63]+s[128|Y&63]}if(X===0)return $;if(X<Z)return W+$.slice(X);return W},s=Array.from({length:256},($,Z)=>"%"+((Z<16?"0":"")+Z.toString(16)).toUpperCase()),Y8=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);Q$.exports={encodeString:Q8}});var K$=z0((i8,U$)=>{var B$=function($){const Z=typeof $;if(Z==="string")return N1($);else if(Z==="bigint")return $.toString();else if(Z==="boolean")return $?"true":"false";else if(Z==="number"&&Number.isFinite($))return $<1000000000000000000000?""+$:N1(""+$);return""},G8=function($){let Z="";if($===null||typeof $!=="object")return Z;const W="&",X=Object.keys($),J=X.length;let Y=0;for(let Q=0;Q<J;Q++){const G=X[Q],B=$[G],_=N1(G)+"=";if(Q)Z+=W;if(Array.isArray(B)){Y=B.length;for(let K=0;K<Y;K++){if(K)Z+=W;Z+=_,Z+=B$(B[K])}}else Z+=_,Z+=B$(B)}return Z},{encodeString:N1}=G$();U$.exports=G8});var P1=z0((t8,E0)=>{var _$=Y$(),z$=K$(),D$={parse:_$,stringify:z$};E0.exports=D$;E0.exports.default=D$;E0.exports.parse=_$;E0.exports.stringify=z$});var D0=($,Z)=>({part:$,store:null,inert:Z!==void 0?new Map(Z.map((W)=>[W.part.charCodeAt(0),W])):null,params:null,wildcardStore:null}),q1=($,Z)=>({...$,part:Z}),R1=($)=>({paramName:$,store:null,inert:null});class X0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g};add($,Z,W){let X;if(typeof Z!="string")throw TypeError("Route path must be a string");Z===""?Z="/":Z[0]!=="/"&&(Z=`/${Z}`),this.history.push([$,Z,W]);let J=Z[Z.length-1]==="*";J&&(Z=Z.slice(0,-1));let Y=Z.split(X0.regex.static),Q=Z.match(X0.regex.params)||[];Y[Y.length-1]===""&&Y.pop(),X=this.root[$]?this.root[$]:this.root[$]=D0("/");let G=0;for(let B=0;B<Y.length;++B){let _=Y[B];if(B>0){let K=Q[G++].slice(1);if(X.params===null)X.params=R1(K);else if(X.params.paramName!==K)throw Error(`Cannot create route "${Z}" with parameter "${K}" because a route already exists with a different parameter name ("${X.params.paramName}") in the same location`);let z=X.params;if(z.inert===null){X=z.inert=D0(_);continue}X=z.inert}for(let K=0;;){if(K===_.length){if(K<X.part.length){let z=q1(X,X.part.slice(K));Object.assign(X,D0(_,[z]))}break}if(K===X.part.length){if(X.inert===null)X.inert=new Map;else if(X.inert.has(_.charCodeAt(K))){X=X.inert.get(_.charCodeAt(K)),_=_.slice(K),K=0;continue}let z=D0(_.slice(K));X.inert.set(_.charCodeAt(K),z),X=z;break}if(_[K]!==X.part[K]){let z=q1(X,X.part.slice(K)),M=D0(_.slice(K));Object.assign(X,D0(X.part.slice(0,K),[z,M])),X=M;break}++K}}if(G<Q.length){let B=Q[G],_=B.slice(1);if(X.params===null)X.params=R1(_);else if(X.params.paramName!==_)throw Error(`Cannot create route "${Z}" with parameter "${_}" because a route already exists with a different parameter name ("${X.params.paramName}") in the same location`);return X.params.store===null&&(X.params.store=W),X.params.store}return J?(X.wildcardStore===null&&(X.wildcardStore=W),X.wildcardStore):(X.store===null&&(X.store=W),X.store)}find($,Z){let W=this.root[$];return W?J1(Z,Z.length,W,0):null}}var J1=($,Z,W,X)=>{let J=W?.part,Y=X+J.length;if(J.length>1){if(Y>Z)return null;if(J.length<15){for(let Q=1,G=X+1;Q<J.length;++Q,++G)if(J.charCodeAt(Q)!==$.charCodeAt(G))return null}else if($.substring(X,Y)!==J)return null}if(Y===Z)return W.store!==null?{store:W.store,params:{}}:W.wildcardStore!==null?{store:W.wildcardStore,params:{"*":""}}:null;if(W.inert!==null){let Q=W.inert.get($.charCodeAt(Y));if(Q!==void 0){let G=J1($,Z,Q,Y);if(G!==null)return G}}if(W.params!==null){let Q=W.params,G=$.indexOf("/",Y);if(G!==Y){if(G===-1||G>=Z){if(Q.store!==null){let B={};return B[Q.paramName]=$.substring(Y,Z),{store:Q.store,params:B}}}else if(Q.inert!==null){let B=J1($,Z,Q.inert,G);if(B!==null)return B.params[Q.paramName]=$.substring(Y,G),B}}}return W.wildcardStore!==null?{store:W.wildcardStore,params:{"*":$.substring(Y,Z)}}:null};var b1=V0(E1(),1);var H1=b1.default;var h0=()=>{let $;return[new Promise((W)=>{$=W}),$]},Z0=()=>{const[$,Z]=h0(),[W,X]=h0(),J=[],Y=[];return{signal:$,consume:(Q)=>{switch(Q.type){case"begin":if(Q.unit&&J.length===0)for(let G=0;G<Q.unit;G++){const[B,_]=h0(),[K,z]=h0();J.push(B),Y.push([(M)=>{_({children:[],end:K,name:M.name??"",skip:!1,time:M.time})},(M)=>{z(M)}])}Z({children:J,end:W,name:Q.name??"",skip:!1,time:Q.time});break;case"end":X(Q.time);break}},consumeChild(Q){switch(Q.type){case"begin":if(!Y[0])return;const[G]=Y[0];G({children:[],end:W,name:Q.name??"",skip:!1,time:Q.time});break;case"end":const B=Y.shift();if(!B)return;B[1](Q.time)}},resolve(){Z({children:[],end:new Promise((Q)=>Q(0)),name:"",skip:!0,time:0});for(let[Q,G]of Y)Q({children:[],end:new Promise((B)=>B(0)),name:"",skip:!0,time:0}),G(0);X(0)}}},x1=($,Z,W)=>{if(typeof W==="object")W=W.fn;return async function X(X){if(X.event!=="request"||X.type!=="begin")return;const J=X.id,Y=$(),Q=Z0(),G=Z0(),B=Z0(),_=Z0(),K=Z0(),z=Z0(),M=Z0(),A=Z0();Q.consume(X);const j=(O)=>{if(O.id===J)switch(O.event){case"request":Q.consume(O);break;case"request.unit":Q.consumeChild(O);break;case"parse":G.consume(O);break;case"parse.unit":G.consumeChild(O);break;case"transform":B.consume(O);break;case"transform.unit":B.consumeChild(O);break;case"beforeHandle":_.consume(O);break;case"beforeHandle.unit":_.consumeChild(O);break;case"handle":K.consume(O);break;case"afterHandle":z.consume(O);break;case"afterHandle.unit":z.consumeChild(O);break;case"error":M.consume(O);break;case"error.unit":M.consumeChild(O);break;case"response":if(O.type==="begin")Q.resolve(),G.resolve(),B.resolve(),_.resolve(),K.resolve(),z.resolve(),M.resolve();else Y.off("event",j);A.consume(O);break;case"response.unit":A.consumeChild(O);break;case"exit":Q.resolve(),G.resolve(),B.resolve(),_.resolve(),K.resolve(),z.resolve(),M.resolve();break}};Y.on("event",j),await W({id:J,context:X.ctx,set:X.ctx?.set,store:X.ctx?.store,time:X.time,request:Q.signal,parse:G.signal,transform:B.signal,beforeHandle:_.signal,handle:K.signal,afterHandle:z.signal,error:M.signal,response:A.signal}),Y.emit(`res${J}.${Z}`,void 0)}};var y1=($)=>{if($.startsWith("async"))$=$.slice(6);let Z=-1;if($.charCodeAt(0)===40){if(Z=$.indexOf(") => {\n"),Z!==-1)return[$.slice(1,Z),$.slice(Z+5)];if(Z=$.indexOf(") => "),Z!==-1)return[$.slice(1,Z),$.slice(Z+5)]}if($.startsWith("function")){Z=$.indexOf("(");const X=$.indexOf(")");return[$.slice(Z+1,X),$.slice(X+2)]}const W=$.indexOf("(");if(W!==-1){const[X,J]=$.split("\n",2),Y=X.lastIndexOf(")")+1;return[X.slice(W,Y),"{"+J]}return $.split("\n",2)},v1=($)=>{const Z=$.indexOf("{");if(Z===-1)return[-1,0];let W=Z+1,X=1;for(;W<$.length;W++){const J=$.charCodeAt(W);if(J===123)X++;else if(J===125)X--;if(X===0)break}if(X!==0)return[0,$.length];return[Z,W+1]},x$=($)=>{const Z=$.lastIndexOf("}");if(Z===-1)return[-1,0];let W=Z-1,X=1;for(;W>=0;W--){const J=$.charCodeAt(W);if(J===125)X++;else if(J===123)X--;if(X===0)break}if(X!==0)return[-1,0];return[W,Z+1]},m0=($)=>{if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)$=$.slice(2,-2);while(!0){const[Z,W]=v1($);if(Z===-1)break;$=$.slice(0,Z-2)+$.slice(W+1)}return $.replace(/:/g,"").trim()},g$=($,Z)=>{const W=m0($);if(!Z.query&&W.includes("query"))Z.query=!0;if(!Z.headers&&W.includes("headers"))Z.headers=!0;if(!Z.body&&W.includes("body"))Z.body=!0;if(!Z.cookie&&W.includes("cookie"))Z.cookie=!0;if(!Z.set&&W.includes("set"))Z.set=!0;return W},y$=($,Z)=>{const W=m0($);if(!Z.request&&W.includes("request"))Z.request=!0;if(!Z.parse&&W.includes("parse"))Z.parse=!0;if(!Z.transform&&W.includes("transform"))Z.transform=!0;if(!Z.handle&&W.includes("handle"))Z.handle=!0;if(!Z.beforeHandle&&W.includes("beforeHandle"))Z.beforeHandle=!0;if(!Z.afterHandle&&W.includes("afterHandle"))Z.afterHandle=!0;if(!Z.error&&W.includes("error"))Z.error=!0;if(!Z.context&&W.includes("context"))Z.context=!0;if(!Z.store&&W.includes("store"))Z.store=!0;if(!Z.set&&W.includes("set"))Z.set=!0;return W},k1=($,Z,W)=>{const X=Z.indexOf($+"\n",W),J=Z.indexOf($+"\t",W),Y=Z.indexOf($+",",W),Q=Z.indexOf($+";",W),G=Z.indexOf($+" ",W);return[X,J,Y,Q,G].filter((B)=>B>0).sort((B,_)=>B-_)[0]||-1},v$=($,Z,W)=>{const X=Z.indexOf($+"]",W),J=Z.indexOf($+"'",W),Y=Z.indexOf($+'"',W);return[X,J,Y].filter((Q)=>Q>0).sort((Q,G)=>Q-G)[0]||-1},Q1=($,Z,W=0)=>{if(W>5)return[];const X=[];let J=Z;while(!0){let Y=k1(" = "+$,J);if(Y===-1){const B=J.indexOf(" = "+$);if(B+3+$.length!==J.length)break;Y=B}const Q=J.slice(0,Y);let G=Q.slice(Q.lastIndexOf(" ")+1);if(G==="}"){const[B,_]=x$(Q);X.push(J.slice(B,_)),J=J.slice(Y+3+$.length);continue}while(G.charCodeAt(0)===44)G=G.slice(1);while(G.charCodeAt(0)===9)G=G.slice(1);X.push(G),J=J.slice(Y+3+$.length)}for(let Y of X){if(Y.charCodeAt(0)===123)continue;const Q=Q1(Y,Z);if(Q.length>0)X.push(...Q)}return X},f1=($,Z)=>[$+"."+Z,$+'["'+Z+'"]',$+"['"+Z+"']"],u1=($)=>{if(!$)return;if(!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return $}const W=$.indexOf("...");if(W===-1)return;return $.slice(W+3).trimEnd()},g1=($,Z,W)=>{const X=(J,Y)=>$.includes(Y+"."+J)||$.includes(Y+'["'+J+'"]')||$.includes(Y+"['"+J+"']");for(let J of Z){if(!J)continue;if(J.charCodeAt(0)===123){if(J=m0(J),!W.query&&J.includes("query"))W.query=!0;if(!W.headers&&J.includes("headers"))W.headers=!0;if(!W.body&&J.includes("body"))W.body=!0;if(!W.cookie&&J.includes("cookie"))W.cookie=!0;if(!W.set&&J.includes("set"))W.set=!0;continue}if($.includes("("+J+")")){W.query=!0,W.headers=!0,W.body=!0,W.cookie=!0,W.set=!0,W.queries=[],W.unknownQueries=!0;break}if(!W.query&&X("query",J))W.query=!0;if($.includes("return "+J)||f1("return "+J,"query").some((Y)=>$.includes(Y)))W.query=!0,W.unknownQueries=!0;if(W.query&&!W.unknownQueries)while(!0){let Y=J+".";if($.includes(Y+"query"))Y=J+".query";let Q=!1,G=$.indexOf(Y);if(G===-1)Q=!0,G=$.indexOf(J+'["');if(G===-1)Q=!0,G=$.indexOf(J+"['");if(G===-1&&$.indexOf(J+"[")!==-1){W.queries=[],W.unknownQueries=!0;break}if(G!==-1){let B=Q?v$("",$,G+Y.length+1):k1("",$,G+Y.length+1);if(B===-1)B=void 0;const _=G+J.length+1;$=$.slice(G+J.length+1);let K=$.slice(0,B?B-_:B).trimEnd();while(G!==-1)if(G=K.indexOf("."),G!==-1)K=K.slice(G+1);if(K.charCodeAt(K.length-1)===59)K=K.slice(0,-1);if(K.charCodeAt(K.length-1)===44)K=K.slice(0,-1);if(K.charCodeAt(K.length-1)===93)K=K.slice(0,-1);if(K.charCodeAt(K.length-1)===41)K=K.slice(0,-1);if(Q)K=K.replaceAll(/("|')/g,"");if(K&&!W.queries.includes(K)){W.queries.push(K);continue}}break}if(!W.headers&&X("headers",J))W.headers=!0;if(!W.body&&X("body",J))W.body=!0;if(!W.cookie&&X("cookie",J))W.cookie=!0;if(!W.set&&X("set",J))W.set=!0;if(W.query&&W.headers&&W.body&&W.cookie&&W.set)break}return Z},k$=($)=>{while(!0){const Z=$.indexOf("=");if(Z===-1)break;const W=$.indexOf(",",Z),X=$.indexOf("}",Z),J=[W,X].filter((Y)=>Y>0).sort((Y,Q)=>Y-Q)[0]||-1;if(J===-1){$=$.slice(0,Z);break}$=$.slice(0,Z)+$.slice(J)}return $.split(",").map((Z)=>Z.trim()).join(", ")},f$=($)=>{for(let Z of $){if(Z.charCodeAt(0)===123)return!1;if(Z.indexOf("'")!==-1)return!1;if(Z.indexOf('"')!==-1)return!1;if(Z.indexOf("\n")!==-1)return!1;if(Z.indexOf("\t")!==-1)return!1}return!0},u$=($,Z,W)=>{const X=(J,Y)=>$.includes(J+"."+Y)||$.includes(J+'["'+Y+'"]')||$.includes(J+"['"+Y+"']");for(let J of Z){if(J.charCodeAt(0)===123){if(J=m0(J),!W.request&&J.includes("request"))W.request=!0;if(!W.parse&&J.includes("parse"))W.parse=!0;if(!W.transform&&J.includes("transform"))W.transform=!0;if(!W.handle&&J.includes("handle"))W.handle=!0;if(!W.beforeHandle&&J.includes("beforeHandle"))W.beforeHandle=!0;if(!W.afterHandle&&J.includes("afterHandle"))W.afterHandle=!0;if(!W.error&&J.includes("error"))W.error=!0;if(!W.context&&J.includes("context"))W.context=!0;if(!W.store&&J.includes("store"))W.store=!0;if(!W.set&&J.includes("set"))W.set=!0;continue}if($.includes("("+J+")")){W.request=!0,W.parse=!0,W.transform=!0,W.handle=!0,W.beforeHandle=!0,W.afterHandle=!0,W.error=!0,W.context=!0,W.store=!0,W.set=!0;break}if(!W.request&&X("request",J))W.request=!0;if(!W.parse&&X("parse",J))W.parse=!0;if(!W.transform&&X("transform",J))W.transform=!0;if(!W.handle&&X("handle",J))W.handle=!0;if(!W.beforeHandle&&X("beforeHandle",J))W.beforeHandle=!0;if(!W.afterHandle&&X("afterHandle",J))W.afterHandle=!0;if(!W.error&&X("error",J))W.error=!0;if(!W.context&&X("context",J))W.context=!0;if(!W.store&&X("store",J))W.store=!0;if(!W.set&&X("set",J))W.set=!0;if(W.request&&W.parse&&W.transform&&W.handle&&W.beforeHandle&&W.afterHandle&&W.error&&W.context&&W.store&&W.set)break}return Z},d0=($,Z={queries:[],query:!1,headers:!1,body:!1,cookie:!1,set:!1,unknownQueries:!1})=>{const W=[];if($.handler&&typeof $.handler==="function")W.push($.handler);if($.beforeHandle?.length)W.push(...$.beforeHandle);if($.parse?.length)W.push(...$.parse);if($.error?.length)W.push(...$.error);if($.transform?.length)W.push(...$.transform);if($.afterHandle?.length)W.push(...$.afterHandle);if($.mapResponse?.length)W.push(...$.mapResponse);if($.request?.length)W.push(...$.request);if($.onResponse?.length)W.push(...$.onResponse);for(let X of W){if(!X)continue;const J="fn"in X?X.fn:X,[Y,Q]=y1(J.toString()),G=g$(Y,Z),B=u1(G);if(B){const K=Q1(B,Q);K.splice(0,-1,B),g1(Q,K,Z)}const _=G||B;if(_&&["","return "].some((K)=>f1(K+_,"query").some((z)=>Q.includes(z))))Z.query=!0,Z.unknownQueries=!0;if(Z.query){g1(Q,["query"],Z);const K=Y.indexOf("query: {");if(K!==-1){const z=Y.slice(K+7),[M,A]=v1(z),j=k$(z.slice(M,A));for(let O of j.slice(1,-1).split(",")){const U=O.indexOf(":");if(U!==-1)O=O.slice(0,U);if(O=O.trim(),O&&!Z.queries.includes(O))Z.queries.push(O.trim())}}}if(Z.query&&Z.headers&&Z.body&&Z.cookie&&Z.set)break}if(!f$(Z.queries))Z.unknownQueries=!0,Z.queries=[];return Z},h1=($,Z={request:!1,parse:!1,transform:!1,handle:!1,beforeHandle:!1,afterHandle:!1,error:!1,context:!1,store:!1,set:!1})=>{for(let W of $){const[X,J]=y1(W.toString()),Y=y$(X,Z),Q=u1(Y);if(Q){const G=Q1(Q,J);G.splice(0,-1,Q),u$(J,G,Z);continue}if(Z.request&&Z.parse&&Z.transform&&Z.handle&&Z.beforeHandle&&Z.afterHandle&&Z.error&&Z.context&&Z.store&&Z.set)break}return Z};import{Value as o0} from"@sinclair/typebox/value";import{Kind as _1} from"@sinclair/typebox";import{Value as M0} from"@sinclair/typebox/value";import{TypeCompiler as r1} from"@sinclair/typebox/compiler";var m$=function($,Z){if(typeof $!=="string")throw new TypeError("argument str must be a string");var W={},X=Z||{},J=X.decode||c$,Y=0;while(Y<$.length){var Q=$.indexOf("=",Y);if(Q===-1)break;var G=$.indexOf(";",Y);if(G===-1)G=$.length;else if(G<Q){Y=$.lastIndexOf(";",Q-1)+1;continue}var B=$.slice(Y,Q).trim();if(W[B]===void 0){var _=$.slice(Q+1,G).trim();if(_.charCodeAt(0)===34)_=_.slice(1,-1);W[B]=i$(_,J)}Y=G+1}return W},d$=function($,Z,W){var X=W||{},J=X.encode||p$;if(typeof J!=="function")throw new TypeError("option encode is invalid");if(!c0.test($))throw new TypeError("argument name is invalid");var Y=J(Z);if(Y&&!c0.test(Y))throw new TypeError("argument val is invalid");var Q=$+"="+Y;if(X.maxAge!=null){var G=X.maxAge-0;if(isNaN(G)||!isFinite(G))throw new TypeError("option maxAge is invalid");Q+="; Max-Age="+Math.floor(G)}if(X.domain){if(!c0.test(X.domain))throw new TypeError("option domain is invalid");Q+="; Domain="+X.domain}if(X.path){if(!c0.test(X.path))throw new TypeError("option path is invalid");Q+="; Path="+X.path}if(X.expires){var B=X.expires;if(!l$(B)||isNaN(B.valueOf()))throw new TypeError("option expires is invalid");Q+="; Expires="+B.toUTCString()}if(X.httpOnly)Q+="; HttpOnly";if(X.secure)Q+="; Secure";if(X.partitioned)Q+="; Partitioned";if(X.priority){var _=typeof X.priority==="string"?X.priority.toLowerCase():X.priority;switch(_){case"low":Q+="; Priority=Low";break;case"medium":Q+="; Priority=Medium";break;case"high":Q+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(X.sameSite){var K=typeof X.sameSite==="string"?X.sameSite.toLowerCase():X.sameSite;switch(K){case!0:Q+="; SameSite=Strict";break;case"lax":Q+="; SameSite=Lax";break;case"strict":Q+="; SameSite=Strict";break;case"none":Q+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Q},c$=function($){return $.indexOf("%")!==-1?decodeURIComponent($):$},p$=function($){return encodeURIComponent($)},l$=function($){return h$.call($)==="[object Date]"||$ instanceof Date},i$=function($,Z){try{return Z($)}catch(W){return $}};/*!
3
3
  * cookie
4
4
  * Copyright(c) 2012-2014 Roman Shtylman
5
5
  * Copyright(c) 2015 Douglas Christopher Wilson
6
6
  * MIT Licensed
7
- */var G1=m8,B1=d8;var h8=Object.prototype.toString,c0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var l1=V0(p0(),1);class n{$;Z;W;constructor($,Z,W={}){this.name=$;this.jar=Z;this.initial=W}get cookie(){if(!(this.name in this.jar))return this.initial;return this.jar[this.name]}set cookie($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=$}get value(){return this.cookie.value}set value($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name].value=$}get expires(){return this.cookie.expires}set expires($){this.cookie.expires=$}get maxAge(){return this.cookie.maxAge}set maxAge($){this.cookie.maxAge=$}get domain(){return this.cookie.domain}set domain($){this.cookie.domain=$}get path(){return this.cookie.path}set path($){this.cookie.path=$}get secure(){return this.cookie.secure}set secure($){this.cookie.secure=$}get httpOnly(){return this.cookie.httpOnly}set httpOnly($){this.cookie.httpOnly=$}get sameSite(){return this.cookie.sameSite}set sameSite($){this.cookie.sameSite=$}get priority(){return this.cookie.priority}set priority($){this.cookie.priority=$}get secrets(){return this.cookie.secrets}set secrets($){this.cookie.secrets=$}update($){return this.cookie=Object.assign(this.cookie,typeof $==="function"?$(this.cookie):$),this}set($){return this.cookie=Object.assign({...this.initial,value:this.value},typeof $==="function"?$(this.cookie):$),this}remove(){if(this.value===void 0)return;return this.set({expires:new Date(0),maxAge:0,value:""}),this}toString(){return typeof this.value==="object"?JSON.stringify(this.value):this.value?.toString()??""}}var p1=($,Z,W)=>{if(!$.cookie)$.cookie={};return new Proxy(Z,{get(X,J){if(J in Z)return new n(J,$.cookie,Object.assign({},W??{},Z[J]));return new n(J,$.cookie,Object.assign({},W))}})},l0=async($,Z,{secret:W,sign:X,...J}={})=>{if(!Z)return p1($,{},J);const Q=typeof W==="string";if(X&&X!==!0&&!Array.isArray(X))X=[X];const Y={},G=G1(Z);for(let[B,_]of Object.entries(G)){let K=l1.default(_);if(X===!0||X?.includes(B)){if(!W)throw new Error("No secret is provided to cookie plugin");if(Q){const M=await K1(K,W);if(M===!1)throw new T0(B);K=M}else{let M=!0;for(let A=0;A<W.length;A++){const j=await K1(K,W[A]);if(j!==!1){M=!0,K=j;break}}if(!M)throw new T0(B)}}const z=K.charCodeAt(0);if(z===123||z===91)try{Y[B]={value:JSON.parse(K)};continue}catch{}if(D0(K)){Y[B]={value:parseInt(K)};continue}if(K==="true"){Y[B]={value:!0};continue}if(K==="false"){Y[B]={value:!1};continue}Y[B]={value:K}}return p1($,Y,J)};var C0="toJSON"in new Headers,m=($)=>{if(!$)return!1;for(let Z in $)return!0;return!1},q0=($,Z)=>{const W=$.size;if(!Z&&W||W&&Z&&Z.status!==206&&Z.status!==304&&Z.status!==412&&Z.status!==416){if(Z){if(Z.headers instanceof Headers){if(C0)Z.headers=Z.headers.toJSON();else for(let[X,J]of Z.headers.entries())if(X in Z.headers)Z.headers[X]=J}return new Response($,{status:Z.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${W-1}/${W}`},Z.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${W-1}/${W}`}})}return new Response($)},i1=($,Z)=>{if(!$)return $;$.delete("Set-Cookie");for(let W=0;W<Z.length;W++){const X=Z[W].indexOf("=");$.append("Set-Cookie",`${Z[W].slice(0,X)}=${Z[W].slice(X+1)||""}`)}return $},t1=($)=>{if(!$||!m($))return;const Z=[];for(let[W,X]of Object.entries($)){if(!W||!X)continue;const J=X.value;if(J===void 0||J===null)continue;Z.push(B1(W,typeof J==="object"?JSON.stringify(J):J+"",X))}if(Z.length===0)return;if(Z.length===1)return Z[0];return Z},h=($,Z,W)=>{if($?.$passthrough)$=$?.[$.$passthrough];if($?.[d])Z.status=$[d],$=$.response;if(m(Z.headers)||Z.status!==200||Z.redirect||Z.cookie){if(typeof Z.status==="string")Z.status=J0[Z.status];if(Z.redirect){if(Z.headers.Location=Z.redirect,!Z.status||Z.status<300||Z.status>=400)Z.status=302}if(Z.cookie&&m(Z.cookie))Z.headers["Set-Cookie"]=t1(Z.cookie);if(Z.headers["Set-Cookie"]&&Array.isArray(Z.headers["Set-Cookie"]))Z.headers=i1(new Headers(Z.headers),Z.headers["Set-Cookie"]);switch($?.constructor?.name){case"String":return new Response($,Z);case"Blob":return q0($,Z);case"Object":case"Array":return Response.json($,Z);case"ReadableStream":if(!Z.headers["content-type"]?.startsWith("text/event-stream"))Z.headers["content-type"]="text/event-stream; charset=utf-8";return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,Z);case void 0:if(!$)return new Response("",Z);return Response.json($,Z);case"Response":const X={...Z.headers};if(C0)Z.headers=$.headers.toJSON();else for(let[J,Q]of $.headers.entries())if(J in Z.headers)Z.headers[J]=Q;for(let J in X)$.headers.append(J,X[J]);return $;case"Error":return t($,Z);case"Promise":return $.then((J)=>h(J,Z));case"Function":return h($(),Z);case"Number":case"Boolean":return new Response($.toString(),Z);case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response){const J=Object.assign({},Z.headers);if(C0)Z.headers=$.headers.toJSON();else for(let[Q,Y]of $.headers.entries())if(Q in Z.headers)Z.headers[Q]=Y;for(let Q in J)$.headers.append(Q,J[Q]);return $}if($ instanceof Promise)return $.then((J)=>h(J,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($,Z)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return q0($,Z);case"Object":case"Array":return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":return $;case"Error":return t($,Z);case"Promise":return $.then((X)=>{const J=o(X);if(J!==void 0)return J;return new Response("")});case"Function":return o($());case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((X)=>h(X,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const X=$.charCodeAt(0);if(X===123||X===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($)}},u=($,Z,W)=>{if($===void 0||$===null)return;if($?.$passthrough)$=$?.[$.$passthrough];if($?.[d])Z.status=$[d],$=$.response;if(m(Z.headers)||Z.status!==200||Z.redirect||Z.cookie){if(typeof Z.status==="string")Z.status=J0[Z.status];if(Z.redirect){if(Z.headers.Location=Z.redirect,!Z.status||Z.status<300||Z.status>=400)Z.status=302}if(Z.cookie&&m(Z.cookie))Z.headers["Set-Cookie"]=t1(Z.cookie);if(Z.headers["Set-Cookie"]&&Array.isArray(Z.headers["Set-Cookie"]))Z.headers=i1(new Headers(Z.headers),Z.headers["Set-Cookie"]);switch($?.constructor?.name){case"String":return new Response($,Z);case"Blob":return q0($,Z);case"Object":case"Array":return Response.json($,Z);case"ReadableStream":if(!Z.headers["content-type"]?.startsWith("text/event-stream"))Z.headers["content-type"]="text/event-stream; charset=utf-8";return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,Z);case void 0:if(!$)return;return Response.json($,Z);case"Response":const X=Object.assign({},Z.headers);if(C0)Z.headers=$.headers.toJSON();else for(let[J,Q]of $.headers.entries())if(!(J in Z.headers))Z.headers[J]=Q;for(let J in X)$.headers.append(J,X[J]);if($.status!==Z.status)Z.status=$.status;return $;case"Promise":return $.then((J)=>{const Q=u(J,Z);if(Q!==void 0)return Q});case"Error":return t($,Z);case"Function":return u($(),Z);case"Number":case"Boolean":return new Response($.toString(),Z);case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response){const J={...Z.headers};if(C0)Z.headers=$.headers.toJSON();else for(let[Q,Y]of $.headers.entries())if(Q in Z.headers)Z.headers[Q]=Y;for(let Q in J)$.headers.append(Q,J[Q]);return $}if($ instanceof Promise)return $.then((J)=>u(J,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($,Z)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return q0($,Z);case"Object":case"Array":return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":return $;case"Promise":return $.then((X)=>{const J=u(X,Z);if(J!==void 0)return J});case"Error":return t($,Z);case"Function":return o($());case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((X)=>u(X,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const X=$.charCodeAt(0);if(X===123||X===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($)}},o=($,Z)=>{if($?.$passthrough)$=$?.[$.$passthrough];if($?.[d])return h($.response,{status:$[d],headers:{}});switch($?.constructor?.name){case"String":return new Response($);case"Blob":return q0($);case"Object":case"Array":return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"ReadableStream":return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":return $;case"Error":return t($);case"Promise":return $.then(o);case"Function":return o($());case"Number":case"Boolean":return new Response($.toString());default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then(o);if($ instanceof Error)return t($);const W=JSON.stringify($);if(W.charCodeAt(0)===123)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}});return new Response(W)}},t=($,Z)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:Z?.status!==200?Z?.status??500:500,headers:Z?.headers});var X$=function($){let Z=$;while(Z.endsWith("="))Z=Z.slice(0,-1);return Z},F1=($,Z)=>{const W=new URL($);return W.pathname=Z,W.toString()},n8=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")||m(Object.getPrototypeOf($)),z1=($)=>$&&typeof $==="object"&&!Array.isArray($),p=($,Z,{skipKeys:W}={})=>{if(z1($)&&z1(Z))for(let[X,J]of Object.entries(Z)){if(W?.includes(X))continue;if(!z1(J)||!(X in $)||n8(J)){$[X]=J;continue}$[X]=p($[X],J)}return $},o8=($,Z)=>{const{properties:W,...X}=$??{},{properties:J,...Q}=Z??{};return p(X,Q)},H=($=[],Z=[])=>{if(!$)return[];if(!Z)return $;const W=[],X=[];if(!Array.isArray($))$=[$];if(!Array.isArray(Z))Z=[Z];for(let J of $)if(W.push(J),J.checksum)X.push(J.checksum);for(let J of Z)if(!X.includes(J.checksum))W.push(J);return W},a8=["start","request","parse","transform","resolve","beforeHandle","afterHandle","onResponse","mapResponse","trace","error","stop","body","headers","params","query","response","type","detail"],e8=a8.reduce(($,Z)=>($[Z]=!0,$),{}),$$=($,Z)=>{const W=(X)=>typeof X==="object"&&Object.keys(X).every(D0);if(W($)&&W(Z))return{...$,...Z};return Z??$},f=($,Z,{allowMacro:W=!1}={})=>{return{...W?{...$,...Z}:void 0,body:Z?.body??$?.body,headers:Z?.headers??$?.headers,params:Z?.params??$?.params,query:Z?.query??$?.query,response:$$($?.response,Z?.response),type:$?.type||Z?.type,detail:p(Z?.detail??{},$?.detail??{}),parse:H($?.parse,Z?.parse),transform:H($?.transform,Z?.transform),beforeHandle:H($?.beforeHandle,Z?.beforeHandle),afterHandle:H($?.afterHandle,Z?.afterHandle),onResponse:H($?.onResponse,Z?.onResponse),mapResponse:H($?.mapResponse,Z?.mapResponse),trace:H($?.trace,Z?.trace),error:H($?.error,Z?.error)}},k=($,{models:Z={},dynamic:W=!1,normalize:X=!1,additionalProperties:J=X})=>{if(!$)return;if(typeof $==="string"&&!($ in Z))return;const Q=typeof $==="string"?Z[$]:$;if(Q.type==="object"&&"additionalProperties"in Q===!1)Q.additionalProperties=J;const Y=(B)=>M0.Clean(Q,B);if(W){const B={schema:Q,references:"",checkFunc:()=>{},code:"",Check:(_)=>M0.Check(Q,_),Errors:(_)=>M0.Errors(Q,_),Code:()=>""};if(X&&Q.additionalProperties===!0)B.Clean=Y;if(Q.config){if(B.config=Q.config,B?.schema?.config)delete B.schema.config}return B}const G=r1.Compile(Q,Object.values(Z));if(G.Clean=Y,Q.config){if(G.config=Q.config,G?.schema?.config)delete G.schema.config}return G},i0=($,{models:Z={},dynamic:W=!1,normalize:X=!1,additionalProperties:J=X})=>{if(!$)return;if(typeof $==="string"&&!($ in Z))return;const Q=typeof $==="string"?Z[$]:$,Y=(B,_)=>{const K=(M)=>M0.Clean(B,M);if(W)return{schema:B,references:"",checkFunc:()=>{},code:"",Check:(M)=>M0.Check(B,M),Errors:(M)=>M0.Errors(B,M),Code:()=>""};const z=r1.Compile(B,_);if(X&&B.additionalProperties===!0)z.Clean=K;return z};if(_1 in Q){if("additionalProperties"in Q===!1)Q.additionalProperties=J;return{200:Y(Q,Object.values(Z))}}const G={};return Object.keys(Q).forEach((B)=>{const _=Q[+B];if(typeof _==="string"){if(_ in Z){const K=Z[_];K.type==="object"&&"additionalProperties"in K,G[+B]=_1 in K?Y(K,Object.values(Z)):K}return}if(_.type==="object"&&"additionalProperties"in _===!1)_.additionalProperties=J;G[+B]=_1 in _?Y(_,Object.values(Z)):_}),G},Z$=typeof Bun!=="undefined",W$=Z$&&typeof Bun.hash==="function",R0=($)=>{if(W$)return Bun.hash($);let Z=9;for(let W=0;W<$.length;)Z=Math.imul(Z^$.charCodeAt(W++),387420489);return Z=Z^Z>>>9},t0=({validator:$,defaultConfig:Z={},config:W,dynamic:X,models:J})=>{let Q=k($,{dynamic:X,models:J,additionalProperties:!0});if(m(Z))if(Q)Q.config=o8(Q.config,W);else Q=k(T.Cookie({}),{dynamic:X,models:J,additionalProperties:!0}),Q.config=Z;return Q},s0=($,Z,W)=>{const X=(J)=>{if(!J)return;if(!Array.isArray(J)){const Y=J;if(W&&!Y.checksum)Y.checksum=W;if(Y.scope==="scoped")Y.scope="local";return Y}const Q=[...J];for(let Y of Q){if(W&&!Y.checksum)Y.checksum=W;if(Y.scope==="scoped")Y.scope="local"}return Q};return{start:H($.start,X(Z?.start)),request:H($.request,X(Z?.request)),parse:H($.parse,X(Z?.parse)),transform:H($.transform,X(Z?.transform)),beforeHandle:H($.beforeHandle,X(Z?.beforeHandle)),afterHandle:H($.afterHandle,X(Z?.afterHandle)),mapResponse:H($.mapResponse,X(Z?.mapResponse)),onResponse:H($.onResponse,X(Z?.onResponse)),trace:$.trace,error:H($.error,X(Z?.error)),stop:H($.stop,X(Z?.stop))}},n1=($,Z,{skipIfHasType:W=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(W)$.scope??=Z;else $.scope=Z;return $}for(let X of $)if(W)X.scope??=Z;else X.scope=Z;return $},Q0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const Z=[];for(let W of $)switch(W.scope){case"global":case"scoped":Z.push({...W});break}return Z},D1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:Q0($?.parse),transform:Q0($?.transform),beforeHandle:Q0($?.beforeHandle),afterHandle:Q0($?.afterHandle),onResponse:Q0($?.onResponse),error:Q0($?.error),mapResponse:Q0($?.mapResponse)}},J0={Continue:100,"Switching Protocols":101,Processing:102,"Early Hints":103,OK:200,Created:201,Accepted:202,"Non-Authoritative Information":203,"No Content":204,"Reset Content":205,"Partial Content":206,"Multi-Status":207,"Already Reported":208,"Multiple Choices":300,"Moved Permanently":301,Found:302,"See Other":303,"Not Modified":304,"Temporary Redirect":307,"Permanent Redirect":308,"Bad Request":400,Unauthorized:401,"Payment Required":402,Forbidden:403,"Not Found":404,"Method Not Allowed":405,"Not Acceptable":406,"Proxy Authentication Required":407,"Request Timeout":408,Conflict:409,Gone:410,"Length Required":411,"Precondition Failed":412,"Payload Too Large":413,"URI Too Long":414,"Unsupported Media Type":415,"Range Not Satisfiable":416,"Expectation Failed":417,"I'm a teapot":418,"Misdirected Request":421,"Unprocessable Content":422,Locked:423,"Failed Dependency":424,"Too Early":425,"Upgrade Required":426,"Precondition Required":428,"Too Many Requests":429,"Request Header Fields Too Large":431,"Unavailable For Legal Reasons":451,"Internal Server Error":500,"Not Implemented":501,"Bad Gateway":502,"Service Unavailable":503,"Gateway Timeout":504,"HTTP Version Not Supported":505,"Variant Also Negotiates":506,"Insufficient Storage":507,"Loop Detected":508,"Not Extended":510,"Network Authentication Required":511},r0=Object.fromEntries(Object.entries(J0).map(([$,Z])=>[Z,$])),s1=new TextEncoder,A0=async($,Z)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(Z===null)throw new TypeError("Secret key must be provided.");const W=await crypto.subtle.importKey("raw",s1.encode(Z),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),X=await crypto.subtle.sign("HMAC",W,s1.encode($));return $+"."+X$(Buffer.from(X).toString("base64"))},K1=async($,Z)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(Z===null)throw new TypeError("Secret key must be provided.");const W=$.slice(0,$.lastIndexOf("."));return await A0(W,Z)===$?W:!1},M1=($,Z,W=Z)=>{if(!$||typeof $!=="object"||!Z)return;for(let[X,J]of Object.entries(Z)){if(X in e8||!(X in $))continue;const Q=$[X];if(typeof Q==="function")Q(J);else if(typeof Q==="object")M1(Q,J,W)}},o1=({globalHook:$,localHook:Z})=>(W)=>(X,J)=>{if(typeof X==="function")X={fn:X};if("fn"in X||Array.isArray(X)){if(!Z[W])Z[W]=[];if(typeof Z[W]==="function")Z[W]=[Z[W]];if(Array.isArray(X))Z[W]=Z[W].concat(X);else Z[W].push(X);return}const{insert:Q="after",stack:Y="local"}=X;if(typeof J==="function")J={fn:J};if(Y==="global")if(!Array.isArray(J))if(Q==="before")$[W].unshift(J);else $[W].push(J);else if(Q==="before")$[W]=J.concat($[W]);else $[W]=$[W].concat(J);else{if(!Z[W])Z[W]=[];if(typeof Z[W]==="function")Z[W]=[Z[W]];if(!Array.isArray(J))if(Q==="before")Z[W].unshift(J);else Z[W].push(J);else if(Q==="before")Z[W]=J.concat(Z[W]);else Z[W]=Z[W].concat(J)}},D0=($)=>{if($.length<16)return $.trim().length!==0&&!Number.isNaN(Number($));if($.length===16){const Z=Number($);if(Z.toString()===$)return $.trim().length!==0&&!Number.isNaN(Z)}return!1};class A1{$;root=null;promises=[];constructor($=console.error){this.onError=$}get size(){return this.promises.length}add($){return this.promises.push($),this.root||=this.drain(),$}async drain(){while(this.promises.length>0){try{await this.promises[0]}catch($){this.onError($)}this.promises.shift()}this.root=null}then($,Z){return(this.root??Promise.resolve()).then($,Z)}}var c=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const Z=[];for(let W of $)if(typeof W==="function")Z.push({fn:W});else if("fn"in W)Z.push(W);return Z},a1=($)=>{return{...$,start:c($?.start),request:c($?.request),parse:c($?.parse),transform:c($?.transform),beforeHandle:c($?.beforeHandle),afterHandle:c($?.afterHandle),onResponse:c($?.onResponse),mapResponse:c($?.mapResponse),trace:c($?.trace),error:c($?.error),stop:c($?.stop)}},e1=($)=>{return{...$,start:$.start?.map((Z)=>Z.fn),request:$.request?.map((Z)=>Z.fn),parse:$.parse?.map((Z)=>Z.fn),transform:$.transform?.map((Z)=>Z.fn),beforeHandle:$.beforeHandle?.map((Z)=>Z.fn),afterHandle:$.afterHandle?.map((Z)=>Z.fn),onResponse:$.onResponse?.map((Z)=>Z.fn),mapResponse:$.mapResponse?.map((Z)=>Z.fn),trace:$.trace?.map((Z)=>Z.fn),error:$.error?.map((Z)=>Z.fn),stop:$.stop?.map((Z)=>Z.fn)}},n0=($)=>({event:{body:$.event.body,cookie:$.event.cookie,headers:$.event.headers,queries:[...$.event.queries],query:$.event.query,set:$.event.set,unknownQueries:$.event.unknownQueries},trace:{request:$.trace.request,parse:$.trace.parse,transform:$.trace.transform,handle:$.trace.handle,beforeHandle:$.trace.beforeHandle,afterHandle:$.trace.afterHandle,error:$.trace.error,context:$.trace.context,store:$.trace.store,set:$.trace.set}});var $8=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,Y0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),L0=($8?.NODE_ENV??$8?.ENV)==="production",N1=($,Z)=>({[d]:J0[$]??$,response:Z??($ in r0?r0[$]:$),_type:void 0});class a0 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class G0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class e0 extends Error{Z;code="PARSE";status=400;constructor($,Z){super($??"PARSE");this.body=Z}}class T0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,Z){super(Z??`"${$}" has invalid cookie signature`);this.key=$}}class R extends Error{$;Z;W;code="VALIDATION";status=422;constructor($,Z,W){if(typeof W==="object"&&d in W)W=W.response;const X=L0?void 0:("Errors"in Z)?Z.Errors(W).First():o0.Errors(Z,W).First(),J=X?.schema.error?typeof X.schema.error==="function"?X.schema.error($,Z,W):X.schema.error:void 0,Q=X?.path||"root";let Y="";if(J)Y=typeof J==="object"?JSON.stringify(J):J+"";else if(L0)Y=JSON.stringify({type:"validation",on:$,message:X?.message,found:W});else{const G=Z?.schema??Z,B="Errors"in Z?[...Z.Errors(W)]:[...o0.Errors(Z,W)];let _;try{_=o0.Create(G)}catch(K){_={type:"Could not create expected value",message:K?.message,error:K}}Y=JSON.stringify({type:"validation",on:$,property:Q,message:X?.message,expected:_,found:W,errors:B},null,2)}super(Y);this.type=$;this.validator=Z;this.value=W;Object.setPrototypeOf(this,R.prototype)}get all(){return[...this.validator.Errors(this.value)]}static simplifyModel($){const Z="schema"in $?$.schema:$;try{return o0.Create(Z)}catch{return Z}}get model(){return R.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var j1={open($){$.data.open?.($)},message($,Z){$.data.message?.($,Z)},drain($){$.data.drain?.($)},close($,Z,W){$.data.close?.($,Z,W)}};class N0{$;Z;validator;constructor($,Z){this.raw=$;this.data=Z;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else{const W=new Uint32Array(1);crypto.getRandomValues(W),this.id=W[0].toString()}}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,Z=void 0,W)=>{if(this.validator?.Check(Z)===!1)throw new R("message",this.validator,Z);if(typeof Z==="object")Z=JSON.stringify(Z);return this.raw.publish($,Z,W),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new R("message",this.validator,$);if(Buffer.isBuffer($))return this.raw.send($),this;if(typeof $==="object")$=JSON.stringify($);return this.raw.send($),this}}get subscribe(){return($)=>{return this.raw.subscribe($),this}}get unsubscribe(){return($)=>{return this.raw.unsubscribe($),this}}get cork(){return($)=>{return this.raw.cork($),this}}get close(){return()=>{return this.raw.close(),this}}get terminate(){return this.raw.terminate.bind(this.raw)}get isSubscribed(){return this.raw.isSubscribed.bind(this.raw)}get remoteAddress(){return this.raw.remoteAddress}}var D8=V0(P1(),1),M8=V0(p0(),1);import{Value as b0} from"@sinclair/typebox/value";var B$=(new Headers()).toJSON,A8={value:0},N8=({hasTrace:$,hasTraceSet:Z=!1,addFn:W,condition:X={}})=>{if($)return W("\nconst reporter = getReporter()\n"),(J,{name:Q,attribute:Y="",unit:G=0}={})=>{const B=J.indexOf("."),_=B===-1;if(J!=="request"&&J!=="response"&&!X[_?J:J.slice(0,B)])return()=>{if(Z&&J==="afterHandle")W("\nawait traceDone\n")};if(_)Q||=J;else Q||="anonymous";W("\n"+`reporter.emit('event', {
7
+ */var G1=m$,B1=d$;var h$=Object.prototype.toString,c0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var l1=V0(p0(),1);class n{$;Z;W;constructor($,Z,W={}){this.name=$;this.jar=Z;this.initial=W}get cookie(){if(!(this.name in this.jar))return this.initial;return this.jar[this.name]}set cookie($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=$}get value(){return this.cookie.value}set value($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name].value=$}get expires(){return this.cookie.expires}set expires($){this.cookie.expires=$}get maxAge(){return this.cookie.maxAge}set maxAge($){this.cookie.maxAge=$}get domain(){return this.cookie.domain}set domain($){this.cookie.domain=$}get path(){return this.cookie.path}set path($){this.cookie.path=$}get secure(){return this.cookie.secure}set secure($){this.cookie.secure=$}get httpOnly(){return this.cookie.httpOnly}set httpOnly($){this.cookie.httpOnly=$}get sameSite(){return this.cookie.sameSite}set sameSite($){this.cookie.sameSite=$}get priority(){return this.cookie.priority}set priority($){this.cookie.priority=$}get secrets(){return this.cookie.secrets}set secrets($){this.cookie.secrets=$}update($){return this.cookie=Object.assign(this.cookie,typeof $==="function"?$(this.cookie):$),this}set($){return this.cookie=Object.assign({...this.initial,value:this.value},typeof $==="function"?$(this.cookie):$),this}remove(){if(this.value===void 0)return;return this.set({expires:new Date(0),maxAge:0,value:""}),this}toString(){return typeof this.value==="object"?JSON.stringify(this.value):this.value?.toString()??""}}var p1=($,Z,W)=>{if(!$.cookie)$.cookie={};return new Proxy(Z,{get(X,J){if(J in Z)return new n(J,$.cookie,Object.assign({},W??{},Z[J]));return new n(J,$.cookie,Object.assign({},W))}})},l0=async($,Z,{secret:W,sign:X,...J}={})=>{if(!Z)return p1($,{},J);const Y=typeof W==="string";if(X&&X!==!0&&!Array.isArray(X))X=[X];const Q={},G=G1(Z);for(let[B,_]of Object.entries(G)){let K=l1.default(_);if(X===!0||X?.includes(B)){if(!W)throw new Error("No secret is provided to cookie plugin");if(Y){const M=await K1(K,W);if(M===!1)throw new T0(B);K=M}else{let M=!0;for(let A=0;A<W.length;A++){const j=await K1(K,W[A]);if(j!==!1){M=!0,K=j;break}}if(!M)throw new T0(B)}}const z=K.charCodeAt(0);if(z===123||z===91)try{Q[B]={value:JSON.parse(K)};continue}catch{}if(F0(K)){Q[B]={value:parseInt(K)};continue}if(K==="true"){Q[B]={value:!0};continue}if(K==="false"){Q[B]={value:!1};continue}Q[B]={value:K}}return p1($,Q,J)};var C0="toJSON"in new Headers,m=($)=>{if(!$)return!1;for(let Z in $)return!0;return!1},q0=($,Z)=>{const W=$.size;if(!Z&&W||W&&Z&&Z.status!==206&&Z.status!==304&&Z.status!==412&&Z.status!==416){if(Z){if(Z.headers instanceof Headers){if(C0)Z.headers=Z.headers.toJSON();else for(let[X,J]of Z.headers.entries())if(X in Z.headers)Z.headers[X]=J}return new Response($,{status:Z.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${W-1}/${W}`},Z.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${W-1}/${W}`}})}return new Response($)},i1=($,Z)=>{if(!$)return $;$.delete("Set-Cookie");for(let W=0;W<Z.length;W++){const X=Z[W].indexOf("=");$.append("Set-Cookie",`${Z[W].slice(0,X)}=${Z[W].slice(X+1)||""}`)}return $},t1=($)=>{if(!$||!m($))return;const Z=[];for(let[W,X]of Object.entries($)){if(!W||!X)continue;const J=X.value;if(J===void 0||J===null)continue;Z.push(B1(W,typeof J==="object"?JSON.stringify(J):J+"",X))}if(Z.length===0)return;if(Z.length===1)return Z[0];return Z},h=($,Z,W)=>{if($?.$passthrough)$=$?.[$.$passthrough];if($?.[d])Z.status=$[d],$=$.response;if(m(Z.headers)||Z.status!==200||Z.redirect||Z.cookie){if(typeof Z.status==="string")Z.status=J0[Z.status];if(Z.redirect){if(Z.headers.Location=Z.redirect,!Z.status||Z.status<300||Z.status>=400)Z.status=302}if(Z.cookie&&m(Z.cookie))Z.headers["Set-Cookie"]=t1(Z.cookie);if(Z.headers["Set-Cookie"]&&Array.isArray(Z.headers["Set-Cookie"]))Z.headers=i1(new Headers(Z.headers),Z.headers["Set-Cookie"]);switch($?.constructor?.name){case"String":return new Response($,Z);case"Blob":return q0($,Z);case"Object":case"Array":return Response.json($,Z);case"ReadableStream":if(!Z.headers["content-type"]?.startsWith("text/event-stream"))Z.headers["content-type"]="text/event-stream; charset=utf-8";return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,Z);case void 0:if(!$)return new Response("",Z);return Response.json($,Z);case"Response":const X={...Z.headers};if(C0)Z.headers=$.headers.toJSON();else for(let[J,Y]of $.headers.entries())if(J in Z.headers)Z.headers[J]=Y;for(let J in X)$.headers.append(J,X[J]);return $;case"Error":return t($,Z);case"Promise":return $.then((J)=>h(J,Z));case"Function":return h($(),Z);case"Number":case"Boolean":return new Response($.toString(),Z);case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response){const J=Object.assign({},Z.headers);if(C0)Z.headers=$.headers.toJSON();else for(let[Y,Q]of $.headers.entries())if(Y in Z.headers)Z.headers[Y]=Q;for(let Y in J)$.headers.append(Y,J[Y]);return $}if($ instanceof Promise)return $.then((J)=>h(J,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($,Z)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return q0($,Z);case"Object":case"Array":return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":return $;case"Error":return t($,Z);case"Promise":return $.then((X)=>{const J=o(X);if(J!==void 0)return J;return new Response("")});case"Function":return o($());case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((X)=>h(X,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const X=$.charCodeAt(0);if(X===123||X===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($)}},u=($,Z,W)=>{if($===void 0||$===null)return;if($?.$passthrough)$=$?.[$.$passthrough];if($?.[d])Z.status=$[d],$=$.response;if(m(Z.headers)||Z.status!==200||Z.redirect||Z.cookie){if(typeof Z.status==="string")Z.status=J0[Z.status];if(Z.redirect){if(Z.headers.Location=Z.redirect,!Z.status||Z.status<300||Z.status>=400)Z.status=302}if(Z.cookie&&m(Z.cookie))Z.headers["Set-Cookie"]=t1(Z.cookie);if(Z.headers["Set-Cookie"]&&Array.isArray(Z.headers["Set-Cookie"]))Z.headers=i1(new Headers(Z.headers),Z.headers["Set-Cookie"]);switch($?.constructor?.name){case"String":return new Response($,Z);case"Blob":return q0($,Z);case"Object":case"Array":return Response.json($,Z);case"ReadableStream":if(!Z.headers["content-type"]?.startsWith("text/event-stream"))Z.headers["content-type"]="text/event-stream; charset=utf-8";return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,Z);case void 0:if(!$)return;return Response.json($,Z);case"Response":const X=Object.assign({},Z.headers);if(C0)Z.headers=$.headers.toJSON();else for(let[J,Y]of $.headers.entries())if(!(J in Z.headers))Z.headers[J]=Y;for(let J in X)$.headers.append(J,X[J]);if($.status!==Z.status)Z.status=$.status;return $;case"Promise":return $.then((J)=>{const Y=u(J,Z);if(Y!==void 0)return Y});case"Error":return t($,Z);case"Function":return u($(),Z);case"Number":case"Boolean":return new Response($.toString(),Z);case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response){const J={...Z.headers};if(C0)Z.headers=$.headers.toJSON();else for(let[Y,Q]of $.headers.entries())if(Y in Z.headers)Z.headers[Y]=Q;for(let Y in J)$.headers.append(Y,J[Y]);return $}if($ instanceof Promise)return $.then((J)=>u(J,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($,Z)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return q0($,Z);case"Object":case"Array":return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":return $;case"Promise":return $.then((X)=>{const J=u(X,Z);if(J!==void 0)return J});case"Error":return t($,Z);case"Function":return o($());case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof n)return new Response($.value,Z);return new Response($?.toString(),Z);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((X)=>u(X,Z));if($ instanceof Error)return t($,Z);if("charCodeAt"in $){const X=$.charCodeAt(0);if(X===123||X===91){if(!Z.headers["Content-Type"])Z.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),Z)}}return new Response($)}},o=($,Z)=>{if($?.$passthrough)$=$?.[$.$passthrough];if($?.[d])return h($.response,{status:$[d],headers:{}});switch($?.constructor?.name){case"String":return new Response($);case"Blob":return q0($);case"Object":case"Array":return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"ReadableStream":return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":return $;case"Error":return t($);case"Promise":return $.then(o);case"Function":return o($());case"Number":case"Boolean":return new Response($.toString());default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then(o);if($ instanceof Error)return t($);const W=JSON.stringify($);if(W.charCodeAt(0)===123)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}});return new Response(W)}},t=($,Z)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:Z?.status!==200?Z?.status??500:500,headers:Z?.headers});var X8=function($){let Z=$;while(Z.endsWith("="))Z=Z.slice(0,-1);return Z},D1=($,Z)=>{const W=new URL($);return W.pathname=Z,W.toString()},n$=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")||m(Object.getPrototypeOf($)),z1=($)=>$&&typeof $==="object"&&!Array.isArray($),p=($,Z,{skipKeys:W}={})=>{if(z1($)&&z1(Z))for(let[X,J]of Object.entries(Z)){if(W?.includes(X))continue;if(!z1(J)||!(X in $)||n$(J)){$[X]=J;continue}$[X]=p($[X],J)}return $},o$=($,Z)=>{const{properties:W,...X}=$??{},{properties:J,...Y}=Z??{};return p(X,Y)},H=($=[],Z=[])=>{if(!$)return[];if(!Z)return $;const W=[],X=[];if(!Array.isArray($))$=[$];if(!Array.isArray(Z))Z=[Z];for(let J of $)if(W.push(J),J.checksum)X.push(J.checksum);for(let J of Z)if(!X.includes(J.checksum))W.push(J);return W},a$=["start","request","parse","transform","resolve","beforeHandle","afterHandle","onResponse","mapResponse","trace","error","stop","body","headers","params","query","response","type","detail"],e$=a$.reduce(($,Z)=>($[Z]=!0,$),{}),$8=($,Z)=>{const W=(X)=>typeof X==="object"&&Object.keys(X).every(F0);if(W($)&&W(Z))return{...$,...Z};return Z??$},f=($,Z,{allowMacro:W=!1}={})=>{return{...W?{...$,...Z}:void 0,body:Z?.body??$?.body,headers:Z?.headers??$?.headers,params:Z?.params??$?.params,query:Z?.query??$?.query,response:$8($?.response,Z?.response),type:$?.type||Z?.type,detail:p(Z?.detail??{},$?.detail??{}),parse:H($?.parse,Z?.parse),transform:H($?.transform,Z?.transform),beforeHandle:H($?.beforeHandle,Z?.beforeHandle),afterHandle:H($?.afterHandle,Z?.afterHandle),onResponse:H($?.onResponse,Z?.onResponse),mapResponse:H($?.mapResponse,Z?.mapResponse),trace:H($?.trace,Z?.trace),error:H($?.error,Z?.error)}},k=($,{models:Z={},dynamic:W=!1,normalize:X=!1,additionalProperties:J=X})=>{if(!$)return;if(typeof $==="string"&&!($ in Z))return;const Y=typeof $==="string"?Z[$]:$;if(Y.type==="object"&&"additionalProperties"in Y===!1)Y.additionalProperties=J;const Q=(B)=>M0.Clean(Y,B);if(W){const B={schema:Y,references:"",checkFunc:()=>{},code:"",Check:(_)=>M0.Check(Y,_),Errors:(_)=>M0.Errors(Y,_),Code:()=>""};if(X&&Y.additionalProperties===!0)B.Clean=Q;if(Y.config){if(B.config=Y.config,B?.schema?.config)delete B.schema.config}return B}const G=r1.Compile(Y,Object.values(Z));if(G.Clean=Q,Y.config){if(G.config=Y.config,G?.schema?.config)delete G.schema.config}return G},i0=($,{models:Z={},dynamic:W=!1,normalize:X=!1,additionalProperties:J=X})=>{if(!$)return;if(typeof $==="string"&&!($ in Z))return;const Y=typeof $==="string"?Z[$]:$,Q=(B,_)=>{const K=(M)=>M0.Clean(B,M);if(W)return{schema:B,references:"",checkFunc:()=>{},code:"",Check:(M)=>M0.Check(B,M),Errors:(M)=>M0.Errors(B,M),Code:()=>""};const z=r1.Compile(B,_);if(X&&B.additionalProperties===!0)z.Clean=K;return z};if(_1 in Y){if("additionalProperties"in Y===!1)Y.additionalProperties=J;return{200:Q(Y,Object.values(Z))}}const G={};return Object.keys(Y).forEach((B)=>{const _=Y[+B];if(typeof _==="string"){if(_ in Z){const K=Z[_];K.type==="object"&&"additionalProperties"in K,G[+B]=_1 in K?Q(K,Object.values(Z)):K}return}if(_.type==="object"&&"additionalProperties"in _===!1)_.additionalProperties=J;G[+B]=_1 in _?Q(_,Object.values(Z)):_}),G},Z8=typeof Bun!=="undefined",W8=Z8&&typeof Bun.hash==="function",R0=($)=>{if(W8)return Bun.hash($);let Z=9;for(let W=0;W<$.length;)Z=Math.imul(Z^$.charCodeAt(W++),387420489);return Z=Z^Z>>>9},t0=({validator:$,defaultConfig:Z={},config:W,dynamic:X,models:J})=>{let Y=k($,{dynamic:X,models:J,additionalProperties:!0});if(m(Z))if(Y)Y.config=o$(Y.config,W);else Y=k(T.Cookie({}),{dynamic:X,models:J,additionalProperties:!0}),Y.config=Z;return Y},s0=($,Z,W)=>{const X=(J)=>{if(!J)return;if(!Array.isArray(J)){const Q=J;if(W&&!Q.checksum)Q.checksum=W;if(Q.scope==="scoped")Q.scope="local";return Q}const Y=[...J];for(let Q of Y){if(W&&!Q.checksum)Q.checksum=W;if(Q.scope==="scoped")Q.scope="local"}return Y};return{start:H($.start,X(Z?.start)),request:H($.request,X(Z?.request)),parse:H($.parse,X(Z?.parse)),transform:H($.transform,X(Z?.transform)),beforeHandle:H($.beforeHandle,X(Z?.beforeHandle)),afterHandle:H($.afterHandle,X(Z?.afterHandle)),mapResponse:H($.mapResponse,X(Z?.mapResponse)),onResponse:H($.onResponse,X(Z?.onResponse)),trace:$.trace,error:H($.error,X(Z?.error)),stop:H($.stop,X(Z?.stop))}},n1=($,Z,{skipIfHasType:W=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(W)$.scope??=Z;else $.scope=Z;return $}for(let X of $)if(W)X.scope??=Z;else X.scope=Z;return $},Y0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const Z=[];for(let W of $)switch(W.scope){case"global":case"scoped":Z.push({...W});break}return Z},F1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:Y0($?.parse),transform:Y0($?.transform),beforeHandle:Y0($?.beforeHandle),afterHandle:Y0($?.afterHandle),onResponse:Y0($?.onResponse),error:Y0($?.error),mapResponse:Y0($?.mapResponse)}},J0={Continue:100,"Switching Protocols":101,Processing:102,"Early Hints":103,OK:200,Created:201,Accepted:202,"Non-Authoritative Information":203,"No Content":204,"Reset Content":205,"Partial Content":206,"Multi-Status":207,"Already Reported":208,"Multiple Choices":300,"Moved Permanently":301,Found:302,"See Other":303,"Not Modified":304,"Temporary Redirect":307,"Permanent Redirect":308,"Bad Request":400,Unauthorized:401,"Payment Required":402,Forbidden:403,"Not Found":404,"Method Not Allowed":405,"Not Acceptable":406,"Proxy Authentication Required":407,"Request Timeout":408,Conflict:409,Gone:410,"Length Required":411,"Precondition Failed":412,"Payload Too Large":413,"URI Too Long":414,"Unsupported Media Type":415,"Range Not Satisfiable":416,"Expectation Failed":417,"I'm a teapot":418,"Misdirected Request":421,"Unprocessable Content":422,Locked:423,"Failed Dependency":424,"Too Early":425,"Upgrade Required":426,"Precondition Required":428,"Too Many Requests":429,"Request Header Fields Too Large":431,"Unavailable For Legal Reasons":451,"Internal Server Error":500,"Not Implemented":501,"Bad Gateway":502,"Service Unavailable":503,"Gateway Timeout":504,"HTTP Version Not Supported":505,"Variant Also Negotiates":506,"Insufficient Storage":507,"Loop Detected":508,"Not Extended":510,"Network Authentication Required":511},r0=Object.fromEntries(Object.entries(J0).map(([$,Z])=>[Z,$])),s1=new TextEncoder,A0=async($,Z)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(Z===null)throw new TypeError("Secret key must be provided.");const W=await crypto.subtle.importKey("raw",s1.encode(Z),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),X=await crypto.subtle.sign("HMAC",W,s1.encode($));return $+"."+X8(Buffer.from(X).toString("base64"))},K1=async($,Z)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(Z===null)throw new TypeError("Secret key must be provided.");const W=$.slice(0,$.lastIndexOf("."));return await A0(W,Z)===$?W:!1},M1=($,Z,W=Z)=>{if(!$||typeof $!=="object"||!Z)return;for(let[X,J]of Object.entries(Z)){if(X in e$||!(X in $))continue;const Y=$[X];if(typeof Y==="function")Y(J);else if(typeof Y==="object")M1(Y,J,W)}},o1=({globalHook:$,localHook:Z})=>(W)=>(X,J)=>{if(typeof X==="function")X={fn:X};if("fn"in X||Array.isArray(X)){if(!Z[W])Z[W]=[];if(typeof Z[W]==="function")Z[W]=[Z[W]];if(Array.isArray(X))Z[W]=Z[W].concat(X);else Z[W].push(X);return}const{insert:Y="after",stack:Q="local"}=X;if(typeof J==="function")J={fn:J};if(Q==="global")if(!Array.isArray(J))if(Y==="before")$[W].unshift(J);else $[W].push(J);else if(Y==="before")$[W]=J.concat($[W]);else $[W]=$[W].concat(J);else{if(!Z[W])Z[W]=[];if(typeof Z[W]==="function")Z[W]=[Z[W]];if(!Array.isArray(J))if(Y==="before")Z[W].unshift(J);else Z[W].push(J);else if(Y==="before")Z[W]=J.concat(Z[W]);else Z[W]=Z[W].concat(J)}},F0=($)=>{if($.length<16)return $.trim().length!==0&&!Number.isNaN(Number($));if($.length===16){const Z=Number($);if(Z.toString()===$)return $.trim().length!==0&&!Number.isNaN(Z)}return!1};class A1{$;root=null;promises=[];constructor($=console.error){this.onError=$}get size(){return this.promises.length}add($){return this.promises.push($),this.root||=this.drain(),$}async drain(){while(this.promises.length>0){try{await this.promises[0]}catch($){this.onError($)}this.promises.shift()}this.root=null}then($,Z){return(this.root??Promise.resolve()).then($,Z)}}var c=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const Z=[];for(let W of $)if(typeof W==="function")Z.push({fn:W});else if("fn"in W)Z.push(W);return Z},a1=($)=>{return{...$,start:c($?.start),request:c($?.request),parse:c($?.parse),transform:c($?.transform),beforeHandle:c($?.beforeHandle),afterHandle:c($?.afterHandle),onResponse:c($?.onResponse),mapResponse:c($?.mapResponse),trace:c($?.trace),error:c($?.error),stop:c($?.stop)}},e1=($)=>{return{...$,start:$.start?.map((Z)=>Z.fn),request:$.request?.map((Z)=>Z.fn),parse:$.parse?.map((Z)=>Z.fn),transform:$.transform?.map((Z)=>Z.fn),beforeHandle:$.beforeHandle?.map((Z)=>Z.fn),afterHandle:$.afterHandle?.map((Z)=>Z.fn),onResponse:$.onResponse?.map((Z)=>Z.fn),mapResponse:$.mapResponse?.map((Z)=>Z.fn),trace:$.trace?.map((Z)=>Z.fn),error:$.error?.map((Z)=>Z.fn),stop:$.stop?.map((Z)=>Z.fn)}},n0=($)=>({event:{body:$.event.body,cookie:$.event.cookie,headers:$.event.headers,queries:[...$.event.queries],query:$.event.query,set:$.event.set,unknownQueries:$.event.unknownQueries},trace:{request:$.trace.request,parse:$.trace.parse,transform:$.trace.transform,handle:$.trace.handle,beforeHandle:$.trace.beforeHandle,afterHandle:$.trace.afterHandle,error:$.trace.error,context:$.trace.context,store:$.trace.store,set:$.trace.set}});var $$=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,Q0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),L0=($$?.NODE_ENV??$$?.ENV)==="production",w1=($,Z)=>({[d]:J0[$]??$,response:Z??($ in r0?r0[$]:$),_type:void 0});class a0 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class G0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class e0 extends Error{Z;code="PARSE";status=400;constructor($,Z){super($??"PARSE");this.body=Z}}class T0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,Z){super(Z??`"${$}" has invalid cookie signature`);this.key=$}}class R extends Error{$;Z;W;code="VALIDATION";status=422;constructor($,Z,W){if(typeof W==="object"&&d in W)W=W.response;const X=L0?void 0:("Errors"in Z)?Z.Errors(W).First():o0.Errors(Z,W).First(),J=X?.schema.error?typeof X.schema.error==="function"?X.schema.error($,Z,W):X.schema.error:void 0,Y=X?.path||"root";let Q="";if(J)Q=typeof J==="object"?JSON.stringify(J):J+"";else if(L0)Q=JSON.stringify({type:"validation",on:$,message:X?.message,found:W});else{const G=Z?.schema??Z,B="Errors"in Z?[...Z.Errors(W)]:[...o0.Errors(Z,W)];let _;try{_=o0.Create(G)}catch(K){_={type:"Could not create expected value",message:K?.message,error:K}}Q=JSON.stringify({type:"validation",on:$,property:Y,message:X?.message,expected:_,found:W,errors:B},null,2)}super(Q);this.type=$;this.validator=Z;this.value=W;Object.setPrototypeOf(this,R.prototype)}get all(){return[...this.validator.Errors(this.value)]}static simplifyModel($){const Z="schema"in $?$.schema:$;try{return o0.Create(Z)}catch{return Z}}get model(){return R.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var j1={open($){$.data.open?.($)},message($,Z){$.data.message?.($,Z)},drain($){$.data.drain?.($)},close($,Z,W){$.data.close?.($,Z,W)}};class w0{$;Z;validator;constructor($,Z){this.raw=$;this.data=Z;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else{const W=new Uint32Array(1);crypto.getRandomValues(W),this.id=W[0].toString()}}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,Z=void 0,W)=>{if(this.validator?.Check(Z)===!1)throw new R("message",this.validator,Z);if(typeof Z==="object")Z=JSON.stringify(Z);return this.raw.publish($,Z,W),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new R("message",this.validator,$);if(Buffer.isBuffer($))return this.raw.send($),this;if(typeof $==="object")$=JSON.stringify($);return this.raw.send($),this}}get subscribe(){return($)=>{return this.raw.subscribe($),this}}get unsubscribe(){return($)=>{return this.raw.unsubscribe($),this}}get cork(){return($)=>{return this.raw.cork($),this}}get close(){return()=>{return this.raw.close(),this}}get terminate(){return this.raw.terminate.bind(this.raw)}get isSubscribed(){return this.raw.isSubscribed.bind(this.raw)}get remoteAddress(){return this.raw.remoteAddress}}var F$=V0(P1(),1),M$=V0(p0(),1);import{Value as b0} from"@sinclair/typebox/value";var B8=(new Headers()).toJSON,A$={value:0},w$=({hasTrace:$,hasTraceSet:Z=!1,addFn:W,condition:X={}})=>{if($)return W("\nconst reporter = getReporter()\n"),(J,{name:Y,attribute:Q="",unit:G=0}={})=>{const B=J.indexOf("."),_=B===-1;if(J!=="request"&&J!=="response"&&!X[_?J:J.slice(0,B)])return()=>{if(Z&&J==="afterHandle")W("\nawait traceDone\n")};if(_)Y||=J;else Y||="anonymous";return W("\n"+`reporter.emit('event', {
8
8
  id,
9
9
  event: '${J}',
10
10
  type: 'begin',
11
- name: '${Q}',
11
+ name: '${Y}',
12
12
  time: performance.now(),
13
13
  ${_?`unit: ${G},`:""}
14
- ${Y}
15
- })`.replace(/(\t| |\n)/g,"")+"\n");let K=!1;return()=>{if(K)return;if(K=!0,W("\n"+`reporter.emit('event', {
14
+ ${Q}
15
+ })`.replace(/(\t| |\n)/g,"")+"\n"),()=>{if(W("\n"+`reporter.emit('event', {
16
16
  id,
17
17
  event: '${J}',
18
18
  type: 'end',
19
19
  time: performance.now()
20
- })`.replace(/(\t| |\n)/g,"")+"\n"),Z&&J==="afterHandle")W("\nawait traceDone\n")}};else return()=>()=>{}},H0=($)=>{const Z=$.indexOf(")");if($.charCodeAt(Z+2)===61&&$.charCodeAt(Z+5)!==123)return!0;return $.includes("return")},U$=($,{injectResponse:Z="",normalize:W=!1}={})=>({composeValidation:(X,J=`c.${X}`)=>$?`c.set.status = 422; throw new ValidationError('${X}', ${X}, ${J})`:`c.set.status = 422; return new ValidationError('${X}', ${X}, ${J}).toResponse(c.set.headers)`,composeResponseValidation:(X="r")=>{const J=$?`throw new ValidationError('response', response[c.set.status], ${X})`:`return new ValidationError('response', response[c.set.status], ${X}).toResponse(c.set.headers)`;let Q="\n"+Z+"\n";if(Q+=`const er = ${X}[ELYSIA_RESPONSE]\n`,W)Q+=`
20
+ })`.replace(/(\t| |\n)/g,"")+"\n"),Z&&J==="afterHandle")W("\nawait traceDone\n")}};else return()=>()=>{}},H0=($)=>{const Z=$.indexOf(")");if($.charCodeAt(Z+2)===61&&$.charCodeAt(Z+5)!==123)return!0;return $.includes("return")},U8=($,{injectResponse:Z="",normalize:W=!1}={})=>({composeValidation:(X,J=`c.${X}`)=>$?`c.set.status = 422; throw new ValidationError('${X}', ${X}, ${J})`:`c.set.status = 422; return new ValidationError('${X}', ${X}, ${J}).toResponse(c.set.headers)`,composeResponseValidation:(X="r")=>{const J=$?`throw new ValidationError('response', response[c.set.status], ${X})`:`return new ValidationError('response', response[c.set.status], ${X}).toResponse(c.set.headers)`;let Y="\n"+Z+"\n";if(Y+=`const er = ${X}[ELYSIA_RESPONSE]\n`,W)Y+=`
21
21
  if(!er && response[c.set.status]?.Clean)
22
22
  ${X} = response[c.set.status]?.Clean(${X})
23
23
  else if(response[er]?.Clean)
24
- ${X}.response = response[er]?.Clean(${X}.response)`;return Q+=`
24
+ ${X}.response = response[er]?.Clean(${X}.response)`;return Y+=`
25
25
  if(typeof ${X} === "object" && ELYSIA_RESPONSE in ${X}) {
26
26
  if(!(${X} instanceof Response) && response[er]?.Check(${X}.response) === false) {
27
27
  if(!(response instanceof Error)) {
@@ -33,15 +33,15 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
33
33
  } else if(!(${X} instanceof Response) && response[c.set.status]?.Check(${X}) === false) {
34
34
  if(!(response instanceof Error))
35
35
  ${J}
36
- }\n`,Q}}),j0=Symbol.for("TypeBox.Kind"),$1=($,Z)=>{if(!Z)return;if(j0 in Z&&Z[j0]===$)return!0;if(Z.type==="object"){const W=Z.properties;for(let X of Object.keys(W)){const J=W[X];if(J.type==="object"){if($1($,J))return!0}else if(J.anyOf){for(let Q=0;Q<J.anyOf.length;Q++)if($1($,J.anyOf[Q]))return!0}if(j0 in J&&J[j0]===$)return!0}return!1}return Z.properties&&j0 in Z.properties&&Z.properties[j0]===$},B0=($,Z)=>{if(!Z)return;if(Z.type==="object"){const W=Z.properties;if(!W)return!1;for(let X of Object.keys(W)){const J=W[X];if($ in J)return!0;if(J.type==="object"){if(B0($,J))return!0}else if(J.anyOf){for(let Q=0;Q<J.anyOf.length;Q++)if(B0($,J.anyOf[Q]))return!0}}return!1}return $ in Z},I1=Symbol.for("TypeBox.Transform"),w0=($)=>{if(!$)return;if($.type==="object"&&$.properties){const Z=$.properties;for(let W of Object.keys(Z)){const X=Z[W];if(X.type==="object"){if(w0(X))return!0}else if(X.anyOf){for(let Q=0;Q<X.anyOf.length;Q++)if(w0(X.anyOf[Q]))return!0}if(I1 in X)return!0}return!1}return I1 in $||$.properties&&I1 in $.properties},K$=($)=>{if(!$)return;const Z=$?.schema;if(Z&&"anyOf"in Z){let W=!1;const X=Z.anyOf[0].type;for(let J of Z.anyOf)if(J.type!==X){W=!0;break}if(!W)return X}return $.schema?.type},_$=/(?:return|=>) \S+\(/g,x=($)=>{const Z="fn"in $?$.fn:$;if(Z.constructor.name==="AsyncFunction")return!0;const W=Z.toString();if(W.includes("=> response.clone("))return!1;return!!W.match(_$)},Z1=({app:$,path:Z,method:W,localHook:X,hooks:J,validator:Q,handler:Y,allowMeta:G=!1,appInference:{event:B,trace:_}})=>{const K=typeof Y==="function";if(!K)Y=h(Y,{headers:$.setHeaders??{}});const z=$.config.forceErrorEncapsulation&&(K||J.afterHandle.length>0||J.beforeHandle.length>0||J.transform.length>0)||J.error.length>0||$.event.error.length>0||typeof Bun==="undefined"||J.onResponse.length>0||J.onResponse.length>0||!!J.trace.length,M=K?"handler(c)":"handler",A=J.onResponse.length?`\n;(async () => {${J.onResponse.map((I,F)=>`await res${F}(c)`).join(";")}})();\n`:"",j=_,O=J.trace.length>0;let U="";const D=d0(Object.assign(X,{handler:Y}),B),P=D.query||!!Q.query,w=W!=="$INTERNALWS"&&W!=="GET"&&W!=="HEAD"&&J.type!=="none"&&(D.body||!!Q.body),L=$.setHeaders,q=L&&!!Object.keys(L).length,e=D.headers||Q.headers,v=D.cookie||!!Q.cookie,r=v?t0({validator:Q.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:Q.cookie?.config??{},models:$.definitions.type}):void 0,S=r?.config;let V="";if(S?.sign){if(!S.secrets)throw new Error(`t.Cookie required secret which is not set in (${W}) ${Z}.`);const I=!S.secrets?void 0:typeof S.secrets==="string"?S.secrets:S.secrets[0];if(V+=`const _setCookie = c.set.cookie
36
+ }\n`,Y}}),j0=Symbol.for("TypeBox.Kind"),$1=($,Z)=>{if(!Z)return;if(j0 in Z&&Z[j0]===$)return!0;if(Z.type==="object"){const W=Z.properties;for(let X of Object.keys(W)){const J=W[X];if(J.type==="object"){if($1($,J))return!0}else if(J.anyOf){for(let Y=0;Y<J.anyOf.length;Y++)if($1($,J.anyOf[Y]))return!0}if(j0 in J&&J[j0]===$)return!0}return!1}return Z.properties&&j0 in Z.properties&&Z.properties[j0]===$},B0=($,Z)=>{if(!Z)return;if(Z.type==="object"){const W=Z.properties;if(!W)return!1;for(let X of Object.keys(W)){const J=W[X];if($ in J)return!0;if(J.type==="object"){if(B0($,J))return!0}else if(J.anyOf){for(let Y=0;Y<J.anyOf.length;Y++)if(B0($,J.anyOf[Y]))return!0}}return!1}return $ in Z},I1=Symbol.for("TypeBox.Transform"),N0=($)=>{if(!$)return;if($.type==="object"&&$.properties){const Z=$.properties;for(let W of Object.keys(Z)){const X=Z[W];if(X.type==="object"){if(N0(X))return!0}else if(X.anyOf){for(let Y=0;Y<X.anyOf.length;Y++)if(N0(X.anyOf[Y]))return!0}if(I1 in X)return!0}return!1}return I1 in $||$.properties&&I1 in $.properties},K8=($)=>{if(!$)return;const Z=$?.schema;if(Z&&"anyOf"in Z){let W=!1;const X=Z.anyOf[0].type;for(let J of Z.anyOf)if(J.type!==X){W=!0;break}if(!W)return X}return $.schema?.type},_8=/(?:return|=>) \S+\(/g,x=($)=>{const Z="fn"in $?$.fn:$;if(Z.constructor.name==="AsyncFunction")return!0;const W=Z.toString();if(W.includes("=> response.clone("))return!1;return!!W.match(_8)},Z1=({app:$,path:Z,method:W,localHook:X,hooks:J,validator:Y,handler:Q,allowMeta:G=!1,appInference:{event:B,trace:_}})=>{const K=typeof Q==="function";if(!K)Q=h(Q,{headers:$.setHeaders??{}});const z=$.config.forceErrorEncapsulation&&(K||J.afterHandle.length>0||J.beforeHandle.length>0||J.transform.length>0)||J.error.length>0||$.event.error.length>0||typeof Bun==="undefined"||J.onResponse.length>0||J.onResponse.length>0||!!J.trace.length,M=K?"handler(c)":"handler",A=J.onResponse.length?`\n;(async () => {${J.onResponse.map((I,D)=>`await res${D}(c)`).join(";")}})();\n`:"",j=_,O=J.trace.length>0;let U="";const F=d0(Object.assign(X,{handler:Q}),B),P=F.query||!!Y.query,N=W!=="$INTERNALWS"&&W!=="GET"&&W!=="HEAD"&&J.type!=="none"&&(F.body||!!Y.body),L=$.setHeaders,q=L&&!!Object.keys(L).length,e=F.headers||Y.headers,v=F.cookie||!!Y.cookie,r=v?t0({validator:Y.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:Y.cookie?.config??{},models:$.definitions.type}):void 0,S=r?.config;let V="";if(S?.sign){if(!S.secrets)throw new Error(`t.Cookie required secret which is not set in (${W}) ${Z}.`);const I=!S.secrets?void 0:typeof S.secrets==="string"?S.secrets:S.secrets[0];if(V+=`const _setCookie = c.set.cookie
37
37
  if(_setCookie) {`,S.sign===!0)V+=`for(const [key, cookie] of Object.entries(_setCookie)) {
38
38
  c.set.cookie[key].value = await signCookie(cookie.value, '${I}')
39
- }`;else for(let F of S.sign)V+=`if(_setCookie['${F}']?.value) { c.set.cookie['${F}'].value = await signCookie(_setCookie['${F}'].value, '${I}') }\n`;V+="}\n"}const $0=$.config.normalize,{composeValidation:U0,composeResponseValidation:y0}=U$(z,{normalize:$0});if(e)U+=B$?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
39
+ }`;else for(let D of S.sign)V+=`if(_setCookie['${D}']?.value) { c.set.cookie['${D}'].value = await signCookie(_setCookie['${D}'].value, '${I}') }\n`;V+="}\n"}const $0=$.config.normalize,{composeValidation:U0,composeResponseValidation:y0}=U8(z,{normalize:$0});if(e)U+=B8?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
40
40
  for (const [key, value] of c.request.headers.entries())
41
41
  c.headers[key] = value
42
- `;if(v){const I=(N,C)=>{const b=S?.[N]??C;if(!b)return typeof C==="string"?`${N}: "${C}",`:`${N}: ${C},`;if(typeof b==="string")return`${N}: '${b}',`;if(b instanceof Date)return`${N}: new Date(${b.getTime()}),`;return`${N}: ${b},`},F=S?`{
43
- secret: ${S.secrets!==void 0?typeof S.secrets==="string"?`'${S.secrets}'`:"["+S.secrets.reduce((N,C)=>N+`'${C}',`,"")+"]":"undefined"},
44
- sign: ${S.sign===!0?!0:S.sign!==void 0?"["+S.sign.reduce((N,C)=>N+`'${C}',`,"")+"]":"undefined"},
42
+ `;if(v){const I=(w,C)=>{const b=S?.[w]??C;if(!b)return typeof C==="string"?`${w}: "${C}",`:`${w}: ${C},`;if(typeof b==="string")return`${w}: '${b}',`;if(b instanceof Date)return`${w}: new Date(${b.getTime()}),`;return`${w}: ${b},`},D=S?`{
43
+ secret: ${S.secrets!==void 0?typeof S.secrets==="string"?`'${S.secrets}'`:"["+S.secrets.reduce((w,C)=>w+`'${C}',`,"")+"]":"undefined"},
44
+ sign: ${S.sign===!0?!0:S.sign!==void 0?"["+S.sign.reduce((w,C)=>w+`'${C}',`,"")+"]":"undefined"},
45
45
  ${I("domain")}
46
46
  ${I("expires")}
47
47
  ${I("httpOnly")}
@@ -50,7 +50,7 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
50
50
  ${I("priority")}
51
51
  ${I("sameSite")}
52
52
  ${I("secure")}
53
- }`:"undefined";if(e)U+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${F})\n`;else U+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${F})\n`}if(P){let I=[];if(Q.query&&Q.query.schema.type==="object")I=Object.keys(Q.query.schema.properties);else for(let F of D.queries)if(I.indexOf(F)===-1)I.push(F);if($.config.forceDynamicQuery===!0||D.unknownQueries===!0||!I.length)U+=`if(c.qi !== -1) {
53
+ }`:"undefined";if(e)U+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${D})\n`;else U+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${D})\n`}if(P){let I=[];if(Y.query&&Y.query.schema.type==="object")I=Object.keys(Y.query.schema.properties);else for(let D of F.queries)if(I.indexOf(D)===-1)I.push(D);if($.config.forceDynamicQuery===!0||F.unknownQueries===!0||!I.length)U+=`if(c.qi !== -1) {
54
54
  c.query = parseQuery(decodeURIComponent(c.request.url.slice(c.qi + 1)).replace(/\\+/g, ' '))
55
55
  } else c.query = {}`;else U+=`if(c.qi !== -1) {
56
56
  let url = decodeURIComponent(
@@ -58,25 +58,25 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
58
58
  .replace(/\\+/g, ' ')
59
59
  )
60
60
 
61
- ${I.map((F,N)=>`
62
- ${N===0?"let":""} memory = url.indexOf('&${F}=')
63
- if(memory === -1) memory = url.indexOf('?${F}=')
64
- let a${N}
61
+ ${I.map((D,w)=>`
62
+ ${w===0?"let":""} memory = url.indexOf('&${D}=')
63
+ if(memory === -1) memory = url.indexOf('?${D}=')
64
+ let a${w}
65
65
 
66
66
  if(memory !== -1) {
67
- const start = memory + ${F.length+2}
67
+ const start = memory + ${D.length+2}
68
68
  memory = url.indexOf('&', start)
69
69
 
70
- if(memory === -1) a${N} = url.slice(start)
71
- else a${N} = url.slice(start, memory)
70
+ if(memory === -1) a${w} = url.slice(start)
71
+ else a${w} = url.slice(start, memory)
72
72
  }`).join("\n")}
73
73
 
74
74
  c.query = {
75
- ${I.map((F,N)=>`'${F}': a${N}`).join(", ")}
75
+ ${I.map((D,w)=>`'${D}': a${w}`).join(", ")}
76
76
  }
77
77
  } else {
78
78
  c.query = {}
79
- }`}const v0=_.set,k0=D.cookie||D.set||v0||e||K&&q;if(O)U+="\nconst id = c.$$requestId\n";const E=N8({hasTrace:O,hasTraceSet:v0,condition:j,addFn:(I)=>{U+=I}});if(U+=z?"\n try {\n":"",v0){U+="\nconst traceDone = Promise.all([";for(let I=0;I<J.trace.length;I++)U+=`new Promise(r => { reporter.once(\`res\${id}.${I}\`, r) }),`;U+="])\n"}const K0=typeof Y==="function"&&x(Y),X1=v||w||v0||K0||!!J.mapResponse.length||J.parse.length>0||J.afterHandle.some(x)||J.beforeHandle.some(x)||J.transform.some(x),V8=E("parse",{unit:J.parse.length});if(w){const I=K$(Q?.body);if(J.type&&!Array.isArray(J.type)){if(J.type)switch(J.type){case"json":case"application/json":if(z)U+=`const tempBody = await c.request.text()
79
+ }`}const v0=_.set,k0=F.cookie||F.set||v0||e||K&&q;if(O)U+="\nconst id = c.$$requestId\n";const E=w$({hasTrace:O,hasTraceSet:v0,condition:j,addFn:(I)=>{U+=I}});if(U+=z?"\n try {\n":"",v0){U+="\nconst traceDone = Promise.all([";for(let I=0;I<J.trace.length;I++)U+=`new Promise(r => { reporter.once(\`res\${id}.${I}\`, r) }),`;U+="])\n"}const K0=typeof Q==="function"&&x(Q),X1=v||N||v0||K0||!!J.mapResponse.length||J.parse.length>0||J.afterHandle.some(x)||J.beforeHandle.some(x)||J.transform.some(x),V$=E("parse",{unit:J.parse.length});if(N){const I=K8(Y?.body);if(J.type&&!Array.isArray(J.type)){if(J.type)switch(J.type){case"json":case"application/json":if(z)U+=`const tempBody = await c.request.text()
80
80
 
81
81
  try {
82
82
  c.body = JSON.parse(tempBody)
@@ -93,7 +93,7 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
93
93
  if (value.length === 1)
94
94
  c.body[key] = value[0]
95
95
  else c.body[key] = value
96
- }\n`;break}if(J.parse.length)U+="}}"}else{const N=(()=>{if(J.parse.length&&I&&!Array.isArray(J.type)){const C=Q?.body?.schema;if(typeof C==="object"&&($1("File",C)||$1("Files",C)))return`c.body = {}
96
+ }\n`;break}if(J.parse.length)U+="}}"}else{const w=(()=>{if(J.parse.length&&I&&!Array.isArray(J.type)){const C=Y?.body?.schema;if(typeof C==="object"&&($1("File",C)||$1("Files",C)))return`c.body = {}
97
97
 
98
98
  const form = await c.request.formData()
99
99
  for (const key of form.keys()) {
@@ -104,7 +104,7 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
104
104
  if (value.length === 1)
105
105
  c.body[key] = value[0]
106
106
  else c.body[key] = value
107
- }`}})();if(N)U+=N;else{if(U+="\n",U+=e?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",U+=`
107
+ }`}})();if(w)U+=w;else{if(U+="\n",U+=e?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",U+=`
108
108
  if (contentType) {
109
109
  const index = contentType.indexOf(';')
110
110
  if (index !== -1) contentType = contentType.substring(0, index)\n`,J.parse.length){U+="let used = false\n";const C=E("parse",{unit:J.parse.length});for(let b=0;b<J.parse.length;b++){const _0=E("parse.unit",{name:J.parse[b].fn.name}),W0=`bo${b}`;if(b!==0)U+="if(!used) {\n";if(U+=`let ${W0} = parse[${b}](c, contentType)\n`,U+=`if(${W0} instanceof Promise) ${W0} = await ${W0}\n`,U+=`if(${W0} !== undefined) { c.body = ${W0}; used = true }\n`,_0(),b!==0)U+="}"}C()}if(J.parse.length)U+="if (!used)";U+=`
@@ -148,41 +148,41 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
148
148
  }
149
149
 
150
150
  break
151
- }\n`,U+="}\n"}}U+="\n"}if(V8(),J?.transform){const I=E("transform",{unit:J.transform.length});if(J.transform.length)U+="\nlet transformed\n";for(let F=0;F<J.transform.length;F++){const N=J.transform[F],C=E("transform.unit",{name:N.fn.name});U+=x(N)?`transformed = await transform[${F}](c)\n`:`transformed = transform[${F}](c)\n`,U+=`if(transformed?.[ELYSIA_RESPONSE])
151
+ }\n`,U+="}\n"}}U+="\n"}if(V$(),J?.transform){const I=E("transform",{unit:J.transform.length});if(J.transform.length)U+="\nlet transformed\n";for(let D=0;D<J.transform.length;D++){const w=J.transform[D],C=E("transform.unit",{name:w.fn.name});U+=x(w)?`transformed = await transform[${D}](c)\n`:`transformed = transform[${D}](c)\n`,U+=`if(transformed?.[ELYSIA_RESPONSE])
152
152
  throw transformed
153
153
  else
154
- Object.assign(c, transformed)\n`,C()}I()}if(Q){if(U+="\n",Q.headers){if(B0("default",Q.headers.params))for(let[I,F]of Object.entries(b0.Default(Q.headers.schema,{}))){const N=typeof F==="object"?JSON.stringify(F):`'${F}'`;if(N)U+=`c.headers['${I}'] ??= ${N}\n`}if(U+=`if(headers.Check(c.headers) === false) {
154
+ Object.assign(c, transformed)\n`,C()}I()}if(Y){if(U+="\n",Y.headers){if(B0("default",Y.headers.params))for(let[I,D]of Object.entries(b0.Default(Y.headers.schema,{}))){const w=typeof D==="object"?JSON.stringify(D):`'${D}'`;if(w)U+=`c.headers['${I}'] ??= ${w}\n`}if(U+=`if(headers.Check(c.headers) === false) {
155
155
  ${U0("headers")}
156
- }`,w0(Q.headers.schema))U+="\nc.headers = headers.Decode(c.headers)\n"}if(Q.params){if(B0("default",Q.params.schema))for(let[I,F]of Object.entries(b0.Default(Q.params.schema,{}))){const N=typeof F==="object"?JSON.stringify(F):`'${F}'`;if(N)U+=`c.params['${I}'] ??= ${N}\n`}if(U+=`if(params.Check(c.params) === false) {
156
+ }`,N0(Y.headers.schema))U+="\nc.headers = headers.Decode(c.headers)\n"}if(Y.params){if(B0("default",Y.params.schema))for(let[I,D]of Object.entries(b0.Default(Y.params.schema,{}))){const w=typeof D==="object"?JSON.stringify(D):`'${D}'`;if(w)U+=`c.params['${I}'] ??= ${w}\n`}if(U+=`if(params.Check(c.params) === false) {
157
157
  ${U0("params")}
158
- }`,w0(Q.params.schema))U+="\nc.params = params.Decode(c.params)\n"}if(Q.query){if($0)U+="c.query = query.Clean(c.query);\n";if(B0("default",Q.query.schema))for(let[I,F]of Object.entries(b0.Default(Q.query.schema,{}))){const N=typeof F==="object"?JSON.stringify(F):`'${F}'`;if(N)U+=`c.query['${I}'] ??= ${N}\n`}if(U+=`if(query.Check(c.query) === false) {
158
+ }`,N0(Y.params.schema))U+="\nc.params = params.Decode(c.params)\n"}if(Y.query){if($0)U+="c.query = query.Clean(c.query);\n";if(B0("default",Y.query.schema))for(let[I,D]of Object.entries(b0.Default(Y.query.schema,{}))){const w=typeof D==="object"?JSON.stringify(D):`'${D}'`;if(w)U+=`c.query['${I}'] ??= ${w}\n`}if(U+=`if(query.Check(c.query) === false) {
159
159
  ${U0("query")}
160
- }`,w0(Q.query.schema))U+="\nc.query = query.Decode(Object.assign({}, c.query))\n"}if(Q.body){if($0)U+="c.body = body.Clean(c.body);\n";if(B0("default",Q.body.schema))U+=`if(body.Check(c.body) === false) {
161
- c.body = Object.assign(${JSON.stringify(b0.Default(Q.body.schema,null)??{})}, c.body)
160
+ }`,N0(Y.query.schema))U+="\nc.query = query.Decode(Object.assign({}, c.query))\n"}if(Y.body){if($0)U+="c.body = body.Clean(c.body);\n";if(B0("default",Y.body.schema))U+=`if(body.Check(c.body) === false) {
161
+ c.body = Object.assign(${JSON.stringify(b0.Default(Y.body.schema,null)??{})}, c.body)
162
162
 
163
163
  if(body.Check(c.query) === false) {
164
164
  ${U0("body")}
165
165
  }
166
166
  }`;else U+=`if(body.Check(c.body) === false) {
167
167
  ${U0("body")}
168
- }`;if(w0(Q.body.schema))U+="\nc.body = body.Decode(c.body)\n"}if(m(r?.schema.properties??{})){if(U+=`const cookieValue = {}
168
+ }`;if(N0(Y.body.schema))U+="\nc.body = body.Decode(c.body)\n"}if(m(r?.schema.properties??{})){if(U+=`const cookieValue = {}
169
169
  for(const [key, value] of Object.entries(c.cookie))
170
- cookieValue[key] = value.value\n`,B0("default",r.schema))for(let[I,F]of Object.entries(b0.Default(r.schema,{})))U+=`cookieValue['${I}'] = ${typeof F==="object"?JSON.stringify(F):F}\n`;U+=`if(cookie.Check(cookieValue) === false) {
170
+ cookieValue[key] = value.value\n`,B0("default",r.schema))for(let[I,D]of Object.entries(b0.Default(r.schema,{})))U+=`cookieValue['${I}'] = ${typeof D==="object"?JSON.stringify(D):D}\n`;U+=`if(cookie.Check(cookieValue) === false) {
171
171
  ${U0("cookie","cookieValue")}
172
- }`}}if(J?.beforeHandle){const I=E("beforeHandle",{unit:J.beforeHandle.length});let F=!1;for(let N=0;N<J.beforeHandle.length;N++){const C=J.beforeHandle[N],b=E("beforeHandle.unit",{name:C.fn.name}),_0=H0(C.fn.toString());if(C.subType==="resolve"){if(!F)F=!0,U+="\nlet resolved\n";U+=x(C)?`resolved = await beforeHandle[${N}](c);\n`:`resolved = beforeHandle[${N}](c);\n`,U+=`if(resolved[ELYSIA_RESPONSE])
172
+ }`}}if(J?.beforeHandle){const I=E("beforeHandle",{unit:J.beforeHandle.length});let D=!1;for(let w=0;w<J.beforeHandle.length;w++){const C=J.beforeHandle[w],b=E("beforeHandle.unit",{name:C.fn.name}),_0=H0(C.fn.toString());if(C.subType==="resolve"){if(!D)D=!0,U+="\nlet resolved\n";U+=x(C)?`resolved = await beforeHandle[${w}](c);\n`:`resolved = beforeHandle[${w}](c);\n`,U+=`if(resolved[ELYSIA_RESPONSE])
173
173
  throw resolved
174
174
  else
175
- Object.assign(c, resolved)\n`}else if(!_0)U+=x(C)?`await beforeHandle[${N}](c);\n`:`beforeHandle[${N}](c);\n`,b();else{U+="Object.assign(c, be);",U+=x(C)?`be = await beforeHandle[${N}](c);\n`:`be = beforeHandle[${N}](c);\n`,b(),U+="if(be !== undefined) {\n";const S8=E("afterHandle",{unit:J.transform.length});if(J.afterHandle){E("handle",{name:K?Y.name:void 0})();for(let l=0;l<J.afterHandle.length;l++){const f0=J.afterHandle[l],T8=H0(f0.fn.toString()),C8=E("afterHandle.unit",{name:f0.fn.name});if(U+="c.response = be\n",!T8)U+=x(f0.fn)?`await afterHandle[${l}](c, be)\n`:`afterHandle[${l}](c, be)\n`;else U+=x(f0.fn)?`af = await afterHandle[${l}](c)\n`:`af = afterHandle[${l}](c)\n`,U+="if(af !== undefined) { c.response = be = af }\n";C8()}}if(I(),S8(),Q.response)U+=y0("be");if(J.mapResponse.length){U+="c.response = be";for(let l=0;l<J.mapResponse.length;l++)U+=`\nif(mr === undefined) {
175
+ Object.assign(c, resolved)\n`}else if(!_0)U+=x(C)?`await beforeHandle[${w}](c);\n`:`beforeHandle[${w}](c);\n`,b();else{U+="Object.assign(c, be);",U+=x(C)?`be = await beforeHandle[${w}](c);\n`:`be = beforeHandle[${w}](c);\n`,b(),U+="if(be !== undefined) {\n",I();const S$=E("afterHandle",{unit:J.transform.length});if(J.afterHandle){E("handle",{name:K?Q.name:void 0})();for(let l=0;l<J.afterHandle.length;l++){const f0=J.afterHandle[l],T$=H0(f0.fn.toString()),C$=E("afterHandle.unit",{name:f0.fn.name});if(U+="c.response = be\n",!T$)U+=x(f0.fn)?`await afterHandle[${l}](c, be)\n`:`afterHandle[${l}](c, be)\n`;else U+=x(f0.fn)?`af = await afterHandle[${l}](c)\n`:`af = afterHandle[${l}](c)\n`,U+="if(af !== undefined) { c.response = be = af }\n";C$()}}if(S$(),Y.response)U+=y0("be");if(J.mapResponse.length){U+="c.response = be";for(let l=0;l<J.mapResponse.length;l++)U+=`\nif(mr === undefined) {
176
176
  mr = onMapResponse[${l}](c)
177
177
  if(mr instanceof Promise) mr = await mr
178
178
  if(mr !== undefined) c.response = mr
179
- }\n`}U+=V,U+="return mapEarlyResponse(be, c.set, c.request)}\n"}}I()}if(J?.afterHandle.length){const I=E("handle",{name:K?Y.name:void 0});if(J.afterHandle.length)U+=K0?`let r = c.response = await ${M};\n`:`let r = c.response = ${M};\n`;else U+=K0?`let r = await ${M};\n`:`let r = ${M};\n`;I();const F=E("afterHandle",{unit:J.afterHandle.length});for(let N=0;N<J.afterHandle.length;N++){const C=J.afterHandle[N],b=H0(C.fn.toString()),_0=E("afterHandle.unit",{name:C.fn.name});if(!b)U+=x(C.fn)?`await afterHandle[${N}](c)\n`:`afterHandle[${N}](c)\n`,_0();else if(U+=x(C.fn)?`af = await afterHandle[${N}](c)\n`:`af = afterHandle[${N}](c)\n`,_0(),Q.response)U+="if(af !== undefined) {",F(),U+=y0("af"),U+="c.response = af }";else U+="if(af !== undefined) {",F(),U+="c.response = af}\n"}if(F(),U+="r = c.response\n",Q.response)U+=y0();if(U+=V,J.mapResponse.length)for(let N=0;N<J.mapResponse.length;N++)U+=`\nmr = onMapResponse[${N}](c)
179
+ }\n`}U+=V,U+="return mapEarlyResponse(be, c.set, c.request)}\n"}}I()}if(J?.afterHandle.length){const I=E("handle",{name:K?Q.name:void 0});if(J.afterHandle.length)U+=K0?`let r = c.response = await ${M};\n`:`let r = c.response = ${M};\n`;else U+=K0?`let r = await ${M};\n`:`let r = ${M};\n`;I();const D=E("afterHandle",{unit:J.afterHandle.length});for(let w=0;w<J.afterHandle.length;w++){const C=J.afterHandle[w],b=H0(C.fn.toString()),_0=E("afterHandle.unit",{name:C.fn.name});if(!b)U+=x(C.fn)?`await afterHandle[${w}](c)\n`:`afterHandle[${w}](c)\n`,_0();else if(U+=x(C.fn)?`af = await afterHandle[${w}](c)\n`:`af = afterHandle[${w}](c)\n`,_0(),Y.response)U+="if(af !== undefined) {",D(),U+=y0("af"),U+="c.response = af }";else U+="if(af !== undefined) {",D(),U+="c.response = af}\n"}if(D(),U+="r = c.response\n",Y.response)U+=y0();if(U+=V,J.mapResponse.length)for(let w=0;w<J.mapResponse.length;w++)U+=`\nmr = onMapResponse[${w}](c)
180
180
  if(mr instanceof Promise) mr = await mr
181
- if(mr !== undefined) c.response = mr\n`;if(k0)U+="return mapResponse(r, c.set, c.request)\n";else U+="return mapCompactResponse(r, c.request)\n"}else{const I=E("handle",{name:K?Y.name:void 0});if(Q.response||J.mapResponse.length){if(U+=K0?`let r = await ${M};\n`:`let r = ${M};\n`,I(),Q.response)U+=y0();if(E("afterHandle")(),J.mapResponse.length){U+="c.response = r";for(let F=0;F<J.mapResponse.length;F++)U+=`\nif(mr === undefined) {
182
- mr = onMapResponse[${F}](c)
181
+ if(mr !== undefined) c.response = mr\n`;if(k0)U+="return mapResponse(r, c.set, c.request)\n";else U+="return mapCompactResponse(r, c.request)\n"}else{const I=E("handle",{name:K?Q.name:void 0});if(Y.response||J.mapResponse.length){if(U+=K0?`let r = await ${M};\n`:`let r = ${M};\n`,I(),Y.response)U+=y0();if(E("afterHandle")(),J.mapResponse.length){U+="c.response = r";for(let D=0;D<J.mapResponse.length;D++)U+=`\nif(mr === undefined) {
182
+ mr = onMapResponse[${D}](c)
183
183
  if(mr instanceof Promise) mr = await mr
184
184
  if(mr !== undefined) r = c.response = mr
185
- }\n`}if(U+=V,Y instanceof Response)U+=D.set?`if(
185
+ }\n`}if(U+=V,Q instanceof Response)U+=F.set?`if(
186
186
  isNotEmpty(c.set.headers) ||
187
187
  c.set.status !== 200 ||
188
188
  c.set.redirect ||
@@ -190,11 +190,11 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
190
190
  )
191
191
  return mapResponse(${M}.clone(), c.set, c.request)
192
192
  else
193
- return ${M}.clone()`:`return ${M}.clone()`,U+="\n";else if(k0)U+="return mapResponse(r, c.set, c.request)\n";else U+="return mapCompactResponse(r, c.request)\n"}else if(j.handle||v){if(U+=K0?`let r = await ${M};\n`:`let r = ${M};\n`,I(),E("afterHandle")(),J.mapResponse.length){U+="c.response = r";for(let F=0;F<J.mapResponse.length;F++)U+=`\nif(mr === undefined) {
194
- mr = onMapResponse[${F}](c)
193
+ return ${M}.clone()`:`return ${M}.clone()`,U+="\n";else if(k0)U+="return mapResponse(r, c.set, c.request)\n";else U+="return mapCompactResponse(r, c.request)\n"}else if(j.handle||v){if(U+=K0?`let r = await ${M};\n`:`let r = ${M};\n`,I(),E("afterHandle")(),J.mapResponse.length){U+="c.response = r";for(let D=0;D<J.mapResponse.length;D++)U+=`\nif(mr === undefined) {
194
+ mr = onMapResponse[${D}](c)
195
195
  if(mr instanceof Promise) mr = await mr
196
196
  if(mr !== undefined) r = c.response = mr
197
- }\n`}if(U+=V,k0)U+="return mapResponse(r, c.set, c.request)\n";else U+="return mapCompactResponse(r, c.request)\n"}else{I();const F=K0?`await ${M}`:M;if(E("afterHandle")(),Y instanceof Response)U+=D.set?`if(
197
+ }\n`}if(U+=V,k0)U+="return mapResponse(r, c.set, c.request)\n";else U+="return mapCompactResponse(r, c.request)\n"}else{I();const D=K0?`await ${M}`:M;if(E("afterHandle")(),Q instanceof Response)U+=F.set?`if(
198
198
  isNotEmpty(c.set.headers) ||
199
199
  c.set.status !== 200 ||
200
200
  c.set.redirect ||
@@ -202,10 +202,10 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
202
202
  )
203
203
  return mapResponse(${M}.clone(), c.set, c.request)
204
204
  else
205
- return ${M}.clone()`:`return ${M}.clone()`,U+="\n";else if(k0)U+=`return mapResponse(${F}, c.set, c.request)\n`;else U+=`return mapCompactResponse(${F}, c.request)\n`}}if(z||A){if(U+="\n} catch(error) {",!X1)U+="return (async () => {";U+="const set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n";const I=E("error",{unit:J.error.length});if(J.error.length){U+=`
205
+ return ${M}.clone()`:`return ${M}.clone()`,U+="\n";else if(k0)U+=`return mapResponse(${D}, c.set, c.request)\n`;else U+=`return mapCompactResponse(${D}, c.request)\n`}}if(z||A){if(U+="\n} catch(error) {",!X1)U+="return (async () => {";U+="const set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n";const I=E("error",{unit:J.error.length});if(J.error.length){U+=`
206
206
  c.error = error
207
207
  c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
208
- `;for(let F=0;F<J.error.length;F++){const N=`er${F}`,C=E("error.unit",{name:J.error[F].fn.name});if(U+=`\nlet ${N} = handleErrors[${F}](c)\n`,x(J.error[F]))U+=`if (${N} instanceof Promise) ${N} = await ${N}\n`;C(),U+=`${N} = mapEarlyResponse(${N}, set, c.request)\n`,U+=`if (${N}) {`,U+=`return ${N} }\n`}}if(I(),U+="return handleError(c, error, true)\n\n",!X1)U+="})()";if(U+="}",A||O){U+=" finally { ";const F=E("response",{unit:J.onResponse.length});U+=A,F(),U+="}"}}return U=`const {
208
+ `;for(let D=0;D<J.error.length;D++){const w=`er${D}`,C=E("error.unit",{name:J.error[D].fn.name});if(U+=`\nlet ${w} = handleErrors[${D}](c)\n`,x(J.error[D]))U+=`if (${w} instanceof Promise) ${w} = await ${w}\n`;C(),U+=`${w} = mapEarlyResponse(${w}, set, c.request)\n`,U+=`if (${w}) {`,U+=`return ${w} }\n`}}if(I(),U+="return handleError(c, error, true)\n\n",!X1)U+="})()";if(U+="}",A||O){U+=" finally { ";const D=E("response",{unit:J.onResponse.length});U+=A,D(),U+="}"}}return U=`const {
209
209
  handler,
210
210
  handleError,
211
211
  hooks: {
@@ -250,7 +250,7 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
250
250
  ELYSIA_RESPONSE
251
251
  } = hooks
252
252
 
253
- ${J.onResponse.length?`const ${J.onResponse.map((I,F)=>`res${F} = onResponse[${F}]`).join(",")}`:""}
253
+ ${J.onResponse.length?`const ${J.onResponse.map((I,D)=>`res${D} = onResponse[${D}]`).join(",")}`:""}
254
254
 
255
255
  return ${X1?"async":""} function handle(c) {
256
256
  ${J.beforeHandle.length?"let be":""}
@@ -259,8 +259,8 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
259
259
 
260
260
  ${G?"c.schema = schema; c.defs = definitions":""}
261
261
  ${U}
262
- }`,Function("hooks",U)({handler:Y,hooks:e1(J),validator:Q,handleError:$.handleError,utils:{mapResponse:h,mapCompactResponse:o,mapEarlyResponse:u,parseQuery:D8.parse,isNotEmpty:m},error:{NotFoundError:G0,ValidationError:R,InternalServerError:a0,ParseError:e0},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:Y0,getReporter:()=>$.reporter,requestId:A8,parseCookie:l0,signCookie:A0,decodeURIComponent:M8.default,ELYSIA_RESPONSE:d})},O1=($)=>{const Z={event:{...$.inference.event,queries:[...$.inference.event.queries]},trace:{...$.inference.trace}};let W="",X="";const J=$.setHeaders;for(let U of Object.keys($.singleton.decorator))W+=`,${U}: app.singleton.decorator.${U}`;const Q=$.router,Y=$.event.trace.length>0;let G=`
263
- const route = router.find(request.method, path) ${Q.http.root.ALL?'?? router.find("ALL", path)':""}
262
+ }`,Function("hooks",U)({handler:Q,hooks:e1(J),validator:Y,handleError:$.handleError,utils:{mapResponse:h,mapCompactResponse:o,mapEarlyResponse:u,parseQuery:F$.parse,isNotEmpty:m},error:{NotFoundError:G0,ValidationError:R,InternalServerError:a0,ParseError:e0},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:Q0,getReporter:()=>$.reporter,requestId:A$,parseCookie:l0,signCookie:A0,decodeURIComponent:M$.default,ELYSIA_RESPONSE:d})},O1=($)=>{const Z={event:{...$.inference.event,queries:[...$.inference.event.queries]},trace:{...$.inference.trace}};let W="",X="";const J=$.setHeaders;for(let U of Object.keys($.singleton.decorator))W+=`,${U}: app.singleton.decorator.${U}`;const Y=$.router,Q=$.event.trace.length>0;let G=`
263
+ const route = router.find(request.method, path) ${Y.http.root.ALL?'?? router.find("ALL", path)':""}
264
264
 
265
265
  if (route === null)
266
266
  return ${$.event.error.length?"app.handleError(ctx, notFound)":$.event.request.length?`new Response(error404Message, {
@@ -273,7 +273,7 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
273
273
  return route.store.composed(ctx)
274
274
 
275
275
  if(route.store.compose)
276
- return (route.store.compose())(ctx)`;else G+="return route.store(ctx)";G+="\n";let _="";for(let[U,{code:D,all:P}]of Object.entries(Q.static.http.map))_+=`case '${U}':\nswitch(request.method) {\n${D}\n${P??"default: break map"}}\n\n`;const K=$.event.request.some(x),z=`\n
276
+ return (route.store.compose())(ctx)`;else G+="return route.store(ctx)";G+="\n";let _="";for(let[U,{code:F,all:P}]of Object.entries(Y.static.http.map))_+=`case '${U}':\nswitch(request.method) {\n${F}\n${P??"default: break map"}}\n\n`;const K=$.event.request.some(x),z=`\n
277
277
  const url = request.url
278
278
  const s = url.indexOf('/', 11)
279
279
  const qi = url.indexOf('?', s + 1)
@@ -299,14 +299,14 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
299
299
  const notFound = new NotFoundError()
300
300
 
301
301
  ${$.event.request.length?"const onRequest = app.event.request.map(x => x.fn)":""}
302
- ${Q.static.http.variables}
302
+ ${Y.static.http.variables}
303
303
  ${$.event.error.length?"":`
304
304
  const error404Message = notFound.message.toString()
305
305
  const error404 = new Response(error404Message, { status: 404 });
306
306
  `}
307
307
 
308
- return ${K?"async":""} function map(request) {\n`,$.event.request.length)X+="let re";const M=N8({hasTrace:Y,hasTraceSet:Z.trace.set,condition:{request:Z.trace.request},addFn:(U)=>{X+=U}});if($.event.request.length){X+=`
309
- ${Y?"const id = +requestId.value++":""}
308
+ return ${K?"async":""} function map(request) {\n`,$.event.request.length)X+="let re";const M=w$({hasTrace:Q,hasTraceSet:Z.trace.set,condition:{request:Z.trace.request},addFn:(U)=>{X+=U}});if($.event.request.length){X+=`
309
+ ${Q?"const id = +requestId.value++":""}
310
310
 
311
311
  const ctx = {
312
312
  request,
@@ -316,16 +316,16 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
316
316
  status: 200
317
317
  },
318
318
  error
319
- ${Y?",$$requestId: +id":""}
319
+ ${Q?",$$requestId: +id":""}
320
320
  ${W}
321
321
  }
322
- `;const U=M("request",{attribute:"ctx",unit:$.event.request.length});X+="\n try {\n";for(let D=0;D<$.event.request.length;D++){const P=$.event.request[D],w=H0(P.fn.toString()),L=x(P),q=M("request.unit",{name:$.event.request[D].fn.name});if(w)X+=`re = mapEarlyResponse(
323
- ${L?"await":""} onRequest[${D}](ctx),
322
+ `;const U=M("request",{attribute:"ctx",unit:$.event.request.length});X+="\n try {\n";for(let F=0;F<$.event.request.length;F++){const P=$.event.request[F],N=H0(P.fn.toString()),L=x(P),q=M("request.unit",{name:$.event.request[F].fn.name});if(N)X+=`re = mapEarlyResponse(
323
+ ${L?"await":""} onRequest[${F}](ctx),
324
324
  ctx.set,
325
325
  request
326
- )\n`,q(),X+="if(re !== undefined) return re\n";else X+=`${L?"await":""} onRequest[${D}](ctx)\n`,q()}X+=`} catch (error) {
326
+ )\n`,q(),X+="if(re !== undefined) return re\n";else X+=`${L?"await":""} onRequest[${F}](ctx)\n`,q()}X+=`} catch (error) {
327
327
  return app.handleError(ctx, error)
328
- }`,U(),X+=z,X+="\nctx.qi = qi\n ctx.path = path\n"}else X+=z,X+=`${Y?"const id = +requestId.value++":""}
328
+ }`,U(),X+=z,X+="\nctx.qi = qi\n ctx.path = path\n"}else X+=z,X+=`${Q?"const id = +requestId.value++":""}
329
329
  const ctx = {
330
330
  request,
331
331
  store,
@@ -336,14 +336,14 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
336
336
  status: 200
337
337
  },
338
338
  error
339
- ${Y?",$$requestId: id":""}
339
+ ${Q?",$$requestId: id":""}
340
340
  ${W}
341
341
  }`,M("request",{unit:$.event.request.length,attribute:Z.trace.context||Z.trace.store||Z.trace.set?"ctx":""})();const A=$.router.static.ws,j=$.router.ws;if(Object.keys(A).length||j.history.length){X+=`
342
342
  if(request.method === 'GET') {
343
- switch(path) {`;for(let[U,D]of Object.entries(A))X+=`
343
+ switch(path) {`;for(let[U,F]of Object.entries(A))X+=`
344
344
  case '${U}':
345
345
  if(request.headers.get('upgrade') === 'websocket')
346
- return st${D}(ctx)
346
+ return st${F}(ctx)
347
347
 
348
348
  break`;X+=`
349
349
  default:
@@ -368,7 +368,7 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
368
368
  }
369
369
 
370
370
  ${G}
371
- }`;const O=V1($);return $.handleError=O,Function("data",X)({app:$,mapEarlyResponse:u,NotFoundError:G0,getReporter:()=>$.reporter,requestId:A8,handleError:O,error:N1})},V1=($)=>{let Z=`const {
371
+ }`;const O=V1($);return $.handleError=O,Function("data",X)({app:$,mapEarlyResponse:u,NotFoundError:G0,getReporter:()=>$.reporter,requestId:A$,handleError:O,error:w1})},V1=($)=>{let Z=`const {
372
372
  app: { event: { error: onErrorContainer, onResponse: resContainer } },
373
373
  mapResponse,
374
374
  ERROR_CODE,
@@ -420,9 +420,9 @@ var q8=Object.create;var{defineProperty:C1,getPrototypeOf:R8,getOwnPropertyNames
420
420
 
421
421
  return mapResponse(error, set, context.request)
422
422
  }
423
- }`,Function("inject",Z)({app:$,mapResponse:h,ERROR_CODE:Y0,ELYSIA_RESPONSE:d})},x0=($)=>`if(stc${$}) return stc${$}(ctx)
423
+ }`,Function("inject",Z)({app:$,mapResponse:h,ERROR_CODE:Q0,ELYSIA_RESPONSE:d})},x0=($)=>`if(stc${$}) return stc${$}(ctx)
424
424
  if(st${$}.compose) return (stc${$} = st${$}.compose())(ctx)
425
425
 
426
- return st${$}(ctx)`;var W1=V0(P1(),1);var S1=($)=>async(Z)=>{const W=Z.url,X=W.indexOf("/",11),J=W.indexOf("?",X+1),Q=J===-1?W.substring(X):W.substring(X,J),Y={cookie:{},status:200,headers:{}},G=Object.assign({},$.singleton.decorator,{set:Y,store:$.singleton.store,request:Z,path:Q,qi:J});try{for(let D=0;D<$.event.request.length;D++){const P=$.event.request[D].fn;let w=P(G);if(w instanceof Promise)w=await w;if(w=u(w,Y),w)return w}const B=$.router.dynamic.find(Z.method,Q)??$.router.dynamic.find("ALL",Q);if(!B)throw new G0;const{handle:_,hooks:K,validator:z,content:M}=B.store;let A;if(Z.method!=="GET"&&Z.method!=="HEAD")if(M)switch(M){case"application/json":A=await Z.json();break;case"text/plain":A=await Z.text();break;case"application/x-www-form-urlencoded":A=W1.parse(await Z.text());break;case"application/octet-stream":A=await Z.arrayBuffer();break;case"multipart/form-data":A={};const D=await Z.formData();for(let P of D.keys()){if(A[P])continue;const w=D.getAll(P);if(w.length===1)A[P]=w[0];else A[P]=w}break}else{let D=Z.headers.get("content-type");if(D){const P=D.indexOf(";");if(P!==-1)D=D.slice(0,P);for(let w=0;w<K.parse.length;w++){const L=K.parse[w].fn;let q=L(G,D);if(q instanceof Promise)q=await q;if(q){A=q;break}}if(A===void 0)switch(D){case"application/json":A=await Z.json();break;case"text/plain":A=await Z.text();break;case"application/x-www-form-urlencoded":A=W1.parse(await Z.text());break;case"application/octet-stream":A=await Z.arrayBuffer();break;case"multipart/form-data":A={};const w=await Z.formData();for(let L of w.keys()){if(A[L])continue;const q=w.getAll(L);if(q.length===1)A[L]=q[0];else A[L]=q}break}}}G.body=A,G.params=B?.params||void 0,G.query=J===-1?{}:W1.parse(W.substring(J+1)),G.headers={};for(let[D,P]of Z.headers.entries())G.headers[D]=P;const j=Object.assign({},$.config?.cookie,z?.cookie?.config),O=Z.headers.get("cookie");G.cookie=await l0(G.set,O,j?{secret:j.secrets!==void 0?typeof j.secrets==="string"?j.secrets:j.secrets.join(","):void 0,sign:j.sign===!0?!0:j.sign!==void 0?typeof j.sign==="string"?j.sign:j.sign.join(","):void 0}:void 0);for(let D=0;D<K.transform.length;D++){const P=K.transform[D],w=P.fn(G);if(P.subType==="derive")if(w instanceof Promise)Object.assign(G,await w);else Object.assign(G,w);else if(w instanceof Promise)await w}if(z){if(z.headers){const D={};for(let P in Z.headers)D[P]=Z.headers.get(P);if(z.headers.Check(D)===!1)throw new R("header",z.headers,D)}if(z.params?.Check(G.params)===!1)throw new R("params",z.params,G.params);if(z.query?.Check(G.query)===!1)throw new R("query",z.query,G.query);if(z.cookie){const D={};for(let[P,w]of Object.entries(G.cookie))D[P]=w.value;if(z.cookie?.Check(D)===!1)throw new R("cookie",z.cookie,D)}if(z.body?.Check(A)===!1)throw new R("body",z.body,A)}for(let D=0;D<K.beforeHandle.length;D++){let P=K.beforeHandle[D].fn(G);if(P instanceof Promise)P=await P;if(P!==void 0){G.response=P;for(let L=0;L<K.afterHandle.length;L++){let q=K.afterHandle[L].fn(G);if(q instanceof Promise)q=await q;if(q)P=q}const w=u(P,G.set);if(w)return w}}let U=_(G);if(U instanceof Promise)U=await U;if(!K.afterHandle.length){const D=z?.response?.[U.status];if(D?.Check(U)===!1)throw new R("response",D,U)}else{G.response=U;for(let D=0;D<K.afterHandle.length;D++){let P=K.afterHandle[D].fn(G);if(P instanceof Promise)P=await P;const w=u(P,G.set);if(w!==void 0){const L=z?.response?.[U.status];if(L?.Check(w)===!1)throw new R("response",L,w);return w}}}if(G.set.cookie&&j?.sign){const D=!j.secrets?void 0:typeof j.secrets==="string"?j.secrets:j.secrets[0];if(j.sign===!0)for(let[P,w]of Object.entries(G.set.cookie))G.set.cookie[P].value=await A0(w.value,"${secret}");else{const P=z?.cookie?.schema?.properties;for(let w of j.sign){if(!(w in P))continue;if(G.set.cookie[w]?.value)G.set.cookie[w].value=await A0(G.set.cookie[w].value,D)}}}return h(U,G.set)}catch(B){if(B.status)Y.status=B.status;return $.handleError(G,B)}finally{for(let B of $.event.onResponse)await B.fn(G)}},j8=($)=>async(Z,W)=>{const X=Object.assign(Z,{error:W,code:W.code});X.set=Z.set;for(let J=0;J<$.event.error.length;J++){let Y=$.event.error[J].fn(X);if(Y instanceof Promise)Y=await Y;if(Y!==void 0&&Y!==null)return h(Y,Z.set)}return new Response(typeof W.cause==="string"?W.cause:W.message,{headers:Z.set.headers,status:W.status??500})};import{TypeSystem as I0} from"@sinclair/typebox/system";import{Type as g0,FormatRegistry as O0} from"@sinclair/typebox";import{Value as P0} from"@sinclair/typebox/value";import{TypeSystemPolicy as P6,TypeSystem as I6,TypeSystemDuplicateFormat as O6,TypeSystemDuplicateTypeKind as V6} from"@sinclair/typebox/system";import{TypeCompiler as T6,TypeCheck as C6} from"@sinclair/typebox/compiler";var w8=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,P8=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,I8=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/;try{I0.Format("email",($)=>/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]+(?:-[a-z0-9]+)*$/i.test($)),I0.Format("uuid",($)=>/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test($)),I0.Format("date",($)=>{const Z=$.replace(/"/g,"");if(w8.test(Z)||P8.test(Z)||I8.test(Z)){const W=new Date(Z);if(!Number.isNaN(W.getTime()))return!0}return!1}),I0.Format("date-time",($)=>{const Z=$.replace(/"/g,"");if(w8.test(Z)||P8.test(Z)||I8.test(Z)){const W=new Date(Z);if(!Number.isNaN(W.getTime()))return!0}return!1})}catch{}var T=Object.assign({},g0),O8=($)=>{if(typeof $==="string")switch($.slice(-1)){case"k":return+$.slice(0,$.length-1)*1024;case"m":return+$.slice(0,$.length-1)*1048576;default:return+$}return $},T1=($,Z)=>{if(!(Z instanceof Blob))return!1;if($.minSize&&Z.size<O8($.minSize))return!1;if($.maxSize&&Z.size>O8($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!Z.type.startsWith($.extension))return!1}else{for(let W=0;W<$.extension.length;W++)if(Z.type.startsWith($.extension[W]))return!0;return!1}return!0},z$=I0.Type("Files",($,Z)=>{if(!Array.isArray(Z))return T1($,Z);if($.minItems&&Z.length<$.minItems)return!1;if($.maxItems&&Z.length>$.maxItems)return!1;for(let W=0;W<Z.length;W++)if(!T1($,Z[W]))return!1;return!0});if(!O0.Get("numeric"))O0.Set("numeric",($)=>!!$&&!isNaN(+$));if(!O0.Get("boolean"))O0.Set("boolean",($)=>$==="true"||$==="false");if(!O0.Get("ObjectString"))O0.Set("ObjectString",($)=>{let Z=$.charCodeAt(0);if(Z===9||Z===10||Z===32)Z=$.trimStart().charCodeAt(0);if(Z!==123&&Z!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});var a={Numeric:($)=>{const Z=g0.Number($);return T.Transform(T.Union([T.String({format:"numeric",default:0}),T.Number($)],$)).Decode((W)=>{const X=+W;if(isNaN(X))return W;if($&&!P0.Check(Z,X))throw new R("property",Z,X);return X}).Encode((W)=>W)},Date:($)=>{const Z=g0.Date($);return T.Transform(T.Union([g0.Date($),T.String({format:"date",default:(new Date()).toISOString()}),T.String({format:"date-time",default:(new Date()).toISOString()})],$)).Decode((W)=>{if(W instanceof Date)return W;const X=new Date(W);if(!P0.Check(Z,X))throw new R("property",Z,X);return X}).Encode((W)=>{if(typeof W==="string")return new Date(W);return W})},BooleanString:($)=>{const Z=g0.Boolean($);return T.Transform(T.Union([T.String({format:"boolean",default:!1}),T.Boolean($)],$)).Decode((W)=>{if(typeof W==="string")return W==="true";if($&&!P0.Check(Z,W))throw new R("property",Z,W);return W}).Encode((W)=>W)},ObjectString:($={},Z)=>{const W=T.Object($,Z),X=JSON.stringify(P0.Create(W));return T.Transform(T.Union([T.String({format:"ObjectString",default:X}),W])).Decode((J)=>{if(typeof J==="string"){try{J=JSON.parse(J)}catch{throw new R("property",W,J)}if(!P0.Check(W,J))throw new R("property",W,J);return J}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new R("property",W,J)}if(!P0.Check(W,J))throw new R("property",W,J);return JSON.stringify(J)})},File:I0.Type("File",T1),Files:($={})=>T.Transform(z$($)).Decode((Z)=>{if(Array.isArray(Z))return Z;return[Z]}).Encode((Z)=>Z),Nullable:($)=>T.Union([T.Null(),$]),MaybeEmpty:($)=>T.Union([T.Null(),T.Undefined(),$]),Cookie:($,{domain:Z,expires:W,httpOnly:X,maxAge:J,path:Q,priority:Y,sameSite:G,secure:B,secrets:_,sign:K,...z}={})=>{const M=T.Object($,z);return M.config={domain:Z,expires:W,httpOnly:X,maxAge:J,path:Q,priority:Y,sameSite:G,secure:B,secrets:_,sign:K},M}};T.BooleanString=a.BooleanString;T.ObjectString=a.ObjectString;T.Numeric=a.Numeric;T.File=($={})=>a.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});T.Files=($={})=>a.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});T.Nullable=($)=>a.Nullable($);T.MaybeEmpty=a.MaybeEmpty;T.Cookie=a.Cookie;T.Date=a.Date;class i{config;server=null;dependencies={};reporter=new H1;_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[]};validator=null;event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],onResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new X0,ws:new X0,dynamic:new X0,static:{http:{handlers:[],variables:"",map:{},all:""},ws:{}},history:[]};inference={event:{body:!1,cookie:!1,headers:!1,queries:[],query:!1,set:!1,unknownQueries:!1},trace:{request:!1,parse:!1,transform:!1,handle:!1,beforeHandle:!1,afterHandle:!1,error:!1,context:!1,store:!1,set:!1}};promisedModules=new A1;constructor($){if($?.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if(this.config={forceErrorEncapsulation:!0,prefix:"",aot:!0,strictPath:!1,global:!1,cookie:{},analytic:!1,...$,experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}getServer(){return this.server}get routes(){return this.router.history}routeTree=new Map;applyMacro($){if(this.extender.macros.length){const Z=o1({globalHook:this.event,localHook:$}),W={events:{global:this.event,local:$},onParse:Z("parse"),onTransform:Z("transform"),onBeforeHandle:Z("beforeHandle"),onAfterHandle:Z("afterHandle"),onResponse:Z("onResponse"),mapResponse:Z("mapResponse"),onError:Z("error")};for(let X of this.extender.macros)M1(X.fn(W),$)}}add($,Z,W,X,{allowMeta:J=!1,skipPrefix:Q=!1}={allowMeta:!1,skipPrefix:!1}){if(X=a1(X),Z!==""&&Z.charCodeAt(0)!==47)Z="/"+Z;if(this.config.prefix&&!Q&&!this.config.scoped)Z=this.config.prefix+Z;if(X?.type)switch(X.type){case"text":X.type="text/plain";break;case"json":X.type="application/json";break;case"formdata":X.type="multipart/form-data";break;case"urlencoded":X.type="application/x-www-form-urlencoded";break;case"arrayBuffer":X.type="application/octet-stream";break;default:break}const Y=this.definitions.type;let G,B,_,K,z,M;const A=!this.config.aot,j={body:X?.body??this.validator?.body,headers:X?.headers??this.validator?.headers,params:X?.params??this.validator?.params,query:X?.query??this.validator?.query,cookie:X?.cookie??this.validator?.cookie,response:X?.response??this.validator?.response},O=()=>j.cookie?t0({validator:j.cookie,defaultConfig:this.config.cookie,config:j.cookie?.config??{},dynamic:A,models:Y}):void 0,U=this.config.normalize,D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:k(j.body,{dynamic:A,models:Y,normalize:U}),headers:k(j.headers,{dynamic:A,models:Y,additionalProperties:!0}),params:k(j.params,{dynamic:A,models:Y}),query:k(j.query,{dynamic:A,models:Y,normalize:U}),cookie:O(),response:i0(j.response,{dynamic:A,models:Y,normalize:U})}:{get body(){if(G)return G;return G=k(j.body,{dynamic:A,models:Y,normalize:U})},get headers(){if(B)return B;return k(j.headers,{dynamic:A,models:Y,additionalProperties:!0})},get params(){if(_)return _;return _=k(j.params,{dynamic:A,models:Y})},get query(){if(K)return K;return K=k(j.query,{dynamic:A,models:Y})},get cookie(){if(z)return z;return z=O()},get response(){if(M)return M;return M=i0(j.response,{dynamic:A,models:Y,normalize:U})}},P=Z.endsWith("/")?Z.slice(0,Z.length-1):Z+"/";if(X=f(X,{},{allowMacro:!0}),X.tags)if(!X.detail)X.detail={tags:X.tags};else X.detail.tags=X.tags;if(m(this.config.detail))X.detail=p(Object.assign({},this.config.detail),X.detail);this.applyMacro(X);const w=f(this.event,X);if(this.config.aot===!1){if(this.router.dynamic.add($,Z,{validator:D,hooks:w,content:X?.type,handle:W}),this.config.strictPath===!1)this.router.dynamic.add($,P,{validator:D,hooks:w,content:X?.type,handle:W});this.router.history.push({method:$,path:Z,composed:null,handler:W,hooks:w});return}let L=void 0;const q=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,e=n0(this.inference),v=q?Z1({app:this,path:Z,method:$,localHook:f(X),hooks:w,validator:D,handler:W,allowMeta:J,appInference:e}):(V)=>{if(L)return L(V);return(L=Z1({app:this,path:Z,method:$,localHook:f(X),hooks:w,validator:D,handler:W,allowMeta:J,appInference:e}))(V)};if(!q)v.compose=()=>{return v.composed=Z1({app:this,path:Z,method:$,localHook:f(X),hooks:w,validator:D,handler:W,allowMeta:J,appInference:e})};let r=this.router.history.length;if(this.routeTree.has($+Z)){if(r=this.router.history.findIndex((V)=>V.path===Z&&V.method===$),r!==-1){const V=this.router.history.splice(r,1)[0];if(V&&this.routeTree.has(V?.method+V?.path))this.routeTree.delete(V.method+V.path)}}this.routeTree.set($+Z,r),this.router.history.push({method:$,path:Z,composed:v,handler:W,hooks:w});const S=this.router.static.http;if($==="$INTERNALWS"){const V=this.config.strictPath?void 0:Z.endsWith("/")?Z.slice(0,Z.length-1):Z+"/";if(Z.indexOf(":")===-1&&Z.indexOf("*")===-1){const $0=S.handlers.length;if(S.handlers.push(v),S.variables+=`const st${$0} = staticRouter.handlers[${$0}]\n`,this.router.static.ws[Z]=$0,V)this.router.static.ws[V]=$0}else if(this.router.ws.add("ws",Z,v),V)this.router.ws.add("ws",V,v);return}if(Z.indexOf(":")===-1&&Z.indexOf("*")===-1){const V=S.handlers.length;if(S.handlers.push(v),S.variables+=q?`const st${V} = staticRouter.handlers[${V}]\n`:`let st${V} = staticRouter.handlers[${V}]\nlet stc${V}\n`,!S.map[Z])S.map[Z]={code:""};if($==="ALL")S.map[Z].all=q?`default: return st${V}(ctx)\n`:`default: ${x0(V)}\n`;else S.map[Z].code=q?`case '${$}': return st${V}(ctx)\n${S.map[Z].code}`:`case '${$}': ${x0(V)}\n${S.map[Z].code}`;if(!this.config.strictPath){if(!S.map[P])S.map[P]={code:""};if($==="ALL")S.map[P].all=q?`default: return st${V}(ctx)\n`:`default: ${x0(V)}\n`;else S.map[P].code=q?`case '${$}': return st${V}(ctx)\n${S.map[P].code}`:`case '${$}': ${x0(V)}\n${S.map[P].code}`}}else if(this.router.http.add($,Z,v),!this.config.strictPath)this.router.http.add($,Z.endsWith("/")?Z.slice(0,Z.length-1):Z+"/",v)}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=p(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,Z){if(!Z)return this.on("parse",$);return this.on($,"parse",Z)}onTransform($,Z){if(!Z)return this.on("transform",$);return this.on($,"transform",Z)}resolve($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"resolve",fn:Z};return this.onBeforeHandle($,W)}mapResolve($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"resolve",fn:Z};return this.onBeforeHandle($,W)}onBeforeHandle($,Z){if(!Z)return this.on("beforeHandle",$);return this.on($,"beforeHandle",Z)}onAfterHandle($,Z){if(!Z)return this.on("afterHandle",$);return this.on($,"afterHandle",Z)}mapResponse($,Z){if(!Z)return this.on("mapResponse",$);return this.on($,"mapResponse",Z)}onResponse($,Z){if(!Z)return this.on("response",$);return this.on($,"response",Z)}trace($,Z){if(!Z)Z=$,$={as:"local"};if(!Array.isArray(Z))Z=[Z];for(let W of Z)this.reporter.on("event",x1(()=>this.reporter,this.event.trace.length,W));return this.on($,"trace",Z),this}error($,Z){switch(typeof $){case"string":return Z.prototype[Y0]=$,this.definitions.error[$]=Z,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[W,X]of Object.entries($))X.prototype[Y0]=W,this.definitions.error[W]=X;return this}onError($,Z){if(!Z)return this.on("error",$);return this.on($,"error",Z)}onStop($){return this.on("stop",$),this}on($,Z,W){let X;switch(typeof $){case"string":X=$,W=Z;break;case"object":X=Z;break}if(X==="response")X="onResponse";if(Array.isArray(W))W=c(W);else if(typeof W==="function")W=[{fn:W}];else W=[W];const J=W;for(let Q of J)Q.scope=typeof $==="string"?"local":$?.as??"local";if(X==="trace")h1(J.map((Q)=>Q.fn),this.inference.trace);else d0({[X]:J.map((Q)=>Q.fn)},this.inference.event);for(let Q of J){const Y=n1(Q,"global",{skipIfHasType:!0});switch(X){case"start":this.event.start.push(Y);break;case"request":this.event.request.push(Y);break;case"parse":this.event.parse.push(Y);break;case"transform":this.event.transform.push(Y);break;case"beforeHandle":this.event.beforeHandle.push(Y);break;case"afterHandle":this.event.afterHandle.push(Y);break;case"mapResponse":this.event.mapResponse.push(Y);break;case"onResponse":this.event.onResponse.push(Y);break;case"trace":this.event.trace.push(Y);break;case"error":this.event.error.push(Y);break;case"stop":this.event.stop.push(Y);break}}return this}propagate(){const $=(Z)=>{for(let W of Z)if("scope"in W&&W.scope==="local")W.scope="scoped"};return $(this.event.parse),$(this.event.transform),$(this.event.beforeHandle),$(this.event.afterHandle),$(this.event.mapResponse),$(this.event.onResponse),$(this.event.trace),$(this.event.error),this}group($,Z,W){const X=new i({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.getServer=()=>this.server,X.inference=n0(this.inference);const J=typeof Z==="object",Q=(J?W:Z)(X);if(this.singleton=p(this.singleton,X.singleton),this.definitions=p(this.definitions,X.definitions),Q.event.request.length)this.event.request=[...this.event.request||[],...Q.event.request||[]];if(Q.event.onResponse.length)this.event.onResponse=[...this.event.onResponse||[],...Q.event.onResponse||[]];return this.model(Q.definitions.type),Object.values(X.router.history).forEach(({method:Y,path:G,handler:B,hooks:_})=>{if(G=(J?"":this.config.prefix)+$+G,J){const K=Z,z=_;this.add(Y,G,B,f(K,{...z||{},error:!z.error?Q.event.error:Array.isArray(z.error)?[...z.error||{},...Q.event.error||{}]:[z.error,...Q.event.error||{}]}))}else this.add(Y,G,B,f(_,{error:Q.event.error}),{skipPrefix:!0})}),this}guard($,Z){if(!Z){if(typeof $==="object"){if(this.applyMacro($),this.event=s0(this.event,$),this.validator={body:$.body??this.validator?.body,headers:$.headers??this.validator?.headers,params:$.params??this.validator?.params,query:$.query??this.validator?.query,response:$.response??this.validator?.response,cookie:$.cookie??this.validator?.cookie},$.detail)if(this.config.detail)this.config.detail=p(Object.assign({},this.config.detail),$.detail);else this.config.detail=$.detail;if($?.tags)if(!this.config.detail)this.config.detail={tags:$.tags};else this.config.detail.tags=$.tags;return this}return this.guard({},$)}const W=new i({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.inference=n0(this.inference);const X=Z(W);if(this.singleton=p(this.singleton,W.singleton),this.definitions=p(this.definitions,W.definitions),X.getServer=()=>this.server,X.event.request.length)this.event.request=[...this.event.request||[],...X.event.request||[]];if(X.event.onResponse.length)this.event.onResponse=[...this.event.onResponse||[],...X.event.onResponse||[]];return this.model(X.definitions.type),Object.values(W.router.history).forEach(({method:J,path:Q,handler:Y,hooks:G})=>{this.add(J,Q,Y,f($,{...G||{},error:!G.error?X.event.error:Array.isArray(G.error)?[...G.error||{},...X.event.error||[]]:[G.error,...X.event.error||[]]},{allowMacro:!0}))}),this}use($,Z){if(Z?.scoped)return this.guard({},(W)=>W.use($));if(Array.isArray($)){let W=this;for(let X of $)W=this.use(X);return W}if($ instanceof Promise)return this.promisedModules.add($.then((W)=>{if(typeof W==="function")return W(this);if(W instanceof i)return this._use(W);if(typeof W.default==="function")return W.default(this);if(W.default instanceof i)return this._use(W.default);throw new Error('Invalid plugin type. Expected Elysia instance, function, or module with "default" as Elysia instance or function that returns Elysia instance.')}).then((W)=>W.compile())),this;return this._use($)}_use($){if(typeof $==="function"){const J=$(this);if(J instanceof Promise)return this.promisedModules.add(J.then((Q)=>{if(Q instanceof i){this.compile();for(let{method:Y,path:G,handler:B,hooks:_}of Object.values(Q.router.history))this.add(Y,G,B,f(_,{error:Q.event.error}));return Q}if(typeof Q==="function")return Q(this);if(typeof Q.default==="function")return Q.default(this);return this._use(Q)}).then((Q)=>Q.compile())),this;return J}if($.promisedModules.size)return this.promisedModules.add($.modules.then(()=>this._use($)).then((J)=>J.compile())),this;const{name:Z,seed:W}=$.config;$.getServer=()=>this.getServer(),$.model(this.definitions.type),$.error(this.definitions.error);const X=$.config.scoped;if(X){if(Z){if(!(Z in this.dependencies))this.dependencies[Z]=[];const Q=W!==void 0?R0(Z+JSON.stringify(W)):0;if(this.dependencies[Z].some(({checksum:Y})=>Q===Y))return this;this.dependencies[Z].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:Q,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:Q,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const J=[];for(let Q=0;Q<$.extender.macros.length;Q++){const Y=this.extender.macros[Q];if(J.includes(Y.checksum))$.extender.macros.splice(Q,1),Q--;J.push(Y.checksum)}if($.onRequest((Q)=>{Object.assign(Q,this.singleton.decorator),Object.assign(Q.store,this.singleton.store)}),$.event.trace.length)$.event.trace.push(...$.event.trace);if(!$.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if($.event.error.length)$.event.error.push(...this.event.error);if($.config.aot)$.compile();if(X===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let Q of $.router.history)this.routeTree.set(Q.method+`${$.config.prefix}${Q.path}`,this.router.history.length),this.router.history.push({...Q,path:`${$.config.prefix}${Q.path}`,hooks:f(Q.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let Q of $.router.history)this.routeTree.set(Q.method+`${$.config.prefix}${Q.path}`,this.router.history.length),this.router.history.push({...Q,path:`${$.config.prefix}${Q.path}`,hooks:f(Q.hooks,{error:this.event.error})})}return this}else{this.headers($.setHeaders),$.reporter=this.reporter;for(let Q of $.event.trace)if(Q.scope&&Q.scope!=="local")this.trace(Q);if(Z){if(!(Z in this.dependencies))this.dependencies[Z]=[];const Q=W!==void 0?R0(Z+JSON.stringify(W)):0;if(!this.dependencies[Z].some(({checksum:Y})=>Q===Y))this.extender.macros=this.extender.macros.concat($.extender.macros)}else this.extender.macros=this.extender.macros.concat($.extender.macros);const J=[];for(let Q=0;Q<this.extender.macros.length;Q++){const Y=this.extender.macros[Q];if(Y.checksum){if(J.includes(Y.checksum))this.extender.macros.splice(Q,1),Q--;J.push(Y.checksum)}}this.inference={event:{body:this.inference.event.body||$.inference.event.body,cookie:this.inference.event.cookie||$.inference.event.cookie,headers:this.inference.event.headers||$.inference.event.headers,queries:[...this.inference.event.queries,...$.inference.event.queries],query:this.inference.event.query||$.inference.event.query,set:this.inference.event.set||$.inference.event.set,unknownQueries:this.inference.event.unknownQueries||$.inference.event.unknownQueries},trace:{request:this.inference.trace.request||$.inference.trace.request,parse:this.inference.trace.parse||$.inference.trace.parse,transform:this.inference.trace.transform||$.inference.trace.transform,handle:this.inference.trace.handle||$.inference.trace.handle,beforeHandle:this.inference.trace.beforeHandle||$.inference.trace.beforeHandle,afterHandle:this.inference.trace.afterHandle||$.inference.trace.afterHandle,error:this.inference.trace.error||$.inference.trace.error,context:this.inference.trace.context||$.inference.trace.context,store:this.inference.trace.store||$.inference.trace.store,set:this.inference.trace.set||$.inference.trace.set}}}this.decorate($.singleton.decorator),this.state($.singleton.store),this.model($.definitions.type),this.error($.definitions.error);for(let{method:J,path:Q,handler:Y,hooks:G}of Object.values($.router.history))this.add(J,Q,Y,f(G,{error:$.event.error}));if(!X)if(Z){if(!(Z in this.dependencies))this.dependencies[Z]=[];const J=W!==void 0?R0(Z+JSON.stringify(W)):0;if(this.dependencies[Z].some(({checksum:Q})=>J===Q))return this;this.dependencies[Z].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Q)=>Q?.subType==="derive").map((Q)=>({fn:Q.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Q)=>Q?.subType==="resolve").map((Q)=>({fn:Q.toString(),stack:new Error().stack??""}))}),this.event=s0(this.event,D1($.event),J)}else this.event=s0(this.event,D1($.event));return this}macro($){const Z={checksum:R0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(Z),this}mount($,Z){if($ instanceof i||typeof $==="function"||$.length===0||$==="/"){const J=typeof $==="function"?$:$ instanceof i?$.compile().fetch:Z instanceof i?Z.compile().fetch:Z,Q=async({request:Y,path:G})=>J(new Request(F1(Y.url,G||"/"),Y));return this.all("/*",Q,{type:"none"}),this}const W=$.length;if(Z instanceof i)Z=Z.compile().fetch;const X=async({request:J,path:Q})=>Z(new Request(F1(J.url,Q.slice(W)||"/"),J));return this.all($,X,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),X,{type:"none"}),this}get($,Z,W){return this.add("GET",$,Z,W),this}post($,Z,W){return this.add("POST",$,Z,W),this}put($,Z,W){return this.add("PUT",$,Z,W),this}patch($,Z,W){return this.add("PATCH",$,Z,W),this}delete($,Z,W){return this.add("DELETE",$,Z,W),this}options($,Z,W){return this.add("OPTIONS",$,Z,W),this}all($,Z,W){return this.add("ALL",$,Z,W),this}head($,Z,W){return this.add("HEAD",$,Z,W),this}connect($,Z,W){return this.add("CONNECT",$,Z,W),this}route($,Z,W,X){return this.add($.toUpperCase(),Z,W,X,X?.config),this}ws($,Z){const W=Z.transformMessage?Array.isArray(Z.transformMessage)?Z.transformMessage:[Z.transformMessage]:void 0;let X=null;const J=k(Z?.body,{models:this.definitions.type,normalize:this.config.normalize}),Q=k(Z?.response,{models:this.definitions.type,normalize:this.config.normalize}),Y=(G)=>{if(typeof G==="string"){const B=G?.charCodeAt(0);if(B===47||B===123)try{G=JSON.parse(G)}catch{}else if(D0(G))G=+G}if(W?.length)for(let B=0;B<W.length;B++){const _=W[B](G);if(_!==void 0)G=_}return G};return this.route("$INTERNALWS",$,(G)=>{const{set:B,path:_,qi:K,headers:z,query:M,params:A}=G;if(X===null)X=this.getServer();if(X?.upgrade(G.request,{headers:typeof Z.upgrade==="function"?Z.upgrade(G):Z.upgrade,data:{validator:Q,open(j){Z.open?.(new N0(j,G))},message:(j,O)=>{const U=Y(O);if(J?.Check(U)===!1)return void j.send(new R("message",J,U).message);Z.message?.(new N0(j,G),U)},drain(j){Z.drain?.(new N0(j,G))},close(j,O,U){Z.close?.(new N0(j,G),O,U)}}}))return;return B.status=400,"Expected a websocket connection"},{beforeHandle:Z.beforeHandle,transform:Z.transform,headers:Z.headers,params:Z.params,query:Z.query}),this}state($,Z){switch(typeof $){case"object":return this.singleton.store=p(this.singleton.store,$),this;case"function":return this.singleton.store=$(this.singleton.store),this}if(!($ in this.singleton.store))this.singleton.store[$]=Z;return this}decorate($,Z){switch(typeof $){case"object":return this.singleton.decorator=p(this.singleton.decorator,$),this;case"function":return this.singleton.decorator=$(this.singleton.decorator),this}if(!($ in this.singleton.decorator))this.singleton.decorator[$]=Z;return this}derive($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"derive",fn:Z};return this.onTransform($,W)}model($,Z){switch(typeof $){case"object":return Object.entries($).forEach(([W,X])=>{if(!(W in this.definitions.type))this.definitions.type[W]=X}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=Z,this}mapDerive($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"derive",fn:Z};return this.onTransform($,W)}affix($,Z,W){if(W==="")return this;const X=["_","-"," "],J=(B)=>B[0].toUpperCase()+B.slice(1),Q=$==="prefix"?(B,_)=>X.includes(B.at(-1)??"")?B+_:B+J(_):X.includes(W.at(-1)??"")?(B,_)=>_+B:(B,_)=>_+J(B),Y=(B)=>{const _={};switch(B){case"decorator":for(let K in this.singleton.decorator)_[Q(W,K)]=this.singleton.decorator[K];this.singleton.decorator=_;break;case"state":for(let K in this.singleton.store)_[Q(W,K)]=this.singleton.store[K];this.singleton.store=_;break;case"model":for(let K in this.definitions.type)_[Q(W,K)]=this.definitions.type[K];this.definitions.type=_;break;case"error":for(let K in this.definitions.error)_[Q(W,K)]=this.definitions.error[K];this.definitions.error=_;break}},G=Array.isArray(Z)?Z:[Z];for(let B of G.some((_)=>_==="all")?["decorator","state","model","error"]:G)Y(B);return this}prefix($,Z){return this.affix("prefix",$,Z)}suffix($,Z){return this.affix("suffix",$,Z)}compile(){if(this.fetch=this.config.aot?O1(this):S1(this),typeof this.server?.reload==="function")this.server.reload({...this.server||{},fetch:this.fetch});return this}handle=async($)=>this.fetch($);fetch=($)=>{return(this.fetch=this.config.aot?O1(this):S1(this))($)};handleError=async($,Z)=>(this.handleError=this.config.aot?V1(this):j8(this))($,Z);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,Z)=>{if(typeof Bun==="undefined")throw new Error(".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch");if(this.compile(),typeof $==="string"){if(!D0($))throw new Error("Port must be a numeric value");$=parseInt($)}const W=this.fetch,X=typeof $==="object"?{development:!L0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...j1||{}},fetch:W,error:this.outerErrorHandler}:{development:!L0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...j1||{}},port:$,fetch:W,error:this.outerErrorHandler};this.server=Bun?.serve(X);for(let J=0;J<this.event.start.length;J++)this.event.start[J].fn(this);if(Z)Z(this.server);return process.on("beforeExit",()=>{if(this.server){this.server.stop(),this.server=null;for(let J=0;J<this.event.stop.length;J++)this.event.stop[J].fn(this)}}),this.promisedModules.then(()=>{Bun?.gc(!1)}),this};stop=async()=>{if(!this.server)throw new Error("Elysia isn't running. Call `app.listen` to start the server.");if(this.server){if(this.server.stop(),this.server=null,this.event.stop.length)for(let $=0;$<this.event.stop.length;$++)this.event.stop[$].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{T as t,H as mergeObjectArray,f as mergeHook,h as mapResponse,u as mapEarlyResponse,o as mapCompactResponse,k as getSchemaValidator,i0 as getResponseSchemaValidator,N1 as error,i as default,R as ValidationError,J0 as StatusMap,e0 as ParseError,G0 as NotFoundError,r0 as InvertedStatusMap,T0 as InvalidCookieSignature,a0 as InternalServerError,i as Elysia,Y0 as ERROR_CODE,d as ELYSIA_RESPONSE,n as Cookie};
426
+ return st${$}(ctx)`;var W1=V0(P1(),1);var S1=($)=>async(Z)=>{const W=Z.url,X=W.indexOf("/",11),J=W.indexOf("?",X+1),Y=J===-1?W.substring(X):W.substring(X,J),Q={cookie:{},status:200,headers:{}},G=Object.assign({},$.singleton.decorator,{set:Q,store:$.singleton.store,request:Z,path:Y,qi:J});try{for(let F=0;F<$.event.request.length;F++){const P=$.event.request[F].fn;let N=P(G);if(N instanceof Promise)N=await N;if(N=u(N,Q),N)return N}const B=$.router.dynamic.find(Z.method,Y)??$.router.dynamic.find("ALL",Y);if(!B)throw new G0;const{handle:_,hooks:K,validator:z,content:M}=B.store;let A;if(Z.method!=="GET"&&Z.method!=="HEAD")if(M)switch(M){case"application/json":A=await Z.json();break;case"text/plain":A=await Z.text();break;case"application/x-www-form-urlencoded":A=W1.parse(await Z.text());break;case"application/octet-stream":A=await Z.arrayBuffer();break;case"multipart/form-data":A={};const F=await Z.formData();for(let P of F.keys()){if(A[P])continue;const N=F.getAll(P);if(N.length===1)A[P]=N[0];else A[P]=N}break}else{let F=Z.headers.get("content-type");if(F){const P=F.indexOf(";");if(P!==-1)F=F.slice(0,P);for(let N=0;N<K.parse.length;N++){const L=K.parse[N].fn;let q=L(G,F);if(q instanceof Promise)q=await q;if(q){A=q;break}}if(A===void 0)switch(F){case"application/json":A=await Z.json();break;case"text/plain":A=await Z.text();break;case"application/x-www-form-urlencoded":A=W1.parse(await Z.text());break;case"application/octet-stream":A=await Z.arrayBuffer();break;case"multipart/form-data":A={};const N=await Z.formData();for(let L of N.keys()){if(A[L])continue;const q=N.getAll(L);if(q.length===1)A[L]=q[0];else A[L]=q}break}}}G.body=A,G.params=B?.params||void 0,G.query=J===-1?{}:W1.parse(W.substring(J+1)),G.headers={};for(let[F,P]of Z.headers.entries())G.headers[F]=P;const j=Object.assign({},$.config?.cookie,z?.cookie?.config),O=Z.headers.get("cookie");G.cookie=await l0(G.set,O,j?{secret:j.secrets!==void 0?typeof j.secrets==="string"?j.secrets:j.secrets.join(","):void 0,sign:j.sign===!0?!0:j.sign!==void 0?typeof j.sign==="string"?j.sign:j.sign.join(","):void 0}:void 0);for(let F=0;F<K.transform.length;F++){const P=K.transform[F],N=P.fn(G);if(P.subType==="derive")if(N instanceof Promise)Object.assign(G,await N);else Object.assign(G,N);else if(N instanceof Promise)await N}if(z){if(z.headers){const F={};for(let P in Z.headers)F[P]=Z.headers.get(P);if(z.headers.Check(F)===!1)throw new R("header",z.headers,F)}if(z.params?.Check(G.params)===!1)throw new R("params",z.params,G.params);if(z.query?.Check(G.query)===!1)throw new R("query",z.query,G.query);if(z.cookie){const F={};for(let[P,N]of Object.entries(G.cookie))F[P]=N.value;if(z.cookie?.Check(F)===!1)throw new R("cookie",z.cookie,F)}if(z.body?.Check(A)===!1)throw new R("body",z.body,A)}for(let F=0;F<K.beforeHandle.length;F++){let P=K.beforeHandle[F].fn(G);if(P instanceof Promise)P=await P;if(P!==void 0){G.response=P;for(let L=0;L<K.afterHandle.length;L++){let q=K.afterHandle[L].fn(G);if(q instanceof Promise)q=await q;if(q)P=q}const N=u(P,G.set);if(N)return N}}let U=_(G);if(U instanceof Promise)U=await U;if(!K.afterHandle.length){const F=z?.response?.[U.status];if(F?.Check(U)===!1)throw new R("response",F,U)}else{G.response=U;for(let F=0;F<K.afterHandle.length;F++){let P=K.afterHandle[F].fn(G);if(P instanceof Promise)P=await P;const N=u(P,G.set);if(N!==void 0){const L=z?.response?.[U.status];if(L?.Check(N)===!1)throw new R("response",L,N);return N}}}if(G.set.cookie&&j?.sign){const F=!j.secrets?void 0:typeof j.secrets==="string"?j.secrets:j.secrets[0];if(j.sign===!0)for(let[P,N]of Object.entries(G.set.cookie))G.set.cookie[P].value=await A0(N.value,"${secret}");else{const P=z?.cookie?.schema?.properties;for(let N of j.sign){if(!(N in P))continue;if(G.set.cookie[N]?.value)G.set.cookie[N].value=await A0(G.set.cookie[N].value,F)}}}return h(U,G.set)}catch(B){if(B.status)Q.status=B.status;return $.handleError(G,B)}finally{for(let B of $.event.onResponse)await B.fn(G)}},j$=($)=>async(Z,W)=>{const X=Object.assign(Z,{error:W,code:W.code});X.set=Z.set;for(let J=0;J<$.event.error.length;J++){let Q=$.event.error[J].fn(X);if(Q instanceof Promise)Q=await Q;if(Q!==void 0&&Q!==null)return h(Q,Z.set)}return new Response(typeof W.cause==="string"?W.cause:W.message,{headers:Z.set.headers,status:W.status??500})};import{TypeSystem as I0} from"@sinclair/typebox/system";import{Type as g0,FormatRegistry as O0} from"@sinclair/typebox";import{Value as P0} from"@sinclair/typebox/value";import{TypeSystemPolicy as P6,TypeSystem as I6,TypeSystemDuplicateFormat as O6,TypeSystemDuplicateTypeKind as V6} from"@sinclair/typebox/system";import{TypeCompiler as T6,TypeCheck as C6} from"@sinclair/typebox/compiler";var N$=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,P$=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,I$=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/;try{I0.Format("email",($)=>/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]+(?:-[a-z0-9]+)*$/i.test($)),I0.Format("uuid",($)=>/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test($)),I0.Format("date",($)=>{const Z=$.replace(/"/g,"");if(N$.test(Z)||P$.test(Z)||I$.test(Z)){const W=new Date(Z);if(!Number.isNaN(W.getTime()))return!0}return!1}),I0.Format("date-time",($)=>{const Z=$.replace(/"/g,"");if(N$.test(Z)||P$.test(Z)||I$.test(Z)){const W=new Date(Z);if(!Number.isNaN(W.getTime()))return!0}return!1})}catch{}var T=Object.assign({},g0),O$=($)=>{if(typeof $==="string")switch($.slice(-1)){case"k":return+$.slice(0,$.length-1)*1024;case"m":return+$.slice(0,$.length-1)*1048576;default:return+$}return $},T1=($,Z)=>{if(!(Z instanceof Blob))return!1;if($.minSize&&Z.size<O$($.minSize))return!1;if($.maxSize&&Z.size>O$($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!Z.type.startsWith($.extension))return!1}else{for(let W=0;W<$.extension.length;W++)if(Z.type.startsWith($.extension[W]))return!0;return!1}return!0},z8=I0.Type("Files",($,Z)=>{if(!Array.isArray(Z))return T1($,Z);if($.minItems&&Z.length<$.minItems)return!1;if($.maxItems&&Z.length>$.maxItems)return!1;for(let W=0;W<Z.length;W++)if(!T1($,Z[W]))return!1;return!0});if(!O0.Get("numeric"))O0.Set("numeric",($)=>!!$&&!isNaN(+$));if(!O0.Get("boolean"))O0.Set("boolean",($)=>$==="true"||$==="false");if(!O0.Get("ObjectString"))O0.Set("ObjectString",($)=>{let Z=$.charCodeAt(0);if(Z===9||Z===10||Z===32)Z=$.trimStart().charCodeAt(0);if(Z!==123&&Z!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});var a={Numeric:($)=>{const Z=g0.Number($);return T.Transform(T.Union([T.String({format:"numeric",default:0}),T.Number($)],$)).Decode((W)=>{const X=+W;if(isNaN(X))return W;if($&&!P0.Check(Z,X))throw new R("property",Z,X);return X}).Encode((W)=>W)},Date:($)=>{const Z=g0.Date($);return T.Transform(T.Union([g0.Date($),T.String({format:"date",default:(new Date()).toISOString()}),T.String({format:"date-time",default:(new Date()).toISOString()})],$)).Decode((W)=>{if(W instanceof Date)return W;const X=new Date(W);if(!P0.Check(Z,X))throw new R("property",Z,X);return X}).Encode((W)=>{if(typeof W==="string")return new Date(W);return W})},BooleanString:($)=>{const Z=g0.Boolean($);return T.Transform(T.Union([T.String({format:"boolean",default:!1}),T.Boolean($)],$)).Decode((W)=>{if(typeof W==="string")return W==="true";if($&&!P0.Check(Z,W))throw new R("property",Z,W);return W}).Encode((W)=>W)},ObjectString:($={},Z)=>{const W=T.Object($,Z),X=JSON.stringify(P0.Create(W));return T.Transform(T.Union([T.String({format:"ObjectString",default:X}),W])).Decode((J)=>{if(typeof J==="string"){try{J=JSON.parse(J)}catch{throw new R("property",W,J)}if(!P0.Check(W,J))throw new R("property",W,J);return J}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new R("property",W,J)}if(!P0.Check(W,J))throw new R("property",W,J);return JSON.stringify(J)})},File:I0.Type("File",T1),Files:($={})=>T.Transform(z8($)).Decode((Z)=>{if(Array.isArray(Z))return Z;return[Z]}).Encode((Z)=>Z),Nullable:($)=>T.Union([T.Null(),$]),MaybeEmpty:($)=>T.Union([T.Null(),T.Undefined(),$]),Cookie:($,{domain:Z,expires:W,httpOnly:X,maxAge:J,path:Y,priority:Q,sameSite:G,secure:B,secrets:_,sign:K,...z}={})=>{const M=T.Object($,z);return M.config={domain:Z,expires:W,httpOnly:X,maxAge:J,path:Y,priority:Q,sameSite:G,secure:B,secrets:_,sign:K},M}};T.BooleanString=a.BooleanString;T.ObjectString=a.ObjectString;T.Numeric=a.Numeric;T.File=($={})=>a.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});T.Files=($={})=>a.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});T.Nullable=($)=>a.Nullable($);T.MaybeEmpty=a.MaybeEmpty;T.Cookie=a.Cookie;T.Date=a.Date;class i{config;server=null;dependencies={};reporter=new H1;_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[]};validator=null;event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],onResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new X0,ws:new X0,dynamic:new X0,static:{http:{handlers:[],variables:"",map:{},all:""},ws:{}},history:[]};inference={event:{body:!1,cookie:!1,headers:!1,queries:[],query:!1,set:!1,unknownQueries:!1},trace:{request:!1,parse:!1,transform:!1,handle:!1,beforeHandle:!1,afterHandle:!1,error:!1,context:!1,store:!1,set:!1}};promisedModules=new A1;constructor($){if($?.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if(this.config={forceErrorEncapsulation:!0,prefix:"",aot:!0,strictPath:!1,global:!1,cookie:{},analytic:!1,...$,experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}getServer(){return this.server}get routes(){return this.router.history}routeTree=new Map;applyMacro($){if(this.extender.macros.length){const Z=o1({globalHook:this.event,localHook:$}),W={events:{global:this.event,local:$},onParse:Z("parse"),onTransform:Z("transform"),onBeforeHandle:Z("beforeHandle"),onAfterHandle:Z("afterHandle"),onResponse:Z("onResponse"),mapResponse:Z("mapResponse"),onError:Z("error")};for(let X of this.extender.macros)M1(X.fn(W),$)}}add($,Z,W,X,{allowMeta:J=!1,skipPrefix:Y=!1}={allowMeta:!1,skipPrefix:!1}){if(X=a1(X),Z!==""&&Z.charCodeAt(0)!==47)Z="/"+Z;if(this.config.prefix&&!Y&&!this.config.scoped)Z=this.config.prefix+Z;if(X?.type)switch(X.type){case"text":X.type="text/plain";break;case"json":X.type="application/json";break;case"formdata":X.type="multipart/form-data";break;case"urlencoded":X.type="application/x-www-form-urlencoded";break;case"arrayBuffer":X.type="application/octet-stream";break;default:break}const Q=this.definitions.type;let G,B,_,K,z,M;const A=!this.config.aot,j={body:X?.body??this.validator?.body,headers:X?.headers??this.validator?.headers,params:X?.params??this.validator?.params,query:X?.query??this.validator?.query,cookie:X?.cookie??this.validator?.cookie,response:X?.response??this.validator?.response},O=()=>j.cookie?t0({validator:j.cookie,defaultConfig:this.config.cookie,config:j.cookie?.config??{},dynamic:A,models:Q}):void 0,U=this.config.normalize,F=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:k(j.body,{dynamic:A,models:Q,normalize:U}),headers:k(j.headers,{dynamic:A,models:Q,additionalProperties:!0}),params:k(j.params,{dynamic:A,models:Q}),query:k(j.query,{dynamic:A,models:Q,normalize:U}),cookie:O(),response:i0(j.response,{dynamic:A,models:Q,normalize:U})}:{get body(){if(G)return G;return G=k(j.body,{dynamic:A,models:Q,normalize:U})},get headers(){if(B)return B;return k(j.headers,{dynamic:A,models:Q,additionalProperties:!0})},get params(){if(_)return _;return _=k(j.params,{dynamic:A,models:Q})},get query(){if(K)return K;return K=k(j.query,{dynamic:A,models:Q})},get cookie(){if(z)return z;return z=O()},get response(){if(M)return M;return M=i0(j.response,{dynamic:A,models:Q,normalize:U})}},P=Z.endsWith("/")?Z.slice(0,Z.length-1):Z+"/";if(X=f(X,{},{allowMacro:!0}),X.tags)if(!X.detail)X.detail={tags:X.tags};else X.detail.tags=X.tags;if(m(this.config.detail))X.detail=p(Object.assign({},this.config.detail),X.detail);this.applyMacro(X);const N=f(this.event,X);if(this.config.aot===!1){if(this.router.dynamic.add($,Z,{validator:F,hooks:N,content:X?.type,handle:W}),this.config.strictPath===!1)this.router.dynamic.add($,P,{validator:F,hooks:N,content:X?.type,handle:W});this.router.history.push({method:$,path:Z,composed:null,handler:W,hooks:N});return}let L=void 0;const q=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,e=n0(this.inference),v=q?Z1({app:this,path:Z,method:$,localHook:f(X),hooks:N,validator:F,handler:W,allowMeta:J,appInference:e}):(V)=>{if(L)return L(V);return(L=Z1({app:this,path:Z,method:$,localHook:f(X),hooks:N,validator:F,handler:W,allowMeta:J,appInference:e}))(V)};if(!q)v.compose=()=>{return v.composed=Z1({app:this,path:Z,method:$,localHook:f(X),hooks:N,validator:F,handler:W,allowMeta:J,appInference:e})};let r=this.router.history.length;if(this.routeTree.has($+Z)){if(r=this.router.history.findIndex((V)=>V.path===Z&&V.method===$),r!==-1){const V=this.router.history.splice(r,1)[0];if(V&&this.routeTree.has(V?.method+V?.path))this.routeTree.delete(V.method+V.path)}}this.routeTree.set($+Z,r),this.router.history.push({method:$,path:Z,composed:v,handler:W,hooks:N});const S=this.router.static.http;if($==="$INTERNALWS"){const V=this.config.strictPath?void 0:Z.endsWith("/")?Z.slice(0,Z.length-1):Z+"/";if(Z.indexOf(":")===-1&&Z.indexOf("*")===-1){const $0=S.handlers.length;if(S.handlers.push(v),S.variables+=`const st${$0} = staticRouter.handlers[${$0}]\n`,this.router.static.ws[Z]=$0,V)this.router.static.ws[V]=$0}else if(this.router.ws.add("ws",Z,v),V)this.router.ws.add("ws",V,v);return}if(Z.indexOf(":")===-1&&Z.indexOf("*")===-1){const V=S.handlers.length;if(S.handlers.push(v),S.variables+=q?`const st${V} = staticRouter.handlers[${V}]\n`:`let st${V} = staticRouter.handlers[${V}]\nlet stc${V}\n`,!S.map[Z])S.map[Z]={code:""};if($==="ALL")S.map[Z].all=q?`default: return st${V}(ctx)\n`:`default: ${x0(V)}\n`;else S.map[Z].code=q?`case '${$}': return st${V}(ctx)\n${S.map[Z].code}`:`case '${$}': ${x0(V)}\n${S.map[Z].code}`;if(!this.config.strictPath){if(!S.map[P])S.map[P]={code:""};if($==="ALL")S.map[P].all=q?`default: return st${V}(ctx)\n`:`default: ${x0(V)}\n`;else S.map[P].code=q?`case '${$}': return st${V}(ctx)\n${S.map[P].code}`:`case '${$}': ${x0(V)}\n${S.map[P].code}`}}else if(this.router.http.add($,Z,v),!this.config.strictPath)this.router.http.add($,Z.endsWith("/")?Z.slice(0,Z.length-1):Z+"/",v)}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=p(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,Z){if(!Z)return this.on("parse",$);return this.on($,"parse",Z)}onTransform($,Z){if(!Z)return this.on("transform",$);return this.on($,"transform",Z)}resolve($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"resolve",fn:Z};return this.onBeforeHandle($,W)}mapResolve($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"resolve",fn:Z};return this.onBeforeHandle($,W)}onBeforeHandle($,Z){if(!Z)return this.on("beforeHandle",$);return this.on($,"beforeHandle",Z)}onAfterHandle($,Z){if(!Z)return this.on("afterHandle",$);return this.on($,"afterHandle",Z)}mapResponse($,Z){if(!Z)return this.on("mapResponse",$);return this.on($,"mapResponse",Z)}onResponse($,Z){if(!Z)return this.on("response",$);return this.on($,"response",Z)}trace($,Z){if(!Z)Z=$,$={as:"local"};if(!Array.isArray(Z))Z=[Z];for(let W of Z)this.reporter.on("event",x1(()=>this.reporter,this.event.trace.length,W));return this.on($,"trace",Z),this}error($,Z){switch(typeof $){case"string":return Z.prototype[Q0]=$,this.definitions.error[$]=Z,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[W,X]of Object.entries($))X.prototype[Q0]=W,this.definitions.error[W]=X;return this}onError($,Z){if(!Z)return this.on("error",$);return this.on($,"error",Z)}onStop($){return this.on("stop",$),this}on($,Z,W){let X;switch(typeof $){case"string":X=$,W=Z;break;case"object":X=Z;break}if(X==="response")X="onResponse";if(Array.isArray(W))W=c(W);else if(typeof W==="function")W=[{fn:W}];else W=[W];const J=W;for(let Y of J)Y.scope=typeof $==="string"?"local":$?.as??"local";if(X==="trace")h1(J.map((Y)=>Y.fn),this.inference.trace);else d0({[X]:J.map((Y)=>Y.fn)},this.inference.event);for(let Y of J){const Q=n1(Y,"global",{skipIfHasType:!0});switch(X){case"start":this.event.start.push(Q);break;case"request":this.event.request.push(Q);break;case"parse":this.event.parse.push(Q);break;case"transform":this.event.transform.push(Q);break;case"beforeHandle":this.event.beforeHandle.push(Q);break;case"afterHandle":this.event.afterHandle.push(Q);break;case"mapResponse":this.event.mapResponse.push(Q);break;case"onResponse":this.event.onResponse.push(Q);break;case"trace":this.event.trace.push(Q);break;case"error":this.event.error.push(Q);break;case"stop":this.event.stop.push(Q);break}}return this}propagate(){const $=(Z)=>{for(let W of Z)if("scope"in W&&W.scope==="local")W.scope="scoped"};return $(this.event.parse),$(this.event.transform),$(this.event.beforeHandle),$(this.event.afterHandle),$(this.event.mapResponse),$(this.event.onResponse),$(this.event.trace),$(this.event.error),this}group($,Z,W){const X=new i({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.getServer=()=>this.server,X.inference=n0(this.inference);const J=typeof Z==="object",Y=(J?W:Z)(X);if(this.singleton=p(this.singleton,X.singleton),this.definitions=p(this.definitions,X.definitions),Y.event.request.length)this.event.request=[...this.event.request||[],...Y.event.request||[]];if(Y.event.onResponse.length)this.event.onResponse=[...this.event.onResponse||[],...Y.event.onResponse||[]];return this.model(Y.definitions.type),Object.values(X.router.history).forEach(({method:Q,path:G,handler:B,hooks:_})=>{if(G=(J?"":this.config.prefix)+$+G,J){const K=Z,z=_;this.add(Q,G,B,f(K,{...z||{},error:!z.error?Y.event.error:Array.isArray(z.error)?[...z.error||{},...Y.event.error||{}]:[z.error,...Y.event.error||{}]}))}else this.add(Q,G,B,f(_,{error:Y.event.error}),{skipPrefix:!0})}),this}guard($,Z){if(!Z){if(typeof $==="object"){if(this.applyMacro($),this.event=s0(this.event,$),this.validator={body:$.body??this.validator?.body,headers:$.headers??this.validator?.headers,params:$.params??this.validator?.params,query:$.query??this.validator?.query,response:$.response??this.validator?.response,cookie:$.cookie??this.validator?.cookie},$.detail)if(this.config.detail)this.config.detail=p(Object.assign({},this.config.detail),$.detail);else this.config.detail=$.detail;if($?.tags)if(!this.config.detail)this.config.detail={tags:$.tags};else this.config.detail.tags=$.tags;return this}return this.guard({},$)}const W=new i({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.inference=n0(this.inference);const X=Z(W);if(this.singleton=p(this.singleton,W.singleton),this.definitions=p(this.definitions,W.definitions),X.getServer=()=>this.server,X.event.request.length)this.event.request=[...this.event.request||[],...X.event.request||[]];if(X.event.onResponse.length)this.event.onResponse=[...this.event.onResponse||[],...X.event.onResponse||[]];return this.model(X.definitions.type),Object.values(W.router.history).forEach(({method:J,path:Y,handler:Q,hooks:G})=>{this.add(J,Y,Q,f($,{...G||{},error:!G.error?X.event.error:Array.isArray(G.error)?[...G.error||{},...X.event.error||[]]:[G.error,...X.event.error||[]]},{allowMacro:!0}))}),this}use($,Z){if(Z?.scoped)return this.guard({},(W)=>W.use($));if(Array.isArray($)){let W=this;for(let X of $)W=this.use(X);return W}if($ instanceof Promise)return this.promisedModules.add($.then((W)=>{if(typeof W==="function")return W(this);if(W instanceof i)return this._use(W);if(typeof W.default==="function")return W.default(this);if(W.default instanceof i)return this._use(W.default);throw new Error('Invalid plugin type. Expected Elysia instance, function, or module with "default" as Elysia instance or function that returns Elysia instance.')}).then((W)=>W.compile())),this;return this._use($)}_use($){if(typeof $==="function"){const J=$(this);if(J instanceof Promise)return this.promisedModules.add(J.then((Y)=>{if(Y instanceof i){this.compile();for(let{method:Q,path:G,handler:B,hooks:_}of Object.values(Y.router.history))this.add(Q,G,B,f(_,{error:Y.event.error}));return Y}if(typeof Y==="function")return Y(this);if(typeof Y.default==="function")return Y.default(this);return this._use(Y)}).then((Y)=>Y.compile())),this;return J}if($.promisedModules.size)return this.promisedModules.add($.modules.then(()=>this._use($)).then((J)=>J.compile())),this;const{name:Z,seed:W}=$.config;$.getServer=()=>this.getServer(),$.model(this.definitions.type),$.error(this.definitions.error);const X=$.config.scoped;if(X){if(Z){if(!(Z in this.dependencies))this.dependencies[Z]=[];const Y=W!==void 0?R0(Z+JSON.stringify(W)):0;if(this.dependencies[Z].some(({checksum:Q})=>Y===Q))return this;this.dependencies[Z].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:Y,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:Y,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Q)=>Q.subType==="derive").map((Q)=>({fn:Q.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Q)=>Q.subType==="derive").map((Q)=>({fn:Q.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const J=[];for(let Y=0;Y<$.extender.macros.length;Y++){const Q=this.extender.macros[Y];if(J.includes(Q.checksum))$.extender.macros.splice(Y,1),Y--;J.push(Q.checksum)}if($.onRequest((Y)=>{Object.assign(Y,this.singleton.decorator),Object.assign(Y.store,this.singleton.store)}),$.event.trace.length)$.event.trace.push(...$.event.trace);if(!$.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if($.event.error.length)$.event.error.push(...this.event.error);if($.config.aot)$.compile();if(X===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let Y of $.router.history)this.routeTree.set(Y.method+`${$.config.prefix}${Y.path}`,this.router.history.length),this.router.history.push({...Y,path:`${$.config.prefix}${Y.path}`,hooks:f(Y.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let Y of $.router.history)this.routeTree.set(Y.method+`${$.config.prefix}${Y.path}`,this.router.history.length),this.router.history.push({...Y,path:`${$.config.prefix}${Y.path}`,hooks:f(Y.hooks,{error:this.event.error})})}return this}else{this.headers($.setHeaders),$.reporter=this.reporter;for(let Y of $.event.trace)if(Y.scope&&Y.scope!=="local")this.trace(Y);if(Z){if(!(Z in this.dependencies))this.dependencies[Z]=[];const Y=W!==void 0?R0(Z+JSON.stringify(W)):0;if(!this.dependencies[Z].some(({checksum:Q})=>Y===Q))this.extender.macros=this.extender.macros.concat($.extender.macros)}else this.extender.macros=this.extender.macros.concat($.extender.macros);const J=[];for(let Y=0;Y<this.extender.macros.length;Y++){const Q=this.extender.macros[Y];if(Q.checksum){if(J.includes(Q.checksum))this.extender.macros.splice(Y,1),Y--;J.push(Q.checksum)}}this.inference={event:{body:this.inference.event.body||$.inference.event.body,cookie:this.inference.event.cookie||$.inference.event.cookie,headers:this.inference.event.headers||$.inference.event.headers,queries:[...this.inference.event.queries,...$.inference.event.queries],query:this.inference.event.query||$.inference.event.query,set:this.inference.event.set||$.inference.event.set,unknownQueries:this.inference.event.unknownQueries||$.inference.event.unknownQueries},trace:{request:this.inference.trace.request||$.inference.trace.request,parse:this.inference.trace.parse||$.inference.trace.parse,transform:this.inference.trace.transform||$.inference.trace.transform,handle:this.inference.trace.handle||$.inference.trace.handle,beforeHandle:this.inference.trace.beforeHandle||$.inference.trace.beforeHandle,afterHandle:this.inference.trace.afterHandle||$.inference.trace.afterHandle,error:this.inference.trace.error||$.inference.trace.error,context:this.inference.trace.context||$.inference.trace.context,store:this.inference.trace.store||$.inference.trace.store,set:this.inference.trace.set||$.inference.trace.set}}}this.decorate($.singleton.decorator),this.state($.singleton.store),this.model($.definitions.type),this.error($.definitions.error);for(let{method:J,path:Y,handler:Q,hooks:G}of Object.values($.router.history))this.add(J,Y,Q,f(G,{error:$.event.error}));if(!X)if(Z){if(!(Z in this.dependencies))this.dependencies[Z]=[];const J=W!==void 0?R0(Z+JSON.stringify(W)):0;if(this.dependencies[Z].some(({checksum:Y})=>J===Y))return this;this.dependencies[Z].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Y)=>Y?.subType==="derive").map((Y)=>({fn:Y.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Y)=>Y?.subType==="resolve").map((Y)=>({fn:Y.toString(),stack:new Error().stack??""}))}),this.event=s0(this.event,F1($.event),J)}else this.event=s0(this.event,F1($.event));return this}macro($){const Z={checksum:R0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(Z),this}mount($,Z){if($ instanceof i||typeof $==="function"||$.length===0||$==="/"){const J=typeof $==="function"?$:$ instanceof i?$.compile().fetch:Z instanceof i?Z.compile().fetch:Z,Y=async({request:Q,path:G})=>J(new Request(D1(Q.url,G||"/"),Q));return this.all("/*",Y,{type:"none"}),this}const W=$.length;if(Z instanceof i)Z=Z.compile().fetch;const X=async({request:J,path:Y})=>Z(new Request(D1(J.url,Y.slice(W)||"/"),J));return this.all($,X,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),X,{type:"none"}),this}get($,Z,W){return this.add("GET",$,Z,W),this}post($,Z,W){return this.add("POST",$,Z,W),this}put($,Z,W){return this.add("PUT",$,Z,W),this}patch($,Z,W){return this.add("PATCH",$,Z,W),this}delete($,Z,W){return this.add("DELETE",$,Z,W),this}options($,Z,W){return this.add("OPTIONS",$,Z,W),this}all($,Z,W){return this.add("ALL",$,Z,W),this}head($,Z,W){return this.add("HEAD",$,Z,W),this}connect($,Z,W){return this.add("CONNECT",$,Z,W),this}route($,Z,W,X){return this.add($.toUpperCase(),Z,W,X,X?.config),this}ws($,Z){const W=Z.transformMessage?Array.isArray(Z.transformMessage)?Z.transformMessage:[Z.transformMessage]:void 0;let X=null;const J=k(Z?.body,{models:this.definitions.type,normalize:this.config.normalize}),Y=k(Z?.response,{models:this.definitions.type,normalize:this.config.normalize}),Q=(G)=>{if(typeof G==="string"){const B=G?.charCodeAt(0);if(B===47||B===123)try{G=JSON.parse(G)}catch{}else if(F0(G))G=+G}if(W?.length)for(let B=0;B<W.length;B++){const _=W[B](G);if(_!==void 0)G=_}return G};return this.route("$INTERNALWS",$,(G)=>{const{set:B,path:_,qi:K,headers:z,query:M,params:A}=G;if(X===null)X=this.getServer();if(X?.upgrade(G.request,{headers:typeof Z.upgrade==="function"?Z.upgrade(G):Z.upgrade,data:{validator:Y,open(j){Z.open?.(new w0(j,G))},message:(j,O)=>{const U=Q(O);if(J?.Check(U)===!1)return void j.send(new R("message",J,U).message);Z.message?.(new w0(j,G),U)},drain(j){Z.drain?.(new w0(j,G))},close(j,O,U){Z.close?.(new w0(j,G),O,U)}}}))return;return B.status=400,"Expected a websocket connection"},{beforeHandle:Z.beforeHandle,transform:Z.transform,headers:Z.headers,params:Z.params,query:Z.query}),this}state($,Z){switch(typeof $){case"object":return this.singleton.store=p(this.singleton.store,$),this;case"function":return this.singleton.store=$(this.singleton.store),this}if(!($ in this.singleton.store))this.singleton.store[$]=Z;return this}decorate($,Z){switch(typeof $){case"object":return this.singleton.decorator=p(this.singleton.decorator,$),this;case"function":return this.singleton.decorator=$(this.singleton.decorator),this}if(!($ in this.singleton.decorator))this.singleton.decorator[$]=Z;return this}derive($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"derive",fn:Z};return this.onTransform($,W)}model($,Z){switch(typeof $){case"object":return Object.entries($).forEach(([W,X])=>{if(!(W in this.definitions.type))this.definitions.type[W]=X}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=Z,this}mapDerive($,Z){if(!Z)Z=$,$={as:"local"};const W={subType:"derive",fn:Z};return this.onTransform($,W)}affix($,Z,W){if(W==="")return this;const X=["_","-"," "],J=(B)=>B[0].toUpperCase()+B.slice(1),Y=$==="prefix"?(B,_)=>X.includes(B.at(-1)??"")?B+_:B+J(_):X.includes(W.at(-1)??"")?(B,_)=>_+B:(B,_)=>_+J(B),Q=(B)=>{const _={};switch(B){case"decorator":for(let K in this.singleton.decorator)_[Y(W,K)]=this.singleton.decorator[K];this.singleton.decorator=_;break;case"state":for(let K in this.singleton.store)_[Y(W,K)]=this.singleton.store[K];this.singleton.store=_;break;case"model":for(let K in this.definitions.type)_[Y(W,K)]=this.definitions.type[K];this.definitions.type=_;break;case"error":for(let K in this.definitions.error)_[Y(W,K)]=this.definitions.error[K];this.definitions.error=_;break}},G=Array.isArray(Z)?Z:[Z];for(let B of G.some((_)=>_==="all")?["decorator","state","model","error"]:G)Q(B);return this}prefix($,Z){return this.affix("prefix",$,Z)}suffix($,Z){return this.affix("suffix",$,Z)}compile(){if(this.fetch=this.config.aot?O1(this):S1(this),typeof this.server?.reload==="function")this.server.reload({...this.server||{},fetch:this.fetch});return this}handle=async($)=>this.fetch($);fetch=($)=>{return(this.fetch=this.config.aot?O1(this):S1(this))($)};handleError=async($,Z)=>(this.handleError=this.config.aot?V1(this):j$(this))($,Z);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,Z)=>{if(typeof Bun==="undefined")throw new Error(".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch");if(this.compile(),typeof $==="string"){if(!F0($))throw new Error("Port must be a numeric value");$=parseInt($)}const W=this.fetch,X=typeof $==="object"?{development:!L0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...j1||{}},fetch:W,error:this.outerErrorHandler}:{development:!L0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...j1||{}},port:$,fetch:W,error:this.outerErrorHandler};this.server=Bun?.serve(X);for(let J=0;J<this.event.start.length;J++)this.event.start[J].fn(this);if(Z)Z(this.server);return process.on("beforeExit",()=>{if(this.server){this.server.stop(),this.server=null;for(let J=0;J<this.event.stop.length;J++)this.event.stop[J].fn(this)}}),this.promisedModules.then(()=>{Bun?.gc(!1)}),this};stop=async()=>{if(!this.server)throw new Error("Elysia isn't running. Call `app.listen` to start the server.");if(this.server){if(this.server.stop(),this.server=null,this.event.stop.length)for(let $=0;$<this.event.stop.length;$++)this.event.stop[$].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{T as t,H as mergeObjectArray,f as mergeHook,h as mapResponse,u as mapEarlyResponse,o as mapCompactResponse,k as getSchemaValidator,i0 as getResponseSchemaValidator,w1 as error,i as default,R as ValidationError,J0 as StatusMap,e0 as ParseError,G0 as NotFoundError,r0 as InvertedStatusMap,T0 as InvalidCookieSignature,a0 as InternalServerError,i as Elysia,Q0 as ERROR_CODE,d as ELYSIA_RESPONSE,n as Cookie};
427
427
 
428
- //# debugId=8EE99F7D4C9FE98164756e2164756e21
428
+ //# debugId=09CC6433DAB6FC0964756e2164756e21