elysia 1.1.21 → 1.1.23

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,10 +1,10 @@
1
1
  // @bun
2
- var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames:E2}=Object;var q2=Object.prototype.hasOwnProperty;var U1=($,W,X)=>{X=$!=null?L2(T2($)):{};const Z=W||!$||!$.__esModule?k1(X,"default",{value:$,enumerable:!0}):X;for(let j of E2($))if(!q2.call(Z,j))k1(Z,j,{get:()=>$[j],enumerable:!0});return Z};var H2=($,W)=>()=>(W||$((W={exports:{}}).exports,W),W.exports);var o0=H2((G8,$2)=>{function _3($){var W=$.indexOf("%");if(W===-1)return $;var X=$.length,Z="",j=0,J=0,Y=W,G=o1;while(W>-1&&W<X){var K=e1($[W+1],4),B=e1($[W+2],0),U=K|B,w=N1[U];if(G=N1[256+G+w],J=J<<6|U&N1[364+w],G===o1)Z+=$.slice(j,Y),Z+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,j=W+3,W=Y=$.indexOf("%",j);else if(G===w3)return null;else{if(W+=3,W<X&&$.charCodeAt(W)===37)continue;return null}}return Z+$.slice(j)}function e1($,W){var X=F3[$];return X===void 0?255:X<<W}var o1=12,w3=0,N1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],F3={"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};$2.exports=_3});var T0=($,W)=>{const X=W?.length?{}:null;if(X)for(let Z of W)X[Z.part.charCodeAt(0)]=Z;return{part:$,store:null,inert:X,params:null,wildcardStore:null}},v1=($,W)=>({...$,part:W}),u1=($)=>({name:$,store:null,inert:null});class M0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,W,X,{ignoreError:Z=!1,ignoreHistory:j=!1}={}){if(typeof W!=="string")throw new TypeError("Route path must be a string");if(W==="")W="/";else if(W[0]!=="/")W=`/${W}`;const J=W[W.length-1]==="*",Y=W.match(M0.regex.optionalParams);if(Y){const w=W.replaceAll("?","");this.add($,w,X,{ignoreError:Z});for(let F=0;F<Y.length;F++){let Q=W.replace("/"+Y[F],"");this.add($,Q,X,{ignoreError:!0})}return X}if(Y)W=W.replaceAll("?","");if(this.history.find(([w,F,Q])=>w===$&&F===W))return X;if(J||Y&&W.charCodeAt(W.length-1)===63)W=W.slice(0,-1);if(!j)this.history.push([$,W,X]);const G=W.split(M0.regex.static),K=W.match(M0.regex.params)||[];if(G[G.length-1]==="")G.pop();let B;if(!this.root[$])B=this.root[$]=T0("/");else B=this.root[$];let U=0;for(let w=0;w<G.length;++w){let F=G[w];if(w>0){const Q=K[U++].slice(1);if(B.params===null)B.params=u1(Q);else if(B.params.name!==Q)if(Z)return X;else throw new Error(`Cannot create route "${W}" with parameter "${Q}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);const z=B.params;if(z.inert===null){B=z.inert=T0(F);continue}B=z.inert}for(let Q=0;;){if(Q===F.length){if(Q<B.part.length){const z=v1(B,B.part.slice(Q));Object.assign(B,T0(F,[z]))}break}if(Q===B.part.length){if(B.inert===null)B.inert={};const z=B.inert[F.charCodeAt(Q)];if(z){B=z,F=F.slice(Q),Q=0;continue}const D=T0(F.slice(Q));B.inert[F.charCodeAt(Q)]=D,B=D;break}if(F[Q]!==B.part[Q]){const z=v1(B,B.part.slice(Q)),D=T0(F.slice(Q));Object.assign(B,T0(B.part.slice(0,Q),[z,D])),B=D;break}++Q}}if(U<K.length){const w=K[U].slice(1);if(B.params===null)B.params=u1(w);else if(B.params.name!==w)if(Z)return X;else throw new Error(`Cannot create route "${W}" 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=X;return B.params.store}if(J){if(B.wildcardStore===null)B.wildcardStore=X;return B.wildcardStore}if(B.store===null)B.store=X;return B.store}find($,W){const X=this.root[$];if(!X)return null;return w1(W,W.length,X,0)}}var w1=($,W,X,Z)=>{const j=X.part,J=j.length,Y=Z+J;if(J>1){if(Y>W)return null;if(J<15){for(let G=1,K=Z+1;G<J;++G,++K)if(j.charCodeAt(G)!==$.charCodeAt(K))return null}else if($.slice(Z,Y)!==j)return null}if(Y===W){if(X.store!==null)return{store:X.store,params:{}};if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":""}};return null}if(X.inert!==null){const G=X.inert[$.charCodeAt(Y)];if(G!==void 0){const K=w1($,W,G,Y);if(K!==null)return K}}if(X.params!==null){const{store:G,name:K,inert:B}=X.params,U=$.indexOf("/",Y);if(U!==Y){if(U===-1||U>=W){if(G!==null){const w={};return w[K]=$.substring(Y,W),{store:G,params:w}}}else if(B!==null){const w=w1($,W,B,U);if(w!==null)return w.params[K]=$.substring(Y,U),w}}}if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":$.substring(Y,W)}};return null};var E0=($)=>{const W=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,X=W.indexOf(")");if(W.charCodeAt(X+2)===61&&W.charCodeAt(X+5)!==123)return!0;return W.includes("return")},R2=($)=>{if($.startsWith("async"))$=$.slice(5);$=$.trimStart();let W=-1;if($.charCodeAt(0)===40){if(W=$.indexOf("=>",$.indexOf(")")),W!==-1){let j=W;while(j>0)if($.charCodeAt(--j)===41)break;let J=$.slice(W+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[$.slice(1,j),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if($.startsWith("function")){W=$.indexOf("(");const j=$.indexOf(")");return[$.slice(W+1,j),$.slice(j+2),{isArrowReturn:!1}]}const X=$.indexOf("(");if(X!==-1){const j=$.indexOf("\n",2),J=$.slice(0,j),Y=J.lastIndexOf(")")+1,G=$.slice(j+1);return[J.slice(X,Y),"{"+G,{isArrowReturn:!1}]}const Z=$.split("\n",2);return[Z[0],Z[1],{isArrowReturn:!1}]},b2=($)=>{const W=$.indexOf("{");if(W===-1)return[-1,0];let X=W+1,Z=1;for(;X<$.length;X++){const j=$.charCodeAt(X);if(j===123)Z++;else if(j===125)Z--;if(Z===0)break}if(Z!==0)return[0,$.length];return[W,X+1]},x2=($)=>{const W=$.lastIndexOf("}");if(W===-1)return[-1,0];let X=W-1,Z=1;for(;X>=0;X--){const j=$.charCodeAt(X);if(j===125)Z++;else if(j===123)Z--;if(Z===0)break}if(Z!==0)return[-1,0];return[X,W+1]},h1=($)=>{while(!0){const W=$.indexOf(":");if(W===-1)break;let X=$.indexOf(",",W);if(X===-1)X=$.indexOf("}",W)-1;if(X===-2)X=$.length;$=$.slice(0,W)+$.slice(X)}return $},m1=($)=>{let W=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)W=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let X=[];while(!0){let[j,J]=b2($);if(j===-1)break;if(X.push($.slice(0,j-1)),$.charCodeAt(J)===44)J++;$=$.slice(J)}if($=h1($),$)X=X.concat($.split(","));const Z=[];for(let j of X){if(j.indexOf(",")===-1){Z.push(j);continue}for(let J of j.split(","))Z.push(J.trim())}return X=Z,{hasParenthesis:W,parameters:X}},g2=($,W)=>{const{parameters:X,hasParenthesis:Z}=m1($);if(!W.query&&X.includes("query"))W.query=!0;if(!W.headers&&X.includes("headers"))W.headers=!0;if(!W.body&&X.includes("body"))W.body=!0;if(!W.cookie&&X.includes("cookie"))W.cookie=!0;if(!W.set&&X.includes("set"))W.set=!0;if(!W.server&&X.includes("server"))W.server=!0;if(Z)return`{ ${X.join(", ")} }`;return X.join(", ")},f2=($,W,X)=>{const Z=W.indexOf($+"\n",X),j=W.indexOf($+"\t",X),J=W.indexOf($+",",X),Y=W.indexOf($+";",X),G=W.indexOf($+" ",X);return[Z,j,J,Y,G].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var d1=($,W,X=0)=>{if(X>5)return[];const Z=[];let j=W;while(!0){let J=f2(" = "+$,j);if(J===-1){const K=j.indexOf(" = "+$);if(K+3+$.length!==j.length)break;J=K}const Y=j.slice(0,J);let G=Y.slice(Y.lastIndexOf(" ")+1);if(G==="}"){const[K,B]=x2(Y);Z.push(h1(j.slice(K,B))),j=j.slice(J+3+$.length);continue}while(G.charCodeAt(0)===44)G=G.slice(1);while(G.charCodeAt(0)===9)G=G.slice(1);if(!G.includes("("))Z.push(G);j=j.slice(J+3+$.length)}for(let J of Z){if(J.charCodeAt(0)===123)continue;const Y=d1(J,W);if(Y.length>0)Z.push(...Y)}return Z},y2=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}const X=$.indexOf("...");if(X===-1)return;return $.slice(X+3).trimEnd()},k2=($,W,X)=>{const Z=(j,J)=>$.includes(J+"."+j)||$.includes(J+'["'+j+'"]')||$.includes(J+"['"+j+"']");for(let j of W){if(!j)continue;if(j.charCodeAt(0)===123){const J=m1(j).parameters;if(!X.query&&J.includes("query"))X.query=!0;if(!X.headers&&J.includes("headers"))X.headers=!0;if(!X.body&&J.includes("body"))X.body=!0;if(!X.cookie&&J.includes("cookie"))X.cookie=!0;if(!X.set&&J.includes("set"))X.set=!0;if(!X.query&&J.includes("server"))X.server=!0;continue}if(!X.query&&Z("query",j))X.query=!0;if($.includes("return "+j)||$.includes("return "+j+".query"))X.query=!0;if(!X.headers&&Z("headers",j))X.headers=!0;if(!X.body&&Z("body",j))X.body=!0;if(!X.cookie&&Z("cookie",j))X.cookie=!0;if(!X.set&&Z("set",j))X.set=!0;if(!X.server&&Z("server",j))X.server=!0;if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return W};var v2=($,W,X)=>{try{const Z=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");Z.test(W);const j=W.charCodeAt(Z.lastIndex);if(j===41||j===44)return X.query=!0,X.headers=!0,X.body=!0,X.cookie=!0,X.set=!0,X.server=!0,!0;return!1}catch(Z){return console.log("[Sucrose] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to maintainers:"),console.log("--- body ---"),console.log(W),console.log("--- context ---"),console.log($),!0}},r0=($,W={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const X=[];if($.handler&&typeof $.handler==="function")X.push($.handler);if($.request?.length)X.push(...$.request);if($.beforeHandle?.length)X.push(...$.beforeHandle);if($.parse?.length)X.push(...$.parse);if($.error?.length)X.push(...$.error);if($.transform?.length)X.push(...$.transform);if($.afterHandle?.length)X.push(...$.afterHandle);if($.mapResponse?.length)X.push(...$.mapResponse);if($.afterResponse?.length)X.push(...$.afterResponse);for(let Z of X){if(!Z)continue;const j="fn"in Z?Z.fn:Z,[J,Y,{isArrowReturn:G}]=R2(j.toString()),K=g2(J,W),B=y2(K);if(B){const U=d1(B,Y);if(U.splice(0,-1,B),!v2(B,Y,W))k2(Y,U,W);if(!W.query&&Y.includes("return "+B+".query"))W.query=!0}if(W.query&&W.headers&&W.body&&W.cookie&&W.set&&W.server)break}return W};import{Value as c0}from"@sinclair/typebox/value";import{Kind as H0,TransformKind as G2}from"@sinclair/typebox";import{Value as l}from"@sinclair/typebox/value";import{TypeCompiler as K2}from"@sinclair/typebox/compiler";import{Kind as $3,TypeRegistry as M1}from"@sinclair/typebox";import{TypeSystem as q0}from"@sinclair/typebox/system";import{Type as k0,FormatRegistry as W0}from"@sinclair/typebox";import{TypeCompiler as n1}from"@sinclair/typebox/compiler";import{Value as $0}from"@sinclair/typebox/value";function u2($){return $%4===0&&($%100!==0||$%400===0)}function i1($){const W=h2.exec($);if(!W)return!1;const X=+W[1],Z=+W[2],j=+W[3];return Z>=1&&Z<=12&&j>=1&&j<=(Z===2&&u2(X)?29:m2[Z])}function _1($){return function W(X){const Z=d2.exec(X);if(!Z)return!1;const j=+Z[1],J=+Z[2],Y=+Z[3],G=Z[4],K=Z[5]==="-"?-1:1,B=+(Z[6]||0),U=+(Z[7]||0);if(B>23||U>59||$&&!G)return!1;if(j<=23&&J<=59&&Y<60)return!0;const w=J-U*K,F=j-B*K-(w<0?1:0);return(F===23||F===-1)&&(w===59||w===-1)&&Y<61}}function c1($){const W=_1($);return function X(Z){const j=Z.split(c2);return j.length===2&&i1(j[0])&&W(j[1])}}function i2($){return p2.test($)&&l2.test($)}function n2($){return p1.lastIndex=0,p1.test($)}function s2($){return Number.isInteger($)&&$<=r2&&$>=t2}function a2($){return Number.isInteger($)}function l1(){return!0}function e2($){if(o2.test($))return!1;try{return new RegExp($),!0}catch(W){return!1}}var s0={date:i1,time:_1(!0),"date-time":c1(!0),"iso-time":_1(!1),"iso-date-time":c1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:i2,"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:e2,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:n2,int32:{type:"number",validate:s2},int64:{type:"number",validate:a2},float:{type:"number",validate:l1},double:{type:"number",validate:l1},password:!0,binary:!0},h2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m2=[0,31,28,31,30,31,30,31,31,30,31,30,31],d2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,c2=/t|\s/i,p2=/\/|:/,l2=/^(?:[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,p1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,t2=-2147483648,r2=2147483647,o2=/[^\\]\\Z/;import{TypeSystemPolicy as $8,TypeSystem as W8,TypeSystemDuplicateFormat as X8,TypeSystemDuplicateTypeKind as Z8}from"@sinclair/typebox/system";import{TypeCompiler as J8,TypeCheck as Q8}from"@sinclair/typebox/compiler";var r1=/(\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))/,s1=/(?: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\([^)]+\)/,a1=/^(?:(?:(?:(?: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)?)?$/,W3=s0.date,X3=s0["date-time"];if(!W0.Has("date"))q0.Format("date",($)=>{const W=$.replace(/"/g,"");if(r1.test(W)||s1.test(W)||a1.test(W)||W3(W)){const X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});if(!W0.Has("date-time"))q0.Format("date-time",($)=>{const W=$.replace(/"/g,"");if(r1.test(W)||s1.test(W)||a1.test(W)||X3(W)){const X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});Object.entries(s0).forEach(($)=>{const[W,X]=$;if(!W0.Has(W)){if(X instanceof RegExp)q0.Format(W,(Z)=>X.test(Z));else if(typeof X==="function")q0.Format(W,X)}});var V=Object.assign({},k0),t1=($)=>{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 $},F1=($,W)=>{if(!(W instanceof Blob))return!1;if($.minSize&&W.size<t1($.minSize))return!1;if($.maxSize&&W.size>t1($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!W.type.startsWith($.extension))return!1}else{for(let X=0;X<$.extension.length;X++)if(W.type.startsWith($.extension[X]))return!0;return!1}return!0},Z3=M1.Get("Files")??q0.Type("File",F1),j3=M1.Get("Files")??q0.Type("Files",($,W)=>{if(!Array.isArray(W))return F1($,W);if($.minItems&&W.length<$.minItems)return!1;if($.maxItems&&W.length>$.maxItems)return!1;for(let X=0;X<W.length;X++)if(!F1($,W[X]))return!1;return!0});if(!W0.Has("numeric"))W0.Set("numeric",($)=>!!$&&!isNaN(+$));if(!W0.Has("boolean"))W0.Set("boolean",($)=>$==="true"||$==="false");if(!W0.Has("ObjectString"))W0.Set("ObjectString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!W0.Has("ArrayString"))W0.Set("ArrayString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});M1.Set("UnionEnum",($,W)=>{return(typeof W==="number"||typeof W==="string"||W===null)&&$.enum.includes(W)});var X0={Numeric:($)=>{const W=k0.Number($);return V.Transform(V.Union([V.String({format:"numeric",default:0}),V.Number($)],$)).Decode((X)=>{const Z=+X;if(isNaN(Z))return X;if($&&!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>X)},Date:($)=>{const W=k0.Date($);return V.Transform(V.Union([k0.Date($),V.String({format:"date",default:new Date().toISOString()}),V.String({format:"date-time",default:new Date().toISOString()})],$)).Decode((X)=>{if(X instanceof Date)return X;const Z=new Date(X);if(!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>{if(typeof X==="string")return new Date(X);return X})},BooleanString:($)=>{const W=k0.Boolean($);return V.Transform(V.Union([V.String({format:"boolean",default:!1}),V.Boolean($)],$)).Decode((X)=>{if(typeof X==="string")return X==="true";if($&&!$0.Check(W,X))throw new q("property",W,X);return X}).Encode((X)=>X)},ObjectString:($,W)=>{const X=V.Object($,W),Z=JSON.stringify($0.Create(X));let j;try{j=n1.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ObjectString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},ArrayString:($={},W)=>{const X=V.Array($,W),Z=JSON.stringify($0.Create(X));let j;try{j=n1.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ArrayString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},File:Z3,Files:($={})=>V.Transform(j3($)).Decode((W)=>{if(Array.isArray(W))return W;return[W]}).Encode((W)=>W),Nullable:($)=>V.Union([$,V.Null()]),MaybeEmpty:($)=>V.Union([$,V.Null(),V.Undefined()]),Cookie:($,{domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U,...w}={})=>{const F=V.Object($,w);return F.config={domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U},F},UnionEnum:($,W={})=>{const X=$.every((Z)=>typeof Z==="string")?{type:"string"}:$.every((Z)=>typeof Z==="number")?{type:"number"}:$.every((Z)=>Z===null)?{type:"null"}:{};if($.some((Z)=>typeof Z==="object"&&Z!==null))throw new Error("This type does not support objects or arrays");return{default:$[0],...W,[$3]:"UnionEnum",...X,enum:$}}};V.BooleanString=X0.BooleanString;V.ObjectString=X0.ObjectString;V.ArrayString=X0.ArrayString;V.Numeric=X0.Numeric;V.File=($={})=>X0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});V.Files=($={})=>X0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});V.Nullable=($)=>X0.Nullable($);V.MaybeEmpty=X0.MaybeEmpty;V.Cookie=X0.Cookie;V.Date=X0.Date;V.UnionEnum=X0.UnionEnum;function Q3($,W){if(typeof $!=="string")throw new TypeError("argument str must be a string");var X={},Z=W||{},j=Z.decode||G3,J=0;while(J<$.length){var Y=$.indexOf("=",J);if(Y===-1)break;var G=$.indexOf(";",J);if(G===-1)G=$.length;else if(G<Y){J=$.lastIndexOf(";",Y-1)+1;continue}var K=$.slice(J,Y).trim();if(X[K]===void 0){var B=$.slice(Y+1,G).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);X[K]=U3(B,j)}J=G+1}return X}function Y3($,W,X){var Z=X||{},j=Z.encode||B3;if(typeof j!=="function")throw new TypeError("option encode is invalid");if(!a0.test($))throw new TypeError("argument name is invalid");var J=j(W);if(J&&!a0.test(J))throw new TypeError("argument val is invalid");var Y=$+"="+J;if(Z.maxAge!=null){var G=Z.maxAge-0;if(isNaN(G)||!isFinite(G))throw new TypeError("option maxAge is invalid");Y+="; Max-Age="+Math.floor(G)}if(Z.domain){if(!a0.test(Z.domain))throw new TypeError("option domain is invalid");Y+="; Domain="+Z.domain}if(Z.path){if(!a0.test(Z.path))throw new TypeError("option path is invalid");Y+="; Path="+Z.path}if(Z.expires){var K=Z.expires;if(!K3(K)||isNaN(K.valueOf()))throw new TypeError("option expires is invalid");Y+="; Expires="+K.toUTCString()}if(Z.httpOnly)Y+="; HttpOnly";if(Z.secure)Y+="; Secure";if(Z.partitioned)Y+="; Partitioned";if(Z.priority){var B=typeof Z.priority==="string"?Z.priority.toLowerCase():Z.priority;switch(B){case"low":Y+="; Priority=Low";break;case"medium":Y+="; Priority=Medium";break;case"high":Y+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(Z.sameSite){var U=typeof Z.sameSite==="string"?Z.sameSite.toLowerCase():Z.sameSite;switch(U){case!0:Y+="; SameSite=Strict";break;case"lax":Y+="; SameSite=Lax";break;case"strict":Y+="; SameSite=Strict";break;case"none":Y+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Y}function G3($){return $.indexOf("%")!==-1?decodeURIComponent($):$}function B3($){return encodeURIComponent($)}function K3($){return J3.call($)==="[object Date]"||$ instanceof Date}function U3($,W){try{return W($)}catch(X){return $}}/*!
2
+ var L1=Object.create;var{getPrototypeOf:T1,defineProperty:k2,getOwnPropertyNames:E1}=Object;var q1=Object.prototype.hasOwnProperty;var U2=($,W,X)=>{X=$!=null?L1(T1($)):{};let Z=W||!$||!$.__esModule?k2(X,"default",{value:$,enumerable:!0}):X;for(let j of E1($))if(!q1.call(Z,j))k2(Z,j,{get:()=>$[j],enumerable:!0});return Z};var H1=($,W)=>()=>(W||$((W={exports:{}}).exports,W),W.exports);var o0=H1((G8,$1)=>{var o2=12,w3=0,N2=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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];function _3($){var W=$.indexOf("%");if(W===-1)return $;var X=$.length,Z="",j=0,J=0,Y=W,G=o2;while(W>-1&&W<X){var K=e2($[W+1],4),B=e2($[W+2],0),U=K|B,w=N2[U];if(G=N2[256+G+w],J=J<<6|U&N2[364+w],G===o2)Z+=$.slice(j,Y),Z+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,j=W+3,W=Y=$.indexOf("%",j);else if(G===w3)return null;else{if(W+=3,W<X&&$.charCodeAt(W)===37)continue;return null}}return Z+$.slice(j)}var F3={"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};function e2($,W){var X=F3[$];return X===void 0?255:X<<W}$1.exports=_3});var T0=($,W)=>{let X=W?.length?{}:null;if(X)for(let Z of W)X[Z.part.charCodeAt(0)]=Z;return{part:$,store:null,inert:X,params:null,wildcardStore:null}},v2=($,W)=>({...$,part:W}),u2=($)=>({name:$,store:null,inert:null});class M0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,W,X,{ignoreError:Z=!1,ignoreHistory:j=!1}={}){if(typeof W!=="string")throw new TypeError("Route path must be a string");if(W==="")W="/";else if(W[0]!=="/")W=`/${W}`;let J=W[W.length-1]==="*",Y=W.match(M0.regex.optionalParams);if(Y){let w=W.replaceAll("?","");this.add($,w,X,{ignoreError:Z});for(let F=0;F<Y.length;F++){let Q=W.replace("/"+Y[F],"");this.add($,Q,X,{ignoreError:!0})}return X}if(Y)W=W.replaceAll("?","");if(this.history.find(([w,F,Q])=>w===$&&F===W))return X;if(J||Y&&W.charCodeAt(W.length-1)===63)W=W.slice(0,-1);if(!j)this.history.push([$,W,X]);let G=W.split(M0.regex.static),K=W.match(M0.regex.params)||[];if(G[G.length-1]==="")G.pop();let B;if(!this.root[$])B=this.root[$]=T0("/");else B=this.root[$];let U=0;for(let w=0;w<G.length;++w){let F=G[w];if(w>0){let Q=K[U++].slice(1);if(B.params===null)B.params=u2(Q);else if(B.params.name!==Q)if(Z)return X;else throw new Error(`Cannot create route "${W}" with parameter "${Q}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);let z=B.params;if(z.inert===null){B=z.inert=T0(F);continue}B=z.inert}for(let Q=0;;){if(Q===F.length){if(Q<B.part.length){let z=v2(B,B.part.slice(Q));Object.assign(B,T0(F,[z]))}break}if(Q===B.part.length){if(B.inert===null)B.inert={};let z=B.inert[F.charCodeAt(Q)];if(z){B=z,F=F.slice(Q),Q=0;continue}let D=T0(F.slice(Q));B.inert[F.charCodeAt(Q)]=D,B=D;break}if(F[Q]!==B.part[Q]){let z=v2(B,B.part.slice(Q)),D=T0(F.slice(Q));Object.assign(B,T0(B.part.slice(0,Q),[z,D])),B=D;break}++Q}}if(U<K.length){let w=K[U].slice(1);if(B.params===null)B.params=u2(w);else if(B.params.name!==w)if(Z)return X;else throw new Error(`Cannot create route "${W}" 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=X;return B.params.store}if(J){if(B.wildcardStore===null)B.wildcardStore=X;return B.wildcardStore}if(B.store===null)B.store=X;return B.store}find($,W){let X=this.root[$];if(!X)return null;return w2(W,W.length,X,0)}}var w2=($,W,X,Z)=>{let j=X.part,J=j.length,Y=Z+J;if(J>1){if(Y>W)return null;if(J<15){for(let G=1,K=Z+1;G<J;++G,++K)if(j.charCodeAt(G)!==$.charCodeAt(K))return null}else if($.slice(Z,Y)!==j)return null}if(Y===W){if(X.store!==null)return{store:X.store,params:{}};if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":""}};return null}if(X.inert!==null){let G=X.inert[$.charCodeAt(Y)];if(G!==void 0){let K=w2($,W,G,Y);if(K!==null)return K}}if(X.params!==null){let{store:G,name:K,inert:B}=X.params,U=$.indexOf("/",Y);if(U!==Y){if(U===-1||U>=W){if(G!==null){let w={};return w[K]=$.substring(Y,W),{store:G,params:w}}}else if(B!==null){let w=w2($,W,B,U);if(w!==null)return w.params[K]=$.substring(Y,U),w}}}if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":$.substring(Y,W)}};return null};var E0=($)=>{let W=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,X=W.indexOf(")");if(W.charCodeAt(X+2)===61&&W.charCodeAt(X+5)!==123)return!0;return W.includes("return")},R1=($)=>{if($.startsWith("async"))$=$.slice(5);$=$.trimStart();let W=-1;if($.charCodeAt(0)===40){if(W=$.indexOf("=>",$.indexOf(")")),W!==-1){let j=W;while(j>0)if($.charCodeAt(--j)===41)break;let J=$.slice(W+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[$.slice(1,j),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if($.startsWith("function")){W=$.indexOf("(");let j=$.indexOf(")");return[$.slice(W+1,j),$.slice(j+2),{isArrowReturn:!1}]}let X=$.indexOf("(");if(X!==-1){let j=$.indexOf("\n",2),J=$.slice(0,j),Y=J.lastIndexOf(")")+1,G=$.slice(j+1);return[J.slice(X,Y),"{"+G,{isArrowReturn:!1}]}let Z=$.split("\n",2);return[Z[0],Z[1],{isArrowReturn:!1}]},b1=($)=>{let W=$.indexOf("{");if(W===-1)return[-1,0];let X=W+1,Z=1;for(;X<$.length;X++){let j=$.charCodeAt(X);if(j===123)Z++;else if(j===125)Z--;if(Z===0)break}if(Z!==0)return[0,$.length];return[W,X+1]},x1=($)=>{let W=$.lastIndexOf("}");if(W===-1)return[-1,0];let X=W-1,Z=1;for(;X>=0;X--){let j=$.charCodeAt(X);if(j===125)Z++;else if(j===123)Z--;if(Z===0)break}if(Z!==0)return[-1,0];return[X,W+1]},h2=($)=>{while(!0){let W=$.indexOf(":");if(W===-1)break;let X=$.indexOf(",",W);if(X===-1)X=$.indexOf("}",W)-1;if(X===-2)X=$.length;$=$.slice(0,W)+$.slice(X)}return $},m2=($)=>{let W=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)W=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let X=[];while(!0){let[j,J]=b1($);if(j===-1)break;if(X.push($.slice(0,j-1)),$.charCodeAt(J)===44)J++;$=$.slice(J)}if($=h2($),$)X=X.concat($.split(","));let Z=[];for(let j of X){if(j.indexOf(",")===-1){Z.push(j);continue}for(let J of j.split(","))Z.push(J.trim())}return X=Z,{hasParenthesis:W,parameters:X}},g1=($,W)=>{let{parameters:X,hasParenthesis:Z}=m2($);if(!W.query&&X.includes("query"))W.query=!0;if(!W.headers&&X.includes("headers"))W.headers=!0;if(!W.body&&X.includes("body"))W.body=!0;if(!W.cookie&&X.includes("cookie"))W.cookie=!0;if(!W.set&&X.includes("set"))W.set=!0;if(!W.server&&X.includes("server"))W.server=!0;if(Z)return`{ ${X.join(", ")} }`;return X.join(", ")},f1=($,W,X)=>{let Z=W.indexOf($+"\n",X),j=W.indexOf($+"\t",X),J=W.indexOf($+",",X),Y=W.indexOf($+";",X),G=W.indexOf($+" ",X);return[Z,j,J,Y,G].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var d2=($,W,X=0)=>{if(X>5)return[];let Z=[],j=W;while(!0){let J=f1(" = "+$,j);if(J===-1){let K=j.indexOf(" = "+$);if(K+3+$.length!==j.length)break;J=K}let Y=j.slice(0,J),G=Y.slice(Y.lastIndexOf(" ")+1);if(G==="}"){let[K,B]=x1(Y);Z.push(h2(j.slice(K,B))),j=j.slice(J+3+$.length);continue}while(G.charCodeAt(0)===44)G=G.slice(1);while(G.charCodeAt(0)===9)G=G.slice(1);if(!G.includes("("))Z.push(G);j=j.slice(J+3+$.length)}for(let J of Z){if(J.charCodeAt(0)===123)continue;let Y=d2(J,W);if(Y.length>0)Z.push(...Y)}return Z},y1=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}let X=$.indexOf("...");if(X===-1)return;return $.slice(X+3).trimEnd()},k1=($,W,X)=>{let Z=(j,J)=>$.includes(J+"."+j)||$.includes(J+'["'+j+'"]')||$.includes(J+"['"+j+"']");for(let j of W){if(!j)continue;if(j.charCodeAt(0)===123){let J=m2(j).parameters;if(!X.query&&J.includes("query"))X.query=!0;if(!X.headers&&J.includes("headers"))X.headers=!0;if(!X.body&&J.includes("body"))X.body=!0;if(!X.cookie&&J.includes("cookie"))X.cookie=!0;if(!X.set&&J.includes("set"))X.set=!0;if(!X.query&&J.includes("server"))X.server=!0;continue}if(!X.query&&Z("query",j))X.query=!0;if($.includes("return "+j)||$.includes("return "+j+".query"))X.query=!0;if(!X.headers&&Z("headers",j))X.headers=!0;if(!X.body&&Z("body",j))X.body=!0;if(!X.cookie&&Z("cookie",j))X.cookie=!0;if(!X.set&&Z("set",j))X.set=!0;if(!X.server&&Z("server",j))X.server=!0;if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return W};var v1=($,W,X)=>{try{let Z=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");Z.test(W);let j=W.charCodeAt(Z.lastIndex);if(j===41||j===44)return X.query=!0,X.headers=!0,X.body=!0,X.cookie=!0,X.set=!0,X.server=!0,!0;return!1}catch(Z){return console.log("[Sucrose] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to maintainers:"),console.log("--- body ---"),console.log(W),console.log("--- context ---"),console.log($),!0}},r0=($,W={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{let X=[];if($.handler&&typeof $.handler==="function")X.push($.handler);if($.request?.length)X.push(...$.request);if($.beforeHandle?.length)X.push(...$.beforeHandle);if($.parse?.length)X.push(...$.parse);if($.error?.length)X.push(...$.error);if($.transform?.length)X.push(...$.transform);if($.afterHandle?.length)X.push(...$.afterHandle);if($.mapResponse?.length)X.push(...$.mapResponse);if($.afterResponse?.length)X.push(...$.afterResponse);for(let Z of X){if(!Z)continue;let j="fn"in Z?Z.fn:Z,[J,Y,{isArrowReturn:G}]=R1(j.toString()),K=g1(J,W),B=y1(K);if(B){let U=d2(B,Y);if(U.splice(0,-1,B),!v1(B,Y,W))k1(Y,U,W);if(!W.query&&Y.includes("return "+B+".query"))W.query=!0}if(W.query&&W.headers&&W.body&&W.cookie&&W.set&&W.server)break}return W};import{Value as c0}from"@sinclair/typebox/value";import{Kind as H0,TransformKind as G1}from"@sinclair/typebox";import{Value as p}from"@sinclair/typebox/value";import{TypeCompiler as K1}from"@sinclair/typebox/compiler";import{Kind as $3,TypeRegistry as M2}from"@sinclair/typebox";import{TypeSystem as q0}from"@sinclair/typebox/system";import{Type as k0,FormatRegistry as W0}from"@sinclair/typebox";import{TypeCompiler as n2}from"@sinclair/typebox/compiler";import{Value as $0}from"@sinclair/typebox/value";var s0={date:i2,time:_2(!0),"date-time":c2(!0),"iso-time":_2(!1),"iso-date-time":c2(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:i1,"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:e1,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:n1,int32:{type:"number",validate:s1},int64:{type:"number",validate:a1},float:{type:"number",validate:p2},double:{type:"number",validate:p2},password:!0,binary:!0};function u1($){return $%4===0&&($%100!==0||$%400===0)}var h1=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m1=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i2($){let W=h1.exec($);if(!W)return!1;let X=+W[1],Z=+W[2],j=+W[3];return Z>=1&&Z<=12&&j>=1&&j<=(Z===2&&u1(X)?29:m1[Z])}var d1=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function _2($){return function W(X){let Z=d1.exec(X);if(!Z)return!1;let j=+Z[1],J=+Z[2],Y=+Z[3],G=Z[4],K=Z[5]==="-"?-1:1,B=+(Z[6]||0),U=+(Z[7]||0);if(B>23||U>59||$&&!G)return!1;if(j<=23&&J<=59&&Y<60)return!0;let w=J-U*K,F=j-B*K-(w<0?1:0);return(F===23||F===-1)&&(w===59||w===-1)&&Y<61}}var c1=/t|\s/i;function c2($){let W=_2($);return function X(Z){let j=Z.split(c1);return j.length===2&&i2(j[0])&&W(j[1])}}var l1=/\/|:/,p1=/^(?:[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;function i1($){return l1.test($)&&p1.test($)}var l2=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function n1($){return l2.lastIndex=0,l2.test($)}var t1=-2147483648,r1=2147483647;function s1($){return Number.isInteger($)&&$<=r1&&$>=t1}function a1($){return Number.isInteger($)}function p2(){return!0}var o1=/[^\\]\\Z/;function e1($){if(o1.test($))return!1;try{return new RegExp($),!0}catch(W){return!1}}import{TypeSystemPolicy as $8,TypeSystem as W8,TypeSystemDuplicateFormat as X8,TypeSystemDuplicateTypeKind as Z8}from"@sinclair/typebox/system";import{TypeCompiler as J8,TypeCheck as Q8}from"@sinclair/typebox/compiler";var r2=/(\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))/,s2=/(?: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\([^)]+\)/,a2=/^(?:(?:(?:(?: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)?)?$/,W3=s0.date,X3=s0["date-time"];if(!W0.Has("date"))q0.Format("date",($)=>{let W=$.replace(/"/g,"");if(r2.test(W)||s2.test(W)||a2.test(W)||W3(W)){let X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});if(!W0.Has("date-time"))q0.Format("date-time",($)=>{let W=$.replace(/"/g,"");if(r2.test(W)||s2.test(W)||a2.test(W)||X3(W)){let X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});Object.entries(s0).forEach(($)=>{let[W,X]=$;if(!W0.Has(W)){if(X instanceof RegExp)q0.Format(W,(Z)=>X.test(Z));else if(typeof X==="function")q0.Format(W,X)}});var V=Object.assign({},k0),t2=($)=>{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 $},F2=($,W)=>{if(!(W instanceof Blob))return!1;if($.minSize&&W.size<t2($.minSize))return!1;if($.maxSize&&W.size>t2($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!W.type.startsWith($.extension))return!1}else{for(let X=0;X<$.extension.length;X++)if(W.type.startsWith($.extension[X]))return!0;return!1}return!0},Z3=M2.Get("Files")??q0.Type("File",F2),j3=M2.Get("Files")??q0.Type("Files",($,W)=>{if(!Array.isArray(W))return F2($,W);if($.minItems&&W.length<$.minItems)return!1;if($.maxItems&&W.length>$.maxItems)return!1;for(let X=0;X<W.length;X++)if(!F2($,W[X]))return!1;return!0});if(!W0.Has("numeric"))W0.Set("numeric",($)=>!!$&&!isNaN(+$));if(!W0.Has("boolean"))W0.Set("boolean",($)=>$==="true"||$==="false");if(!W0.Has("ObjectString"))W0.Set("ObjectString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!W0.Has("ArrayString"))W0.Set("ArrayString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});M2.Set("UnionEnum",($,W)=>{return(typeof W==="number"||typeof W==="string"||W===null)&&$.enum.includes(W)});var X0={Numeric:($)=>{let W=k0.Number($);return V.Transform(V.Union([V.String({format:"numeric",default:0}),V.Number($)],$)).Decode((X)=>{let Z=+X;if(isNaN(Z))return X;if($&&!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>X)},Date:($)=>{let W=k0.Date($);return V.Transform(V.Union([k0.Date($),V.String({format:"date",default:new Date().toISOString()}),V.String({format:"date-time",default:new Date().toISOString()})],$)).Decode((X)=>{if(X instanceof Date)return X;let Z=new Date(X);if(!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>{if(typeof X==="string")return new Date(X);return X})},BooleanString:($)=>{let W=k0.Boolean($);return V.Transform(V.Union([V.String({format:"boolean",default:!1}),V.Boolean($)],$)).Decode((X)=>{if(typeof X==="string")return X==="true";if($&&!$0.Check(W,X))throw new q("property",W,X);return X}).Encode((X)=>X)},ObjectString:($,W)=>{let X=V.Object($,W),Z=JSON.stringify($0.Create(X)),j;try{j=n2.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ObjectString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},ArrayString:($={},W)=>{let X=V.Array($,W),Z=JSON.stringify($0.Create(X)),j;try{j=n2.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ArrayString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},File:Z3,Files:($={})=>V.Transform(j3($)).Decode((W)=>{if(Array.isArray(W))return W;return[W]}).Encode((W)=>W),Nullable:($)=>V.Union([$,V.Null()]),MaybeEmpty:($)=>V.Union([$,V.Null(),V.Undefined()]),Cookie:($,{domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U,...w}={})=>{let F=V.Object($,w);return F.config={domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U},F},UnionEnum:($,W={})=>{let X=$.every((Z)=>typeof Z==="string")?{type:"string"}:$.every((Z)=>typeof Z==="number")?{type:"number"}:$.every((Z)=>Z===null)?{type:"null"}:{};if($.some((Z)=>typeof Z==="object"&&Z!==null))throw new Error("This type does not support objects or arrays");return{default:$[0],...W,[$3]:"UnionEnum",...X,enum:$}}};V.BooleanString=X0.BooleanString;V.ObjectString=X0.ObjectString;V.ArrayString=X0.ArrayString;V.Numeric=X0.Numeric;V.File=($={})=>X0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});V.Files=($={})=>X0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});V.Nullable=($)=>X0.Nullable($);V.MaybeEmpty=X0.MaybeEmpty;V.Cookie=X0.Cookie;V.Date=X0.Date;V.UnionEnum=X0.UnionEnum;/*!
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 z1=Q3,D1=Y3;var J3=Object.prototype.toString,a0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var X2=U1(o0(),1);class w0{$;W;X;constructor($,W,X={}){this.name=$;this.jar=W;this.initial=X}get cookie(){if(!(this.name in this.jar))this.jar[this.name]=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($){this.cookie.value=$}get expires(){return this.cookie.expires}set expires($){this.cookie.expires=$,console.log(this.cookie)}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 W2=($,W,X)=>{if(!$.cookie)$.cookie={};return new Proxy(W,{get(Z,j){if(j in W)return new w0(j,$.cookie,Object.assign({},X??{},W[j]));return new w0(j,$.cookie,Object.assign({},X))}})},e0=async($,W,{secrets:X,sign:Z,...j}={})=>{if(!W)return W2($,{},j);const J=typeof X==="string";if(Z&&Z!==!0&&!Array.isArray(Z))Z=[Z];const Y={},G=z1(W);for(let[K,B]of Object.entries(G)){let U=X2.default(B);if(Z===!0||Z?.includes(K)){if(!X)throw new Error("No secret is provided to cookie plugin");if(J){const w=await P1(U,X);if(w===!1)throw new v0(K);U=w}else{let w=!0;for(let F=0;F<X.length;F++){const Q=await P1(U,X[F]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new v0(K)}}Y[K]={value:U}}return W2($,Y,j)};async function*h0($){const W=$.body;if(!W)return;const X=W.getReader(),Z=new TextDecoder;try{while(!0){const{done:j,value:J}=await X.read();if(j)break;yield Z.decode(J)}}finally{X.releaseLock()}}var Z2="toJSON"in new Headers,c=($)=>{if(!$)return!1;for(let W in $)return!0;return!1},u0=($,W)=>{const X=$.size;if(!W&&X||X&&W&&W.status!==206&&W.status!==304&&W.status!==412&&W.status!==416){if(W&&c(W.headers)){if(W.headers instanceof Headers){if(Z2)W.headers=W.headers.toJSON();else for(let[Z,j]of W.headers.entries())if(Z in W.headers)W.headers[Z]=j}return new Response($,{status:W.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`},W.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`,"transfer-encoding":"chunked"}})}return new Response($)},j2=($,W)=>{if(!$)return $;$.delete("set-cookie");for(let X=0;X<W.length;X++){const Z=W[X].indexOf("=");$.append("set-cookie",`${W[X].slice(0,Z)}=${W[X].slice(Z+1)||""}`)}return $},J2=($)=>{if(!$||!c($))return;const W=[];for(let[X,Z]of Object.entries($)){if(!X||!Z)continue;const j=Z.value;if(j===void 0||j===null)continue;W.push(D1(X,typeof j==="object"?JSON.stringify(j):j+"",Z))}if(W.length===0)return;if(W.length===1)return W[0];return W},B0=async($,W,X)=>{let Z=$.next();if(Z instanceof Promise)Z=await Z;if(Z.done){if(W)return x(Z.value,W,X);return Z0(Z.value,X)}return new Response(new ReadableStream({async start(j){let J=!1;if(X?.signal.addEventListener("abort",()=>{J=!0;try{j.close()}catch{}}),Z.value!==void 0&&Z.value!==null)if(typeof Z.value==="object")try{j.enqueue(Buffer.from(JSON.stringify(Z.value)))}catch{j.enqueue(Buffer.from(Z.value.toString()))}else j.enqueue(Buffer.from(Z.value.toString()));for await(let Y of $){if(J)break;if(Y===void 0||Y===null)continue;if(typeof Y==="object")try{j.enqueue(Buffer.from(JSON.stringify(Y)))}catch{j.enqueue(Buffer.from(Y.toString()))}else j.enqueue(Buffer.from(Y.toString()));await new Promise((G)=>setTimeout(()=>G(),0))}try{j.close()}catch{}}}),{...W,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...W?.headers}})},x=($,W,X)=>{if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){const Z=J2(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j2(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return new Response("",W);return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((j)=>x(j,W));case"Function":return x($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if(Z2)W.headers=$.headers.toJSON();else for(let[J,Y]of $.headers.entries())if(J in W.headers)W.headers[J]=Y;return $}if($ instanceof Promise)return $.then((j)=>x(j,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return x($.toResponse(),W);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);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":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((Z)=>{const j=Z0(Z,X);if(j!==void 0)return j;return new Response("")});case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>x(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return x($.toResponse(),W);if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},y=($,W,X)=>{if($===void 0||$===null)return;if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){const Z=J2(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j2(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,y($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return;return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Promise":return $.then((j)=>{const J=y(j,W);if(J!==void 0)return J});case"Error":return K0($,W);case"Function":return y($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"FormData":return new Response($);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if($.status!==W.status)W.status=$.status;return $}if($ instanceof Promise)return $.then((j)=>y(j,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,y($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return y($.toResponse(),W);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,y($.response,W,X);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":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Promise":return $.then((Z)=>{const j=y(Z,W);if(j!==void 0)return j});case"Error":return K0($,W);case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>y(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,y($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return y($.toResponse(),W);if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},Z0=($,W)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($);case"Array":return Response.json($);case"Object":return Response.json($);case"ElysiaCustomStatusResponse":return x($.response,{status:$.code,headers:{}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Error":return K0($);case"Promise":return $.then((X)=>Z0(X,W));case"Function":return Z0($(),W);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((X)=>Z0(X,W));if($ instanceof Error)return K0($);if($ instanceof p)return x($.response,{status:$.code,headers:{}});if(typeof $?.next==="function")return B0($,void 0,W);if("toResponse"in $)return Z0($.toResponse());if("charCodeAt"in $){const X=$.charCodeAt(0);if(X===123||X===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},K0=($,W)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:W?.status!==200?W?.status??500:500,headers:W?.headers}),Q2=($,W,X={})=>{if(typeof $==="function")return;const Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0)return Z.clone.bind(Z)},Y2=($,W,X={})=>{if(typeof $==="function"||$ instanceof Blob)return;const Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0){if(!Z.headers.has("content-type"))Z.headers.append("content-type","text/plain;charset=utf-8");return Z.clone.bind(Z)}};function A3($){let W=$;while(W.endsWith("="))W=W.slice(0,-1);return W}var R0=($,W)=>{const X=new URL($);return X.pathname=W,X.toString()},M3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||c(Object.getPrototypeOf($)),I1=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,W,{skipKeys:X,override:Z=!0}={})=>{if(!I1($)||!I1(W))return $;for(let[j,J]of Object.entries(W)){if(X?.includes(j))continue;if(!I1(J)||!(j in $)||M3(J)){if(Z||!(j in $))$[j]=J;continue}$[j]=d($[j],J,{skipKeys:X,override:Z})}return $},z3=($,W)=>{const{properties:X,...Z}=$??{},{properties:j,...J}=W??{};return d(Z,J)},f=($=[],W=[])=>{if(!$)return[];if(!W)return $;const X=[],Z=[];if(!Array.isArray($))$=[$];if(!Array.isArray(W))W=[W];for(let j of $)if(X.push(j),j.checksum)Z.push(j.checksum);for(let j of W)if(!Z.includes(j.checksum))X.push(j);return X},D3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],N3=D3.reduce(($,W)=>($[W]=!0,$),{}),U2=($,W)=>{const X=(Z)=>typeof Z==="object"&&Object.keys(Z).every(Z1);if(X($)&&X(W))return{...$,...W};else if($&&!X($)&&X(W))return{200:$,...W};return W??$},b0=($,W)=>{return{body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U2($?.response,W?.response)}},i=($,W)=>{return{...$,...W,body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U2($?.response,W?.response),type:$?.type||W?.type,detail:d(W?.detail??{},$?.detail??{}),parse:f($?.parse,W?.parse),transform:f($?.transform,W?.transform),beforeHandle:f($?.beforeHandle,W?.beforeHandle),afterHandle:f($?.afterHandle,W?.afterHandle),mapResponse:f($?.mapResponse,W?.mapResponse),afterResponse:f($?.afterResponse,W?.afterResponse),trace:f($?.trace,W?.trace),error:f($?.error,W?.error)}},V1=($,W,X=!0)=>{if(!Array.isArray(W))return h($,W,X);for(let Z of W)$=h($,Z,X);return $},h=($,W,X=!0)=>{if(!$)return $;if(W.untilObjectFound&&!X&&$.type==="object")return $;const Z=W.from[H0];if($.oneOf){for(let Y=0;Y<$.oneOf.length;Y++)$.oneOf[Y]=h($.oneOf[Y],W,X);return $}if($.anyOf){for(let Y=0;Y<$.anyOf.length;Y++)$.anyOf[Y]=h($.anyOf[Y],W,X);return $}if($.allOf){for(let Y=0;Y<$.allOf.length;Y++)$.allOf[Y]=h($.allOf[Y],W,X);return $}if($.not){for(let Y=0;Y<$.not.length;Y++)$.not[Y]=h($.not[Y],W,X);return $}const j=X&&!!W.excludeRoot;if($[H0]===Z){const{anyOf:Y,oneOf:G,allOf:K,not:B,properties:U,items:w,...F}=$,Q=W.to(F);let z;const D=(M)=>{if(U&&M.type==="object"){const O={};for(let[P,b]of Object.entries(U))O[P]=h(b,W,!1);return{...F,...M,properties:O}}if(w&&M.type==="array")return{...F,...M,items:h(w,W,!1)};const I={...F,...M};if(delete I.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")z=V.ObjectString(U,F),I.default=JSON.stringify(l.Create(V.Object(U))),I.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")z=V.ArrayString(w,F),I.default=JSON.stringify(l.Create(V.Array(w))),I.items=w;return I};if(j){if(U){const M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,properties:M}}else if(w?.map)return{...F,items:w.map((M)=>h(M,W,!1))};return F}if(Q.anyOf)for(let M=0;M<Q.anyOf.length;M++)Q.anyOf[M]=D(Q.anyOf[M]);else if(Q.oneOf)for(let M=0;M<Q.oneOf.length;M++)Q.oneOf[M]=D(Q.oneOf[M]);else if(Q.allOf)for(let M=0;M<Q.allOf.length;M++)Q.allOf[M]=D(Q.allOf[M]);else if(Q.not)for(let M=0;M<Q.not.length;M++)Q.not[M]=D(Q.not[M]);if(z)Q[G2]=z[G2];if(Q.anyOf||Q.oneOf||Q.allOf||Q.not)return Q;if(U){const M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,...Q,properties:M}}else if(w?.map)return{...F,...Q,items:w.map((M)=>h(M,W,!1))};return{...F,...Q}}const J=$?.properties;if(J&&X&&W.rootOnly!==!0)for(let[Y,G]of Object.entries(J))switch(G[H0]){case Z:const{anyOf:K,oneOf:B,allOf:U,not:w,type:F,...Q}=G,z=W.to(Q);if(z.anyOf)for(let D=0;D<z.anyOf.length;D++)z.anyOf[D]={...Q,...z.anyOf[D]};else if(z.oneOf)for(let D=0;D<z.oneOf.length;D++)z.oneOf[D]={...Q,...z.oneOf[D]};else if(z.allOf)for(let D=0;D<z.allOf.length;D++)z.allOf[D]={...Q,...z.allOf[D]};else if(z.not)for(let D=0;D<z.not.length;D++)z.not[D]={...Q,...z.not[D]};J[Y]={...Q,...h(Q,W,!1)};break;case"Object":case"Union":J[Y]=h(G,W,!1);break;default:if(G.items)for(let D=0;D<G.items.length;D++)G.items[D]=h(G.items[D],W,!1);else if(G.anyOf||G.oneOf||G.allOf||G.not)J[Y]=h(G,W,!1);break}return $},m=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1,coerce:J=!1,additionalCoerce:Y=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;let G=typeof $==="string"?W[$]:$;if(J||Y)if(J)G=V1(G,[{from:V.Number(),to:(U)=>V.Numeric(U),untilObjectFound:!0},{from:V.Boolean(),to:(U)=>V.BooleanString(U),untilObjectFound:!0},...Array.isArray(Y)?Y:[Y]]);else G=V1(G,[...Array.isArray(Y)?Y:[Y]]);if(G.type==="object"&&"additionalProperties"in G===!1)G.additionalProperties=j;const K=(U)=>l.Clean(G,U);if(X){const U={schema:G,references:"",checkFunc:()=>{},code:"",Check:(w)=>l.Check(G,w),Errors:(w)=>l.Errors(G,w),Code:()=>"",Clean:K,Decode:(w)=>l.Decode(G,w),Encode:(w)=>l.Encode(G,w)};if(Z&&G.additionalProperties===!1)U.Clean=K;if(G.config){if(U.config=G.config,U?.schema?.config)delete U.schema.config}return U.parse=(w)=>{try{return U.Decode(w)}catch(F){throw[...U.Errors(w)].map(o)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(F){const Q=[...B.Errors(w)].map(o);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}const B=K2.Compile(G,Object.values(W));if(B.Clean=K,G.config){if(B.config=G.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(w){throw[...B.Errors(U)].map(o)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){const F=[...B.Errors(U)].map(o);return{success:!1,data:null,error:F[0]?.summary,errors:F}}},B},$1=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;const J=typeof $==="string"?W[$]:$,Y=(K,B)=>{const U=(F)=>{if(!F||typeof F!=="object")return l.Clean(K,F);if(Array.isArray(F))F=l.Clean(K,F);else F=l.Clean(K,F);return F};if(X)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(F)=>l.Check(K,F),Errors:(F)=>l.Errors(K,F),Code:()=>"",Decode:(F)=>l.Decode(K,F),Encode:(F)=>l.Encode(K,F)};const w=K2.Compile(K,B);if(Z&&K.additionalProperties===!1)w.Clean=U;return w};if(H0 in J){if("additionalProperties"in J===!1)J.additionalProperties=j;return{200:Y(J,Object.values(W))}}const G={};return Object.keys(J).forEach((K)=>{const B=J[+K];if(typeof B==="string"){if(B in W){const U=W[B];U.type==="object"&&"additionalProperties"in U,G[+K]=H0 in U?Y(U,Object.values(W)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=j;G[+K]=H0 in B?Y(B,Object.values(W)):B}),G},P3=typeof Bun!=="undefined",I3=P3&&typeof Bun.hash==="function",N0=($)=>{if(I3)return Bun.hash($);let W=9;for(let X=0;X<$.length;)W=Math.imul(W^$.charCodeAt(X++),387420489);return W=W^W>>>9},A1,D0=()=>{if(!A1)A1=[{from:V.Object({}),to:()=>V.ObjectString({}),excludeRoot:!0},{from:V.Array(V.Any()),to:()=>V.ArrayString(V.Any())}];return A1},O1,S1=()=>{if(!O1)O1=[{from:V.Number(),to:($)=>V.Numeric($),rootOnly:!0},{from:V.Boolean(),to:($)=>V.BooleanString($),rootOnly:!0}];return O1},W1=({validator:$,defaultConfig:W={},config:X,dynamic:Z,models:j})=>{let J=m($,{dynamic:Z,models:j,additionalProperties:!0,coerce:!0,additionalCoerce:D0()});if(c(W))if(J)J.config=z3(J.config,X);else J=m(V.Cookie({}),{dynamic:Z,models:j,additionalProperties:!0}),J.config=W;return J},j0=($,W)=>{if(!W)return;if(!Array.isArray(W)){const Z=W;if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local";return Z}const X=[...W];for(let Z of X){if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local"}return X},C1=($,W,X)=>{return{start:f($.start,j0(X,W?.start)),request:f($.request,j0(X,W?.request)),parse:f($.parse,j0(X,W?.parse)),transform:f($.transform,j0(X,W?.transform)),beforeHandle:f($.beforeHandle,j0(X,W?.beforeHandle)),afterHandle:f($.afterHandle,j0(X,W?.afterHandle)),mapResponse:f($.mapResponse,j0(X,W?.mapResponse)),afterResponse:f($.afterResponse,j0(X,W?.afterResponse)),trace:f($.trace,j0(X,W?.trace)),error:f($.error,j0(X,W?.error)),stop:f($.stop,j0(X,W?.stop))}},w2=($,W,{skipIfHasType:X=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(X)$.scope??=W;else $.scope=W;return $}for(let Z of $)if(X)Z.scope??=W;else Z.scope=W;return $},z0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const W=[];for(let X of $)switch(X.scope){case"global":case"scoped":W.push({...X});break}return W},L1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:z0($?.parse),transform:z0($?.transform),beforeHandle:z0($?.beforeHandle),afterHandle:z0($?.afterHandle),mapResponse:z0($?.mapResponse),afterResponse:z0($?.afterResponse),error:z0($?.error),trace:z0($?.trace)}},_0={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},X1=Object.fromEntries(Object.entries(_0).map(([$,W])=>[W,$])),B2=new TextEncoder,x0=async($,W)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(W===null)throw new TypeError("Secret key must be provided.");const X=await crypto.subtle.importKey("raw",B2.encode(W),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),Z=await crypto.subtle.sign("HMAC",X,B2.encode($));return $+"."+A3(Buffer.from(Z).toString("base64"))},P1=async($,W)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(W===null)throw new TypeError("Secret key must be provided.");const X=$.slice(0,$.lastIndexOf("."));return await x0(X,W)===$?X:!1},_2=($,W)=>{if(!$||typeof $!=="object"||!W)return;for(let[X,Z]of Object.entries(W)){if(X in N3||!(X in $))continue;const j=$[X];if(typeof j==="function")j(Z),delete W[X]}},F2=({globalHook:$,localHook:W})=>(X)=>(Z,j)=>{if(typeof Z==="function")Z={fn:Z};if("fn"in Z||Array.isArray(Z)){if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(Array.isArray(Z))W[X]=W[X].concat(Z);else W[X].push(Z);return}const{insert:J="after",stack:Y="local"}=Z;if(typeof j==="function")j={fn:j};if(Y==="global")if(!Array.isArray(j))if(J==="before")$[X].unshift(j);else $[X].push(j);else if(J==="before")$[X]=j.concat($[X]);else $[X]=$[X].concat(j);else{if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(!Array.isArray(j))if(J==="before")W[X].unshift(j);else W[X].push(j);else if(J==="before")W[X]=j.concat(W[X]);else W[X]=W[X].concat(j)}},O3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;const W=Number($);if(Number.isNaN(W))return null;return W}if($.length===16){if($.trim().length===0)return null;const W=Number($);if(Number.isNaN(W)||W.toString()!==$)return null;return W}return null},Z1=($)=>O3($)!==null;class T1{$;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($,W){return(this.root??Promise.resolve()).then($,W)}}var n=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const W=[];for(let X of $)if(typeof X==="function")W.push({fn:X});else if("fn"in X)W.push(X);return W},M2=($)=>{return{...$,start:n($?.start),request:n($?.request),parse:n($?.parse),transform:n($?.transform),beforeHandle:n($?.beforeHandle),afterHandle:n($?.afterHandle),mapResponse:n($?.mapResponse),afterResponse:n($?.afterResponse),trace:n($?.trace),error:n($?.error),stop:n($?.stop)}},E1=($)=>{return{...$,start:$.start?.map((W)=>W.fn),request:$.request?.map((W)=>W.fn),parse:$.parse?.map((W)=>W.fn),transform:$.transform?.map((W)=>W.fn),beforeHandle:$.beforeHandle?.map((W)=>W.fn),afterHandle:$.afterHandle?.map((W)=>W.fn),afterResponse:$.afterResponse?.map((W)=>W.fn),mapResponse:$.mapResponse?.map((W)=>W.fn),trace:$.trace?.map((W)=>W.fn),error:$.error?.map((W)=>W.fn),stop:$.stop?.map((W)=>W.fn)}},m0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),d0=($,W=302)=>Response.redirect($,W),V3=Symbol("ElysiaFormData"),P0=Symbol("ElysiaRequestId"),S3=($)=>{const W=new FormData;for(let[X,Z]of Object.entries($)){if(Array.isArray(Z)){for(let j of Z){if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,j)}continue}if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,Z)}return W},j1=()=>crypto.getRandomValues(new Uint32Array(1))[0],J1=($)=>{const W=[];for(let X=0;X<$.length;X++){const Z=$[X];if(Z.checksum){if(W.includes(Z.checksum))$.splice(X,1),X--;W.push(Z.checksum)}}return $},v=($,W="scoped")=>{if(W==="scoped"){for(let X of $)if("scope"in X&&X.scope==="local")X.scope="scoped";return}for(let X of $)if("scope"in X)X.scope="global"};var z2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,I0=Symbol("ElysiaErrorCode"),p0=(z2?.NODE_ENV??z2?.ENV)==="production";class p{code;response;constructor($,W){const X=W??($ in X1?X1[$]:$);this.code=_0[$]??$,this.response=X}}var q1=($,W)=>new p($,W);class Q1 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class A0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class Y1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,W){super(W??`"${$}" has invalid cookie signature`);this.key=$}}var o=($)=>{if(!$)return{summary:void 0};const{message:W,path:X,value:Z,type:j}=$,J=X.slice(1).replaceAll("/","."),Y=X==="";switch(j){case 42:return{...$,summary:Y?"Value should not be provided":`Property '${J}' should not be provided`};case 45:return{...$,summary:Y?"Value is missing":`Property '${J}' is missing`};case 50:const G=W.indexOf("'"),K=W.slice(G+1,W.indexOf("'",G+1));return{...$,summary:Y?"Value should be an email":`Property '${J}' should be ${K}`};case 54:return{...$,summary:`${W.slice(0,9)} property '${J}' to be ${W.slice(8)} but found: ${Z}`};case 62:const B=$.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...$,summary:Y?`Value should be one of ${B}`:`Property '${J}' should be one of: ${B}`};default:return{summary:W,...$}}};class q extends Error{$;W;X;code="VALIDATION";status=422;constructor($,W,X){if(X&&typeof X==="object"&&X instanceof p)X=X.response;const Z=p0?void 0:("Errors"in W)?W.Errors(X).First():c0.Errors(W,X).First(),j=Z?.schema.error!==void 0?typeof Z.schema.error==="function"?Z.schema.error({type:$,validator:W,value:X,get errors(){return[...W.Errors(X)].map(o)}}):Z.schema.error:void 0,J=Z?.path||"root";let Y="";if(j!==void 0)Y=typeof j==="object"?JSON.stringify(j):j+"";else if(p0)Y=JSON.stringify({type:"validation",on:$,summary:o(Z).summary,message:Z?.message,found:X});else{const G=W?.schema??W,K="Errors"in W?[...W.Errors(X)].map(o):[...c0.Errors(W,X)].map(o);let B;try{B=c0.Create(G)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}Y=JSON.stringify({type:"validation",on:$,summary:K[0]?.summary,property:J,message:Z?.message,expected:B,found:X,errors:K},null,2)}super(Y);this.type=$;this.validator=W;this.value=X;Object.setPrototypeOf(this,q.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(o):[...c0.Errors(this.validator,this.value)].map(o)}static simplifyModel($){const W="schema"in $?$.schema:$;try{return c0.Create(W)}catch{return W}}get model(){return q.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var H1={open($){$.data.open?.($)},message($,W){$.data.message?.($,W)},drain($){$.data.drain?.($)},close($,W,X){$.data.close?.($,W,X)}};class g0{$;W;validator;_validator;constructor($,W){this.raw=$;this.data=W;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=j1().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,W=void 0,X)=>{if(this.validator?.Check(W)===!1)throw new q("message",this.validator,W);if(typeof W==="object")W=JSON.stringify(W);return this.raw.publish($,W,X),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new q("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 R1="1.1.21";import{Value as n0}from"@sinclair/typebox/value";import{TypeBoxError as L3}from"@sinclair/typebox";var O0=U1(o0(),1);function G1($){const W={};if(typeof $!=="string")return W;let X="",Z="",j=-1,J=-1,Y=0;const G=$.length;for(let K=0;K<G;K++)switch($.charCodeAt(K)){case 38:const B=J>j;if(!B)J=K;if(X=$.slice(j+1,J),B||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(B){if(Z=$.slice(J+1,K),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}X="",Z="",j=K,J=K,Y=0;break;case 61:if(J<=j)J=K;else Y|=8;break;case 43:if(J>j)Y|=4;else Y|=1;break;case 37:if(J>j)Y|=8;else Y|=2;break}if(j<G){const K=J>j;if(X=$.slice(j+1,K?J:G),K||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(K){if(Z=$.slice(J+1,G),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}}return W}var f0=/\+/g,l0=($)=>{const W={};if(typeof $!=="string")return W;const X=$.length;let Z="",j="",J=-1,Y=-1,G=!1,K=!1,B=!1,U=!1,w=!1,F=0;for(let Q=0;Q<X+1;Q++){if(Q!==X)F=$.charCodeAt(Q);else F=38;switch(F){case 38:{if(w=Y>J,!w)Y=Q;if(Z=$.slice(J+1,Y),w||Z.length>0){if(B)Z=Z.replace(f0," ");if(G)Z=O0.default(Z)||Z;if(w){if(j=$.slice(Y+1,Q),U)j=j.replace(f0," ");if(K)j=O0.default(j)||j}const z=W[Z];if(z===void 0)W[Z]=j;else if(z.pop)z.push(j);else W[Z]=[z,j]}j="",J=Q,Y=Q,G=!1,K=!1,B=!1,U=!1;break}case 61:if(Y<=J)Y=Q;else K=!0;break;case 43:if(Y>J)U=!0;else B=!0;break;case 37:if(Y>J)K=!0;else G=!0;break}}return W};var N2=U1(o0(),1);var i0=Symbol("ElysiaTrace"),F0=()=>{const{promise:$,resolve:W}=Promise.withResolvers(),{promise:X,resolve:Z}=Promise.withResolvers(),{promise:j,resolve:J}=Promise.withResolvers(),Y=[],G=[];return[(K)=>{if(K)Y.push(K);return $},(K)=>{const B=[],U=[];let w=null;for(let Q=0;Q<(K.total??0);Q++){const{promise:z,resolve:D}=Promise.withResolvers(),{promise:M,resolve:I}=Promise.withResolvers(),{promise:O,resolve:P}=Promise.withResolvers(),b=[],T=[];B.push((E)=>{if(E)b.push(E);return z}),U.push((E)=>{const r={...E,end:M,error:O,index:Q,onStop(L){if(L)T.push(L);return M}};D(r);for(let L=0;L<b.length;L++)b[L](r);return(L=null)=>{const g=performance.now();if(L)w=L;const R={end:g,error:L,get elapsed(){return g-E.begin}};for(let Y0=0;Y0<T.length;Y0++)T[Y0](R);I(g),P(L)}})}const F={...K,end:X,error:j,onEvent(Q){for(let z=0;z<B.length;z++)B[z](Q)},onStop(Q){if(Q)G.push(Q);return X}};W(F);for(let Q=0;Q<Y.length;Q++)Y[Q](F);return{resolveChild:U,resolve(Q=null){const z=performance.now();if(!Q&&w)Q=w;const D={end:z,error:Q,get elapsed(){return z-K.begin}};for(let M=0;M<G.length;M++)G[M](D);Z(z),J(Q)}}}]},D2=($)=>{return(W)=>{const[X,Z]=F0(),[j,J]=F0(),[Y,G]=F0(),[K,B]=F0(),[U,w]=F0(),[F,Q]=F0(),[z,D]=F0(),[M,I]=F0(),[O,P]=F0();return $({id:W[P0],context:W,set:W.set,onRequest:X,onParse:j,onTransform:Y,onBeforeHandle:K,onHandle:U,onAfterHandle:F,onMapResponse:M,onAfterResponse:O,onError:z}),{request:Z,parse:J,transform:G,beforeHandle:B,handle:w,afterHandle:Q,error:D,mapResponse:I,afterResponse:P}}};var T3=new Headers().toJSON,P2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},t=($)=>{if(!$)return!1;const W=$?.schema;return!!W&&P2.optional in W},J0=($)=>{if(!$)return!1;const W=$?.schema??$;if(W.anyOf)return W.anyOf.some(J0);if(W.someOf)return W.someOf.some(J0);if(W.allOf)return W.allOf.some(J0);if(W.not)return W.not.some(J0);if(W.type==="object"){const X=W.properties;if("additionalProperties"in W)return W.additionalProperties;for(let Z of Object.keys(X)){const j=X[Z];if(j.type==="object"){if(J0(j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(J0(j.anyOf[J]))return!0}return j.additionalProperties}return!1}return!1},x1=({context:$="c",trace:W,addFn:X})=>{if(!W.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let Z=0;Z<W.length;Z++)X(`let report${Z}, reportChild${Z}, reportErr${Z}, reportErrChild${Z}; let trace${Z} = ${$}[ELYSIA_TRACE]?.[${Z}] ?? trace[${Z}](${$});\n`);return(Z,{name:j,total:J=0}={})=>{if(!j)j="anonymous";const Y=Z==="error"?"reportErr":"report";for(let G=0;G<W.length;G++)X(`\n${Y}${G} = trace${G}.${Z}({id,event: '${Z}',name: '${j}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let G=0;G<W.length;G++)X(`\n${Y}${G}.resolve()\n`)},resolveChild(G){for(let K=0;K<W.length;K++)X(`${Y}Child${K} = ${Y}${K}.resolveChild?.shift()?.({id,event: '${Z}',name: '${G}',begin: performance.now()})\n`);return(K)=>{for(let B=0;B<W.length;B++)if(K)X(`
7
+ */var z2=Q3,D2=Y3;var J3=Object.prototype.toString,a0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function Q3($,W){if(typeof $!=="string")throw new TypeError("argument str must be a string");var X={},Z=W||{},j=Z.decode||G3,J=0;while(J<$.length){var Y=$.indexOf("=",J);if(Y===-1)break;var G=$.indexOf(";",J);if(G===-1)G=$.length;else if(G<Y){J=$.lastIndexOf(";",Y-1)+1;continue}var K=$.slice(J,Y).trim();if(X[K]===void 0){var B=$.slice(Y+1,G).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);X[K]=U3(B,j)}J=G+1}return X}function Y3($,W,X){var Z=X||{},j=Z.encode||B3;if(typeof j!=="function")throw new TypeError("option encode is invalid");if(!a0.test($))throw new TypeError("argument name is invalid");var J=j(W);if(J&&!a0.test(J))throw new TypeError("argument val is invalid");var Y=$+"="+J;if(Z.maxAge!=null){var G=Z.maxAge-0;if(isNaN(G)||!isFinite(G))throw new TypeError("option maxAge is invalid");Y+="; Max-Age="+Math.floor(G)}if(Z.domain){if(!a0.test(Z.domain))throw new TypeError("option domain is invalid");Y+="; Domain="+Z.domain}if(Z.path){if(!a0.test(Z.path))throw new TypeError("option path is invalid");Y+="; Path="+Z.path}if(Z.expires){var K=Z.expires;if(!K3(K)||isNaN(K.valueOf()))throw new TypeError("option expires is invalid");Y+="; Expires="+K.toUTCString()}if(Z.httpOnly)Y+="; HttpOnly";if(Z.secure)Y+="; Secure";if(Z.partitioned)Y+="; Partitioned";if(Z.priority){var B=typeof Z.priority==="string"?Z.priority.toLowerCase():Z.priority;switch(B){case"low":Y+="; Priority=Low";break;case"medium":Y+="; Priority=Medium";break;case"high":Y+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(Z.sameSite){var U=typeof Z.sameSite==="string"?Z.sameSite.toLowerCase():Z.sameSite;switch(U){case!0:Y+="; SameSite=Strict";break;case"lax":Y+="; SameSite=Lax";break;case"strict":Y+="; SameSite=Strict";break;case"none":Y+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Y}function G3($){return $.indexOf("%")!==-1?decodeURIComponent($):$}function B3($){return encodeURIComponent($)}function K3($){return J3.call($)==="[object Date]"||$ instanceof Date}function U3($,W){try{return W($)}catch(X){return $}}var X1=U2(o0(),1);class w0{$;W;X;constructor($,W,X={}){this.name=$;this.jar=W;this.initial=X}get cookie(){return this.jar[this.name]??this.initial}set cookie($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=$}get setCookie(){if(!(this.name in this.jar))this.jar[this.name]=this.initial;return this.jar[this.name]}set setCookie($){this.cookie=$}get value(){return this.cookie.value}set value($){this.setCookie.value=$}get expires(){return this.cookie.expires}set expires($){this.setCookie.expires=$}get maxAge(){return this.cookie.maxAge}set maxAge($){this.setCookie.maxAge=$}get domain(){return this.cookie.domain}set domain($){this.setCookie.domain=$}get path(){return this.cookie.path}set path($){this.setCookie.path=$}get secure(){return this.cookie.secure}set secure($){this.setCookie.secure=$}get httpOnly(){return this.cookie.httpOnly}set httpOnly($){this.setCookie.httpOnly=$}get sameSite(){return this.cookie.sameSite}set sameSite($){this.setCookie.sameSite=$}get priority(){return this.cookie.priority}set priority($){this.setCookie.priority=$}get partitioned(){return this.cookie.partitioned}set partitioned($){this.setCookie.partitioned=$}get secrets(){return this.cookie.secrets}set secrets($){this.setCookie.secrets=$}update($){return this.setCookie=Object.assign(this.cookie,typeof $==="function"?$(this.cookie):$),this}set($){return this.setCookie=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 W1=($,W,X)=>{if(!$.cookie)$.cookie={};return new Proxy(W,{get(Z,j){if(j in W)return new w0(j,$.cookie,Object.assign({},X??{},W[j]));return new w0(j,$.cookie,Object.assign({},X))}})},e0=async($,W,{secrets:X,sign:Z,...j}={})=>{if(!W)return W1($,{},j);let J=typeof X==="string";if(Z&&Z!==!0&&!Array.isArray(Z))Z=[Z];let Y={},G=z2(W);for(let[K,B]of Object.entries(G)){let U=X1.default(B);if(Z===!0||Z?.includes(K)){if(!X)throw new Error("No secret is provided to cookie plugin");if(J){let w=await P2(U,X);if(w===!1)throw new v0(K);U=w}else{let w=!0;for(let F=0;F<X.length;F++){let Q=await P2(U,X[F]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new v0(K)}}Y[K]={value:U}}return W1($,Y,j)};var Z1="toJSON"in new Headers,c=($)=>{if(!$)return!1;for(let W in $)return!0;return!1},u0=($,W)=>{let X=$.size;if(!W&&X||X&&W&&W.status!==206&&W.status!==304&&W.status!==412&&W.status!==416){if(W&&c(W.headers)){if(W.headers instanceof Headers){if(Z1)W.headers=W.headers.toJSON();else for(let[Z,j]of W.headers.entries())if(Z in W.headers)W.headers[Z]=j}return new Response($,{status:W.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`},W.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`,"transfer-encoding":"chunked"}})}return new Response($)},j1=($,W)=>{if(!$)return $;$.delete("set-cookie");for(let X=0;X<W.length;X++){let Z=W[X].indexOf("=");$.append("set-cookie",`${W[X].slice(0,Z)}=${W[X].slice(Z+1)||""}`)}return $},J1=($)=>{if(!$||!c($))return;let W=[];for(let[X,Z]of Object.entries($)){if(!X||!Z)continue;let j=Z.value;if(j===void 0||j===null)continue;W.push(D2(X,typeof j==="object"?JSON.stringify(j):j+"",Z))}if(W.length===0)return;if(W.length===1)return W[0];return W},B0=async($,W,X)=>{let Z=$.next();if(Z instanceof Promise)Z=await Z;if(Z.done){if(W)return x(Z.value,W,X);return Z0(Z.value,X)}return new Response(new ReadableStream({async start(j){let J=!1;if(X?.signal.addEventListener("abort",()=>{J=!0;try{j.close()}catch{}}),Z.value!==void 0&&Z.value!==null)if(typeof Z.value==="object")try{j.enqueue(Buffer.from(JSON.stringify(Z.value)))}catch{j.enqueue(Buffer.from(Z.value.toString()))}else j.enqueue(Buffer.from(Z.value.toString()));for await(let Y of $){if(J)break;if(Y===void 0||Y===null)continue;if(typeof Y==="object")try{j.enqueue(Buffer.from(JSON.stringify(Y)))}catch{j.enqueue(Buffer.from(Y.toString()))}else j.enqueue(Buffer.from(Y.toString()));await new Promise((G)=>setTimeout(()=>G(),0))}try{j.close()}catch{}}}),{...W,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...W?.headers}})};async function*h0($){let W=$.body;if(!W)return;let X=W.getReader(),Z=new TextDecoder;try{while(!0){let{done:j,value:J}=await X.read();if(j)break;yield Z.decode(J)}}finally{X.releaseLock()}}var x=($,W,X)=>{if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){let Z=J1(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j1(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return new Response("",W);return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((j)=>x(j,W));case"Function":return x($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if(Z1)W.headers=$.headers.toJSON();else for(let[J,Y]of $.headers.entries())if(J in W.headers)W.headers[J]=Y;return $}if($ instanceof Promise)return $.then((j)=>x(j,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((j)=>x(j,W));if(typeof $?.toResponse==="function")return x($.toResponse(),W);if("charCodeAt"in $){let j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);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":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((Z)=>{let j=Z0(Z,X);if(j!==void 0)return j;return new Response("")});case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>x(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((Z)=>x(Z,W));if(typeof $?.toResponse==="function")return x($.toResponse(),W);if("charCodeAt"in $){let Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},g=($,W,X)=>{if($===void 0||$===null)return;if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){let Z=J1(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j1(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,g($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return;return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Promise":return $.then((j)=>{let J=g(j,W);if(J!==void 0)return J});case"Error":return K0($,W);case"Function":return g($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"FormData":return new Response($);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if($.status!==W.status)W.status=$.status;return $}if($ instanceof Promise)return $.then((j)=>g(j,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,g($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((j)=>g(j,W));if(typeof $?.toResponse==="function")return g($.toResponse(),W);if("charCodeAt"in $){let j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,g($.response,W,X);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":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Promise":return $.then((Z)=>{let j=g(Z,W);if(j!==void 0)return j});case"Error":return K0($,W);case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>g(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,g($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((Z)=>g(Z,W));if(typeof $?.toResponse==="function")return g($.toResponse(),W);if("charCodeAt"in $){let Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},Z0=($,W)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($);case"Array":return Response.json($);case"Object":return Response.json($);case"ElysiaCustomStatusResponse":return x($.response,{status:$.code,headers:{}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Error":return K0($);case"Promise":return $.then((X)=>Z0(X,W));case"Function":return Z0($(),W);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((X)=>Z0(X,W));if($ instanceof Error)return K0($);if($ instanceof l)return x($.response,{status:$.code,headers:{}});if(typeof $?.next==="function")return B0($,void 0,W);if(typeof $?.then==="function")return $.then((X)=>x(X,set));if(typeof $?.toResponse==="function")return Z0($.toResponse());if("charCodeAt"in $){let X=$.charCodeAt(0);if(X===123||X===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},K0=($,W)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:W?.status!==200?W?.status??500:500,headers:W?.headers}),Q1=($,W,X={})=>{if(typeof $==="function")return;let Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0)return Z.clone.bind(Z)},Y1=($,W,X={})=>{if(typeof $==="function"||$ instanceof Blob)return;let Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0){if(!Z.headers.has("content-type"))Z.headers.append("content-type","text/plain;charset=utf-8");return Z.clone.bind(Z)}};var R0=($,W)=>{let X=new URL($);return X.pathname=W,X.toString()},M3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||c(Object.getPrototypeOf($)),I2=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,W,{skipKeys:X,override:Z=!0}={})=>{if(!I2($)||!I2(W))return $;for(let[j,J]of Object.entries(W)){if(X?.includes(j))continue;if(!I2(J)||!(j in $)||M3(J)){if(Z||!(j in $))$[j]=J;continue}$[j]=d($[j],J,{skipKeys:X,override:Z})}return $},z3=($,W)=>{let{properties:X,...Z}=$??{},{properties:j,...J}=W??{};return d(Z,J)},y=($=[],W=[])=>{if(!$)return[];if(!W)return $;let X=[],Z=[];if(!Array.isArray($))$=[$];if(!Array.isArray(W))W=[W];for(let j of $)if(X.push(j),j.checksum)Z.push(j.checksum);for(let j of W)if(!Z.includes(j.checksum))X.push(j);return X},D3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],N3=D3.reduce(($,W)=>($[W]=!0,$),{}),U1=($,W)=>{let X=(Z)=>typeof Z==="object"&&Object.keys(Z).every(Z2);if(X($)&&X(W))return{...$,...W};else if($&&!X($)&&X(W))return{200:$,...W};return W??$},b0=($,W)=>{return{body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U1($?.response,W?.response)}},i=($,W)=>{return{...$,...W,body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U1($?.response,W?.response),type:$?.type||W?.type,detail:d(W?.detail??{},$?.detail??{}),parse:y($?.parse,W?.parse),transform:y($?.transform,W?.transform),beforeHandle:y($?.beforeHandle,W?.beforeHandle),afterHandle:y($?.afterHandle,W?.afterHandle),mapResponse:y($?.mapResponse,W?.mapResponse),afterResponse:y($?.afterResponse,W?.afterResponse),trace:y($?.trace,W?.trace),error:y($?.error,W?.error)}},V2=($,W,X=!0)=>{if(!Array.isArray(W))return h($,W,X);for(let Z of W)$=h($,Z,X);return $},h=($,W,X=!0)=>{if(!$)return $;if(W.untilObjectFound&&!X&&$.type==="object")return $;let Z=W.from[H0];if($.oneOf){for(let Y=0;Y<$.oneOf.length;Y++)$.oneOf[Y]=h($.oneOf[Y],W,X);return $}if($.anyOf){for(let Y=0;Y<$.anyOf.length;Y++)$.anyOf[Y]=h($.anyOf[Y],W,X);return $}if($.allOf){for(let Y=0;Y<$.allOf.length;Y++)$.allOf[Y]=h($.allOf[Y],W,X);return $}if($.not){for(let Y=0;Y<$.not.length;Y++)$.not[Y]=h($.not[Y],W,X);return $}let j=X&&!!W.excludeRoot;if($[H0]===Z){let{anyOf:Y,oneOf:G,allOf:K,not:B,properties:U,items:w,...F}=$,Q=W.to(F),z,D=(M)=>{if(U&&M.type==="object"){let O={};for(let[P,b]of Object.entries(U))O[P]=h(b,W,!1);return{...F,...M,properties:O}}if(w&&M.type==="array")return{...F,...M,items:h(w,W,!1)};let I={...F,...M};if(delete I.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")z=V.ObjectString(U,F),I.default=JSON.stringify(p.Create(V.Object(U))),I.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")z=V.ArrayString(w,F),I.default=JSON.stringify(p.Create(V.Array(w))),I.items=w;return I};if(j){if(U){let M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,properties:M}}else if(w?.map)return{...F,items:w.map((M)=>h(M,W,!1))};return F}if(Q.anyOf)for(let M=0;M<Q.anyOf.length;M++)Q.anyOf[M]=D(Q.anyOf[M]);else if(Q.oneOf)for(let M=0;M<Q.oneOf.length;M++)Q.oneOf[M]=D(Q.oneOf[M]);else if(Q.allOf)for(let M=0;M<Q.allOf.length;M++)Q.allOf[M]=D(Q.allOf[M]);else if(Q.not)for(let M=0;M<Q.not.length;M++)Q.not[M]=D(Q.not[M]);if(z)Q[G1]=z[G1];if(Q.anyOf||Q.oneOf||Q.allOf||Q.not)return Q;if(U){let M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,...Q,properties:M}}else if(w?.map)return{...F,...Q,items:w.map((M)=>h(M,W,!1))};return{...F,...Q}}let J=$?.properties;if(J&&X&&W.rootOnly!==!0)for(let[Y,G]of Object.entries(J))switch(G[H0]){case Z:let{anyOf:K,oneOf:B,allOf:U,not:w,type:F,...Q}=G,z=W.to(Q);if(z.anyOf)for(let D=0;D<z.anyOf.length;D++)z.anyOf[D]={...Q,...z.anyOf[D]};else if(z.oneOf)for(let D=0;D<z.oneOf.length;D++)z.oneOf[D]={...Q,...z.oneOf[D]};else if(z.allOf)for(let D=0;D<z.allOf.length;D++)z.allOf[D]={...Q,...z.allOf[D]};else if(z.not)for(let D=0;D<z.not.length;D++)z.not[D]={...Q,...z.not[D]};J[Y]={...Q,...h(Q,W,!1)};break;case"Object":case"Union":J[Y]=h(G,W,!1);break;default:if(G.items)for(let D=0;D<G.items.length;D++)G.items[D]=h(G.items[D],W,!1);else if(G.anyOf||G.oneOf||G.allOf||G.not)J[Y]=h(G,W,!1);break}return $},m=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1,coerce:J=!1,additionalCoerce:Y=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;let G=typeof $==="string"?W[$]:$;if(J||Y)if(J)G=V2(G,[{from:V.Number(),to:(U)=>V.Numeric(U),untilObjectFound:!0},{from:V.Boolean(),to:(U)=>V.BooleanString(U),untilObjectFound:!0},...Array.isArray(Y)?Y:[Y]]);else G=V2(G,[...Array.isArray(Y)?Y:[Y]]);if(G.type==="object"&&"additionalProperties"in G===!1)G.additionalProperties=j;let K=(U)=>p.Clean(G,U);if(X){let U={schema:G,references:"",checkFunc:()=>{},code:"",Check:(w)=>p.Check(G,w),Errors:(w)=>p.Errors(G,w),Code:()=>"",Clean:K,Decode:(w)=>p.Decode(G,w),Encode:(w)=>p.Encode(G,w)};if(Z&&G.additionalProperties===!1)U.Clean=K;if(G.config){if(U.config=G.config,U?.schema?.config)delete U.schema.config}return U.parse=(w)=>{try{return U.Decode(w)}catch(F){throw[...U.Errors(w)].map(o)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(F){let Q=[...B.Errors(w)].map(o);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}let B=K1.Compile(G,Object.values(W));if(B.Clean=K,G.config){if(B.config=G.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(w){throw[...B.Errors(U)].map(o)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){let F=[...B.Errors(U)].map(o);return{success:!1,data:null,error:F[0]?.summary,errors:F}}},B},$2=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;let J=typeof $==="string"?W[$]:$,Y=(K,B)=>{let U=(F)=>{if(!F||typeof F!=="object")return p.Clean(K,F);if(Array.isArray(F))F=p.Clean(K,F);else F=p.Clean(K,F);return F};if(X)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(F)=>p.Check(K,F),Errors:(F)=>p.Errors(K,F),Code:()=>"",Decode:(F)=>p.Decode(K,F),Encode:(F)=>p.Encode(K,F)};let w=K1.Compile(K,B);if(Z&&K.additionalProperties===!1)w.Clean=U;return w};if(H0 in J){if("additionalProperties"in J===!1)J.additionalProperties=j;return{200:Y(J,Object.values(W))}}let G={};return Object.keys(J).forEach((K)=>{let B=J[+K];if(typeof B==="string"){if(B in W){let U=W[B];U.type==="object"&&"additionalProperties"in U,G[+K]=H0 in U?Y(U,Object.values(W)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=j;G[+K]=H0 in B?Y(B,Object.values(W)):B}),G},P3=typeof Bun!=="undefined",I3=P3&&typeof Bun.hash==="function",N0=($)=>{if(I3)return Bun.hash($);let W=9;for(let X=0;X<$.length;)W=Math.imul(W^$.charCodeAt(X++),387420489);return W=W^W>>>9},A2,D0=()=>{if(!A2)A2=[{from:V.Object({}),to:()=>V.ObjectString({}),excludeRoot:!0},{from:V.Array(V.Any()),to:()=>V.ArrayString(V.Any())}];return A2},O2,S2=()=>{if(!O2)O2=[{from:V.Number(),to:($)=>V.Numeric($),rootOnly:!0},{from:V.Boolean(),to:($)=>V.BooleanString($),rootOnly:!0}];return O2},W2=({validator:$,defaultConfig:W={},config:X,dynamic:Z,models:j})=>{let J=m($,{dynamic:Z,models:j,additionalProperties:!0,coerce:!0,additionalCoerce:D0()});if(c(W))if(J)J.config=z3(J.config,X);else J=m(V.Cookie({}),{dynamic:Z,models:j,additionalProperties:!0}),J.config=W;return J},j0=($,W)=>{if(!W)return;if(!Array.isArray(W)){let Z=W;if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local";return Z}let X=[...W];for(let Z of X){if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local"}return X},C2=($,W,X)=>{return{start:y($.start,j0(X,W?.start)),request:y($.request,j0(X,W?.request)),parse:y($.parse,j0(X,W?.parse)),transform:y($.transform,j0(X,W?.transform)),beforeHandle:y($.beforeHandle,j0(X,W?.beforeHandle)),afterHandle:y($.afterHandle,j0(X,W?.afterHandle)),mapResponse:y($.mapResponse,j0(X,W?.mapResponse)),afterResponse:y($.afterResponse,j0(X,W?.afterResponse)),trace:y($.trace,j0(X,W?.trace)),error:y($.error,j0(X,W?.error)),stop:y($.stop,j0(X,W?.stop))}},w1=($,W,{skipIfHasType:X=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(X)$.scope??=W;else $.scope=W;return $}for(let Z of $)if(X)Z.scope??=W;else Z.scope=W;return $},z0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}let W=[];for(let X of $)switch(X.scope){case"global":case"scoped":W.push({...X});break}return W},L2=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:z0($?.parse),transform:z0($?.transform),beforeHandle:z0($?.beforeHandle),afterHandle:z0($?.afterHandle),mapResponse:z0($?.mapResponse),afterResponse:z0($?.afterResponse),error:z0($?.error),trace:z0($?.trace)}},_0={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},X2=Object.fromEntries(Object.entries(_0).map(([$,W])=>[W,$]));function A3($){let W=$;while(W.endsWith("="))W=W.slice(0,-1);return W}var B1=new TextEncoder,x0=async($,W)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(W===null)throw new TypeError("Secret key must be provided.");let X=await crypto.subtle.importKey("raw",B1.encode(W),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),Z=await crypto.subtle.sign("HMAC",X,B1.encode($));return $+"."+A3(Buffer.from(Z).toString("base64"))},P2=async($,W)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(W===null)throw new TypeError("Secret key must be provided.");let X=$.slice(0,$.lastIndexOf("."));return await x0(X,W)===$?X:!1},_1=($,W)=>{if(!$||typeof $!=="object"||!W)return;for(let[X,Z]of Object.entries(W)){if(X in N3||!(X in $))continue;let j=$[X];if(typeof j==="function")j(Z),delete W[X]}},F1=({globalHook:$,localHook:W})=>(X)=>(Z,j)=>{if(typeof Z==="function")Z={fn:Z};if("fn"in Z||Array.isArray(Z)){if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(Array.isArray(Z))W[X]=W[X].concat(Z);else W[X].push(Z);return}let{insert:J="after",stack:Y="local"}=Z;if(typeof j==="function")j={fn:j};if(Y==="global")if(!Array.isArray(j))if(J==="before")$[X].unshift(j);else $[X].push(j);else if(J==="before")$[X]=j.concat($[X]);else $[X]=$[X].concat(j);else{if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(!Array.isArray(j))if(J==="before")W[X].unshift(j);else W[X].push(j);else if(J==="before")W[X]=j.concat(W[X]);else W[X]=W[X].concat(j)}},O3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;let W=Number($);if(Number.isNaN(W))return null;return W}if($.length===16){if($.trim().length===0)return null;let W=Number($);if(Number.isNaN(W)||W.toString()!==$)return null;return W}return null},Z2=($)=>O3($)!==null;class T2{$;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($,W){return(this.root??Promise.resolve()).then($,W)}}var n=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}let W=[];for(let X of $)if(typeof X==="function")W.push({fn:X});else if("fn"in X)W.push(X);return W},M1=($)=>{return{...$,start:n($?.start),request:n($?.request),parse:n($?.parse),transform:n($?.transform),beforeHandle:n($?.beforeHandle),afterHandle:n($?.afterHandle),mapResponse:n($?.mapResponse),afterResponse:n($?.afterResponse),trace:n($?.trace),error:n($?.error),stop:n($?.stop)}},E2=($)=>{return{...$,start:$.start?.map((W)=>W.fn),request:$.request?.map((W)=>W.fn),parse:$.parse?.map((W)=>W.fn),transform:$.transform?.map((W)=>W.fn),beforeHandle:$.beforeHandle?.map((W)=>W.fn),afterHandle:$.afterHandle?.map((W)=>W.fn),afterResponse:$.afterResponse?.map((W)=>W.fn),mapResponse:$.mapResponse?.map((W)=>W.fn),trace:$.trace?.map((W)=>W.fn),error:$.error?.map((W)=>W.fn),stop:$.stop?.map((W)=>W.fn)}},m0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),d0=($,W=302)=>Response.redirect($,W),V3=Symbol("ElysiaFormData"),P0=Symbol("ElysiaRequestId"),S3=($)=>{let W=new FormData;for(let[X,Z]of Object.entries($)){if(Array.isArray(Z)){for(let j of Z){if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,j)}continue}if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,Z)}return W},j2=()=>crypto.getRandomValues(new Uint32Array(1))[0],J2=($)=>{let W=[];for(let X=0;X<$.length;X++){let Z=$[X];if(Z.checksum){if(W.includes(Z.checksum))$.splice(X,1),X--;W.push(Z.checksum)}}return $},v=($,W="scoped")=>{if(W==="scoped"){for(let X of $)if("scope"in X&&X.scope==="local")X.scope="scoped";return}for(let X of $)if("scope"in X)X.scope="global"};var z1=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,I0=Symbol("ElysiaErrorCode"),l0=(z1?.NODE_ENV??z1?.ENV)==="production";class l{code;response;constructor($,W){let X=W??($ in X2?X2[$]:$);this.code=_0[$]??$,this.response=X}}var q2=($,W)=>new l($,W);class Q2 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class A0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class Y2 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,W){super(W??`"${$}" has invalid cookie signature`);this.key=$}}var o=($)=>{if(!$)return{summary:void 0};let{message:W,path:X,value:Z,type:j}=$,J=X.slice(1).replaceAll("/","."),Y=X==="";switch(j){case 42:return{...$,summary:Y?"Value should not be provided":`Property '${J}' should not be provided`};case 45:return{...$,summary:Y?"Value is missing":`Property '${J}' is missing`};case 50:let G=W.indexOf("'"),K=W.slice(G+1,W.indexOf("'",G+1));return{...$,summary:Y?"Value should be an email":`Property '${J}' should be ${K}`};case 54:return{...$,summary:`${W.slice(0,9)} property '${J}' to be ${W.slice(8)} but found: ${Z}`};case 62:let B=$.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...$,summary:Y?`Value should be one of ${B}`:`Property '${J}' should be one of: ${B}`};default:return{summary:W,...$}}};class q extends Error{$;W;X;code="VALIDATION";status=422;constructor($,W,X){if(X&&typeof X==="object"&&X instanceof l)X=X.response;let Z=l0?void 0:("Errors"in W)?W.Errors(X).First():c0.Errors(W,X).First(),j=Z?.schema.error!==void 0?typeof Z.schema.error==="function"?Z.schema.error({type:$,validator:W,value:X,get errors(){return[...W.Errors(X)].map(o)}}):Z.schema.error:void 0,J=Z?.path||"root",Y="";if(j!==void 0)Y=typeof j==="object"?JSON.stringify(j):j+"";else if(l0)Y=JSON.stringify({type:"validation",on:$,summary:o(Z).summary,message:Z?.message,found:X});else{let G=W?.schema??W,K="Errors"in W?[...W.Errors(X)].map(o):[...c0.Errors(W,X)].map(o),B;try{B=c0.Create(G)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}Y=JSON.stringify({type:"validation",on:$,summary:K[0]?.summary,property:J,message:Z?.message,expected:B,found:X,errors:K},null,2)}super(Y);this.type=$;this.validator=W;this.value=X;Object.setPrototypeOf(this,q.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(o):[...c0.Errors(this.validator,this.value)].map(o)}static simplifyModel($){let W="schema"in $?$.schema:$;try{return c0.Create(W)}catch{return W}}get model(){return q.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var H2={open($){$.data.open?.($)},message($,W){$.data.message?.($,W)},drain($){$.data.drain?.($)},close($,W,X){$.data.close?.($,W,X)}};class g0{$;W;validator;_validator;constructor($,W){this.raw=$;this.data=W;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=j2().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,W=void 0,X)=>{if(this.validator?.Check(W)===!1)throw new q("message",this.validator,W);if(typeof W==="object")W=JSON.stringify(W);return this.raw.publish($,W,X),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new q("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 R2="1.1.23";import{Value as n0}from"@sinclair/typebox/value";import{TypeBoxError as L3}from"@sinclair/typebox";var O0=U2(o0(),1),f0=/\+/g;function G2($){let W={};if(typeof $!=="string")return W;let X="",Z="",j=-1,J=-1,Y=0,G=$.length;for(let K=0;K<G;K++)switch($.charCodeAt(K)){case 38:let B=J>j;if(!B)J=K;if(X=$.slice(j+1,J),B||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(B){if(Z=$.slice(J+1,K),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}X="",Z="",j=K,J=K,Y=0;break;case 61:if(J<=j)J=K;else Y|=8;break;case 43:if(J>j)Y|=4;else Y|=1;break;case 37:if(J>j)Y|=8;else Y|=2;break}if(j<G){let K=J>j;if(X=$.slice(j+1,K?J:G),K||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(K){if(Z=$.slice(J+1,G),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}}return W}var p0=($)=>{let W={};if(typeof $!=="string")return W;let X=$.length,Z="",j="",J=-1,Y=-1,G=!1,K=!1,B=!1,U=!1,w=!1,F=0;for(let Q=0;Q<X+1;Q++){if(Q!==X)F=$.charCodeAt(Q);else F=38;switch(F){case 38:{if(w=Y>J,!w)Y=Q;if(Z=$.slice(J+1,Y),w||Z.length>0){if(B)Z=Z.replace(f0," ");if(G)Z=O0.default(Z)||Z;if(w){if(j=$.slice(Y+1,Q),U)j=j.replace(f0," ");if(K)j=O0.default(j)||j}let z=W[Z];if(z===void 0)W[Z]=j;else if(z.pop)z.push(j);else W[Z]=[z,j]}j="",J=Q,Y=Q,G=!1,K=!1,B=!1,U=!1;break}case 61:if(Y<=J)Y=Q;else K=!0;break;case 43:if(Y>J)U=!0;else B=!0;break;case 37:if(Y>J)K=!0;else G=!0;break}}return W};var N1=U2(o0(),1);var i0=Symbol("ElysiaTrace"),F0=()=>{let{promise:$,resolve:W}=Promise.withResolvers(),{promise:X,resolve:Z}=Promise.withResolvers(),{promise:j,resolve:J}=Promise.withResolvers(),Y=[],G=[];return[(K)=>{if(K)Y.push(K);return $},(K)=>{let B=[],U=[],w=null;for(let Q=0;Q<(K.total??0);Q++){let{promise:z,resolve:D}=Promise.withResolvers(),{promise:M,resolve:I}=Promise.withResolvers(),{promise:O,resolve:P}=Promise.withResolvers(),b=[],T=[];B.push((E)=>{if(E)b.push(E);return z}),U.push((E)=>{let r={...E,end:M,error:O,index:Q,onStop(L){if(L)T.push(L);return M}};D(r);for(let L=0;L<b.length;L++)b[L](r);return(L=null)=>{let f=performance.now();if(L)w=L;let R={end:f,error:L,get elapsed(){return f-E.begin}};for(let Y0=0;Y0<T.length;Y0++)T[Y0](R);I(f),P(L)}})}let F={...K,end:X,error:j,onEvent(Q){for(let z=0;z<B.length;z++)B[z](Q)},onStop(Q){if(Q)G.push(Q);return X}};W(F);for(let Q=0;Q<Y.length;Q++)Y[Q](F);return{resolveChild:U,resolve(Q=null){let z=performance.now();if(!Q&&w)Q=w;let D={end:z,error:Q,get elapsed(){return z-K.begin}};for(let M=0;M<G.length;M++)G[M](D);Z(z),J(Q)}}}]},D1=($)=>{return(W)=>{let[X,Z]=F0(),[j,J]=F0(),[Y,G]=F0(),[K,B]=F0(),[U,w]=F0(),[F,Q]=F0(),[z,D]=F0(),[M,I]=F0(),[O,P]=F0();return $({id:W[P0],context:W,set:W.set,onRequest:X,onParse:j,onTransform:Y,onBeforeHandle:K,onHandle:U,onAfterHandle:F,onMapResponse:M,onAfterResponse:O,onError:z}),{request:Z,parse:J,transform:G,beforeHandle:B,handle:w,afterHandle:Q,error:D,mapResponse:I,afterResponse:P}}};var T3=new Headers().toJSON,P1={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},t=($)=>{if(!$)return!1;let W=$?.schema;return!!W&&P1.optional in W},J0=($)=>{if(!$)return!1;let W=$?.schema??$;if(W.anyOf)return W.anyOf.some(J0);if(W.someOf)return W.someOf.some(J0);if(W.allOf)return W.allOf.some(J0);if(W.not)return W.not.some(J0);if(W.type==="object"){let X=W.properties;if("additionalProperties"in W)return W.additionalProperties;for(let Z of Object.keys(X)){let j=X[Z];if(j.type==="object"){if(J0(j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(J0(j.anyOf[J]))return!0}return j.additionalProperties}return!1}return!1},x2=({context:$="c",trace:W,addFn:X})=>{if(!W.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let Z=0;Z<W.length;Z++)X(`let report${Z}, reportChild${Z}, reportErr${Z}, reportErrChild${Z}; let trace${Z} = ${$}[ELYSIA_TRACE]?.[${Z}] ?? trace[${Z}](${$});\n`);return(Z,{name:j,total:J=0}={})=>{if(!j)j="anonymous";let Y=Z==="error"?"reportErr":"report";for(let G=0;G<W.length;G++)X(`\n${Y}${G} = trace${G}.${Z}({id,event: '${Z}',name: '${j}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let G=0;G<W.length;G++)X(`\n${Y}${G}.resolve()\n`)},resolveChild(G){for(let K=0;K<W.length;K++)X(`${Y}Child${K} = ${Y}${K}.resolveChild?.shift()?.({id,event: '${Z}',name: '${G}',begin: performance.now()})\n`);return(K)=>{for(let B=0;B<W.length;B++)if(K)X(`
8
8
  if (${K} instanceof Error)
9
9
  ${Y}Child${B}?.(${K})
10
10
  else
@@ -23,15 +23,15 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
23
23
  c.set.status = ${J}
24
24
  }
25
25
 
26
- break\n\n`}return j+="\n}\n",j}}),n8=Symbol.for("TypeBox.Kind");var V0=($,W)=>{if(!W)return;if(W.type==="object"){const X=W.properties;if(!X)return!1;for(let Z of Object.keys(X)){const j=X[Z];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 W},b1=Symbol.for("TypeBox.Transform"),S0=($)=>{if(!$)return;if($.type==="object"&&$.properties){const W=$.properties;for(let X of Object.keys(W)){const Z=W[X];if(Z.type==="object"){if(S0(Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if(S0(Z.anyOf[J]))return!0}if(b1 in Z)return!0}return!1}return b1 in $||$.properties&&b1 in $.properties},q3=/(?:return|=>) \S+\(/g,C0=($)=>{return($?.fn??$).constructor.name==="AsyncFunction"},k=($)=>{const W=$?.fn??$;if(W.constructor.name==="AsyncFunction")return!0;const X=W.toString();if(X.includes("=> response.clone("))return!1;if(X.includes("await"))return!0;if(X.includes("async"))return!0;return!!X.match(q3)},B1=($)=>{const W=$?.fn??$;return W.constructor.name==="AsyncGeneratorFunction"||W.constructor.name==="GeneratorFunction"},I2=({app:$,path:W,method:X,localHook:Z,hooks:j,validator:J,handler:Y,allowMeta:G=!1,inference:K})=>{const B=typeof Y==="function";if(!B){if(Y=x(Y,{headers:$.setHeaders??{}}),j.parse.length===0&&j.transform.length===0&&j.beforeHandle.length===0&&j.afterHandle.length===0)return Function("a","return function () { return a.clone() }")(Y)}const U=B?"handler(c)":"handler",w=j.afterResponse.length>0,F=j.trace.length>0;let Q="";if(K=r0(Object.assign(Z,{handler:Y}),K),K.server)Q+=`\nObject.defineProperty(c, 'server', {
26
+ break\n\n`}return j+="\n}\n",j}}),n8=Symbol.for("TypeBox.Kind");var V0=($,W)=>{if(!W)return;if(W.type==="object"){let X=W.properties;if(!X)return!1;for(let Z of Object.keys(X)){let j=X[Z];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 W},b2=Symbol.for("TypeBox.Transform"),S0=($)=>{if(!$)return;if($.type==="object"&&$.properties){let W=$.properties;for(let X of Object.keys(W)){let Z=W[X];if(Z.type==="object"){if(S0(Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if(S0(Z.anyOf[J]))return!0}if(b2 in Z)return!0}return!1}return b2 in $||$.properties&&b2 in $.properties},q3=/(?:return|=>) \S+\(/g,C0=($)=>{return($?.fn??$).constructor.name==="AsyncFunction"},k=($)=>{let W=$?.fn??$;if(W.constructor.name==="AsyncFunction")return!0;let X=W.toString();if(X.includes("=> response.clone("))return!1;if(X.includes("await"))return!0;if(X.includes("async"))return!0;return!!X.match(q3)},B2=($)=>{let W=$?.fn??$;return W.constructor.name==="AsyncGeneratorFunction"||W.constructor.name==="GeneratorFunction"},I1=({app:$,path:W,method:X,localHook:Z,hooks:j,validator:J,handler:Y,allowMeta:G=!1,inference:K})=>{let B=typeof Y==="function";if(!B){if(Y=x(Y,{headers:$.setHeaders??{}}),j.parse.length===0&&j.transform.length===0&&j.beforeHandle.length===0&&j.afterHandle.length===0)return Function("a","return function () { return a.clone() }")(Y)}let U=B?"handler(c)":"handler",w=j.afterResponse.length>0,F=j.trace.length>0,Q="";if(K=r0(Object.assign(Z,{handler:Y}),K),K.server)Q+=`\nObject.defineProperty(c, 'server', {
27
27
  get: function() { return getServer() }
28
- })\n`;if(K.body)Q+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();const z=K.query||!!J.query,D=X!=="$INTERNALWS"&&X!=="GET"&&X!=="HEAD"&&(K.body||!!J.body||j.parse.length),M=$.setHeaders,I=M&&!!Object.keys(M).length,O=K.headers||J.headers,P=K.cookie||!!J.cookie,b=P?W1({validator:J.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:J.cookie?.config??{},models:$.definitions.type}):void 0,T=b?.config;let E="";if(T?.sign){if(!T.secrets)throw new Error(`t.Cookie required secret which is not set in (${X}) ${W}.`);const N=!T.secrets?void 0:typeof T.secrets==="string"?T.secrets:T.secrets[0];if(E+=`const _setCookie = c.set.cookie
28
+ })\n`;if(K.body)Q+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();let z=K.query||!!J.query,D=X!=="$INTERNALWS"&&X!=="GET"&&X!=="HEAD"&&(K.body||!!J.body||j.parse.length),M=$.setHeaders,I=M&&!!Object.keys(M).length,O=K.headers||J.headers,P=K.cookie||!!J.cookie,b=P?W2({validator:J.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:J.cookie?.config??{},models:$.definitions.type}):void 0,T=b?.config,E="";if(T?.sign){if(!T.secrets)throw new Error(`t.Cookie required secret which is not set in (${X}) ${W}.`);let N=!T.secrets?void 0:typeof T.secrets==="string"?T.secrets:T.secrets[0];if(E+=`const _setCookie = c.set.cookie
29
29
  if(_setCookie) {`,T.sign===!0)E+=`for(const [key, cookie] of Object.entries(_setCookie)) {
30
30
  c.set.cookie[key].value = await signCookie(cookie.value, '${N}')
31
- }`;else for(let _ of T.sign)E+=`if(_setCookie['${_}']?.value) { c.set.cookie['${_}'].value = await signCookie(_setCookie['${_}'].value, '${N}') }\n`;E+="}\n"}const r=$.config.normalize,{composeValidation:L,composeResponseValidation:g}=E3({normalize:r,validator:J});if(O)Q+=T3?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
31
+ }`;else for(let _ of T.sign)E+=`if(_setCookie['${_}']?.value) { c.set.cookie['${_}'].value = await signCookie(_setCookie['${_}'].value, '${N}') }\n`;E+="}\n"}let r=$.config.normalize,{composeValidation:L,composeResponseValidation:f}=E3({normalize:r,validator:J});if(O)Q+=T3?"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(P){const N=(A,S)=>{const C=T?.[A]??S;if(!C)return typeof S==="string"?`${A}: "${S}",`:`${A}: ${S},`;if(typeof C==="string")return`${A}: '${C}',`;if(C instanceof Date)return`${A}: new Date(${C.getTime()}),`;return`${A}: ${C},`},_=T?`{
34
+ `;if(P){let N=(A,S)=>{let C=T?.[A]??S;if(!C)return typeof S==="string"?`${A}: "${S}",`:`${A}: ${S},`;if(typeof C==="string")return`${A}: '${C}',`;if(C instanceof Date)return`${A}: new Date(${C.getTime()}),`;return`${A}: ${C},`},_=T?`{
35
35
  secrets: ${T.secrets!==void 0?typeof T.secrets==="string"?`'${T.secrets}'`:"["+T.secrets.reduce((A,S)=>A+`'${S}',`,"")+"]":"undefined"},
36
36
  sign: ${T.sign===!0?!0:T.sign!==void 0?"["+T.sign.reduce((A,S)=>A+`'${S}',`,"")+"]":"undefined"},
37
37
  ${N("domain")}
@@ -42,14 +42,14 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
42
42
  ${N("priority")}
43
43
  ${N("sameSite")}
44
44
  ${N("secure")}
45
- }`:"undefined";if(O)Q+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${_})\n`;else Q+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${_})\n`}if(z){const N=[];if(J.query&&J.query.schema.type==="object"){const _=J.query.schema.properties;if(!J0(J.query))for(let[A,S]of Object.entries(_)){let C=S;if(C&&P2.optional in C&&C.type==="array"&&C.items)C=C.items;const{type:a,anyOf:H}=C,U0=a==="array"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString");N.push({key:A,isArray:U0,isNestedObjectArray:U0&&C.items?.type==="object"||!!C.items?.anyOf?.some((u)=>u.type==="object"||u.type==="array"),isObject:a==="object"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString"),anyOf:!!H})}}if(!N.length)Q+=`if(c.qi === -1) {
45
+ }`:"undefined";if(O)Q+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${_})\n`;else Q+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${_})\n`}if(z){let N=[];if(J.query&&J.query.schema.type==="object"){let _=J.query.schema.properties;if(!J0(J.query))for(let[A,S]of Object.entries(_)){let C=S;if(C&&P1.optional in C&&C.type==="array"&&C.items)C=C.items;let{type:a,anyOf:H}=C,U0=a==="array"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString");N.push({key:A,isArray:U0,isNestedObjectArray:U0&&C.items?.type==="object"||!!C.items?.anyOf?.some((u)=>u.type==="object"||u.type==="array"),isObject:a==="object"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString"),anyOf:!!H})}}if(!N.length)Q+=`if(c.qi === -1) {
46
46
  c.query = {}
47
47
  } else {
48
48
  c.query = parseQueryFromURL(c.url.slice(c.qi + 1))
49
49
  }`;else Q+=`if(c.qi !== -1) {
50
50
  let url = '&' + c.url.slice(c.qi + 1)
51
51
 
52
- ${N.map(({key:_,isArray:A,isObject:S,isNestedObjectArray:C,anyOf:a},H)=>{const U0=`${H===0?"let":""} memory = url.indexOf('&${_}=')
52
+ ${N.map(({key:_,isArray:A,isObject:S,isNestedObjectArray:C,anyOf:a},H)=>{let U0=`${H===0?"let":""} memory = url.indexOf('&${_}=')
53
53
  let a${H}\n`;if(A)return U0+(C?`while (memory !== -1) {
54
54
  const start = memory + ${_.length+2}
55
55
  memory = url.indexOf('&', start)
@@ -156,7 +156,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
156
156
  }
157
157
  } else {
158
158
  c.query = {}
159
- }`}if(F)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const R=x1({trace:j.trace,addFn:(N)=>{Q+=N}});Q+="\ntry {\n";const Y0=typeof Y==="function"&&k(Y),e=F||j.afterResponse.length>0?"c.response = ":"",y0=P||D||Y0||j.parse.length>0||j.afterHandle.some(k)||j.beforeHandle.some(k)||j.transform.some(k)||j.mapResponse.some(k),O2=(typeof Y==="function"?B1(Y):!1)||j.beforeHandle.some(B1)||j.afterHandle.some(B1)||j.transform.some(B1),t0=K.cookie||K.set||O||F||J.response||B&&I||O2,s=", c.request";Q+=`c.route = \`${W}\`\n`;const V2=R("parse",{total:j.parse.length});if(D){const N=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":if(t(J.body))Q+="try { c.body = await c.request.json() } catch {}";else 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":if(Q+="c.body = {}\n",t(J.body))Q+="let form; try { form = await c.request.formData() } catch {}";else Q+="const form = await c.request.formData()";Q+=`\nif(form)
159
+ }`}if(F)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";let R=x2({trace:j.trace,addFn:(N)=>{Q+=N}});Q+="\ntry {\n";let Y0=typeof Y==="function"&&k(Y),e=F||j.afterResponse.length>0?"c.response = ":"",y0=P||D||Y0||j.parse.length>0||j.afterHandle.some(k)||j.beforeHandle.some(k)||j.transform.some(k)||j.mapResponse.some(k),O1=(typeof Y==="function"?B2(Y):!1)||j.beforeHandle.some(B2)||j.afterHandle.some(B2)||j.transform.some(B2),t0=K.cookie||K.set||O||F||J.response||B&&I||O1,s=", c.request";Q+=`c.route = \`${W}\`\n`;let V1=R("parse",{total:j.parse.length});if(D){let N=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":if(t(J.body))Q+="try { c.body = await c.request.json() } catch {}";else 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":if(Q+="c.body = {}\n",t(J.body))Q+="let form; try { form = await c.request.formData() } catch {}";else Q+="const form = await c.request.formData()";Q+=`\nif(form)
160
160
  for (const key of form.keys()) {
161
161
  if (c.body[key])
162
162
  continue
@@ -169,7 +169,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
169
169
  if (contentType) {
170
170
  const index = contentType.indexOf(';')
171
171
  if (index !== -1) contentType = contentType.substring(0, index)\n
172
- c.contentType = contentType\n`,j.parse.length){Q+="let used = false\n";const _=R("parse",{total:j.parse.length});for(let A=0;A<j.parse.length;A++){const S=_.resolveChild(j.parse[A].fn.name),C=`bo${A}`;if(A!==0)Q+="if(!used) {\n";if(Q+=`let ${C} = parse[${A}](c, contentType)\n`,Q+=`if(${C} instanceof Promise) ${C} = await ${C}\n`,Q+=`if(${C} !== undefined) { c.body = ${C}; used = true }\n`,S(),A!==0)Q+="}"}_.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":if(t(J.body))Q+="try { c.body = await c.request.json() } catch {}";else 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 = {}
172
+ c.contentType = contentType\n`,j.parse.length){Q+="let used = false\n";let _=R("parse",{total:j.parse.length});for(let A=0;A<j.parse.length;A++){let S=_.resolveChild(j.parse[A].fn.name),C=`bo${A}`;if(A!==0)Q+="if(!used) {\n";if(Q+=`let ${C} = parse[${A}](c, contentType)\n`,Q+=`if(${C} instanceof Promise) ${C} = await ${C}\n`,Q+=`if(${C} !== undefined) { c.body = ${C}; used = true }\n`,S(),A!==0)Q+="}"}_.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":if(t(J.body))Q+="try { c.body = await c.request.json() } catch {}";else 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 = {}
173
173
 
174
174
  const form = await c.request.formData()
175
175
  for (const key of form.keys()) {
@@ -213,7 +213,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
213
213
  }
214
214
 
215
215
  break
216
- }`;if(j.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(V2.resolve(),j?.transform){const N=R("transform",{total:j.transform.length});if(j.transform.length)Q+="\nlet transformed\n";for(let _=0;_<j.transform.length;_++){const A=j.transform[_],S=N.resolveChild(A.fn.name);if(Q+=k(A)?`transformed = await transform[${_}](c)\n`:`transformed = transform[${_}](c)\n`,A.subType==="mapDerive")Q+=`if(transformed instanceof ElysiaCustomStatusResponse)
216
+ }`;if(j.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(V1.resolve(),j?.transform){let N=R("transform",{total:j.transform.length});if(j.transform.length)Q+="\nlet transformed\n";for(let _=0;_<j.transform.length;_++){let A=j.transform[_],S=N.resolveChild(A.fn.name);if(Q+=k(A)?`transformed = await transform[${_}](c)\n`:`transformed = transform[${_}](c)\n`,A.subType==="mapDerive")Q+=`if(transformed instanceof ElysiaCustomStatusResponse)
217
217
  throw transformed
218
218
  else {
219
219
  transformed.request = c.request
@@ -229,13 +229,13 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
229
229
  }`;else Q+=`if(transformed instanceof ElysiaCustomStatusResponse)
230
230
  throw transformed
231
231
  else
232
- Object.assign(c, transformed)\n`;S()}N.resolve()}if(J){if(Q+="\n",J.headers){if(r&&"Clean"in J.headers&&!J0(J.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",J.headers.schema))for(let[N,_]of Object.entries(n0.Default(J.headers.schema,{}))){const A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`c.headers['${N}'] ??= ${A}\n`}if(t(J.headers))Q+="if(isNotEmpty(c.headers)) {";if(Q+=`if(validator.headers.Check(c.headers) === false) {
232
+ Object.assign(c, transformed)\n`;S()}N.resolve()}if(J){if(Q+="\n",J.headers){if(r&&"Clean"in J.headers&&!J0(J.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",J.headers.schema))for(let[N,_]of Object.entries(n0.Default(J.headers.schema,{}))){let A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`c.headers['${N}'] ??= ${A}\n`}if(t(J.headers))Q+="if(isNotEmpty(c.headers)) {";if(Q+=`if(validator.headers.Check(c.headers) === false) {
233
233
  ${L("headers")}
234
- }`,S0(J.headers.schema))Q+="c.headers = validator.headers.Decode(c.headers)\n";if(t(J.headers))Q+="}"}if(J.params){if(V0("default",J.params.schema))for(let[N,_]of Object.entries(n0.Default(J.params.schema,{}))){const A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`c.params['${N}'] ??= ${A}\n`}if(Q+=`if(validator.params.Check(c.params) === false) {
234
+ }`,S0(J.headers.schema))Q+="c.headers = validator.headers.Decode(c.headers)\n";if(t(J.headers))Q+="}"}if(J.params){if(V0("default",J.params.schema))for(let[N,_]of Object.entries(n0.Default(J.params.schema,{}))){let A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`c.params['${N}'] ??= ${A}\n`}if(Q+=`if(validator.params.Check(c.params) === false) {
235
235
  ${L("params")}
236
- }`,S0(J.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(r&&"Clean"in J.query&&!J0(J.query))Q+="c.query = validator.query.Clean(c.query);\n";if(V0("default",J.query.schema))for(let[N,_]of Object.entries(n0.Default(J.query.schema,{}))){const A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`if(c.query['${N}'] === undefined) c.query['${N}'] = ${A}\n`}if(t(J.query))Q+="if(isNotEmpty(c.query)) {";if(Q+=`if(validator.query.Check(c.query) === false) {
236
+ }`,S0(J.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(r&&"Clean"in J.query&&!J0(J.query))Q+="c.query = validator.query.Clean(c.query);\n";if(V0("default",J.query.schema))for(let[N,_]of Object.entries(n0.Default(J.query.schema,{}))){let A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`if(c.query['${N}'] === undefined) c.query['${N}'] = ${A}\n`}if(t(J.query))Q+="if(isNotEmpty(c.query)) {";if(Q+=`if(validator.query.Check(c.query) === false) {
237
237
  ${L("query")}
238
- }`,S0(J.query.schema))Q+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(t(J.query))Q+="}"}if(J.body){if(r&&"Clean"in J.body&&!J0(J.body))Q+="c.body = validator.body.Clean(c.body);\n";const N=S0(J.body.schema);if(N||t(J.body))Q+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(V0("default",J.body.schema)){const _=n0.Default(J.body.schema,J.body.schema.type==="object"?{}:void 0),A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(Q+=`if(validator.body.Check(c.body) === false) {
238
+ }`,S0(J.query.schema))Q+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(t(J.query))Q+="}"}if(J.body){if(r&&"Clean"in J.body&&!J0(J.body))Q+="c.body = validator.body.Clean(c.body);\n";let N=S0(J.body.schema);if(N||t(J.body))Q+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(V0("default",J.body.schema)){let _=n0.Default(J.body.schema,J.body.schema.type==="object"?{}:void 0),A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(Q+=`if(validator.body.Check(c.body) === false) {
239
239
  if (typeof c.body === 'object') {
240
240
  c.body = Object.assign(${A}, c.body)
241
241
  } else { c.body = ${A} }`,t(J.body))Q+=`
@@ -255,7 +255,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
255
255
  cookieValue[key] = value.value\n`,V0("default",b.schema))for(let[N,_]of Object.entries(n0.Default(b.schema,{})))Q+=`cookieValue['${N}'] = ${typeof _==="object"?JSON.stringify(_):_}\n`;if(t(J.cookie))Q+="if(isNotEmpty(c.cookie)) {";if(Q+=`if(validator.cookie.Check(cookieValue) === false) {
256
256
  ${L("cookie","cookieValue")}
257
257
  }`,S0(J.cookie.schema))Q+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
258
- c.cookie[key].value = value\n`;if(t(J.cookie))Q+="}"}}if(j?.beforeHandle){const N=R("beforeHandle",{total:j.beforeHandle.length});let _=!1;for(let A=0;A<j.beforeHandle.length;A++){const S=j.beforeHandle[A],C=N.resolveChild(S.fn.name),a=E0(S);if(S.subType==="resolve"||S.subType==="mapResolve"){if(!_)_=!0,Q+="\nlet resolved\n";if(Q+=k(S)?`resolved = await beforeHandle[${A}](c);\n`:`resolved = beforeHandle[${A}](c);\n`,S.subType==="mapResolve")Q+=`if(resolved instanceof ElysiaCustomStatusResponse)
258
+ c.cookie[key].value = value\n`;if(t(J.cookie))Q+="}"}}if(j?.beforeHandle){let N=R("beforeHandle",{total:j.beforeHandle.length}),_=!1;for(let A=0;A<j.beforeHandle.length;A++){let S=j.beforeHandle[A],C=N.resolveChild(S.fn.name),a=E0(S);if(S.subType==="resolve"||S.subType==="mapResolve"){if(!_)_=!0,Q+="\nlet resolved\n";if(Q+=k(S)?`resolved = await beforeHandle[${A}](c);\n`:`resolved = beforeHandle[${A}](c);\n`,S.subType==="mapResolve")Q+=`if(resolved instanceof ElysiaCustomStatusResponse)
259
259
  throw resolved
260
260
  else {
261
261
  resolved.request = c.request
@@ -271,11 +271,11 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
271
271
  }`;else Q+=`if(resolved instanceof ElysiaCustomStatusResponse)
272
272
  throw resolved
273
273
  else
274
- Object.assign(c, resolved)\n`}else if(!a)Q+=k(S)?`await beforeHandle[${A}](c);\n`:`beforeHandle[${A}](c);\n`,C();else{if(Q+=k(S)?`be = await beforeHandle[${A}](c);\n`:`be = beforeHandle[${A}](c);\n`,C("be"),Q+="if(be !== undefined) {\n",N.resolve(),j.afterHandle?.length){R("handle",{name:B?Y.name:void 0}).resolve();const u=R("afterHandle",{total:j.afterHandle.length});for(let G0=0;G0<j.afterHandle.length;G0++){const L0=j.afterHandle[G0],S2=E0(L0),C2=u.resolveChild(L0.fn.name);if(Q+="c.response = be\n",!S2)Q+=k(L0.fn)?`await afterHandle[${G0}](c, be)\n`:`afterHandle[${G0}](c, be)\n`;else Q+=k(L0.fn)?`af = await afterHandle[${G0}](c)\n`:`af = afterHandle[${G0}](c)\n`,Q+="if(af !== undefined) { c.response = be = af }\n";C2("af")}u.resolve()}if(J.response)Q+=g("be");const U0=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = be\n";for(let u=0;u<j.mapResponse.length;u++){const G0=j.mapResponse[u],L0=U0.resolveChild(G0.fn.name);Q+=`\nif(mr === undefined) {
274
+ Object.assign(c, resolved)\n`}else if(!a)Q+=k(S)?`await beforeHandle[${A}](c);\n`:`beforeHandle[${A}](c);\n`,C();else{if(Q+=k(S)?`be = await beforeHandle[${A}](c);\n`:`be = beforeHandle[${A}](c);\n`,C("be"),Q+="if(be !== undefined) {\n",N.resolve(),j.afterHandle?.length){R("handle",{name:B?Y.name:void 0}).resolve();let u=R("afterHandle",{total:j.afterHandle.length});for(let G0=0;G0<j.afterHandle.length;G0++){let L0=j.afterHandle[G0],S1=E0(L0),C1=u.resolveChild(L0.fn.name);if(Q+="c.response = be\n",!S1)Q+=k(L0.fn)?`await afterHandle[${G0}](c, be)\n`:`afterHandle[${G0}](c, be)\n`;else Q+=k(L0.fn)?`af = await afterHandle[${G0}](c)\n`:`af = afterHandle[${G0}](c)\n`,Q+="if(af !== undefined) { c.response = be = af }\n";C1("af")}u.resolve()}if(J.response)Q+=f("be");let U0=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = be\n";for(let u=0;u<j.mapResponse.length;u++){let G0=j.mapResponse[u],L0=U0.resolveChild(G0.fn.name);Q+=`\nif(mr === undefined) {
275
275
  mr = ${C0(G0)?"await":""} onMapResponse[${u}](c)
276
276
  if(mr !== undefined) be = c.response = mr
277
- }\n`,L0()}}U0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${e} be, c.set ${s})}\n`}}N.resolve()}if(j?.afterHandle.length){const N=R("handle",{name:B?Y.name:void 0});if(j.afterHandle.length)Q+=Y0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`;N.resolve();const _=R("afterHandle",{total:j.afterHandle.length});for(let S=0;S<j.afterHandle.length;S++){const C=j.afterHandle[S],a=E0(C),H=_.resolveChild(C.fn.name);if(!a)Q+=k(C.fn)?`await afterHandle[${S}](c)\n`:`afterHandle[${S}](c)\n`,H();else if(Q+=k(C.fn)?`af = await afterHandle[${S}](c)\n`:`af = afterHandle[${S}](c)\n`,H("af"),J.response)Q+="if(af !== undefined) {",_.resolve(),Q+=g("af"),Q+="c.response = af }";else Q+="if(af !== undefined) {",_.resolve(),Q+="c.response = af}\n"}if(_.resolve(),Q+="r = c.response\n",J.response)Q+=g();Q+=E;const A=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let S=0;S<j.mapResponse.length;S++){const C=j.mapResponse[S],a=A.resolveChild(C.fn.name);Q+=`\nmr = ${C0(C)?"await":""} onMapResponse[${S}](c)
278
- if(mr !== undefined) r = c.response = mr\n`,a()}if(A.resolve(),t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{const N=R("handle",{name:B?Y.name:void 0});if(J.response||j.mapResponse.length){if(Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),J.response)Q+=g();R("afterHandle").resolve();const _=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = r\n";for(let A=0;A<j.mapResponse.length;A++){const S=j.mapResponse[A],C=_.resolveChild(S.fn.name);Q+=`\nif(mr === undefined) {
277
+ }\n`,L0()}}U0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${e} be, c.set ${s})}\n`}}N.resolve()}if(j?.afterHandle.length){let N=R("handle",{name:B?Y.name:void 0});if(j.afterHandle.length)Q+=Y0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`;N.resolve();let _=R("afterHandle",{total:j.afterHandle.length});for(let S=0;S<j.afterHandle.length;S++){let C=j.afterHandle[S],a=E0(C),H=_.resolveChild(C.fn.name);if(!a)Q+=k(C.fn)?`await afterHandle[${S}](c)\n`:`afterHandle[${S}](c)\n`,H();else if(Q+=k(C.fn)?`af = await afterHandle[${S}](c)\n`:`af = afterHandle[${S}](c)\n`,H("af"),J.response)Q+="if(af !== undefined) {",_.resolve(),Q+=f("af"),Q+="c.response = af }";else Q+="if(af !== undefined) {",_.resolve(),Q+="c.response = af}\n"}if(_.resolve(),Q+="r = c.response\n",J.response)Q+=f();Q+=E;let A=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let S=0;S<j.mapResponse.length;S++){let C=j.mapResponse[S],a=A.resolveChild(C.fn.name);Q+=`\nmr = ${C0(C)?"await":""} onMapResponse[${S}](c)
278
+ if(mr !== undefined) r = c.response = mr\n`,a()}if(A.resolve(),t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{let N=R("handle",{name:B?Y.name:void 0});if(J.response||j.mapResponse.length){if(Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),J.response)Q+=f();R("afterHandle").resolve();let _=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = r\n";for(let A=0;A<j.mapResponse.length;A++){let S=j.mapResponse[A],C=_.resolveChild(S.fn.name);Q+=`\nif(mr === undefined) {
279
279
  mr = ${C0(S)?"await":""} onMapResponse[${A}](c)
280
280
  if(mr !== undefined) r = c.response = mr
281
281
  }\n`,C()}}if(_.resolve(),Q+=E,Y instanceof Response)Q+=K.set?`if(
@@ -286,10 +286,10 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
286
286
  )
287
287
  return mapResponse(${e} ${U}.clone(), c.set ${s})
288
288
  else
289
- return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else if(P||F){Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),R("afterHandle").resolve();const _=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = r\n";for(let A=0;A<j.mapResponse.length;A++){const S=j.mapResponse[A],C=_.resolveChild(S.fn.name);Q+=`\nif(mr === undefined) {
289
+ return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else if(P||F){Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),R("afterHandle").resolve();let _=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = r\n";for(let A=0;A<j.mapResponse.length;A++){let S=j.mapResponse[A],C=_.resolveChild(S.fn.name);Q+=`\nif(mr === undefined) {
290
290
  mr = ${C0(S)?"await":""} onMapResponse[${A}](c)
291
291
  if(mr !== undefined) r = c.response = mr
292
- }\n`,C()}}if(_.resolve(),Q+=E,t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{N.resolve();const _=Y0?`await ${U}`:U;if(R("afterHandle").resolve(),Y instanceof Response)Q+=K.set?`if(
292
+ }\n`,C()}}if(_.resolve(),Q+=E,t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{N.resolve();let _=Y0?`await ${U}`:U;if(R("afterHandle").resolve(),Y instanceof Response)Q+=K.set?`if(
293
293
  isNotEmpty(c.set.headers) ||
294
294
  c.set.status !== 200 ||
295
295
  c.set.redirect ||
@@ -297,7 +297,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
297
297
  )
298
298
  return mapResponse(${e} ${U}.clone(), c.set ${s})
299
299
  else
300
- return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} ${_}, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} ${_} ${s})\n`}}if(Q+="\n} catch(error) {",D)Q+="\nif(isParsing) error = new ParseError()\n";if(!y0)Q+="\nreturn (async () => {\n";if(Q+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",F)for(let N=0;N<j.trace.length;N++)Q+=`report${N}?.resolve(error);reportChild${N}?.(error);\n`;const K1=R("error",{total:j.error.length});if(j.error.length){Q+=`
300
+ return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} ${_}, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} ${_} ${s})\n`}}if(Q+="\n} catch(error) {",D)Q+="\nif(isParsing) error = new ParseError()\n";if(!y0)Q+="\nreturn (async () => {\n";if(Q+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",F)for(let N=0;N<j.trace.length;N++)Q+=`report${N}?.resolve(error);reportChild${N}?.(error);\n`;let K2=R("error",{total:j.error.length});if(j.error.length){Q+=`
301
301
  c.error = error
302
302
  if(error instanceof TypeBoxError) {
303
303
  c.code = "VALIDATION"
@@ -305,9 +305,9 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
305
305
  } else
306
306
  c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
307
307
  let er
308
- `;for(let N=0;N<j.error.length;N++){const _=K1.resolveChild(j.error[N].fn.name);if(k(j.error[N]))Q+=`\ner = await handleErrors[${N}](c)\n`;else Q+=`\ner = handleErrors[${N}](c)\nif (er instanceof Promise) er = await er\n`;_();const A=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let S=0;S<j.mapResponse.length;S++){const C=j.mapResponse[S],a=A.resolveChild(C.fn.name);Q+=`\nc.response = er\n
308
+ `;for(let N=0;N<j.error.length;N++){let _=K2.resolveChild(j.error[N].fn.name);if(k(j.error[N]))Q+=`\ner = await handleErrors[${N}](c)\n`;else Q+=`\ner = handleErrors[${N}](c)\nif (er instanceof Promise) er = await er\n`;_();let A=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let S=0;S<j.mapResponse.length;S++){let C=j.mapResponse[S],a=A.resolveChild(C.fn.name);Q+=`\nc.response = er\n
309
309
  er = ${C0(C)?"await":""} onMapResponse[${S}](c)
310
- if(er instanceof Promise) er = await er\n`,a()}if(A.resolve(),Q+=`er = mapEarlyResponse(er, set ${s})\n`,Q+="if (er) {",F){for(let S=0;S<j.trace.length;S++)Q+=`\nreport${S}.resolve()\n`;K1.resolve()}Q+="return er\n}\n"}}if(K1.resolve(),Q+="return handleError(c, error, true)\n",!y0)Q+="})()";if(Q+="}",w||F){if(Q+=" finally { ",!y0)Q+=";(async () => {";const N=R("afterResponse",{total:j.afterResponse.length});if(w)for(let _=0;_<j.afterResponse.length;_++){const A=N.resolveChild(j.afterResponse[_].fn.name);Q+=`\nawait afterResponse[${_}](c);\n`,A()}if(N.resolve(),!y0)Q+="})();";Q+="}"}Q=`const {
310
+ if(er instanceof Promise) er = await er\n`,a()}if(A.resolve(),Q+=`er = mapEarlyResponse(er, set ${s})\n`,Q+="if (er) {",F){for(let S=0;S<j.trace.length;S++)Q+=`\nreport${S}.resolve()\n`;K2.resolve()}Q+="return er\n}\n"}}if(K2.resolve(),Q+="return handleError(c, error, true)\n",!y0)Q+="})()";if(Q+="}",w||F){if(Q+=" finally { ",!y0)Q+=";(async () => {";let N=R("afterResponse",{total:j.afterResponse.length});if(w)for(let _=0;_<j.afterResponse.length;_++){let A=N.resolveChild(j.afterResponse[_].fn.name);Q+=`\nawait afterResponse[${_}](c);\n`,A()}if(N.resolve(),!y0)Q+="})();";Q+="}"}Q=`const {
311
311
  handler,
312
312
  handleError,
313
313
  hooks: {
@@ -358,7 +358,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
358
358
 
359
359
  ${G?"c.schema = schema; c.defs = definitions":""}
360
360
  ${Q}
361
- }`;try{return Function("hooks",Q)({handler:Y,hooks:E1(j),validator:J,handleError:$.handleError,utils:{mapResponse:x,mapCompactResponse:Z0,mapEarlyResponse:y,parseQuery:l0,parseQueryFromURL:G1,isNotEmpty:c},error:{NotFoundError:A0,ValidationError:q,InternalServerError:Q1,ParseError:Y1},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:I0,parseCookie:e0,signCookie:x0,decodeURIComponent:N2.default,ElysiaCustomStatusResponse:p,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer(),TypeBoxError:L3})}catch{const N=E1(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 Y==="function"?Y.toString():Y,hooks:{...N,transform:N?.transform?.map?.((_)=>_.toString()),resolve:N?.resolve?.map?.((_)=>_.toString()),beforeHandle:N?.beforeHandle?.map?.((_)=>_.toString()),afterHandle:N?.afterHandle?.map?.((_)=>_.toString()),mapResponse:N?.mapResponse?.map?.((_)=>_.toString()),parse:N?.parse?.map?.((_)=>_.toString()),error:N?.error?.map?.((_)=>_.toString()),afterResponse:N?.afterResponse?.map?.((_)=>_.toString()),stop:N?.stop?.map?.((_)=>_.toString())},validator:J,definitions:$.definitions.type}),console.log("---"),process.exit(1)}},g1=($)=>{const W=$.config.handler?.standardHostname??!0;let X="",Z="";const j=$.setHeaders;for(let D of Object.keys($.singleton.decorator))X+=`,${D}: app.singleton.decorator.${D}`;const J=$.router,Y=$.event.trace.length>0;let G=`
361
+ }`;try{return Function("hooks",Q)({handler:Y,hooks:E2(j),validator:J,handleError:$.handleError,utils:{mapResponse:x,mapCompactResponse:Z0,mapEarlyResponse:g,parseQuery:p0,parseQueryFromURL:G2,isNotEmpty:c},error:{NotFoundError:A0,ValidationError:q,InternalServerError:Q2,ParseError:Y2},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:I0,parseCookie:e0,signCookie:x0,decodeURIComponent:N1.default,ElysiaCustomStatusResponse:l,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer(),TypeBoxError:L3})}catch{let N=E2(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 Y==="function"?Y.toString():Y,hooks:{...N,transform:N?.transform?.map?.((_)=>_.toString()),resolve:N?.resolve?.map?.((_)=>_.toString()),beforeHandle:N?.beforeHandle?.map?.((_)=>_.toString()),afterHandle:N?.afterHandle?.map?.((_)=>_.toString()),mapResponse:N?.mapResponse?.map?.((_)=>_.toString()),parse:N?.parse?.map?.((_)=>_.toString()),error:N?.error?.map?.((_)=>_.toString()),afterResponse:N?.afterResponse?.map?.((_)=>_.toString()),stop:N?.stop?.map?.((_)=>_.toString())},validator:J,definitions:$.definitions.type}),console.log("---"),process.exit(1)}},g2=($)=>{let W=$.config.handler?.standardHostname??!0,X="",Z="",j=$.setHeaders;for(let D of Object.keys($.singleton.decorator))X+=`,${D}: app.singleton.decorator.${D}`;let J=$.router,Y=$.event.trace.length>0,G=`
362
362
  const route = router.find(request.method, path) ${J.http.root.ALL?'?? router.find("ALL", path)':""}
363
363
 
364
364
  if (route === null)
@@ -368,7 +368,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
368
368
  })`:"error404.clone()"}
369
369
 
370
370
  ctx.params = route.params\n`;G+=`if(route.store.handler) return route.store.handler(ctx)
371
- return (route.store.handler = route.store.compile())(ctx)\n`;let K="";for(let[D,{code:M,all:I,static:O}]of Object.entries(J.static.http.map)){if(O)K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`;K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`}const B=$.event.request.some(k);if(Z+=`const {
371
+ return (route.store.handler = route.store.compile())(ctx)\n`;let K="";for(let[D,{code:M,all:I,static:O}]of Object.entries(J.static.http.map)){if(O)K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`;K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`}let B=$.event.request.some(k);if(Z+=`const {
372
372
  app,
373
373
  mapEarlyResponse,
374
374
  NotFoundError,
@@ -422,13 +422,13 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
422
422
  }`:""}
423
423
  ${Y?",[ELYSIA_REQUEST_ID]: id":""}
424
424
  ${X}
425
- }\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((D,M)=>`tr${M}(ctx)`).join(",")}]\n`;const w=x1({context:"ctx",trace:$.event.trace,addFn(D){Z+=D}})("request",{attribute:"ctx",total:$.event.request.length});if($.event.request.length){Z+="\n try {\n";for(let D=0;D<$.event.request.length;D++){const M=$.event.request[D],I=E0(M),O=k(M),P=w.resolveChild($.event.request[D].fn.name);if(I)Z+=`re = mapEarlyResponse(
425
+ }\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((D,M)=>`tr${M}(ctx)`).join(",")}]\n`;let w=x2({context:"ctx",trace:$.event.trace,addFn(D){Z+=D}})("request",{attribute:"ctx",total:$.event.request.length});if($.event.request.length){Z+="\n try {\n";for(let D=0;D<$.event.request.length;D++){let M=$.event.request[D],I=E0(M),O=k(M),P=w.resolveChild($.event.request[D].fn.name);if(I)Z+=`re = mapEarlyResponse(
426
426
  ${O?"await":""} onRequest[${D}](ctx),
427
427
  ctx.set,
428
428
  request
429
429
  )\n`,P("re"),Z+="if(re !== undefined) return re\n";else Z+=`${O?"await":""} onRequest[${D}](ctx)\n`,P()}Z+=`} catch (error) {
430
430
  return app.handleError(ctx, error)
431
- }`}w.resolve();const F=$.router.static.ws,Q=$.router.ws;if(Object.keys(F).length||Q.history.length){Z+=`
431
+ }`}w.resolve();let F=$.router.static.ws,Q=$.router.ws;if(Object.keys(F).length||Q.history.length){Z+=`
432
432
  if(request.method === 'GET') {
433
433
  switch(path) {`;for(let[D,M]of Object.entries(F))Z+=`
434
434
  case '${D}':
@@ -461,7 +461,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
461
461
  }
462
462
 
463
463
  ${G}
464
- }\n`,$.extender.higherOrderFunctions.length){let D="map";for(let M=0;M<$.extender.higherOrderFunctions.length;M++)D=`hoc[${M}](${D}, request)`;Z+=`return function hocMap(request) { return ${D}(request) }`}else Z+="return map";const z=f1($);return $.handleError=z,Function("data",Z)({app:$,mapEarlyResponse:y,NotFoundError:A0,randomId:j1,handleError:z,error:q1,redirect:d0,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer()})},f1=($)=>{const W=$.event;let X="";X+=`const {
464
+ }\n`,$.extender.higherOrderFunctions.length){let D="map";for(let M=0;M<$.extender.higherOrderFunctions.length;M++)D=`hoc[${M}](${D}, request)`;Z+=`return function hocMap(request) { return ${D}(request) }`}else Z+="return map";let z=f2($);return $.handleError=z,Function("data",Z)({app:$,mapEarlyResponse:g,NotFoundError:A0,randomId:j2,handleError:z,error:q2,redirect:d0,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer()})},f2=($)=>{let W=$.event,X="";X+=`const {
465
465
  app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
466
466
  mapResponse,
467
467
  ERROR_CODE,
@@ -481,7 +481,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
481
481
  const onError = onErrorContainer.map(x => x.fn)
482
482
  const res = resContainer.map(x => x.fn)
483
483
 
484
- return ${$.event.error.find(k)||$.event.mapResponse.find(k)?"async":""} function(context, error, skipGlobal) {`;const Z=$.event.trace.length>0;if(Z)X+="\nconst id = context[ELYSIA_REQUEST_ID]\n";const j=x1({context:"context",trace:W.trace,addFn:(G)=>{X+=G}});X+=`
484
+ return ${$.event.error.find(k)||$.event.mapResponse.find(k)?"async":""} function(context, error, skipGlobal) {`;let Z=$.event.trace.length>0;if(Z)X+="\nconst id = context[ELYSIA_REQUEST_ID]\n";let j=x2({context:"context",trace:W.trace,addFn:(G)=>{X+=G}});X+=`
485
485
  const set = context.set
486
486
  let r
487
487
 
@@ -494,7 +494,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
494
494
  if(error instanceof ElysiaCustomStatusResponse) {
495
495
  error.status = error.code
496
496
  error.message = error.response
497
- }\n`;const J=Z||W.afterResponse.length>0||W.afterResponse.length>0?"context.response = ":"";for(let G=0;G<$.event.error.length;G++){const K=$.event.error[G],B=`${k(K)?"await ":""}onError[${G}](context)`;if(X+="\nif(skipGlobal !== true) {\n",E0(K)){X+=`r = ${B}; if(r !== undefined) {
497
+ }\n`;let J=Z||W.afterResponse.length>0||W.afterResponse.length>0?"context.response = ":"";for(let G=0;G<$.event.error.length;G++){let K=$.event.error[G],B=`${k(K)?"await ":""}onError[${G}](context)`;if(X+="\nif(skipGlobal !== true) {\n",E0(K)){X+=`r = ${B}; if(r !== undefined) {
498
498
  if(r instanceof Response) return r
499
499
 
500
500
  if(r instanceof ElysiaCustomStatusResponse) {
@@ -502,7 +502,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
502
502
  error.message = error.response
503
503
  }
504
504
 
505
- if(set.status === 200) set.status = error.status\n`;const U=j("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let w=0;w<W.mapResponse.length;w++){const F=W.mapResponse[w],Q=U.resolveChild(F.fn.name);X+=`\ncontext.response = r
505
+ if(set.status === 200) set.status = error.status\n`;let U=j("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let w=0;w<W.mapResponse.length;w++){let F=W.mapResponse[w],Q=U.resolveChild(F.fn.name);X+=`\ncontext.response = r
506
506
  r = ${C0(F)?"await":""} onMapResponse[${w}](context)\n`,Q()}U.resolve(),X+=`return mapResponse(${J} r, set, context.request)}\n`}else X+=B+"\n";X+="\n}\n"}X+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
507
507
  set.status = error.status ?? 422
508
508
  return new Response(
@@ -520,7 +520,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
520
520
  return new Response(
521
521
  error.message,
522
522
  { headers: set.headers, status: error.status }
523
- )\n`;const Y=j("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let G=0;G<W.mapResponse.length;G++){const K=W.mapResponse[G],B=Y.resolveChild(K.fn.name);X+=`\ncontext.response = error
524
- error = ${C0(K)?"await":""} onMapResponse[${G}](context)\n`,B()}return Y.resolve(),X+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",X)({app:$,mapResponse:x,ERROR_CODE:I0,ElysiaCustomStatusResponse:p,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0})};var y1=($)=>async(W)=>{const X=W.url,Z=X.indexOf("/",11),j=X.indexOf("?",Z+1),J=j===-1?X.substring(Z):X.substring(Z,j),Y={cookie:{},status:200,headers:{}},G=Object.assign({},$.singleton.decorator,{set:Y,store:$.singleton.store,request:W,path:J,qi:j,redirect:d0});try{for(let I=0;I<$.event.request.length;I++){const O=$.event.request[I].fn;let P=O(G);if(P instanceof Promise)P=await P;if(P=y(P,Y),P)return G.response=P}const K=$.router.dynamic.find(W.method,J)??$.router.dynamic.find("ALL",J);if(!K)throw new A0;const{handle:B,hooks:U,validator:w,content:F}=K.store;let Q;if(W.method!=="GET"&&W.method!=="HEAD")if(F)switch(F){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=l0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};const I=await W.formData();for(let O of I.keys()){if(Q[O])continue;const P=I.getAll(O);if(P.length===1)Q[O]=P[0];else Q[O]=P}break}else{let I=W.headers.get("content-type");if(I){const O=I.indexOf(";");if(O!==-1)I=I.slice(0,O);G.contentType=I;for(let P=0;P<U.parse.length;P++){const b=U.parse[P].fn;let T=b(G,I);if(T instanceof Promise)T=await T;if(T){Q=T;break}}if(delete G.contentType,Q===void 0)switch(I){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=l0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};const P=await W.formData();for(let b of P.keys()){if(Q[b])continue;const T=P.getAll(b);if(T.length===1)Q[b]=T[0];else Q[b]=T}break}}}G.body=Q,G.params=K?.params||void 0,G.query=j===-1?{}:G1(X.substring(j+1)),G.headers={};for(let[I,O]of W.headers.entries())G.headers[I]=O;const z=Object.assign({},$.config?.cookie,w?.cookie?.config),D=W.headers.get("cookie");G.cookie=await e0(G.set,D,z?{secrets:z.secrets!==void 0?typeof z.secrets==="string"?z.secrets:z.secrets.join(","):void 0,sign:z.sign===!0?!0:z.sign!==void 0?typeof z.sign==="string"?z.sign:z.sign.join(","):void 0}:void 0);for(let I=0;I<U.transform.length;I++){const O=U.transform[I],P=O.fn(G);if(O.subType==="derive")if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);else if(P instanceof Promise)await P}if(w){if(w.createHeaders?.()){const I={};for(let O in W.headers)I[O]=W.headers.get(O);if(w.headers.Check(I)===!1)throw new q("header",w.headers,I)}else if(w.headers?.Decode)G.headers=w.headers.Decode(G.headers);if(w.createParams?.()?.Check(G.params)===!1)throw new q("params",w.params,G.params);else if(w.params?.Decode)G.params=w.params.Decode(G.params);if(w.createQuery?.()?.Check(G.query)===!1)throw new q("query",w.query,G.query);else if(w.query?.Decode)G.query=w.query.Decode(G.query);if(w.createCookie?.()){let I={};for(let[O,P]of Object.entries(G.cookie))I[O]=P.value;if(w.cookie.Check(I)===!1)throw new q("cookie",w.cookie,I);else if(w.cookie?.Decode)I=w.cookie.Decode(I)}if(w.createBody?.()?.Check(Q)===!1)throw new q("body",w.body,Q);else if(w.body?.Decode)G.body=w.body.Decode(Q)}for(let I=0;I<U.beforeHandle.length;I++){const O=U.beforeHandle[I];let P=O.fn(G);if(O.subType==="resolve"){if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);continue}else if(P instanceof Promise)P=await P;if(P!==void 0){G.response=P;for(let T=0;T<U.afterHandle.length;T++){let E=U.afterHandle[T].fn(G);if(E instanceof Promise)E=await E;if(E)P=E}const b=y(P,G.set);if(b)return G.response=b}}let M=B(G);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){const I=M instanceof p?M.code:Y.status?typeof Y.status==="string"?_0[Y.status]:Y.status:200,O=w?.createResponse?.()?.[I];if(O?.Check(M)===!1)throw new q("response",O,M);else if(O?.Decode)M=O.Decode(M)}else{G.response=M;for(let I=0;I<U.afterHandle.length;I++){let O=U.afterHandle[I].fn(G);if(O instanceof Promise)O=await O;const P=y(O,G.set);if(P!==void 0){const b=w?.response?.[P.status];if(b?.Check(P)===!1)throw new q("response",b,P);else if(b?.Decode)M=b.Decode(M);return G.response=P}}}if(G.set.cookie&&z?.sign){const I=!z.secrets?void 0:typeof z.secrets==="string"?z.secrets:z.secrets[0];if(z.sign===!0)for(let[O,P]of Object.entries(G.set.cookie))G.set.cookie[O].value=await x0(P.value,"${secret}");else{const O=w?.cookie?.schema?.properties;for(let P of z.sign){if(!(P in O))continue;if(G.set.cookie[P]?.value)G.set.cookie[P].value=await x0(G.set.cookie[P].value,I)}}}return G.response=x(M,G.set)}catch(K){if(K.status)Y.status=K.status;return $.handleError(G,K)}finally{for(let K of $.event.afterResponse)await K.fn(G)}},A2=($)=>async(W,X)=>{const Z=Object.assign(W,{error:X,code:X.code});Z.set=W.set;for(let j=0;j<$.event.error.length;j++){let Y=$.event.error[j].fn(Z);if(Y instanceof Promise)Y=await Y;if(Y!==void 0&&Y!==null)return W.response=x(Y,W.set)}return new Response(typeof X.cause==="string"?X.cause:X.message,{headers:W.set.headers,status:X.status??500})};import{TypeSystemPolicy as O5}from"@sinclair/typebox/system";class Q0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=R1;version=R1;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 b0(b0(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 M0,ws:new M0,dynamic:new M0,static:{http:{static:{},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 T1;return this._promisedModules}constructor($={}){if($.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if($.nativeStaticResponse===void 0)$.nativeStaticResponse=!0;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,W=Bun?.env??process.env){if(m($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(W)===!1){const Z=new q("env",$,W);throw new Error(Z.all.map((j)=>j.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){const W=F2({globalHook:this.event,localHook:$}),X={events:{global:this.event,local:$},onParse:W("parse"),onTransform:W("transform"),onBeforeHandle:W("beforeHandle"),onAfterHandle:W("afterHandle"),mapResponse:W("mapResponse"),onAfterResponse:W("afterResponse"),onError:W("error")};for(let Z of this.extender.macros)_2(Z.fn(X),$)}}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[W,X]of Object.entries(this.definitions.type))$[W]=m(X);return $}add($,W,X,Z,{allowMeta:j=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(Z=M2(Z),W!==""&&W.charCodeAt(0)!==47)W="/"+W;if(this.config.prefix&&!J&&!this.config.scoped)W=this.config.prefix+W;if(Z?.type)switch(Z.type){case"text":Z.type="text/plain";break;case"json":Z.type="application/json";break;case"formdata":Z.type="multipart/form-data";break;case"urlencoded":Z.type="application/x-www-form-urlencoded";break;case"arrayBuffer":Z.type="application/octet-stream";break;default:break}const Y=this.definitions.type,G=!this.config.aot,K={...this.validator.getCandidate()},B={body:Z?.body??K?.body,headers:Z?.headers??K?.headers,params:Z?.params??K?.params,query:Z?.query??K?.query,cookie:Z?.cookie??K?.cookie,response:Z?.response??K?.response},U=()=>B.cookie?W1({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:G,models:Y}):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:G,models:Y,normalize:w,additionalCoerce:S1()}),headers:m(B.headers,{dynamic:G,models:Y,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:D0()}),params:m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()}),query:m(B.query,{dynamic:G,models:Y,normalize:w,coerce:!0,additionalCoerce:D0()}),cookie:U(),response:$1(B.response,{dynamic:G,models:Y,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:G,models:Y,normalize:w,additionalCoerce:S1()})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:G,models:Y,additionalProperties:!w,coerce:!0,additionalCoerce:D0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:G,models:Y,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=$1(B.response,{dynamic:G,models:Y,normalize:w})}},Q=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(Z=i(Z,K),Z.tags)if(!Z.detail)Z.detail={tags:Z.tags};else Z.detail.tags=Z.tags;if(c(this.config.detail))Z.detail=d(Object.assign({},this.config.detail),Z.detail);this.applyMacro(Z);const z=i(this.event,Z);if(this.config.aot===!1){if(this.router.dynamic.add($,W,{validator:F,hooks:z,content:Z?.type,handle:X}),this.config.strictPath===!1)this.router.dynamic.add($,Q,{validator:F,hooks:z,content:Z?.type,handle:X});this.router.history.push({method:$,path:W,composed:null,handler:X,hooks:z});return}const D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=m0(this.inference),I=typeof X!=="function"?Q2(X,z,this.setHeaders):void 0,O=typeof X!=="function"?Y2(X,z,this.setHeaders):void 0;if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[W]=O();const P=()=>I2({app:this,path:W,method:$,localHook:i(Z),hooks:z,validator:F,handler:X,allowMeta:j,inference:M}),b=D?P():(L)=>{return P()(L)},T=this.router.history.length;if(this.routeTree.has($+W))for(let L=0;L<this.router.history.length;L++){const g=this.router.history[L];if(g.path===W&&g.method===$){const R=this.router.history.splice(L,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+W,T);this.router.history.push({method:$,path:W,composed:b,handler:X,hooks:z});const E=this.router.static.http,r={handler:D?b:void 0,compile:P};if($==="$INTERNALWS"){const L=this.config.strictPath?void 0:W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(W.indexOf(":")===-1&&W.indexOf("*")===-1){const g=E.handlers.length;if(E.handlers.push((R)=>(E.handlers[g]=P())(R)),this.router.static.ws[W]=g,L)this.router.static.ws[L]=g}else if(this.router.ws.add("ws",W,r),L)this.router.ws.add("ws",L,r);return}if(W.indexOf(":")===-1&&W.indexOf("*")===-1){const L=E.handlers.length;if(E.handlers.push(I??((R)=>(E.handlers[L]=P())(R))),!E.map[W])E.map[W]={code:""};const g=I?"":"ctx";if($==="ALL")E.map[W].all=`default: return st[${L}](${g})\n`;else E.map[W].code=`case '${$}': return st[${L}](${g})\n${E.map[W].code}`;if(!this.config.strictPath){if(!E.map[Q])E.map[Q]={code:""};if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[Q]=O();if($==="ALL")E.map[Q].all=`default: return st[${L}](${g})\n`;else E.map[Q].code=`case '${$}': return st[${L}](${g})\n${E.map[Q].code}`}}else if(this.router.http.add($,W,r),!this.config.strictPath){const L=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(this.config.nativeStaticResponse===!0&&I&&($==="GET"||$==="ALL"))this.router.static.http.static[L]=I();this.router.http.add($,L,r)}}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($,W){if(!W)return this.on("parse",$);return this.on($,"parse",W)}onTransform($,W){if(!W)return this.on("transform",$);return this.on($,"transform",W)}resolve($,W){if(!W)W=$,$={as:"local"};const X={subType:"resolve",fn:W};return this.onBeforeHandle($,X)}mapResolve($,W){if(!W)W=$,$={as:"local"};const X={subType:"mapResolve",fn:W};return this.onBeforeHandle($,X)}onBeforeHandle($,W){if(!W)return this.on("beforeHandle",$);return this.on($,"beforeHandle",W)}onAfterHandle($,W){if(!W)return this.on("afterHandle",$);return this.on($,"afterHandle",W)}mapResponse($,W){if(!W)return this.on("mapResponse",$);return this.on($,"mapResponse",W)}onAfterResponse($,W){if(!W)return this.on("afterResponse",$);return this.on($,"afterResponse",W)}trace($,W){if(!W)W=$,$={as:"local"};if(!Array.isArray(W))W=[W];for(let X of W)this.on($,"trace",D2(X));return this}error($,W){switch(typeof $){case"string":return W.prototype[I0]=$,this.definitions.error[$]=W,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[X,Z]of Object.entries($))Z.prototype[I0]=X,this.definitions.error[X]=Z;return this}onError($,W){if(!W)return this.on("error",$);return this.on($,"error",W)}onStop($){return this.on("stop",$),this}on($,W,X){let Z;switch(typeof $){case"string":Z=$,X=W;break;case"object":if(Z=W,!Array.isArray(W)&&typeof W==="object")X=W;break}if(Array.isArray(X))X=n(X);else if(typeof X==="function")X=[{fn:X}];else X=[X];const j=X;for(let J of j)J.scope=typeof $==="string"?"local":$?.as??"local";if(Z!=="trace")r0({[Z]:j.map((J)=>J.fn)},this.inference);for(let J of j){const Y=w2(J,"global",{skipIfHasType:!0});switch(Z){case"start":this.event.start.push(Y);break;case"request":this.event.request.push(Y);break;case"parse":this.event.parse.push(Y);break;case"transform":this.event.transform.push(Y);break;case"beforeHandle":this.event.beforeHandle.push(Y);break;case"afterHandle":this.event.afterHandle.push(Y);break;case"mapResponse":this.event.mapResponse.push(Y);break;case"afterResponse":this.event.afterResponse.push(Y);break;case"trace":this.event.trace.push(Y);break;case"error":this.event.error.push(Y);break;case"stop":this.event.stop.push(Y);break}}return this}propagate(){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 W={plugin:"scoped",global:"global"}[$];if(v(this.event.parse,W),v(this.event.transform,W),v(this.event.beforeHandle,W),v(this.event.afterHandle,W),v(this.event.mapResponse,W),v(this.event.afterResponse,W),v(this.event.trace,W),v(this.event.error,W),$==="plugin")this.validator.scoped=b0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=b0(this.validator.global,b0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,W,X){const Z=new Q0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.getServer=()=>this.getServer(),Z.inference=m0(this.inference),Z.extender={...this.extender};const j=typeof W==="object",J=(j?X:W)(Z);if(this.singleton=d(this.singleton,Z.singleton),this.definitions=d(this.definitions,Z.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(Z.router.history).forEach(({method:Y,path:G,handler:K,hooks:B})=>{if(G=(j?"":this.config.prefix)+$+G,j){const U=W,w=B;this.add(Y,G,K,i(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(Y,G,K,i(B,{error:J.event.error}),{skipPrefix:!0})}),this}guard($,W){if(!W){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 X=new Q0({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.inference=m0(this.inference),X.extender={...this.extender};const Z=W(X);if(this.singleton=d(this.singleton,X.singleton),this.definitions=d(this.definitions,X.definitions),Z.getServer=()=>this.server,Z.event.request.length)this.event.request=[...this.event.request||[],...Z.event.request||[]];if(Z.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...Z.event.mapResponse||[]];return this.model(Z.definitions.type),Object.values(X.router.history).forEach(({method:j,path:J,handler:Y,hooks:G})=>{this.add(j,J,Y,i($,{...G||{},error:!G.error?Z.event.error:Array.isArray(G.error)?[...G.error||{},...Z.event.error||[]]:[G.error,...Z.event.error||[]]}))}),this}use($,W){if(W?.scoped)return this.guard({},(X)=>X.use($));if(Array.isArray($)){let X=this;for(let Z of $)X=this.use(Z);return X}if($ instanceof Promise)return this.promisedModules.add($.then((X)=>{if(typeof X==="function")return X(this);if(X instanceof Q0)return this._use(X).compile();if(typeof X.default==="function")return X.default(this);if(X.default instanceof Q0)return this._use(X.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((X)=>X.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 Q0){J.getServer=()=>this.getServer(),J.getGlobalRoutes=()=>this.getGlobalRoutes(),J.model(this.definitions.type),J.error(this.definitions.error);for(let{method:Y,path:G,handler:K,hooks:B}of Object.values(J.router.history))this.add(Y,G,K,i(B,{error:J.event.error}));return J.compile(),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}const{name:W,seed:X}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);const Z=$.config.scoped;if(Z){if(W){if(!(W in this.dependencies))this.dependencies[W]=[];const J=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:Y})=>J===Y))return this;this.dependencies[W].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((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const j=[];for(let J=0;J<$.extender.macros.length;J++){const Y=this.extender.macros[J];if(j.includes(Y.checksum))$.extender.macros.splice(J,1),J--;j.push(Y.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(Z===!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:i(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:i(J.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),W){if(!(W in this.dependencies))this.dependencies[W]=[];const J=X!==void 0?N0(W+JSON.stringify(X)):0;if(!this.dependencies[W].some(({checksum:Y})=>J===Y))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);J1(this.extender.macros),J1(this.extender.higherOrderFunctions);const j=[];for(let J=0;J<this.extender.higherOrderFunctions.length;J++){const Y=this.extender.higherOrderFunctions[J];if(Y.checksum){if(j.includes(Y.checksum))this.extender.higherOrderFunctions.splice(J,1),J--;j.push(Y.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:Y,hooks:G}of Object.values($.router.history))this.add(j,J,Y,i(G,{error:$.event.error}));if(!Z)if(W){if(!(W in this.dependencies))this.dependencies[W]=[];const j=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:J})=>j===J))return this;this.dependencies[W].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=C1(this.event,L1($.event),j)}else this.event=C1(this.event,L1($.event));return this.validator.global=i(this.validator.global,{...$.validator.global}),this.validator.local=i(this.validator.local,{...$.validator.scoped}),this}macro($){const W={checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(W),this}mount($,W){if($ instanceof Q0||typeof $==="function"||$.length===0||$==="/"){const j=typeof $==="function"?$:$ instanceof Q0?$.compile().fetch:W instanceof Q0?W.compile().fetch:W,J=async({request:Y,path:G})=>{if(Y.method==="GET"||Y.method==="HEAD"||!Y.headers.get("content-type"))return j(new Request(R0(Y.url,G||"/"),Y));return j(new Request(R0(Y.url,G||"/"),{...Y,body:await Y.arrayBuffer()}))};return this.all("/*",J,{type:"none"}),this}const X=$.length;if(W instanceof Q0)W=W.compile().fetch;const Z=async({request:j,path:J})=>{if(j.method==="GET"||j.method==="HEAD"||!j.headers.get("content-type"))return W(new Request(R0(j.url,J.slice(X)||"/"),j));return W(new Request(R0(j.url,J.slice(X)||"/"),{...j,body:await j.arrayBuffer()}))};return this.all($,Z,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),Z,{type:"none"}),this}get($,W,X){return this.add("GET",$,W,X),this}post($,W,X){return this.add("POST",$,W,X),this}put($,W,X){return this.add("PUT",$,W,X),this}patch($,W,X){return this.add("PATCH",$,W,X),this}delete($,W,X){return this.add("DELETE",$,W,X),this}options($,W,X){return this.add("OPTIONS",$,W,X),this}all($,W,X){return this.add("ALL",$,W,X),this}head($,W,X){return this.add("HEAD",$,W,X),this}connect($,W,X){return this.add("CONNECT",$,W,X),this}route($,W,X,Z){return this.add($.toUpperCase(),W,X,Z,Z?.config),this}ws($,W){const X=W.transformMessage?Array.isArray(W.transformMessage)?W.transformMessage:[W.transformMessage]:void 0;let Z=null;const j=m(W?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=m(W?.response,{models:this.definitions.type,normalize:this.config.normalize}),Y=(G)=>{if(typeof G==="string"){const K=G?.charCodeAt(0);if(K===47||K===123)try{G=JSON.parse(G)}catch{}else if(Z1(G))G=+G}if(X?.length)for(let K=0;K<X.length;K++){const B=X[K](G);if(B!==void 0)G=B}return G};return this.route("$INTERNALWS",$,(G)=>{const{set:K,path:B,qi:U,headers:w,query:F,params:Q}=G;if(Z===null)Z=this.getServer();if(Z?.upgrade(G.request,{headers:typeof W.upgrade==="function"?W.upgrade(G):W.upgrade,data:{validator:J,open(z){W.open?.(new g0(z,G))},message:(z,D)=>{const M=Y(D);if(j?.Check(M)===!1)return void z.send(new q("message",j,M).message);W.message?.(new g0(z,G),M)},drain(z){W.drain?.(new g0(z,G))},close(z,D,M){W.close?.(new g0(z,G),D,M)}}}))return;return K.status=400,"Expected a websocket connection"},{beforeHandle:W.beforeHandle,transform:W.transform,headers:W.headers,params:W.params,query:W.query}),this}state($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}const{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.store)this.singleton.store[W]=d(this.singleton.store[W],X,{override:Z==="override"});else this.singleton.store[W]=X;return this}if(X===null)return this;return this.singleton.store=d(this.singleton.store,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X}else this.singleton.store=X(this.singleton.store);return this;default:if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X;return this}}decorate($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}const{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.decorator)this.singleton.decorator[W]=d(this.singleton.decorator[W],X,{override:Z==="override"});else this.singleton.decorator[W]=X;return this}if(X===null)return this;return this.singleton.decorator=d(this.singleton.decorator,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X}else this.singleton.decorator=X(this.singleton.decorator);return this;default:if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X;return this}}derive($,W){if(!W)W=$,$={as:"local"};const X={subType:"derive",fn:W};return this.onTransform($,X)}model($,W){switch(typeof $){case"object":return Object.entries($).forEach(([X,Z])=>{if(!(X in this.definitions.type))this.definitions.type[X]=Z}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=W,this}mapDerive($,W){if(!W)W=$,$={as:"local"};const X={subType:"mapDerive",fn:W};return this.onTransform($,X)}affix($,W,X){if(X==="")return this;const Z=["_","-"," "],j=(K)=>K[0].toUpperCase()+K.slice(1),J=$==="prefix"?(K,B)=>Z.includes(K.at(-1)??"")?K+B:K+j(B):Z.includes(X.at(-1)??"")?(K,B)=>B+K:(K,B)=>B+j(K),Y=(K)=>{const B={};switch(K){case"decorator":for(let U in this.singleton.decorator)B[J(X,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[J(X,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[J(X,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[J(X,U)]=this.definitions.error[U];this.definitions.error=B;break}},G=Array.isArray(W)?W:[W];for(let K of G.some((B)=>B==="all")?["decorator","state","model","error"]:G)Y(K);return this}prefix($,W){return this.affix("prefix",$,W)}suffix($,W){return this.affix("suffix",$,W)}compile(){if(this.fetch=this.config.aot?g1(this):y1(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?g1(this):y1(this))($)};handleError=async($,W)=>(this.handleError=this.config.aot?f1(this):A2(this))($,W);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,W)=>{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(!Z1($))throw new Error("Port must be a numeric value");$=parseInt($)}const X=this.fetch,Z=typeof $==="object"?{development:!p0,reusePort:!0,...this.config.serve||{},...$||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H1||{}},fetch:X,error:this.outerErrorHandler}:{development:!p0,reusePort:!0,...this.config.serve||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H1||{}},port:$,fetch:X,error:this.outerErrorHandler};this.server=Bun?.serve(Z);for(let j=0;j<this.event.start.length;j++)this.event.start[j].fn(this);if(W)W(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 W=0;W<this.event.stop.length;W++)this.event.stop[W].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{V as t,R0 as replaceUrlPath,V1 as replaceSchemaType,d0 as redirect,f as mergeObjectArray,i as mergeHook,o as mapValueError,x as mapResponse,y as mapEarlyResponse,Z0 as mapCompactResponse,m as getSchemaValidator,$1 as getResponseSchemaValidator,S3 as form,q1 as error,Q0 as default,J1 as deduplicateChecksum,m0 as cloneInference,N0 as checksum,q as ValidationError,O5 as TypeSystemPolicy,_0 as StatusMap,Y1 as ParseError,A0 as NotFoundError,X1 as InvertedStatusMap,v0 as InvalidCookieSignature,Q1 as InternalServerError,Q0 as Elysia,I0 as ERROR_CODE,i0 as ELYSIA_TRACE,P0 as ELYSIA_REQUEST_ID,V3 as ELYSIA_FORM_DATA,w0 as Cookie};
523
+ )\n`;let Y=j("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let G=0;G<W.mapResponse.length;G++){let K=W.mapResponse[G],B=Y.resolveChild(K.fn.name);X+=`\ncontext.response = error
524
+ error = ${C0(K)?"await":""} onMapResponse[${G}](context)\n`,B()}return Y.resolve(),X+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",X)({app:$,mapResponse:x,ERROR_CODE:I0,ElysiaCustomStatusResponse:l,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0})};var y2=($)=>async(W)=>{let X=W.url,Z=X.indexOf("/",11),j=X.indexOf("?",Z+1),J=j===-1?X.substring(Z):X.substring(Z,j),Y={cookie:{},status:200,headers:{}},G=Object.assign({},$.singleton.decorator,{set:Y,store:$.singleton.store,request:W,path:J,qi:j,redirect:d0});try{for(let I=0;I<$.event.request.length;I++){let O=$.event.request[I].fn,P=O(G);if(P instanceof Promise)P=await P;if(P=g(P,Y),P)return G.response=P}let K=$.router.dynamic.find(W.method,J)??$.router.dynamic.find("ALL",J);if(!K)throw new A0;let{handle:B,hooks:U,validator:w,content:F}=K.store,Q;if(W.method!=="GET"&&W.method!=="HEAD")if(F)switch(F){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=p0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};let I=await W.formData();for(let O of I.keys()){if(Q[O])continue;let P=I.getAll(O);if(P.length===1)Q[O]=P[0];else Q[O]=P}break}else{let I=W.headers.get("content-type");if(I){let O=I.indexOf(";");if(O!==-1)I=I.slice(0,O);G.contentType=I;for(let P=0;P<U.parse.length;P++){let b=U.parse[P].fn,T=b(G,I);if(T instanceof Promise)T=await T;if(T){Q=T;break}}if(delete G.contentType,Q===void 0)switch(I){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=p0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};let P=await W.formData();for(let b of P.keys()){if(Q[b])continue;let T=P.getAll(b);if(T.length===1)Q[b]=T[0];else Q[b]=T}break}}}G.body=Q,G.params=K?.params||void 0,G.query=j===-1?{}:G2(X.substring(j+1)),G.headers={};for(let[I,O]of W.headers.entries())G.headers[I]=O;let z=Object.assign({},$.config?.cookie,w?.cookie?.config),D=W.headers.get("cookie");G.cookie=await e0(G.set,D,z?{secrets:z.secrets!==void 0?typeof z.secrets==="string"?z.secrets:z.secrets.join(","):void 0,sign:z.sign===!0?!0:z.sign!==void 0?typeof z.sign==="string"?z.sign:z.sign.join(","):void 0}:void 0);for(let I=0;I<U.transform.length;I++){let O=U.transform[I],P=O.fn(G);if(O.subType==="derive")if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);else if(P instanceof Promise)await P}if(w){if(w.createHeaders?.()){let I={};for(let O in W.headers)I[O]=W.headers.get(O);if(w.headers.Check(I)===!1)throw new q("header",w.headers,I)}else if(w.headers?.Decode)G.headers=w.headers.Decode(G.headers);if(w.createParams?.()?.Check(G.params)===!1)throw new q("params",w.params,G.params);else if(w.params?.Decode)G.params=w.params.Decode(G.params);if(w.createQuery?.()?.Check(G.query)===!1)throw new q("query",w.query,G.query);else if(w.query?.Decode)G.query=w.query.Decode(G.query);if(w.createCookie?.()){let I={};for(let[O,P]of Object.entries(G.cookie))I[O]=P.value;if(w.cookie.Check(I)===!1)throw new q("cookie",w.cookie,I);else if(w.cookie?.Decode)I=w.cookie.Decode(I)}if(w.createBody?.()?.Check(Q)===!1)throw new q("body",w.body,Q);else if(w.body?.Decode)G.body=w.body.Decode(Q)}for(let I=0;I<U.beforeHandle.length;I++){let O=U.beforeHandle[I],P=O.fn(G);if(O.subType==="resolve"){if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);continue}else if(P instanceof Promise)P=await P;if(P!==void 0){G.response=P;for(let T=0;T<U.afterHandle.length;T++){let E=U.afterHandle[T].fn(G);if(E instanceof Promise)E=await E;if(E)P=E}let b=g(P,G.set);if(b)return G.response=b}}let M=B(G);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){let I=M instanceof l?M.code:Y.status?typeof Y.status==="string"?_0[Y.status]:Y.status:200,O=w?.createResponse?.()?.[I];if(O?.Check(M)===!1)throw new q("response",O,M);else if(O?.Decode)M=O.Decode(M)}else{G.response=M;for(let I=0;I<U.afterHandle.length;I++){let O=U.afterHandle[I].fn(G);if(O instanceof Promise)O=await O;let P=g(O,G.set);if(P!==void 0){let b=w?.response?.[P.status];if(b?.Check(P)===!1)throw new q("response",b,P);else if(b?.Decode)M=b.Decode(M);return G.response=P}}}if(G.set.cookie&&z?.sign){let I=!z.secrets?void 0:typeof z.secrets==="string"?z.secrets:z.secrets[0];if(z.sign===!0)for(let[O,P]of Object.entries(G.set.cookie))G.set.cookie[O].value=await x0(P.value,"${secret}");else{let O=w?.cookie?.schema?.properties;for(let P of z.sign){if(!(P in O))continue;if(G.set.cookie[P]?.value)G.set.cookie[P].value=await x0(G.set.cookie[P].value,I)}}}return G.response=x(M,G.set)}catch(K){if(K.status)Y.status=K.status;return $.handleError(G,K)}finally{for(let K of $.event.afterResponse)await K.fn(G)}},A1=($)=>async(W,X)=>{let Z=Object.assign(W,{error:X,code:X.code});Z.set=W.set;for(let j=0;j<$.event.error.length;j++){let Y=$.event.error[j].fn(Z);if(Y instanceof Promise)Y=await Y;if(Y!==void 0&&Y!==null)return W.response=x(Y,W.set)}return new Response(typeof X.cause==="string"?X.cause:X.message,{headers:W.set.headers,status:X.status??500})};import{TypeSystemPolicy as O5}from"@sinclair/typebox/system";class Q0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=R2;version=R2;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 b0(b0(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 M0,ws:new M0,dynamic:new M0,static:{http:{static:{},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 T2;return this._promisedModules}constructor($={}){if($.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if($.nativeStaticResponse===void 0)$.nativeStaticResponse=!0;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,W=Bun?.env??process.env){if(m($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(W)===!1){let Z=new q("env",$,W);throw new Error(Z.all.map((j)=>j.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){let W=F1({globalHook:this.event,localHook:$}),X={events:{global:this.event,local:$},onParse:W("parse"),onTransform:W("transform"),onBeforeHandle:W("beforeHandle"),onAfterHandle:W("afterHandle"),mapResponse:W("mapResponse"),onAfterResponse:W("afterResponse"),onError:W("error")};for(let Z of this.extender.macros)_1(Z.fn(X),$)}}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(){let $={};for(let[W,X]of Object.entries(this.definitions.type))$[W]=m(X);return $}add($,W,X,Z,{allowMeta:j=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(Z=M1(Z),W!==""&&W.charCodeAt(0)!==47)W="/"+W;if(this.config.prefix&&!J&&!this.config.scoped)W=this.config.prefix+W;if(Z?.type)switch(Z.type){case"text":Z.type="text/plain";break;case"json":Z.type="application/json";break;case"formdata":Z.type="multipart/form-data";break;case"urlencoded":Z.type="application/x-www-form-urlencoded";break;case"arrayBuffer":Z.type="application/octet-stream";break;default:break}let Y=this.definitions.type,G=!this.config.aot,K={...this.validator.getCandidate()},B={body:Z?.body??K?.body,headers:Z?.headers??K?.headers,params:Z?.params??K?.params,query:Z?.query??K?.query,cookie:Z?.cookie??K?.cookie,response:Z?.response??K?.response},U=()=>B.cookie?W2({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:G,models:Y}):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:G,models:Y,normalize:w,additionalCoerce:S2()}),headers:m(B.headers,{dynamic:G,models:Y,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:D0()}),params:m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()}),query:m(B.query,{dynamic:G,models:Y,normalize:w,coerce:!0,additionalCoerce:D0()}),cookie:U(),response:$2(B.response,{dynamic:G,models:Y,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:G,models:Y,normalize:w,additionalCoerce:S2()})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:G,models:Y,additionalProperties:!w,coerce:!0,additionalCoerce:D0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:G,models:Y,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=$2(B.response,{dynamic:G,models:Y,normalize:w})}},Q=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(Z=i(Z,K),Z.tags)if(!Z.detail)Z.detail={tags:Z.tags};else Z.detail.tags=Z.tags;if(c(this.config.detail))Z.detail=d(Object.assign({},this.config.detail),Z.detail);this.applyMacro(Z);let z=i(this.event,Z);if(this.config.aot===!1){if(this.router.dynamic.add($,W,{validator:F,hooks:z,content:Z?.type,handle:X}),this.config.strictPath===!1)this.router.dynamic.add($,Q,{validator:F,hooks:z,content:Z?.type,handle:X});this.router.history.push({method:$,path:W,composed:null,handler:X,hooks:z});return}let D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=m0(this.inference),I=typeof X!=="function"?Q1(X,z,this.setHeaders):void 0,O=typeof X!=="function"?Y1(X,z,this.setHeaders):void 0;if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[W]=O();let P=()=>I1({app:this,path:W,method:$,localHook:i(Z),hooks:z,validator:F,handler:X,allowMeta:j,inference:M}),b=D?P():(L)=>{return P()(L)},T=this.router.history.length;if(this.routeTree.has($+W))for(let L=0;L<this.router.history.length;L++){let f=this.router.history[L];if(f.path===W&&f.method===$){let R=this.router.history.splice(L,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+W,T);this.router.history.push({method:$,path:W,composed:b,handler:X,hooks:z});let E=this.router.static.http,r={handler:D?b:void 0,compile:P};if($==="$INTERNALWS"){let L=this.config.strictPath?void 0:W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(W.indexOf(":")===-1&&W.indexOf("*")===-1){let f=E.handlers.length;if(E.handlers.push((R)=>(E.handlers[f]=P())(R)),this.router.static.ws[W]=f,L)this.router.static.ws[L]=f}else if(this.router.ws.add("ws",W,r),L)this.router.ws.add("ws",L,r);return}if(W.indexOf(":")===-1&&W.indexOf("*")===-1){let L=E.handlers.length;if(E.handlers.push(I??((R)=>(E.handlers[L]=P())(R))),!E.map[W])E.map[W]={code:""};let f=I?"":"ctx";if($==="ALL")E.map[W].all=`default: return st[${L}](${f})\n`;else E.map[W].code=`case '${$}': return st[${L}](${f})\n${E.map[W].code}`;if(!this.config.strictPath){if(!E.map[Q])E.map[Q]={code:""};if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[Q]=O();if($==="ALL")E.map[Q].all=`default: return st[${L}](${f})\n`;else E.map[Q].code=`case '${$}': return st[${L}](${f})\n${E.map[Q].code}`}}else if(this.router.http.add($,W,r),!this.config.strictPath){let L=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(this.config.nativeStaticResponse===!0&&I&&($==="GET"||$==="ALL"))this.router.static.http.static[L]=I();this.router.http.add($,L,r)}}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($,W){if(!W)return this.on("parse",$);return this.on($,"parse",W)}onTransform($,W){if(!W)return this.on("transform",$);return this.on($,"transform",W)}resolve($,W){if(!W)W=$,$={as:"local"};let X={subType:"resolve",fn:W};return this.onBeforeHandle($,X)}mapResolve($,W){if(!W)W=$,$={as:"local"};let X={subType:"mapResolve",fn:W};return this.onBeforeHandle($,X)}onBeforeHandle($,W){if(!W)return this.on("beforeHandle",$);return this.on($,"beforeHandle",W)}onAfterHandle($,W){if(!W)return this.on("afterHandle",$);return this.on($,"afterHandle",W)}mapResponse($,W){if(!W)return this.on("mapResponse",$);return this.on($,"mapResponse",W)}onAfterResponse($,W){if(!W)return this.on("afterResponse",$);return this.on($,"afterResponse",W)}trace($,W){if(!W)W=$,$={as:"local"};if(!Array.isArray(W))W=[W];for(let X of W)this.on($,"trace",D1(X));return this}error($,W){switch(typeof $){case"string":return W.prototype[I0]=$,this.definitions.error[$]=W,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[X,Z]of Object.entries($))Z.prototype[I0]=X,this.definitions.error[X]=Z;return this}onError($,W){if(!W)return this.on("error",$);return this.on($,"error",W)}onStop($){return this.on("stop",$),this}on($,W,X){let Z;switch(typeof $){case"string":Z=$,X=W;break;case"object":if(Z=W,!Array.isArray(W)&&typeof W==="object")X=W;break}if(Array.isArray(X))X=n(X);else if(typeof X==="function")X=[{fn:X}];else X=[X];let j=X;for(let J of j)J.scope=typeof $==="string"?"local":$?.as??"local";if(Z!=="trace")r0({[Z]:j.map((J)=>J.fn)},this.inference);for(let J of j){let Y=w1(J,"global",{skipIfHasType:!0});switch(Z){case"start":this.event.start.push(Y);break;case"request":this.event.request.push(Y);break;case"parse":this.event.parse.push(Y);break;case"transform":this.event.transform.push(Y);break;case"beforeHandle":this.event.beforeHandle.push(Y);break;case"afterHandle":this.event.afterHandle.push(Y);break;case"mapResponse":this.event.mapResponse.push(Y);break;case"afterResponse":this.event.afterResponse.push(Y);break;case"trace":this.event.trace.push(Y);break;case"error":this.event.error.push(Y);break;case"stop":this.event.stop.push(Y);break}}return this}propagate(){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($){let W={plugin:"scoped",global:"global"}[$];if(v(this.event.parse,W),v(this.event.transform,W),v(this.event.beforeHandle,W),v(this.event.afterHandle,W),v(this.event.mapResponse,W),v(this.event.afterResponse,W),v(this.event.trace,W),v(this.event.error,W),$==="plugin")this.validator.scoped=b0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=b0(this.validator.global,b0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,W,X){let Z=new Q0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.getServer=()=>this.getServer(),Z.inference=m0(this.inference),Z.extender={...this.extender};let j=typeof W==="object",J=(j?X:W)(Z);if(this.singleton=d(this.singleton,Z.singleton),this.definitions=d(this.definitions,Z.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(Z.router.history).forEach(({method:Y,path:G,handler:K,hooks:B})=>{if(G=(j?"":this.config.prefix)+$+G,j){let U=W,w=B;this.add(Y,G,K,i(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(Y,G,K,i(B,{error:J.event.error}),{skipPrefix:!0})}),this}guard($,W){if(!W){if(typeof $==="object"){this.applyMacro($);let 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({},$)}let X=new Q0({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.inference=m0(this.inference),X.extender={...this.extender};let Z=W(X);if(this.singleton=d(this.singleton,X.singleton),this.definitions=d(this.definitions,X.definitions),Z.getServer=()=>this.server,Z.event.request.length)this.event.request=[...this.event.request||[],...Z.event.request||[]];if(Z.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...Z.event.mapResponse||[]];return this.model(Z.definitions.type),Object.values(X.router.history).forEach(({method:j,path:J,handler:Y,hooks:G})=>{this.add(j,J,Y,i($,{...G||{},error:!G.error?Z.event.error:Array.isArray(G.error)?[...G.error||{},...Z.event.error||[]]:[G.error,...Z.event.error||[]]}))}),this}use($,W){if(W?.scoped)return this.guard({},(X)=>X.use($));if(Array.isArray($)){let X=this;for(let Z of $)X=this.use(Z);return X}if($ instanceof Promise)return this.promisedModules.add($.then((X)=>{if(typeof X==="function")return X(this);if(X instanceof Q0)return this._use(X).compile();if(typeof X.default==="function")return X.default(this);if(X.default instanceof Q0)return this._use(X.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((X)=>X.compile())),this;return this._use($)}_use($){if(typeof $==="function"){let j=$(this);if(j instanceof Promise)return this.promisedModules.add(j.then((J)=>{if(J instanceof Q0){J.getServer=()=>this.getServer(),J.getGlobalRoutes=()=>this.getGlobalRoutes(),J.model(this.definitions.type),J.error(this.definitions.error);for(let{method:Y,path:G,handler:K,hooks:B}of Object.values(J.router.history))this.add(Y,G,K,i(B,{error:J.event.error}));return J.compile(),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}let{name:W,seed:X}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);let Z=$.config.scoped;if(Z){if(W){if(!(W in this.dependencies))this.dependencies[W]=[];let J=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:Y})=>J===Y))return this;this.dependencies[W].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((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);let j=[];for(let J=0;J<$.extender.macros.length;J++){let Y=this.extender.macros[J];if(j.includes(Y.checksum))$.extender.macros.splice(J,1),J--;j.push(Y.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(Z===!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:i(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:i(J.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),W){if(!(W in this.dependencies))this.dependencies[W]=[];let J=X!==void 0?N0(W+JSON.stringify(X)):0;if(!this.dependencies[W].some(({checksum:Y})=>J===Y))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);J2(this.extender.macros),J2(this.extender.higherOrderFunctions);let j=[];for(let J=0;J<this.extender.higherOrderFunctions.length;J++){let Y=this.extender.higherOrderFunctions[J];if(Y.checksum){if(j.includes(Y.checksum))this.extender.higherOrderFunctions.splice(J,1),J--;j.push(Y.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:Y,hooks:G}of Object.values($.router.history))this.add(j,J,Y,i(G,{error:$.event.error}));if(!Z)if(W){if(!(W in this.dependencies))this.dependencies[W]=[];let j=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:J})=>j===J))return this;this.dependencies[W].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=C2(this.event,L2($.event),j)}else this.event=C2(this.event,L2($.event));return this.validator.global=i(this.validator.global,{...$.validator.global}),this.validator.local=i(this.validator.local,{...$.validator.scoped}),this}macro($){let W={checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(W),this}mount($,W){if($ instanceof Q0||typeof $==="function"||$.length===0||$==="/"){let j=typeof $==="function"?$:$ instanceof Q0?$.compile().fetch:W instanceof Q0?W.compile().fetch:W,J=async({request:Y,path:G})=>{if(Y.method==="GET"||Y.method==="HEAD"||!Y.headers.get("content-type"))return j(new Request(R0(Y.url,G||"/"),Y));return j(new Request(R0(Y.url,G||"/"),{...Y,body:await Y.arrayBuffer()}))};return this.all("/*",J,{type:"none"}),this}let X=$.length;if(W instanceof Q0)W=W.compile().fetch;let Z=async({request:j,path:J})=>{if(j.method==="GET"||j.method==="HEAD"||!j.headers.get("content-type"))return W(new Request(R0(j.url,J.slice(X)||"/"),j));return W(new Request(R0(j.url,J.slice(X)||"/"),{...j,body:await j.arrayBuffer()}))};return this.all($,Z,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),Z,{type:"none"}),this}get($,W,X){return this.add("GET",$,W,X),this}post($,W,X){return this.add("POST",$,W,X),this}put($,W,X){return this.add("PUT",$,W,X),this}patch($,W,X){return this.add("PATCH",$,W,X),this}delete($,W,X){return this.add("DELETE",$,W,X),this}options($,W,X){return this.add("OPTIONS",$,W,X),this}all($,W,X){return this.add("ALL",$,W,X),this}head($,W,X){return this.add("HEAD",$,W,X),this}connect($,W,X){return this.add("CONNECT",$,W,X),this}route($,W,X,Z){return this.add($.toUpperCase(),W,X,Z,Z?.config),this}ws($,W){let X=W.transformMessage?Array.isArray(W.transformMessage)?W.transformMessage:[W.transformMessage]:void 0,Z=null,j=m(W?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=m(W?.response,{models:this.definitions.type,normalize:this.config.normalize}),Y=(G)=>{if(typeof G==="string"){let K=G?.charCodeAt(0);if(K===47||K===123)try{G=JSON.parse(G)}catch{}else if(Z2(G))G=+G}if(X?.length)for(let K=0;K<X.length;K++){let B=X[K](G);if(B!==void 0)G=B}return G};return this.route("$INTERNALWS",$,(G)=>{let{set:K,path:B,qi:U,headers:w,query:F,params:Q}=G;if(Z===null)Z=this.getServer();if(Z?.upgrade(G.request,{headers:typeof W.upgrade==="function"?W.upgrade(G):W.upgrade,data:{validator:J,open(z){W.open?.(new g0(z,G))},message:(z,D)=>{let M=Y(D);if(j?.Check(M)===!1)return void z.send(new q("message",j,M).message);W.message?.(new g0(z,G),M)},drain(z){W.drain?.(new g0(z,G))},close(z,D,M){W.close?.(new g0(z,G),D,M)}}}))return;return K.status=400,"Expected a websocket connection"},{beforeHandle:W.beforeHandle,transform:W.transform,headers:W.headers,params:W.params,query:W.query}),this}state($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}let{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.store)this.singleton.store[W]=d(this.singleton.store[W],X,{override:Z==="override"});else this.singleton.store[W]=X;return this}if(X===null)return this;return this.singleton.store=d(this.singleton.store,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X}else this.singleton.store=X(this.singleton.store);return this;default:if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X;return this}}decorate($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}let{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.decorator)this.singleton.decorator[W]=d(this.singleton.decorator[W],X,{override:Z==="override"});else this.singleton.decorator[W]=X;return this}if(X===null)return this;return this.singleton.decorator=d(this.singleton.decorator,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X}else this.singleton.decorator=X(this.singleton.decorator);return this;default:if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X;return this}}derive($,W){if(!W)W=$,$={as:"local"};let X={subType:"derive",fn:W};return this.onTransform($,X)}model($,W){switch(typeof $){case"object":return Object.entries($).forEach(([X,Z])=>{if(!(X in this.definitions.type))this.definitions.type[X]=Z}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=W,this}mapDerive($,W){if(!W)W=$,$={as:"local"};let X={subType:"mapDerive",fn:W};return this.onTransform($,X)}affix($,W,X){if(X==="")return this;let Z=["_","-"," "],j=(K)=>K[0].toUpperCase()+K.slice(1),J=$==="prefix"?(K,B)=>Z.includes(K.at(-1)??"")?K+B:K+j(B):Z.includes(X.at(-1)??"")?(K,B)=>B+K:(K,B)=>B+j(K),Y=(K)=>{let B={};switch(K){case"decorator":for(let U in this.singleton.decorator)B[J(X,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[J(X,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[J(X,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[J(X,U)]=this.definitions.error[U];this.definitions.error=B;break}},G=Array.isArray(W)?W:[W];for(let K of G.some((B)=>B==="all")?["decorator","state","model","error"]:G)Y(K);return this}prefix($,W){return this.affix("prefix",$,W)}suffix($,W){return this.affix("suffix",$,W)}compile(){if(this.fetch=this.config.aot?g2(this):y2(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?g2(this):y2(this))($)};handleError=async($,W)=>(this.handleError=this.config.aot?f2(this):A1(this))($,W);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,W)=>{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(!Z2($))throw new Error("Port must be a numeric value");$=parseInt($)}let X=this.fetch,Z=typeof $==="object"?{development:!l0,reusePort:!0,...this.config.serve||{},...$||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H2||{}},fetch:X,error:this.outerErrorHandler}:{development:!l0,reusePort:!0,...this.config.serve||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H2||{}},port:$,fetch:X,error:this.outerErrorHandler};this.server=Bun?.serve(Z);for(let j=0;j<this.event.start.length;j++)this.event.start[j].fn(this);if(W)W(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 W=0;W<this.event.stop.length;W++)this.event.stop[W].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{V as t,R0 as replaceUrlPath,V2 as replaceSchemaType,d0 as redirect,y as mergeObjectArray,i as mergeHook,o as mapValueError,x as mapResponse,g as mapEarlyResponse,Z0 as mapCompactResponse,m as getSchemaValidator,$2 as getResponseSchemaValidator,S3 as form,q2 as error,Q0 as default,J2 as deduplicateChecksum,m0 as cloneInference,N0 as checksum,q as ValidationError,O5 as TypeSystemPolicy,_0 as StatusMap,Y2 as ParseError,A0 as NotFoundError,X2 as InvertedStatusMap,v0 as InvalidCookieSignature,Q2 as InternalServerError,Q0 as Elysia,I0 as ERROR_CODE,i0 as ELYSIA_TRACE,P0 as ELYSIA_REQUEST_ID,V3 as ELYSIA_FORM_DATA,w0 as Cookie};
525
525
 
526
- //# debugId=FBD17A4A3E47E0AF64756E2164756E21
526
+ //# debugId=06C4D7F8AD2D044064756E2164756E21