elysia 1.1.5 → 1.1.7

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,20 +1,20 @@
1
1
  // @bun
2
- var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames:A2}=Object;var C2=Object.prototype.hasOwnProperty;var Y1=(j,W,$)=>{$=j!=null?O2(V2(j)):{};const X=W||!j||!j.__esModule?R1($,"default",{value:j,enumerable:!0}):$;for(let Z of A2(j))if(!C2.call(X,Z))R1(X,Z,{get:()=>j[Z],enumerable:!0});return X};var S2=(j,W)=>()=>(W||j((W={exports:{}}).exports,W),W.exports);var r0=S2((j3,r1)=>{function Gj(j){var W=j.indexOf("%");if(W===-1)return j;var $=j.length,X="",Z=0,J=0,Q=W,K=n1;while(W>-1&&W<$){var Y=s1(j[W+1],4),B=s1(j[W+2],0),U=Y|B,_=F1[U];if(K=F1[256+K+_],J=J<<6|U&F1[364+_],K===n1)X+=j.slice(Z,Q),X+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,Z=W+3,W=Q=j.indexOf("%",Z);else if(K===Qj)return null;else{if(W+=3,W<$&&j.charCodeAt(W)===37)continue;return null}}return X+j.slice(Z)}function s1(j,W){var $=Kj[j];return $===void 0?255:$<<W}var n1=12,Qj=0,F1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7],Kj={"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};r1.exports=Gj});var T0=(j,W)=>{const $=W?.length?{}:null;if($)for(let X of W)$[X.part.charCodeAt(0)]=X;return{part:j,store:null,inert:$,params:null,wildcardStore:null}},x1=(j,W)=>({...j,part:W}),g1=(j)=>({name:j,store:null,inert:null});class D0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add(j,W,$,{ignoreError:X=!1,ignoreHistory:Z=!1}={}){if(typeof W!=="string")throw new TypeError("Route path must be a string");if(W==="")W="/";else if(W[0]!=="/")W=`/${W}`;const J=W[W.length-1]==="*",Q=W.match(D0.regex.optionalParams);if(Q){const _=W.replaceAll("?","");this.add(j,_,$,{ignoreError:X});for(let M=0;M<Q.length;M++){let G=W.replace("/"+Q[M],"");this.add(j,G,$,{ignoreError:!0})}return $}if(Q)W=W.replaceAll("?","");if(this.history.find(([_,M,G])=>_===j&&M===W))return $;if(J||Q&&W.charCodeAt(W.length-1)===63)W=W.slice(0,-1);if(!Z)this.history.push([j,W,$]);const K=W.split(D0.regex.static),Y=W.match(D0.regex.params)||[];if(K[K.length-1]==="")K.pop();let B;if(!this.root[j])B=this.root[j]=T0("/");else B=this.root[j];let U=0;for(let _=0;_<K.length;++_){let M=K[_];if(_>0){const G=Y[U++].slice(1);if(B.params===null)B.params=g1(G);else if(B.params.name!==G)if(X)return $;else throw new Error(`Cannot create route "${W}" with parameter "${G}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);const w=B.params;if(w.inert===null){B=w.inert=T0(M);continue}B=w.inert}for(let G=0;;){if(G===M.length){if(G<B.part.length){const w=x1(B,B.part.slice(G));Object.assign(B,T0(M,[w]))}break}if(G===B.part.length){if(B.inert===null)B.inert={};const w=B.inert[M.charCodeAt(G)];if(w){B=w,M=M.slice(G),G=0;continue}const z=T0(M.slice(G));B.inert[M.charCodeAt(G)]=z,B=z;break}if(M[G]!==B.part[G]){const w=x1(B,B.part.slice(G)),z=T0(M.slice(G));Object.assign(B,T0(B.part.slice(0,G),[w,z])),B=z;break}++G}}if(U<Y.length){const _=Y[U].slice(1);if(B.params===null)B.params=g1(_);else if(B.params.name!==_)if(X)return $;else throw new Error(`Cannot create route "${W}" with parameter "${_}" 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=$;return B.params.store}if(J){if(B.wildcardStore===null)B.wildcardStore=$;return B.wildcardStore}if(B.store===null)B.store=$;return B.store}find(j,W){const $=this.root[j];if(!$)return null;return U1(W,W.length,$,0)}}var U1=(j,W,$,X)=>{const Z=$.part,J=Z.length,Q=X+J;if(J>1){if(Q>W)return null;if(J<15){for(let K=1,Y=X+1;K<J;++K,++Y)if(Z.charCodeAt(K)!==j.charCodeAt(Y))return null}else if(j.slice(X,Q)!==Z)return null}if(Q===W){if($.store!==null)return{store:$.store,params:{}};if($.wildcardStore!==null)return{store:$.wildcardStore,params:{"*":""}};return null}if($.inert!==null){const K=$.inert[j.charCodeAt(Q)];if(K!==void 0){const Y=U1(j,W,K,Q);if(Y!==null)return Y}}if($.params!==null){const{store:K,name:Y,inert:B}=$.params,U=j.indexOf("/",Q);if(U!==Q){if(U===-1||U>=W){if(K!==null){const _={};return _[Y]=j.substring(Q,W),{store:K,params:_}}}else if(B!==null){const _=U1(j,W,B,U);if(_!==null)return _.params[Y]=j.substring(Q,U),_}}}if($.wildcardStore!==null)return{store:$.wildcardStore,params:{"*":j.substring(Q,W)}};return null};var q0=(j)=>{const W=typeof j==="object"?j.fn.toString():typeof j==="string"?j.toString():j,$=W.indexOf(")");if(W.charCodeAt($+2)===61&&W.charCodeAt($+5)!==123)return!0;return W.includes("return")},T2=(j)=>{if(j.startsWith("async"))j=j.slice(5);j=j.trimStart();let W=-1;if(j.charCodeAt(0)===40){if(W=j.indexOf("=>",j.indexOf(")")),W!==-1){let Z=W;while(Z>0)if(j.charCodeAt(--Z)===41)break;let J=j.slice(W+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[j.slice(1,Z),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if(j.startsWith("function")){W=j.indexOf("(");const Z=j.indexOf(")");return[j.slice(W+1,Z),j.slice(Z+2),{isArrowReturn:!1}]}const $=j.indexOf("(");if($!==-1){const Z=j.indexOf("\n",2),J=j.slice(0,Z),Q=J.lastIndexOf(")")+1,K=j.slice(Z+1);return[J.slice($,Q),"{"+K,{isArrowReturn:!1}]}const X=j.split("\n",2);return[X[0],X[1],{isArrowReturn:!1}]},q2=(j)=>{const W=j.indexOf("{");if(W===-1)return[-1,0];let $=W+1,X=1;for(;$<j.length;$++){const Z=j.charCodeAt($);if(Z===123)X++;else if(Z===125)X--;if(X===0)break}if(X!==0)return[0,j.length];return[W,$+1]},L2=(j)=>{const W=j.lastIndexOf("}");if(W===-1)return[-1,0];let $=W-1,X=1;for(;$>=0;$--){const Z=j.charCodeAt($);if(Z===125)X++;else if(Z===123)X--;if(X===0)break}if(X!==0)return[-1,0];return[$,W+1]},y1=(j)=>{while(!0){const W=j.indexOf(":");if(W===-1)break;let $=j.indexOf(",",W);if($===-1)$=j.indexOf("}",W)-1;if($===-2)$=j.length;j=j.slice(0,W)+j.slice($)}return j},f1=(j)=>{let W=!1;if(j.charCodeAt(0)===40)j=j.slice(1,-1);if(j.charCodeAt(0)===123)W=!0,j=j.slice(1,-1);j=j.replace(/( |\t|\n)/g,"").trim();let $=[];while(!0){let[Z,J]=q2(j);if(Z===-1)break;if($.push(j.slice(0,Z-1)),j.charCodeAt(J)===44)J++;j=j.slice(J)}if(j=y1(j),j)$=$.concat(j.split(","));const X=[];for(let Z of $){if(Z.indexOf(",")===-1){X.push(Z);continue}for(let J of Z.split(","))X.push(J.trim())}return $=X,{hasParenthesis:W,parameters:$}},E2=(j,W)=>{const{parameters:$,hasParenthesis:X}=f1(j);if(!W.query&&$.includes("query"))W.query=!0;if(!W.headers&&$.includes("headers"))W.headers=!0;if(!W.body&&$.includes("body"))W.body=!0;if(!W.cookie&&$.includes("cookie"))W.cookie=!0;if(!W.set&&$.includes("set"))W.set=!0;if(!W.server&&$.includes("server"))W.server=!0;if(X)return`{ ${$.join(", ")} }`;return $.join(", ")},H2=(j,W,$)=>{const X=W.indexOf(j+"\n",$),Z=W.indexOf(j+"\t",$),J=W.indexOf(j+",",$),Q=W.indexOf(j+";",$),K=W.indexOf(j+" ",$);return[X,Z,J,Q,K].filter((Y)=>Y>0).sort((Y,B)=>Y-B)[0]||-1};var v1=(j,W,$=0)=>{if($>5)return[];const X=[];let Z=W;while(!0){let J=H2(" = "+j,Z);if(J===-1){const Y=Z.indexOf(" = "+j);if(Y+3+j.length!==Z.length)break;J=Y}const Q=Z.slice(0,J);let K=Q.slice(Q.lastIndexOf(" ")+1);if(K==="}"){const[Y,B]=L2(Q);X.push(y1(Z.slice(Y,B))),Z=Z.slice(J+3+j.length);continue}while(K.charCodeAt(0)===44)K=K.slice(1);while(K.charCodeAt(0)===9)K=K.slice(1);if(!K.includes("("))X.push(K);Z=Z.slice(J+3+j.length)}for(let J of X){if(J.charCodeAt(0)===123)continue;const Q=v1(J,W);if(Q.length>0)X.push(...Q)}return X},b2=(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 $=j.indexOf("...");if($===-1)return;return j.slice($+3).trimEnd()},R2=(j,W,$)=>{const X=(Z,J)=>j.includes(J+"."+Z)||j.includes(J+'["'+Z+'"]')||j.includes(J+"['"+Z+"']");for(let Z of W){if(!Z)continue;if(Z.charCodeAt(0)===123){const J=f1(Z).parameters;if(!$.query&&J.includes("query"))$.query=!0;if(!$.headers&&J.includes("headers"))$.headers=!0;if(!$.body&&J.includes("body"))$.body=!0;if(!$.cookie&&J.includes("cookie"))$.cookie=!0;if(!$.set&&J.includes("set"))$.set=!0;if(!$.query&&J.includes("server"))$.server=!0;continue}if(!$.query&&X("query",Z))$.query=!0;if(j.includes("return "+Z)||j.includes("return "+Z+".query"))$.query=!0;if(!$.headers&&X("headers",Z))$.headers=!0;if(!$.body&&X("body",Z))$.body=!0;if(!$.cookie&&X("cookie",Z))$.cookie=!0;if(!$.set&&X("set",Z))$.set=!0;if(!$.server&&X("server",Z))$.server=!0;if($.query&&$.headers&&$.body&&$.cookie&&$.set&&$.server)break}return W};var x2=(j,W,$)=>{try{const X=new RegExp(`(?:\\w)\\((?:.*)?${j}`,"gs");X.test(W);const Z=W.charCodeAt(X.lastIndex);if(Z===41||Z===44)return $.query=!0,$.headers=!0,$.body=!0,$.cookie=!0,$.set=!0,$.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(W),console.log("--- context ---"),console.log(j),!0}},t0=(j,W={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const $=[];if(j.handler&&typeof j.handler==="function")$.push(j.handler);if(j.request?.length)$.push(...j.request);if(j.beforeHandle?.length)$.push(...j.beforeHandle);if(j.parse?.length)$.push(...j.parse);if(j.error?.length)$.push(...j.error);if(j.transform?.length)$.push(...j.transform);if(j.afterHandle?.length)$.push(...j.afterHandle);if(j.mapResponse?.length)$.push(...j.mapResponse);if(j.afterResponse?.length)$.push(...j.afterResponse);for(let X of $){if(!X)continue;const Z="fn"in X?X.fn:X,[J,Q,{isArrowReturn:K}]=T2(Z.toString()),Y=E2(J,W),B=b2(Y);if(B){const U=v1(B,Q);if(U.splice(0,-1,B),!x2(B,Q,W))R2(Q,U,W);if(!W.query&&Q.includes("return "+B+".query"))W.query=!0}if(W.query&&W.headers&&W.body&&W.cookie&&W.set&&W.server)break}return W};import{Value as m0}from"@sinclair/typebox/value";import{Kind as E0,TransformKind as $2}from"@sinclair/typebox";import{Value as W0}from"@sinclair/typebox/value";import{TypeCompiler as Z2}from"@sinclair/typebox/compiler";import{TypeRegistry as l1}from"@sinclair/typebox";import{TypeSystem as L0}from"@sinclair/typebox/system";import{Type as y0,FormatRegistry as o}from"@sinclair/typebox";import{TypeCompiler as d1}from"@sinclair/typebox/compiler";import{Value as a}from"@sinclair/typebox/value";function g2(j){return j%4===0&&(j%100!==0||j%400===0)}function m1(j){const W=y2.exec(j);if(!W)return!1;const $=+W[1],X=+W[2],Z=+W[3];return X>=1&&X<=12&&Z>=1&&Z<=(X===2&&g2($)?29:f2[X])}function _1(j){return function W($){const X=v2.exec($);if(!X)return!1;const Z=+X[1],J=+X[2],Q=+X[3],K=X[4],Y=X[5]==="-"?-1:1,B=+(X[6]||0),U=+(X[7]||0);if(B>23||U>59||j&&!K)return!1;if(Z<=23&&J<=59&&Q<60)return!0;const _=J-U*Y,M=Z-B*Y-(_<0?1:0);return(M===23||M===-1)&&(_===59||_===-1)&&Q<61}}function k1(j){const W=_1(j);return function $(X){const Z=X.split(k2);return Z.length===2&&m1(Z[0])&&W(Z[1])}}function m2(j){return u2.test(j)&&h2.test(j)}function d2(j){return u1.lastIndex=0,u1.test(j)}function p2(j){return Number.isInteger(j)&&j<=l2&&j>=c2}function i2(j){return Number.isInteger(j)}function h1(){return!0}function n2(j){if(t2.test(j))return!1;try{return new RegExp(j),!0}catch(W){return!1}}var n0={date:m1,time:_1(!0),"date-time":k1(!0),"iso-time":_1(!1),"iso-date-time":k1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:m2,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:n2,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:d2,int32:{type:"number",validate:p2},int64:{type:"number",validate:i2},float:{type:"number",validate:h1},double:{type:"number",validate:h1},password:!0,binary:!0},y2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,f2=[0,31,28,31,30,31,30,31,31,30,31,30,31],v2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,k2=/t|\s/i,u2=/\/|:/,h2=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,u1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,c2=-2147483648,l2=2147483647,t2=/[^\\]\\Z/;import{TypeSystemPolicy as ij,TypeSystem as tj,TypeSystemDuplicateFormat as nj,TypeSystemDuplicateTypeKind as sj}from"@sinclair/typebox/system";import{TypeCompiler as aj,TypeCheck as oj}from"@sinclair/typebox/compiler";var p1=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,i1=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,t1=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,s2=n0.date,r2=n0["date-time"];if(!o.Has("date"))L0.Format("date",(j)=>{const W=j.replace(/"/g,"");if(p1.test(W)||i1.test(W)||t1.test(W)||s2(W)){const $=new Date(W);if(!Number.isNaN($.getTime()))return!0}return!1});if(!o.Has("date-time"))L0.Format("date-time",(j)=>{const W=j.replace(/"/g,"");if(p1.test(W)||i1.test(W)||t1.test(W)||r2(W)){const $=new Date(W);if(!Number.isNaN($.getTime()))return!0}return!1});Object.entries(n0).forEach((j)=>{const[W,$]=j;if(!o.Has(W)){if($ instanceof RegExp)L0.Format(W,(X)=>$.test(X));else if(typeof $==="function")L0.Format(W,$)}});var A=Object.assign({},y0),c1=(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},w1=(j,W)=>{if(!(W instanceof Blob))return!1;if(j.minSize&&W.size<c1(j.minSize))return!1;if(j.maxSize&&W.size>c1(j.maxSize))return!1;if(j.extension)if(typeof j.extension==="string"){if(!W.type.startsWith(j.extension))return!1}else{for(let $=0;$<j.extension.length;$++)if(W.type.startsWith(j.extension[$]))return!0;return!1}return!0},a2=l1.Get("Files")??L0.Type("File",w1),o2=l1.Get("Files")??L0.Type("Files",(j,W)=>{if(!Array.isArray(W))return w1(j,W);if(j.minItems&&W.length<j.minItems)return!1;if(j.maxItems&&W.length>j.maxItems)return!1;for(let $=0;$<W.length;$++)if(!w1(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 W=j.charCodeAt(0);if(W===9||W===10||W===32)W=j.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse(j),!0}catch{return!1}});if(!o.Has("ArrayString"))o.Set("ArrayString",(j)=>{let W=j.charCodeAt(0);if(W===9||W===10||W===32)W=j.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse(j),!0}catch{return!1}});var Q0={Numeric:(j)=>{const W=y0.Number(j);return A.Transform(A.Union([A.String({format:"numeric",default:0}),A.Number(j)],j)).Decode(($)=>{const X=+$;if(isNaN(X))return $;if(j&&!a.Check(W,X))throw new L("property",W,X);return X}).Encode(($)=>$)},Date:(j)=>{const W=y0.Date(j);return A.Transform(A.Union([y0.Date(j),A.String({format:"date",default:(new Date()).toISOString()}),A.String({format:"date-time",default:(new Date()).toISOString()})],j)).Decode(($)=>{if($ instanceof Date)return $;const X=new Date($);if(!a.Check(W,X))throw new L("property",W,X);return X}).Encode(($)=>{if(typeof $==="string")return new Date($);return $})},BooleanString:(j)=>{const W=y0.Boolean(j);return A.Transform(A.Union([A.String({format:"boolean",default:!1}),A.Boolean(j)],j)).Decode(($)=>{if(typeof $==="string")return $==="true";if(j&&!a.Check(W,$))throw new L("property",W,$);return $}).Encode(($)=>$)},ObjectString:(j,W)=>{const $=A.Object(j,W),X=JSON.stringify(a.Create($));let Z;try{Z=d1.Compile($)}catch{}return A.Transform(A.Union([A.String({format:"ObjectString",default:X}),$])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new L("property",$,J);try{J=JSON.parse(J)}catch{throw new L("property",$,J)}if(Z){if(!Z.Check(J))throw new L("property",$,J);return Z.Decode(J)}if(!a.Check($,J))throw new L("property",$,J);return a.Decode($,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new L("property",$,J)}if(!a.Check($,J))throw new L("property",$,J);return JSON.stringify(J)})},ArrayString:(j={},W)=>{const $=A.Array(j,W),X=JSON.stringify(a.Create($));let Z;try{Z=d1.Compile($)}catch{}return A.Transform(A.Union([A.String({format:"ArrayString",default:X}),$])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new L("property",$,J);try{J=JSON.parse(J)}catch{throw new L("property",$,J)}if(Z){if(!Z.Check(J))throw new L("property",$,J);return Z.Decode(J)}if(!a.Check($,J))throw new L("property",$,J);return a.Decode($,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new L("property",$,J)}if(!a.Check($,J))throw new L("property",$,J);return JSON.stringify(J)})},File:a2,Files:(j={})=>A.Transform(o2(j)).Decode((W)=>{if(Array.isArray(W))return W;return[W]}).Encode((W)=>W),Nullable:(j)=>A.Union([j,A.Null()]),MaybeEmpty:(j)=>A.Union([j,A.Null(),A.Undefined()]),Cookie:(j,{domain:W,expires:$,httpOnly:X,maxAge:Z,path:J,priority:Q,sameSite:K,secure:Y,secrets:B,sign:U,..._}={})=>{const M=A.Object(j,_);return M.config={domain:W,expires:$,httpOnly:X,maxAge:Z,path:J,priority:Q,sameSite:K,secure:Y,secrets:B,sign:U},M}};A.BooleanString=Q0.BooleanString;A.ObjectString=Q0.ObjectString;A.ArrayString=Q0.ArrayString;A.Numeric=Q0.Numeric;A.File=(j={})=>Q0.File({default:"File",...j,extension:j?.type,type:"string",format:"binary"});A.Files=(j={})=>Q0.Files({...j,elysiaMeta:"Files",default:"Files",extension:j?.type,type:"array",items:{...j,default:"Files",type:"string",format:"binary"}});A.Nullable=(j)=>Q0.Nullable(j);A.MaybeEmpty=Q0.MaybeEmpty;A.Cookie=Q0.Cookie;A.Date=Q0.Date;function jj(j,W){if(typeof j!=="string")throw new TypeError("argument str must be a string");var $={},X=W||{},Z=X.decode||$j,J=0;while(J<j.length){var Q=j.indexOf("=",J);if(Q===-1)break;var K=j.indexOf(";",J);if(K===-1)K=j.length;else if(K<Q){J=j.lastIndexOf(";",Q-1)+1;continue}var Y=j.slice(J,Q).trim();if($[Y]===void 0){var B=j.slice(Q+1,K).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);$[Y]=Jj(B,Z)}J=K+1}return $}function Wj(j,W,$){var X=$||{},Z=X.encode||Xj;if(typeof Z!=="function")throw new TypeError("option encode is invalid");if(!s0.test(j))throw new TypeError("argument name is invalid");var J=Z(W);if(J&&!s0.test(J))throw new TypeError("argument val is invalid");var Q=j+"="+J;if(X.maxAge!=null){var K=X.maxAge-0;if(isNaN(K)||!isFinite(K))throw new TypeError("option maxAge is invalid");Q+="; Max-Age="+Math.floor(K)}if(X.domain){if(!s0.test(X.domain))throw new TypeError("option domain is invalid");Q+="; Domain="+X.domain}if(X.path){if(!s0.test(X.path))throw new TypeError("option path is invalid");Q+="; Path="+X.path}if(X.expires){var Y=X.expires;if(!Zj(Y)||isNaN(Y.valueOf()))throw new TypeError("option expires is invalid");Q+="; Expires="+Y.toUTCString()}if(X.httpOnly)Q+="; HttpOnly";if(X.secure)Q+="; Secure";if(X.partitioned)Q+="; Partitioned";if(X.priority){var B=typeof X.priority==="string"?X.priority.toLowerCase():X.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(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 $j(j){return j.indexOf("%")!==-1?decodeURIComponent(j):j}function Xj(j){return encodeURIComponent(j)}function Zj(j){return e2.call(j)==="[object Date]"||j instanceof Date}function Jj(j,W){try{return W(j)}catch($){return j}}/*!
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}}/*!
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 D1=jj,M1=Wj;var e2=Object.prototype.toString,s0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var o1=Y1(r0(),1);class B0{j;W;$;constructor(j,W,$={}){this.name=j;this.jar=W;this.initial=$}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 a1=(j,W,$)=>{if(!j.cookie)j.cookie={};return new Proxy(W,{get(X,Z){if(Z in W)return new B0(Z,j.cookie,Object.assign({},$??{},W[Z]));return new B0(Z,j.cookie,Object.assign({},$))}})},a0=async(j,W,{secrets:$,sign:X,...Z}={})=>{if(!W)return a1(j,{},Z);const J=typeof $==="string";if(X&&X!==!0&&!Array.isArray(X))X=[X];const Q={},K=D1(W);for(let[Y,B]of Object.entries(K)){let U=o1.default(B);if(X===!0||X?.includes(Y)){if(!$)throw new Error("No secret is provided to cookie plugin");if(J){const _=await z1(U,$);if(_===!1)throw new f0(Y);U=_}else{let _=!0;for(let M=0;M<$.length;M++){const G=await z1(U,$[M]);if(G!==!1){_=!0,U=G;break}}if(!_)throw new f0(Y)}}Q[Y]={value:U}}return a1(j,Q,Z)};var e1="toJSON"in new Headers,p=(j)=>{if(!j)return!1;for(let W in j)return!0;return!1},v0=(j,W)=>{const $=j.size;if(!W&&$||$&&W&&W.status!==206&&W.status!==304&&W.status!==412&&W.status!==416){if(W){if(W.headers instanceof Headers){if(e1)W.headers=W.headers.toJSON();else for(let[X,Z]of W.headers.entries())if(X in W.headers)W.headers[X]=Z}return new Response(j,{status:W.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${$-1}/${$}`},W.headers)})}return new Response(j,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${$-1}/${$}`}})}return new Response(j)},j2=(j,W)=>{if(!j)return j;j.delete("set-cookie");for(let $=0;$<W.length;$++){const X=W[$].indexOf("=");j.append("set-cookie",`${W[$].slice(0,X)}=${W[$].slice(X+1)||""}`)}return j},W2=(j)=>{if(!j||!p(j))return;const W=[];for(let[$,X]of Object.entries(j)){if(!$||!X)continue;const Z=X.value;if(Z===void 0||Z===null)continue;W.push(M1($,typeof Z==="object"?JSON.stringify(Z):Z+"",X))}if(W.length===0)return;if(W.length===1)return W[0];return W},k0=async(j,W,$)=>{let X=j.next();if(X instanceof Promise)X=await X;if(X.done){if(W)return y(X.value,W,$);return e(X.value,$)}return new Response(new ReadableStream({async start(Z){let J=!1;if($?.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((K)=>setTimeout(()=>K(),0))}try{Z.close()}catch{}}}),{...W,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...W?.headers}})},y=(j,W,$)=>{if(p(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=Y0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&p(W.cookie)){const X=W2(W.cookie);if(X)W.headers["set-cookie"]=X}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j2(new Headers(W.headers),W.headers["set-cookie"]);switch(j?.constructor?.name){case"String":return new Response(j,W);case"Blob":return v0(j,W);case"Array":return Response.json(j,W);case"Object":const X=j[d];if(X)return W.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(z0(j));default:break}return Response.json(j,W);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return $?.signal.addEventListener("abort",{handleEvent(){if(!$?.signal.aborted)j.cancel($)}},{once:!0}),new Response(j,W);case void 0:if(!j)return new Response("",W);return Response.json(j,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(Z)continue;Z=!0;for(let Q of W.headers.getSetCookie())j.headers.append("set-cookie",Q)}else j.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)j.headers.append(J,W.headers[J]);if(j.status!==W.status)W.status=j.status;return j;case"Error":return G0(j,W);case"Promise":return j.then((J)=>y(J,W));case"Function":return y(j(),W);case"Number":case"Boolean":return new Response(j.toString(),W);case"Cookie":if(j instanceof B0)return new Response(j.value,W);return new Response(j?.toString(),W);case"FormData":return new Response(j,W);default:if(j instanceof Response){let J=!1;if(W.headers instanceof Headers)for(let Q of W.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let K of W.headers.getSetCookie())j.headers.append("set-cookie",K)}else j.headers.append(Q,W.headers?.get(Q)??"");else for(let Q in W.headers)j.headers.append(Q,W.headers[Q]);if(e1)W.headers=j.headers.toJSON();else for(let[Q,K]of j.headers.entries())if(Q in W.headers)W.headers[Q]=K;return j}if(j instanceof Promise)return j.then((J)=>y(J,W));if(j instanceof Error)return G0(j,W);if(typeof j?.next==="function")return k0(j,W,$);if("toResponse"in j)return y(j.toResponse(),W);if("charCodeAt"in j){const J=j.charCodeAt(0);if(J===123||J===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),W)}}return new Response(j,W)}}else switch(j?.constructor?.name){case"String":return new Response(j);case"Blob":return v0(j,W);case"Array":return Response.json(j);case"Object":const X=j[d];if(X)return W.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(z0(j),W);default:break}return Response.json(j,W);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":return j;case"Error":return G0(j,W);case"Promise":return j.then((Z)=>{const J=e(Z,$);if(J!==void 0)return J;return new Response("")});case"Function":return e(j(),$);case"Number":case"Boolean":return new Response(j.toString());case"Cookie":if(j instanceof B0)return new Response(j.value,W);return new Response(j?.toString(),W);case"FormData":return new Response(j,W);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,W));if(j instanceof Error)return G0(j,W);if(typeof j?.next==="function")return k0(j,W,$);if("toResponse"in j)return y(j.toResponse(),W);if("charCodeAt"in j){const Z=j.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),W)}}return new Response(j)}},f=(j,W,$)=>{if(j===void 0||j===null)return;if(p(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=Y0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&p(W.cookie)){const X=W2(W.cookie);if(X)W.headers["set-cookie"]=X}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j2(new Headers(W.headers),W.headers["set-cookie"]);switch(j?.constructor?.name){case"String":return new Response(j,W);case"Blob":return v0(j,W);case"Array":return Response.json(j,W);case"Object":const X=j[d];if(X)return W.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(z0(j),W);default:break}return Response.json(j,W);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return $?.signal.addEventListener("abort",{handleEvent(){if(!$?.signal.aborted)j.cancel($)}},{once:!0}),new Response(j,W);case void 0:if(!j)return;return Response.json(j,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(Z)continue;Z=!0;for(let Q of W.headers.getSetCookie())j.headers.append("set-cookie",Q)}else j.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)j.headers.append(J,W.headers[J]);if(j.status!==W.status)W.status=j.status;return j;case"Promise":return j.then((J)=>{const Q=f(J,W);if(Q!==void 0)return Q});case"Error":return G0(j,W);case"Function":return f(j(),W);case"Number":case"Boolean":return new Response(j.toString(),W);case"FormData":return new Response(j);case"Cookie":if(j instanceof B0)return new Response(j.value,W);return new Response(j?.toString(),W);default:if(j instanceof Response){let J=!1;if(W.headers instanceof Headers)for(let Q of W.headers.keys())if(Q==="set-cookie"){if(J)continue;J=!0;for(let K of W.headers.getSetCookie())j.headers.append("set-cookie",K)}else j.headers.append(Q,W.headers?.get(Q)??"");else for(let Q in W.headers)j.headers.append(Q,W.headers[Q]);if(j.status!==W.status)W.status=j.status;return j}if(j instanceof Promise)return j.then((J)=>f(J,W));if(j instanceof Error)return G0(j,W);if(typeof j?.next==="function")return k0(j,W,$);if("toResponse"in j)return f(j.toResponse(),W);if("charCodeAt"in j){const J=j.charCodeAt(0);if(J===123||J===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),W)}}return new Response(j,W)}}else switch(j?.constructor?.name){case"String":return new Response(j);case"Blob":return v0(j,W);case"Array":return Response.json(j);case"Object":const X=j[d];if(X)return W.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(z0(j),W);default:break}return Response.json(j,W);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":return j;case"Promise":return j.then((Z)=>{const J=f(Z,W);if(J!==void 0)return J});case"Error":return G0(j,W);case"Function":return e(j(),$);case"Number":case"Boolean":return new Response(j.toString());case"Cookie":if(j instanceof B0)return new Response(j.value,W);return new Response(j?.toString(),W);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,W));if(j instanceof Error)return G0(j,W);if(typeof j?.next==="function")return k0(j,W,$);if("toResponse"in j)return f(j.toResponse(),W);if("charCodeAt"in j){const Z=j.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify(j),W)}}return new Response(j)}},e=(j,W)=>{switch(j?.constructor?.name){case"String":return new Response(j);case"Blob":return v0(j);case"Array":return Response.json(j);case"Object":if(j[d])return y(j.response,{status:j[d],headers:{}});j:for(let $ of Object.values(j))switch($?.constructor?.name){case"Blob":case"File":case"ArrayBuffer":case"FileRef":return new Response(z0(j));case"Object":break 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":return j;case"Error":return G0(j);case"Promise":return j.then(($)=>e($,W));case"Function":return e(j(),W);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(($)=>e($,W));if(j instanceof Error)return G0(j);if(typeof j?.next==="function")return k0(j,void 0,W);if("toResponse"in j)return e(j.toResponse());if("charCodeAt"in j){const $=j.charCodeAt(0);if($===123||$===91)return new Response(JSON.stringify(j),{headers:{"Content-Type":"application/json"}})}return new Response(j)}},G0=(j,W)=>new Response(JSON.stringify({name:j?.name,message:j?.message,cause:j?.cause}),{status:W?.status!==200?W?.status??500:500,headers:W?.headers});function Mj(j){let W=j;while(W.endsWith("="))W=W.slice(0,-1);return W}var o0=(j,W)=>{const $=new URL(j);return $.pathname=W,$.toString()},Bj=(j)=>typeof j==="function"&&/^\s*class\s+/.test(j.toString())||j.toString().startsWith("[object ")&&j.toString()!=="[object Object]"||p(Object.getPrototypeOf(j)),I1=(j)=>j&&typeof j==="object"&&!Array.isArray(j),c=(j,W,{skipKeys:$,override:X=!0}={})=>{if(!I1(j)||!I1(W))return j;for(let[Z,J]of Object.entries(W)){if($?.includes(Z))continue;if(!I1(J)||!(Z in j)||Bj(J)){if(X||!(Z in j))j[Z]=J;continue}j[Z]=c(j[Z],J,{skipKeys:$,override:X})}return j},Yj=(j,W)=>{const{properties:$,...X}=j??{},{properties:Z,...J}=W??{};return c(X,J)},x=(j=[],W=[])=>{if(!j)return[];if(!W)return j;const $=[],X=[];if(!Array.isArray(j))j=[j];if(!Array.isArray(W))W=[W];for(let Z of j)if($.push(Z),Z.checksum)X.push(Z.checksum);for(let Z of W)if(!X.includes(Z.checksum))$.push(Z);return $},Uj=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],_j=Uj.reduce((j,W)=>(j[W]=!0,j),{}),J2=(j,W)=>{const $=(X)=>typeof X==="object"&&Object.keys(X).every($1);if($(j)&&$(W))return{...j,...W};return W??j},H0=(j,W)=>{return{body:W?.body??j?.body,headers:W?.headers??j?.headers,params:W?.params??j?.params,query:W?.query??j?.query,cookie:W?.cookie??j?.cookie,response:J2(j?.response,W?.response)}},l=(j,W)=>{return{...j,...W,body:W?.body??j?.body,headers:W?.headers??j?.headers,params:W?.params??j?.params,query:W?.query??j?.query,cookie:W?.cookie??j?.cookie,response:J2(j?.response,W?.response),type:j?.type||W?.type,detail:c(W?.detail??{},j?.detail??{}),parse:x(j?.parse,W?.parse),transform:x(j?.transform,W?.transform),beforeHandle:x(j?.beforeHandle,W?.beforeHandle),afterHandle:x(j?.afterHandle,W?.afterHandle),mapResponse:x(j?.mapResponse,W?.mapResponse),afterResponse:x(j?.afterResponse,W?.afterResponse),trace:x(j?.trace,W?.trace),error:x(j?.error,W?.error)}},Q2=(j,W,$=!0)=>{if(!Array.isArray(W))return h(j,W,$);for(let X of W)j=h(j,X,$);return j},h=(j,W,$=!0)=>{if(!j)return j;if(W.untilObjectFound&&!$&&j.type==="object")return j;const X=W.from[E0];if(j.oneOf){for(let Q=0;Q<j.oneOf.length;Q++)j.oneOf[Q]=h(j.oneOf[Q],W,$);return j}if(j.anyOf){for(let Q=0;Q<j.anyOf.length;Q++)j.anyOf[Q]=h(j.anyOf[Q],W,$);return j}if(j.allOf){for(let Q=0;Q<j.allOf.length;Q++)j.allOf[Q]=h(j.allOf[Q],W,$);return j}if(j.not){for(let Q=0;Q<j.not.length;Q++)j.not[Q]=h(j.not[Q],W,$);return j}const Z=$&&!!W.excludeRoot;if(j[E0]===X){const{anyOf:Q,oneOf:K,allOf:Y,not:B,properties:U,items:_,...M}=j,G=W.to();let w;const z=(F)=>{if(U&&F.type==="object"){const O={};for(let[V,C]of Object.entries(U))O[V]=h(C,W,!1);return{...M,...F,properties:O}}if(_&&F.type==="array")return{...M,...F,items:h(_,W,!1)};const P={...M,...F};if(delete P.required,U&&F.type==="string"&&F.format==="ObjectString"&&F.default==="{}")w=A.ObjectString(U,M),P.default=JSON.stringify(W0.Create(A.Object(U))),P.properties=U;if(_&&F.type==="string"&&F.format==="ArrayString"&&F.default==="[]")w=A.ArrayString(_,M),P.default=JSON.stringify(W0.Create(A.Array(_))),P.items=_;return P};if(Z){if(U){const F={};for(let[P,O]of Object.entries(U))F[P]=h(O,W,!1);return{...M,properties:F}}else if(_?.map)return{...M,items:_.map((F)=>h(F,W,!1))};return M}if(G.anyOf)for(let F=0;F<G.anyOf.length;F++)G.anyOf[F]=z(G.anyOf[F]);else if(G.oneOf)for(let F=0;F<G.oneOf.length;F++)G.oneOf[F]=z(G.oneOf[F]);else if(G.allOf)for(let F=0;F<G.allOf.length;F++)G.allOf[F]=z(G.allOf[F]);else if(G.not)for(let F=0;F<G.not.length;F++)G.not[F]=z(G.not[F]);if(w)G[$2]=w[$2];if(G.anyOf||G.oneOf||G.allOf||G.not)return G;if(U){const F={};for(let[P,O]of Object.entries(U))F[P]=h(O,W,!1);return{...M,...G,properties:F}}else if(_?.map)return{...M,...G,items:_.map((F)=>h(F,W,!1))};return{...M,...G}}const J=j?.properties;if(J)for(let[Q,K]of Object.entries(J))switch(K[E0]){case X:const{anyOf:Y,oneOf:B,allOf:U,not:_,type:M,...G}=K,w=W.to();if(w.anyOf)for(let z=0;z<w.anyOf.length;z++)w.anyOf[z]={...G,...w.anyOf[z]};else if(w.oneOf)for(let z=0;z<w.oneOf.length;z++)w.oneOf[z]={...G,...w.oneOf[z]};else if(w.allOf)for(let z=0;z<w.allOf.length;z++)w.allOf[z]={...G,...w.allOf[z]};else if(w.not)for(let z=0;z<w.not.length;z++)w.not[z]={...G,...w.not[z]};J[Q]={...G,...h(G,W,!1)};break;case"Object":case"Union":J[Q]=h(K,W,!1);break;default:if(K.items)for(let z=0;z<K.items.length;z++)K.items[z]=h(K.items[z],W,!1);else if(K.anyOf||K.oneOf||K.allOf||K.not)J[Q]=h(K,W,!1);break}return j},m=(j,{models:W={},dynamic:$=!1,normalize:X=!1,additionalProperties:Z=!1,coerce:J=!1,additionalCoerce:Q=[]}={})=>{if(!j)return;if(typeof j==="string"&&!(j in W))return;let K=typeof j==="string"?W[j]:j;if(J)K=Q2(K,[{from:A.Number(),to:()=>A.Numeric(),untilObjectFound:!0},{from:A.Boolean(),to:()=>A.BooleanString(),untilObjectFound:!0},...Array.isArray(Q)?Q:[Q]]);if(K.type==="object"&&"additionalProperties"in K===!1)K.additionalProperties=Z;const Y=(U)=>W0.Clean(K,U);if($){const U={schema:K,references:"",checkFunc:()=>{},code:"",Check:(_)=>W0.Check(K,_),Errors:(_)=>W0.Errors(K,_),Code:()=>"",Clean:Y};if(X&&K.additionalProperties===!1)U.Clean=Y;if(K.config){if(U.config=K.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=[...B.Errors(_)].map(s);return{success:!1,data:null,error:G[0]?.summary,errors:G}}},U}const B=Z2.Compile(K,Object.values(W));if(B.Clean=Y,K.config){if(B.config=K.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(_){throw[...B.Errors(U)].map(s)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(_){const M=[...B.Errors(U)].map(s);return{success:!1,data:null,error:M[0]?.summary,errors:M}}},B},e0=(j,{models:W={},dynamic:$=!1,normalize:X=!1,additionalProperties:Z=!1})=>{if(!j)return;if(typeof j==="string"&&!(j in W))return;const J=typeof j==="string"?W[j]:j,Q=(Y,B)=>{const U=(M)=>{if(!M||typeof M!=="object")return W0.Clean(Y,M);let G=!1;const w=new Set,z=(F)=>{if(w.has(F))return F;if(w.add(F),Array.isArray(F))return F.map((C)=>z(C));const P={};for(let[C,T]of Object.entries(F))if(Array.isArray(T))P[C]=z(T),delete F[C];Object.assign(F,P);const O={};let V=F;while(V!==null){for(let C of Object.getOwnPropertyNames(V)){const T=Object.getOwnPropertyDescriptor(V,C);if(T&&typeof T.get==="function"&&C!=="__proto__")O[C]=F[C],delete V[C],G=!0}V=Object.getPrototypeOf(V)}return Object.assign(F,O),F};if(M=z(M),!G)return W0.Clean(Y,M);if(Array.isArray(M))M=W0.Clean(Y,M);else M={...W0.Clean(Y,M)};return M};if($)return{schema:Y,references:"",checkFunc:()=>{},code:"",Check:(M)=>W0.Check(Y,M),Errors:(M)=>W0.Errors(Y,M),Code:()=>""};const _=Z2.Compile(Y,B);if(X&&Y.additionalProperties===!1)_.Clean=U;return _};if(E0 in J){if("additionalProperties"in J===!1)J.additionalProperties=Z;return{200:Q(J,Object.values(W))}}const K={};return Object.keys(J).forEach((Y)=>{const B=J[+Y];if(typeof B==="string"){if(B in W){const U=W[B];U.type==="object"&&"additionalProperties"in U,K[+Y]=E0 in U?Q(U,Object.values(W)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=Z;K[+Y]=E0 in B?Q(B,Object.values(W)):B}),K},wj=typeof Bun!=="undefined",Dj=wj&&typeof Bun.hash==="function",I0=(j)=>{if(Dj)return Bun.hash(j);let W=9;for(let $=0;$<j.length;)W=Math.imul(W^j.charCodeAt($++),387420489);return W=W^W>>>9},P1,F0=()=>{if(!P1)P1=[{from:A.Object({}),to:()=>A.ObjectString({}),excludeRoot:!0},{from:A.Array(A.Any()),to:()=>A.ArrayString(A.Any())}];return P1},j1=({validator:j,defaultConfig:W={},config:$,dynamic:X,models:Z})=>{let J=m(j,{dynamic:X,models:Z,additionalProperties:!0,coerce:!0,additionalCoerce:F0()});if(p(W))if(J)J.config=Yj(J.config,$);else J=m(A.Cookie({}),{dynamic:X,models:Z,additionalProperties:!0}),J.config=W;return J},j0=(j,W)=>{if(!W)return;if(!Array.isArray(W)){const X=W;if(j&&!X.checksum)X.checksum=j;if(X.scope==="scoped")X.scope="local";return X}const $=[...W];for(let X of $){if(j&&!X.checksum)X.checksum=j;if(X.scope==="scoped")X.scope="local"}return $},N1=(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))}},G2=(j,W,{skipIfHasType:$=!1}={})=>{if(!j)return j;if(!Array.isArray(j)){if($)j.scope??=W;else j.scope=W;return j}for(let X of j)if($)X.scope??=W;else X.scope=W;return j},M0=(j)=>{if(!j)return j;if(!Array.isArray(j))switch(j.scope){case"global":case"scoped":return{...j};default:return{fn:j}}const W=[];for(let $ of j)switch($.scope){case"global":case"scoped":W.push({...$});break}return W},O1=(j)=>{return{...j,type:j?.type,detail:j?.detail,parse:M0(j?.parse),transform:M0(j?.transform),beforeHandle:M0(j?.beforeHandle),afterHandle:M0(j?.afterHandle),mapResponse:M0(j?.mapResponse),afterResponse:M0(j?.afterResponse),error:M0(j?.error),trace:M0(j?.trace)}},Y0={Continue:100,"Switching Protocols":101,Processing:102,"Early Hints":103,OK:200,Created:201,Accepted:202,"Non-Authoritative Information":203,"No Content":204,"Reset Content":205,"Partial Content":206,"Multi-Status":207,"Already Reported":208,"Multiple Choices":300,"Moved Permanently":301,Found:302,"See Other":303,"Not Modified":304,"Temporary Redirect":307,"Permanent Redirect":308,"Bad Request":400,Unauthorized:401,"Payment Required":402,Forbidden:403,"Not Found":404,"Method Not Allowed":405,"Not Acceptable":406,"Proxy Authentication Required":407,"Request Timeout":408,Conflict:409,Gone:410,"Length Required":411,"Precondition Failed":412,"Payload Too Large":413,"URI Too Long":414,"Unsupported Media Type":415,"Range Not Satisfiable":416,"Expectation Failed":417,"I'm a teapot":418,"Misdirected Request":421,"Unprocessable Content":422,Locked:423,"Failed Dependency":424,"Too Early":425,"Upgrade Required":426,"Precondition Required":428,"Too Many Requests":429,"Request Header Fields Too Large":431,"Unavailable For Legal Reasons":451,"Internal Server Error":500,"Not Implemented":501,"Bad Gateway":502,"Service Unavailable":503,"Gateway Timeout":504,"HTTP Version Not Supported":505,"Variant Also Negotiates":506,"Insufficient Storage":507,"Loop Detected":508,"Not Extended":510,"Network Authentication Required":511},W1=Object.fromEntries(Object.entries(Y0).map(([j,W])=>[W,j])),X2=new TextEncoder,b0=async(j,W)=>{if(typeof j!=="string")throw new TypeError("Cookie value must be provided as a string.");if(W===null)throw new TypeError("Secret key must be provided.");const $=await crypto.subtle.importKey("raw",X2.encode(W),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),X=await crypto.subtle.sign("HMAC",$,X2.encode(j));return j+"."+Mj(Buffer.from(X).toString("base64"))},z1=async(j,W)=>{if(typeof j!=="string")throw new TypeError("Signed cookie string must be provided.");if(W===null)throw new TypeError("Secret key must be provided.");const $=j.slice(0,j.lastIndexOf("."));return await b0($,W)===j?$:!1},K2=(j,W)=>{if(!j||typeof j!=="object"||!W)return;for(let[$,X]of Object.entries(W)){if($ in _j||!($ in j))continue;const Z=j[$];if(typeof Z==="function")Z(X),delete W[$]}},B2=({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[$].unshift(Z);else j[$].push(Z);else if(J==="before")j[$]=Z.concat(j[$]);else j[$]=j[$].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)}},Fj=(j)=>{if(typeof j==="number")return j;if(j.length<16){if(j.trim().length===0)return null;const W=Number(j);if(Number.isNaN(W))return null;return W}if(j.length===16){if(j.trim().length===0)return null;const W=Number(j);if(Number.isNaN(W)||W.toString()!==j)return null;return W}return null},$1=(j)=>Fj(j)!==null;class V1{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,W){return(this.root??Promise.resolve()).then(j,W)}}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 W=[];for(let $ of j)if(typeof $==="function")W.push({fn:$});else if("fn"in $)W.push($);return W},Y2=(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)}},A1=(j)=>{return{...j,start:j.start?.map((W)=>W.fn),request:j.request?.map((W)=>W.fn),parse:j.parse?.map((W)=>W.fn),transform:j.transform?.map((W)=>W.fn),beforeHandle:j.beforeHandle?.map((W)=>W.fn),afterHandle:j.afterHandle?.map((W)=>W.fn),afterResponse:j.afterResponse?.map((W)=>W.fn),mapResponse:j.mapResponse?.map((W)=>W.fn),trace:j.trace?.map((W)=>W.fn),error:j.error?.map((W)=>W.fn),stop:j.stop?.map((W)=>W.fn)}},u0=(j)=>({body:j.body,cookie:j.cookie,headers:j.headers,query:j.query,set:j.set,server:j.server}),h0=(j,W=302)=>Response.redirect(j,W),zj=Symbol("ElysiaFormData"),P0=Symbol("ElysiaRequestId"),z0=(j)=>{const W=new FormData;for(let[$,X]of Object.entries(j)){if(Array.isArray(X)){for(let Z of X){if(X instanceof File)W.append($,X,X.name);W.append($,Z)}continue}if(X instanceof File)W.append($,X,X.name);W.append($,X)}return W},X1=()=>crypto.getRandomValues(new Uint32Array(1))[0],Z1=(j)=>{const W=[];for(let $=0;$<j.length;$++){const X=j[$];if(X.checksum){if(W.includes(X.checksum))j.splice($,1),$--;W.push(X.checksum)}}return j},v=(j,W="scoped")=>{if(W==="scoped"){for(let $ of j)if("scope"in $&&$.scope==="local")$.scope="scoped";return}for(let $ of j)if("scope"in $)$.scope="global"};var U2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,N0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),d0=(U2?.NODE_ENV??U2?.ENV)==="production",C1=(j,W)=>{const $=W??(j in W1?W1[j]:j);return{[d]:Y0[j]??j,response:$,_type:void 0,error:new Error($)}};class J1 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 Q1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class f0 extends Error{j;code="INVALID_COOKIE_SIGNATURE";status=400;constructor(j,W){super(W??`"${j}" has invalid cookie signature`);this.key=j}}var s=(j)=>{const{message:W,path:$,value:X,type:Z}=j,J=$.slice(1).replaceAll("/","."),Q=$==="";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 K=W.indexOf("'"),Y=W.slice(K+1,W.indexOf("'",K+1));return{...j,summary:Q?"Value should be an email":`Property '${J}' should be ${Y}`};case 54:return{...j,summary:`${W.slice(0,9)} property '${J}' to be ${W.slice(8)} but found: ${X}`};case 62:const B=j.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...j,summary:Q?`Value should be one of ${B}`:`Property '${J}' should be one of: ${B}`};default:return{summary:W,...j}}};class L extends Error{j;W;$;code="VALIDATION";status=422;constructor(j,W,$){if($&&typeof $==="object"&&d in $)$=$.response;const X=d0?void 0:("Errors"in W)?W.Errors($).First():m0.Errors(W,$).First(),Z=X?.schema.error!==void 0?typeof X.schema.error==="function"?X.schema.error({type:j,validator:W,value:$,get errors(){return[...W.Errors($)].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(d0)Q=JSON.stringify({type:"validation",on:j,summary:s(X).summary,message:X?.message,found:$});else{const K=W?.schema??W,Y="Errors"in W?[...W.Errors($)].map(s):[...m0.Errors(W,$)].map(s);let B;try{B=m0.Create(K)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}Q=JSON.stringify({type:"validation",on:j,summary:Y[0]?.summary,property:J,message:X?.message,expected:B,found:$,errors:Y},null,2)}super(Q);this.type=j;this.validator=W;this.value=$;Object.setPrototypeOf(this,L.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(s):[...m0.Errors(this.validator,this.value)].map(s)}static simplifyModel(j){const W="schema"in j?j.schema:j;try{return m0.Create(W)}catch{return W}}get model(){return L.simplifyModel(this.validator)}toResponse(j){return new Response(this.message,{status:400,headers:{...j,"content-type":"application/json"}})}}var S1={open(j){j.data.open?.(j)},message(j,W){j.data.message?.(j,W)},drain(j){j.data.drain?.(j)},close(j,W,$){j.data.close?.(j,W,$)}};class R0{j;W;validator;_validator;constructor(j,W){this.raw=j;this.data=W;if(this.validator=j.data.validator,j.data.id)this.id=j.data.id;else this.id=X1().toString()}get id(){return this.raw.data.id}set id(j){this.raw.data.id=j}get publish(){return(j,W=void 0,$)=>{if(this.validator?.Check(W)===!1)throw new L("message",this.validator,W);if(typeof W==="object")W=JSON.stringify(W);return this.raw.publish(j,W,$),this}}get send(){return(j)=>{if(this.validator?.Check(j)===!1)throw new L("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 T1="1.1.5";import{Value as p0}from"@sinclair/typebox/value";var c0=Y1(r0(),1);function x0(j){const W={};if(typeof j!=="string")return W;let $="",X="",Z=-1,J=-1,Q=0;const K=j.length;for(let Y=0;Y<K;Y++)switch(j.charCodeAt(Y)){case 38:const B=J>Z;if(!B)J=Y;if($=j.slice(Z+1,J),B||$.length>0){if(Q&1)$=$.replace(G1," ");if(Q&2)$=c0.default($)||$;if(!W[$]){if(B){if(X=j.slice(J+1,Y),Q&4)X=X.replace(G1," ");if(Q&8)X=c0.default(X)||X}W[$]=X}}$="",X="",Z=Y,J=Y,Q=0;break;case 61:if(J<=Z)J=Y;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<K){const Y=J>Z;if($=j.slice(Z+1,Y?J:K),Y||$.length>0){if(Q&1)$=$.replace(G1," ");if(Q&2)$=c0.default($)||$;if(!W[$]){if(Y){if(X=j.slice(J+1,K),Q&4)X=X.replace(G1," ");if(Q&8)X=c0.default(X)||X}W[$]=X}}}return W}var G1=/\+/g;var w2=Y1(r0(),1);var l0=Symbol("ElysiaTrace"),U0=()=>{const{promise:j,resolve:W}=Promise.withResolvers(),{promise:$,resolve:X}=Promise.withResolvers(),{promise:Z,resolve:J}=Promise.withResolvers(),Q=[],K=[];return[(Y)=>{if(Y)Q.push(Y);return j},(Y)=>{const B=[],U=[];let _=null;for(let G=0;G<(Y.total??0);G++){const{promise:w,resolve:z}=Promise.withResolvers(),{promise:F,resolve:P}=Promise.withResolvers(),{promise:O,resolve:V}=Promise.withResolvers(),C=[],T=[];B.push((H)=>{if(H)C.push(H);return w}),U.push((H)=>{const k={...H,end:F,error:O,index:G,onStop(b){if(b)T.push(b);return F}};z(k);for(let b=0;b<C.length;b++)C[b](k);return(b=null)=>{const w0=performance.now();if(b)_=b;const R={end:w0,error:b,get elapsed(){return w0-H.begin}};for(let Z0=0;Z0<T.length;Z0++)T[Z0](R);P(w0),V(b)}})}const M={...Y,end:$,error:Z,onEvent(G){for(let w=0;w<B.length;w++)B[w](G)},onStop(G){if(G)K.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 z={end:w,error:G,get elapsed(){return w-Y.begin}};for(let F=0;F<K.length;F++)K[F](z);X(w),J(G)}}}]},_2=(j)=>{return(W)=>{const[$,X]=U0(),[Z,J]=U0(),[Q,K]=U0(),[Y,B]=U0(),[U,_]=U0(),[M,G]=U0(),[w,z]=U0(),[F,P]=U0(),[O,V]=U0();return j({id:W[P0],context:W,set:W.set,onRequest:$,onParse:Z,onTransform:Q,onBeforeHandle:Y,onHandle:U,onAfterHandle:M,onMapResponse:F,onAfterResponse:O,onError:w}),{request:X,parse:J,transform:K,beforeHandle:B,handle:_,afterHandle:G,error:z,mapResponse:P,afterResponse:V}}};var Pj=(new Headers()).toJSON,D2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},_0=(j)=>{if(!j)return!1;const W=j?.schema;return!!W&&D2.optional in W},$0=(j)=>{if(!j)return!1;const W=j?.schema??j;if(W.anyOf)return W.anyOf.some($0);if(W.someOf)return W.someOf.some($0);if(W.allOf)return W.allOf.some($0);if(W.not)return W.not.some($0);if(W.type==="object"){const $=W.properties;if("additionalProperties"in W)return W.additionalProperties;for(let X of Object.keys($)){const Z=$[X];if(Z.type==="object"){if($0(Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if($0(Z.anyOf[J]))return!0}return Z.additionalProperties}return!1}return!1},L1=({context:j="c",trace:W,addFn:$})=>{if(!W.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let X=0;X<W.length;X++)$(`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 K=0;K<W.length;K++)$(`\n${Q}${K} = trace${K}.${X}({id,event: '${X}',name: '${Z}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let K=0;K<W.length;K++)$(`\n${Q}${K}.resolve()\n`)},resolveChild(K){for(let Y=0;Y<W.length;Y++)$(`${Q}Child${Y} = ${Q}${Y}.resolveChild?.shift()?.({id,event: '${X}',name: '${K}',begin: performance.now()})\n`);return(Y)=>{for(let B=0;B<W.length;B++)if(Y)$(`
8
- if (${Y} instanceof Error)
9
- ${Q}Child${B}?.(${Y})
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})
10
10
  else
