elysia 1.1.5 → 1.1.6
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 +51 -48
- package/dist/bun/index.js.map +4 -4
- package/dist/cjs/compose.js +47 -3
- package/dist/cjs/dynamic-handle.js +42 -1
- package/dist/cjs/handler.d.ts +1 -0
- package/dist/cjs/handler.js +46 -3
- package/dist/cjs/index.js +48 -4
- package/dist/cjs/types.d.ts +6 -1
- package/dist/compose.mjs +47 -3
- package/dist/dynamic-handle.mjs +42 -1
- package/dist/handler.d.ts +1 -0
- package/dist/handler.mjs +44 -2
- package/dist/index.mjs +48 -4
- package/dist/types.d.ts +6 -1
- package/package.json +1 -1
package/dist/bun/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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 V2=Object.create;var{getPrototypeOf:A2,defineProperty:x1,getOwnPropertyNames:C2}=Object;var S2=Object.prototype.hasOwnProperty;var U1=(j,W,$)=>{$=j!=null?V2(A2(j)):{};const X=W||!j||!j.__esModule?x1($,"default",{value:j,enumerable:!0}):$;for(let Z of C2(j))if(!S2.call(X,Z))x1(X,Z,{get:()=>j[Z],enumerable:!0});return X};var T2=(j,W)=>()=>(W||j((W={exports:{}}).exports,W),W.exports);var a0=T2((W3,a1)=>{function Kj(j){var W=j.indexOf("%");if(W===-1)return j;var $=j.length,X="",Z=0,J=0,Q=W,K=s1;while(W>-1&&W<$){var Y=r1(j[W+1],4),B=r1(j[W+2],0),U=Y|B,_=z1[U];if(K=z1[256+K+_],J=J<<6|U&z1[364+_],K===s1)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===Gj)return null;else{if(W+=3,W<$&&j.charCodeAt(W)===37)continue;return null}}return X+j.slice(Z)}function r1(j,W){var $=Bj[j];return $===void 0?255:$<<W}var s1=12,Gj=0,z1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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],Bj={"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};a1.exports=Kj});var L0=(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}},g1=(j,W)=>({...j,part:W}),y1=(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 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(M0.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(M0.regex.static),Y=W.match(M0.regex.params)||[];if(K[K.length-1]==="")K.pop();let B;if(!this.root[j])B=this.root[j]=L0("/");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=y1(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=L0(M);continue}B=w.inert}for(let G=0;;){if(G===M.length){if(G<B.part.length){const w=g1(B,B.part.slice(G));Object.assign(B,L0(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=L0(M.slice(G));B.inert[M.charCodeAt(G)]=z,B=z;break}if(M[G]!==B.part[G]){const w=g1(B,B.part.slice(G)),z=L0(M.slice(G));Object.assign(B,L0(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=y1(_);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 _1(W,W.length,$,0)}}var _1=(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=_1(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 _=_1(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")},L2=(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]},E2=(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]},f1=(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},v1=(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=f1(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:$}},H2=(j,W)=>{const{parameters:$,hasParenthesis:X}=v1(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(", ")},b2=(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 k1=(j,W,$=0)=>{if($>5)return[];const X=[];let Z=W;while(!0){let J=b2(" = "+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]=E2(Q);X.push(f1(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=k1(J,W);if(Q.length>0)X.push(...Q)}return X},R2=(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()},x2=(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=v1(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 g2=(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}},n0=(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}]=L2(Z.toString()),Y=H2(J,W),B=R2(Y);if(B){const U=k1(B,Q);if(U.splice(0,-1,B),!g2(B,Q,W))x2(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 d0}from"@sinclair/typebox/value";import{Kind as H0,TransformKind as X2}from"@sinclair/typebox";import{Value as W0}from"@sinclair/typebox/value";import{TypeCompiler as J2}from"@sinclair/typebox/compiler";import{TypeRegistry as i1}from"@sinclair/typebox";import{TypeSystem as E0}from"@sinclair/typebox/system";import{Type as f0,FormatRegistry as o}from"@sinclair/typebox";import{TypeCompiler as c1}from"@sinclair/typebox/compiler";import{Value as a}from"@sinclair/typebox/value";function y2(j){return j%4===0&&(j%100!==0||j%400===0)}function d1(j){const W=f2.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&&y2($)?29:v2[X])}function w1(j){return function W($){const X=k2.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 u1(j){const W=w1(j);return function $(X){const Z=X.split(u2);return Z.length===2&&d1(Z[0])&&W(Z[1])}}function d2(j){return h2.test(j)&&m2.test(j)}function c2(j){return h1.lastIndex=0,h1.test(j)}function p2(j){return Number.isInteger(j)&&j<=i2&&j>=l2}function t2(j){return Number.isInteger(j)}function m1(){return!0}function s2(j){if(n2.test(j))return!1;try{return new RegExp(j),!0}catch(W){return!1}}var s0={date:d1,time:w1(!0),"date-time":u1(!0),"iso-time":w1(!1),"iso-date-time":u1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:d2,"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:s2,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:c2,int32:{type:"number",validate:p2},int64:{type:"number",validate:t2},float:{type:"number",validate:m1},double:{type:"number",validate:m1},password:!0,binary:!0},f2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,v2=[0,31,28,31,30,31,30,31,31,30,31,30,31],k2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,u2=/t|\s/i,h2=/\/|:/,m2=/^(?:[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,h1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,l2=-2147483648,i2=2147483647,n2=/[^\\]\\Z/;import{TypeSystemPolicy as tj,TypeSystem as nj,TypeSystemDuplicateFormat as sj,TypeSystemDuplicateTypeKind as rj}from"@sinclair/typebox/system";import{TypeCompiler as oj,TypeCheck as ej}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))/,t1=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,n1=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,r2=s0.date,a2=s0["date-time"];if(!o.Has("date"))E0.Format("date",(j)=>{const W=j.replace(/"/g,"");if(p1.test(W)||t1.test(W)||n1.test(W)||r2(W)){const $=new Date(W);if(!Number.isNaN($.getTime()))return!0}return!1});if(!o.Has("date-time"))E0.Format("date-time",(j)=>{const W=j.replace(/"/g,"");if(p1.test(W)||t1.test(W)||n1.test(W)||a2(W)){const $=new Date(W);if(!Number.isNaN($.getTime()))return!0}return!1});Object.entries(s0).forEach((j)=>{const[W,$]=j;if(!o.Has(W)){if($ instanceof RegExp)E0.Format(W,(X)=>$.test(X));else if(typeof $==="function")E0.Format(W,$)}});var A=Object.assign({},f0),l1=(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},D1=(j,W)=>{if(!(W instanceof Blob))return!1;if(j.minSize&&W.size<l1(j.minSize))return!1;if(j.maxSize&&W.size>l1(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},o2=i1.Get("Files")??E0.Type("File",D1),e2=i1.Get("Files")??E0.Type("Files",(j,W)=>{if(!Array.isArray(W))return D1(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(!D1(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=f0.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 q("property",W,X);return X}).Encode(($)=>$)},Date:(j)=>{const W=f0.Date(j);return A.Transform(A.Union([f0.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 q("property",W,X);return X}).Encode(($)=>{if(typeof $==="string")return new Date($);return $})},BooleanString:(j)=>{const W=f0.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 q("property",W,$);return $}).Encode(($)=>$)},ObjectString:(j,W)=>{const $=A.Object(j,W),X=JSON.stringify(a.Create($));let Z;try{Z=c1.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 q("property",$,J);try{J=JSON.parse(J)}catch{throw new q("property",$,J)}if(Z){if(!Z.Check(J))throw new q("property",$,J);return Z.Decode(J)}if(!a.Check($,J))throw new q("property",$,J);return a.Decode($,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",$,J)}if(!a.Check($,J))throw new q("property",$,J);return JSON.stringify(J)})},ArrayString:(j={},W)=>{const $=A.Array(j,W),X=JSON.stringify(a.Create($));let Z;try{Z=c1.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 q("property",$,J);try{J=JSON.parse(J)}catch{throw new q("property",$,J)}if(Z){if(!Z.Check(J))throw new q("property",$,J);return Z.Decode(J)}if(!a.Check($,J))throw new q("property",$,J);return a.Decode($,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",$,J)}if(!a.Check($,J))throw new q("property",$,J);return JSON.stringify(J)})},File:o2,Files:(j={})=>A.Transform(e2(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 Wj(j,W){if(typeof j!=="string")throw new TypeError("argument str must be a string");var $={},X=W||{},Z=X.decode||Xj,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]=Qj(B,Z)}J=K+1}return $}function $j(j,W,$){var X=$||{},Z=X.encode||Zj;if(typeof Z!=="function")throw new TypeError("option encode is invalid");if(!r0.test(j))throw new TypeError("argument name is invalid");var J=Z(W);if(J&&!r0.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(!r0.test(X.domain))throw new TypeError("option domain is invalid");Q+="; Domain="+X.domain}if(X.path){if(!r0.test(X.path))throw new TypeError("option path is invalid");Q+="; Path="+X.path}if(X.expires){var Y=X.expires;if(!Jj(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 Xj(j){return j.indexOf("%")!==-1?decodeURIComponent(j):j}function Zj(j){return encodeURIComponent(j)}function Jj(j){return jj.call(j)==="[object Date]"||j instanceof Date}function Qj(j,W){try{return W(j)}catch($){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)$(`
|
|
7
|
+
*/var M1=Wj,F1=$j;var jj=Object.prototype.toString,r0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var e1=U1(a0(),1);class Y0{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 o1=(j,W,$)=>{if(!j.cookie)j.cookie={};return new Proxy(W,{get(X,Z){if(Z in W)return new Y0(Z,j.cookie,Object.assign({},$??{},W[Z]));return new Y0(Z,j.cookie,Object.assign({},$))}})},o0=async(j,W,{secrets:$,sign:X,...Z}={})=>{if(!W)return o1(j,{},Z);const J=typeof $==="string";if(X&&X!==!0&&!Array.isArray(X))X=[X];const Q={},K=M1(W);for(let[Y,B]of Object.entries(K)){let U=e1.default(B);if(X===!0||X?.includes(Y)){if(!$)throw new Error("No secret is provided to cookie plugin");if(J){const _=await I1(U,$);if(_===!1)throw new v0(Y);U=_}else{let _=!0;for(let M=0;M<$.length;M++){const G=await I1(U,$[M]);if(G!==!1){_=!0,U=G;break}}if(!_)throw new v0(Y)}}Q[Y]={value:U}}return o1(j,Q,Z)};async function*u0(j){const W=j.body;if(!W)return;const $=W.getReader(),X=new TextDecoder;try{while(!0){const{done:Z,value:J}=await $.read();if(Z)break;yield X.decode(J)}}finally{$.releaseLock()}}var j2="toJSON"in new Headers,i=(j)=>{if(!j)return!1;for(let W in j)return!0;return!1},k0=(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(j2)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)},W2=(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},$2=(j)=>{if(!j||!i(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(F1($,typeof Z==="object"?JSON.stringify(Z):Z+"",X))}if(W.length===0)return;if(W.length===1)return W[0];return W},G0=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(i(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=U0[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&&i(W.cookie)){const X=$2(W.cookie);if(X)W.headers["set-cookie"]=X}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=W2(new Headers(W.headers),W.headers["set-cookie"]);switch(j?.constructor?.name){case"String":return new Response(j,W);case"Blob":return k0(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(I0(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;if(j.headers.get("transfer-encoding")==="chunked")return G0(u0(j),W,$);return j;case"Error":return K0(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 Y0)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(j2)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 K0(j,W);if(typeof j?.next==="function")return G0(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 k0(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(I0(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":if(j.headers.get("transfer-encoding")==="chunked")return G0(u0(j),W,$);return j;case"Error":return K0(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 Y0)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 K0(j,W);if(typeof j?.next==="function")return G0(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(i(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=U0[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&&i(W.cookie)){const X=$2(W.cookie);if(X)W.headers["set-cookie"]=X}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=W2(new Headers(W.headers),W.headers["set-cookie"]);switch(j?.constructor?.name){case"String":return new Response(j,W);case"Blob":return k0(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(I0(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;if(j.headers.get("transfer-encoding")==="chunked")return G0(u0(j),W,$);return j;case"Promise":return j.then((J)=>{const Q=f(J,W);if(Q!==void 0)return Q});case"Error":return K0(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 Y0)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 K0(j,W);if(typeof j?.next==="function")return G0(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 k0(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(I0(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":if(j.headers.get("transfer-encoding")==="chunked")return G0(u0(j));return j;case"Promise":return j.then((Z)=>{const J=f(Z,W);if(J!==void 0)return J});case"Error":return K0(j,W);case"Function":return e(j(),$);case"Number":case"Boolean":return new Response(j.toString());case"Cookie":if(j instanceof Y0)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 K0(j,W);if(typeof j?.next==="function")return G0(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 k0(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(I0(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":if(j.headers.get("transfer-encoding")==="chunked")return G0(u0(j));return j;case"Error":return K0(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 K0(j);if(typeof j?.next==="function")return G0(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)}},K0=(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 Fj(j){let W=j;while(W.endsWith("="))W=W.slice(0,-1);return W}var e0=(j,W)=>{const $=new URL(j);return $.pathname=W,$.toString()},Yj=(j)=>typeof j==="function"&&/^\s*class\s+/.test(j.toString())||j.toString().startsWith("[object ")&&j.toString()!=="[object Object]"||i(Object.getPrototypeOf(j)),P1=(j)=>j&&typeof j==="object"&&!Array.isArray(j),c=(j,W,{skipKeys:$,override:X=!0}={})=>{if(!P1(j)||!P1(W))return j;for(let[Z,J]of Object.entries(W)){if($?.includes(Z))continue;if(!P1(J)||!(Z in j)||Yj(J)){if(X||!(Z in j))j[Z]=J;continue}j[Z]=c(j[Z],J,{skipKeys:$,override:X})}return j},Uj=(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 $},_j=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],wj=_j.reduce((j,W)=>(j[W]=!0,j),{}),Q2=(j,W)=>{const $=(X)=>typeof X==="object"&&Object.keys(X).every(X1);if($(j)&&$(W))return{...j,...W};return W??j},b0=(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:Q2(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:Q2(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)}},G2=(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[H0];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[H0]===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[X2]=w[X2];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[H0]){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=G2(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=J2.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},j1=(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 _=J2.Compile(Y,B);if(X&&Y.additionalProperties===!1)_.Clean=U;return _};if(H0 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]=H0 in U?Q(U,Object.values(W)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=Z;K[+Y]=H0 in B?Q(B,Object.values(W)):B}),K},Dj=typeof Bun!=="undefined",Mj=Dj&&typeof Bun.hash==="function",P0=(j)=>{if(Mj)return Bun.hash(j);let W=9;for(let $=0;$<j.length;)W=Math.imul(W^j.charCodeAt($++),387420489);return W=W^W>>>9},N1,z0=()=>{if(!N1)N1=[{from:A.Object({}),to:()=>A.ObjectString({}),excludeRoot:!0},{from:A.Array(A.Any()),to:()=>A.ArrayString(A.Any())}];return N1},W1=({validator:j,defaultConfig:W={},config:$,dynamic:X,models:Z})=>{let J=m(j,{dynamic:X,models:Z,additionalProperties:!0,coerce:!0,additionalCoerce:z0()});if(i(W))if(J)J.config=Uj(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 $},O1=(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))}},K2=(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},F0=(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},V1=(j)=>{return{...j,type:j?.type,detail:j?.detail,parse:F0(j?.parse),transform:F0(j?.transform),beforeHandle:F0(j?.beforeHandle),afterHandle:F0(j?.afterHandle),mapResponse:F0(j?.mapResponse),afterResponse:F0(j?.afterResponse),error:F0(j?.error),trace:F0(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},$1=Object.fromEntries(Object.entries(U0).map(([j,W])=>[W,j])),Z2=new TextEncoder,R0=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",Z2.encode(W),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),X=await crypto.subtle.sign("HMAC",$,Z2.encode(j));return j+"."+Fj(Buffer.from(X).toString("base64"))},I1=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 R0($,W)===j?$:!1},B2=(j,W)=>{if(!j||typeof j!=="object"||!W)return;for(let[$,X]of Object.entries(W)){if($ in wj||!($ in j))continue;const Z=j[$];if(typeof Z==="function")Z(X),delete W[$]}},Y2=({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)}},zj=(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},X1=(j)=>zj(j)!==null;class A1{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 p=(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},U2=(j)=>{return{...j,start:p(j?.start),request:p(j?.request),parse:p(j?.parse),transform:p(j?.transform),beforeHandle:p(j?.beforeHandle),afterHandle:p(j?.afterHandle),mapResponse:p(j?.mapResponse),afterResponse:p(j?.afterResponse),trace:p(j?.trace),error:p(j?.error),stop:p(j?.stop)}},C1=(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)}},h0=(j)=>({body:j.body,cookie:j.cookie,headers:j.headers,query:j.query,set:j.set,server:j.server}),m0=(j,W=302)=>Response.redirect(j,W),Ij=Symbol("ElysiaFormData"),N0=Symbol("ElysiaRequestId"),I0=(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},Z1=()=>crypto.getRandomValues(new Uint32Array(1))[0],J1=(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 _2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,O0=Symbol("ElysiaErrorCode"),d=Symbol("ElysiaResponse"),c0=(_2?.NODE_ENV??_2?.ENV)==="production",S1=(j,W)=>{const $=W??(j in $1?$1[j]:j);return{[d]:U0[j]??j,response:$,_type:void 0,error:new Error($)}};class Q1 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor(j){super(j??"INTERNAL_SERVER_ERROR")}}class V0 extends Error{code="NOT_FOUND";status=404;constructor(j){super(j??"NOT_FOUND")}}class G1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 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 q extends Error{j;W;$;code="VALIDATION";status=422;constructor(j,W,$){if($&&typeof $==="object"&&d in $)$=$.response;const X=c0?void 0:("Errors"in W)?W.Errors($).First():d0.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(c0)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):[...d0.Errors(W,$)].map(s);let B;try{B=d0.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,q.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(s):[...d0.Errors(this.validator,this.value)].map(s)}static simplifyModel(j){const W="schema"in j?j.schema:j;try{return d0.Create(W)}catch{return W}}get model(){return q.simplifyModel(this.validator)}toResponse(j){return new Response(this.message,{status:400,headers:{...j,"content-type":"application/json"}})}}var T1={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 x0{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=Z1().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 q("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 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 L1="1.1.6";import{Value as p0}from"@sinclair/typebox/value";var l0=U1(a0(),1);function g0(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(K1," ");if(Q&2)$=l0.default($)||$;if(!W[$]){if(B){if(X=j.slice(J+1,Y),Q&4)X=X.replace(K1," ");if(Q&8)X=l0.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(K1," ");if(Q&2)$=l0.default($)||$;if(!W[$]){if(Y){if(X=j.slice(J+1,K),Q&4)X=X.replace(K1," ");if(Q&8)X=l0.default(X)||X}W[$]=X}}}return W}var K1=/\+/g;var D2=U1(a0(),1);var i0=Symbol("ElysiaTrace"),_0=()=>{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 D0=performance.now();if(b)_=b;const R={end:D0,error:b,get elapsed(){return D0-H.begin}};for(let Z0=0;Z0<T.length;Z0++)T[Z0](R);P(D0),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)}}}]},w2=(j)=>{return(W)=>{const[$,X]=_0(),[Z,J]=_0(),[Q,K]=_0(),[Y,B]=_0(),[U,_]=_0(),[M,G]=_0(),[w,z]=_0(),[F,P]=_0(),[O,V]=_0();return j({id:W[N0],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 Nj=(new Headers()).toJSON,M2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},w0=(j)=>{if(!j)return!1;const W=j?.schema;return!!W&&M2.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},E1=({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
8
|
if (${Y} instanceof Error)
|
|
9
9
|
${Q}Child${B}?.(${Y})
|
|
10
10
|
else
|
|
11
|
-
${Q}Child${B}?.()\n`);else $(`${Q}Child${B}?.()\n`)}}}}},
|
|
11
|
+
${Q}Child${B}?.()\n`);else $(`${Q}Child${B}?.()\n`)}}}}},Oj=({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}) {
|
|
12
12
|
c.set.status = ${X}[ELYSIA_RESPONSE]
|
|
13
13
|
${X} = ${X}.response
|
|
14
14
|
}
|
|
@@ -23,15 +23,15 @@ 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}}),
|
|
26
|
+
break\n\n`}return Z+="\n}\n",Z}}),u3=Symbol.for("TypeBox.Kind");var A0=(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(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 W},q1=Symbol.for("TypeBox.Transform"),C0=(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(C0(X))return!0}else if(X.anyOf){for(let J=0;J<X.anyOf.length;J++)if(C0(X.anyOf[J]))return!0}if(q1 in X)return!0}return!1}return q1 in j||j.properties&&q1 in j.properties},Vj=/(?:return|=>) \S+\(/g,S0=(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(Vj)},B1=(j)=>{const W=j?.fn??j;return W.constructor.name==="AsyncGeneratorFunction"||W.constructor.name==="GeneratorFunction"},F2=({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=n0(Object.assign(X,{handler:Q}),Y),Y.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?
|
|
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?W1({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
29
|
if(_setCookie) {`,T.sign===!0)H+=`for(const [key, cookie] of Object.entries(_setCookie)) {
|
|
30
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:
|
|
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:D0}=Oj({normalize:k,validator:J});if(O)G+=Nj?"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
|
|
34
|
+
`;if(V){const I=(N,S)=>{const L=T?.[N]??S;if(!L)return typeof S==="string"?`${N}: "${S}",`:`${N}: ${S},`;if(typeof L==="string")return`${N}: '${L}',`;if(L instanceof Date)return`${N}: new Date(${L.getTime()}),`;return`${N}: ${L},`},D=T?`{
|
|
35
35
|
secrets: ${T.secrets!==void 0?typeof T.secrets==="string"?`'${T.secrets}'`:"["+T.secrets.reduce((N,S)=>N+`'${S}',`,"")+"]":"undefined"},
|
|
36
36
|
sign: ${T.sign===!0?!0:T.sign!==void 0?"["+T.sign.reduce((N,S)=>N+`'${S}',`,"")+"]":"undefined"},
|
|
37
37
|
${I("domain")}
|
|
@@ -42,15 +42,15 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
42
42
|
${I("priority")}
|
|
43
43
|
${I("sameSite")}
|
|
44
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
|
|
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 L=S;if(L&&M2.optional in L&&L.type==="array"&&L.items)L=L.items;const{type:n,anyOf:E}=L,B0=n==="array"||E?.some((u)=>u.type==="string"&&u.format==="ArrayString");I.push({key:N,isArray:B0,isNestedObjectArray:B0&&L.items?.type==="object"||!!L.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) {
|
|
46
46
|
c.query = {}
|
|
47
47
|
} else {
|
|
48
48
|
c.query = parseQuery(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:
|
|
53
|
-
let a${E}\n`;if(N)return
|
|
52
|
+
${I.map(({key:D,isArray:N,isObject:S,isNestedObjectArray:L,anyOf:n},E)=>{const B0=`${E===0?"let":""} memory = url.indexOf('&${D}=')
|
|
53
|
+
let a${E}\n`;if(N)return B0+(L?`while (memory !== -1) {
|
|
54
54
|
const start = memory + ${D.length+2}
|
|
55
55
|
memory = url.indexOf('&', start)
|
|
56
56
|
|
|
@@ -96,7 +96,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
96
96
|
|
|
97
97
|
memory = url.indexOf('&${D}=', memory)
|
|
98
98
|
if(memory === -1) break
|
|
99
|
-
}\n`);if(S)return
|
|
99
|
+
}\n`);if(S)return B0+`if (memory !== -1) {
|
|
100
100
|
const start = memory + ${D.length+2}
|
|
101
101
|
memory = url.indexOf('&', start)
|
|
102
102
|
|
|
@@ -108,7 +108,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
108
108
|
a${E} = JSON.parse(a${E})
|
|
109
109
|
} catch {}
|
|
110
110
|
}
|
|
111
|
-
}`;return
|
|
111
|
+
}`;return B0+`if (memory !== -1) {
|
|
112
112
|
const start = memory + ${D.length+2}
|
|
113
113
|
memory = url.indexOf('&', start)
|
|
114
114
|
|
|
@@ -156,7 +156,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
156
156
|
}
|
|
157
157
|
} else {
|
|
158
158
|
c.query = {}
|
|
159
|
-
}`}if(M)G+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const R=
|
|
159
|
+
}`}if(M)G+="\nconst id = c[ELYSIA_REQUEST_ID]\n";const R=E1({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 = ":"",y0=V||z||Z0||Z.parse.length>0||Z.afterHandle.some(g)||Z.beforeHandle.some(g)||Z.transform.some(g)||Z.mapResponse.some(g),I2=(typeof Q==="function"?B1(Q):!1)||Z.beforeHandle.some(B1)||Z.afterHandle.some(B1)||Z.transform.some(B1),t0=Y.cookie||Y.set||O||M||J.response||B&&P||I2,t=", c.request";G+=`c.route = \`${W}\`\n`;const P2=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 = {}
|
|
160
160
|
|
|
161
161
|
const form = await c.request.formData()
|
|
162
162
|
for (const key of form.keys()) {
|
|
@@ -171,7 +171,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
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),
|
|
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),L=`bo${N}`;if(N!==0)G+="if(!used) {\n";if(G+=`let ${L} = parse[${N}](c, contentType)\n`,G+=`if(${L} instanceof Promise) ${L} = await ${L}\n`,G+=`if(${L} !== undefined) { c.body = ${L}; 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 = {}
|
|
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(
|
|
218
|
+
}`;if(Z.parse.length)G+="}";G+="}\n"}G+="\nisParsing = false\n"}if(P2.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])
|
|
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(
|
|
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(A0("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(w0(J.headers))G+="if(isNotEmpty(c.headers)) {";if(G+=`if(validator.headers.Check(c.headers) === false) {
|
|
235
235
|
${b("headers")}
|
|
236
|
-
}`,
|
|
236
|
+
}`,C0(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[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) {
|
|
237
237
|
${b("params")}
|
|
238
|
-
}`,
|
|
238
|
+
}`,C0(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(A0("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(w0(J.query))G+="if(isNotEmpty(c.query)) {";if(G+=`if(validator.query.Check(c.query) === false) {
|
|
239
239
|
${b("query")}
|
|
240
|
-
}`,
|
|
240
|
+
}`,C0(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&&!$0(J.body))G+="c.body = validator.body.Clean(c.body);\n";const I=C0(J.body.schema);if(I||w0(J.body))G+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(A0("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) {
|
|
241
241
|
if (typeof c.body === 'object') {
|
|
242
242
|
c.body = Object.assign(${N}, c.body)
|
|
243
|
-
} else { c.body = ${N} }`,
|
|
243
|
+
} else { c.body = ${N} }`,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(
|
|
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(
|
|
255
|
+
}`;if(I)G+="\nif(isNotEmptyObject) c.body = validator.body.Decode(c.body)\n"}if(i(C?.schema?.properties??C?.schema?.schema??{})){if(G+=`const cookieValue = {}
|
|
256
256
|
for(const [key, value] of Object.entries(c.cookie))
|
|
257
|
-
cookieValue[key] = value.value\n`,
|
|
257
|
+
cookieValue[key] = value.value\n`,A0("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(w0(J.cookie))G+="if(isNotEmpty(c.cookie)) {";if(G+=`if(validator.cookie.Check(cookieValue) === false) {
|
|
258
258
|
${b("cookie","cookieValue")}
|
|
259
|
-
}`,
|
|
260
|
-
c.cookie[key].value = value\n`;if(
|
|
259
|
+
}`,C0(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 I=R("beforeHandle",{total:Z.beforeHandle.length});let D=!1;for(let N=0;N<Z.beforeHandle.length;N++){const S=Z.beforeHandle[N],L=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])
|
|
261
261
|
throw resolved
|
|
262
262
|
else {
|
|
263
263
|
resolved.request = c.request
|
|
@@ -273,14 +273,14 @@ 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`,
|
|
277
|
-
mr = ${
|
|
276
|
+
Object.assign(c, resolved)\n`}else if(!n)G+=g(S)?`await beforeHandle[${N}](c);\n`:`beforeHandle[${N}](c);\n`,L();else{if(G+=g(S)?`be = await beforeHandle[${N}](c);\n`:`be = beforeHandle[${N}](c);\n`,L("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 T0=Z.afterHandle[J0],N2=q0(T0),O2=u.resolveChild(T0.fn.name);if(G+="c.response = be\n",!N2)G+=g(T0.fn)?`await afterHandle[${J0}](c, be)\n`:`afterHandle[${J0}](c, be)\n`;else G+=g(T0.fn)?`af = await afterHandle[${J0}](c)\n`:`af = afterHandle[${J0}](c)\n`,G+="if(af !== undefined) { c.response = be = af }\n";O2("af")}u.resolve()}if(J.response)G+=D0("be");const B0=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],T0=B0.resolveChild(J0.fn.name);G+=`\nif(mr === undefined) {
|
|
277
|
+
mr = ${S0(J0)?"await":""} onMapResponse[${u}](c)
|
|
278
278
|
if(mr !== undefined) be = c.response = mr
|
|
279
|
-
}\n`,
|
|
280
|
-
if(mr !== undefined) r = c.response = mr\n`,n()}if(N.resolve(),
|
|
281
|
-
mr = ${
|
|
279
|
+
}\n`,T0()}}B0.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 L=Z.afterHandle[S],n=q0(L),E=D.resolveChild(L.fn.name);if(!n)G+=g(L.fn)?`await afterHandle[${S}](c)\n`:`afterHandle[${S}](c)\n`,E();else if(G+=g(L.fn)?`af = await afterHandle[${S}](c)\n`:`af = afterHandle[${S}](c)\n`,E("af"),J.response)G+="if(af !== undefined) {",D.resolve(),G+=D0("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+=D0();G+=H;const N=R("mapResponse",{total:Z.mapResponse.length});if(Z.mapResponse.length)for(let S=0;S<Z.mapResponse.length;S++){const L=Z.mapResponse[S],n=N.resolveChild(L.fn.name);G+=`\nmr = ${S0(L)?"await":""} onMapResponse[${S}](c)
|
|
280
|
+
if(mr !== undefined) r = c.response = mr\n`,n()}if(N.resolve(),t0)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+=D0();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],L=D.resolveChild(S.fn.name);G+=`\nif(mr === undefined) {
|
|
281
|
+
mr = ${S0(S)?"await":""} onMapResponse[${N}](c)
|
|
282
282
|
if(mr !== undefined) r = c.response = mr
|
|
283
|
-
}\n`,
|
|
283
|
+
}\n`,L()}}if(D.resolve(),G+=H,Q instanceof Response)G+=Y.set?`if(
|
|
284
284
|
isNotEmpty(c.set.headers) ||
|
|
285
285
|
c.set.status !== 200 ||
|
|
286
286
|
c.set.redirect ||
|
|
@@ -288,10 +288,10 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
288
288
|
)
|
|
289
289
|
return mapResponse(${r} ${U}.clone(), c.set ${t})
|
|
290
290
|
else
|
|
291
|
-
return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(
|
|
292
|
-
mr = ${
|
|
291
|
+
return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(t0)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],L=D.resolveChild(S.fn.name);G+=`\nif(mr === undefined) {
|
|
292
|
+
mr = ${S0(S)?"await":""} onMapResponse[${N}](c)
|
|
293
293
|
if(mr !== undefined) r = c.response = mr
|
|
294
|
-
}\n`,
|
|
294
|
+
}\n`,L()}}if(D.resolve(),G+=H,t0)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(
|
|
295
295
|
isNotEmpty(c.set.headers) ||
|
|
296
296
|
c.set.status !== 200 ||
|
|
297
297
|
c.set.redirect ||
|
|
@@ -299,13 +299,13 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
299
299
|
)
|
|
300
300
|
return mapResponse(${r} ${U}.clone(), c.set ${t})
|
|
301
301
|
else
|
|
302
|
-
return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(
|
|
302
|
+
return ${U}.clone()`:`return ${U}.clone()`,G+="\n";else if(t0)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(!y0)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 Y1=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=
|
|
307
|
-
er = ${
|
|
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`;
|
|
306
|
+
`;for(let I=0;I<Z.error.length;I++){const D=Y1.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 L=Z.mapResponse[S],n=N.resolveChild(L.fn.name);G+=`\nc.response = er\n
|
|
307
|
+
er = ${S0(L)?"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`;Y1.resolve()}G+="return er\n}\n"}}if(Y1.resolve(),G+="return handleError(c, error, true)\n",!y0)G+="})()";if(G+="}",_||M){if(G+=" finally { ",!y0)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(),!y0)G+="})();";G+="}"}G=`const {
|
|
309
309
|
handler,
|
|
310
310
|
handleError,
|
|
311
311
|
hooks: {
|
|
@@ -347,14 +347,14 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
347
347
|
|
|
348
348
|
const trace = _trace.map(x => typeof x === 'function' ? x : x.fn)
|
|
349
349
|
|
|
350
|
-
return ${
|
|
350
|
+
return ${y0?"async":""} function handle(c) {
|
|
351
351
|
${Z.beforeHandle.length?"let be":""}
|
|
352
352
|
${Z.afterHandle.length?"let af":""}
|
|
353
353
|
${Z.mapResponse.length?"let mr":""}
|
|
354
354
|
|
|
355
355
|
${K?"c.schema = schema; c.defs = definitions":""}
|
|
356
356
|
${G}
|
|
357
|
-
}`;try{return Function("hooks",G)({handler:Q,hooks:
|
|
357
|
+
}`;try{return Function("hooks",G)({handler:Q,hooks:C1(Z),validator:J,handleError:j.handleError,utils:{mapResponse:y,mapCompactResponse:e,mapEarlyResponse:f,parseQuery:g0,isNotEmpty:i},error:{NotFoundError:V0,ValidationError:q,InternalServerError:Q1,ParseError:G1},schema:j.router.history,definitions:j.definitions.type,ERROR_CODE:O0,parseCookie:o0,signCookie:R0,decodeURIComponent:D2.default,ELYSIA_RESPONSE:d,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:N0,getServer:()=>j.getServer()})}catch{const I=C1(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)}},H1=(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
358
|
const route = router.find(request.method, path) ${Z.http.root.ALL?'?? router.find("ALL", path)':""}
|
|
359
359
|
|
|
360
360
|
if (route === null)
|
|
@@ -418,7 +418,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
418
418
|
}`:""}
|
|
419
419
|
${J?",[ELYSIA_REQUEST_ID]: id":""}
|
|
420
420
|
${W}
|
|
421
|
-
}\n`,j.event.trace.length)$+=`\nctx[ELYSIA_TRACE] = [${j.event.trace.map((w,z)=>`tr${z}(ctx)`).join(",")}]\n`;const U=
|
|
421
|
+
}\n`,j.event.trace.length)$+=`\nctx[ELYSIA_TRACE] = [${j.event.trace.map((w,z)=>`tr${z}(ctx)`).join(",")}]\n`;const U=E1({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
422
|
${P?"await":""} onRequest[${w}](ctx),
|
|
423
423
|
ctx.set,
|
|
424
424
|
request
|
|
@@ -457,7 +457,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
${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=
|
|
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=b1(j);return j.handleError=G,Function("data",$)({app:j,mapEarlyResponse:f,NotFoundError:V0,randomId:Z1,handleError:G,error:S1,redirect:m0,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:N0,getServer:()=>j.getServer()})},b1=(j)=>{const W=j.event;let $="";$+=`const {
|
|
461
461
|
app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
|
|
462
462
|
mapResponse,
|
|
463
463
|
ERROR_CODE,
|
|
@@ -477,12 +477,15 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
477
477
|
const onError = onErrorContainer.map(x => x.fn)
|
|
478
478
|
const res = resContainer.map(x => x.fn)
|
|
479
479
|
|
|
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=
|
|
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=E1({context:"context",trace:W.trace,addFn:(K)=>{$+=K}});$+=`
|
|
481
481
|
const set = context.set
|
|
482
482
|
let r
|
|
483
483
|
|
|
484
|
-
context.code
|
|
485
|
-
|
|
484
|
+
if(!context.code)
|
|
485
|
+
context.code = error.code ?? error[ERROR_CODE]
|
|
486
|
+
|
|
487
|
+
if(!context.error)
|
|
488
|
+
context.error = error
|
|
486
489
|
|
|
487
490
|
if(typeof error === "object" && error && ELYSIA_RESPONSE in error) {
|
|
488
491
|
error.status = error[ELYSIA_RESPONSE]
|
|
@@ -496,7 +499,7 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
496
499
|
}
|
|
497
500
|
|
|
498
501
|
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 = ${
|
|
502
|
+
r = ${S0(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") {
|
|
500
503
|
set.status = error.status ?? 422
|
|
501
504
|
return new Response(
|
|
502
505
|
error.message,
|
|
@@ -514,6 +517,6 @@ var O2=Object.create;var{getPrototypeOf:V2,defineProperty:R1,getOwnPropertyNames
|
|
|
514
517
|
error.message,
|
|
515
518
|
{ headers: set.headers, status: error.status }
|
|
516
519
|
)\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
|
+
error = ${S0(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:O0,ELYSIA_RESPONSE:d,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:N0})};var R1=(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:m0});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 V0;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=g0(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=g0(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?{}:g0($.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 o0(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 q("header",_.headers,P)}if(_.createParams?.()?.Check(K.params)===!1)throw new q("params",_.params,K.params);if(_.createQuery?.()?.Check(K.query)===!1)throw new q("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 q("cookie",_.cookie,P)}if(_.createBody?.()?.Check(G)===!1)throw new q("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"?U0[Q.status]:Q.status:200),O=_?.createResponse?.()?.[P];if(O?.Check(F)===!1)throw new q("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 q("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 R0(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 R0(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)}},z2=(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=L1;version=L1;singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return b0(b0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new M0,ws:new M0,dynamic:new M0,static:{http:{handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new A1;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 q("env",j,W);throw new Error(X.all.map((Z)=>Z.summary).join("\n"))}return this}wrap(j){return this.extender.higherOrderFunctions.push({checksum:P0(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=Y2({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)B2(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=U2(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?W1({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:z0()}),params:m(B.params,{dynamic:K,models:Q,coerce:!0,additionalCoerce:z0()}),query:m(B.query,{dynamic:K,models:Q,normalize:_,coerce:!0,additionalCoerce:z0()}),cookie:U(),response:j1(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:z0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:K,models:Q,coerce:!0,additionalCoerce:z0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:K,models:Q,coerce:!0,additionalCoerce:z0()})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=U()},createResponse(){if(this.response)return this.response;return this.response=j1(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(i(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=h0(this.inference),P=()=>F2({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",w2($));return this}error(j,W){switch(typeof j){case"string":return W.prototype[O0]=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[O0]=$,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($))$=p($);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")n0({[X]:Z.map((J)=>J.fn)},this.inference);for(let J of Z){const Q=K2(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=b0(this.validator.scoped,this.validator.local),this.validator.local=null;else if(j==="global")this.validator.global=b0(this.validator.global,b0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group(j,W,$){const X=new X0({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.getServer=()=>this.getServer(),X.inference=h0(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=h0(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?P0(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?P0(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);J1(this.extender.macros),J1(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?P0(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=O1(this.event,V1(j.event),Z)}else this.event=O1(this.event,V1(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:P0(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(e0(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(e0(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(X1(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 x0(w,K))},message:(w,z)=>{const F=Q(z);if(Z?.Check(F)===!1)return void w.send(new q("message",Z,F).message);W.message?.(new x0(w,K),F)},drain(w){W.drain?.(new x0(w,K))},close(w,z,F){W.close?.(new x0(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?H1(this):R1(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?H1(this):R1(this))(j)};handleError=async(j,W)=>(this.handleError=this.config.aot?b1(this):z2(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(!X1(j))throw new Error("Port must be a numeric value");j=parseInt(j)}const $=this.fetch,X=typeof j==="object"?{development:!c0,reusePort:!0,...this.config.serve||{},...j||{},websocket:{...this.config.websocket||{},...T1||{}},fetch:$,error:this.outerErrorHandler}:{development:!c0,reusePort:!0,...this.config.serve||{},websocket:{...this.config.websocket||{},...T1||{}},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,e0 as replaceUrlPath,G2 as replaceSchemaType,m0 as redirect,x as mergeObjectArray,l as mergeHook,s as mapValueError,y as mapResponse,f as mapEarlyResponse,e as mapCompactResponse,m as getSchemaValidator,j1 as getResponseSchemaValidator,I0 as form,S1 as error,X0 as default,J1 as deduplicateChecksum,h0 as cloneInference,P0 as checksum,q as ValidationError,U0 as StatusMap,G1 as ParseError,V0 as NotFoundError,$1 as InvertedStatusMap,v0 as InvalidCookieSignature,Q1 as InternalServerError,X0 as Elysia,O0 as ERROR_CODE,i0 as ELYSIA_TRACE,d as ELYSIA_RESPONSE,N0 as ELYSIA_REQUEST_ID,Ij as ELYSIA_FORM_DATA,Y0 as Cookie};
|
|
518
521
|
|
|
519
|
-
//# debugId=
|
|
522
|
+
//# debugId=F551D74F486586D164756E2164756E21
|