elysia 1.1.3 → 1.1.4

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,63 +1,63 @@
1
1
  // @bun
2
- var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames:O2}=Object;var A2=Object.prototype.hasOwnProperty;var Y1=($,X,Z)=>{Z=$!=null?I2(V2($)):{};const W=X||!$||!$.__esModule?E1(Z,"default",{value:$,enumerable:!0}):Z;for(let J of O2($))if(!A2.call(W,J))E1(W,J,{get:()=>$[J],enumerable:!0});return W};var C2=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var s0=C2((e3,t1)=>{var Q3=function($){var X=$.indexOf("%");if(X===-1)return $;var Z=$.length,W="",J=0,j=0,G=X,Y=i1;while(X>-1&&X<Z){var K=n1($[X+1],4),B=n1($[X+2],0),U=K|B,w=F1[U];if(Y=F1[256+Y+w],j=j<<6|U&F1[364+w],Y===i1)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===j3)return null;else{if(X+=3,X<Z&&$.charCodeAt(X)===37)continue;return null}}return W+$.slice(J)},n1=function($,X){var Z=G3[$];return Z===void 0?255:Z<<X},i1=12,j3=0,F1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],G3={"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};t1.exports=Q3});var S0=($,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}},R1=($,X)=>({...$,part:X}),b1=($)=>({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[$]=S0("/");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=b1(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=S0(D);continue}B=_.inert}for(let Q=0;;){if(Q===D.length){if(Q<B.part.length){const _=R1(B,B.part.slice(Q));Object.assign(B,S0(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=S0(D.slice(Q));B.inert[D.charCodeAt(Q)]=P,B=P;break}if(D[Q]!==B.part[Q]){const _=R1(B,B.part.slice(Q)),P=S0(D.slice(Q));Object.assign(B,S0(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=b1(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 B1(X,X.length,Z,0)}}var B1=($,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=B1($,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=B1($,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 q0=($)=>{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")},S2=($)=>{if($.startsWith("async"))$=$.slice(6);let X=-1;if($.charCodeAt(0)===40){if(X=$.indexOf("=>",$.indexOf(")")),X!==-1){let J=X;while(J>0)if($.charCodeAt(--J)===41)break;let j=$.slice(X+2);if(j.charCodeAt(0)===32)j=j.trimLeft();return[$.slice(1,J),j,{isArrowReturn:j.charCodeAt(0)!==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}]},q2=($)=>{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]},L2=($)=>{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]},x1=($)=>{while(!0){const X=$.indexOf(":");if(X===-1)break;let Z=$.indexOf(",",X);if(Z===-1)Z=$.indexOf("}",X)-1;if(Z===0)Z=$.length;$=$.slice(0,X)+$.slice(Z)}return $},g1=($)=>{let X=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)X=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let Z=[];while(!0){let[W,J]=q2($);if(W===-1)break;if(Z.push($.slice(0,W-1)),$.charCodeAt(J)===44)J++;$=$.slice(J)}if($=x1($),$)Z=Z.concat($.split(","));return{hasParenthesis:X,parameters:Z}},T2=($,X)=>{const{parameters:Z,hasParenthesis:W}=g1($);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;if(W)return`{ ${Z.join(", ")} }`;return Z.join(", ")},H2=($,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 f1=($,X,Z=0)=>{if(Z>5)return[];const W=[];let J=X;while(!0){let j=H2(" = "+$,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]=L2(G);W.push(x1(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=f1(j,X);if(G.length>0)W.push(...G)}return W},E2=($)=>{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()},R2=($,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){const j=g1(J).parameters;if(!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 b2=($,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] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to the developer:"),console.log("--- body ---"),console.log(X),console.log("--- context ---"),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}]=S2(J.toString()),K=T2(j,X),B=E2(K);if(B){const U=f1(B,G);if(U.splice(0,-1,B),!b2(B,G,X))R2(G,U,X);if(!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 m0} from"@sinclair/typebox/value";import{Kind as T0,TransformKind as $2} from"@sinclair/typebox";import{Value as F0} from"@sinclair/typebox/value";import{TypeCompiler as Z2} from"@sinclair/typebox/compiler";import{TypeRegistry as d1} from"@sinclair/typebox";import{TypeSystem as L0} from"@sinclair/typebox/system";import{Type as f0,FormatRegistry as o} from"@sinclair/typebox";import{TypeCompiler as h1} from"@sinclair/typebox/compiler";import{Value as a} from"@sinclair/typebox/value";var x2=function($){return $%4===0&&($%100!==0||$%400===0)},u1=function($){const X=g2.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&&x2(Z)?29:f2[W])},K1=function($){return function X(Z){const W=y2.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}},y1=function($){const X=K1($);return function Z(W){const J=W.split(v2);return J.length===2&&u1(J[0])&&X(J[1])}},h2=function($){return k2.test($)&&u2.test($)},m2=function($){return v1.lastIndex=0,v1.test($)},l2=function($){return Number.isInteger($)&&$<=c2&&$>=d2},p2=function($){return Number.isInteger($)},k1=function(){return!0},n2=function($){if(i2.test($))return!1;try{return new RegExp($),!0}catch(X){return!1}},n0={date:u1,time:K1(!0),"date-time":y1(!0),"iso-time":K1(!1),"iso-date-time":y1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h2,"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:n2,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:m2,int32:{type:"number",validate:l2},int64:{type:"number",validate:p2},float:{type:"number",validate:k1},double:{type:"number",validate:k1},password:!0,binary:!0},g2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,f2=[0,31,28,31,30,31,30,31,31,30,31,30,31],y2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,v2=/t|\s/i,k2=/\/|:/,u2=/^(?:[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,v1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,d2=-2147483648,c2=2147483647,i2=/[^\\]\\Z/;import{TypeSystemPolicy as p3,TypeSystem as i3,TypeSystemDuplicateFormat as n3,TypeSystemDuplicateTypeKind as t3} from"@sinclair/typebox/system";import{TypeCompiler as r3,TypeCheck as a3} from"@sinclair/typebox/compiler";var c1=/(\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))/,l1=/(?: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\([^)]+\)/,p1=/^(?:(?:(?:(?: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)?)?$/,t2=n0.date,s2=n0["date-time"];if(!o.Has("date"))L0.Format("date",($)=>{const X=$.replace(/"/g,"");if(c1.test(X)||l1.test(X)||p1.test(X)||t2(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});if(!o.Has("date-time"))L0.Format("date-time",($)=>{const X=$.replace(/"/g,"");if(c1.test(X)||l1.test(X)||p1.test(X)||s2(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)L0.Format(X,(W)=>Z.test(W));else if(typeof Z==="function")L0.Format(X,Z)}});var A=Object.assign({},f0),m1=($)=>{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 $},U1=($,X)=>{if(!(X instanceof Blob))return!1;if($.minSize&&X.size<m1($.minSize))return!1;if($.maxSize&&X.size>m1($.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},r2=d1.Get("Files")??L0.Type("File",U1),a2=d1.Get("Files")??L0.Type("Files",($,X)=>{if(!Array.isArray(X))return U1($,X);if($.minItems&&X.length<$.minItems)return!1;if($.maxItems&&X.length>$.maxItems)return!1;for(let Z=0;Z<X.length;Z++)if(!U1($,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 j0={Numeric:($)=>{const X=f0.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=f0.Date($);return A.Transform(A.Union([f0.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=f0.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=h1.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=h1.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:r2,Files:($={})=>A.Transform(a2($)).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=j0.BooleanString;A.ObjectString=j0.ObjectString;A.ArrayString=j0.ArrayString;A.Numeric=j0.Numeric;A.File=($={})=>j0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});A.Files=($={})=>j0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});A.Nullable=($)=>j0.Nullable($);A.MaybeEmpty=j0.MaybeEmpty;A.Cookie=j0.Cookie;A.Date=j0.Date;var e2=function($,X){if(typeof $!=="string")throw new TypeError("argument str must be a string");var Z={},W=X||{},J=W.decode||X3,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]=J3(B,J)}j=Y+1}return Z},$3=function($,X,Z){var W=Z||{},J=W.encode||Z3;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(!W3(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},X3=function($){return $.indexOf("%")!==-1?decodeURIComponent($):$},Z3=function($){return encodeURIComponent($)},W3=function($){return o2.call($)==="[object Date]"||$ instanceof Date},J3=function($,X){try{return X($)}catch(Z){return $}};/*!
2
+ var V2=Object.create;var{defineProperty:R1,getPrototypeOf:A2,getOwnPropertyNames:O2}=Object;var C2=Object.prototype.hasOwnProperty;var Y1=($,X,Z)=>{Z=$!=null?V2(A2($)):{};const W=X||!$||!$.__esModule?R1(Z,"default",{value:$,enumerable:!0}):Z;for(let J of O2($))if(!C2.call(W,J))R1(W,J,{get:()=>$[J],enumerable:!0});return W};var S2=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var s0=S2(($8,s1)=>{var G3=function($){var X=$.indexOf("%");if(X===-1)return $;var Z=$.length,W="",J=0,Q=0,G=X,Y=n1;while(X>-1&&X<Z){var K=t1($[X+1],4),B=t1($[X+2],0),U=K|B,w=D1[U];if(Y=D1[256+Y+w],Q=Q<<6|U&D1[364+w],Y===n1)W+=$.slice(J,G),W+=Q<=65535?String.fromCharCode(Q):String.fromCharCode(55232+(Q>>10),56320+(Q&1023)),Q=0,J=X+3,X=G=$.indexOf("%",J);else if(Y===j3)return null;else{if(X+=3,X<Z&&$.charCodeAt(X)===37)continue;return null}}return W+$.slice(J)},t1=function($,X){var Z=Y3[$];return Z===void 0?255:Z<<X},n1=12,j3=0,D1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],Y3={"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=G3});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}},b1=($,X)=>({...$,part:X}),x1=($)=>({name:$,store:null,inert:null});class D0{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 Q=X[X.length-1]==="*",G=X.match(D0.regex.optionalParams);if(G){const w=X.replaceAll("?","");this.add($,w,Z,{ignoreError:W});for(let F=0;F<G.length;F++){let j=X.replace("/"+G[F],"");this.add($,j,Z,{ignoreError:!0})}return Z}if(G)X=X.replaceAll("?","");if(this.history.find(([w,F,j])=>w===$&&F===X))return Z;if(Q||G&&X.charCodeAt(X.length-1)===63)X=X.slice(0,-1);if(!J)this.history.push([$,X,Z]);const Y=X.split(D0.regex.static),K=X.match(D0.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 F=Y[w];if(w>0){const j=K[U++].slice(1);if(B.params===null)B.params=x1(j);else if(B.params.name!==j)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${j}" 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(F);continue}B=_.inert}for(let j=0;;){if(j===F.length){if(j<B.part.length){const _=b1(B,B.part.slice(j));Object.assign(B,q0(F,[_]))}break}if(j===B.part.length){if(B.inert===null)B.inert={};const _=B.inert[F.charCodeAt(j)];if(_){B=_,F=F.slice(j),j=0;continue}const z=q0(F.slice(j));B.inert[F.charCodeAt(j)]=z,B=z;break}if(F[j]!==B.part[j]){const _=b1(B,B.part.slice(j)),z=q0(F.slice(j));Object.assign(B,q0(B.part.slice(0,j),[_,z])),B=z;break}++j}}if(U<K.length){const w=K[U].slice(1);if(B.params===null)B.params=x1(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(Q){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 B1(X,X.length,Z,0)}}var B1=($,X,Z,W)=>{const J=Z.part,Q=J.length,G=W+Q;if(Q>1){if(G>X)return null;if(Q<15){for(let Y=1,K=W+1;Y<Q;++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=B1($,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=B1($,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")},q2=($)=>{if($.startsWith("async"))$=$.slice(6);let X=-1;if($.charCodeAt(0)===40){if(X=$.indexOf("=>",$.indexOf(")")),X!==-1){let J=X;while(J>0)if($.charCodeAt(--J)===41)break;let Q=$.slice(X+2);if(Q.charCodeAt(0)===32)Q=Q.trimLeft();return[$.slice(1,J),Q,{isArrowReturn:Q.charCodeAt(0)!==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),Q=$.slice(0,J),G=Q.lastIndexOf(")")+1,Y=$.slice(J+1);return[Q.slice(Z,G),"{"+Y,{isArrowReturn:!1}]}const W=$.split("\n",2);return[W[0],W[1],{isArrowReturn:!1}]},L2=($)=>{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]},T2=($)=>{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]},g1=($)=>{while(!0){const X=$.indexOf(":");if(X===-1)break;let Z=$.indexOf(",",X);if(Z===-1)Z=$.indexOf("}",X)-1;if(Z===-2)Z=$.length;$=$.slice(0,X)+$.slice(Z)}return $},f1=($)=>{let X=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)X=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let Z=[];while(!0){let[J,Q]=L2($);if(J===-1)break;if(Z.push($.slice(0,J-1)),$.charCodeAt(Q)===44)Q++;$=$.slice(Q)}if($=g1($),$)Z=Z.concat($.split(","));const W=[];for(let J of Z){if(J.indexOf(",")===-1){W.push(J);continue}for(let Q of J.split(","))W.push(Q.trim())}return Z=W,{hasParenthesis:X,parameters:Z}},H2=($,X)=>{const{parameters:Z,hasParenthesis:W}=f1($);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;if(W)return`{ ${Z.join(", ")} }`;return Z.join(", ")},E2=($,X,Z)=>{const W=X.indexOf($+"\n",Z),J=X.indexOf($+"\t",Z),Q=X.indexOf($+",",Z),G=X.indexOf($+";",Z),Y=X.indexOf($+" ",Z);return[W,J,Q,G,Y].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var y1=($,X,Z=0)=>{if(Z>5)return[];const W=[];let J=X;while(!0){let Q=E2(" = "+$,J);if(Q===-1){const K=J.indexOf(" = "+$);if(K+3+$.length!==J.length)break;Q=K}const G=J.slice(0,Q);let Y=G.slice(G.lastIndexOf(" ")+1);if(Y==="}"){const[K,B]=T2(G);W.push(g1(J.slice(K,B))),J=J.slice(Q+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(Q+3+$.length)}for(let Q of W){if(Q.charCodeAt(0)===123)continue;const G=y1(Q,X);if(G.length>0)W.push(...G)}return W},R2=($)=>{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()},b2=($,X,Z)=>{const W=(J,Q)=>$.includes(Q+"."+J)||$.includes(Q+'["'+J+'"]')||$.includes(Q+"['"+J+"']");for(let J of X){if(!J)continue;if(J.charCodeAt(0)===123){const Q=f1(J).parameters;if(!Z.query&&Q.includes("query"))Z.query=!0;if(!Z.headers&&Q.includes("headers"))Z.headers=!0;if(!Z.body&&Q.includes("body"))Z.body=!0;if(!Z.cookie&&Q.includes("cookie"))Z.cookie=!0;if(!Z.set&&Q.includes("set"))Z.set=!0;if(!Z.query&&Q.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 x2=($,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] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to the developer:"),console.log("--- body ---"),console.log(X),console.log("--- context ---"),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,[Q,G,{isArrowReturn:Y}]=q2(J.toString()),K=H2(Q,X),B=R2(K);if(B){const U=y1(B,G);if(U.splice(0,-1,B),!x2(B,G,X))b2(G,U,X);if(!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 m0} from"@sinclair/typebox/value";import{Kind as H0,TransformKind as X2} from"@sinclair/typebox";import{Value as G0} from"@sinclair/typebox/value";import{TypeCompiler as W2} from"@sinclair/typebox/compiler";import{TypeRegistry as c1} from"@sinclair/typebox";import{TypeSystem as T0} from"@sinclair/typebox/system";import{Type as f0,FormatRegistry as o} from"@sinclair/typebox";import{TypeCompiler as m1} from"@sinclair/typebox/compiler";import{Value as a} from"@sinclair/typebox/value";var g2=function($){return $%4===0&&($%100!==0||$%400===0)},h1=function($){const X=f2.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&&g2(Z)?29:y2[W])},K1=function($){return function X(Z){const W=k2.exec(Z);if(!W)return!1;const J=+W[1],Q=+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&&Q<=59&&G<60)return!0;const w=Q-U*K,F=J-B*K-(w<0?1:0);return(F===23||F===-1)&&(w===59||w===-1)&&G<61}},k1=function($){const X=K1($);return function Z(W){const J=W.split(v2);return J.length===2&&h1(J[0])&&X(J[1])}},m2=function($){return u2.test($)&&h2.test($)},d2=function($){return v1.lastIndex=0,v1.test($)},p2=function($){return Number.isInteger($)&&$<=l2&&$>=c2},i2=function($){return Number.isInteger($)},u1=function(){return!0},t2=function($){if(n2.test($))return!1;try{return new RegExp($),!0}catch(X){return!1}},n0={date:h1,time:K1(!0),"date-time":k1(!0),"iso-time":K1(!1),"iso-date-time":k1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:m2,"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:t2,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:d2,int32:{type:"number",validate:p2},int64:{type:"number",validate:i2},float:{type:"number",validate:u1},double:{type:"number",validate:u1},password:!0,binary:!0},f2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,y2=[0,31,28,31,30,31,30,31,31,30,31,30,31],k2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,v2=/t|\s/i,u2=/\/|:/,h2=/^(?:[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,v1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,c2=-2147483648,l2=2147483647,n2=/[^\\]\\Z/;import{TypeSystemPolicy as i3,TypeSystem as n3,TypeSystemDuplicateFormat as t3,TypeSystemDuplicateTypeKind as s3} from"@sinclair/typebox/system";import{TypeCompiler as a3,TypeCheck as o3} 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))/,p1=/(?: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\([^)]+\)/,i1=/^(?:(?:(?:(?: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)?)?$/,s2=n0.date,r2=n0["date-time"];if(!o.Has("date"))T0.Format("date",($)=>{const X=$.replace(/"/g,"");if(l1.test(X)||p1.test(X)||i1.test(X)||s2(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(l1.test(X)||p1.test(X)||i1.test(X)||r2(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 O=Object.assign({},f0),d1=($)=>{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 $},U1=($,X)=>{if(!(X instanceof Blob))return!1;if($.minSize&&X.size<d1($.minSize))return!1;if($.maxSize&&X.size>d1($.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},a2=c1.Get("Files")??T0.Type("File",U1),o2=c1.Get("Files")??T0.Type("Files",($,X)=>{if(!Array.isArray(X))return U1($,X);if($.minItems&&X.length<$.minItems)return!1;if($.maxItems&&X.length>$.maxItems)return!1;for(let Z=0;Z<X.length;Z++)if(!U1($,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 Q0={Numeric:($)=>{const X=f0.Number($);return O.Transform(O.Union([O.String({format:"numeric",default:0}),O.Number($)],$)).Decode((Z)=>{const W=+Z;if(isNaN(W))return Z;if($&&!a.Check(X,W))throw new T("property",X,W);return W}).Encode((Z)=>Z)},Date:($)=>{const X=f0.Date($);return O.Transform(O.Union([f0.Date($),O.String({format:"date",default:(new Date()).toISOString()}),O.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 T("property",X,W);return W}).Encode((Z)=>{if(typeof Z==="string")return new Date(Z);return Z})},BooleanString:($)=>{const X=f0.Boolean($);return O.Transform(O.Union([O.String({format:"boolean",default:!1}),O.Boolean($)],$)).Decode((Z)=>{if(typeof Z==="string")return Z==="true";if($&&!a.Check(X,Z))throw new T("property",X,Z);return Z}).Encode((Z)=>Z)},ObjectString:($,X)=>{const Z=O.Object($,X),W=JSON.stringify(a.Create(Z));let J;try{J=m1.Compile(Z)}catch{}return O.Transform(O.Union([O.String({format:"ObjectString",default:W}),Z])).Decode((Q)=>{if(typeof Q==="string"){if(Q.charCodeAt(0)!==123)throw new T("property",Z,Q);try{Q=JSON.parse(Q)}catch{throw new T("property",Z,Q)}if(J){if(!J.Check(Q))throw new T("property",Z,Q);return J.Decode(Q)}if(!a.Check(Z,Q))throw new T("property",Z,Q);return a.Decode(Z,Q)}return Q}).Encode((Q)=>{if(typeof Q==="string")try{Q=JSON.parse(Q)}catch{throw new T("property",Z,Q)}if(!a.Check(Z,Q))throw new T("property",Z,Q);return JSON.stringify(Q)})},ArrayString:($={},X)=>{const Z=O.Array($,X),W=JSON.stringify(a.Create(Z));let J;try{J=m1.Compile(Z)}catch{}return O.Transform(O.Union([O.String({format:"ArrayString",default:W}),Z])).Decode((Q)=>{if(typeof Q==="string"){if(Q.charCodeAt(0)!==91)throw new T("property",Z,Q);try{Q=JSON.parse(Q)}catch{throw new T("property",Z,Q)}if(J){if(!J.Check(Q))throw new T("property",Z,Q);return J.Decode(Q)}if(!a.Check(Z,Q))throw new T("property",Z,Q);return a.Decode(Z,Q)}return Q}).Encode((Q)=>{if(typeof Q==="string")try{Q=JSON.parse(Q)}catch{throw new T("property",Z,Q)}if(!a.Check(Z,Q))throw new T("property",Z,Q);return JSON.stringify(Q)})},File:a2,Files:($={})=>O.Transform(o2($)).Decode((X)=>{if(Array.isArray(X))return X;return[X]}).Encode((X)=>X),Nullable:($)=>O.Union([$,O.Null()]),MaybeEmpty:($)=>O.Union([$,O.Null(),O.Undefined()]),Cookie:($,{domain:X,expires:Z,httpOnly:W,maxAge:J,path:Q,priority:G,sameSite:Y,secure:K,secrets:B,sign:U,...w}={})=>{const F=O.Object($,w);return F.config={domain:X,expires:Z,httpOnly:W,maxAge:J,path:Q,priority:G,sameSite:Y,secure:K,secrets:B,sign:U},F}};O.BooleanString=Q0.BooleanString;O.ObjectString=Q0.ObjectString;O.ArrayString=Q0.ArrayString;O.Numeric=Q0.Numeric;O.File=($={})=>Q0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});O.Files=($={})=>Q0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});O.Nullable=($)=>Q0.Nullable($);O.MaybeEmpty=Q0.MaybeEmpty;O.Cookie=Q0.Cookie;O.Date=Q0.Date;var $3=function($,X){if(typeof $!=="string")throw new TypeError("argument str must be a string");var Z={},W=X||{},J=W.decode||Z3,Q=0;while(Q<$.length){var G=$.indexOf("=",Q);if(G===-1)break;var Y=$.indexOf(";",Q);if(Y===-1)Y=$.length;else if(Y<G){Q=$.lastIndexOf(";",G-1)+1;continue}var K=$.slice(Q,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]=Q3(B,J)}Q=Y+1}return Z},X3=function($,X,Z){var W=Z||{},J=W.encode||W3;if(typeof J!=="function")throw new TypeError("option encode is invalid");if(!t0.test($))throw new TypeError("argument name is invalid");var Q=J(X);if(Q&&!t0.test(Q))throw new TypeError("argument val is invalid");var G=$+"="+Q;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(!J3(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},Z3=function($){return $.indexOf("%")!==-1?decodeURIComponent($):$},W3=function($){return encodeURIComponent($)},J3=function($){return e2.call($)==="[object Date]"||$ instanceof Date},Q3=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 w1=e2,_1=$3;var o2=Object.prototype.toString,t0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var r1=Y1(s0(),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 s1=($,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))}})},r0=async($,X,{secrets:Z,sign:W,...J}={})=>{if(!X)return s1($,{},J);const j=typeof Z==="string";if(W&&W!==!0&&!Array.isArray(W))W=[W];const G={},Y=w1(X);for(let[K,B]of Object.entries(Y)){let U=r1.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 D1(U,Z);if(w===!1)throw new y0(K);U=w}else{let w=!0;for(let D=0;D<Z.length;D++){const Q=await D1(U,Z[D]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new y0(K)}}G[K]={value:U}}return s1($,G,J)};var a1="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(a1)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($)},o1=($,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 $},e1=($)=>{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(_1(Z,typeof J==="object"?JSON.stringify(J):J+"",W))}if(X.length===0)return;if(X.length===1)return X[0];return X},k0=async($,X,Z)=>{let W=$.next();if(W instanceof Promise)W=await W;if(W.done){if(X)return f(W.value,X,Z);return e(W.value,Z)}return new Response(new ReadableStream({async start(J){let j=!1;if(Z?.signal.addEventListener("abort",()=>{j=!0;try{J.close()}catch{}}),W.value!==void 0&&W.value!==null)J.enqueue(Buffer.from(W.value.toString()));for await(let G of $){if(j)break;if(G===void 0||G===null)continue;J.enqueue(Buffer.from(G.toString())),await new Promise((Y)=>setTimeout(()=>Y(),0))}try{J.close()}catch{}}}),{...X,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...X?.headers}})},f=($,X,Z)=>{if(p(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&&p(X.cookie)){const W=e1(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=o1(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(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 Q0($,X);case"Promise":return $.then((j)=>f(j,X));case"Function":return f($(),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(a1)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)=>f(j,X));if($ instanceof Error)return Q0($,X);if(typeof $?.next==="function")return k0($,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(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 Q0($,X);case"Promise":return $.then((J)=>{const j=e(J,Z);if(j!==void 0)return j;return new Response("")});case"Function":return e($(),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)=>f(J,X));if($ instanceof Error)return Q0($,X);if(typeof $?.next==="function")return k0($,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($)}},y=($,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=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&&p(X.cookie)){const W=e1(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=o1(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(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=y(j,X);if(G!==void 0)return G});case"Error":return Q0($,X);case"Function":return y($(),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)=>y(j,X));if($ instanceof Error)return Q0($,X);if(typeof $?.next==="function")return k0($,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(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=y(J,X);if(j!==void 0)return j});case"Error":return Q0($,X);case"Function":return e($(),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)=>y(J,X));if($ instanceof Error)return Q0($,X);if(typeof $?.next==="function")return k0($,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($)}},e=($,X)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return v0($);case"Array":return Response.json($);case"Object":if($[m])return f($.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 Q0($);case"Promise":return $.then((Z)=>e(Z,X));case"Function":return e($(),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)=>e(Z,X));if($ instanceof Error)return Q0($);if(typeof $?.next==="function")return k0($,void 0,X);if("toResponse"in $)return e($.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($)}},Q0=($,X)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:X?.status!==200?X?.status??500:500,headers:X?.headers});var F3=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()},Y3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||p(Object.getPrototypeOf($)),M1=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,X,{skipKeys:Z,override:W=!0}={})=>{if(!M1($)||!M1(X))return $;for(let[J,j]of Object.entries(X)){if(Z?.includes(J))continue;if(!M1(j)||!(J in $)||Y3(j)){if(W||!(J in $))$[J]=j;continue}$[J]=d($[J],j,{skipKeys:Z,override:W})}return $},B3=($,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},K3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],U3=K3.reduce(($,X)=>($[X]=!0,$),{}),W2=($,X)=>{const Z=(W)=>typeof W==="object"&&Object.keys(W).every(X1);if(Z($)&&Z(X))return{...$,...X};return X??$},H0=($,X)=>{return{body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,response:W2($?.response,X?.response)}},c=($,X)=>{return{...$,...X,body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,response:W2($?.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)}},J2=($,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[T0];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($[T0]===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(F0.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(F0.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[$2]=_[$2];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[T0]){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=J2(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(s)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(D){const Q=[...B.Errors(w)].map(s);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}const B=Z2.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(s)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){const D=[...B.Errors(U)].map(s);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)=>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=Z2.Compile(K,B);if(W&&K.additionalProperties===!1)w.Clean=U;return w};if(T0 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]=T0 in U?G(U,Object.values(X)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=J;Y[+K]=T0 in B?G(B,Object.values(X)):B}),Y},w3=typeof Bun!=="undefined",_3=w3&&typeof Bun.hash==="function",z0=($)=>{if(_3)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())}],e0=({validator:$,defaultConfig:X={},config:Z,dynamic:W,models:J})=>{let j=h($,{dynamic:W,models:J,additionalProperties:!0,coerce:!0,additionalCoerce:D0});if(p(X))if(j)j.config=B3(j.config,Z);else j=h(A.Cookie({}),{dynamic:W,models:J,additionalProperties:!0}),j.config=X;return j},$0=($,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},z1=($,X,Z)=>{return{start:x($.start,$0(Z,X?.start)),request:x($.request,$0(Z,X?.request)),parse:x($.parse,$0(Z,X?.parse)),transform:x($.transform,$0(Z,X?.transform)),beforeHandle:x($.beforeHandle,$0(Z,X?.beforeHandle)),afterHandle:x($.afterHandle,$0(Z,X?.afterHandle)),mapResponse:x($.mapResponse,$0(Z,X?.mapResponse)),afterResponse:x($.afterResponse,$0(Z,X?.afterResponse)),trace:x($.trace,$0(Z,X?.trace)),error:x($.error,$0(Z,X?.error)),stop:x($.stop,$0(Z,X?.stop))}},j2=($,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},$1=Object.fromEntries(Object.entries(Y0).map(([$,X])=>[X,$])),X2=new TextEncoder,E0=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",X2.encode(X),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),W=await crypto.subtle.sign("HMAC",Z,X2.encode($));return $+"."+F3(Buffer.from(W).toString("base64"))},D1=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 E0(Z,X)===$?Z:!1},Q2=($,X)=>{if(!$||typeof $!=="object"||!X)return;for(let[Z,W]of Object.entries(X)){if(Z in U3||!(Z in $))continue;const J=$[Z];if(typeof J==="function")J(W),delete X[Z]}},G2=({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)}},D3=($)=>{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=($)=>D3($)!==null;class N1{$;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},Y2=($)=>{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)}},I1=($)=>{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)}},u0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),h0=($,X=302)=>Response.redirect($,X),M3=Symbol("ElysiaFormData"),P0=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},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 $},v=($,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 B2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,N0=Symbol("ElysiaErrorCode"),m=Symbol("ElysiaResponse"),d0=(B2?.NODE_ENV??B2?.ENV)==="production",V1=($,X)=>{const Z=X??($ in $1?$1[$]:$);return{[m]:Y0[$]??$,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 I0 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 y0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,X){super(X??`"${$}" has invalid cookie signature`);this.key=$}}var s=($)=>{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=d0?void 0:("Errors"in X)?X.Errors(Z).First():m0.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(s)}}):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(d0)G=JSON.stringify({type:"validation",on:$,summary:s(W).summary,message:W?.message,found:Z});else{const Y=X?.schema??X,K="Errors"in X?[...X.Errors(Z)].map(s):[...m0.Errors(X,Z)].map(s);let B;try{B=m0.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(s):[...m0.Errors(this.validator,this.value)].map(s)}static simplifyModel($){const X="schema"in $?$.schema:$;try{return m0.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 O1={open($){$.data.open?.($)},message($,X){$.data.message?.($,X)},drain($){$.data.drain?.($)},close($,X,Z){$.data.close?.($,X,Z)}};class R0{$;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 A1="1.1.3";import{Value as l0} from"@sinclair/typebox/value";var C1=Y1(s0(),1);function b0($){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(K2," ");if(Y)W=C1.default(W)||W;if(!X[W]){if(w){if(J=$.slice(G+1,Q),U)J=J.replace(K2," ");if(K)J=C1.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 K2=/\+/g;var w2=Y1(s0(),1);var c0=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: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 k={...E,end:M,error:V,index:Q,onStop(R){if(R)L.push(R);return M}};P(k);for(let R=0;R<q.length;R++)q[R](k);return(R=null)=>{const U0=performance.now();if(R)w=R;const b={end:U0,error:R,get elapsed(){return U0-E.begin}};for(let W0=0;W0<L.length;W0++)L[W0](b);I(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 P={end:_,error:Q,get elapsed(){return _-K.begin}};for(let M=0;M<Y.length;M++)Y[M](P);W(_),j(Q)}}}]},U2=($)=>{return(X)=>{const[Z,W]=B0(),[J,j]=B0(),[G,Y]=B0(),[K,B]=B0(),[U,w]=B0(),[D,Q]=B0(),[_,P]=B0(),[M,I]=B0(),[V,O]=B0();return $({id:X[P0],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 P3=(new Headers()).toJSON,_2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},K0=($)=>{if(!$)return!1;const X=$?.schema;return!!X&&_2.optional in X},X0=($)=>{if(!$)return!1;const X=$?.schema??$;if(X.anyOf)return X.anyOf.some(X0);if(X.someOf)return X.someOf.some(X0);if(X.allOf)return X.allOf.some(X0);if(X.not)return X.not.some(X0);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(X0(J))return!0}else if(J.anyOf){for(let j=0;j<J.anyOf.length;j++)if(X0(J.anyOf[j]))return!0}return J.additionalProperties}return!1}return!1},q1=({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 w1=$3,_1=X3;var e2=Object.prototype.toString,t0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var a1=Y1(s0(),1);class B0{$;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 r1=($,X,Z)=>{if(!$.cookie)$.cookie={};return new Proxy(X,{get(W,J){if(J in X)return new B0(J,$.cookie,Object.assign({},Z??{},X[J]));return new B0(J,$.cookie,Object.assign({},Z))}})},r0=async($,X,{secrets:Z,sign:W,...J}={})=>{if(!X)return r1($,{},J);const Q=typeof Z==="string";if(W&&W!==!0&&!Array.isArray(W))W=[W];const G={},Y=w1(X);for(let[K,B]of Object.entries(Y)){let U=a1.default(B);if(W===!0||W?.includes(K)){if(!Z)throw new Error("No secret is provided to cookie plugin");if(Q){const w=await F1(U,Z);if(w===!1)throw new y0(K);U=w}else{let w=!0;for(let F=0;F<Z.length;F++){const j=await F1(U,Z[F]);if(j!==!1){w=!0,U=j;break}}if(!w)throw new y0(K)}}G[K]={value:U}}return r1($,G,J)};var o1="toJSON"in new Headers,p=($)=>{if(!$)return!1;for(let X in $)return!0;return!1},k0=($,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(o1)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($)},e1=($,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 $},$2=($)=>{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(_1(Z,typeof J==="object"?JSON.stringify(J):J+"",W))}if(X.length===0)return;if(X.length===1)return X[0];return X},v0=async($,X,Z)=>{let W=$.next();if(W instanceof Promise)W=await W;if(W.done){if(X)return f(W.value,X,Z);return e(W.value,Z)}return new Response(new ReadableStream({async start(J){let Q=!1;if(Z?.signal.addEventListener("abort",()=>{Q=!0;try{J.close()}catch{}}),W.value!==void 0&&W.value!==null)if(typeof W.value==="object")try{J.enqueue(Buffer.from(JSON.stringify(W.value)))}catch{J.enqueue(Buffer.from(W.value.toString()))}else J.enqueue(Buffer.from(W.value.toString()));for await(let G of $){if(Q)break;if(G===void 0||G===null)continue;if(typeof G==="object")try{J.enqueue(Buffer.from(JSON.stringify(G)))}catch{J.enqueue(Buffer.from(G.toString()))}else J.enqueue(Buffer.from(G.toString()));await new Promise((Y)=>setTimeout(()=>Y(),0))}try{J.close()}catch{}}}),{...X,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...X?.headers}})},f=($,X,Z)=>{if(p(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=K0[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=$2(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=e1(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return k0($,X);case"Array":return Response.json($,X);case"Object":const W=$[d];if(W)return X.status=W,f($.response,X,Z);for(let Q in Object.values($))switch(Q?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(z0($));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 Q of X.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let G of X.headers.getSetCookie())$.headers.append("set-cookie",G)}else $.headers.append(Q,X.headers?.get(Q)??"");else for(let Q in X.headers)$.headers.append(Q,X.headers[Q]);if($.status!==X.status)X.status=$.status;return $;case"Error":return j0($,X);case"Promise":return $.then((Q)=>f(Q,X));case"Function":return f($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"Cookie":if($ instanceof B0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response){let Q=!1;if(X.headers instanceof Headers)for(let G of X.headers.keys())if(G==="set-cookie"){if(Q)continue;Q=!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(o1)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((Q)=>f(Q,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return v0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const Q=$.charCodeAt(0);if(Q===123||Q===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 k0($,X);case"Array":return Response.json($);case"Object":const W=$[d];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(z0($),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 Q=e(J,Z);if(Q!==void 0)return Q;return new Response("")});case"Function":return e($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof B0)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)=>f(J,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return v0($,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($)}},y=($,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=K0[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=$2(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=e1(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return k0($,X);case"Array":return Response.json($,X);case"Object":const W=$[d];if(W)return X.status=W,y($.response,X,Z);for(let Q in Object.values($))switch(Q?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(z0($),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 Q of X.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let G of X.headers.getSetCookie())$.headers.append("set-cookie",G)}else $.headers.append(Q,X.headers?.get(Q)??"");else for(let Q in X.headers)$.headers.append(Q,X.headers[Q]);if($.status!==X.status)X.status=$.status;return $;case"Promise":return $.then((Q)=>{const G=y(Q,X);if(G!==void 0)return G});case"Error":return j0($,X);case"Function":return y($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"FormData":return new Response($);case"Cookie":if($ instanceof B0)return new Response($.value,X);return new Response($?.toString(),X);default:if($ instanceof Response){let Q=!1;if(X.headers instanceof Headers)for(let G of X.headers.keys())if(G==="set-cookie"){if(Q)continue;Q=!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((Q)=>y(Q,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return v0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const Q=$.charCodeAt(0);if(Q===123||Q===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 k0($,X);case"Array":return Response.json($);case"Object":const W=$[d];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(z0($),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 Q=y(J,X);if(Q!==void 0)return Q});case"Error":return j0($,X);case"Function":return e($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof B0)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)=>y(J,X));if($ instanceof Error)return j0($,X);if(typeof $?.next==="function")return v0($,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($)}},e=($,X)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return k0($);case"Array":return Response.json($);case"Object":if($[d])return f($.response,{status:$[d],headers:{}});$:for(let Z of Object.values($))switch(Z?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(z0($));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)=>e(Z,X));case"Function":return e($(),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)=>e(Z,X));if($ instanceof Error)return j0($);if(typeof $?.next==="function")return v0($,void 0,X);if("toResponse"in $)return e($.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 F3=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()},B3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||p(Object.getPrototypeOf($)),M1=($)=>$&&typeof $==="object"&&!Array.isArray($),c=($,X,{skipKeys:Z,override:W=!0}={})=>{if(!M1($)||!M1(X))return $;for(let[J,Q]of Object.entries(X)){if(Z?.includes(J))continue;if(!M1(Q)||!(J in $)||B3(Q)){if(W||!(J in $))$[J]=Q;continue}$[J]=c($[J],Q,{skipKeys:Z,override:W})}return $},K3=($,X)=>{const{properties:Z,...W}=$??{},{properties:J,...Q}=X??{};return c(W,Q)},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},U3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],w3=U3.reduce(($,X)=>($[X]=!0,$),{}),J2=($,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:J2($?.response,X?.response)}},l=($,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:c(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 h($,X,Z);for(let W of X)$=h($,W,Z);return $},h=($,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]=h($.oneOf[G],X,Z);return $}if($.anyOf){for(let G=0;G<$.anyOf.length;G++)$.anyOf[G]=h($.anyOf[G],X,Z);return $}if($.allOf){for(let G=0;G<$.allOf.length;G++)$.allOf[G]=h($.allOf[G],X,Z);return $}if($.not){for(let G=0;G<$.not.length;G++)$.not[G]=h($.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,...F}=$,j=X.to();let _;const z=(M)=>{if(U&&M.type==="object"){const V={};for(let[A,q]of Object.entries(U))V[A]=h(q,X,!1);return{...F,...M,properties:V}}if(w&&M.type==="array")return{...F,...M,items:h(w,X,!1)};const N={...F,...M};if(delete N.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")_=O.ObjectString(U,F),N.default=JSON.stringify(G0.Create(O.Object(U))),N.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")_=O.ArrayString(w,F),N.default=JSON.stringify(G0.Create(O.Array(w))),N.items=w;return N};if(J){if(U){const M={};for(let[N,V]of Object.entries(U))M[N]=h(V,X,!1);return{...F,properties:M}}else if(w?.map)return{...F,items:w.map((M)=>h(M,X,!1))};return F}if(j.anyOf)for(let M=0;M<j.anyOf.length;M++)j.anyOf[M]=z(j.anyOf[M]);else if(j.oneOf)for(let M=0;M<j.oneOf.length;M++)j.oneOf[M]=z(j.oneOf[M]);else if(j.allOf)for(let M=0;M<j.allOf.length;M++)j.allOf[M]=z(j.allOf[M]);else if(j.not)for(let M=0;M<j.not.length;M++)j.not[M]=z(j.not[M]);if(_)j[X2]=_[X2];if(j.anyOf||j.oneOf||j.allOf||j.not)return j;if(U){const M={};for(let[N,V]of Object.entries(U))M[N]=h(V,X,!1);return{...F,...j,properties:M}}else if(w?.map)return{...F,...j,items:w.map((M)=>h(M,X,!1))};return{...F,...j}}const Q=$?.properties;if(Q)for(let[G,Y]of Object.entries(Q))switch(Y[H0]){case W:const{anyOf:K,oneOf:B,allOf:U,not:w,type:F,...j}=Y,_=X.to();if(_.anyOf)for(let z=0;z<_.anyOf.length;z++)_.anyOf[z]={...j,..._.anyOf[z]};else if(_.oneOf)for(let z=0;z<_.oneOf.length;z++)_.oneOf[z]={...j,..._.oneOf[z]};else if(_.allOf)for(let z=0;z<_.allOf.length;z++)_.allOf[z]={...j,..._.allOf[z]};else if(_.not)for(let z=0;z<_.not.length;z++)_.not[z]={...j,..._.not[z]};Q[G]={...j,...h(j,X,!1)};break;case"Object":case"Union":Q[G]=h(Y,X,!1);break;default:if(Y.items)for(let z=0;z<Y.items.length;z++)Y.items[z]=h(Y.items[z],X,!1);else if(Y.anyOf||Y.oneOf||Y.allOf||Y.not)Q[G]=h(Y,X,!1);break}return $},m=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:J=!1,coerce:Q=!1,additionalCoerce:G=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;let Y=typeof $==="string"?X[$]:$;if(Q)Y=Q2(Y,[{from:O.Number(),to:()=>O.Numeric(),untilObjectFound:!0},{from:O.Boolean(),to:()=>O.BooleanString(),untilObjectFound:!0},...Array.isArray(G)?G:[G]]);if(Y.type==="object"&&"additionalProperties"in Y===!1)Y.additionalProperties=J;const K=(U)=>G0.Clean(Y,U);if(Z){const U={schema:Y,references:"",checkFunc:()=>{},code:"",Check:(w)=>G0.Check(Y,w),Errors:(w)=>G0.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(F){throw[...U.Errors(w)].map(s)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(F){const j=[...B.Errors(w)].map(s);return{success:!1,data:null,error:j[0]?.summary,errors:j}}},U}const B=W2.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(s)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){const F=[...B.Errors(U)].map(s);return{success:!1,data:null,error:F[0]?.summary,errors:F}}},B},o0=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:J=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;const Q=typeof $==="string"?X[$]:$,G=(K,B)=>{const U=(F)=>{if(!F||typeof F!=="object")return G0.Clean(K,F);const j={};let _=!1,z=F;while(z!==null){for(let M of Object.getOwnPropertyNames(z)){const N=Object.getOwnPropertyDescriptor(z,M);if(N&&typeof N.get==="function"&&M!=="__proto__")j[M]=F[M],delete z[M],_=!0}z=Object.getPrototypeOf(z)}if(_)return Object.assign(F,j),{...G0.Clean(K,F)};return G0.Clean(K,F)};if(Z)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(F)=>G0.Check(K,F),Errors:(F)=>G0.Errors(K,F),Code:()=>""};const w=W2.Compile(K,B);if(W&&K.additionalProperties===!1)w.Clean=U;return w};if(H0 in Q){if("additionalProperties"in Q===!1)Q.additionalProperties=J;return{200:G(Q,Object.values(X))}}const Y={};return Object.keys(Q).forEach((K)=>{const B=Q[+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},_3=typeof Bun!=="undefined",D3=_3&&typeof Bun.hash==="function",P0=($)=>{if(D3)return Bun.hash($);let X=9;for(let Z=0;Z<$.length;)X=Math.imul(X^$.charCodeAt(Z++),387420489);return X=X^X>>>9},z1,M0=()=>{if(!z1)z1=[{from:O.Object({}),to:()=>O.ObjectString({}),excludeRoot:!0},{from:O.Array(O.Any()),to:()=>O.ArrayString(O.Any())}];return z1},e0=({validator:$,defaultConfig:X={},config:Z,dynamic:W,models:J})=>{let Q=m($,{dynamic:W,models:J,additionalProperties:!0,coerce:!0,additionalCoerce:M0()});if(p(X))if(Q)Q.config=K3(Q.config,Z);else Q=m(O.Cookie({}),{dynamic:W,models:J,additionalProperties:!0}),Q.config=X;return Q},$0=($,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},P1=($,X,Z)=>{return{start:x($.start,$0(Z,X?.start)),request:x($.request,$0(Z,X?.request)),parse:x($.parse,$0(Z,X?.parse)),transform:x($.transform,$0(Z,X?.transform)),beforeHandle:x($.beforeHandle,$0(Z,X?.beforeHandle)),afterHandle:x($.afterHandle,$0(Z,X?.afterHandle)),mapResponse:x($.mapResponse,$0(Z,X?.mapResponse)),afterResponse:x($.afterResponse,$0(Z,X?.afterResponse)),trace:x($.trace,$0(Z,X?.trace)),error:x($.error,$0(Z,X?.error)),stop:x($.stop,$0(Z,X?.stop))}},j2=($,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 $},F0=($)=>{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},N1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:F0($?.parse),transform:F0($?.transform),beforeHandle:F0($?.beforeHandle),afterHandle:F0($?.afterHandle),mapResponse:F0($?.mapResponse),afterResponse:F0($?.afterResponse),error:F0($?.error),trace:F0($?.trace)}},K0={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(K0).map(([$,X])=>[X,$])),Z2=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",Z2.encode(X),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),W=await crypto.subtle.sign("HMAC",Z,Z2.encode($));return $+"."+F3(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},G2=($,X)=>{if(!$||typeof $!=="object"||!X)return;for(let[Z,W]of Object.entries(X)){if(Z in w3||!(Z in $))continue;const J=$[Z];if(typeof J==="function")J(W),delete X[Z]}},Y2=({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:Q="after",stack:G="local"}=W;if(typeof J==="function")J={fn:J};if(G==="global")if(!Array.isArray(J))if(Q==="before")$[Z].unshift(J);else $[Z].push(J);else if(Q==="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(Q==="before")X[Z].unshift(J);else X[Z].push(J);else if(Q==="before")X[Z]=J.concat(X[Z]);else X[Z]=X[Z].concat(J)}},M3=($)=>{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=($)=>M3($)!==null;class I1{$;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},B2=($)=>{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)}},V1=($)=>{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)}},u0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),h0=($,X=302)=>Response.redirect($,X),z3=Symbol("ElysiaFormData"),N0=Symbol("ElysiaRequestId"),z0=($)=>{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 K2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,I0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),d0=(K2?.NODE_ENV??K2?.ENV)==="production",A1=($,X)=>{const Z=X??($ in $1?$1[$]:$);return{[d]:K0[$]??$,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 V0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class Q1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class y0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,X){super(X??`"${$}" has invalid cookie signature`);this.key=$}}var s=($)=>{const{message:X,path:Z,value:W,type:J}=$,Q=Z.slice(1).replaceAll("/","."),G=Z==="";switch(J){case 42:return{...$,summary:G?"Value should not be provided":`Property '${Q}' should not be provided`};case 45:return{...$,summary:G?"Value is missing":`Property '${Q}' 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 '${Q}' should be ${K}`};case 54:return{...$,summary:`${X.slice(0,9)} property '${Q}' 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 '${Q}' should be one of: ${B}`};default:return{summary:X,...$}}};class T extends Error{$;X;Z;code="VALIDATION";status=422;constructor($,X,Z){if(Z&&typeof Z==="object"&&d in Z)Z=Z.response;const W=d0?void 0:("Errors"in X)?X.Errors(Z).First():m0.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(s)}}):W.schema.error:void 0,Q=W?.path||"root";let G="";if(J!==void 0)G=typeof J==="object"?JSON.stringify(J):J+"";else if(d0)G=JSON.stringify({type:"validation",on:$,summary:s(W).summary,message:W?.message,found:Z});else{const Y=X?.schema??X,K="Errors"in X?[...X.Errors(Z)].map(s):[...m0.Errors(X,Z)].map(s);let B;try{B=m0.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:Q,message:W?.message,expected:B,found:Z,errors:K},null,2)}super(G);this.type=$;this.validator=X;this.value=Z;Object.setPrototypeOf(this,T.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(s):[...m0.Errors(this.validator,this.value)].map(s)}static simplifyModel($){const X="schema"in $?$.schema:$;try{return m0.Create(X)}catch{return X}}get model(){return T.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var O1={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 T("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 T("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 C1="1.1.4";import{Value as l0} from"@sinclair/typebox/value";var S1=Y1(s0(),1);function x0($){const X={};if(typeof $!=="string")return X;const Z=$.length;let W="",J="",Q=-1,G=-1,Y=!1,K=!1,B=!1,U=!1,w=!1,F=0;for(let j=0;j<Z+1;j++)if(F=j!==Z?$.charCodeAt(j):38,F===38){if(w=G>Q,!w)G=j;if(W=$.slice(Q+1,G),w||W.length>0){if(B)W=W.replace(U2," ");if(Y)W=S1.default(W)||W;if(!X[W]){if(w){if(J=$.slice(G+1,j),U)J=J.replace(U2," ");if(K)J=S1.default(J)||J}X[W]=J}}J="",Q=j,G=j,Y=!1,K=!1,B=!1,U=!1}else if(F===61)if(G<=Q)G=j;else K=!0;else if(F===43)if(G>Q)U=!0;else B=!0;else if(F===37)if(G>Q)K=!0;else Y=!0;return X}var U2=/\+/g;var _2=Y1(s0(),1);var c0=Symbol("ElysiaTrace"),U0=()=>{const{promise:$,resolve:X}=Promise.withResolvers(),{promise:Z,resolve:W}=Promise.withResolvers(),{promise:J,resolve:Q}=Promise.withResolvers(),G=[],Y=[];return[(K)=>{if(K)G.push(K);return $},(K)=>{const B=[],U=[];let w=null;for(let j=0;j<(K.total??0);j++){const{promise:_,resolve:z}=Promise.withResolvers(),{promise:M,resolve:N}=Promise.withResolvers(),{promise:V,resolve:A}=Promise.withResolvers(),q=[],L=[];B.push((E)=>{if(E)q.push(E);return _}),U.push((E)=>{const v={...E,end:M,error:V,index:j,onStop(R){if(R)L.push(R);return M}};z(v);for(let R=0;R<q.length;R++)q[R](v);return(R=null)=>{const _0=performance.now();if(R)w=R;const b={end:_0,error:R,get elapsed(){return _0-E.begin}};for(let W0=0;W0<L.length;W0++)L[W0](b);N(_0),A(R)}})}const F={...K,end:Z,error:J,onEvent(j){for(let _=0;_<B.length;_++)B[_](j)},onStop(j){if(j)Y.push(j);return Z}};X(F);for(let j=0;j<G.length;j++)G[j](F);return{resolveChild:U,resolve(j=null){const _=performance.now();if(!j&&w)j=w;const z={end:_,error:j,get elapsed(){return _-K.begin}};for(let M=0;M<Y.length;M++)Y[M](z);W(_),Q(j)}}}]},w2=($)=>{return(X)=>{const[Z,W]=U0(),[J,Q]=U0(),[G,Y]=U0(),[K,B]=U0(),[U,w]=U0(),[F,j]=U0(),[_,z]=U0(),[M,N]=U0(),[V,A]=U0();return $({id:X[N0],context:X,set:X.set,onRequest:Z,onParse:J,onTransform:G,onBeforeHandle:K,onHandle:U,onAfterHandle:F,onMapResponse:M,onAfterResponse:V,onError:_}),{request:W,parse:Q,transform:Y,beforeHandle:B,handle:w,afterHandle:j,error:z,mapResponse:N,afterResponse:A}}};var N3=(new Headers()).toJSON,D2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},w0=($)=>{if(!$)return!1;const X=$?.schema;return!!X&&D2.optional in X},X0=($)=>{if(!$)return!1;const X=$?.schema??$;if(X.anyOf)return X.anyOf.some(X0);if(X.someOf)return X.someOf.some(X0);if(X.allOf)return X.allOf.some(X0);if(X.not)return X.not.some(X0);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(X0(J))return!0}else if(J.anyOf){for(let Q=0;Q<J.anyOf.length;Q++)if(X0(J.anyOf[Q]))return!0}return J.additionalProperties}return!1}return!1},L1=({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:Q=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: ${Q}})\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`)}}}}},N3=({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`)}}}}},I3=({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
  }
15
15
 
16
- const isResponse = ${W} instanceof Response\n\n`,J+="switch(c.set.status) {\n";for(let[j,G]of Object.entries(Z.response)){if(J+=`\tcase ${j}:
17
- if (!isResponse) {\n`,X&&"Clean"in G&&!X0(G))J+=`${W} = validator.response['${j}'].Clean(${W})\n`;J+=`if(validator.response['${j}'].Check(${W}) === false) {
16
+ const isResponse = ${W} instanceof Response\n\n`,J+="switch(c.set.status) {\n";for(let[Q,G]of Object.entries(Z.response)){if(J+=`\tcase ${Q}:
17
+ if (!isResponse) {\n`,X&&"Clean"in G&&!X0(G))J+=`${W} = validator.response['${Q}'].Clean(${W})\n`;J+=`if(validator.response['${Q}'].Check(${W}) === false) {
18
18
  c.set.status = 422
19
19
 
20
- throw new ValidationError('response', validator.response['${j}'], ${W})
20
+ throw new ValidationError('response', validator.response['${Q}'], ${W})
21
21
  }
22
22
 
23
- c.set.status = ${j}
23
+ c.set.status = ${Q}
24
24
  }
25
25
 
26
- break\n\n`}return J+="\n}\n",J}}),v8=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},S1=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(S1 in W)return!0}return!1}return S1 in $||$.properties&&S1 in $.properties},I3=/(?: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(I3)},Q1=($)=>{const X=$?.fn??$;return X.constructor.name==="AsyncGeneratorFunction"||X.constructor.name==="GeneratorFunction"},F2=({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=f(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', {
26
+ break\n\n`}return J+="\n}\n",J}}),v8=Symbol.for("TypeBox.Kind");var A0=($,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(A0($,J))return!0}else if(J.anyOf){for(let Q=0;Q<J.anyOf.length;Q++)if(A0($,J.anyOf[Q]))return!0}}return!1}return $ in X},q1=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 Q=0;Q<W.anyOf.length;Q++)if(O0(W.anyOf[Q]))return!0}if(q1 in W)return!0}return!1}return q1 in $||$.properties&&q1 in $.properties},V3=/(?:return|=>) \S+\(/g,C0=($)=>{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(V3)},j1=($)=>{const X=$?.fn??$;return X.constructor.name==="AsyncGeneratorFunction"||X.constructor.name==="GeneratorFunction"},F2=({app:$,path:X,method:Z,localHook:W,hooks:J,validator:Q,handler:G,allowMeta:Y=!1,inference:K})=>{const B=typeof G==="function";if(!B)G=f(G,{headers:$.setHeaders??{}});const U=B?"handler(c)":"handler",w=J.afterResponse.length>0,F=J.trace.length>0;let j="";if(K=i0(Object.assign(W,{handler:G}),K),K.server)j+=`\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,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
28
+ })\n`;if(K.body)j+="let isParsing = false\n";Q.createBody?.(),Q.createQuery?.(),Q.createHeaders?.(),Q.createParams?.(),Q.createCookie?.(),Q.createResponse?.();const _=K.query||!!Q.query,z=Z!=="$INTERNALWS"&&Z!=="GET"&&Z!=="HEAD"&&(K.body||!!Q.body||J.parse.length),M=$.setHeaders,N=M&&!!Object.keys(M).length,V=K.headers||Q.headers,A=K.cookie||!!Q.cookie,q=A?e0({validator:Q.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:Q.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 P=!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
- 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 k=$.config.normalize,{composeValidation:R,composeResponseValidation:U0}=N3({normalize:k,validator:j});if(V)Q+=P3?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
30
+ c.set.cookie[key].value = await signCookie(cookie.value, '${P}')
31
+ }`;else for(let D of L.sign)E+=`if(_setCookie['${D}']?.value) { c.set.cookie['${D}'].value = await signCookie(_setCookie['${D}'].value, '${P}') }\n`;E+="}\n"}const v=$.config.normalize,{composeValidation:R,composeResponseValidation:_0}=I3({normalize:v,validator:Q});if(V)j+=N3?"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=(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
- ${z("domain")}
38
- ${z("expires")}
39
- ${z("httpOnly")}
40
- ${z("maxAge")}
41
- ${z("path","/")}
42
- ${z("priority")}
43
- ${z("sameSite")}
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(!X0(j.query))for(let[N,C]of Object.entries(F)){let S=C;if(S&&_2.optional in S&&S.type==="array"&&S.items)S=S.items;const{type:T,anyOf:t}=S,g0=T==="array"||t?.some((l)=>l.type==="string"&&l.format==="ArrayString");z.push({key:N,isArray:g0,isNestedObjectArray:g0&&(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) {
34
+ `;if(A){const P=(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},`},D=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"},
37
+ ${P("domain")}
38
+ ${P("expires")}
39
+ ${P("httpOnly")}
40
+ ${P("maxAge")}
41
+ ${P("path","/")}
42
+ ${P("priority")}
43
+ ${P("sameSite")}
44
+ ${P("secure")}
45
+ }`:"undefined";if(V)j+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${D})\n`;else j+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${D})\n`}if(_){const P=[];if(Q.query&&Q.query.schema.type==="object"){const D=Q.query.schema.properties;if(!X0(Q.query))for(let[I,C]of Object.entries(D)){let S=C;if(S&&D2.optional in S&&S.type==="array"&&S.items)S=S.items;const{type:t,anyOf:H}=S,Y0=t==="array"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString");P.push({key:I,isArray:Y0,isNestedObjectArray:Y0&&S.items?.type==="object"||!!S.items?.anyOf?.some((u)=>u.type==="object"||u.type==="array"),isObject:t==="object"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString"),anyOf:!!H})}}if(!P.length)j+=`if(c.qi === -1) {
46
46
  c.query = {}
47
47
  } else {
48
48
  c.query = parseQuery(c.url.slice(c.qi + 1))
49
- }`;else Q+=`if(c.qi !== -1) {
49
+ }`;else j+=`if(c.qi !== -1) {
50
50
  let url = '&' + c.url.slice(c.qi + 1)
51
51
 
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
- const start = memory + ${F.length+2}
52
+ ${P.map(({key:D,isArray:I,isObject:C,isNestedObjectArray:S,anyOf:t},H)=>{const Y0=`${H===0?"let":""} memory = url.indexOf('&${D}=')
53
+ let a${H}\n`;if(I)return Y0+(S?`while (memory !== -1) {
54
+ const start = memory + ${D.length+2}
55
55
  memory = url.indexOf('&', start)
56
56
 
57
- if(a${T} === undefined)
58
- a${T} = ''
57
+ if(a${H} === undefined)
58
+ a${H} = ''
59
59
  else
60
- a${T} += ','
60
+ a${H} += ','
61
61
 
62
62
  let temp
63
63
 
@@ -68,51 +68,63 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
68
68
  if(charCode !== 91 && charCode !== 123)
69
69
  temp = '"' + temp + '"'
70
70
 
71
- a${T} += temp
71
+ a${H} += temp
72
+
73
+ if(memory === -1) break
74
+
75
+ memory = url.indexOf('&${D}=', memory)
76
+ if(memory === -1) break
72
77
  }
73
78
 
74
79
  try {
75
- if(a${T}.charCodeAt(0) === 91)
76
- a${T} = JSON.parse(a${T})
80
+ if(a${H}.charCodeAt(0) === 91)
81
+ a${H} = JSON.parse(a${H})
77
82
  else
78
- a${T} = JSON.parse('[' + a${T} + ']')
83
+ a${H} = JSON.parse('[' + a${H} + ']')
79
84
  } catch {}\n`:`while (memory !== -1) {
80
- const start = memory + ${F.length+2}
85
+ const start = memory + ${D.length+2}
81
86
  memory = url.indexOf('&', start)
82
87
 
83
- if(a${T} === undefined)
84
- a${T} = []
88
+ if(a${H} === undefined)
89
+ a${H} = []
90
+
91
+ if(memory === -1) {
92
+ a${H}.push(decodeURIComponent(url.slice(start)))
93
+ break
94
+ }
95
+ else a${H}.push(decodeURIComponent(url.slice(start, memory)))
85
96
 
86
- if(memory === -1) a${T}.push(decodeURIComponent(url.slice(start)))
87
- else a${T}.push(decodeURIComponent(url.slice(start, memory)))
88
- }\n`);if(C)return t+`if (memory !== -1) {
89
- const start = memory + ${F.length+2}
97
+ memory = url.indexOf('&${D}=', memory)
98
+ if(memory === -1) break
99
+ }\n`);if(C)return Y0+`if (memory !== -1) {
100
+ const start = memory + ${D.length+2}
90
101
  memory = url.indexOf('&', start)
91
102
 
92
- if(memory === -1) a${T} = decodeURIComponent(url.slice(start))
93
- else a${T} = decodeURIComponent(url.slice(start, memory))
103
+ if(memory === -1) a${H} = decodeURIComponent(url.slice(start))
104
+ else a${H} = decodeURIComponent(url.slice(start, memory))
94
105
 
95
- if (a${T} !== undefined) {
106
+ if (a${H} !== undefined) {
96
107
  try {
97
- a${T} = JSON.parse(a${T})
108
+ a${H} = JSON.parse(a${H})
98
109
  } catch {}
99
110
  }
100
- }`;return t+`if (memory !== -1) {
101
- const start = memory + ${F.length+2}
111
+ }`;return Y0+`if (memory !== -1) {
112
+ const start = memory + ${D.length+2}
102
113
  memory = url.indexOf('&', start)
103
114
 
104
- if(memory === -1) a${T} = decodeURIComponent(url.slice(start))
115
+ if(memory === -1) a${H} = decodeURIComponent(url.slice(start))
105
116
  else {
106
- a${T} = decodeURIComponent(url.slice(start, memory))
117
+ a${H} = decodeURIComponent(url.slice(start, memory))
107
118
 
108
- let deepMemory = url.indexOf('&${F}=', memory)
119
+ ${t?`
120
+ let deepMemory = url.indexOf('&${D}=', memory)
109
121
 
110
122
  if(deepMemory !== -1) {
111
- a${T} = [a${T}]
123
+ a${H} = [a${H}]
112
124
  let first = true
113
125
 
114
126
  while(true) {
115
- const start = deepMemory + ${F.length+2}
127
+ const start = deepMemory + ${D.length+2}
116
128
  if(first)
117
129
  first = false
118
130
  else
@@ -127,23 +139,24 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
127
139
 
128
140
  if((vStart === 91 && vEnd === 93) || (vStart === 123 && vEnd === 125))
129
141
  try {
130
- a${T}.push(JSON.parse(value))
142
+ a${H}.push(JSON.parse(value))
131
143
  } catch {
132
- a${T}.push(value)
144
+ a${H}.push(value)
133
145
  }
134
146
 
135
147
  if(deepMemory === -1) break
136
148
  }
137
149
  }
150
+ `:""}
138
151
  }
139
152
  }`}).join("\n")}
140
153
 
141
154
  c.query = {
142
- ${z.map(({key:F},N)=>`'${F}': a${N}`).join(", ")}
155
+ ${P.map(({key:D},I)=>`'${D}': a${I}`).join(", ")}
143
156
  }
144
157
  } else {
145
158
  c.query = {}
146
- }`}if(D)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const b=q1({trace:J.trace,addFn:(z)=>{Q+=z}});Q+="\ntry {\n";const W0=typeof G==="function"&&g(G),r=D||J.afterResponse.length>0?"c.response = ":"",x0=O||P||W0||J.parse.length>0||J.afterHandle.some(g)||J.beforeHandle.some(g)||J.transform.some(g)||J.mapResponse.some(g),M2=(typeof G==="function"?Q1(G):!1)||J.beforeHandle.some(Q1)||J.afterHandle.some(Q1)||J.transform.some(Q1),p0=K.cookie||K.set||V||D||j.response||B&&I||M2,n=", c.request";Q+=`c.route = \`${X}\`\n`;const z2=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 = {}
159
+ }`}if(F)j+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const b=L1({trace:J.trace,addFn:(P)=>{j+=P}});j+="\ntry {\n";const W0=typeof G==="function"&&g(G),r=F||J.afterResponse.length>0?"c.response = ":"",g0=A||z||W0||J.parse.length>0||J.afterHandle.some(g)||J.beforeHandle.some(g)||J.transform.some(g)||J.mapResponse.some(g),z2=(typeof G==="function"?j1(G):!1)||J.beforeHandle.some(j1)||J.afterHandle.some(j1)||J.transform.some(j1),p0=K.cookie||K.set||V||F||Q.response||B&&N||z2,n=", c.request";j+=`c.route = \`${X}\`\n`;const P2=b("parse",{total:J.parse.length});if(z){const P=J.parse.length||K.body||Q.body;if(j+="isParsing = true\n",J.type&&!J.parse.length)switch(J.type){case"json":case"application/json":j+="c.body = await c.request.json()";break;case"text":case"text/plain":j+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":j+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":j+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":j+=`c.body = {}
147
160
 
148
161
  const form = await c.request.formData()
149
162
  for (const key of form.keys()) {
@@ -154,11 +167,11 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
154
167
  if (value.length === 1)
155
168
  c.body[key] = value[0]
156
169
  else c.body[key] = value
157
- }\n`;break}else if(z){if(Q+="\n",Q+=V?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",Q+=`
170
+ }\n`;break}else if(P){if(j+="\n",j+=V?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",j+=`
158
171
  if (contentType) {
159
172
  const index = contentType.indexOf(';')
160
173
  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 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 = {}
174
+ c.contentType = contentType\n`,J.parse.length){j+="let used = false\n";const D=b("parse",{total:J.parse.length});for(let I=0;I<J.parse.length;I++){const C=D.resolveChild(J.parse[I].fn.name),S=`bo${I}`;if(I!==0)j+="if(!used) {\n";if(j+=`let ${S} = parse[${I}](c, contentType)\n`,j+=`if(${S} instanceof Promise) ${S} = await ${S}\n`,j+=`if(${S} !== undefined) { c.body = ${S}; used = true }\n`,C(),I!==0)j+="}"}D.resolve()}if(j+="\ndelete c.contentType\n",J.parse.length)j+="if (!used) {";if(J.type&&!Array.isArray(J.type))switch(J.type){case"json":case"application/json":j+="c.body = await c.request.json()";break;case"text":case"text/plain":j+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":j+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":j+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":j+=`c.body = {}
162
175
 
163
176
  const form = await c.request.formData()
164
177
  for (const key of form.keys()) {
@@ -169,7 +182,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
169
182
  if (value.length === 1)
170
183
  c.body[key] = value[0]
171
184
  else c.body[key] = value
172
- }\n`;break}else Q+=`
185
+ }\n`;break}else j+=`
173
186
  switch (contentType) {
174
187
  case 'application/json':
175
188
  c.body = await c.request.json()
@@ -202,7 +215,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
202
215
  }
203
216
 
204
217
  break
205
- }`;if(J.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(z2.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])
218
+ }`;if(J.parse.length)j+="}";j+="}\n"}j+="\nisParsing = false\n"}if(P2.resolve(),J?.transform){const P=b("transform",{total:J.transform.length});if(J.transform.length)j+="\nlet transformed\n";for(let D=0;D<J.transform.length;D++){const I=J.transform[D],C=P.resolveChild(I.fn.name);if(j+=g(I)?`transformed = await transform[${D}](c)\n`:`transformed = transform[${D}](c)\n`,I.subType==="mapDerive")j+=`if(transformed?.[ELYSIA_RESPONSE])
206
219
  throw transformed
207
220
  else {
208
221
  transformed.request = c.request
@@ -215,36 +228,36 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
215
228
  transformed.error = c.error
216
229
 
217
230
  c = transformed
218
- }`;else Q+=`if(transformed?.[ELYSIA_RESPONSE])
231
+ }`;else j+=`if(transformed?.[ELYSIA_RESPONSE])
219
232
  throw transformed
220
233
  else
221
- Object.assign(c, transformed)\n`;C()}z.resolve()}if(j){if(Q+="\n",j.headers){if(k&&"Clean"in j.headers&&!X0(j.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",j.headers.schema))for(let[z,F]of Object.entries(l0.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(K0(j.headers))Q+="if(isNotEmpty(c.headers)) {";if(Q+=`if(validator.headers.Check(c.headers) === false) {
234
+ Object.assign(c, transformed)\n`;C()}P.resolve()}if(Q){if(j+="\n",Q.headers){if(v&&"Clean"in Q.headers&&!X0(Q.headers))j+="c.headers = validator.headers.Clean(c.headers);\n";if(A0("default",Q.headers.schema))for(let[P,D]of Object.entries(l0.Default(Q.headers.schema,{}))){const I=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(I!==void 0)j+=`c.headers['${P}'] ??= ${I}\n`}if(w0(Q.headers))j+="if(isNotEmpty(c.headers)) {";if(j+=`if(validator.headers.Check(c.headers) === false) {
222
235
  ${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(l0.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) {
236
+ }`,O0(Q.headers.schema))j+="c.headers = validator.headers.Decode(c.headers)\n";if(w0(Q.headers))j+="}"}if(Q.params){if(A0("default",Q.params.schema))for(let[P,D]of Object.entries(l0.Default(Q.params.schema,{}))){const I=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(I!==void 0)j+=`c.params['${P}'] ??= ${I}\n`}if(j+=`if(validator.params.Check(c.params) === false) {
224
237
  ${R("params")}
225
- }`,O0(j.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(j.query){if(k&&"Clean"in j.query&&!X0(j.query))Q+="c.query = validator.query.Clean(c.query);\n";if(V0("default",j.query.schema))for(let[z,F]of Object.entries(l0.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(K0(j.query))Q+="if(isNotEmpty(c.query)) {";if(Q+=`if(validator.query.Check(c.query) === false) {
238
+ }`,O0(Q.params.schema))j+="\nc.params = validator.params.Decode(c.params)\n"}if(Q.query){if(v&&"Clean"in Q.query&&!X0(Q.query))j+="c.query = validator.query.Clean(c.query);\n";if(A0("default",Q.query.schema))for(let[P,D]of Object.entries(l0.Default(Q.query.schema,{}))){const I=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(I!==void 0)j+=`if(c.query['${P}'] === undefined) c.query['${P}'] = ${I}\n`}if(w0(Q.query))j+="if(isNotEmpty(c.query)) {";if(j+=`if(validator.query.Check(c.query) === false) {
226
239
  ${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(k&&"Clean"in j.body&&!X0(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=l0.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) {
240
+ }`,O0(Q.query.schema))j+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(w0(Q.query))j+="}"}if(Q.body){if(v&&"Clean"in Q.body&&!X0(Q.body))j+="c.body = validator.body.Clean(c.body);\n";const P=O0(Q.body.schema);if(P||w0(Q.body))j+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(A0("default",Q.body.schema)){const D=l0.Default(Q.body.schema,Q.body.schema.type==="object"?{}:void 0),I=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(j+=`if(validator.body.Check(c.body) === false) {
228
241
  if (typeof c.body === 'object') {
229
- c.body = Object.assign(${N}, c.body)
230
- } else { c.body = ${N} }`,K0(j.body))Q+=`
242
+ c.body = Object.assign(${I}, c.body)
243
+ } else { c.body = ${I} }`,w0(Q.body))j+=`
231
244
  if(isNotEmptyObject && validator.body.Check(c.body) === false) {
232
245
  ${R("body")}
233
246
  }
234
- }`;else Q+=`
247
+ }`;else j+=`
235
248
  if(validator.body.Check(c.body) === false) {
236
249
  ${R("body")}
237
250
  }
238
- }`}else if(K0(j.body))Q+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
251
+ }`}else if(w0(Q.body))j+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
239
252
  ${R("body")}
240
- }`;else Q+=`if(validator.body.Check(c.body) === false) {
253
+ }`;else j+=`if(validator.body.Check(c.body) === false) {
241
254
  ${R("body")}
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 = {}
255
+ }`;if(P)j+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(p(q?.schema?.properties??q?.schema?.schema??{})){if(j+=`const cookieValue = {}
243
256
  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(l0.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) {
257
+ cookieValue[key] = value.value\n`,A0("default",q.schema))for(let[P,D]of Object.entries(l0.Default(q.schema,{})))j+=`cookieValue['${P}'] = ${typeof D==="object"?JSON.stringify(D):D}\n`;if(w0(Q.cookie))j+="if(isNotEmpty(c.cookie)) {";if(j+=`if(validator.cookie.Check(cookieValue) === false) {
245
258
  ${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 N=0;N<J.beforeHandle.length;N++){const C=J.beforeHandle[N],S=z.resolveChild(C.fn.name),T=q0(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])
259
+ }`,O0(Q.cookie.schema))j+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
260
+ c.cookie[key].value = value\n`;if(w0(Q.cookie))j+="}"}}if(J?.beforeHandle){const P=b("beforeHandle",{total:J.beforeHandle.length});let D=!1;for(let I=0;I<J.beforeHandle.length;I++){const C=J.beforeHandle[I],S=P.resolveChild(C.fn.name),t=L0(C);if(C.subType==="resolve"||C.subType==="mapResolve"){if(!D)D=!0,j+="\nlet resolved\n";if(j+=g(C)?`resolved = await beforeHandle[${I}](c);\n`:`resolved = beforeHandle[${I}](c);\n`,C.subType==="mapResolve")j+=`if(resolved[ELYSIA_RESPONSE])
248
261
  throw resolved
249
262
  else {
250
263
  resolved.request = c.request
@@ -257,17 +270,17 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
257
270
  resolved.error = c.error
258
271
 
259
272
  c = resolved
260
- }`;else Q+=`if(resolved[ELYSIA_RESPONSE])
273
+ }`;else j+=`if(resolved[ELYSIA_RESPONSE])
261
274
  throw resolved
262
275
  else
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 J0=0;J0<J.afterHandle.length;J0++){const C0=J.afterHandle[J0],P2=q0(C0),N2=l.resolveChild(C0.fn.name);if(Q+="c.response = be\n",!P2)Q+=g(C0.fn)?`await afterHandle[${J0}](c, be)\n`:`afterHandle[${J0}](c, be)\n`;else Q+=g(C0.fn)?`af = await afterHandle[${J0}](c)\n`:`af = afterHandle[${J0}](c)\n`,Q+="if(af !== undefined) { c.response = be = af }\n";N2("af")}l.resolve()}if(j.response)Q+=U0("be");const g0=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 J0=J.mapResponse[l],C0=g0.resolveChild(J0.fn.name);Q+=`\nif(mr === undefined) {
264
- mr = ${A0(J0)?"await":""} onMapResponse[${l}](c)
276
+ Object.assign(c, resolved)\n`}else if(!t)j+=g(C)?`await beforeHandle[${I}](c);\n`:`beforeHandle[${I}](c);\n`,S();else{if(j+=g(C)?`be = await beforeHandle[${I}](c);\n`:`be = beforeHandle[${I}](c);\n`,S("be"),j+="if(be !== undefined) {\n",P.resolve(),J.afterHandle?.length){b("handle",{name:B?G.name:void 0}).resolve();const u=b("afterHandle",{total:J.afterHandle.length});for(let J0=0;J0<J.afterHandle.length;J0++){const S0=J.afterHandle[J0],N2=L0(S0),I2=u.resolveChild(S0.fn.name);if(j+="c.response = be\n",!N2)j+=g(S0.fn)?`await afterHandle[${J0}](c, be)\n`:`afterHandle[${J0}](c, be)\n`;else j+=g(S0.fn)?`af = await afterHandle[${J0}](c)\n`:`af = afterHandle[${J0}](c)\n`,j+="if(af !== undefined) { c.response = be = af }\n";I2("af")}u.resolve()}if(Q.response)j+=_0("be");const Y0=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){j+="\nc.response = be\n";for(let u=0;u<J.mapResponse.length;u++){const J0=J.mapResponse[u],S0=Y0.resolveChild(J0.fn.name);j+=`\nif(mr === undefined) {
277
+ mr = ${C0(J0)?"await":""} onMapResponse[${u}](c)
265
278
  if(mr !== undefined) be = c.response = mr
266
- }\n`,C0()}}g0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${r} 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+=W0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else Q+=W0?`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=q0(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 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 = ${A0(S)?"await":""} onMapResponse[${C}](c)
267
- if(mr !== undefined) r = c.response = mr\n`,T()}if(N.resolve(),p0)Q+=`return mapResponse(${r} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${r} r ${n})\n`}else{const z=b("handle",{name:B?G.name:void 0});if(j.response||J.mapResponse.length){if(Q+=W0?`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 N=0;N<J.mapResponse.length;N++){const C=J.mapResponse[N],S=F.resolveChild(C.fn.name);Q+=`\nif(mr === undefined) {
268
- mr = ${A0(C)?"await":""} onMapResponse[${N}](c)
279
+ }\n`,S0()}}Y0.resolve(),j+=E,j+=`return mapEarlyResponse(${r} be, c.set ${n})}\n`}}P.resolve()}if(J?.afterHandle.length){const P=b("handle",{name:B?G.name:void 0});if(J.afterHandle.length)j+=W0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else j+=W0?`let r = await ${U};\n`:`let r = ${U};\n`;P.resolve();const D=b("afterHandle",{total:J.afterHandle.length});for(let C=0;C<J.afterHandle.length;C++){const S=J.afterHandle[C],t=L0(S),H=D.resolveChild(S.fn.name);if(!t)j+=g(S.fn)?`await afterHandle[${C}](c)\n`:`afterHandle[${C}](c)\n`,H();else if(j+=g(S.fn)?`af = await afterHandle[${C}](c)\n`:`af = afterHandle[${C}](c)\n`,H("af"),Q.response)j+="if(af !== undefined) {",D.resolve(),j+=_0("af"),j+="c.response = af }";else j+="if(af !== undefined) {",D.resolve(),j+="c.response = af}\n"}if(D.resolve(),j+="r = c.response\n",Q.response)j+=_0();j+=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);j+=`\nmr = ${C0(S)?"await":""} onMapResponse[${C}](c)
280
+ if(mr !== undefined) r = c.response = mr\n`,t()}if(I.resolve(),p0)j+=`return mapResponse(${r} r, c.set ${n})\n`;else j+=`return mapCompactResponse(${r} r ${n})\n`}else{const P=b("handle",{name:B?G.name:void 0});if(Q.response||J.mapResponse.length){if(j+=W0?`let r = await ${U};\n`:`let r = ${U};\n`,P.resolve(),Q.response)j+=_0();b("afterHandle").resolve();const D=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){j+="\nc.response = r\n";for(let I=0;I<J.mapResponse.length;I++){const C=J.mapResponse[I],S=D.resolveChild(C.fn.name);j+=`\nif(mr === undefined) {
281
+ mr = ${C0(C)?"await":""} onMapResponse[${I}](c)
269
282
  if(mr !== undefined) r = c.response = mr
270
- }\n`,S()}}if(F.resolve(),Q+=E,G instanceof Response)Q+=K.set?`if(
283
+ }\n`,S()}}if(D.resolve(),j+=E,G instanceof Response)j+=K.set?`if(
271
284
  isNotEmpty(c.set.headers) ||
272
285
  c.set.status !== 200 ||
273
286
  c.set.redirect ||
@@ -275,10 +288,10 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
275
288
  )
276
289
  return mapResponse(${r} ${U}.clone(), c.set ${n})
277
290
  else
278
- return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(p0)Q+=`return mapResponse(${r} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${r} r ${n})\n`}else if(O||D){Q+=W0?`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 = ${A0(C)?"await":""} onMapResponse[${N}](c)
291
+ return ${U}.clone()`:`return ${U}.clone()`,j+="\n";else if(p0)j+=`return mapResponse(${r} r, c.set ${n})\n`;else j+=`return mapCompactResponse(${r} r ${n})\n`}else if(A||F){j+=W0?`let r = await ${U};\n`:`let r = ${U};\n`,P.resolve(),b("afterHandle").resolve();const D=b("mapResponse",{total:J.mapResponse.length});if(J.mapResponse.length){j+="\nc.response = r\n";for(let I=0;I<J.mapResponse.length;I++){const C=J.mapResponse[I],S=D.resolveChild(C.fn.name);j+=`\nif(mr === undefined) {
292
+ mr = ${C0(C)?"await":""} onMapResponse[${I}](c)
280
293
  if(mr !== undefined) r = c.response = mr
281
- }\n`,S()}}if(F.resolve(),Q+=E,p0)Q+=`return mapResponse(${r} r, c.set ${n})\n`;else Q+=`return mapCompactResponse(${r} r ${n})\n`}else{z.resolve();const F=W0?`await ${U}`:U;if(b("afterHandle").resolve(),G instanceof Response)Q+=K.set?`if(
294
+ }\n`,S()}}if(D.resolve(),j+=E,p0)j+=`return mapResponse(${r} r, c.set ${n})\n`;else j+=`return mapCompactResponse(${r} r ${n})\n`}else{P.resolve();const D=W0?`await ${U}`:U;if(b("afterHandle").resolve(),G instanceof Response)j+=K.set?`if(
282
295
  isNotEmpty(c.set.headers) ||
283
296
  c.set.status !== 200 ||
284
297
  c.set.redirect ||
@@ -286,13 +299,13 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
286
299
  )
287
300
  return mapResponse(${r} ${U}.clone(), c.set ${n})
288
301
  else
289
- return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(p0)Q+=`return mapResponse(${r} ${F}, c.set ${n})\n`;else Q+=`return mapCompactResponse(${r} ${F} ${n})\n`}}if(Q+="\n} catch(error) {",P)Q+="\nif(isParsing) error = new ParseError()\n";if(!x0)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 G1=b("error",{total:J.error.length});if(J.error.length){Q+=`
302
+ return ${U}.clone()`:`return ${U}.clone()`,j+="\n";else if(p0)j+=`return mapResponse(${r} ${D}, c.set ${n})\n`;else j+=`return mapCompactResponse(${r} ${D} ${n})\n`}}if(j+="\n} catch(error) {",z)j+="\nif(isParsing) error = new ParseError()\n";if(!g0)j+="\nreturn (async () => {\n";if(j+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",F)for(let P=0;P<J.trace.length;P++)j+=`report${P}?.resolve(error);reportChild${P}?.(error);\n`;const G1=b("error",{total:J.error.length});if(J.error.length){j+=`
290
303
  c.error = error
291
304
  c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
292
305
  let er
293
- `;for(let z=0;z<J.error.length;z++){const F=G1.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 = ${A0(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`;G1.resolve()}Q+="return er\n}\n"}}if(G1.resolve(),Q+="return handleError(c, error, true)\n",!x0)Q+="})()";if(Q+="}",w||D){if(Q+=" finally { ",!x0)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(),!x0)Q+="})();";Q+="}"}Q=`const {
306
+ `;for(let P=0;P<J.error.length;P++){const D=G1.resolveChild(J.error[P].fn.name);if(g(J.error[P]))j+=`\ner = await handleErrors[${P}](c)\n`;else j+=`\ner = handleErrors[${P}](c)\nif (er instanceof Promise) er = await er\n`;D();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);j+=`\nc.response = er\n
307
+ er = ${C0(S)?"await":""} onMapResponse[${C}](c)
308
+ if(er instanceof Promise) er = await er\n`,t()}if(I.resolve(),j+=`er = mapEarlyResponse(er, set ${n})\n`,j+="if (er) {",F){for(let C=0;C<J.trace.length;C++)j+=`\nreport${C}.resolve()\n`;G1.resolve()}j+="return er\n}\n"}}if(G1.resolve(),j+="return handleError(c, error, true)\n",!g0)j+="})()";if(j+="}",w||F){if(j+=" finally { ",!g0)j+=";(async () => {";const P=b("afterResponse",{total:J.afterResponse.length});if(w)for(let D=0;D<J.afterResponse.length;D++){const I=P.resolveChild(J.afterResponse[D].fn.name);j+=`\nawait afterResponse[${D}](c);\n`,I()}if(P.resolve(),!g0)j+="})();";j+="}"}j=`const {
296
309
  handler,
297
310
  handleError,
298
311
  hooks: {
@@ -334,14 +347,14 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
334
347
 
335
348
  const trace = _trace.map(x => typeof x === 'function' ? x : x.fn)
336
349
 
337
- return ${x0?"async":""} function handle(c) {
350
+ return ${g0?"async":""} function handle(c) {
338
351
  ${J.beforeHandle.length?"let be":""}
339
352
  ${J.afterHandle.length?"let af":""}
340
353
  ${J.mapResponse.length?"let mr":""}
341
354
 
342
355
  ${Y?"c.schema = schema; c.defs = definitions":""}
343
- ${Q}
344
- }`;try{return Function("hooks",Q)({handler:G,hooks:I1(J),validator:j,handleError:$.handleError,utils:{mapResponse:f,mapCompactResponse:e,mapEarlyResponse:y,parseQuery:b0,isNotEmpty:p},error:{NotFoundError:I0,ValidationError:H,InternalServerError:J1,ParseError:j1},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:N0,parseCookie:r0,signCookie:E0,decodeURIComponent:w2.default,ELYSIA_RESPONSE:m,ELYSIA_TRACE:c0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer()})}catch{const z=I1(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)}},L1=($)=>{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=`
356
+ ${j}
357
+ }`;try{return Function("hooks",j)({handler:G,hooks:V1(J),validator:Q,handleError:$.handleError,utils:{mapResponse:f,mapCompactResponse:e,mapEarlyResponse:y,parseQuery:x0,isNotEmpty:p},error:{NotFoundError:V0,ValidationError:T,InternalServerError:J1,ParseError:Q1},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:I0,parseCookie:r0,signCookie:R0,decodeURIComponent:_2.default,ELYSIA_RESPONSE:d,ELYSIA_TRACE:c0,ELYSIA_REQUEST_ID:N0,getServer:()=>$.getServer()})}catch{const P=V1(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:{...P,transform:P?.transform?.map?.((D)=>D.toString()),resolve:P?.resolve?.map?.((D)=>D.toString()),beforeHandle:P?.beforeHandle?.map?.((D)=>D.toString()),afterHandle:P?.afterHandle?.map?.((D)=>D.toString()),mapResponse:P?.mapResponse?.map?.((D)=>D.toString()),parse:P?.parse?.map?.((D)=>D.toString()),error:P?.error?.map?.((D)=>D.toString()),afterResponse:P?.afterResponse?.map?.((D)=>D.toString()),stop:P?.stop?.map?.((D)=>D.toString())},validator:Q,definitions:$.definitions.type}),console.log("---"),process.exit(1)}},T1=($)=>{let X="",Z="";const W=$.setHeaders;for(let _ of Object.keys($.singleton.decorator))X+=`,${_}: app.singleton.decorator.${_}`;const J=$.router,Q=$.event.trace.length>0;let G=`
345
358
  const route = router.find(request.method, path) ${J.http.root.ALL?'?? router.find("ALL", path)':""}
346
359
 
347
360
  if (route === null)
@@ -351,7 +364,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
351
364
  })`:"error404.clone()"}
352
365
 
353
366
  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: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 {
367
+ return (route.store.handler = route.store.compile())(ctx)\n`;let Y="";for(let[_,{code:z,all:M}]of Object.entries(J.static.http.map))Y+=`case '${_}':\nswitch(request.method) {\n${z}\n${M??"default: break map"}}\n\n`;const K=$.event.request.some(g);if(Z+=`const {
355
368
  app,
356
369
  mapEarlyResponse,
357
370
  NotFoundError,
@@ -378,7 +391,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
378
391
  ${$.event.error.length?"":`\nconst error404Message = notFound.message.toString()
379
392
  const error404 = new Response(error404Message, { status: 404 });\n`}
380
393
 
381
- ${$.event.trace.length?`const ${$.event.trace.map((_,P)=>`tr${P} = app.event.trace[${P}].fn`).join(",")}`:""}
394
+ ${$.event.trace.length?`const ${$.event.trace.map((_,z)=>`tr${z} = app.event.trace[${z}].fn`).join(",")}`:""}
382
395
 
383
396
  ${K?"async":""} function map(request) {\n`,$.event.request.length)Z+="let re";if(Z+=`\nconst url = request.url
384
397
  const s = url.indexOf('/', 11)
@@ -387,7 +400,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
387
400
  if(qi === -1)
388
401
  path = url.substring(s)
389
402
  else
390
- path = url.substring(s, qi)\n`,Z+=`${j?"const id = randomId()":""}
403
+ path = url.substring(s, qi)\n`,Z+=`${Q?"const id = randomId()":""}
391
404
  const ctx = {
392
405
  request,
393
406
  store,
@@ -403,20 +416,20 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
403
416
  ${$.inference.server?`, get server() {
404
417
  return getServer()
405
418
  }`:""}
406
- ${j?",[ELYSIA_REQUEST_ID]: id":""}
419
+ ${Q?",[ELYSIA_REQUEST_ID]: id":""}
407
420
  ${X}
408
- }\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((_,P)=>`tr${P}(ctx)`).join(",")}]\n`;const U=q1({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=q0(P),I=g(P),V=U.resolveChild($.event.request[_].fn.name);if(M)Z+=`re = mapEarlyResponse(
409
- ${I?"await":""} onRequest[${_}](ctx),
421
+ }\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((_,z)=>`tr${z}(ctx)`).join(",")}]\n`;const U=L1({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 z=$.event.request[_],M=L0(z),N=g(z),V=U.resolveChild($.event.request[_].fn.name);if(M)Z+=`re = mapEarlyResponse(
422
+ ${N?"await":""} onRequest[${_}](ctx),
410
423
  ctx.set,
411
424
  request
412
- )\n`,V("re"),Z+="if(re !== undefined) return re\n";else Z+=`${I?"await":""} onRequest[${_}](ctx)\n`,V()}Z+=`} catch (error) {
425
+ )\n`,V("re"),Z+="if(re !== undefined) return re\n";else Z+=`${N?"await":""} onRequest[${_}](ctx)\n`,V()}Z+=`} catch (error) {
413
426
  return app.handleError(ctx, error)
414
- }`}U.resolve();const w=$.router.static.ws,D=$.router.ws;if(Object.keys(w).length||D.history.length){Z+=`
427
+ }`}U.resolve();const w=$.router.static.ws,F=$.router.ws;if(Object.keys(w).length||F.history.length){Z+=`
415
428
  if(request.method === 'GET') {
416
- switch(path) {`;for(let[_,P]of Object.entries(w))Z+=`
429
+ switch(path) {`;for(let[_,z]of Object.entries(w))Z+=`
417
430
  case '${_}':
418
431
  if(request.headers.get('upgrade') === 'websocket')
419
- return st[${P}](ctx)
432
+ return st[${z}](ctx)
420
433
 
421
434
  break`;Z+=`
422
435
  default:
@@ -444,7 +457,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
444
457
  }
445
458
 
446
459
  ${G}
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=T1($);return $.handleError=Q,Function("data",Z)({app:$,mapEarlyResponse:y,NotFoundError:I0,randomId:Z1,handleError:Q,error:V1,redirect:h0,ELYSIA_TRACE:c0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer()})},T1=($)=>{const X=$.event;let Z="";Z+=`const {
460
+ }\n`,$.extender.higherOrderFunctions.length){let _="map";for(let z=0;z<$.extender.higherOrderFunctions.length;z++)_=`hoc[${z}](${_}, request)`;Z+=`return function hocMap(request) { return ${_}(request) }`}else Z+="return map";const j=H1($);return $.handleError=j,Function("data",Z)({app:$,mapEarlyResponse:y,NotFoundError:V0,randomId:Z1,handleError:j,error:A1,redirect:h0,ELYSIA_TRACE:c0,ELYSIA_REQUEST_ID:N0,getServer:()=>$.getServer()})},H1=($)=>{const X=$.event;let Z="";Z+=`const {
448
461
  app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
449
462
  mapResponse,
450
463
  ERROR_CODE,
@@ -464,7 +477,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
464
477
  const onError = onErrorContainer.map(x => x.fn)
465
478
  const res = resContainer.map(x => x.fn)
466
479
 
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=q1({context:"context",trace:X.trace,addFn:(Y)=>{Z+=Y}});Z+=`
480
+ 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=L1({context:"context",trace:X.trace,addFn:(Y)=>{Z+=Y}});Z+=`
468
481
  const set = context.set
469
482
  let r
470
483
 
@@ -474,7 +487,7 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
474
487
  if(typeof error === "object" && error && ELYSIA_RESPONSE in error) {
475
488
  error.status = error[ELYSIA_RESPONSE]
476
489
  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",q0(K)){Z+=`r = ${B}; if(r !== undefined) {
490
+ }\n`;const Q=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
491
  if(r instanceof Response) return r
479
492
 
480
493
  if(r[ELYSIA_RESPONSE]) {
@@ -482,8 +495,8 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
482
495
  error.message = error.response
483
496
  }
484
497
 
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") {
498
+ 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 F=X.mapResponse[w],j=U.resolveChild(F.fn.name);Z+=`\ncontext.response = r
499
+ r = ${C0(F)?"await":""} onMapResponse[${w}](context)\n`,j()}U.resolve(),Z+=`return mapResponse(${Q} r, set, context.request)}\n`}else Z+=B+"\n";Z+="\n}\n"}Z+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
487
500
  set.status = error.status ?? 422
488
501
  return new Response(
489
502
  error.message,
@@ -501,6 +514,6 @@ var I2=Object.create;var{defineProperty:E1,getPrototypeOf:V2,getOwnPropertyNames
501
514
  error.message,
502
515
  { headers: set.headers, status: error.status }
503
516
  )\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:f,ERROR_CODE:N0,ELYSIA_RESPONSE:m,ELYSIA_TRACE:c0,ELYSIA_REQUEST_ID:P0})};var H1=($)=>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:h0});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=y(O,G),O)return Y.response=O}const K=$.router.dynamic.find(X.method,j)??$.router.dynamic.find("ALL",j);if(!K)throw new I0;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=b0(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=b0(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?{}:b0(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 r0(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=y(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"?Y0[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=y(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 E0(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 E0(Y.set.cookie[O].value,I)}}}return Y.response=f(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)}},D2=($)=>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=f(G,X.set)}return new Response(typeof Z.cause==="string"?Z.cause:Z.message,{headers:X.set.headers,status:Z.status??500})};class Z0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=A1;version=A1;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 H0(H0(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 N1;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=G2({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)Q2(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=Y2(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: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: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: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=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=u0(this.inference),I=()=>F2({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 k=this.router.history[E];if(k.path===X&&k.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 k=q.handlers.length;if(q.handlers.push((R)=>(q.handlers[k]=I())(R)),this.router.static.ws[X]=k,E)this.router.static.ws[E]=k}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((k)=>(q.handlers[E]=I())(k)),!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",U2(Z));return this}error($,X){switch(typeof $){case"string":return X.prototype[N0]=$,this.definitions.error[$]=X,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[Z,W]of Object.entries($))W.prototype[N0]=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=j2(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 v(this.event.parse),v(this.event.transform),v(this.event.beforeHandle),v(this.event.afterHandle),v(this.event.mapResponse),v(this.event.afterResponse),v(this.event.trace),v(this.event.error),this}as($){const X={plugin:"scoped",global:"global"}[$];if(v(this.event.parse,X),v(this.event.transform,X),v(this.event.beforeHandle,X),v(this.event.afterHandle,X),v(this.event.mapResponse,X),v(this.event.afterResponse,X),v(this.event.trace,X),v(this.event.error,X),$==="plugin")this.validator.scoped=H0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=H0(this.validator.global,H0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,X,Z){const W=new Z0({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.getServer=()=>this.getServer(),W.inference=u0(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 Z0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.inference=u0(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 Z0)return this._use(Z);if(typeof Z.default==="function")return Z.default(this);if(Z.default instanceof Z0)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 Z0){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);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?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=z1(this.event,P1($.event),J)}else this.event=z1(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 Z0||typeof $==="function"||$.length===0||$==="/"){const J=typeof $==="function"?$:$ instanceof Z0?$.compile().fetch:X instanceof Z0?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 Z0)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 R0(_,Y))},message:(_,P)=>{const M=G(P);if(J?.Check(M)===!1)return void _.send(new H("message",J,M).message);X.message?.(new R0(_,Y),M)},drain(_){X.drain?.(new R0(_,Y))},close(_,P,M){X.close?.(new R0(_,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?L1(this):H1(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?L1(this):H1(this))($)};handleError=async($,X)=>(this.handleError=this.config.aot?T1(this):D2(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:!d0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...O1||{}},fetch:Z,error:this.outerErrorHandler}:{development:!d0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...O1||{}},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,J2 as replaceSchemaType,h0 as redirect,x as mergeObjectArray,c as mergeHook,s as mapValueError,f as mapResponse,y as mapEarlyResponse,e as mapCompactResponse,h as getSchemaValidator,o0 as getResponseSchemaValidator,M0 as form,V1 as error,Z0 as default,W1 as deduplicateChecksum,u0 as cloneInference,z0 as checksum,H as ValidationError,Y0 as StatusMap,j1 as ParseError,I0 as NotFoundError,$1 as InvertedStatusMap,y0 as InvalidCookieSignature,J1 as InternalServerError,Z0 as Elysia,N0 as ERROR_CODE,c0 as ELYSIA_TRACE,m as ELYSIA_RESPONSE,P0 as ELYSIA_REQUEST_ID,M3 as ELYSIA_FORM_DATA,G0 as Cookie};
517
+ error = ${C0(K)?"await":""} onMapResponse[${Y}](context)\n`,B()}return G.resolve(),Z+=`\nreturn mapResponse(${Q} error, set, context.request)\n}\n}`,Function("inject",Z)({app:$,mapResponse:f,ERROR_CODE:I0,ELYSIA_RESPONSE:d,ELYSIA_TRACE:c0,ELYSIA_REQUEST_ID:N0})};var E1=($)=>async(X)=>{const Z=X.url,W=Z.indexOf("/",11),J=Z.indexOf("?",W+1),Q=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:Q,qi:J,redirect:h0});try{for(let N=0;N<$.event.request.length;N++){const V=$.event.request[N].fn;let A=V(Y);if(A instanceof Promise)A=await A;if(A=y(A,G),A)return Y.response=A}const K=$.router.dynamic.find(X.method,Q)??$.router.dynamic.find("ALL",Q);if(!K)throw new V0;const{handle:B,hooks:U,validator:w,content:F}=K.store;let j;if(X.method!=="GET"&&X.method!=="HEAD")if(F)switch(F){case"application/json":j=await X.json();break;case"text/plain":j=await X.text();break;case"application/x-www-form-urlencoded":j=x0(await X.text());break;case"application/octet-stream":j=await X.arrayBuffer();break;case"multipart/form-data":j={};const N=await X.formData();for(let V of N.keys()){if(j[V])continue;const A=N.getAll(V);if(A.length===1)j[V]=A[0];else j[V]=A}break}else{let N=X.headers.get("content-type");if(N){const V=N.indexOf(";");if(V!==-1)N=N.slice(0,V);Y.contentType=N;for(let A=0;A<U.parse.length;A++){const q=U.parse[A].fn;let L=q(Y,N);if(L instanceof Promise)L=await L;if(L){j=L;break}}if(delete Y.contentType,j===void 0)switch(N){case"application/json":j=await X.json();break;case"text/plain":j=await X.text();break;case"application/x-www-form-urlencoded":j=x0(await X.text());break;case"application/octet-stream":j=await X.arrayBuffer();break;case"multipart/form-data":j={};const A=await X.formData();for(let q of A.keys()){if(j[q])continue;const L=A.getAll(q);if(L.length===1)j[q]=L[0];else j[q]=L}break}}}Y.body=j,Y.params=K?.params||void 0,Y.query=J===-1?{}:x0(Z.substring(J+1)),Y.headers={};for(let[N,V]of X.headers.entries())Y.headers[N]=V;const _=Object.assign({},$.config?.cookie,w?.cookie?.config),z=X.headers.get("cookie");Y.cookie=await r0(Y.set,z,_?{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 N=0;N<U.transform.length;N++){const V=U.transform[N],A=V.fn(Y);if(V.subType==="derive")if(A instanceof Promise)Object.assign(Y,await A);else Object.assign(Y,A);else if(A instanceof Promise)await A}if(w){if(w.createHeaders?.()){const N={};for(let V in X.headers)N[V]=X.headers.get(V);if(w.headers.Check(N)===!1)throw new T("header",w.headers,N)}if(w.createParams?.()?.Check(Y.params)===!1)throw new T("params",w.params,Y.params);if(w.createQuery?.()?.Check(Y.query)===!1)throw new T("query",w.query,Y.query);if(w.createCookie?.()){const N={};for(let[V,A]of Object.entries(Y.cookie))N[V]=A.value;if(w.cookie.Check(N)===!1)throw new T("cookie",w.cookie,N)}if(w.createBody?.()?.Check(j)===!1)throw new T("body",w.body,j)}for(let N=0;N<U.beforeHandle.length;N++){let V=U.beforeHandle[N].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 A=y(V,Y.set);if(A)return Y.response=A}}let M=B(Y);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){const N=M?.[d]??(G.status?typeof G.status==="string"?K0[G.status]:G.status:200),V=w?.createResponse?.()?.[N];if(V?.Check(M)===!1)throw new T("response",V,M)}else{Y.response=M;for(let N=0;N<U.afterHandle.length;N++){let V=U.afterHandle[N].fn(Y);if(V instanceof Promise)V=await V;const A=y(V,Y.set);if(A!==void 0){const q=w?.response?.[A.status];if(q?.Check(A)===!1)throw new T("response",q,A);return Y.response=A}}}if(Y.set.cookie&&_?.sign){const N=!_.secrets?void 0:typeof _.secrets==="string"?_.secrets:_.secrets[0];if(_.sign===!0)for(let[V,A]of Object.entries(Y.set.cookie))Y.set.cookie[V].value=await R0(A.value,"${secret}");else{const V=w?.cookie?.schema?.properties;for(let A of _.sign){if(!(A in V))continue;if(Y.set.cookie[A]?.value)Y.set.cookie[A].value=await R0(Y.set.cookie[A].value,N)}}}return Y.response=f(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)}},M2=($)=>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=f(G,X.set)}return new Response(typeof Z.cause==="string"?Z.cause:Z.message,{headers:X.set.headers,status:Z.status??500})};class Z0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=C1;version=C1;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 D0,ws:new D0,dynamic:new D0,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 I1;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(m($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(X)===!1){const W=new T("env",$,X);throw new Error(W.all.map((J)=>J.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:P0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){const X=Y2({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)G2(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]=m(Z);return $}add($,X,Z,W,{allowMeta:J=!1,skipPrefix:Q=!1}={allowMeta:!1,skipPrefix:!1}){if(W=B2(W),X!==""&&X.charCodeAt(0)!==47)X="/"+X;if(this.config.prefix&&!Q&&!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,F=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:m(B.body,{dynamic:Y,models:G,normalize:w}),headers:m(B.headers,{dynamic:Y,models:G,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:M0()}),params:m(B.params,{dynamic:Y,models:G,coerce:!0,additionalCoerce:M0()}),query:m(B.query,{dynamic:Y,models:G,normalize:w,coerce:!0,additionalCoerce:M0()}),cookie:U(),response:o0(B.response,{dynamic:Y,models:G,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:Y,models:G,normalize:w})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:Y,models:G,additionalProperties:!w,coerce:!0,additionalCoerce:M0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:Y,models:G,coerce:!0,additionalCoerce:M0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:Y,models:G,coerce:!0,additionalCoerce:M0()})},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})}},j=X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(W=l(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=c(Object.assign({},this.config.detail),W.detail);this.applyMacro(W);const _=l(this.event,W);if(this.config.aot===!1){if(this.router.dynamic.add($,X,{validator:F,hooks:_,content:W?.type,handle:Z}),this.config.strictPath===!1)this.router.dynamic.add($,j,{validator:F,hooks:_,content:W?.type,handle:Z});this.router.history.push({method:$,path:X,composed:null,handler:Z,hooks:_});return}const z=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=u0(this.inference),N=()=>F2({app:this,path:X,method:$,localHook:l(W),hooks:_,validator:F,handler:Z,allowMeta:J,inference:M}),V=z?N():(E)=>{return N()(E)},A=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,A);this.router.history.push({method:$,path:X,composed:V,handler:Z,hooks:_});const q=this.router.static.http,L={handler:z?V:void 0,compile:N};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]=N())(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]=N())(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[j])q.map[j]={code:""};if($==="ALL")q.map[j].all=`default: return st[${E}](ctx)\n`;else q.map[j].code=`case '${$}': return st[${E}](ctx)\n${q.map[j].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=c(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",w2(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 Q of J)Q.scope=typeof $==="string"?"local":$?.as??"local";if(W!=="trace")i0({[W]:J.map((Q)=>Q.fn)},this.inference);for(let Q of J){const G=j2(Q,"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 Z0({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.getServer=()=>this.getServer(),W.inference=u0(this.inference),W.extender={...this.extender};const J=typeof X==="object",Q=(J?Z:X)(W);if(this.singleton=c(this.singleton,W.singleton),this.definitions=c(this.definitions,W.definitions),Q.event.request.length)this.event.request=[...this.event.request||[],...Q.event.request||[]];if(Q.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...Q.event.mapResponse||[]];return this.model(Q.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,l(U,{...w||{},error:!w.error?Q.event.error:Array.isArray(w.error)?[...w.error||{},...Q.event.error||{}]:[w.error,...Q.event.error||{}]}))}else this.add(G,Y,K,l(B,{error:Q.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=c(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 Z0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.inference=u0(this.inference),Z.extender={...this.extender};const W=X(Z);if(this.singleton=c(this.singleton,Z.singleton),this.definitions=c(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:Q,handler:G,hooks:Y})=>{this.add(J,Q,G,l($,{...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 Z0)return this._use(Z);if(typeof Z.default==="function")return Z.default(this);if(Z.default instanceof Z0)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((Q)=>{if(Q instanceof Z0){this.compile();for(let{method:G,path:Y,handler:K,hooks:B}of Object.values(Q.router.history))this.add(G,Y,K,l(B,{error:Q.event.error}));return Q}if(typeof Q==="function")return Q(this);if(typeof Q.default==="function")return Q.default(this);return this._use(Q)}).then((Q)=>Q.compile())),this;return J}if($.promisedModules.size)return this.promisedModules.add($.modules.then(()=>this._use($)).then((J)=>J.compile())),this;const{name: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 Q=Z!==void 0?P0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:G})=>Q===G))return this;this.dependencies[X].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:Q,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:Q,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((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 Q=0;Q<$.extender.macros.length;Q++){const G=this.extender.macros[Q];if(J.includes(G.checksum))$.extender.macros.splice(Q,1),Q--;J.push(G.checksum)}if($.onRequest((Q)=>{Object.assign(Q,this.singleton.decorator),Object.assign(Q.store,this.singleton.store)}),$.event.trace.length)$.event.trace.push(...$.event.trace);if(!$.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if($.event.error.length)$.event.error.push(...this.event.error);if($.config.aot)$.compile();if(W===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let Q of $.router.history)this.routeTree.set(Q.method+`${$.config.prefix}${Q.path}`,this.router.history.length),this.router.history.push({...Q,path:`${$.config.prefix}${Q.path}`,hooks:l(Q.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let Q of $.router.history)this.routeTree.set(Q.method+`${$.config.prefix}${Q.path}`,this.router.history.length),this.router.history.push({...Q,path:`${$.config.prefix}${Q.path}`,hooks:l(Q.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),X){if(!(X in this.dependencies))this.dependencies[X]=[];const Q=Z!==void 0?P0(X+JSON.stringify(Z)):0;if(!this.dependencies[X].some(({checksum:G})=>Q===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 Q=0;Q<this.extender.higherOrderFunctions.length;Q++){const G=this.extender.higherOrderFunctions[Q];if(G.checksum){if(J.includes(G.checksum))this.extender.higherOrderFunctions.splice(Q,1),Q--;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:Q,handler:G,hooks:Y}of Object.values($.router.history))this.add(J,Q,G,l(Y,{error:$.event.error}));if(!W)if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const J=Z!==void 0?P0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:Q})=>J===Q))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((Q)=>Q?.subType==="derive").map((Q)=>({fn:Q.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Q)=>Q?.subType==="resolve").map((Q)=>({fn:Q.toString(),stack:new Error().stack??""}))}),this.event=P1(this.event,N1($.event),J)}else this.event=P1(this.event,N1($.event));return this.validator.global=l(this.validator.global,{...$.validator.global}),this.validator.local=l(this.validator.local,{...$.validator.scoped}),this}macro($){const X={checksum:P0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(X),this}mount($,X){if($ instanceof Z0||typeof $==="function"||$.length===0||$==="/"){const J=typeof $==="function"?$:$ instanceof Z0?$.compile().fetch:X instanceof Z0?X.compile().fetch:X,Q=async({request:G,path:Y})=>J(new Request(a0(G.url,Y||"/"),G));return this.all("/*",Q,{type:"none"}),this}const Z=$.length;if(X instanceof Z0)X=X.compile().fetch;const W=async({request:J,path:Q})=>X(new Request(a0(J.url,Q.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=m(X?.body,{models:this.definitions.type,normalize:this.config.normalize}),Q=m(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:F,params:j}=Y;if(W===null)W=this.getServer();if(W?.upgrade(Y.request,{headers:typeof X.upgrade==="function"?X.upgrade(Y):X.upgrade,data:{validator:Q,open(_){X.open?.(new b0(_,Y))},message:(_,z)=>{const M=G(z);if(J?.Check(M)===!1)return void _.send(new T("message",J,M).message);X.message?.(new b0(_,Y),M)},drain(_){X.drain?.(new b0(_,Y))},close(_,z,M){X.close?.(new b0(_,Y),z,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]=c(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=c(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]=c(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=c(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),Q=$==="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[Q(Z,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[Q(Z,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[Q(Z,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[Q(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?T1(this):E1(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?T1(this):E1(this))($)};handleError=async($,X)=>(this.handleError=this.config.aot?H1(this):M2(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:!d0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...O1||{}},fetch:Z,error:this.outerErrorHandler}:{development:!d0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...O1||{}},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{O as t,a0 as replaceUrlPath,Q2 as replaceSchemaType,h0 as redirect,x as mergeObjectArray,l as mergeHook,s as mapValueError,f as mapResponse,y as mapEarlyResponse,e as mapCompactResponse,m as getSchemaValidator,o0 as getResponseSchemaValidator,z0 as form,A1 as error,Z0 as default,W1 as deduplicateChecksum,u0 as cloneInference,P0 as checksum,T as ValidationError,K0 as StatusMap,Q1 as ParseError,V0 as NotFoundError,$1 as InvertedStatusMap,y0 as InvalidCookieSignature,J1 as InternalServerError,Z0 as Elysia,I0 as ERROR_CODE,c0 as ELYSIA_TRACE,d as ELYSIA_RESPONSE,N0 as ELYSIA_REQUEST_ID,z3 as ELYSIA_FORM_DATA,B0 as Cookie};
505
518
 
506
- //# debugId=343A34477716BDA564756E2164756E21
519
+ //# debugId=28CA37C0B98AA47864756E2164756E21