elysia 1.1.0 → 1.1.1

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,14 +1,14 @@
1
1
  // @bun
2
- var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames:y2}=Object;var k2=Object.prototype.hasOwnProperty;var t0=($,X,Z)=>{Z=$!=null?g2(f2($)):{};const W=X||!$||!$.__esModule?x1(Z,"default",{value:$,enumerable:!0}):Z;for(let J of y2($))if(!k2.call(W,J))x1(W,J,{get:()=>$[J],enumerable:!0});return W};var y0=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var o0=y0((z5,s1)=>{var I3=function($){var X=$.indexOf("%");if(X===-1)return $;var Z=$.length,W="",J=0,j=0,G=X,Y=t1;while(X>-1&&X<Z){var K=r1($[X+1],4),B=r1($[X+2],0),U=K|B,w=M1[U];if(Y=M1[256+Y+w],j=j<<6|U&M1[364+w],Y===t1)W+=$.slice(J,G),W+=j<=65535?String.fromCharCode(j):String.fromCharCode(55232+(j>>10),56320+(j&1023)),j=0,J=X+3,X=G=$.indexOf("%",J);else if(Y===N3)return null;else{if(X+=3,X<Z&&$.charCodeAt(X)===37)continue;return null}}return W+$.slice(J)},r1=function($,X){var Z=P3[$];return Z===void 0?255:Z<<X},t1=12,N3=0,M1=[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],P3={"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};s1.exports=I3});var M2=y0((d5,D2)=>{var R3=function($){const X=new F2;if(typeof $!=="string")return X;let Z=$.length,W="",J="",j=-1,G=-1,Y=!1,K=!1,B=!1,U=!1,w=!1,D=0;for(let Q=0;Q<Z+1;Q++)if(D=Q!==Z?$.charCodeAt(Q):38,D===38){if(w=G>j,!w)G=Q;if(W=$.slice(j+1,G),w||W.length>0){if(B)W=W.replace(_2," ");if(Y)W=w2(W)||W;if(w){if(J=$.slice(G+1,Q),U)J=J.replace(_2," ");if(K)J=w2(J)||J}const _=X[W];if(_===void 0)X[W]=J;else if(_.pop)_.push(J);else X[W]=[_,J]}J="",j=Q,G=Q,Y=!1,K=!1,B=!1,U=!1}else if(D===61)if(G<=j)G=Q;else K=!0;else if(D===43)if(G>j)U=!0;else B=!0;else if(D===37)if(G>j)K=!0;else Y=!0;return X},w2=o0(),_2=/\+/g,F2=function(){};F2.prototype=Object.create(null);D2.exports=R3});var N2=y0((c5,z2)=>{var x3=function($){const X=$.length;if(X===0)return"";let Z="",W=0,J=0;$:for(;J<X;J++){let j=$.charCodeAt(J);while(j<128){if(b3[j]!==1){if(W<J)Z+=$.slice(W,J);W=J+1,Z+=Q0[j]}if(++J===X)break $;j=$.charCodeAt(J)}if(W<J)Z+=$.slice(W,J);if(j<2048){W=J+1,Z+=Q0[192|j>>6]+Q0[128|j&63];continue}if(j<55296||j>=57344){W=J+1,Z+=Q0[224|j>>12]+Q0[128|j>>6&63]+Q0[128|j&63];continue}if(++J,J>=X)throw new Error("URI malformed");const G=$.charCodeAt(J)&1023;W=J+1,j=65536+((j&1023)<<10|G),Z+=Q0[240|j>>18]+Q0[128|j>>12&63]+Q0[128|j>>6&63]+Q0[128|j&63]}if(W===0)return $;if(W<X)return Z+$.slice(W);return Z},Q0=Array.from({length:256},($,X)=>"%"+((X<16?"0":"")+X.toString(16)).toUpperCase()),b3=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]);z2.exports={encodeString:x3}});var V2=y0((p5,P2)=>{var I2=function($){const X=typeof $;if(X==="string")return q1($);else if(X==="bigint")return $.toString();else if(X==="boolean")return $?"true":"false";else if(X==="number"&&Number.isFinite($))return $<1000000000000000000000?""+$:q1(""+$);return""},g3=function($){let X="";if($===null||typeof $!=="object")return X;const Z="&",W=Object.keys($),J=W.length;let j=0;for(let G=0;G<J;G++){const Y=W[G],K=$[Y],B=q1(Y)+"=";if(G)X+=Z;if(Array.isArray(K)){j=K.length;for(let U=0;U<j;U++){if(U)X+=Z;X+=B,X+=I2(K[U])}}else X+=B,X+=I2(K)}return X},{encodeString:q1}=N2();P2.exports=g3});var L1=y0((l5,l0)=>{var O2=M2(),A2=V2(),C2={parse:O2,stringify:A2};l0.exports=C2;l0.exports.default=C2;l0.exports.parse=O2;l0.exports.stringify=A2});var L0=($,X)=>{const Z=X?.length?{}:null;if(Z)for(let W of X)Z[W.part.charCodeAt(0)]=W;return{part:$,store:null,inert:Z,params:null,wildcardStore:null}},g1=($,X)=>({...$,part:X}),f1=($)=>({name:$,store:null,inert:null});class w0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,X,Z,{ignoreError:W=!1,ignoreHistory:J=!1}={}){if(typeof X!=="string")throw new TypeError("Route path must be a string");if(X==="")X="/";else if(X[0]!=="/")X=`/${X}`;const j=X[X.length-1]==="*",G=X.match(w0.regex.optionalParams);if(G){const w=X.replaceAll("?","");this.add($,w,Z,{ignoreError:W});for(let D=0;D<G.length;D++){let Q=X.replace("/"+G[D],"");this.add($,Q,Z,{ignoreError:!0})}return Z}if(G)X=X.replaceAll("?","");if(this.history.find(([w,D,Q])=>w===$&&D===X))return Z;if(j||G&&X.charCodeAt(X.length-1)===63)X=X.slice(0,-1);if(!J)this.history.push([$,X,Z]);const Y=X.split(w0.regex.static),K=X.match(w0.regex.params)||[];if(Y[Y.length-1]==="")Y.pop();let B;if(!this.root[$])B=this.root[$]=L0("/");else B=this.root[$];let U=0;for(let w=0;w<Y.length;++w){let D=Y[w];if(w>0){const Q=K[U++].slice(1);if(B.params===null)B.params=f1(Q);else if(B.params.name!==Q)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${Q}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);const _=B.params;if(_.inert===null){B=_.inert=L0(D);continue}B=_.inert}for(let Q=0;;){if(Q===D.length){if(Q<B.part.length){const _=g1(B,B.part.slice(Q));Object.assign(B,L0(D,[_]))}break}if(Q===B.part.length){if(B.inert===null)B.inert={};const _=B.inert[D.charCodeAt(Q)];if(_){B=_,D=D.slice(Q),Q=0;continue}const N=L0(D.slice(Q));B.inert[D.charCodeAt(Q)]=N,B=N;break}if(D[Q]!==B.part[Q]){const _=g1(B,B.part.slice(Q)),N=L0(D.slice(Q));Object.assign(B,L0(B.part.slice(0,Q),[_,N])),B=N;break}++Q}}if(U<K.length){const w=K[U].slice(1);if(B.params===null)B.params=f1(w);else if(B.params.name!==w)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${w}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);if(B.params.store===null)B.params.store=Z;return B.params.store}if(j){if(B.wildcardStore===null)B.wildcardStore=Z;return B.wildcardStore}if(B.store===null)B.store=Z;return B.store}find($,X){const Z=this.root[$];if(!Z)return null;return U1(X,X.length,Z,0)}}var U1=($,X,Z,W)=>{const J=Z.part,j=J.length,G=W+j;if(j>1){if(G>X)return null;if(j<15){for(let Y=1,K=W+1;Y<j;++Y,++K)if(J.charCodeAt(Y)!==$.charCodeAt(K))return null}else if($.slice(W,G)!==J)return null}if(G===X){if(Z.store!==null)return{store:Z.store,params:{}};if(Z.wildcardStore!==null)return{store:Z.wildcardStore,params:{"*":""}};return null}if(Z.inert!==null){const Y=Z.inert[$.charCodeAt(G)];if(Y!==void 0){const K=U1($,X,Y,G);if(K!==null)return K}}if(Z.params!==null){const{store:Y,name:K,inert:B}=Z.params,U=$.indexOf("/",G);if(U!==G){if(U===-1||U>=X){if(Y!==null){const w={};return w[K]=$.substring(G,X),{store:Y,params:w}}}else if(B!==null){const w=U1($,X,B,U);if(w!==null)return w.params[K]=$.substring(G,U),w}}}if(Z.wildcardStore!==null)return{store:Z.wildcardStore,params:{"*":$.substring(G,X)}};return null};var T0=($)=>{const X=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,Z=X.indexOf(")");if(X.charCodeAt(Z+2)===61&&X.charCodeAt(Z+5)!==123)return!0;return X.includes("return")},v2=($)=>{if($.startsWith("async"))$=$.slice(6);let X=-1;if($.charCodeAt(0)===40){if(X=$.indexOf(") => "),X!==-1)return[$.slice(1,X),$.slice(X+5),{isArrowReturn:$.charCodeAt(X+5)!==123}]}if($.startsWith("function")){X=$.indexOf("(");const J=$.indexOf(")");return[$.slice(X+1,J),$.slice(J+2),{isArrowReturn:!1}]}const Z=$.indexOf("(");if(Z!==-1){const J=$.indexOf("\n",2),j=$.slice(0,J),G=j.lastIndexOf(")")+1,Y=$.slice(J+1);return[j.slice(Z,G),"{"+Y,{isArrowReturn:!1}]}const W=$.split("\n",2);return[W[0],W[1],{isArrowReturn:!1}]},u2=($)=>{const X=$.indexOf("{");if(X===-1)return[-1,0];let Z=X+1,W=1;for(;Z<$.length;Z++){const J=$.charCodeAt(Z);if(J===123)W++;else if(J===125)W--;if(W===0)break}if(W!==0)return[0,$.length];return[X,Z+1]},h2=($)=>{const X=$.lastIndexOf("}");if(X===-1)return[-1,0];let Z=X-1,W=1;for(;Z>=0;Z--){const J=$.charCodeAt(Z);if(J===125)W++;else if(J===123)W--;if(W===0)break}if(W!==0)return[-1,0];return[Z,X+1]},y1=($)=>{let X=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)X=!0,$=$.slice(2,-2);while(!0){const[W,J]=u2($);if(W===-1)break;$=$.slice(0,W-2)+$.slice(J+1)}const Z=$.replace(/:/g,"").trim();if(X)return"{ "+Z+" }";return Z},m2=($,X)=>{const Z=y1($);if(Z.charCodeAt(0)===123){if(!X.query&&Z.includes("query"))X.query=!0;if(!X.headers&&Z.includes("headers"))X.headers=!0;if(!X.body&&Z.includes("body"))X.body=!0;if(!X.cookie&&Z.includes("cookie"))X.cookie=!0;if(!X.set&&Z.includes("set"))X.set=!0;if(!X.server&&Z.includes("server"))X.server=!0}return Z},d2=($,X,Z)=>{const W=X.indexOf($+"\n",Z),J=X.indexOf($+"\t",Z),j=X.indexOf($+",",Z),G=X.indexOf($+";",Z),Y=X.indexOf($+" ",Z);return[W,J,j,G,Y].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var k1=($,X,Z=0)=>{if(Z>5)return[];const W=[];let J=X;while(!0){let j=d2(" = "+$,J);if(j===-1){const K=J.indexOf(" = "+$);if(K+3+$.length!==J.length)break;j=K}const G=J.slice(0,j);let Y=G.slice(G.lastIndexOf(" ")+1);if(Y==="}"){const[K,B]=h2(G);W.push(J.slice(K,B)),J=J.slice(j+3+$.length);continue}while(Y.charCodeAt(0)===44)Y=Y.slice(1);while(Y.charCodeAt(0)===9)Y=Y.slice(1);if(!Y.includes("("))W.push(Y);J=J.slice(j+3+$.length)}for(let j of W){if(j.charCodeAt(0)===123)continue;const G=k1(j,X);if(G.length>0)W.push(...G)}return W},c2=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}const Z=$.indexOf("...");if(Z===-1)return;return $.slice(Z+3).trimEnd()},p2=($,X,Z)=>{const W=(J,j)=>$.includes(j+"."+J)||$.includes(j+'["'+J+'"]')||$.includes(j+"['"+J+"']");for(let J of X){if(!J)continue;if(J.charCodeAt(0)===123){if(J=y1(J),!Z.query&&J.includes("query"))Z.query=!0;if(!Z.headers&&J.includes("headers"))Z.headers=!0;if(!Z.body&&J.includes("body"))Z.body=!0;if(!Z.cookie&&J.includes("cookie"))Z.cookie=!0;if(!Z.set&&J.includes("set"))Z.set=!0;if(!Z.query&&J.includes("server"))Z.server=!0;continue}if(!Z.query&&W("query",J))Z.query=!0;if($.includes("return "+J)||$.includes("return "+J+".query"))Z.query=!0;if(!Z.headers&&W("headers",J))Z.headers=!0;if(!Z.body&&W("body",J))Z.body=!0;if(!Z.cookie&&W("cookie",J))Z.cookie=!0;if(!Z.set&&W("set",J))Z.set=!0;if(!Z.server&&W("server",J))Z.server=!0;if(Z.query&&Z.headers&&Z.body&&Z.cookie&&Z.set&&Z.server)break}return X};var l2=($,X,Z)=>{try{const W=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");W.test(X);const J=X.charCodeAt(W.lastIndex);if(J===41||J===44)return Z.query=!0,Z.headers=!0,Z.body=!0,Z.cookie=!0,Z.set=!0,Z.server=!0,!0;return!1}catch(W){return console.log("[Sucrose] unexpected isContextPassToFunction error, please report the following to the developer:"),console.log("---"),console.log($),console.log("---"),!0}},r0=($,X={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const Z=[];if($.handler&&typeof $.handler==="function")Z.push($.handler);if($.request?.length)Z.push(...$.request);if($.beforeHandle?.length)Z.push(...$.beforeHandle);if($.parse?.length)Z.push(...$.parse);if($.error?.length)Z.push(...$.error);if($.transform?.length)Z.push(...$.transform);if($.afterHandle?.length)Z.push(...$.afterHandle);if($.mapResponse?.length)Z.push(...$.mapResponse);if($.afterResponse?.length)Z.push(...$.afterResponse);for(let W of Z){if(!W)continue;const J="fn"in W?W.fn:W,[j,G,{isArrowReturn:Y}]=v2(J.toString()),K=m2(j,X),B=c2(K);if(B){const U=k1(B,G);U.splice(0,-1,B);for(let w of U)if(l2(B,G,X))break;if(p2(G,U,X),!X.query&&G.includes("return "+B+".query"))X.query=!0}if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return X};import{Value as c0} from"@sinclair/typebox/value";import{Kind as E0,TransformKind as Z2} from"@sinclair/typebox";import{Value as F0} from"@sinclair/typebox/value";import{TypeCompiler as J2} from"@sinclair/typebox/compiler";import{TypeRegistry as p1} from"@sinclair/typebox";import{TypeSystem as H0} from"@sinclair/typebox/system";import{Type as k0,FormatRegistry as o} from"@sinclair/typebox";import{TypeCompiler as d1} from"@sinclair/typebox/compiler";import{Value as a} from"@sinclair/typebox/value";var i2=function($){return $%4===0&&($%100!==0||$%400===0)},m1=function($){const X=n2.exec($);if(!X)return!1;const Z=+X[1],W=+X[2],J=+X[3];return W>=1&&W<=12&&J>=1&&J<=(W===2&&i2(Z)?29:t2[W])},w1=function($){return function X(Z){const W=r2.exec(Z);if(!W)return!1;const J=+W[1],j=+W[2],G=+W[3],Y=W[4],K=W[5]==="-"?-1:1,B=+(W[6]||0),U=+(W[7]||0);if(B>23||U>59||$&&!Y)return!1;if(J<=23&&j<=59&&G<60)return!0;const w=j-U*K,D=J-B*K-(w<0?1:0);return(D===23||D===-1)&&(w===59||w===-1)&&G<61}},v1=function($){const X=w1($);return function Z(W){const J=W.split(s2);return J.length===2&&m1(J[0])&&X(J[1])}},e2=function($){return a2.test($)&&o2.test($)},$3=function($){return u1.lastIndex=0,u1.test($)},W3=function($){return Number.isInteger($)&&$<=Z3&&$>=X3},J3=function($){return Number.isInteger($)},h1=function(){return!0},Q3=function($){if(j3.test($))return!1;try{return new RegExp($),!0}catch(X){return!1}},s0={date:m1,time:w1(!0),"date-time":v1(!0),"iso-time":w1(!1),"iso-date-time":v1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:e2,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:Q3,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:$3,int32:{type:"number",validate:W3},int64:{type:"number",validate:J3},float:{type:"number",validate:h1},double:{type:"number",validate:h1},password:!0,binary:!0},n2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,t2=[0,31,28,31,30,31,30,31,31,30,31,30,31],r2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,s2=/t|\s/i,a2=/\/|:/,o2=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,u1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,X3=-2147483648,Z3=2147483647,j3=/[^\\]\\Z/;import{TypeSystemPolicy as B5,TypeSystem as K5,TypeSystemDuplicateFormat as U5,TypeSystemDuplicateTypeKind as w5} from"@sinclair/typebox/system";import{TypeCompiler as F5,TypeCheck as D5} from"@sinclair/typebox/compiler";var l1=/(\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))/,i1=/(?: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\([^)]+\)/,n1=/^(?:(?:(?:(?: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)?)?$/,G3=s0.date,Y3=s0["date-time"];if(!o.Has("date"))H0.Format("date",($)=>{const X=$.replace(/"/g,"");if(l1.test(X)||i1.test(X)||n1.test(X)||G3(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});if(!o.Has("date-time"))H0.Format("date-time",($)=>{const X=$.replace(/"/g,"");if(l1.test(X)||i1.test(X)||n1.test(X)||Y3(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});Object.entries(s0).forEach(($)=>{const[X,Z]=$;if(!o.Has(X)){if(Z instanceof RegExp)H0.Format(X,(W)=>Z.test(W));else if(typeof Z==="function")H0.Format(X,Z)}});var A=Object.assign({},k0),c1=($)=>{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 $},_1=($,X)=>{if(!(X instanceof Blob))return!1;if($.minSize&&X.size<c1($.minSize))return!1;if($.maxSize&&X.size>c1($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!X.type.startsWith($.extension))return!1}else{for(let Z=0;Z<$.extension.length;Z++)if(X.type.startsWith($.extension[Z]))return!0;return!1}return!0},B3=p1.Get("Files")??H0.Type("File",_1),K3=p1.Get("Files")??H0.Type("Files",($,X)=>{if(!Array.isArray(X))return _1($,X);if($.minItems&&X.length<$.minItems)return!1;if($.maxItems&&X.length>$.maxItems)return!1;for(let Z=0;Z<X.length;Z++)if(!_1($,X[Z]))return!1;return!0});if(!o.Has("numeric"))o.Set("numeric",($)=>!!$&&!isNaN(+$));if(!o.Has("boolean"))o.Set("boolean",($)=>$==="true"||$==="false");if(!o.Has("ObjectString"))o.Set("ObjectString",($)=>{let X=$.charCodeAt(0);if(X===9||X===10||X===32)X=$.trimStart().charCodeAt(0);if(X!==123&&X!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!o.Has("ArrayString"))o.Set("ArrayString",($)=>{let X=$.charCodeAt(0);if(X===9||X===10||X===32)X=$.trimStart().charCodeAt(0);if(X!==123&&X!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});var W0={Numeric:($)=>{const X=k0.Number($);return A.Transform(A.Union([A.String({format:"numeric",default:0}),A.Number($)],$)).Decode((Z)=>{const W=+Z;if(isNaN(W))return Z;if($&&!a.Check(X,W))throw new H("property",X,W);return W}).Encode((Z)=>Z)},Date:($)=>{const X=k0.Date($);return A.Transform(A.Union([k0.Date($),A.String({format:"date",default:(new Date()).toISOString()}),A.String({format:"date-time",default:(new Date()).toISOString()})],$)).Decode((Z)=>{if(Z instanceof Date)return Z;const W=new Date(Z);if(!a.Check(X,W))throw new H("property",X,W);return W}).Encode((Z)=>{if(typeof Z==="string")return new Date(Z);return Z})},BooleanString:($)=>{const X=k0.Boolean($);return A.Transform(A.Union([A.String({format:"boolean",default:!1}),A.Boolean($)],$)).Decode((Z)=>{if(typeof Z==="string")return Z==="true";if($&&!a.Check(X,Z))throw new H("property",X,Z);return Z}).Encode((Z)=>Z)},ObjectString:($,X)=>{const Z=A.Object($,X),W=JSON.stringify(a.Create(Z));let J;try{J=d1.Compile(Z)}catch{}return A.Transform(A.Union([A.String({format:"ObjectString",default:W}),Z])).Decode((j)=>{if(typeof j==="string"){if(j.charCodeAt(0)!==123)throw new H("property",Z,j);try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(J){if(!J.Check(j))throw new H("property",Z,j);return J.Decode(j)}if(!a.Check(Z,j))throw new H("property",Z,j);return a.Decode(Z,j)}return j}).Encode((j)=>{if(typeof j==="string")try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(!a.Check(Z,j))throw new H("property",Z,j);return JSON.stringify(j)})},ArrayString:($={},X)=>{const Z=A.Array($,X),W=JSON.stringify(a.Create(Z));let J;try{J=d1.Compile(Z)}catch{}return A.Transform(A.Union([A.String({format:"ArrayString",default:W}),Z])).Decode((j)=>{if(typeof j==="string"){if(j.charCodeAt(0)!==91)throw new H("property",Z,j);try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(J){if(!J.Check(j))throw new H("property",Z,j);return J.Decode(j)}if(!a.Check(Z,j))throw new H("property",Z,j);return a.Decode(Z,j)}return j}).Encode((j)=>{if(typeof j==="string")try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(!a.Check(Z,j))throw new H("property",Z,j);return JSON.stringify(j)})},File:B3,Files:($={})=>A.Transform(K3($)).Decode((X)=>{if(Array.isArray(X))return X;return[X]}).Encode((X)=>X),Nullable:($)=>A.Union([$,A.Null()]),MaybeEmpty:($)=>A.Union([$,A.Null(),A.Undefined()]),Cookie:($,{domain:X,expires:Z,httpOnly:W,maxAge:J,path:j,priority:G,sameSite:Y,secure:K,secrets:B,sign:U,...w}={})=>{const D=A.Object($,w);return D.config={domain:X,expires:Z,httpOnly:W,maxAge:J,path:j,priority:G,sameSite:Y,secure:K,secrets:B,sign:U},D}};A.BooleanString=W0.BooleanString;A.ObjectString=W0.ObjectString;A.ArrayString=W0.ArrayString;A.Numeric=W0.Numeric;A.File=($={})=>W0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});A.Files=($={})=>W0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});A.Nullable=($)=>W0.Nullable($);A.MaybeEmpty=W0.MaybeEmpty;A.Cookie=W0.Cookie;A.Date=W0.Date;var w3=function($,X){if(typeof $!=="string")throw new TypeError("argument str must be a string");var Z={},W=X||{},J=W.decode||F3,j=0;while(j<$.length){var G=$.indexOf("=",j);if(G===-1)break;var Y=$.indexOf(";",j);if(Y===-1)Y=$.length;else if(Y<G){j=$.lastIndexOf(";",G-1)+1;continue}var K=$.slice(j,G).trim();if(Z[K]===void 0){var B=$.slice(G+1,Y).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);Z[K]=z3(B,J)}j=Y+1}return Z},_3=function($,X,Z){var W=Z||{},J=W.encode||D3;if(typeof J!=="function")throw new TypeError("option encode is invalid");if(!a0.test($))throw new TypeError("argument name is invalid");var j=J(X);if(j&&!a0.test(j))throw new TypeError("argument val is invalid");var G=$+"="+j;if(W.maxAge!=null){var Y=W.maxAge-0;if(isNaN(Y)||!isFinite(Y))throw new TypeError("option maxAge is invalid");G+="; Max-Age="+Math.floor(Y)}if(W.domain){if(!a0.test(W.domain))throw new TypeError("option domain is invalid");G+="; Domain="+W.domain}if(W.path){if(!a0.test(W.path))throw new TypeError("option path is invalid");G+="; Path="+W.path}if(W.expires){var K=W.expires;if(!M3(K)||isNaN(K.valueOf()))throw new TypeError("option expires is invalid");G+="; Expires="+K.toUTCString()}if(W.httpOnly)G+="; HttpOnly";if(W.secure)G+="; Secure";if(W.partitioned)G+="; Partitioned";if(W.priority){var B=typeof W.priority==="string"?W.priority.toLowerCase():W.priority;switch(B){case"low":G+="; Priority=Low";break;case"medium":G+="; Priority=Medium";break;case"high":G+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(W.sameSite){var U=typeof W.sameSite==="string"?W.sameSite.toLowerCase():W.sameSite;switch(U){case!0:G+="; SameSite=Strict";break;case"lax":G+="; SameSite=Lax";break;case"strict":G+="; SameSite=Strict";break;case"none":G+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return G},F3=function($){return $.indexOf("%")!==-1?decodeURIComponent($):$},D3=function($){return encodeURIComponent($)},M3=function($){return U3.call($)==="[object Date]"||$ instanceof Date},z3=function($,X){try{return X($)}catch(Z){return $}};/*!
2
+ var z2=Object.create;var{defineProperty:H1,getPrototypeOf:P2,getOwnPropertyNames:N2}=Object;var I2=Object.prototype.hasOwnProperty;var G1=($,X,Z)=>{Z=$!=null?z2(P2($)):{};const W=X||!$||!$.__esModule?H1(Z,"default",{value:$,enumerable:!0}):Z;for(let J of N2($))if(!I2.call(W,J))H1(W,J,{get:()=>$[J],enumerable:!0});return W};var V2=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var r0=V2((a3,i1)=>{var W3=function($){var X=$.indexOf("%");if(X===-1)return $;var Z=$.length,W="",J=0,j=0,G=X,Y=l1;while(X>-1&&X<Z){var K=p1($[X+1],4),B=p1($[X+2],0),U=K|B,w=_1[U];if(Y=_1[256+Y+w],j=j<<6|U&_1[364+w],Y===l1)W+=$.slice(J,G),W+=j<=65535?String.fromCharCode(j):String.fromCharCode(55232+(j>>10),56320+(j&1023)),j=0,J=X+3,X=G=$.indexOf("%",J);else if(Y===Z3)return null;else{if(X+=3,X<Z&&$.charCodeAt(X)===37)continue;return null}}return W+$.slice(J)},p1=function($,X){var Z=J3[$];return Z===void 0?255:Z<<X},l1=12,Z3=0,_1=[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],J3={"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};i1.exports=W3});var q0=($,X)=>{const Z=X?.length?{}:null;if(Z)for(let W of X)Z[W.part.charCodeAt(0)]=W;return{part:$,store:null,inert:Z,params:null,wildcardStore:null}},E1=($,X)=>({...$,part:X}),R1=($)=>({name:$,store:null,inert:null});class U0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,X,Z,{ignoreError:W=!1,ignoreHistory:J=!1}={}){if(typeof X!=="string")throw new TypeError("Route path must be a string");if(X==="")X="/";else if(X[0]!=="/")X=`/${X}`;const j=X[X.length-1]==="*",G=X.match(U0.regex.optionalParams);if(G){const w=X.replaceAll("?","");this.add($,w,Z,{ignoreError:W});for(let D=0;D<G.length;D++){let Q=X.replace("/"+G[D],"");this.add($,Q,Z,{ignoreError:!0})}return Z}if(G)X=X.replaceAll("?","");if(this.history.find(([w,D,Q])=>w===$&&D===X))return Z;if(j||G&&X.charCodeAt(X.length-1)===63)X=X.slice(0,-1);if(!J)this.history.push([$,X,Z]);const Y=X.split(U0.regex.static),K=X.match(U0.regex.params)||[];if(Y[Y.length-1]==="")Y.pop();let B;if(!this.root[$])B=this.root[$]=q0("/");else B=this.root[$];let U=0;for(let w=0;w<Y.length;++w){let D=Y[w];if(w>0){const Q=K[U++].slice(1);if(B.params===null)B.params=R1(Q);else if(B.params.name!==Q)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${Q}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);const _=B.params;if(_.inert===null){B=_.inert=q0(D);continue}B=_.inert}for(let Q=0;;){if(Q===D.length){if(Q<B.part.length){const _=E1(B,B.part.slice(Q));Object.assign(B,q0(D,[_]))}break}if(Q===B.part.length){if(B.inert===null)B.inert={};const _=B.inert[D.charCodeAt(Q)];if(_){B=_,D=D.slice(Q),Q=0;continue}const P=q0(D.slice(Q));B.inert[D.charCodeAt(Q)]=P,B=P;break}if(D[Q]!==B.part[Q]){const _=E1(B,B.part.slice(Q)),P=q0(D.slice(Q));Object.assign(B,q0(B.part.slice(0,Q),[_,P])),B=P;break}++Q}}if(U<K.length){const w=K[U].slice(1);if(B.params===null)B.params=R1(w);else if(B.params.name!==w)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${w}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);if(B.params.store===null)B.params.store=Z;return B.params.store}if(j){if(B.wildcardStore===null)B.wildcardStore=Z;return B.wildcardStore}if(B.store===null)B.store=Z;return B.store}find($,X){const Z=this.root[$];if(!Z)return null;return Y1(X,X.length,Z,0)}}var Y1=($,X,Z,W)=>{const J=Z.part,j=J.length,G=W+j;if(j>1){if(G>X)return null;if(j<15){for(let Y=1,K=W+1;Y<j;++Y,++K)if(J.charCodeAt(Y)!==$.charCodeAt(K))return null}else if($.slice(W,G)!==J)return null}if(G===X){if(Z.store!==null)return{store:Z.store,params:{}};if(Z.wildcardStore!==null)return{store:Z.wildcardStore,params:{"*":""}};return null}if(Z.inert!==null){const Y=Z.inert[$.charCodeAt(G)];if(Y!==void 0){const K=Y1($,X,Y,G);if(K!==null)return K}}if(Z.params!==null){const{store:Y,name:K,inert:B}=Z.params,U=$.indexOf("/",G);if(U!==G){if(U===-1||U>=X){if(Y!==null){const w={};return w[K]=$.substring(G,X),{store:Y,params:w}}}else if(B!==null){const w=Y1($,X,B,U);if(w!==null)return w.params[K]=$.substring(G,U),w}}}if(Z.wildcardStore!==null)return{store:Z.wildcardStore,params:{"*":$.substring(G,X)}};return null};var L0=($)=>{const X=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,Z=X.indexOf(")");if(X.charCodeAt(Z+2)===61&&X.charCodeAt(Z+5)!==123)return!0;return X.includes("return")},O2=($)=>{if($.startsWith("async"))$=$.slice(6);let X=-1;if($.charCodeAt(0)===40){if(X=$.indexOf(") => "),X!==-1)return[$.slice(1,X),$.slice(X+5),{isArrowReturn:$.charCodeAt(X+5)!==123}]}if($.startsWith("function")){X=$.indexOf("(");const J=$.indexOf(")");return[$.slice(X+1,J),$.slice(J+2),{isArrowReturn:!1}]}const Z=$.indexOf("(");if(Z!==-1){const J=$.indexOf("\n",2),j=$.slice(0,J),G=j.lastIndexOf(")")+1,Y=$.slice(J+1);return[j.slice(Z,G),"{"+Y,{isArrowReturn:!1}]}const W=$.split("\n",2);return[W[0],W[1],{isArrowReturn:!1}]},A2=($)=>{const X=$.indexOf("{");if(X===-1)return[-1,0];let Z=X+1,W=1;for(;Z<$.length;Z++){const J=$.charCodeAt(Z);if(J===123)W++;else if(J===125)W--;if(W===0)break}if(W!==0)return[0,$.length];return[X,Z+1]},C2=($)=>{const X=$.lastIndexOf("}");if(X===-1)return[-1,0];let Z=X-1,W=1;for(;Z>=0;Z--){const J=$.charCodeAt(Z);if(J===125)W++;else if(J===123)W--;if(W===0)break}if(W!==0)return[-1,0];return[Z,X+1]},b1=($)=>{let X=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)X=!0,$=$.slice(2,-2);while(!0){const[W,J]=A2($);if(W===-1)break;$=$.slice(0,W-2)+$.slice(J+1)}const Z=$.replace(/:/g,"").trim();if(X)return"{ "+Z+" }";return Z},S2=($,X)=>{const Z=b1($);if(Z.charCodeAt(0)===123){if(!X.query&&Z.includes("query"))X.query=!0;if(!X.headers&&Z.includes("headers"))X.headers=!0;if(!X.body&&Z.includes("body"))X.body=!0;if(!X.cookie&&Z.includes("cookie"))X.cookie=!0;if(!X.set&&Z.includes("set"))X.set=!0;if(!X.server&&Z.includes("server"))X.server=!0}return Z},q2=($,X,Z)=>{const W=X.indexOf($+"\n",Z),J=X.indexOf($+"\t",Z),j=X.indexOf($+",",Z),G=X.indexOf($+";",Z),Y=X.indexOf($+" ",Z);return[W,J,j,G,Y].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var x1=($,X,Z=0)=>{if(Z>5)return[];const W=[];let J=X;while(!0){let j=q2(" = "+$,J);if(j===-1){const K=J.indexOf(" = "+$);if(K+3+$.length!==J.length)break;j=K}const G=J.slice(0,j);let Y=G.slice(G.lastIndexOf(" ")+1);if(Y==="}"){const[K,B]=C2(G);W.push(J.slice(K,B)),J=J.slice(j+3+$.length);continue}while(Y.charCodeAt(0)===44)Y=Y.slice(1);while(Y.charCodeAt(0)===9)Y=Y.slice(1);if(!Y.includes("("))W.push(Y);J=J.slice(j+3+$.length)}for(let j of W){if(j.charCodeAt(0)===123)continue;const G=x1(j,X);if(G.length>0)W.push(...G)}return W},L2=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}const Z=$.indexOf("...");if(Z===-1)return;return $.slice(Z+3).trimEnd()},T2=($,X,Z)=>{const W=(J,j)=>$.includes(j+"."+J)||$.includes(j+'["'+J+'"]')||$.includes(j+"['"+J+"']");for(let J of X){if(!J)continue;if(J.charCodeAt(0)===123){if(J=b1(J),!Z.query&&J.includes("query"))Z.query=!0;if(!Z.headers&&J.includes("headers"))Z.headers=!0;if(!Z.body&&J.includes("body"))Z.body=!0;if(!Z.cookie&&J.includes("cookie"))Z.cookie=!0;if(!Z.set&&J.includes("set"))Z.set=!0;if(!Z.query&&J.includes("server"))Z.server=!0;continue}if(!Z.query&&W("query",J))Z.query=!0;if($.includes("return "+J)||$.includes("return "+J+".query"))Z.query=!0;if(!Z.headers&&W("headers",J))Z.headers=!0;if(!Z.body&&W("body",J))Z.body=!0;if(!Z.cookie&&W("cookie",J))Z.cookie=!0;if(!Z.set&&W("set",J))Z.set=!0;if(!Z.server&&W("server",J))Z.server=!0;if(Z.query&&Z.headers&&Z.body&&Z.cookie&&Z.set&&Z.server)break}return X};var H2=($,X,Z)=>{try{const W=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");W.test(X);const J=X.charCodeAt(W.lastIndex);if(J===41||J===44)return Z.query=!0,Z.headers=!0,Z.body=!0,Z.cookie=!0,Z.set=!0,Z.server=!0,!0;return!1}catch(W){return console.log("[Sucrose] unexpected isContextPassToFunction error, please report the following to the developer:"),console.log("---"),console.log($),console.log("---"),!0}},i0=($,X={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const Z=[];if($.handler&&typeof $.handler==="function")Z.push($.handler);if($.request?.length)Z.push(...$.request);if($.beforeHandle?.length)Z.push(...$.beforeHandle);if($.parse?.length)Z.push(...$.parse);if($.error?.length)Z.push(...$.error);if($.transform?.length)Z.push(...$.transform);if($.afterHandle?.length)Z.push(...$.afterHandle);if($.mapResponse?.length)Z.push(...$.mapResponse);if($.afterResponse?.length)Z.push(...$.afterResponse);for(let W of Z){if(!W)continue;const J="fn"in W?W.fn:W,[j,G,{isArrowReturn:Y}]=O2(J.toString()),K=S2(j,X),B=L2(K);if(B){const U=x1(B,G);U.splice(0,-1,B);for(let w of U)if(H2(B,G,X))break;if(T2(G,U,X),!X.query&&G.includes("return "+B+".query"))X.query=!0}if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return X};import{Value as d0} from"@sinclair/typebox/value";import{Kind as H0,TransformKind as o1} from"@sinclair/typebox";import{Value as _0} from"@sinclair/typebox/value";import{TypeCompiler as $2} from"@sinclair/typebox/compiler";import{TypeRegistry as h1} from"@sinclair/typebox";import{TypeSystem as T0} from"@sinclair/typebox/system";import{Type as y0,FormatRegistry as o} from"@sinclair/typebox";import{TypeCompiler as v1} from"@sinclair/typebox/compiler";import{Value as a} from"@sinclair/typebox/value";var E2=function($){return $%4===0&&($%100!==0||$%400===0)},k1=function($){const X=R2.exec($);if(!X)return!1;const Z=+X[1],W=+X[2],J=+X[3];return W>=1&&W<=12&&J>=1&&J<=(W===2&&E2(Z)?29:b2[W])},B1=function($){return function X(Z){const W=x2.exec(Z);if(!W)return!1;const J=+W[1],j=+W[2],G=+W[3],Y=W[4],K=W[5]==="-"?-1:1,B=+(W[6]||0),U=+(W[7]||0);if(B>23||U>59||$&&!Y)return!1;if(J<=23&&j<=59&&G<60)return!0;const w=j-U*K,D=J-B*K-(w<0?1:0);return(D===23||D===-1)&&(w===59||w===-1)&&G<61}},g1=function($){const X=B1($);return function Z(W){const J=W.split(g2);return J.length===2&&k1(J[0])&&X(J[1])}},k2=function($){return f2.test($)&&y2.test($)},v2=function($){return f1.lastIndex=0,f1.test($)},m2=function($){return Number.isInteger($)&&$<=h2&&$>=u2},d2=function($){return Number.isInteger($)},y1=function(){return!0},l2=function($){if(c2.test($))return!1;try{return new RegExp($),!0}catch(X){return!1}},n0={date:k1,time:B1(!0),"date-time":g1(!0),"iso-time":B1(!1),"iso-date-time":g1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:k2,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:l2,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:v2,int32:{type:"number",validate:m2},int64:{type:"number",validate:d2},float:{type:"number",validate:y1},double:{type:"number",validate:y1},password:!0,binary:!0},R2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,b2=[0,31,28,31,30,31,30,31,31,30,31,30,31],x2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,g2=/t|\s/i,f2=/\/|:/,y2=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,f1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,u2=-2147483648,h2=2147483647,c2=/[^\\]\\Z/;import{TypeSystemPolicy as c3,TypeSystem as l3,TypeSystemDuplicateFormat as p3,TypeSystemDuplicateTypeKind as i3} from"@sinclair/typebox/system";import{TypeCompiler as t3,TypeCheck as r3} from"@sinclair/typebox/compiler";var m1=/(\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))/,d1=/(?: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\([^)]+\)/,c1=/^(?:(?:(?:(?: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)?)?$/,p2=n0.date,i2=n0["date-time"];if(!o.Has("date"))T0.Format("date",($)=>{const X=$.replace(/"/g,"");if(m1.test(X)||d1.test(X)||c1.test(X)||p2(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});if(!o.Has("date-time"))T0.Format("date-time",($)=>{const X=$.replace(/"/g,"");if(m1.test(X)||d1.test(X)||c1.test(X)||i2(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});Object.entries(n0).forEach(($)=>{const[X,Z]=$;if(!o.Has(X)){if(Z instanceof RegExp)T0.Format(X,(W)=>Z.test(W));else if(typeof Z==="function")T0.Format(X,Z)}});var A=Object.assign({},y0),u1=($)=>{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 $},K1=($,X)=>{if(!(X instanceof Blob))return!1;if($.minSize&&X.size<u1($.minSize))return!1;if($.maxSize&&X.size>u1($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!X.type.startsWith($.extension))return!1}else{for(let Z=0;Z<$.extension.length;Z++)if(X.type.startsWith($.extension[Z]))return!0;return!1}return!0},n2=h1.Get("Files")??T0.Type("File",K1),t2=h1.Get("Files")??T0.Type("Files",($,X)=>{if(!Array.isArray(X))return K1($,X);if($.minItems&&X.length<$.minItems)return!1;if($.maxItems&&X.length>$.maxItems)return!1;for(let Z=0;Z<X.length;Z++)if(!K1($,X[Z]))return!1;return!0});if(!o.Has("numeric"))o.Set("numeric",($)=>!!$&&!isNaN(+$));if(!o.Has("boolean"))o.Set("boolean",($)=>$==="true"||$==="false");if(!o.Has("ObjectString"))o.Set("ObjectString",($)=>{let X=$.charCodeAt(0);if(X===9||X===10||X===32)X=$.trimStart().charCodeAt(0);if(X!==123&&X!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!o.Has("ArrayString"))o.Set("ArrayString",($)=>{let X=$.charCodeAt(0);if(X===9||X===10||X===32)X=$.trimStart().charCodeAt(0);if(X!==123&&X!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});var W0={Numeric:($)=>{const X=y0.Number($);return A.Transform(A.Union([A.String({format:"numeric",default:0}),A.Number($)],$)).Decode((Z)=>{const W=+Z;if(isNaN(W))return Z;if($&&!a.Check(X,W))throw new H("property",X,W);return W}).Encode((Z)=>Z)},Date:($)=>{const X=y0.Date($);return A.Transform(A.Union([y0.Date($),A.String({format:"date",default:(new Date()).toISOString()}),A.String({format:"date-time",default:(new Date()).toISOString()})],$)).Decode((Z)=>{if(Z instanceof Date)return Z;const W=new Date(Z);if(!a.Check(X,W))throw new H("property",X,W);return W}).Encode((Z)=>{if(typeof Z==="string")return new Date(Z);return Z})},BooleanString:($)=>{const X=y0.Boolean($);return A.Transform(A.Union([A.String({format:"boolean",default:!1}),A.Boolean($)],$)).Decode((Z)=>{if(typeof Z==="string")return Z==="true";if($&&!a.Check(X,Z))throw new H("property",X,Z);return Z}).Encode((Z)=>Z)},ObjectString:($,X)=>{const Z=A.Object($,X),W=JSON.stringify(a.Create(Z));let J;try{J=v1.Compile(Z)}catch{}return A.Transform(A.Union([A.String({format:"ObjectString",default:W}),Z])).Decode((j)=>{if(typeof j==="string"){if(j.charCodeAt(0)!==123)throw new H("property",Z,j);try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(J){if(!J.Check(j))throw new H("property",Z,j);return J.Decode(j)}if(!a.Check(Z,j))throw new H("property",Z,j);return a.Decode(Z,j)}return j}).Encode((j)=>{if(typeof j==="string")try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(!a.Check(Z,j))throw new H("property",Z,j);return JSON.stringify(j)})},ArrayString:($={},X)=>{const Z=A.Array($,X),W=JSON.stringify(a.Create(Z));let J;try{J=v1.Compile(Z)}catch{}return A.Transform(A.Union([A.String({format:"ArrayString",default:W}),Z])).Decode((j)=>{if(typeof j==="string"){if(j.charCodeAt(0)!==91)throw new H("property",Z,j);try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(J){if(!J.Check(j))throw new H("property",Z,j);return J.Decode(j)}if(!a.Check(Z,j))throw new H("property",Z,j);return a.Decode(Z,j)}return j}).Encode((j)=>{if(typeof j==="string")try{j=JSON.parse(j)}catch{throw new H("property",Z,j)}if(!a.Check(Z,j))throw new H("property",Z,j);return JSON.stringify(j)})},File:n2,Files:($={})=>A.Transform(t2($)).Decode((X)=>{if(Array.isArray(X))return X;return[X]}).Encode((X)=>X),Nullable:($)=>A.Union([$,A.Null()]),MaybeEmpty:($)=>A.Union([$,A.Null(),A.Undefined()]),Cookie:($,{domain:X,expires:Z,httpOnly:W,maxAge:J,path:j,priority:G,sameSite:Y,secure:K,secrets:B,sign:U,...w}={})=>{const D=A.Object($,w);return D.config={domain:X,expires:Z,httpOnly:W,maxAge:J,path:j,priority:G,sameSite:Y,secure:K,secrets:B,sign:U},D}};A.BooleanString=W0.BooleanString;A.ObjectString=W0.ObjectString;A.ArrayString=W0.ArrayString;A.Numeric=W0.Numeric;A.File=($={})=>W0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});A.Files=($={})=>W0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});A.Nullable=($)=>W0.Nullable($);A.MaybeEmpty=W0.MaybeEmpty;A.Cookie=W0.Cookie;A.Date=W0.Date;var s2=function($,X){if(typeof $!=="string")throw new TypeError("argument str must be a string");var Z={},W=X||{},J=W.decode||o2,j=0;while(j<$.length){var G=$.indexOf("=",j);if(G===-1)break;var Y=$.indexOf(";",j);if(Y===-1)Y=$.length;else if(Y<G){j=$.lastIndexOf(";",G-1)+1;continue}var K=$.slice(j,G).trim();if(Z[K]===void 0){var B=$.slice(G+1,Y).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);Z[K]=X3(B,J)}j=Y+1}return Z},a2=function($,X,Z){var W=Z||{},J=W.encode||e2;if(typeof J!=="function")throw new TypeError("option encode is invalid");if(!t0.test($))throw new TypeError("argument name is invalid");var j=J(X);if(j&&!t0.test(j))throw new TypeError("argument val is invalid");var G=$+"="+j;if(W.maxAge!=null){var Y=W.maxAge-0;if(isNaN(Y)||!isFinite(Y))throw new TypeError("option maxAge is invalid");G+="; Max-Age="+Math.floor(Y)}if(W.domain){if(!t0.test(W.domain))throw new TypeError("option domain is invalid");G+="; Domain="+W.domain}if(W.path){if(!t0.test(W.path))throw new TypeError("option path is invalid");G+="; Path="+W.path}if(W.expires){var K=W.expires;if(!$3(K)||isNaN(K.valueOf()))throw new TypeError("option expires is invalid");G+="; Expires="+K.toUTCString()}if(W.httpOnly)G+="; HttpOnly";if(W.secure)G+="; Secure";if(W.partitioned)G+="; Partitioned";if(W.priority){var B=typeof W.priority==="string"?W.priority.toLowerCase():W.priority;switch(B){case"low":G+="; Priority=Low";break;case"medium":G+="; Priority=Medium";break;case"high":G+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(W.sameSite){var U=typeof W.sameSite==="string"?W.sameSite.toLowerCase():W.sameSite;switch(U){case!0:G+="; SameSite=Strict";break;case"lax":G+="; SameSite=Lax";break;case"strict":G+="; SameSite=Strict";break;case"none":G+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return G},o2=function($){return $.indexOf("%")!==-1?decodeURIComponent($):$},e2=function($){return encodeURIComponent($)},$3=function($){return r2.call($)==="[object Date]"||$ instanceof Date},X3=function($,X){try{return X($)}catch(Z){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 F1=w3,D1=_3;var U3=Object.prototype.toString,a0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var o1=t0(o0(),1);class G0{$;X;Z;constructor($,X,Z={}){this.name=$;this.jar=X;this.initial=Z}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 partitioned(){return this.cookie.partitioned}set partitioned($){this.cookie.partitioned=$}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 a1=($,X,Z)=>{if(!$.cookie)$.cookie={};return new Proxy(X,{get(W,J){if(J in X)return new G0(J,$.cookie,Object.assign({},Z??{},X[J]));return new G0(J,$.cookie,Object.assign({},Z))}})},e0=async($,X,{secrets:Z,sign:W,...J}={})=>{if(!X)return a1($,{},J);const j=typeof Z==="string";if(W&&W!==!0&&!Array.isArray(W))W=[W];const G={},Y=F1(X);for(let[K,B]of Object.entries(Y)){let U=o1.default(B);if(W===!0||W?.includes(K)){if(!Z)throw new Error("No secret is provided to cookie plugin");if(j){const w=await z1(U,Z);if(w===!1)throw new v0(K);U=w}else{let w=!0;for(let D=0;D<Z.length;D++){const Q=await z1(U,Z[D]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new v0(K)}}G[K]={value:U}}return a1($,G,J)};var e1="toJSON"in new Headers,l=($)=>{if(!$)return!1;for(let X in $)return!0;return!1},u0=($,X)=>{const Z=$.size;if(!X&&Z||Z&&X&&X.status!==206&&X.status!==304&&X.status!==412&&X.status!==416){if(X){if(X.headers instanceof Headers){if(e1)X.headers=X.headers.toJSON();else for(let[W,J]of X.headers.entries())if(W in X.headers)X.headers[W]=J}return new Response($,{status:X.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${Z-1}/${Z}`},X.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${Z-1}/${Z}`}})}return new Response($)},$2=($,X)=>{if(!$)return $;$.delete("set-cookie");for(let Z=0;Z<X.length;Z++){const W=X[Z].indexOf("=");$.append("set-cookie",`${X[Z].slice(0,W)}=${X[Z].slice(W+1)||""}`)}return $},X2=($)=>{if(!$||!l($))return;const X=[];for(let[Z,W]of Object.entries($)){if(!Z||!W)continue;const J=W.value;if(J===void 0||J===null)continue;X.push(D1(Z,typeof J==="object"?JSON.stringify(J):J+"",W))}if(X.length===0)return;if(X.length===1)return X[0];return X},h0=($,X,Z)=>{let W=!1;return new Response(new ReadableStream({async start(J){Z?.signal.addEventListener("abort",()=>{W=!0;try{J.close()}catch{}});for await(let j of $){if(W)break;if(!j)continue;J.enqueue(Buffer.from(j.toString())),await new Promise((G)=>setTimeout(()=>G(),0))}try{J.close()}catch{}}}),{...X,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8"}})},y=($,X,Z)=>{if(l(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=Y0[X.status];if(X.redirect){if(X.headers.Location=X.redirect,!X.status||X.status<300||X.status>=400)X.status=302}if(X.cookie&&l(X.cookie)){const W=X2(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=$2(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return u0($,X);case"Array":return Response.json($,X);case"Object":const W=$[m];if(W)return X.status=W,y($.response,X,Z);for(let j in Object.values($))switch(j?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(M0($));default:break}return Response.json($,X);case"ReadableStream":if(!X.headers["content-type"]?.startsWith("text/event-stream"))X.headers["content-type"]="text/event-stream; charset=utf-8";return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,X);case void 0:if(!$)return new Response("",X);return Response.json($,X);case"Response":let J=!1;if(X.headers instanceof Headers)for(let j of X.headers.keys())if(j==="set-cookie"){if(J)continue;J=!0;for(let G of X.headers.getSetCookie())$.headers.append("set-cookie",G)}else $.headers.append(j,X.headers?.get(j)??"");else for(let j in X.headers)$.headers.append(j,X.headers[j]);if($.status!==X.status)X.status=$.status;return $;case"Error":return j0($,X);case"Promise":return $.then((j)=>y(j,X));case"Function":return y($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"Cookie":if($ instanceof G0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response){let j=!1;if(X.headers instanceof Headers)for(let G of X.headers.keys())if(G==="set-cookie"){if(j)continue;j=!0;for(let Y of X.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(G,X.headers?.get(G)??"");else for(let G in X.headers)$.headers.append(G,X.headers[G]);if(e1)X.headers=$.headers.toJSON();else for(let[G,Y]of $.headers.entries())if(G in X.headers)X.headers[G]=Y;return $}if($ instanceof Promise)return $.then((j)=>y(j,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return h0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($,X)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,X);case"Array":return Response.json($);case"Object":const W=$[m];if(W)return X.status=W,y($.response,X,Z);for(let J in Object.values($))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(M0($),X);default:break}return Response.json($,X);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 j0($,X);case"Promise":return $.then((J)=>{const j=J0(J,Z);if(j!==void 0)return j;return new Response("")});case"Function":return J0($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof G0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((J)=>y(J,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return h0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($)}},f=($,X,Z)=>{if($===void 0||$===null)return;if(l(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=Y0[X.status];if(X.redirect){if(X.headers.Location=X.redirect,!X.status||X.status<300||X.status>=400)X.status=302}if(X.cookie&&l(X.cookie)){const W=X2(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=$2(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return u0($,X);case"Array":return Response.json($,X);case"Object":const W=$[m];if(W)return X.status=W,f($.response,X,Z);for(let j in Object.values($))switch(j?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(M0($),X);default:break}return Response.json($,X);case"ReadableStream":if(!X.headers["content-type"]?.startsWith("text/event-stream"))X.headers["content-type"]="text/event-stream; charset=utf-8";return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,X);case void 0:if(!$)return;return Response.json($,X);case"Response":let J=!1;if(X.headers instanceof Headers)for(let j of X.headers.keys())if(j==="set-cookie"){if(J)continue;J=!0;for(let G of X.headers.getSetCookie())$.headers.append("set-cookie",G)}else $.headers.append(j,X.headers?.get(j)??"");else for(let j in X.headers)$.headers.append(j,X.headers[j]);if($.status!==X.status)X.status=$.status;return $;case"Promise":return $.then((j)=>{const G=f(j,X);if(G!==void 0)return G});case"Error":return j0($,X);case"Function":return f($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"FormData":return new Response($);case"Cookie":if($ instanceof G0)return new Response($.value,X);return new Response($?.toString(),X);default:if($ instanceof Response){let j=!1;if(X.headers instanceof Headers)for(let G of X.headers.keys())if(G==="set-cookie"){if(j)continue;j=!0;for(let Y of X.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(G,X.headers?.get(G)??"");else for(let G in X.headers)$.headers.append(G,X.headers[G]);if($.status!==X.status)X.status=$.status;return $}if($ instanceof Promise)return $.then((j)=>f(j,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return h0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($,X)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,X);case"Array":return Response.json($);case"Object":const W=$[m];if(W)return X.status=W,f($.response,X,Z);for(let J in Object.values($))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(M0($),X);default:break}return Response.json($,X);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"Promise":return $.then((J)=>{const j=f(J,X);if(j!==void 0)return j});case"Error":return j0($,X);case"Function":return J0($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof G0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((J)=>f(J,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return h0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($)}},J0=($,X)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($);case"Array":return Response.json($);case"Object":if($[m])return y($.response,{status:$[m],headers:{}});$:for(let Z of Object.values($))switch(Z?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(M0($));case"Object":break $;default:break}return Response.json($);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{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 j0($);case"Promise":return $.then((Z)=>J0(Z,X));case"Function":return J0($(),X);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((Z)=>J0(Z,X));if($ instanceof Error)return j0($);if(typeof $?.next==="function")return h0($,void 0,X);if("toResponse"in $)return J0($.toResponse());if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},j0=($,X)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:X?.status!==200?X?.status??500:500,headers:X?.headers});var L3=function($){let X=$;while(X.endsWith("="))X=X.slice(0,-1);return X},$1=($,X)=>{const Z=new URL($);return Z.pathname=X,Z.toString()},V3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||l(Object.getPrototypeOf($)),N1=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,X,{skipKeys:Z,override:W=!0}={})=>{if(!N1($)||!N1(X))return $;for(let[J,j]of Object.entries(X)){if(Z?.includes(J))continue;if(!N1(j)||!(J in $)||V3(j)){if(W||!(J in $))$[J]=j;continue}$[J]=d($[J],j,{skipKeys:Z,override:W})}return $},O3=($,X)=>{const{properties:Z,...W}=$??{},{properties:J,...j}=X??{};return d(W,j)},x=($=[],X=[])=>{if(!$)return[];if(!X)return $;const Z=[],W=[];if(!Array.isArray($))$=[$];if(!Array.isArray(X))X=[X];for(let J of $)if(Z.push(J),J.checksum)W.push(J.checksum);for(let J of X)if(!W.includes(J.checksum))Z.push(J);return Z},A3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],C3=A3.reduce(($,X)=>($[X]=!0,$),{}),j2=($,X)=>{const Z=(W)=>typeof W==="object"&&Object.keys(W).every(J1);if(Z($)&&Z(X))return{...$,...X};return X??$},R0=($,X)=>{return{body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,response:j2($?.response,X?.response)}},c=($,X)=>{return{...$,...X,body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,response:j2($?.response,X?.response),type:$?.type||X?.type,detail:d(X?.detail??{},$?.detail??{}),parse:x($?.parse,X?.parse),transform:x($?.transform,X?.transform),beforeHandle:x($?.beforeHandle,X?.beforeHandle),afterHandle:x($?.afterHandle,X?.afterHandle),mapResponse:x($?.mapResponse,X?.mapResponse),afterResponse:x($?.afterResponse,X?.afterResponse),trace:x($?.trace,X?.trace),error:x($?.error,X?.error)}},Q2=($,X,Z=!0)=>{if(!Array.isArray(X))return u($,X,Z);for(let W of X)$=u($,W,Z);return $},u=($,X,Z=!0)=>{if(!$)return $;if(X.untilObjectFound&&!Z&&$.type==="object")return $;const W=X.from[E0];if($.oneOf){for(let G=0;G<$.oneOf.length;G++)$.oneOf[G]=u($.oneOf[G],X,Z);return $}if($.anyOf){for(let G=0;G<$.anyOf.length;G++)$.anyOf[G]=u($.anyOf[G],X,Z);return $}if($.allOf){for(let G=0;G<$.allOf.length;G++)$.allOf[G]=u($.allOf[G],X,Z);return $}if($.not){for(let G=0;G<$.not.length;G++)$.not[G]=u($.not[G],X,Z);return $}const J=Z&&!!X.excludeRoot;if($[E0]===W){const{anyOf:G,oneOf:Y,allOf:K,not:B,properties:U,items:w,...D}=$,Q=X.to();let _;const N=(M)=>{if(U&&M.type==="object"){const V={};for(let[O,q]of Object.entries(U))V[O]=u(q,X,!1);return{...D,...M,properties:V}}if(w&&M.type==="array")return{...D,...M,items:u(w,X,!1)};const P={...D,...M};if(delete P.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")_=A.ObjectString(U,D),P.default=JSON.stringify(F0.Create(A.Object(U))),P.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")_=A.ArrayString(w,D),P.default=JSON.stringify(F0.Create(A.Array(w))),P.items=w;return P};if(J){if(U){const M={};for(let[P,V]of Object.entries(U))M[P]=u(V,X,!1);return{...D,properties:M}}else if(w?.map)return{...D,items:w.map((M)=>u(M,X,!1))};return D}if(Q.anyOf)for(let M=0;M<Q.anyOf.length;M++)Q.anyOf[M]=N(Q.anyOf[M]);else if(Q.oneOf)for(let M=0;M<Q.oneOf.length;M++)Q.oneOf[M]=N(Q.oneOf[M]);else if(Q.allOf)for(let M=0;M<Q.allOf.length;M++)Q.allOf[M]=N(Q.allOf[M]);else if(Q.not)for(let M=0;M<Q.not.length;M++)Q.not[M]=N(Q.not[M]);if(_)Q[Z2]=_[Z2];if(Q.anyOf||Q.oneOf||Q.allOf||Q.not)return Q;if(U){const M={};for(let[P,V]of Object.entries(U))M[P]=u(V,X,!1);return{...D,...Q,properties:M}}else if(w?.map)return{...D,...Q,items:w.map((M)=>u(M,X,!1))};return{...D,...Q}}const j=$?.properties;if(j)for(let[G,Y]of Object.entries(j))switch(Y[E0]){case W:const{anyOf:K,oneOf:B,allOf:U,not:w,type:D,...Q}=Y,_=X.to();if(_.anyOf)for(let N=0;N<_.anyOf.length;N++)_.anyOf[N]={...Q,..._.anyOf[N]};else if(_.oneOf)for(let N=0;N<_.oneOf.length;N++)_.oneOf[N]={...Q,..._.oneOf[N]};else if(_.allOf)for(let N=0;N<_.allOf.length;N++)_.allOf[N]={...Q,..._.allOf[N]};else if(_.not)for(let N=0;N<_.not.length;N++)_.not[N]={...Q,..._.not[N]};j[G]={...Q,...u(Q,X,!1)};break;case"Object":case"Union":j[G]=u(Y,X,!1);break;default:if(Y.items)for(let N=0;N<Y.items.length;N++)Y.items[N]=u(Y.items[N],X,!1);else if(Y.anyOf||Y.oneOf||Y.allOf||Y.not)j[G]=u(Y,X,!1);break}return $},h=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:J=!1,coerce:j=!1,additionalCoerce:G=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;let Y=typeof $==="string"?X[$]:$;if(j)Y=Q2(Y,[{from:A.Number(),to:()=>A.Numeric(),untilObjectFound:!0},{from:A.Boolean(),to:()=>A.BooleanString(),untilObjectFound:!0},...Array.isArray(G)?G:[G]]);if(Y.type==="object"&&"additionalProperties"in Y===!1)Y.additionalProperties=J;const K=(U)=>F0.Clean(Y,U);if(Z){const U={schema:Y,references:"",checkFunc:()=>{},code:"",Check:(w)=>F0.Check(Y,w),Errors:(w)=>F0.Errors(Y,w),Code:()=>"",Clean:K};if(W&&Y.additionalProperties===!1)U.Clean=K;if(Y.config){if(U.config=Y.config,U?.schema?.config)delete U.schema.config}return U.parse=(w)=>{try{return U.Decode(w)}catch(D){throw[...U.Errors(w)].map(r)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(D){const Q=[...B.Errors(w)].map(r);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}const B=J2.Compile(Y,Object.values(X));if(B.Clean=K,Y.config){if(B.config=Y.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(w){throw[...B.Errors(U)].map(r)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){const D=[...B.Errors(U)].map(r);return{success:!1,data:null,error:D[0]?.summary,errors:D}}},B},X1=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:J=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;const j=typeof $==="string"?X[$]:$,G=(K,B)=>{const U=(D)=>F0.Clean(K,D);if(Z)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(D)=>F0.Check(K,D),Errors:(D)=>F0.Errors(K,D),Code:()=>""};const w=J2.Compile(K,B);if(W&&K.additionalProperties===!1)w.Clean=U;return w};if(E0 in j){if("additionalProperties"in j===!1)j.additionalProperties=J;return{200:G(j,Object.values(X))}}const Y={};return Object.keys(j).forEach((K)=>{const B=j[+K];if(typeof B==="string"){if(B in X){const U=X[B];U.type==="object"&&"additionalProperties"in U,Y[+K]=E0 in U?G(U,Object.values(X)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=J;Y[+K]=E0 in B?G(B,Object.values(X)):B}),Y},S3=typeof Bun!=="undefined",q3=S3&&typeof Bun.hash==="function",z0=($)=>{if(q3)return Bun.hash($);let X=9;for(let Z=0;Z<$.length;)X=Math.imul(X^$.charCodeAt(Z++),387420489);return X=X^X>>>9},D0=[{from:A.Object({}),to:()=>A.ObjectString({}),excludeRoot:!0},{from:A.Array(A.Any()),to:()=>A.ArrayString(A.Any())}],Z1=({validator:$,defaultConfig:X={},config:Z,dynamic:W,models:J})=>{let j=h($,{dynamic:W,models:J,additionalProperties:!0,coerce:!0,additionalCoerce:D0});if(l(X))if(j)j.config=O3(j.config,Z);else j=h(A.Cookie({}),{dynamic:W,models:J,additionalProperties:!0}),j.config=X;return j},e=($,X)=>{if(!X)return;if(!Array.isArray(X)){const W=X;if($&&!W.checksum)W.checksum=$;if(W.scope==="scoped")W.scope="local";return W}const Z=[...X];for(let W of Z){if($&&!W.checksum)W.checksum=$;if(W.scope==="scoped")W.scope="local"}return Z},I1=($,X,Z)=>{return{start:x($.start,e(Z,X?.start)),request:x($.request,e(Z,X?.request)),parse:x($.parse,e(Z,X?.parse)),transform:x($.transform,e(Z,X?.transform)),beforeHandle:x($.beforeHandle,e(Z,X?.beforeHandle)),afterHandle:x($.afterHandle,e(Z,X?.afterHandle)),mapResponse:x($.mapResponse,e(Z,X?.mapResponse)),afterResponse:x($.afterResponse,e(Z,X?.afterResponse)),trace:x($.trace,e(Z,X?.trace)),error:x($.error,e(Z,X?.error)),stop:x($.stop,e(Z,X?.stop))}},G2=($,X,{skipIfHasType:Z=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(Z)$.scope??=X;else $.scope=X;return $}for(let W of $)if(Z)W.scope??=X;else W.scope=X;return $},_0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const X=[];for(let Z of $)switch(Z.scope){case"global":case"scoped":X.push({...Z});break}return X},P1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:_0($?.parse),transform:_0($?.transform),beforeHandle:_0($?.beforeHandle),afterHandle:_0($?.afterHandle),mapResponse:_0($?.mapResponse),afterResponse:_0($?.afterResponse),error:_0($?.error),trace:_0($?.trace)}},Y0={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},W1=Object.fromEntries(Object.entries(Y0).map(([$,X])=>[X,$])),W2=new TextEncoder,b0=async($,X)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(X===null)throw new TypeError("Secret key must be provided.");const Z=await crypto.subtle.importKey("raw",W2.encode(X),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),W=await crypto.subtle.sign("HMAC",Z,W2.encode($));return $+"."+L3(Buffer.from(W).toString("base64"))},z1=async($,X)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(X===null)throw new TypeError("Secret key must be provided.");const Z=$.slice(0,$.lastIndexOf("."));return await b0(Z,X)===$?Z:!1},Y2=($,X)=>{if(!$||typeof $!=="object"||!X)return;for(let[Z,W]of Object.entries(X)){if(Z in C3||!(Z in $))continue;const J=$[Z];if(typeof J==="function")J(W),delete X[Z]}},B2=({globalHook:$,localHook:X})=>(Z)=>(W,J)=>{if(typeof W==="function")W={fn:W};if("fn"in W||Array.isArray(W)){if(!X[Z])X[Z]=[];if(typeof X[Z]==="function")X[Z]=[X[Z]];if(Array.isArray(W))X[Z]=X[Z].concat(W);else X[Z].push(W);return}const{insert:j="after",stack:G="local"}=W;if(typeof J==="function")J={fn:J};if(G==="global")if(!Array.isArray(J))if(j==="before")$[Z].unshift(J);else $[Z].push(J);else if(j==="before")$[Z]=J.concat($[Z]);else $[Z]=$[Z].concat(J);else{if(!X[Z])X[Z]=[];if(typeof X[Z]==="function")X[Z]=[X[Z]];if(!Array.isArray(J))if(j==="before")X[Z].unshift(J);else X[Z].push(J);else if(j==="before")X[Z]=J.concat(X[Z]);else X[Z]=X[Z].concat(J)}},T3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;const X=Number($);if(Number.isNaN(X))return null;return X}if($.length===16){if($.trim().length===0)return null;const X=Number($);if(Number.isNaN(X)||X.toString()!==$)return null;return X}return null},J1=($)=>T3($)!==null;class V1{$;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($,X){return(this.root??Promise.resolve()).then($,X)}}var i=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const X=[];for(let Z of $)if(typeof Z==="function")X.push({fn:Z});else if("fn"in Z)X.push(Z);return X},K2=($)=>{return{...$,start:i($?.start),request:i($?.request),parse:i($?.parse),transform:i($?.transform),beforeHandle:i($?.beforeHandle),afterHandle:i($?.afterHandle),mapResponse:i($?.mapResponse),afterResponse:i($?.afterResponse),trace:i($?.trace),error:i($?.error),stop:i($?.stop)}},O1=($)=>{return{...$,start:$.start?.map((X)=>X.fn),request:$.request?.map((X)=>X.fn),parse:$.parse?.map((X)=>X.fn),transform:$.transform?.map((X)=>X.fn),beforeHandle:$.beforeHandle?.map((X)=>X.fn),afterHandle:$.afterHandle?.map((X)=>X.fn),afterResponse:$.afterResponse?.map((X)=>X.fn),mapResponse:$.mapResponse?.map((X)=>X.fn),trace:$.trace?.map((X)=>X.fn),error:$.error?.map((X)=>X.fn),stop:$.stop?.map((X)=>X.fn)}},m0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),d0=($,X=302)=>Response.redirect($,X),H3=Symbol("ElysiaFormData"),N0=Symbol("ElysiaRequestId"),M0=($)=>{const X=new FormData;for(let[Z,W]of Object.entries($)){if(Array.isArray(W)){for(let J of W){if(W instanceof File)X.append(Z,W,W.name);X.append(Z,J)}continue}if(W instanceof File)X.append(Z,W,W.name);X.append(Z,W)}return X},j1=()=>crypto.getRandomValues(new Uint32Array(1))[0],Q1=($)=>{const X=[];for(let Z=0;Z<$.length;Z++){const W=$[Z];if(W.checksum){if(X.includes(W.checksum))$.splice(Z,1),Z--;X.push(W.checksum)}}return $},k=($,X="scoped")=>{if(X==="scoped"){for(let Z of $)if("scope"in Z&&Z.scope==="local")Z.scope="scoped";return}for(let Z of $)if("scope"in Z)Z.scope="global"};var U2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,I0=Symbol("ElysiaErrorCode"),m=Symbol("ElysiaResponse"),p0=(U2?.NODE_ENV??U2?.ENV)==="production",A1=($,X)=>{const Z=X??($ in W1?W1[$]:$);return{[m]:Y0[$]??$,response:Z,_type:void 0,error:new Error(Z)}};class G1 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class P0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class Y1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,X){super(X??`"${$}" has invalid cookie signature`);this.key=$}}var r=($)=>{const{message:X,path:Z,value:W,type:J}=$,j=Z.slice(1).replaceAll("/","."),G=Z==="";switch(J){case 42:return{...$,summary:G?"Value should not be provided":`Property '${j}' should not be provided`};case 45:return{...$,summary:G?"Value is missing":`Property '${j}' is missing`};case 50:const Y=X.indexOf("'"),K=X.slice(Y+1,X.indexOf("'",Y+1));return{...$,summary:G?"Value should be an email":`Property '${j}' should be ${K}`};case 54:return{...$,summary:`${X.slice(0,9)} property '${j}' to be ${X.slice(8)} but found: ${W}`};case 62:const B=$.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...$,summary:G?`Value should be one of ${B}`:`Property '${j}' should be one of: ${B}`};default:return{summary:X,...$}}};class H extends Error{$;X;Z;code="VALIDATION";status=422;constructor($,X,Z){if(Z&&typeof Z==="object"&&m in Z)Z=Z.response;const W=p0?void 0:("Errors"in X)?X.Errors(Z).First():c0.Errors(X,Z).First(),J=W?.schema.error!==void 0?typeof W.schema.error==="function"?W.schema.error({type:$,validator:X,value:Z,get errors(){return[...X.Errors(Z)].map(r)}}):W.schema.error:void 0,j=W?.path||"root";let G="";if(J!==void 0)G=typeof J==="object"?JSON.stringify(J):J+"";else if(p0)G=JSON.stringify({type:"validation",on:$,summary:r(W).summary,message:W?.message,found:Z});else{const Y=X?.schema??X,K="Errors"in X?[...X.Errors(Z)].map(r):[...c0.Errors(X,Z)].map(r);let B;try{B=c0.Create(Y)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}G=JSON.stringify({type:"validation",on:$,summary:K[0]?.summary,property:j,message:W?.message,expected:B,found:Z,errors:K},null,2)}super(G);this.type=$;this.validator=X;this.value=Z;Object.setPrototypeOf(this,H.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(r):[...c0.Errors(this.validator,this.value)].map(r)}static simplifyModel($){const X="schema"in $?$.schema:$;try{return c0.Create(X)}catch{return X}}get model(){return H.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var C1={open($){$.data.open?.($)},message($,X){$.data.message?.($,X)},drain($){$.data.drain?.($)},close($,X,Z){$.data.close?.($,X,Z)}};class x0{$;X;validator;_validator;constructor($,X){this.raw=$;this.data=X;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=j1().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,X=void 0,Z)=>{if(this.validator?.Check(X)===!1)throw new H("message",this.validator,X);if(typeof X==="object")X=JSON.stringify(X);return this.raw.publish($,X,Z),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new H("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 S1="1.1.0";var q2=t0(L1(),1),L2=t0(o0(),1);import{Value as n0} from"@sinclair/typebox/value";var i0=Symbol("ElysiaTrace"),B0=()=>{const{promise:$,resolve:X}=Promise.withResolvers(),{promise:Z,resolve:W}=Promise.withResolvers(),{promise:J,resolve:j}=Promise.withResolvers(),G=[],Y=[];return[(K)=>{if(K)G.push(K);return $},(K)=>{const B=[],U=[];let w=null;for(let Q=0;Q<(K.total??0);Q++){const{promise:_,resolve:N}=Promise.withResolvers(),{promise:M,resolve:P}=Promise.withResolvers(),{promise:V,resolve:O}=Promise.withResolvers(),q=[],L=[];B.push((E)=>{if(E)q.push(E);return _}),U.push((E)=>{const v={...E,end:M,error:V,index:Q,onStop(R){if(R)L.push(R);return M}};N(v);for(let R=0;R<q.length;R++)q[R](v);return(R=null)=>{const U0=performance.now();if(R)w=R;const C0={end:U0,error:R,get elapsed(){return U0-E.begin}};for(let b=0;b<L.length;b++)L[b](C0);P(U0),O(R)}})}const D={...K,end:Z,error:J,onEvent(Q){for(let _=0;_<B.length;_++)B[_](Q)},onStop(Q){if(Q)Y.push(Q);return Z}};X(D);for(let Q=0;Q<G.length;Q++)G[Q](D);return{resolveChild:U,resolve(Q=null){const _=performance.now();if(!Q&&w)Q=w;const N={end:_,error:Q,get elapsed(){return _-K.begin}};for(let M=0;M<Y.length;M++)Y[M](N);W(_),j(Q)}}}]},S2=($)=>{return(X)=>{const[Z,W]=B0(),[J,j]=B0(),[G,Y]=B0(),[K,B]=B0(),[U,w]=B0(),[D,Q]=B0(),[_,N]=B0(),[M,P]=B0(),[V,O]=B0();return $({id:X[N0],context:X,set:X.set,onRequest:Z,onParse:J,onTransform:G,onBeforeHandle:K,onHandle:U,onAfterHandle:D,onMapResponse:M,onAfterResponse:V,onError:_}),{request:W,parse:j,transform:Y,beforeHandle:B,handle:w,afterHandle:Q,error:N,mapResponse:P,afterResponse:O}}};var f3=(new Headers()).toJSON,T2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},K0=($)=>{if(!$)return!1;const X=$?.schema;return!!X&&T2.optional in X},$0=($)=>{if(!$)return!1;const X=$?.schema??$;if(X.anyOf)return X.anyOf.some($0);if(X.someOf)return X.someOf.some($0);if(X.allOf)return X.allOf.some($0);if(X.not)return X.not.some($0);if(X.type==="object"){const Z=X.properties;if("additionalProperties"in X)return X.additionalProperties;for(let W of Object.keys(Z)){const J=Z[W];if(J.type==="object"){if($0(J))return!0}else if(J.anyOf){for(let j=0;j<J.anyOf.length;j++)if($0(J.anyOf[j]))return!0}return J.additionalProperties}return!1}return!1},H1=({context:$="c",trace:X,addFn:Z})=>{if(!X.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let W=0;W<X.length;W++)Z(`let report${W}, reportChild${W}, reportErr${W}, reportErrChild${W}; let trace${W} = ${$}[ELYSIA_TRACE]?.[${W}] ?? trace[${W}](${$});\n`);return(W,{name:J,total:j=0}={})=>{if(!J)J="anonymous";const G=W==="error"?"reportErr":"report";for(let Y=0;Y<X.length;Y++)Z(`\n${G}${Y} = trace${Y}.${W}({id,event: '${W}',name: '${J}',begin: performance.now(),total: ${j}})\n`);return{resolve(){for(let Y=0;Y<X.length;Y++)Z(`\n${G}${Y}.resolve()\n`)},resolveChild(Y){for(let K=0;K<X.length;K++)Z(`${G}Child${K} = ${G}${K}.resolveChild?.shift()?.({id,event: '${W}',name: '${Y}',begin: performance.now()})\n`);return(K)=>{for(let B=0;B<X.length;B++)if(K)Z(`
7
+ */var U1=s2,w1=a2;var r2=Object.prototype.toString,t0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var t1=G1(r0(),1);class Q0{$;X;Z;constructor($,X,Z={}){this.name=$;this.jar=X;this.initial=Z}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 partitioned(){return this.cookie.partitioned}set partitioned($){this.cookie.partitioned=$}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 n1=($,X,Z)=>{if(!$.cookie)$.cookie={};return new Proxy(X,{get(W,J){if(J in X)return new Q0(J,$.cookie,Object.assign({},Z??{},X[J]));return new Q0(J,$.cookie,Object.assign({},Z))}})},s0=async($,X,{secrets:Z,sign:W,...J}={})=>{if(!X)return n1($,{},J);const j=typeof Z==="string";if(W&&W!==!0&&!Array.isArray(W))W=[W];const G={},Y=U1(X);for(let[K,B]of Object.entries(Y)){let U=t1.default(B);if(W===!0||W?.includes(K)){if(!Z)throw new Error("No secret is provided to cookie plugin");if(j){const w=await F1(U,Z);if(w===!1)throw new k0(K);U=w}else{let w=!0;for(let D=0;D<Z.length;D++){const Q=await F1(U,Z[D]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new k0(K)}}G[K]={value:U}}return n1($,G,J)};var r1="toJSON"in new Headers,p=($)=>{if(!$)return!1;for(let X in $)return!0;return!1},v0=($,X)=>{const Z=$.size;if(!X&&Z||Z&&X&&X.status!==206&&X.status!==304&&X.status!==412&&X.status!==416){if(X){if(X.headers instanceof Headers){if(r1)X.headers=X.headers.toJSON();else for(let[W,J]of X.headers.entries())if(W in X.headers)X.headers[W]=J}return new Response($,{status:X.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${Z-1}/${Z}`},X.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${Z-1}/${Z}`}})}return new Response($)},s1=($,X)=>{if(!$)return $;$.delete("set-cookie");for(let Z=0;Z<X.length;Z++){const W=X[Z].indexOf("=");$.append("set-cookie",`${X[Z].slice(0,W)}=${X[Z].slice(W+1)||""}`)}return $},a1=($)=>{if(!$||!p($))return;const X=[];for(let[Z,W]of Object.entries($)){if(!Z||!W)continue;const J=W.value;if(J===void 0||J===null)continue;X.push(w1(Z,typeof J==="object"?JSON.stringify(J):J+"",W))}if(X.length===0)return;if(X.length===1)return X[0];return X},u0=($,X,Z)=>{let W=!1;return new Response(new ReadableStream({async start(J){Z?.signal.addEventListener("abort",()=>{W=!0;try{J.close()}catch{}});for await(let j of $){if(W)break;if(!j)continue;J.enqueue(Buffer.from(j.toString())),await new Promise((G)=>setTimeout(()=>G(),0))}try{J.close()}catch{}}}),{...X,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8"}})},y=($,X,Z)=>{if(p(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=G0[X.status];if(X.redirect){if(X.headers.Location=X.redirect,!X.status||X.status<300||X.status>=400)X.status=302}if(X.cookie&&p(X.cookie)){const W=a1(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=s1(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return v0($,X);case"Array":return Response.json($,X);case"Object":const W=$[m];if(W)return X.status=W,y($.response,X,Z);for(let j in Object.values($))switch(j?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(D0($));default:break}return Response.json($,X);case"ReadableStream":if(!X.headers["content-type"]?.startsWith("text/event-stream"))X.headers["content-type"]="text/event-stream; charset=utf-8";return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,X);case void 0:if(!$)return new Response("",X);return Response.json($,X);case"Response":let J=!1;if(X.headers instanceof Headers)for(let j of X.headers.keys())if(j==="set-cookie"){if(J)continue;J=!0;for(let G of X.headers.getSetCookie())$.headers.append("set-cookie",G)}else $.headers.append(j,X.headers?.get(j)??"");else for(let j in X.headers)$.headers.append(j,X.headers[j]);if($.status!==X.status)X.status=$.status;return $;case"Error":return j0($,X);case"Promise":return $.then((j)=>y(j,X));case"Function":return y($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"Cookie":if($ instanceof Q0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response){let j=!1;if(X.headers instanceof Headers)for(let G of X.headers.keys())if(G==="set-cookie"){if(j)continue;j=!0;for(let Y of X.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(G,X.headers?.get(G)??"");else for(let G in X.headers)$.headers.append(G,X.headers[G]);if(r1)X.headers=$.headers.toJSON();else for(let[G,Y]of $.headers.entries())if(G in X.headers)X.headers[G]=Y;return $}if($ instanceof Promise)return $.then((j)=>y(j,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return u0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($,X)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return v0($,X);case"Array":return Response.json($);case"Object":const W=$[m];if(W)return X.status=W,y($.response,X,Z);for(let J in Object.values($))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(D0($),X);default:break}return Response.json($,X);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 j0($,X);case"Promise":return $.then((J)=>{const j=J0(J,Z);if(j!==void 0)return j;return new Response("")});case"Function":return J0($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof Q0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((J)=>y(J,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return u0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($)}},f=($,X,Z)=>{if($===void 0||$===null)return;if(p(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=G0[X.status];if(X.redirect){if(X.headers.Location=X.redirect,!X.status||X.status<300||X.status>=400)X.status=302}if(X.cookie&&p(X.cookie)){const W=a1(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=s1(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return v0($,X);case"Array":return Response.json($,X);case"Object":const W=$[m];if(W)return X.status=W,f($.response,X,Z);for(let j in Object.values($))switch(j?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(D0($),X);default:break}return Response.json($,X);case"ReadableStream":if(!X.headers["content-type"]?.startsWith("text/event-stream"))X.headers["content-type"]="text/event-stream; charset=utf-8";return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,X);case void 0:if(!$)return;return Response.json($,X);case"Response":let J=!1;if(X.headers instanceof Headers)for(let j of X.headers.keys())if(j==="set-cookie"){if(J)continue;J=!0;for(let G of X.headers.getSetCookie())$.headers.append("set-cookie",G)}else $.headers.append(j,X.headers?.get(j)??"");else for(let j in X.headers)$.headers.append(j,X.headers[j]);if($.status!==X.status)X.status=$.status;return $;case"Promise":return $.then((j)=>{const G=f(j,X);if(G!==void 0)return G});case"Error":return j0($,X);case"Function":return f($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"FormData":return new Response($);case"Cookie":if($ instanceof Q0)return new Response($.value,X);return new Response($?.toString(),X);default:if($ instanceof Response){let j=!1;if(X.headers instanceof Headers)for(let G of X.headers.keys())if(G==="set-cookie"){if(j)continue;j=!0;for(let Y of X.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(G,X.headers?.get(G)??"");else for(let G in X.headers)$.headers.append(G,X.headers[G]);if($.status!==X.status)X.status=$.status;return $}if($ instanceof Promise)return $.then((j)=>f(j,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return u0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($,X)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return v0($,X);case"Array":return Response.json($);case"Object":const W=$[m];if(W)return X.status=W,f($.response,X,Z);for(let J in Object.values($))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(D0($),X);default:break}return Response.json($,X);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"Promise":return $.then((J)=>{const j=f(J,X);if(j!==void 0)return j});case"Error":return j0($,X);case"Function":return J0($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof Q0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((J)=>f(J,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return u0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($)}},J0=($,X)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return v0($);case"Array":return Response.json($);case"Object":if($[m])return y($.response,{status:$[m],headers:{}});$:for(let Z of Object.values($))switch(Z?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(D0($));case"Object":break $;default:break}return Response.json($);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{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 j0($);case"Promise":return $.then((Z)=>J0(Z,X));case"Function":return J0($(),X);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((Z)=>J0(Z,X));if($ instanceof Error)return j0($);if(typeof $?.next==="function")return u0($,void 0,X);if("toResponse"in $)return J0($.toResponse());if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},j0=($,X)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:X?.status!==200?X?.status??500:500,headers:X?.headers});var U3=function($){let X=$;while(X.endsWith("="))X=X.slice(0,-1);return X},a0=($,X)=>{const Z=new URL($);return Z.pathname=X,Z.toString()},j3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||p(Object.getPrototypeOf($)),D1=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,X,{skipKeys:Z,override:W=!0}={})=>{if(!D1($)||!D1(X))return $;for(let[J,j]of Object.entries(X)){if(Z?.includes(J))continue;if(!D1(j)||!(J in $)||j3(j)){if(W||!(J in $))$[J]=j;continue}$[J]=d($[J],j,{skipKeys:Z,override:W})}return $},Q3=($,X)=>{const{properties:Z,...W}=$??{},{properties:J,...j}=X??{};return d(W,j)},x=($=[],X=[])=>{if(!$)return[];if(!X)return $;const Z=[],W=[];if(!Array.isArray($))$=[$];if(!Array.isArray(X))X=[X];for(let J of $)if(Z.push(J),J.checksum)W.push(J.checksum);for(let J of X)if(!W.includes(J.checksum))Z.push(J);return Z},G3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],Y3=G3.reduce(($,X)=>($[X]=!0,$),{}),X2=($,X)=>{const Z=(W)=>typeof W==="object"&&Object.keys(W).every(X1);if(Z($)&&Z(X))return{...$,...X};return X??$},E0=($,X)=>{return{body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,response:X2($?.response,X?.response)}},c=($,X)=>{return{...$,...X,body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,response:X2($?.response,X?.response),type:$?.type||X?.type,detail:d(X?.detail??{},$?.detail??{}),parse:x($?.parse,X?.parse),transform:x($?.transform,X?.transform),beforeHandle:x($?.beforeHandle,X?.beforeHandle),afterHandle:x($?.afterHandle,X?.afterHandle),mapResponse:x($?.mapResponse,X?.mapResponse),afterResponse:x($?.afterResponse,X?.afterResponse),trace:x($?.trace,X?.trace),error:x($?.error,X?.error)}},Z2=($,X,Z=!0)=>{if(!Array.isArray(X))return u($,X,Z);for(let W of X)$=u($,W,Z);return $},u=($,X,Z=!0)=>{if(!$)return $;if(X.untilObjectFound&&!Z&&$.type==="object")return $;const W=X.from[H0];if($.oneOf){for(let G=0;G<$.oneOf.length;G++)$.oneOf[G]=u($.oneOf[G],X,Z);return $}if($.anyOf){for(let G=0;G<$.anyOf.length;G++)$.anyOf[G]=u($.anyOf[G],X,Z);return $}if($.allOf){for(let G=0;G<$.allOf.length;G++)$.allOf[G]=u($.allOf[G],X,Z);return $}if($.not){for(let G=0;G<$.not.length;G++)$.not[G]=u($.not[G],X,Z);return $}const J=Z&&!!X.excludeRoot;if($[H0]===W){const{anyOf:G,oneOf:Y,allOf:K,not:B,properties:U,items:w,...D}=$,Q=X.to();let _;const P=(M)=>{if(U&&M.type==="object"){const V={};for(let[O,q]of Object.entries(U))V[O]=u(q,X,!1);return{...D,...M,properties:V}}if(w&&M.type==="array")return{...D,...M,items:u(w,X,!1)};const I={...D,...M};if(delete I.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")_=A.ObjectString(U,D),I.default=JSON.stringify(_0.Create(A.Object(U))),I.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")_=A.ArrayString(w,D),I.default=JSON.stringify(_0.Create(A.Array(w))),I.items=w;return I};if(J){if(U){const M={};for(let[I,V]of Object.entries(U))M[I]=u(V,X,!1);return{...D,properties:M}}else if(w?.map)return{...D,items:w.map((M)=>u(M,X,!1))};return D}if(Q.anyOf)for(let M=0;M<Q.anyOf.length;M++)Q.anyOf[M]=P(Q.anyOf[M]);else if(Q.oneOf)for(let M=0;M<Q.oneOf.length;M++)Q.oneOf[M]=P(Q.oneOf[M]);else if(Q.allOf)for(let M=0;M<Q.allOf.length;M++)Q.allOf[M]=P(Q.allOf[M]);else if(Q.not)for(let M=0;M<Q.not.length;M++)Q.not[M]=P(Q.not[M]);if(_)Q[o1]=_[o1];if(Q.anyOf||Q.oneOf||Q.allOf||Q.not)return Q;if(U){const M={};for(let[I,V]of Object.entries(U))M[I]=u(V,X,!1);return{...D,...Q,properties:M}}else if(w?.map)return{...D,...Q,items:w.map((M)=>u(M,X,!1))};return{...D,...Q}}const j=$?.properties;if(j)for(let[G,Y]of Object.entries(j))switch(Y[H0]){case W:const{anyOf:K,oneOf:B,allOf:U,not:w,type:D,...Q}=Y,_=X.to();if(_.anyOf)for(let P=0;P<_.anyOf.length;P++)_.anyOf[P]={...Q,..._.anyOf[P]};else if(_.oneOf)for(let P=0;P<_.oneOf.length;P++)_.oneOf[P]={...Q,..._.oneOf[P]};else if(_.allOf)for(let P=0;P<_.allOf.length;P++)_.allOf[P]={...Q,..._.allOf[P]};else if(_.not)for(let P=0;P<_.not.length;P++)_.not[P]={...Q,..._.not[P]};j[G]={...Q,...u(Q,X,!1)};break;case"Object":case"Union":j[G]=u(Y,X,!1);break;default:if(Y.items)for(let P=0;P<Y.items.length;P++)Y.items[P]=u(Y.items[P],X,!1);else if(Y.anyOf||Y.oneOf||Y.allOf||Y.not)j[G]=u(Y,X,!1);break}return $},h=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:J=!1,coerce:j=!1,additionalCoerce:G=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;let Y=typeof $==="string"?X[$]:$;if(j)Y=Z2(Y,[{from:A.Number(),to:()=>A.Numeric(),untilObjectFound:!0},{from:A.Boolean(),to:()=>A.BooleanString(),untilObjectFound:!0},...Array.isArray(G)?G:[G]]);if(Y.type==="object"&&"additionalProperties"in Y===!1)Y.additionalProperties=J;const K=(U)=>_0.Clean(Y,U);if(Z){const U={schema:Y,references:"",checkFunc:()=>{},code:"",Check:(w)=>_0.Check(Y,w),Errors:(w)=>_0.Errors(Y,w),Code:()=>"",Clean:K};if(W&&Y.additionalProperties===!1)U.Clean=K;if(Y.config){if(U.config=Y.config,U?.schema?.config)delete U.schema.config}return U.parse=(w)=>{try{return U.Decode(w)}catch(D){throw[...U.Errors(w)].map(r)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(D){const Q=[...B.Errors(w)].map(r);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}const B=$2.Compile(Y,Object.values(X));if(B.Clean=K,Y.config){if(B.config=Y.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(w){throw[...B.Errors(U)].map(r)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){const D=[...B.Errors(U)].map(r);return{success:!1,data:null,error:D[0]?.summary,errors:D}}},B},o0=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:J=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;const j=typeof $==="string"?X[$]:$,G=(K,B)=>{const U=(D)=>_0.Clean(K,D);if(Z)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(D)=>_0.Check(K,D),Errors:(D)=>_0.Errors(K,D),Code:()=>""};const w=$2.Compile(K,B);if(W&&K.additionalProperties===!1)w.Clean=U;return w};if(H0 in j){if("additionalProperties"in j===!1)j.additionalProperties=J;return{200:G(j,Object.values(X))}}const Y={};return Object.keys(j).forEach((K)=>{const B=j[+K];if(typeof B==="string"){if(B in X){const U=X[B];U.type==="object"&&"additionalProperties"in U,Y[+K]=H0 in U?G(U,Object.values(X)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=J;Y[+K]=H0 in B?G(B,Object.values(X)):B}),Y},B3=typeof Bun!=="undefined",K3=B3&&typeof Bun.hash==="function",M0=($)=>{if(K3)return Bun.hash($);let X=9;for(let Z=0;Z<$.length;)X=Math.imul(X^$.charCodeAt(Z++),387420489);return X=X^X>>>9},F0=[{from:A.Object({}),to:()=>A.ObjectString({}),excludeRoot:!0},{from:A.Array(A.Any()),to:()=>A.ArrayString(A.Any())}],e0=({validator:$,defaultConfig:X={},config:Z,dynamic:W,models:J})=>{let j=h($,{dynamic:W,models:J,additionalProperties:!0,coerce:!0,additionalCoerce:F0});if(p(X))if(j)j.config=Q3(j.config,Z);else j=h(A.Cookie({}),{dynamic:W,models:J,additionalProperties:!0}),j.config=X;return j},e=($,X)=>{if(!X)return;if(!Array.isArray(X)){const W=X;if($&&!W.checksum)W.checksum=$;if(W.scope==="scoped")W.scope="local";return W}const Z=[...X];for(let W of Z){if($&&!W.checksum)W.checksum=$;if(W.scope==="scoped")W.scope="local"}return Z},M1=($,X,Z)=>{return{start:x($.start,e(Z,X?.start)),request:x($.request,e(Z,X?.request)),parse:x($.parse,e(Z,X?.parse)),transform:x($.transform,e(Z,X?.transform)),beforeHandle:x($.beforeHandle,e(Z,X?.beforeHandle)),afterHandle:x($.afterHandle,e(Z,X?.afterHandle)),mapResponse:x($.mapResponse,e(Z,X?.mapResponse)),afterResponse:x($.afterResponse,e(Z,X?.afterResponse)),trace:x($.trace,e(Z,X?.trace)),error:x($.error,e(Z,X?.error)),stop:x($.stop,e(Z,X?.stop))}},W2=($,X,{skipIfHasType:Z=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(Z)$.scope??=X;else $.scope=X;return $}for(let W of $)if(Z)W.scope??=X;else W.scope=X;return $},w0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const X=[];for(let Z of $)switch(Z.scope){case"global":case"scoped":X.push({...Z});break}return X},z1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:w0($?.parse),transform:w0($?.transform),beforeHandle:w0($?.beforeHandle),afterHandle:w0($?.afterHandle),mapResponse:w0($?.mapResponse),afterResponse:w0($?.afterResponse),error:w0($?.error),trace:w0($?.trace)}},G0={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},$1=Object.fromEntries(Object.entries(G0).map(([$,X])=>[X,$])),e1=new TextEncoder,R0=async($,X)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(X===null)throw new TypeError("Secret key must be provided.");const Z=await crypto.subtle.importKey("raw",e1.encode(X),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),W=await crypto.subtle.sign("HMAC",Z,e1.encode($));return $+"."+U3(Buffer.from(W).toString("base64"))},F1=async($,X)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(X===null)throw new TypeError("Secret key must be provided.");const Z=$.slice(0,$.lastIndexOf("."));return await R0(Z,X)===$?Z:!1},J2=($,X)=>{if(!$||typeof $!=="object"||!X)return;for(let[Z,W]of Object.entries(X)){if(Z in Y3||!(Z in $))continue;const J=$[Z];if(typeof J==="function")J(W),delete X[Z]}},j2=({globalHook:$,localHook:X})=>(Z)=>(W,J)=>{if(typeof W==="function")W={fn:W};if("fn"in W||Array.isArray(W)){if(!X[Z])X[Z]=[];if(typeof X[Z]==="function")X[Z]=[X[Z]];if(Array.isArray(W))X[Z]=X[Z].concat(W);else X[Z].push(W);return}const{insert:j="after",stack:G="local"}=W;if(typeof J==="function")J={fn:J};if(G==="global")if(!Array.isArray(J))if(j==="before")$[Z].unshift(J);else $[Z].push(J);else if(j==="before")$[Z]=J.concat($[Z]);else $[Z]=$[Z].concat(J);else{if(!X[Z])X[Z]=[];if(typeof X[Z]==="function")X[Z]=[X[Z]];if(!Array.isArray(J))if(j==="before")X[Z].unshift(J);else X[Z].push(J);else if(j==="before")X[Z]=J.concat(X[Z]);else X[Z]=X[Z].concat(J)}},w3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;const X=Number($);if(Number.isNaN(X))return null;return X}if($.length===16){if($.trim().length===0)return null;const X=Number($);if(Number.isNaN(X)||X.toString()!==$)return null;return X}return null},X1=($)=>w3($)!==null;class P1{$;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($,X){return(this.root??Promise.resolve()).then($,X)}}var i=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const X=[];for(let Z of $)if(typeof Z==="function")X.push({fn:Z});else if("fn"in Z)X.push(Z);return X},Q2=($)=>{return{...$,start:i($?.start),request:i($?.request),parse:i($?.parse),transform:i($?.transform),beforeHandle:i($?.beforeHandle),afterHandle:i($?.afterHandle),mapResponse:i($?.mapResponse),afterResponse:i($?.afterResponse),trace:i($?.trace),error:i($?.error),stop:i($?.stop)}},N1=($)=>{return{...$,start:$.start?.map((X)=>X.fn),request:$.request?.map((X)=>X.fn),parse:$.parse?.map((X)=>X.fn),transform:$.transform?.map((X)=>X.fn),beforeHandle:$.beforeHandle?.map((X)=>X.fn),afterHandle:$.afterHandle?.map((X)=>X.fn),afterResponse:$.afterResponse?.map((X)=>X.fn),mapResponse:$.mapResponse?.map((X)=>X.fn),trace:$.trace?.map((X)=>X.fn),error:$.error?.map((X)=>X.fn),stop:$.stop?.map((X)=>X.fn)}},h0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),m0=($,X=302)=>Response.redirect($,X),_3=Symbol("ElysiaFormData"),z0=Symbol("ElysiaRequestId"),D0=($)=>{const X=new FormData;for(let[Z,W]of Object.entries($)){if(Array.isArray(W)){for(let J of W){if(W instanceof File)X.append(Z,W,W.name);X.append(Z,J)}continue}if(W instanceof File)X.append(Z,W,W.name);X.append(Z,W)}return X},Z1=()=>crypto.getRandomValues(new Uint32Array(1))[0],W1=($)=>{const X=[];for(let Z=0;Z<$.length;Z++){const W=$[Z];if(W.checksum){if(X.includes(W.checksum))$.splice(Z,1),Z--;X.push(W.checksum)}}return $},k=($,X="scoped")=>{if(X==="scoped"){for(let Z of $)if("scope"in Z&&Z.scope==="local")Z.scope="scoped";return}for(let Z of $)if("scope"in Z)Z.scope="global"};var G2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,P0=Symbol("ElysiaErrorCode"),m=Symbol("ElysiaResponse"),c0=(G2?.NODE_ENV??G2?.ENV)==="production",I1=($,X)=>{const Z=X??($ in $1?$1[$]:$);return{[m]:G0[$]??$,response:Z,_type:void 0,error:new Error(Z)}};class J1 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class N0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class j1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class k0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,X){super(X??`"${$}" has invalid cookie signature`);this.key=$}}var r=($)=>{const{message:X,path:Z,value:W,type:J}=$,j=Z.slice(1).replaceAll("/","."),G=Z==="";switch(J){case 42:return{...$,summary:G?"Value should not be provided":`Property '${j}' should not be provided`};case 45:return{...$,summary:G?"Value is missing":`Property '${j}' is missing`};case 50:const Y=X.indexOf("'"),K=X.slice(Y+1,X.indexOf("'",Y+1));return{...$,summary:G?"Value should be an email":`Property '${j}' should be ${K}`};case 54:return{...$,summary:`${X.slice(0,9)} property '${j}' to be ${X.slice(8)} but found: ${W}`};case 62:const B=$.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...$,summary:G?`Value should be one of ${B}`:`Property '${j}' should be one of: ${B}`};default:return{summary:X,...$}}};class H extends Error{$;X;Z;code="VALIDATION";status=422;constructor($,X,Z){if(Z&&typeof Z==="object"&&m in Z)Z=Z.response;const W=c0?void 0:("Errors"in X)?X.Errors(Z).First():d0.Errors(X,Z).First(),J=W?.schema.error!==void 0?typeof W.schema.error==="function"?W.schema.error({type:$,validator:X,value:Z,get errors(){return[...X.Errors(Z)].map(r)}}):W.schema.error:void 0,j=W?.path||"root";let G="";if(J!==void 0)G=typeof J==="object"?JSON.stringify(J):J+"";else if(c0)G=JSON.stringify({type:"validation",on:$,summary:r(W).summary,message:W?.message,found:Z});else{const Y=X?.schema??X,K="Errors"in X?[...X.Errors(Z)].map(r):[...d0.Errors(X,Z)].map(r);let B;try{B=d0.Create(Y)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}G=JSON.stringify({type:"validation",on:$,summary:K[0]?.summary,property:j,message:W?.message,expected:B,found:Z,errors:K},null,2)}super(G);this.type=$;this.validator=X;this.value=Z;Object.setPrototypeOf(this,H.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(r):[...d0.Errors(this.validator,this.value)].map(r)}static simplifyModel($){const X="schema"in $?$.schema:$;try{return d0.Create(X)}catch{return X}}get model(){return H.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var V1={open($){$.data.open?.($)},message($,X){$.data.message?.($,X)},drain($){$.data.drain?.($)},close($,X,Z){$.data.close?.($,X,Z)}};class b0{$;X;validator;_validator;constructor($,X){this.raw=$;this.data=X;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=Z1().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,X=void 0,Z)=>{if(this.validator?.Check(X)===!1)throw new H("message",this.validator,X);if(typeof X==="object")X=JSON.stringify(X);return this.raw.publish($,X,Z),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new H("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 O1="1.1.1";import{Value as p0} from"@sinclair/typebox/value";var A1=G1(r0(),1);function x0($){const X={};if(typeof $!=="string")return X;const Z=$.length;let W="",J="",j=-1,G=-1,Y=!1,K=!1,B=!1,U=!1,w=!1,D=0;for(let Q=0;Q<Z+1;Q++)if(D=Q!==Z?$.charCodeAt(Q):38,D===38){if(w=G>j,!w)G=Q;if(W=$.slice(j+1,G),w||W.length>0){if(B)W=W.replace(Y2," ");if(Y)W=A1.default(W)||W;if(!X[W]){if(w){if(J=$.slice(G+1,Q),U)J=J.replace(Y2," ");if(K)J=A1.default(J)||J}X[W]=J}}J="",j=Q,G=Q,Y=!1,K=!1,B=!1,U=!1}else if(D===61)if(G<=j)G=Q;else K=!0;else if(D===43)if(G>j)U=!0;else B=!0;else if(D===37)if(G>j)K=!0;else Y=!0;return X}var Y2=/\+/g;var K2=G1(r0(),1);var l0=Symbol("ElysiaTrace"),Y0=()=>{const{promise:$,resolve:X}=Promise.withResolvers(),{promise:Z,resolve:W}=Promise.withResolvers(),{promise:J,resolve:j}=Promise.withResolvers(),G=[],Y=[];return[(K)=>{if(K)G.push(K);return $},(K)=>{const B=[],U=[];let w=null;for(let Q=0;Q<(K.total??0);Q++){const{promise:_,resolve:P}=Promise.withResolvers(),{promise:M,resolve:I}=Promise.withResolvers(),{promise:V,resolve:O}=Promise.withResolvers(),q=[],L=[];B.push((E)=>{if(E)q.push(E);return _}),U.push((E)=>{const v={...E,end:M,error:V,index:Q,onStop(R){if(R)L.push(R);return M}};P(v);for(let R=0;R<q.length;R++)q[R](v);return(R=null)=>{const K0=performance.now();if(R)w=R;const A0={end:K0,error:R,get elapsed(){return K0-E.begin}};for(let b=0;b<L.length;b++)L[b](A0);I(K0),O(R)}})}const D={...K,end:Z,error:J,onEvent(Q){for(let _=0;_<B.length;_++)B[_](Q)},onStop(Q){if(Q)Y.push(Q);return Z}};X(D);for(let Q=0;Q<G.length;Q++)G[Q](D);return{resolveChild:U,resolve(Q=null){const _=performance.now();if(!Q&&w)Q=w;const P={end:_,error:Q,get elapsed(){return _-K.begin}};for(let M=0;M<Y.length;M++)Y[M](P);W(_),j(Q)}}}]},B2=($)=>{return(X)=>{const[Z,W]=Y0(),[J,j]=Y0(),[G,Y]=Y0(),[K,B]=Y0(),[U,w]=Y0(),[D,Q]=Y0(),[_,P]=Y0(),[M,I]=Y0(),[V,O]=Y0();return $({id:X[z0],context:X,set:X.set,onRequest:Z,onParse:J,onTransform:G,onBeforeHandle:K,onHandle:U,onAfterHandle:D,onMapResponse:M,onAfterResponse:V,onError:_}),{request:W,parse:j,transform:Y,beforeHandle:B,handle:w,afterHandle:Q,error:P,mapResponse:I,afterResponse:O}}};var D3=(new Headers()).toJSON,U2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},B0=($)=>{if(!$)return!1;const X=$?.schema;return!!X&&U2.optional in X},$0=($)=>{if(!$)return!1;const X=$?.schema??$;if(X.anyOf)return X.anyOf.some($0);if(X.someOf)return X.someOf.some($0);if(X.allOf)return X.allOf.some($0);if(X.not)return X.not.some($0);if(X.type==="object"){const Z=X.properties;if("additionalProperties"in X)return X.additionalProperties;for(let W of Object.keys(Z)){const J=Z[W];if(J.type==="object"){if($0(J))return!0}else if(J.anyOf){for(let j=0;j<J.anyOf.length;j++)if($0(J.anyOf[j]))return!0}return J.additionalProperties}return!1}return!1},S1=({context:$="c",trace:X,addFn:Z})=>{if(!X.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let W=0;W<X.length;W++)Z(`let report${W}, reportChild${W}, reportErr${W}, reportErrChild${W}; let trace${W} = ${$}[ELYSIA_TRACE]?.[${W}] ?? trace[${W}](${$});\n`);return(W,{name:J,total:j=0}={})=>{if(!J)J="anonymous";const G=W==="error"?"reportErr":"report";for(let Y=0;Y<X.length;Y++)Z(`\n${G}${Y} = trace${Y}.${W}({id,event: '${W}',name: '${J}',begin: performance.now(),total: ${j}})\n`);return{resolve(){for(let Y=0;Y<X.length;Y++)Z(`\n${G}${Y}.resolve()\n`)},resolveChild(Y){for(let K=0;K<X.length;K++)Z(`${G}Child${K} = ${G}${K}.resolveChild?.shift()?.({id,event: '${W}',name: '${Y}',begin: performance.now()})\n`);return(K)=>{for(let B=0;B<X.length;B++)if(K)Z(`
8
8
  if (${K} instanceof Error)
9
9
  ${G}Child${B}?.(${K})
10
10
  else
11
- ${G}Child${B}?.()\n`);else Z(`${G}Child${B}?.()\n`)}}}}},y3=({injectResponse:$="",normalize:X=!1,validator:Z})=>({composeValidation:(W,J=`c.${W}`)=>`c.set.status = 422; throw new ValidationError('${W}', validator.${W}, ${J})`,composeResponseValidation:(W="r")=>{let J="\n"+$+"\n";J+=`if(typeof ${W} === "object" && ${W} && ELYSIA_RESPONSE in ${W}) {
11
+ ${G}Child${B}?.()\n`);else Z(`${G}Child${B}?.()\n`)}}}}},M3=({injectResponse:$="",normalize:X=!1,validator:Z})=>({composeValidation:(W,J=`c.${W}`)=>`c.set.status = 422; throw new ValidationError('${W}', validator.${W}, ${J})`,composeResponseValidation:(W="r")=>{let J="\n"+$+"\n";J+=`if(typeof ${W} === "object" && ${W} && ELYSIA_RESPONSE in ${W}) {
12
12
  c.set.status = ${W}[ELYSIA_RESPONSE]
13
13
  ${W} = ${W}.response
14
14
  }
@@ -23,17 +23,17 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
23
23
  c.set.status = ${j}
24
24
  }
25
25
 
26
- break\n\n`}return J+="\n}\n",J}}),W8=Symbol.for("TypeBox.Kind");var V0=($,X)=>{if(!X)return;if(X.type==="object"){const Z=X.properties;if(!Z)return!1;for(let W of Object.keys(Z)){const J=Z[W];if($ in J)return!0;if(J.type==="object"){if(V0($,J))return!0}else if(J.anyOf){for(let j=0;j<J.anyOf.length;j++)if(V0($,J.anyOf[j]))return!0}}return!1}return $ in X},T1=Symbol.for("TypeBox.Transform"),O0=($)=>{if(!$)return;if($.type==="object"&&$.properties){const X=$.properties;for(let Z of Object.keys(X)){const W=X[Z];if(W.type==="object"){if(O0(W))return!0}else if(W.anyOf){for(let j=0;j<W.anyOf.length;j++)if(O0(W.anyOf[j]))return!0}if(T1 in W)return!0}return!1}return T1 in $||$.properties&&T1 in $.properties},k3=/(?:return|=>) \S+\(/g,A0=($)=>{return($?.fn??$).constructor.name==="AsyncFunction"},g=($)=>{const X=$?.fn??$;if(X.constructor.name==="AsyncFunction")return!0;const Z=X.toString();if(Z.includes("=> response.clone("))return!1;if(Z.includes("await"))return!0;if(Z.includes("async"))return!0;return!!Z.match(k3)};var H2=({app:$,path:X,method:Z,localHook:W,hooks:J,validator:j,handler:G,allowMeta:Y=!1,inference:K})=>{const B=typeof G==="function";if(!B)G=y(G,{headers:$.setHeaders??{}});const U=B?"handler(c)":"handler",w=J.afterResponse.length>0,D=J.trace.length>0;let Q="";if(K=r0(Object.assign(W,{handler:G}),K),K.server)Q+=`\nObject.defineProperty(c, 'server', {
26
+ break\n\n`}return J+="\n}\n",J}}),f8=Symbol.for("TypeBox.Kind");var I0=($,X)=>{if(!X)return;if(X.type==="object"){const Z=X.properties;if(!Z)return!1;for(let W of Object.keys(Z)){const J=Z[W];if($ in J)return!0;if(J.type==="object"){if(I0($,J))return!0}else if(J.anyOf){for(let j=0;j<J.anyOf.length;j++)if(I0($,J.anyOf[j]))return!0}}return!1}return $ in X},C1=Symbol.for("TypeBox.Transform"),V0=($)=>{if(!$)return;if($.type==="object"&&$.properties){const X=$.properties;for(let Z of Object.keys(X)){const W=X[Z];if(W.type==="object"){if(V0(W))return!0}else if(W.anyOf){for(let j=0;j<W.anyOf.length;j++)if(V0(W.anyOf[j]))return!0}if(C1 in W)return!0}return!1}return C1 in $||$.properties&&C1 in $.properties},z3=/(?:return|=>) \S+\(/g,O0=($)=>{return($?.fn??$).constructor.name==="AsyncFunction"},g=($)=>{const X=$?.fn??$;if(X.constructor.name==="AsyncFunction")return!0;const Z=X.toString();if(Z.includes("=> response.clone("))return!1;if(Z.includes("await"))return!0;if(Z.includes("async"))return!0;return!!Z.match(z3)};var w2=({app:$,path:X,method:Z,localHook:W,hooks:J,validator:j,handler:G,allowMeta:Y=!1,inference:K})=>{const B=typeof G==="function";if(!B)G=y(G,{headers:$.setHeaders??{}});const U=B?"handler(c)":"handler",w=J.afterResponse.length>0,D=J.trace.length>0;let Q="";if(K=i0(Object.assign(W,{handler:G}),K),K.server)Q+=`\nObject.defineProperty(c, 'server', {
27
27
  get: function() { return getServer() }
28
- })\n`;if(K.body)Q+="let isParsing = false\n";j.createBody?.(),j.createQuery?.(),j.createHeaders?.(),j.createParams?.(),j.createCookie?.(),j.createResponse?.();const _=K.query||!!j.query,N=Z!=="$INTERNALWS"&&Z!=="GET"&&Z!=="HEAD"&&(K.body||!!j.body||J.parse.length),M=$.setHeaders,P=M&&!!Object.keys(M).length,V=K.headers||j.headers,O=K.cookie||!!j.cookie,q=O?Z1({validator:j.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:j.cookie?.config??{},models:$.definitions.type}):void 0,L=q?.config;let E="";if(L?.sign){if(!L.secrets)throw new Error(`t.Cookie required secret which is not set in (${Z}) ${X}.`);const z=!L.secrets?void 0:typeof L.secrets==="string"?L.secrets:L.secrets[0];if(E+=`const _setCookie = c.set.cookie
28
+ })\n`;if(K.body)Q+="let isParsing = false\n";j.createBody?.(),j.createQuery?.(),j.createHeaders?.(),j.createParams?.(),j.createCookie?.(),j.createResponse?.();const _=K.query||!!j.query,P=Z!=="$INTERNALWS"&&Z!=="GET"&&Z!=="HEAD"&&(K.body||!!j.body||J.parse.length),M=$.setHeaders,I=M&&!!Object.keys(M).length,V=K.headers||j.headers,O=K.cookie||!!j.cookie,q=O?e0({validator:j.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:j.cookie?.config??{},models:$.definitions.type}):void 0,L=q?.config;let E="";if(L?.sign){if(!L.secrets)throw new Error(`t.Cookie required secret which is not set in (${Z}) ${X}.`);const z=!L.secrets?void 0:typeof L.secrets==="string"?L.secrets:L.secrets[0];if(E+=`const _setCookie = c.set.cookie
29
29
  if(_setCookie) {`,L.sign===!0)E+=`for(const [key, cookie] of Object.entries(_setCookie)) {
30
30
  c.set.cookie[key].value = await signCookie(cookie.value, '${z}')
31
- }`;else for(let F of L.sign)E+=`if(_setCookie['${F}']?.value) { c.set.cookie['${F}'].value = await signCookie(_setCookie['${F}'].value, '${z}') }\n`;E+="}\n"}const v=$.config.normalize,{composeValidation:R,composeResponseValidation:U0}=y3({normalize:v,validator:j});if(V)Q+=f3?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
31
+ }`;else for(let F of L.sign)E+=`if(_setCookie['${F}']?.value) { c.set.cookie['${F}'].value = await signCookie(_setCookie['${F}'].value, '${z}') }\n`;E+="}\n"}const v=$.config.normalize,{composeValidation:R,composeResponseValidation:K0}=M3({normalize:v,validator:j});if(V)Q+=D3?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
32
32
  for (const [key, value] of c.request.headers.entries())
33
33
  c.headers[key] = value
34
- `;if(O){const z=(I,C)=>{const S=L?.[I]??C;if(!S)return typeof C==="string"?`${I}: "${C}",`:`${I}: ${C},`;if(typeof S==="string")return`${I}: '${S}',`;if(S instanceof Date)return`${I}: new Date(${S.getTime()}),`;return`${I}: ${S},`},F=L?`{
35
- secrets: ${L.secrets!==void 0?typeof L.secrets==="string"?`'${L.secrets}'`:"["+L.secrets.reduce((I,C)=>I+`'${C}',`,"")+"]":"undefined"},
36
- sign: ${L.sign===!0?!0:L.sign!==void 0?"["+L.sign.reduce((I,C)=>I+`'${C}',`,"")+"]":"undefined"},
34
+ `;if(O){const z=(N,C)=>{const S=L?.[N]??C;if(!S)return typeof C==="string"?`${N}: "${C}",`:`${N}: ${C},`;if(typeof S==="string")return`${N}: '${S}',`;if(S instanceof Date)return`${N}: new Date(${S.getTime()}),`;return`${N}: ${S},`},F=L?`{
35
+ secrets: ${L.secrets!==void 0?typeof L.secrets==="string"?`'${L.secrets}'`:"["+L.secrets.reduce((N,C)=>N+`'${C}',`,"")+"]":"undefined"},
36
+ sign: ${L.sign===!0?!0:L.sign!==void 0?"["+L.sign.reduce((N,C)=>N+`'${C}',`,"")+"]":"undefined"},
37
37
  ${z("domain")}
38
38
  ${z("expires")}
39
39
  ${z("httpOnly")}
@@ -42,15 +42,15 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
42
42
  ${z("priority")}
43
43
  ${z("sameSite")}
44
44
  ${z("secure")}
45
- }`:"undefined";if(V)Q+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${F})\n`;else Q+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${F})\n`}if(_){const z=[];if(j.query&&j.query.schema.type==="object"){const F=j.query.schema.properties;if(!$0(j.query))for(let[I,C]of Object.entries(F)){let S=C;if(S&&T2.optional in S&&S.type==="array"&&S.items)S=S.items;const{type:T,anyOf:t}=S,f0=T==="array"||t?.some((p)=>p.type==="string"&&p.format==="ArrayString");z.push({key:I,isArray:f0,isNestedObjectArray:f0&&(S.items?.type==="object"||!!t?.length)||!!S.items?.anyOf,isObject:T==="object"||t?.some((p)=>p.type==="string"&&p.format==="ArrayString"),anyOf:!!t})}}if(!z.length)Q+=`if(c.qi === -1) {
45
+ }`:"undefined";if(V)Q+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${F})\n`;else Q+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${F})\n`}if(_){const z=[];if(j.query&&j.query.schema.type==="object"){const F=j.query.schema.properties;if(!$0(j.query))for(let[N,C]of Object.entries(F)){let S=C;if(S&&U2.optional in S&&S.type==="array"&&S.items)S=S.items;const{type:T,anyOf:t}=S,f0=T==="array"||t?.some((l)=>l.type==="string"&&l.format==="ArrayString");z.push({key:N,isArray:f0,isNestedObjectArray:f0&&(S.items?.type==="object"||!!t?.length)||!!S.items?.anyOf,isObject:T==="object"||t?.some((l)=>l.type==="string"&&l.format==="ArrayString"),anyOf:!!t})}}if(!z.length)Q+=`if(c.qi === -1) {
46
46
  c.query = {}
47
47
  } else {
48
48
  c.query = parseQuery(c.url.slice(c.qi + 1))
49
49
  }`;else Q+=`if(c.qi !== -1) {
50
50
  let url = '&' + c.url.slice(c.qi + 1)
51
51
 
52
- ${z.map(({key:F,isArray:I,isObject:C,isNestedObjectArray:S},T)=>{const t=`${T===0?"let":""} memory = url.indexOf('&${F}=')
53
- let a${T}\n`;if(I)return t+(S?`while (memory !== -1) {
52
+ ${z.map(({key:F,isArray:N,isObject:C,isNestedObjectArray:S},T)=>{const t=`${T===0?"let":""} memory = url.indexOf('&${F}=')
53
+ let a${T}\n`;if(N)return t+(S?`while (memory !== -1) {
54
54
  const start = memory + ${F.length+2}
55
55
  memory = url.indexOf('&', start)
56
56
 
@@ -139,11 +139,11 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
139
139
  }`}).join("\n")}
140
140
 
141
141
  c.query = {
142
- ${z.map(({key:F},I)=>`'${F}': a${I}`).join(", ")}
142
+ ${z.map(({key:F},N)=>`'${F}': a${N}`).join(", ")}
143
143
  }
144
144
  } else {
145
145
  c.query = {}
146
- }`}const C0=K.cookie||K.set||V||D||j.response||B&&P;if(D)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const b=H1({trace:J.trace,addFn:(z)=>{Q+=z}});Q+="\ntry {\n";const S0=typeof G==="function"&&g(G),s=D||J.afterResponse.length>0?"c.response = ":"",g0=O||N||S0||J.parse.length>0||J.afterHandle.some(g)||J.beforeHandle.some(g)||J.transform.some(g)||J.mapResponse.some(g),n=", c.request";Q+=`c.route = \`${X}\`\n`;const R2=b("parse",{total:J.parse.length});if(N){const z=J.parse.length||K.body||j.body;if(Q+="isParsing = true\n",J.type&&!J.parse.length)switch(J.type){case"json":case"application/json":Q+="c.body = await c.request.json()";break;case"text":case"text/plain":Q+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":Q+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":Q+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":Q+=`c.body = {}
146
+ }`}const A0=K.cookie||K.set||V||D||j.response||B&&I;if(D)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const b=S1({trace:J.trace,addFn:(z)=>{Q+=z}});Q+="\ntry {\n";const C0=typeof G==="function"&&g(G),s=D||J.afterResponse.length>0?"c.response = ":"",g0=O||P||C0||J.parse.length>0||J.afterHandle.some(g)||J.beforeHandle.some(g)||J.transform.some(g)||J.mapResponse.some(g),n=", c.request";Q+=`c.route = \`${X}\`\n`;const F2=b("parse",{total:J.parse.length});if(P){const z=J.parse.length||K.body||j.body;if(Q+="isParsing = true\n",J.type&&!J.parse.length)switch(J.type){case"json":case"application/json":Q+="c.body = await c.request.json()";break;case"text":case"text/plain":Q+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":Q+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":Q+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":Q+=`c.body = {}
147
147
 
148
148
  const form = await c.request.formData()
149
149
  for (const key of form.keys()) {
@@ -158,7 +158,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
158
158
  if (contentType) {
159
159
  const index = contentType.indexOf(';')
160
160
  if (index !== -1) contentType = contentType.substring(0, index)\n
161
- c.contentType = contentType\n`,J.parse.length){Q+="let used = false\n";const F=b("parse",{total:J.parse.length});for(let I=0;I<J.parse.length;I++){const C=F.resolveChild(J.parse[I].fn.name),S=`bo${I}`;if(I!==0)Q+="if(!used) {\n";if(Q+=`let ${S} = parse[${I}](c, contentType)\n`,Q+=`if(${S} instanceof Promise) ${S} = await ${S}\n`,Q+=`if(${S} !== undefined) { c.body = ${S}; used = true }\n`,C(),I!==0)Q+="}"}F.resolve()}if(Q+="\ndelete c.contentType\n",J.parse.length)Q+="if (!used) {";if(J.type&&!Array.isArray(J.type))switch(J.type){case"json":case"application/json":Q+="c.body = await c.request.json()";break;case"text":case"text/plain":Q+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":Q+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":Q+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":Q+=`c.body = {}
161
+ c.contentType = contentType\n`,J.parse.length){Q+="let used = false\n";const F=b("parse",{total:J.parse.length});for(let N=0;N<J.parse.length;N++){const C=F.resolveChild(J.parse[N].fn.name),S=`bo${N}`;if(N!==0)Q+="if(!used) {\n";if(Q+=`let ${S} = parse[${N}](c, contentType)\n`,Q+=`if(${S} instanceof Promise) ${S} = await ${S}\n`,Q+=`if(${S} !== undefined) { c.body = ${S}; used = true }\n`,C(),N!==0)Q+="}"}F.resolve()}if(Q+="\ndelete c.contentType\n",J.parse.length)Q+="if (!used) {";if(J.type&&!Array.isArray(J.type))switch(J.type){case"json":case"application/json":Q+="c.body = await c.request.json()";break;case"text":case"text/plain":Q+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":Q+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":Q+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":Q+=`c.body = {}
162
162
 
163
163
  const form = await c.request.formData()
164
164
  for (const key of form.keys()) {
@@ -202,7 +202,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
202
202
  }
203
203
 
204
204
  break
205
- }`;if(J.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(R2.resolve(),J?.transform){const z=b("transform",{total:J.transform.length});if(J.transform.length)Q+="\nlet transformed\n";for(let F=0;F<J.transform.length;F++){const I=J.transform[F],C=z.resolveChild(I.fn.name);if(Q+=g(I)?`transformed = await transform[${F}](c)\n`:`transformed = transform[${F}](c)\n`,I.subType==="mapDerive")Q+=`if(transformed?.[ELYSIA_RESPONSE])
205
+ }`;if(J.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(F2.resolve(),J?.transform){const z=b("transform",{total:J.transform.length});if(J.transform.length)Q+="\nlet transformed\n";for(let F=0;F<J.transform.length;F++){const N=J.transform[F],C=z.resolveChild(N.fn.name);if(Q+=g(N)?`transformed = await transform[${F}](c)\n`:`transformed = transform[${F}](c)\n`,N.subType==="mapDerive")Q+=`if(transformed?.[ELYSIA_RESPONSE])
206
206
  throw transformed
207
207
  else {
208
208
  transformed.request = c.request
@@ -218,16 +218,16 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
218
218
  }`;else Q+=`if(transformed?.[ELYSIA_RESPONSE])
219
219
  throw transformed
220
220
  else
221
- Object.assign(c, transformed)\n`;C()}z.resolve()}if(j){if(Q+="\n",j.headers){if(v&&"Clean"in j.headers&&!$0(j.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",j.headers.schema))for(let[z,F]of Object.entries(n0.Default(j.headers.schema,{}))){const I=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(I!==void 0)Q+=`c.headers['${z}'] ??= ${I}\n`}if(K0(j.headers))Q+="if(isNotEmpty(c.headers)) {";if(Q+=`if(validator.headers.Check(c.headers) === false) {
221
+ Object.assign(c, transformed)\n`;C()}z.resolve()}if(j){if(Q+="\n",j.headers){if(v&&"Clean"in j.headers&&!$0(j.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(I0("default",j.headers.schema))for(let[z,F]of Object.entries(p0.Default(j.headers.schema,{}))){const N=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(N!==void 0)Q+=`c.headers['${z}'] ??= ${N}\n`}if(B0(j.headers))Q+="if(isNotEmpty(c.headers)) {";if(Q+=`if(validator.headers.Check(c.headers) === false) {
222
222
  ${R("headers")}
223
- }`,O0(j.headers.schema))Q+="c.headers = validator.headers.Decode(c.headers)\n";if(K0(j.headers))Q+="}"}if(j.params){if(V0("default",j.params.schema))for(let[z,F]of Object.entries(n0.Default(j.params.schema,{}))){const I=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(I!==void 0)Q+=`c.params['${z}'] ??= ${I}\n`}if(Q+=`if(validator.params.Check(c.params) === false) {
223
+ }`,V0(j.headers.schema))Q+="c.headers = validator.headers.Decode(c.headers)\n";if(B0(j.headers))Q+="}"}if(j.params){if(I0("default",j.params.schema))for(let[z,F]of Object.entries(p0.Default(j.params.schema,{}))){const N=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(N!==void 0)Q+=`c.params['${z}'] ??= ${N}\n`}if(Q+=`if(validator.params.Check(c.params) === false) {
224
224
  ${R("params")}
225
- }`,O0(j.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(j.query){if(v&&"Clean"in j.query&&!$0(j.query))Q+="c.query = validator.query.Clean(c.query);\n";if(V0("default",j.query.schema))for(let[z,F]of Object.entries(n0.Default(j.query.schema,{}))){const I=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(I!==void 0)Q+=`if(c.query['${z}'] === undefined) c.query['${z}'] = ${I}\n`}if(K0(j.query))Q+="if(isNotEmpty(c.query)) {";if(Q+=`if(validator.query.Check(c.query) === false) {
225
+ }`,V0(j.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(j.query){if(v&&"Clean"in j.query&&!$0(j.query))Q+="c.query = validator.query.Clean(c.query);\n";if(I0("default",j.query.schema))for(let[z,F]of Object.entries(p0.Default(j.query.schema,{}))){const N=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(N!==void 0)Q+=`if(c.query['${z}'] === undefined) c.query['${z}'] = ${N}\n`}if(B0(j.query))Q+="if(isNotEmpty(c.query)) {";if(Q+=`if(validator.query.Check(c.query) === false) {
226
226
  ${R("query")}
227
- }`,O0(j.query.schema))Q+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(K0(j.query))Q+="}"}if(j.body){if(v&&"Clean"in j.body&&!$0(j.body))Q+="c.body = validator.body.Clean(c.body);\n";const z=O0(j.body.schema);if(z||K0(j.body))Q+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(V0("default",j.body.schema)){const F=n0.Default(j.body.schema,j.body.schema.type==="object"?{}:void 0),I=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(Q+=`if(validator.body.Check(c.body) === false) {
227
+ }`,V0(j.query.schema))Q+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(B0(j.query))Q+="}"}if(j.body){if(v&&"Clean"in j.body&&!$0(j.body))Q+="c.body = validator.body.Clean(c.body);\n";const z=V0(j.body.schema);if(z||B0(j.body))Q+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(I0("default",j.body.schema)){const F=p0.Default(j.body.schema,j.body.schema.type==="object"?{}:void 0),N=typeof F==="object"?JSON.stringify(F):typeof F==="string"?`'${F}'`:F;if(Q+=`if(validator.body.Check(c.body) === false) {
228
228
  if (typeof c.body === 'object') {
229
- c.body = Object.assign(${I}, c.body)
230
- } else { c.body = ${I} }`,K0(j.body))Q+=`
229
+ c.body = Object.assign(${N}, c.body)
230
+ } else { c.body = ${N} }`,B0(j.body))Q+=`
231
231
  if(isNotEmptyObject && validator.body.Check(c.body) === false) {
232
232
  ${R("body")}
233
233
  }
@@ -235,16 +235,16 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
235
235
  if(validator.body.Check(c.body) === false) {
236
236
  ${R("body")}
237
237
  }
238
- }`}else if(K0(j.body))Q+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
238
+ }`}else if(B0(j.body))Q+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
239
239
  ${R("body")}
240
240
  }`;else Q+=`if(validator.body.Check(c.body) === false) {
241
241
  ${R("body")}
242
- }`;if(z)Q+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(l(q?.schema?.properties??q?.schema?.schema??{})){if(Q+=`const cookieValue = {}
242
+ }`;if(z)Q+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(p(q?.schema?.properties??q?.schema?.schema??{})){if(Q+=`const cookieValue = {}
243
243
  for(const [key, value] of Object.entries(c.cookie))
244
- cookieValue[key] = value.value\n`,V0("default",q.schema))for(let[z,F]of Object.entries(n0.Default(q.schema,{})))Q+=`cookieValue['${z}'] = ${typeof F==="object"?JSON.stringify(F):F}\n`;if(K0(j.cookie))Q+="if(isNotEmpty(c.cookie)) {";if(Q+=`if(validator.cookie.Check(cookieValue) === false) {
244
+ cookieValue[key] = value.value\n`,I0("default",q.schema))for(let[z,F]of Object.entries(p0.Default(q.schema,{})))Q+=`cookieValue['${z}'] = ${typeof F==="object"?JSON.stringify(F):F}\n`;if(B0(j.cookie))Q+="if(isNotEmpty(c.cookie)) {";if(Q+=`if(validator.cookie.Check(cookieValue) === false) {
245
245
  ${R("cookie","cookieValue")}
246
- }`,O0(j.cookie.schema))Q+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
247
- c.cookie[key].value = value\n`;if(K0(j.cookie))Q+="}"}}if(J?.beforeHandle){const z=b("beforeHandle",{total:J.beforeHandle.length});let F=!1;for(let I=0;I<J.beforeHandle.length;I++){const C=J.beforeHandle[I],S=z.resolveChild(C.fn.name),T=T0(C);if(C.subType==="resolve"||C.subType==="mapResolve"){if(!F)F=!0,Q+="\nlet resolved\n";if(Q+=g(C)?`resolved = await beforeHandle[${I}](c);\n`:`resolved = beforeHandle[${I}](c);\n`,C.subType==="mapResolve")Q+=`if(resolved[ELYSIA_RESPONSE])
246
+ }`,V0(j.cookie.schema))Q+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
247
+ c.cookie[key].value = value\n`;if(B0(j.cookie))Q+="}"}}if(J?.beforeHandle){const z=b("beforeHandle",{total:J.beforeHandle.length});let F=!1;for(let N=0;N<J.beforeHandle.length;N++){const C=J.beforeHandle[N],S=z.resolveChild(C.fn.name),T=L0(C);if(C.subType==="resolve"||C.subType==="mapResolve"){if(!F)F=!0,Q+="\nlet resolved\n";if(Q+=g(C)?`resolved = await beforeHandle[${N}](c);\n`:`resolved = beforeHandle[${N}](c);\n`,C.subType==="mapResolve")Q+=`if(resolved[ELYSIA_RESPONSE])
248
248
  throw resolved
249
249
  else {
250
250
  resolved.request = c.request
@@ -260,12 +260,12 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
260
260
  }`;else Q+=`if(resolved[ELYSIA_RESPONSE])
261
261
  throw resolved
262
262
  else
263
- Object.assign(c, resolved)\n`}else if(!T)Q+=g(C)?`await beforeHandle[${I}](c);\n`:`beforeHandle[${I}](c);\n`,S();else{if(Q+=g(C)?`be = await beforeHandle[${I}](c);\n`:`be = beforeHandle[${I}](c);\n`,S("be"),Q+="if(be !== undefined) {\n",z.resolve(),J.afterHandle?.length){b("handle",{name:B?G.name:void 0}).resolve();const p=b("afterHandle",{total:J.afterHandle.length});for(let Z0=0;Z0<J.afterHandle.length;Z0++){const q0=J.afterHandle[Z0],b2=T0(q0),x2=p.resolveChild(q0.fn.name);if(Q+="c.response = be\n",!b2)Q+=g(q0.fn)?`await afterHandle[${Z0}](c, be)\n`:`afterHandle[${Z0}](c, be)\n`;else Q+=g(q0.fn)?`af = await afterHandle[${Z0}](c)\n`:`af = afterHandle[${Z0}](c)\n`,Q+="if(af !== undefined) { c.response = be = af }\n";x2("af")}p.resolve()}if(j.response)Q+=U0("be");const f0=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){Q+="\nc.response = be\n";for(let p=0;p<J.mapResponse.length;p++){const Z0=J.mapResponse[p],q0=f0.resolveChild(Z0.fn.name);Q+=`\nif(mr === undefined) {
264
- mr = ${A0(Z0)?"await":""} onMapResponse[${p}](c)
263
+ Object.assign(c, resolved)\n`}else if(!T)Q+=g(C)?`await beforeHandle[${N}](c);\n`:`beforeHandle[${N}](c);\n`,S();else{if(Q+=g(C)?`be = await beforeHandle[${N}](c);\n`:`be = beforeHandle[${N}](c);\n`,S("be"),Q+="if(be !== undefined) {\n",z.resolve(),J.afterHandle?.length){b("handle",{name:B?G.name:void 0}).resolve();const l=b("afterHandle",{total:J.afterHandle.length});for(let Z0=0;Z0<J.afterHandle.length;Z0++){const S0=J.afterHandle[Z0],D2=L0(S0),M2=l.resolveChild(S0.fn.name);if(Q+="c.response = be\n",!D2)Q+=g(S0.fn)?`await afterHandle[${Z0}](c, be)\n`:`afterHandle[${Z0}](c, be)\n`;else Q+=g(S0.fn)?`af = await afterHandle[${Z0}](c)\n`:`af = afterHandle[${Z0}](c)\n`,Q+="if(af !== undefined) { c.response = be = af }\n";M2("af")}l.resolve()}if(j.response)Q+=K0("be");const f0=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){Q+="\nc.response = be\n";for(let l=0;l<J.mapResponse.length;l++){const Z0=J.mapResponse[l],S0=f0.resolveChild(Z0.fn.name);Q+=`\nif(mr === undefined) {
264
+ mr = ${O0(Z0)?"await":""} onMapResponse[${l}](c)
265
265
  if(mr !== undefined) be = c.response = mr
266
- }\n`,q0()}}f0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${s} be, c.set ${n})}\n`}}z.resolve()}if(J?.afterHandle.length){const z=b("handle",{name:B?G.name:void 0});if(J.afterHandle.length)Q+=S0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else Q+=S0?`let r = await ${U};\n`:`let r = ${U};\n`;z.resolve();const F=b("afterHandle",{total:J.afterHandle.length});for(let C=0;C<J.afterHandle.length;C++){const S=J.afterHandle[C],T=T0(S),t=F.resolveChild(S.fn.name);if(!T)Q+=g(S.fn)?`await afterHandle[${C}](c)\n`:`afterHandle[${C}](c)\n`,t();else if(Q+=g(S.fn)?`af = await afterHandle[${C}](c)\n`:`af = afterHandle[${C}](c)\n`,t("af"),j.response)Q+="if(af !== undefined) {",F.resolve(),Q+=U0("af"),Q+="c.response = af }";else Q+="if(af !== undefined) {",F.resolve(),Q+="c.response = af}\n"}if(F.resolve(),Q+="r = c.response\n",j.response)Q+=U0();Q+=E;const I=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length)for(let C=0;C<J.mapResponse.length;C++){const S=J.mapResponse[C],T=I.resolveChild(S.fn.name);Q+=`\nmr = ${A0(S)?"await":""} onMapResponse[${C}](c)
267
- if(mr !== undefined) r = c.response = mr\n`,T()}if(I.resolve(),C0)Q+=`return mapResponse(${s} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} r ${n})\n`}else{const z=b("handle",{name:B?G.name:void 0});if(j.response||J.mapResponse.length){if(Q+=S0?`let r = await ${U};\n`:`let r = ${U};\n`,z.resolve(),j.response)Q+=U0();b("afterHandle").resolve();const F=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){Q+="\nc.response = r\n";for(let I=0;I<J.mapResponse.length;I++){const C=J.mapResponse[I],S=F.resolveChild(C.fn.name);Q+=`\nif(mr === undefined) {
268
- mr = ${A0(C)?"await":""} onMapResponse[${I}](c)
266
+ }\n`,S0()}}f0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${s} be, c.set ${n})}\n`}}z.resolve()}if(J?.afterHandle.length){const z=b("handle",{name:B?G.name:void 0});if(J.afterHandle.length)Q+=C0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else Q+=C0?`let r = await ${U};\n`:`let r = ${U};\n`;z.resolve();const F=b("afterHandle",{total:J.afterHandle.length});for(let C=0;C<J.afterHandle.length;C++){const S=J.afterHandle[C],T=L0(S),t=F.resolveChild(S.fn.name);if(!T)Q+=g(S.fn)?`await afterHandle[${C}](c)\n`:`afterHandle[${C}](c)\n`,t();else if(Q+=g(S.fn)?`af = await afterHandle[${C}](c)\n`:`af = afterHandle[${C}](c)\n`,t("af"),j.response)Q+="if(af !== undefined) {",F.resolve(),Q+=K0("af"),Q+="c.response = af }";else Q+="if(af !== undefined) {",F.resolve(),Q+="c.response = af}\n"}if(F.resolve(),Q+="r = c.response\n",j.response)Q+=K0();Q+=E;const N=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length)for(let C=0;C<J.mapResponse.length;C++){const S=J.mapResponse[C],T=N.resolveChild(S.fn.name);Q+=`\nmr = ${O0(S)?"await":""} onMapResponse[${C}](c)
267
+ if(mr !== undefined) r = c.response = mr\n`,T()}if(N.resolve(),A0)Q+=`return mapResponse(${s} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} r ${n})\n`}else{const z=b("handle",{name:B?G.name:void 0});if(j.response||J.mapResponse.length){if(Q+=C0?`let r = await ${U};\n`:`let r = ${U};\n`,z.resolve(),j.response)Q+=K0();b("afterHandle").resolve();const F=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){Q+="\nc.response = r\n";for(let N=0;N<J.mapResponse.length;N++){const C=J.mapResponse[N],S=F.resolveChild(C.fn.name);Q+=`\nif(mr === undefined) {
268
+ mr = ${O0(C)?"await":""} onMapResponse[${N}](c)
269
269
  if(mr !== undefined) r = c.response = mr
270
270
  }\n`,S()}}if(F.resolve(),Q+=E,G instanceof Response)Q+=K.set?`if(
271
271
  isNotEmpty(c.set.headers) ||
@@ -275,10 +275,10 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
275
275
  )
276
276
  return mapResponse(${s} ${U}.clone(), c.set ${n})
277
277
  else
278
- return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(C0)Q+=`return mapResponse(${s} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} r ${n})\n`}else if(O||D){Q+=S0?`let r = await ${U};\n`:`let r = ${U};\n`,z.resolve(),b("afterHandle").resolve();const F=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){Q+="\nc.response = r\n";for(let I=0;I<J.mapResponse.length;I++){const C=J.mapResponse[I],S=F.resolveChild(C.fn.name);Q+=`\nif(mr === undefined) {
279
- mr = ${A0(C)?"await":""} onMapResponse[${I}](c)
278
+ return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(A0)Q+=`return mapResponse(${s} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} r ${n})\n`}else if(O||D){Q+=C0?`let r = await ${U};\n`:`let r = ${U};\n`,z.resolve(),b("afterHandle").resolve();const F=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){Q+="\nc.response = r\n";for(let N=0;N<J.mapResponse.length;N++){const C=J.mapResponse[N],S=F.resolveChild(C.fn.name);Q+=`\nif(mr === undefined) {
279
+ mr = ${O0(C)?"await":""} onMapResponse[${N}](c)
280
280
  if(mr !== undefined) r = c.response = mr
281
- }\n`,S()}}if(F.resolve(),Q+=E,C0)Q+=`return mapResponse(${s} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} r ${n})\n`}else{z.resolve();const F=S0?`await ${U}`:U;if(b("afterHandle").resolve(),G instanceof Response)Q+=K.set?`if(
281
+ }\n`,S()}}if(F.resolve(),Q+=E,A0)Q+=`return mapResponse(${s} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} r ${n})\n`}else{z.resolve();const F=C0?`await ${U}`:U;if(b("afterHandle").resolve(),G instanceof Response)Q+=K.set?`if(
282
282
  isNotEmpty(c.set.headers) ||
283
283
  c.set.status !== 200 ||
284
284
  c.set.redirect ||
@@ -286,13 +286,13 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
286
286
  )
287
287
  return mapResponse(${s} ${U}.clone(), c.set ${n})
288
288
  else
289
- return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(C0)Q+=`return mapResponse(${s} ${F}, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} ${F} ${n})\n`}}if(Q+="\n} catch(error) {",N)Q+="\nif(isParsing) error = new ParseError()\n";if(!g0)Q+="\nreturn (async () => {\n";if(Q+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",D)for(let z=0;z<J.trace.length;z++)Q+=`report${z}?.resolve(error);reportChild${z}?.(error);\n`;const K1=b("error",{total:J.error.length});if(J.error.length){Q+=`
289
+ return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(A0)Q+=`return mapResponse(${s} ${F}, c.set ${n})\n`;else Q+=`return mapCompactResponse(${s} ${F} ${n})\n`}}if(Q+="\n} catch(error) {",P)Q+="\nif(isParsing) error = new ParseError()\n";if(!g0)Q+="\nreturn (async () => {\n";if(Q+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",D)for(let z=0;z<J.trace.length;z++)Q+=`report${z}?.resolve(error);reportChild${z}?.(error);\n`;const Q1=b("error",{total:J.error.length});if(J.error.length){Q+=`
290
290
  c.error = error
291
291
  c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
292
292
  let er
293
- `;for(let z=0;z<J.error.length;z++){const F=K1.resolveChild(J.error[z].fn.name);if(g(J.error[z]))Q+=`\ner = await handleErrors[${z}](c)\n`;else Q+=`\ner = handleErrors[${z}](c)\nif (er instanceof Promise) er = await er\n`;F();const I=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length)for(let C=0;C<J.mapResponse.length;C++){const S=J.mapResponse[C],T=I.resolveChild(S.fn.name);Q+=`\nc.response = er\n
294
- er = ${A0(S)?"await":""} onMapResponse[${C}](c)
295
- if(er instanceof Promise) er = await er\n`,T()}if(I.resolve(),Q+=`er = mapEarlyResponse(er, set ${n})\n`,Q+="if (er) {",D){for(let C=0;C<J.trace.length;C++)Q+=`\nreport${C}.resolve()\n`;K1.resolve()}Q+="return er\n}\n"}}if(K1.resolve(),Q+="return handleError(c, error, true)\n",!g0)Q+="})()";if(Q+="}",w||D){if(Q+=" finally { ",!g0)Q+=";(async () => {";const z=b("afterResponse",{total:J.afterResponse.length});if(w)for(let F=0;F<J.afterResponse.length;F++){const I=z.resolveChild(J.afterResponse[F].fn.name);Q+=`\nawait afterResponse[${F}](c);\n`,I()}if(z.resolve(),!g0)Q+="})();";Q+="}"}Q=`const {
293
+ `;for(let z=0;z<J.error.length;z++){const F=Q1.resolveChild(J.error[z].fn.name);if(g(J.error[z]))Q+=`\ner = await handleErrors[${z}](c)\n`;else Q+=`\ner = handleErrors[${z}](c)\nif (er instanceof Promise) er = await er\n`;F();const N=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length)for(let C=0;C<J.mapResponse.length;C++){const S=J.mapResponse[C],T=N.resolveChild(S.fn.name);Q+=`\nc.response = er\n
294
+ er = ${O0(S)?"await":""} onMapResponse[${C}](c)
295
+ if(er instanceof Promise) er = await er\n`,T()}if(N.resolve(),Q+=`er = mapEarlyResponse(er, set ${n})\n`,Q+="if (er) {",D){for(let C=0;C<J.trace.length;C++)Q+=`\nreport${C}.resolve()\n`;Q1.resolve()}Q+="return er\n}\n"}}if(Q1.resolve(),Q+="return handleError(c, error, true)\n",!g0)Q+="})()";if(Q+="}",w||D){if(Q+=" finally { ",!g0)Q+=";(async () => {";const z=b("afterResponse",{total:J.afterResponse.length});if(w)for(let F=0;F<J.afterResponse.length;F++){const N=z.resolveChild(J.afterResponse[F].fn.name);Q+=`\nawait afterResponse[${F}](c);\n`,N()}if(z.resolve(),!g0)Q+="})();";Q+="}"}Q=`const {
296
296
  handler,
297
297
  handleError,
298
298
  hooks: {
@@ -341,7 +341,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
341
341
 
342
342
  ${Y?"c.schema = schema; c.defs = definitions":""}
343
343
  ${Q}
344
- }`;try{return Function("hooks",Q)({handler:G,hooks:O1(J),validator:j,handleError:$.handleError,utils:{mapResponse:y,mapCompactResponse:J0,mapEarlyResponse:f,parseQuery:q2.parse,isNotEmpty:l},error:{NotFoundError:P0,ValidationError:H,InternalServerError:G1,ParseError:Y1},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:I0,parseCookie:e0,signCookie:b0,decodeURIComponent:L2.default,ELYSIA_RESPONSE:m,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:N0,getServer:()=>$.getServer()})}catch{const z=O1(J);console.log("[Composer] failed to generate optimized handler"),console.log("Please report the following to SaltyAom privately as it may include sensitive information about your codebase:"),console.log("---"),console.log({handler:typeof G==="function"?G.toString():G,hooks:{...z,transform:z?.transform?.map?.((F)=>F.toString()),resolve:z?.resolve?.map?.((F)=>F.toString()),beforeHandle:z?.beforeHandle?.map?.((F)=>F.toString()),afterHandle:z?.afterHandle?.map?.((F)=>F.toString()),mapResponse:z?.mapResponse?.map?.((F)=>F.toString()),parse:z?.parse?.map?.((F)=>F.toString()),error:z?.error?.map?.((F)=>F.toString()),afterResponse:z?.afterResponse?.map?.((F)=>F.toString()),stop:z?.stop?.map?.((F)=>F.toString())},validator:j,definitions:$.definitions.type}),console.log("---"),process.exit(1)}},E1=($)=>{let X="",Z="";const W=$.setHeaders;for(let _ of Object.keys($.singleton.decorator))X+=`,${_}: app.singleton.decorator.${_}`;const J=$.router,j=$.event.trace.length>0;let G=`
344
+ }`;try{return Function("hooks",Q)({handler:G,hooks:N1(J),validator:j,handleError:$.handleError,utils:{mapResponse:y,mapCompactResponse:J0,mapEarlyResponse:f,parseQuery:x0,isNotEmpty:p},error:{NotFoundError:N0,ValidationError:H,InternalServerError:J1,ParseError:j1},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:P0,parseCookie:s0,signCookie:R0,decodeURIComponent:K2.default,ELYSIA_RESPONSE:m,ELYSIA_TRACE:l0,ELYSIA_REQUEST_ID:z0,getServer:()=>$.getServer()})}catch{const z=N1(J);console.log("[Composer] failed to generate optimized handler"),console.log("Please report the following to SaltyAom privately as it may include sensitive information about your codebase:"),console.log("---"),console.log({handler:typeof G==="function"?G.toString():G,hooks:{...z,transform:z?.transform?.map?.((F)=>F.toString()),resolve:z?.resolve?.map?.((F)=>F.toString()),beforeHandle:z?.beforeHandle?.map?.((F)=>F.toString()),afterHandle:z?.afterHandle?.map?.((F)=>F.toString()),mapResponse:z?.mapResponse?.map?.((F)=>F.toString()),parse:z?.parse?.map?.((F)=>F.toString()),error:z?.error?.map?.((F)=>F.toString()),afterResponse:z?.afterResponse?.map?.((F)=>F.toString()),stop:z?.stop?.map?.((F)=>F.toString())},validator:j,definitions:$.definitions.type}),console.log("---"),process.exit(1)}},q1=($)=>{let X="",Z="";const W=$.setHeaders;for(let _ of Object.keys($.singleton.decorator))X+=`,${_}: app.singleton.decorator.${_}`;const J=$.router,j=$.event.trace.length>0;let G=`
345
345
  const route = router.find(request.method, path) ${J.http.root.ALL?'?? router.find("ALL", path)':""}
346
346
 
347
347
  if (route === null)
@@ -351,7 +351,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
351
351
  })`:"error404.clone()"}
352
352
 
353
353
  ctx.params = route.params\n`;G+=`if(route.store.handler) return route.store.handler(ctx)
354
- return (route.store.handler = route.store.compile())(ctx)\n`;let Y="";for(let[_,{code:N,all:M}]of Object.entries(J.static.http.map))Y+=`case '${_}':\nswitch(request.method) {\n${N}\n${M??"default: break map"}}\n\n`;const K=$.event.request.some(g);if(Z+=`const {
354
+ return (route.store.handler = route.store.compile())(ctx)\n`;let Y="";for(let[_,{code:P,all:M}]of Object.entries(J.static.http.map))Y+=`case '${_}':\nswitch(request.method) {\n${P}\n${M??"default: break map"}}\n\n`;const K=$.event.request.some(g);if(Z+=`const {
355
355
  app,
356
356
  mapEarlyResponse,
357
357
  NotFoundError,
@@ -378,7 +378,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
378
378
  ${$.event.error.length?"":`\nconst error404Message = notFound.message.toString()
379
379
  const error404 = new Response(error404Message, { status: 404 });\n`}
380
380
 
381
- ${$.event.trace.length?`const ${$.event.trace.map((_,N)=>`tr${N} = app.event.trace[${N}].fn`).join(",")}`:""}
381
+ ${$.event.trace.length?`const ${$.event.trace.map((_,P)=>`tr${P} = app.event.trace[${P}].fn`).join(",")}`:""}
382
382
 
383
383
  ${K?"async":""} function map(request) {\n`,$.event.request.length)Z+="let re";if(Z+=`\nconst url = request.url
384
384
  const s = url.indexOf('/', 11)
@@ -405,18 +405,18 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
405
405
  }`:""}
406
406
  ${j?",[ELYSIA_REQUEST_ID]: id":""}
407
407
  ${X}
408
- }\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((_,N)=>`tr${N}(ctx)`).join(",")}]\n`;const U=H1({context:"ctx",trace:$.event.trace,addFn:(_)=>{Z+=_}})("request",{attribute:"ctx",total:$.event.request.length});if($.event.request.length){Z+="\n try {\n";for(let _=0;_<$.event.request.length;_++){const N=$.event.request[_],M=T0(N),P=g(N),V=U.resolveChild($.event.request[_].fn.name);if(M)Z+=`re = mapEarlyResponse(
409
- ${P?"await":""} onRequest[${_}](ctx),
408
+ }\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((_,P)=>`tr${P}(ctx)`).join(",")}]\n`;const U=S1({context:"ctx",trace:$.event.trace,addFn:(_)=>{Z+=_}})("request",{attribute:"ctx",total:$.event.request.length});if($.event.request.length){Z+="\n try {\n";for(let _=0;_<$.event.request.length;_++){const P=$.event.request[_],M=L0(P),I=g(P),V=U.resolveChild($.event.request[_].fn.name);if(M)Z+=`re = mapEarlyResponse(
409
+ ${I?"await":""} onRequest[${_}](ctx),
410
410
  ctx.set,
411
411
  request
412
- )\n`,V("re"),Z+="if(re !== undefined) return re\n";else Z+=`${P?"await":""} onRequest[${_}](ctx)\n`,V()}Z+=`} catch (error) {
412
+ )\n`,V("re"),Z+="if(re !== undefined) return re\n";else Z+=`${I?"await":""} onRequest[${_}](ctx)\n`,V()}Z+=`} catch (error) {
413
413
  return app.handleError(ctx, error)
414
414
  }`}U.resolve();const w=$.router.static.ws,D=$.router.ws;if(Object.keys(w).length||D.history.length){Z+=`
