elysia 1.1.7 → 1.1.8

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,57 +1,57 @@
1
1
  // @bun
2
- var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames:S1}=Object;var T1=Object.prototype.hasOwnProperty;var _j=(j,$,W)=>{W=j!=null?I1(A1(j)):{};const X=$||!j||!j.__esModule?gj(W,"default",{value:j,enumerable:!0}):W;for(let Z of S1(j))if(!T1.call(X,Z))gj(X,Z,{get:()=>j[Z],enumerable:!0});return X};var L1=(j,$)=>()=>($||j(($={exports:{}}).exports,$),$.exports);var o0=L1((W3,oj)=>{function K2(j){var $=j.indexOf("%");if($===-1)return j;var W=j.length,X="",Z=0,J=0,Q=$,Y=rj;while($>-1&&$<W){var B=aj(j[$+1],4),K=aj(j[$+2],0),U=B|K,_=Pj[U];if(Y=Pj[256+Y+_],J=J<<6|U&Pj[364+_],Y===rj)X+=j.slice(Z,Q),X+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,Z=$+3,$=Q=j.indexOf("%",Z);else if(Y===Y2)return null;else{if($+=3,$<W&&j.charCodeAt($)===37)continue;return null}}return X+j.slice(Z)}function aj(j,$){var W=B2[j];return W===void 0?255:W<<$}var rj=12,Y2=0,Pj=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],B2={"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};oj.exports=K2});var q0=(j,$)=>{const W=$?.length?{}:null;if(W)for(let X of $)W[X.part.charCodeAt(0)]=X;return{part:j,store:null,inert:W,params:null,wildcardStore:null}},yj=(j,$)=>({...j,part:$}),fj=(j)=>({name:j,store:null,inert:null});class M0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add(j,$,W,{ignoreError:X=!1,ignoreHistory:Z=!1}={}){if(typeof $!=="string")throw new TypeError("Route path must be a string");if($==="")$="/";else if($[0]!=="/")$=`/${$}`;const J=$[$.length-1]==="*",Q=$.match(M0.regex.optionalParams);if(Q){const _=$.replaceAll("?","");this.add(j,_,W,{ignoreError:X});for(let M=0;M<Q.length;M++){let G=$.replace("/"+Q[M],"");this.add(j,G,W,{ignoreError:!0})}return W}if(Q)$=$.replaceAll("?","");if(this.history.find(([_,M,G])=>_===j&&M===$))return W;if(J||Q&&$.charCodeAt($.length-1)===63)$=$.slice(0,-1);if(!Z)this.history.push([j,$,W]);const Y=$.split(M0.regex.static),B=$.match(M0.regex.params)||[];if(Y[Y.length-1]==="")Y.pop();let K;if(!this.root[j])K=this.root[j]=q0("/");else K=this.root[j];let U=0;for(let _=0;_<Y.length;++_){let M=Y[_];if(_>0){const G=B[U++].slice(1);if(K.params===null)K.params=fj(G);else if(K.params.name!==G)if(X)return W;else throw new Error(`Cannot create route "${$}" with parameter "${G}" because a route already exists with a different parameter name ("${K.params.name}") in the same location`);const w=K.params;if(w.inert===null){K=w.inert=q0(M);continue}K=w.inert}for(let G=0;;){if(G===M.length){if(G<K.part.length){const w=yj(K,K.part.slice(G));Object.assign(K,q0(M,[w]))}break}if(G===K.part.length){if(K.inert===null)K.inert={};const w=K.inert[M.charCodeAt(G)];if(w){K=w,M=M.slice(G),G=0;continue}const F=q0(M.slice(G));K.inert[M.charCodeAt(G)]=F,K=F;break}if(M[G]!==K.part[G]){const w=yj(K,K.part.slice(G)),F=q0(M.slice(G));Object.assign(K,q0(K.part.slice(0,G),[w,F])),K=F;break}++G}}if(U<B.length){const _=B[U].slice(1);if(K.params===null)K.params=fj(_);else if(K.params.name!==_)if(X)return W;else throw new Error(`Cannot create route "${$}" with parameter "${_}" because a route already exists with a different parameter name ("${K.params.name}") in the same location`);if(K.params.store===null)K.params.store=W;return K.params.store}if(J){if(K.wildcardStore===null)K.wildcardStore=W;return K.wildcardStore}if(K.store===null)K.store=W;return K.store}find(j,$){const W=this.root[j];if(!W)return null;return wj($,$.length,W,0)}}var wj=(j,$,W,X)=>{const Z=W.part,J=Z.length,Q=X+J;if(J>1){if(Q>$)return null;if(J<15){for(let Y=1,B=X+1;Y<J;++Y,++B)if(Z.charCodeAt(Y)!==j.charCodeAt(B))return null}else if(j.slice(X,Q)!==Z)return null}if(Q===$){if(W.store!==null)return{store:W.store,params:{}};if(W.wildcardStore!==null)return{store:W.wildcardStore,params:{"*":""}};return null}if(W.inert!==null){const Y=W.inert[j.charCodeAt(Q)];if(Y!==void 0){const B=wj(j,$,Y,Q);if(B!==null)return B}}if(W.params!==null){const{store:Y,name:B,inert:K}=W.params,U=j.indexOf("/",Q);if(U!==Q){if(U===-1||U>=$){if(Y!==null){const _={};return _[B]=j.substring(Q,$),{store:Y,params:_}}}else if(K!==null){const _=wj(j,$,K,U);if(_!==null)return _.params[B]=j.substring(Q,U),_}}}if(W.wildcardStore!==null)return{store:W.wildcardStore,params:{"*":j.substring(Q,$)}};return null};var H0=(j)=>{const $=typeof j==="object"?j.fn.toString():typeof j==="string"?j.toString():j,W=$.indexOf(")");if($.charCodeAt(W+2)===61&&$.charCodeAt(W+5)!==123)return!0;return $.includes("return")},q1=(j)=>{if(j.startsWith("async"))j=j.slice(5);j=j.trimStart();let $=-1;if(j.charCodeAt(0)===40){if($=j.indexOf("=>",j.indexOf(")")),$!==-1){let Z=$;while(Z>0)if(j.charCodeAt(--Z)===41)break;let J=j.slice($+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[j.slice(1,Z),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if(j.startsWith("function")){$=j.indexOf("(");const Z=j.indexOf(")");return[j.slice($+1,Z),j.slice(Z+2),{isArrowReturn:!1}]}const W=j.indexOf("(");if(W!==-1){const Z=j.indexOf("\n",2),J=j.slice(0,Z),Q=J.lastIndexOf(")")+1,Y=j.slice(Z+1);return[J.slice(W,Q),"{"+Y,{isArrowReturn:!1}]}const X=j.split("\n",2);return[X[0],X[1],{isArrowReturn:!1}]},H1=(j)=>{const $=j.indexOf("{");if($===-1)return[-1,0];let W=$+1,X=1;for(;W<j.length;W++){const Z=j.charCodeAt(W);if(Z===123)X++;else if(Z===125)X--;if(X===0)break}if(X!==0)return[0,j.length];return[$,W+1]},E1=(j)=>{const $=j.lastIndexOf("}");if($===-1)return[-1,0];let W=$-1,X=1;for(;W>=0;W--){const Z=j.charCodeAt(W);if(Z===125)X++;else if(Z===123)X--;if(X===0)break}if(X!==0)return[-1,0];return[W,$+1]},vj=(j)=>{while(!0){const $=j.indexOf(":");if($===-1)break;let W=j.indexOf(",",$);if(W===-1)W=j.indexOf("}",$)-1;if(W===-2)W=j.length;j=j.slice(0,$)+j.slice(W)}return j},kj=(j)=>{let $=!1;if(j.charCodeAt(0)===40)j=j.slice(1,-1);if(j.charCodeAt(0)===123)$=!0,j=j.slice(1,-1);j=j.replace(/( |\t|\n)/g,"").trim();let W=[];while(!0){let[Z,J]=H1(j);if(Z===-1)break;if(W.push(j.slice(0,Z-1)),j.charCodeAt(J)===44)J++;j=j.slice(J)}if(j=vj(j),j)W=W.concat(j.split(","));const X=[];for(let Z of W){if(Z.indexOf(",")===-1){X.push(Z);continue}for(let J of Z.split(","))X.push(J.trim())}return W=X,{hasParenthesis:$,parameters:W}},b1=(j,$)=>{const{parameters:W,hasParenthesis:X}=kj(j);if(!$.query&&W.includes("query"))$.query=!0;if(!$.headers&&W.includes("headers"))$.headers=!0;if(!$.body&&W.includes("body"))$.body=!0;if(!$.cookie&&W.includes("cookie"))$.cookie=!0;if(!$.set&&W.includes("set"))$.set=!0;if(!$.server&&W.includes("server"))$.server=!0;if(X)return`{ ${W.join(", ")} }`;return W.join(", ")},R1=(j,$,W)=>{const X=$.indexOf(j+"\n",W),Z=$.indexOf(j+"\t",W),J=$.indexOf(j+",",W),Q=$.indexOf(j+";",W),Y=$.indexOf(j+" ",W);return[X,Z,J,Q,Y].filter((B)=>B>0).sort((B,K)=>B-K)[0]||-1};var hj=(j,$,W=0)=>{if(W>5)return[];const X=[];let Z=$;while(!0){let J=R1(" = "+j,Z);if(J===-1){const B=Z.indexOf(" = "+j);if(B+3+j.length!==Z.length)break;J=B}const Q=Z.slice(0,J);let Y=Q.slice(Q.lastIndexOf(" ")+1);if(Y==="}"){const[B,K]=E1(Q);X.push(vj(Z.slice(B,K))),Z=Z.slice(J+3+j.length);continue}while(Y.charCodeAt(0)===44)Y=Y.slice(1);while(Y.charCodeAt(0)===9)Y=Y.slice(1);if(!Y.includes("("))X.push(Y);Z=Z.slice(J+3+j.length)}for(let J of X){if(J.charCodeAt(0)===123)continue;const Q=hj(J,$);if(Q.length>0)X.push(...Q)}return X},x1=(j)=>{if(!j)return;if(j.charCodeAt(0)!==123)return j;if(j=j.slice(2,-2),!j.includes(",")){if(j.includes("..."))return j.slice(j.indexOf("...")+3);return}const W=j.indexOf("...");if(W===-1)return;return j.slice(W+3).trimEnd()},g1=(j,$,W)=>{const X=(Z,J)=>j.includes(J+"."+Z)||j.includes(J+'["'+Z+'"]')||j.includes(J+"['"+Z+"']");for(let Z of $){if(!Z)continue;if(Z.charCodeAt(0)===123){const J=kj(Z).parameters;if(!W.query&&J.includes("query"))W.query=!0;if(!W.headers&&J.includes("headers"))W.headers=!0;if(!W.body&&J.includes("body"))W.body=!0;if(!W.cookie&&J.includes("cookie"))W.cookie=!0;if(!W.set&&J.includes("set"))W.set=!0;if(!W.query&&J.includes("server"))W.server=!0;continue}if(!W.query&&X("query",Z))W.query=!0;if(j.includes("return "+Z)||j.includes("return "+Z+".query"))W.query=!0;if(!W.headers&&X("headers",Z))W.headers=!0;if(!W.body&&X("body",Z))W.body=!0;if(!W.cookie&&X("cookie",Z))W.cookie=!0;if(!W.set&&X("set",Z))W.set=!0;if(!W.server&&X("server",Z))W.server=!0;if(W.query&&W.headers&&W.body&&W.cookie&&W.set&&W.server)break}return $};var y1=(j,$,W)=>{try{const X=new RegExp(`(?:\\w)\\((?:.*)?${j}`,"gs");X.test($);const Z=$.charCodeAt(X.lastIndex);if(Z===41||Z===44)return W.query=!0,W.headers=!0,W.body=!0,W.cookie=!0,W.set=!0,W.server=!0,!0;return!1}catch(X){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($),console.log("--- context ---"),console.log(j),!0}},s0=(j,$={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const W=[];if(j.handler&&typeof j.handler==="function")W.push(j.handler);if(j.request?.length)W.push(...j.request);if(j.beforeHandle?.length)W.push(...j.beforeHandle);if(j.parse?.length)W.push(...j.parse);if(j.error?.length)W.push(...j.error);if(j.transform?.length)W.push(...j.transform);if(j.afterHandle?.length)W.push(...j.afterHandle);if(j.mapResponse?.length)W.push(...j.mapResponse);if(j.afterResponse?.length)W.push(...j.afterResponse);for(let X of W){if(!X)continue;const Z="fn"in X?X.fn:X,[J,Q,{isArrowReturn:Y}]=q1(Z.toString()),B=b1(J,$),K=x1(B);if(K){const U=hj(K,Q);if(U.splice(0,-1,K),!y1(K,Q,$))g1(Q,U,$);if(!$.query&&Q.includes("return "+K+".query"))$.query=!0}if($.query&&$.headers&&$.body&&$.cookie&&$.set&&$.server)break}return $};import{Value as c0}from"@sinclair/typebox/value";import{Kind as b0,TransformKind as Z1}from"@sinclair/typebox";import{Value as $0}from"@sinclair/typebox/value";import{TypeCompiler as Q1}from"@sinclair/typebox/compiler";import{TypeRegistry as ij}from"@sinclair/typebox";import{TypeSystem as E0}from"@sinclair/typebox/system";import{Type as v0,FormatRegistry as o}from"@sinclair/typebox";import{TypeCompiler as lj}from"@sinclair/typebox/compiler";import{Value as a}from"@sinclair/typebox/value";function f1(j){return j%4===0&&(j%100!==0||j%400===0)}function cj(j){const $=v1.exec(j);if(!$)return!1;const W=+$[1],X=+$[2],Z=+$[3];return X>=1&&X<=12&&Z>=1&&Z<=(X===2&&f1(W)?29:k1[X])}function zj(j){return function $(W){const X=h1.exec(W);if(!X)return!1;const Z=+X[1],J=+X[2],Q=+X[3],Y=X[4],B=X[5]==="-"?-1:1,K=+(X[6]||0),U=+(X[7]||0);if(K>23||U>59||j&&!Y)return!1;if(Z<=23&&J<=59&&Q<60)return!0;const _=J-U*B,M=Z-K*B-(_<0?1:0);return(M===23||M===-1)&&(_===59||_===-1)&&Q<61}}function mj(j){const $=zj(j);return function W(X){const Z=X.split(m1);return Z.length===2&&cj(Z[0])&&$(Z[1])}}function c1(j){return u1.test(j)&&d1.test(j)}function l1(j){return uj.lastIndex=0,uj.test(j)}function n1(j){return Number.isInteger(j)&&j<=i1&&j>=p1}function t1(j){return Number.isInteger(j)}function dj(){return!0}function r1(j){if(s1.test(j))return!1;try{return new RegExp(j),!0}catch($){return!1}}var r0={date:cj,time:zj(!0),"date-time":mj(!0),"iso-time":zj(!1),"iso-date-time":mj(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:c1,"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:r1,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:l1,int32:{type:"number",validate:n1},int64:{type:"number",validate:t1},float:{type:"number",validate:dj},double:{type:"number",validate:dj},password:!0,binary:!0},v1=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,k1=[0,31,28,31,30,31,30,31,31,30,31,30,31],h1=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,m1=/t|\s/i,u1=/\/|:/,d1=/^(?:[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,uj=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,p1=-2147483648,i1=2147483647,s1=/[^\\]\\Z/;import{TypeSystemPolicy as t2,TypeSystem as s2,TypeSystemDuplicateFormat as r2,TypeSystemDuplicateTypeKind as a2}from"@sinclair/typebox/system";import{TypeCompiler as e2,TypeCheck as j3}from"@sinclair/typebox/compiler";var nj=/(\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))/,tj=/(?: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\([^)]+\)/,sj=/^(?:(?:(?:(?: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)?)?$/,a1=r0.date,o1=r0["date-time"];if(!o.Has("date"))E0.Format("date",(j)=>{const $=j.replace(/"/g,"");if(nj.test($)||tj.test($)||sj.test($)||a1($)){const W=new Date($);if(!Number.isNaN(W.getTime()))return!0}return!1});if(!o.Has("date-time"))E0.Format("date-time",(j)=>{const $=j.replace(/"/g,"");if(nj.test($)||tj.test($)||sj.test($)||o1($)){const W=new Date($);if(!Number.isNaN(W.getTime()))return!0}return!1});Object.entries(r0).forEach((j)=>{const[$,W]=j;if(!o.Has($)){if(W instanceof RegExp)E0.Format($,(X)=>W.test(X));else if(typeof W==="function")E0.Format($,W)}});var I=Object.assign({},v0),pj=(j)=>{if(typeof j==="string")switch(j.slice(-1)){case"k":return+j.slice(0,j.length-1)*1024;case"m":return+j.slice(0,j.length-1)*1048576;default:return+j}return j},Mj=(j,$)=>{if(!($ instanceof Blob))return!1;if(j.minSize&&$.size<pj(j.minSize))return!1;if(j.maxSize&&$.size>pj(j.maxSize))return!1;if(j.extension)if(typeof j.extension==="string"){if(!$.type.startsWith(j.extension))return!1}else{for(let W=0;W<j.extension.length;W++)if($.type.startsWith(j.extension[W]))return!0;return!1}return!0},e1=ij.Get("Files")??E0.Type("File",Mj),j2=ij.Get("Files")??E0.Type("Files",(j,$)=>{if(!Array.isArray($))return Mj(j,$);if(j.minItems&&$.length<j.minItems)return!1;if(j.maxItems&&$.length>j.maxItems)return!1;for(let W=0;W<$.length;W++)if(!Mj(j,$[W]))return!1;return!0});if(!o.Has("numeric"))o.Set("numeric",(j)=>!!j&&!isNaN(+j));if(!o.Has("boolean"))o.Set("boolean",(j)=>j==="true"||j==="false");if(!o.Has("ObjectString"))o.Set("ObjectString",(j)=>{let $=j.charCodeAt(0);if($===9||$===10||$===32)$=j.trimStart().charCodeAt(0);if($!==123&&$!==91)return!1;try{return JSON.parse(j),!0}catch{return!1}});if(!o.Has("ArrayString"))o.Set("ArrayString",(j)=>{let $=j.charCodeAt(0);if($===9||$===10||$===32)$=j.trimStart().charCodeAt(0);if($!==123&&$!==91)return!1;try{return JSON.parse(j),!0}catch{return!1}});var Q0={Numeric:(j)=>{const $=v0.Number(j);return I.Transform(I.Union([I.String({format:"numeric",default:0}),I.Number(j)],j)).Decode((W)=>{const X=+W;if(isNaN(X))return W;if(j&&!a.Check($,X))throw new q("property",$,X);return X}).Encode((W)=>W)},Date:(j)=>{const $=v0.Date(j);return I.Transform(I.Union([v0.Date(j),I.String({format:"date",default:new Date().toISOString()}),I.String({format:"date-time",default:new Date().toISOString()})],j)).Decode((W)=>{if(W instanceof Date)return W;const X=new Date(W);if(!a.Check($,X))throw new q("property",$,X);return X}).Encode((W)=>{if(typeof W==="string")return new Date(W);return W})},BooleanString:(j)=>{const $=v0.Boolean(j);return I.Transform(I.Union([I.String({format:"boolean",default:!1}),I.Boolean(j)],j)).Decode((W)=>{if(typeof W==="string")return W==="true";if(j&&!a.Check($,W))throw new q("property",$,W);return W}).Encode((W)=>W)},ObjectString:(j,$)=>{const W=I.Object(j,$),X=JSON.stringify(a.Create(W));let Z;try{Z=lj.Compile(W)}catch{}return I.Transform(I.Union([I.String({format:"ObjectString",default:X}),W])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new q("property",W,J);try{J=JSON.parse(J)}catch{throw new q("property",W,J)}if(Z){if(!Z.Check(J))throw new q("property",W,J);return Z.Decode(J)}if(!a.Check(W,J))throw new q("property",W,J);return a.Decode(W,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",W,J)}if(!a.Check(W,J))throw new q("property",W,J);return JSON.stringify(J)})},ArrayString:(j={},$)=>{const W=I.Array(j,$),X=JSON.stringify(a.Create(W));let Z;try{Z=lj.Compile(W)}catch{}return I.Transform(I.Union([I.String({format:"ArrayString",default:X}),W])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new q("property",W,J);try{J=JSON.parse(J)}catch{throw new q("property",W,J)}if(Z){if(!Z.Check(J))throw new q("property",W,J);return Z.Decode(J)}if(!a.Check(W,J))throw new q("property",W,J);return a.Decode(W,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",W,J)}if(!a.Check(W,J))throw new q("property",W,J);return JSON.stringify(J)})},File:e1,Files:(j={})=>I.Transform(j2(j)).Decode(($)=>{if(Array.isArray($))return $;return[$]}).Encode(($)=>$),Nullable:(j)=>I.Union([j,I.Null()]),MaybeEmpty:(j)=>I.Union([j,I.Null(),I.Undefined()]),Cookie:(j,{domain:$,expires:W,httpOnly:X,maxAge:Z,path:J,priority:Q,sameSite:Y,secure:B,secrets:K,sign:U,..._}={})=>{const M=I.Object(j,_);return M.config={domain:$,expires:W,httpOnly:X,maxAge:Z,path:J,priority:Q,sameSite:Y,secure:B,secrets:K,sign:U},M}};I.BooleanString=Q0.BooleanString;I.ObjectString=Q0.ObjectString;I.ArrayString=Q0.ArrayString;I.Numeric=Q0.Numeric;I.File=(j={})=>Q0.File({default:"File",...j,extension:j?.type,type:"string",format:"binary"});I.Files=(j={})=>Q0.Files({...j,elysiaMeta:"Files",default:"Files",extension:j?.type,type:"array",items:{...j,default:"Files",type:"string",format:"binary"}});I.Nullable=(j)=>Q0.Nullable(j);I.MaybeEmpty=Q0.MaybeEmpty;I.Cookie=Q0.Cookie;I.Date=Q0.Date;function W2(j,$){if(typeof j!=="string")throw new TypeError("argument str must be a string");var W={},X=$||{},Z=X.decode||Z2,J=0;while(J<j.length){var Q=j.indexOf("=",J);if(Q===-1)break;var Y=j.indexOf(";",J);if(Y===-1)Y=j.length;else if(Y<Q){J=j.lastIndexOf(";",Q-1)+1;continue}var B=j.slice(J,Q).trim();if(W[B]===void 0){var K=j.slice(Q+1,Y).trim();if(K.charCodeAt(0)===34)K=K.slice(1,-1);W[B]=G2(K,Z)}J=Y+1}return W}function X2(j,$,W){var X=W||{},Z=X.encode||J2;if(typeof Z!=="function")throw new TypeError("option encode is invalid");if(!a0.test(j))throw new TypeError("argument name is invalid");var J=Z($);if(J&&!a0.test(J))throw new TypeError("argument val is invalid");var Q=j+"="+J;if(X.maxAge!=null){var Y=X.maxAge-0;if(isNaN(Y)||!isFinite(Y))throw new TypeError("option maxAge is invalid");Q+="; Max-Age="+Math.floor(Y)}if(X.domain){if(!a0.test(X.domain))throw new TypeError("option domain is invalid");Q+="; Domain="+X.domain}if(X.path){if(!a0.test(X.path))throw new TypeError("option path is invalid");Q+="; Path="+X.path}if(X.expires){var B=X.expires;if(!Q2(B)||isNaN(B.valueOf()))throw new TypeError("option expires is invalid");Q+="; Expires="+B.toUTCString()}if(X.httpOnly)Q+="; HttpOnly";if(X.secure)Q+="; Secure";if(X.partitioned)Q+="; Partitioned";if(X.priority){var K=typeof X.priority==="string"?X.priority.toLowerCase():X.priority;switch(K){case"low":Q+="; Priority=Low";break;case"medium":Q+="; Priority=Medium";break;case"high":Q+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(X.sameSite){var U=typeof X.sameSite==="string"?X.sameSite.toLowerCase():X.sameSite;switch(U){case!0:Q+="; SameSite=Strict";break;case"lax":Q+="; SameSite=Lax";break;case"strict":Q+="; SameSite=Strict";break;case"none":Q+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Q}function Z2(j){return j.indexOf("%")!==-1?decodeURIComponent(j):j}function J2(j){return encodeURIComponent(j)}function Q2(j){return $2.call(j)==="[object Date]"||j instanceof Date}function G2(j,$){try{return $(j)}catch(W){return j}}/*!
2
+ var C2=Object.create;var{getPrototypeOf:S2,defineProperty:f1,getOwnPropertyNames:L2}=Object;var q2=Object.prototype.hasOwnProperty;var _1=($,X,Z)=>{Z=$!=null?C2(S2($)):{};const W=X||!$||!$.__esModule?f1(Z,"default",{value:$,enumerable:!0}):Z;for(let j of L2($))if(!q2.call(W,j))f1(W,j,{get:()=>$[j],enumerable:!0});return W};var T2=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var e0=T2((W8,e1)=>{function U3($){var X=$.indexOf("%");if(X===-1)return $;var Z=$.length,W="",j=0,J=0,Q=X,Y=a1;while(X>-1&&X<Z){var U=o1($[X+1],4),B=o1($[X+2],0),K=U|B,w=P1[K];if(Y=P1[256+Y+w],J=J<<6|K&P1[364+w],Y===a1)W+=$.slice(j,Q),W+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,j=X+3,X=Q=$.indexOf("%",j);else if(Y===B3)return null;else{if(X+=3,X<Z&&$.charCodeAt(X)===37)continue;return null}}return W+$.slice(j)}function o1($,X){var Z=K3[$];return Z===void 0?255:Z<<X}var a1=12,B3=0,P1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],K3={"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};e1.exports=U3});var T0=($,X)=>{const Z=X?.length?{}:null;if(Z)for(let W of X)Z[W.part.charCodeAt(0)]=W;return{part:$,store:null,inert:Z,params:null,wildcardStore:null}},y1=($,X)=>({...$,part:X}),k1=($)=>({name:$,store:null,inert:null});class M0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,X,Z,{ignoreError:W=!1,ignoreHistory:j=!1}={}){if(typeof X!=="string")throw new TypeError("Route path must be a string");if(X==="")X="/";else if(X[0]!=="/")X=`/${X}`;const J=X[X.length-1]==="*",Q=X.match(M0.regex.optionalParams);if(Q){const w=X.replaceAll("?","");this.add($,w,Z,{ignoreError:W});for(let F=0;F<Q.length;F++){let G=X.replace("/"+Q[F],"");this.add($,G,Z,{ignoreError:!0})}return Z}if(Q)X=X.replaceAll("?","");if(this.history.find(([w,F,G])=>w===$&&F===X))return Z;if(J||Q&&X.charCodeAt(X.length-1)===63)X=X.slice(0,-1);if(!j)this.history.push([$,X,Z]);const Y=X.split(M0.regex.static),U=X.match(M0.regex.params)||[];if(Y[Y.length-1]==="")Y.pop();let B;if(!this.root[$])B=this.root[$]=T0("/");else B=this.root[$];let K=0;for(let w=0;w<Y.length;++w){let F=Y[w];if(w>0){const G=U[K++].slice(1);if(B.params===null)B.params=k1(G);else if(B.params.name!==G)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${G}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);const M=B.params;if(M.inert===null){B=M.inert=T0(F);continue}B=M.inert}for(let G=0;;){if(G===F.length){if(G<B.part.length){const M=y1(B,B.part.slice(G));Object.assign(B,T0(F,[M]))}break}if(G===B.part.length){if(B.inert===null)B.inert={};const M=B.inert[F.charCodeAt(G)];if(M){B=M,F=F.slice(G),G=0;continue}const D=T0(F.slice(G));B.inert[F.charCodeAt(G)]=D,B=D;break}if(F[G]!==B.part[G]){const M=y1(B,B.part.slice(G)),D=T0(F.slice(G));Object.assign(B,T0(B.part.slice(0,G),[M,D])),B=D;break}++G}}if(K<U.length){const w=U[K].slice(1);if(B.params===null)B.params=k1(w);else if(B.params.name!==w)if(W)return Z;else throw new Error(`Cannot create route "${X}" with parameter "${w}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);if(B.params.store===null)B.params.store=Z;return B.params.store}if(J){if(B.wildcardStore===null)B.wildcardStore=Z;return B.wildcardStore}if(B.store===null)B.store=Z;return B.store}find($,X){const Z=this.root[$];if(!Z)return null;return F1(X,X.length,Z,0)}}var F1=($,X,Z,W)=>{const j=Z.part,J=j.length,Q=W+J;if(J>1){if(Q>X)return null;if(J<15){for(let Y=1,U=W+1;Y<J;++Y,++U)if(j.charCodeAt(Y)!==$.charCodeAt(U))return null}else if($.slice(W,Q)!==j)return null}if(Q===X){if(Z.store!==null)return{store:Z.store,params:{}};if(Z.wildcardStore!==null)return{store:Z.wildcardStore,params:{"*":""}};return null}if(Z.inert!==null){const Y=Z.inert[$.charCodeAt(Q)];if(Y!==void 0){const U=F1($,X,Y,Q);if(U!==null)return U}}if(Z.params!==null){const{store:Y,name:U,inert:B}=Z.params,K=$.indexOf("/",Q);if(K!==Q){if(K===-1||K>=X){if(Y!==null){const w={};return w[U]=$.substring(Q,X),{store:Y,params:w}}}else if(B!==null){const w=F1($,X,B,K);if(w!==null)return w.params[U]=$.substring(Q,K),w}}}if(Z.wildcardStore!==null)return{store:Z.wildcardStore,params:{"*":$.substring(Q,X)}};return null};var H0=($)=>{const X=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,Z=X.indexOf(")");if(X.charCodeAt(Z+2)===61&&X.charCodeAt(Z+5)!==123)return!0;return X.includes("return")},H2=($)=>{if($.startsWith("async"))$=$.slice(5);$=$.trimStart();let X=-1;if($.charCodeAt(0)===40){if(X=$.indexOf("=>",$.indexOf(")")),X!==-1){let j=X;while(j>0)if($.charCodeAt(--j)===41)break;let J=$.slice(X+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[$.slice(1,j),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if($.startsWith("function")){X=$.indexOf("(");const j=$.indexOf(")");return[$.slice(X+1,j),$.slice(j+2),{isArrowReturn:!1}]}const Z=$.indexOf("(");if(Z!==-1){const j=$.indexOf("\n",2),J=$.slice(0,j),Q=J.lastIndexOf(")")+1,Y=$.slice(j+1);return[J.slice(Z,Q),"{"+Y,{isArrowReturn:!1}]}const W=$.split("\n",2);return[W[0],W[1],{isArrowReturn:!1}]},E2=($)=>{const X=$.indexOf("{");if(X===-1)return[-1,0];let Z=X+1,W=1;for(;Z<$.length;Z++){const j=$.charCodeAt(Z);if(j===123)W++;else if(j===125)W--;if(W===0)break}if(W!==0)return[0,$.length];return[X,Z+1]},R2=($)=>{const X=$.lastIndexOf("}");if(X===-1)return[-1,0];let Z=X-1,W=1;for(;Z>=0;Z--){const j=$.charCodeAt(Z);if(j===125)W++;else if(j===123)W--;if(W===0)break}if(W!==0)return[-1,0];return[Z,X+1]},v1=($)=>{while(!0){const X=$.indexOf(":");if(X===-1)break;let Z=$.indexOf(",",X);if(Z===-1)Z=$.indexOf("}",X)-1;if(Z===-2)Z=$.length;$=$.slice(0,X)+$.slice(Z)}return $},u1=($)=>{let X=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)X=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let Z=[];while(!0){let[j,J]=E2($);if(j===-1)break;if(Z.push($.slice(0,j-1)),$.charCodeAt(J)===44)J++;$=$.slice(J)}if($=v1($),$)Z=Z.concat($.split(","));const W=[];for(let j of Z){if(j.indexOf(",")===-1){W.push(j);continue}for(let J of j.split(","))W.push(J.trim())}return Z=W,{hasParenthesis:X,parameters:Z}},b2=($,X)=>{const{parameters:Z,hasParenthesis:W}=u1($);if(!X.query&&Z.includes("query"))X.query=!0;if(!X.headers&&Z.includes("headers"))X.headers=!0;if(!X.body&&Z.includes("body"))X.body=!0;if(!X.cookie&&Z.includes("cookie"))X.cookie=!0;if(!X.set&&Z.includes("set"))X.set=!0;if(!X.server&&Z.includes("server"))X.server=!0;if(W)return`{ ${Z.join(", ")} }`;return Z.join(", ")},x2=($,X,Z)=>{const W=X.indexOf($+"\n",Z),j=X.indexOf($+"\t",Z),J=X.indexOf($+",",Z),Q=X.indexOf($+";",Z),Y=X.indexOf($+" ",Z);return[W,j,J,Q,Y].filter((U)=>U>0).sort((U,B)=>U-B)[0]||-1};var h1=($,X,Z=0)=>{if(Z>5)return[];const W=[];let j=X;while(!0){let J=x2(" = "+$,j);if(J===-1){const U=j.indexOf(" = "+$);if(U+3+$.length!==j.length)break;J=U}const Q=j.slice(0,J);let Y=Q.slice(Q.lastIndexOf(" ")+1);if(Y==="}"){const[U,B]=R2(Q);W.push(v1(j.slice(U,B))),j=j.slice(J+3+$.length);continue}while(Y.charCodeAt(0)===44)Y=Y.slice(1);while(Y.charCodeAt(0)===9)Y=Y.slice(1);if(!Y.includes("("))W.push(Y);j=j.slice(J+3+$.length)}for(let J of W){if(J.charCodeAt(0)===123)continue;const Q=h1(J,X);if(Q.length>0)W.push(...Q)}return W},g2=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}const Z=$.indexOf("...");if(Z===-1)return;return $.slice(Z+3).trimEnd()},f2=($,X,Z)=>{const W=(j,J)=>$.includes(J+"."+j)||$.includes(J+'["'+j+'"]')||$.includes(J+"['"+j+"']");for(let j of X){if(!j)continue;if(j.charCodeAt(0)===123){const J=u1(j).parameters;if(!Z.query&&J.includes("query"))Z.query=!0;if(!Z.headers&&J.includes("headers"))Z.headers=!0;if(!Z.body&&J.includes("body"))Z.body=!0;if(!Z.cookie&&J.includes("cookie"))Z.cookie=!0;if(!Z.set&&J.includes("set"))Z.set=!0;if(!Z.query&&J.includes("server"))Z.server=!0;continue}if(!Z.query&&W("query",j))Z.query=!0;if($.includes("return "+j)||$.includes("return "+j+".query"))Z.query=!0;if(!Z.headers&&W("headers",j))Z.headers=!0;if(!Z.body&&W("body",j))Z.body=!0;if(!Z.cookie&&W("cookie",j))Z.cookie=!0;if(!Z.set&&W("set",j))Z.set=!0;if(!Z.server&&W("server",j))Z.server=!0;if(Z.query&&Z.headers&&Z.body&&Z.cookie&&Z.set&&Z.server)break}return X};var y2=($,X,Z)=>{try{const W=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");W.test(X);const j=X.charCodeAt(W.lastIndex);if(j===41||j===44)return Z.query=!0,Z.headers=!0,Z.body=!0,Z.cookie=!0,Z.set=!0,Z.server=!0,!0;return!1}catch(W){return console.log("[Sucrose] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to maintainers:"),console.log("--- body ---"),console.log(X),console.log("--- context ---"),console.log($),!0}},r0=($,X={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const Z=[];if($.handler&&typeof $.handler==="function")Z.push($.handler);if($.request?.length)Z.push(...$.request);if($.beforeHandle?.length)Z.push(...$.beforeHandle);if($.parse?.length)Z.push(...$.parse);if($.error?.length)Z.push(...$.error);if($.transform?.length)Z.push(...$.transform);if($.afterHandle?.length)Z.push(...$.afterHandle);if($.mapResponse?.length)Z.push(...$.mapResponse);if($.afterResponse?.length)Z.push(...$.afterResponse);for(let W of Z){if(!W)continue;const j="fn"in W?W.fn:W,[J,Q,{isArrowReturn:Y}]=H2(j.toString()),U=b2(J,X),B=g2(U);if(B){const K=h1(B,Q);if(K.splice(0,-1,B),!y2(B,Q,X))f2(Q,K,X);if(!X.query&&Q.includes("return "+B+".query"))X.query=!0}if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return X};import{Value as l0}from"@sinclair/typebox/value";import{Kind as R0,TransformKind as j2}from"@sinclair/typebox";import{Value as B0}from"@sinclair/typebox/value";import{TypeCompiler as G2}from"@sinclair/typebox/compiler";import{TypeRegistry as n1}from"@sinclair/typebox";import{TypeSystem as E0}from"@sinclair/typebox/system";import{Type as k0,FormatRegistry as e}from"@sinclair/typebox";import{TypeCompiler as p1}from"@sinclair/typebox/compiler";import{Value as o}from"@sinclair/typebox/value";function k2($){return $%4===0&&($%100!==0||$%400===0)}function l1($){const X=v2.exec($);if(!X)return!1;const Z=+X[1],W=+X[2],j=+X[3];return W>=1&&W<=12&&j>=1&&j<=(W===2&&k2(Z)?29:u2[W])}function M1($){return function X(Z){const W=h2.exec(Z);if(!W)return!1;const j=+W[1],J=+W[2],Q=+W[3],Y=W[4],U=W[5]==="-"?-1:1,B=+(W[6]||0),K=+(W[7]||0);if(B>23||K>59||$&&!Y)return!1;if(j<=23&&J<=59&&Q<60)return!0;const w=J-K*U,F=j-B*U-(w<0?1:0);return(F===23||F===-1)&&(w===59||w===-1)&&Q<61}}function m1($){const X=M1($);return function Z(W){const j=W.split(m2);return j.length===2&&l1(j[0])&&X(j[1])}}function l2($){return d2.test($)&&c2.test($)}function p2($){return d1.lastIndex=0,d1.test($)}function t2($){return Number.isInteger($)&&$<=n2&&$>=i2}function s2($){return Number.isInteger($)}function c1(){return!0}function a2($){if(r2.test($))return!1;try{return new RegExp($),!0}catch(X){return!1}}var a0={date:l1,time:M1(!0),"date-time":m1(!0),"iso-time":M1(!1),"iso-date-time":m1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:l2,"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:a2,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:p2,int32:{type:"number",validate:t2},int64:{type:"number",validate:s2},float:{type:"number",validate:c1},double:{type:"number",validate:c1},password:!0,binary:!0},v2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,u2=[0,31,28,31,30,31,30,31,31,30,31,30,31],h2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,m2=/t|\s/i,d2=/\/|:/,c2=/^(?:[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,d1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,i2=-2147483648,n2=2147483647,r2=/[^\\]\\Z/;import{TypeSystemPolicy as s3,TypeSystem as r3,TypeSystemDuplicateFormat as a3,TypeSystemDuplicateTypeKind as o3}from"@sinclair/typebox/system";import{TypeCompiler as $8,TypeCheck as X8}from"@sinclair/typebox/compiler";var t1=/(\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\([^)]+\)/,r1=/^(?:(?:(?:(?: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)?)?$/,o2=a0.date,e2=a0["date-time"];if(!e.Has("date"))E0.Format("date",($)=>{const X=$.replace(/"/g,"");if(t1.test(X)||s1.test(X)||r1.test(X)||o2(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});if(!e.Has("date-time"))E0.Format("date-time",($)=>{const X=$.replace(/"/g,"");if(t1.test(X)||s1.test(X)||r1.test(X)||e2(X)){const Z=new Date(X);if(!Number.isNaN(Z.getTime()))return!0}return!1});Object.entries(a0).forEach(($)=>{const[X,Z]=$;if(!e.Has(X)){if(Z instanceof RegExp)E0.Format(X,(W)=>Z.test(W));else if(typeof Z==="function")E0.Format(X,Z)}});var O=Object.assign({},k0),i1=($)=>{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 $},z1=($,X)=>{if(!(X instanceof Blob))return!1;if($.minSize&&X.size<i1($.minSize))return!1;if($.maxSize&&X.size>i1($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!X.type.startsWith($.extension))return!1}else{for(let Z=0;Z<$.extension.length;Z++)if(X.type.startsWith($.extension[Z]))return!0;return!1}return!0},$3=n1.Get("Files")??E0.Type("File",z1),X3=n1.Get("Files")??E0.Type("Files",($,X)=>{if(!Array.isArray(X))return z1($,X);if($.minItems&&X.length<$.minItems)return!1;if($.maxItems&&X.length>$.maxItems)return!1;for(let Z=0;Z<X.length;Z++)if(!z1($,X[Z]))return!1;return!0});if(!e.Has("numeric"))e.Set("numeric",($)=>!!$&&!isNaN(+$));if(!e.Has("boolean"))e.Set("boolean",($)=>$==="true"||$==="false");if(!e.Has("ObjectString"))e.Set("ObjectString",($)=>{let X=$.charCodeAt(0);if(X===9||X===10||X===32)X=$.trimStart().charCodeAt(0);if(X!==123&&X!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!e.Has("ArrayString"))e.Set("ArrayString",($)=>{let X=$.charCodeAt(0);if(X===9||X===10||X===32)X=$.trimStart().charCodeAt(0);if(X!==123&&X!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});var Q0={Numeric:($)=>{const X=k0.Number($);return O.Transform(O.Union([O.String({format:"numeric",default:0}),O.Number($)],$)).Decode((Z)=>{const W=+Z;if(isNaN(W))return Z;if($&&!o.Check(X,W))throw new T("property",X,W);return W}).Encode((Z)=>Z)},Date:($)=>{const X=k0.Date($);return O.Transform(O.Union([k0.Date($),O.String({format:"date",default:new Date().toISOString()}),O.String({format:"date-time",default:new Date().toISOString()})],$)).Decode((Z)=>{if(Z instanceof Date)return Z;const W=new Date(Z);if(!o.Check(X,W))throw new T("property",X,W);return W}).Encode((Z)=>{if(typeof Z==="string")return new Date(Z);return Z})},BooleanString:($)=>{const X=k0.Boolean($);return O.Transform(O.Union([O.String({format:"boolean",default:!1}),O.Boolean($)],$)).Decode((Z)=>{if(typeof Z==="string")return Z==="true";if($&&!o.Check(X,Z))throw new T("property",X,Z);return Z}).Encode((Z)=>Z)},ObjectString:($,X)=>{const Z=O.Object($,X),W=JSON.stringify(o.Create(Z));let j;try{j=p1.Compile(Z)}catch{}return O.Transform(O.Union([O.String({format:"ObjectString",default:W}),Z])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new T("property",Z,J);try{J=JSON.parse(J)}catch{throw new T("property",Z,J)}if(j){if(!j.Check(J))throw new T("property",Z,J);return j.Decode(J)}if(!o.Check(Z,J))throw new T("property",Z,J);return o.Decode(Z,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new T("property",Z,J)}if(!o.Check(Z,J))throw new T("property",Z,J);return JSON.stringify(J)})},ArrayString:($={},X)=>{const Z=O.Array($,X),W=JSON.stringify(o.Create(Z));let j;try{j=p1.Compile(Z)}catch{}return O.Transform(O.Union([O.String({format:"ArrayString",default:W}),Z])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new T("property",Z,J);try{J=JSON.parse(J)}catch{throw new T("property",Z,J)}if(j){if(!j.Check(J))throw new T("property",Z,J);return j.Decode(J)}if(!o.Check(Z,J))throw new T("property",Z,J);return o.Decode(Z,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new T("property",Z,J)}if(!o.Check(Z,J))throw new T("property",Z,J);return JSON.stringify(J)})},File:$3,Files:($={})=>O.Transform(X3($)).Decode((X)=>{if(Array.isArray(X))return X;return[X]}).Encode((X)=>X),Nullable:($)=>O.Union([$,O.Null()]),MaybeEmpty:($)=>O.Union([$,O.Null(),O.Undefined()]),Cookie:($,{domain:X,expires:Z,httpOnly:W,maxAge:j,path:J,priority:Q,sameSite:Y,secure:U,secrets:B,sign:K,...w}={})=>{const F=O.Object($,w);return F.config={domain:X,expires:Z,httpOnly:W,maxAge:j,path:J,priority:Q,sameSite:Y,secure:U,secrets:B,sign:K},F}};O.BooleanString=Q0.BooleanString;O.ObjectString=Q0.ObjectString;O.ArrayString=Q0.ArrayString;O.Numeric=Q0.Numeric;O.File=($={})=>Q0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});O.Files=($={})=>Q0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});O.Nullable=($)=>Q0.Nullable($);O.MaybeEmpty=Q0.MaybeEmpty;O.Cookie=Q0.Cookie;O.Date=Q0.Date;function W3($,X){if(typeof $!=="string")throw new TypeError("argument str must be a string");var Z={},W=X||{},j=W.decode||j3,J=0;while(J<$.length){var Q=$.indexOf("=",J);if(Q===-1)break;var Y=$.indexOf(";",J);if(Y===-1)Y=$.length;else if(Y<Q){J=$.lastIndexOf(";",Q-1)+1;continue}var U=$.slice(J,Q).trim();if(Z[U]===void 0){var B=$.slice(Q+1,Y).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);Z[U]=Y3(B,j)}J=Y+1}return Z}function J3($,X,Z){var W=Z||{},j=W.encode||Q3;if(typeof j!=="function")throw new TypeError("option encode is invalid");if(!o0.test($))throw new TypeError("argument name is invalid");var J=j(X);if(J&&!o0.test(J))throw new TypeError("argument val is invalid");var Q=$+"="+J;if(W.maxAge!=null){var Y=W.maxAge-0;if(isNaN(Y)||!isFinite(Y))throw new TypeError("option maxAge is invalid");Q+="; Max-Age="+Math.floor(Y)}if(W.domain){if(!o0.test(W.domain))throw new TypeError("option domain is invalid");Q+="; Domain="+W.domain}if(W.path){if(!o0.test(W.path))throw new TypeError("option path is invalid");Q+="; Path="+W.path}if(W.expires){var U=W.expires;if(!G3(U)||isNaN(U.valueOf()))throw new TypeError("option expires is invalid");Q+="; Expires="+U.toUTCString()}if(W.httpOnly)Q+="; HttpOnly";if(W.secure)Q+="; Secure";if(W.partitioned)Q+="; Partitioned";if(W.priority){var B=typeof W.priority==="string"?W.priority.toLowerCase():W.priority;switch(B){case"low":Q+="; Priority=Low";break;case"medium":Q+="; Priority=Medium";break;case"high":Q+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(W.sameSite){var K=typeof W.sameSite==="string"?W.sameSite.toLowerCase():W.sameSite;switch(K){case!0:Q+="; SameSite=Strict";break;case"lax":Q+="; SameSite=Lax";break;case"strict":Q+="; SameSite=Strict";break;case"none":Q+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Q}function j3($){return $.indexOf("%")!==-1?decodeURIComponent($):$}function Q3($){return encodeURIComponent($)}function G3($){return Z3.call($)==="[object Date]"||$ instanceof Date}function Y3($,X){try{return X($)}catch(Z){return $}}/*!
3
3
  * cookie
4
4
  * Copyright(c) 2012-2014 Roman Shtylman
5
5
  * Copyright(c) 2015 Douglas Christopher Wilson
6
6
  * MIT Licensed
7
- */var Dj=W2,Fj=X2;var $2=Object.prototype.toString,a0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var j1=_j(o0(),1);class B0{j;$;W;constructor(j,$,W={}){this.name=j;this.jar=$;this.initial=W}get cookie(){if(!(this.name in this.jar))return this.initial;return this.jar[this.name]}set cookie(j){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=j}get value(){return this.cookie.value}set value(j){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name].value=j}get expires(){return this.cookie.expires}set expires(j){this.cookie.expires=j}get maxAge(){return this.cookie.maxAge}set maxAge(j){this.cookie.maxAge=j}get domain(){return this.cookie.domain}set domain(j){this.cookie.domain=j}get path(){return this.cookie.path}set path(j){this.cookie.path=j}get secure(){return this.cookie.secure}set secure(j){this.cookie.secure=j}get httpOnly(){return this.cookie.httpOnly}set httpOnly(j){this.cookie.httpOnly=j}get sameSite(){return this.cookie.sameSite}set sameSite(j){this.cookie.sameSite=j}get priority(){return this.cookie.priority}set priority(j){this.cookie.priority=j}get partitioned(){return this.cookie.partitioned}set partitioned(j){this.cookie.partitioned=j}get secrets(){return this.cookie.secrets}set secrets(j){this.cookie.secrets=j}update(j){return this.cookie=Object.assign(this.cookie,typeof j==="function"?j(this.cookie):j),this}set(j){return this.cookie=Object.assign({...this.initial,value:this.value},typeof j==="function"?j(this.cookie):j),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 ej=(j,$,W)=>{if(!j.cookie)j.cookie={};return new Proxy($,{get(X,Z){if(Z in $)return new B0(Z,j.cookie,Object.assign({},W??{},$[Z]));return new B0(Z,j.cookie,Object.assign({},W))}})},e0=async(j,$,{secrets:W,sign:X,...Z}={})=>{if(!$)return ej(j,{},Z);const J=typeof W==="string";if(X&&X!==!0&&!Array.isArray(X))X=[X];const Q={},Y=Dj($);for(let[B,K]of Object.entries(Y)){let U=j1.default(K);if(X===!0||X?.includes(B)){if(!W)throw new Error("No secret is provided to cookie plugin");if(J){const _=await Nj(U,W);if(_===!1)throw new k0(B);U=_}else{let _=!0;for(let M=0;M<W.length;M++){const G=await Nj(U,W[M]);if(G!==!1){_=!0,U=G;break}}if(!_)throw new k0(B)}}Q[B]={value:U}}return ej(j,Q,Z)};async function*m0(j){const $=j.body;if(!$)return;const W=$.getReader(),X=new TextDecoder;try{while(!0){const{done:Z,value:J}=await W.read();if(Z)break;yield X.decode(J)}}finally{W.releaseLock()}}var $1="toJSON"in new Headers,p=(j)=>{if(!j)return!1;for(let $ in j)return!0;return!1},h0=(j,$)=>{const W=j.size;if(!$&&W||W&&$&&$.status!==206&&$.status!==304&&$.status!==412&&$.status!==416){if($){if($.headers instanceof Headers){if($1)$.headers=$.headers.toJSON();else for(let[X,Z]of $.headers.entries())if(X in $.headers)$.headers[X]=Z}return new Response(j,{status:$.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${W-1}/${W}`},$.headers)})}return new Response(j,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${W-1}/${W}`}})}return new Response(j)},W1=(j,$)=>{if(!j)return j;j.delete("set-cookie");for(let W=0;W<$.length;W++){const X=$[W].indexOf("=");j.append("set-cookie",`${$[W].slice(0,X)}=${$[W].slice(X+1)||""}`)}return j},X1=(j)=>{if(!j||!p(j))return;const $=[];for(let[W,X]of Object.entries(j)){if(!W||!X)continue;const Z=X.value;if(Z===void 0||Z===null)continue;$.push(Fj(W,typeof Z==="object"?JSON.stringify(Z):Z+"",X))}if($.length===0)return;if($.length===1)return $[0];return $},G0=async(j,$,W)=>{let X=j.next();if(X instanceof Promise)X=await X;if(X.done){if($)return y(X.value,$,W);return e(X.value,W)}return new Response(new ReadableStream({async start(Z){let J=!1;if(W?.signal.addEventListener("abort",()=>{J=!0;try{Z.close()}catch{}}),X.value!==void 0&&X.value!==null)if(typeof X.value==="object")try{Z.enqueue(Buffer.from(JSON.stringify(X.value)))}catch{Z.enqueue(Buffer.from(X.value.toString()))}else Z.enqueue(Buffer.from(X.value.toString()));for await(let Q of j){if(J)break;if(Q===void 0||Q===null)continue;if(typeof Q==="object")try{Z.enqueue(Buffer.from(JSON.stringify(Q)))}catch{Z.enqueue(Buffer.from(Q.toString()))}else Z.enqueue(Buffer.from(Q.toString()));await new Promise((Y)=>setTimeout(()=>Y(),0))}try{Z.close()}catch{}}}),{...$,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...$?.headers}})},y=(j,$,W)=>{if(p($.headers)||$.status!==200||$.redirect||$.cookie){if(typeof $.status==="string")$.status=U0[$.status];if($.redirect){if($.headers.Location=$.redirect,!$.status||$.status<300||$.status>=400)$.status=302}if($.cookie&&p($.cookie)){const X=X1($.cookie);if(X)$.headers["set-cookie"]=X}if($.headers["set-cookie"]&&Array.isArray($.headers["set-cookie"]))$.headers=W1(new Headers($.headers),$.headers["set-cookie"]);switch(j?.constructor?.name){case"String":return new Response(j,$);case"Blob":return h0(j,$);case"Array":return Response.json(j,$);case"Object":const X=j[d];if(X)return $.status=X,y(j.response,$,W);for(let J in Object.values(j))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(P0(j));default:break}return Response.json(j,$);case"ReadableStream":if(!$.headers["content-type"]?.startsWith("text/event-stream"))$.headers["content-type"]="text/event-stream; charset=utf-8";return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)j.cancel(W)}},{once:!0}),new Response(j,$);case void 0:if(!j)return new Response("",$);return Response.json(j,$);case"Response":let Z=!1;if($.headers instanceof Headers)for(let J of $.headers.keys())if(J==="set-cookie"){if(Z)continue;Z=!0;for(let Q of $.headers.getSetCookie())j.headers.append("set-cookie",Q)}else j.headers.append(J,$.headers?.get(J)??"");else for(let J in $.headers)j.headers.append(J,$.headers[J]);if(j.status!==$.status)$.status=j.status;if(j.headers.get("transfer-encoding")==="chunked")return G0(m0(j),$,W);return j;case"Error":return Y0(j,$);case"Promise":return j.then((J)=>y(J,$));case"Function":return y(j(),$);case"Number":case"Boolean":return new Response(j.toString(),$);case"Cookie":if(j instanceof B0)return new Response(j.value,$);return new Response(j?.toString(),$);case"FormData":return new Response(j,$);default:if(j instanceof Response){let J=!1;if($.headers instanceof Headers)for(let Q of $.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let Y of $.headers.getSetCookie())j.headers.append("set-cookie",Y)}else j.headers.append(Q,$.headers?.get(Q)??"");else for(let Q in $.headers)j.headers.append(Q,$.headers[Q]);if($1)$.headers=j.headers.toJSON();else for(let[Q,Y]of j.headers.entries())if(Q in $.headers)$.headers[Q]=Y;return j}if(j instanceof Promise)return j.then((J)=>y(J,$));if(j instanceof Error)return Y0(j,$);if(typeof j?.next==="function")return G0(j,$,W);if("toResponse"in j)return y(j.toResponse(),$);if("charCodeAt"in j){const J=j.charCodeAt(0);if(J===123||J===91){if(!$.headers["Content-Type"])$.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),$)}}return new Response(j,$)}}else switch(j?.constructor?.name){case"String":return new Response(j);case"Blob":return h0(j,$);case"Array":return Response.json(j);case"Object":const X=j[d];if(X)return $.status=X,y(j.response,$,W);for(let Z in Object.values(j))switch(Z?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(P0(j),$);default:break}return Response.json(j,$);case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)j.cancel(W)}},{once:!0}),new Response(j,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!j)return new Response("");return new Response(JSON.stringify(j),{headers:{"content-type":"application/json"}});case"Response":if(j.headers.get("transfer-encoding")==="chunked")return G0(m0(j),$,W);return j;case"Error":return Y0(j,$);case"Promise":return j.then((Z)=>{const J=e(Z,W);if(J!==void 0)return J;return new Response("")});case"Function":return e(j(),W);case"Number":case"Boolean":return new Response(j.toString());case"Cookie":if(j instanceof B0)return new Response(j.value,$);return new Response(j?.toString(),$);case"FormData":return new Response(j,$);default:if(j instanceof Response)return new Response(j.body,{headers:{"Content-Type":"application/json"}});if(j instanceof Promise)return j.then((Z)=>y(Z,$));if(j instanceof Error)return Y0(j,$);if(typeof j?.next==="function")return G0(j,$,W);if("toResponse"in j)return y(j.toResponse(),$);if("charCodeAt"in j){const Z=j.charCodeAt(0);if(Z===123||Z===91){if(!$.headers["Content-Type"])$.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),$)}}return new Response(j)}},f=(j,$,W)=>{if(j===void 0||j===null)return;if(p($.headers)||$.status!==200||$.redirect||$.cookie){if(typeof $.status==="string")$.status=U0[$.status];if($.redirect){if($.headers.Location=$.redirect,!$.status||$.status<300||$.status>=400)$.status=302}if($.cookie&&p($.cookie)){const X=X1($.cookie);if(X)$.headers["set-cookie"]=X}if($.headers["set-cookie"]&&Array.isArray($.headers["set-cookie"]))$.headers=W1(new Headers($.headers),$.headers["set-cookie"]);switch(j?.constructor?.name){case"String":return new Response(j,$);case"Blob":return h0(j,$);case"Array":return Response.json(j,$);case"Object":const X=j[d];if(X)return $.status=X,f(j.response,$,W);for(let J in Object.values(j))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(P0(j),$);default:break}return Response.json(j,$);case"ReadableStream":if(!$.headers["content-type"]?.startsWith("text/event-stream"))$.headers["content-type"]="text/event-stream; charset=utf-8";return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)j.cancel(W)}},{once:!0}),new Response(j,$);case void 0:if(!j)return;return Response.json(j,$);case"Response":let Z=!1;if($.headers instanceof Headers)for(let J of $.headers.keys())if(J==="set-cookie"){if(Z)continue;Z=!0;for(let Q of $.headers.getSetCookie())j.headers.append("set-cookie",Q)}else j.headers.append(J,$.headers?.get(J)??"");else for(let J in $.headers)j.headers.append(J,$.headers[J]);if(j.status!==$.status)$.status=j.status;if(j.headers.get("transfer-encoding")==="chunked")return G0(m0(j),$,W);return j;case"Promise":return j.then((J)=>{const Q=f(J,$);if(Q!==void 0)return Q});case"Error":return Y0(j,$);case"Function":return f(j(),$);case"Number":case"Boolean":return new Response(j.toString(),$);case"FormData":return new Response(j);case"Cookie":if(j instanceof B0)return new Response(j.value,$);return new Response(j?.toString(),$);default:if(j instanceof Response){let J=!1;if($.headers instanceof Headers)for(let Q of $.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let Y of $.headers.getSetCookie())j.headers.append("set-cookie",Y)}else j.headers.append(Q,$.headers?.get(Q)??"");else for(let Q in $.headers)j.headers.append(Q,$.headers[Q]);if(j.status!==$.status)$.status=j.status;return j}if(j instanceof Promise)return j.then((J)=>f(J,$));if(j instanceof Error)return Y0(j,$);if(typeof j?.next==="function")return G0(j,$,W);if("toResponse"in j)return f(j.toResponse(),$);if("charCodeAt"in j){const J=j.charCodeAt(0);if(J===123||J===91){if(!$.headers["Content-Type"])$.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),$)}}return new Response(j,$)}}else switch(j?.constructor?.name){case"String":return new Response(j);case"Blob":return h0(j,$);case"Array":return Response.json(j);case"Object":const X=j[d];if(X)return $.status=X,f(j.response,$,W);for(let Z in Object.values(j))switch(Z?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(P0(j),$);default:break}return Response.json(j,$);case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)j.cancel(W)}},{once:!0}),new Response(j,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!j)return new Response("");return new Response(JSON.stringify(j),{headers:{"content-type":"application/json"}});case"Response":if(j.headers.get("transfer-encoding")==="chunked")return G0(m0(j));return j;case"Promise":return j.then((Z)=>{const J=f(Z,$);if(J!==void 0)return J});case"Error":return Y0(j,$);case"Function":return e(j(),W);case"Number":case"Boolean":return new Response(j.toString());case"Cookie":if(j instanceof B0)return new Response(j.value,$);return new Response(j?.toString(),$);case"FormData":return new Response(j);default:if(j instanceof Response)return new Response(j.body,{headers:{"Content-Type":"application/json"}});if(j instanceof Promise)return j.then((Z)=>f(Z,$));if(j instanceof Error)return Y0(j,$);if(typeof j?.next==="function")return G0(j,$,W);if("toResponse"in j)return f(j.toResponse(),$);if("charCodeAt"in j){const Z=j.charCodeAt(0);if(Z===123||Z===91){if(!$.headers["Content-Type"])$.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),$)}}return new Response(j)}},e=(j,$)=>{switch(j?.constructor?.name){case"String":return new Response(j);case"Blob":return h0(j);case"Array":return Response.json(j);case"Object":if(j[d])return y(j.response,{status:j[d],headers:{}});j:for(let W of Object.values(j))switch(W?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(P0(j));case"Object":break j;default:break}return Response.json(j);case"ReadableStream":return $?.signal.addEventListener("abort",{handleEvent(){if(!$?.signal.aborted)j.cancel($)}},{once:!0}),new Response(j,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!j)return new Response("");return new Response(JSON.stringify(j),{headers:{"content-type":"application/json"}});case"Response":if(j.headers.get("transfer-encoding")==="chunked")return G0(m0(j));return j;case"Error":return Y0(j);case"Promise":return j.then((W)=>e(W,$));case"Function":return e(j(),$);case"Number":case"Boolean":return new Response(j.toString());case"FormData":return new Response(j);default:if(j instanceof Response)return new Response(j.body,{headers:{"Content-Type":"application/json"}});if(j instanceof Promise)return j.then((W)=>e(W,$));if(j instanceof Error)return Y0(j);if(typeof j?.next==="function")return G0(j,void 0,$);if("toResponse"in j)return e(j.toResponse());if("charCodeAt"in j){const W=j.charCodeAt(0);if(W===123||W===91)return new Response(JSON.stringify(j),{headers:{"Content-Type":"application/json"}})}return new Response(j)}},Y0=(j,$)=>new Response(JSON.stringify({name:j?.name,message:j?.message,cause:j?.cause}),{status:$?.status!==200?$?.status??500:500,headers:$?.headers});function F2(j){let $=j;while($.endsWith("="))$=$.slice(0,-1);return $}var jj=(j,$)=>{const W=new URL(j);return W.pathname=$,W.toString()},U2=(j)=>typeof j==="function"&&/^\s*class\s+/.test(j.toString())||j.toString().startsWith("[object ")&&j.toString()!=="[object Object]"||p(Object.getPrototypeOf(j)),Cj=(j)=>j&&typeof j==="object"&&!Array.isArray(j),c=(j,$,{skipKeys:W,override:X=!0}={})=>{if(!Cj(j)||!Cj($))return j;for(let[Z,J]of Object.entries($)){if(W?.includes(Z))continue;if(!Cj(J)||!(Z in j)||U2(J)){if(X||!(Z in j))j[Z]=J;continue}j[Z]=c(j[Z],J,{skipKeys:W,override:X})}return j},_2=(j,$)=>{const{properties:W,...X}=j??{},{properties:Z,...J}=$??{};return c(X,J)},x=(j=[],$=[])=>{if(!j)return[];if(!$)return j;const W=[],X=[];if(!Array.isArray(j))j=[j];if(!Array.isArray($))$=[$];for(let Z of j)if(W.push(Z),Z.checksum)X.push(Z.checksum);for(let Z of $)if(!X.includes(Z.checksum))W.push(Z);return W},w2=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],z2=w2.reduce((j,$)=>(j[$]=!0,j),{}),G1=(j,$)=>{const W=(X)=>typeof X==="object"&&Object.keys(X).every(Zj);if(W(j)&&W($))return{...j,...$};return $??j},R0=(j,$)=>{return{body:$?.body??j?.body,headers:$?.headers??j?.headers,params:$?.params??j?.params,query:$?.query??j?.query,cookie:$?.cookie??j?.cookie,response:G1(j?.response,$?.response)}},l=(j,$)=>{return{...j,...$,body:$?.body??j?.body,headers:$?.headers??j?.headers,params:$?.params??j?.params,query:$?.query??j?.query,cookie:$?.cookie??j?.cookie,response:G1(j?.response,$?.response),type:j?.type||$?.type,detail:c($?.detail??{},j?.detail??{}),parse:x(j?.parse,$?.parse),transform:x(j?.transform,$?.transform),beforeHandle:x(j?.beforeHandle,$?.beforeHandle),afterHandle:x(j?.afterHandle,$?.afterHandle),mapResponse:x(j?.mapResponse,$?.mapResponse),afterResponse:x(j?.afterResponse,$?.afterResponse),trace:x(j?.trace,$?.trace),error:x(j?.error,$?.error)}},Y1=(j,$,W=!0)=>{if(!Array.isArray($))return m(j,$,W);for(let X of $)j=m(j,X,W);return j},m=(j,$,W=!0)=>{if(!j)return j;if($.untilObjectFound&&!W&&j.type==="object")return j;const X=$.from[b0];if(j.oneOf){for(let Q=0;Q<j.oneOf.length;Q++)j.oneOf[Q]=m(j.oneOf[Q],$,W);return j}if(j.anyOf){for(let Q=0;Q<j.anyOf.length;Q++)j.anyOf[Q]=m(j.anyOf[Q],$,W);return j}if(j.allOf){for(let Q=0;Q<j.allOf.length;Q++)j.allOf[Q]=m(j.allOf[Q],$,W);return j}if(j.not){for(let Q=0;Q<j.not.length;Q++)j.not[Q]=m(j.not[Q],$,W);return j}const Z=W&&!!$.excludeRoot;if(j[b0]===X){const{anyOf:Q,oneOf:Y,allOf:B,not:K,properties:U,items:_,...M}=j,G=$.to();let w;const F=(D)=>{if(U&&D.type==="object"){const V={};for(let[O,A]of Object.entries(U))V[O]=m(A,$,!1);return{...M,...D,properties:V}}if(_&&D.type==="array")return{...M,...D,items:m(_,$,!1)};const N={...M,...D};if(delete N.required,U&&D.type==="string"&&D.format==="ObjectString"&&D.default==="{}")w=I.ObjectString(U,M),N.default=JSON.stringify($0.Create(I.Object(U))),N.properties=U;if(_&&D.type==="string"&&D.format==="ArrayString"&&D.default==="[]")w=I.ArrayString(_,M),N.default=JSON.stringify($0.Create(I.Array(_))),N.items=_;return N};if(Z){if(U){const D={};for(let[N,V]of Object.entries(U))D[N]=m(V,$,!1);return{...M,properties:D}}else if(_?.map)return{...M,items:_.map((D)=>m(D,$,!1))};return M}if(G.anyOf)for(let D=0;D<G.anyOf.length;D++)G.anyOf[D]=F(G.anyOf[D]);else if(G.oneOf)for(let D=0;D<G.oneOf.length;D++)G.oneOf[D]=F(G.oneOf[D]);else if(G.allOf)for(let D=0;D<G.allOf.length;D++)G.allOf[D]=F(G.allOf[D]);else if(G.not)for(let D=0;D<G.not.length;D++)G.not[D]=F(G.not[D]);if(w)G[Z1]=w[Z1];if(G.anyOf||G.oneOf||G.allOf||G.not)return G;if(U){const D={};for(let[N,V]of Object.entries(U))D[N]=m(V,$,!1);return{...M,...G,properties:D}}else if(_?.map)return{...M,...G,items:_.map((D)=>m(D,$,!1))};return{...M,...G}}const J=j?.properties;if(J)for(let[Q,Y]of Object.entries(J))switch(Y[b0]){case X:const{anyOf:B,oneOf:K,allOf:U,not:_,type:M,...G}=Y,w=$.to();if(w.anyOf)for(let F=0;F<w.anyOf.length;F++)w.anyOf[F]={...G,...w.anyOf[F]};else if(w.oneOf)for(let F=0;F<w.oneOf.length;F++)w.oneOf[F]={...G,...w.oneOf[F]};else if(w.allOf)for(let F=0;F<w.allOf.length;F++)w.allOf[F]={...G,...w.allOf[F]};else if(w.not)for(let F=0;F<w.not.length;F++)w.not[F]={...G,...w.not[F]};J[Q]={...G,...m(G,$,!1)};break;case"Object":case"Union":J[Q]=m(Y,$,!1);break;default:if(Y.items)for(let F=0;F<Y.items.length;F++)Y.items[F]=m(Y.items[F],$,!1);else if(Y.anyOf||Y.oneOf||Y.allOf||Y.not)J[Q]=m(Y,$,!1);break}return j},u=(j,{models:$={},dynamic:W=!1,normalize:X=!1,additionalProperties:Z=!1,coerce:J=!1,additionalCoerce:Q=[]}={})=>{if(!j)return;if(typeof j==="string"&&!(j in $))return;let Y=typeof j==="string"?$[j]:j;if(J)Y=Y1(Y,[{from:I.Number(),to:()=>I.Numeric(),untilObjectFound:!0},{from:I.Boolean(),to:()=>I.BooleanString(),untilObjectFound:!0},...Array.isArray(Q)?Q:[Q]]);if(Y.type==="object"&&"additionalProperties"in Y===!1)Y.additionalProperties=Z;const B=(U)=>$0.Clean(Y,U);if(W){const U={schema:Y,references:"",checkFunc:()=>{},code:"",Check:(_)=>$0.Check(Y,_),Errors:(_)=>$0.Errors(Y,_),Code:()=>"",Clean:B};if(X&&Y.additionalProperties===!1)U.Clean=B;if(Y.config){if(U.config=Y.config,U?.schema?.config)delete U.schema.config}return U.parse=(_)=>{try{return U.Decode(_)}catch(M){throw[...U.Errors(_)].map(s)}},U.safeParse=(_)=>{try{return{success:!0,data:U.Decode(_),error:null}}catch(M){const G=[...K.Errors(_)].map(s);return{success:!1,data:null,error:G[0]?.summary,errors:G}}},U}const K=Q1.Compile(Y,Object.values($));if(K.Clean=B,Y.config){if(K.config=Y.config,K?.schema?.config)delete K.schema.config}return K.parse=(U)=>{try{return K.Decode(U)}catch(_){throw[...K.Errors(U)].map(s)}},K.safeParse=(U)=>{try{return{success:!0,data:K.Decode(U),error:null}}catch(_){const M=[...K.Errors(U)].map(s);return{success:!1,data:null,error:M[0]?.summary,errors:M}}},K},$j=(j,{models:$={},dynamic:W=!1,normalize:X=!1,additionalProperties:Z=!1})=>{if(!j)return;if(typeof j==="string"&&!(j in $))return;const J=typeof j==="string"?$[j]:j,Q=(B,K)=>{const U=(M)=>{if(!M||typeof M!=="object")return $0.Clean(B,M);let G=!1;const w=new Set,F=(D)=>{if(w.has(D))return D;if(w.add(D),Array.isArray(D))return D.map((A)=>F(A));const N={};for(let[A,T]of Object.entries(D))if(Array.isArray(T))N[A]=F(T),delete D[A];Object.assign(D,N);const V={};let O=D;while(O!==null){for(let A of Object.getOwnPropertyNames(O)){const T=Object.getOwnPropertyDescriptor(O,A);if(T&&typeof T.get==="function"&&A!=="__proto__")V[A]=D[A],delete O[A],G=!0}O=Object.getPrototypeOf(O)}return Object.assign(D,V),D};if(M=F(M),!G)return $0.Clean(B,M);if(Array.isArray(M))M=$0.Clean(B,M);else M={...$0.Clean(B,M)};return M};if(W)return{schema:B,references:"",checkFunc:()=>{},code:"",Check:(M)=>$0.Check(B,M),Errors:(M)=>$0.Errors(B,M),Code:()=>""};const _=Q1.Compile(B,K);if(X&&B.additionalProperties===!1)_.Clean=U;return _};if(b0 in J){if("additionalProperties"in J===!1)J.additionalProperties=Z;return{200:Q(J,Object.values($))}}const Y={};return Object.keys(J).forEach((B)=>{const K=J[+B];if(typeof K==="string"){if(K in $){const U=$[K];U.type==="object"&&"additionalProperties"in U,Y[+B]=b0 in U?Q(U,Object.values($)):U}return}if(K.type==="object"&&"additionalProperties"in K===!1)K.additionalProperties=Z;Y[+B]=b0 in K?Q(K,Object.values($)):K}),Y},M2=typeof Bun!=="undefined",D2=M2&&typeof Bun.hash==="function",N0=(j)=>{if(D2)return Bun.hash(j);let $=9;for(let W=0;W<j.length;)$=Math.imul($^j.charCodeAt(W++),387420489);return $=$^$>>>9},Vj,F0=()=>{if(!Vj)Vj=[{from:I.Object({}),to:()=>I.ObjectString({}),excludeRoot:!0},{from:I.Array(I.Any()),to:()=>I.ArrayString(I.Any())}];return Vj},Wj=({validator:j,defaultConfig:$={},config:W,dynamic:X,models:Z})=>{let J=u(j,{dynamic:X,models:Z,additionalProperties:!0,coerce:!0,additionalCoerce:F0()});if(p($))if(J)J.config=_2(J.config,W);else J=u(I.Cookie({}),{dynamic:X,models:Z,additionalProperties:!0}),J.config=$;return J},j0=(j,$)=>{if(!$)return;if(!Array.isArray($)){const X=$;if(j&&!X.checksum)X.checksum=j;if(X.scope==="scoped")X.scope="local";return X}const W=[...$];for(let X of W){if(j&&!X.checksum)X.checksum=j;if(X.scope==="scoped")X.scope="local"}return W},Oj=(j,$,W)=>{return{start:x(j.start,j0(W,$?.start)),request:x(j.request,j0(W,$?.request)),parse:x(j.parse,j0(W,$?.parse)),transform:x(j.transform,j0(W,$?.transform)),beforeHandle:x(j.beforeHandle,j0(W,$?.beforeHandle)),afterHandle:x(j.afterHandle,j0(W,$?.afterHandle)),mapResponse:x(j.mapResponse,j0(W,$?.mapResponse)),afterResponse:x(j.afterResponse,j0(W,$?.afterResponse)),trace:x(j.trace,j0(W,$?.trace)),error:x(j.error,j0(W,$?.error)),stop:x(j.stop,j0(W,$?.stop))}},K1=(j,$,{skipIfHasType:W=!1}={})=>{if(!j)return j;if(!Array.isArray(j)){if(W)j.scope??=$;else j.scope=$;return j}for(let X of j)if(W)X.scope??=$;else X.scope=$;return j},D0=(j)=>{if(!j)return j;if(!Array.isArray(j))switch(j.scope){case"global":case"scoped":return{...j};default:return{fn:j}}const $=[];for(let W of j)switch(W.scope){case"global":case"scoped":$.push({...W});break}return $},Ij=(j)=>{return{...j,type:j?.type,detail:j?.detail,parse:D0(j?.parse),transform:D0(j?.transform),beforeHandle:D0(j?.beforeHandle),afterHandle:D0(j?.afterHandle),mapResponse:D0(j?.mapResponse),afterResponse:D0(j?.afterResponse),error:D0(j?.error),trace:D0(j?.trace)}},U0={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},Xj=Object.fromEntries(Object.entries(U0).map(([j,$])=>[$,j])),J1=new TextEncoder,x0=async(j,$)=>{if(typeof j!=="string")throw new TypeError("Cookie value must be provided as a string.");if($===null)throw new TypeError("Secret key must be provided.");const W=await crypto.subtle.importKey("raw",J1.encode($),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),X=await crypto.subtle.sign("HMAC",W,J1.encode(j));return j+"."+F2(Buffer.from(X).toString("base64"))},Nj=async(j,$)=>{if(typeof j!=="string")throw new TypeError("Signed cookie string must be provided.");if($===null)throw new TypeError("Secret key must be provided.");const W=j.slice(0,j.lastIndexOf("."));return await x0(W,$)===j?W:!1},B1=(j,$)=>{if(!j||typeof j!=="object"||!$)return;for(let[W,X]of Object.entries($)){if(W in z2||!(W in j))continue;const Z=j[W];if(typeof Z==="function")Z(X),delete $[W]}},U1=({globalHook:j,localHook:$})=>(W)=>(X,Z)=>{if(typeof X==="function")X={fn:X};if("fn"in X||Array.isArray(X)){if(!$[W])$[W]=[];if(typeof $[W]==="function")$[W]=[$[W]];if(Array.isArray(X))$[W]=$[W].concat(X);else $[W].push(X);return}const{insert:J="after",stack:Q="local"}=X;if(typeof Z==="function")Z={fn:Z};if(Q==="global")if(!Array.isArray(Z))if(J==="before")j[W].unshift(Z);else j[W].push(Z);else if(J==="before")j[W]=Z.concat(j[W]);else j[W]=j[W].concat(Z);else{if(!$[W])$[W]=[];if(typeof $[W]==="function")$[W]=[$[W]];if(!Array.isArray(Z))if(J==="before")$[W].unshift(Z);else $[W].push(Z);else if(J==="before")$[W]=Z.concat($[W]);else $[W]=$[W].concat(Z)}},P2=(j)=>{if(typeof j==="number")return j;if(j.length<16){if(j.trim().length===0)return null;const $=Number(j);if(Number.isNaN($))return null;return $}if(j.length===16){if(j.trim().length===0)return null;const $=Number(j);if(Number.isNaN($)||$.toString()!==j)return null;return $}return null},Zj=(j)=>P2(j)!==null;class Aj{j;root=null;promises=[];constructor(j=console.error){this.onError=j}get size(){return this.promises.length}add(j){return this.promises.push(j),this.root||=this.drain(),j}async drain(){while(this.promises.length>0){try{await this.promises[0]}catch(j){this.onError(j)}this.promises.shift()}this.root=null}then(j,$){return(this.root??Promise.resolve()).then(j,$)}}var i=(j)=>{if(!j)return j;if(!Array.isArray(j)){if(typeof j==="function")return{fn:j};else if("fn"in j)return j}const $=[];for(let W of j)if(typeof W==="function")$.push({fn:W});else if("fn"in W)$.push(W);return $},_1=(j)=>{return{...j,start:i(j?.start),request:i(j?.request),parse:i(j?.parse),transform:i(j?.transform),beforeHandle:i(j?.beforeHandle),afterHandle:i(j?.afterHandle),mapResponse:i(j?.mapResponse),afterResponse:i(j?.afterResponse),trace:i(j?.trace),error:i(j?.error),stop:i(j?.stop)}},Sj=(j)=>{return{...j,start:j.start?.map(($)=>$.fn),request:j.request?.map(($)=>$.fn),parse:j.parse?.map(($)=>$.fn),transform:j.transform?.map(($)=>$.fn),beforeHandle:j.beforeHandle?.map(($)=>$.fn),afterHandle:j.afterHandle?.map(($)=>$.fn),afterResponse:j.afterResponse?.map(($)=>$.fn),mapResponse:j.mapResponse?.map(($)=>$.fn),trace:j.trace?.map(($)=>$.fn),error:j.error?.map(($)=>$.fn),stop:j.stop?.map(($)=>$.fn)}},u0=(j)=>({body:j.body,cookie:j.cookie,headers:j.headers,query:j.query,set:j.set,server:j.server}),d0=(j,$=302)=>Response.redirect(j,$),N2=Symbol("ElysiaFormData"),C0=Symbol("ElysiaRequestId"),P0=(j)=>{const $=new FormData;for(let[W,X]of Object.entries(j)){if(Array.isArray(X)){for(let Z of X){if(X instanceof File)$.append(W,X,X.name);$.append(W,Z)}continue}if(X instanceof File)$.append(W,X,X.name);$.append(W,X)}return $},Jj=()=>crypto.getRandomValues(new Uint32Array(1))[0],Qj=(j)=>{const $=[];for(let W=0;W<j.length;W++){const X=j[W];if(X.checksum){if($.includes(X.checksum))j.splice(W,1),W--;$.push(X.checksum)}}return j},v=(j,$="scoped")=>{if($==="scoped"){for(let W of j)if("scope"in W&&W.scope==="local")W.scope="scoped";return}for(let W of j)if("scope"in W)W.scope="global"};var w1=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,V0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),l0=(w1?.NODE_ENV??w1?.ENV)==="production",Tj=(j,$)=>{const W=$??(j in Xj?Xj[j]:j);return{[d]:U0[j]??j,response:W,_type:void 0,error:new Error(W)}};class Gj extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor(j){super(j??"INTERNAL_SERVER_ERROR")}}class O0 extends Error{code="NOT_FOUND";status=404;constructor(j){super(j??"NOT_FOUND")}}class Yj extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class k0 extends Error{j;code="INVALID_COOKIE_SIGNATURE";status=400;constructor(j,$){super($??`"${j}" has invalid cookie signature`);this.key=j}}var s=(j)=>{const{message:$,path:W,value:X,type:Z}=j,J=W.slice(1).replaceAll("/","."),Q=W==="";switch(Z){case 42:return{...j,summary:Q?"Value should not be provided":`Property '${J}' should not be provided`};case 45:return{...j,summary:Q?"Value is missing":`Property '${J}' is missing`};case 50:const Y=$.indexOf("'"),B=$.slice(Y+1,$.indexOf("'",Y+1));return{...j,summary:Q?"Value should be an email":`Property '${J}' should be ${B}`};case 54:return{...j,summary:`${$.slice(0,9)} property '${J}' to be ${$.slice(8)} but found: ${X}`};case 62:const K=j.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...j,summary:Q?`Value should be one of ${K}`:`Property '${J}' should be one of: ${K}`};default:return{summary:$,...j}}};class q extends Error{j;$;W;code="VALIDATION";status=422;constructor(j,$,W){if(W&&typeof W==="object"&&d in W)W=W.response;const X=l0?void 0:("Errors"in $)?$.Errors(W).First():c0.Errors($,W).First(),Z=X?.schema.error!==void 0?typeof X.schema.error==="function"?X.schema.error({type:j,validator:$,value:W,get errors(){return[...$.Errors(W)].map(s)}}):X.schema.error:void 0,J=X?.path||"root";let Q="";if(Z!==void 0)Q=typeof Z==="object"?JSON.stringify(Z):Z+"";else if(l0)Q=JSON.stringify({type:"validation",on:j,summary:s(X).summary,message:X?.message,found:W});else{const Y=$?.schema??$,B="Errors"in $?[...$.Errors(W)].map(s):[...c0.Errors($,W)].map(s);let K;try{K=c0.Create(Y)}catch(U){K={type:"Could not create expected value",message:U?.message,error:U}}Q=JSON.stringify({type:"validation",on:j,summary:B[0]?.summary,property:J,message:X?.message,expected:K,found:W,errors:B},null,2)}super(Q);this.type=j;this.validator=$;this.value=W;Object.setPrototypeOf(this,q.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(s):[...c0.Errors(this.validator,this.value)].map(s)}static simplifyModel(j){const $="schema"in j?j.schema:j;try{return c0.Create($)}catch{return $}}get model(){return q.simplifyModel(this.validator)}toResponse(j){return new Response(this.message,{status:400,headers:{...j,"content-type":"application/json"}})}}var Lj={open(j){j.data.open?.(j)},message(j,$){j.data.message?.(j,$)},drain(j){j.data.drain?.(j)},close(j,$,W){j.data.close?.(j,$,W)}};class g0{j;$;validator;_validator;constructor(j,$){this.raw=j;this.data=$;if(this.validator=j.data.validator,j.data.id)this.id=j.data.id;else this.id=Jj().toString()}get id(){return this.raw.data.id}set id(j){this.raw.data.id=j}get publish(){return(j,$=void 0,W)=>{if(this.validator?.Check($)===!1)throw new q("message",this.validator,$);if(typeof $==="object")$=JSON.stringify($);return this.raw.publish(j,$,W),this}}get send(){return(j)=>{if(this.validator?.Check(j)===!1)throw new q("message",this.validator,j);if(Buffer.isBuffer(j))return this.raw.send(j),this;if(typeof j==="object")j=JSON.stringify(j);return this.raw.send(j),this}}get subscribe(){return(j)=>{return this.raw.subscribe(j),this}}get unsubscribe(){return(j)=>{return this.raw.unsubscribe(j),this}}get cork(){return(j)=>{return this.raw.cork(j),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 qj="1.1.7";import{Value as n0}from"@sinclair/typebox/value";var I0=_j(o0(),1);function Kj(j){const $={};if(typeof j!=="string")return $;let W="",X="",Z=-1,J=-1,Q=0;const Y=j.length;for(let B=0;B<Y;B++)switch(j.charCodeAt(B)){case 38:const K=J>Z;if(!K)J=B;if(W=j.slice(Z+1,J),K||W.length>0){if(Q&1)W=W.replace(y0," ");if(Q&2)W=I0.default(W)||W;if(!$[W]){if(K){if(X=j.slice(J+1,B),Q&4)X=X.replace(y0," ");if(Q&8)X=I0.default(X)||X}$[W]=X}}W="",X="",Z=B,J=B,Q=0;break;case 61:if(J<=Z)J=B;else Q|=8;break;case 43:if(J>Z)Q|=4;else Q|=1;break;case 37:if(J>Z)Q|=8;else Q|=2;break}if(Z<Y){const B=J>Z;if(W=j.slice(Z+1,B?J:Y),B||W.length>0){if(Q&1)W=W.replace(y0," ");if(Q&2)W=I0.default(W)||W;if(!$[W]){if(B){if(X=j.slice(J+1,Y),Q&4)X=X.replace(y0," ");if(Q&8)X=I0.default(X)||X}$[W]=X}}}return $}var y0=/\+/g,p0=(j)=>{const $={};if(typeof j!=="string")return $;const W=j.length;let X="",Z="",J=-1,Q=-1,Y=!1,B=!1,K=!1,U=!1,_=!1,M=0;for(let G=0;G<W+1;G++){if(G!==W)M=j.charCodeAt(G);else M=38;switch(M){case 38:{if(_=Q>J,!_)Q=G;if(X=j.slice(J+1,Q),_||X.length>0){if(K)X=X.replace(y0," ");if(Y)X=I0.default(X)||X;if(_){if(Z=j.slice(Q+1,G),U)Z=Z.replace(y0," ");if(B)Z=I0.default(Z)||Z}const w=$[X];if(w===void 0)$[X]=Z;else if(w.pop)w.push(Z);else $[X]=[w,Z]}Z="",J=G,Q=G,Y=!1,B=!1,K=!1,U=!1;break}case 61:if(Q<=J)Q=G;else B=!0;break;case 43:if(Q>J)U=!0;else K=!0;break;case 37:if(Q>J)B=!0;else Y=!0;break}}return $};var M1=_j(o0(),1);var i0=Symbol("ElysiaTrace"),_0=()=>{const{promise:j,resolve:$}=Promise.withResolvers(),{promise:W,resolve:X}=Promise.withResolvers(),{promise:Z,resolve:J}=Promise.withResolvers(),Q=[],Y=[];return[(B)=>{if(B)Q.push(B);return j},(B)=>{const K=[],U=[];let _=null;for(let G=0;G<(B.total??0);G++){const{promise:w,resolve:F}=Promise.withResolvers(),{promise:D,resolve:N}=Promise.withResolvers(),{promise:V,resolve:O}=Promise.withResolvers(),A=[],T=[];K.push((E)=>{if(E)A.push(E);return w}),U.push((E)=>{const k={...E,end:D,error:V,index:G,onStop(b){if(b)T.push(b);return D}};F(k);for(let b=0;b<A.length;b++)A[b](k);return(b=null)=>{const z0=performance.now();if(b)_=b;const R={end:z0,error:b,get elapsed(){return z0-E.begin}};for(let Z0=0;Z0<T.length;Z0++)T[Z0](R);N(z0),O(b)}})}const M={...B,end:W,error:Z,onEvent(G){for(let w=0;w<K.length;w++)K[w](G)},onStop(G){if(G)Y.push(G);return W}};$(M);for(let G=0;G<Q.length;G++)Q[G](M);return{resolveChild:U,resolve(G=null){const w=performance.now();if(!G&&_)G=_;const F={end:w,error:G,get elapsed(){return w-B.begin}};for(let D=0;D<Y.length;D++)Y[D](F);X(w),J(G)}}}]},z1=(j)=>{return($)=>{const[W,X]=_0(),[Z,J]=_0(),[Q,Y]=_0(),[B,K]=_0(),[U,_]=_0(),[M,G]=_0(),[w,F]=_0(),[D,N]=_0(),[V,O]=_0();return j({id:$[C0],context:$,set:$.set,onRequest:W,onParse:Z,onTransform:Q,onBeforeHandle:B,onHandle:U,onAfterHandle:M,onMapResponse:D,onAfterResponse:V,onError:w}),{request:X,parse:J,transform:Y,beforeHandle:K,handle:_,afterHandle:G,error:F,mapResponse:N,afterResponse:O}}};var V2=new Headers().toJSON,D1={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},w0=(j)=>{if(!j)return!1;const $=j?.schema;return!!$&&D1.optional in $},W0=(j)=>{if(!j)return!1;const $=j?.schema??j;if($.anyOf)return $.anyOf.some(W0);if($.someOf)return $.someOf.some(W0);if($.allOf)return $.allOf.some(W0);if($.not)return $.not.some(W0);if($.type==="object"){const W=$.properties;if("additionalProperties"in $)return $.additionalProperties;for(let X of Object.keys(W)){const Z=W[X];if(Z.type==="object"){if(W0(Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if(W0(Z.anyOf[J]))return!0}return Z.additionalProperties}return!1}return!1},Ej=({context:j="c",trace:$,addFn:W})=>{if(!$.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let X=0;X<$.length;X++)W(`let report${X}, reportChild${X}, reportErr${X}, reportErrChild${X}; let trace${X} = ${j}[ELYSIA_TRACE]?.[${X}] ?? trace[${X}](${j});\n`);return(X,{name:Z,total:J=0}={})=>{if(!Z)Z="anonymous";const Q=X==="error"?"reportErr":"report";for(let Y=0;Y<$.length;Y++)W(`\n${Q}${Y} = trace${Y}.${X}({id,event: '${X}',name: '${Z}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let Y=0;Y<$.length;Y++)W(`\n${Q}${Y}.resolve()\n`)},resolveChild(Y){for(let B=0;B<$.length;B++)W(`${Q}Child${B} = ${Q}${B}.resolveChild?.shift()?.({id,event: '${X}',name: '${Y}',begin: performance.now()})\n`);return(B)=>{for(let K=0;K<$.length;K++)if(B)W(`
8
- if (${B} instanceof Error)
9
- ${Q}Child${K}?.(${B})
7
+ */var D1=W3,N1=J3;var Z3=Object.prototype.toString,o0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var X2=_1(e0(),1);class K0{$;X;Z;constructor($,X,Z={}){this.name=$;this.jar=X;this.initial=Z}get cookie(){if(!(this.name in this.jar))return this.initial;return this.jar[this.name]}set cookie($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=$}get value(){return this.cookie.value}set value($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name].value=$}get expires(){return this.cookie.expires}set expires($){this.cookie.expires=$}get maxAge(){return this.cookie.maxAge}set maxAge($){this.cookie.maxAge=$}get domain(){return this.cookie.domain}set domain($){this.cookie.domain=$}get path(){return this.cookie.path}set path($){this.cookie.path=$}get secure(){return this.cookie.secure}set secure($){this.cookie.secure=$}get httpOnly(){return this.cookie.httpOnly}set httpOnly($){this.cookie.httpOnly=$}get sameSite(){return this.cookie.sameSite}set sameSite($){this.cookie.sameSite=$}get priority(){return this.cookie.priority}set priority($){this.cookie.priority=$}get partitioned(){return this.cookie.partitioned}set partitioned($){this.cookie.partitioned=$}get secrets(){return this.cookie.secrets}set secrets($){this.cookie.secrets=$}update($){return this.cookie=Object.assign(this.cookie,typeof $==="function"?$(this.cookie):$),this}set($){return this.cookie=Object.assign({...this.initial,value:this.value},typeof $==="function"?$(this.cookie):$),this}remove(){if(this.value===void 0)return;return this.set({expires:new Date(0),maxAge:0,value:""}),this}toString(){return typeof this.value==="object"?JSON.stringify(this.value):this.value?.toString()??""}}var $2=($,X,Z)=>{if(!$.cookie)$.cookie={};return new Proxy(X,{get(W,j){if(j in X)return new K0(j,$.cookie,Object.assign({},Z??{},X[j]));return new K0(j,$.cookie,Object.assign({},Z))}})},$1=async($,X,{secrets:Z,sign:W,...j}={})=>{if(!X)return $2($,{},j);const J=typeof Z==="string";if(W&&W!==!0&&!Array.isArray(W))W=[W];const Q={},Y=D1(X);for(let[U,B]of Object.entries(Y)){let K=X2.default(B);if(W===!0||W?.includes(U)){if(!Z)throw new Error("No secret is provided to cookie plugin");if(J){const w=await I1(K,Z);if(w===!1)throw new v0(U);K=w}else{let w=!0;for(let F=0;F<Z.length;F++){const G=await I1(K,Z[F]);if(G!==!1){w=!0,K=G;break}}if(!w)throw new v0(U)}}Q[U]={value:K}}return $2($,Q,j)};async function*h0($){const X=$.body;if(!X)return;const Z=X.getReader(),W=new TextDecoder;try{while(!0){const{done:j,value:J}=await Z.read();if(j)break;yield W.decode(J)}}finally{Z.releaseLock()}}var Z2="toJSON"in new Headers,p=($)=>{if(!$)return!1;for(let X in $)return!0;return!1},u0=($,X)=>{const Z=$.size;if(!X&&Z||Z&&X&&X.status!==206&&X.status!==304&&X.status!==412&&X.status!==416){if(X){if(X.headers instanceof Headers){if(Z2)X.headers=X.headers.toJSON();else for(let[W,j]of X.headers.entries())if(W in X.headers)X.headers[W]=j}return new Response($,{status:X.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${Z-1}/${Z}`},X.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${Z-1}/${Z}`}})}return new Response($)},W2=($,X)=>{if(!$)return $;$.delete("set-cookie");for(let Z=0;Z<X.length;Z++){const W=X[Z].indexOf("=");$.append("set-cookie",`${X[Z].slice(0,W)}=${X[Z].slice(W+1)||""}`)}return $},J2=($)=>{if(!$||!p($))return;const X=[];for(let[Z,W]of Object.entries($)){if(!Z||!W)continue;const j=W.value;if(j===void 0||j===null)continue;X.push(N1(Z,typeof j==="object"?JSON.stringify(j):j+"",W))}if(X.length===0)return;if(X.length===1)return X[0];return X},G0=async($,X,Z)=>{let W=$.next();if(W instanceof Promise)W=await W;if(W.done){if(X)return f(W.value,X,Z);return $0(W.value,Z)}return new Response(new ReadableStream({async start(j){let J=!1;if(Z?.signal.addEventListener("abort",()=>{J=!0;try{j.close()}catch{}}),W.value!==void 0&&W.value!==null)if(typeof W.value==="object")try{j.enqueue(Buffer.from(JSON.stringify(W.value)))}catch{j.enqueue(Buffer.from(W.value.toString()))}else j.enqueue(Buffer.from(W.value.toString()));for await(let Q of $){if(J)break;if(Q===void 0||Q===null)continue;if(typeof Q==="object")try{j.enqueue(Buffer.from(JSON.stringify(Q)))}catch{j.enqueue(Buffer.from(Q.toString()))}else j.enqueue(Buffer.from(Q.toString()));await new Promise((Y)=>setTimeout(()=>Y(),0))}try{j.close()}catch{}}}),{...X,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...X?.headers}})},f=($,X,Z)=>{if(p(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=w0[X.status];if(X.redirect){if(X.headers.Location=X.redirect,!X.status||X.status<300||X.status>=400)X.status=302}if(X.cookie&&p(X.cookie)){const W=J2(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=W2(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return u0($,X);case"Array":return Response.json($,X);case"Object":const W=$[d];if(W)return X.status=W,f($.response,X,Z);for(let J in Object.values($))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(N0($));default:break}return Response.json($,X);case"ReadableStream":if(!X.headers["content-type"]?.startsWith("text/event-stream"))X.headers["content-type"]="text/event-stream; charset=utf-8";return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,X);case void 0:if(!$)return new Response("",X);return Response.json($,X);case"Response":let j=!1;if(X.headers instanceof Headers)for(let J of X.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Q of X.headers.getSetCookie())$.headers.append("set-cookie",Q)}else $.headers.append(J,X.headers?.get(J)??"");else for(let J in X.headers)$.headers.append(J,X.headers[J]);if($.status!==X.status)X.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return G0(h0($),X,Z);return $;case"Error":return Y0($,X);case"Promise":return $.then((J)=>f(J,X));case"Function":return f($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"Cookie":if($ instanceof K0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response){let J=!1;if(X.headers instanceof Headers)for(let Q of X.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let Y of X.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(Q,X.headers?.get(Q)??"");else for(let Q in X.headers)$.headers.append(Q,X.headers[Q]);if(Z2)X.headers=$.headers.toJSON();else for(let[Q,Y]of $.headers.entries())if(Q in X.headers)X.headers[Q]=Y;return $}if($ instanceof Promise)return $.then((J)=>f(J,X));if($ instanceof Error)return Y0($,X);if(typeof $?.next==="function")return G0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($,X)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,X);case"Array":return Response.json($);case"Object":const W=$[d];if(W)return X.status=W,f($.response,X,Z);for(let j in Object.values($))switch(j?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(N0($),X);default:break}return Response.json($,X);case"ReadableStream":return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return G0(h0($),X,Z);return $;case"Error":return Y0($,X);case"Promise":return $.then((j)=>{const J=$0(j,Z);if(J!==void 0)return J;return new Response("")});case"Function":return $0($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof K0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($,X);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((j)=>f(j,X));if($ instanceof Error)return Y0($,X);if(typeof $?.next==="function")return G0($,X,Z);if("toResponse"in $)return f($.toResponse(),X);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($)}},y=($,X,Z)=>{if($===void 0||$===null)return;if(p(X.headers)||X.status!==200||X.redirect||X.cookie){if(typeof X.status==="string")X.status=w0[X.status];if(X.redirect){if(X.headers.Location=X.redirect,!X.status||X.status<300||X.status>=400)X.status=302}if(X.cookie&&p(X.cookie)){const W=J2(X.cookie);if(W)X.headers["set-cookie"]=W}if(X.headers["set-cookie"]&&Array.isArray(X.headers["set-cookie"]))X.headers=W2(new Headers(X.headers),X.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,X);case"Blob":return u0($,X);case"Array":return Response.json($,X);case"Object":const W=$[d];if(W)return X.status=W,y($.response,X,Z);for(let J in Object.values($))switch(J?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(N0($),X);default:break}return Response.json($,X);case"ReadableStream":if(!X.headers["content-type"]?.startsWith("text/event-stream"))X.headers["content-type"]="text/event-stream; charset=utf-8";return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,X);case void 0:if(!$)return;return Response.json($,X);case"Response":let j=!1;if(X.headers instanceof Headers)for(let J of X.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Q of X.headers.getSetCookie())$.headers.append("set-cookie",Q)}else $.headers.append(J,X.headers?.get(J)??"");else for(let J in X.headers)$.headers.append(J,X.headers[J]);if($.status!==X.status)X.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return G0(h0($),X,Z);return $;case"Promise":return $.then((J)=>{const Q=y(J,X);if(Q!==void 0)return Q});case"Error":return Y0($,X);case"Function":return y($(),X);case"Number":case"Boolean":return new Response($.toString(),X);case"FormData":return new Response($);case"Cookie":if($ instanceof K0)return new Response($.value,X);return new Response($?.toString(),X);default:if($ instanceof Response){let J=!1;if(X.headers instanceof Headers)for(let Q of X.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let Y of X.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(Q,X.headers?.get(Q)??"");else for(let Q in X.headers)$.headers.append(Q,X.headers[Q]);if($.status!==X.status)X.status=$.status;return $}if($ instanceof Promise)return $.then((J)=>y(J,X));if($ instanceof Error)return Y0($,X);if(typeof $?.next==="function")return G0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const J=$.charCodeAt(0);if(J===123||J===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($,X)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,X);case"Array":return Response.json($);case"Object":const W=$[d];if(W)return X.status=W,y($.response,X,Z);for(let j in Object.values($))switch(j?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(N0($),X);default:break}return Response.json($,X);case"ReadableStream":return Z?.signal.addEventListener("abort",{handleEvent(){if(!Z?.signal.aborted)$.cancel(Z)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return G0(h0($));return $;case"Promise":return $.then((j)=>{const J=y(j,X);if(J!==void 0)return J});case"Error":return Y0($,X);case"Function":return $0($(),Z);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof K0)return new Response($.value,X);return new Response($?.toString(),X);case"FormData":return new Response($);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((j)=>y(j,X));if($ instanceof Error)return Y0($,X);if(typeof $?.next==="function")return G0($,X,Z);if("toResponse"in $)return y($.toResponse(),X);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!X.headers["Content-Type"])X.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),X)}}return new Response($)}},$0=($,X)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($);case"Array":return Response.json($);case"Object":if($[d])return f($.response,{status:$[d],headers:{}});$:for(let Z of Object.values($))switch(Z?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(N0($));case"Object":break $;default:break}return Response.json($);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return G0(h0($));return $;case"Error":return Y0($);case"Promise":return $.then((Z)=>$0(Z,X));case"Function":return $0($(),X);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return new Response($.body,{headers:{"Content-Type":"application/json"}});if($ instanceof Promise)return $.then((Z)=>$0(Z,X));if($ instanceof Error)return Y0($);if(typeof $?.next==="function")return G0($,void 0,X);if("toResponse"in $)return $0($.toResponse());if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},Y0=($,X)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:X?.status!==200?X?.status??500:500,headers:X?.headers});function N3($){let X=$;while(X.endsWith("="))X=X.slice(0,-1);return X}var X1=($,X)=>{const Z=new URL($);return Z.pathname=X,Z.toString()},w3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||p(Object.getPrototypeOf($)),V1=($)=>$&&typeof $==="object"&&!Array.isArray($),c=($,X,{skipKeys:Z,override:W=!0}={})=>{if(!V1($)||!V1(X))return $;for(let[j,J]of Object.entries(X)){if(Z?.includes(j))continue;if(!V1(J)||!(j in $)||w3(J)){if(W||!(j in $))$[j]=J;continue}$[j]=c($[j],J,{skipKeys:Z,override:W})}return $},_3=($,X)=>{const{properties:Z,...W}=$??{},{properties:j,...J}=X??{};return c(W,J)},x=($=[],X=[])=>{if(!$)return[];if(!X)return $;const Z=[],W=[];if(!Array.isArray($))$=[$];if(!Array.isArray(X))X=[X];for(let j of $)if(Z.push(j),j.checksum)W.push(j.checksum);for(let j of X)if(!W.includes(j.checksum))Z.push(j);return Z},F3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],M3=F3.reduce(($,X)=>($[X]=!0,$),{}),Y2=($,X)=>{const Z=(W)=>typeof W==="object"&&Object.keys(W).every(j1);if(Z($)&&Z(X))return{...$,...X};return X??$},b0=($,X)=>{return{body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,cookie:X?.cookie??$?.cookie,response:Y2($?.response,X?.response)}},l=($,X)=>{return{...$,...X,body:X?.body??$?.body,headers:X?.headers??$?.headers,params:X?.params??$?.params,query:X?.query??$?.query,cookie:X?.cookie??$?.cookie,response:Y2($?.response,X?.response),type:$?.type||X?.type,detail:c(X?.detail??{},$?.detail??{}),parse:x($?.parse,X?.parse),transform:x($?.transform,X?.transform),beforeHandle:x($?.beforeHandle,X?.beforeHandle),afterHandle:x($?.afterHandle,X?.afterHandle),mapResponse:x($?.mapResponse,X?.mapResponse),afterResponse:x($?.afterResponse,X?.afterResponse),trace:x($?.trace,X?.trace),error:x($?.error,X?.error)}},B2=($,X,Z=!0)=>{if(!Array.isArray(X))return h($,X,Z);for(let W of X)$=h($,W,Z);return $},h=($,X,Z=!0)=>{if(!$)return $;if(X.untilObjectFound&&!Z&&$.type==="object")return $;const W=X.from[R0];if($.oneOf){for(let Q=0;Q<$.oneOf.length;Q++)$.oneOf[Q]=h($.oneOf[Q],X,Z);return $}if($.anyOf){for(let Q=0;Q<$.anyOf.length;Q++)$.anyOf[Q]=h($.anyOf[Q],X,Z);return $}if($.allOf){for(let Q=0;Q<$.allOf.length;Q++)$.allOf[Q]=h($.allOf[Q],X,Z);return $}if($.not){for(let Q=0;Q<$.not.length;Q++)$.not[Q]=h($.not[Q],X,Z);return $}const j=Z&&!!X.excludeRoot;if($[R0]===W){const{anyOf:Q,oneOf:Y,allOf:U,not:B,properties:K,items:w,...F}=$,G=X.to();let M;const D=(z)=>{if(K&&z.type==="object"){const V={};for(let[A,L]of Object.entries(K))V[A]=h(L,X,!1);return{...F,...z,properties:V}}if(w&&z.type==="array")return{...F,...z,items:h(w,X,!1)};const I={...F,...z};if(delete I.required,K&&z.type==="string"&&z.format==="ObjectString"&&z.default==="{}")M=O.ObjectString(K,F),I.default=JSON.stringify(B0.Create(O.Object(K))),I.properties=K;if(w&&z.type==="string"&&z.format==="ArrayString"&&z.default==="[]")M=O.ArrayString(w,F),I.default=JSON.stringify(B0.Create(O.Array(w))),I.items=w;return I};if(j){if(K){const z={};for(let[I,V]of Object.entries(K))z[I]=h(V,X,!1);return{...F,properties:z}}else if(w?.map)return{...F,items:w.map((z)=>h(z,X,!1))};return F}if(G.anyOf)for(let z=0;z<G.anyOf.length;z++)G.anyOf[z]=D(G.anyOf[z]);else if(G.oneOf)for(let z=0;z<G.oneOf.length;z++)G.oneOf[z]=D(G.oneOf[z]);else if(G.allOf)for(let z=0;z<G.allOf.length;z++)G.allOf[z]=D(G.allOf[z]);else if(G.not)for(let z=0;z<G.not.length;z++)G.not[z]=D(G.not[z]);if(M)G[j2]=M[j2];if(G.anyOf||G.oneOf||G.allOf||G.not)return G;if(K){const z={};for(let[I,V]of Object.entries(K))z[I]=h(V,X,!1);return{...F,...G,properties:z}}else if(w?.map)return{...F,...G,items:w.map((z)=>h(z,X,!1))};return{...F,...G}}const J=$?.properties;if(J)for(let[Q,Y]of Object.entries(J))switch(Y[R0]){case W:const{anyOf:U,oneOf:B,allOf:K,not:w,type:F,...G}=Y,M=X.to();if(M.anyOf)for(let D=0;D<M.anyOf.length;D++)M.anyOf[D]={...G,...M.anyOf[D]};else if(M.oneOf)for(let D=0;D<M.oneOf.length;D++)M.oneOf[D]={...G,...M.oneOf[D]};else if(M.allOf)for(let D=0;D<M.allOf.length;D++)M.allOf[D]={...G,...M.allOf[D]};else if(M.not)for(let D=0;D<M.not.length;D++)M.not[D]={...G,...M.not[D]};J[Q]={...G,...h(G,X,!1)};break;case"Object":case"Union":J[Q]=h(Y,X,!1);break;default:if(Y.items)for(let D=0;D<Y.items.length;D++)Y.items[D]=h(Y.items[D],X,!1);else if(Y.anyOf||Y.oneOf||Y.allOf||Y.not)J[Q]=h(Y,X,!1);break}return $},m=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:j=!1,coerce:J=!1,additionalCoerce:Q=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;let Y=typeof $==="string"?X[$]:$;if(J)Y=B2(Y,[{from:O.Number(),to:()=>O.Numeric(),untilObjectFound:!0},{from:O.Boolean(),to:()=>O.BooleanString(),untilObjectFound:!0},...Array.isArray(Q)?Q:[Q]]);if(Y.type==="object"&&"additionalProperties"in Y===!1)Y.additionalProperties=j;const U=(K)=>B0.Clean(Y,K);if(Z){const K={schema:Y,references:"",checkFunc:()=>{},code:"",Check:(w)=>B0.Check(Y,w),Errors:(w)=>B0.Errors(Y,w),Code:()=>"",Clean:U};if(W&&Y.additionalProperties===!1)K.Clean=U;if(Y.config){if(K.config=Y.config,K?.schema?.config)delete K.schema.config}return K.parse=(w)=>{try{return K.Decode(w)}catch(F){throw[...K.Errors(w)].map(r)}},K.safeParse=(w)=>{try{return{success:!0,data:K.Decode(w),error:null}}catch(F){const G=[...B.Errors(w)].map(r);return{success:!1,data:null,error:G[0]?.summary,errors:G}}},K}const B=G2.Compile(Y,Object.values(X));if(B.Clean=U,Y.config){if(B.config=Y.config,B?.schema?.config)delete B.schema.config}return B.parse=(K)=>{try{return B.Decode(K)}catch(w){throw[...B.Errors(K)].map(r)}},B.safeParse=(K)=>{try{return{success:!0,data:B.Decode(K),error:null}}catch(w){const F=[...B.Errors(K)].map(r);return{success:!1,data:null,error:F[0]?.summary,errors:F}}},B},Z1=($,{models:X={},dynamic:Z=!1,normalize:W=!1,additionalProperties:j=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in X))return;const J=typeof $==="string"?X[$]:$,Q=(U,B)=>{const K=(F)=>{if(!F||typeof F!=="object")return B0.Clean(U,F);if(Array.isArray(F))F=B0.Clean(U,F.map((G)=>m0(G)));else F=B0.Clean(U,m0(F));return F};if(Z)return{schema:U,references:"",checkFunc:()=>{},code:"",Check:(F)=>B0.Check(U,F),Errors:(F)=>B0.Errors(U,F),Code:()=>""};const w=G2.Compile(U,B);if(W&&U.additionalProperties===!1)w.Clean=K;return w};if(R0 in J){if("additionalProperties"in J===!1)J.additionalProperties=j;return{200:Q(J,Object.values(X))}}const Y={};return Object.keys(J).forEach((U)=>{const B=J[+U];if(typeof B==="string"){if(B in X){const K=X[B];K.type==="object"&&"additionalProperties"in K,Y[+U]=R0 in K?Q(K,Object.values(X)):K}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=j;Y[+U]=R0 in B?Q(B,Object.values(X)):B}),Y},z3=typeof Bun!=="undefined",D3=z3&&typeof Bun.hash==="function",P0=($)=>{if(D3)return Bun.hash($);let X=9;for(let Z=0;Z<$.length;)X=Math.imul(X^$.charCodeAt(Z++),387420489);return X=X^X>>>9},A1,D0=()=>{if(!A1)A1=[{from:O.Object({}),to:()=>O.ObjectString({}),excludeRoot:!0},{from:O.Array(O.Any()),to:()=>O.ArrayString(O.Any())}];return A1},W1=({validator:$,defaultConfig:X={},config:Z,dynamic:W,models:j})=>{let J=m($,{dynamic:W,models:j,additionalProperties:!0,coerce:!0,additionalCoerce:D0()});if(p(X))if(J)J.config=_3(J.config,Z);else J=m(O.Cookie({}),{dynamic:W,models:j,additionalProperties:!0}),J.config=X;return J},X0=($,X)=>{if(!X)return;if(!Array.isArray(X)){const W=X;if($&&!W.checksum)W.checksum=$;if(W.scope==="scoped")W.scope="local";return W}const Z=[...X];for(let W of Z){if($&&!W.checksum)W.checksum=$;if(W.scope==="scoped")W.scope="local"}return Z},O1=($,X,Z)=>{return{start:x($.start,X0(Z,X?.start)),request:x($.request,X0(Z,X?.request)),parse:x($.parse,X0(Z,X?.parse)),transform:x($.transform,X0(Z,X?.transform)),beforeHandle:x($.beforeHandle,X0(Z,X?.beforeHandle)),afterHandle:x($.afterHandle,X0(Z,X?.afterHandle)),mapResponse:x($.mapResponse,X0(Z,X?.mapResponse)),afterResponse:x($.afterResponse,X0(Z,X?.afterResponse)),trace:x($.trace,X0(Z,X?.trace)),error:x($.error,X0(Z,X?.error)),stop:x($.stop,X0(Z,X?.stop))}},U2=($,X,{skipIfHasType:Z=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(Z)$.scope??=X;else $.scope=X;return $}for(let W of $)if(Z)W.scope??=X;else W.scope=X;return $},z0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const X=[];for(let Z of $)switch(Z.scope){case"global":case"scoped":X.push({...Z});break}return X},C1=($)=>{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)}},w0={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},J1=Object.fromEntries(Object.entries(w0).map(([$,X])=>[X,$])),Q2=new TextEncoder,x0=async($,X)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(X===null)throw new TypeError("Secret key must be provided.");const Z=await crypto.subtle.importKey("raw",Q2.encode(X),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),W=await crypto.subtle.sign("HMAC",Z,Q2.encode($));return $+"."+N3(Buffer.from(W).toString("base64"))},I1=async($,X)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(X===null)throw new TypeError("Secret key must be provided.");const Z=$.slice(0,$.lastIndexOf("."));return await x0(Z,X)===$?Z:!1},K2=($,X)=>{if(!$||typeof $!=="object"||!X)return;for(let[Z,W]of Object.entries(X)){if(Z in M3||!(Z in $))continue;const j=$[Z];if(typeof j==="function")j(W),delete X[Z]}},w2=({globalHook:$,localHook:X})=>(Z)=>(W,j)=>{if(typeof W==="function")W={fn:W};if("fn"in W||Array.isArray(W)){if(!X[Z])X[Z]=[];if(typeof X[Z]==="function")X[Z]=[X[Z]];if(Array.isArray(W))X[Z]=X[Z].concat(W);else X[Z].push(W);return}const{insert:J="after",stack:Q="local"}=W;if(typeof j==="function")j={fn:j};if(Q==="global")if(!Array.isArray(j))if(J==="before")$[Z].unshift(j);else $[Z].push(j);else if(J==="before")$[Z]=j.concat($[Z]);else $[Z]=$[Z].concat(j);else{if(!X[Z])X[Z]=[];if(typeof X[Z]==="function")X[Z]=[X[Z]];if(!Array.isArray(j))if(J==="before")X[Z].unshift(j);else X[Z].push(j);else if(J==="before")X[Z]=j.concat(X[Z]);else X[Z]=X[Z].concat(j)}},P3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;const X=Number($);if(Number.isNaN(X))return null;return X}if($.length===16){if($.trim().length===0)return null;const X=Number($);if(Number.isNaN(X)||X.toString()!==$)return null;return X}return null},j1=($)=>P3($)!==null;class S1{$;root=null;promises=[];constructor($=console.error){this.onError=$}get size(){return this.promises.length}add($){return this.promises.push($),this.root||=this.drain(),$}async drain(){while(this.promises.length>0){try{await this.promises[0]}catch($){this.onError($)}this.promises.shift()}this.root=null}then($,X){return(this.root??Promise.resolve()).then($,X)}}var i=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const X=[];for(let Z of $)if(typeof Z==="function")X.push({fn:Z});else if("fn"in Z)X.push(Z);return X},_2=($)=>{return{...$,start:i($?.start),request:i($?.request),parse:i($?.parse),transform:i($?.transform),beforeHandle:i($?.beforeHandle),afterHandle:i($?.afterHandle),mapResponse:i($?.mapResponse),afterResponse:i($?.afterResponse),trace:i($?.trace),error:i($?.error),stop:i($?.stop)}},L1=($)=>{return{...$,start:$.start?.map((X)=>X.fn),request:$.request?.map((X)=>X.fn),parse:$.parse?.map((X)=>X.fn),transform:$.transform?.map((X)=>X.fn),beforeHandle:$.beforeHandle?.map((X)=>X.fn),afterHandle:$.afterHandle?.map((X)=>X.fn),afterResponse:$.afterResponse?.map((X)=>X.fn),mapResponse:$.mapResponse?.map((X)=>X.fn),trace:$.trace?.map((X)=>X.fn),error:$.error?.map((X)=>X.fn),stop:$.stop?.map((X)=>X.fn)}},d0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),c0=($,X=302)=>Response.redirect($,X),I3=Symbol("ElysiaFormData"),I0=Symbol("ElysiaRequestId"),N0=($)=>{const X=new FormData;for(let[Z,W]of Object.entries($)){if(Array.isArray(W)){for(let j of W){if(W instanceof File)X.append(Z,W,W.name);X.append(Z,j)}continue}if(W instanceof File)X.append(Z,W,W.name);X.append(Z,W)}return X},Q1=()=>crypto.getRandomValues(new Uint32Array(1))[0],G1=($)=>{const X=[];for(let Z=0;Z<$.length;Z++){const W=$[Z];if(W.checksum){if(X.includes(W.checksum))$.splice(Z,1),Z--;X.push(W.checksum)}}return $},k=($,X="scoped")=>{if(X==="scoped"){for(let Z of $)if("scope"in Z&&Z.scope==="local")Z.scope="scoped";return}for(let Z of $)if("scope"in Z)Z.scope="global"},m0=($,X=new WeakMap)=>{if(typeof $!=="object"||$===null)return $;if(Array.isArray($))return $.map((J)=>m0(J,X));if(X.has($))return X.get($);const Z={};for(let J of Object.keys($)){const Q=$[J];if(typeof Q==="object"&&Q!==null)Z[J]=m0(Q,X);else Z[J]=Q}const W=Object.getPrototypeOf($);if(!W)return Z;const j=Object.getOwnPropertyNames(W);for(let J of j){const Q=Object.getOwnPropertyDescriptor(Object.getPrototypeOf($),J);if(Q&&typeof Q.get==="function")Z[J]=m0($[J])}return Z};var F2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,V0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),p0=(F2?.NODE_ENV??F2?.ENV)==="production",q1=($,X)=>{const Z=X??($ in J1?J1[$]:$);return{[d]:w0[$]??$,response:Z,_type:void 0,error:new Error(Z)}};class Y1 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 B1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,X){super(X??`"${$}" has invalid cookie signature`);this.key=$}}var r=($)=>{if(!$)return{summary:void 0};const{message:X,path:Z,value:W,type:j}=$,J=Z.slice(1).replaceAll("/","."),Q=Z==="";switch(j){case 42:return{...$,summary:Q?"Value should not be provided":`Property '${J}' should not be provided`};case 45:return{...$,summary:Q?"Value is missing":`Property '${J}' is missing`};case 50:const Y=X.indexOf("'"),U=X.slice(Y+1,X.indexOf("'",Y+1));return{...$,summary:Q?"Value should be an email":`Property '${J}' should be ${U}`};case 54:return{...$,summary:`${X.slice(0,9)} property '${J}' to be ${X.slice(8)} but found: ${W}`};case 62:const B=$.schema.anyOf.map((K)=>`'${K?.format??K.type}'`).join(", ");return{...$,summary:Q?`Value should be one of ${B}`:`Property '${J}' should be one of: ${B}`};default:return{summary:X,...$}}};class T extends Error{$;X;Z;code="VALIDATION";status=422;constructor($,X,Z){if(Z&&typeof Z==="object"&&d in Z)Z=Z.response;const W=p0?void 0:("Errors"in X)?X.Errors(Z).First():l0.Errors(X,Z).First(),j=W?.schema.error!==void 0?typeof W.schema.error==="function"?W.schema.error({type:$,validator:X,value:Z,get errors(){return[...X.Errors(Z)].map(r)}}):W.schema.error:void 0,J=W?.path||"root";let Q="";if(j!==void 0)Q=typeof j==="object"?JSON.stringify(j):j+"";else if(p0)Q=JSON.stringify({type:"validation",on:$,summary:r(W).summary,message:W?.message,found:Z});else{const Y=X?.schema??X,U="Errors"in X?[...X.Errors(Z)].map(r):[...l0.Errors(X,Z)].map(r);let B;try{B=l0.Create(Y)}catch(K){B={type:"Could not create expected value",message:K?.message,error:K}}Q=JSON.stringify({type:"validation",on:$,summary:U[0]?.summary,property:J,message:W?.message,expected:B,found:Z,errors:U},null,2)}super(Q);this.type=$;this.validator=X;this.value=Z;Object.setPrototypeOf(this,T.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(r):[...l0.Errors(this.validator,this.value)].map(r)}static simplifyModel($){const X="schema"in $?$.schema:$;try{return l0.Create(X)}catch{return X}}get model(){return T.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var T1={open($){$.data.open?.($)},message($,X){$.data.message?.($,X)},drain($){$.data.drain?.($)},close($,X,Z){$.data.close?.($,X,Z)}};class g0{$;X;validator;_validator;constructor($,X){this.raw=$;this.data=X;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=Q1().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,X=void 0,Z)=>{if(this.validator?.Check(X)===!1)throw new T("message",this.validator,X);if(typeof X==="object")X=JSON.stringify(X);return this.raw.publish($,X,Z),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new T("message",this.validator,$);if(Buffer.isBuffer($))return this.raw.send($),this;if(typeof $==="object")$=JSON.stringify($);return this.raw.send($),this}}get subscribe(){return($)=>{return this.raw.subscribe($),this}}get unsubscribe(){return($)=>{return this.raw.unsubscribe($),this}}get cork(){return($)=>{return this.raw.cork($),this}}get close(){return()=>{return this.raw.close(),this}}get terminate(){return this.raw.terminate.bind(this.raw)}get isSubscribed(){return this.raw.isSubscribed.bind(this.raw)}get remoteAddress(){return this.raw.remoteAddress}}var H1="1.1.8";import{Value as t0}from"@sinclair/typebox/value";var O0=_1(e0(),1);function U1($){const X={};if(typeof $!=="string")return X;let Z="",W="",j=-1,J=-1,Q=0;const Y=$.length;for(let U=0;U<Y;U++)switch($.charCodeAt(U)){case 38:const B=J>j;if(!B)J=U;if(Z=$.slice(j+1,J),B||Z.length>0){if(Q&1)Z=Z.replace(f0," ");if(Q&2)Z=O0.default(Z)||Z;if(!X[Z]){if(B){if(W=$.slice(J+1,U),Q&4)W=W.replace(f0," ");if(Q&8)W=O0.default(W)||W}X[Z]=W}}Z="",W="",j=U,J=U,Q=0;break;case 61:if(J<=j)J=U;else Q|=8;break;case 43:if(J>j)Q|=4;else Q|=1;break;case 37:if(J>j)Q|=8;else Q|=2;break}if(j<Y){const U=J>j;if(Z=$.slice(j+1,U?J:Y),U||Z.length>0){if(Q&1)Z=Z.replace(f0," ");if(Q&2)Z=O0.default(Z)||Z;if(!X[Z]){if(U){if(W=$.slice(J+1,Y),Q&4)W=W.replace(f0," ");if(Q&8)W=O0.default(W)||W}X[Z]=W}}}return X}var f0=/\+/g,i0=($)=>{const X={};if(typeof $!=="string")return X;const Z=$.length;let W="",j="",J=-1,Q=-1,Y=!1,U=!1,B=!1,K=!1,w=!1,F=0;for(let G=0;G<Z+1;G++){if(G!==Z)F=$.charCodeAt(G);else F=38;switch(F){case 38:{if(w=Q>J,!w)Q=G;if(W=$.slice(J+1,Q),w||W.length>0){if(B)W=W.replace(f0," ");if(Y)W=O0.default(W)||W;if(w){if(j=$.slice(Q+1,G),K)j=j.replace(f0," ");if(U)j=O0.default(j)||j}const M=X[W];if(M===void 0)X[W]=j;else if(M.pop)M.push(j);else X[W]=[M,j]}j="",J=G,Q=G,Y=!1,U=!1,B=!1,K=!1;break}case 61:if(Q<=J)Q=G;else U=!0;break;case 43:if(Q>J)K=!0;else B=!0;break;case 37:if(Q>J)U=!0;else Y=!0;break}}return X};var z2=_1(e0(),1);var n0=Symbol("ElysiaTrace"),_0=()=>{const{promise:$,resolve:X}=Promise.withResolvers(),{promise:Z,resolve:W}=Promise.withResolvers(),{promise:j,resolve:J}=Promise.withResolvers(),Q=[],Y=[];return[(U)=>{if(U)Q.push(U);return $},(U)=>{const B=[],K=[];let w=null;for(let G=0;G<(U.total??0);G++){const{promise:M,resolve:D}=Promise.withResolvers(),{promise:z,resolve:I}=Promise.withResolvers(),{promise:V,resolve:A}=Promise.withResolvers(),L=[],q=[];B.push((E)=>{if(E)L.push(E);return M}),K.push((E)=>{const v={...E,end:z,error:V,index:G,onStop(R){if(R)q.push(R);return z}};D(v);for(let R=0;R<L.length;R++)L[R](v);return(R=null)=>{const F0=performance.now();if(R)w=R;const b={end:F0,error:R,get elapsed(){return F0-E.begin}};for(let J0=0;J0<q.length;J0++)q[J0](b);I(F0),A(R)}})}const F={...U,end:Z,error:j,onEvent(G){for(let M=0;M<B.length;M++)B[M](G)},onStop(G){if(G)Y.push(G);return Z}};X(F);for(let G=0;G<Q.length;G++)Q[G](F);return{resolveChild:K,resolve(G=null){const M=performance.now();if(!G&&w)G=w;const D={end:M,error:G,get elapsed(){return M-U.begin}};for(let z=0;z<Y.length;z++)Y[z](D);W(M),J(G)}}}]},M2=($)=>{return(X)=>{const[Z,W]=_0(),[j,J]=_0(),[Q,Y]=_0(),[U,B]=_0(),[K,w]=_0(),[F,G]=_0(),[M,D]=_0(),[z,I]=_0(),[V,A]=_0();return $({id:X[I0],context:X,set:X.set,onRequest:Z,onParse:j,onTransform:Q,onBeforeHandle:U,onHandle:K,onAfterHandle:F,onMapResponse:z,onAfterResponse:V,onError:M}),{request:W,parse:J,transform:Y,beforeHandle:B,handle:w,afterHandle:G,error:D,mapResponse:I,afterResponse:A}}};var A3=new Headers().toJSON,D2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},n=($)=>{if(!$)return!1;const X=$?.schema;return!!X&&D2.optional in X},Z0=($)=>{if(!$)return!1;const X=$?.schema??$;if(X.anyOf)return X.anyOf.some(Z0);if(X.someOf)return X.someOf.some(Z0);if(X.allOf)return X.allOf.some(Z0);if(X.not)return X.not.some(Z0);if(X.type==="object"){const Z=X.properties;if("additionalProperties"in X)return X.additionalProperties;for(let W of Object.keys(Z)){const j=Z[W];if(j.type==="object"){if(Z0(j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(Z0(j.anyOf[J]))return!0}return j.additionalProperties}return!1}return!1},R1=({context:$="c",trace:X,addFn:Z})=>{if(!X.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let W=0;W<X.length;W++)Z(`let report${W}, reportChild${W}, reportErr${W}, reportErrChild${W}; let trace${W} = ${$}[ELYSIA_TRACE]?.[${W}] ?? trace[${W}](${$});\n`);return(W,{name:j,total:J=0}={})=>{if(!j)j="anonymous";const Q=W==="error"?"reportErr":"report";for(let Y=0;Y<X.length;Y++)Z(`\n${Q}${Y} = trace${Y}.${W}({id,event: '${W}',name: '${j}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let Y=0;Y<X.length;Y++)Z(`\n${Q}${Y}.resolve()\n`)},resolveChild(Y){for(let U=0;U<X.length;U++)Z(`${Q}Child${U} = ${Q}${U}.resolveChild?.shift()?.({id,event: '${W}',name: '${Y}',begin: performance.now()})\n`);return(U)=>{for(let B=0;B<X.length;B++)if(U)Z(`
8
+ if (${U} instanceof Error)
9
+ ${Q}Child${B}?.(${U})
10
10
  else
11
- ${Q}Child${K}?.()\n`);else W(`${Q}Child${K}?.()\n`)}}}}},O2=({injectResponse:j="",normalize:$=!1,validator:W})=>({composeValidation:(X,Z=`c.${X}`)=>`c.set.status = 422; throw new ValidationError('${X}', validator.${X}, ${Z})`,composeResponseValidation:(X="r")=>{let Z="\n"+j+"\n";Z+=`if(typeof ${X} === "object" && ${X} && ELYSIA_RESPONSE in ${X}) {
12
- c.set.status = ${X}[ELYSIA_RESPONSE]
13
- ${X} = ${X}.response
11
+ ${Q}Child${B}?.()\n`);else Z(`${Q}Child${B}?.()\n`)}}}}},O3=({injectResponse:$="",normalize:X=!1,validator:Z})=>({composeValidation:(W,j=`c.${W}`)=>`c.set.status = 422; throw new ValidationError('${W}', validator.${W}, ${j})`,composeResponseValidation:(W="r")=>{let j="\n"+$+"\n";j+=`if(typeof ${W} === "object" && ${W} && ELYSIA_RESPONSE in ${W}) {
12
+ c.set.status = ${W}[ELYSIA_RESPONSE]
13
+ ${W} = ${W}.response
14
14
  }
15
15
 
16
- const isResponse = ${X} instanceof Response\n\n`,Z+="switch(c.set.status) {\n";for(let[J,Q]of Object.entries(W.response)){if(Z+=`\tcase ${J}:
17
- if (!isResponse) {\n`,$&&"Clean"in Q&&!W0(Q))Z+=`${X} = validator.response['${J}'].Clean(${X})\n`;Z+=`if(validator.response['${J}'].Check(${X}) === false) {
16
+ const isResponse = ${W} instanceof Response\n\n`,j+="switch(c.set.status) {\n";for(let[J,Q]of Object.entries(Z.response)){if(j+=`\tcase ${J}:
17
+ if (!isResponse) {\n`,X&&"Clean"in Q&&!Z0(Q))j+=`${W} = validator.response['${J}'].Clean(${W})\n`;j+=`if(validator.response['${J}'].Check(${W}) === false) {
18
18
  c.set.status = 422
19
19
 
20
- throw new ValidationError('response', validator.response['${J}'], ${X})
20
+ throw new ValidationError('response', validator.response['${J}'], ${W})
21
21
  }
22
22
 
23
23
  c.set.status = ${J}
24
24
  }
25
25
 
26
- break\n\n`}return Z+="\n}\n",Z}}),m3=Symbol.for("TypeBox.Kind");var A0=(j,$)=>{if(!$)return;if($.type==="object"){const W=$.properties;if(!W)return!1;for(let X of Object.keys(W)){const Z=W[X];if(j in Z)return!0;if(Z.type==="object"){if(A0(j,Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if(A0(j,Z.anyOf[J]))return!0}}return!1}return j in $},Hj=Symbol.for("TypeBox.Transform"),S0=(j)=>{if(!j)return;if(j.type==="object"&&j.properties){const $=j.properties;for(let W of Object.keys($)){const X=$[W];if(X.type==="object"){if(S0(X))return!0}else if(X.anyOf){for(let J=0;J<X.anyOf.length;J++)if(S0(X.anyOf[J]))return!0}if(Hj in X)return!0}return!1}return Hj in j||j.properties&&Hj in j.properties},I2=/(?:return|=>) \S+\(/g,T0=(j)=>{return(j?.fn??j).constructor.name==="AsyncFunction"},g=(j)=>{const $=j?.fn??j;if($.constructor.name==="AsyncFunction")return!0;const W=$.toString();if(W.includes("=> response.clone("))return!1;if(W.includes("await"))return!0;if(W.includes("async"))return!0;return!!W.match(I2)},Bj=(j)=>{const $=j?.fn??j;return $.constructor.name==="AsyncGeneratorFunction"||$.constructor.name==="GeneratorFunction"},F1=({app:j,path:$,method:W,localHook:X,hooks:Z,validator:J,handler:Q,allowMeta:Y=!1,inference:B})=>{const K=typeof Q==="function";if(!K)Q=y(Q,{headers:j.setHeaders??{}});const U=K?"handler(c)":"handler",_=Z.afterResponse.length>0,M=Z.trace.length>0;let G="";if(B=s0(Object.assign(X,{handler:Q}),B),B.server)G+=`\nObject.defineProperty(c, 'server', {
26
+ break\n\n`}return j+="\n}\n",j}}),m8=Symbol.for("TypeBox.Kind");var C0=($,X)=>{if(!X)return;if(X.type==="object"){const Z=X.properties;if(!Z)return!1;for(let W of Object.keys(Z)){const j=Z[W];if($ in j)return!0;if(j.type==="object"){if(C0($,j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(C0($,j.anyOf[J]))return!0}}return!1}return $ in X},E1=Symbol.for("TypeBox.Transform"),S0=($)=>{if(!$)return;if($.type==="object"&&$.properties){const X=$.properties;for(let Z of Object.keys(X)){const W=X[Z];if(W.type==="object"){if(S0(W))return!0}else if(W.anyOf){for(let J=0;J<W.anyOf.length;J++)if(S0(W.anyOf[J]))return!0}if(E1 in W)return!0}return!1}return E1 in $||$.properties&&E1 in $.properties},C3=/(?:return|=>) \S+\(/g,L0=($)=>{return($?.fn??$).constructor.name==="AsyncFunction"},g=($)=>{const X=$?.fn??$;if(X.constructor.name==="AsyncFunction")return!0;const Z=X.toString();if(Z.includes("=> response.clone("))return!1;if(Z.includes("await"))return!0;if(Z.includes("async"))return!0;return!!Z.match(C3)},K1=($)=>{const X=$?.fn??$;return X.constructor.name==="AsyncGeneratorFunction"||X.constructor.name==="GeneratorFunction"},N2=({app:$,path:X,method:Z,localHook:W,hooks:j,validator:J,handler:Q,allowMeta:Y=!1,inference:U})=>{const B=typeof Q==="function";if(!B)Q=f(Q,{headers:$.setHeaders??{}});const K=B?"handler(c)":"handler",w=j.afterResponse.length>0,F=j.trace.length>0;let G="";if(U=r0(Object.assign(W,{handler:Q}),U),U.server)G+=`\nObject.defineProperty(c, 'server', {
27
27
  get: function() { return getServer() }
28
- })\n`;if(B.body)G+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();const w=B.query||!!J.query,F=W!=="$INTERNALWS"&&W!=="GET"&&W!=="HEAD"&&(B.body||!!J.body||Z.parse.length),D=j.setHeaders,N=D&&!!Object.keys(D).length,V=B.headers||J.headers,O=B.cookie||!!J.cookie,A=O?Wj({validator:J.cookie,defaultConfig:j.config.cookie,dynamic:!!j.config.aot,config:J.cookie?.config??{},models:j.definitions.type}):void 0,T=A?.config;let E="";if(T?.sign){if(!T.secrets)throw new Error(`t.Cookie required secret which is not set in (${W}) ${$}.`);const P=!T.secrets?void 0:typeof T.secrets==="string"?T.secrets:T.secrets[0];if(E+=`const _setCookie = c.set.cookie
29
- if(_setCookie) {`,T.sign===!0)E+=`for(const [key, cookie] of Object.entries(_setCookie)) {
30
- c.set.cookie[key].value = await signCookie(cookie.value, '${P}')
31
- }`;else for(let z of T.sign)E+=`if(_setCookie['${z}']?.value) { c.set.cookie['${z}'].value = await signCookie(_setCookie['${z}'].value, '${P}') }\n`;E+="}\n"}const k=j.config.normalize,{composeValidation:b,composeResponseValidation:z0}=O2({normalize:k,validator:J});if(V)G+=V2?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
28
+ })\n`;if(U.body)G+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();const M=U.query||!!J.query,D=Z!=="$INTERNALWS"&&Z!=="GET"&&Z!=="HEAD"&&(U.body||!!J.body||j.parse.length),z=$.setHeaders,I=z&&!!Object.keys(z).length,V=U.headers||J.headers,A=U.cookie||!!J.cookie,L=A?W1({validator:J.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:J.cookie?.config??{},models:$.definitions.type}):void 0,q=L?.config;let E="";if(q?.sign){if(!q.secrets)throw new Error(`t.Cookie required secret which is not set in (${Z}) ${X}.`);const N=!q.secrets?void 0:typeof q.secrets==="string"?q.secrets:q.secrets[0];if(E+=`const _setCookie = c.set.cookie
29
+ if(_setCookie) {`,q.sign===!0)E+=`for(const [key, cookie] of Object.entries(_setCookie)) {
30
+ c.set.cookie[key].value = await signCookie(cookie.value, '${N}')
31
+ }`;else for(let _ of q.sign)E+=`if(_setCookie['${_}']?.value) { c.set.cookie['${_}'].value = await signCookie(_setCookie['${_}'].value, '${N}') }\n`;E+="}\n"}const v=$.config.normalize,{composeValidation:R,composeResponseValidation:F0}=O3({normalize:v,validator:J});if(V)G+=A3?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
32
32
  for (const [key, value] of c.request.headers.entries())
33
33
  c.headers[key] = value
34
- `;if(O){const P=(C,S)=>{const L=T?.[C]??S;if(!L)return typeof S==="string"?`${C}: "${S}",`:`${C}: ${S},`;if(typeof L==="string")return`${C}: '${L}',`;if(L instanceof Date)return`${C}: new Date(${L.getTime()}),`;return`${C}: ${L},`},z=T?`{
35
- secrets: ${T.secrets!==void 0?typeof T.secrets==="string"?`'${T.secrets}'`:"["+T.secrets.reduce((C,S)=>C+`'${S}',`,"")+"]":"undefined"},
36
- sign: ${T.sign===!0?!0:T.sign!==void 0?"["+T.sign.reduce((C,S)=>C+`'${S}',`,"")+"]":"undefined"},
37
- ${P("domain")}
38
- ${P("expires")}
39
- ${P("httpOnly")}
40
- ${P("maxAge")}
41
- ${P("path","/")}
42
- ${P("priority")}
43
- ${P("sameSite")}
44
- ${P("secure")}
45
- }`:"undefined";if(V)G+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${z})\n`;else G+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${z})\n`}if(w){const P=[];if(J.query&&J.query.schema.type==="object"){const z=J.query.schema.properties;if(!W0(J.query))for(let[C,S]of Object.entries(z)){let L=S;if(L&&D1.optional in L&&L.type==="array"&&L.items)L=L.items;const{type:t,anyOf:H}=L,K0=t==="array"||H?.some((h)=>h.type==="string"&&h.format==="ArrayString");P.push({key:C,isArray:K0,isNestedObjectArray:K0&&L.items?.type==="object"||!!L.items?.anyOf?.some((h)=>h.type==="object"||h.type==="array"),isObject:t==="object"||H?.some((h)=>h.type==="string"&&h.format==="ArrayString"),anyOf:!!H})}}if(!P.length)G+=`if(c.qi === -1) {
34
+ `;if(A){const N=(P,C)=>{const S=q?.[P]??C;if(!S)return typeof C==="string"?`${P}: "${C}",`:`${P}: ${C},`;if(typeof S==="string")return`${P}: '${S}',`;if(S instanceof Date)return`${P}: new Date(${S.getTime()}),`;return`${P}: ${S},`},_=q?`{
35
+ secrets: ${q.secrets!==void 0?typeof q.secrets==="string"?`'${q.secrets}'`:"["+q.secrets.reduce((P,C)=>P+`'${C}',`,"")+"]":"undefined"},
36
+ sign: ${q.sign===!0?!0:q.sign!==void 0?"["+q.sign.reduce((P,C)=>P+`'${C}',`,"")+"]":"undefined"},
37
+ ${N("domain")}
38
+ ${N("expires")}
39
+ ${N("httpOnly")}
40
+ ${N("maxAge")}
41
+ ${N("path","/")}
42
+ ${N("priority")}
43
+ ${N("sameSite")}
44
+ ${N("secure")}
45
+ }`:"undefined";if(V)G+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${_})\n`;else G+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${_})\n`}if(M){const N=[];if(J.query&&J.query.schema.type==="object"){const _=J.query.schema.properties;if(!Z0(J.query))for(let[P,C]of Object.entries(_)){let S=C;if(S&&D2.optional in S&&S.type==="array"&&S.items)S=S.items;const{type:s,anyOf:H}=S,U0=s==="array"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString");N.push({key:P,isArray:U0,isNestedObjectArray:U0&&S.items?.type==="object"||!!S.items?.anyOf?.some((u)=>u.type==="object"||u.type==="array"),isObject:s==="object"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString"),anyOf:!!H})}}if(!N.length)G+=`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 G+=`if(c.qi !== -1) {
50
50
  let url = '&' + c.url.slice(c.qi + 1)
51
51
 
52
- ${P.map(({key:z,isArray:C,isObject:S,isNestedObjectArray:L,anyOf:t},H)=>{const K0=`${H===0?"let":""} memory = url.indexOf('&${z}=')
53
- let a${H}\n`;if(C)return K0+(L?`while (memory !== -1) {
54
- const start = memory + ${z.length+2}
52
+ ${N.map(({key:_,isArray:P,isObject:C,isNestedObjectArray:S,anyOf:s},H)=>{const U0=`${H===0?"let":""} memory = url.indexOf('&${_}=')
53
+ let a${H}\n`;if(P)return U0+(S?`while (memory !== -1) {
54
+ const start = memory + ${_.length+2}
55
55
  memory = url.indexOf('&', start)
56
56
 
57
57
  if(a${H} === undefined)
@@ -72,7 +72,7 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
72
72
 
73
73
  if(memory === -1) break
74
74
 
75
- memory = url.indexOf('&${z}=', memory)
75
+ memory = url.indexOf('&${_}=', memory)
76
76
  if(memory === -1) break
77
77
  }
78
78
 
@@ -82,7 +82,7 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
82
82
  else
83
83
  a${H} = JSON.parse('[' + a${H} + ']')
84
84
  } catch {}\n`:`while (memory !== -1) {
85
- const start = memory + ${z.length+2}
85
+ const start = memory + ${_.length+2}
86
86
  memory = url.indexOf('&', start)
87
87
 
88
88
  if(a${H} === undefined)
@@ -94,10 +94,10 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
94
94
  }
95
95
  else a${H}.push(decodeURIComponent(url.slice(start, memory)))
96
96
 
97
- memory = url.indexOf('&${z}=', memory)
97
+ memory = url.indexOf('&${_}=', memory)
98
98
  if(memory === -1) break
99
- }\n`);if(S)return K0+`if (memory !== -1) {
100
- const start = memory + ${z.length+2}
99
+ }\n`);if(C)return U0+`if (memory !== -1) {
100
+ const start = memory + ${_.length+2}
101
101
  memory = url.indexOf('&', start)
102
102
 
103
103
  if(memory === -1) a${H} = decodeURIComponent(url.slice(start))
@@ -108,23 +108,23 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
108
108
  a${H} = JSON.parse(a${H})
109
109
  } catch {}
110
110
  }
111
- }`;return K0+`if (memory !== -1) {
112
- const start = memory + ${z.length+2}
111
+ }`;return U0+`if (memory !== -1) {
112
+ const start = memory + ${_.length+2}
113
113
  memory = url.indexOf('&', start)
114
114
 
115
115
  if(memory === -1) a${H} = decodeURIComponent(url.slice(start))
116
116
  else {
117
117
  a${H} = decodeURIComponent(url.slice(start, memory))
118
118
 
119
- ${t?`
120
- let deepMemory = url.indexOf('&${z}=', memory)
119
+ ${s?`
120
+ let deepMemory = url.indexOf('&${_}=', memory)
121
121
 
122
122
  if(deepMemory !== -1) {
123
123
  a${H} = [a${H}]
124
124
  let first = true
125
125
 
126
126
  while(true) {
127
- const start = deepMemory + ${z.length+2}
127
+ const start = deepMemory + ${_.length+2}
128
128
  if(first)
129
129
  first = false
130
130
  else
@@ -152,13 +152,11 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
152
152
  }`}).join("\n")}
153
153
 
154
154
  c.query = {
155
- ${P.map(({key:z},C)=>`'${z}': a${C}`).join(", ")}
155
+ ${N.map(({key:_},P)=>`'${_}': a${P}`).join(", ")}
156
156
  }
157
157
  } else {
158
158
  c.query = {}
159
- }`}if(M)G+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const R=Ej({trace:Z.trace,addFn:(P)=>{G+=P}});G+="\ntry {\n";const Z0=typeof Q==="function"&&g(Q),r=M||Z.afterResponse.length>0?"c.response = ":"",f0=O||F||Z0||Z.parse.length>0||Z.afterHandle.some(g)||Z.beforeHandle.some(g)||Z.transform.some(g)||Z.mapResponse.some(g),N1=(typeof Q==="function"?Bj(Q):!1)||Z.beforeHandle.some(Bj)||Z.afterHandle.some(Bj)||Z.transform.some(Bj),t0=B.cookie||B.set||V||M||J.response||K&&N||N1,n=", c.request";G+=`c.route = \`${$}\`\n`;const C1=R("parse",{total:Z.parse.length});if(F){const P=Z.parse.length||B.body||J.body;if(G+="isParsing = true\n",Z.type&&!Z.parse.length)switch(Z.type){case"json":case"application/json":G+="c.body = await c.request.json()";break;case"text":case"text/plain":G+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":G+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":G+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":G+=`c.body = {}
160
-
161
- const form = await c.request.formData()
159
+ }`}if(F)G+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const b=R1({trace:j.trace,addFn:(N)=>{G+=N}});G+="\ntry {\n";const J0=typeof Q==="function"&&g(Q),a=F||j.afterResponse.length>0?"c.response = ":"",y0=A||D||J0||j.parse.length>0||j.afterHandle.some(g)||j.beforeHandle.some(g)||j.transform.some(g)||j.mapResponse.some(g),I2=(typeof Q==="function"?K1(Q):!1)||j.beforeHandle.some(K1)||j.afterHandle.some(K1)||j.transform.some(K1),s0=U.cookie||U.set||V||F||J.response||B&&I||I2,t=", c.request";G+=`c.route = \`${X}\`\n`;const V2=b("parse",{total:j.parse.length});if(D){const N=j.parse.length||U.body||J.body;if(G+="isParsing = true\n",j.type&&!j.parse.length)switch(j.type){case"json":case"application/json":if(n(J.body))G+="try { c.body = await c.request.json() } catch {}";else G+="c.body = await c.request.json()";break;case"text":case"text/plain":G+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":G+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":G+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":if(G+="c.body = {}\n",n(J.body))G+="let form; try { form = await c.request.formData() } catch {}";else G+="const form = await c.request.formData()";G+=`\nif(form)
162
160
  for (const key of form.keys()) {
163
161
  if (c.body[key])
164
162
  continue
@@ -167,11 +165,11 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
167
165
  if (value.length === 1)
168
166
  c.body[key] = value[0]
169
167
  else c.body[key] = value
170
- }\n`;break}else if(P){if(G+="\n",G+=V?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",G+=`
168
+ } else form = {}\n`;break}else if(N){if(G+="\n",G+=V?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",G+=`
171
169
  if (contentType) {
172
170
  const index = contentType.indexOf(';')
173
171
  if (index !== -1) contentType = contentType.substring(0, index)\n
174
- c.contentType = contentType\n`,Z.parse.length){G+="let used = false\n";const z=R("parse",{total:Z.parse.length});for(let C=0;C<Z.parse.length;C++){const S=z.resolveChild(Z.parse[C].fn.name),L=`bo${C}`;if(C!==0)G+="if(!used) {\n";if(G+=`let ${L} = parse[${C}](c, contentType)\n`,G+=`if(${L} instanceof Promise) ${L} = await ${L}\n`,G+=`if(${L} !== undefined) { c.body = ${L}; used = true }\n`,S(),C!==0)G+="}"}z.resolve()}if(G+="\ndelete c.contentType\n",Z.parse.length)G+="if (!used) {";if(Z.type&&!Array.isArray(Z.type))switch(Z.type){case"json":case"application/json":G+="c.body = await c.request.json()";break;case"text":case"text/plain":G+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":G+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":G+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":G+=`c.body = {}
172
+ c.contentType = contentType\n`,j.parse.length){G+="let used = false\n";const _=b("parse",{total:j.parse.length});for(let P=0;P<j.parse.length;P++){const C=_.resolveChild(j.parse[P].fn.name),S=`bo${P}`;if(P!==0)G+="if(!used) {\n";if(G+=`let ${S} = parse[${P}](c, contentType)\n`,G+=`if(${S} instanceof Promise) ${S} = await ${S}\n`,G+=`if(${S} !== undefined) { c.body = ${S}; used = true }\n`,C(),P!==0)G+="}"}_.resolve()}if(G+="\ndelete c.contentType\n",j.parse.length)G+="if (!used) {";if(j.type&&!Array.isArray(j.type))switch(j.type){case"json":case"application/json":if(n(J.body))G+="try { c.body = await c.request.json() } catch {}";else G+="c.body = await c.request.json()";break;case"text":case"text/plain":G+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":G+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":G+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":G+=`c.body = {}
175
173
 
176
174
  const form = await c.request.formData()
177
175
  for (const key of form.keys()) {
@@ -185,7 +183,7 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
185
183
  }\n`;break}else G+=`
186
184
  switch (contentType) {
187
185
  case 'application/json':
188
- c.body = await c.request.json()
186
+ ${n(J.body)?"try { c.body = await c.request.json() } catch {}":"c.body = await c.request.json()"}
189
187
  break
190
188
 
191
189
  case 'text/plain':
@@ -215,7 +213,7 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
215
213
  }
216
214
 
217
215
  break
218
- }`;if(Z.parse.length)G+="}";G+="}\n"}G+="\nisParsing = false\n"}if(C1.resolve(),Z?.transform){const P=R("transform",{total:Z.transform.length});if(Z.transform.length)G+="\nlet transformed\n";for(let z=0;z<Z.transform.length;z++){const C=Z.transform[z],S=P.resolveChild(C.fn.name);if(G+=g(C)?`transformed = await transform[${z}](c)\n`:`transformed = transform[${z}](c)\n`,C.subType==="mapDerive")G+=`if(transformed?.[ELYSIA_RESPONSE])
216
+ }`;if(j.parse.length)G+="}";G+="}\n"}G+="\nisParsing = false\n"}if(V2.resolve(),j?.transform){const N=b("transform",{total:j.transform.length});if(j.transform.length)G+="\nlet transformed\n";for(let _=0;_<j.transform.length;_++){const P=j.transform[_],C=N.resolveChild(P.fn.name);if(G+=g(P)?`transformed = await transform[${_}](c)\n`:`transformed = transform[${_}](c)\n`,P.subType==="mapDerive")G+=`if(transformed?.[ELYSIA_RESPONSE])
219
217
  throw transformed
220
218
  else {
221
219
  transformed.request = c.request
@@ -231,33 +229,33 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
231
229
  }`;else G+=`if(transformed?.[ELYSIA_RESPONSE])
232
230
  throw transformed
233
231
  else
234
- Object.assign(c, transformed)\n`;S()}P.resolve()}if(J){if(G+="\n",J.headers){if(k&&"Clean"in J.headers&&!W0(J.headers))G+="c.headers = validator.headers.Clean(c.headers);\n";if(A0("default",J.headers.schema))for(let[P,z]of Object.entries(n0.Default(J.headers.schema,{}))){const C=typeof z==="object"?JSON.stringify(z):typeof z==="string"?`'${z}'`:z;if(C!==void 0)G+=`c.headers['${P}'] ??= ${C}\n`}if(w0(J.headers))G+="if(isNotEmpty(c.headers)) {";if(G+=`if(validator.headers.Check(c.headers) === false) {
235
- ${b("headers")}
236
- }`,S0(J.headers.schema))G+="c.headers = validator.headers.Decode(c.headers)\n";if(w0(J.headers))G+="}"}if(J.params){if(A0("default",J.params.schema))for(let[P,z]of Object.entries(n0.Default(J.params.schema,{}))){const C=typeof z==="object"?JSON.stringify(z):typeof z==="string"?`'${z}'`:z;if(C!==void 0)G+=`c.params['${P}'] ??= ${C}\n`}if(G+=`if(validator.params.Check(c.params) === false) {
237
- ${b("params")}
238
- }`,S0(J.params.schema))G+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(k&&"Clean"in J.query&&!W0(J.query))G+="c.query = validator.query.Clean(c.query);\n";if(A0("default",J.query.schema))for(let[P,z]of Object.entries(n0.Default(J.query.schema,{}))){const C=typeof z==="object"?JSON.stringify(z):typeof z==="string"?`'${z}'`:z;if(C!==void 0)G+=`if(c.query['${P}'] === undefined) c.query['${P}'] = ${C}\n`}if(w0(J.query))G+="if(isNotEmpty(c.query)) {";if(G+=`if(validator.query.Check(c.query) === false) {
239
- ${b("query")}
240
- }`,S0(J.query.schema))G+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(w0(J.query))G+="}"}if(J.body){if(k&&"Clean"in J.body&&!W0(J.body))G+="c.body = validator.body.Clean(c.body);\n";const P=S0(J.body.schema);if(P||w0(J.body))G+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(A0("default",J.body.schema)){const z=n0.Default(J.body.schema,J.body.schema.type==="object"?{}:void 0),C=typeof z==="object"?JSON.stringify(z):typeof z==="string"?`'${z}'`:z;if(G+=`if(validator.body.Check(c.body) === false) {
232
+ Object.assign(c, transformed)\n`;C()}N.resolve()}if(J){if(G+="\n",J.headers){if(v&&"Clean"in J.headers&&!Z0(J.headers))G+="c.headers = validator.headers.Clean(c.headers);\n";if(C0("default",J.headers.schema))for(let[N,_]of Object.entries(t0.Default(J.headers.schema,{}))){const P=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(P!==void 0)G+=`c.headers['${N}'] ??= ${P}\n`}if(n(J.headers))G+="if(isNotEmpty(c.headers)) {";if(G+=`if(validator.headers.Check(c.headers) === false) {
233
+ ${R("headers")}
234
+ }`,S0(J.headers.schema))G+="c.headers = validator.headers.Decode(c.headers)\n";if(n(J.headers))G+="}"}if(J.params){if(C0("default",J.params.schema))for(let[N,_]of Object.entries(t0.Default(J.params.schema,{}))){const P=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(P!==void 0)G+=`c.params['${N}'] ??= ${P}\n`}if(G+=`if(validator.params.Check(c.params) === false) {
235
+ ${R("params")}
236
+ }`,S0(J.params.schema))G+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(v&&"Clean"in J.query&&!Z0(J.query))G+="c.query = validator.query.Clean(c.query);\n";if(C0("default",J.query.schema))for(let[N,_]of Object.entries(t0.Default(J.query.schema,{}))){const P=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(P!==void 0)G+=`if(c.query['${N}'] === undefined) c.query['${N}'] = ${P}\n`}if(n(J.query))G+="if(isNotEmpty(c.query)) {";if(G+=`if(validator.query.Check(c.query) === false) {
237
+ ${R("query")}
238
+ }`,S0(J.query.schema))G+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(n(J.query))G+="}"}if(J.body){if(v&&"Clean"in J.body&&!Z0(J.body))G+="c.body = validator.body.Clean(c.body);\n";const N=S0(J.body.schema);if(N||n(J.body))G+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(C0("default",J.body.schema)){const _=t0.Default(J.body.schema,J.body.schema.type==="object"?{}:void 0),P=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(G+=`if(validator.body.Check(c.body) === false) {
241
239
  if (typeof c.body === 'object') {
242
- c.body = Object.assign(${C}, c.body)
243
- } else { c.body = ${C} }`,w0(J.body))G+=`
240
+ c.body = Object.assign(${P}, c.body)
241
+ } else { c.body = ${P} }`,n(J.body))G+=`
244
242
  if(isNotEmptyObject && validator.body.Check(c.body) === false) {
245
- ${b("body")}
243
+ ${R("body")}
246
244
  }
247
245
  }`;else G+=`
248
246
  if(validator.body.Check(c.body) === false) {
249
- ${b("body")}
247
+ ${R("body")}
250
248
  }
251
- }`}else if(w0(J.body))G+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
252
- ${b("body")}
249
+ }`}else if(n(J.body))G+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
250
+ ${R("body")}
253
251
  }`;else G+=`if(validator.body.Check(c.body) === false) {
254
- ${b("body")}
255
- }`;if(P)G+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(p(A?.schema?.properties??A?.schema?.schema??{})){if(G+=`const cookieValue = {}
252
+ ${R("body")}
253
+ }`;if(N)G+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(p(L?.schema?.properties??L?.schema?.schema??{})){if(G+=`const cookieValue = {}
256
254
  for(const [key, value] of Object.entries(c.cookie))
257
- cookieValue[key] = value.value\n`,A0("default",A.schema))for(let[P,z]of Object.entries(n0.Default(A.schema,{})))G+=`cookieValue['${P}'] = ${typeof z==="object"?JSON.stringify(z):z}\n`;if(w0(J.cookie))G+="if(isNotEmpty(c.cookie)) {";if(G+=`if(validator.cookie.Check(cookieValue) === false) {
258
- ${b("cookie","cookieValue")}
255
+ cookieValue[key] = value.value\n`,C0("default",L.schema))for(let[N,_]of Object.entries(t0.Default(L.schema,{})))G+=`cookieValue['${N}'] = ${typeof _==="object"?JSON.stringify(_):_}\n`;if(n(J.cookie))G+="if(isNotEmpty(c.cookie)) {";if(G+=`if(validator.cookie.Check(cookieValue) === false) {
256
+ ${R("cookie","cookieValue")}
259
257
  }`,S0(J.cookie.schema))G+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
260
- c.cookie[key].value = value\n`;if(w0(J.cookie))G+="}"}}if(Z?.beforeHandle){const P=R("beforeHandle",{total:Z.beforeHandle.length});let z=!1;for(let C=0;C<Z.beforeHandle.length;C++){const S=Z.beforeHandle[C],L=P.resolveChild(S.fn.name),t=H0(S);if(S.subType==="resolve"||S.subType==="mapResolve"){if(!z)z=!0,G+="\nlet resolved\n";if(G+=g(S)?`resolved = await beforeHandle[${C}](c);\n`:`resolved = beforeHandle[${C}](c);\n`,S.subType==="mapResolve")G+=`if(resolved[ELYSIA_RESPONSE])
258
+ c.cookie[key].value = value\n`;if(n(J.cookie))G+="}"}}if(j?.beforeHandle){const N=b("beforeHandle",{total:j.beforeHandle.length});let _=!1;for(let P=0;P<j.beforeHandle.length;P++){const C=j.beforeHandle[P],S=N.resolveChild(C.fn.name),s=H0(C);if(C.subType==="resolve"||C.subType==="mapResolve"){if(!_)_=!0,G+="\nlet resolved\n";if(G+=g(C)?`resolved = await beforeHandle[${P}](c);\n`:`resolved = beforeHandle[${P}](c);\n`,C.subType==="mapResolve")G+=`if(resolved[ELYSIA_RESPONSE])
261
259
  throw resolved
262
260
  else {
263
261
  resolved.request = c.request
@@ -273,39 +271,39 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
273
271
  }`;else G+=`if(resolved[ELYSIA_RESPONSE])
274
272
  throw resolved
275
273
  else
276
- Object.assign(c, resolved)\n`}else if(!t)G+=g(S)?`await beforeHandle[${C}](c);\n`:`beforeHandle[${C}](c);\n`,L();else{if(G+=g(S)?`be = await beforeHandle[${C}](c);\n`:`be = beforeHandle[${C}](c);\n`,L("be"),G+="if(be !== undefined) {\n",P.resolve(),Z.afterHandle?.length){R("handle",{name:K?Q.name:void 0}).resolve();const h=R("afterHandle",{total:Z.afterHandle.length});for(let J0=0;J0<Z.afterHandle.length;J0++){const L0=Z.afterHandle[J0],V1=H0(L0),O1=h.resolveChild(L0.fn.name);if(G+="c.response = be\n",!V1)G+=g(L0.fn)?`await afterHandle[${J0}](c, be)\n`:`afterHandle[${J0}](c, be)\n`;else G+=g(L0.fn)?`af = await afterHandle[${J0}](c)\n`:`af = afterHandle[${J0}](c)\n`,G+="if(af !== undefined) { c.response = be = af }\n";O1("af")}h.resolve()}if(J.response)G+=z0("be");const K0=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length){G+="\nc.response = be\n";for(let h=0;h<Z.mapResponse.length;h++){const J0=Z.mapResponse[h],L0=K0.resolveChild(J0.fn.name);G+=`\nif(mr === undefined) {
277
- mr = ${T0(J0)?"await":""} onMapResponse[${h}](c)
274
+ Object.assign(c, resolved)\n`}else if(!s)G+=g(C)?`await beforeHandle[${P}](c);\n`:`beforeHandle[${P}](c);\n`,S();else{if(G+=g(C)?`be = await beforeHandle[${P}](c);\n`:`be = beforeHandle[${P}](c);\n`,S("be"),G+="if(be !== undefined) {\n",N.resolve(),j.afterHandle?.length){b("handle",{name:B?Q.name:void 0}).resolve();const u=b("afterHandle",{total:j.afterHandle.length});for(let j0=0;j0<j.afterHandle.length;j0++){const q0=j.afterHandle[j0],A2=H0(q0),O2=u.resolveChild(q0.fn.name);if(G+="c.response = be\n",!A2)G+=g(q0.fn)?`await afterHandle[${j0}](c, be)\n`:`afterHandle[${j0}](c, be)\n`;else G+=g(q0.fn)?`af = await afterHandle[${j0}](c)\n`:`af = afterHandle[${j0}](c)\n`,G+="if(af !== undefined) { c.response = be = af }\n";O2("af")}u.resolve()}if(J.response)G+=F0("be");const U0=b("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){G+="\nc.response = be\n";for(let u=0;u<j.mapResponse.length;u++){const j0=j.mapResponse[u],q0=U0.resolveChild(j0.fn.name);G+=`\nif(mr === undefined) {
275
+ mr = ${L0(j0)?"await":""} onMapResponse[${u}](c)
278
276
  if(mr !== undefined) be = c.response = mr
279
- }\n`,L0()}}K0.resolve(),G+=E,G+=`return mapEarlyResponse(${r} be, c.set ${n})}\n`}}P.resolve()}if(Z?.afterHandle.length){const P=R("handle",{name:K?Q.name:void 0});if(Z.afterHandle.length)G+=Z0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else G+=Z0?`let r = await ${U};\n`:`let r = ${U};\n`;P.resolve();const z=R("afterHandle",{total:Z.afterHandle.length});for(let S=0;S<Z.afterHandle.length;S++){const L=Z.afterHandle[S],t=H0(L),H=z.resolveChild(L.fn.name);if(!t)G+=g(L.fn)?`await afterHandle[${S}](c)\n`:`afterHandle[${S}](c)\n`,H();else if(G+=g(L.fn)?`af = await afterHandle[${S}](c)\n`:`af = afterHandle[${S}](c)\n`,H("af"),J.response)G+="if(af !== undefined) {",z.resolve(),G+=z0("af"),G+="c.response = af }";else G+="if(af !== undefined) {",z.resolve(),G+="c.response = af}\n"}if(z.resolve(),G+="r = c.response\n",J.response)G+=z0();G+=E;const C=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length)for(let S=0;S<Z.mapResponse.length;S++){const L=Z.mapResponse[S],t=C.resolveChild(L.fn.name);G+=`\nmr = ${T0(L)?"await":""} onMapResponse[${S}](c)
280
- if(mr !== undefined) r = c.response = mr\n`,t()}if(C.resolve(),t0)G+=`return mapResponse(${r} r, c.set ${n})\n`;else G+=`return mapCompactResponse(${r} r ${n})\n`}else{const P=R("handle",{name:K?Q.name:void 0});if(J.response||Z.mapResponse.length){if(G+=Z0?`let r = await ${U};\n`:`let r = ${U};\n`,P.resolve(),J.response)G+=z0();R("afterHandle").resolve();const z=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length){G+="\nc.response = r\n";for(let C=0;C<Z.mapResponse.length;C++){const S=Z.mapResponse[C],L=z.resolveChild(S.fn.name);G+=`\nif(mr === undefined) {
281
- mr = ${T0(S)?"await":""} onMapResponse[${C}](c)
277
+ }\n`,q0()}}U0.resolve(),G+=E,G+=`return mapEarlyResponse(${a} be, c.set ${t})}\n`}}N.resolve()}if(j?.afterHandle.length){const N=b("handle",{name:B?Q.name:void 0});if(j.afterHandle.length)G+=J0?`let r = c.response = await ${K};\n`:`let r = c.response = ${K};\n`;else G+=J0?`let r = await ${K};\n`:`let r = ${K};\n`;N.resolve();const _=b("afterHandle",{total:j.afterHandle.length});for(let C=0;C<j.afterHandle.length;C++){const S=j.afterHandle[C],s=H0(S),H=_.resolveChild(S.fn.name);if(!s)G+=g(S.fn)?`await afterHandle[${C}](c)\n`:`afterHandle[${C}](c)\n`,H();else if(G+=g(S.fn)?`af = await afterHandle[${C}](c)\n`:`af = afterHandle[${C}](c)\n`,H("af"),J.response)G+="if(af !== undefined) {",_.resolve(),G+=F0("af"),G+="c.response = af }";else G+="if(af !== undefined) {",_.resolve(),G+="c.response = af}\n"}if(_.resolve(),G+="r = c.response\n",J.response)G+=F0();G+=E;const P=b("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let C=0;C<j.mapResponse.length;C++){const S=j.mapResponse[C],s=P.resolveChild(S.fn.name);G+=`\nmr = ${L0(S)?"await":""} onMapResponse[${C}](c)
278
+ if(mr !== undefined) r = c.response = mr\n`,s()}if(P.resolve(),s0)G+=`return mapResponse(${a} r, c.set ${t})\n`;else G+=`return mapCompactResponse(${a} r ${t})\n`}else{const N=b("handle",{name:B?Q.name:void 0});if(J.response||j.mapResponse.length){if(G+=J0?`let r = await ${K};\n`:`let r = ${K};\n`,N.resolve(),J.response)G+=F0();b("afterHandle").resolve();const _=b("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){G+="\nc.response = r\n";for(let P=0;P<j.mapResponse.length;P++){const C=j.mapResponse[P],S=_.resolveChild(C.fn.name);G+=`\nif(mr === undefined) {
279
+ mr = ${L0(C)?"await":""} onMapResponse[${P}](c)
282
280
  if(mr !== undefined) r = c.response = mr
283
- }\n`,L()}}if(z.resolve(),G+=E,Q instanceof Response)G+=B.set?`if(
281
+ }\n`,S()}}if(_.resolve(),G+=E,Q instanceof Response)G+=U.set?`if(
284
282
  isNotEmpty(c.set.headers) ||
285
283
  c.set.status !== 200 ||
286
284
  c.set.redirect ||
287
285
  c.set.cookie
288
286
  )
289
- return mapResponse(${r} ${U}.clone(), c.set ${n})
287
+ return mapResponse(${a} ${K}.clone(), c.set ${t})
290
288
  else
291
- return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(t0)G+=`return mapResponse(${r} r, c.set ${n})\n`;else G+=`return mapCompactResponse(${r} r ${n})\n`}else if(O||M){G+=Z0?`let r = await ${U};\n`:`let r = ${U};\n`,P.resolve(),R("afterHandle").resolve();const z=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length){G+="\nc.response = r\n";for(let C=0;C<Z.mapResponse.length;C++){const S=Z.mapResponse[C],L=z.resolveChild(S.fn.name);G+=`\nif(mr === undefined) {
292
- mr = ${T0(S)?"await":""} onMapResponse[${C}](c)
289
+ return ${K}.clone()`:`return ${K}.clone()`,G+="\n";else if(s0)G+=`return mapResponse(${a} r, c.set ${t})\n`;else G+=`return mapCompactResponse(${a} r ${t})\n`}else if(A||F){G+=J0?`let r = await ${K};\n`:`let r = ${K};\n`,N.resolve(),b("afterHandle").resolve();const _=b("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){G+="\nc.response = r\n";for(let P=0;P<j.mapResponse.length;P++){const C=j.mapResponse[P],S=_.resolveChild(C.fn.name);G+=`\nif(mr === undefined) {
290
+ mr = ${L0(C)?"await":""} onMapResponse[${P}](c)
293
291
  if(mr !== undefined) r = c.response = mr
294
- }\n`,L()}}if(z.resolve(),G+=E,t0)G+=`return mapResponse(${r} r, c.set ${n})\n`;else G+=`return mapCompactResponse(${r} r ${n})\n`}else{P.resolve();const z=Z0?`await ${U}`:U;if(R("afterHandle").resolve(),Q instanceof Response)G+=B.set?`if(
292
+ }\n`,S()}}if(_.resolve(),G+=E,s0)G+=`return mapResponse(${a} r, c.set ${t})\n`;else G+=`return mapCompactResponse(${a} r ${t})\n`}else{N.resolve();const _=J0?`await ${K}`:K;if(b("afterHandle").resolve(),Q instanceof Response)G+=U.set?`if(
295
293
  isNotEmpty(c.set.headers) ||
296
294
  c.set.status !== 200 ||
297
295
  c.set.redirect ||
298
296
  c.set.cookie
299
297
  )
300
- return mapResponse(${r} ${U}.clone(), c.set ${n})
298
+ return mapResponse(${a} ${K}.clone(), c.set ${t})
301
299
  else
302
- return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(t0)G+=`return mapResponse(${r} ${z}, c.set ${n})\n`;else G+=`return mapCompactResponse(${r} ${z} ${n})\n`}}if(G+="\n} catch(error) {",F)G+="\nif(isParsing) error = new ParseError()\n";if(!f0)G+="\nreturn (async () => {\n";if(G+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",M)for(let P=0;P<Z.trace.length;P++)G+=`report${P}?.resolve(error);reportChild${P}?.(error);\n`;const Uj=R("error",{total:Z.error.length});if(Z.error.length){G+=`
300
+ return ${K}.clone()`:`return ${K}.clone()`,G+="\n";else if(s0)G+=`return mapResponse(${a} ${_}, c.set ${t})\n`;else G+=`return mapCompactResponse(${a} ${_} ${t})\n`}}if(G+="\n} catch(error) {",D)G+="\nif(isParsing) error = new ParseError()\n";if(!y0)G+="\nreturn (async () => {\n";if(G+="\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++)G+=`report${N}?.resolve(error);reportChild${N}?.(error);\n`;const w1=b("error",{total:j.error.length});if(j.error.length){G+=`
303
301
  c.error = error
304
302
  c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
305
303
  let er
306
- `;for(let P=0;P<Z.error.length;P++){const z=Uj.resolveChild(Z.error[P].fn.name);if(g(Z.error[P]))G+=`\ner = await handleErrors[${P}](c)\n`;else G+=`\ner = handleErrors[${P}](c)\nif (er instanceof Promise) er = await er\n`;z();const C=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length)for(let S=0;S<Z.mapResponse.length;S++){const L=Z.mapResponse[S],t=C.resolveChild(L.fn.name);G+=`\nc.response = er\n
307
- er = ${T0(L)?"await":""} onMapResponse[${S}](c)
308
- if(er instanceof Promise) er = await er\n`,t()}if(C.resolve(),G+=`er = mapEarlyResponse(er, set ${n})\n`,G+="if (er) {",M){for(let S=0;S<Z.trace.length;S++)G+=`\nreport${S}.resolve()\n`;Uj.resolve()}G+="return er\n}\n"}}if(Uj.resolve(),G+="return handleError(c, error, true)\n",!f0)G+="})()";if(G+="}",_||M){if(G+=" finally { ",!f0)G+=";(async () => {";const P=R("afterResponse",{total:Z.afterResponse.length});if(_)for(let z=0;z<Z.afterResponse.length;z++){const C=P.resolveChild(Z.afterResponse[z].fn.name);G+=`\nawait afterResponse[${z}](c);\n`,C()}if(P.resolve(),!f0)G+="})();";G+="}"}G=`const {
304
+ `;for(let N=0;N<j.error.length;N++){const _=w1.resolveChild(j.error[N].fn.name);if(g(j.error[N]))G+=`\ner = await handleErrors[${N}](c)\n`;else G+=`\ner = handleErrors[${N}](c)\nif (er instanceof Promise) er = await er\n`;_();const P=b("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let C=0;C<j.mapResponse.length;C++){const S=j.mapResponse[C],s=P.resolveChild(S.fn.name);G+=`\nc.response = er\n
305
+ er = ${L0(S)?"await":""} onMapResponse[${C}](c)
306
+ if(er instanceof Promise) er = await er\n`,s()}if(P.resolve(),G+=`er = mapEarlyResponse(er, set ${t})\n`,G+="if (er) {",F){for(let C=0;C<j.trace.length;C++)G+=`\nreport${C}.resolve()\n`;w1.resolve()}G+="return er\n}\n"}}if(w1.resolve(),G+="return handleError(c, error, true)\n",!y0)G+="})()";if(G+="}",w||F){if(G+=" finally { ",!y0)G+=";(async () => {";const N=b("afterResponse",{total:j.afterResponse.length});if(w)for(let _=0;_<j.afterResponse.length;_++){const P=N.resolveChild(j.afterResponse[_].fn.name);G+=`\nawait afterResponse[${_}](c);\n`,P()}if(N.resolve(),!y0)G+="})();";G+="}"}G=`const {
309
307
  handler,
310
308
  handleError,
311
309
  hooks: {
@@ -348,24 +346,24 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
348
346
 
349
347
  const trace = _trace.map(x => typeof x === 'function' ? x : x.fn)
350
348
 
351
- return ${f0?"async":""} function handle(c) {
352
- ${Z.beforeHandle.length?"let be":""}
353
- ${Z.afterHandle.length?"let af":""}
354
- ${Z.mapResponse.length?"let mr":""}
349
+ return ${y0?"async":""} function handle(c) {
350
+ ${j.beforeHandle.length?"let be":""}
351
+ ${j.afterHandle.length?"let af":""}
352
+ ${j.mapResponse.length?"let mr":""}
355
353
 
356
354
  ${Y?"c.schema = schema; c.defs = definitions":""}
357
355
  ${G}
358
- }`;try{return Function("hooks",G)({handler:Q,hooks:Sj(Z),validator:J,handleError:j.handleError,utils:{mapResponse:y,mapCompactResponse:e,mapEarlyResponse:f,parseQuery:p0,parseQueryFromURL:Kj,isNotEmpty:p},error:{NotFoundError:O0,ValidationError:q,InternalServerError:Gj,ParseError:Yj},schema:j.router.history,definitions:j.definitions.type,ERROR_CODE:V0,parseCookie:e0,signCookie:x0,decodeURIComponent:M1.default,ELYSIA_RESPONSE:d,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:C0,getServer:()=>j.getServer()})}catch{const P=Sj(Z);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 Q==="function"?Q.toString():Q,hooks:{...P,transform:P?.transform?.map?.((z)=>z.toString()),resolve:P?.resolve?.map?.((z)=>z.toString()),beforeHandle:P?.beforeHandle?.map?.((z)=>z.toString()),afterHandle:P?.afterHandle?.map?.((z)=>z.toString()),mapResponse:P?.mapResponse?.map?.((z)=>z.toString()),parse:P?.parse?.map?.((z)=>z.toString()),error:P?.error?.map?.((z)=>z.toString()),afterResponse:P?.afterResponse?.map?.((z)=>z.toString()),stop:P?.stop?.map?.((z)=>z.toString())},validator:J,definitions:j.definitions.type}),console.log("---"),process.exit(1)}},bj=(j)=>{let $="",W="";const X=j.setHeaders;for(let w of Object.keys(j.singleton.decorator))$+=`,${w}: app.singleton.decorator.${w}`;const Z=j.router,J=j.event.trace.length>0;let Q=`
359
- const route = router.find(request.method, path) ${Z.http.root.ALL?'?? router.find("ALL", path)':""}
356
+ }`;try{return Function("hooks",G)({handler:Q,hooks:L1(j),validator:J,handleError:$.handleError,utils:{mapResponse:f,mapCompactResponse:$0,mapEarlyResponse:y,parseQuery:i0,parseQueryFromURL:U1,isNotEmpty:p},error:{NotFoundError:A0,ValidationError:T,InternalServerError:Y1,ParseError:B1},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:V0,parseCookie:$1,signCookie:x0,decodeURIComponent:z2.default,ELYSIA_RESPONSE:d,ELYSIA_TRACE:n0,ELYSIA_REQUEST_ID:I0,getServer:()=>$.getServer()})}catch{const N=L1(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 Q==="function"?Q.toString():Q,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)}},b1=($)=>{const X=$.config.handler?.standardHostname??!0;let Z="",W="";const j=$.setHeaders;for(let D of Object.keys($.singleton.decorator))Z+=`,${D}: app.singleton.decorator.${D}`;const J=$.router,Q=$.event.trace.length>0;let Y=`
357
+ const route = router.find(request.method, path) ${J.http.root.ALL?'?? router.find("ALL", path)':""}
360
358
 
361
359
  if (route === null)
362
- return ${j.event.error.length?"app.handleError(ctx, notFound)":j.event.request.length?`new Response(error404Message, {
360
+ return ${$.event.error.length?"app.handleError(ctx, notFound)":$.event.request.length?`new Response(error404Message, {
363
361
  status: ctx.set.status === 200 ? 404 : ctx.set.status,
364
362
  headers: ctx.set.headers
365
363
  })`:"error404.clone()"}
366
364
 
367
- ctx.params = route.params\n`;Q+=`if(route.store.handler) return route.store.handler(ctx)
368
- return (route.store.handler = route.store.compile())(ctx)\n`;let Y="";for(let[w,{code:F,all:D}]of Object.entries(Z.static.http.map))Y+=`case '${w}':\nswitch(request.method) {\n${F}\n${D??"default: break map"}}\n\n`;const B=j.event.request.some(g);if(W+=`const {
365
+ ctx.params = route.params\n`;Y+=`if(route.store.handler) return route.store.handler(ctx)
366
+ return (route.store.handler = route.store.compile())(ctx)\n`;let U="";for(let[D,{code:z,all:I}]of Object.entries(J.static.http.map))U+=`case '${D}':\nswitch(request.method) {\n${z}\n${I??"default: break map"}}\n\n`;const B=$.event.request.some(g);if(W+=`const {
369
367
  app,
370
368
  mapEarlyResponse,
371
369
  NotFoundError,
@@ -388,20 +386,20 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
388
386
  const notFound = new NotFoundError()
389
387
  const hoc = app.extender.higherOrderFunctions.map(x => x.fn)
390
388
 
391
- ${j.event.request.length?"const onRequest = app.event.request.map(x => x.fn)":""}
392
- ${j.event.error.length?"":`\nconst error404Message = notFound.message.toString()
389
+ ${$.event.request.length?"const onRequest = app.event.request.map(x => x.fn)":""}
390
+ ${$.event.error.length?"":`\nconst error404Message = notFound.message.toString()
393
391
  const error404 = new Response(error404Message, { status: 404 });\n`}
394
392
 
395
- ${j.event.trace.length?`const ${j.event.trace.map((w,F)=>`tr${F} = app.event.trace[${F}].fn`).join(",")}`:""}
393
+ ${$.event.trace.length?`const ${$.event.trace.map((D,z)=>`tr${z} = app.event.trace[${z}].fn`).join(",")}`:""}
396
394
 
397
- ${B?"async":""} function map(request) {\n`,j.event.request.length)W+="let re";if(W+=`\nconst url = request.url
398
- const s = url.indexOf('/', 11)
395
+ ${B?"async":""} function map(request) {\n`,$.event.request.length)W+="let re";if(W+=`\nconst url = request.url
396
+ const s = url.indexOf('/', ${X?11:7})
399
397
  const qi = url.indexOf('?', s + 1)
400
398
  let path
401
399
  if(qi === -1)
402
400
  path = url.substring(s)
403
401
  else
404
- path = url.substring(s, qi)\n`,W+=`${J?"const id = randomId()":""}
402
+ path = url.substring(s, qi)\n`,W+=`${Q?"const id = randomId()":""}
405
403
  const ctx = {
406
404
  request,
407
405
  store,
@@ -410,27 +408,27 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
410
408
  url,
411
409
  redirect,
412
410
  set: {
413
- headers: ${Object.keys(X??{}).length?"Object.assign({}, app.setHeaders)":"{}"},
411
+ headers: ${Object.keys(j??{}).length?"Object.assign({}, app.setHeaders)":"{}"},
414
412
  status: 200
415
413
  },
416
414
  error
417
- ${j.inference.server?`, get server() {
415
+ ${$.inference.server?`, get server() {
418
416
  return getServer()
419
417
  }`:""}
420
- ${J?",[ELYSIA_REQUEST_ID]: id":""}
421
- ${$}
422
- }\n`,j.event.trace.length)W+=`\nctx[ELYSIA_TRACE] = [${j.event.trace.map((w,F)=>`tr${F}(ctx)`).join(",")}]\n`;const U=Ej({context:"ctx",trace:j.event.trace,addFn:(w)=>{W+=w}})("request",{attribute:"ctx",total:j.event.request.length});if(j.event.request.length){W+="\n try {\n";for(let w=0;w<j.event.request.length;w++){const F=j.event.request[w],D=H0(F),N=g(F),V=U.resolveChild(j.event.request[w].fn.name);if(D)W+=`re = mapEarlyResponse(
423
- ${N?"await":""} onRequest[${w}](ctx),
418
+ ${Q?",[ELYSIA_REQUEST_ID]: id":""}
419
+ ${Z}
420
+ }\n`,$.event.trace.length)W+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((D,z)=>`tr${z}(ctx)`).join(",")}]\n`;const w=R1({context:"ctx",trace:$.event.trace,addFn:(D)=>{W+=D}})("request",{attribute:"ctx",total:$.event.request.length});if($.event.request.length){W+="\n try {\n";for(let D=0;D<$.event.request.length;D++){const z=$.event.request[D],I=H0(z),V=g(z),A=w.resolveChild($.event.request[D].fn.name);if(I)W+=`re = mapEarlyResponse(
421
+ ${V?"await":""} onRequest[${D}](ctx),
424
422
  ctx.set,
425
423
  request
426
- )\n`,V("re"),W+="if(re !== undefined) return re\n";else W+=`${N?"await":""} onRequest[${w}](ctx)\n`,V()}W+=`} catch (error) {
424
+ )\n`,A("re"),W+="if(re !== undefined) return re\n";else W+=`${V?"await":""} onRequest[${D}](ctx)\n`,A()}W+=`} catch (error) {
427
425
  return app.handleError(ctx, error)
428
- }`}U.resolve();const _=j.router.static.ws,M=j.router.ws;if(Object.keys(_).length||M.history.length){W+=`
426
+ }`}w.resolve();const F=$.router.static.ws,G=$.router.ws;if(Object.keys(F).length||G.history.length){W+=`
429
427
  if(request.method === 'GET') {
430
- switch(path) {`;for(let[w,F]of Object.entries(_))W+=`
431
- case '${w}':
428
+ switch(path) {`;for(let[D,z]of Object.entries(F))W+=`
429
+ case '${D}':
432
430
  if(request.headers.get('upgrade') === 'websocket')
433
- return st[${F}](ctx)
431
+ return st[${z}](ctx)
434
432
 
435
433
  break`;W+=`
436
434
  default:
@@ -451,14 +449,14 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
451
449
  }
452
450
  }\n`}if(W+=`
453
451
  map: switch(path) {
454
- ${Y}
452
+ ${U}
455
453
 
456
454
  default:
457
455
  break
458
456
  }
459
457
 
460
- ${Q}
461
- }\n`,j.extender.higherOrderFunctions.length){let w="map";for(let F=0;F<j.extender.higherOrderFunctions.length;F++)w=`hoc[${F}](${w}, request)`;W+=`return function hocMap(request) { return ${w}(request) }`}else W+="return map";const G=Rj(j);return j.handleError=G,Function("data",W)({app:j,mapEarlyResponse:f,NotFoundError:O0,randomId:Jj,handleError:G,error:Tj,redirect:d0,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:C0,getServer:()=>j.getServer()})},Rj=(j)=>{const $=j.event;let W="";W+=`const {
458
+ ${Y}
459
+ }\n`,$.extender.higherOrderFunctions.length){let D="map";for(let z=0;z<$.extender.higherOrderFunctions.length;z++)D=`hoc[${z}](${D}, request)`;W+=`return function hocMap(request) { return ${D}(request) }`}else W+="return map";const M=x1($);return $.handleError=M,Function("data",W)({app:$,mapEarlyResponse:y,NotFoundError:A0,randomId:Q1,handleError:M,error:q1,redirect:c0,ELYSIA_TRACE:n0,ELYSIA_REQUEST_ID:I0,getServer:()=>$.getServer()})},x1=($)=>{const X=$.event;let Z="";Z+=`const {
462
460
  app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
463
461
  mapResponse,
464
462
  ERROR_CODE,
@@ -478,20 +476,20 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
478
476
  const onError = onErrorContainer.map(x => x.fn)
479
477
  const res = resContainer.map(x => x.fn)
480
478
 
481
- return ${j.event.error.find(g)||j.event.mapResponse.find(g)?"async":""} function(context, error, skipGlobal) {`;const X=j.event.trace.length>0;if(X)W+="\nconst id = context[ELYSIA_REQUEST_ID]\n";const Z=Ej({context:"context",trace:$.trace,addFn:(Y)=>{W+=Y}});W+=`
479
+ return ${$.event.error.find(g)||$.event.mapResponse.find(g)?"async":""} function(context, error, skipGlobal) {`;const W=$.event.trace.length>0;if(W)Z+="\nconst id = context[ELYSIA_REQUEST_ID]\n";const j=R1({context:"context",trace:X.trace,addFn:(Y)=>{Z+=Y}});Z+=`
482
480
  const set = context.set
483
481
  let r
484
482
 
485
483
  if(!context.code)
486
484
  context.code = error.code ?? error[ERROR_CODE]
487
485
 
488
- if(!context.error)
486
+ if(!(context.error instanceof Error))
489
487
  context.error = error
490
488
 
491
489
  if(typeof error === "object" && error && ELYSIA_RESPONSE in error) {
492
490
  error.status = error[ELYSIA_RESPONSE]
493
491
  error.message = error.response
494
- }\n`;const J=X||$.afterResponse.length>0||$.afterResponse.length>0?"context.response = ":"";for(let Y=0;Y<j.event.error.length;Y++){const B=j.event.error[Y],K=`${g(B)?"await ":""}onError[${Y}](context)`;if(W+="\nif(skipGlobal !== true) {\n",H0(B)){W+=`r = ${K}; if(r !== undefined) {
492
+ }\n`;const J=W||X.afterResponse.length>0||X.afterResponse.length>0?"context.response = ":"";for(let Y=0;Y<$.event.error.length;Y++){const U=$.event.error[Y],B=`${g(U)?"await ":""}onError[${Y}](context)`;if(Z+="\nif(skipGlobal !== true) {\n",H0(U)){Z+=`r = ${B}; if(r !== undefined) {
495
493
  if(r instanceof Response) return r
496
494
 
497
495
  if(r[ELYSIA_RESPONSE]) {
@@ -499,8 +497,8 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
499
497
  error.message = error.response
500
498
  }
501
499
 
502
- if(set.status === 200) set.status = error.status\n`;const U=Z("mapResponse",{total:$.mapResponse.length,name:"context"});if($.mapResponse.length)for(let _=0;_<$.mapResponse.length;_++){const M=$.mapResponse[_],G=U.resolveChild(M.fn.name);W+=`\ncontext.response = r
503
- r = ${T0(M)?"await":""} onMapResponse[${_}](context)\n`,G()}U.resolve(),W+=`return mapResponse(${J} r, set, context.request)}\n`}else W+=K+"\n";W+="\n}\n"}W+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
500
+ if(set.status === 200) set.status = error.status\n`;const K=j("mapResponse",{total:X.mapResponse.length,name:"context"});if(X.mapResponse.length)for(let w=0;w<X.mapResponse.length;w++){const F=X.mapResponse[w],G=K.resolveChild(F.fn.name);Z+=`\ncontext.response = r
501
+ r = ${L0(F)?"await":""} onMapResponse[${w}](context)\n`,G()}K.resolve(),Z+=`return mapResponse(${J} r, set, context.request)}\n`}else Z+=B+"\n";Z+="\n}\n"}Z+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
504
502
  set.status = error.status ?? 422
505
503
  return new Response(
506
504
  error.message,
@@ -517,7 +515,7 @@ var I1=Object.create;var{getPrototypeOf:A1,defineProperty:gj,getOwnPropertyNames
517
515
  return new Response(
518
516
  error.message,
519
517
  { headers: set.headers, status: error.status }
520
- )\n`;const Q=Z("mapResponse",{total:$.mapResponse.length,name:"context"});if($.mapResponse.length)for(let Y=0;Y<$.mapResponse.length;Y++){const B=$.mapResponse[Y],K=Q.resolveChild(B.fn.name);W+=`\ncontext.response = error
521
- error = ${T0(B)?"await":""} onMapResponse[${Y}](context)\n`,K()}return Q.resolve(),W+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",W)({app:j,mapResponse:y,ERROR_CODE:V0,ELYSIA_RESPONSE:d,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:C0})};var xj=(j)=>async($)=>{const W=$.url,X=W.indexOf("/",11),Z=W.indexOf("?",X+1),J=Z===-1?W.substring(X):W.substring(X,Z),Q={cookie:{},status:200,headers:{}},Y=Object.assign({},j.singleton.decorator,{set:Q,store:j.singleton.store,request:$,path:J,qi:Z,redirect:d0});try{for(let N=0;N<j.event.request.length;N++){const V=j.event.request[N].fn;let O=V(Y);if(O instanceof Promise)O=await O;if(O=f(O,Q),O)return Y.response=O}const B=j.router.dynamic.find($.method,J)??j.router.dynamic.find("ALL",J);if(!B)throw new O0;const{handle:K,hooks:U,validator:_,content:M}=B.store;let G;if($.method!=="GET"&&$.method!=="HEAD")if(M)switch(M){case"application/json":G=await $.json();break;case"text/plain":G=await $.text();break;case"application/x-www-form-urlencoded":G=p0(await $.text());break;case"application/octet-stream":G=await $.arrayBuffer();break;case"multipart/form-data":G={};const N=await $.formData();for(let V of N.keys()){if(G[V])continue;const O=N.getAll(V);if(O.length===1)G[V]=O[0];else G[V]=O}break}else{let N=$.headers.get("content-type");if(N){const V=N.indexOf(";");if(V!==-1)N=N.slice(0,V);Y.contentType=N;for(let O=0;O<U.parse.length;O++){const A=U.parse[O].fn;let T=A(Y,N);if(T instanceof Promise)T=await T;if(T){G=T;break}}if(delete Y.contentType,G===void 0)switch(N){case"application/json":G=await $.json();break;case"text/plain":G=await $.text();break;case"application/x-www-form-urlencoded":G=p0(await $.text());break;case"application/octet-stream":G=await $.arrayBuffer();break;case"multipart/form-data":G={};const O=await $.formData();for(let A of O.keys()){if(G[A])continue;const T=O.getAll(A);if(T.length===1)G[A]=T[0];else G[A]=T}break}}}Y.body=G,Y.params=B?.params||void 0,Y.query=Z===-1?{}:Kj(W.substring(Z+1)),Y.headers={};for(let[N,V]of $.headers.entries())Y.headers[N]=V;const w=Object.assign({},j.config?.cookie,_?.cookie?.config),F=$.headers.get("cookie");Y.cookie=await e0(Y.set,F,w?{secrets:w.secrets!==void 0?typeof w.secrets==="string"?w.secrets:w.secrets.join(","):void 0,sign:w.sign===!0?!0:w.sign!==void 0?typeof w.sign==="string"?w.sign:w.sign.join(","):void 0}:void 0);for(let N=0;N<U.transform.length;N++){const V=U.transform[N],O=V.fn(Y);if(V.subType==="derive")if(O instanceof Promise)Object.assign(Y,await O);else Object.assign(Y,O);else if(O instanceof Promise)await O}if(_){if(_.createHeaders?.()){const N={};for(let V in $.headers)N[V]=$.headers.get(V);if(_.headers.Check(N)===!1)throw new q("header",_.headers,N)}if(_.createParams?.()?.Check(Y.params)===!1)throw new q("params",_.params,Y.params);if(_.createQuery?.()?.Check(Y.query)===!1)throw new q("query",_.query,Y.query);if(_.createCookie?.()){const N={};for(let[V,O]of Object.entries(Y.cookie))N[V]=O.value;if(_.cookie.Check(N)===!1)throw new q("cookie",_.cookie,N)}if(_.createBody?.()?.Check(G)===!1)throw new q("body",_.body,G)}for(let N=0;N<U.beforeHandle.length;N++){let V=U.beforeHandle[N].fn(Y);if(V instanceof Promise)V=await V;if(V!==void 0){Y.response=V;for(let A=0;A<U.afterHandle.length;A++){let T=U.afterHandle[A].fn(Y);if(T instanceof Promise)T=await T;if(T)V=T}const O=f(V,Y.set);if(O)return Y.response=O}}let D=K(Y);if(D instanceof Promise)D=await D;if(!U.afterHandle.length){const N=D?.[d]??(Q.status?typeof Q.status==="string"?U0[Q.status]:Q.status:200),V=_?.createResponse?.()?.[N];if(V?.Check(D)===!1)throw new q("response",V,D)}else{Y.response=D;for(let N=0;N<U.afterHandle.length;N++){let V=U.afterHandle[N].fn(Y);if(V instanceof Promise)V=await V;const O=f(V,Y.set);if(O!==void 0){const A=_?.response?.[O.status];if(A?.Check(O)===!1)throw new q("response",A,O);return Y.response=O}}}if(Y.set.cookie&&w?.sign){const N=!w.secrets?void 0:typeof w.secrets==="string"?w.secrets:w.secrets[0];if(w.sign===!0)for(let[V,O]of Object.entries(Y.set.cookie))Y.set.cookie[V].value=await x0(O.value,"${secret}");else{const V=_?.cookie?.schema?.properties;for(let O of w.sign){if(!(O in V))continue;if(Y.set.cookie[O]?.value)Y.set.cookie[O].value=await x0(Y.set.cookie[O].value,N)}}}return Y.response=y(D,Y.set)}catch(B){if(B.status)Q.status=B.status;return j.handleError(Y,B)}finally{for(let B of j.event.afterResponse)await B.fn(Y)}},P1=(j)=>async($,W)=>{const X=Object.assign($,{error:W,code:W.code});X.set=$.set;for(let Z=0;Z<j.event.error.length;Z++){let Q=j.event.error[Z].fn(X);if(Q instanceof Promise)Q=await Q;if(Q!==void 0&&Q!==null)return $.response=y(Q,$.set)}return new Response(typeof W.cause==="string"?W.cause:W.message,{headers:$.set.headers,status:W.status??500})};class X0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=qj;version=qj;singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return R0(R0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new M0,ws:new M0,dynamic:new M0,static:{http:{handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new Aj;return this._promisedModules}constructor(j){if(j?.tags)if(!j.detail)j.detail={tags:j.tags};else j.detail.tags=j.tags;if(this.config={},this.applyConfig(j??{}),j?.analytic&&(j?.name||j?.seed!==void 0))this.telemetry.stack=new Error().stack}env(j,$=Bun?.env??process.env){if(u(j,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check($)===!1){const X=new q("env",j,$);throw new Error(X.all.map((Z)=>Z.summary).join("\n"))}return this}wrap(j){return this.extender.higherOrderFunctions.push({checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:j.toString()})),fn:j}),this}applyMacro(j){if(this.extender.macros.length){const $=U1({globalHook:this.event,localHook:j}),W={events:{global:this.event,local:j},onParse:$("parse"),onTransform:$("transform"),onBeforeHandle:$("beforeHandle"),onAfterHandle:$("afterHandle"),mapResponse:$("mapResponse"),onAfterResponse:$("afterResponse"),onError:$("error")};for(let X of this.extender.macros)B1(X.fn(W),j)}}applyConfig(j){return this.config={prefix:"",aot:!0,strictPath:!1,global:!1,analytic:!1,normalize:!0,...j,cookie:{path:"/",...j?.cookie},experimental:j?.experimental??{},seed:j?.seed===void 0?"":j?.seed},this}get models(){const j={};for(let[$,W]of Object.entries(this.definitions.type))j[$]=u(W);return j}add(j,$,W,X,{allowMeta:Z=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(X=_1(X),$!==""&&$.charCodeAt(0)!==47)$="/"+$;if(this.config.prefix&&!J&&!this.config.scoped)$=this.config.prefix+$;if(X?.type)switch(X.type){case"text":X.type="text/plain";break;case"json":X.type="application/json";break;case"formdata":X.type="multipart/form-data";break;case"urlencoded":X.type="application/x-www-form-urlencoded";break;case"arrayBuffer":X.type="application/octet-stream";break;default:break}const Q=this.definitions.type,Y=!this.config.aot,B={...this.validator.getCandidate()},K={body:X?.body??B?.body,headers:X?.headers??B?.headers,params:X?.params??B?.params,query:X?.query??B?.query,cookie:X?.cookie??B?.cookie,response:X?.response??B?.response},U=()=>K.cookie?Wj({validator:K.cookie,defaultConfig:this.config.cookie,config:K.cookie?.config??{},dynamic:Y,models:Q}):void 0,_=this.config.normalize,M=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:u(K.body,{dynamic:Y,models:Q,normalize:_}),headers:u(K.headers,{dynamic:Y,models:Q,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:F0()}),params:u(K.params,{dynamic:Y,models:Q,coerce:!0,additionalCoerce:F0()}),query:u(K.query,{dynamic:Y,models:Q,normalize:_,coerce:!0,additionalCoerce:F0()}),cookie:U(),response:$j(K.response,{dynamic:Y,models:Q,normalize:_})}:{createBody(){if(this.body)return this.body;return this.body=u(K.body,{dynamic:Y,models:Q,normalize:_})},createHeaders(){if(this.headers)return this.headers;return this.headers=u(K.headers,{dynamic:Y,models:Q,additionalProperties:!_,coerce:!0,additionalCoerce:F0()})},createParams(){if(this.params)return this.params;return this.params=u(K.params,{dynamic:Y,models:Q,coerce:!0,additionalCoerce:F0()})},createQuery(){if(this.query)return this.query;return this.query=u(K.query,{dynamic:Y,models:Q,coerce:!0,additionalCoerce:F0()})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=U()},createResponse(){if(this.response)return this.response;return this.response=$j(K.response,{dynamic:Y,models:Q,normalize:_})}},G=$.endsWith("/")?$.slice(0,$.length-1):$+"/";if(X=l(X,B),X.tags)if(!X.detail)X.detail={tags:X.tags};else X.detail.tags=X.tags;if(p(this.config.detail))X.detail=c(Object.assign({},this.config.detail),X.detail);this.applyMacro(X);const w=l(this.event,X);if(this.config.aot===!1){if(this.router.dynamic.add(j,$,{validator:M,hooks:w,content:X?.type,handle:W}),this.config.strictPath===!1)this.router.dynamic.add(j,G,{validator:M,hooks:w,content:X?.type,handle:W});this.router.history.push({method:j,path:$,composed:null,handler:W,hooks:w});return}const F=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,D=u0(this.inference),N=()=>F1({app:this,path:$,method:j,localHook:l(X),hooks:w,validator:M,handler:W,allowMeta:Z,inference:D}),V=F?N():(E)=>{return N()(E)},O=this.router.history.length;if(this.routeTree.has(j+$))for(let E=0;E<this.router.history.length;E++){const k=this.router.history[E];if(k.path===$&&k.method===j){const b=this.router.history.splice(E,1)[0];if(b&&this.routeTree.has(b?.method+b?.path))this.routeTree.delete(b.method+b.path)}}else this.routeTree.set(j+$,O);this.router.history.push({method:j,path:$,composed:V,handler:W,hooks:w});const A=this.router.static.http,T={handler:F?V:void 0,compile:N};if(j==="$INTERNALWS"){const E=this.config.strictPath?void 0:$.endsWith("/")?$.slice(0,$.length-1):$+"/";if($.indexOf(":")===-1&&$.indexOf("*")===-1){const k=A.handlers.length;if(A.handlers.push((b)=>(A.handlers[k]=N())(b)),this.router.static.ws[$]=k,E)this.router.static.ws[E]=k}else if(this.router.ws.add("ws",$,T),E)this.router.ws.add("ws",E,T);return}if($.indexOf(":")===-1&&$.indexOf("*")===-1){const E=A.handlers.length;if(A.handlers.push((k)=>(A.handlers[E]=N())(k)),!A.map[$])A.map[$]={code:""};if(j==="ALL")A.map[$].all=`default: return st[${E}](ctx)\n`;else A.map[$].code=`case '${j}': return st[${E}](ctx)\n${A.map[$].code}`;if(!this.config.strictPath){if(!A.map[G])A.map[G]={code:""};if(j==="ALL")A.map[G].all=`default: return st[${E}](ctx)\n`;else A.map[G].code=`case '${j}': return st[${E}](ctx)\n${A.map[G].code}`}}else if(this.router.http.add(j,$,T),!this.config.strictPath)this.router.http.add(j,$.endsWith("/")?$.slice(0,$.length-1):$+"/",T)}setHeaders;headers(j){if(!j)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=c(this.setHeaders,j),this}onStart(j){return this.on("start",j),this}onRequest(j){return this.on("request",j),this}onParse(j,$){if(!$)return this.on("parse",j);return this.on(j,"parse",$)}onTransform(j,$){if(!$)return this.on("transform",j);return this.on(j,"transform",$)}resolve(j,$){if(!$)$=j,j={as:"local"};const W={subType:"resolve",fn:$};return this.onBeforeHandle(j,W)}mapResolve(j,$){if(!$)$=j,j={as:"local"};const W={subType:"mapResolve",fn:$};return this.onBeforeHandle(j,W)}onBeforeHandle(j,$){if(!$)return this.on("beforeHandle",j);return this.on(j,"beforeHandle",$)}onAfterHandle(j,$){if(!$)return this.on("afterHandle",j);return this.on(j,"afterHandle",$)}mapResponse(j,$){if(!$)return this.on("mapResponse",j);return this.on(j,"mapResponse",$)}onAfterResponse(j,$){if(!$)return this.on("afterResponse",j);return this.on(j,"afterResponse",$)}trace(j,$){if(!$)$=j,j={as:"local"};if(!Array.isArray($))$=[$];for(let W of $)this.on(j,"trace",z1(W));return this}error(j,$){switch(typeof j){case"string":return $.prototype[V0]=j,this.definitions.error[j]=$,this;case"function":return this.definitions.error=j(this.definitions.error),this}for(let[W,X]of Object.entries(j))X.prototype[V0]=W,this.definitions.error[W]=X;return this}onError(j,$){if(!$)return this.on("error",j);return this.on(j,"error",$)}onStop(j){return this.on("stop",j),this}on(j,$,W){let X;switch(typeof j){case"string":X=j,W=$;break;case"object":if(X=$,!Array.isArray($)&&typeof $==="object")W=$;break}if(Array.isArray(W))W=i(W);else if(typeof W==="function")W=[{fn:W}];else W=[W];const Z=W;for(let J of Z)J.scope=typeof j==="string"?"local":j?.as??"local";if(X!=="trace")s0({[X]:Z.map((J)=>J.fn)},this.inference);for(let J of Z){const Q=K1(J,"global",{skipIfHasType:!0});switch(X){case"start":this.event.start.push(Q);break;case"request":this.event.request.push(Q);break;case"parse":this.event.parse.push(Q);break;case"transform":this.event.transform.push(Q);break;case"beforeHandle":this.event.beforeHandle.push(Q);break;case"afterHandle":this.event.afterHandle.push(Q);break;case"mapResponse":this.event.mapResponse.push(Q);break;case"afterResponse":this.event.afterResponse.push(Q);break;case"trace":this.event.trace.push(Q);break;case"error":this.event.error.push(Q);break;case"stop":this.event.stop.push(Q);break}}return this}propagate(){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(j){const $={plugin:"scoped",global:"global"}[j];if(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,$),j==="plugin")this.validator.scoped=R0(this.validator.scoped,this.validator.local),this.validator.local=null;else if(j==="global")this.validator.global=R0(this.validator.global,R0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group(j,$,W){const X=new X0({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.getServer=()=>this.getServer(),X.inference=u0(this.inference),X.extender={...this.extender};const Z=typeof $==="object",J=(Z?W:$)(X);if(this.singleton=c(this.singleton,X.singleton),this.definitions=c(this.definitions,X.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(X.router.history).forEach(({method:Q,path:Y,handler:B,hooks:K})=>{if(Y=(Z?"":this.config.prefix)+j+Y,Z){const U=$,_=K;this.add(Q,Y,B,l(U,{..._||{},error:!_.error?J.event.error:Array.isArray(_.error)?[..._.error||{},...J.event.error||{}]:[_.error,...J.event.error||{}]}))}else this.add(Q,Y,B,l(K,{error:J.event.error}),{skipPrefix:!0})}),this}guard(j,$){if(!$){if(typeof j==="object"){this.applyMacro(j);const Z=j.as??"local";if(this.validator[Z]={body:j.body??this.validator[Z]?.body,headers:j.headers??this.validator[Z]?.headers,params:j.params??this.validator[Z]?.params,query:j.query??this.validator[Z]?.query,response:j.response??this.validator[Z]?.response,cookie:j.cookie??this.validator[Z]?.cookie},j.parse)this.on({as:Z},"parse",j.parse);if(j.transform)this.on({as:Z},"transform",j.transform);if(j.beforeHandle)this.on({as:Z},"beforeHandle",j.beforeHandle);if(j.afterHandle)this.on({as:Z},"afterHandle",j.afterHandle);if(j.mapResponse)this.on({as:Z},"mapResponse",j.mapResponse);if(j.afterResponse)this.on({as:Z},"afterResponse",j.afterResponse);if(j.error)this.on({as:Z},"error",j.error);if(j.detail)if(this.config.detail)this.config.detail=c(Object.assign({},this.config.detail),j.detail);else this.config.detail=j.detail;if(j?.tags)if(!this.config.detail)this.config.detail={tags:j.tags};else this.config.detail.tags=j.tags;return this}return this.guard({},j)}const W=new X0({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.inference=u0(this.inference),W.extender={...this.extender};const X=$(W);if(this.singleton=c(this.singleton,W.singleton),this.definitions=c(this.definitions,W.definitions),X.getServer=()=>this.server,X.event.request.length)this.event.request=[...this.event.request||[],...X.event.request||[]];if(X.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...X.event.mapResponse||[]];return this.model(X.definitions.type),Object.values(W.router.history).forEach(({method:Z,path:J,handler:Q,hooks:Y})=>{this.add(Z,J,Q,l(j,{...Y||{},error:!Y.error?X.event.error:Array.isArray(Y.error)?[...Y.error||{},...X.event.error||[]]:[Y.error,...X.event.error||[]]}))}),this}use(j,$){if($?.scoped)return this.guard({},(W)=>W.use(j));if(Array.isArray(j)){let W=this;for(let X of j)W=this.use(X);return W}if(j instanceof Promise)return this.promisedModules.add(j.then((W)=>{if(typeof W==="function")return W(this);if(W instanceof X0)return this._use(W);if(typeof W.default==="function")return W.default(this);if(W.default instanceof X0)return this._use(W.default);throw new Error('Invalid plugin type. Expected Elysia instance, function, or module with "default" as Elysia instance or function that returns Elysia instance.')}).then((W)=>W.compile())),this;return this._use(j)}_use(j){if(typeof j==="function"){const Z=j(this);if(Z instanceof Promise)return this.promisedModules.add(Z.then((J)=>{if(J instanceof X0){this.compile();for(let{method:Q,path:Y,handler:B,hooks:K}of Object.values(J.router.history))this.add(Q,Y,B,l(K,{error:J.event.error}));return J}if(typeof J==="function")return J(this);if(typeof J.default==="function")return J.default(this);return this._use(J)}).then((J)=>J.compile())),this;return Z}if(j.promisedModules.size)return this.promisedModules.add(j.modules.then(()=>this._use(j)).then((Z)=>Z.compile())),this;const{name:$,seed:W}=j.config;j.getServer=()=>this.getServer(),j.getGlobalRoutes=()=>this.getGlobalRoutes(),j.model(this.definitions.type),j.error(this.definitions.error);const X=j.config.scoped;if(X){if($){if(!($ in this.dependencies))this.dependencies[$]=[];const J=W!==void 0?N0($+JSON.stringify(W)):0;if(this.dependencies[$].some(({checksum:Q})=>J===Q))return this;this.dependencies[$].push(!this.config?.analytic?{name:j.config.name,seed:j.config.seed,checksum:J,dependencies:j.dependencies}:{name:j.config.name,seed:j.config.seed,checksum:J,dependencies:j.dependencies,stack:j.telemetry.stack,routes:j.router.history,decorators:j.singleton.decorator,store:j.singleton.store,type:j.definitions.type,error:j.definitions.error,derive:j.event.transform.filter((Q)=>Q.subType==="derive").map((Q)=>({fn:Q.fn.toString(),stack:new Error().stack??""})),resolve:j.event.transform.filter((Q)=>Q.subType==="derive").map((Q)=>({fn:Q.fn.toString(),stack:new Error().stack??""}))})}j.extender.macros=this.extender.macros.concat(j.extender.macros);const Z=[];for(let J=0;J<j.extender.macros.length;J++){const Q=this.extender.macros[J];if(Z.includes(Q.checksum))j.extender.macros.splice(J,1),J--;Z.push(Q.checksum)}if(j.onRequest((J)=>{Object.assign(J,this.singleton.decorator),Object.assign(J.store,this.singleton.store)}),j.event.trace.length)j.event.trace.push(...j.event.trace);if(!j.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if(j.event.error.length)j.event.error.push(...this.event.error);if(j.config.aot)j.compile();if(X===!0&&j.config.prefix){this.mount(j.config.prefix+"/",j.fetch);for(let J of j.router.history)this.routeTree.set(J.method+`${j.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${j.config.prefix}${J.path}`,hooks:l(J.hooks,{error:this.event.error})})}else{this.mount(j.fetch);for(let J of j.router.history)this.routeTree.set(J.method+`${j.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${j.config.prefix}${J.path}`,hooks:l(J.hooks,{error:this.event.error})})}return this}else{if(this.headers(j.setHeaders),$){if(!($ in this.dependencies))this.dependencies[$]=[];const J=W!==void 0?N0($+JSON.stringify(W)):0;if(!this.dependencies[$].some(({checksum:Q})=>J===Q))this.extender.macros=this.extender.macros.concat(j.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat(j.extender.higherOrderFunctions)}else this.extender.macros=this.extender.macros.concat(j.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat(j.extender.higherOrderFunctions);Qj(this.extender.macros),Qj(this.extender.higherOrderFunctions);const Z=[];for(let J=0;J<this.extender.higherOrderFunctions.length;J++){const Q=this.extender.higherOrderFunctions[J];if(Q.checksum){if(Z.includes(Q.checksum))this.extender.higherOrderFunctions.splice(J,1),J--;Z.push(Q.checksum)}}this.inference={body:this.inference.body||j.inference.body,cookie:this.inference.cookie||j.inference.cookie,headers:this.inference.headers||j.inference.headers,query:this.inference.query||j.inference.query,set:this.inference.set||j.inference.set,server:this.inference.server||j.inference.server}}this.decorate(j.singleton.decorator),this.state(j.singleton.store),this.model(j.definitions.type),this.error(j.definitions.error),j.extender.macros=this.extender.macros.concat(j.extender.macros);for(let{method:Z,path:J,handler:Q,hooks:Y}of Object.values(j.router.history))this.add(Z,J,Q,l(Y,{error:j.event.error}));if(!X)if($){if(!($ in this.dependencies))this.dependencies[$]=[];const Z=W!==void 0?N0($+JSON.stringify(W)):0;if(this.dependencies[$].some(({checksum:J})=>Z===J))return this;this.dependencies[$].push(!this.config?.analytic?{name:j.config.name,seed:j.config.seed,checksum:Z,dependencies:j.dependencies}:{name:j.config.name,seed:j.config.seed,checksum:Z,dependencies:j.dependencies,stack:j.telemetry.stack,routes:j.router.history,decorators:j.singleton,store:j.singleton.store,type:j.definitions.type,error:j.definitions.error,derive:j.event.transform.filter((J)=>J?.subType==="derive").map((J)=>({fn:J.toString(),stack:new Error().stack??""})),resolve:j.event.transform.filter((J)=>J?.subType==="resolve").map((J)=>({fn:J.toString(),stack:new Error().stack??""}))}),this.event=Oj(this.event,Ij(j.event),Z)}else this.event=Oj(this.event,Ij(j.event));return this.validator.global=l(this.validator.global,{...j.validator.global}),this.validator.local=l(this.validator.local,{...j.validator.scoped}),this}macro(j){const $={checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:j.toString()})),fn:j};return this.extender.macros.push($),this}mount(j,$){if(j instanceof X0||typeof j==="function"||j.length===0||j==="/"){const Z=typeof j==="function"?j:j instanceof X0?j.compile().fetch:$ instanceof X0?$.compile().fetch:$,J=async({request:Q,path:Y})=>Z(new Request(jj(Q.url,Y||"/"),Q));return this.all("/*",J,{type:"none"}),this}const W=j.length;if($ instanceof X0)$=$.compile().fetch;const X=async({request:Z,path:J})=>$(new Request(jj(Z.url,J.slice(W)||"/"),Z));return this.all(j,X,{type:"none"}),this.all(j+(j.endsWith("/")?"*":"/*"),X,{type:"none"}),this}get(j,$,W){return this.add("GET",j,$,W),this}post(j,$,W){return this.add("POST",j,$,W),this}put(j,$,W){return this.add("PUT",j,$,W),this}patch(j,$,W){return this.add("PATCH",j,$,W),this}delete(j,$,W){return this.add("DELETE",j,$,W),this}options(j,$,W){return this.add("OPTIONS",j,$,W),this}all(j,$,W){return this.add("ALL",j,$,W),this}head(j,$,W){return this.add("HEAD",j,$,W),this}connect(j,$,W){return this.add("CONNECT",j,$,W),this}route(j,$,W,X){return this.add(j.toUpperCase(),$,W,X,X?.config),this}ws(j,$){const W=$.transformMessage?Array.isArray($.transformMessage)?$.transformMessage:[$.transformMessage]:void 0;let X=null;const Z=u($?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=u($?.response,{models:this.definitions.type,normalize:this.config.normalize}),Q=(Y)=>{if(typeof Y==="string"){const B=Y?.charCodeAt(0);if(B===47||B===123)try{Y=JSON.parse(Y)}catch{}else if(Zj(Y))Y=+Y}if(W?.length)for(let B=0;B<W.length;B++){const K=W[B](Y);if(K!==void 0)Y=K}return Y};return this.route("$INTERNALWS",j,(Y)=>{const{set:B,path:K,qi:U,headers:_,query:M,params:G}=Y;if(X===null)X=this.getServer();if(X?.upgrade(Y.request,{headers:typeof $.upgrade==="function"?$.upgrade(Y):$.upgrade,data:{validator:J,open(w){$.open?.(new g0(w,Y))},message:(w,F)=>{const D=Q(F);if(Z?.Check(D)===!1)return void w.send(new q("message",Z,D).message);$.message?.(new g0(w,Y),D)},drain(w){$.drain?.(new g0(w,Y))},close(w,F,D){$.close?.(new g0(w,Y),F,D)}}}))return;return B.status=400,"Expected a websocket connection"},{beforeHandle:$.beforeHandle,transform:$.transform,headers:$.headers,params:$.params,query:$.query}),this}state(j,$,W){if($===void 0)W=j,j={as:"append"},$="";else if(W===void 0){if(typeof j==="string")W=$,$=j,j={as:"append"};else if(typeof j==="object")W=$,$=""}const{as:X}=j;if(typeof $!=="string")return this;switch(typeof W){case"object":if($){if($ in this.singleton.store)this.singleton.store[$]=c(this.singleton.store[$],W,{override:X==="override"});else this.singleton.store[$]=W;return this}if(W===null)return this;return this.singleton.store=c(this.singleton.store,W,{override:X==="override"}),this;case"function":if($){if(X==="override"||!($ in this.singleton.store))this.singleton.store[$]=W}else this.singleton.store=W(this.singleton.store);return this;default:if(X==="override"||!($ in this.singleton.store))this.singleton.store[$]=W;return this}}decorate(j,$,W){if($===void 0)W=j,j={as:"append"},$="";else if(W===void 0){if(typeof j==="string")W=$,$=j,j={as:"append"};else if(typeof j==="object")W=$,$=""}const{as:X}=j;if(typeof $!=="string")return this;switch(typeof W){case"object":if($){if($ in this.singleton.decorator)this.singleton.decorator[$]=c(this.singleton.decorator[$],W,{override:X==="override"});else this.singleton.decorator[$]=W;return this}if(W===null)return this;return this.singleton.decorator=c(this.singleton.decorator,W,{override:X==="override"}),this;case"function":if($){if(X==="override"||!($ in this.singleton.decorator))this.singleton.decorator[$]=W}else this.singleton.decorator=W(this.singleton.decorator);return this;default:if(X==="override"||!($ in this.singleton.decorator))this.singleton.decorator[$]=W;return this}}derive(j,$){if(!$)$=j,j={as:"local"};const W={subType:"derive",fn:$};return this.onTransform(j,W)}model(j,$){switch(typeof j){case"object":return Object.entries(j).forEach(([W,X])=>{if(!(W in this.definitions.type))this.definitions.type[W]=X}),this;case"function":return this.definitions.type=j(this.definitions.type),this}return this.definitions.type[j]=$,this}mapDerive(j,$){if(!$)$=j,j={as:"local"};const W={subType:"mapDerive",fn:$};return this.onTransform(j,W)}affix(j,$,W){if(W==="")return this;const X=["_","-"," "],Z=(B)=>B[0].toUpperCase()+B.slice(1),J=j==="prefix"?(B,K)=>X.includes(B.at(-1)??"")?B+K:B+Z(K):X.includes(W.at(-1)??"")?(B,K)=>K+B:(B,K)=>K+Z(B),Q=(B)=>{const K={};switch(B){case"decorator":for(let U in this.singleton.decorator)K[J(W,U)]=this.singleton.decorator[U];this.singleton.decorator=K;break;case"state":for(let U in this.singleton.store)K[J(W,U)]=this.singleton.store[U];this.singleton.store=K;break;case"model":for(let U in this.definitions.type)K[J(W,U)]=this.definitions.type[U];this.definitions.type=K;break;case"error":for(let U in this.definitions.error)K[J(W,U)]=this.definitions.error[U];this.definitions.error=K;break}},Y=Array.isArray($)?$:[$];for(let B of Y.some((K)=>K==="all")?["decorator","state","model","error"]:Y)Q(B);return this}prefix(j,$){return this.affix("prefix",j,$)}suffix(j,$){return this.affix("suffix",j,$)}compile(){if(this.fetch=this.config.aot?bj(this):xj(this),typeof this.server?.reload==="function")this.server.reload({...this.server||{},fetch:this.fetch});return this}handle=async(j)=>this.fetch(j);fetch=(j)=>{return(this.fetch=this.config.aot?bj(this):xj(this))(j)};handleError=async(j,$)=>(this.handleError=this.config.aot?Rj(this):P1(this))(j,$);outerErrorHandler=(j)=>new Response(j.message||j.name||"Error",{status:j?.status??500});listen=(j,$)=>{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 j==="string"){if(!Zj(j))throw new Error("Port must be a numeric value");j=parseInt(j)}const W=this.fetch,X=typeof j==="object"?{development:!l0,reusePort:!0,...this.config.serve||{},...j||{},websocket:{...this.config.websocket||{},...Lj||{}},fetch:W,error:this.outerErrorHandler}:{development:!l0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...Lj||{}},port:j,fetch:W,error:this.outerErrorHandler};this.server=Bun?.serve(X);for(let Z=0;Z<this.event.start.length;Z++)this.event.start[Z].fn(this);if($)$(this.server);return process.on("beforeExit",()=>{if(this.server){this.server.stop(),this.server=null;for(let Z=0;Z<this.event.stop.length;Z++)this.event.stop[Z].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 j=0;j<this.event.stop.length;j++)this.event.stop[j].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{I as t,jj as replaceUrlPath,Y1 as replaceSchemaType,d0 as redirect,x as mergeObjectArray,l as mergeHook,s as mapValueError,y as mapResponse,f as mapEarlyResponse,e as mapCompactResponse,u as getSchemaValidator,$j as getResponseSchemaValidator,P0 as form,Tj as error,X0 as default,Qj as deduplicateChecksum,u0 as cloneInference,N0 as checksum,q as ValidationError,U0 as StatusMap,Yj as ParseError,O0 as NotFoundError,Xj as InvertedStatusMap,k0 as InvalidCookieSignature,Gj as InternalServerError,X0 as Elysia,V0 as ERROR_CODE,i0 as ELYSIA_TRACE,d as ELYSIA_RESPONSE,C0 as ELYSIA_REQUEST_ID,N2 as ELYSIA_FORM_DATA,B0 as Cookie};
518
+ )\n`;const Q=j("mapResponse",{total:X.mapResponse.length,name:"context"});if(X.mapResponse.length)for(let Y=0;Y<X.mapResponse.length;Y++){const U=X.mapResponse[Y],B=Q.resolveChild(U.fn.name);Z+=`\ncontext.response = error
519
+ error = ${L0(U)?"await":""} onMapResponse[${Y}](context)\n`,B()}return Q.resolve(),Z+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",Z)({app:$,mapResponse:f,ERROR_CODE:V0,ELYSIA_RESPONSE:d,ELYSIA_TRACE:n0,ELYSIA_REQUEST_ID:I0})};var g1=($)=>async(X)=>{const Z=X.url,W=Z.indexOf("/",11),j=Z.indexOf("?",W+1),J=j===-1?Z.substring(W):Z.substring(W,j),Q={cookie:{},status:200,headers:{}},Y=Object.assign({},$.singleton.decorator,{set:Q,store:$.singleton.store,request:X,path:J,qi:j,redirect:c0});try{for(let I=0;I<$.event.request.length;I++){const V=$.event.request[I].fn;let A=V(Y);if(A instanceof Promise)A=await A;if(A=y(A,Q),A)return Y.response=A}const U=$.router.dynamic.find(X.method,J)??$.router.dynamic.find("ALL",J);if(!U)throw new A0;const{handle:B,hooks:K,validator:w,content:F}=U.store;let G;if(X.method!=="GET"&&X.method!=="HEAD")if(F)switch(F){case"application/json":G=await X.json();break;case"text/plain":G=await X.text();break;case"application/x-www-form-urlencoded":G=i0(await X.text());break;case"application/octet-stream":G=await X.arrayBuffer();break;case"multipart/form-data":G={};const I=await X.formData();for(let V of I.keys()){if(G[V])continue;const A=I.getAll(V);if(A.length===1)G[V]=A[0];else G[V]=A}break}else{let I=X.headers.get("content-type");if(I){const V=I.indexOf(";");if(V!==-1)I=I.slice(0,V);Y.contentType=I;for(let A=0;A<K.parse.length;A++){const L=K.parse[A].fn;let q=L(Y,I);if(q instanceof Promise)q=await q;if(q){G=q;break}}if(delete Y.contentType,G===void 0)switch(I){case"application/json":G=await X.json();break;case"text/plain":G=await X.text();break;case"application/x-www-form-urlencoded":G=i0(await X.text());break;case"application/octet-stream":G=await X.arrayBuffer();break;case"multipart/form-data":G={};const A=await X.formData();for(let L of A.keys()){if(G[L])continue;const q=A.getAll(L);if(q.length===1)G[L]=q[0];else G[L]=q}break}}}Y.body=G,Y.params=U?.params||void 0,Y.query=j===-1?{}:U1(Z.substring(j+1)),Y.headers={};for(let[I,V]of X.headers.entries())Y.headers[I]=V;const M=Object.assign({},$.config?.cookie,w?.cookie?.config),D=X.headers.get("cookie");Y.cookie=await $1(Y.set,D,M?{secrets:M.secrets!==void 0?typeof M.secrets==="string"?M.secrets:M.secrets.join(","):void 0,sign:M.sign===!0?!0:M.sign!==void 0?typeof M.sign==="string"?M.sign:M.sign.join(","):void 0}:void 0);for(let I=0;I<K.transform.length;I++){const V=K.transform[I],A=V.fn(Y);if(V.subType==="derive")if(A instanceof Promise)Object.assign(Y,await A);else Object.assign(Y,A);else if(A instanceof Promise)await A}if(w){if(w.createHeaders?.()){const I={};for(let V in X.headers)I[V]=X.headers.get(V);if(w.headers.Check(I)===!1)throw new T("header",w.headers,I)}if(w.createParams?.()?.Check(Y.params)===!1)throw new T("params",w.params,Y.params);if(w.createQuery?.()?.Check(Y.query)===!1)throw new T("query",w.query,Y.query);if(w.createCookie?.()){const I={};for(let[V,A]of Object.entries(Y.cookie))I[V]=A.value;if(w.cookie.Check(I)===!1)throw new T("cookie",w.cookie,I)}if(w.createBody?.()?.Check(G)===!1)throw new T("body",w.body,G)}for(let I=0;I<K.beforeHandle.length;I++){let V=K.beforeHandle[I].fn(Y);if(V instanceof Promise)V=await V;if(V!==void 0){Y.response=V;for(let L=0;L<K.afterHandle.length;L++){let q=K.afterHandle[L].fn(Y);if(q instanceof Promise)q=await q;if(q)V=q}const A=y(V,Y.set);if(A)return Y.response=A}}let z=B(Y);if(z instanceof Promise)z=await z;if(!K.afterHandle.length){const I=z?.[d]??(Q.status?typeof Q.status==="string"?w0[Q.status]:Q.status:200),V=w?.createResponse?.()?.[I];if(V?.Check(z)===!1)throw new T("response",V,z)}else{Y.response=z;for(let I=0;I<K.afterHandle.length;I++){let V=K.afterHandle[I].fn(Y);if(V instanceof Promise)V=await V;const A=y(V,Y.set);if(A!==void 0){const L=w?.response?.[A.status];if(L?.Check(A)===!1)throw new T("response",L,A);return Y.response=A}}}if(Y.set.cookie&&M?.sign){const I=!M.secrets?void 0:typeof M.secrets==="string"?M.secrets:M.secrets[0];if(M.sign===!0)for(let[V,A]of Object.entries(Y.set.cookie))Y.set.cookie[V].value=await x0(A.value,"${secret}");else{const V=w?.cookie?.schema?.properties;for(let A of M.sign){if(!(A in V))continue;if(Y.set.cookie[A]?.value)Y.set.cookie[A].value=await x0(Y.set.cookie[A].value,I)}}}return Y.response=f(z,Y.set)}catch(U){if(U.status)Q.status=U.status;return $.handleError(Y,U)}finally{for(let U of $.event.afterResponse)await U.fn(Y)}},P2=($)=>async(X,Z)=>{const W=Object.assign(X,{error:Z,code:Z.code});W.set=X.set;for(let j=0;j<$.event.error.length;j++){let Q=$.event.error[j].fn(W);if(Q instanceof Promise)Q=await Q;if(Q!==void 0&&Q!==null)return X.response=f(Q,X.set)}return new Response(typeof Z.cause==="string"?Z.cause:Z.message,{headers:X.set.headers,status:Z.status??500})};class W0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=H1;version=H1;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:{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 S1;return this._promisedModules}constructor($){if($?.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,X=Bun?.env??process.env){if(m($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(X)===!1){const W=new T("env",$,X);throw new Error(W.all.map((j)=>j.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:P0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){const X=w2({globalHook:this.event,localHook:$}),Z={events:{global:this.event,local:$},onParse:X("parse"),onTransform:X("transform"),onBeforeHandle:X("beforeHandle"),onAfterHandle:X("afterHandle"),mapResponse:X("mapResponse"),onAfterResponse:X("afterResponse"),onError:X("error")};for(let W of this.extender.macros)K2(W.fn(Z),$)}}applyConfig($){return this.config={prefix:"",aot:!0,strictPath:!1,global:!1,analytic:!1,normalize:!0,...$,cookie:{path:"/",...$?.cookie},experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},this}get models(){const $={};for(let[X,Z]of Object.entries(this.definitions.type))$[X]=m(Z);return $}add($,X,Z,W,{allowMeta:j=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(W=_2(W),X!==""&&X.charCodeAt(0)!==47)X="/"+X;if(this.config.prefix&&!J&&!this.config.scoped)X=this.config.prefix+X;if(W?.type)switch(W.type){case"text":W.type="text/plain";break;case"json":W.type="application/json";break;case"formdata":W.type="multipart/form-data";break;case"urlencoded":W.type="application/x-www-form-urlencoded";break;case"arrayBuffer":W.type="application/octet-stream";break;default:break}const Q=this.definitions.type,Y=!this.config.aot,U={...this.validator.getCandidate()},B={body:W?.body??U?.body,headers:W?.headers??U?.headers,params:W?.params??U?.params,query:W?.query??U?.query,cookie:W?.cookie??U?.cookie,response:W?.response??U?.response},K=()=>B.cookie?W1({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:Y,models:Q}):void 0,w=this.config.normalize,F=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:m(B.body,{dynamic:Y,models:Q,normalize:w}),headers:m(B.headers,{dynamic:Y,models:Q,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:D0()}),params:m(B.params,{dynamic:Y,models:Q,coerce:!0,additionalCoerce:D0()}),query:m(B.query,{dynamic:Y,models:Q,normalize:w,coerce:!0,additionalCoerce:D0()}),cookie:K(),response:Z1(B.response,{dynamic:Y,models:Q,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:Y,models:Q,normalize:w})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:Y,models:Q,additionalProperties:!w,coerce:!0,additionalCoerce:D0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:Y,models:Q,coerce:!0,additionalCoerce:D0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:Y,models:Q,coerce:!0,additionalCoerce:D0()})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=K()},createResponse(){if(this.response)return this.response;return this.response=Z1(B.response,{dynamic:Y,models:Q,normalize:w})}},G=X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(W=l(W,U),W.tags)if(!W.detail)W.detail={tags:W.tags};else W.detail.tags=W.tags;if(p(this.config.detail))W.detail=c(Object.assign({},this.config.detail),W.detail);this.applyMacro(W);const M=l(this.event,W);if(this.config.aot===!1){if(this.router.dynamic.add($,X,{validator:F,hooks:M,content:W?.type,handle:Z}),this.config.strictPath===!1)this.router.dynamic.add($,G,{validator:F,hooks:M,content:W?.type,handle:Z});this.router.history.push({method:$,path:X,composed:null,handler:Z,hooks:M});return}const D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,z=d0(this.inference),I=()=>N2({app:this,path:X,method:$,localHook:l(W),hooks:M,validator:F,handler:Z,allowMeta:j,inference:z}),V=D?I():(E)=>{return I()(E)},A=this.router.history.length;if(this.routeTree.has($+X))for(let E=0;E<this.router.history.length;E++){const v=this.router.history[E];if(v.path===X&&v.method===$){const R=this.router.history.splice(E,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+X,A);this.router.history.push({method:$,path:X,composed:V,handler:Z,hooks:M});const L=this.router.static.http,q={handler:D?V:void 0,compile:I};if($==="$INTERNALWS"){const E=this.config.strictPath?void 0:X.endsWith("/")?X.slice(0,X.length-1):X+"/";if(X.indexOf(":")===-1&&X.indexOf("*")===-1){const v=L.handlers.length;if(L.handlers.push((R)=>(L.handlers[v]=I())(R)),this.router.static.ws[X]=v,E)this.router.static.ws[E]=v}else if(this.router.ws.add("ws",X,q),E)this.router.ws.add("ws",E,q);return}if(X.indexOf(":")===-1&&X.indexOf("*")===-1){const E=L.handlers.length;if(L.handlers.push((v)=>(L.handlers[E]=I())(v)),!L.map[X])L.map[X]={code:""};if($==="ALL")L.map[X].all=`default: return st[${E}](ctx)\n`;else L.map[X].code=`case '${$}': return st[${E}](ctx)\n${L.map[X].code}`;if(!this.config.strictPath){if(!L.map[G])L.map[G]={code:""};if($==="ALL")L.map[G].all=`default: return st[${E}](ctx)\n`;else L.map[G].code=`case '${$}': return st[${E}](ctx)\n${L.map[G].code}`}}else if(this.router.http.add($,X,q),!this.config.strictPath)this.router.http.add($,X.endsWith("/")?X.slice(0,X.length-1):X+"/",q)}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=c(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,X){if(!X)return this.on("parse",$);return this.on($,"parse",X)}onTransform($,X){if(!X)return this.on("transform",$);return this.on($,"transform",X)}resolve($,X){if(!X)X=$,$={as:"local"};const Z={subType:"resolve",fn:X};return this.onBeforeHandle($,Z)}mapResolve($,X){if(!X)X=$,$={as:"local"};const Z={subType:"mapResolve",fn:X};return this.onBeforeHandle($,Z)}onBeforeHandle($,X){if(!X)return this.on("beforeHandle",$);return this.on($,"beforeHandle",X)}onAfterHandle($,X){if(!X)return this.on("afterHandle",$);return this.on($,"afterHandle",X)}mapResponse($,X){if(!X)return this.on("mapResponse",$);return this.on($,"mapResponse",X)}onAfterResponse($,X){if(!X)return this.on("afterResponse",$);return this.on($,"afterResponse",X)}trace($,X){if(!X)X=$,$={as:"local"};if(!Array.isArray(X))X=[X];for(let Z of X)this.on($,"trace",M2(Z));return this}error($,X){switch(typeof $){case"string":return X.prototype[V0]=$,this.definitions.error[$]=X,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[Z,W]of Object.entries($))W.prototype[V0]=Z,this.definitions.error[Z]=W;return this}onError($,X){if(!X)return this.on("error",$);return this.on($,"error",X)}onStop($){return this.on("stop",$),this}on($,X,Z){let W;switch(typeof $){case"string":W=$,Z=X;break;case"object":if(W=X,!Array.isArray(X)&&typeof X==="object")Z=X;break}if(Array.isArray(Z))Z=i(Z);else if(typeof Z==="function")Z=[{fn:Z}];else Z=[Z];const j=Z;for(let J of j)J.scope=typeof $==="string"?"local":$?.as??"local";if(W!=="trace")r0({[W]:j.map((J)=>J.fn)},this.inference);for(let J of j){const Q=U2(J,"global",{skipIfHasType:!0});switch(W){case"start":this.event.start.push(Q);break;case"request":this.event.request.push(Q);break;case"parse":this.event.parse.push(Q);break;case"transform":this.event.transform.push(Q);break;case"beforeHandle":this.event.beforeHandle.push(Q);break;case"afterHandle":this.event.afterHandle.push(Q);break;case"mapResponse":this.event.mapResponse.push(Q);break;case"afterResponse":this.event.afterResponse.push(Q);break;case"trace":this.event.trace.push(Q);break;case"error":this.event.error.push(Q);break;case"stop":this.event.stop.push(Q);break}}return this}propagate(){return k(this.event.parse),k(this.event.transform),k(this.event.beforeHandle),k(this.event.afterHandle),k(this.event.mapResponse),k(this.event.afterResponse),k(this.event.trace),k(this.event.error),this}as($){const X={plugin:"scoped",global:"global"}[$];if(k(this.event.parse,X),k(this.event.transform,X),k(this.event.beforeHandle,X),k(this.event.afterHandle,X),k(this.event.mapResponse,X),k(this.event.afterResponse,X),k(this.event.trace,X),k(this.event.error,X),$==="plugin")this.validator.scoped=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($,X,Z){const W=new W0({...this.config,prefix:""});W.singleton={...this.singleton},W.definitions={...this.definitions},W.getServer=()=>this.getServer(),W.inference=d0(this.inference),W.extender={...this.extender};const j=typeof X==="object",J=(j?Z:X)(W);if(this.singleton=c(this.singleton,W.singleton),this.definitions=c(this.definitions,W.definitions),J.event.request.length)this.event.request=[...this.event.request||[],...J.event.request||[]];if(J.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...J.event.mapResponse||[]];return this.model(J.definitions.type),Object.values(W.router.history).forEach(({method:Q,path:Y,handler:U,hooks:B})=>{if(Y=(j?"":this.config.prefix)+$+Y,j){const K=X,w=B;this.add(Q,Y,U,l(K,{...w||{},error:!w.error?J.event.error:Array.isArray(w.error)?[...w.error||{},...J.event.error||{}]:[w.error,...J.event.error||{}]}))}else this.add(Q,Y,U,l(B,{error:J.event.error}),{skipPrefix:!0})}),this}guard($,X){if(!X){if(typeof $==="object"){this.applyMacro($);const j=$.as??"local";if(this.validator[j]={body:$.body??this.validator[j]?.body,headers:$.headers??this.validator[j]?.headers,params:$.params??this.validator[j]?.params,query:$.query??this.validator[j]?.query,response:$.response??this.validator[j]?.response,cookie:$.cookie??this.validator[j]?.cookie},$.parse)this.on({as:j},"parse",$.parse);if($.transform)this.on({as:j},"transform",$.transform);if($.beforeHandle)this.on({as:j},"beforeHandle",$.beforeHandle);if($.afterHandle)this.on({as:j},"afterHandle",$.afterHandle);if($.mapResponse)this.on({as:j},"mapResponse",$.mapResponse);if($.afterResponse)this.on({as:j},"afterResponse",$.afterResponse);if($.error)this.on({as:j},"error",$.error);if($.detail)if(this.config.detail)this.config.detail=c(Object.assign({},this.config.detail),$.detail);else this.config.detail=$.detail;if($?.tags)if(!this.config.detail)this.config.detail={tags:$.tags};else this.config.detail.tags=$.tags;return this}return this.guard({},$)}const Z=new W0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.inference=d0(this.inference),Z.extender={...this.extender};const W=X(Z);if(this.singleton=c(this.singleton,Z.singleton),this.definitions=c(this.definitions,Z.definitions),W.getServer=()=>this.server,W.event.request.length)this.event.request=[...this.event.request||[],...W.event.request||[]];if(W.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...W.event.mapResponse||[]];return this.model(W.definitions.type),Object.values(Z.router.history).forEach(({method:j,path:J,handler:Q,hooks:Y})=>{this.add(j,J,Q,l($,{...Y||{},error:!Y.error?W.event.error:Array.isArray(Y.error)?[...Y.error||{},...W.event.error||[]]:[Y.error,...W.event.error||[]]}))}),this}use($,X){if(X?.scoped)return this.guard({},(Z)=>Z.use($));if(Array.isArray($)){let Z=this;for(let W of $)Z=this.use(W);return Z}if($ instanceof Promise)return this.promisedModules.add($.then((Z)=>{if(typeof Z==="function")return Z(this);if(Z instanceof W0)return this._use(Z).compile();if(typeof Z.default==="function")return Z.default(this);if(Z.default instanceof W0)return this._use(Z.default);throw new Error('Invalid plugin type. Expected Elysia instance, function, or module with "default" as Elysia instance or function that returns Elysia instance.')}).then((Z)=>Z.compile())),this;return this._use($)}_use($){if(typeof $==="function"){const j=$(this);if(j instanceof Promise)return this.promisedModules.add(j.then((J)=>{if(J instanceof W0){J.getServer=()=>this.getServer(),J.getGlobalRoutes=()=>this.getGlobalRoutes(),J.model(this.definitions.type),J.error(this.definitions.error);for(let{method:Q,path:Y,handler:U,hooks:B}of Object.values(J.router.history))this.add(Q,Y,U,l(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:X,seed:Z}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);const W=$.config.scoped;if(W){if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const J=Z!==void 0?P0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:Q})=>J===Q))return this;this.dependencies[X].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Q)=>Q.subType==="derive").map((Q)=>({fn:Q.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Q)=>Q.subType==="derive").map((Q)=>({fn:Q.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const j=[];for(let J=0;J<$.extender.macros.length;J++){const Q=this.extender.macros[J];if(j.includes(Q.checksum))$.extender.macros.splice(J,1),J--;j.push(Q.checksum)}if($.onRequest((J)=>{Object.assign(J,this.singleton.decorator),Object.assign(J.store,this.singleton.store)}),$.event.trace.length)$.event.trace.push(...$.event.trace);if(!$.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if($.event.error.length)$.event.error.push(...this.event.error);if($.config.aot)$.compile();if(W===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let J of $.router.history)this.routeTree.set(J.method+`${$.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${$.config.prefix}${J.path}`,hooks:l(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:l(J.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),X){if(!(X in this.dependencies))this.dependencies[X]=[];const J=Z!==void 0?P0(X+JSON.stringify(Z)):0;if(!this.dependencies[X].some(({checksum:Q})=>J===Q))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);G1(this.extender.macros),G1(this.extender.higherOrderFunctions);const j=[];for(let J=0;J<this.extender.higherOrderFunctions.length;J++){const Q=this.extender.higherOrderFunctions[J];if(Q.checksum){if(j.includes(Q.checksum))this.extender.higherOrderFunctions.splice(J,1),J--;j.push(Q.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:Q,hooks:Y}of Object.values($.router.history))this.add(j,J,Q,l(Y,{error:$.event.error}));if(!W)if(X){if(!(X in this.dependencies))this.dependencies[X]=[];const j=Z!==void 0?P0(X+JSON.stringify(Z)):0;if(this.dependencies[X].some(({checksum:J})=>j===J))return this;this.dependencies[X].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:j,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:j,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((J)=>J?.subType==="derive").map((J)=>({fn:J.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((J)=>J?.subType==="resolve").map((J)=>({fn:J.toString(),stack:new Error().stack??""}))}),this.event=O1(this.event,C1($.event),j)}else this.event=O1(this.event,C1($.event));return this.validator.global=l(this.validator.global,{...$.validator.global}),this.validator.local=l(this.validator.local,{...$.validator.scoped}),this}macro($){const X={checksum:P0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(X),this}mount($,X){if($ instanceof W0||typeof $==="function"||$.length===0||$==="/"){const j=typeof $==="function"?$:$ instanceof W0?$.compile().fetch:X instanceof W0?X.compile().fetch:X,J=async({request:Q,path:Y})=>j(new Request(X1(Q.url,Y||"/"),Q));return this.all("/*",J,{type:"none"}),this}const Z=$.length;if(X instanceof W0)X=X.compile().fetch;const W=async({request:j,path:J})=>X(new Request(X1(j.url,J.slice(Z)||"/"),j));return this.all($,W,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),W,{type:"none"}),this}get($,X,Z){return this.add("GET",$,X,Z),this}post($,X,Z){return this.add("POST",$,X,Z),this}put($,X,Z){return this.add("PUT",$,X,Z),this}patch($,X,Z){return this.add("PATCH",$,X,Z),this}delete($,X,Z){return this.add("DELETE",$,X,Z),this}options($,X,Z){return this.add("OPTIONS",$,X,Z),this}all($,X,Z){return this.add("ALL",$,X,Z),this}head($,X,Z){return this.add("HEAD",$,X,Z),this}connect($,X,Z){return this.add("CONNECT",$,X,Z),this}route($,X,Z,W){return this.add($.toUpperCase(),X,Z,W,W?.config),this}ws($,X){const Z=X.transformMessage?Array.isArray(X.transformMessage)?X.transformMessage:[X.transformMessage]:void 0;let W=null;const j=m(X?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=m(X?.response,{models:this.definitions.type,normalize:this.config.normalize}),Q=(Y)=>{if(typeof Y==="string"){const U=Y?.charCodeAt(0);if(U===47||U===123)try{Y=JSON.parse(Y)}catch{}else if(j1(Y))Y=+Y}if(Z?.length)for(let U=0;U<Z.length;U++){const B=Z[U](Y);if(B!==void 0)Y=B}return Y};return this.route("$INTERNALWS",$,(Y)=>{const{set:U,path:B,qi:K,headers:w,query:F,params:G}=Y;if(W===null)W=this.getServer();if(W?.upgrade(Y.request,{headers:typeof X.upgrade==="function"?X.upgrade(Y):X.upgrade,data:{validator:J,open(M){X.open?.(new g0(M,Y))},message:(M,D)=>{const z=Q(D);if(j?.Check(z)===!1)return void M.send(new T("message",j,z).message);X.message?.(new g0(M,Y),z)},drain(M){X.drain?.(new g0(M,Y))},close(M,D,z){X.close?.(new g0(M,Y),D,z)}}}))return;return U.status=400,"Expected a websocket connection"},{beforeHandle:X.beforeHandle,transform:X.transform,headers:X.headers,params:X.params,query:X.query}),this}state($,X,Z){if(X===void 0)Z=$,$={as:"append"},X="";else if(Z===void 0){if(typeof $==="string")Z=X,X=$,$={as:"append"};else if(typeof $==="object")Z=X,X=""}const{as:W}=$;if(typeof X!=="string")return this;switch(typeof Z){case"object":if(X){if(X in this.singleton.store)this.singleton.store[X]=c(this.singleton.store[X],Z,{override:W==="override"});else this.singleton.store[X]=Z;return this}if(Z===null)return this;return this.singleton.store=c(this.singleton.store,Z,{override:W==="override"}),this;case"function":if(X){if(W==="override"||!(X in this.singleton.store))this.singleton.store[X]=Z}else this.singleton.store=Z(this.singleton.store);return this;default:if(W==="override"||!(X in this.singleton.store))this.singleton.store[X]=Z;return this}}decorate($,X,Z){if(X===void 0)Z=$,$={as:"append"},X="";else if(Z===void 0){if(typeof $==="string")Z=X,X=$,$={as:"append"};else if(typeof $==="object")Z=X,X=""}const{as:W}=$;if(typeof X!=="string")return this;switch(typeof Z){case"object":if(X){if(X in this.singleton.decorator)this.singleton.decorator[X]=c(this.singleton.decorator[X],Z,{override:W==="override"});else this.singleton.decorator[X]=Z;return this}if(Z===null)return this;return this.singleton.decorator=c(this.singleton.decorator,Z,{override:W==="override"}),this;case"function":if(X){if(W==="override"||!(X in this.singleton.decorator))this.singleton.decorator[X]=Z}else this.singleton.decorator=Z(this.singleton.decorator);return this;default:if(W==="override"||!(X in this.singleton.decorator))this.singleton.decorator[X]=Z;return this}}derive($,X){if(!X)X=$,$={as:"local"};const Z={subType:"derive",fn:X};return this.onTransform($,Z)}model($,X){switch(typeof $){case"object":return Object.entries($).forEach(([Z,W])=>{if(!(Z in this.definitions.type))this.definitions.type[Z]=W}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=X,this}mapDerive($,X){if(!X)X=$,$={as:"local"};const Z={subType:"mapDerive",fn:X};return this.onTransform($,Z)}affix($,X,Z){if(Z==="")return this;const W=["_","-"," "],j=(U)=>U[0].toUpperCase()+U.slice(1),J=$==="prefix"?(U,B)=>W.includes(U.at(-1)??"")?U+B:U+j(B):W.includes(Z.at(-1)??"")?(U,B)=>B+U:(U,B)=>B+j(U),Q=(U)=>{const B={};switch(U){case"decorator":for(let K in this.singleton.decorator)B[J(Z,K)]=this.singleton.decorator[K];this.singleton.decorator=B;break;case"state":for(let K in this.singleton.store)B[J(Z,K)]=this.singleton.store[K];this.singleton.store=B;break;case"model":for(let K in this.definitions.type)B[J(Z,K)]=this.definitions.type[K];this.definitions.type=B;break;case"error":for(let K in this.definitions.error)B[J(Z,K)]=this.definitions.error[K];this.definitions.error=B;break}},Y=Array.isArray(X)?X:[X];for(let U of Y.some((B)=>B==="all")?["decorator","state","model","error"]:Y)Q(U);return this}prefix($,X){return this.affix("prefix",$,X)}suffix($,X){return this.affix("suffix",$,X)}compile(){if(this.fetch=this.config.aot?b1(this):g1(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?b1(this):g1(this))($)};handleError=async($,X)=>(this.handleError=this.config.aot?x1(this):P2(this))($,X);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,X)=>{if(typeof Bun==="undefined")throw new Error(".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch");if(this.compile(),typeof $==="string"){if(!j1($))throw new Error("Port must be a numeric value");$=parseInt($)}const Z=this.fetch,W=typeof $==="object"?{development:!p0,reusePort:!0,...this.config.serve||{},...$||{},websocket:{...this.config.websocket||{},...T1||{}},fetch:Z,error:this.outerErrorHandler}:{development:!p0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...T1||{}},port:$,fetch:Z,error:this.outerErrorHandler};this.server=Bun?.serve(W);for(let j=0;j<this.event.start.length;j++)this.event.start[j].fn(this);if(X)X(this.server);return process.on("beforeExit",()=>{if(this.server){this.server.stop(),this.server=null;for(let j=0;j<this.event.stop.length;j++)this.event.stop[j].fn(this)}}),this.promisedModules.then(()=>{Bun?.gc(!1)}),this};stop=async()=>{if(!this.server)throw new Error("Elysia isn't running. Call `app.listen` to start the server.");if(this.server){if(this.server.stop(),this.server=null,this.event.stop.length)for(let $=0;$<this.event.stop.length;$++)this.event.stop[$].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{O as t,X1 as replaceUrlPath,B2 as replaceSchemaType,c0 as redirect,x as mergeObjectArray,l as mergeHook,r as mapValueError,f as mapResponse,y as mapEarlyResponse,$0 as mapCompactResponse,m as getSchemaValidator,Z1 as getResponseSchemaValidator,N0 as form,q1 as error,W0 as default,G1 as deduplicateChecksum,d0 as cloneInference,P0 as checksum,T as ValidationError,w0 as StatusMap,B1 as ParseError,A0 as NotFoundError,J1 as InvertedStatusMap,v0 as InvalidCookieSignature,Y1 as InternalServerError,W0 as Elysia,V0 as ERROR_CODE,n0 as ELYSIA_TRACE,d as ELYSIA_RESPONSE,I0 as ELYSIA_REQUEST_ID,I3 as ELYSIA_FORM_DATA,K0 as Cookie};
522
520
 
523
- //# debugId=35C0D37A5D90104264756E2164756E21
521
+ //# debugId=EAF460284DE1FB3464756E2164756E21