elysia 1.1.21 → 1.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bun/index.js +35 -35
- package/dist/bun/index.js.map +4 -4
- package/dist/cjs/compose.js +215 -200
- package/dist/cjs/cookies.d.ts +2 -0
- package/dist/cjs/cookies.js +28 -23
- package/dist/cjs/dynamic-handle.js +220 -205
- package/dist/cjs/handler.js +208 -193
- package/dist/cjs/index.js +223 -208
- package/dist/compose.mjs +215 -200
- package/dist/cookies.d.ts +2 -0
- package/dist/cookies.mjs +28 -23
- package/dist/dynamic-handle.mjs +220 -205
- package/dist/handler.mjs +208 -193
- package/dist/index.mjs +223 -208
- package/package.json +1 -1
package/dist/bun/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames:E2}=Object;var q2=Object.prototype.hasOwnProperty;var U1=($,W,X)=>{X=$!=null?L2(T2($)):{};const Z=W||!$||!$.__esModule?k1(X,"default",{value:$,enumerable:!0}):X;for(let j of E2($))if(!q2.call(Z,j))k1(Z,j,{get:()=>$[j],enumerable:!0});return Z};var H2=($,W)=>()=>(W||$((W={exports:{}}).exports,W),W.exports);var o0=H2((G8,$2)=>{function _3($){var W=$.indexOf("%");if(W===-1)return $;var X=$.length,Z="",j=0,J=0,Y=W,G=o1;while(W>-1&&W<X){var K=e1($[W+1],4),B=e1($[W+2],0),U=K|B,w=N1[U];if(G=N1[256+G+w],J=J<<6|U&N1[364+w],G===o1)Z+=$.slice(j,Y),Z+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,j=W+3,W=Y=$.indexOf("%",j);else if(G===w3)return null;else{if(W+=3,W<X&&$.charCodeAt(W)===37)continue;return null}}return Z+$.slice(j)}function e1($,W){var X=F3[$];return X===void 0?255:X<<W}var o1=12,w3=0,N1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7],F3={"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};$2.exports=_3});var T0=($,W)=>{const X=W?.length?{}:null;if(X)for(let Z of W)X[Z.part.charCodeAt(0)]=Z;return{part:$,store:null,inert:X,params:null,wildcardStore:null}},v1=($,W)=>({...$,part:W}),u1=($)=>({name:$,store:null,inert:null});class M0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,W,X,{ignoreError:Z=!1,ignoreHistory:j=!1}={}){if(typeof W!=="string")throw new TypeError("Route path must be a string");if(W==="")W="/";else if(W[0]!=="/")W=`/${W}`;const J=W[W.length-1]==="*",Y=W.match(M0.regex.optionalParams);if(Y){const w=W.replaceAll("?","");this.add($,w,X,{ignoreError:Z});for(let F=0;F<Y.length;F++){let Q=W.replace("/"+Y[F],"");this.add($,Q,X,{ignoreError:!0})}return X}if(Y)W=W.replaceAll("?","");if(this.history.find(([w,F,Q])=>w===$&&F===W))return X;if(J||Y&&W.charCodeAt(W.length-1)===63)W=W.slice(0,-1);if(!j)this.history.push([$,W,X]);const G=W.split(M0.regex.static),K=W.match(M0.regex.params)||[];if(G[G.length-1]==="")G.pop();let B;if(!this.root[$])B=this.root[$]=T0("/");else B=this.root[$];let U=0;for(let w=0;w<G.length;++w){let F=G[w];if(w>0){const Q=K[U++].slice(1);if(B.params===null)B.params=u1(Q);else if(B.params.name!==Q)if(Z)return X;else throw new Error(`Cannot create route "${W}" with parameter "${Q}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);const z=B.params;if(z.inert===null){B=z.inert=T0(F);continue}B=z.inert}for(let Q=0;;){if(Q===F.length){if(Q<B.part.length){const z=v1(B,B.part.slice(Q));Object.assign(B,T0(F,[z]))}break}if(Q===B.part.length){if(B.inert===null)B.inert={};const z=B.inert[F.charCodeAt(Q)];if(z){B=z,F=F.slice(Q),Q=0;continue}const D=T0(F.slice(Q));B.inert[F.charCodeAt(Q)]=D,B=D;break}if(F[Q]!==B.part[Q]){const z=v1(B,B.part.slice(Q)),D=T0(F.slice(Q));Object.assign(B,T0(B.part.slice(0,Q),[z,D])),B=D;break}++Q}}if(U<K.length){const w=K[U].slice(1);if(B.params===null)B.params=u1(w);else if(B.params.name!==w)if(Z)return X;else throw new Error(`Cannot create route "${W}" with parameter "${w}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);if(B.params.store===null)B.params.store=X;return B.params.store}if(J){if(B.wildcardStore===null)B.wildcardStore=X;return B.wildcardStore}if(B.store===null)B.store=X;return B.store}find($,W){const X=this.root[$];if(!X)return null;return w1(W,W.length,X,0)}}var w1=($,W,X,Z)=>{const j=X.part,J=j.length,Y=Z+J;if(J>1){if(Y>W)return null;if(J<15){for(let G=1,K=Z+1;G<J;++G,++K)if(j.charCodeAt(G)!==$.charCodeAt(K))return null}else if($.slice(Z,Y)!==j)return null}if(Y===W){if(X.store!==null)return{store:X.store,params:{}};if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":""}};return null}if(X.inert!==null){const G=X.inert[$.charCodeAt(Y)];if(G!==void 0){const K=w1($,W,G,Y);if(K!==null)return K}}if(X.params!==null){const{store:G,name:K,inert:B}=X.params,U=$.indexOf("/",Y);if(U!==Y){if(U===-1||U>=W){if(G!==null){const w={};return w[K]=$.substring(Y,W),{store:G,params:w}}}else if(B!==null){const w=w1($,W,B,U);if(w!==null)return w.params[K]=$.substring(Y,U),w}}}if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":$.substring(Y,W)}};return null};var E0=($)=>{const W=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,X=W.indexOf(")");if(W.charCodeAt(X+2)===61&&W.charCodeAt(X+5)!==123)return!0;return W.includes("return")},R2=($)=>{if($.startsWith("async"))$=$.slice(5);$=$.trimStart();let W=-1;if($.charCodeAt(0)===40){if(W=$.indexOf("=>",$.indexOf(")")),W!==-1){let j=W;while(j>0)if($.charCodeAt(--j)===41)break;let J=$.slice(W+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[$.slice(1,j),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if($.startsWith("function")){W=$.indexOf("(");const j=$.indexOf(")");return[$.slice(W+1,j),$.slice(j+2),{isArrowReturn:!1}]}const X=$.indexOf("(");if(X!==-1){const j=$.indexOf("\n",2),J=$.slice(0,j),Y=J.lastIndexOf(")")+1,G=$.slice(j+1);return[J.slice(X,Y),"{"+G,{isArrowReturn:!1}]}const Z=$.split("\n",2);return[Z[0],Z[1],{isArrowReturn:!1}]},b2=($)=>{const W=$.indexOf("{");if(W===-1)return[-1,0];let X=W+1,Z=1;for(;X<$.length;X++){const j=$.charCodeAt(X);if(j===123)Z++;else if(j===125)Z--;if(Z===0)break}if(Z!==0)return[0,$.length];return[W,X+1]},x2=($)=>{const W=$.lastIndexOf("}");if(W===-1)return[-1,0];let X=W-1,Z=1;for(;X>=0;X--){const j=$.charCodeAt(X);if(j===125)Z++;else if(j===123)Z--;if(Z===0)break}if(Z!==0)return[-1,0];return[X,W+1]},h1=($)=>{while(!0){const W=$.indexOf(":");if(W===-1)break;let X=$.indexOf(",",W);if(X===-1)X=$.indexOf("}",W)-1;if(X===-2)X=$.length;$=$.slice(0,W)+$.slice(X)}return $},m1=($)=>{let W=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)W=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let X=[];while(!0){let[j,J]=b2($);if(j===-1)break;if(X.push($.slice(0,j-1)),$.charCodeAt(J)===44)J++;$=$.slice(J)}if($=h1($),$)X=X.concat($.split(","));const Z=[];for(let j of X){if(j.indexOf(",")===-1){Z.push(j);continue}for(let J of j.split(","))Z.push(J.trim())}return X=Z,{hasParenthesis:W,parameters:X}},g2=($,W)=>{const{parameters:X,hasParenthesis:Z}=m1($);if(!W.query&&X.includes("query"))W.query=!0;if(!W.headers&&X.includes("headers"))W.headers=!0;if(!W.body&&X.includes("body"))W.body=!0;if(!W.cookie&&X.includes("cookie"))W.cookie=!0;if(!W.set&&X.includes("set"))W.set=!0;if(!W.server&&X.includes("server"))W.server=!0;if(Z)return`{ ${X.join(", ")} }`;return X.join(", ")},f2=($,W,X)=>{const Z=W.indexOf($+"\n",X),j=W.indexOf($+"\t",X),J=W.indexOf($+",",X),Y=W.indexOf($+";",X),G=W.indexOf($+" ",X);return[Z,j,J,Y,G].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var d1=($,W,X=0)=>{if(X>5)return[];const Z=[];let j=W;while(!0){let J=f2(" = "+$,j);if(J===-1){const K=j.indexOf(" = "+$);if(K+3+$.length!==j.length)break;J=K}const Y=j.slice(0,J);let G=Y.slice(Y.lastIndexOf(" ")+1);if(G==="}"){const[K,B]=x2(Y);Z.push(h1(j.slice(K,B))),j=j.slice(J+3+$.length);continue}while(G.charCodeAt(0)===44)G=G.slice(1);while(G.charCodeAt(0)===9)G=G.slice(1);if(!G.includes("("))Z.push(G);j=j.slice(J+3+$.length)}for(let J of Z){if(J.charCodeAt(0)===123)continue;const Y=d1(J,W);if(Y.length>0)Z.push(...Y)}return Z},y2=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}const X=$.indexOf("...");if(X===-1)return;return $.slice(X+3).trimEnd()},k2=($,W,X)=>{const Z=(j,J)=>$.includes(J+"."+j)||$.includes(J+'["'+j+'"]')||$.includes(J+"['"+j+"']");for(let j of W){if(!j)continue;if(j.charCodeAt(0)===123){const J=m1(j).parameters;if(!X.query&&J.includes("query"))X.query=!0;if(!X.headers&&J.includes("headers"))X.headers=!0;if(!X.body&&J.includes("body"))X.body=!0;if(!X.cookie&&J.includes("cookie"))X.cookie=!0;if(!X.set&&J.includes("set"))X.set=!0;if(!X.query&&J.includes("server"))X.server=!0;continue}if(!X.query&&Z("query",j))X.query=!0;if($.includes("return "+j)||$.includes("return "+j+".query"))X.query=!0;if(!X.headers&&Z("headers",j))X.headers=!0;if(!X.body&&Z("body",j))X.body=!0;if(!X.cookie&&Z("cookie",j))X.cookie=!0;if(!X.set&&Z("set",j))X.set=!0;if(!X.server&&Z("server",j))X.server=!0;if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return W};var v2=($,W,X)=>{try{const Z=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");Z.test(W);const j=W.charCodeAt(Z.lastIndex);if(j===41||j===44)return X.query=!0,X.headers=!0,X.body=!0,X.cookie=!0,X.set=!0,X.server=!0,!0;return!1}catch(Z){return console.log("[Sucrose] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to maintainers:"),console.log("--- body ---"),console.log(W),console.log("--- context ---"),console.log($),!0}},r0=($,W={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{const X=[];if($.handler&&typeof $.handler==="function")X.push($.handler);if($.request?.length)X.push(...$.request);if($.beforeHandle?.length)X.push(...$.beforeHandle);if($.parse?.length)X.push(...$.parse);if($.error?.length)X.push(...$.error);if($.transform?.length)X.push(...$.transform);if($.afterHandle?.length)X.push(...$.afterHandle);if($.mapResponse?.length)X.push(...$.mapResponse);if($.afterResponse?.length)X.push(...$.afterResponse);for(let Z of X){if(!Z)continue;const j="fn"in Z?Z.fn:Z,[J,Y,{isArrowReturn:G}]=R2(j.toString()),K=g2(J,W),B=y2(K);if(B){const U=d1(B,Y);if(U.splice(0,-1,B),!v2(B,Y,W))k2(Y,U,W);if(!W.query&&Y.includes("return "+B+".query"))W.query=!0}if(W.query&&W.headers&&W.body&&W.cookie&&W.set&&W.server)break}return W};import{Value as c0}from"@sinclair/typebox/value";import{Kind as H0,TransformKind as G2}from"@sinclair/typebox";import{Value as l}from"@sinclair/typebox/value";import{TypeCompiler as K2}from"@sinclair/typebox/compiler";import{Kind as $3,TypeRegistry as M1}from"@sinclair/typebox";import{TypeSystem as q0}from"@sinclair/typebox/system";import{Type as k0,FormatRegistry as W0}from"@sinclair/typebox";import{TypeCompiler as n1}from"@sinclair/typebox/compiler";import{Value as $0}from"@sinclair/typebox/value";function u2($){return $%4===0&&($%100!==0||$%400===0)}function i1($){const W=h2.exec($);if(!W)return!1;const X=+W[1],Z=+W[2],j=+W[3];return Z>=1&&Z<=12&&j>=1&&j<=(Z===2&&u2(X)?29:m2[Z])}function _1($){return function W(X){const Z=d2.exec(X);if(!Z)return!1;const j=+Z[1],J=+Z[2],Y=+Z[3],G=Z[4],K=Z[5]==="-"?-1:1,B=+(Z[6]||0),U=+(Z[7]||0);if(B>23||U>59||$&&!G)return!1;if(j<=23&&J<=59&&Y<60)return!0;const w=J-U*K,F=j-B*K-(w<0?1:0);return(F===23||F===-1)&&(w===59||w===-1)&&Y<61}}function c1($){const W=_1($);return function X(Z){const j=Z.split(c2);return j.length===2&&i1(j[0])&&W(j[1])}}function i2($){return p2.test($)&&l2.test($)}function n2($){return p1.lastIndex=0,p1.test($)}function s2($){return Number.isInteger($)&&$<=r2&&$>=t2}function a2($){return Number.isInteger($)}function l1(){return!0}function e2($){if(o2.test($))return!1;try{return new RegExp($),!0}catch(W){return!1}}var s0={date:i1,time:_1(!0),"date-time":c1(!0),"iso-time":_1(!1),"iso-date-time":c1(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:i2,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:e2,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:n2,int32:{type:"number",validate:s2},int64:{type:"number",validate:a2},float:{type:"number",validate:l1},double:{type:"number",validate:l1},password:!0,binary:!0},h2=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m2=[0,31,28,31,30,31,30,31,31,30,31,30,31],d2=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i,c2=/t|\s/i,p2=/\/|:/,l2=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,p1=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm,t2=-2147483648,r2=2147483647,o2=/[^\\]\\Z/;import{TypeSystemPolicy as $8,TypeSystem as W8,TypeSystemDuplicateFormat as X8,TypeSystemDuplicateTypeKind as Z8}from"@sinclair/typebox/system";import{TypeCompiler as J8,TypeCheck as Q8}from"@sinclair/typebox/compiler";var r1=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,s1=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,a1=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,W3=s0.date,X3=s0["date-time"];if(!W0.Has("date"))q0.Format("date",($)=>{const W=$.replace(/"/g,"");if(r1.test(W)||s1.test(W)||a1.test(W)||W3(W)){const X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});if(!W0.Has("date-time"))q0.Format("date-time",($)=>{const W=$.replace(/"/g,"");if(r1.test(W)||s1.test(W)||a1.test(W)||X3(W)){const X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});Object.entries(s0).forEach(($)=>{const[W,X]=$;if(!W0.Has(W)){if(X instanceof RegExp)q0.Format(W,(Z)=>X.test(Z));else if(typeof X==="function")q0.Format(W,X)}});var V=Object.assign({},k0),t1=($)=>{if(typeof $==="string")switch($.slice(-1)){case"k":return+$.slice(0,$.length-1)*1024;case"m":return+$.slice(0,$.length-1)*1048576;default:return+$}return $},F1=($,W)=>{if(!(W instanceof Blob))return!1;if($.minSize&&W.size<t1($.minSize))return!1;if($.maxSize&&W.size>t1($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!W.type.startsWith($.extension))return!1}else{for(let X=0;X<$.extension.length;X++)if(W.type.startsWith($.extension[X]))return!0;return!1}return!0},Z3=M1.Get("Files")??q0.Type("File",F1),j3=M1.Get("Files")??q0.Type("Files",($,W)=>{if(!Array.isArray(W))return F1($,W);if($.minItems&&W.length<$.minItems)return!1;if($.maxItems&&W.length>$.maxItems)return!1;for(let X=0;X<W.length;X++)if(!F1($,W[X]))return!1;return!0});if(!W0.Has("numeric"))W0.Set("numeric",($)=>!!$&&!isNaN(+$));if(!W0.Has("boolean"))W0.Set("boolean",($)=>$==="true"||$==="false");if(!W0.Has("ObjectString"))W0.Set("ObjectString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!W0.Has("ArrayString"))W0.Set("ArrayString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});M1.Set("UnionEnum",($,W)=>{return(typeof W==="number"||typeof W==="string"||W===null)&&$.enum.includes(W)});var X0={Numeric:($)=>{const W=k0.Number($);return V.Transform(V.Union([V.String({format:"numeric",default:0}),V.Number($)],$)).Decode((X)=>{const Z=+X;if(isNaN(Z))return X;if($&&!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>X)},Date:($)=>{const W=k0.Date($);return V.Transform(V.Union([k0.Date($),V.String({format:"date",default:new Date().toISOString()}),V.String({format:"date-time",default:new Date().toISOString()})],$)).Decode((X)=>{if(X instanceof Date)return X;const Z=new Date(X);if(!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>{if(typeof X==="string")return new Date(X);return X})},BooleanString:($)=>{const W=k0.Boolean($);return V.Transform(V.Union([V.String({format:"boolean",default:!1}),V.Boolean($)],$)).Decode((X)=>{if(typeof X==="string")return X==="true";if($&&!$0.Check(W,X))throw new q("property",W,X);return X}).Encode((X)=>X)},ObjectString:($,W)=>{const X=V.Object($,W),Z=JSON.stringify($0.Create(X));let j;try{j=n1.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ObjectString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},ArrayString:($={},W)=>{const X=V.Array($,W),Z=JSON.stringify($0.Create(X));let j;try{j=n1.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ArrayString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},File:Z3,Files:($={})=>V.Transform(j3($)).Decode((W)=>{if(Array.isArray(W))return W;return[W]}).Encode((W)=>W),Nullable:($)=>V.Union([$,V.Null()]),MaybeEmpty:($)=>V.Union([$,V.Null(),V.Undefined()]),Cookie:($,{domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U,...w}={})=>{const F=V.Object($,w);return F.config={domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U},F},UnionEnum:($,W={})=>{const X=$.every((Z)=>typeof Z==="string")?{type:"string"}:$.every((Z)=>typeof Z==="number")?{type:"number"}:$.every((Z)=>Z===null)?{type:"null"}:{};if($.some((Z)=>typeof Z==="object"&&Z!==null))throw new Error("This type does not support objects or arrays");return{default:$[0],...W,[$3]:"UnionEnum",...X,enum:$}}};V.BooleanString=X0.BooleanString;V.ObjectString=X0.ObjectString;V.ArrayString=X0.ArrayString;V.Numeric=X0.Numeric;V.File=($={})=>X0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});V.Files=($={})=>X0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});V.Nullable=($)=>X0.Nullable($);V.MaybeEmpty=X0.MaybeEmpty;V.Cookie=X0.Cookie;V.Date=X0.Date;V.UnionEnum=X0.UnionEnum;function Q3($,W){if(typeof $!=="string")throw new TypeError("argument str must be a string");var X={},Z=W||{},j=Z.decode||G3,J=0;while(J<$.length){var Y=$.indexOf("=",J);if(Y===-1)break;var G=$.indexOf(";",J);if(G===-1)G=$.length;else if(G<Y){J=$.lastIndexOf(";",Y-1)+1;continue}var K=$.slice(J,Y).trim();if(X[K]===void 0){var B=$.slice(Y+1,G).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);X[K]=U3(B,j)}J=G+1}return X}function Y3($,W,X){var Z=X||{},j=Z.encode||B3;if(typeof j!=="function")throw new TypeError("option encode is invalid");if(!a0.test($))throw new TypeError("argument name is invalid");var J=j(W);if(J&&!a0.test(J))throw new TypeError("argument val is invalid");var Y=$+"="+J;if(Z.maxAge!=null){var G=Z.maxAge-0;if(isNaN(G)||!isFinite(G))throw new TypeError("option maxAge is invalid");Y+="; Max-Age="+Math.floor(G)}if(Z.domain){if(!a0.test(Z.domain))throw new TypeError("option domain is invalid");Y+="; Domain="+Z.domain}if(Z.path){if(!a0.test(Z.path))throw new TypeError("option path is invalid");Y+="; Path="+Z.path}if(Z.expires){var K=Z.expires;if(!K3(K)||isNaN(K.valueOf()))throw new TypeError("option expires is invalid");Y+="; Expires="+K.toUTCString()}if(Z.httpOnly)Y+="; HttpOnly";if(Z.secure)Y+="; Secure";if(Z.partitioned)Y+="; Partitioned";if(Z.priority){var B=typeof Z.priority==="string"?Z.priority.toLowerCase():Z.priority;switch(B){case"low":Y+="; Priority=Low";break;case"medium":Y+="; Priority=Medium";break;case"high":Y+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(Z.sameSite){var U=typeof Z.sameSite==="string"?Z.sameSite.toLowerCase():Z.sameSite;switch(U){case!0:Y+="; SameSite=Strict";break;case"lax":Y+="; SameSite=Lax";break;case"strict":Y+="; SameSite=Strict";break;case"none":Y+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Y}function G3($){return $.indexOf("%")!==-1?decodeURIComponent($):$}function B3($){return encodeURIComponent($)}function K3($){return J3.call($)==="[object Date]"||$ instanceof Date}function U3($,W){try{return W($)}catch(X){return $}}/*!
|
|
2
|
+
var L1=Object.create;var{getPrototypeOf:T1,defineProperty:k2,getOwnPropertyNames:E1}=Object;var q1=Object.prototype.hasOwnProperty;var U2=($,W,X)=>{X=$!=null?L1(T1($)):{};let Z=W||!$||!$.__esModule?k2(X,"default",{value:$,enumerable:!0}):X;for(let j of E1($))if(!q1.call(Z,j))k2(Z,j,{get:()=>$[j],enumerable:!0});return Z};var H1=($,W)=>()=>(W||$((W={exports:{}}).exports,W),W.exports);var o0=H1((G8,$1)=>{var o2=12,w3=0,N2=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function _3($){var W=$.indexOf("%");if(W===-1)return $;var X=$.length,Z="",j=0,J=0,Y=W,G=o2;while(W>-1&&W<X){var K=e2($[W+1],4),B=e2($[W+2],0),U=K|B,w=N2[U];if(G=N2[256+G+w],J=J<<6|U&N2[364+w],G===o2)Z+=$.slice(j,Y),Z+=J<=65535?String.fromCharCode(J):String.fromCharCode(55232+(J>>10),56320+(J&1023)),J=0,j=W+3,W=Y=$.indexOf("%",j);else if(G===w3)return null;else{if(W+=3,W<X&&$.charCodeAt(W)===37)continue;return null}}return Z+$.slice(j)}var F3={"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};function e2($,W){var X=F3[$];return X===void 0?255:X<<W}$1.exports=_3});var T0=($,W)=>{let X=W?.length?{}:null;if(X)for(let Z of W)X[Z.part.charCodeAt(0)]=Z;return{part:$,store:null,inert:X,params:null,wildcardStore:null}},v2=($,W)=>({...$,part:W}),u2=($)=>({name:$,store:null,inert:null});class M0{root={};history=[];static regex={static:/:.+?(?=\/|$)/,params:/:.+?(?=\/|$)/g,optionalParams:/:.+?\?(?=\/|$)/g};add($,W,X,{ignoreError:Z=!1,ignoreHistory:j=!1}={}){if(typeof W!=="string")throw new TypeError("Route path must be a string");if(W==="")W="/";else if(W[0]!=="/")W=`/${W}`;let J=W[W.length-1]==="*",Y=W.match(M0.regex.optionalParams);if(Y){let w=W.replaceAll("?","");this.add($,w,X,{ignoreError:Z});for(let F=0;F<Y.length;F++){let Q=W.replace("/"+Y[F],"");this.add($,Q,X,{ignoreError:!0})}return X}if(Y)W=W.replaceAll("?","");if(this.history.find(([w,F,Q])=>w===$&&F===W))return X;if(J||Y&&W.charCodeAt(W.length-1)===63)W=W.slice(0,-1);if(!j)this.history.push([$,W,X]);let G=W.split(M0.regex.static),K=W.match(M0.regex.params)||[];if(G[G.length-1]==="")G.pop();let B;if(!this.root[$])B=this.root[$]=T0("/");else B=this.root[$];let U=0;for(let w=0;w<G.length;++w){let F=G[w];if(w>0){let Q=K[U++].slice(1);if(B.params===null)B.params=u2(Q);else if(B.params.name!==Q)if(Z)return X;else throw new Error(`Cannot create route "${W}" with parameter "${Q}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);let z=B.params;if(z.inert===null){B=z.inert=T0(F);continue}B=z.inert}for(let Q=0;;){if(Q===F.length){if(Q<B.part.length){let z=v2(B,B.part.slice(Q));Object.assign(B,T0(F,[z]))}break}if(Q===B.part.length){if(B.inert===null)B.inert={};let z=B.inert[F.charCodeAt(Q)];if(z){B=z,F=F.slice(Q),Q=0;continue}let D=T0(F.slice(Q));B.inert[F.charCodeAt(Q)]=D,B=D;break}if(F[Q]!==B.part[Q]){let z=v2(B,B.part.slice(Q)),D=T0(F.slice(Q));Object.assign(B,T0(B.part.slice(0,Q),[z,D])),B=D;break}++Q}}if(U<K.length){let w=K[U].slice(1);if(B.params===null)B.params=u2(w);else if(B.params.name!==w)if(Z)return X;else throw new Error(`Cannot create route "${W}" with parameter "${w}" because a route already exists with a different parameter name ("${B.params.name}") in the same location`);if(B.params.store===null)B.params.store=X;return B.params.store}if(J){if(B.wildcardStore===null)B.wildcardStore=X;return B.wildcardStore}if(B.store===null)B.store=X;return B.store}find($,W){let X=this.root[$];if(!X)return null;return w2(W,W.length,X,0)}}var w2=($,W,X,Z)=>{let j=X.part,J=j.length,Y=Z+J;if(J>1){if(Y>W)return null;if(J<15){for(let G=1,K=Z+1;G<J;++G,++K)if(j.charCodeAt(G)!==$.charCodeAt(K))return null}else if($.slice(Z,Y)!==j)return null}if(Y===W){if(X.store!==null)return{store:X.store,params:{}};if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":""}};return null}if(X.inert!==null){let G=X.inert[$.charCodeAt(Y)];if(G!==void 0){let K=w2($,W,G,Y);if(K!==null)return K}}if(X.params!==null){let{store:G,name:K,inert:B}=X.params,U=$.indexOf("/",Y);if(U!==Y){if(U===-1||U>=W){if(G!==null){let w={};return w[K]=$.substring(Y,W),{store:G,params:w}}}else if(B!==null){let w=w2($,W,B,U);if(w!==null)return w.params[K]=$.substring(Y,U),w}}}if(X.wildcardStore!==null)return{store:X.wildcardStore,params:{"*":$.substring(Y,W)}};return null};var E0=($)=>{let W=typeof $==="object"?$.fn.toString():typeof $==="string"?$.toString():$,X=W.indexOf(")");if(W.charCodeAt(X+2)===61&&W.charCodeAt(X+5)!==123)return!0;return W.includes("return")},R1=($)=>{if($.startsWith("async"))$=$.slice(5);$=$.trimStart();let W=-1;if($.charCodeAt(0)===40){if(W=$.indexOf("=>",$.indexOf(")")),W!==-1){let j=W;while(j>0)if($.charCodeAt(--j)===41)break;let J=$.slice(W+2);if(J.charCodeAt(0)===32)J=J.trimStart();return[$.slice(1,j),J,{isArrowReturn:J.charCodeAt(0)!==123}]}}if($.startsWith("function")){W=$.indexOf("(");let j=$.indexOf(")");return[$.slice(W+1,j),$.slice(j+2),{isArrowReturn:!1}]}let X=$.indexOf("(");if(X!==-1){let j=$.indexOf("\n",2),J=$.slice(0,j),Y=J.lastIndexOf(")")+1,G=$.slice(j+1);return[J.slice(X,Y),"{"+G,{isArrowReturn:!1}]}let Z=$.split("\n",2);return[Z[0],Z[1],{isArrowReturn:!1}]},b1=($)=>{let W=$.indexOf("{");if(W===-1)return[-1,0];let X=W+1,Z=1;for(;X<$.length;X++){let j=$.charCodeAt(X);if(j===123)Z++;else if(j===125)Z--;if(Z===0)break}if(Z!==0)return[0,$.length];return[W,X+1]},x1=($)=>{let W=$.lastIndexOf("}");if(W===-1)return[-1,0];let X=W-1,Z=1;for(;X>=0;X--){let j=$.charCodeAt(X);if(j===125)Z++;else if(j===123)Z--;if(Z===0)break}if(Z!==0)return[-1,0];return[X,W+1]},h2=($)=>{while(!0){let W=$.indexOf(":");if(W===-1)break;let X=$.indexOf(",",W);if(X===-1)X=$.indexOf("}",W)-1;if(X===-2)X=$.length;$=$.slice(0,W)+$.slice(X)}return $},m2=($)=>{let W=!1;if($.charCodeAt(0)===40)$=$.slice(1,-1);if($.charCodeAt(0)===123)W=!0,$=$.slice(1,-1);$=$.replace(/( |\t|\n)/g,"").trim();let X=[];while(!0){let[j,J]=b1($);if(j===-1)break;if(X.push($.slice(0,j-1)),$.charCodeAt(J)===44)J++;$=$.slice(J)}if($=h2($),$)X=X.concat($.split(","));let Z=[];for(let j of X){if(j.indexOf(",")===-1){Z.push(j);continue}for(let J of j.split(","))Z.push(J.trim())}return X=Z,{hasParenthesis:W,parameters:X}},g1=($,W)=>{let{parameters:X,hasParenthesis:Z}=m2($);if(!W.query&&X.includes("query"))W.query=!0;if(!W.headers&&X.includes("headers"))W.headers=!0;if(!W.body&&X.includes("body"))W.body=!0;if(!W.cookie&&X.includes("cookie"))W.cookie=!0;if(!W.set&&X.includes("set"))W.set=!0;if(!W.server&&X.includes("server"))W.server=!0;if(Z)return`{ ${X.join(", ")} }`;return X.join(", ")},f1=($,W,X)=>{let Z=W.indexOf($+"\n",X),j=W.indexOf($+"\t",X),J=W.indexOf($+",",X),Y=W.indexOf($+";",X),G=W.indexOf($+" ",X);return[Z,j,J,Y,G].filter((K)=>K>0).sort((K,B)=>K-B)[0]||-1};var d2=($,W,X=0)=>{if(X>5)return[];let Z=[],j=W;while(!0){let J=f1(" = "+$,j);if(J===-1){let K=j.indexOf(" = "+$);if(K+3+$.length!==j.length)break;J=K}let Y=j.slice(0,J),G=Y.slice(Y.lastIndexOf(" ")+1);if(G==="}"){let[K,B]=x1(Y);Z.push(h2(j.slice(K,B))),j=j.slice(J+3+$.length);continue}while(G.charCodeAt(0)===44)G=G.slice(1);while(G.charCodeAt(0)===9)G=G.slice(1);if(!G.includes("("))Z.push(G);j=j.slice(J+3+$.length)}for(let J of Z){if(J.charCodeAt(0)===123)continue;let Y=d2(J,W);if(Y.length>0)Z.push(...Y)}return Z},y1=($)=>{if(!$)return;if($.charCodeAt(0)!==123)return $;if($=$.slice(2,-2),!$.includes(",")){if($.includes("..."))return $.slice($.indexOf("...")+3);return}let X=$.indexOf("...");if(X===-1)return;return $.slice(X+3).trimEnd()},k1=($,W,X)=>{let Z=(j,J)=>$.includes(J+"."+j)||$.includes(J+'["'+j+'"]')||$.includes(J+"['"+j+"']");for(let j of W){if(!j)continue;if(j.charCodeAt(0)===123){let J=m2(j).parameters;if(!X.query&&J.includes("query"))X.query=!0;if(!X.headers&&J.includes("headers"))X.headers=!0;if(!X.body&&J.includes("body"))X.body=!0;if(!X.cookie&&J.includes("cookie"))X.cookie=!0;if(!X.set&&J.includes("set"))X.set=!0;if(!X.query&&J.includes("server"))X.server=!0;continue}if(!X.query&&Z("query",j))X.query=!0;if($.includes("return "+j)||$.includes("return "+j+".query"))X.query=!0;if(!X.headers&&Z("headers",j))X.headers=!0;if(!X.body&&Z("body",j))X.body=!0;if(!X.cookie&&Z("cookie",j))X.cookie=!0;if(!X.set&&Z("set",j))X.set=!0;if(!X.server&&Z("server",j))X.server=!0;if(X.query&&X.headers&&X.body&&X.cookie&&X.set&&X.server)break}return W};var v1=($,W,X)=>{try{let Z=new RegExp(`(?:\\w)\\((?:.*)?${$}`,"gs");Z.test(W);let j=W.charCodeAt(Z.lastIndex);if(j===41||j===44)return X.query=!0,X.headers=!0,X.body=!0,X.cookie=!0,X.set=!0,X.server=!0,!0;return!1}catch(Z){return console.log("[Sucrose] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to maintainers:"),console.log("--- body ---"),console.log(W),console.log("--- context ---"),console.log($),!0}},r0=($,W={query:!1,headers:!1,body:!1,cookie:!1,set:!1,server:!1})=>{let X=[];if($.handler&&typeof $.handler==="function")X.push($.handler);if($.request?.length)X.push(...$.request);if($.beforeHandle?.length)X.push(...$.beforeHandle);if($.parse?.length)X.push(...$.parse);if($.error?.length)X.push(...$.error);if($.transform?.length)X.push(...$.transform);if($.afterHandle?.length)X.push(...$.afterHandle);if($.mapResponse?.length)X.push(...$.mapResponse);if($.afterResponse?.length)X.push(...$.afterResponse);for(let Z of X){if(!Z)continue;let j="fn"in Z?Z.fn:Z,[J,Y,{isArrowReturn:G}]=R1(j.toString()),K=g1(J,W),B=y1(K);if(B){let U=d2(B,Y);if(U.splice(0,-1,B),!v1(B,Y,W))k1(Y,U,W);if(!W.query&&Y.includes("return "+B+".query"))W.query=!0}if(W.query&&W.headers&&W.body&&W.cookie&&W.set&&W.server)break}return W};import{Value as c0}from"@sinclair/typebox/value";import{Kind as H0,TransformKind as G1}from"@sinclair/typebox";import{Value as p}from"@sinclair/typebox/value";import{TypeCompiler as K1}from"@sinclair/typebox/compiler";import{Kind as $3,TypeRegistry as M2}from"@sinclair/typebox";import{TypeSystem as q0}from"@sinclair/typebox/system";import{Type as k0,FormatRegistry as W0}from"@sinclair/typebox";import{TypeCompiler as n2}from"@sinclair/typebox/compiler";import{Value as $0}from"@sinclair/typebox/value";var s0={date:i2,time:_2(!0),"date-time":c2(!0),"iso-time":_2(!1),"iso-date-time":c2(!1),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:i1,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:e1,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:n1,int32:{type:"number",validate:s1},int64:{type:"number",validate:a1},float:{type:"number",validate:p2},double:{type:"number",validate:p2},password:!0,binary:!0};function u1($){return $%4===0&&($%100!==0||$%400===0)}var h1=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m1=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i2($){let W=h1.exec($);if(!W)return!1;let X=+W[1],Z=+W[2],j=+W[3];return Z>=1&&Z<=12&&j>=1&&j<=(Z===2&&u1(X)?29:m1[Z])}var d1=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function _2($){return function W(X){let Z=d1.exec(X);if(!Z)return!1;let j=+Z[1],J=+Z[2],Y=+Z[3],G=Z[4],K=Z[5]==="-"?-1:1,B=+(Z[6]||0),U=+(Z[7]||0);if(B>23||U>59||$&&!G)return!1;if(j<=23&&J<=59&&Y<60)return!0;let w=J-U*K,F=j-B*K-(w<0?1:0);return(F===23||F===-1)&&(w===59||w===-1)&&Y<61}}var c1=/t|\s/i;function c2($){let W=_2($);return function X(Z){let j=Z.split(c1);return j.length===2&&i2(j[0])&&W(j[1])}}var l1=/\/|:/,p1=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function i1($){return l1.test($)&&p1.test($)}var l2=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function n1($){return l2.lastIndex=0,l2.test($)}var t1=-2147483648,r1=2147483647;function s1($){return Number.isInteger($)&&$<=r1&&$>=t1}function a1($){return Number.isInteger($)}function p2(){return!0}var o1=/[^\\]\\Z/;function e1($){if(o1.test($))return!1;try{return new RegExp($),!0}catch(W){return!1}}import{TypeSystemPolicy as $8,TypeSystem as W8,TypeSystemDuplicateFormat as X8,TypeSystemDuplicateTypeKind as Z8}from"@sinclair/typebox/system";import{TypeCompiler as J8,TypeCheck as Q8}from"@sinclair/typebox/compiler";var r2=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,s2=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,a2=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,W3=s0.date,X3=s0["date-time"];if(!W0.Has("date"))q0.Format("date",($)=>{let W=$.replace(/"/g,"");if(r2.test(W)||s2.test(W)||a2.test(W)||W3(W)){let X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});if(!W0.Has("date-time"))q0.Format("date-time",($)=>{let W=$.replace(/"/g,"");if(r2.test(W)||s2.test(W)||a2.test(W)||X3(W)){let X=new Date(W);if(!Number.isNaN(X.getTime()))return!0}return!1});Object.entries(s0).forEach(($)=>{let[W,X]=$;if(!W0.Has(W)){if(X instanceof RegExp)q0.Format(W,(Z)=>X.test(Z));else if(typeof X==="function")q0.Format(W,X)}});var V=Object.assign({},k0),t2=($)=>{if(typeof $==="string")switch($.slice(-1)){case"k":return+$.slice(0,$.length-1)*1024;case"m":return+$.slice(0,$.length-1)*1048576;default:return+$}return $},F2=($,W)=>{if(!(W instanceof Blob))return!1;if($.minSize&&W.size<t2($.minSize))return!1;if($.maxSize&&W.size>t2($.maxSize))return!1;if($.extension)if(typeof $.extension==="string"){if(!W.type.startsWith($.extension))return!1}else{for(let X=0;X<$.extension.length;X++)if(W.type.startsWith($.extension[X]))return!0;return!1}return!0},Z3=M2.Get("Files")??q0.Type("File",F2),j3=M2.Get("Files")??q0.Type("Files",($,W)=>{if(!Array.isArray(W))return F2($,W);if($.minItems&&W.length<$.minItems)return!1;if($.maxItems&&W.length>$.maxItems)return!1;for(let X=0;X<W.length;X++)if(!F2($,W[X]))return!1;return!0});if(!W0.Has("numeric"))W0.Set("numeric",($)=>!!$&&!isNaN(+$));if(!W0.Has("boolean"))W0.Set("boolean",($)=>$==="true"||$==="false");if(!W0.Has("ObjectString"))W0.Set("ObjectString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});if(!W0.Has("ArrayString"))W0.Set("ArrayString",($)=>{let W=$.charCodeAt(0);if(W===9||W===10||W===32)W=$.trimStart().charCodeAt(0);if(W!==123&&W!==91)return!1;try{return JSON.parse($),!0}catch{return!1}});M2.Set("UnionEnum",($,W)=>{return(typeof W==="number"||typeof W==="string"||W===null)&&$.enum.includes(W)});var X0={Numeric:($)=>{let W=k0.Number($);return V.Transform(V.Union([V.String({format:"numeric",default:0}),V.Number($)],$)).Decode((X)=>{let Z=+X;if(isNaN(Z))return X;if($&&!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>X)},Date:($)=>{let W=k0.Date($);return V.Transform(V.Union([k0.Date($),V.String({format:"date",default:new Date().toISOString()}),V.String({format:"date-time",default:new Date().toISOString()})],$)).Decode((X)=>{if(X instanceof Date)return X;let Z=new Date(X);if(!$0.Check(W,Z))throw new q("property",W,Z);return Z}).Encode((X)=>{if(typeof X==="string")return new Date(X);return X})},BooleanString:($)=>{let W=k0.Boolean($);return V.Transform(V.Union([V.String({format:"boolean",default:!1}),V.Boolean($)],$)).Decode((X)=>{if(typeof X==="string")return X==="true";if($&&!$0.Check(W,X))throw new q("property",W,X);return X}).Encode((X)=>X)},ObjectString:($,W)=>{let X=V.Object($,W),Z=JSON.stringify($0.Create(X)),j;try{j=n2.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ObjectString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==123)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},ArrayString:($={},W)=>{let X=V.Array($,W),Z=JSON.stringify($0.Create(X)),j;try{j=n2.Compile(X)}catch{}return V.Transform(V.Union([V.String({format:"ArrayString",default:Z}),X])).Decode((J)=>{if(typeof J==="string"){if(J.charCodeAt(0)!==91)throw new q("property",X,J);try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(j){if(!j.Check(J))throw new q("property",X,J);return j.Decode(J)}if(!$0.Check(X,J))throw new q("property",X,J);return $0.Decode(X,J)}return J}).Encode((J)=>{if(typeof J==="string")try{J=JSON.parse(J)}catch{throw new q("property",X,J)}if(!$0.Check(X,J))throw new q("property",X,J);return JSON.stringify(J)})},File:Z3,Files:($={})=>V.Transform(j3($)).Decode((W)=>{if(Array.isArray(W))return W;return[W]}).Encode((W)=>W),Nullable:($)=>V.Union([$,V.Null()]),MaybeEmpty:($)=>V.Union([$,V.Null(),V.Undefined()]),Cookie:($,{domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U,...w}={})=>{let F=V.Object($,w);return F.config={domain:W,expires:X,httpOnly:Z,maxAge:j,path:J,priority:Y,sameSite:G,secure:K,secrets:B,sign:U},F},UnionEnum:($,W={})=>{let X=$.every((Z)=>typeof Z==="string")?{type:"string"}:$.every((Z)=>typeof Z==="number")?{type:"number"}:$.every((Z)=>Z===null)?{type:"null"}:{};if($.some((Z)=>typeof Z==="object"&&Z!==null))throw new Error("This type does not support objects or arrays");return{default:$[0],...W,[$3]:"UnionEnum",...X,enum:$}}};V.BooleanString=X0.BooleanString;V.ObjectString=X0.ObjectString;V.ArrayString=X0.ArrayString;V.Numeric=X0.Numeric;V.File=($={})=>X0.File({default:"File",...$,extension:$?.type,type:"string",format:"binary"});V.Files=($={})=>X0.Files({...$,elysiaMeta:"Files",default:"Files",extension:$?.type,type:"array",items:{...$,default:"Files",type:"string",format:"binary"}});V.Nullable=($)=>X0.Nullable($);V.MaybeEmpty=X0.MaybeEmpty;V.Cookie=X0.Cookie;V.Date=X0.Date;V.UnionEnum=X0.UnionEnum;/*!
|
|
3
3
|
* cookie
|
|
4
4
|
* Copyright(c) 2012-2014 Roman Shtylman
|
|
5
5
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
6
6
|
* MIT Licensed
|
|
7
|
-
*/var z1=Q3,D1=Y3;var J3=Object.prototype.toString,a0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;var X2=U1(o0(),1);class w0{$;W;X;constructor($,W,X={}){this.name=$;this.jar=W;this.initial=X}get cookie(){if(!(this.name in this.jar))this.jar[this.name]=this.initial;return this.jar[this.name]}set cookie($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=$}get value(){return this.cookie.value}set value($){this.cookie.value=$}get expires(){return this.cookie.expires}set expires($){this.cookie.expires=$,console.log(this.cookie)}get maxAge(){return this.cookie.maxAge}set maxAge($){this.cookie.maxAge=$}get domain(){return this.cookie.domain}set domain($){this.cookie.domain=$}get path(){return this.cookie.path}set path($){this.cookie.path=$}get secure(){return this.cookie.secure}set secure($){this.cookie.secure=$}get httpOnly(){return this.cookie.httpOnly}set httpOnly($){this.cookie.httpOnly=$}get sameSite(){return this.cookie.sameSite}set sameSite($){this.cookie.sameSite=$}get priority(){return this.cookie.priority}set priority($){this.cookie.priority=$}get partitioned(){return this.cookie.partitioned}set partitioned($){this.cookie.partitioned=$}get secrets(){return this.cookie.secrets}set secrets($){this.cookie.secrets=$}update($){return this.cookie=Object.assign(this.cookie,typeof $==="function"?$(this.cookie):$),this}set($){return this.cookie=Object.assign({...this.initial,value:this.value},typeof $==="function"?$(this.cookie):$),this}remove(){if(this.value===void 0)return;return this.set({expires:new Date(0),maxAge:0,value:""}),this}toString(){return typeof this.value==="object"?JSON.stringify(this.value):this.value?.toString()??""}}var W2=($,W,X)=>{if(!$.cookie)$.cookie={};return new Proxy(W,{get(Z,j){if(j in W)return new w0(j,$.cookie,Object.assign({},X??{},W[j]));return new w0(j,$.cookie,Object.assign({},X))}})},e0=async($,W,{secrets:X,sign:Z,...j}={})=>{if(!W)return W2($,{},j);const J=typeof X==="string";if(Z&&Z!==!0&&!Array.isArray(Z))Z=[Z];const Y={},G=z1(W);for(let[K,B]of Object.entries(G)){let U=X2.default(B);if(Z===!0||Z?.includes(K)){if(!X)throw new Error("No secret is provided to cookie plugin");if(J){const w=await P1(U,X);if(w===!1)throw new v0(K);U=w}else{let w=!0;for(let F=0;F<X.length;F++){const Q=await P1(U,X[F]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new v0(K)}}Y[K]={value:U}}return W2($,Y,j)};async function*h0($){const W=$.body;if(!W)return;const X=W.getReader(),Z=new TextDecoder;try{while(!0){const{done:j,value:J}=await X.read();if(j)break;yield Z.decode(J)}}finally{X.releaseLock()}}var Z2="toJSON"in new Headers,c=($)=>{if(!$)return!1;for(let W in $)return!0;return!1},u0=($,W)=>{const X=$.size;if(!W&&X||X&&W&&W.status!==206&&W.status!==304&&W.status!==412&&W.status!==416){if(W&&c(W.headers)){if(W.headers instanceof Headers){if(Z2)W.headers=W.headers.toJSON();else for(let[Z,j]of W.headers.entries())if(Z in W.headers)W.headers[Z]=j}return new Response($,{status:W.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`},W.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`,"transfer-encoding":"chunked"}})}return new Response($)},j2=($,W)=>{if(!$)return $;$.delete("set-cookie");for(let X=0;X<W.length;X++){const Z=W[X].indexOf("=");$.append("set-cookie",`${W[X].slice(0,Z)}=${W[X].slice(Z+1)||""}`)}return $},J2=($)=>{if(!$||!c($))return;const W=[];for(let[X,Z]of Object.entries($)){if(!X||!Z)continue;const j=Z.value;if(j===void 0||j===null)continue;W.push(D1(X,typeof j==="object"?JSON.stringify(j):j+"",Z))}if(W.length===0)return;if(W.length===1)return W[0];return W},B0=async($,W,X)=>{let Z=$.next();if(Z instanceof Promise)Z=await Z;if(Z.done){if(W)return x(Z.value,W,X);return Z0(Z.value,X)}return new Response(new ReadableStream({async start(j){let J=!1;if(X?.signal.addEventListener("abort",()=>{J=!0;try{j.close()}catch{}}),Z.value!==void 0&&Z.value!==null)if(typeof Z.value==="object")try{j.enqueue(Buffer.from(JSON.stringify(Z.value)))}catch{j.enqueue(Buffer.from(Z.value.toString()))}else j.enqueue(Buffer.from(Z.value.toString()));for await(let Y of $){if(J)break;if(Y===void 0||Y===null)continue;if(typeof Y==="object")try{j.enqueue(Buffer.from(JSON.stringify(Y)))}catch{j.enqueue(Buffer.from(Y.toString()))}else j.enqueue(Buffer.from(Y.toString()));await new Promise((G)=>setTimeout(()=>G(),0))}try{j.close()}catch{}}}),{...W,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...W?.headers}})},x=($,W,X)=>{if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){const Z=J2(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j2(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return new Response("",W);return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((j)=>x(j,W));case"Function":return x($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if(Z2)W.headers=$.headers.toJSON();else for(let[J,Y]of $.headers.entries())if(J in W.headers)W.headers[J]=Y;return $}if($ instanceof Promise)return $.then((j)=>x(j,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return x($.toResponse(),W);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((Z)=>{const j=Z0(Z,X);if(j!==void 0)return j;return new Response("")});case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>x(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return x($.toResponse(),W);if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},y=($,W,X)=>{if($===void 0||$===null)return;if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){const Z=J2(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j2(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,y($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return;return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Promise":return $.then((j)=>{const J=y(j,W);if(J!==void 0)return J});case"Error":return K0($,W);case"Function":return y($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"FormData":return new Response($);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if($.status!==W.status)W.status=$.status;return $}if($ instanceof Promise)return $.then((j)=>y(j,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,y($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return y($.toResponse(),W);if("charCodeAt"in $){const j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,y($.response,W,X);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Promise":return $.then((Z)=>{const j=y(Z,W);if(j!==void 0)return j});case"Error":return K0($,W);case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>y(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof p)return W.status=$.code,y($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if("toResponse"in $)return y($.toResponse(),W);if("charCodeAt"in $){const Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},Z0=($,W)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($);case"Array":return Response.json($);case"Object":return Response.json($);case"ElysiaCustomStatusResponse":return x($.response,{status:$.code,headers:{}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Error":return K0($);case"Promise":return $.then((X)=>Z0(X,W));case"Function":return Z0($(),W);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((X)=>Z0(X,W));if($ instanceof Error)return K0($);if($ instanceof p)return x($.response,{status:$.code,headers:{}});if(typeof $?.next==="function")return B0($,void 0,W);if("toResponse"in $)return Z0($.toResponse());if("charCodeAt"in $){const X=$.charCodeAt(0);if(X===123||X===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},K0=($,W)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:W?.status!==200?W?.status??500:500,headers:W?.headers}),Q2=($,W,X={})=>{if(typeof $==="function")return;const Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0)return Z.clone.bind(Z)},Y2=($,W,X={})=>{if(typeof $==="function"||$ instanceof Blob)return;const Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0){if(!Z.headers.has("content-type"))Z.headers.append("content-type","text/plain;charset=utf-8");return Z.clone.bind(Z)}};function A3($){let W=$;while(W.endsWith("="))W=W.slice(0,-1);return W}var R0=($,W)=>{const X=new URL($);return X.pathname=W,X.toString()},M3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||c(Object.getPrototypeOf($)),I1=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,W,{skipKeys:X,override:Z=!0}={})=>{if(!I1($)||!I1(W))return $;for(let[j,J]of Object.entries(W)){if(X?.includes(j))continue;if(!I1(J)||!(j in $)||M3(J)){if(Z||!(j in $))$[j]=J;continue}$[j]=d($[j],J,{skipKeys:X,override:Z})}return $},z3=($,W)=>{const{properties:X,...Z}=$??{},{properties:j,...J}=W??{};return d(Z,J)},f=($=[],W=[])=>{if(!$)return[];if(!W)return $;const X=[],Z=[];if(!Array.isArray($))$=[$];if(!Array.isArray(W))W=[W];for(let j of $)if(X.push(j),j.checksum)Z.push(j.checksum);for(let j of W)if(!Z.includes(j.checksum))X.push(j);return X},D3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],N3=D3.reduce(($,W)=>($[W]=!0,$),{}),U2=($,W)=>{const X=(Z)=>typeof Z==="object"&&Object.keys(Z).every(Z1);if(X($)&&X(W))return{...$,...W};else if($&&!X($)&&X(W))return{200:$,...W};return W??$},b0=($,W)=>{return{body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U2($?.response,W?.response)}},i=($,W)=>{return{...$,...W,body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U2($?.response,W?.response),type:$?.type||W?.type,detail:d(W?.detail??{},$?.detail??{}),parse:f($?.parse,W?.parse),transform:f($?.transform,W?.transform),beforeHandle:f($?.beforeHandle,W?.beforeHandle),afterHandle:f($?.afterHandle,W?.afterHandle),mapResponse:f($?.mapResponse,W?.mapResponse),afterResponse:f($?.afterResponse,W?.afterResponse),trace:f($?.trace,W?.trace),error:f($?.error,W?.error)}},V1=($,W,X=!0)=>{if(!Array.isArray(W))return h($,W,X);for(let Z of W)$=h($,Z,X);return $},h=($,W,X=!0)=>{if(!$)return $;if(W.untilObjectFound&&!X&&$.type==="object")return $;const Z=W.from[H0];if($.oneOf){for(let Y=0;Y<$.oneOf.length;Y++)$.oneOf[Y]=h($.oneOf[Y],W,X);return $}if($.anyOf){for(let Y=0;Y<$.anyOf.length;Y++)$.anyOf[Y]=h($.anyOf[Y],W,X);return $}if($.allOf){for(let Y=0;Y<$.allOf.length;Y++)$.allOf[Y]=h($.allOf[Y],W,X);return $}if($.not){for(let Y=0;Y<$.not.length;Y++)$.not[Y]=h($.not[Y],W,X);return $}const j=X&&!!W.excludeRoot;if($[H0]===Z){const{anyOf:Y,oneOf:G,allOf:K,not:B,properties:U,items:w,...F}=$,Q=W.to(F);let z;const D=(M)=>{if(U&&M.type==="object"){const O={};for(let[P,b]of Object.entries(U))O[P]=h(b,W,!1);return{...F,...M,properties:O}}if(w&&M.type==="array")return{...F,...M,items:h(w,W,!1)};const I={...F,...M};if(delete I.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")z=V.ObjectString(U,F),I.default=JSON.stringify(l.Create(V.Object(U))),I.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")z=V.ArrayString(w,F),I.default=JSON.stringify(l.Create(V.Array(w))),I.items=w;return I};if(j){if(U){const M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,properties:M}}else if(w?.map)return{...F,items:w.map((M)=>h(M,W,!1))};return F}if(Q.anyOf)for(let M=0;M<Q.anyOf.length;M++)Q.anyOf[M]=D(Q.anyOf[M]);else if(Q.oneOf)for(let M=0;M<Q.oneOf.length;M++)Q.oneOf[M]=D(Q.oneOf[M]);else if(Q.allOf)for(let M=0;M<Q.allOf.length;M++)Q.allOf[M]=D(Q.allOf[M]);else if(Q.not)for(let M=0;M<Q.not.length;M++)Q.not[M]=D(Q.not[M]);if(z)Q[G2]=z[G2];if(Q.anyOf||Q.oneOf||Q.allOf||Q.not)return Q;if(U){const M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,...Q,properties:M}}else if(w?.map)return{...F,...Q,items:w.map((M)=>h(M,W,!1))};return{...F,...Q}}const J=$?.properties;if(J&&X&&W.rootOnly!==!0)for(let[Y,G]of Object.entries(J))switch(G[H0]){case Z:const{anyOf:K,oneOf:B,allOf:U,not:w,type:F,...Q}=G,z=W.to(Q);if(z.anyOf)for(let D=0;D<z.anyOf.length;D++)z.anyOf[D]={...Q,...z.anyOf[D]};else if(z.oneOf)for(let D=0;D<z.oneOf.length;D++)z.oneOf[D]={...Q,...z.oneOf[D]};else if(z.allOf)for(let D=0;D<z.allOf.length;D++)z.allOf[D]={...Q,...z.allOf[D]};else if(z.not)for(let D=0;D<z.not.length;D++)z.not[D]={...Q,...z.not[D]};J[Y]={...Q,...h(Q,W,!1)};break;case"Object":case"Union":J[Y]=h(G,W,!1);break;default:if(G.items)for(let D=0;D<G.items.length;D++)G.items[D]=h(G.items[D],W,!1);else if(G.anyOf||G.oneOf||G.allOf||G.not)J[Y]=h(G,W,!1);break}return $},m=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1,coerce:J=!1,additionalCoerce:Y=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;let G=typeof $==="string"?W[$]:$;if(J||Y)if(J)G=V1(G,[{from:V.Number(),to:(U)=>V.Numeric(U),untilObjectFound:!0},{from:V.Boolean(),to:(U)=>V.BooleanString(U),untilObjectFound:!0},...Array.isArray(Y)?Y:[Y]]);else G=V1(G,[...Array.isArray(Y)?Y:[Y]]);if(G.type==="object"&&"additionalProperties"in G===!1)G.additionalProperties=j;const K=(U)=>l.Clean(G,U);if(X){const U={schema:G,references:"",checkFunc:()=>{},code:"",Check:(w)=>l.Check(G,w),Errors:(w)=>l.Errors(G,w),Code:()=>"",Clean:K,Decode:(w)=>l.Decode(G,w),Encode:(w)=>l.Encode(G,w)};if(Z&&G.additionalProperties===!1)U.Clean=K;if(G.config){if(U.config=G.config,U?.schema?.config)delete U.schema.config}return U.parse=(w)=>{try{return U.Decode(w)}catch(F){throw[...U.Errors(w)].map(o)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(F){const Q=[...B.Errors(w)].map(o);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}const B=K2.Compile(G,Object.values(W));if(B.Clean=K,G.config){if(B.config=G.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(w){throw[...B.Errors(U)].map(o)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){const F=[...B.Errors(U)].map(o);return{success:!1,data:null,error:F[0]?.summary,errors:F}}},B},$1=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;const J=typeof $==="string"?W[$]:$,Y=(K,B)=>{const U=(F)=>{if(!F||typeof F!=="object")return l.Clean(K,F);if(Array.isArray(F))F=l.Clean(K,F);else F=l.Clean(K,F);return F};if(X)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(F)=>l.Check(K,F),Errors:(F)=>l.Errors(K,F),Code:()=>"",Decode:(F)=>l.Decode(K,F),Encode:(F)=>l.Encode(K,F)};const w=K2.Compile(K,B);if(Z&&K.additionalProperties===!1)w.Clean=U;return w};if(H0 in J){if("additionalProperties"in J===!1)J.additionalProperties=j;return{200:Y(J,Object.values(W))}}const G={};return Object.keys(J).forEach((K)=>{const B=J[+K];if(typeof B==="string"){if(B in W){const U=W[B];U.type==="object"&&"additionalProperties"in U,G[+K]=H0 in U?Y(U,Object.values(W)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=j;G[+K]=H0 in B?Y(B,Object.values(W)):B}),G},P3=typeof Bun!=="undefined",I3=P3&&typeof Bun.hash==="function",N0=($)=>{if(I3)return Bun.hash($);let W=9;for(let X=0;X<$.length;)W=Math.imul(W^$.charCodeAt(X++),387420489);return W=W^W>>>9},A1,D0=()=>{if(!A1)A1=[{from:V.Object({}),to:()=>V.ObjectString({}),excludeRoot:!0},{from:V.Array(V.Any()),to:()=>V.ArrayString(V.Any())}];return A1},O1,S1=()=>{if(!O1)O1=[{from:V.Number(),to:($)=>V.Numeric($),rootOnly:!0},{from:V.Boolean(),to:($)=>V.BooleanString($),rootOnly:!0}];return O1},W1=({validator:$,defaultConfig:W={},config:X,dynamic:Z,models:j})=>{let J=m($,{dynamic:Z,models:j,additionalProperties:!0,coerce:!0,additionalCoerce:D0()});if(c(W))if(J)J.config=z3(J.config,X);else J=m(V.Cookie({}),{dynamic:Z,models:j,additionalProperties:!0}),J.config=W;return J},j0=($,W)=>{if(!W)return;if(!Array.isArray(W)){const Z=W;if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local";return Z}const X=[...W];for(let Z of X){if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local"}return X},C1=($,W,X)=>{return{start:f($.start,j0(X,W?.start)),request:f($.request,j0(X,W?.request)),parse:f($.parse,j0(X,W?.parse)),transform:f($.transform,j0(X,W?.transform)),beforeHandle:f($.beforeHandle,j0(X,W?.beforeHandle)),afterHandle:f($.afterHandle,j0(X,W?.afterHandle)),mapResponse:f($.mapResponse,j0(X,W?.mapResponse)),afterResponse:f($.afterResponse,j0(X,W?.afterResponse)),trace:f($.trace,j0(X,W?.trace)),error:f($.error,j0(X,W?.error)),stop:f($.stop,j0(X,W?.stop))}},w2=($,W,{skipIfHasType:X=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(X)$.scope??=W;else $.scope=W;return $}for(let Z of $)if(X)Z.scope??=W;else Z.scope=W;return $},z0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}const W=[];for(let X of $)switch(X.scope){case"global":case"scoped":W.push({...X});break}return W},L1=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:z0($?.parse),transform:z0($?.transform),beforeHandle:z0($?.beforeHandle),afterHandle:z0($?.afterHandle),mapResponse:z0($?.mapResponse),afterResponse:z0($?.afterResponse),error:z0($?.error),trace:z0($?.trace)}},_0={Continue:100,"Switching Protocols":101,Processing:102,"Early Hints":103,OK:200,Created:201,Accepted:202,"Non-Authoritative Information":203,"No Content":204,"Reset Content":205,"Partial Content":206,"Multi-Status":207,"Already Reported":208,"Multiple Choices":300,"Moved Permanently":301,Found:302,"See Other":303,"Not Modified":304,"Temporary Redirect":307,"Permanent Redirect":308,"Bad Request":400,Unauthorized:401,"Payment Required":402,Forbidden:403,"Not Found":404,"Method Not Allowed":405,"Not Acceptable":406,"Proxy Authentication Required":407,"Request Timeout":408,Conflict:409,Gone:410,"Length Required":411,"Precondition Failed":412,"Payload Too Large":413,"URI Too Long":414,"Unsupported Media Type":415,"Range Not Satisfiable":416,"Expectation Failed":417,"I'm a teapot":418,"Misdirected Request":421,"Unprocessable Content":422,Locked:423,"Failed Dependency":424,"Too Early":425,"Upgrade Required":426,"Precondition Required":428,"Too Many Requests":429,"Request Header Fields Too Large":431,"Unavailable For Legal Reasons":451,"Internal Server Error":500,"Not Implemented":501,"Bad Gateway":502,"Service Unavailable":503,"Gateway Timeout":504,"HTTP Version Not Supported":505,"Variant Also Negotiates":506,"Insufficient Storage":507,"Loop Detected":508,"Not Extended":510,"Network Authentication Required":511},X1=Object.fromEntries(Object.entries(_0).map(([$,W])=>[W,$])),B2=new TextEncoder,x0=async($,W)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(W===null)throw new TypeError("Secret key must be provided.");const X=await crypto.subtle.importKey("raw",B2.encode(W),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),Z=await crypto.subtle.sign("HMAC",X,B2.encode($));return $+"."+A3(Buffer.from(Z).toString("base64"))},P1=async($,W)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(W===null)throw new TypeError("Secret key must be provided.");const X=$.slice(0,$.lastIndexOf("."));return await x0(X,W)===$?X:!1},_2=($,W)=>{if(!$||typeof $!=="object"||!W)return;for(let[X,Z]of Object.entries(W)){if(X in N3||!(X in $))continue;const j=$[X];if(typeof j==="function")j(Z),delete W[X]}},F2=({globalHook:$,localHook:W})=>(X)=>(Z,j)=>{if(typeof Z==="function")Z={fn:Z};if("fn"in Z||Array.isArray(Z)){if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(Array.isArray(Z))W[X]=W[X].concat(Z);else W[X].push(Z);return}const{insert:J="after",stack:Y="local"}=Z;if(typeof j==="function")j={fn:j};if(Y==="global")if(!Array.isArray(j))if(J==="before")$[X].unshift(j);else $[X].push(j);else if(J==="before")$[X]=j.concat($[X]);else $[X]=$[X].concat(j);else{if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(!Array.isArray(j))if(J==="before")W[X].unshift(j);else W[X].push(j);else if(J==="before")W[X]=j.concat(W[X]);else W[X]=W[X].concat(j)}},O3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;const W=Number($);if(Number.isNaN(W))return null;return W}if($.length===16){if($.trim().length===0)return null;const W=Number($);if(Number.isNaN(W)||W.toString()!==$)return null;return W}return null},Z1=($)=>O3($)!==null;class T1{$;root=null;promises=[];constructor($=console.error){this.onError=$}get size(){return this.promises.length}add($){return this.promises.push($),this.root||=this.drain(),$}async drain(){while(this.promises.length>0){try{await this.promises[0]}catch($){this.onError($)}this.promises.shift()}this.root=null}then($,W){return(this.root??Promise.resolve()).then($,W)}}var n=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}const W=[];for(let X of $)if(typeof X==="function")W.push({fn:X});else if("fn"in X)W.push(X);return W},M2=($)=>{return{...$,start:n($?.start),request:n($?.request),parse:n($?.parse),transform:n($?.transform),beforeHandle:n($?.beforeHandle),afterHandle:n($?.afterHandle),mapResponse:n($?.mapResponse),afterResponse:n($?.afterResponse),trace:n($?.trace),error:n($?.error),stop:n($?.stop)}},E1=($)=>{return{...$,start:$.start?.map((W)=>W.fn),request:$.request?.map((W)=>W.fn),parse:$.parse?.map((W)=>W.fn),transform:$.transform?.map((W)=>W.fn),beforeHandle:$.beforeHandle?.map((W)=>W.fn),afterHandle:$.afterHandle?.map((W)=>W.fn),afterResponse:$.afterResponse?.map((W)=>W.fn),mapResponse:$.mapResponse?.map((W)=>W.fn),trace:$.trace?.map((W)=>W.fn),error:$.error?.map((W)=>W.fn),stop:$.stop?.map((W)=>W.fn)}},m0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),d0=($,W=302)=>Response.redirect($,W),V3=Symbol("ElysiaFormData"),P0=Symbol("ElysiaRequestId"),S3=($)=>{const W=new FormData;for(let[X,Z]of Object.entries($)){if(Array.isArray(Z)){for(let j of Z){if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,j)}continue}if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,Z)}return W},j1=()=>crypto.getRandomValues(new Uint32Array(1))[0],J1=($)=>{const W=[];for(let X=0;X<$.length;X++){const Z=$[X];if(Z.checksum){if(W.includes(Z.checksum))$.splice(X,1),X--;W.push(Z.checksum)}}return $},v=($,W="scoped")=>{if(W==="scoped"){for(let X of $)if("scope"in X&&X.scope==="local")X.scope="scoped";return}for(let X of $)if("scope"in X)X.scope="global"};var z2=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,I0=Symbol("ElysiaErrorCode"),p0=(z2?.NODE_ENV??z2?.ENV)==="production";class p{code;response;constructor($,W){const X=W??($ in X1?X1[$]:$);this.code=_0[$]??$,this.response=X}}var q1=($,W)=>new p($,W);class Q1 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class A0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class Y1 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,W){super(W??`"${$}" has invalid cookie signature`);this.key=$}}var o=($)=>{if(!$)return{summary:void 0};const{message:W,path:X,value:Z,type:j}=$,J=X.slice(1).replaceAll("/","."),Y=X==="";switch(j){case 42:return{...$,summary:Y?"Value should not be provided":`Property '${J}' should not be provided`};case 45:return{...$,summary:Y?"Value is missing":`Property '${J}' is missing`};case 50:const G=W.indexOf("'"),K=W.slice(G+1,W.indexOf("'",G+1));return{...$,summary:Y?"Value should be an email":`Property '${J}' should be ${K}`};case 54:return{...$,summary:`${W.slice(0,9)} property '${J}' to be ${W.slice(8)} but found: ${Z}`};case 62:const B=$.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...$,summary:Y?`Value should be one of ${B}`:`Property '${J}' should be one of: ${B}`};default:return{summary:W,...$}}};class q extends Error{$;W;X;code="VALIDATION";status=422;constructor($,W,X){if(X&&typeof X==="object"&&X instanceof p)X=X.response;const Z=p0?void 0:("Errors"in W)?W.Errors(X).First():c0.Errors(W,X).First(),j=Z?.schema.error!==void 0?typeof Z.schema.error==="function"?Z.schema.error({type:$,validator:W,value:X,get errors(){return[...W.Errors(X)].map(o)}}):Z.schema.error:void 0,J=Z?.path||"root";let Y="";if(j!==void 0)Y=typeof j==="object"?JSON.stringify(j):j+"";else if(p0)Y=JSON.stringify({type:"validation",on:$,summary:o(Z).summary,message:Z?.message,found:X});else{const G=W?.schema??W,K="Errors"in W?[...W.Errors(X)].map(o):[...c0.Errors(W,X)].map(o);let B;try{B=c0.Create(G)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}Y=JSON.stringify({type:"validation",on:$,summary:K[0]?.summary,property:J,message:Z?.message,expected:B,found:X,errors:K},null,2)}super(Y);this.type=$;this.validator=W;this.value=X;Object.setPrototypeOf(this,q.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(o):[...c0.Errors(this.validator,this.value)].map(o)}static simplifyModel($){const W="schema"in $?$.schema:$;try{return c0.Create(W)}catch{return W}}get model(){return q.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var H1={open($){$.data.open?.($)},message($,W){$.data.message?.($,W)},drain($){$.data.drain?.($)},close($,W,X){$.data.close?.($,W,X)}};class g0{$;W;validator;_validator;constructor($,W){this.raw=$;this.data=W;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=j1().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,W=void 0,X)=>{if(this.validator?.Check(W)===!1)throw new q("message",this.validator,W);if(typeof W==="object")W=JSON.stringify(W);return this.raw.publish($,W,X),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new q("message",this.validator,$);if(Buffer.isBuffer($))return this.raw.send($),this;if(typeof $==="object")$=JSON.stringify($);return this.raw.send($),this}}get subscribe(){return($)=>{return this.raw.subscribe($),this}}get unsubscribe(){return($)=>{return this.raw.unsubscribe($),this}}get cork(){return($)=>{return this.raw.cork($),this}}get close(){return()=>{return this.raw.close(),this}}get terminate(){return this.raw.terminate.bind(this.raw)}get isSubscribed(){return this.raw.isSubscribed.bind(this.raw)}get remoteAddress(){return this.raw.remoteAddress}}var R1="1.1.21";import{Value as n0}from"@sinclair/typebox/value";import{TypeBoxError as L3}from"@sinclair/typebox";var O0=U1(o0(),1);function G1($){const W={};if(typeof $!=="string")return W;let X="",Z="",j=-1,J=-1,Y=0;const G=$.length;for(let K=0;K<G;K++)switch($.charCodeAt(K)){case 38:const B=J>j;if(!B)J=K;if(X=$.slice(j+1,J),B||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(B){if(Z=$.slice(J+1,K),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}X="",Z="",j=K,J=K,Y=0;break;case 61:if(J<=j)J=K;else Y|=8;break;case 43:if(J>j)Y|=4;else Y|=1;break;case 37:if(J>j)Y|=8;else Y|=2;break}if(j<G){const K=J>j;if(X=$.slice(j+1,K?J:G),K||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(K){if(Z=$.slice(J+1,G),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}}return W}var f0=/\+/g,l0=($)=>{const W={};if(typeof $!=="string")return W;const X=$.length;let Z="",j="",J=-1,Y=-1,G=!1,K=!1,B=!1,U=!1,w=!1,F=0;for(let Q=0;Q<X+1;Q++){if(Q!==X)F=$.charCodeAt(Q);else F=38;switch(F){case 38:{if(w=Y>J,!w)Y=Q;if(Z=$.slice(J+1,Y),w||Z.length>0){if(B)Z=Z.replace(f0," ");if(G)Z=O0.default(Z)||Z;if(w){if(j=$.slice(Y+1,Q),U)j=j.replace(f0," ");if(K)j=O0.default(j)||j}const z=W[Z];if(z===void 0)W[Z]=j;else if(z.pop)z.push(j);else W[Z]=[z,j]}j="",J=Q,Y=Q,G=!1,K=!1,B=!1,U=!1;break}case 61:if(Y<=J)Y=Q;else K=!0;break;case 43:if(Y>J)U=!0;else B=!0;break;case 37:if(Y>J)K=!0;else G=!0;break}}return W};var N2=U1(o0(),1);var i0=Symbol("ElysiaTrace"),F0=()=>{const{promise:$,resolve:W}=Promise.withResolvers(),{promise:X,resolve:Z}=Promise.withResolvers(),{promise:j,resolve:J}=Promise.withResolvers(),Y=[],G=[];return[(K)=>{if(K)Y.push(K);return $},(K)=>{const B=[],U=[];let w=null;for(let Q=0;Q<(K.total??0);Q++){const{promise:z,resolve:D}=Promise.withResolvers(),{promise:M,resolve:I}=Promise.withResolvers(),{promise:O,resolve:P}=Promise.withResolvers(),b=[],T=[];B.push((E)=>{if(E)b.push(E);return z}),U.push((E)=>{const r={...E,end:M,error:O,index:Q,onStop(L){if(L)T.push(L);return M}};D(r);for(let L=0;L<b.length;L++)b[L](r);return(L=null)=>{const g=performance.now();if(L)w=L;const R={end:g,error:L,get elapsed(){return g-E.begin}};for(let Y0=0;Y0<T.length;Y0++)T[Y0](R);I(g),P(L)}})}const F={...K,end:X,error:j,onEvent(Q){for(let z=0;z<B.length;z++)B[z](Q)},onStop(Q){if(Q)G.push(Q);return X}};W(F);for(let Q=0;Q<Y.length;Q++)Y[Q](F);return{resolveChild:U,resolve(Q=null){const z=performance.now();if(!Q&&w)Q=w;const D={end:z,error:Q,get elapsed(){return z-K.begin}};for(let M=0;M<G.length;M++)G[M](D);Z(z),J(Q)}}}]},D2=($)=>{return(W)=>{const[X,Z]=F0(),[j,J]=F0(),[Y,G]=F0(),[K,B]=F0(),[U,w]=F0(),[F,Q]=F0(),[z,D]=F0(),[M,I]=F0(),[O,P]=F0();return $({id:W[P0],context:W,set:W.set,onRequest:X,onParse:j,onTransform:Y,onBeforeHandle:K,onHandle:U,onAfterHandle:F,onMapResponse:M,onAfterResponse:O,onError:z}),{request:Z,parse:J,transform:G,beforeHandle:B,handle:w,afterHandle:Q,error:D,mapResponse:I,afterResponse:P}}};var T3=new Headers().toJSON,P2={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},t=($)=>{if(!$)return!1;const W=$?.schema;return!!W&&P2.optional in W},J0=($)=>{if(!$)return!1;const W=$?.schema??$;if(W.anyOf)return W.anyOf.some(J0);if(W.someOf)return W.someOf.some(J0);if(W.allOf)return W.allOf.some(J0);if(W.not)return W.not.some(J0);if(W.type==="object"){const X=W.properties;if("additionalProperties"in W)return W.additionalProperties;for(let Z of Object.keys(X)){const j=X[Z];if(j.type==="object"){if(J0(j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(J0(j.anyOf[J]))return!0}return j.additionalProperties}return!1}return!1},x1=({context:$="c",trace:W,addFn:X})=>{if(!W.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let Z=0;Z<W.length;Z++)X(`let report${Z}, reportChild${Z}, reportErr${Z}, reportErrChild${Z}; let trace${Z} = ${$}[ELYSIA_TRACE]?.[${Z}] ?? trace[${Z}](${$});\n`);return(Z,{name:j,total:J=0}={})=>{if(!j)j="anonymous";const Y=Z==="error"?"reportErr":"report";for(let G=0;G<W.length;G++)X(`\n${Y}${G} = trace${G}.${Z}({id,event: '${Z}',name: '${j}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let G=0;G<W.length;G++)X(`\n${Y}${G}.resolve()\n`)},resolveChild(G){for(let K=0;K<W.length;K++)X(`${Y}Child${K} = ${Y}${K}.resolveChild?.shift()?.({id,event: '${Z}',name: '${G}',begin: performance.now()})\n`);return(K)=>{for(let B=0;B<W.length;B++)if(K)X(`
|
|
7
|
+
*/var z2=Q3,D2=Y3;var J3=Object.prototype.toString,a0=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function Q3($,W){if(typeof $!=="string")throw new TypeError("argument str must be a string");var X={},Z=W||{},j=Z.decode||G3,J=0;while(J<$.length){var Y=$.indexOf("=",J);if(Y===-1)break;var G=$.indexOf(";",J);if(G===-1)G=$.length;else if(G<Y){J=$.lastIndexOf(";",Y-1)+1;continue}var K=$.slice(J,Y).trim();if(X[K]===void 0){var B=$.slice(Y+1,G).trim();if(B.charCodeAt(0)===34)B=B.slice(1,-1);X[K]=U3(B,j)}J=G+1}return X}function Y3($,W,X){var Z=X||{},j=Z.encode||B3;if(typeof j!=="function")throw new TypeError("option encode is invalid");if(!a0.test($))throw new TypeError("argument name is invalid");var J=j(W);if(J&&!a0.test(J))throw new TypeError("argument val is invalid");var Y=$+"="+J;if(Z.maxAge!=null){var G=Z.maxAge-0;if(isNaN(G)||!isFinite(G))throw new TypeError("option maxAge is invalid");Y+="; Max-Age="+Math.floor(G)}if(Z.domain){if(!a0.test(Z.domain))throw new TypeError("option domain is invalid");Y+="; Domain="+Z.domain}if(Z.path){if(!a0.test(Z.path))throw new TypeError("option path is invalid");Y+="; Path="+Z.path}if(Z.expires){var K=Z.expires;if(!K3(K)||isNaN(K.valueOf()))throw new TypeError("option expires is invalid");Y+="; Expires="+K.toUTCString()}if(Z.httpOnly)Y+="; HttpOnly";if(Z.secure)Y+="; Secure";if(Z.partitioned)Y+="; Partitioned";if(Z.priority){var B=typeof Z.priority==="string"?Z.priority.toLowerCase():Z.priority;switch(B){case"low":Y+="; Priority=Low";break;case"medium":Y+="; Priority=Medium";break;case"high":Y+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(Z.sameSite){var U=typeof Z.sameSite==="string"?Z.sameSite.toLowerCase():Z.sameSite;switch(U){case!0:Y+="; SameSite=Strict";break;case"lax":Y+="; SameSite=Lax";break;case"strict":Y+="; SameSite=Strict";break;case"none":Y+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return Y}function G3($){return $.indexOf("%")!==-1?decodeURIComponent($):$}function B3($){return encodeURIComponent($)}function K3($){return J3.call($)==="[object Date]"||$ instanceof Date}function U3($,W){try{return W($)}catch(X){return $}}var X1=U2(o0(),1);class w0{$;W;X;constructor($,W,X={}){this.name=$;this.jar=W;this.initial=X}get cookie(){return this.jar[this.name]??this.initial}set cookie($){if(!(this.name in this.jar))this.jar[this.name]=this.initial;this.jar[this.name]=$}get setCookie(){if(!(this.name in this.jar))this.jar[this.name]=this.initial;return this.jar[this.name]}set setCookie($){this.cookie=$}get value(){return this.cookie.value}set value($){this.setCookie.value=$}get expires(){return this.cookie.expires}set expires($){this.setCookie.expires=$}get maxAge(){return this.cookie.maxAge}set maxAge($){this.setCookie.maxAge=$}get domain(){return this.cookie.domain}set domain($){this.setCookie.domain=$}get path(){return this.cookie.path}set path($){this.setCookie.path=$}get secure(){return this.cookie.secure}set secure($){this.setCookie.secure=$}get httpOnly(){return this.cookie.httpOnly}set httpOnly($){this.setCookie.httpOnly=$}get sameSite(){return this.cookie.sameSite}set sameSite($){this.setCookie.sameSite=$}get priority(){return this.cookie.priority}set priority($){this.setCookie.priority=$}get partitioned(){return this.cookie.partitioned}set partitioned($){this.setCookie.partitioned=$}get secrets(){return this.cookie.secrets}set secrets($){this.setCookie.secrets=$}update($){return this.setCookie=Object.assign(this.cookie,typeof $==="function"?$(this.cookie):$),this}set($){return this.setCookie=Object.assign({...this.initial,value:this.value},typeof $==="function"?$(this.cookie):$),this}remove(){if(this.value===void 0)return;return this.set({expires:new Date(0),maxAge:0,value:""}),this}toString(){return typeof this.value==="object"?JSON.stringify(this.value):this.value?.toString()??""}}var W1=($,W,X)=>{if(!$.cookie)$.cookie={};return new Proxy(W,{get(Z,j){if(j in W)return new w0(j,$.cookie,Object.assign({},X??{},W[j]));return new w0(j,$.cookie,Object.assign({},X))}})},e0=async($,W,{secrets:X,sign:Z,...j}={})=>{if(!W)return W1($,{},j);let J=typeof X==="string";if(Z&&Z!==!0&&!Array.isArray(Z))Z=[Z];let Y={},G=z2(W);for(let[K,B]of Object.entries(G)){let U=X1.default(B);if(Z===!0||Z?.includes(K)){if(!X)throw new Error("No secret is provided to cookie plugin");if(J){let w=await P2(U,X);if(w===!1)throw new v0(K);U=w}else{let w=!0;for(let F=0;F<X.length;F++){let Q=await P2(U,X[F]);if(Q!==!1){w=!0,U=Q;break}}if(!w)throw new v0(K)}}Y[K]={value:U}}return W1($,Y,j)};var Z1="toJSON"in new Headers,c=($)=>{if(!$)return!1;for(let W in $)return!0;return!1},u0=($,W)=>{let X=$.size;if(!W&&X||X&&W&&W.status!==206&&W.status!==304&&W.status!==412&&W.status!==416){if(W&&c(W.headers)){if(W.headers instanceof Headers){if(Z1)W.headers=W.headers.toJSON();else for(let[Z,j]of W.headers.entries())if(Z in W.headers)W.headers[Z]=j}return new Response($,{status:W.status,headers:Object.assign({"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`},W.headers)})}return new Response($,{headers:{"accept-ranges":"bytes","content-range":`bytes 0-${X-1}/${X}`,"transfer-encoding":"chunked"}})}return new Response($)},j1=($,W)=>{if(!$)return $;$.delete("set-cookie");for(let X=0;X<W.length;X++){let Z=W[X].indexOf("=");$.append("set-cookie",`${W[X].slice(0,Z)}=${W[X].slice(Z+1)||""}`)}return $},J1=($)=>{if(!$||!c($))return;let W=[];for(let[X,Z]of Object.entries($)){if(!X||!Z)continue;let j=Z.value;if(j===void 0||j===null)continue;W.push(D2(X,typeof j==="object"?JSON.stringify(j):j+"",Z))}if(W.length===0)return;if(W.length===1)return W[0];return W},B0=async($,W,X)=>{let Z=$.next();if(Z instanceof Promise)Z=await Z;if(Z.done){if(W)return x(Z.value,W,X);return Z0(Z.value,X)}return new Response(new ReadableStream({async start(j){let J=!1;if(X?.signal.addEventListener("abort",()=>{J=!0;try{j.close()}catch{}}),Z.value!==void 0&&Z.value!==null)if(typeof Z.value==="object")try{j.enqueue(Buffer.from(JSON.stringify(Z.value)))}catch{j.enqueue(Buffer.from(Z.value.toString()))}else j.enqueue(Buffer.from(Z.value.toString()));for await(let Y of $){if(J)break;if(Y===void 0||Y===null)continue;if(typeof Y==="object")try{j.enqueue(Buffer.from(JSON.stringify(Y)))}catch{j.enqueue(Buffer.from(Y.toString()))}else j.enqueue(Buffer.from(Y.toString()));await new Promise((G)=>setTimeout(()=>G(),0))}try{j.close()}catch{}}}),{...W,headers:{"transfer-encoding":"chunked","content-type":"text/event-stream; charset=utf-8",...W?.headers}})};async function*h0($){let W=$.body;if(!W)return;let X=W.getReader(),Z=new TextDecoder;try{while(!0){let{done:j,value:J}=await X.read();if(j)break;yield Z.decode(J)}}finally{X.releaseLock()}}var x=($,W,X)=>{if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){let Z=J1(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j1(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return new Response("",W);return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((j)=>x(j,W));case"Function":return x($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if(Z1)W.headers=$.headers.toJSON();else for(let[J,Y]of $.headers.entries())if(J in W.headers)W.headers[J]=Y;return $}if($ instanceof Promise)return $.then((j)=>x(j,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((j)=>x(j,W));if(typeof $?.toResponse==="function")return x($.toResponse(),W);if("charCodeAt"in $){let j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,x($.response,W,X);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Error":return K0($,W);case"Promise":return $.then((Z)=>{let j=Z0(Z,X);if(j!==void 0)return j;return new Response("")});case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($,W);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>x(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,x($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((Z)=>x(Z,W));if(typeof $?.toResponse==="function")return x($.toResponse(),W);if("charCodeAt"in $){let Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},g=($,W,X)=>{if($===void 0||$===null)return;if(c(W.headers)||W.status!==200||W.redirect||W.cookie){if(typeof W.status==="string")W.status=_0[W.status];if(W.redirect){if(W.headers.Location=W.redirect,!W.status||W.status<300||W.status>=400)W.status=302}if(W.cookie&&c(W.cookie)){let Z=J1(W.cookie);if(Z)W.headers["set-cookie"]=Z}if(W.headers["set-cookie"]&&Array.isArray(W.headers["set-cookie"]))W.headers=j1(new Headers(W.headers),W.headers["set-cookie"]);switch($?.constructor?.name){case"String":return new Response($,W);case"Blob":return u0($,W);case"Array":return Response.json($,W);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,g($.response,W,X);case"ReadableStream":if(!W.headers["content-type"]?.startsWith("text/event-stream"))W.headers["content-type"]="text/event-stream; charset=utf-8";return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,W);case void 0:if(!$)return;return Response.json($,W);case"Response":let Z=!1;if(W.headers instanceof Headers)for(let j of W.headers.keys())if(j==="set-cookie"){if(Z)continue;Z=!0;for(let J of W.headers.getSetCookie())$.headers.append("set-cookie",J)}else $.headers.append(j,W.headers?.get(j)??"");else for(let j in W.headers)$.headers.append(j,W.headers[j]);if($.status!==W.status)W.status=$.status;if($.headers.get("transfer-encoding")==="chunked")return B0(h0($),W,X);return $;case"Promise":return $.then((j)=>{let J=g(j,W);if(J!==void 0)return J});case"Error":return K0($,W);case"Function":return g($(),W);case"Number":case"Boolean":return new Response($.toString(),W);case"FormData":return new Response($);case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);default:if($ instanceof Response){let j=!1;if(W.headers instanceof Headers)for(let J of W.headers.keys())if(J==="set-cookie"){if(j)continue;j=!0;for(let Y of W.headers.getSetCookie())$.headers.append("set-cookie",Y)}else $.headers.append(J,W.headers?.get(J)??"");else for(let J in W.headers)$.headers.append(J,W.headers[J]);if($.status!==W.status)W.status=$.status;return $}if($ instanceof Promise)return $.then((j)=>g(j,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,g($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((j)=>g(j,W));if(typeof $?.toResponse==="function")return g($.toResponse(),W);if("charCodeAt"in $){let j=$.charCodeAt(0);if(j===123||j===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($,W)}}else switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($,W);case"Array":return Response.json($);case"Object":return Response.json($,W);case"ElysiaCustomStatusResponse":return W.status=$.code,g($.response,W,X);case"ReadableStream":return X?.signal.addEventListener("abort",{handleEvent(){if(!X?.signal.aborted)$.cancel(X)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Promise":return $.then((Z)=>{let j=g(Z,W);if(j!==void 0)return j});case"Error":return K0($,W);case"Function":return Z0($(),X);case"Number":case"Boolean":return new Response($.toString());case"Cookie":if($ instanceof w0)return new Response($.value,W);return new Response($?.toString(),W);case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((Z)=>g(Z,W));if($ instanceof Error)return K0($,W);if($ instanceof l)return W.status=$.code,g($.response,W,X);if(typeof $?.next==="function")return B0($,W,X);if(typeof $?.then==="function")return $.then((Z)=>g(Z,W));if(typeof $?.toResponse==="function")return g($.toResponse(),W);if("charCodeAt"in $){let Z=$.charCodeAt(0);if(Z===123||Z===91){if(!W.headers["Content-Type"])W.headers["Content-Type"]="application/json";return new Response(JSON.stringify($),W)}}return new Response($)}},Z0=($,W)=>{switch($?.constructor?.name){case"String":return new Response($);case"Blob":return u0($);case"Array":return Response.json($);case"Object":return Response.json($);case"ElysiaCustomStatusResponse":return x($.response,{status:$.code,headers:{}});case"ReadableStream":return W?.signal.addEventListener("abort",{handleEvent(){if(!W?.signal.aborted)$.cancel(W)}},{once:!0}),new Response($,{headers:{"Content-Type":"text/event-stream; charset=utf-8"}});case void 0:if(!$)return new Response("");return new Response(JSON.stringify($),{headers:{"content-type":"application/json"}});case"Response":if($.headers.get("transfer-encoding")==="chunked")return B0(h0($));return $;case"Error":return K0($);case"Promise":return $.then((X)=>Z0(X,W));case"Function":return Z0($(),W);case"Number":case"Boolean":return new Response($.toString());case"FormData":return new Response($);default:if($ instanceof Response)return $;if($ instanceof Promise)return $.then((X)=>Z0(X,W));if($ instanceof Error)return K0($);if($ instanceof l)return x($.response,{status:$.code,headers:{}});if(typeof $?.next==="function")return B0($,void 0,W);if(typeof $?.then==="function")return $.then((X)=>x(X,set));if(typeof $?.toResponse==="function")return Z0($.toResponse());if("charCodeAt"in $){let X=$.charCodeAt(0);if(X===123||X===91)return new Response(JSON.stringify($),{headers:{"Content-Type":"application/json"}})}return new Response($)}},K0=($,W)=>new Response(JSON.stringify({name:$?.name,message:$?.message,cause:$?.cause}),{status:W?.status!==200?W?.status??500:500,headers:W?.headers}),Q1=($,W,X={})=>{if(typeof $==="function")return;let Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0)return Z.clone.bind(Z)},Y1=($,W,X={})=>{if(typeof $==="function"||$ instanceof Blob)return;let Z=x($,{headers:X});if(W.parse.length===0&&W.transform.length===0&&W.beforeHandle.length===0&&W.afterHandle.length===0){if(!Z.headers.has("content-type"))Z.headers.append("content-type","text/plain;charset=utf-8");return Z.clone.bind(Z)}};var R0=($,W)=>{let X=new URL($);return X.pathname=W,X.toString()},M3=($)=>typeof $==="function"&&/^\s*class\s+/.test($.toString())||$.toString().startsWith("[object ")&&$.toString()!=="[object Object]"||c(Object.getPrototypeOf($)),I2=($)=>$&&typeof $==="object"&&!Array.isArray($),d=($,W,{skipKeys:X,override:Z=!0}={})=>{if(!I2($)||!I2(W))return $;for(let[j,J]of Object.entries(W)){if(X?.includes(j))continue;if(!I2(J)||!(j in $)||M3(J)){if(Z||!(j in $))$[j]=J;continue}$[j]=d($[j],J,{skipKeys:X,override:Z})}return $},z3=($,W)=>{let{properties:X,...Z}=$??{},{properties:j,...J}=W??{};return d(Z,J)},y=($=[],W=[])=>{if(!$)return[];if(!W)return $;let X=[],Z=[];if(!Array.isArray($))$=[$];if(!Array.isArray(W))W=[W];for(let j of $)if(X.push(j),j.checksum)Z.push(j.checksum);for(let j of W)if(!Z.includes(j.checksum))X.push(j);return X},D3=["start","request","parse","transform","resolve","beforeHandle","afterHandle","mapResponse","afterResponse","trace","error","stop","body","headers","params","query","response","type","detail"],N3=D3.reduce(($,W)=>($[W]=!0,$),{}),U1=($,W)=>{let X=(Z)=>typeof Z==="object"&&Object.keys(Z).every(Z2);if(X($)&&X(W))return{...$,...W};else if($&&!X($)&&X(W))return{200:$,...W};return W??$},b0=($,W)=>{return{body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U1($?.response,W?.response)}},i=($,W)=>{return{...$,...W,body:W?.body??$?.body,headers:W?.headers??$?.headers,params:W?.params??$?.params,query:W?.query??$?.query,cookie:W?.cookie??$?.cookie,response:U1($?.response,W?.response),type:$?.type||W?.type,detail:d(W?.detail??{},$?.detail??{}),parse:y($?.parse,W?.parse),transform:y($?.transform,W?.transform),beforeHandle:y($?.beforeHandle,W?.beforeHandle),afterHandle:y($?.afterHandle,W?.afterHandle),mapResponse:y($?.mapResponse,W?.mapResponse),afterResponse:y($?.afterResponse,W?.afterResponse),trace:y($?.trace,W?.trace),error:y($?.error,W?.error)}},V2=($,W,X=!0)=>{if(!Array.isArray(W))return h($,W,X);for(let Z of W)$=h($,Z,X);return $},h=($,W,X=!0)=>{if(!$)return $;if(W.untilObjectFound&&!X&&$.type==="object")return $;let Z=W.from[H0];if($.oneOf){for(let Y=0;Y<$.oneOf.length;Y++)$.oneOf[Y]=h($.oneOf[Y],W,X);return $}if($.anyOf){for(let Y=0;Y<$.anyOf.length;Y++)$.anyOf[Y]=h($.anyOf[Y],W,X);return $}if($.allOf){for(let Y=0;Y<$.allOf.length;Y++)$.allOf[Y]=h($.allOf[Y],W,X);return $}if($.not){for(let Y=0;Y<$.not.length;Y++)$.not[Y]=h($.not[Y],W,X);return $}let j=X&&!!W.excludeRoot;if($[H0]===Z){let{anyOf:Y,oneOf:G,allOf:K,not:B,properties:U,items:w,...F}=$,Q=W.to(F),z,D=(M)=>{if(U&&M.type==="object"){let O={};for(let[P,b]of Object.entries(U))O[P]=h(b,W,!1);return{...F,...M,properties:O}}if(w&&M.type==="array")return{...F,...M,items:h(w,W,!1)};let I={...F,...M};if(delete I.required,U&&M.type==="string"&&M.format==="ObjectString"&&M.default==="{}")z=V.ObjectString(U,F),I.default=JSON.stringify(p.Create(V.Object(U))),I.properties=U;if(w&&M.type==="string"&&M.format==="ArrayString"&&M.default==="[]")z=V.ArrayString(w,F),I.default=JSON.stringify(p.Create(V.Array(w))),I.items=w;return I};if(j){if(U){let M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,properties:M}}else if(w?.map)return{...F,items:w.map((M)=>h(M,W,!1))};return F}if(Q.anyOf)for(let M=0;M<Q.anyOf.length;M++)Q.anyOf[M]=D(Q.anyOf[M]);else if(Q.oneOf)for(let M=0;M<Q.oneOf.length;M++)Q.oneOf[M]=D(Q.oneOf[M]);else if(Q.allOf)for(let M=0;M<Q.allOf.length;M++)Q.allOf[M]=D(Q.allOf[M]);else if(Q.not)for(let M=0;M<Q.not.length;M++)Q.not[M]=D(Q.not[M]);if(z)Q[G1]=z[G1];if(Q.anyOf||Q.oneOf||Q.allOf||Q.not)return Q;if(U){let M={};for(let[I,O]of Object.entries(U))M[I]=h(O,W,!1);return{...F,...Q,properties:M}}else if(w?.map)return{...F,...Q,items:w.map((M)=>h(M,W,!1))};return{...F,...Q}}let J=$?.properties;if(J&&X&&W.rootOnly!==!0)for(let[Y,G]of Object.entries(J))switch(G[H0]){case Z:let{anyOf:K,oneOf:B,allOf:U,not:w,type:F,...Q}=G,z=W.to(Q);if(z.anyOf)for(let D=0;D<z.anyOf.length;D++)z.anyOf[D]={...Q,...z.anyOf[D]};else if(z.oneOf)for(let D=0;D<z.oneOf.length;D++)z.oneOf[D]={...Q,...z.oneOf[D]};else if(z.allOf)for(let D=0;D<z.allOf.length;D++)z.allOf[D]={...Q,...z.allOf[D]};else if(z.not)for(let D=0;D<z.not.length;D++)z.not[D]={...Q,...z.not[D]};J[Y]={...Q,...h(Q,W,!1)};break;case"Object":case"Union":J[Y]=h(G,W,!1);break;default:if(G.items)for(let D=0;D<G.items.length;D++)G.items[D]=h(G.items[D],W,!1);else if(G.anyOf||G.oneOf||G.allOf||G.not)J[Y]=h(G,W,!1);break}return $},m=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1,coerce:J=!1,additionalCoerce:Y=[]}={})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;let G=typeof $==="string"?W[$]:$;if(J||Y)if(J)G=V2(G,[{from:V.Number(),to:(U)=>V.Numeric(U),untilObjectFound:!0},{from:V.Boolean(),to:(U)=>V.BooleanString(U),untilObjectFound:!0},...Array.isArray(Y)?Y:[Y]]);else G=V2(G,[...Array.isArray(Y)?Y:[Y]]);if(G.type==="object"&&"additionalProperties"in G===!1)G.additionalProperties=j;let K=(U)=>p.Clean(G,U);if(X){let U={schema:G,references:"",checkFunc:()=>{},code:"",Check:(w)=>p.Check(G,w),Errors:(w)=>p.Errors(G,w),Code:()=>"",Clean:K,Decode:(w)=>p.Decode(G,w),Encode:(w)=>p.Encode(G,w)};if(Z&&G.additionalProperties===!1)U.Clean=K;if(G.config){if(U.config=G.config,U?.schema?.config)delete U.schema.config}return U.parse=(w)=>{try{return U.Decode(w)}catch(F){throw[...U.Errors(w)].map(o)}},U.safeParse=(w)=>{try{return{success:!0,data:U.Decode(w),error:null}}catch(F){let Q=[...B.Errors(w)].map(o);return{success:!1,data:null,error:Q[0]?.summary,errors:Q}}},U}let B=K1.Compile(G,Object.values(W));if(B.Clean=K,G.config){if(B.config=G.config,B?.schema?.config)delete B.schema.config}return B.parse=(U)=>{try{return B.Decode(U)}catch(w){throw[...B.Errors(U)].map(o)}},B.safeParse=(U)=>{try{return{success:!0,data:B.Decode(U),error:null}}catch(w){let F=[...B.Errors(U)].map(o);return{success:!1,data:null,error:F[0]?.summary,errors:F}}},B},$2=($,{models:W={},dynamic:X=!1,normalize:Z=!1,additionalProperties:j=!1})=>{if(!$)return;if(typeof $==="string"&&!($ in W))return;let J=typeof $==="string"?W[$]:$,Y=(K,B)=>{let U=(F)=>{if(!F||typeof F!=="object")return p.Clean(K,F);if(Array.isArray(F))F=p.Clean(K,F);else F=p.Clean(K,F);return F};if(X)return{schema:K,references:"",checkFunc:()=>{},code:"",Check:(F)=>p.Check(K,F),Errors:(F)=>p.Errors(K,F),Code:()=>"",Decode:(F)=>p.Decode(K,F),Encode:(F)=>p.Encode(K,F)};let w=K1.Compile(K,B);if(Z&&K.additionalProperties===!1)w.Clean=U;return w};if(H0 in J){if("additionalProperties"in J===!1)J.additionalProperties=j;return{200:Y(J,Object.values(W))}}let G={};return Object.keys(J).forEach((K)=>{let B=J[+K];if(typeof B==="string"){if(B in W){let U=W[B];U.type==="object"&&"additionalProperties"in U,G[+K]=H0 in U?Y(U,Object.values(W)):U}return}if(B.type==="object"&&"additionalProperties"in B===!1)B.additionalProperties=j;G[+K]=H0 in B?Y(B,Object.values(W)):B}),G},P3=typeof Bun!=="undefined",I3=P3&&typeof Bun.hash==="function",N0=($)=>{if(I3)return Bun.hash($);let W=9;for(let X=0;X<$.length;)W=Math.imul(W^$.charCodeAt(X++),387420489);return W=W^W>>>9},A2,D0=()=>{if(!A2)A2=[{from:V.Object({}),to:()=>V.ObjectString({}),excludeRoot:!0},{from:V.Array(V.Any()),to:()=>V.ArrayString(V.Any())}];return A2},O2,S2=()=>{if(!O2)O2=[{from:V.Number(),to:($)=>V.Numeric($),rootOnly:!0},{from:V.Boolean(),to:($)=>V.BooleanString($),rootOnly:!0}];return O2},W2=({validator:$,defaultConfig:W={},config:X,dynamic:Z,models:j})=>{let J=m($,{dynamic:Z,models:j,additionalProperties:!0,coerce:!0,additionalCoerce:D0()});if(c(W))if(J)J.config=z3(J.config,X);else J=m(V.Cookie({}),{dynamic:Z,models:j,additionalProperties:!0}),J.config=W;return J},j0=($,W)=>{if(!W)return;if(!Array.isArray(W)){let Z=W;if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local";return Z}let X=[...W];for(let Z of X){if($&&!Z.checksum)Z.checksum=$;if(Z.scope==="scoped")Z.scope="local"}return X},C2=($,W,X)=>{return{start:y($.start,j0(X,W?.start)),request:y($.request,j0(X,W?.request)),parse:y($.parse,j0(X,W?.parse)),transform:y($.transform,j0(X,W?.transform)),beforeHandle:y($.beforeHandle,j0(X,W?.beforeHandle)),afterHandle:y($.afterHandle,j0(X,W?.afterHandle)),mapResponse:y($.mapResponse,j0(X,W?.mapResponse)),afterResponse:y($.afterResponse,j0(X,W?.afterResponse)),trace:y($.trace,j0(X,W?.trace)),error:y($.error,j0(X,W?.error)),stop:y($.stop,j0(X,W?.stop))}},w1=($,W,{skipIfHasType:X=!1}={})=>{if(!$)return $;if(!Array.isArray($)){if(X)$.scope??=W;else $.scope=W;return $}for(let Z of $)if(X)Z.scope??=W;else Z.scope=W;return $},z0=($)=>{if(!$)return $;if(!Array.isArray($))switch($.scope){case"global":case"scoped":return{...$};default:return{fn:$}}let W=[];for(let X of $)switch(X.scope){case"global":case"scoped":W.push({...X});break}return W},L2=($)=>{return{...$,type:$?.type,detail:$?.detail,parse:z0($?.parse),transform:z0($?.transform),beforeHandle:z0($?.beforeHandle),afterHandle:z0($?.afterHandle),mapResponse:z0($?.mapResponse),afterResponse:z0($?.afterResponse),error:z0($?.error),trace:z0($?.trace)}},_0={Continue:100,"Switching Protocols":101,Processing:102,"Early Hints":103,OK:200,Created:201,Accepted:202,"Non-Authoritative Information":203,"No Content":204,"Reset Content":205,"Partial Content":206,"Multi-Status":207,"Already Reported":208,"Multiple Choices":300,"Moved Permanently":301,Found:302,"See Other":303,"Not Modified":304,"Temporary Redirect":307,"Permanent Redirect":308,"Bad Request":400,Unauthorized:401,"Payment Required":402,Forbidden:403,"Not Found":404,"Method Not Allowed":405,"Not Acceptable":406,"Proxy Authentication Required":407,"Request Timeout":408,Conflict:409,Gone:410,"Length Required":411,"Precondition Failed":412,"Payload Too Large":413,"URI Too Long":414,"Unsupported Media Type":415,"Range Not Satisfiable":416,"Expectation Failed":417,"I'm a teapot":418,"Misdirected Request":421,"Unprocessable Content":422,Locked:423,"Failed Dependency":424,"Too Early":425,"Upgrade Required":426,"Precondition Required":428,"Too Many Requests":429,"Request Header Fields Too Large":431,"Unavailable For Legal Reasons":451,"Internal Server Error":500,"Not Implemented":501,"Bad Gateway":502,"Service Unavailable":503,"Gateway Timeout":504,"HTTP Version Not Supported":505,"Variant Also Negotiates":506,"Insufficient Storage":507,"Loop Detected":508,"Not Extended":510,"Network Authentication Required":511},X2=Object.fromEntries(Object.entries(_0).map(([$,W])=>[W,$]));function A3($){let W=$;while(W.endsWith("="))W=W.slice(0,-1);return W}var B1=new TextEncoder,x0=async($,W)=>{if(typeof $!=="string")throw new TypeError("Cookie value must be provided as a string.");if(W===null)throw new TypeError("Secret key must be provided.");let X=await crypto.subtle.importKey("raw",B1.encode(W),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),Z=await crypto.subtle.sign("HMAC",X,B1.encode($));return $+"."+A3(Buffer.from(Z).toString("base64"))},P2=async($,W)=>{if(typeof $!=="string")throw new TypeError("Signed cookie string must be provided.");if(W===null)throw new TypeError("Secret key must be provided.");let X=$.slice(0,$.lastIndexOf("."));return await x0(X,W)===$?X:!1},_1=($,W)=>{if(!$||typeof $!=="object"||!W)return;for(let[X,Z]of Object.entries(W)){if(X in N3||!(X in $))continue;let j=$[X];if(typeof j==="function")j(Z),delete W[X]}},F1=({globalHook:$,localHook:W})=>(X)=>(Z,j)=>{if(typeof Z==="function")Z={fn:Z};if("fn"in Z||Array.isArray(Z)){if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(Array.isArray(Z))W[X]=W[X].concat(Z);else W[X].push(Z);return}let{insert:J="after",stack:Y="local"}=Z;if(typeof j==="function")j={fn:j};if(Y==="global")if(!Array.isArray(j))if(J==="before")$[X].unshift(j);else $[X].push(j);else if(J==="before")$[X]=j.concat($[X]);else $[X]=$[X].concat(j);else{if(!W[X])W[X]=[];if(typeof W[X]==="function")W[X]=[W[X]];if(!Array.isArray(j))if(J==="before")W[X].unshift(j);else W[X].push(j);else if(J==="before")W[X]=j.concat(W[X]);else W[X]=W[X].concat(j)}},O3=($)=>{if(typeof $==="number")return $;if($.length<16){if($.trim().length===0)return null;let W=Number($);if(Number.isNaN(W))return null;return W}if($.length===16){if($.trim().length===0)return null;let W=Number($);if(Number.isNaN(W)||W.toString()!==$)return null;return W}return null},Z2=($)=>O3($)!==null;class T2{$;root=null;promises=[];constructor($=console.error){this.onError=$}get size(){return this.promises.length}add($){return this.promises.push($),this.root||=this.drain(),$}async drain(){while(this.promises.length>0){try{await this.promises[0]}catch($){this.onError($)}this.promises.shift()}this.root=null}then($,W){return(this.root??Promise.resolve()).then($,W)}}var n=($)=>{if(!$)return $;if(!Array.isArray($)){if(typeof $==="function")return{fn:$};else if("fn"in $)return $}let W=[];for(let X of $)if(typeof X==="function")W.push({fn:X});else if("fn"in X)W.push(X);return W},M1=($)=>{return{...$,start:n($?.start),request:n($?.request),parse:n($?.parse),transform:n($?.transform),beforeHandle:n($?.beforeHandle),afterHandle:n($?.afterHandle),mapResponse:n($?.mapResponse),afterResponse:n($?.afterResponse),trace:n($?.trace),error:n($?.error),stop:n($?.stop)}},E2=($)=>{return{...$,start:$.start?.map((W)=>W.fn),request:$.request?.map((W)=>W.fn),parse:$.parse?.map((W)=>W.fn),transform:$.transform?.map((W)=>W.fn),beforeHandle:$.beforeHandle?.map((W)=>W.fn),afterHandle:$.afterHandle?.map((W)=>W.fn),afterResponse:$.afterResponse?.map((W)=>W.fn),mapResponse:$.mapResponse?.map((W)=>W.fn),trace:$.trace?.map((W)=>W.fn),error:$.error?.map((W)=>W.fn),stop:$.stop?.map((W)=>W.fn)}},m0=($)=>({body:$.body,cookie:$.cookie,headers:$.headers,query:$.query,set:$.set,server:$.server}),d0=($,W=302)=>Response.redirect($,W),V3=Symbol("ElysiaFormData"),P0=Symbol("ElysiaRequestId"),S3=($)=>{let W=new FormData;for(let[X,Z]of Object.entries($)){if(Array.isArray(Z)){for(let j of Z){if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,j)}continue}if(Z instanceof File)W.append(X,Z,Z.name);W.append(X,Z)}return W},j2=()=>crypto.getRandomValues(new Uint32Array(1))[0],J2=($)=>{let W=[];for(let X=0;X<$.length;X++){let Z=$[X];if(Z.checksum){if(W.includes(Z.checksum))$.splice(X,1),X--;W.push(Z.checksum)}}return $},v=($,W="scoped")=>{if(W==="scoped"){for(let X of $)if("scope"in X&&X.scope==="local")X.scope="scoped";return}for(let X of $)if("scope"in X)X.scope="global"};var z1=typeof Bun!=="undefined"?Bun.env:typeof process!=="undefined"?process?.env:void 0,I0=Symbol("ElysiaErrorCode"),l0=(z1?.NODE_ENV??z1?.ENV)==="production";class l{code;response;constructor($,W){let X=W??($ in X2?X2[$]:$);this.code=_0[$]??$,this.response=X}}var q2=($,W)=>new l($,W);class Q2 extends Error{code="INTERNAL_SERVER_ERROR";status=500;constructor($){super($??"INTERNAL_SERVER_ERROR")}}class A0 extends Error{code="NOT_FOUND";status=404;constructor($){super($??"NOT_FOUND")}}class Y2 extends Error{code="PARSE";status=400;constructor(){super("Failed to parse body")}}class v0 extends Error{$;code="INVALID_COOKIE_SIGNATURE";status=400;constructor($,W){super(W??`"${$}" has invalid cookie signature`);this.key=$}}var o=($)=>{if(!$)return{summary:void 0};let{message:W,path:X,value:Z,type:j}=$,J=X.slice(1).replaceAll("/","."),Y=X==="";switch(j){case 42:return{...$,summary:Y?"Value should not be provided":`Property '${J}' should not be provided`};case 45:return{...$,summary:Y?"Value is missing":`Property '${J}' is missing`};case 50:let G=W.indexOf("'"),K=W.slice(G+1,W.indexOf("'",G+1));return{...$,summary:Y?"Value should be an email":`Property '${J}' should be ${K}`};case 54:return{...$,summary:`${W.slice(0,9)} property '${J}' to be ${W.slice(8)} but found: ${Z}`};case 62:let B=$.schema.anyOf.map((U)=>`'${U?.format??U.type}'`).join(", ");return{...$,summary:Y?`Value should be one of ${B}`:`Property '${J}' should be one of: ${B}`};default:return{summary:W,...$}}};class q extends Error{$;W;X;code="VALIDATION";status=422;constructor($,W,X){if(X&&typeof X==="object"&&X instanceof l)X=X.response;let Z=l0?void 0:("Errors"in W)?W.Errors(X).First():c0.Errors(W,X).First(),j=Z?.schema.error!==void 0?typeof Z.schema.error==="function"?Z.schema.error({type:$,validator:W,value:X,get errors(){return[...W.Errors(X)].map(o)}}):Z.schema.error:void 0,J=Z?.path||"root",Y="";if(j!==void 0)Y=typeof j==="object"?JSON.stringify(j):j+"";else if(l0)Y=JSON.stringify({type:"validation",on:$,summary:o(Z).summary,message:Z?.message,found:X});else{let G=W?.schema??W,K="Errors"in W?[...W.Errors(X)].map(o):[...c0.Errors(W,X)].map(o),B;try{B=c0.Create(G)}catch(U){B={type:"Could not create expected value",message:U?.message,error:U}}Y=JSON.stringify({type:"validation",on:$,summary:K[0]?.summary,property:J,message:Z?.message,expected:B,found:X,errors:K},null,2)}super(Y);this.type=$;this.validator=W;this.value=X;Object.setPrototypeOf(this,q.prototype)}get all(){return"Errors"in this.validator?[...this.validator.Errors(this.value)].map(o):[...c0.Errors(this.validator,this.value)].map(o)}static simplifyModel($){let W="schema"in $?$.schema:$;try{return c0.Create(W)}catch{return W}}get model(){return q.simplifyModel(this.validator)}toResponse($){return new Response(this.message,{status:400,headers:{...$,"content-type":"application/json"}})}}var H2={open($){$.data.open?.($)},message($,W){$.data.message?.($,W)},drain($){$.data.drain?.($)},close($,W,X){$.data.close?.($,W,X)}};class g0{$;W;validator;_validator;constructor($,W){this.raw=$;this.data=W;if(this.validator=$.data.validator,$.data.id)this.id=$.data.id;else this.id=j2().toString()}get id(){return this.raw.data.id}set id($){this.raw.data.id=$}get publish(){return($,W=void 0,X)=>{if(this.validator?.Check(W)===!1)throw new q("message",this.validator,W);if(typeof W==="object")W=JSON.stringify(W);return this.raw.publish($,W,X),this}}get send(){return($)=>{if(this.validator?.Check($)===!1)throw new q("message",this.validator,$);if(Buffer.isBuffer($))return this.raw.send($),this;if(typeof $==="object")$=JSON.stringify($);return this.raw.send($),this}}get subscribe(){return($)=>{return this.raw.subscribe($),this}}get unsubscribe(){return($)=>{return this.raw.unsubscribe($),this}}get cork(){return($)=>{return this.raw.cork($),this}}get close(){return()=>{return this.raw.close(),this}}get terminate(){return this.raw.terminate.bind(this.raw)}get isSubscribed(){return this.raw.isSubscribed.bind(this.raw)}get remoteAddress(){return this.raw.remoteAddress}}var R2="1.1.23";import{Value as n0}from"@sinclair/typebox/value";import{TypeBoxError as L3}from"@sinclair/typebox";var O0=U2(o0(),1),f0=/\+/g;function G2($){let W={};if(typeof $!=="string")return W;let X="",Z="",j=-1,J=-1,Y=0,G=$.length;for(let K=0;K<G;K++)switch($.charCodeAt(K)){case 38:let B=J>j;if(!B)J=K;if(X=$.slice(j+1,J),B||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(B){if(Z=$.slice(J+1,K),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}X="",Z="",j=K,J=K,Y=0;break;case 61:if(J<=j)J=K;else Y|=8;break;case 43:if(J>j)Y|=4;else Y|=1;break;case 37:if(J>j)Y|=8;else Y|=2;break}if(j<G){let K=J>j;if(X=$.slice(j+1,K?J:G),K||X.length>0){if(Y&1)X=X.replace(f0," ");if(Y&2)X=O0.default(X)||X;if(!W[X]){if(K){if(Z=$.slice(J+1,G),Y&4)Z=Z.replace(f0," ");if(Y&8)Z=O0.default(Z)||Z}W[X]=Z}}}return W}var p0=($)=>{let W={};if(typeof $!=="string")return W;let X=$.length,Z="",j="",J=-1,Y=-1,G=!1,K=!1,B=!1,U=!1,w=!1,F=0;for(let Q=0;Q<X+1;Q++){if(Q!==X)F=$.charCodeAt(Q);else F=38;switch(F){case 38:{if(w=Y>J,!w)Y=Q;if(Z=$.slice(J+1,Y),w||Z.length>0){if(B)Z=Z.replace(f0," ");if(G)Z=O0.default(Z)||Z;if(w){if(j=$.slice(Y+1,Q),U)j=j.replace(f0," ");if(K)j=O0.default(j)||j}let z=W[Z];if(z===void 0)W[Z]=j;else if(z.pop)z.push(j);else W[Z]=[z,j]}j="",J=Q,Y=Q,G=!1,K=!1,B=!1,U=!1;break}case 61:if(Y<=J)Y=Q;else K=!0;break;case 43:if(Y>J)U=!0;else B=!0;break;case 37:if(Y>J)K=!0;else G=!0;break}}return W};var N1=U2(o0(),1);var i0=Symbol("ElysiaTrace"),F0=()=>{let{promise:$,resolve:W}=Promise.withResolvers(),{promise:X,resolve:Z}=Promise.withResolvers(),{promise:j,resolve:J}=Promise.withResolvers(),Y=[],G=[];return[(K)=>{if(K)Y.push(K);return $},(K)=>{let B=[],U=[],w=null;for(let Q=0;Q<(K.total??0);Q++){let{promise:z,resolve:D}=Promise.withResolvers(),{promise:M,resolve:I}=Promise.withResolvers(),{promise:O,resolve:P}=Promise.withResolvers(),b=[],T=[];B.push((E)=>{if(E)b.push(E);return z}),U.push((E)=>{let r={...E,end:M,error:O,index:Q,onStop(L){if(L)T.push(L);return M}};D(r);for(let L=0;L<b.length;L++)b[L](r);return(L=null)=>{let f=performance.now();if(L)w=L;let R={end:f,error:L,get elapsed(){return f-E.begin}};for(let Y0=0;Y0<T.length;Y0++)T[Y0](R);I(f),P(L)}})}let F={...K,end:X,error:j,onEvent(Q){for(let z=0;z<B.length;z++)B[z](Q)},onStop(Q){if(Q)G.push(Q);return X}};W(F);for(let Q=0;Q<Y.length;Q++)Y[Q](F);return{resolveChild:U,resolve(Q=null){let z=performance.now();if(!Q&&w)Q=w;let D={end:z,error:Q,get elapsed(){return z-K.begin}};for(let M=0;M<G.length;M++)G[M](D);Z(z),J(Q)}}}]},D1=($)=>{return(W)=>{let[X,Z]=F0(),[j,J]=F0(),[Y,G]=F0(),[K,B]=F0(),[U,w]=F0(),[F,Q]=F0(),[z,D]=F0(),[M,I]=F0(),[O,P]=F0();return $({id:W[P0],context:W,set:W.set,onRequest:X,onParse:j,onTransform:Y,onBeforeHandle:K,onHandle:U,onAfterHandle:F,onMapResponse:M,onAfterResponse:O,onError:z}),{request:Z,parse:J,transform:G,beforeHandle:B,handle:w,afterHandle:Q,error:D,mapResponse:I,afterResponse:P}}};var T3=new Headers().toJSON,P1={optional:Symbol.for("TypeBox.Optional"),kind:Symbol.for("TypeBox.Kind")},t=($)=>{if(!$)return!1;let W=$?.schema;return!!W&&P1.optional in W},J0=($)=>{if(!$)return!1;let W=$?.schema??$;if(W.anyOf)return W.anyOf.some(J0);if(W.someOf)return W.someOf.some(J0);if(W.allOf)return W.allOf.some(J0);if(W.not)return W.not.some(J0);if(W.type==="object"){let X=W.properties;if("additionalProperties"in W)return W.additionalProperties;for(let Z of Object.keys(X)){let j=X[Z];if(j.type==="object"){if(J0(j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(J0(j.anyOf[J]))return!0}return j.additionalProperties}return!1}return!1},x2=({context:$="c",trace:W,addFn:X})=>{if(!W.length)return()=>{return{resolveChild(){return()=>{}},resolve(){}}};for(let Z=0;Z<W.length;Z++)X(`let report${Z}, reportChild${Z}, reportErr${Z}, reportErrChild${Z}; let trace${Z} = ${$}[ELYSIA_TRACE]?.[${Z}] ?? trace[${Z}](${$});\n`);return(Z,{name:j,total:J=0}={})=>{if(!j)j="anonymous";let Y=Z==="error"?"reportErr":"report";for(let G=0;G<W.length;G++)X(`\n${Y}${G} = trace${G}.${Z}({id,event: '${Z}',name: '${j}',begin: performance.now(),total: ${J}})\n`);return{resolve(){for(let G=0;G<W.length;G++)X(`\n${Y}${G}.resolve()\n`)},resolveChild(G){for(let K=0;K<W.length;K++)X(`${Y}Child${K} = ${Y}${K}.resolveChild?.shift()?.({id,event: '${Z}',name: '${G}',begin: performance.now()})\n`);return(K)=>{for(let B=0;B<W.length;B++)if(K)X(`
|
|
8
8
|
if (${K} instanceof Error)
|
|
9
9
|
${Y}Child${B}?.(${K})
|
|
10
10
|
else
|
|
@@ -23,15 +23,15 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
23
23
|
c.set.status = ${J}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
break\n\n`}return j+="\n}\n",j}}),n8=Symbol.for("TypeBox.Kind");var V0=($,W)=>{if(!W)return;if(W.type==="object"){
|
|
26
|
+
break\n\n`}return j+="\n}\n",j}}),n8=Symbol.for("TypeBox.Kind");var V0=($,W)=>{if(!W)return;if(W.type==="object"){let X=W.properties;if(!X)return!1;for(let Z of Object.keys(X)){let j=X[Z];if($ in j)return!0;if(j.type==="object"){if(V0($,j))return!0}else if(j.anyOf){for(let J=0;J<j.anyOf.length;J++)if(V0($,j.anyOf[J]))return!0}}return!1}return $ in W},b2=Symbol.for("TypeBox.Transform"),S0=($)=>{if(!$)return;if($.type==="object"&&$.properties){let W=$.properties;for(let X of Object.keys(W)){let Z=W[X];if(Z.type==="object"){if(S0(Z))return!0}else if(Z.anyOf){for(let J=0;J<Z.anyOf.length;J++)if(S0(Z.anyOf[J]))return!0}if(b2 in Z)return!0}return!1}return b2 in $||$.properties&&b2 in $.properties},q3=/(?:return|=>) \S+\(/g,C0=($)=>{return($?.fn??$).constructor.name==="AsyncFunction"},k=($)=>{let W=$?.fn??$;if(W.constructor.name==="AsyncFunction")return!0;let X=W.toString();if(X.includes("=> response.clone("))return!1;if(X.includes("await"))return!0;if(X.includes("async"))return!0;return!!X.match(q3)},B2=($)=>{let W=$?.fn??$;return W.constructor.name==="AsyncGeneratorFunction"||W.constructor.name==="GeneratorFunction"},I1=({app:$,path:W,method:X,localHook:Z,hooks:j,validator:J,handler:Y,allowMeta:G=!1,inference:K})=>{let B=typeof Y==="function";if(!B){if(Y=x(Y,{headers:$.setHeaders??{}}),j.parse.length===0&&j.transform.length===0&&j.beforeHandle.length===0&&j.afterHandle.length===0)return Function("a","return function () { return a.clone() }")(Y)}let U=B?"handler(c)":"handler",w=j.afterResponse.length>0,F=j.trace.length>0,Q="";if(K=r0(Object.assign(Z,{handler:Y}),K),K.server)Q+=`\nObject.defineProperty(c, 'server', {
|
|
27
27
|
get: function() { return getServer() }
|
|
28
|
-
})\n`;if(K.body)Q+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();
|
|
28
|
+
})\n`;if(K.body)Q+="let isParsing = false\n";J.createBody?.(),J.createQuery?.(),J.createHeaders?.(),J.createParams?.(),J.createCookie?.(),J.createResponse?.();let z=K.query||!!J.query,D=X!=="$INTERNALWS"&&X!=="GET"&&X!=="HEAD"&&(K.body||!!J.body||j.parse.length),M=$.setHeaders,I=M&&!!Object.keys(M).length,O=K.headers||J.headers,P=K.cookie||!!J.cookie,b=P?W2({validator:J.cookie,defaultConfig:$.config.cookie,dynamic:!!$.config.aot,config:J.cookie?.config??{},models:$.definitions.type}):void 0,T=b?.config,E="";if(T?.sign){if(!T.secrets)throw new Error(`t.Cookie required secret which is not set in (${X}) ${W}.`);let N=!T.secrets?void 0:typeof T.secrets==="string"?T.secrets:T.secrets[0];if(E+=`const _setCookie = c.set.cookie
|
|
29
29
|
if(_setCookie) {`,T.sign===!0)E+=`for(const [key, cookie] of Object.entries(_setCookie)) {
|
|
30
30
|
c.set.cookie[key].value = await signCookie(cookie.value, '${N}')
|
|
31
|
-
}`;else for(let _ of T.sign)E+=`if(_setCookie['${_}']?.value) { c.set.cookie['${_}'].value = await signCookie(_setCookie['${_}'].value, '${N}') }\n`;E+="}\n"}
|
|
31
|
+
}`;else for(let _ of T.sign)E+=`if(_setCookie['${_}']?.value) { c.set.cookie['${_}'].value = await signCookie(_setCookie['${_}'].value, '${N}') }\n`;E+="}\n"}let r=$.config.normalize,{composeValidation:L,composeResponseValidation:f}=E3({normalize:r,validator:J});if(O)Q+=T3?"c.headers = c.request.headers.toJSON()\n":`c.headers = {}
|
|
32
32
|
for (const [key, value] of c.request.headers.entries())
|
|
33
33
|
c.headers[key] = value
|
|
34
|
-
`;if(P){
|
|
34
|
+
`;if(P){let N=(A,S)=>{let C=T?.[A]??S;if(!C)return typeof S==="string"?`${A}: "${S}",`:`${A}: ${S},`;if(typeof C==="string")return`${A}: '${C}',`;if(C instanceof Date)return`${A}: new Date(${C.getTime()}),`;return`${A}: ${C},`},_=T?`{
|
|
35
35
|
secrets: ${T.secrets!==void 0?typeof T.secrets==="string"?`'${T.secrets}'`:"["+T.secrets.reduce((A,S)=>A+`'${S}',`,"")+"]":"undefined"},
|
|
36
36
|
sign: ${T.sign===!0?!0:T.sign!==void 0?"["+T.sign.reduce((A,S)=>A+`'${S}',`,"")+"]":"undefined"},
|
|
37
37
|
${N("domain")}
|
|
@@ -42,14 +42,14 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
42
42
|
${N("priority")}
|
|
43
43
|
${N("sameSite")}
|
|
44
44
|
${N("secure")}
|
|
45
|
-
}`:"undefined";if(O)Q+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${_})\n`;else Q+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${_})\n`}if(z){
|
|
45
|
+
}`:"undefined";if(O)Q+=`\nc.cookie = await parseCookie(c.set, c.headers.cookie, ${_})\n`;else Q+=`\nc.cookie = await parseCookie(c.set, c.request.headers.get('cookie'), ${_})\n`}if(z){let N=[];if(J.query&&J.query.schema.type==="object"){let _=J.query.schema.properties;if(!J0(J.query))for(let[A,S]of Object.entries(_)){let C=S;if(C&&P1.optional in C&&C.type==="array"&&C.items)C=C.items;let{type:a,anyOf:H}=C,U0=a==="array"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString");N.push({key:A,isArray:U0,isNestedObjectArray:U0&&C.items?.type==="object"||!!C.items?.anyOf?.some((u)=>u.type==="object"||u.type==="array"),isObject:a==="object"||H?.some((u)=>u.type==="string"&&u.format==="ArrayString"),anyOf:!!H})}}if(!N.length)Q+=`if(c.qi === -1) {
|
|
46
46
|
c.query = {}
|
|
47
47
|
} else {
|
|
48
48
|
c.query = parseQueryFromURL(c.url.slice(c.qi + 1))
|
|
49
49
|
}`;else Q+=`if(c.qi !== -1) {
|
|
50
50
|
let url = '&' + c.url.slice(c.qi + 1)
|
|
51
51
|
|
|
52
|
-
${N.map(({key:_,isArray:A,isObject:S,isNestedObjectArray:C,anyOf:a},H)=>{
|
|
52
|
+
${N.map(({key:_,isArray:A,isObject:S,isNestedObjectArray:C,anyOf:a},H)=>{let U0=`${H===0?"let":""} memory = url.indexOf('&${_}=')
|
|
53
53
|
let a${H}\n`;if(A)return U0+(C?`while (memory !== -1) {
|
|
54
54
|
const start = memory + ${_.length+2}
|
|
55
55
|
memory = url.indexOf('&', start)
|
|
@@ -156,7 +156,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
156
156
|
}
|
|
157
157
|
} else {
|
|
158
158
|
c.query = {}
|
|
159
|
-
}`}if(F)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";
|
|
159
|
+
}`}if(F)Q+="\nconst id = c[ELYSIA_REQUEST_ID]\n";let R=x2({trace:j.trace,addFn:(N)=>{Q+=N}});Q+="\ntry {\n";let Y0=typeof Y==="function"&&k(Y),e=F||j.afterResponse.length>0?"c.response = ":"",y0=P||D||Y0||j.parse.length>0||j.afterHandle.some(k)||j.beforeHandle.some(k)||j.transform.some(k)||j.mapResponse.some(k),O1=(typeof Y==="function"?B2(Y):!1)||j.beforeHandle.some(B2)||j.afterHandle.some(B2)||j.transform.some(B2),t0=K.cookie||K.set||O||F||J.response||B&&I||O1,s=", c.request";Q+=`c.route = \`${W}\`\n`;let V1=R("parse",{total:j.parse.length});if(D){let N=j.parse.length||K.body||J.body;if(Q+="isParsing = true\n",j.type&&!j.parse.length)switch(j.type){case"json":case"application/json":if(t(J.body))Q+="try { c.body = await c.request.json() } catch {}";else Q+="c.body = await c.request.json()";break;case"text":case"text/plain":Q+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":Q+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":Q+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":if(Q+="c.body = {}\n",t(J.body))Q+="let form; try { form = await c.request.formData() } catch {}";else Q+="const form = await c.request.formData()";Q+=`\nif(form)
|
|
160
160
|
for (const key of form.keys()) {
|
|
161
161
|
if (c.body[key])
|
|
162
162
|
continue
|
|
@@ -169,7 +169,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
169
169
|
if (contentType) {
|
|
170
170
|
const index = contentType.indexOf(';')
|
|
171
171
|
if (index !== -1) contentType = contentType.substring(0, index)\n
|
|
172
|
-
c.contentType = contentType\n`,j.parse.length){Q+="let used = false\n";
|
|
172
|
+
c.contentType = contentType\n`,j.parse.length){Q+="let used = false\n";let _=R("parse",{total:j.parse.length});for(let A=0;A<j.parse.length;A++){let S=_.resolveChild(j.parse[A].fn.name),C=`bo${A}`;if(A!==0)Q+="if(!used) {\n";if(Q+=`let ${C} = parse[${A}](c, contentType)\n`,Q+=`if(${C} instanceof Promise) ${C} = await ${C}\n`,Q+=`if(${C} !== undefined) { c.body = ${C}; used = true }\n`,S(),A!==0)Q+="}"}_.resolve()}if(Q+="\ndelete c.contentType\n",j.parse.length)Q+="if (!used) {";if(j.type&&!Array.isArray(j.type))switch(j.type){case"json":case"application/json":if(t(J.body))Q+="try { c.body = await c.request.json() } catch {}";else Q+="c.body = await c.request.json()";break;case"text":case"text/plain":Q+="c.body = await c.request.text()\n";break;case"urlencoded":case"application/x-www-form-urlencoded":Q+="c.body = parseQuery(await c.request.text())\n";break;case"arrayBuffer":case"application/octet-stream":Q+="c.body = await c.request.arrayBuffer()\n";break;case"formdata":case"multipart/form-data":Q+=`c.body = {}
|
|
173
173
|
|
|
174
174
|
const form = await c.request.formData()
|
|
175
175
|
for (const key of form.keys()) {
|
|
@@ -213,7 +213,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
break
|
|
216
|
-
}`;if(j.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(
|
|
216
|
+
}`;if(j.parse.length)Q+="}";Q+="}\n"}Q+="\nisParsing = false\n"}if(V1.resolve(),j?.transform){let N=R("transform",{total:j.transform.length});if(j.transform.length)Q+="\nlet transformed\n";for(let _=0;_<j.transform.length;_++){let A=j.transform[_],S=N.resolveChild(A.fn.name);if(Q+=k(A)?`transformed = await transform[${_}](c)\n`:`transformed = transform[${_}](c)\n`,A.subType==="mapDerive")Q+=`if(transformed instanceof ElysiaCustomStatusResponse)
|
|
217
217
|
throw transformed
|
|
218
218
|
else {
|
|
219
219
|
transformed.request = c.request
|
|
@@ -229,13 +229,13 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
229
229
|
}`;else Q+=`if(transformed instanceof ElysiaCustomStatusResponse)
|
|
230
230
|
throw transformed
|
|
231
231
|
else
|
|
232
|
-
Object.assign(c, transformed)\n`;S()}N.resolve()}if(J){if(Q+="\n",J.headers){if(r&&"Clean"in J.headers&&!J0(J.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",J.headers.schema))for(let[N,_]of Object.entries(n0.Default(J.headers.schema,{}))){
|
|
232
|
+
Object.assign(c, transformed)\n`;S()}N.resolve()}if(J){if(Q+="\n",J.headers){if(r&&"Clean"in J.headers&&!J0(J.headers))Q+="c.headers = validator.headers.Clean(c.headers);\n";if(V0("default",J.headers.schema))for(let[N,_]of Object.entries(n0.Default(J.headers.schema,{}))){let A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`c.headers['${N}'] ??= ${A}\n`}if(t(J.headers))Q+="if(isNotEmpty(c.headers)) {";if(Q+=`if(validator.headers.Check(c.headers) === false) {
|
|
233
233
|
${L("headers")}
|
|
234
|
-
}`,S0(J.headers.schema))Q+="c.headers = validator.headers.Decode(c.headers)\n";if(t(J.headers))Q+="}"}if(J.params){if(V0("default",J.params.schema))for(let[N,_]of Object.entries(n0.Default(J.params.schema,{}))){
|
|
234
|
+
}`,S0(J.headers.schema))Q+="c.headers = validator.headers.Decode(c.headers)\n";if(t(J.headers))Q+="}"}if(J.params){if(V0("default",J.params.schema))for(let[N,_]of Object.entries(n0.Default(J.params.schema,{}))){let A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`c.params['${N}'] ??= ${A}\n`}if(Q+=`if(validator.params.Check(c.params) === false) {
|
|
235
235
|
${L("params")}
|
|
236
|
-
}`,S0(J.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(r&&"Clean"in J.query&&!J0(J.query))Q+="c.query = validator.query.Clean(c.query);\n";if(V0("default",J.query.schema))for(let[N,_]of Object.entries(n0.Default(J.query.schema,{}))){
|
|
236
|
+
}`,S0(J.params.schema))Q+="\nc.params = validator.params.Decode(c.params)\n"}if(J.query){if(r&&"Clean"in J.query&&!J0(J.query))Q+="c.query = validator.query.Clean(c.query);\n";if(V0("default",J.query.schema))for(let[N,_]of Object.entries(n0.Default(J.query.schema,{}))){let A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(A!==void 0)Q+=`if(c.query['${N}'] === undefined) c.query['${N}'] = ${A}\n`}if(t(J.query))Q+="if(isNotEmpty(c.query)) {";if(Q+=`if(validator.query.Check(c.query) === false) {
|
|
237
237
|
${L("query")}
|
|
238
|
-
}`,S0(J.query.schema))Q+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(t(J.query))Q+="}"}if(J.body){if(r&&"Clean"in J.body&&!J0(J.body))Q+="c.body = validator.body.Clean(c.body);\n";
|
|
238
|
+
}`,S0(J.query.schema))Q+="\nc.query = validator.query.Decode(Object.assign({}, c.query))\n";if(t(J.query))Q+="}"}if(J.body){if(r&&"Clean"in J.body&&!J0(J.body))Q+="c.body = validator.body.Clean(c.body);\n";let N=S0(J.body.schema);if(N||t(J.body))Q+='\nconst isNotEmptyObject = c.body && (typeof c.body === "object" && isNotEmpty(c.body))\n';if(V0("default",J.body.schema)){let _=n0.Default(J.body.schema,J.body.schema.type==="object"?{}:void 0),A=typeof _==="object"?JSON.stringify(_):typeof _==="string"?`'${_}'`:_;if(Q+=`if(validator.body.Check(c.body) === false) {
|
|
239
239
|
if (typeof c.body === 'object') {
|
|
240
240
|
c.body = Object.assign(${A}, c.body)
|
|
241
241
|
} else { c.body = ${A} }`,t(J.body))Q+=`
|
|
@@ -255,7 +255,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
255
255
|
cookieValue[key] = value.value\n`,V0("default",b.schema))for(let[N,_]of Object.entries(n0.Default(b.schema,{})))Q+=`cookieValue['${N}'] = ${typeof _==="object"?JSON.stringify(_):_}\n`;if(t(J.cookie))Q+="if(isNotEmpty(c.cookie)) {";if(Q+=`if(validator.cookie.Check(cookieValue) === false) {
|
|
256
256
|
${L("cookie","cookieValue")}
|
|
257
257
|
}`,S0(J.cookie.schema))Q+=`\nfor(const [key, value] of Object.entries(validator.cookie.Decode(cookieValue)))
|
|
258
|
-
c.cookie[key].value = value\n`;if(t(J.cookie))Q+="}"}}if(j?.beforeHandle){
|
|
258
|
+
c.cookie[key].value = value\n`;if(t(J.cookie))Q+="}"}}if(j?.beforeHandle){let N=R("beforeHandle",{total:j.beforeHandle.length}),_=!1;for(let A=0;A<j.beforeHandle.length;A++){let S=j.beforeHandle[A],C=N.resolveChild(S.fn.name),a=E0(S);if(S.subType==="resolve"||S.subType==="mapResolve"){if(!_)_=!0,Q+="\nlet resolved\n";if(Q+=k(S)?`resolved = await beforeHandle[${A}](c);\n`:`resolved = beforeHandle[${A}](c);\n`,S.subType==="mapResolve")Q+=`if(resolved instanceof ElysiaCustomStatusResponse)
|
|
259
259
|
throw resolved
|
|
260
260
|
else {
|
|
261
261
|
resolved.request = c.request
|
|
@@ -271,11 +271,11 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
271
271
|
}`;else Q+=`if(resolved instanceof ElysiaCustomStatusResponse)
|
|
272
272
|
throw resolved
|
|
273
273
|
else
|
|
274
|
-
Object.assign(c, resolved)\n`}else if(!a)Q+=k(S)?`await beforeHandle[${A}](c);\n`:`beforeHandle[${A}](c);\n`,C();else{if(Q+=k(S)?`be = await beforeHandle[${A}](c);\n`:`be = beforeHandle[${A}](c);\n`,C("be"),Q+="if(be !== undefined) {\n",N.resolve(),j.afterHandle?.length){R("handle",{name:B?Y.name:void 0}).resolve();
|
|
274
|
+
Object.assign(c, resolved)\n`}else if(!a)Q+=k(S)?`await beforeHandle[${A}](c);\n`:`beforeHandle[${A}](c);\n`,C();else{if(Q+=k(S)?`be = await beforeHandle[${A}](c);\n`:`be = beforeHandle[${A}](c);\n`,C("be"),Q+="if(be !== undefined) {\n",N.resolve(),j.afterHandle?.length){R("handle",{name:B?Y.name:void 0}).resolve();let u=R("afterHandle",{total:j.afterHandle.length});for(let G0=0;G0<j.afterHandle.length;G0++){let L0=j.afterHandle[G0],S1=E0(L0),C1=u.resolveChild(L0.fn.name);if(Q+="c.response = be\n",!S1)Q+=k(L0.fn)?`await afterHandle[${G0}](c, be)\n`:`afterHandle[${G0}](c, be)\n`;else Q+=k(L0.fn)?`af = await afterHandle[${G0}](c)\n`:`af = afterHandle[${G0}](c)\n`,Q+="if(af !== undefined) { c.response = be = af }\n";C1("af")}u.resolve()}if(J.response)Q+=f("be");let U0=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = be\n";for(let u=0;u<j.mapResponse.length;u++){let G0=j.mapResponse[u],L0=U0.resolveChild(G0.fn.name);Q+=`\nif(mr === undefined) {
|
|
275
275
|
mr = ${C0(G0)?"await":""} onMapResponse[${u}](c)
|
|
276
276
|
if(mr !== undefined) be = c.response = mr
|
|
277
|
-
}\n`,L0()}}U0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${e} be, c.set ${s})}\n`}}N.resolve()}if(j?.afterHandle.length){
|
|
278
|
-
if(mr !== undefined) r = c.response = mr\n`,a()}if(A.resolve(),t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{
|
|
277
|
+
}\n`,L0()}}U0.resolve(),Q+=E,Q+=`return mapEarlyResponse(${e} be, c.set ${s})}\n`}}N.resolve()}if(j?.afterHandle.length){let N=R("handle",{name:B?Y.name:void 0});if(j.afterHandle.length)Q+=Y0?`let r = c.response = await ${U};\n`:`let r = c.response = ${U};\n`;else Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`;N.resolve();let _=R("afterHandle",{total:j.afterHandle.length});for(let S=0;S<j.afterHandle.length;S++){let C=j.afterHandle[S],a=E0(C),H=_.resolveChild(C.fn.name);if(!a)Q+=k(C.fn)?`await afterHandle[${S}](c)\n`:`afterHandle[${S}](c)\n`,H();else if(Q+=k(C.fn)?`af = await afterHandle[${S}](c)\n`:`af = afterHandle[${S}](c)\n`,H("af"),J.response)Q+="if(af !== undefined) {",_.resolve(),Q+=f("af"),Q+="c.response = af }";else Q+="if(af !== undefined) {",_.resolve(),Q+="c.response = af}\n"}if(_.resolve(),Q+="r = c.response\n",J.response)Q+=f();Q+=E;let A=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let S=0;S<j.mapResponse.length;S++){let C=j.mapResponse[S],a=A.resolveChild(C.fn.name);Q+=`\nmr = ${C0(C)?"await":""} onMapResponse[${S}](c)
|
|
278
|
+
if(mr !== undefined) r = c.response = mr\n`,a()}if(A.resolve(),t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{let N=R("handle",{name:B?Y.name:void 0});if(J.response||j.mapResponse.length){if(Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),J.response)Q+=f();R("afterHandle").resolve();let _=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = r\n";for(let A=0;A<j.mapResponse.length;A++){let S=j.mapResponse[A],C=_.resolveChild(S.fn.name);Q+=`\nif(mr === undefined) {
|
|
279
279
|
mr = ${C0(S)?"await":""} onMapResponse[${A}](c)
|
|
280
280
|
if(mr !== undefined) r = c.response = mr
|
|
281
281
|
}\n`,C()}}if(_.resolve(),Q+=E,Y instanceof Response)Q+=K.set?`if(
|
|
@@ -286,10 +286,10 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
286
286
|
)
|
|
287
287
|
return mapResponse(${e} ${U}.clone(), c.set ${s})
|
|
288
288
|
else
|
|
289
|
-
return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else if(P||F){Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),R("afterHandle").resolve();
|
|
289
|
+
return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else if(P||F){Q+=Y0?`let r = await ${U};\n`:`let r = ${U};\n`,N.resolve(),R("afterHandle").resolve();let _=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length){Q+="\nc.response = r\n";for(let A=0;A<j.mapResponse.length;A++){let S=j.mapResponse[A],C=_.resolveChild(S.fn.name);Q+=`\nif(mr === undefined) {
|
|
290
290
|
mr = ${C0(S)?"await":""} onMapResponse[${A}](c)
|
|
291
291
|
if(mr !== undefined) r = c.response = mr
|
|
292
|
-
}\n`,C()}}if(_.resolve(),Q+=E,t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{N.resolve();
|
|
292
|
+
}\n`,C()}}if(_.resolve(),Q+=E,t0)Q+=`return mapResponse(${e} r, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} r ${s})\n`}else{N.resolve();let _=Y0?`await ${U}`:U;if(R("afterHandle").resolve(),Y instanceof Response)Q+=K.set?`if(
|
|
293
293
|
isNotEmpty(c.set.headers) ||
|
|
294
294
|
c.set.status !== 200 ||
|
|
295
295
|
c.set.redirect ||
|
|
@@ -297,7 +297,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
297
297
|
)
|
|
298
298
|
return mapResponse(${e} ${U}.clone(), c.set ${s})
|
|
299
299
|
else
|
|
300
|
-
return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} ${_}, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} ${_} ${s})\n`}}if(Q+="\n} catch(error) {",D)Q+="\nif(isParsing) error = new ParseError()\n";if(!y0)Q+="\nreturn (async () => {\n";if(Q+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",F)for(let N=0;N<j.trace.length;N++)Q+=`report${N}?.resolve(error);reportChild${N}?.(error);\n`;
|
|
300
|
+
return ${U}.clone()`:`return ${U}.clone()`,Q+="\n";else if(t0)Q+=`return mapResponse(${e} ${_}, c.set ${s})\n`;else Q+=`return mapCompactResponse(${e} ${_} ${s})\n`}}if(Q+="\n} catch(error) {",D)Q+="\nif(isParsing) error = new ParseError()\n";if(!y0)Q+="\nreturn (async () => {\n";if(Q+="\nconst set = c.set\nif (!set.status || set.status < 300) set.status = error?.status || 500\n",F)for(let N=0;N<j.trace.length;N++)Q+=`report${N}?.resolve(error);reportChild${N}?.(error);\n`;let K2=R("error",{total:j.error.length});if(j.error.length){Q+=`
|
|
301
301
|
c.error = error
|
|
302
302
|
if(error instanceof TypeBoxError) {
|
|
303
303
|
c.code = "VALIDATION"
|
|
@@ -305,9 +305,9 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
305
305
|
} else
|
|
306
306
|
c.code = error.code ?? error[ERROR_CODE] ?? "UNKNOWN"
|
|
307
307
|
let er
|
|
308
|
-
`;for(let N=0;N<j.error.length;N++){
|
|
308
|
+
`;for(let N=0;N<j.error.length;N++){let _=K2.resolveChild(j.error[N].fn.name);if(k(j.error[N]))Q+=`\ner = await handleErrors[${N}](c)\n`;else Q+=`\ner = handleErrors[${N}](c)\nif (er instanceof Promise) er = await er\n`;_();let A=R("mapResponse",{total:j.mapResponse.length});if(j.mapResponse.length)for(let S=0;S<j.mapResponse.length;S++){let C=j.mapResponse[S],a=A.resolveChild(C.fn.name);Q+=`\nc.response = er\n
|
|
309
309
|
er = ${C0(C)?"await":""} onMapResponse[${S}](c)
|
|
310
|
-
if(er instanceof Promise) er = await er\n`,a()}if(A.resolve(),Q+=`er = mapEarlyResponse(er, set ${s})\n`,Q+="if (er) {",F){for(let S=0;S<j.trace.length;S++)Q+=`\nreport${S}.resolve()\n`;
|
|
310
|
+
if(er instanceof Promise) er = await er\n`,a()}if(A.resolve(),Q+=`er = mapEarlyResponse(er, set ${s})\n`,Q+="if (er) {",F){for(let S=0;S<j.trace.length;S++)Q+=`\nreport${S}.resolve()\n`;K2.resolve()}Q+="return er\n}\n"}}if(K2.resolve(),Q+="return handleError(c, error, true)\n",!y0)Q+="})()";if(Q+="}",w||F){if(Q+=" finally { ",!y0)Q+=";(async () => {";let N=R("afterResponse",{total:j.afterResponse.length});if(w)for(let _=0;_<j.afterResponse.length;_++){let A=N.resolveChild(j.afterResponse[_].fn.name);Q+=`\nawait afterResponse[${_}](c);\n`,A()}if(N.resolve(),!y0)Q+="})();";Q+="}"}Q=`const {
|
|
311
311
|
handler,
|
|
312
312
|
handleError,
|
|
313
313
|
hooks: {
|
|
@@ -358,7 +358,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
358
358
|
|
|
359
359
|
${G?"c.schema = schema; c.defs = definitions":""}
|
|
360
360
|
${Q}
|
|
361
|
-
}`;try{return Function("hooks",Q)({handler:Y,hooks:
|
|
361
|
+
}`;try{return Function("hooks",Q)({handler:Y,hooks:E2(j),validator:J,handleError:$.handleError,utils:{mapResponse:x,mapCompactResponse:Z0,mapEarlyResponse:g,parseQuery:p0,parseQueryFromURL:G2,isNotEmpty:c},error:{NotFoundError:A0,ValidationError:q,InternalServerError:Q2,ParseError:Y2},schema:$.router.history,definitions:$.definitions.type,ERROR_CODE:I0,parseCookie:e0,signCookie:x0,decodeURIComponent:N1.default,ElysiaCustomStatusResponse:l,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer(),TypeBoxError:L3})}catch{let N=E2(j);console.log("[Composer] failed to generate optimized handler"),console.log("Please report the following to SaltyAom privately as it may include sensitive information about your codebase:"),console.log("---"),console.log({handler:typeof Y==="function"?Y.toString():Y,hooks:{...N,transform:N?.transform?.map?.((_)=>_.toString()),resolve:N?.resolve?.map?.((_)=>_.toString()),beforeHandle:N?.beforeHandle?.map?.((_)=>_.toString()),afterHandle:N?.afterHandle?.map?.((_)=>_.toString()),mapResponse:N?.mapResponse?.map?.((_)=>_.toString()),parse:N?.parse?.map?.((_)=>_.toString()),error:N?.error?.map?.((_)=>_.toString()),afterResponse:N?.afterResponse?.map?.((_)=>_.toString()),stop:N?.stop?.map?.((_)=>_.toString())},validator:J,definitions:$.definitions.type}),console.log("---"),process.exit(1)}},g2=($)=>{let W=$.config.handler?.standardHostname??!0,X="",Z="",j=$.setHeaders;for(let D of Object.keys($.singleton.decorator))X+=`,${D}: app.singleton.decorator.${D}`;let J=$.router,Y=$.event.trace.length>0,G=`
|
|
362
362
|
const route = router.find(request.method, path) ${J.http.root.ALL?'?? router.find("ALL", path)':""}
|
|
363
363
|
|
|
364
364
|
if (route === null)
|
|
@@ -368,7 +368,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
368
368
|
})`:"error404.clone()"}
|
|
369
369
|
|
|
370
370
|
ctx.params = route.params\n`;G+=`if(route.store.handler) return route.store.handler(ctx)
|
|
371
|
-
return (route.store.handler = route.store.compile())(ctx)\n`;let K="";for(let[D,{code:M,all:I,static:O}]of Object.entries(J.static.http.map)){if(O)K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`;K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`}
|
|
371
|
+
return (route.store.handler = route.store.compile())(ctx)\n`;let K="";for(let[D,{code:M,all:I,static:O}]of Object.entries(J.static.http.map)){if(O)K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`;K+=`case '${D}':\nswitch(request.method) {\n${M}\n${I??"default: break map"}}\n\n`}let B=$.event.request.some(k);if(Z+=`const {
|
|
372
372
|
app,
|
|
373
373
|
mapEarlyResponse,
|
|
374
374
|
NotFoundError,
|
|
@@ -422,13 +422,13 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
422
422
|
}`:""}
|
|
423
423
|
${Y?",[ELYSIA_REQUEST_ID]: id":""}
|
|
424
424
|
${X}
|
|
425
|
-
}\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((D,M)=>`tr${M}(ctx)`).join(",")}]\n`;
|
|
425
|
+
}\n`,$.event.trace.length)Z+=`\nctx[ELYSIA_TRACE] = [${$.event.trace.map((D,M)=>`tr${M}(ctx)`).join(",")}]\n`;let w=x2({context:"ctx",trace:$.event.trace,addFn(D){Z+=D}})("request",{attribute:"ctx",total:$.event.request.length});if($.event.request.length){Z+="\n try {\n";for(let D=0;D<$.event.request.length;D++){let M=$.event.request[D],I=E0(M),O=k(M),P=w.resolveChild($.event.request[D].fn.name);if(I)Z+=`re = mapEarlyResponse(
|
|
426
426
|
${O?"await":""} onRequest[${D}](ctx),
|
|
427
427
|
ctx.set,
|
|
428
428
|
request
|
|
429
429
|
)\n`,P("re"),Z+="if(re !== undefined) return re\n";else Z+=`${O?"await":""} onRequest[${D}](ctx)\n`,P()}Z+=`} catch (error) {
|
|
430
430
|
return app.handleError(ctx, error)
|
|
431
|
-
}`}w.resolve();
|
|
431
|
+
}`}w.resolve();let F=$.router.static.ws,Q=$.router.ws;if(Object.keys(F).length||Q.history.length){Z+=`
|
|
432
432
|
if(request.method === 'GET') {
|
|
433
433
|
switch(path) {`;for(let[D,M]of Object.entries(F))Z+=`
|
|
434
434
|
case '${D}':
|
|
@@ -461,7 +461,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
461
461
|
}
|
|
462
462
|
|
|
463
463
|
${G}
|
|
464
|
-
}\n`,$.extender.higherOrderFunctions.length){let D="map";for(let M=0;M<$.extender.higherOrderFunctions.length;M++)D=`hoc[${M}](${D}, request)`;Z+=`return function hocMap(request) { return ${D}(request) }`}else Z+="return map";
|
|
464
|
+
}\n`,$.extender.higherOrderFunctions.length){let D="map";for(let M=0;M<$.extender.higherOrderFunctions.length;M++)D=`hoc[${M}](${D}, request)`;Z+=`return function hocMap(request) { return ${D}(request) }`}else Z+="return map";let z=f2($);return $.handleError=z,Function("data",Z)({app:$,mapEarlyResponse:g,NotFoundError:A0,randomId:j2,handleError:z,error:q2,redirect:d0,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0,getServer:()=>$.getServer()})},f2=($)=>{let W=$.event,X="";X+=`const {
|
|
465
465
|
app: { event: { error: onErrorContainer, afterResponse: resContainer, mapResponse: _onMapResponse, trace: _trace } },
|
|
466
466
|
mapResponse,
|
|
467
467
|
ERROR_CODE,
|
|
@@ -481,7 +481,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
481
481
|
const onError = onErrorContainer.map(x => x.fn)
|
|
482
482
|
const res = resContainer.map(x => x.fn)
|
|
483
483
|
|
|
484
|
-
return ${$.event.error.find(k)||$.event.mapResponse.find(k)?"async":""} function(context, error, skipGlobal) {`;
|
|
484
|
+
return ${$.event.error.find(k)||$.event.mapResponse.find(k)?"async":""} function(context, error, skipGlobal) {`;let Z=$.event.trace.length>0;if(Z)X+="\nconst id = context[ELYSIA_REQUEST_ID]\n";let j=x2({context:"context",trace:W.trace,addFn:(G)=>{X+=G}});X+=`
|
|
485
485
|
const set = context.set
|
|
486
486
|
let r
|
|
487
487
|
|
|
@@ -494,7 +494,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
494
494
|
if(error instanceof ElysiaCustomStatusResponse) {
|
|
495
495
|
error.status = error.code
|
|
496
496
|
error.message = error.response
|
|
497
|
-
}\n`;
|
|
497
|
+
}\n`;let J=Z||W.afterResponse.length>0||W.afterResponse.length>0?"context.response = ":"";for(let G=0;G<$.event.error.length;G++){let K=$.event.error[G],B=`${k(K)?"await ":""}onError[${G}](context)`;if(X+="\nif(skipGlobal !== true) {\n",E0(K)){X+=`r = ${B}; if(r !== undefined) {
|
|
498
498
|
if(r instanceof Response) return r
|
|
499
499
|
|
|
500
500
|
if(r instanceof ElysiaCustomStatusResponse) {
|
|
@@ -502,7 +502,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
502
502
|
error.message = error.response
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
-
if(set.status === 200) set.status = error.status\n`;
|
|
505
|
+
if(set.status === 200) set.status = error.status\n`;let U=j("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let w=0;w<W.mapResponse.length;w++){let F=W.mapResponse[w],Q=U.resolveChild(F.fn.name);X+=`\ncontext.response = r
|
|
506
506
|
r = ${C0(F)?"await":""} onMapResponse[${w}](context)\n`,Q()}U.resolve(),X+=`return mapResponse(${J} r, set, context.request)}\n`}else X+=B+"\n";X+="\n}\n"}X+=`if(error.constructor.name === "ValidationError" || error.constructor.name === "TransformDecodeError") {
|
|
507
507
|
set.status = error.status ?? 422
|
|
508
508
|
return new Response(
|
|
@@ -520,7 +520,7 @@ var L2=Object.create;var{getPrototypeOf:T2,defineProperty:k1,getOwnPropertyNames
|
|
|
520
520
|
return new Response(
|
|
521
521
|
error.message,
|
|
522
522
|
{ headers: set.headers, status: error.status }
|
|
523
|
-
)\n`;
|
|
524
|
-
error = ${C0(K)?"await":""} onMapResponse[${G}](context)\n`,B()}return Y.resolve(),X+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",X)({app:$,mapResponse:x,ERROR_CODE:I0,ElysiaCustomStatusResponse:p,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0})};var y1=($)=>async(W)=>{const X=W.url,Z=X.indexOf("/",11),j=X.indexOf("?",Z+1),J=j===-1?X.substring(Z):X.substring(Z,j),Y={cookie:{},status:200,headers:{}},G=Object.assign({},$.singleton.decorator,{set:Y,store:$.singleton.store,request:W,path:J,qi:j,redirect:d0});try{for(let I=0;I<$.event.request.length;I++){const O=$.event.request[I].fn;let P=O(G);if(P instanceof Promise)P=await P;if(P=y(P,Y),P)return G.response=P}const K=$.router.dynamic.find(W.method,J)??$.router.dynamic.find("ALL",J);if(!K)throw new A0;const{handle:B,hooks:U,validator:w,content:F}=K.store;let Q;if(W.method!=="GET"&&W.method!=="HEAD")if(F)switch(F){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=l0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};const I=await W.formData();for(let O of I.keys()){if(Q[O])continue;const P=I.getAll(O);if(P.length===1)Q[O]=P[0];else Q[O]=P}break}else{let I=W.headers.get("content-type");if(I){const O=I.indexOf(";");if(O!==-1)I=I.slice(0,O);G.contentType=I;for(let P=0;P<U.parse.length;P++){const b=U.parse[P].fn;let T=b(G,I);if(T instanceof Promise)T=await T;if(T){Q=T;break}}if(delete G.contentType,Q===void 0)switch(I){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=l0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};const P=await W.formData();for(let b of P.keys()){if(Q[b])continue;const T=P.getAll(b);if(T.length===1)Q[b]=T[0];else Q[b]=T}break}}}G.body=Q,G.params=K?.params||void 0,G.query=j===-1?{}:G1(X.substring(j+1)),G.headers={};for(let[I,O]of W.headers.entries())G.headers[I]=O;const z=Object.assign({},$.config?.cookie,w?.cookie?.config),D=W.headers.get("cookie");G.cookie=await e0(G.set,D,z?{secrets:z.secrets!==void 0?typeof z.secrets==="string"?z.secrets:z.secrets.join(","):void 0,sign:z.sign===!0?!0:z.sign!==void 0?typeof z.sign==="string"?z.sign:z.sign.join(","):void 0}:void 0);for(let I=0;I<U.transform.length;I++){const O=U.transform[I],P=O.fn(G);if(O.subType==="derive")if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);else if(P instanceof Promise)await P}if(w){if(w.createHeaders?.()){const I={};for(let O in W.headers)I[O]=W.headers.get(O);if(w.headers.Check(I)===!1)throw new q("header",w.headers,I)}else if(w.headers?.Decode)G.headers=w.headers.Decode(G.headers);if(w.createParams?.()?.Check(G.params)===!1)throw new q("params",w.params,G.params);else if(w.params?.Decode)G.params=w.params.Decode(G.params);if(w.createQuery?.()?.Check(G.query)===!1)throw new q("query",w.query,G.query);else if(w.query?.Decode)G.query=w.query.Decode(G.query);if(w.createCookie?.()){let I={};for(let[O,P]of Object.entries(G.cookie))I[O]=P.value;if(w.cookie.Check(I)===!1)throw new q("cookie",w.cookie,I);else if(w.cookie?.Decode)I=w.cookie.Decode(I)}if(w.createBody?.()?.Check(Q)===!1)throw new q("body",w.body,Q);else if(w.body?.Decode)G.body=w.body.Decode(Q)}for(let I=0;I<U.beforeHandle.length;I++){const O=U.beforeHandle[I];let P=O.fn(G);if(O.subType==="resolve"){if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);continue}else if(P instanceof Promise)P=await P;if(P!==void 0){G.response=P;for(let T=0;T<U.afterHandle.length;T++){let E=U.afterHandle[T].fn(G);if(E instanceof Promise)E=await E;if(E)P=E}const b=y(P,G.set);if(b)return G.response=b}}let M=B(G);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){const I=M instanceof p?M.code:Y.status?typeof Y.status==="string"?_0[Y.status]:Y.status:200,O=w?.createResponse?.()?.[I];if(O?.Check(M)===!1)throw new q("response",O,M);else if(O?.Decode)M=O.Decode(M)}else{G.response=M;for(let I=0;I<U.afterHandle.length;I++){let O=U.afterHandle[I].fn(G);if(O instanceof Promise)O=await O;const P=y(O,G.set);if(P!==void 0){const b=w?.response?.[P.status];if(b?.Check(P)===!1)throw new q("response",b,P);else if(b?.Decode)M=b.Decode(M);return G.response=P}}}if(G.set.cookie&&z?.sign){const I=!z.secrets?void 0:typeof z.secrets==="string"?z.secrets:z.secrets[0];if(z.sign===!0)for(let[O,P]of Object.entries(G.set.cookie))G.set.cookie[O].value=await x0(P.value,"${secret}");else{const O=w?.cookie?.schema?.properties;for(let P of z.sign){if(!(P in O))continue;if(G.set.cookie[P]?.value)G.set.cookie[P].value=await x0(G.set.cookie[P].value,I)}}}return G.response=x(M,G.set)}catch(K){if(K.status)Y.status=K.status;return $.handleError(G,K)}finally{for(let K of $.event.afterResponse)await K.fn(G)}},A2=($)=>async(W,X)=>{const Z=Object.assign(W,{error:X,code:X.code});Z.set=W.set;for(let j=0;j<$.event.error.length;j++){let Y=$.event.error[j].fn(Z);if(Y instanceof Promise)Y=await Y;if(Y!==void 0&&Y!==null)return W.response=x(Y,W.set)}return new Response(typeof X.cause==="string"?X.cause:X.message,{headers:W.set.headers,status:X.status??500})};import{TypeSystemPolicy as O5}from"@sinclair/typebox/system";class Q0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=R1;version=R1;singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return b0(b0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new M0,ws:new M0,dynamic:new M0,static:{http:{static:{},handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new T1;return this._promisedModules}constructor($={}){if($.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if($.nativeStaticResponse===void 0)$.nativeStaticResponse=!0;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,W=Bun?.env??process.env){if(m($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(W)===!1){const Z=new q("env",$,W);throw new Error(Z.all.map((j)=>j.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){const W=F2({globalHook:this.event,localHook:$}),X={events:{global:this.event,local:$},onParse:W("parse"),onTransform:W("transform"),onBeforeHandle:W("beforeHandle"),onAfterHandle:W("afterHandle"),mapResponse:W("mapResponse"),onAfterResponse:W("afterResponse"),onError:W("error")};for(let Z of this.extender.macros)_2(Z.fn(X),$)}}applyConfig($){return this.config={prefix:"",aot:!0,strictPath:!1,global:!1,analytic:!1,normalize:!0,...$,cookie:{path:"/",...$?.cookie},experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},this}get models(){const $={};for(let[W,X]of Object.entries(this.definitions.type))$[W]=m(X);return $}add($,W,X,Z,{allowMeta:j=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(Z=M2(Z),W!==""&&W.charCodeAt(0)!==47)W="/"+W;if(this.config.prefix&&!J&&!this.config.scoped)W=this.config.prefix+W;if(Z?.type)switch(Z.type){case"text":Z.type="text/plain";break;case"json":Z.type="application/json";break;case"formdata":Z.type="multipart/form-data";break;case"urlencoded":Z.type="application/x-www-form-urlencoded";break;case"arrayBuffer":Z.type="application/octet-stream";break;default:break}const Y=this.definitions.type,G=!this.config.aot,K={...this.validator.getCandidate()},B={body:Z?.body??K?.body,headers:Z?.headers??K?.headers,params:Z?.params??K?.params,query:Z?.query??K?.query,cookie:Z?.cookie??K?.cookie,response:Z?.response??K?.response},U=()=>B.cookie?W1({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:G,models:Y}):void 0,w=this.config.normalize,F=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:m(B.body,{dynamic:G,models:Y,normalize:w,additionalCoerce:S1()}),headers:m(B.headers,{dynamic:G,models:Y,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:D0()}),params:m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()}),query:m(B.query,{dynamic:G,models:Y,normalize:w,coerce:!0,additionalCoerce:D0()}),cookie:U(),response:$1(B.response,{dynamic:G,models:Y,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:G,models:Y,normalize:w,additionalCoerce:S1()})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:G,models:Y,additionalProperties:!w,coerce:!0,additionalCoerce:D0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=U()},createResponse(){if(this.response)return this.response;return this.response=$1(B.response,{dynamic:G,models:Y,normalize:w})}},Q=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(Z=i(Z,K),Z.tags)if(!Z.detail)Z.detail={tags:Z.tags};else Z.detail.tags=Z.tags;if(c(this.config.detail))Z.detail=d(Object.assign({},this.config.detail),Z.detail);this.applyMacro(Z);const z=i(this.event,Z);if(this.config.aot===!1){if(this.router.dynamic.add($,W,{validator:F,hooks:z,content:Z?.type,handle:X}),this.config.strictPath===!1)this.router.dynamic.add($,Q,{validator:F,hooks:z,content:Z?.type,handle:X});this.router.history.push({method:$,path:W,composed:null,handler:X,hooks:z});return}const D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=m0(this.inference),I=typeof X!=="function"?Q2(X,z,this.setHeaders):void 0,O=typeof X!=="function"?Y2(X,z,this.setHeaders):void 0;if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[W]=O();const P=()=>I2({app:this,path:W,method:$,localHook:i(Z),hooks:z,validator:F,handler:X,allowMeta:j,inference:M}),b=D?P():(L)=>{return P()(L)},T=this.router.history.length;if(this.routeTree.has($+W))for(let L=0;L<this.router.history.length;L++){const g=this.router.history[L];if(g.path===W&&g.method===$){const R=this.router.history.splice(L,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+W,T);this.router.history.push({method:$,path:W,composed:b,handler:X,hooks:z});const E=this.router.static.http,r={handler:D?b:void 0,compile:P};if($==="$INTERNALWS"){const L=this.config.strictPath?void 0:W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(W.indexOf(":")===-1&&W.indexOf("*")===-1){const g=E.handlers.length;if(E.handlers.push((R)=>(E.handlers[g]=P())(R)),this.router.static.ws[W]=g,L)this.router.static.ws[L]=g}else if(this.router.ws.add("ws",W,r),L)this.router.ws.add("ws",L,r);return}if(W.indexOf(":")===-1&&W.indexOf("*")===-1){const L=E.handlers.length;if(E.handlers.push(I??((R)=>(E.handlers[L]=P())(R))),!E.map[W])E.map[W]={code:""};const g=I?"":"ctx";if($==="ALL")E.map[W].all=`default: return st[${L}](${g})\n`;else E.map[W].code=`case '${$}': return st[${L}](${g})\n${E.map[W].code}`;if(!this.config.strictPath){if(!E.map[Q])E.map[Q]={code:""};if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[Q]=O();if($==="ALL")E.map[Q].all=`default: return st[${L}](${g})\n`;else E.map[Q].code=`case '${$}': return st[${L}](${g})\n${E.map[Q].code}`}}else if(this.router.http.add($,W,r),!this.config.strictPath){const L=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(this.config.nativeStaticResponse===!0&&I&&($==="GET"||$==="ALL"))this.router.static.http.static[L]=I();this.router.http.add($,L,r)}}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=d(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,W){if(!W)return this.on("parse",$);return this.on($,"parse",W)}onTransform($,W){if(!W)return this.on("transform",$);return this.on($,"transform",W)}resolve($,W){if(!W)W=$,$={as:"local"};const X={subType:"resolve",fn:W};return this.onBeforeHandle($,X)}mapResolve($,W){if(!W)W=$,$={as:"local"};const X={subType:"mapResolve",fn:W};return this.onBeforeHandle($,X)}onBeforeHandle($,W){if(!W)return this.on("beforeHandle",$);return this.on($,"beforeHandle",W)}onAfterHandle($,W){if(!W)return this.on("afterHandle",$);return this.on($,"afterHandle",W)}mapResponse($,W){if(!W)return this.on("mapResponse",$);return this.on($,"mapResponse",W)}onAfterResponse($,W){if(!W)return this.on("afterResponse",$);return this.on($,"afterResponse",W)}trace($,W){if(!W)W=$,$={as:"local"};if(!Array.isArray(W))W=[W];for(let X of W)this.on($,"trace",D2(X));return this}error($,W){switch(typeof $){case"string":return W.prototype[I0]=$,this.definitions.error[$]=W,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[X,Z]of Object.entries($))Z.prototype[I0]=X,this.definitions.error[X]=Z;return this}onError($,W){if(!W)return this.on("error",$);return this.on($,"error",W)}onStop($){return this.on("stop",$),this}on($,W,X){let Z;switch(typeof $){case"string":Z=$,X=W;break;case"object":if(Z=W,!Array.isArray(W)&&typeof W==="object")X=W;break}if(Array.isArray(X))X=n(X);else if(typeof X==="function")X=[{fn:X}];else X=[X];const j=X;for(let J of j)J.scope=typeof $==="string"?"local":$?.as??"local";if(Z!=="trace")r0({[Z]:j.map((J)=>J.fn)},this.inference);for(let J of j){const Y=w2(J,"global",{skipIfHasType:!0});switch(Z){case"start":this.event.start.push(Y);break;case"request":this.event.request.push(Y);break;case"parse":this.event.parse.push(Y);break;case"transform":this.event.transform.push(Y);break;case"beforeHandle":this.event.beforeHandle.push(Y);break;case"afterHandle":this.event.afterHandle.push(Y);break;case"mapResponse":this.event.mapResponse.push(Y);break;case"afterResponse":this.event.afterResponse.push(Y);break;case"trace":this.event.trace.push(Y);break;case"error":this.event.error.push(Y);break;case"stop":this.event.stop.push(Y);break}}return this}propagate(){return v(this.event.parse),v(this.event.transform),v(this.event.beforeHandle),v(this.event.afterHandle),v(this.event.mapResponse),v(this.event.afterResponse),v(this.event.trace),v(this.event.error),this}as($){const W={plugin:"scoped",global:"global"}[$];if(v(this.event.parse,W),v(this.event.transform,W),v(this.event.beforeHandle,W),v(this.event.afterHandle,W),v(this.event.mapResponse,W),v(this.event.afterResponse,W),v(this.event.trace,W),v(this.event.error,W),$==="plugin")this.validator.scoped=b0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=b0(this.validator.global,b0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,W,X){const Z=new Q0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.getServer=()=>this.getServer(),Z.inference=m0(this.inference),Z.extender={...this.extender};const j=typeof W==="object",J=(j?X:W)(Z);if(this.singleton=d(this.singleton,Z.singleton),this.definitions=d(this.definitions,Z.definitions),J.event.request.length)this.event.request=[...this.event.request||[],...J.event.request||[]];if(J.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...J.event.mapResponse||[]];return this.model(J.definitions.type),Object.values(Z.router.history).forEach(({method:Y,path:G,handler:K,hooks:B})=>{if(G=(j?"":this.config.prefix)+$+G,j){const U=W,w=B;this.add(Y,G,K,i(U,{...w||{},error:!w.error?J.event.error:Array.isArray(w.error)?[...w.error||{},...J.event.error||{}]:[w.error,...J.event.error||{}]}))}else this.add(Y,G,K,i(B,{error:J.event.error}),{skipPrefix:!0})}),this}guard($,W){if(!W){if(typeof $==="object"){this.applyMacro($);const j=$.as??"local";if(this.validator[j]={body:$.body??this.validator[j]?.body,headers:$.headers??this.validator[j]?.headers,params:$.params??this.validator[j]?.params,query:$.query??this.validator[j]?.query,response:$.response??this.validator[j]?.response,cookie:$.cookie??this.validator[j]?.cookie},$.parse)this.on({as:j},"parse",$.parse);if($.transform)this.on({as:j},"transform",$.transform);if($.beforeHandle)this.on({as:j},"beforeHandle",$.beforeHandle);if($.afterHandle)this.on({as:j},"afterHandle",$.afterHandle);if($.mapResponse)this.on({as:j},"mapResponse",$.mapResponse);if($.afterResponse)this.on({as:j},"afterResponse",$.afterResponse);if($.error)this.on({as:j},"error",$.error);if($.detail)if(this.config.detail)this.config.detail=d(Object.assign({},this.config.detail),$.detail);else this.config.detail=$.detail;if($?.tags)if(!this.config.detail)this.config.detail={tags:$.tags};else this.config.detail.tags=$.tags;return this}return this.guard({},$)}const X=new Q0({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.inference=m0(this.inference),X.extender={...this.extender};const Z=W(X);if(this.singleton=d(this.singleton,X.singleton),this.definitions=d(this.definitions,X.definitions),Z.getServer=()=>this.server,Z.event.request.length)this.event.request=[...this.event.request||[],...Z.event.request||[]];if(Z.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...Z.event.mapResponse||[]];return this.model(Z.definitions.type),Object.values(X.router.history).forEach(({method:j,path:J,handler:Y,hooks:G})=>{this.add(j,J,Y,i($,{...G||{},error:!G.error?Z.event.error:Array.isArray(G.error)?[...G.error||{},...Z.event.error||[]]:[G.error,...Z.event.error||[]]}))}),this}use($,W){if(W?.scoped)return this.guard({},(X)=>X.use($));if(Array.isArray($)){let X=this;for(let Z of $)X=this.use(Z);return X}if($ instanceof Promise)return this.promisedModules.add($.then((X)=>{if(typeof X==="function")return X(this);if(X instanceof Q0)return this._use(X).compile();if(typeof X.default==="function")return X.default(this);if(X.default instanceof Q0)return this._use(X.default);throw new Error('Invalid plugin type. Expected Elysia instance, function, or module with "default" as Elysia instance or function that returns Elysia instance.')}).then((X)=>X.compile())),this;return this._use($)}_use($){if(typeof $==="function"){const j=$(this);if(j instanceof Promise)return this.promisedModules.add(j.then((J)=>{if(J instanceof Q0){J.getServer=()=>this.getServer(),J.getGlobalRoutes=()=>this.getGlobalRoutes(),J.model(this.definitions.type),J.error(this.definitions.error);for(let{method:Y,path:G,handler:K,hooks:B}of Object.values(J.router.history))this.add(Y,G,K,i(B,{error:J.event.error}));return J.compile(),J}if(typeof J==="function")return J(this);if(typeof J.default==="function")return J.default(this);return this._use(J)}).then((J)=>J.compile())),this;return j}const{name:W,seed:X}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);const Z=$.config.scoped;if(Z){if(W){if(!(W in this.dependencies))this.dependencies[W]=[];const J=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:Y})=>J===Y))return this;this.dependencies[W].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);const j=[];for(let J=0;J<$.extender.macros.length;J++){const Y=this.extender.macros[J];if(j.includes(Y.checksum))$.extender.macros.splice(J,1),J--;j.push(Y.checksum)}if($.onRequest((J)=>{Object.assign(J,this.singleton.decorator),Object.assign(J.store,this.singleton.store)}),$.event.trace.length)$.event.trace.push(...$.event.trace);if(!$.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if($.event.error.length)$.event.error.push(...this.event.error);if($.config.aot)$.compile();if(Z===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let J of $.router.history)this.routeTree.set(J.method+`${$.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${$.config.prefix}${J.path}`,hooks:i(J.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let J of $.router.history)this.routeTree.set(J.method+`${$.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${$.config.prefix}${J.path}`,hooks:i(J.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),W){if(!(W in this.dependencies))this.dependencies[W]=[];const J=X!==void 0?N0(W+JSON.stringify(X)):0;if(!this.dependencies[W].some(({checksum:Y})=>J===Y))this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions)}else this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions);J1(this.extender.macros),J1(this.extender.higherOrderFunctions);const j=[];for(let J=0;J<this.extender.higherOrderFunctions.length;J++){const Y=this.extender.higherOrderFunctions[J];if(Y.checksum){if(j.includes(Y.checksum))this.extender.higherOrderFunctions.splice(J,1),J--;j.push(Y.checksum)}}this.inference={body:this.inference.body||$.inference.body,cookie:this.inference.cookie||$.inference.cookie,headers:this.inference.headers||$.inference.headers,query:this.inference.query||$.inference.query,set:this.inference.set||$.inference.set,server:this.inference.server||$.inference.server}}this.decorate($.singleton.decorator),this.state($.singleton.store),this.model($.definitions.type),this.error($.definitions.error),$.extender.macros=this.extender.macros.concat($.extender.macros);for(let{method:j,path:J,handler:Y,hooks:G}of Object.values($.router.history))this.add(j,J,Y,i(G,{error:$.event.error}));if(!Z)if(W){if(!(W in this.dependencies))this.dependencies[W]=[];const j=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:J})=>j===J))return this;this.dependencies[W].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:j,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:j,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((J)=>J?.subType==="derive").map((J)=>({fn:J.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((J)=>J?.subType==="resolve").map((J)=>({fn:J.toString(),stack:new Error().stack??""}))}),this.event=C1(this.event,L1($.event),j)}else this.event=C1(this.event,L1($.event));return this.validator.global=i(this.validator.global,{...$.validator.global}),this.validator.local=i(this.validator.local,{...$.validator.scoped}),this}macro($){const W={checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(W),this}mount($,W){if($ instanceof Q0||typeof $==="function"||$.length===0||$==="/"){const j=typeof $==="function"?$:$ instanceof Q0?$.compile().fetch:W instanceof Q0?W.compile().fetch:W,J=async({request:Y,path:G})=>{if(Y.method==="GET"||Y.method==="HEAD"||!Y.headers.get("content-type"))return j(new Request(R0(Y.url,G||"/"),Y));return j(new Request(R0(Y.url,G||"/"),{...Y,body:await Y.arrayBuffer()}))};return this.all("/*",J,{type:"none"}),this}const X=$.length;if(W instanceof Q0)W=W.compile().fetch;const Z=async({request:j,path:J})=>{if(j.method==="GET"||j.method==="HEAD"||!j.headers.get("content-type"))return W(new Request(R0(j.url,J.slice(X)||"/"),j));return W(new Request(R0(j.url,J.slice(X)||"/"),{...j,body:await j.arrayBuffer()}))};return this.all($,Z,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),Z,{type:"none"}),this}get($,W,X){return this.add("GET",$,W,X),this}post($,W,X){return this.add("POST",$,W,X),this}put($,W,X){return this.add("PUT",$,W,X),this}patch($,W,X){return this.add("PATCH",$,W,X),this}delete($,W,X){return this.add("DELETE",$,W,X),this}options($,W,X){return this.add("OPTIONS",$,W,X),this}all($,W,X){return this.add("ALL",$,W,X),this}head($,W,X){return this.add("HEAD",$,W,X),this}connect($,W,X){return this.add("CONNECT",$,W,X),this}route($,W,X,Z){return this.add($.toUpperCase(),W,X,Z,Z?.config),this}ws($,W){const X=W.transformMessage?Array.isArray(W.transformMessage)?W.transformMessage:[W.transformMessage]:void 0;let Z=null;const j=m(W?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=m(W?.response,{models:this.definitions.type,normalize:this.config.normalize}),Y=(G)=>{if(typeof G==="string"){const K=G?.charCodeAt(0);if(K===47||K===123)try{G=JSON.parse(G)}catch{}else if(Z1(G))G=+G}if(X?.length)for(let K=0;K<X.length;K++){const B=X[K](G);if(B!==void 0)G=B}return G};return this.route("$INTERNALWS",$,(G)=>{const{set:K,path:B,qi:U,headers:w,query:F,params:Q}=G;if(Z===null)Z=this.getServer();if(Z?.upgrade(G.request,{headers:typeof W.upgrade==="function"?W.upgrade(G):W.upgrade,data:{validator:J,open(z){W.open?.(new g0(z,G))},message:(z,D)=>{const M=Y(D);if(j?.Check(M)===!1)return void z.send(new q("message",j,M).message);W.message?.(new g0(z,G),M)},drain(z){W.drain?.(new g0(z,G))},close(z,D,M){W.close?.(new g0(z,G),D,M)}}}))return;return K.status=400,"Expected a websocket connection"},{beforeHandle:W.beforeHandle,transform:W.transform,headers:W.headers,params:W.params,query:W.query}),this}state($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}const{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.store)this.singleton.store[W]=d(this.singleton.store[W],X,{override:Z==="override"});else this.singleton.store[W]=X;return this}if(X===null)return this;return this.singleton.store=d(this.singleton.store,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X}else this.singleton.store=X(this.singleton.store);return this;default:if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X;return this}}decorate($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}const{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.decorator)this.singleton.decorator[W]=d(this.singleton.decorator[W],X,{override:Z==="override"});else this.singleton.decorator[W]=X;return this}if(X===null)return this;return this.singleton.decorator=d(this.singleton.decorator,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X}else this.singleton.decorator=X(this.singleton.decorator);return this;default:if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X;return this}}derive($,W){if(!W)W=$,$={as:"local"};const X={subType:"derive",fn:W};return this.onTransform($,X)}model($,W){switch(typeof $){case"object":return Object.entries($).forEach(([X,Z])=>{if(!(X in this.definitions.type))this.definitions.type[X]=Z}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=W,this}mapDerive($,W){if(!W)W=$,$={as:"local"};const X={subType:"mapDerive",fn:W};return this.onTransform($,X)}affix($,W,X){if(X==="")return this;const Z=["_","-"," "],j=(K)=>K[0].toUpperCase()+K.slice(1),J=$==="prefix"?(K,B)=>Z.includes(K.at(-1)??"")?K+B:K+j(B):Z.includes(X.at(-1)??"")?(K,B)=>B+K:(K,B)=>B+j(K),Y=(K)=>{const B={};switch(K){case"decorator":for(let U in this.singleton.decorator)B[J(X,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[J(X,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[J(X,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[J(X,U)]=this.definitions.error[U];this.definitions.error=B;break}},G=Array.isArray(W)?W:[W];for(let K of G.some((B)=>B==="all")?["decorator","state","model","error"]:G)Y(K);return this}prefix($,W){return this.affix("prefix",$,W)}suffix($,W){return this.affix("suffix",$,W)}compile(){if(this.fetch=this.config.aot?g1(this):y1(this),typeof this.server?.reload==="function")this.server.reload({...this.server||{},fetch:this.fetch});return this}handle=async($)=>this.fetch($);fetch=($)=>{return(this.fetch=this.config.aot?g1(this):y1(this))($)};handleError=async($,W)=>(this.handleError=this.config.aot?f1(this):A2(this))($,W);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,W)=>{if(typeof Bun==="undefined")throw new Error(".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch");if(this.compile(),typeof $==="string"){if(!Z1($))throw new Error("Port must be a numeric value");$=parseInt($)}const X=this.fetch,Z=typeof $==="object"?{development:!p0,reusePort:!0,...this.config.serve||{},...$||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H1||{}},fetch:X,error:this.outerErrorHandler}:{development:!p0,reusePort:!0,...this.config.serve||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H1||{}},port:$,fetch:X,error:this.outerErrorHandler};this.server=Bun?.serve(Z);for(let j=0;j<this.event.start.length;j++)this.event.start[j].fn(this);if(W)W(this.server);return process.on("beforeExit",()=>{if(this.server){this.server.stop(),this.server=null;for(let j=0;j<this.event.stop.length;j++)this.event.stop[j].fn(this)}}),this.promisedModules.then(()=>{Bun?.gc(!1)}),this};stop=async($)=>{if(!this.server)throw new Error("Elysia isn't running. Call `app.listen` to start the server.");if(this.server){if(this.server.stop($),this.server=null,this.event.stop.length)for(let W=0;W<this.event.stop.length;W++)this.event.stop[W].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{V as t,R0 as replaceUrlPath,V1 as replaceSchemaType,d0 as redirect,f as mergeObjectArray,i as mergeHook,o as mapValueError,x as mapResponse,y as mapEarlyResponse,Z0 as mapCompactResponse,m as getSchemaValidator,$1 as getResponseSchemaValidator,S3 as form,q1 as error,Q0 as default,J1 as deduplicateChecksum,m0 as cloneInference,N0 as checksum,q as ValidationError,O5 as TypeSystemPolicy,_0 as StatusMap,Y1 as ParseError,A0 as NotFoundError,X1 as InvertedStatusMap,v0 as InvalidCookieSignature,Q1 as InternalServerError,Q0 as Elysia,I0 as ERROR_CODE,i0 as ELYSIA_TRACE,P0 as ELYSIA_REQUEST_ID,V3 as ELYSIA_FORM_DATA,w0 as Cookie};
|
|
523
|
+
)\n`;let Y=j("mapResponse",{total:W.mapResponse.length,name:"context"});if(W.mapResponse.length)for(let G=0;G<W.mapResponse.length;G++){let K=W.mapResponse[G],B=Y.resolveChild(K.fn.name);X+=`\ncontext.response = error
|
|
524
|
+
error = ${C0(K)?"await":""} onMapResponse[${G}](context)\n`,B()}return Y.resolve(),X+=`\nreturn mapResponse(${J} error, set, context.request)\n}\n}`,Function("inject",X)({app:$,mapResponse:x,ERROR_CODE:I0,ElysiaCustomStatusResponse:l,ELYSIA_TRACE:i0,ELYSIA_REQUEST_ID:P0})};var y2=($)=>async(W)=>{let X=W.url,Z=X.indexOf("/",11),j=X.indexOf("?",Z+1),J=j===-1?X.substring(Z):X.substring(Z,j),Y={cookie:{},status:200,headers:{}},G=Object.assign({},$.singleton.decorator,{set:Y,store:$.singleton.store,request:W,path:J,qi:j,redirect:d0});try{for(let I=0;I<$.event.request.length;I++){let O=$.event.request[I].fn,P=O(G);if(P instanceof Promise)P=await P;if(P=g(P,Y),P)return G.response=P}let K=$.router.dynamic.find(W.method,J)??$.router.dynamic.find("ALL",J);if(!K)throw new A0;let{handle:B,hooks:U,validator:w,content:F}=K.store,Q;if(W.method!=="GET"&&W.method!=="HEAD")if(F)switch(F){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=p0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};let I=await W.formData();for(let O of I.keys()){if(Q[O])continue;let P=I.getAll(O);if(P.length===1)Q[O]=P[0];else Q[O]=P}break}else{let I=W.headers.get("content-type");if(I){let O=I.indexOf(";");if(O!==-1)I=I.slice(0,O);G.contentType=I;for(let P=0;P<U.parse.length;P++){let b=U.parse[P].fn,T=b(G,I);if(T instanceof Promise)T=await T;if(T){Q=T;break}}if(delete G.contentType,Q===void 0)switch(I){case"application/json":Q=await W.json();break;case"text/plain":Q=await W.text();break;case"application/x-www-form-urlencoded":Q=p0(await W.text());break;case"application/octet-stream":Q=await W.arrayBuffer();break;case"multipart/form-data":Q={};let P=await W.formData();for(let b of P.keys()){if(Q[b])continue;let T=P.getAll(b);if(T.length===1)Q[b]=T[0];else Q[b]=T}break}}}G.body=Q,G.params=K?.params||void 0,G.query=j===-1?{}:G2(X.substring(j+1)),G.headers={};for(let[I,O]of W.headers.entries())G.headers[I]=O;let z=Object.assign({},$.config?.cookie,w?.cookie?.config),D=W.headers.get("cookie");G.cookie=await e0(G.set,D,z?{secrets:z.secrets!==void 0?typeof z.secrets==="string"?z.secrets:z.secrets.join(","):void 0,sign:z.sign===!0?!0:z.sign!==void 0?typeof z.sign==="string"?z.sign:z.sign.join(","):void 0}:void 0);for(let I=0;I<U.transform.length;I++){let O=U.transform[I],P=O.fn(G);if(O.subType==="derive")if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);else if(P instanceof Promise)await P}if(w){if(w.createHeaders?.()){let I={};for(let O in W.headers)I[O]=W.headers.get(O);if(w.headers.Check(I)===!1)throw new q("header",w.headers,I)}else if(w.headers?.Decode)G.headers=w.headers.Decode(G.headers);if(w.createParams?.()?.Check(G.params)===!1)throw new q("params",w.params,G.params);else if(w.params?.Decode)G.params=w.params.Decode(G.params);if(w.createQuery?.()?.Check(G.query)===!1)throw new q("query",w.query,G.query);else if(w.query?.Decode)G.query=w.query.Decode(G.query);if(w.createCookie?.()){let I={};for(let[O,P]of Object.entries(G.cookie))I[O]=P.value;if(w.cookie.Check(I)===!1)throw new q("cookie",w.cookie,I);else if(w.cookie?.Decode)I=w.cookie.Decode(I)}if(w.createBody?.()?.Check(Q)===!1)throw new q("body",w.body,Q);else if(w.body?.Decode)G.body=w.body.Decode(Q)}for(let I=0;I<U.beforeHandle.length;I++){let O=U.beforeHandle[I],P=O.fn(G);if(O.subType==="resolve"){if(P instanceof Promise)Object.assign(G,await P);else Object.assign(G,P);continue}else if(P instanceof Promise)P=await P;if(P!==void 0){G.response=P;for(let T=0;T<U.afterHandle.length;T++){let E=U.afterHandle[T].fn(G);if(E instanceof Promise)E=await E;if(E)P=E}let b=g(P,G.set);if(b)return G.response=b}}let M=B(G);if(M instanceof Promise)M=await M;if(!U.afterHandle.length){let I=M instanceof l?M.code:Y.status?typeof Y.status==="string"?_0[Y.status]:Y.status:200,O=w?.createResponse?.()?.[I];if(O?.Check(M)===!1)throw new q("response",O,M);else if(O?.Decode)M=O.Decode(M)}else{G.response=M;for(let I=0;I<U.afterHandle.length;I++){let O=U.afterHandle[I].fn(G);if(O instanceof Promise)O=await O;let P=g(O,G.set);if(P!==void 0){let b=w?.response?.[P.status];if(b?.Check(P)===!1)throw new q("response",b,P);else if(b?.Decode)M=b.Decode(M);return G.response=P}}}if(G.set.cookie&&z?.sign){let I=!z.secrets?void 0:typeof z.secrets==="string"?z.secrets:z.secrets[0];if(z.sign===!0)for(let[O,P]of Object.entries(G.set.cookie))G.set.cookie[O].value=await x0(P.value,"${secret}");else{let O=w?.cookie?.schema?.properties;for(let P of z.sign){if(!(P in O))continue;if(G.set.cookie[P]?.value)G.set.cookie[P].value=await x0(G.set.cookie[P].value,I)}}}return G.response=x(M,G.set)}catch(K){if(K.status)Y.status=K.status;return $.handleError(G,K)}finally{for(let K of $.event.afterResponse)await K.fn(G)}},A1=($)=>async(W,X)=>{let Z=Object.assign(W,{error:X,code:X.code});Z.set=W.set;for(let j=0;j<$.event.error.length;j++){let Y=$.event.error[j].fn(Z);if(Y instanceof Promise)Y=await Y;if(Y!==void 0&&Y!==null)return W.response=x(Y,W.set)}return new Response(typeof X.cause==="string"?X.cause:X.message,{headers:W.set.headers,status:X.status??500})};import{TypeSystemPolicy as O5}from"@sinclair/typebox/system";class Q0{config;server=null;dependencies={};_routes={};_types={Prefix:"",Scoped:!1,Singleton:{},Definitions:{},Metadata:{}};_ephemeral={};_volatile={};static version=R2;version=R2;singleton={decorator:{},store:{},derive:{},resolve:{}};get store(){return this.singleton.store}get decorator(){return this.singleton.decorator}get _scoped(){return this.config.scoped}definitions={type:{},error:{}};extender={macros:[],higherOrderFunctions:[]};validator={global:null,scoped:null,local:null,getCandidate(){return b0(b0(this.global,this.scoped),this.local)}};event={start:[],request:[],parse:[],transform:[],beforeHandle:[],afterHandle:[],mapResponse:[],afterResponse:[],trace:[],error:[],stop:[]};telemetry={stack:void 0};router={http:new M0,ws:new M0,dynamic:new M0,static:{http:{static:{},handlers:[],map:{},all:""},ws:{}},history:[]};routeTree=new Map;get routes(){return this.router.history}getGlobalRoutes(){return this.router.history}inference={body:!1,cookie:!1,headers:!1,query:!1,set:!1,server:!1};getServer(){return this.server}_promisedModules;get promisedModules(){if(!this._promisedModules)this._promisedModules=new T2;return this._promisedModules}constructor($={}){if($.tags)if(!$.detail)$.detail={tags:$.tags};else $.detail.tags=$.tags;if($.nativeStaticResponse===void 0)$.nativeStaticResponse=!0;if(this.config={},this.applyConfig($??{}),$?.analytic&&($?.name||$?.seed!==void 0))this.telemetry.stack=new Error().stack}env($,W=Bun?.env??process.env){if(m($,{dynamic:!0,additionalProperties:!0,coerce:!0}).Check(W)===!1){let Z=new q("env",$,W);throw new Error(Z.all.map((j)=>j.summary).join("\n"))}return this}wrap($){return this.extender.higherOrderFunctions.push({checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$}),this}applyMacro($){if(this.extender.macros.length){let W=F1({globalHook:this.event,localHook:$}),X={events:{global:this.event,local:$},onParse:W("parse"),onTransform:W("transform"),onBeforeHandle:W("beforeHandle"),onAfterHandle:W("afterHandle"),mapResponse:W("mapResponse"),onAfterResponse:W("afterResponse"),onError:W("error")};for(let Z of this.extender.macros)_1(Z.fn(X),$)}}applyConfig($){return this.config={prefix:"",aot:!0,strictPath:!1,global:!1,analytic:!1,normalize:!0,...$,cookie:{path:"/",...$?.cookie},experimental:$?.experimental??{},seed:$?.seed===void 0?"":$?.seed},this}get models(){let $={};for(let[W,X]of Object.entries(this.definitions.type))$[W]=m(X);return $}add($,W,X,Z,{allowMeta:j=!1,skipPrefix:J=!1}={allowMeta:!1,skipPrefix:!1}){if(Z=M1(Z),W!==""&&W.charCodeAt(0)!==47)W="/"+W;if(this.config.prefix&&!J&&!this.config.scoped)W=this.config.prefix+W;if(Z?.type)switch(Z.type){case"text":Z.type="text/plain";break;case"json":Z.type="application/json";break;case"formdata":Z.type="multipart/form-data";break;case"urlencoded":Z.type="application/x-www-form-urlencoded";break;case"arrayBuffer":Z.type="application/octet-stream";break;default:break}let Y=this.definitions.type,G=!this.config.aot,K={...this.validator.getCandidate()},B={body:Z?.body??K?.body,headers:Z?.headers??K?.headers,params:Z?.params??K?.params,query:Z?.query??K?.query,cookie:Z?.cookie??K?.cookie,response:Z?.response??K?.response},U=()=>B.cookie?W2({validator:B.cookie,defaultConfig:this.config.cookie,config:B.cookie?.config??{},dynamic:G,models:Y}):void 0,w=this.config.normalize,F=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.schema===!0?{body:m(B.body,{dynamic:G,models:Y,normalize:w,additionalCoerce:S2()}),headers:m(B.headers,{dynamic:G,models:Y,additionalProperties:!this.config.normalize,coerce:!0,additionalCoerce:D0()}),params:m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()}),query:m(B.query,{dynamic:G,models:Y,normalize:w,coerce:!0,additionalCoerce:D0()}),cookie:U(),response:$2(B.response,{dynamic:G,models:Y,normalize:w})}:{createBody(){if(this.body)return this.body;return this.body=m(B.body,{dynamic:G,models:Y,normalize:w,additionalCoerce:S2()})},createHeaders(){if(this.headers)return this.headers;return this.headers=m(B.headers,{dynamic:G,models:Y,additionalProperties:!w,coerce:!0,additionalCoerce:D0()})},createParams(){if(this.params)return this.params;return this.params=m(B.params,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()})},createQuery(){if(this.query)return this.query;return this.query=m(B.query,{dynamic:G,models:Y,coerce:!0,additionalCoerce:D0()})},createCookie(){if(this.cookie)return this.cookie;return this.cookie=U()},createResponse(){if(this.response)return this.response;return this.response=$2(B.response,{dynamic:G,models:Y,normalize:w})}},Q=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(Z=i(Z,K),Z.tags)if(!Z.detail)Z.detail={tags:Z.tags};else Z.detail.tags=Z.tags;if(c(this.config.detail))Z.detail=d(Object.assign({},this.config.detail),Z.detail);this.applyMacro(Z);let z=i(this.event,Z);if(this.config.aot===!1){if(this.router.dynamic.add($,W,{validator:F,hooks:z,content:Z?.type,handle:X}),this.config.strictPath===!1)this.router.dynamic.add($,Q,{validator:F,hooks:z,content:Z?.type,handle:X});this.router.history.push({method:$,path:W,composed:null,handler:X,hooks:z});return}let D=this.config.precompile===!0||typeof this.config.precompile==="object"&&this.config.precompile.compose===!0,M=m0(this.inference),I=typeof X!=="function"?Q1(X,z,this.setHeaders):void 0,O=typeof X!=="function"?Y1(X,z,this.setHeaders):void 0;if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[W]=O();let P=()=>I1({app:this,path:W,method:$,localHook:i(Z),hooks:z,validator:F,handler:X,allowMeta:j,inference:M}),b=D?P():(L)=>{return P()(L)},T=this.router.history.length;if(this.routeTree.has($+W))for(let L=0;L<this.router.history.length;L++){let f=this.router.history[L];if(f.path===W&&f.method===$){let R=this.router.history.splice(L,1)[0];if(R&&this.routeTree.has(R?.method+R?.path))this.routeTree.delete(R.method+R.path)}}else this.routeTree.set($+W,T);this.router.history.push({method:$,path:W,composed:b,handler:X,hooks:z});let E=this.router.static.http,r={handler:D?b:void 0,compile:P};if($==="$INTERNALWS"){let L=this.config.strictPath?void 0:W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(W.indexOf(":")===-1&&W.indexOf("*")===-1){let f=E.handlers.length;if(E.handlers.push((R)=>(E.handlers[f]=P())(R)),this.router.static.ws[W]=f,L)this.router.static.ws[L]=f}else if(this.router.ws.add("ws",W,r),L)this.router.ws.add("ws",L,r);return}if(W.indexOf(":")===-1&&W.indexOf("*")===-1){let L=E.handlers.length;if(E.handlers.push(I??((R)=>(E.handlers[L]=P())(R))),!E.map[W])E.map[W]={code:""};let f=I?"":"ctx";if($==="ALL")E.map[W].all=`default: return st[${L}](${f})\n`;else E.map[W].code=`case '${$}': return st[${L}](${f})\n${E.map[W].code}`;if(!this.config.strictPath){if(!E.map[Q])E.map[Q]={code:""};if(this.config.nativeStaticResponse===!0&&O&&($==="GET"||$==="ALL"))this.router.static.http.static[Q]=O();if($==="ALL")E.map[Q].all=`default: return st[${L}](${f})\n`;else E.map[Q].code=`case '${$}': return st[${L}](${f})\n${E.map[Q].code}`}}else if(this.router.http.add($,W,r),!this.config.strictPath){let L=W.endsWith("/")?W.slice(0,W.length-1):W+"/";if(this.config.nativeStaticResponse===!0&&I&&($==="GET"||$==="ALL"))this.router.static.http.static[L]=I();this.router.http.add($,L,r)}}setHeaders;headers($){if(!$)return this;if(!this.setHeaders)this.setHeaders={};return this.setHeaders=d(this.setHeaders,$),this}onStart($){return this.on("start",$),this}onRequest($){return this.on("request",$),this}onParse($,W){if(!W)return this.on("parse",$);return this.on($,"parse",W)}onTransform($,W){if(!W)return this.on("transform",$);return this.on($,"transform",W)}resolve($,W){if(!W)W=$,$={as:"local"};let X={subType:"resolve",fn:W};return this.onBeforeHandle($,X)}mapResolve($,W){if(!W)W=$,$={as:"local"};let X={subType:"mapResolve",fn:W};return this.onBeforeHandle($,X)}onBeforeHandle($,W){if(!W)return this.on("beforeHandle",$);return this.on($,"beforeHandle",W)}onAfterHandle($,W){if(!W)return this.on("afterHandle",$);return this.on($,"afterHandle",W)}mapResponse($,W){if(!W)return this.on("mapResponse",$);return this.on($,"mapResponse",W)}onAfterResponse($,W){if(!W)return this.on("afterResponse",$);return this.on($,"afterResponse",W)}trace($,W){if(!W)W=$,$={as:"local"};if(!Array.isArray(W))W=[W];for(let X of W)this.on($,"trace",D1(X));return this}error($,W){switch(typeof $){case"string":return W.prototype[I0]=$,this.definitions.error[$]=W,this;case"function":return this.definitions.error=$(this.definitions.error),this}for(let[X,Z]of Object.entries($))Z.prototype[I0]=X,this.definitions.error[X]=Z;return this}onError($,W){if(!W)return this.on("error",$);return this.on($,"error",W)}onStop($){return this.on("stop",$),this}on($,W,X){let Z;switch(typeof $){case"string":Z=$,X=W;break;case"object":if(Z=W,!Array.isArray(W)&&typeof W==="object")X=W;break}if(Array.isArray(X))X=n(X);else if(typeof X==="function")X=[{fn:X}];else X=[X];let j=X;for(let J of j)J.scope=typeof $==="string"?"local":$?.as??"local";if(Z!=="trace")r0({[Z]:j.map((J)=>J.fn)},this.inference);for(let J of j){let Y=w1(J,"global",{skipIfHasType:!0});switch(Z){case"start":this.event.start.push(Y);break;case"request":this.event.request.push(Y);break;case"parse":this.event.parse.push(Y);break;case"transform":this.event.transform.push(Y);break;case"beforeHandle":this.event.beforeHandle.push(Y);break;case"afterHandle":this.event.afterHandle.push(Y);break;case"mapResponse":this.event.mapResponse.push(Y);break;case"afterResponse":this.event.afterResponse.push(Y);break;case"trace":this.event.trace.push(Y);break;case"error":this.event.error.push(Y);break;case"stop":this.event.stop.push(Y);break}}return this}propagate(){return v(this.event.parse),v(this.event.transform),v(this.event.beforeHandle),v(this.event.afterHandle),v(this.event.mapResponse),v(this.event.afterResponse),v(this.event.trace),v(this.event.error),this}as($){let W={plugin:"scoped",global:"global"}[$];if(v(this.event.parse,W),v(this.event.transform,W),v(this.event.beforeHandle,W),v(this.event.afterHandle,W),v(this.event.mapResponse,W),v(this.event.afterResponse,W),v(this.event.trace,W),v(this.event.error,W),$==="plugin")this.validator.scoped=b0(this.validator.scoped,this.validator.local),this.validator.local=null;else if($==="global")this.validator.global=b0(this.validator.global,b0(this.validator.scoped,this.validator.local)),this.validator.scoped=null,this.validator.local=null;return this}group($,W,X){let Z=new Q0({...this.config,prefix:""});Z.singleton={...this.singleton},Z.definitions={...this.definitions},Z.getServer=()=>this.getServer(),Z.inference=m0(this.inference),Z.extender={...this.extender};let j=typeof W==="object",J=(j?X:W)(Z);if(this.singleton=d(this.singleton,Z.singleton),this.definitions=d(this.definitions,Z.definitions),J.event.request.length)this.event.request=[...this.event.request||[],...J.event.request||[]];if(J.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...J.event.mapResponse||[]];return this.model(J.definitions.type),Object.values(Z.router.history).forEach(({method:Y,path:G,handler:K,hooks:B})=>{if(G=(j?"":this.config.prefix)+$+G,j){let U=W,w=B;this.add(Y,G,K,i(U,{...w||{},error:!w.error?J.event.error:Array.isArray(w.error)?[...w.error||{},...J.event.error||{}]:[w.error,...J.event.error||{}]}))}else this.add(Y,G,K,i(B,{error:J.event.error}),{skipPrefix:!0})}),this}guard($,W){if(!W){if(typeof $==="object"){this.applyMacro($);let j=$.as??"local";if(this.validator[j]={body:$.body??this.validator[j]?.body,headers:$.headers??this.validator[j]?.headers,params:$.params??this.validator[j]?.params,query:$.query??this.validator[j]?.query,response:$.response??this.validator[j]?.response,cookie:$.cookie??this.validator[j]?.cookie},$.parse)this.on({as:j},"parse",$.parse);if($.transform)this.on({as:j},"transform",$.transform);if($.beforeHandle)this.on({as:j},"beforeHandle",$.beforeHandle);if($.afterHandle)this.on({as:j},"afterHandle",$.afterHandle);if($.mapResponse)this.on({as:j},"mapResponse",$.mapResponse);if($.afterResponse)this.on({as:j},"afterResponse",$.afterResponse);if($.error)this.on({as:j},"error",$.error);if($.detail)if(this.config.detail)this.config.detail=d(Object.assign({},this.config.detail),$.detail);else this.config.detail=$.detail;if($?.tags)if(!this.config.detail)this.config.detail={tags:$.tags};else this.config.detail.tags=$.tags;return this}return this.guard({},$)}let X=new Q0({...this.config,prefix:""});X.singleton={...this.singleton},X.definitions={...this.definitions},X.inference=m0(this.inference),X.extender={...this.extender};let Z=W(X);if(this.singleton=d(this.singleton,X.singleton),this.definitions=d(this.definitions,X.definitions),Z.getServer=()=>this.server,Z.event.request.length)this.event.request=[...this.event.request||[],...Z.event.request||[]];if(Z.event.mapResponse.length)this.event.mapResponse=[...this.event.mapResponse||[],...Z.event.mapResponse||[]];return this.model(Z.definitions.type),Object.values(X.router.history).forEach(({method:j,path:J,handler:Y,hooks:G})=>{this.add(j,J,Y,i($,{...G||{},error:!G.error?Z.event.error:Array.isArray(G.error)?[...G.error||{},...Z.event.error||[]]:[G.error,...Z.event.error||[]]}))}),this}use($,W){if(W?.scoped)return this.guard({},(X)=>X.use($));if(Array.isArray($)){let X=this;for(let Z of $)X=this.use(Z);return X}if($ instanceof Promise)return this.promisedModules.add($.then((X)=>{if(typeof X==="function")return X(this);if(X instanceof Q0)return this._use(X).compile();if(typeof X.default==="function")return X.default(this);if(X.default instanceof Q0)return this._use(X.default);throw new Error('Invalid plugin type. Expected Elysia instance, function, or module with "default" as Elysia instance or function that returns Elysia instance.')}).then((X)=>X.compile())),this;return this._use($)}_use($){if(typeof $==="function"){let j=$(this);if(j instanceof Promise)return this.promisedModules.add(j.then((J)=>{if(J instanceof Q0){J.getServer=()=>this.getServer(),J.getGlobalRoutes=()=>this.getGlobalRoutes(),J.model(this.definitions.type),J.error(this.definitions.error);for(let{method:Y,path:G,handler:K,hooks:B}of Object.values(J.router.history))this.add(Y,G,K,i(B,{error:J.event.error}));return J.compile(),J}if(typeof J==="function")return J(this);if(typeof J.default==="function")return J.default(this);return this._use(J)}).then((J)=>J.compile())),this;return j}let{name:W,seed:X}=$.config;$.getServer=()=>this.getServer(),$.getGlobalRoutes=()=>this.getGlobalRoutes(),$.model(this.definitions.type),$.error(this.definitions.error);let Z=$.config.scoped;if(Z){if(W){if(!(W in this.dependencies))this.dependencies[W]=[];let J=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:Y})=>J===Y))return this;this.dependencies[W].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:J,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton.decorator,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((Y)=>Y.subType==="derive").map((Y)=>({fn:Y.fn.toString(),stack:new Error().stack??""}))})}$.extender.macros=this.extender.macros.concat($.extender.macros);let j=[];for(let J=0;J<$.extender.macros.length;J++){let Y=this.extender.macros[J];if(j.includes(Y.checksum))$.extender.macros.splice(J,1),J--;j.push(Y.checksum)}if($.onRequest((J)=>{Object.assign(J,this.singleton.decorator),Object.assign(J.store,this.singleton.store)}),$.event.trace.length)$.event.trace.push(...$.event.trace);if(!$.config.prefix)console.warn("It's recommended to use scoped instance with a prefix to prevent collision routing with other instance.");if($.event.error.length)$.event.error.push(...this.event.error);if($.config.aot)$.compile();if(Z===!0&&$.config.prefix){this.mount($.config.prefix+"/",$.fetch);for(let J of $.router.history)this.routeTree.set(J.method+`${$.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${$.config.prefix}${J.path}`,hooks:i(J.hooks,{error:this.event.error})})}else{this.mount($.fetch);for(let J of $.router.history)this.routeTree.set(J.method+`${$.config.prefix}${J.path}`,this.router.history.length),this.router.history.push({...J,path:`${$.config.prefix}${J.path}`,hooks:i(J.hooks,{error:this.event.error})})}return this}else{if(this.headers($.setHeaders),W){if(!(W in this.dependencies))this.dependencies[W]=[];let J=X!==void 0?N0(W+JSON.stringify(X)):0;if(!this.dependencies[W].some(({checksum:Y})=>J===Y))this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions)}else this.extender.macros=this.extender.macros.concat($.extender.macros),this.extender.higherOrderFunctions=this.extender.higherOrderFunctions.concat($.extender.higherOrderFunctions);J2(this.extender.macros),J2(this.extender.higherOrderFunctions);let j=[];for(let J=0;J<this.extender.higherOrderFunctions.length;J++){let Y=this.extender.higherOrderFunctions[J];if(Y.checksum){if(j.includes(Y.checksum))this.extender.higherOrderFunctions.splice(J,1),J--;j.push(Y.checksum)}}this.inference={body:this.inference.body||$.inference.body,cookie:this.inference.cookie||$.inference.cookie,headers:this.inference.headers||$.inference.headers,query:this.inference.query||$.inference.query,set:this.inference.set||$.inference.set,server:this.inference.server||$.inference.server}}this.decorate($.singleton.decorator),this.state($.singleton.store),this.model($.definitions.type),this.error($.definitions.error),$.extender.macros=this.extender.macros.concat($.extender.macros);for(let{method:j,path:J,handler:Y,hooks:G}of Object.values($.router.history))this.add(j,J,Y,i(G,{error:$.event.error}));if(!Z)if(W){if(!(W in this.dependencies))this.dependencies[W]=[];let j=X!==void 0?N0(W+JSON.stringify(X)):0;if(this.dependencies[W].some(({checksum:J})=>j===J))return this;this.dependencies[W].push(!this.config?.analytic?{name:$.config.name,seed:$.config.seed,checksum:j,dependencies:$.dependencies}:{name:$.config.name,seed:$.config.seed,checksum:j,dependencies:$.dependencies,stack:$.telemetry.stack,routes:$.router.history,decorators:$.singleton,store:$.singleton.store,type:$.definitions.type,error:$.definitions.error,derive:$.event.transform.filter((J)=>J?.subType==="derive").map((J)=>({fn:J.toString(),stack:new Error().stack??""})),resolve:$.event.transform.filter((J)=>J?.subType==="resolve").map((J)=>({fn:J.toString(),stack:new Error().stack??""}))}),this.event=C2(this.event,L2($.event),j)}else this.event=C2(this.event,L2($.event));return this.validator.global=i(this.validator.global,{...$.validator.global}),this.validator.local=i(this.validator.local,{...$.validator.scoped}),this}macro($){let W={checksum:N0(JSON.stringify({name:this.config.name,seed:this.config.seed,content:$.toString()})),fn:$};return this.extender.macros.push(W),this}mount($,W){if($ instanceof Q0||typeof $==="function"||$.length===0||$==="/"){let j=typeof $==="function"?$:$ instanceof Q0?$.compile().fetch:W instanceof Q0?W.compile().fetch:W,J=async({request:Y,path:G})=>{if(Y.method==="GET"||Y.method==="HEAD"||!Y.headers.get("content-type"))return j(new Request(R0(Y.url,G||"/"),Y));return j(new Request(R0(Y.url,G||"/"),{...Y,body:await Y.arrayBuffer()}))};return this.all("/*",J,{type:"none"}),this}let X=$.length;if(W instanceof Q0)W=W.compile().fetch;let Z=async({request:j,path:J})=>{if(j.method==="GET"||j.method==="HEAD"||!j.headers.get("content-type"))return W(new Request(R0(j.url,J.slice(X)||"/"),j));return W(new Request(R0(j.url,J.slice(X)||"/"),{...j,body:await j.arrayBuffer()}))};return this.all($,Z,{type:"none"}),this.all($+($.endsWith("/")?"*":"/*"),Z,{type:"none"}),this}get($,W,X){return this.add("GET",$,W,X),this}post($,W,X){return this.add("POST",$,W,X),this}put($,W,X){return this.add("PUT",$,W,X),this}patch($,W,X){return this.add("PATCH",$,W,X),this}delete($,W,X){return this.add("DELETE",$,W,X),this}options($,W,X){return this.add("OPTIONS",$,W,X),this}all($,W,X){return this.add("ALL",$,W,X),this}head($,W,X){return this.add("HEAD",$,W,X),this}connect($,W,X){return this.add("CONNECT",$,W,X),this}route($,W,X,Z){return this.add($.toUpperCase(),W,X,Z,Z?.config),this}ws($,W){let X=W.transformMessage?Array.isArray(W.transformMessage)?W.transformMessage:[W.transformMessage]:void 0,Z=null,j=m(W?.body,{models:this.definitions.type,normalize:this.config.normalize}),J=m(W?.response,{models:this.definitions.type,normalize:this.config.normalize}),Y=(G)=>{if(typeof G==="string"){let K=G?.charCodeAt(0);if(K===47||K===123)try{G=JSON.parse(G)}catch{}else if(Z2(G))G=+G}if(X?.length)for(let K=0;K<X.length;K++){let B=X[K](G);if(B!==void 0)G=B}return G};return this.route("$INTERNALWS",$,(G)=>{let{set:K,path:B,qi:U,headers:w,query:F,params:Q}=G;if(Z===null)Z=this.getServer();if(Z?.upgrade(G.request,{headers:typeof W.upgrade==="function"?W.upgrade(G):W.upgrade,data:{validator:J,open(z){W.open?.(new g0(z,G))},message:(z,D)=>{let M=Y(D);if(j?.Check(M)===!1)return void z.send(new q("message",j,M).message);W.message?.(new g0(z,G),M)},drain(z){W.drain?.(new g0(z,G))},close(z,D,M){W.close?.(new g0(z,G),D,M)}}}))return;return K.status=400,"Expected a websocket connection"},{beforeHandle:W.beforeHandle,transform:W.transform,headers:W.headers,params:W.params,query:W.query}),this}state($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}let{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.store)this.singleton.store[W]=d(this.singleton.store[W],X,{override:Z==="override"});else this.singleton.store[W]=X;return this}if(X===null)return this;return this.singleton.store=d(this.singleton.store,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X}else this.singleton.store=X(this.singleton.store);return this;default:if(Z==="override"||!(W in this.singleton.store))this.singleton.store[W]=X;return this}}decorate($,W,X){if(W===void 0)X=$,$={as:"append"},W="";else if(X===void 0){if(typeof $==="string")X=W,W=$,$={as:"append"};else if(typeof $==="object")X=W,W=""}let{as:Z}=$;if(typeof W!=="string")return this;switch(typeof X){case"object":if(W){if(W in this.singleton.decorator)this.singleton.decorator[W]=d(this.singleton.decorator[W],X,{override:Z==="override"});else this.singleton.decorator[W]=X;return this}if(X===null)return this;return this.singleton.decorator=d(this.singleton.decorator,X,{override:Z==="override"}),this;case"function":if(W){if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X}else this.singleton.decorator=X(this.singleton.decorator);return this;default:if(Z==="override"||!(W in this.singleton.decorator))this.singleton.decorator[W]=X;return this}}derive($,W){if(!W)W=$,$={as:"local"};let X={subType:"derive",fn:W};return this.onTransform($,X)}model($,W){switch(typeof $){case"object":return Object.entries($).forEach(([X,Z])=>{if(!(X in this.definitions.type))this.definitions.type[X]=Z}),this;case"function":return this.definitions.type=$(this.definitions.type),this}return this.definitions.type[$]=W,this}mapDerive($,W){if(!W)W=$,$={as:"local"};let X={subType:"mapDerive",fn:W};return this.onTransform($,X)}affix($,W,X){if(X==="")return this;let Z=["_","-"," "],j=(K)=>K[0].toUpperCase()+K.slice(1),J=$==="prefix"?(K,B)=>Z.includes(K.at(-1)??"")?K+B:K+j(B):Z.includes(X.at(-1)??"")?(K,B)=>B+K:(K,B)=>B+j(K),Y=(K)=>{let B={};switch(K){case"decorator":for(let U in this.singleton.decorator)B[J(X,U)]=this.singleton.decorator[U];this.singleton.decorator=B;break;case"state":for(let U in this.singleton.store)B[J(X,U)]=this.singleton.store[U];this.singleton.store=B;break;case"model":for(let U in this.definitions.type)B[J(X,U)]=this.definitions.type[U];this.definitions.type=B;break;case"error":for(let U in this.definitions.error)B[J(X,U)]=this.definitions.error[U];this.definitions.error=B;break}},G=Array.isArray(W)?W:[W];for(let K of G.some((B)=>B==="all")?["decorator","state","model","error"]:G)Y(K);return this}prefix($,W){return this.affix("prefix",$,W)}suffix($,W){return this.affix("suffix",$,W)}compile(){if(this.fetch=this.config.aot?g2(this):y2(this),typeof this.server?.reload==="function")this.server.reload({...this.server||{},fetch:this.fetch});return this}handle=async($)=>this.fetch($);fetch=($)=>{return(this.fetch=this.config.aot?g2(this):y2(this))($)};handleError=async($,W)=>(this.handleError=this.config.aot?f2(this):A1(this))($,W);outerErrorHandler=($)=>new Response($.message||$.name||"Error",{status:$?.status??500});listen=($,W)=>{if(typeof Bun==="undefined")throw new Error(".listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch");if(this.compile(),typeof $==="string"){if(!Z2($))throw new Error("Port must be a numeric value");$=parseInt($)}let X=this.fetch,Z=typeof $==="object"?{development:!l0,reusePort:!0,...this.config.serve||{},...$||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H2||{}},fetch:X,error:this.outerErrorHandler}:{development:!l0,reusePort:!0,...this.config.serve||{},static:this.router.static.http.static,websocket:{...this.config.websocket||{},...H2||{}},port:$,fetch:X,error:this.outerErrorHandler};this.server=Bun?.serve(Z);for(let j=0;j<this.event.start.length;j++)this.event.start[j].fn(this);if(W)W(this.server);return process.on("beforeExit",()=>{if(this.server){this.server.stop(),this.server=null;for(let j=0;j<this.event.stop.length;j++)this.event.stop[j].fn(this)}}),this.promisedModules.then(()=>{Bun?.gc(!1)}),this};stop=async($)=>{if(!this.server)throw new Error("Elysia isn't running. Call `app.listen` to start the server.");if(this.server){if(this.server.stop($),this.server=null,this.event.stop.length)for(let W=0;W<this.event.stop.length;W++)this.event.stop[W].fn(this)}};get modules(){return Promise.all(this.promisedModules.promises)}}export{V as t,R0 as replaceUrlPath,V2 as replaceSchemaType,d0 as redirect,y as mergeObjectArray,i as mergeHook,o as mapValueError,x as mapResponse,g as mapEarlyResponse,Z0 as mapCompactResponse,m as getSchemaValidator,$2 as getResponseSchemaValidator,S3 as form,q2 as error,Q0 as default,J2 as deduplicateChecksum,m0 as cloneInference,N0 as checksum,q as ValidationError,O5 as TypeSystemPolicy,_0 as StatusMap,Y2 as ParseError,A0 as NotFoundError,X2 as InvertedStatusMap,v0 as InvalidCookieSignature,Q2 as InternalServerError,Q0 as Elysia,I0 as ERROR_CODE,i0 as ELYSIA_TRACE,P0 as ELYSIA_REQUEST_ID,V3 as ELYSIA_FORM_DATA,w0 as Cookie};
|
|
525
525
|
|
|
526
|
-
//# debugId=
|
|
526
|
+
//# debugId=06C4D7F8AD2D044064756E2164756E21
|