415
415
  if(request.method === 'GET') {
416
- switch(path) {`;for(let[_,N]of Object.entries(w))Z+=`
416
+ switch(path) {`;for(let[_,P]of Object.entries(w))Z+=`
417
417
  case '${_}':
418
418
  if(request.headers.get('upgrade') === 'websocket')
419
- return st[${N}](ctx)
419
+ return st[${P}](ctx)
420
420
 
421
421
  break`;Z+=`
422
422
  default:
@@ -444,7 +444,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
444
444
  }
445
445
 
446
446
  ${G}
447
- }\n`,$.extender.higherOrderFunctions.length){let _="map";for(let N=0;N<$.extender.higherOrderFunctions.length;N++)_=`hoc[${N}](${_}, request)`;Z+=`return function hocMap(request) { return ${_}(request) }`}else Z+="return map";const Q=R1($);return $.handleError=Q,Function("data",Z)({app:$,mapEarlyResponse:f,NotFoundError:P0,randomId:j1,handleError:Q,error:A1,redirect:d0,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:N0,getServer:()=>$.getServer()})},R1=($)=>{const X=$.event;let Z="";Z+=`const {
447
+ }\n`,$.extender.higherOrderFunctions.length){let _="map";for(let P=0;P<$.extender.higherOrderFunctions.length;P++)_=`hoc[${P}](${_}, request)`;Z+=`return function hocMap(request) { return ${_}(request) }`}else Z+="return map";const Q=L1($);return $.handleError=Q,Function("data",Z)({app:$,mapEarlyResponse:f,NotFoundError:N0,randomId:Z1,handleError:Q,error:I1,redirect:m0,ELYSIA_TRACE:l0,ELYSIA_REQUEST_ID:z0,getServer:()=>$.getServer()})},L1=($)=>{const X=$.event;let Z="";Z+=`const {
448
448
  app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
449
449
  mapResponse,
450
450
  ERROR_CODE,
@@ -464,7 +464,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
464
464
  const onError = onErrorContainer.map(x => x.fn)
465
465
  const res = resContainer.map(x => x.fn)
466
466
 
467
- return ${$.event.error.find(g)||$.event.mapResponse.find(g)?"async":""} function(context, error, skipGlobal) {`;const W=$.event.trace.length>0;if(W)Z+="\nconst id = context[ELYSIA_REQUEST_ID]\n";const J=H1({context:"context",trace:X.trace,addFn:(Y)=>{Z+=Y}});Z+=`
467
+ return ${$.event.error.find(g)||$.event.mapResponse.find(g)?"async":""} function(context, error, skipGlobal) {`;const W=$.event.trace.length>0;if(W)Z+="\nconst id = context[ELYSIA_REQUEST_ID]\n";const J=S1({context:"context",trace:X.trace,addFn:(Y)=>{Z+=Y}});Z+=`
468
468
  const set = context.set
469
469
  let r
470
470
 
@@ -474,7 +474,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
474
474
  if(typeof error === "object" && error && ELYSIA_RESPONSE in error) {
475
475
  error.status = error[ELYSIA_RESPONSE]
476
476
  error.message = error.response
477
- }\n`;const j=W||X.afterResponse.length>0||X.afterResponse.length>0?"context.response = ":"";for(let Y=0;Y<$.event.error.length;Y++){const K=$.event.error[Y],B=`${g(K)?"await ":""}onError[${Y}](context)`;if(Z+="\nif(skipGlobal !== true) {\n",T0(K)){Z+=`r = ${B}; if(r !== undefined) {
477
+ }\n`;const j=W||X.afterResponse.length>0||X.afterResponse.length>0?"context.response = ":"";for(let Y=0;Y<$.event.error.length;Y++){const K=$.event.error[Y],B=`${g(K)?"await ":""}onError[${Y}](context)`;if(Z+="\nif(skipGlobal !== true) {\n",L0(K)){Z+=`r = ${B}; if(r !== undefined) {
478
478
  if(r instanceof Response) return r
479
479
 
480
480
  if(r[ELYSIA_RESPONSE]) {
@@ -483,7 +483,7 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
483
483
  }
484
484
 
485
485
  if(set.status === 200) set.status = error.status\n`;const U=J("mapResponse",{total:X.mapResponse.length,name:"context"});if(X.mapResponse.length)for(let w=0;w<X.mapResponse.length;w++){const D=X.mapResponse[w],Q=U.resolveChild(D.fn.name);Z+=`\ncontext.response = r
486
- r = ${A0(D)?"await":""} onMapResponse[${w}](context)\n`,Q()}U.resolve(),Z+=`return mapResponse(${j} r, set, context.request)}\n`}else Z+=B+"\n";Z+="\n}\n"}Z+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
486
+ r = ${O0(D)?"await":""} onMapResponse[${w}](context)\n`,Q()}U.resolve(),Z+=`return mapResponse(${j} r, set, context.request)}\n`}else Z+=B+"\n";Z+="\n}\n"}Z+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
487
487
  set.status = error.status ?? 422
488
488
  return new Response(
489
489
  error.message,
@@ -501,6 +501,6 @@ var g2=Object.create;var{defineProperty:x1,getPrototypeOf:f2,getOwnPropertyNames
501
501
  error.message,
502
502
  { headers: set.headers, status: error.status }
503
503
  )\n`;const G=J("mapResponse",{total:X.mapResponse.length,name:"context"});if(X.mapResponse.length)for(let Y=0;Y<X.mapResponse.length;Y++){const K=X.mapResponse[Y],B=G.resolveChild(K.fn.name);Z+=`\ncontext.response = error
504
- error = ${A0(K)?"await":""} onMapResponse[${Y}](context)\n`,B()}return G.resolve(),Z+=`\nreturn mapResponse(${j} error, set, context.request)\n}\n}`,Function("inject",Z)({app:$,mapResponse:y,ERROR_CODE:I0,ELYSIA_RESPONSE:m,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:N0})};var B1=t0(L1(),1);var b1=($)=>async(X)=>{const Z=X.url,W=Z.indexOf("/",11),J=Z.indexOf("?",W+1),j=J===-1?Z.substring(W):Z.substring(W,J),G={cookie:{},status:200,headers:{}},Y=Object.assign({},$.singleton.decorator,{set:G,store:$.singleton.store,request:X,path:j,qi:J,redirect:d0});try{for(let P=0;P<$.event.request.length;P++){const V=$.event.request[P].fn;let O=V(Y);if(O instanceof Promise)O=await O;if(O=f(O,G),O)return Y.response=O}const K=$.router.dynamic.find(X.method,j)??$.router.dynamic.find("ALL",j);if(!K)throw new P0;const{handle:B,hooks:U,validator:w,content:D}=K.store;let Q;if(X.method!=="GET"&&X.method!=="HEAD")if(D)switch(D){case"application/json":Q=await X.json();break;case"text/plain":Q=await X.text();break;case"application/x-www-form-urlencoded":Q=B1.parse(await X.text());break;case"application/octet-stream":Q=await X.arrayBuffer();break;case"multipart/form-data":Q={};const P=await X.formData();for(let V of P.keys()){if(Q[V])continue;const O=P.getAll(V);if(O.length===1)Q[V]=O[0];else Q[V]=O}break}else{let P=X.headers.get("content-type");if(P){const V=P.indexOf(";");if(V!==-1)P=P.slice(0,V);Y.contentType=P;for(let O=0;O<U.parse.length;O++){const q=U.parse[O].fn;let L=q(Y,P);if(L instanceof Promise)L=await L;if(L){Q=L;break}}if(delete Y.contentType,Q===void 0)switch(P){case"application/json":Q=await X.json();break;case"text/plain":Q=await X.text();break;case"application/x-www-form-urlencoded":Q=B1.parse(await X.text());break;case"application/octet-stream":Q=await X.arrayBuffer();break;case"multipart/form-data":Q={};const O=await X.formData();for(let q of O.keys()){if(Q[q])continue;const L=O.getAll(q);if(L.length===1)Q[q]=L[0];else Q[q]=L}break}}}Y.body=Q,Y.params=K?.params||void 0,Y.query=J===-1?{}:B1.parse(Z.substring(J+1)),Y.headers={};for(let[P,V]of X.headers.entries())Y.headers[P]=V;const _=Object.assign({},$.config?.cookie,w?.cookie?.config),N=X.headers.get("cookie");Y.cookie=await e0(Y.set,N,_?{secrets:_.secrets!==void 0?typeof _.secrets==="string"?_.secrets:_.secrets.join(","):void 0,sign:_.sign===!0?!0:_.sign!==void 0?typeof _.sign==="string"?_.sign:_.sign.join(","):void 0}:void 0);for(let P=0;P<U.transform.length;P++){const V=U.transform[P],O=V.fn(Y);if(V.subType==="derive")if(O instanceof Promise)Object.assign(Y,await O);else Object.assign(Y,O);else if(O instanceof Promise)await O}if(w){if(w.createHeaders?.()){const P={};for(let V in X.headers)P[V]=X.headers.get(V);if(w.headers.Check(P)===!1)throw new H("header",w.headers,P)}if(w.createParams?.()?.Check(Y.params)===!1)throw new H("params",w.params,Y.params);if(w.createQuery?.()?.Check(Y.query)===!1)throw new H("query",w.query,Y.query);if(w.createCookie?.()){const P={};for(let[V,O]of Object.entries(Y.cookie))P[V]=O.value;if(w.cookie.Check(P)===!1)throw new H("cookie",w.cookie,P)}if(w.createBody?.()?.Check(Q)===!1)throw new H("body",w.body,Q)}for(let P=0;P<U.beforeHandle.length;P++){let V=U.beforeHandle[P].fn(Y);if(V instanceof Promise)V=await V;if(V!==void 0){Y.response=V;for(let q=0;q<U.afterHandle.length;q++){let L=U.afterHandle[q].fn(Y);if(L instanceof Promise)L=await L;if(L)V=L}const O=f(V,Y.set);if(O)return Y.response=O}}let M=B(Y);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){const P=M[m]??(G.status?typeof G.status==="string"?Y0[G.status]:G.status:200),V=w?.createResponse?.()?.[P];if(V?.Check(M)===!1)throw new H("response",V,M)}else{Y.response=M;for(let P=0;P<U.afterHandle.length;P++){let V=U.afterHandle[P].fn(Y);if(V instanceof Promise)V=await V;const O=f(V,Y.set);if(O!==void 0){const q=w?.response?.[O.status];if(q?.Check(O)===!1)throw new H("response",q,O);return Y.response=O}}}if(Y.set.cookie&&_?.sign){const P=!_.secrets?void 0:typeof _.secrets==="string"?_.secrets:_.secrets[0];if(_.sign===!0)for(let[V,O]of Object.entries(Y.set.cookie))Y.set.cookie[V].value=await b0(O.value,"${secret}");else{const V=w?.cookie?.schema?.properties;for(let O of _.sign){if(!(O in V))continue;if(Y.set.cookie[O]?.value)Y.set.cookie[O].value=await b0(Y.set.cookie[O].value,P)}}}return Y.response=y(M,Y.set)}catch(K){if(K.status)G.status=K.status;return $.handleError(Y,K)}finally{for(let K of $.event.afterResponse)await K.fn(Y)}},E2=($)=>async(X,Z)=>{const W=Object.assign(X,{error:Z,code:Z.code});W.set=X.set;for(let J=0;J<$.event.error.length;J++){let G=$.event.error[J].fn(W);if(G instanceof Promise)G=await G;if(G!==void 0&&G!==null)return X.response=y(G,X.set)}return new Response(typeof Z.cause==="string"?Z.cause:Z.message,{headers:X.set.headers,status:Z.status??500})};class X0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=S1;version=S1;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:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return R0(R0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new w0,ws:new w0,dynamic:new w0,static:{http:{handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new V1;return this._promisedModules}constructor($){if($?.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,X=Bun?.env??process.env){if(h($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(X)===!1){const W=new H("env",$,X);throw new Error(W.all.map((J)=>J.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:z0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){const X=B2({globalHook:this.event,localHook:$}),Z={events:{global:this.event,local:$},onParse:X("parse"),onTransform:X("transform"),onBeforeHandle:X("beforeHandle"),onAfterHandle:X("afterHandle"),mapResponse:X("mapResponse"),onAfterResponse:X("afterResponse"),onError:X("error")};for(let W of this.extender.macros)Y2(W.fn(Z),$)}}applyConfig($){return this.config={prefix:"",aot:!0,strictPath:!1,global:!1,analytic:!1,normalize:!0,...$,cookie:{path:"/",...$?.cookie},experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},this}get models(){const $={};for(let[X,Z]of Object.entries(this.definitions.type))$[X]=h(Z);return $}add($,X,Z,W,{allowMeta:J=!1,skipPrefix:j=!1}={allowMeta:!1,skipPrefix:!1}){if(W=K2(W),X!==""&&X.charCodeAt(0)!==47)X="/"+X;if(this.config.prefix&&!j&&!this.config.scoped)X=this.config.prefix+X;if(W?.type)switch(W.type){case"text":W.type="text/plain";break;case"json":W.type="application/json";break;case"formdata":W.type="multipart/form-data";break;case"urlencoded":W.type="application/x-www-form-urlencoded";break;case"arrayBuffer":W.type="application/octet-stream";break;default:break}const G=this.definitions.type,Y=!this.config.aot,K={...this.validator.getCandidate()},B={body:W?.body??K?.body,headers:W?.headers??K?.headers,params:W?.params??K?.params,query:W?.query??K?.query,cookie:W?.cookie??K?.cookie,response:W?.response??K?.response},U=()=>B.cookie?Z1({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:Y,models:G}):void 0,w=this.config.normalize,D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:h(B.body,{dynamic:Y,models:G,normalize:w}),headers:h(B.headers,{dynamic:Y,models:G,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:D0}),params:h(B.params,{dynamic:Y,models:G,coerce:!0,additionalCoerce:D0}),query:h(B.query,{dynamic:Y,models:G,normalize:w,coerce:!0,additionalCoerce:D0}),cookie:U(),response:X1(B.response,{dynamic:Y,models:G,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=h(B.body,{dynamic:Y,models:G,normalize:w})},createHeaders(){if(this.headers)return this.headers;return this.headers=h(B.headers,{dynamic:Y,models:G,additionalProperties:!w,coerce:!0,additionalCoerce:D0})},createParams(){if(this.params)return this.params;return this.params=h(B.params,{dynamic:Y,models:G,coerce:!0,additionalCoerce:D0})},createQuery(){if(this.query)return this.query;return this.query=h(B.query,{dynamic:Y,models:G,coerce:!0,additionalCoerce:D0})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=U()},createResponse(){if(this.response)return this.response;return this.response=X1(B.response,{dynamic:Y,models:G,normalize:w})}},Q=X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(W=c(W,K),W.tags)if(!W.detail)W.detail={tags:W.tags};else W.detail.tags=W.tags;if(l(this.config.detail))W.detail=d(Object.assign({},this.config.detail),W.detail);this.applyMacro(W);const _=c(this.event,W);if(this.config.aot===!1){if(this.router.dynamic.add($,X,{validator:D,hooks:_,content:W?.type,handle:Z}),this.config.strictPath===!1)this.router.dynamic.add($,Q,{validator:D,hooks:_,content:W?.type,handle:Z});this.router.history.push({method:$,path:X,composed:null,handler:Z,hooks:_});return}const N=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=m0(this.inference),P=()=>H2({app:this,path:X,method:$,localHook:c(W),hooks:_,validator:D,handler:Z,allowMeta:J,inference:M}),V=N?P():(E)=>{return P()(E)},O=this.router.history.length;if(this.routeTree.has($+X))for(let E=0;E<this.router.history.length;E++){const v=this.router.history[E];if(v.path===X&&v.method===$){const R=this.router.history.splice(E,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+X,O);this.router.history.push({method:$,path:X,composed:V,handler:Z,hooks:_});const q=this.router.static.http,L={handler:N?V:void 0,compile:P};if($==="$INTERNALWS"){const E=this.config.strictPath?void 0:X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(X.indexOf(":")===-1&&X.indexOf("*")===-1){const v=q.handlers.length;if(q.handlers.push((R)=>(q.handlers[v]=P())(R)),this.router.static.ws[X]=v,E)this.router.static.ws[E]=v}else if(this.router.ws.add("ws",X,L),E)this.router.ws.add("ws",E,L);return}if(X.indexOf(":")===-1&&X.indexOf("*")===-1){const E=q.handlers.length;if(q.handlers.push((v)=>(q.handlers[E]=P())(v)),!q.map[X])q.map[X]={code:""};if($==="ALL")q.map[X].all=`default: return st[${E}](ctx)\n`;else q.map[X].code=`case '${$}': return st[${E}](ctx)\n${q.map[X].code}`;if(!this.config.strictPath){if(!q.map[Q])q.map[Q]={code:""};if($==="ALL")q.map[Q].all=`default: return st[${E}](ctx)\n`;else q.map[Q].code=`case '${$}': return st[${E}](ctx)\n${q.map[Q].code}`}}else if(this.router.http.add($,X,L),!this.config.strictPath)this.router.http.add($,X.endsWith("/")?X.slice(0,X.length-1):X+"/",L)}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=d(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,X){if(!X)return this.on("parse",$);return this.on($,"parse",X)}onTransform($,X){if(!X)return this.on("transform",$);return this.on($,"transform",X)}resolve($,X){if(!X)X=$,$={as:"local"};const Z={subType:"resolve",fn:X};return this.onBeforeHandle($,Z)}mapResolve($,X){if(!X)X=$,$={as:"local"};const Z={subType:"mapResolve",fn:X};return this.onBeforeHandle($,Z)}onBeforeHandle($,X){if(!X)return this.on("beforeHandle",$);return this.on($,"beforeHandle",X)}onAfterHandle($,X){if(!X)return this.on("afterHandle",$);return this.on($,"afterHandle",X)}mapResponse($,X){if(!X)return this.on("mapResponse",$);return this.on($,"mapResponse",X)}onAfterResponse($,X){if(!X)return this.on("afterResponse",$);return this.on($,"afterResponse",X)}trace($,X){if(!X)X=$,$={as:"local"};if(!Array.isArray(X))X=[X];for(let Z of X)this.on($,"trace",S2(Z));return this}error($,X){switch(typeof $){case"string":return X.prototype[I0]=$,this.definitions.error[$]=X,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[Z,W]of Object.entries($))W.prototype[I0]=Z,this.definitions.error[Z]=W;return this}onError($,X){if(!X)return this.on("error",$);return this.on($,"error",X)}onStop($){return this.on("stop",$),this}on($,X,Z){let W;switch(typeof $){case"string":W=$,Z=X;break;case"object":if(W=X,!Array.isArray(X)&&typeof X==="object")Z=X;break}if(Array.isArray(Z))Z=i(Z);else if(typeof Z==="function")Z=[{fn:Z}];else Z=[Z];const J=Z;for(let j of J)j.scope=typeof $==="string"?"local":$?.as??"local";if(W!=="trace")r0({[W]:J.map((j)=>j.fn)},this.inference);for(let j of J){const G=G2(j,"global",{skipIfHasType:!0});switch(W){case"start":this.event.start.push(G);break;case"request":this.event.request.push(G);break;case"parse":this.event.parse.push(G);break;case"transform":this.event.transform.push(G);break;case"beforeHandle":this.event.beforeHandle.push(G);break;case"afterHandle":this.event.afterHandle.push(G);break;case"mapResponse":this.event.mapResponse.push(G);break;case"afterResponse":this.event.afterResponse.push(G);break;case"trace":this.event.trace.push(G);break;case"error":this.event.error.push(G);break;case"stop":this.event.stop.push(G);break}}return this}propagate(){return k(this.event.parse),k(this.event.transform),k(this.event.beforeHandle),k(this.event.afterHandle),k(this.event.mapResponse),k(this.event.afterResponse),k(this.event.trace),k(this.event.error),this}as($){const X={plugin:"scoped",global:"global"}[$];if(k(this.event.parse,X),k(this.event.transform,X),k(this.event.beforeHandle,X),k(this.event.afterHandle,X),k(this.event.mapResponse,X),k(this.event.afterResponse,X),k(this.event.trace,X),k(this.event.error,X),$==="plugin")this.validator.scoped=R0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=R0(this.validator.global,R0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,X,Z){const W=new X0({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.getServer=()=>this.getServer(),W.inference=m0(this.inference),W.extender={...this.extender};const J=typeof X==="object",j=(J?Z:X)(W);if(this.singleton=d(this.singleton,W.singleton),this.definitions=d(this.definitions,W.definitions),j.event.request.length)this.event.request=[...this.event.request||[],...j.event.request||[]];if(j.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...j.event.mapResponse||[]];return this.model(j.definitions.type),Object.values(W.router.history).forEach(({method:G,path:Y,handler:K,hooks:B})=>{if(Y=(J?"":this.config.prefix)+$+Y,J){const U=X,w=B;this.add(G,Y,K,c(U,{...w||{},error:!w.error?j.event.error:Array.isArray(w.error)?[...w.error||{},...j.event.error||{}]:[w.error,...j.event.error||{}]}))}else this.add(G,Y,K,c(B,{error:j.event.error}),{skipPrefix:!0})}),this}guard($,X){if(!X){if(typeof $==="object"){this.applyMacro($);const J=$.as??"local";if(this.validator[J]={body:$.body??this.validator[J]?.body,headers:$.headers??this.validator[J]?.headers,params:$.params??this.validator[J]?.params,query:$.query??this.validator[J]?.query,response:$.response??this.validator[J]?.response,cookie:$.cookie??this.validator[J]?.cookie},$.parse)this.on({as:J},"parse",$.parse);if($.transform)this.on({as:J},"transform",$.transform);if($.beforeHandle)this.on({as:J},"beforeHandle",$.beforeHandle);if($.afterHandle)this.on({as:J},"afterHandle",$.afterHandle);if($.mapResponse)this.on({as:J},"mapResponse",$.mapResponse);if($.afterResponse)this.on({as:J},"afterResponse",$.afterResponse);if($.error)this.on({as:J},"error",$.error);if($.detail)if(this.config.detail)this.config.detail=d(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 Z=new X0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.inference=m0(this.inference),Z.extender={...this.extender};const W=X(Z);if(this.singleton=d(this.singleton,Z.singleton),this.definitions=d(this.definitions,Z.definitions),W.getServer=()=>this.server,W.event.request.length)this.event.request=[...this.event.request||[],...W.event.request||[]];if(W.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...W.event.mapResponse||[]];return this.model(W.definitions.type),Object.values(Z.router.history).forEach(({method:J,path:j,handler:G,hooks:Y})=>{this.add(J,j,G,c($,{...Y||{},error:!Y.error?W.event.error:Array.isArray(Y.error)?[...Y.error||{},...W.event.error||[]]:[Y.error,...W.event.error||[]]}))}),this}use($,X){if(X?.scoped)return this.guard({},(Z)=>Z.use($));if(Array.isArray($)){let Z=this;for(let W of $)Z=this.use(W);return Z}if($ instanceof Promise)return this.promisedModules.add($.then((Z)=>{if(typeof Z==="function")return Z(this);if(Z instanceof X0)return this._use(Z);if(typeof Z.default==="function")return Z.default(this);if(Z.default instanceof X0)return this._use(Z.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((Z)=>Z.compile())),this;return this._use($)}_use($){if(typeof $==="function"){const J=$(this);if(J instanceof Promise)return this.promisedModules.add(J.then((j)=>{if(j instanceof X0){this.compile();for(let{method:G,path:Y,handler:K,hooks:B}of Object.values(j.router.history))this.add(G,Y,K,c(B,{error:j.event.error}));return j}if(typeof j==="function")return j(this);if(typeof j.default==="function")return j.default(this);return this._use(j)}).then((j)=>j.compile())),this;return J}if($.promisedModules.size)return this.promisedModules.add($.modules.then(()=>this._use($)).then((J)=>J.compile())),this;const{name:X,seed:Z}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);const W=$.config.scoped;if(W){if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const j=Z!==void 0?z0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:G})=>j===G))return this;this.dependencies[X].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.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((G)=>G.subType==="derive").map((G)=>({fn:G.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((G)=>G.subType==="derive").map((G)=>({fn:G.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const J=[];for(let j=0;j<$.extender.macros.length;j++){const G=this.extender.macros[j];if(J.includes(G.checksum))$.extender.macros.splice(j,1),j--;J.push(G.checksum)}if($.onRequest((j)=>{Object.assign(j,this.singleton.decorator),Object.assign(j.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(W===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let j of $.router.history)this.routeTree.set(j.method+`${$.config.prefix}${j.path}`,this.router.history.length),this.router.history.push({...j,path:`${$.config.prefix}${j.path}`,hooks:c(j.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let j of $.router.history)this.routeTree.set(j.method+`${$.config.prefix}${j.path}`,this.router.history.length),this.router.history.push({...j,path:`${$.config.prefix}${j.path}`,hooks:c(j.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),X){if(!(X in this.dependencies))this.dependencies[X]=[];const j=Z!==void 0?z0(X+JSON.stringify(Z)):0;if(!this.dependencies[X].some(({checksum:G})=>j===G))this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions)}else this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions);Q1(this.extender.macros),Q1(this.extender.higherOrderFunctions);const J=[];for(let j=0;j<this.extender.higherOrderFunctions.length;j++){const G=this.extender.higherOrderFunctions[j];if(G.checksum){if(J.includes(G.checksum))this.extender.higherOrderFunctions.splice(j,1),j--;J.push(G.checksum)}}this.inference={body:this.inference.body||$.inference.body,cookie:this.inference.cookie||$.inference.cookie,headers:this.inference.headers||$.inference.headers,query:this.inference.query||$.inference.query,set:this.inference.set||$.inference.set,server:this.inference.server||$.inference.server}}this.decorate($.singleton.decorator),this.state($.singleton.store),this.model($.definitions.type),this.error($.definitions.error),$.extender.macros=this.extender.macros.concat($.extender.macros);for(let{method:J,path:j,handler:G,hooks:Y}of Object.values($.router.history))this.add(J,j,G,c(Y,{error:$.event.error}));if(!W)if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const J=Z!==void 0?z0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:j})=>J===j))return this;this.dependencies[X].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((j)=>j?.subType==="derive").map((j)=>({fn:j.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((j)=>j?.subType==="resolve").map((j)=>({fn:j.toString(),stack:new Error().stack??""}))}),this.event=I1(this.event,P1($.event),J)}else this.event=I1(this.event,P1($.event));return this.validator.global=c(this.validator.global,{...$.validator.global}),this.validator.local=c(this.validator.local,{...$.validator.scoped}),this}macro($){const X={checksum:z0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(X),this}mount($,X){if($ instanceof X0||typeof $==="function"||$.length===0||$==="/"){const J=typeof $==="function"?$:$ instanceof X0?$.compile().fetch:X instanceof X0?X.compile().fetch:X,j=async({request:G,path:Y})=>J(new Request($1(G.url,Y||"/"),G));return this.all("/*",j,{type:"none"}),this}const Z=$.length;if(X instanceof X0)X=X.compile().fetch;const W=async({request:J,path:j})=>X(new Request($1(J.url,j.slice(Z)||"/"),J));return this.all($,W,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),W,{type:"none"}),this}get($,X,Z){return this.add("GET",$,X,Z),this}post($,X,Z){return this.add("POST",$,X,Z),this}put($,X,Z){return this.add("PUT",$,X,Z),this}patch($,X,Z){return this.add("PATCH",$,X,Z),this}delete($,X,Z){return this.add("DELETE",$,X,Z),this}options($,X,Z){return this.add("OPTIONS",$,X,Z),this}all($,X,Z){return this.add("ALL",$,X,Z),this}head($,X,Z){return this.add("HEAD",$,X,Z),this}connect($,X,Z){return this.add("CONNECT",$,X,Z),this}route($,X,Z,W){return this.add($.toUpperCase(),X,Z,W,W?.config),this}ws($,X){const Z=X.transformMessage?Array.isArray(X.transformMessage)?X.transformMessage:[X.transformMessage]:void 0;let W=null;const J=h(X?.body,{models:this.definitions.type,normalize:this.config.normalize}),j=h(X?.response,{models:this.definitions.type,normalize:this.config.normalize}),G=(Y)=>{if(typeof Y==="string"){const K=Y?.charCodeAt(0);if(K===47||K===123)try{Y=JSON.parse(Y)}catch{}else if(J1(Y))Y=+Y}if(Z?.length)for(let K=0;K<Z.length;K++){const B=Z[K](Y);if(B!==void 0)Y=B}return Y};return this.route("$INTERNALWS",$,(Y)=>{const{set:K,path:B,qi:U,headers:w,query:D,params:Q}=Y;if(W===null)W=this.getServer();if(W?.upgrade(Y.request,{headers:typeof X.upgrade==="function"?X.upgrade(Y):X.upgrade,data:{validator:j,open(_){X.open?.(new x0(_,Y))},message:(_,N)=>{const M=G(N);if(J?.Check(M)===!1)return void _.send(new H("message",J,M).message);X.message?.(new x0(_,Y),M)},drain(_){X.drain?.(new x0(_,Y))},close(_,N,M){X.close?.(new x0(_,Y),N,M)}}}))return;return K.status=400,"Expected a websocket connection"},{beforeHandle:X.beforeHandle,transform:X.transform,headers:X.headers,params:X.params,query:X.query}),this}state($,X,Z){if(X===void 0)Z=$,$={as:"append"},X="";else if(Z===void 0){if(typeof $==="string")Z=X,X=$,$={as:"append"};else if(typeof $==="object")Z=X,X=""}const{as:W}=$;if(typeof X!=="string")return this;switch(typeof Z){case"object":if(X){if(X in this.singleton.store)this.singleton.store[X]=d(this.singleton.store[X],Z,{override:W==="override"});else this.singleton.store[X]=Z;return this}if(Z===null)return this;return this.singleton.store=d(this.singleton.store,Z,{override:W==="override"}),this;case"function":if(X){if(W==="override"||!(X in this.singleton.store))this.singleton.store[X]=Z}else this.singleton.store=Z(this.singleton.store);return this;default:if(W==="override"||!(X in this.singleton.store))this.singleton.store[X]=Z;return this}}decorate($,X,Z){if(X===void 0)Z=$,$={as:"append"},X="";else if(Z===void 0){if(typeof $==="string")Z=X,X=$,$={as:"append"};else if(typeof $==="object")Z=X,X=""}const{as:W}=$;if(typeof X!=="string")return this;switch(typeof Z){case"object":if(X){if(X in this.singleton.decorator)this.singleton.decorator[X]=d(this.singleton.decorator[X],Z,{override:W==="override"});else this.singleton.decorator[X]=Z;return this}if(Z===null)return this;return this.singleton.decorator=d(this.singleton.decorator,Z,{override:W==="override"}),this;case"function":if(X){if(W==="override"||!(X in this.singleton.decorator))this.singleton.decorator[X]=Z}else this.singleton.decorator=Z(this.singleton.decorator);return this;default:if(W==="override"||!(X in this.singleton.decorator))this.singleton.decorator[X]=Z;return this}}derive($,X){if(!X)X=$,$={as:"local"};const Z={subType:"derive",fn:X};return this.onTransform($,Z)}model($,X){switch(typeof $){case"object":return Object.entries($).forEach(([Z,W])=>{if(!(Z in this.definitions.type))this.definitions.type[Z]=W}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=X,this}mapDerive($,X){if(!X)X=$,$={as:"local"};const Z={subType:"mapDerive",fn:X};return this.onTransform($,Z)}affix($,X,Z){if(Z==="")return this;const W=["_","-"," "],J=(K)=>K[0].toUpperCase()+K.slice(1),j=$==="prefix"?(K,B)=>W.includes(K.at(-1)??"")?K+B:K+J(B):W.includes(Z.at(-1)??"")?(K,B)=>B+K:(K,B)=>B+J(K),G=(K)=>{const B={};switch(K){case"decorator":for(let U in this.singleton.decorator)B[j(Z,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[j(Z,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[j(Z,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[j(Z,U)]=this.definitions.error[U];this.definitions.error=B;break}},Y=Array.isArray(X)?X:[X];for(let K of Y.some((B)=>B==="all")?["decorator","state","model","error"]:Y)G(K);return this}prefix($,X){return this.affix("prefix",$,X)}suffix($,X){return this.affix("suffix",$,X)}compile(){if(this.fetch=this.config.aot?E1(this):b1(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?E1(this):b1(this))($)};handleError=async($,X)=>(this.handleError=this.config.aot?R1(this):E2(this))($,X);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,X)=>{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(!J1($))throw new Error("Port must be a numeric value");$=parseInt($)}const Z=this.fetch,W=typeof $==="object"?{development:!p0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...C1||{}},fetch:Z,error:this.outerErrorHandler}:{development:!p0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...C1||{}},port:$,fetch:Z,error:this.outerErrorHandler};this.server=Bun?.serve(W);for(let J=0;J<this.event.start.length;J++)this.event.start[J].fn(this);if(X)X(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{A as t,$1 as replaceUrlPath,Q2 as replaceSchemaType,d0 as redirect,x as mergeObjectArray,c as mergeHook,r as mapValueError,y as mapResponse,f as mapEarlyResponse,J0 as mapCompactResponse,h as getSchemaValidator,X1 as getResponseSchemaValidator,M0 as form,A1 as error,X0 as default,Q1 as deduplicateChecksum,m0 as cloneInference,z0 as checksum,H as ValidationError,Y0 as StatusMap,Y1 as ParseError,P0 as NotFoundError,W1 as InvertedStatusMap,v0 as InvalidCookieSignature,G1 as InternalServerError,X0 as Elysia,I0 as ERROR_CODE,i0 as ELYSIA_TRACE,m as ELYSIA_RESPONSE,N0 as ELYSIA_REQUEST_ID,H3 as ELYSIA_FORM_DATA,G0 as Cookie};
504
+ error = ${O0(K)?"await":""} onMapResponse[${Y}](context)\n`,B()}return G.resolve(),Z+=`\nreturn mapResponse(${j} error, set, context.request)\n}\n}`,Function("inject",Z)({app:$,mapResponse:y,ERROR_CODE:P0,ELYSIA_RESPONSE:m,ELYSIA_TRACE:l0,ELYSIA_REQUEST_ID:z0})};var T1=($)=>async(X)=>{const Z=X.url,W=Z.indexOf("/",11),J=Z.indexOf("?",W+1),j=J===-1?Z.substring(W):Z.substring(W,J),G={cookie:{},status:200,headers:{}},Y=Object.assign({},$.singleton.decorator,{set:G,store:$.singleton.store,request:X,path:j,qi:J,redirect:m0});try{for(let I=0;I<$.event.request.length;I++){const V=$.event.request[I].fn;let O=V(Y);if(O instanceof Promise)O=await O;if(O=f(O,G),O)return Y.response=O}const K=$.router.dynamic.find(X.method,j)??$.router.dynamic.find("ALL",j);if(!K)throw new N0;const{handle:B,hooks:U,validator:w,content:D}=K.store;let Q;if(X.method!=="GET"&&X.method!=="HEAD")if(D)switch(D){case"application/json":Q=await X.json();break;case"text/plain":Q=await X.text();break;case"application/x-www-form-urlencoded":Q=x0(await X.text());break;case"application/octet-stream":Q=await X.arrayBuffer();break;case"multipart/form-data":Q={};const I=await X.formData();for(let V of I.keys()){if(Q[V])continue;const O=I.getAll(V);if(O.length===1)Q[V]=O[0];else Q[V]=O}break}else{let I=X.headers.get("content-type");if(I){const V=I.indexOf(";");if(V!==-1)I=I.slice(0,V);Y.contentType=I;for(let O=0;O<U.parse.length;O++){const q=U.parse[O].fn;let L=q(Y,I);if(L instanceof Promise)L=await L;if(L){Q=L;break}}if(delete Y.contentType,Q===void 0)switch(I){case"application/json":Q=await X.json();break;case"text/plain":Q=await X.text();break;case"application/x-www-form-urlencoded":Q=x0(await X.text());break;case"application/octet-stream":Q=await X.arrayBuffer();break;case"multipart/form-data":Q={};const O=await X.formData();for(let q of O.keys()){if(Q[q])continue;const L=O.getAll(q);if(L.length===1)Q[q]=L[0];else Q[q]=L}break}}}Y.body=Q,Y.params=K?.params||void 0,Y.query=J===-1?{}:x0(Z.substring(J+1)),Y.headers={};for(let[I,V]of X.headers.entries())Y.headers[I]=V;const _=Object.assign({},$.config?.cookie,w?.cookie?.config),P=X.headers.get("cookie");Y.cookie=await s0(Y.set,P,_?{secrets:_.secrets!==void 0?typeof _.secrets==="string"?_.secrets:_.secrets.join(","):void 0,sign:_.sign===!0?!0:_.sign!==void 0?typeof _.sign==="string"?_.sign:_.sign.join(","):void 0}:void 0);for(let I=0;I<U.transform.length;I++){const V=U.transform[I],O=V.fn(Y);if(V.subType==="derive")if(O instanceof Promise)Object.assign(Y,await O);else Object.assign(Y,O);else if(O instanceof Promise)await O}if(w){if(w.createHeaders?.()){const I={};for(let V in X.headers)I[V]=X.headers.get(V);if(w.headers.Check(I)===!1)throw new H("header",w.headers,I)}if(w.createParams?.()?.Check(Y.params)===!1)throw new H("params",w.params,Y.params);if(w.createQuery?.()?.Check(Y.query)===!1)throw new H("query",w.query,Y.query);if(w.createCookie?.()){const I={};for(let[V,O]of Object.entries(Y.cookie))I[V]=O.value;if(w.cookie.Check(I)===!1)throw new H("cookie",w.cookie,I)}if(w.createBody?.()?.Check(Q)===!1)throw new H("body",w.body,Q)}for(let I=0;I<U.beforeHandle.length;I++){let V=U.beforeHandle[I].fn(Y);if(V instanceof Promise)V=await V;if(V!==void 0){Y.response=V;for(let q=0;q<U.afterHandle.length;q++){let L=U.afterHandle[q].fn(Y);if(L instanceof Promise)L=await L;if(L)V=L}const O=f(V,Y.set);if(O)return Y.response=O}}let M=B(Y);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){const I=M[m]??(G.status?typeof G.status==="string"?G0[G.status]:G.status:200),V=w?.createResponse?.()?.[I];if(V?.Check(M)===!1)throw new H("response",V,M)}else{Y.response=M;for(let I=0;I<U.afterHandle.length;I++){let V=U.afterHandle[I].fn(Y);if(V instanceof Promise)V=await V;const O=f(V,Y.set);if(O!==void 0){const q=w?.response?.[O.status];if(q?.Check(O)===!1)throw new H("response",q,O);return Y.response=O}}}if(Y.set.cookie&&_?.sign){const I=!_.secrets?void 0:typeof _.secrets==="string"?_.secrets:_.secrets[0];if(_.sign===!0)for(let[V,O]of Object.entries(Y.set.cookie))Y.set.cookie[V].value=await R0(O.value,"${secret}");else{const V=w?.cookie?.schema?.properties;for(let O of _.sign){if(!(O in V))continue;if(Y.set.cookie[O]?.value)Y.set.cookie[O].value=await R0(Y.set.cookie[O].value,I)}}}return Y.response=y(M,Y.set)}catch(K){if(K.status)G.status=K.status;return $.handleError(Y,K)}finally{for(let K of $.event.afterResponse)await K.fn(Y)}},_2=($)=>async(X,Z)=>{const W=Object.assign(X,{error:Z,code:Z.code});W.set=X.set;for(let J=0;J<$.event.error.length;J++){let G=$.event.error[J].fn(W);if(G instanceof Promise)G=await G;if(G!==void 0&&G!==null)return X.response=y(G,X.set)}return new Response(typeof Z.cause==="string"?Z.cause:Z.message,{headers:X.set.headers,status:Z.status??500})};class X0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=O1;version=O1;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:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return E0(E0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new U0,ws:new U0,dynamic:new U0,static:{http:{handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new P1;return this._promisedModules}constructor($){if($?.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,X=Bun?.env??process.env){if(h($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(X)===!1){const W=new H("env",$,X);throw new Error(W.all.map((J)=>J.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:M0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){const X=j2({globalHook:this.event,localHook:$}),Z={events:{global:this.event,local:$},onParse:X("parse"),onTransform:X("transform"),onBeforeHandle:X("beforeHandle"),onAfterHandle:X("afterHandle"),mapResponse:X("mapResponse"),onAfterResponse:X("afterResponse"),onError:X("error")};for(let W of this.extender.macros)J2(W.fn(Z),$)}}applyConfig($){return this.config={prefix:"",aot:!0,strictPath:!1,global:!1,analytic:!1,normalize:!0,...$,cookie:{path:"/",...$?.cookie},experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},this}get models(){const $={};for(let[X,Z]of Object.entries(this.definitions.type))$[X]=h(Z);return $}add($,X,Z,W,{allowMeta:J=!1,skipPrefix:j=!1}={allowMeta:!1,skipPrefix:!1}){if(W=Q2(W),X!==""&&X.charCodeAt(0)!==47)X="/"+X;if(this.config.prefix&&!j&&!this.config.scoped)X=this.config.prefix+X;if(W?.type)switch(W.type){case"text":W.type="text/plain";break;case"json":W.type="application/json";break;case"formdata":W.type="multipart/form-data";break;case"urlencoded":W.type="application/x-www-form-urlencoded";break;case"arrayBuffer":W.type="application/octet-stream";break;default:break}const G=this.definitions.type,Y=!this.config.aot,K={...this.validator.getCandidate()},B={body:W?.body??K?.body,headers:W?.headers??K?.headers,params:W?.params??K?.params,query:W?.query??K?.query,cookie:W?.cookie??K?.cookie,response:W?.response??K?.response},U=()=>B.cookie?e0({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:Y,models:G}):void 0,w=this.config.normalize,D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:h(B.body,{dynamic:Y,models:G,normalize:w}),headers:h(B.headers,{dynamic:Y,models:G,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:F0}),params:h(B.params,{dynamic:Y,models:G,coerce:!0,additionalCoerce:F0}),query:h(B.query,{dynamic:Y,models:G,normalize:w,coerce:!0,additionalCoerce:F0}),cookie:U(),response:o0(B.response,{dynamic:Y,models:G,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=h(B.body,{dynamic:Y,models:G,normalize:w})},createHeaders(){if(this.headers)return this.headers;return this.headers=h(B.headers,{dynamic:Y,models:G,additionalProperties:!w,coerce:!0,additionalCoerce:F0})},createParams(){if(this.params)return this.params;return this.params=h(B.params,{dynamic:Y,models:G,coerce:!0,additionalCoerce:F0})},createQuery(){if(this.query)return this.query;return this.query=h(B.query,{dynamic:Y,models:G,coerce:!0,additionalCoerce:F0})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=U()},createResponse(){if(this.response)return this.response;return this.response=o0(B.response,{dynamic:Y,models:G,normalize:w})}},Q=X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(W=c(W,K),W.tags)if(!W.detail)W.detail={tags:W.tags};else W.detail.tags=W.tags;if(p(this.config.detail))W.detail=d(Object.assign({},this.config.detail),W.detail);this.applyMacro(W);const _=c(this.event,W);if(this.config.aot===!1){if(this.router.dynamic.add($,X,{validator:D,hooks:_,content:W?.type,handle:Z}),this.config.strictPath===!1)this.router.dynamic.add($,Q,{validator:D,hooks:_,content:W?.type,handle:Z});this.router.history.push({method:$,path:X,composed:null,handler:Z,hooks:_});return}const P=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=h0(this.inference),I=()=>w2({app:this,path:X,method:$,localHook:c(W),hooks:_,validator:D,handler:Z,allowMeta:J,inference:M}),V=P?I():(E)=>{return I()(E)},O=this.router.history.length;if(this.routeTree.has($+X))for(let E=0;E<this.router.history.length;E++){const v=this.router.history[E];if(v.path===X&&v.method===$){const R=this.router.history.splice(E,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+X,O);this.router.history.push({method:$,path:X,composed:V,handler:Z,hooks:_});const q=this.router.static.http,L={handler:P?V:void 0,compile:I};if($==="$INTERNALWS"){const E=this.config.strictPath?void 0:X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(X.indexOf(":")===-1&&X.indexOf("*")===-1){const v=q.handlers.length;if(q.handlers.push((R)=>(q.handlers[v]=I())(R)),this.router.static.ws[X]=v,E)this.router.static.ws[E]=v}else if(this.router.ws.add("ws",X,L),E)this.router.ws.add("ws",E,L);return}if(X.indexOf(":")===-1&&X.indexOf("*")===-1){const E=q.handlers.length;if(q.handlers.push((v)=>(q.handlers[E]=I())(v)),!q.map[X])q.map[X]={code:""};if($==="ALL")q.map[X].all=`default: return st[${E}](ctx)\n`;else q.map[X].code=`case '${$}': return st[${E}](ctx)\n${q.map[X].code}`;if(!this.config.strictPath){if(!q.map[Q])q.map[Q]={code:""};if($==="ALL")q.map[Q].all=`default: return st[${E}](ctx)\n`;else q.map[Q].code=`case '${$}': return st[${E}](ctx)\n${q.map[Q].code}`}}else if(this.router.http.add($,X,L),!this.config.strictPath)this.router.http.add($,X.endsWith("/")?X.slice(0,X.length-1):X+"/",L)}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=d(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,X){if(!X)return this.on("parse",$);return this.on($,"parse",X)}onTransform($,X){if(!X)return this.on("transform",$);return this.on($,"transform",X)}resolve($,X){if(!X)X=$,$={as:"local"};const Z={subType:"resolve",fn:X};return this.onBeforeHandle($,Z)}mapResolve($,X){if(!X)X=$,$={as:"local"};const Z={subType:"mapResolve",fn:X};return this.onBeforeHandle($,Z)}onBeforeHandle($,X){if(!X)return this.on("beforeHandle",$);return this.on($,"beforeHandle",X)}onAfterHandle($,X){if(!X)return this.on("afterHandle",$);return this.on($,"afterHandle",X)}mapResponse($,X){if(!X)return this.on("mapResponse",$);return this.on($,"mapResponse",X)}onAfterResponse($,X){if(!X)return this.on("afterResponse",$);return this.on($,"afterResponse",X)}trace($,X){if(!X)X=$,$={as:"local"};if(!Array.isArray(X))X=[X];for(let Z of X)this.on($,"trace",B2(Z));return this}error($,X){switch(typeof $){case"string":return X.prototype[P0]=$,this.definitions.error[$]=X,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[Z,W]of Object.entries($))W.prototype[P0]=Z,this.definitions.error[Z]=W;return this}onError($,X){if(!X)return this.on("error",$);return this.on($,"error",X)}onStop($){return this.on("stop",$),this}on($,X,Z){let W;switch(typeof $){case"string":W=$,Z=X;break;case"object":if(W=X,!Array.isArray(X)&&typeof X==="object")Z=X;break}if(Array.isArray(Z))Z=i(Z);else if(typeof Z==="function")Z=[{fn:Z}];else Z=[Z];const J=Z;for(let j of J)j.scope=typeof $==="string"?"local":$?.as??"local";if(W!=="trace")i0({[W]:J.map((j)=>j.fn)},this.inference);for(let j of J){const G=W2(j,"global",{skipIfHasType:!0});switch(W){case"start":this.event.start.push(G);break;case"request":this.event.request.push(G);break;case"parse":this.event.parse.push(G);break;case"transform":this.event.transform.push(G);break;case"beforeHandle":this.event.beforeHandle.push(G);break;case"afterHandle":this.event.afterHandle.push(G);break;case"mapResponse":this.event.mapResponse.push(G);break;case"afterResponse":this.event.afterResponse.push(G);break;case"trace":this.event.trace.push(G);break;case"error":this.event.error.push(G);break;case"stop":this.event.stop.push(G);break}}return this}propagate(){return k(this.event.parse),k(this.event.transform),k(this.event.beforeHandle),k(this.event.afterHandle),k(this.event.mapResponse),k(this.event.afterResponse),k(this.event.trace),k(this.event.error),this}as($){const X={plugin:"scoped",global:"global"}[$];if(k(this.event.parse,X),k(this.event.transform,X),k(this.event.beforeHandle,X),k(this.event.afterHandle,X),k(this.event.mapResponse,X),k(this.event.afterResponse,X),k(this.event.trace,X),k(this.event.error,X),$==="plugin")this.validator.scoped=E0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=E0(this.validator.global,E0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,X,Z){const W=new X0({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.getServer=()=>this.getServer(),W.inference=h0(this.inference),W.extender={...this.extender};const J=typeof X==="object",j=(J?Z:X)(W);if(this.singleton=d(this.singleton,W.singleton),this.definitions=d(this.definitions,W.definitions),j.event.request.length)this.event.request=[...this.event.request||[],...j.event.request||[]];if(j.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...j.event.mapResponse||[]];return this.model(j.definitions.type),Object.values(W.router.history).forEach(({method:G,path:Y,handler:K,hooks:B})=>{if(Y=(J?"":this.config.prefix)+$+Y,J){const U=X,w=B;this.add(G,Y,K,c(U,{...w||{},error:!w.error?j.event.error:Array.isArray(w.error)?[...w.error||{},...j.event.error||{}]:[w.error,...j.event.error||{}]}))}else this.add(G,Y,K,c(B,{error:j.event.error}),{skipPrefix:!0})}),this}guard($,X){if(!X){if(typeof $==="object"){this.applyMacro($);const J=$.as??"local";if(this.validator[J]={body:$.body??this.validator[J]?.body,headers:$.headers??this.validator[J]?.headers,params:$.params??this.validator[J]?.params,query:$.query??this.validator[J]?.query,response:$.response??this.validator[J]?.response,cookie:$.cookie??this.validator[J]?.cookie},$.parse)this.on({as:J},"parse",$.parse);if($.transform)this.on({as:J},"transform",$.transform);if($.beforeHandle)this.on({as:J},"beforeHandle",$.beforeHandle);if($.afterHandle)this.on({as:J},"afterHandle",$.afterHandle);if($.mapResponse)this.on({as:J},"mapResponse",$.mapResponse);if($.afterResponse)this.on({as:J},"afterResponse",$.afterResponse);if($.error)this.on({as:J},"error",$.error);if($.detail)if(this.config.detail)this.config.detail=d(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 Z=new X0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.inference=h0(this.inference),Z.extender={...this.extender};const W=X(Z);if(this.singleton=d(this.singleton,Z.singleton),this.definitions=d(this.definitions,Z.definitions),W.getServer=()=>this.server,W.event.request.length)this.event.request=[...this.event.request||[],...W.event.request||[]];if(W.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...W.event.mapResponse||[]];return this.model(W.definitions.type),Object.values(Z.router.history).forEach(({method:J,path:j,handler:G,hooks:Y})=>{this.add(J,j,G,c($,{...Y||{},error:!Y.error?W.event.error:Array.isArray(Y.error)?[...Y.error||{},...W.event.error||[]]:[Y.error,...W.event.error||[]]}))}),this}use($,X){if(X?.scoped)return this.guard({},(Z)=>Z.use($));if(Array.isArray($)){let Z=this;for(let W of $)Z=this.use(W);return Z}if($ instanceof Promise)return this.promisedModules.add($.then((Z)=>{if(typeof Z==="function")return Z(this);if(Z instanceof X0)return this._use(Z);if(typeof Z.default==="function")return Z.default(this);if(Z.default instanceof X0)return this._use(Z.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((Z)=>Z.compile())),this;return this._use($)}_use($){if(typeof $==="function"){const J=$(this);if(J instanceof Promise)return this.promisedModules.add(J.then((j)=>{if(j instanceof X0){this.compile();for(let{method:G,path:Y,handler:K,hooks:B}of Object.values(j.router.history))this.add(G,Y,K,c(B,{error:j.event.error}));return j}if(typeof j==="function")return j(this);if(typeof j.default==="function")return j.default(this);return this._use(j)}).then((j)=>j.compile())),this;return J}if($.promisedModules.size)return this.promisedModules.add($.modules.then(()=>this._use($)).then((J)=>J.compile())),this;const{name:X,seed:Z}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);const W=$.config.scoped;if(W){if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const j=Z!==void 0?M0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:G})=>j===G))return this;this.dependencies[X].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.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((G)=>G.subType==="derive").map((G)=>({fn:G.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((G)=>G.subType==="derive").map((G)=>({fn:G.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const J=[];for(let j=0;j<$.extender.macros.length;j++){const G=this.extender.macros[j];if(J.includes(G.checksum))$.extender.macros.splice(j,1),j--;J.push(G.checksum)}if($.onRequest((j)=>{Object.assign(j,this.singleton.decorator),Object.assign(j.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(W===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let j of $.router.history)this.routeTree.set(j.method+`${$.config.prefix}${j.path}`,this.router.history.length),this.router.history.push({...j,path:`${$.config.prefix}${j.path}`,hooks:c(j.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let j of $.router.history)this.routeTree.set(j.method+`${$.config.prefix}${j.path}`,this.router.history.length),this.router.history.push({...j,path:`${$.config.prefix}${j.path}`,hooks:c(j.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),X){if(!(X in this.dependencies))this.dependencies[X]=[];const j=Z!==void 0?M0(X+JSON.stringify(Z)):0;if(!this.dependencies[X].some(({checksum:G})=>j===G))this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions)}else this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions);W1(this.extender.macros),W1(this.extender.higherOrderFunctions);const J=[];for(let j=0;j<this.extender.higherOrderFunctions.length;j++){const G=this.extender.higherOrderFunctions[j];if(G.checksum){if(J.includes(G.checksum))this.extender.higherOrderFunctions.splice(j,1),j--;J.push(G.checksum)}}this.inference={body:this.inference.body||$.inference.body,cookie:this.inference.cookie||$.inference.cookie,headers:this.inference.headers||$.inference.headers,query:this.inference.query||$.inference.query,set:this.inference.set||$.inference.set,server:this.inference.server||$.inference.server}}this.decorate($.singleton.decorator),this.state($.singleton.store),this.model($.definitions.type),this.error($.definitions.error),$.extender.macros=this.extender.macros.concat($.extender.macros);for(let{method:J,path:j,handler:G,hooks:Y}of Object.values($.router.history))this.add(J,j,G,c(Y,{error:$.event.error}));if(!W)if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const J=Z!==void 0?M0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:j})=>J===j))return this;this.dependencies[X].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((j)=>j?.subType==="derive").map((j)=>({fn:j.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((j)=>j?.subType==="resolve").map((j)=>({fn:j.toString(),stack:new Error().stack??""}))}),this.event=M1(this.event,z1($.event),J)}else this.event=M1(this.event,z1($.event));return this.validator.global=c(this.validator.global,{...$.validator.global}),this.validator.local=c(this.validator.local,{...$.validator.scoped}),this}macro($){const X={checksum:M0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(X),this}mount($,X){if($ instanceof X0||typeof $==="function"||$.length===0||$==="/"){const J=typeof $==="function"?$:$ instanceof X0?$.compile().fetch:X instanceof X0?X.compile().fetch:X,j=async({request:G,path:Y})=>J(new Request(a0(G.url,Y||"/"),G));return this.all("/*",j,{type:"none"}),this}const Z=$.length;if(X instanceof X0)X=X.compile().fetch;const W=async({request:J,path:j})=>X(new Request(a0(J.url,j.slice(Z)||"/"),J));return this.all($,W,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),W,{type:"none"}),this}get($,X,Z){return this.add("GET",$,X,Z),this}post($,X,Z){return this.add("POST",$,X,Z),this}put($,X,Z){return this.add("PUT",$,X,Z),this}patch($,X,Z){return this.add("PATCH",$,X,Z),this}delete($,X,Z){return this.add("DELETE",$,X,Z),this}options($,X,Z){return this.add("OPTIONS",$,X,Z),this}all($,X,Z){return this.add("ALL",$,X,Z),this}head($,X,Z){return this.add("HEAD",$,X,Z),this}connect($,X,Z){return this.add("CONNECT",$,X,Z),this}route($,X,Z,W){return this.add($.toUpperCase(),X,Z,W,W?.config),this}ws($,X){const Z=X.transformMessage?Array.isArray(X.transformMessage)?X.transformMessage:[X.transformMessage]:void 0;let W=null;const J=h(X?.body,{models:this.definitions.type,normalize:this.config.normalize}),j=h(X?.response,{models:this.definitions.type,normalize:this.config.normalize}),G=(Y)=>{if(typeof Y==="string"){const K=Y?.charCodeAt(0);if(K===47||K===123)try{Y=JSON.parse(Y)}catch{}else if(X1(Y))Y=+Y}if(Z?.length)for(let K=0;K<Z.length;K++){const B=Z[K](Y);if(B!==void 0)Y=B}return Y};return this.route("$INTERNALWS",$,(Y)=>{const{set:K,path:B,qi:U,headers:w,query:D,params:Q}=Y;if(W===null)W=this.getServer();if(W?.upgrade(Y.request,{headers:typeof X.upgrade==="function"?X.upgrade(Y):X.upgrade,data:{validator:j,open(_){X.open?.(new b0(_,Y))},message:(_,P)=>{const M=G(P);if(J?.Check(M)===!1)return void _.send(new H("message",J,M).message);X.message?.(new b0(_,Y),M)},drain(_){X.drain?.(new b0(_,Y))},close(_,P,M){X.close?.(new b0(_,Y),P,M)}}}))return;return K.status=400,"Expected a websocket connection"},{beforeHandle:X.beforeHandle,transform:X.transform,headers:X.headers,params:X.params,query:X.query}),this}state($,X,Z){if(X===void 0)Z=$,$={as:"append"},X="";else if(Z===void 0){if(typeof $==="string")Z=X,X=$,$={as:"append"};else if(typeof $==="object")Z=X,X=""}const{as:W}=$;if(typeof X!=="string")return this;switch(typeof Z){case"object":if(X){if(X in this.singleton.store)this.singleton.store[X]=d(this.singleton.store[X],Z,{override:W==="override"});else this.singleton.store[X]=Z;return this}if(Z===null)return this;return this.singleton.store=d(this.singleton.store,Z,{override:W==="override"}),this;case"function":if(X){if(W==="override"||!(X in this.singleton.store))this.singleton.store[X]=Z}else this.singleton.store=Z(this.singleton.store);return this;default:if(W==="override"||!(X in this.singleton.store))this.singleton.store[X]=Z;return this}}decorate($,X,Z){if(X===void 0)Z=$,$={as:"append"},X="";else if(Z===void 0){if(typeof $==="string")Z=X,X=$,$={as:"append"};else if(typeof $==="object")Z=X,X=""}const{as:W}=$;if(typeof X!=="string")return this;switch(typeof Z){case"object":if(X){if(X in this.singleton.decorator)this.singleton.decorator[X]=d(this.singleton.decorator[X],Z,{override:W==="override"});else this.singleton.decorator[X]=Z;return this}if(Z===null)return this;return this.singleton.decorator=d(this.singleton.decorator,Z,{override:W==="override"}),this;case"function":if(X){if(W==="override"||!(X in this.singleton.decorator))this.singleton.decorator[X]=Z}else this.singleton.decorator=Z(this.singleton.decorator);return this;default:if(W==="override"||!(X in this.singleton.decorator))this.singleton.decorator[X]=Z;return this}}derive($,X){if(!X)X=$,$={as:"local"};const Z={subType:"derive",fn:X};return this.onTransform($,Z)}model($,X){switch(typeof $){case"object":return Object.entries($).forEach(([Z,W])=>{if(!(Z in this.definitions.type))this.definitions.type[Z]=W}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=X,this}mapDerive($,X){if(!X)X=$,$={as:"local"};const Z={subType:"mapDerive",fn:X};return this.onTransform($,Z)}affix($,X,Z){if(Z==="")return this;const W=["_","-"," "],J=(K)=>K[0].toUpperCase()+K.slice(1),j=$==="prefix"?(K,B)=>W.includes(K.at(-1)??"")?K+B:K+J(B):W.includes(Z.at(-1)??"")?(K,B)=>B+K:(K,B)=>B+J(K),G=(K)=>{const B={};switch(K){case"decorator":for(let U in this.singleton.decorator)B[j(Z,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[j(Z,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[j(Z,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[j(Z,U)]=this.definitions.error[U];this.definitions.error=B;break}},Y=Array.isArray(X)?X:[X];for(let K of Y.some((B)=>B==="all")?["decorator","state","model","error"]:Y)G(K);return this}prefix($,X){return this.affix("prefix",$,X)}suffix($,X){return this.affix("suffix",$,X)}compile(){if(this.fetch=this.config.aot?q1(this):T1(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?q1(this):T1(this))($)};handleError=async($,X)=>(this.handleError=this.config.aot?L1(this):_2(this))($,X);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,X)=>{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(!X1($))throw new Error("Port must be a numeric value");$=parseInt($)}const Z=this.fetch,W=typeof $==="object"?{development:!c0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...V1||{}},fetch:Z,error:this.outerErrorHandler}:{development:!c0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...V1||{}},port:$,fetch:Z,error:this.outerErrorHandler};this.server=Bun?.serve(W);for(let J=0;J<this.event.start.length;J++)this.event.start[J].fn(this);if(X)X(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{A as t,a0 as replaceUrlPath,Z2 as replaceSchemaType,m0 as redirect,x as mergeObjectArray,c as mergeHook,r as mapValueError,y as mapResponse,f as mapEarlyResponse,J0 as mapCompactResponse,h as getSchemaValidator,o0 as getResponseSchemaValidator,D0 as form,I1 as error,X0 as default,W1 as deduplicateChecksum,h0 as cloneInference,M0 as checksum,H as ValidationError,G0 as StatusMap,j1 as ParseError,N0 as NotFoundError,$1 as InvertedStatusMap,k0 as InvalidCookieSignature,J1 as InternalServerError,X0 as Elysia,P0 as ERROR_CODE,l0 as ELYSIA_TRACE,m as ELYSIA_RESPONSE,z0 as ELYSIA_REQUEST_ID,_3 as ELYSIA_FORM_DATA,Q0 as Cookie};
505
505
 
506
- //# debugId=DE03E501969979FE64756E2164756E21
506
+ //# debugId=ADE7519B657B669F64756E2164756E21