11
- ${Q}Child${B}?.()\n`);else $(`${Q}Child${B}?.()\n`)}}}}},Nj=({injectResponse:j="",normalize:W=!1,validator:$})=>({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}) {
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
12
  c.set.status = ${X}[ELYSIA_RESPONSE]
13
13
  ${X} = ${X}.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($.response)){if(Z+=`\tcase ${J}:
17
- if (!isResponse) {\n`,W&&"Clean"in Q&&!$0(Q))Z+=`${X} = validator.response['${J}'].Clean(${X})\n`;Z+=`if(validator.response['${J}'].Check(${X}) === false) {
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) {
18
18
  c.set.status = 422
19
19
 
20
20
  throw new ValidationError('response', validator.response['${J}'], ${X})
@@ -23,41 +23,41 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
23
23
  c.set.status = ${J}
24
24
  }
25
25
 
26
- break\n\n`}return Z+="\n}\n",Z}}),k3=Symbol.for("TypeBox.Kind");var V0=(j,W)=>{if(!W)return;if(W.type==="object"){const $=W.properties;if(!$)return!1;for(let X of Object.keys($)){const Z=$[X];if(j in Z)return!0;if(Z.type==="object"){if(V0(j,Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if(V0(j,Z.anyOf[J]))return!0}}return!1}return j in W},q1=Symbol.for("TypeBox.Transform"),A0=(j)=>{if(!j)return;if(j.type==="object"&&j.properties){const W=j.properties;for(let $ of Object.keys(W)){const X=W[$];if(X.type==="object"){if(A0(X))return!0}else if(X.anyOf){for(let J=0;J<X.anyOf.length;J++)if(A0(X.anyOf[J]))return!0}if(q1 in X)return!0}return!1}return q1 in j||j.properties&&q1 in j.properties},Oj=/(?:return|=>) \S+\(/g,C0=(j)=>{return(j?.fn??j).constructor.name==="AsyncFunction"},g=(j)=>{const W=j?.fn??j;if(W.constructor.name==="AsyncFunction")return!0;const $=W.toString();if($.includes("=> response.clone("))return!1;if($.includes("await"))return!0;if($.includes("async"))return!0;return!!$.match(Oj)},K1=(j)=>{const W=j?.fn??j;return W.constructor.name==="AsyncGeneratorFunction"||W.constructor.name==="GeneratorFunction"},M2=({app:j,path:W,method:$,localHook:X,hooks:Z,validator:J,handler:Q,allowMeta:K=!1,inference:Y})=>{const B=typeof Q==="function";if(!B)Q=y(Q,{headers:j.setHeaders??{}});const U=B?"handler(c)":"handler",_=Z.afterResponse.length>0,M=Z.trace.length>0;let G="";if(Y=t0(Object.assign(X,{handler:Q}),Y),Y.server)G+=`\nObject.defineProperty(c, 'server', {
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', {
27
27
  get: function() { return getServer() }
28
- })\n`;if(Y.body)G+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();const w=Y.query||!!J.query,z=$!=="$INTERNALWS"&&$!=="GET"&&$!=="HEAD"&&(Y.body||!!J.body||Z.parse.length),F=j.setHeaders,P=F&&!!Object.keys(F).length,O=Y.headers||J.headers,V=Y.cookie||!!J.cookie,C=V?j1({validator:J.cookie,defaultConfig:j.config.cookie,dynamic:!!j.config.aot,config:J.cookie?.config??{},models:j.definitions.type}):void 0,T=C?.config;let H="";if(T?.sign){if(!T.secrets)throw new Error(`t.Cookie required secret which is not set in (${$}) ${W}.`);const I=!T.secrets?void 0:typeof T.secrets==="string"?T.secrets:T.secrets[0];if(H+=`const _setCookie = c.set.cookie
29
- if(_setCookie) {`,T.sign===!0)H+=`for(const [key, cookie] of Object.entries(_setCookie)) {
30
- c.set.cookie[key].value = await signCookie(cookie.value, '${I}')
31
- }`;else for(let D of T.sign)H+=`if(_setCookie['${D}']?.value) { c.set.cookie['${D}'].value = await signCookie(_setCookie['${D}'].value, '${I}') }\n`;H+="}\n"}const k=j.config.normalize,{composeValidation:b,composeResponseValidation:w0}=Nj({normalize:k,validator:J});if(O)G+=Pj?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
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 = {}
32
32
  for (const [key, value] of c.request.headers.entries())
33
33
  c.headers[key] = value
34
- `;if(V){const I=(N,S)=>{const q=T?.[N]??S;if(!q)return typeof S==="string"?`${N}: "${S}",`:`${N}: ${S},`;if(typeof q==="string")return`${N}: '${q}',`;if(q instanceof Date)return`${N}: new Date(${q.getTime()}),`;return`${N}: ${q},`},D=T?`{
35
- secrets: ${T.secrets!==void 0?typeof T.secrets==="string"?`'${T.secrets}'`:"["+T.secrets.reduce((N,S)=>N+`'${S}',`,"")+"]":"undefined"},
36
- sign: ${T.sign===!0?!0:T.sign!==void 0?"["+T.sign.reduce((N,S)=>N+`'${S}',`,"")+"]":"undefined"},
37
- ${I("domain")}
38
- ${I("expires")}
39
- ${I("httpOnly")}
40
- ${I("maxAge")}
41
- ${I("path","/")}
42
- ${I("priority")}
43
- ${I("sameSite")}
44
- ${I("secure")}
45
- }`:"undefined";if(O)G+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${D})\n`;else G+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${D})\n`}if(w){const I=[];if(J.query&&J.query.schema.type==="object"){const D=J.query.schema.properties;if(!$0(J.query))for(let[N,S]of Object.entries(D)){let q=S;if(q&&D2.optional in q&&q.type==="array"&&q.items)q=q.items;const{type:n,anyOf:E}=q,K0=n==="array"||E?.some((u)=>u.type==="string"&&u.format==="ArrayString");I.push({key:N,isArray:K0,isNestedObjectArray:K0&&q.items?.type==="object"||!!q.items?.anyOf?.some((u)=>u.type==="object"||u.type==="array"),isObject:n==="object"||E?.some((u)=>u.type==="string"&&u.format==="ArrayString"),anyOf:!!E})}}if(!I.length)G+=`if(c.qi === -1) {
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) {
46
46
  c.query = {}
47
47
  } else {
48
- c.query = parseQuery(c.url.slice(c.qi + 1))
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
- ${I.map(({key:D,isArray:N,isObject:S,isNestedObjectArray:q,anyOf:n},E)=>{const K0=`${E===0?"let":""} memory = url.indexOf('&${D}=')
53
- let a${E}\n`;if(N)return K0+(q?`while (memory !== -1) {
54
- const start = memory + ${D.length+2}
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}
55
55
  memory = url.indexOf('&', start)
56
56
 
57
- if(a${E} === undefined)
58
- a${E} = ''
57
+ if(a${H} === undefined)
58
+ a${H} = ''
59
59
  else
60
- a${E} += ','
60
+ a${H} += ','
61
61
 
62
62
  let temp
63
63
 
@@ -68,63 +68,63 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
68
68
  if(charCode !== 91 && charCode !== 123)
69
69
  temp = '"' + temp + '"'
70
70
 
71
- a${E} += temp
71
+ a${H} += temp
72
72
 
73
73
  if(memory === -1) break
74
74
 
75
- memory = url.indexOf('&${D}=', memory)
75
+ memory = url.indexOf('&${z}=', memory)
76
76
  if(memory === -1) break
77
77
  }
78
78
 
79
79
  try {
80
- if(a${E}.charCodeAt(0) === 91)
81
- a${E} = JSON.parse(a${E})
80
+ if(a${H}.charCodeAt(0) === 91)
81
+ a${H} = JSON.parse(a${H})
82
82
  else
83
- a${E} = JSON.parse('[' + a${E} + ']')
83
+ a${H} = JSON.parse('[' + a${H} + ']')
84
84
  } catch {}\n`:`while (memory !== -1) {
85
- const start = memory + ${D.length+2}
85
+ const start = memory + ${z.length+2}
86
86
  memory = url.indexOf('&', start)
87
87
 
88
- if(a${E} === undefined)
89
- a${E} = []
88
+ if(a${H} === undefined)
89
+ a${H} = []
90
90
 
91
91
  if(memory === -1) {
92
- a${E}.push(decodeURIComponent(url.slice(start)))
92
+ a${H}.push(decodeURIComponent(url.slice(start)))
93
93
  break
94
94
  }
95
- else a${E}.push(decodeURIComponent(url.slice(start, memory)))
95
+ else a${H}.push(decodeURIComponent(url.slice(start, memory)))
96
96
 
97
- memory = url.indexOf('&${D}=', memory)
97
+ memory = url.indexOf('&${z}=', memory)
98
98
  if(memory === -1) break
99
99
  }\n`);if(S)return K0+`if (memory !== -1) {
100
- const start = memory + ${D.length+2}
100
+ const start = memory + ${z.length+2}
101
101
  memory = url.indexOf('&', start)
102
102
 
103
- if(memory === -1) a${E} = decodeURIComponent(url.slice(start))
104
- else a${E} = decodeURIComponent(url.slice(start, memory))
103
+ if(memory === -1) a${H} = decodeURIComponent(url.slice(start))
104
+ else a${H} = decodeURIComponent(url.slice(start, memory))
105
105
 
106
- if (a${E} !== undefined) {
106
+ if (a${H} !== undefined) {
107
107
  try {
108
- a${E} = JSON.parse(a${E})
108
+ a${H} = JSON.parse(a${H})
109
109
  } catch {}
110
110
  }
111
111
  }`;return K0+`if (memory !== -1) {
112
- const start = memory + ${D.length+2}
112
+ const start = memory + ${z.length+2}
113
113
  memory = url.indexOf('&', start)
114
114
 
115
- if(memory === -1) a${E} = decodeURIComponent(url.slice(start))
115
+ if(memory === -1) a${H} = decodeURIComponent(url.slice(start))
116
116
  else {
117
- a${E} = decodeURIComponent(url.slice(start, memory))
117
+ a${H} = decodeURIComponent(url.slice(start, memory))
118
118
 
119
- ${n?`
120
- let deepMemory = url.indexOf('&${D}=', memory)
119
+ ${t?`
120
+ let deepMemory = url.indexOf('&${z}=', memory)
121
121
 
122
122
  if(deepMemory !== -1) {
123
- a${E} = [a${E}]
123
+ a${H} = [a${H}]
124
124
  let first = true
125
125
 
126
126
  while(true) {
127
- const start = deepMemory + ${D.length+2}
127
+ const start = deepMemory + ${z.length+2}
128
128
  if(first)
129
129
  first = false
130
130
  else
@@ -139,9 +139,9 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
139
139
 
140
140
  if((vStart === 91 && vEnd === 93) || (vStart === 123 && vEnd === 125))
141
141
  try {
142
- a${E}.push(JSON.parse(value))
142
+ a${H}.push(JSON.parse(value))
143
143
  } catch {
144
- a${E}.push(value)
144
+ a${H}.push(value)
145
145
  }
146
146
 
147
147
  if(deepMemory === -1) break
@@ -152,11 +152,11 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
152
152
  }`}).join("\n")}
153
153
 
154
154
  c.query = {
155
- ${I.map(({key:D},N)=>`'${D}': a${N}`).join(", ")}
155
+ ${P.map(({key:z},C)=>`'${z}': a${C}`).join(", ")}
156
156
  }
157
157
  } else {
158
158
  c.query = {}
159
- }`}if(M)G+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const R=L1({trace:Z.trace,addFn:(I)=>{G+=I}});G+="\ntry {\n";const Z0=typeof Q==="function"&&g(Q),r=M||Z.afterResponse.length>0?"c.response = ":"",g0=V||z||Z0||Z.parse.length>0||Z.afterHandle.some(g)||Z.beforeHandle.some(g)||Z.transform.some(g)||Z.mapResponse.some(g),z2=(typeof Q==="function"?K1(Q):!1)||Z.beforeHandle.some(K1)||Z.afterHandle.some(K1)||Z.transform.some(K1),i0=Y.cookie||Y.set||O||M||J.response||B&&P||z2,t=", c.request";G+=`c.route = \`${W}\`\n`;const I2=R("parse",{total:Z.parse.length});if(z){const I=Z.parse.length||Y.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 = {}
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
160
 
161
161
  const form = await c.request.formData()
162
162
  for (const key of form.keys()) {
@@ -167,11 +167,11 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
167
167
  if (value.length === 1)
168
168
  c.body[key] = value[0]
169
169
  else c.body[key] = value
170
- }\n`;break}else if(I){if(G+="\n",G+=O?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')",G+=`
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+=`
171
171
  if (contentType) {
172
172
  const index = contentType.indexOf(';')
173
173
  if (index !== -1) contentType = contentType.substring(0, index)\n
174
- c.contentType = contentType\n`,Z.parse.length){G+="let used = false\n";const D=R("parse",{total:Z.parse.length});for(let N=0;N<Z.parse.length;N++){const S=D.resolveChild(Z.parse[N].fn.name),q=`bo${N}`;if(N!==0)G+="if(!used) {\n";if(G+=`let ${q} = parse[${N}](c, contentType)\n`,G+=`if(${q} instanceof Promise) ${q} = await ${q}\n`,G+=`if(${q} !== undefined) { c.body = ${q}; used = true }\n`,S(),N!==0)G+="}"}D.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 = {}
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 = {}
175
175
 
176
176
  const form = await c.request.formData()
177
177
  for (const key of form.keys()) {
@@ -215,7 +215,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
215
215
  }
216
216
 
217
217
  break
218
- }`;if(Z.parse.length)G+="}";G+="}\n"}G+="\nisParsing = false\n"}if(I2.resolve(),Z?.transform){const I=R("transform",{total:Z.transform.length});if(Z.transform.length)G+="\nlet transformed\n";for(let D=0;D<Z.transform.length;D++){const N=Z.transform[D],S=I.resolveChild(N.fn.name);if(G+=g(N)?`transformed = await transform[${D}](c)\n`:`transformed = transform[${D}](c)\n`,N.subType==="mapDerive")G+=`if(transformed?.[ELYSIA_RESPONSE])
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])
219
219
  throw transformed
220
220
  else {
221
221
  transformed.request = c.request
@@ -231,16 +231,16 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
231
231
  }`;else G+=`if(transformed?.[ELYSIA_RESPONSE])
232
232
  throw transformed
233
233
  else
234
- Object.assign(c, transformed)\n`;S()}I.resolve()}if(J){if(G+="\n",J.headers){if(k&&"Clean"in J.headers&&!$0(J.headers))G+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",J.headers.schema))for(let[I,D]of Object.entries(p0.Default(J.headers.schema,{}))){const N=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(N!==void 0)G+=`c.headers['${I}'] ??= ${N}\n`}if(_0(J.headers))G+="if(isNotEmpty(c.headers)) {";if(G+=`if(validator.headers.Check(c.headers) === false) {
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
235
  ${b("headers")}
236
- }`,A0(J.headers.schema))G+="c.headers = validator.headers.Decode(c.headers)\n";if(_0(J.headers))G+="}"}if(J.params){if(V0("default",J.params.schema))for(let[I,D]of Object.entries(p0.Default(J.params.schema,{}))){const N=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(N!==void 0)G+=`c.params['${I}'] ??= ${N}\n`}if(G+=`if(validator.params.Check(c.params) === false) {
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
237
  ${b("params")}
238
- }`,A0(J.params.schema))G+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(k&&"Clean"in J.query&&!$0(J.query))G+="c.query = validator.query.Clean(c.query);\n";if(V0("default",J.query.schema))for(let[I,D]of Object.entries(p0.Default(J.query.schema,{}))){const N=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(N!==void 0)G+=`if(c.query['${I}'] === undefined) c.query['${I}'] = ${N}\n`}if(_0(J.query))G+="if(isNotEmpty(c.query)) {";if(G+=`if(validator.query.Check(c.query) === false) {
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
239
  ${b("query")}
240
- }`,A0(J.query.schema))G+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(_0(J.query))G+="}"}if(J.body){if(k&&"Clean"in J.body&&!$0(J.body))G+="c.body = validator.body.Clean(c.body);\n";const I=A0(J.body.schema);if(I||_0(J.body))G+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(V0("default",J.body.schema)){const D=p0.Default(J.body.schema,J.body.schema.type==="object"?{}:void 0),N=typeof D==="object"?JSON.stringify(D):typeof D==="string"?`'${D}'`:D;if(G+=`if(validator.body.Check(c.body) === false) {
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) {
241
241
  if (typeof c.body === 'object') {
242
- c.body = Object.assign(${N}, c.body)
243
- } else { c.body = ${N} }`,_0(J.body))G+=`
242
+ c.body = Object.assign(${C}, c.body)
243
+ } else { c.body = ${C} }`,w0(J.body))G+=`
244
244
  if(isNotEmptyObject && validator.body.Check(c.body) === false) {
245
245
  ${b("body")}
246
246
  }
@@ -248,16 +248,16 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
248
248
  if(validator.body.Check(c.body) === false) {
249
249
  ${b("body")}
250
250
  }
251
- }`}else if(_0(J.body))G+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
251
+ }`}else if(w0(J.body))G+=`if(isNotEmptyObject && validator.body.Check(c.body) === false) {
252
252
  ${b("body")}
253
253
  }`;else G+=`if(validator.body.Check(c.body) === false) {
254
254
  ${b("body")}
255
- }`;if(I)G+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(p(C?.schema?.properties??C?.schema?.schema??{})){if(G+=`const cookieValue = {}
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 = {}
256
256
  for(const [key, value] of Object.entries(c.cookie))
257
- cookieValue[key] = value.value\n`,V0("default",C.schema))for(let[I,D]of Object.entries(p0.Default(C.schema,{})))G+=`cookieValue['${I}'] = ${typeof D==="object"?JSON.stringify(D):D}\n`;if(_0(J.cookie))G+="if(isNotEmpty(c.cookie)) {";if(G+=`if(validator.cookie.Check(cookieValue) === false) {
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
258
  ${b("cookie","cookieValue")}
259
- }`,A0(J.cookie.schema))G+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
260
- c.cookie[key].value = value\n`;if(_0(J.cookie))G+="}"}}if(Z?.beforeHandle){const I=R("beforeHandle",{total:Z.beforeHandle.length});let D=!1;for(let N=0;N<Z.beforeHandle.length;N++){const S=Z.beforeHandle[N],q=I.resolveChild(S.fn.name),n=q0(S);if(S.subType==="resolve"||S.subType==="mapResolve"){if(!D)D=!0,G+="\nlet resolved\n";if(G+=g(S)?`resolved = await beforeHandle[${N}](c);\n`:`resolved = beforeHandle[${N}](c);\n`,S.subType==="mapResolve")G+=`if(resolved[ELYSIA_RESPONSE])
259
+ }`,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])
261
261
  throw resolved
262
262
  else {
263
263
  resolved.request = c.request
@@ -273,39 +273,39 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
273
273
  }`;else G+=`if(resolved[ELYSIA_RESPONSE])
274
274
  throw resolved
275
275
  else
276
- Object.assign(c, resolved)\n`}else if(!n)G+=g(S)?`await beforeHandle[${N}](c);\n`:`beforeHandle[${N}](c);\n`,q();else{if(G+=g(S)?`be = await beforeHandle[${N}](c);\n`:`be = beforeHandle[${N}](c);\n`,q("be"),G+="if(be !== undefined) {\n",I.resolve(),Z.afterHandle?.length){R("handle",{name:B?Q.name:void 0}).resolve();const u=R("afterHandle",{total:Z.afterHandle.length});for(let J0=0;J0<Z.afterHandle.length;J0++){const S0=Z.afterHandle[J0],P2=q0(S0),N2=u.resolveChild(S0.fn.name);if(G+="c.response = be\n",!P2)G+=g(S0.fn)?`await afterHandle[${J0}](c, be)\n`:`afterHandle[${J0}](c, be)\n`;else G+=g(S0.fn)?`af = await afterHandle[${J0}](c)\n`:`af = afterHandle[${J0}](c)\n`,G+="if(af !== undefined) { c.response = be = af }\n";N2("af")}u.resolve()}if(J.response)G+=w0("be");const K0=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length){G+="\nc.response = be\n";for(let u=0;u<Z.mapResponse.length;u++){const J0=Z.mapResponse[u],S0=K0.resolveChild(J0.fn.name);G+=`\nif(mr === undefined) {
277
- mr = ${C0(J0)?"await":""} onMapResponse[${u}](c)
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)
278
278
  if(mr !== undefined) be = c.response = mr
279
- }\n`,S0()}}K0.resolve(),G+=H,G+=`return mapEarlyResponse(${r} be, c.set ${t})}\n`}}I.resolve()}if(Z?.afterHandle.length){const I=R("handle",{name:B?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`;I.resolve();const D=R("afterHandle",{total:Z.afterHandle.length});for(let S=0;S<Z.afterHandle.length;S++){const q=Z.afterHandle[S],n=q0(q),E=D.resolveChild(q.fn.name);if(!n)G+=g(q.fn)?`await afterHandle[${S}](c)\n`:`afterHandle[${S}](c)\n`,E();else if(G+=g(q.fn)?`af = await afterHandle[${S}](c)\n`:`af = afterHandle[${S}](c)\n`,E("af"),J.response)G+="if(af !== undefined) {",D.resolve(),G+=w0("af"),G+="c.response = af }";else G+="if(af !== undefined) {",D.resolve(),G+="c.response = af}\n"}if(D.resolve(),G+="r = c.response\n",J.response)G+=w0();G+=H;const N=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length)for(let S=0;S<Z.mapResponse.length;S++){const q=Z.mapResponse[S],n=N.resolveChild(q.fn.name);G+=`\nmr = ${C0(q)?"await":""} onMapResponse[${S}](c)
280
- if(mr !== undefined) r = c.response = mr\n`,n()}if(N.resolve(),i0)G+=`return mapResponse(${r} r, c.set ${t})\n`;else G+=`return mapCompactResponse(${r} r ${t})\n`}else{const I=R("handle",{name:B?Q.name:void 0});if(J.response||Z.mapResponse.length){if(G+=Z0?`let r = await ${U};\n`:`let r = ${U};\n`,I.resolve(),J.response)G+=w0();R("afterHandle").resolve();const D=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length){G+="\nc.response = r\n";for(let N=0;N<Z.mapResponse.length;N++){const S=Z.mapResponse[N],q=D.resolveChild(S.fn.name);G+=`\nif(mr === undefined) {
281
- mr = ${C0(S)?"await":""} onMapResponse[${N}](c)
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)
282
282
  if(mr !== undefined) r = c.response = mr
283
- }\n`,q()}}if(D.resolve(),G+=H,Q instanceof Response)G+=Y.set?`if(
283
+ }\n`,L()}}if(z.resolve(),G+=E,Q instanceof Response)G+=B.set?`if(
284
284
  isNotEmpty(c.set.headers) ||
285
285
  c.set.status !== 200 ||
286
286
  c.set.redirect ||
287
287
  c.set.cookie
288
288
  )
289
- return mapResponse(${r} ${U}.clone(), c.set ${t})
289
+ return mapResponse(${r} ${U}.clone(), c.set ${n})
290
290
  else
291
- return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(i0)G+=`return mapResponse(${r} r, c.set ${t})\n`;else G+=`return mapCompactResponse(${r} r ${t})\n`}else if(V||M){G+=Z0?`let r = await ${U};\n`:`let r = ${U};\n`,I.resolve(),R("afterHandle").resolve();const D=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length){G+="\nc.response = r\n";for(let N=0;N<Z.mapResponse.length;N++){const S=Z.mapResponse[N],q=D.resolveChild(S.fn.name);G+=`\nif(mr === undefined) {
292
- mr = ${C0(S)?"await":""} onMapResponse[${N}](c)
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)
293
293
  if(mr !== undefined) r = c.response = mr
294
- }\n`,q()}}if(D.resolve(),G+=H,i0)G+=`return mapResponse(${r} r, c.set ${t})\n`;else G+=`return mapCompactResponse(${r} r ${t})\n`}else{I.resolve();const D=Z0?`await ${U}`:U;if(R("afterHandle").resolve(),Q instanceof Response)G+=Y.set?`if(
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(
295
295
  isNotEmpty(c.set.headers) ||
296
296
  c.set.status !== 200 ||
297
297
  c.set.redirect ||
298
298
  c.set.cookie
299
299
  )
300
- return mapResponse(${r} ${U}.clone(), c.set ${t})
300
+ return mapResponse(${r} ${U}.clone(), c.set ${n})
301
301
  else
302
- return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(i0)G+=`return mapResponse(${r} ${D}, c.set ${t})\n`;else G+=`return mapCompactResponse(${r} ${D} ${t})\n`}}if(G+="\n} catch(error) {",z)G+="\nif(isParsing) error = new ParseError()\n";if(!g0)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 I=0;I<Z.trace.length;I++)G+=`report${I}?.resolve(error);reportChild${I}?.(error);\n`;const B1=R("error",{total:Z.error.length});if(Z.error.length){G+=`
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+=`
303
303
  c.error = error
304
304
  c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
305
305
  let er
306
- `;for(let I=0;I<Z.error.length;I++){const D=B1.resolveChild(Z.error[I].fn.name);if(g(Z.error[I]))G+=`\ner = await handleErrors[${I}](c)\n`;else G+=`\ner = handleErrors[${I}](c)\nif (er instanceof Promise) er = await er\n`;D();const N=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length)for(let S=0;S<Z.mapResponse.length;S++){const q=Z.mapResponse[S],n=N.resolveChild(q.fn.name);G+=`\nc.response = er\n
307
- er = ${C0(q)?"await":""} onMapResponse[${S}](c)
308
- if(er instanceof Promise) er = await er\n`,n()}if(N.resolve(),G+=`er = mapEarlyResponse(er, set ${t})\n`,G+="if (er) {",M){for(let S=0;S<Z.trace.length;S++)G+=`\nreport${S}.resolve()\n`;B1.resolve()}G+="return er\n}\n"}}if(B1.resolve(),G+="return handleError(c, error, true)\n",!g0)G+="})()";if(G+="}",_||M){if(G+=" finally { ",!g0)G+=";(async () => {";const I=R("afterResponse",{total:Z.afterResponse.length});if(_)for(let D=0;D<Z.afterResponse.length;D++){const N=I.resolveChild(Z.afterResponse[D].fn.name);G+=`\nawait afterResponse[${D}](c);\n`,N()}if(I.resolve(),!g0)G+="})();";G+="}"}G=`const {
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 {
309
309
  handler,
310
310
  handleError,
311
311
  hooks: {
@@ -325,6 +325,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
325
325
  mapCompactResponse,
326
326
  mapEarlyResponse,
327
327
  parseQuery,
328
+ parseQueryFromURL,
328
329
  isNotEmpty
329
330
  },
330
331
  error: {
@@ -347,14 +348,14 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
347
348
 
348
349
  const trace = _trace.map(x => typeof x === 'function' ? x : x.fn)
349
350
 
350
- return ${g0?"async":""} function handle(c) {
351
+ return ${f0?"async":""} function handle(c) {
351
352
  ${Z.beforeHandle.length?"let be":""}
352
353
  ${Z.afterHandle.length?"let af":""}
353
354
  ${Z.mapResponse.length?"let mr":""}
354
355
 
355
- ${K?"c.schema = schema; c.defs = definitions":""}
356
+ ${Y?"c.schema = schema; c.defs = definitions":""}
356
357
  ${G}
357
- }`;try{return Function("hooks",G)({handler:Q,hooks:A1(Z),validator:J,handleError:j.handleError,utils:{mapResponse:y,mapCompactResponse:e,mapEarlyResponse:f,parseQuery:x0,isNotEmpty:p},error:{NotFoundError:O0,ValidationError:L,InternalServerError:J1,ParseError:Q1},schema:j.router.history,definitions:j.definitions.type,ERROR_CODE:N0,parseCookie:a0,signCookie:b0,decodeURIComponent:w2.default,ELYSIA_RESPONSE:d,ELYSIA_TRACE:l0,ELYSIA_REQUEST_ID:P0,getServer:()=>j.getServer()})}catch{const I=A1(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:{...I,transform:I?.transform?.map?.((D)=>D.toString()),resolve:I?.resolve?.map?.((D)=>D.toString()),beforeHandle:I?.beforeHandle?.map?.((D)=>D.toString()),afterHandle:I?.afterHandle?.map?.((D)=>D.toString()),mapResponse:I?.mapResponse?.map?.((D)=>D.toString()),parse:I?.parse?.map?.((D)=>D.toString()),error:I?.error?.map?.((D)=>D.toString()),afterResponse:I?.afterResponse?.map?.((D)=>D.toString()),stop:I?.stop?.map?.((D)=>D.toString())},validator:J,definitions:j.definitions.type}),console.log("---"),process.exit(1)}},E1=(j)=>{let W="",$="";const X=j.setHeaders;for(let w of Object.keys(j.singleton.decorator))W+=`,${w}: app.singleton.decorator.${w}`;const Z=j.router,J=j.event.trace.length>0;let Q=`
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=`
358
359
  const route = router.find(request.method, path) ${Z.http.root.ALL?'?? router.find("ALL", path)':""}
359
360
 
360
361
  if (route === null)
@@ -364,7 +365,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
364
365
  })`:"error404.clone()"}
365
366
 
366
367
  ctx.params = route.params\n`;Q+=`if(route.store.handler) return route.store.handler(ctx)
367
- return (route.store.handler = route.store.compile())(ctx)\n`;let K="";for(let[w,{code:z,all:F}]of Object.entries(Z.static.http.map))K+=`case '${w}':\nswitch(request.method) {\n${z}\n${F??"default: break map"}}\n\n`;const Y=j.event.request.some(g);if($+=`const {
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 {
368
369
  app,
369
370
  mapEarlyResponse,
370
371
  NotFoundError,
@@ -391,16 +392,16 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
391
392
  ${j.event.error.length?"":`\nconst error404Message = notFound.message.toString()
392
393
  const error404 = new Response(error404Message, { status: 404 });\n`}
393
394
 
394
- ${j.event.trace.length?`const ${j.event.trace.map((w,z)=>`tr${z} = app.event.trace[${z}].fn`).join(",")}`:""}
395
+ ${j.event.trace.length?`const ${j.event.trace.map((w,F)=>`tr${F} = app.event.trace[${F}].fn`).join(",")}`:""}
395
396
 
396
- ${Y?"async":""} function map(request) {\n`,j.event.request.length)$+="let re";if($+=`\nconst url = request.url
397
+ ${B?"async":""} function map(request) {\n`,j.event.request.length)W+="let re";if(W+=`\nconst url = request.url
397
398
  const s = url.indexOf('/', 11)
398
399
  const qi = url.indexOf('?', s + 1)
399
400
  let path
400
401
  if(qi === -1)
401
402
  path = url.substring(s)
402
403
  else
403
- path = url.substring(s, qi)\n`,$+=`${J?"const id = randomId()":""}
404
+ path = url.substring(s, qi)\n`,W+=`${J?"const id = randomId()":""}
404
405
  const ctx = {
405
406
  request,
406
407
  store,
@@ -417,21 +418,21 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
417
418
  return getServer()
418
419
  }`:""}
419
420
  ${J?",[ELYSIA_REQUEST_ID]: id":""}
420
- ${W}
421
- }\n`,j.event.trace.length)$+=`\nctx[ELYSIA_TRACE] = [${j.event.trace.map((w,z)=>`tr${z}(ctx)`).join(",")}]\n`;const U=L1({context:"ctx",trace:j.event.trace,addFn:(w)=>{$+=w}})("request",{attribute:"ctx",total:j.event.request.length});if(j.event.request.length){$+="\n try {\n";for(let w=0;w<j.event.request.length;w++){const z=j.event.request[w],F=q0(z),P=g(z),O=U.resolveChild(j.event.request[w].fn.name);if(F)$+=`re = mapEarlyResponse(
422
- ${P?"await":""} onRequest[${w}](ctx),
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),
423
424
  ctx.set,
424
425
  request
425
- )\n`,O("re"),$+="if(re !== undefined) return re\n";else $+=`${P?"await":""} onRequest[${w}](ctx)\n`,O()}$+=`} catch (error) {
426
+ )\n`,V("re"),W+="if(re !== undefined) return re\n";else W+=`${N?"await":""} onRequest[${w}](ctx)\n`,V()}W+=`} catch (error) {
426
427
  return app.handleError(ctx, error)
427
- }`}U.resolve();const _=j.router.static.ws,M=j.router.ws;if(Object.keys(_).length||M.history.length){$+=`
428
+ }`}U.resolve();const _=j.router.static.ws,M=j.router.ws;if(Object.keys(_).length||M.history.length){W+=`
428
429
  if(request.method === 'GET') {
429
- switch(path) {`;for(let[w,z]of Object.entries(_))$+=`
430
+ switch(path) {`;for(let[w,F]of Object.entries(_))W+=`
430
431
  case '${w}':
431
432
  if(request.headers.get('upgrade') === 'websocket')
432
- return st[${z}](ctx)
433
+ return st[${F}](ctx)
433
434
 
434
- break`;$+=`
435
+ break`;W+=`
435
436
  default:
436
437
  if(request.headers.get('upgrade') === 'websocket') {
437
438
  const route = wsRouter.find('ws', path)
@@ -448,16 +449,16 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
448
449
 
449
450
  break
450
451
  }
451
- }\n`}if($+=`
452
+ }\n`}if(W+=`
452
453
  map: switch(path) {
453
- ${K}
454
+ ${Y}
454
455
 
455
456
  default:
456
457
  break
457
458
  }
458
459
 
459
460
  ${Q}
460
- }\n`,j.extender.higherOrderFunctions.length){let w="map";for(let z=0;z<j.extender.higherOrderFunctions.length;z++)w=`hoc[${z}](${w}, request)`;$+=`return function hocMap(request) { return ${w}(request) }`}else $+="return map";const G=H1(j);return j.handleError=G,Function("data",$)({app:j,mapEarlyResponse:f,NotFoundError:O0,randomId:X1,handleError:G,error:C1,redirect:h0,ELYSIA_TRACE:l0,ELYSIA_REQUEST_ID:P0,getServer:()=>j.getServer()})},H1=(j)=>{const W=j.event;let $="";$+=`const {
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 {
461
462
  app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
462
463
  mapResponse,
463
464
  ERROR_CODE,
@@ -477,17 +478,20 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
477
478
  const onError = onErrorContainer.map(x => x.fn)
478
479
  const res = resContainer.map(x => x.fn)
479
480
 
480
- 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)$+="\nconst id = context[ELYSIA_REQUEST_ID]\n";const Z=L1({context:"context",trace:W.trace,addFn:(K)=>{$+=K}});$+=`
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+=`
481
482
  const set = context.set
482
483
  let r
483
484
 
484
- context.code = error.code
485
- context.error = error
485
+ if(!context.code)
486
+ context.code = error.code ?? error[ERROR_CODE]
487
+
488
+ if(!context.error)
489
+ context.error = error
486
490
 
487
491
  if(typeof error === "object" && error && ELYSIA_RESPONSE in error) {
488
492
  error.status = error[ELYSIA_RESPONSE]
489
493
  error.message = error.response
490
- }\n`;const J=X||W.afterResponse.length>0||W.afterResponse.length>0?"context.response = ":"";for(let K=0;K<j.event.error.length;K++){const Y=j.event.error[K],B=`${g(Y)?"await ":""}onError[${K}](context)`;if($+="\nif(skipGlobal !== true) {\n",q0(Y)){$+=`r = ${B}; if(r !== undefined) {
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) {
491
495
  if(r instanceof Response) return r
492
496
 
493
497
  if(r[ELYSIA_RESPONSE]) {
@@ -495,8 +499,8 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
495
499
  error.message = error.response
496
500
  }
497
501
 
498
- if(set.status === 200) set.status = error.status\n`;const U=Z("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let _=0;_<W.mapResponse.length;_++){const M=W.mapResponse[_],G=U.resolveChild(M.fn.name);$+=`\ncontext.response = r
499
- r = ${C0(M)?"await":""} onMapResponse[${_}](context)\n`,G()}U.resolve(),$+=`return mapResponse(${J} r, set, context.request)}\n`}else $+=B+"\n";$+="\n}\n"}$+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
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
504
  set.status = error.status ?? 422
501
505
  return new Response(
502
506
  error.message,
@@ -513,7 +517,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
513
517
  return new Response(
514
518
  error.message,
515
519
  { headers: set.headers, status: error.status }
516
- )\n`;const Q=Z("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let K=0;K<W.mapResponse.length;K++){const Y=W.mapResponse[K],B=Q.resolveChild(Y.fn.name);$+=`\ncontext.response = error
517
- error = ${C0(Y)?"await":""} onMapResponse[${K}](context)\n`,B()}return Q.resolve(),$+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",$)({app:j,mapResponse:y,ERROR_CODE:N0,ELYSIA_RESPONSE:d,ELYSIA_TRACE:l0,ELYSIA_REQUEST_ID:P0})};var b1=(j)=>async(W)=>{const $=W.url,X=$.indexOf("/",11),Z=$.indexOf("?",X+1),J=Z===-1?$.substring(X):$.substring(X,Z),Q={cookie:{},status:200,headers:{}},K=Object.assign({},j.singleton.decorator,{set:Q,store:j.singleton.store,request:W,path:J,qi:Z,redirect:h0});try{for(let P=0;P<j.event.request.length;P++){const O=j.event.request[P].fn;let V=O(K);if(V instanceof Promise)V=await V;if(V=f(V,Q),V)return K.response=V}const Y=j.router.dynamic.find(W.method,J)??j.router.dynamic.find("ALL",J);if(!Y)throw new O0;const{handle:B,hooks:U,validator:_,content:M}=Y.store;let G;if(W.method!=="GET"&&W.method!=="HEAD")if(M)switch(M){case"application/json":G=await W.json();break;case"text/plain":G=await W.text();break;case"application/x-www-form-urlencoded":G=x0(await W.text());break;case"application/octet-stream":G=await W.arrayBuffer();break;case"multipart/form-data":G={};const P=await W.formData();for(let O of P.keys()){if(G[O])continue;const V=P.getAll(O);if(V.length===1)G[O]=V[0];else G[O]=V}break}else{let P=W.headers.get("content-type");if(P){const O=P.indexOf(";");if(O!==-1)P=P.slice(0,O);K.contentType=P;for(let V=0;V<U.parse.length;V++){const C=U.parse[V].fn;let T=C(K,P);if(T instanceof Promise)T=await T;if(T){G=T;break}}if(delete K.contentType,G===void 0)switch(P){case"application/json":G=await W.json();break;case"text/plain":G=await W.text();break;case"application/x-www-form-urlencoded":G=x0(await W.text());break;case"application/octet-stream":G=await W.arrayBuffer();break;case"multipart/form-data":G={};const V=await W.formData();for(let C of V.keys()){if(G[C])continue;const T=V.getAll(C);if(T.length===1)G[C]=T[0];else G[C]=T}break}}}K.body=G,K.params=Y?.params||void 0,K.query=Z===-1?{}:x0($.substring(Z+1)),K.headers={};for(let[P,O]of W.headers.entries())K.headers[P]=O;const w=Object.assign({},j.config?.cookie,_?.cookie?.config),z=W.headers.get("cookie");K.cookie=await a0(K.set,z,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 P=0;P<U.transform.length;P++){const O=U.transform[P],V=O.fn(K);if(O.subType==="derive")if(V instanceof Promise)Object.assign(K,await V);else Object.assign(K,V);else if(V instanceof Promise)await V}if(_){if(_.createHeaders?.()){const P={};for(let O in W.headers)P[O]=W.headers.get(O);if(_.headers.Check(P)===!1)throw new L("header",_.headers,P)}if(_.createParams?.()?.Check(K.params)===!1)throw new L("params",_.params,K.params);if(_.createQuery?.()?.Check(K.query)===!1)throw new L("query",_.query,K.query);if(_.createCookie?.()){const P={};for(let[O,V]of Object.entries(K.cookie))P[O]=V.value;if(_.cookie.Check(P)===!1)throw new L("cookie",_.cookie,P)}if(_.createBody?.()?.Check(G)===!1)throw new L("body",_.body,G)}for(let P=0;P<U.beforeHandle.length;P++){let O=U.beforeHandle[P].fn(K);if(O instanceof Promise)O=await O;if(O!==void 0){K.response=O;for(let C=0;C<U.afterHandle.length;C++){let T=U.afterHandle[C].fn(K);if(T instanceof Promise)T=await T;if(T)O=T}const V=f(O,K.set);if(V)return K.response=V}}let F=B(K);if(F instanceof Promise)F=await F;if(!U.afterHandle.length){const P=F?.[d]??(Q.status?typeof Q.status==="string"?Y0[Q.status]:Q.status:200),O=_?.createResponse?.()?.[P];if(O?.Check(F)===!1)throw new L("response",O,F)}else{K.response=F;for(let P=0;P<U.afterHandle.length;P++){let O=U.afterHandle[P].fn(K);if(O instanceof Promise)O=await O;const V=f(O,K.set);if(V!==void 0){const C=_?.response?.[V.status];if(C?.Check(V)===!1)throw new L("response",C,V);return K.response=V}}}if(K.set.cookie&&w?.sign){const P=!w.secrets?void 0:typeof w.secrets==="string"?w.secrets:w.secrets[0];if(w.sign===!0)for(let[O,V]of Object.entries(K.set.cookie))K.set.cookie[O].value=await b0(V.value,"${secret}");else{const O=_?.cookie?.schema?.properties;for(let V of w.sign){if(!(V in O))continue;if(K.set.cookie[V]?.value)K.set.cookie[V].value=await b0(K.set.cookie[V].value,P)}}}return K.response=y(F,K.set)}catch(Y){if(Y.status)Q.status=Y.status;return j.handleError(K,Y)}finally{for(let Y of j.event.afterResponse)await Y.fn(K)}},F2=(j)=>async(W,$)=>{const X=Object.assign(W,{error:$,code:$.code});X.set=W.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 W.response=y(Q,W.set)}return new Response(typeof $.cause==="string"?$.cause:$.message,{headers:W.set.headers,status:$.status??500})};class X0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=T1;version=T1;singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return H0(H0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new D0,ws:new D0,dynamic:new D0,static:{http:{handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new V1;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,W=Bun?.env??process.env){if(m(j,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(W)===!1){const X=new L("env",j,W);throw new Error(X.all.map((Z)=>Z.summary).join("\n"))}return this}wrap(j){return this.extender.higherOrderFunctions.push({checksum:I0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:j.toString()})),fn:j}),this}applyMacro(j){if(this.extender.macros.length){const W=B2({globalHook:this.event,localHook:j}),$={events:{global:this.event,local:j},onParse:W("parse"),onTransform:W("transform"),onBeforeHandle:W("beforeHandle"),onAfterHandle:W("afterHandle"),mapResponse:W("mapResponse"),onAfterResponse:W("afterResponse"),onError:W("error")};for(let X of this.extender.macros)K2(X.fn($),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[W]=m($);return j}add(j,W,$,X,{allowMeta:Z=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(X=Y2(X),W!==""&&W.charCodeAt(0)!==47)W="/"+W;if(this.config.prefix&&!J&&!this.config.scoped)W=this.config.prefix+W;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,K=!this.config.aot,Y={...this.validator.getCandidate()},B={body:X?.body??Y?.body,headers:X?.headers??Y?.headers,params:X?.params??Y?.params,query:X?.query??Y?.query,cookie:X?.cookie??Y?.cookie,response:X?.response??Y?.response},U=()=>B.cookie?j1({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:K,models:Q}):void 0,_=this.config.normalize,M=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:m(B.body,{dynamic:K,models:Q,normalize:_}),headers:m(B.headers,{dynamic:K,models:Q,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:F0()}),params:m(B.params,{dynamic:K,models:Q,coerce:!0,additionalCoerce:F0()}),query:m(B.query,{dynamic:K,models:Q,normalize:_,coerce:!0,additionalCoerce:F0()}),cookie:U(),response:e0(B.response,{dynamic:K,models:Q,normalize:_})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:K,models:Q,normalize:_})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:K,models:Q,additionalProperties:!_,coerce:!0,additionalCoerce:F0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:K,models:Q,coerce:!0,additionalCoerce:F0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:K,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=e0(B.response,{dynamic:K,models:Q,normalize:_})}},G=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(X=l(X,Y),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,W,{validator:M,hooks:w,content:X?.type,handle:$}),this.config.strictPath===!1)this.router.dynamic.add(j,G,{validator:M,hooks:w,content:X?.type,handle:$});this.router.history.push({method:j,path:W,composed:null,handler:$,hooks:w});return}const z=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,F=u0(this.inference),P=()=>M2({app:this,path:W,method:j,localHook:l(X),hooks:w,validator:M,handler:$,allowMeta:Z,inference:F}),O=z?P():(H)=>{return P()(H)},V=this.router.history.length;if(this.routeTree.has(j+W))for(let H=0;H<this.router.history.length;H++){const k=this.router.history[H];if(k.path===W&&k.method===j){const b=this.router.history.splice(H,1)[0];if(b&&this.routeTree.has(b?.method+b?.path))this.routeTree.delete(b.method+b.path)}}else this.routeTree.set(j+W,V);this.router.history.push({method:j,path:W,composed:O,handler:$,hooks:w});const C=this.router.static.http,T={handler:z?O:void 0,compile:P};if(j==="$INTERNALWS"){const H=this.config.strictPath?void 0:W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(W.indexOf(":")===-1&&W.indexOf("*")===-1){const k=C.handlers.length;if(C.handlers.push((b)=>(C.handlers[k]=P())(b)),this.router.static.ws[W]=k,H)this.router.static.ws[H]=k}else if(this.router.ws.add("ws",W,T),H)this.router.ws.add("ws",H,T);return}if(W.indexOf(":")===-1&&W.indexOf("*")===-1){const H=C.handlers.length;if(C.handlers.push((k)=>(C.handlers[H]=P())(k)),!C.map[W])C.map[W]={code:""};if(j==="ALL")C.map[W].all=`default: return st[${H}](ctx)\n`;else C.map[W].code=`case '${j}': return st[${H}](ctx)\n${C.map[W].code}`;if(!this.config.strictPath){if(!C.map[G])C.map[G]={code:""};if(j==="ALL")C.map[G].all=`default: return st[${H}](ctx)\n`;else C.map[G].code=`case '${j}': return st[${H}](ctx)\n${C.map[G].code}`}}else if(this.router.http.add(j,W,T),!this.config.strictPath)this.router.http.add(j,W.endsWith("/")?W.slice(0,W.length-1):W+"/",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,W){if(!W)return this.on("parse",j);return this.on(j,"parse",W)}onTransform(j,W){if(!W)return this.on("transform",j);return this.on(j,"transform",W)}resolve(j,W){if(!W)W=j,j={as:"local"};const $={subType:"resolve",fn:W};return this.onBeforeHandle(j,$)}mapResolve(j,W){if(!W)W=j,j={as:"local"};const $={subType:"mapResolve",fn:W};return this.onBeforeHandle(j,$)}onBeforeHandle(j,W){if(!W)return this.on("beforeHandle",j);return this.on(j,"beforeHandle",W)}onAfterHandle(j,W){if(!W)return this.on("afterHandle",j);return this.on(j,"afterHandle",W)}mapResponse(j,W){if(!W)return this.on("mapResponse",j);return this.on(j,"mapResponse",W)}onAfterResponse(j,W){if(!W)return this.on("afterResponse",j);return this.on(j,"afterResponse",W)}trace(j,W){if(!W)W=j,j={as:"local"};if(!Array.isArray(W))W=[W];for(let $ of W)this.on(j,"trace",_2($));return this}error(j,W){switch(typeof j){case"string":return W.prototype[N0]=j,this.definitions.error[j]=W,this;case"function":return this.definitions.error=j(this.definitions.error),this}for(let[$,X]of Object.entries(j))X.prototype[N0]=$,this.definitions.error[$]=X;return this}onError(j,W){if(!W)return this.on("error",j);return this.on(j,"error",W)}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=W,!Array.isArray(W)&&typeof W==="object")$=W;break}if(Array.isArray($))$=i($);else if(typeof $==="function")$=[{fn:$}];else $=[$];const Z=$;for(let J of Z)J.scope=typeof j==="string"?"local":j?.as??"local";if(X!=="trace")t0({[X]:Z.map((J)=>J.fn)},this.inference);for(let J of Z){const Q=G2(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 W={plugin:"scoped",global:"global"}[j];if(v(this.event.parse,W),v(this.event.transform,W),v(this.event.beforeHandle,W),v(this.event.afterHandle,W),v(this.event.mapResponse,W),v(this.event.afterResponse,W),v(this.event.trace,W),v(this.event.error,W),j==="plugin")this.validator.scoped=H0(this.validator.scoped,this.validator.local),this.validator.local=null;else if(j==="global")this.validator.global=H0(this.validator.global,H0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group(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 W==="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:K,handler:Y,hooks:B})=>{if(K=(Z?"":this.config.prefix)+j+K,Z){const U=W,_=B;this.add(Q,K,Y,l(U,{..._||{},error:!_.error?J.event.error:Array.isArray(_.error)?[..._.error||{},...J.event.error||{}]:[_.error,...J.event.error||{}]}))}else this.add(Q,K,Y,l(B,{error:J.event.error}),{skipPrefix:!0})}),this}guard(j,W){if(!W){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 $=new X0({...this.config,prefix:""});$.singleton={...this.singleton},$.definitions={...this.definitions},$.inference=u0(this.inference),$.extender={...this.extender};const X=W($);if(this.singleton=c(this.singleton,$.singleton),this.definitions=c(this.definitions,$.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($.router.history).forEach(({method:Z,path:J,handler:Q,hooks:K})=>{this.add(Z,J,Q,l(j,{...K||{},error:!K.error?X.event.error:Array.isArray(K.error)?[...K.error||{},...X.event.error||[]]:[K.error,...X.event.error||[]]}))}),this}use(j,W){if(W?.scoped)return this.guard({},($)=>$.use(j));if(Array.isArray(j)){let $=this;for(let X of j)$=this.use(X);return $}if(j instanceof Promise)return this.promisedModules.add(j.then(($)=>{if(typeof $==="function")return $(this);if($ instanceof X0)return this._use($);if(typeof $.default==="function")return $.default(this);if($.default instanceof X0)return this._use($.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(($)=>$.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:K,handler:Y,hooks:B}of Object.values(J.router.history))this.add(Q,K,Y,l(B,{error:J.event.error}));return J}if(typeof J==="function")return J(this);if(typeof J.default==="function")return J.default(this);return this._use(J)}).then((J)=>J.compile())),this;return Z}if(j.promisedModules.size)return this.promisedModules.add(j.modules.then(()=>this._use(j)).then((Z)=>Z.compile())),this;const{name:W,seed:$}=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(W){if(!(W in this.dependencies))this.dependencies[W]=[];const J=$!==void 0?I0(W+JSON.stringify($)):0;if(this.dependencies[W].some(({checksum:Q})=>J===Q))return this;this.dependencies[W].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),W){if(!(W in this.dependencies))this.dependencies[W]=[];const J=$!==void 0?I0(W+JSON.stringify($)):0;if(!this.dependencies[W].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);Z1(this.extender.macros),Z1(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:K}of Object.values(j.router.history))this.add(Z,J,Q,l(K,{error:j.event.error}));if(!X)if(W){if(!(W in this.dependencies))this.dependencies[W]=[];const Z=$!==void 0?I0(W+JSON.stringify($)):0;if(this.dependencies[W].some(({checksum:J})=>Z===J))return this;this.dependencies[W].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=N1(this.event,O1(j.event),Z)}else this.event=N1(this.event,O1(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 W={checksum:I0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:j.toString()})),fn:j};return this.extender.macros.push(W),this}mount(j,W){if(j instanceof X0||typeof j==="function"||j.length===0||j==="/"){const Z=typeof j==="function"?j:j instanceof X0?j.compile().fetch:W instanceof X0?W.compile().fetch:W,J=async({request:Q,path:K})=>Z(new Request(o0(Q.url,K||"/"),Q));return this.all("/*",J,{type:"none"}),this}const $=j.length;if(W instanceof X0)W=W.compile().fetch;const X=async({request:Z,path:J})=>W(new Request(o0(Z.url,J.slice($)||"/"),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,W){const $=W.transformMessage?Array.isArray(W.transformMessage)?W.transformMessage:[W.transformMessage]:void 0;let X=null;const Z=m(W?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=m(W?.response,{models:this.definitions.type,normalize:this.config.normalize}),Q=(K)=>{if(typeof K==="string"){const Y=K?.charCodeAt(0);if(Y===47||Y===123)try{K=JSON.parse(K)}catch{}else if($1(K))K=+K}if($?.length)for(let Y=0;Y<$.length;Y++){const B=$[Y](K);if(B!==void 0)K=B}return K};return this.route("$INTERNALWS",j,(K)=>{const{set:Y,path:B,qi:U,headers:_,query:M,params:G}=K;if(X===null)X=this.getServer();if(X?.upgrade(K.request,{headers:typeof W.upgrade==="function"?W.upgrade(K):W.upgrade,data:{validator:J,open(w){W.open?.(new R0(w,K))},message:(w,z)=>{const F=Q(z);if(Z?.Check(F)===!1)return void w.send(new L("message",Z,F).message);W.message?.(new R0(w,K),F)},drain(w){W.drain?.(new R0(w,K))},close(w,z,F){W.close?.(new R0(w,K),z,F)}}}))return;return Y.status=400,"Expected a websocket connection"},{beforeHandle:W.beforeHandle,transform:W.transform,headers:W.headers,params:W.params,query:W.query}),this}state(j,W,$){if(W===void 0)$=j,j={as:"append"},W="";else if($===void 0){if(typeof j==="string")$=W,W=j,j={as:"append"};else if(typeof j==="object")$=W,W=""}const{as:X}=j;if(typeof W!=="string")return this;switch(typeof $){case"object":if(W){if(W in this.singleton.store)this.singleton.store[W]=c(this.singleton.store[W],$,{override:X==="override"});else this.singleton.store[W]=$;return this}if($===null)return this;return this.singleton.store=c(this.singleton.store,$,{override:X==="override"}),this;case"function":if(W){if(X==="override"||!(W in this.singleton.store))this.singleton.store[W]=$}else this.singleton.store=$(this.singleton.store);return this;default:if(X==="override"||!(W in this.singleton.store))this.singleton.store[W]=$;return this}}decorate(j,W,$){if(W===void 0)$=j,j={as:"append"},W="";else if($===void 0){if(typeof j==="string")$=W,W=j,j={as:"append"};else if(typeof j==="object")$=W,W=""}const{as:X}=j;if(typeof W!=="string")return this;switch(typeof $){case"object":if(W){if(W in this.singleton.decorator)this.singleton.decorator[W]=c(this.singleton.decorator[W],$,{override:X==="override"});else this.singleton.decorator[W]=$;return this}if($===null)return this;return this.singleton.decorator=c(this.singleton.decorator,$,{override:X==="override"}),this;case"function":if(W){if(X==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=$}else this.singleton.decorator=$(this.singleton.decorator);return this;default:if(X==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=$;return this}}derive(j,W){if(!W)W=j,j={as:"local"};const $={subType:"derive",fn:W};return this.onTransform(j,$)}model(j,W){switch(typeof j){case"object":return Object.entries(j).forEach(([$,X])=>{if(!($ in this.definitions.type))this.definitions.type[$]=X}),this;case"function":return this.definitions.type=j(this.definitions.type),this}return this.definitions.type[j]=W,this}mapDerive(j,W){if(!W)W=j,j={as:"local"};const $={subType:"mapDerive",fn:W};return this.onTransform(j,$)}affix(j,W,$){if($==="")return this;const X=["_","-"," "],Z=(Y)=>Y[0].toUpperCase()+Y.slice(1),J=j==="prefix"?(Y,B)=>X.includes(Y.at(-1)??"")?Y+B:Y+Z(B):X.includes($.at(-1)??"")?(Y,B)=>B+Y:(Y,B)=>B+Z(Y),Q=(Y)=>{const B={};switch(Y){case"decorator":for(let U in this.singleton.decorator)B[J($,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[J($,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[J($,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[J($,U)]=this.definitions.error[U];this.definitions.error=B;break}},K=Array.isArray(W)?W:[W];for(let Y of K.some((B)=>B==="all")?["decorator","state","model","error"]:K)Q(Y);return this}prefix(j,W){return this.affix("prefix",j,W)}suffix(j,W){return this.affix("suffix",j,W)}compile(){if(this.fetch=this.config.aot?E1(this):b1(this),typeof this.server?.reload==="function")this.server.reload({...this.server||{},fetch:this.fetch});return this}handle=async(j)=>this.fetch(j);fetch=(j)=>{return(this.fetch=this.config.aot?E1(this):b1(this))(j)};handleError=async(j,W)=>(this.handleError=this.config.aot?H1(this):F2(this))(j,W);outerErrorHandler=(j)=>new Response(j.message||j.name||"Error",{status:j?.status??500});listen=(j,W)=>{if(typeof Bun==="undefined")throw new Error(".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch");if(this.compile(),typeof j==="string"){if(!$1(j))throw new Error("Port must be a numeric value");j=parseInt(j)}const $=this.fetch,X=typeof j==="object"?{development:!d0,reusePort:!0,...this.config.serve||{},...j||{},websocket:{...this.config.websocket||{},...S1||{}},fetch:$,error:this.outerErrorHandler}:{development:!d0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...S1||{}},port:j,fetch:$,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(W)W(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{A as t,o0 as replaceUrlPath,Q2 as replaceSchemaType,h0 as redirect,x as mergeObjectArray,l as mergeHook,s as mapValueError,y as mapResponse,f as mapEarlyResponse,e as mapCompactResponse,m as getSchemaValidator,e0 as getResponseSchemaValidator,z0 as form,C1 as error,X0 as default,Z1 as deduplicateChecksum,u0 as cloneInference,I0 as checksum,L as ValidationError,Y0 as StatusMap,Q1 as ParseError,O0 as NotFoundError,W1 as InvertedStatusMap,f0 as InvalidCookieSignature,J1 as InternalServerError,X0 as Elysia,N0 as ERROR_CODE,l0 as ELYSIA_TRACE,d as ELYSIA_RESPONSE,P0 as ELYSIA_REQUEST_ID,zj as ELYSIA_FORM_DATA,B0 as Cookie};
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
522
 
519
- //# debugId=3345FC4C7BF9518D64756E2164756E21
523
+ //# debugId=35C0D37A5D90104264756E2164756E21