elysia 1.4.14 → 1.4.15

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.
@@ -5,7 +5,7 @@
5
5
  "'use strict'\n\nvar UTF8_ACCEPT = 12\nvar UTF8_REJECT = 0\nvar UTF8_DATA = [\n // The first part of the table maps bytes to character to a transition.\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7,\n 10, 9, 9, 9, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n\n // The second part of the table maps a state to a new state when adding a\n // transition.\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 12, 0, 0, 0, 0, 24, 36, 48, 60, 72, 84, 96,\n 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\n // The third part maps the current transition to a mask that needs to apply\n // to the byte.\n 0x7F, 0x3F, 0x3F, 0x3F, 0x00, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07\n]\n\nfunction decodeURIComponent (uri) {\n var percentPosition = uri.indexOf('%')\n if (percentPosition === -1) return uri\n\n var length = uri.length\n var decoded = ''\n var last = 0\n var codepoint = 0\n var startOfOctets = percentPosition\n var state = UTF8_ACCEPT\n\n while (percentPosition > -1 && percentPosition < length) {\n var high = hexCodeToInt(uri[percentPosition + 1], 4)\n var low = hexCodeToInt(uri[percentPosition + 2], 0)\n var byte = high | low\n var type = UTF8_DATA[byte]\n state = UTF8_DATA[256 + state + type]\n codepoint = (codepoint << 6) | (byte & UTF8_DATA[364 + type])\n\n if (state === UTF8_ACCEPT) {\n decoded += uri.slice(last, startOfOctets)\n\n decoded += (codepoint <= 0xFFFF)\n ? String.fromCharCode(codepoint)\n : String.fromCharCode(\n (0xD7C0 + (codepoint >> 10)),\n (0xDC00 + (codepoint & 0x3FF))\n )\n\n codepoint = 0\n last = percentPosition + 3\n percentPosition = startOfOctets = uri.indexOf('%', last)\n } else if (state === UTF8_REJECT) {\n return null\n } else {\n percentPosition += 3\n if (percentPosition < length && uri.charCodeAt(percentPosition) === 37) continue\n return null\n }\n }\n\n return decoded + uri.slice(last)\n}\n\nvar HEX = {\n '0': 0,\n '1': 1,\n '2': 2,\n '3': 3,\n '4': 4,\n '5': 5,\n '6': 6,\n '7': 7,\n '8': 8,\n '9': 9,\n 'a': 10,\n 'A': 10,\n 'b': 11,\n 'B': 11,\n 'c': 12,\n 'C': 12,\n 'd': 13,\n 'D': 13,\n 'e': 14,\n 'E': 14,\n 'f': 15,\n 'F': 15\n}\n\nfunction hexCodeToInt (c, shift) {\n var i = HEX[c]\n return i === undefined ? 255 : i << shift\n}\n\nmodule.exports = decodeURIComponent\n",
6
6
  "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = parse;\nexports.serialize = serialize;\n/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = <subdomain>\n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * <subdomain> = <label> | <subdomain> \".\" <label>\n * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n * Labels must be 63 characters or less.\n * 'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp> = <let-dig> | \"-\"\n * <let-dig> = <letter> | <digit>\n * <letter> = any one of the 52 alphabetic characters A through Z in\n * upper case and a through z in lower case\n * <digit> = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value = <any CHAR except CTLs or \";\">\n * CHAR = %x01-7F\n * ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\nconst __toString = Object.prototype.toString;\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nfunction parse(str, options) {\n const obj = new NullObject();\n const len = str.length;\n // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n if (len < 2)\n return obj;\n const dec = options?.decode || decode;\n let index = 0;\n do {\n const eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1)\n break; // No more cookie pairs.\n const colonIdx = str.indexOf(\";\", index);\n const endIdx = colonIdx === -1 ? len : colonIdx;\n if (eqIdx > endIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n const keyStartIdx = startIndex(str, index, eqIdx);\n const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n const key = str.slice(keyStartIdx, keyEndIdx);\n // only assign once\n if (obj[key] === undefined) {\n let valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n let valEndIdx = endIndex(str, endIdx, valStartIdx);\n const value = dec(str.slice(valStartIdx, valEndIdx));\n obj[key] = value;\n }\n index = endIdx + 1;\n } while (index < len);\n return obj;\n}\nfunction startIndex(str, index, max) {\n do {\n const code = str.charCodeAt(index);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n return index;\n } while (++index < max);\n return max;\n}\nfunction endIndex(str, index, min) {\n while (index > min) {\n const code = str.charCodeAt(--index);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n return index + 1;\n }\n return min;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n */\nfunction serialize(name, val, options) {\n const enc = options?.encode || encodeURIComponent;\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(`argument name is invalid: ${name}`);\n }\n const value = enc(val);\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`argument val is invalid: ${val}`);\n }\n let str = name + \"=\" + value;\n if (!options)\n return str;\n if (options.maxAge !== undefined) {\n if (!Number.isInteger(options.maxAge)) {\n throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);\n }\n str += \"; Max-Age=\" + options.maxAge;\n }\n if (options.domain) {\n if (!domainValueRegExp.test(options.domain)) {\n throw new TypeError(`option domain is invalid: ${options.domain}`);\n }\n str += \"; Domain=\" + options.domain;\n }\n if (options.path) {\n if (!pathValueRegExp.test(options.path)) {\n throw new TypeError(`option path is invalid: ${options.path}`);\n }\n str += \"; Path=\" + options.path;\n }\n if (options.expires) {\n if (!isDate(options.expires) ||\n !Number.isFinite(options.expires.valueOf())) {\n throw new TypeError(`option expires is invalid: ${options.expires}`);\n }\n str += \"; Expires=\" + options.expires.toUTCString();\n }\n if (options.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (options.secure) {\n str += \"; Secure\";\n }\n if (options.partitioned) {\n str += \"; Partitioned\";\n }\n if (options.priority) {\n const priority = typeof options.priority === \"string\"\n ? options.priority.toLowerCase()\n : undefined;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(`option priority is invalid: ${options.priority}`);\n }\n }\n if (options.sameSite) {\n const sameSite = typeof options.sameSite === \"string\"\n ? options.sameSite.toLowerCase()\n : options.sameSite;\n switch (sameSite) {\n case true:\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);\n }\n }\n return str;\n}\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str) {\n if (str.indexOf(\"%\") === -1)\n return str;\n try {\n return decodeURIComponent(str);\n }\n catch (e) {\n return str;\n }\n}\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val) {\n return __toString.call(val) === \"[object Date]\";\n}\n//# sourceMappingURL=index.js.map",
7
7
  "// @bun\nvar Y=(v,b)=>{let A=b?.length?{}:null;if(A)for(let Q of b)A[Q.part.charCodeAt(0)]=Q;return{part:v,store:null,inert:A,params:null,wildcardStore:null}},k=(v,b)=>({...v,part:b}),T=(v)=>({name:v,store:null,inert:null});class _{config;root={};history=[];deferred=[];constructor(v={}){this.config=v;if(v.lazy)this.find=this.lazyFind;if(v.onParam&&!Array.isArray(v.onParam))this.config.onParam=[this.config.onParam]}static regex={static:/:.+?(?=\\/|$)/,params:/:.+?(?=\\/|$)/g,optionalParams:/(\\/:\\w+\\?)/g};lazyFind=(v,b)=>{if(!this.config.lazy)return this.find;return this.build(),this.find(v,b)};build(){if(!this.config.lazy)return;for(let[v,b,A]of this.deferred)this.add(v,b,A,{lazy:!1,ignoreHistory:!0});this.deferred=[],this.find=(v,b)=>{let A=this.root[v];if(!A)return null;return $(b,b.length,A,0,this.config.onParam)}}add(v,b,A,{ignoreError:Q=!1,ignoreHistory:O=!1,lazy:V=this.config.lazy}={}){if(V)return this.find=this.lazyFind,this.deferred.push([v,b,A]),A;if(typeof b!==\"string\")throw new TypeError(\"Route path must be a string\");if(b===\"\")b=\"/\";else if(b[0]!==\"/\")b=`/${b}`;let X=b[b.length-1]===\"*\",J=b.match(_.regex.optionalParams);if(J){let F=b.replaceAll(\"?\",\"\");this.add(v,F,A,{ignoreError:Q,ignoreHistory:O,lazy:V});for(let B=0;B<J.length;B++){let D=b.replace(J[B],\"\");this.add(v,D,A,{ignoreError:!0,ignoreHistory:O,lazy:V})}return A}if(J)b=b.replaceAll(\"?\",\"\");if(this.history.find(([F,B,D])=>F===v&&B===b))return A;if(X||J&&b.charCodeAt(b.length-1)===63)b=b.slice(0,-1);if(!O)this.history.push([v,b,A]);let K=b.split(_.regex.static),G=b.match(_.regex.params)||[];if(K[K.length-1]===\"\")K.pop();let q;if(!this.root[v])q=this.root[v]=Y(\"/\");else q=this.root[v];let U=0;for(let F=0;F<K.length;++F){let B=K[F];if(F>0){let D=G[U++].slice(1);if(q.params===null)q.params=T(D);else if(q.params.name!==D)if(Q)return A;else throw new Error(`Cannot create route \"${b}\" with parameter \"${D}\" because a route already exists with a different parameter name (\"${q.params.name}\") in the same location`);let S=q.params;if(S.inert===null){q=S.inert=Y(B);continue}q=S.inert}for(let D=0;;){if(D===B.length){if(D<q.part.length){let S=k(q,q.part.slice(D));Object.assign(q,Y(B,[S]))}break}if(D===q.part.length){if(q.inert===null)q.inert={};let S=q.inert[B.charCodeAt(D)];if(S){q=S,B=B.slice(D),D=0;continue}let Z=Y(B.slice(D));q.inert[B.charCodeAt(D)]=Z,q=Z;break}if(B[D]!==q.part[D]){let S=k(q,q.part.slice(D)),Z=Y(B.slice(D));Object.assign(q,Y(q.part.slice(0,D),[S,Z])),q=Z;break}++D}}if(U<G.length){let B=G[U].slice(1);if(q.params===null)q.params=T(B);else if(q.params.name!==B)if(Q)return A;else throw new Error(`Cannot create route \"${b}\" with parameter \"${B}\" because a route already exists with a different parameter name (\"${q.params.name}\") in the same location`);if(q.params.store===null)q.params.store=A;return q.params.store}if(X){if(q.wildcardStore===null)q.wildcardStore=A;return q.wildcardStore}if(q.store===null)q.store=A;return q.store}find(v,b){let A=this.root[v];if(!A)return null;return $(b,b.length,A,0,this.config.onParam)}}var $=(v,b,A,Q,O)=>{let V=A.part,X=V.length,J=Q+X;if(X>1){if(J>b)return null;if(X<15){for(let K=1,G=Q+1;K<X;++K,++G)if(V.charCodeAt(K)!==v.charCodeAt(G))return null}else if(v.slice(Q,J)!==V)return null}if(J===b){if(A.store!==null)return{store:A.store,params:{}};if(A.wildcardStore!==null)return{store:A.wildcardStore,params:{\"*\":\"\"}};return null}if(A.inert!==null){let K=A.inert[v.charCodeAt(J)];if(K!==void 0){let G=$(v,b,K,J,O);if(G!==null)return G}}if(A.params!==null){let{store:K,name:G,inert:q}=A.params,U=v.indexOf(\"/\",J);if(U!==J){if(U===-1||U>=b){if(K!==null){let F={};if(F[G]=v.substring(J,b),O)for(let B=0;B<O.length;B++){let D=O[B](F[G],G);if(D!==void 0)F[G]=D}return{store:K,params:F}}}else if(q!==null){let F=$(v,b,q,U,O);if(F!==null){if(F.params[G]=v.substring(J,U),O)for(let B=0;B<O.length;B++){let D=O[B](F.params[G],G);if(D!==void 0)F.params[G]=D}return F}}}}if(A.wildcardStore!==null)return{store:A.wildcardStore,params:{\"*\":v.substring(J,b)}};return null},w=_;export{w as default,_ as Memoirist};\n\n//# debugId=7CB9F845001CCC1464756E2164756E21\n",
8
- "import { Memoirist } from 'memoirist'\nimport {\n\tKind,\n\ttype TObject,\n\ttype TSchema,\n\ttype TModule,\n\ttype TRef,\n\ttype TAnySchema\n} from '@sinclair/typebox'\n\nimport fastDecodeURIComponent from 'fast-decode-uri-component'\nimport type { Context, PreContext } from './context'\n\nimport { t } from './type-system'\nimport { mergeInference, sucrose, type Sucrose } from './sucrose'\n\nimport type { WSLocalHook } from './ws/types'\n\nimport { BunAdapter } from './adapter/bun/index'\nimport { WebStandardAdapter } from './adapter/web-standard/index'\nimport type { ElysiaAdapter } from './adapter/types'\n\nimport { env } from './universal/env'\nimport type { ListenCallback, Serve, Server } from './universal/server'\n\nimport {\n\tcloneInference,\n\tdeduplicateChecksum,\n\tfnToContainer,\n\tgetLoosePath,\n\tlocalHookToLifeCycleStore,\n\tmergeDeep,\n\tmergeSchemaValidator,\n\tPromiseGroup,\n\tpromoteEvent,\n\tisNotEmpty,\n\tencodePath,\n\tlifeCycleToArray,\n\tsupportPerMethodInlineHandler,\n\tredirect,\n\temptySchema,\n\tinsertStandaloneValidator\n} from './utils'\n\nimport {\n\tcoercePrimitiveRoot,\n\tstringToStructureCoercions,\n\tgetSchemaValidator,\n\tgetResponseSchemaValidator,\n\tgetCookieValidator,\n\tElysiaTypeCheck,\n\tqueryCoercions\n} from './schema'\nimport {\n\tcomposeHandler,\n\tcomposeGeneralHandler,\n\tcomposeErrorHandler\n} from './compose'\n\nimport { createTracer } from './trace'\n\nimport {\n\tmergeHook,\n\tchecksum,\n\tmergeLifeCycle,\n\tfilterGlobalHook,\n\tasHookType,\n\treplaceUrlPath\n} from './utils'\n\nimport {\n\tcreateDynamicErrorHandler,\n\tcreateDynamicHandler,\n\ttype DynamicHandler\n} from './dynamic-handle'\n\nimport {\n\tstatus,\n\tERROR_CODE,\n\tValidationError,\n\ttype ParseError,\n\ttype NotFoundError,\n\ttype InternalServerError,\n\ttype ElysiaCustomStatusResponse\n} from './error'\n\nimport type { TraceHandler } from './trace'\n\nimport type {\n\tElysiaConfig,\n\tSingletonBase,\n\tDefinitionBase,\n\tHandler,\n\tComposedHandler,\n\tInputSchema,\n\tLocalHook,\n\tAnyLocalHook,\n\tMergeSchema,\n\tRouteSchema,\n\tUnwrapRoute,\n\tInternalRoute,\n\tHTTPMethod,\n\tSchemaValidator,\n\tPreHandler,\n\tBodyHandler,\n\tOptionalHandler,\n\tErrorHandler,\n\tLifeCycleStore,\n\tMaybePromise,\n\tPrettify,\n\tAddPrefix,\n\tAddSuffix,\n\tAddPrefixCapitalize,\n\tAddSuffixCapitalize,\n\tMaybeArray,\n\tGracefulHandler,\n\tMapResponse,\n\tChecksum,\n\tMacroManager,\n\tMacroToProperty,\n\tTransformHandler,\n\tMetadataBase,\n\tRouteBase,\n\tCreateEden,\n\tComposeElysiaResponse,\n\tInlineHandler,\n\tHookContainer,\n\tLifeCycleType,\n\tEphemeralType,\n\tExcludeElysiaResponse,\n\tModelValidator,\n\tContextAppendType,\n\tReconcile,\n\tAfterResponseHandler,\n\tHigherOrderFunction,\n\tResolvePath,\n\tJoinPath,\n\tValidatorLayer,\n\tMergeElysiaInstances,\n\tMacro,\n\tMacroToContext,\n\tStandaloneValidator,\n\tGuardSchemaType,\n\tOr,\n\tDocumentDecoration,\n\tAfterHandler,\n\tNonResolvableMacroKey,\n\tStandardSchemaV1Like,\n\tElysiaHandlerToResponseSchema,\n\tElysiaHandlerToResponseSchemas,\n\tExtractErrorFromHandle,\n\tElysiaHandlerToResponseSchemaAmbiguous,\n\tGuardLocalHook,\n\tPickIfExists,\n\tSimplifyToSchema,\n\tUnionResponseStatus,\n\tCreateEdenResponse,\n\tMacroProperty,\n\tMaybeValueOrVoidFunction,\n\tIntersectIfObject,\n\tIntersectIfObjectSchema,\n\tEmptyRouteSchema,\n\tUnknownRouteSchema,\n\tMaybeFunction,\n\tInlineHandlerNonMacro\n} from './types'\n\nexport type AnyElysia = Elysia<any, any, any, any, any, any, any>\n\n/**\n * ### Elysia Server\n * Main instance to create web server using Elysia\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia } from 'elysia'\n *\n * new Elysia()\n * .get(\"/\", () => \"Hello\")\n * .listen(3000)\n * ```\n */\nexport default class Elysia<\n\tconst in out BasePath extends string = '',\n\tconst in out Singleton extends SingletonBase = {\n\t\tdecorator: {}\n\t\tstore: {}\n\t\tderive: {}\n\t\tresolve: {}\n\t},\n\tconst in out Definitions extends DefinitionBase = {\n\t\ttypebox: {}\n\t\terror: {}\n\t},\n\tconst in out Metadata extends MetadataBase = {\n\t\tschema: {}\n\t\tstandaloneSchema: {}\n\t\tmacro: {}\n\t\tmacroFn: {}\n\t\tparser: {}\n\t\tresponse: {}\n\t},\n\tconst out Routes extends RouteBase = {},\n\t// ? scoped\n\tconst in out Ephemeral extends EphemeralType = {\n\t\tderive: {}\n\t\tresolve: {}\n\t\tschema: {}\n\t\tstandaloneSchema: {}\n\t\tresponse: {}\n\t},\n\t// ? local\n\tconst in out Volatile extends EphemeralType = {\n\t\tderive: {}\n\t\tresolve: {}\n\t\tschema: {}\n\t\tstandaloneSchema: {}\n\t\tresponse: {}\n\t}\n> {\n\tconfig: ElysiaConfig<BasePath>\n\n\tserver: Server | null = null\n\tprivate dependencies: { [key in string]: Checksum[] } = {}\n\n\t'~Prefix' = '' as BasePath\n\t'~Singleton' = null as unknown as Singleton\n\t'~Definitions' = null as unknown as Definitions\n\t'~Metadata' = null as unknown as Metadata\n\t'~Ephemeral' = null as unknown as Ephemeral\n\t'~Volatile' = null as unknown as Volatile\n\t'~Routes' = null as unknown as Routes\n\n\tprotected singleton = {\n\t\tdecorator: {},\n\t\tstore: {},\n\t\tderive: {},\n\t\tresolve: {}\n\t} as SingletonBase\n\n\tget store(): Singleton['store'] {\n\t\treturn this.singleton.store\n\t}\n\n\tget decorator(): Singleton['decorator'] {\n\t\treturn this.singleton.decorator\n\t}\n\n\tprotected definitions = {\n\t\ttypebox: t.Module({}),\n\t\ttype: {} as Record<string, TSchema | StandardSchemaV1Like>,\n\t\terror: {} as Record<string, Error>\n\t}\n\n\tprotected extender = {\n\t\tmacro: <Macro>{},\n\t\thigherOrderFunctions: <HookContainer<HigherOrderFunction>[]>[]\n\t}\n\n\tprotected validator: ValidatorLayer = {\n\t\tglobal: null,\n\t\tscoped: null,\n\t\tlocal: null,\n\t\tgetCandidate() {\n\t\t\tif (!this.global && !this.scoped && !this.local)\n\t\t\t\treturn {\n\t\t\t\t\tbody: undefined,\n\t\t\t\t\theaders: undefined,\n\t\t\t\t\tparams: undefined,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t\tcookie: undefined,\n\t\t\t\t\tresponse: undefined\n\t\t\t\t}\n\n\t\t\treturn mergeSchemaValidator(\n\t\t\t\tmergeSchemaValidator(this.global, this.scoped),\n\t\t\t\tthis.local\n\t\t\t)\n\t\t}\n\t}\n\n\tprotected standaloneValidator: StandaloneValidator = {\n\t\tglobal: null,\n\t\tscoped: null,\n\t\tlocal: null\n\t}\n\n\tevent: Partial<LifeCycleStore> = {}\n\n\tprotected telemetry:\n\t\t| undefined\n\t\t| {\n\t\t\t\tstack: string | undefined\n\t\t }\n\n\trouter = {\n\t\t'~http': undefined as\n\t\t\t| Memoirist<{\n\t\t\t\t\tcompile: Function\n\t\t\t\t\thandler?: ComposedHandler\n\t\t\t }>\n\t\t\t| undefined,\n\t\tget http() {\n\t\t\tif (!this['~http'])\n\t\t\t\tthis['~http'] = new Memoirist({\n\t\t\t\t\tlazy: true,\n\t\t\t\t\tonParam: fastDecodeURIComponent\n\t\t\t\t})\n\n\t\t\treturn this['~http']\n\t\t},\n\t\t'~dynamic': undefined as Memoirist<DynamicHandler> | undefined,\n\t\t// Use in non-AOT mode\n\t\tget dynamic() {\n\t\t\tif (!this['~dynamic'])\n\t\t\t\tthis['~dynamic'] = new Memoirist({\n\t\t\t\t\tonParam: fastDecodeURIComponent\n\t\t\t\t})\n\n\t\t\treturn this['~dynamic']\n\t\t},\n\t\t// Static Router\n\t\tstatic: {} as { [path in string]: { [method in string]: number } },\n\t\t// Native Static Response\n\t\tresponse: {} as {\n\t\t\t[path: string]:\n\t\t\t\t| MaybePromise<Response | undefined>\n\t\t\t\t| { [method: string]: MaybePromise<Response | undefined> }\n\t\t},\n\t\thistory: [] as InternalRoute[]\n\t}\n\n\tprotected routeTree: Record<string, number> = {}\n\n\tget routes(): InternalRoute[] {\n\t\treturn this.router.history\n\t}\n\n\tprotected getGlobalRoutes(): InternalRoute[] {\n\t\treturn this.router.history\n\t}\n\n\tprotected getGlobalDefinitions() {\n\t\treturn this.definitions\n\t}\n\n\tprotected inference: Sucrose.Inference = {\n\t\tbody: false,\n\t\tcookie: false,\n\t\theaders: false,\n\t\tquery: false,\n\t\tset: false,\n\t\tserver: false,\n\t\tpath: false,\n\t\troute: false,\n\t\turl: false\n\t}\n\n\tprivate getServer() {\n\t\treturn this.server\n\t}\n\n\tprivate getParent(): Elysia | null {\n\t\treturn null\n\t}\n\n\t'~parser': { [K in string]: BodyHandler<any, any> } = {}\n\n\tprivate _promisedModules: PromiseGroup | undefined\n\tprivate get promisedModules() {\n\t\tif (!this._promisedModules)\n\t\t\tthis._promisedModules = new PromiseGroup(console.error, () => {\n\t\t\t\t// this.compile()\n\t\t\t})\n\n\t\treturn this._promisedModules\n\t}\n\n\tconstructor(config: ElysiaConfig<BasePath> = {}) {\n\t\tif (config.tags) {\n\t\t\tif (!config.detail)\n\t\t\t\tconfig.detail = {\n\t\t\t\t\ttags: config.tags\n\t\t\t\t}\n\t\t\telse config.detail.tags = config.tags\n\t\t}\n\n\t\tthis.config = {\n\t\t\taot: env.ELYSIA_AOT !== 'false',\n\t\t\tnativeStaticResponse: true,\n\t\t\tsystemRouter: true,\n\t\t\tencodeSchema: true,\n\t\t\tnormalize: true,\n\t\t\t...config,\n\t\t\tprefix: config.prefix\n\t\t\t\t? config.prefix.charCodeAt(0) === 47\n\t\t\t\t\t? config.prefix\n\t\t\t\t\t: `/${config.prefix}`\n\t\t\t\t: (undefined as any),\n\t\t\tcookie: {\n\t\t\t\tpath: '/',\n\t\t\t\t...config?.cookie\n\t\t\t},\n\t\t\texperimental: config?.experimental ?? {},\n\t\t\tseed: config?.seed === undefined ? '' : config?.seed\n\t\t}\n\n\t\tthis['~adapter'] =\n\t\t\tconfig.adapter ??\n\t\t\t(typeof Bun !== 'undefined' ? BunAdapter : WebStandardAdapter)\n\n\t\tif (config?.analytic && (config?.name || config?.seed !== undefined))\n\t\t\tthis.telemetry = {\n\t\t\t\tstack: new Error().stack\n\t\t\t}\n\t}\n\n\t'~adapter': ElysiaAdapter\n\n\tenv(model: TObject<any>, _env = env) {\n\t\tconst validator = getSchemaValidator(model, {\n\t\t\tmodules: this.definitions.typebox,\n\t\t\tdynamic: true,\n\t\t\tadditionalProperties: true,\n\t\t\tcoerce: true,\n\t\t\tsanitize: () => this.config.sanitize\n\t\t})\n\n\t\tif (validator.Check(_env) === false) {\n\t\t\tconst error = new ValidationError('env', model, _env)\n\n\t\t\tthrow new Error(error.all.map((x) => x.summary).join('\\n'))\n\t\t}\n\n\t\treturn this\n\t}\n\n\t/**\n\t * @private DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n\t * @version 1.1.0\n\t *\n\t * ! Do not use unless you know exactly what you are doing\n\t * ? Add Higher order function to Elysia.fetch\n\t */\n\twrap(fn: HigherOrderFunction) {\n\t\tthis.extender.higherOrderFunctions.push({\n\t\t\tchecksum: checksum(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tname: this.config.name,\n\t\t\t\t\tseed: this.config.seed,\n\t\t\t\t\tcontent: fn.toString()\n\t\t\t\t})\n\t\t\t),\n\t\t\tfn\n\t\t})\n\n\t\treturn this\n\t}\n\n\tget models(): {\n\t\t[K in keyof Definitions['typebox']]: ModelValidator<\n\t\t\tDefinitions['typebox'][K]\n\t\t>\n\t} & {\n\t\tmodules:\n\t\t\t| TModule<Extract<Definitions['typebox'], TAnySchema>>\n\t\t\t| Extract<Definitions['typebox'], StandardSchemaV1Like>\n\t} {\n\t\tconst models: Record<string, ElysiaTypeCheck<TSchema>> = {}\n\n\t\tfor (const name of Object.keys(this.definitions.type))\n\t\t\tmodels[name] = getSchemaValidator(\n\t\t\t\tthis.definitions.typebox.Import(name as never)\n\t\t\t)\n\n\t\t// @ts-expect-error\n\t\tmodels.modules = this.definitions.typebox\n\n\t\treturn models as any\n\t}\n\n\tprivate add(\n\t\tmethod: HTTPMethod,\n\t\tpath: string,\n\t\thandle: Handler<any, any, any> | any,\n\t\tlocalHook?: AnyLocalHook,\n\t\toptions?: {\n\t\t\tallowMeta?: boolean\n\t\t\tskipPrefix?: boolean\n\t\t}\n\t) {\n\t\tconst skipPrefix = options?.skipPrefix ?? false\n\t\tconst allowMeta = options?.allowMeta ?? false\n\n\t\tlocalHook ??= {}\n\n\t\tthis.applyMacro(localHook)\n\n\t\tlet standaloneValidators = [] as InputSchema[]\n\n\t\tif (localHook.standaloneValidator)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tlocalHook.standaloneValidator\n\t\t\t)\n\n\t\tif (this.standaloneValidator.local)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tthis.standaloneValidator.local\n\t\t\t)\n\n\t\tif (this.standaloneValidator.scoped)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tthis.standaloneValidator.scoped\n\t\t\t)\n\n\t\tif (this.standaloneValidator.global)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tthis.standaloneValidator.global\n\t\t\t)\n\n\t\tif (path !== '' && path.charCodeAt(0) !== 47) path = '/' + path\n\t\tif (this.config.prefix && !skipPrefix) path = this.config.prefix + path\n\n\t\tif (localHook?.type)\n\t\t\tswitch (localHook.type) {\n\t\t\t\tcase 'text':\n\t\t\t\t\tlocalHook.type = 'text/plain'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'json':\n\t\t\t\t\tlocalHook.type = 'application/json'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'formdata':\n\t\t\t\t\tlocalHook.type = 'multipart/form-data'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'urlencoded':\n\t\t\t\t\tlocalHook.type = 'application/x-www-form-urlencoded'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\tlocalHook.type = 'application/octet-stream'\n\t\t\t\t\tbreak\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak\n\t\t\t}\n\n\t\tconst instanceValidator = this.validator.getCandidate()\n\n\t\tconst cloned = {\n\t\t\tbody: localHook?.body ?? (instanceValidator?.body as any),\n\t\t\theaders: localHook?.headers ?? (instanceValidator?.headers as any),\n\t\t\tparams: localHook?.params ?? (instanceValidator?.params as any),\n\t\t\tquery: localHook?.query ?? (instanceValidator?.query as any),\n\t\t\tcookie: localHook?.cookie ?? (instanceValidator?.cookie as any),\n\t\t\tresponse:\n\t\t\t\tlocalHook?.response ?? (instanceValidator?.response as any)\n\t\t}\n\n\t\tconst shouldPrecompile =\n\t\t\tthis.config.precompile === true ||\n\t\t\t(typeof this.config.precompile === 'object' &&\n\t\t\t\tthis.config.precompile.compose === true)\n\n\t\tconst createValidator = () => {\n\t\t\tconst models = this.definitions.type\n\t\t\tconst dynamic = !this.config.aot\n\n\t\t\tconst normalize = this.config.normalize\n\t\t\tconst modules = this.definitions.typebox\n\n\t\t\tconst sanitize = () => this.config.sanitize\n\n\t\t\tconst cookieValidator = () => {\n\t\t\t\tif (cloned.cookie || standaloneValidators.find((x) => x.cookie))\n\t\t\t\t\treturn getCookieValidator({\n\t\t\t\t\t\tmodules,\n\t\t\t\t\t\tvalidator: cloned.cookie,\n\t\t\t\t\t\tdefaultConfig: this.config.cookie,\n\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\tconfig: cloned.cookie?.config ?? {},\n\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\tmodels,\n\t\t\t\t\t\tvalidators: standaloneValidators.map((x) => x.cookie),\n\t\t\t\t\t\tsanitize\n\t\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn shouldPrecompile\n\t\t\t\t? {\n\t\t\t\t\t\tbody: getSchemaValidator(cloned.body, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\tadditionalCoerce: coercePrimitiveRoot(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map((x) => x.body),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\theaders: getSchemaValidator(cloned.headers, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tadditionalProperties: true,\n\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\tadditionalCoerce: stringToStructureCoercions(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.headers\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tparams: getSchemaValidator(cloned.params, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\tadditionalCoerce: stringToStructureCoercions(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.params\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tquery: getSchemaValidator(cloned.query, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\tadditionalCoerce: queryCoercions(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.query\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcookie: cookieValidator(),\n\t\t\t\t\t\tresponse: getResponseSchemaValidator(cloned.response, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.response as any\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t: ({\n\t\t\t\t\t\tcreateBody() {\n\t\t\t\t\t\t\tif (this.body) return this.body\n\n\t\t\t\t\t\t\treturn (this.body = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.body,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tadditionalCoerce: coercePrimitiveRoot(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.body\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateHeaders() {\n\t\t\t\t\t\t\tif (this.headers) return this.headers\n\n\t\t\t\t\t\t\treturn (this.headers = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.headers,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tadditionalProperties: !normalize,\n\t\t\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\t\t\tadditionalCoerce:\n\t\t\t\t\t\t\t\t\t\tstringToStructureCoercions(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.headers\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateParams() {\n\t\t\t\t\t\t\tif (this.params) return this.params\n\n\t\t\t\t\t\t\treturn (this.params = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.params,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\t\t\tadditionalCoerce:\n\t\t\t\t\t\t\t\t\t\tstringToStructureCoercions(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.params\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateQuery() {\n\t\t\t\t\t\t\tif (this.query) return this.query\n\n\t\t\t\t\t\t\treturn (this.query = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.query,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\t\t\tadditionalCoerce: queryCoercions(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.query\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateCookie() {\n\t\t\t\t\t\t\tif (this.cookie) return this.cookie\n\n\t\t\t\t\t\t\treturn (this.cookie = cookieValidator())\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateResponse() {\n\t\t\t\t\t\t\tif (this.response) return this.response\n\n\t\t\t\t\t\t\treturn (this.response = getResponseSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.response,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.response as any\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t}\n\t\t\t\t\t} as any)\n\t\t}\n\n\t\tif (\n\t\t\tinstanceValidator.body ||\n\t\t\tinstanceValidator.cookie ||\n\t\t\tinstanceValidator.headers ||\n\t\t\tinstanceValidator.params ||\n\t\t\tinstanceValidator.query ||\n\t\t\tinstanceValidator.response\n\t\t)\n\t\t\tlocalHook = mergeHook(localHook, instanceValidator)\n\n\t\tif (localHook.tags) {\n\t\t\tif (!localHook.detail)\n\t\t\t\tlocalHook.detail = {\n\t\t\t\t\ttags: localHook.tags\n\t\t\t\t}\n\t\t\telse localHook.detail.tags = localHook.tags\n\t\t}\n\n\t\tif (isNotEmpty(this.config.detail))\n\t\t\tlocalHook.detail = mergeDeep(\n\t\t\t\tObject.assign({}, this.config.detail!),\n\t\t\t\tlocalHook.detail\n\t\t\t)\n\n\t\tconst hooks = isNotEmpty(this.event)\n\t\t\t? mergeHook(this.event, localHookToLifeCycleStore(localHook))\n\t\t\t: { ...lifeCycleToArray(localHookToLifeCycleStore(localHook)) }\n\n\t\tif (standaloneValidators.length)\n\t\t\tObject.assign(hooks, {\n\t\t\t\tstandaloneValidator: standaloneValidators\n\t\t\t})\n\n\t\tif (this.config.aot === false) {\n\t\t\tconst validator = createValidator()\n\n\t\t\tthis.router.dynamic.add(method, path, {\n\t\t\t\tvalidator,\n\t\t\t\thooks,\n\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\thandle,\n\t\t\t\troute: path\n\t\t\t})\n\n\t\t\tconst encoded = encodePath(path, { dynamic: true })\n\t\t\tif (path !== encoded) {\n\t\t\t\tthis.router.dynamic.add(method, encoded, {\n\t\t\t\t\tvalidator,\n\t\t\t\t\thooks,\n\t\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\t\thandle,\n\t\t\t\t\troute: path\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!this.config.strictPath) {\n\t\t\t\tconst loosePath = getLoosePath(path)\n\t\t\t\tthis.router.dynamic.add(method, loosePath, {\n\t\t\t\t\tvalidator,\n\t\t\t\t\thooks,\n\t\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\t\thandle,\n\t\t\t\t\troute: path\n\t\t\t\t})\n\n\t\t\t\tconst encoded = encodePath(loosePath)\n\t\t\t\tif (loosePath !== encoded)\n\t\t\t\t\tthis.router.dynamic.add(method, loosePath, {\n\t\t\t\t\t\tvalidator,\n\t\t\t\t\t\thooks,\n\t\t\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\t\t\thandle,\n\t\t\t\t\t\troute: path\n\t\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.router.history.push({\n\t\t\t\tmethod,\n\t\t\t\tpath,\n\t\t\t\tcomposed: null,\n\t\t\t\thandler: handle,\n\t\t\t\tcompile: undefined as any,\n\t\t\t\thooks\n\t\t\t})\n\n\t\t\treturn\n\t\t}\n\n\t\tconst adapter = this['~adapter'].handler\n\n\t\tconst nativeStaticHandler =\n\t\t\ttypeof handle !== 'function'\n\t\t\t\t? () => {\n\t\t\t\t\t\tconst context: PreContext = {\n\t\t\t\t\t\t\tredirect,\n\t\t\t\t\t\t\trequest: this['~adapter'].isWebStandard\n\t\t\t\t\t\t\t\t? new Request(`http://ely.sia${path}`, {\n\t\t\t\t\t\t\t\t\t\tmethod\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t: (undefined as any as Request),\n\t\t\t\t\t\t\tserver: null,\n\t\t\t\t\t\t\tset: {\n\t\t\t\t\t\t\t\theaders: Object.assign({}, this.setHeaders)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\tstore: this.store\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.event.request?.map((x) => {\n\t\t\t\t\t\t\t\tif (typeof x.fn === 'function')\n\t\t\t\t\t\t\t\t\treturn x.fn(context)\n\n\t\t\t\t\t\t\t\t// @ts-ignore just in case\n\t\t\t\t\t\t\t\tif (typeof x === 'function') return x(context)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tlet res\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcontext.error = error\n\n\t\t\t\t\t\t\tthis.event.error?.some((x) => {\n\t\t\t\t\t\t\t\tif (typeof x.fn === 'function')\n\t\t\t\t\t\t\t\t\treturn (res = x.fn(context))\n\n\t\t\t\t\t\t\t\tif (typeof x === 'function')\n\t\t\t\t\t\t\t\t\t// @ts-ignore just in case\n\t\t\t\t\t\t\t\t\treturn (res = x(context))\n\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\tif (res !== undefined) handle = res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst fn = adapter.createNativeStaticHandler?.(\n\t\t\t\t\t\t\thandle,\n\t\t\t\t\t\t\thooks,\n\t\t\t\t\t\t\tcontext.set as Context['set']\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\treturn fn instanceof Promise\n\t\t\t\t\t\t\t? fn.then((fn) => {\n\t\t\t\t\t\t\t\t\tif (fn) return fn\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t: fn?.()\n\t\t\t\t\t}\n\t\t\t\t: undefined\n\n\t\tconst useNativeStaticResponse =\n\t\t\tthis.config.nativeStaticResponse === true\n\n\t\tconst addResponsePath = (path: string) => {\n\t\t\tif (!useNativeStaticResponse || !nativeStaticHandler) return\n\n\t\t\tif (supportPerMethodInlineHandler) {\n\t\t\t\tif (this.router.response[path])\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\tthis.router.response[path]![method] = nativeStaticHandler()\n\t\t\t\telse\n\t\t\t\t\tthis.router.response[path] = {\n\t\t\t\t\t\t[method]: nativeStaticHandler()\n\t\t\t\t\t}\n\t\t\t} else this.router.response[path] = nativeStaticHandler()\n\t\t}\n\n\t\taddResponsePath(path)\n\n\t\tlet _compiled: ComposedHandler\n\t\tconst compile = () => {\n\t\t\tif (_compiled) return _compiled\n\n\t\t\treturn (_compiled = composeHandler({\n\t\t\t\tapp: this,\n\t\t\t\tpath,\n\t\t\t\tmethod,\n\t\t\t\thooks,\n\t\t\t\tvalidator: createValidator(),\n\t\t\t\thandler:\n\t\t\t\t\ttypeof handle !== 'function' &&\n\t\t\t\t\ttypeof adapter.createStaticHandler !== 'function'\n\t\t\t\t\t\t? () => handle\n\t\t\t\t\t\t: handle,\n\t\t\t\tallowMeta,\n\t\t\t\tinference: this.inference\n\t\t\t}))\n\t\t}\n\n\t\tlet oldIndex: number | undefined\n\t\tif (`${method}_${path}` in this.routeTree)\n\t\t\tfor (let i = 0; i < this.router.history.length; i++) {\n\t\t\t\tconst route = this.router.history[i]\n\t\t\t\tif (route.path === path && route.method === method) {\n\t\t\t\t\toldIndex = i\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\telse this.routeTree[`${method}_${path}`] = this.router.history.length\n\n\t\tconst index = oldIndex ?? this.router.history.length\n\n\t\tconst mainHandler = shouldPrecompile\n\t\t\t? compile()\n\t\t\t: (ctx: Context) =>\n\t\t\t\t\t(\n\t\t\t\t\t\t(this.router.history[index].composed =\n\t\t\t\t\t\t\tcompile!()) as ComposedHandler\n\t\t\t\t\t)(ctx)\n\n\t\tif (oldIndex !== undefined)\n\t\t\tthis.router.history[oldIndex] = Object.assign(\n\t\t\t\t{\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath,\n\t\t\t\t\tcomposed: mainHandler,\n\t\t\t\t\tcompile: compile!,\n\t\t\t\t\thandler: handle,\n\t\t\t\t\thooks\n\t\t\t\t},\n\t\t\t\tstandaloneValidators.length\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstandaloneValidators\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tlocalHook.webSocket\n\t\t\t\t\t? { websocket: localHook.websocket as any }\n\t\t\t\t\t: undefined\n\t\t\t)\n\t\telse\n\t\t\tthis.router.history.push(\n\t\t\t\tObject.assign(\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tcomposed: mainHandler,\n\t\t\t\t\t\tcompile: compile!,\n\t\t\t\t\t\thandler: handle,\n\t\t\t\t\t\thooks\n\t\t\t\t\t},\n\t\t\t\t\tlocalHook.webSocket\n\t\t\t\t\t\t? { websocket: localHook.websocket as any }\n\t\t\t\t\t\t: undefined\n\t\t\t\t)\n\t\t\t)\n\n\t\tconst handler = {\n\t\t\thandler: shouldPrecompile ? mainHandler : undefined,\n\t\t\tcompile() {\n\t\t\t\treturn (this.handler = compile!())\n\t\t\t}\n\t\t}\n\n\t\tconst staticRouter = this.router.static\n\t\tconst isStaticPath =\n\t\t\tpath.indexOf(':') === -1 && path.indexOf('*') === -1\n\n\t\tif (method === 'WS') {\n\t\t\tif (isStaticPath) {\n\t\t\t\tif (path in staticRouter) staticRouter[path][method] = index\n\t\t\t\telse\n\t\t\t\t\tstaticRouter[path] = {\n\t\t\t\t\t\t[method]: index\n\t\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.router.http.add('WS', path, handler)\n\n\t\t\tif (!this.config.strictPath)\n\t\t\t\tthis.router.http.add('WS', getLoosePath(path), handler)\n\n\t\t\tconst encoded = encodePath(path, { dynamic: true })\n\t\t\tif (path !== encoded) this.router.http.add('WS', encoded, handler)\n\n\t\t\t// Static path doesn't need encode as it's done in compilation process\n\n\t\t\treturn\n\t\t}\n\n\t\tif (isStaticPath) {\n\t\t\tif (path in staticRouter) staticRouter[path][method] = index\n\t\t\telse\n\t\t\t\tstaticRouter[path] = {\n\t\t\t\t\t[method]: index\n\t\t\t\t} as const\n\n\t\t\tif (!this.config.strictPath) addResponsePath(getLoosePath(path))\n\n\t\t\t// Static path doesn't need encode as it's done in compilation process\n\t\t} else {\n\t\t\tthis.router.http.add(method, path, handler)\n\n\t\t\tif (!this.config.strictPath) {\n\t\t\t\tconst loosePath = getLoosePath(path)\n\n\t\t\t\taddResponsePath(loosePath)\n\t\t\t\tthis.router.http.add(method, loosePath, handler)\n\t\t\t}\n\n\t\t\tconst encoded = encodePath(path, { dynamic: true })\n\t\t\tif (path !== encoded) {\n\t\t\t\tthis.router.http.add(method, encoded, handler)\n\n\t\t\t\taddResponsePath(encoded)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate setHeaders?: Context['set']['headers']\n\theaders(header: Context['set']['headers'] | undefined) {\n\t\tif (!header) return this\n\n\t\tif (!this.setHeaders) this.setHeaders = {}\n\n\t\tthis.setHeaders = mergeDeep(this.setHeaders, header)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### start | Life cycle event\n\t * Called after server is ready for serving\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onStart(({ server }) => {\n\t * console.log(\"Running at ${server?.url}:${server?.port}\")\n\t * })\n\t * .listen(3000)\n\t * ```\n\t */\n\tonStart(handler: MaybeArray<GracefulHandler<this>>) {\n\t\tthis.on('start', handler as any)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### request | Life cycle event\n\t * Called on every new request is accepted\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onRequest(({ method, url }) => {\n\t * saveToAnalytic({ method, url })\n\t * })\n\t * ```\n\t */\n\tonRequest<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends PreHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t{\n\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\tstore: Singleton['store']\n\t\t\t\tderive: {}\n\t\t\t\tresolve: {}\n\t\t\t}\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### request | Life cycle event\n\t * Called on every new request is accepted\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onRequest(({ method, url }) => {\n\t * saveToAnalytic({ method, url })\n\t * })\n\t * ```\n\t */\n\tonRequest<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends PreHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t{\n\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\tstore: Singleton['store']\n\t\t\t\tderive: {}\n\t\t\t\tresolve: {}\n\t\t\t}\n\t\t>[]\n\t>(\n\t\thandler: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\tonRequest(handler: MaybeArray<Handler>): any {\n\t\tthis.on('request', handler as any)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### parse | Life cycle event\n\t * Callback function to handle body parsing\n\t *\n\t * If truthy value is returned, will be assigned to `context.body`\n\t * Otherwise will skip the callback and look for the next one.\n\t *\n\t * Equivalent to Express's body parser\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onParse((request, contentType) => {\n\t * if(contentType === \"application/json\")\n\t * return request.json()\n\t * })\n\t * ```\n\t */\n\tonParse<const Schema extends RouteSchema>(\n\t\tparser: MaybeArray<\n\t\t\tBodyHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\tresolve: {}\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### parse | Life cycle event\n\t * Callback function to handle body parsing\n\t *\n\t * If truthy value is returned, will be assigned to `context.body`\n\t * Otherwise will skip the callback and look for the next one.\n\t *\n\t * Equivalent to Express's body parser\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onParse((request, contentType) => {\n\t * if(contentType === \"application/json\")\n\t * return request.json()\n\t * })\n\t * ```\n\t */\n\tonParse<const Schema extends RouteSchema, const Type extends LifeCycleType>(\n\t\toptions: { as: Type },\n\t\tparser: MaybeArray<\n\t\t\tBodyHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\t'global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\tPartial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\tonParse<const Parsers extends keyof Metadata['parser']>(\n\t\tparser: Parsers\n\t): this\n\n\tonParse(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function> | string,\n\t\thandler?: MaybeArray<Function>\n\t): unknown {\n\t\tif (!handler) {\n\t\t\tif (typeof options === 'string')\n\t\t\t\treturn this.on('parse', this['~parser'][options] as any)\n\n\t\t\treturn this.on('parse', options as any)\n\t\t}\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'parse',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### parse | Life cycle event\n\t * Callback function to handle body parsing\n\t *\n\t * If truthy value is returned, will be assigned to `context.body`\n\t * Otherwise will skip the callback and look for the next one.\n\t *\n\t * Equivalent to Express's body parser\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onParse((request, contentType) => {\n\t * if(contentType === \"application/json\")\n\t * return request.json()\n\t * })\n\t * ```\n\t */\n\tparser<\n\t\tconst Parser extends string,\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends BodyHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t{\n\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\tstore: Singleton['store']\n\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\tVolatile['derive']\n\t\t\t\tresolve: {}\n\t\t\t}\n\t\t>\n\t>(\n\t\tname: Parser,\n\t\tparser: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro']\n\t\t\tmacroFn: Metadata['macroFn']\n\t\t\tparser: Metadata['parser'] & { [K in Parser]: Handler }\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis['~parser'][name] = parser as any\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### transform | Life cycle event\n\t * Assign or transform anything related to context before validation.\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onTransform(({ params }) => {\n\t * if(params.id)\n\t * params.id = +params.id\n\t * })\n\t * ```\n\t */\n\tonTransform<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<\n\t\t\tTransformHandler<\n\t\t\t\tUnknownRouteSchema<ResolvePath<BasePath>>,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\tresolve: {}\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### transform | Life cycle event\n\t * Assign or transform anything related to context before validation.\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onTransform(({ params }) => {\n\t * if(params.id)\n\t * params.id = +params.id\n\t * })\n\t * ```\n\t */\n\tonTransform<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: MaybeArray<\n\t\t\tTransformHandler<\n\t\t\t\tUnknownRouteSchema<\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t\t? { [name: string]: string | undefined }\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? { [name: string]: string | undefined }\n\t\t\t\t\t\t\t: ResolvePath<BasePath>\n\t\t\t\t>,\n\t\t\t\t'global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<\n\t\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\tonTransform(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) return this.on('transform', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'transform',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tresolve<\n\t\tconst Resolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\tresolver: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t) => MaybePromise<Resolver | void>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\tExcludeElysiaResponse<Resolver>\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Resolver>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Resolver>\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tresolve<\n\t\tconst Resolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t\t\t| void\n\t>(\n\t\tresolver: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<Resolver | void>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve'] & ExcludeElysiaResponse<Resolver>\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t>\n\t\t}\n\t>\n\n\tresolve(\n\t\toptionsOrResolve: { as: LifeCycleType } | Function,\n\t\tresolve?: Function\n\t) {\n\t\tif (!resolve) {\n\t\t\tresolve = optionsOrResolve as any\n\t\t\toptionsOrResolve = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'resolve',\n\t\t\tfn: resolve!\n\t\t}\n\n\t\treturn this.onBeforeHandle(optionsOrResolve as any, hook as any) as any\n\t}\n\n\tmapResolve<\n\t\tconst NewResolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t>(\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tMetadata['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Volatile['schema']>\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<NewResolver | void>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: ExcludeElysiaResponse<NewResolver>\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t>\n\t\t}\n\t>\n\n\tmapResolve<\n\t\tconst NewResolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tMetadata['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Volatile['schema']>\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t) => MaybePromise<NewResolver | void>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: ExcludeElysiaResponse<NewResolver>\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewResolver>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewResolver>\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tmapResolve(\n\t\toptionsOrResolve: Function | { as: LifeCycleType },\n\t\tmapper?: Function\n\t) {\n\t\tif (!mapper) {\n\t\t\tmapper = optionsOrResolve as any\n\t\t\toptionsOrResolve = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'mapResolve',\n\t\t\tfn: mapper!\n\t\t}\n\n\t\treturn this.onBeforeHandle(optionsOrResolve as any, hook as any) as any\n\t}\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>[]\n\t>(\n\t\thandlers: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handler extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t}),\n\t\t\tBasePath\n\t\t>\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handler\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handlers extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t}),\n\t\t\tBasePath\n\t\t>[]\n\t>(\n\t\toptions: { as: Type },\n\t\thandlers: Handlers\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tonBeforeHandle(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t): any {\n\t\tif (!handler) return this.on('beforeHandle', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'beforeHandle',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>[]\n\t>(\n\t\thandlers: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handler extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t})\n\t\t>\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handler\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handlers extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t})\n\t\t>[]\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handlers\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tonAfterHandle(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t): any {\n\t\tif (!handler) return this.on('afterHandle', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'afterHandle',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .mapResponse((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tmapResponse<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<\n\t\t\tMapResponse<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .mapResponse((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tmapResponse<const Schema extends RouteSchema, Type extends LifeCycleType>(\n\t\toptions: { as: Type },\n\t\thandler: MaybeArray<\n\t\t\tMapResponse<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t>\n\t): this\n\n\tmapResponse(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) return this.on('mapResponse', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'mapResponse',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### response | Life cycle event\n\t * Call AFTER main handler is executed\n\t * Good for analytic metrics\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterResponse(() => {\n\t * cleanup()\n\t * })\n\t * ```\n\t */\n\tonAfterResponse<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<\n\t\t\tAfterResponseHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### response | Life cycle event\n\t * Call AFTER main handler is executed\n\t * Good for analytic metrics\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterResponse(() => {\n\t * cleanup()\n\t * \t })\n\t * ```\n\t */\n\n\tonAfterResponse<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: MaybeArray<\n\t\t\tAfterResponseHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t>\n\t): this\n\n\tonAfterResponse(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) return this.on('afterResponse', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'afterResponse',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\ttrace<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<TraceHandler<Schema, Singleton>>\n\t): this\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\ttrace<const Schema extends RouteSchema>(\n\t\toptions: { as: LifeCycleType },\n\t\thandler: MaybeArray<TraceHandler<Schema, Singleton>>\n\t): this\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\ttrace(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) {\n\t\t\thandler = options as MaybeArray<Function>\n\t\t\toptions = { as: 'local' }\n\t\t}\n\n\t\tif (!Array.isArray(handler)) handler = [handler] as Function[]\n\n\t\tfor (const fn of handler)\n\t\t\tthis.on(\n\t\t\t\toptions as { as: LifeCycleType },\n\t\t\t\t'trace',\n\t\t\t\tcreateTracer(fn as any) as any\n\t\t\t)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * Register errors\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * class CustomError extends Error {\n\t * constructor() {\n\t * super()\n\t * }\n\t * }\n\t *\n\t * new Elysia()\n\t * .error('CUSTOM_ERROR', CustomError)\n\t * ```\n\t */\n\terror<\n\t\tconst Errors extends Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tprototype: Error\n\t\t\t}\n\t\t>\n\t>(\n\t\terrors: Errors\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox']\n\t\t\terror: Definitions['error'] & {\n\t\t\t\t[K in keyof Errors]: Errors[K] extends {\n\t\t\t\t\tprototype: infer LiteralError extends Error\n\t\t\t\t}\n\t\t\t\t\t? LiteralError\n\t\t\t\t\t: Errors[K]\n\t\t\t}\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * Register errors\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * class CustomError extends Error {\n\t * constructor() {\n\t * super()\n\t * }\n\t * }\n\t *\n\t * new Elysia()\n\t * .error({\n\t * CUSTOM_ERROR: CustomError\n\t * })\n\t * ```\n\t */\n\terror<\n\t\tName extends string,\n\t\tconst CustomError extends {\n\t\t\tprototype: Error\n\t\t}\n\t>(\n\t\tname: Name,\n\t\terrors: CustomError\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox']\n\t\t\terror: Definitions['error'] & {\n\t\t\t\t[name in Name]: CustomError extends {\n\t\t\t\t\tprototype: infer LiteralError extends Error\n\t\t\t\t}\n\t\t\t\t\t? LiteralError\n\t\t\t\t\t: CustomError\n\t\t\t}\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * Register errors\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * class CustomError extends Error {\n\t * constructor() {\n\t * super()\n\t * }\n\t * }\n\t *\n\t * new Elysia()\n\t * .error('CUSTOM_ERROR', CustomError)\n\t * ```\n\t */\n\terror<const NewErrors extends Record<string, Error>>(\n\t\tmapper: (decorators: Definitions['error']) => NewErrors\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox']\n\t\t\terror: {\n\t\t\t\t[K in keyof NewErrors]: NewErrors[K] extends {\n\t\t\t\t\tprototype: infer LiteralError extends Error\n\t\t\t\t}\n\t\t\t\t\t? LiteralError\n\t\t\t\t\t: never\n\t\t\t}\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\terror(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tname:\n\t\t\t| string\n\t\t\t| Record<\n\t\t\t\t\tstring,\n\t\t\t\t\t{\n\t\t\t\t\t\tprototype: Error\n\t\t\t\t\t}\n\t\t\t >\n\t\t\t| Function,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\terror?: {\n\t\t\tprototype: Error\n\t\t}\n\t): AnyElysia {\n\t\tswitch (typeof name) {\n\t\t\tcase 'string':\n\t\t\t\t// @ts-ignore\n\t\t\t\terror.prototype[ERROR_CODE] = name\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthis.definitions.error[name] = error\n\n\t\t\t\treturn this\n\n\t\t\tcase 'function':\n\t\t\t\tthis.definitions.error = name(this.definitions.error)\n\n\t\t\t\treturn this as any\n\t\t}\n\n\t\tfor (const [code, error] of Object.entries(name)) {\n\t\t\t// @ts-ignore\n\t\t\terror.prototype[ERROR_CODE] = code as any\n\n\t\t\tthis.definitions.error[code] = error as any\n\t\t}\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton,\n\t\t\tEphemeral,\n\t\t\tVolatile\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton,\n\t\t\tEphemeral,\n\t\t\tVolatile\n\t\t>[]\n\t>(\n\t\thandler: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handler extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tType extends 'global'\n\t\t\t\t? {\n\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\tEphemeral['resolve'] &\n\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t}\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tderive: Singleton['derive'] & Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] & Ephemeral['resolve']\n\t\t\t\t\t\t}\n\t\t\t\t\t: Singleton,\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: {\n\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t},\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? Ephemeral\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t\t}\n\t\t>\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handler\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handlers extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tType extends 'global'\n\t\t\t\t? {\n\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\tEphemeral['resolve'] &\n\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t}\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tderive: Singleton['derive'] & Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] & Ephemeral['resolve']\n\t\t\t\t\t\t}\n\t\t\t\t\t: Singleton,\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: {\n\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t},\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? Ephemeral\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t\t}\n\t\t>[]\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handlers\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t): any {\n\t\tif (!handler) return this.on('error', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'error',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### stop | Life cycle event\n\t * Called after server stop serving request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onStop((app) => {\n\t * cleanup()\n\t * })\n\t * ```\n\t */\n\tonStop(handler: MaybeArray<GracefulHandler<this>>) {\n\t\tthis.on('stop', handler as any)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### on\n\t * Syntax sugar for attaching life cycle event by name\n\t *\n\t * Does the exact same thing as `.on[Event]()`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .on('error', ({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\ton<Event extends keyof LifeCycleStore>(\n\t\ttype: Event,\n\t\thandlers: MaybeArray<\n\t\t\tExtract<LifeCycleStore[Event], HookContainer[]>[0]['fn']\n\t\t>\n\t): this\n\n\t/**\n\t * ### on\n\t * Syntax sugar for attaching life cycle event by name\n\t *\n\t * Does the exact same thing as `.on[Event]()`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .on('error', ({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\ton<const Event extends keyof LifeCycleStore>(\n\t\toptions: { as: LifeCycleType },\n\t\ttype: Event,\n\t\thandlers: MaybeArray<Extract<LifeCycleStore[Event], Function[]>[0]>\n\t): this\n\n\ton(\n\t\toptionsOrType: { as: LifeCycleType } | string,\n\t\ttypeOrHandlers: MaybeArray<Function | HookContainer> | string,\n\t\thandlers?: MaybeArray<Function | HookContainer>\n\t) {\n\t\tlet type: keyof LifeCycleStore\n\n\t\tswitch (typeof optionsOrType) {\n\t\t\tcase 'string':\n\t\t\t\ttype = optionsOrType as any\n\t\t\t\thandlers = typeOrHandlers as any\n\n\t\t\t\tbreak\n\n\t\t\tcase 'object':\n\t\t\t\ttype = typeOrHandlers as any\n\n\t\t\t\tif (\n\t\t\t\t\t!Array.isArray(typeOrHandlers) &&\n\t\t\t\t\ttypeof typeOrHandlers === 'object'\n\t\t\t\t)\n\t\t\t\t\thandlers = typeOrHandlers\n\n\t\t\t\tbreak\n\t\t}\n\n\t\tif (Array.isArray(handlers)) handlers = fnToContainer(handlers)\n\t\telse {\n\t\t\tif (typeof handlers === 'function')\n\t\t\t\thandlers = [\n\t\t\t\t\t{\n\t\t\t\t\t\tfn: handlers\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\telse handlers = [handlers!]\n\t\t}\n\n\t\tconst handles = handlers as HookContainer[]\n\n\t\tfor (const handle of handles) {\n\t\t\thandle.scope =\n\t\t\t\ttypeof optionsOrType === 'string'\n\t\t\t\t\t? 'local'\n\t\t\t\t\t: (optionsOrType?.as ?? 'local')\n\n\t\t\t// @ts-expect-error\n\t\t\tif (type === 'resolve' || type === 'derive') handle.subType = type\n\t\t}\n\n\t\tif (type !== 'trace')\n\t\t\tthis.inference = sucrose(\n\t\t\t\t{\n\t\t\t\t\t[type]: handles.map((x) => x.fn)\n\t\t\t\t},\n\t\t\t\tthis.inference,\n\t\t\t\tthis.config.sucrose\n\t\t\t)\n\n\t\tfor (const handle of handles) {\n\t\t\tconst fn = asHookType(handle, 'global', { skipIfHasType: true })\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'start':\n\t\t\t\t\tthis.event.start ??= []\n\t\t\t\t\tthis.event.start.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'request':\n\t\t\t\t\tthis.event.request ??= []\n\t\t\t\t\tthis.event.request.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'parse':\n\t\t\t\t\tthis.event.parse ??= []\n\t\t\t\t\tthis.event.parse.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'transform':\n\t\t\t\t\tthis.event.transform ??= []\n\t\t\t\t\tthis.event.transform.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tcase 'derive':\n\t\t\t\t\tthis.event.transform ??= []\n\t\t\t\t\tthis.event.transform.push(\n\t\t\t\t\t\tfnToContainer(fn as any, 'derive') as any\n\t\t\t\t\t)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'beforeHandle':\n\t\t\t\t\tthis.event.beforeHandle ??= []\n\t\t\t\t\tthis.event.beforeHandle.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\t// eslint-disable-next-line sonarjs/no-duplicated-branches\n\t\t\t\tcase 'resolve':\n\t\t\t\t\tthis.event.beforeHandle ??= []\n\t\t\t\t\tthis.event.beforeHandle.push(\n\t\t\t\t\t\tfnToContainer(fn as any, 'resolve') as any\n\t\t\t\t\t)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'afterHandle':\n\t\t\t\t\tthis.event.afterHandle ??= []\n\t\t\t\t\tthis.event.afterHandle.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'mapResponse':\n\t\t\t\t\tthis.event.mapResponse ??= []\n\t\t\t\t\tthis.event.mapResponse.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'afterResponse':\n\t\t\t\t\tthis.event.afterResponse ??= []\n\t\t\t\t\tthis.event.afterResponse.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'trace':\n\t\t\t\t\tthis.event.trace ??= []\n\t\t\t\t\tthis.event.trace.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'error':\n\t\t\t\t\tthis.event.error ??= []\n\t\t\t\t\tthis.event.error.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'stop':\n\t\t\t\t\tthis.event.stop ??= []\n\t\t\t\t\tthis.event.stop.push(fn as any)\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn this\n\t}\n\n\tas(type: 'global'): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive'] &\n\t\t\t\tEphemeral['derive'] &\n\t\t\t\tVolatile['derive']\n\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\tEphemeral['resolve'] &\n\t\t\t\tVolatile['resolve']\n\t\t},\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: MergeSchema<\n\t\t\t\tMergeSchema<Volatile['schema'], Ephemeral['schema']>,\n\t\t\t\tMetadata['schema']\n\t\t\t>\n\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema']\n\t\t\tmacro: Metadata['macro']\n\t\t\tmacroFn: Metadata['macroFn']\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response'] &\n\t\t\t\tEphemeral['response'] &\n\t\t\t\tVolatile['response']\n\t\t},\n\t\tRoutes,\n\t\t{\n\t\t\tderive: {}\n\t\t\tresolve: {}\n\t\t\tschema: {}\n\t\t\tstandaloneSchema: {}\n\t\t\tresponse: {}\n\t\t},\n\t\t{\n\t\t\tderive: {}\n\t\t\tresolve: {}\n\t\t\tschema: {}\n\t\t\tstandaloneSchema: {}\n\t\t\tresponse: {}\n\t\t}\n\t>\n\n\tas(type: 'scoped'): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\t{\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\tschema: MergeSchema<Volatile['schema'], Ephemeral['schema']>\n\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema']\n\t\t\tresponse: Volatile['response'] & Ephemeral['response']\n\t\t},\n\t\t{\n\t\t\tderive: {}\n\t\t\tresolve: {}\n\t\t\tschema: {}\n\t\t\tstandaloneSchema: {}\n\t\t\tresponse: {}\n\t\t}\n\t>\n\n\tas(type: 'global' | 'scoped') {\n\t\tpromoteEvent(this.event.parse, type)\n\t\tpromoteEvent(this.event.transform, type)\n\t\tpromoteEvent(this.event.beforeHandle, type)\n\t\tpromoteEvent(this.event.afterHandle, type)\n\t\tpromoteEvent(this.event.mapResponse, type)\n\t\tpromoteEvent(this.event.afterResponse, type)\n\t\tpromoteEvent(this.event.trace, type)\n\t\tpromoteEvent(this.event.error, type)\n\n\t\tif (type === 'scoped') {\n\t\t\tthis.validator.scoped = mergeSchemaValidator(\n\t\t\t\tthis.validator.scoped,\n\t\t\t\tthis.validator.local\n\t\t\t)\n\t\t\tthis.validator.local = null\n\n\t\t\tif (this.standaloneValidator.local !== null) {\n\t\t\t\tthis.standaloneValidator.scoped ||= []\n\t\t\t\tthis.standaloneValidator.scoped.push(\n\t\t\t\t\t...this.standaloneValidator.local\n\t\t\t\t)\n\t\t\t\tthis.standaloneValidator.local = null\n\t\t\t}\n\t\t} else if (type === 'global') {\n\t\t\tthis.validator.global = mergeSchemaValidator(\n\t\t\t\tthis.validator.global,\n\t\t\t\tmergeSchemaValidator(\n\t\t\t\t\tthis.validator.scoped,\n\t\t\t\t\tthis.validator.local\n\t\t\t\t) as SchemaValidator\n\t\t\t) as SchemaValidator\n\n\t\t\tthis.validator.scoped = null\n\t\t\tthis.validator.local = null\n\n\t\t\tif (this.standaloneValidator.local !== null) {\n\t\t\t\tthis.standaloneValidator.scoped ||= []\n\t\t\t\tthis.standaloneValidator.scoped.push(\n\t\t\t\t\t...this.standaloneValidator.local\n\t\t\t\t)\n\t\t\t\tthis.standaloneValidator.local = null\n\t\t\t}\n\t\t\tif (this.standaloneValidator.scoped !== null) {\n\t\t\t\tthis.standaloneValidator.global ||= []\n\t\t\t\tthis.standaloneValidator.global.push(\n\t\t\t\t\t...this.standaloneValidator.scoped\n\t\t\t\t)\n\t\t\t\tthis.standaloneValidator.scoped = null\n\t\t\t}\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\tgroup<const Prefix extends string, const NewElysia extends AnyElysia>(\n\t\tprefix: Prefix,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tJoinPath<BasePath, Prefix>,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: MergeSchema<\n\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\t\tJoinPath<BasePath, Prefix>\n\t\t\t\t\t\t>,\n\t\t\t\t\t\tMetadata['schema']\n\t\t\t\t\t>\n\t\t\t\t\tstandaloneSchema: UnwrapRoute<\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\tJoinPath<BasePath, Prefix>\n\t\t\t\t\t> &\n\t\t\t\t\t\tMetadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: Metadata['response']\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes & NewElysia['~Routes'],\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tgroup<\n\t\tconst Prefix extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<\n\t\t\t\tInput,\n\t\t\t\tDefinitions['typebox'],\n\t\t\t\tJoinPath<BasePath, Prefix>\n\t\t\t>,\n\t\t\tMergeSchema<\n\t\t\t\tVolatile['schema'],\n\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t>\n\t\t> &\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\tEphemeral['standaloneSchema'] &\n\t\t\tVolatile['standaloneSchema'],\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst BeforeHandle extends MaybeArray<\n\t\t\tOptionalHandler<Schema, Singleton>\n\t\t>,\n\t\tconst AfterHandle extends MaybeArray<AfterHandler<Schema, Singleton>>,\n\t\tconst ErrorHandle extends MaybeArray<\n\t\t\tErrorHandler<Definitions['error'], Schema, Singleton>\n\t\t>,\n\t\tconst NewElysia extends AnyElysia\n\t>(\n\t\tprefix: Prefix,\n\t\tschema: GuardLocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\tVolatile['resolve'] &\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext['response']\n\t\t\t},\n\t\t\tkeyof Metadata['parser'],\n\t\t\tBeforeHandle,\n\t\t\tAfterHandle,\n\t\t\tErrorHandle\n\t\t>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tJoinPath<BasePath, Prefix>,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Schema\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\t\t\tSchema &\n\t\t\t\t\t\tMacroContext\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['response'] &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle>\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes & NewElysia['~Routes'],\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### group\n\t * Encapsulate and group path with prefix\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .group('/v1', app => app\n\t * .get('/', () => 'Hi')\n\t * .get('/name', () => 'Elysia')\n\t * })\n\t * ```\n\t */\n\tgroup(\n\t\tprefix: string,\n\t\tschemaOrRun: AnyLocalHook | ((group: AnyElysia) => AnyElysia),\n\t\trun?: (group: AnyElysia) => AnyElysia\n\t): AnyElysia {\n\t\tconst instance = new Elysia({\n\t\t\t...this.config,\n\t\t\tprefix: ''\n\t\t})\n\n\t\tinstance.singleton = { ...this.singleton }\n\t\tinstance.definitions = { ...this.definitions }\n\t\tinstance.getServer = () => this.getServer()\n\t\tinstance.inference = cloneInference(this.inference)\n\t\tinstance.extender = { ...this.extender }\n\t\tinstance['~parser'] = this['~parser']\n\t\tinstance.standaloneValidator = {\n\t\t\tlocal: [...(this.standaloneValidator.local ?? [])],\n\t\t\tscoped: [...(this.standaloneValidator.scoped ?? [])],\n\t\t\tglobal: [...(this.standaloneValidator.global ?? [])]\n\t\t}\n\n\t\tconst isSchema = typeof schemaOrRun === 'object'\n\t\tconst sandbox = (isSchema ? run! : schemaOrRun)(instance)\n\t\tthis.singleton = mergeDeep(this.singleton, instance.singleton) as any\n\t\tthis.definitions = mergeDeep(this.definitions, instance.definitions)\n\n\t\tif (sandbox.event.request?.length)\n\t\t\tthis.event.request = [\n\t\t\t\t...(this.event.request || []),\n\t\t\t\t...((sandbox.event.request || []) as any)\n\t\t\t]\n\n\t\tif (sandbox.event.mapResponse?.length)\n\t\t\tthis.event.mapResponse = [\n\t\t\t\t...(this.event.mapResponse || []),\n\t\t\t\t...((sandbox.event.mapResponse || []) as any)\n\t\t\t]\n\n\t\tthis.model(sandbox.definitions.type)\n\n\t\tObject.values(instance.router.history).forEach(\n\t\t\t({ method, path, handler, hooks }) => {\n\t\t\t\tpath =\n\t\t\t\t\t(isSchema ? '' : (this.config.prefix ?? '')) + prefix + path\n\n\t\t\t\tif (isSchema) {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tbody,\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tcookie,\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t...hook\n\t\t\t\t\t} = schemaOrRun\n\t\t\t\t\tconst localHook = hooks as AnyLocalHook\n\n\t\t\t\t\tconst hasStandaloneSchema =\n\t\t\t\t\t\tbody || headers || query || params || cookie || response\n\n\t\t\t\t\tthis.add(\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\thandler,\n\t\t\t\t\t\tmergeHook(hook, {\n\t\t\t\t\t\t\t...(localHook || {}),\n\t\t\t\t\t\t\terror: !localHook.error\n\t\t\t\t\t\t\t\t? sandbox.event.error\n\t\t\t\t\t\t\t\t: Array.isArray(localHook.error)\n\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t...(localHook.error ?? []),\n\t\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\tlocalHook.error,\n\t\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tstandaloneValidator: !hasStandaloneSchema\n\t\t\t\t\t\t\t\t? localHook.standaloneValidator\n\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t...(localHook.standaloneValidator ??\n\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tundefined\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tthis.add(\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\thandler,\n\t\t\t\t\t\tmergeHook(hooks as AnyLocalHook, {\n\t\t\t\t\t\t\terror: sandbox.event.error\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tskipPrefix: true\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### guard\n\t * Encapsulate and pass hook into all child handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .guard({\n\t * body: t.Object({\n\t * username: t.String(),\n\t * password: t.String()\n\t * })\n\t * })\n\t * ```\n\t */\n\tguard<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\tMetadata['schema']\n\t\t>,\n\t\tconst MacroContext extends MacroToContext<\n\t\t\tMetadata['macroFn'],\n\t\t\tNoInfer<Omit<Input, keyof InputSchema>>\n\t\t>,\n\t\tconst GuardType extends GuardSchemaType,\n\t\tconst AsType extends LifeCycleType,\n\t\tconst BeforeHandle extends MaybeArray<\n\t\t\tOptionalHandler<Schema, Singleton>\n\t\t>,\n\t\tconst AfterHandle extends MaybeArray<AfterHandler<Schema, Singleton>>,\n\t\tconst ErrorHandle extends MaybeArray<\n\t\t\tErrorHandler<Definitions['error'], Schema, Singleton>\n\t\t>\n\t>(\n\t\thook: GuardLocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\tVolatile['resolve'] &\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext['response']\n\t\t\t},\n\t\t\tkeyof Metadata['parser'],\n\t\t\tBeforeHandle,\n\t\t\tAfterHandle,\n\t\t\tErrorHandle,\n\t\t\tGuardType,\n\t\t\tAsType\n\t\t>\n\t): Or<\n\t\tGuardSchemaType extends GuardType ? true : false,\n\t\tGuardType extends 'override' ? true : false\n\t> extends true\n\t\t? Or<\n\t\t\t\tLifeCycleType extends AsType ? true : false,\n\t\t\t\tAsType extends 'local' ? true : false\n\t\t\t> extends true\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\tschema: {} extends PickIfExists<\n\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t? Volatile['schema']\n\t\t\t\t\t\t\t: MergeSchema<\n\t\t\t\t\t\t\t\t\tUnwrapRoute<Input, Definitions['typebox']>,\n\t\t\t\t\t\t\t\t\tMetadata['schema']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\t\t\t\tSimplifyToSchema<MacroContext>\n\t\t\t\t\t\tresponse: Volatile['response'] &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t: AsType extends 'global'\n\t\t\t\t? Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tschema: {} extends PickIfExists<\n\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t? Metadata['schema']\n\t\t\t\t\t\t\t\t: MergeSchema<\n\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\t\t\t\t\t\tBasePath\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tMetadata['schema']\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tSimplifyToSchema<MacroContext>\n\t\t\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\tEphemeral,\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\t\t\t\t: Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\tSingleton,\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\tMetadata,\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t\tschema: {} extends PickIfExists<\n\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t? EphemeralType['schema']\n\t\t\t\t\t\t\t\t: MergeSchema<\n\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tMetadata['schema'] & Ephemeral['schema']\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tSimplifyToSchema<MacroContext>\n\t\t\t\t\t\t\tresponse: Ephemeral['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\t\t: Or<\n\t\t\t\t\tLifeCycleType extends AsType ? true : false,\n\t\t\t\t\tAsType extends 'local' ? true : false\n\t\t\t > extends true\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: SimplifyToSchema<MacroContext> &\n\t\t\t\t\t\t\t({} extends PickIfExists<Input, keyof InputSchema>\n\t\t\t\t\t\t\t\t? Volatile['standaloneSchema']\n\t\t\t\t\t\t\t\t: Volatile['standaloneSchema'] &\n\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t\t\t\t\t\t\t>)\n\t\t\t\t\t\tresponse: Volatile['response'] &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t: AsType extends 'global'\n\t\t\t\t? Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\t\t\tstandaloneSchema: SimplifyToSchema<MacroContext> &\n\t\t\t\t\t\t\t\t({} extends PickIfExists<\n\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t? Metadata['standaloneSchema']\n\t\t\t\t\t\t\t\t\t: UnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\t\t\t\t\t\tBasePath\n\t\t\t\t\t\t\t\t\t\t> &\n\t\t\t\t\t\t\t\t\t\t\tMetadata['standaloneSchema'])\n\t\t\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\tEphemeral,\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\t\t\t\t: Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\tSingleton,\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\tMetadata,\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\t\tstandaloneSchema: SimplifyToSchema<MacroContext> &\n\t\t\t\t\t\t\t\t({} extends PickIfExists<\n\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t? Ephemeral['standaloneSchema']\n\t\t\t\t\t\t\t\t\t: Ephemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t\t\t\t\t\t\t\t>)\n\t\t\t\t\t\t\tresponse: Ephemeral['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\n\tguard<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\tMergeSchema<\n\t\t\t\tVolatile['schema'],\n\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t>\n\t\t> &\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\tEphemeral['standaloneSchema'] &\n\t\t\tVolatile['standaloneSchema'],\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst BeforeHandle extends MaybeArray<\n\t\t\tOptionalHandler<Schema, Singleton>\n\t\t>,\n\t\tconst AfterHandle extends MaybeArray<AfterHandler<Schema, Singleton>>,\n\t\tconst ErrorHandle extends MaybeArray<\n\t\t\tErrorHandler<any, Schema, Singleton>\n\t\t>,\n\t\tconst NewElysia extends AnyElysia\n\t>(\n\t\tschema: GuardLocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t},\n\t\t\tkeyof Metadata['parser'],\n\t\t\tBeforeHandle,\n\t\t\tAfterHandle,\n\t\t\tErrorHandle\n\t\t>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Schema\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\t\t\tSchema &\n\t\t\t\t\t\tMacroContext\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['response'] &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle>\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes & NewElysia['~Routes'],\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t// @ts-ignore\n\t\t\t\tMacroContext['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: Volatile['response'] &\n\t\t\t\t// @ts-ignore\n\t\t\t\tMacroContext['response']\n\t\t}\n\t>\n\n\t/**\n\t * ### guard\n\t * Encapsulate and pass hook into all child handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .guard({\n\t * body: t.Object({\n\t * username: t.String(),\n\t * password: t.String()\n\t * })\n\t * }, app => app\n\t * .get(\"/\", () => 'Hi')\n\t * .get(\"/name\", () => 'Elysia')\n\t * })\n\t * ```\n\t */\n\tguard(\n\t\thook:\n\t\t\t| (AnyLocalHook & {\n\t\t\t\t\tas: LifeCycleType\n\t\t\t })\n\t\t\t| ((group: AnyElysia) => AnyElysia),\n\t\trun?: (group: AnyElysia) => AnyElysia\n\t): AnyElysia {\n\t\tif (!run) {\n\t\t\tif (typeof hook === 'object') {\n\t\t\t\tthis.applyMacro(hook)\n\n\t\t\t\tif (hook.detail) {\n\t\t\t\t\tif (this.config.detail)\n\t\t\t\t\t\tthis.config.detail = mergeDeep(\n\t\t\t\t\t\t\tObject.assign({}, this.config.detail),\n\t\t\t\t\t\t\thook.detail\n\t\t\t\t\t\t)\n\t\t\t\t\telse this.config.detail = hook.detail\n\t\t\t\t}\n\n\t\t\t\tif (hook.tags) {\n\t\t\t\t\tif (!this.config.detail)\n\t\t\t\t\t\tthis.config.detail = {\n\t\t\t\t\t\t\ttags: hook.tags\n\t\t\t\t\t\t}\n\t\t\t\t\telse this.config.detail.tags = hook.tags\n\t\t\t\t}\n\n\t\t\t\tconst type: LifeCycleType = hook.as ?? 'local'\n\n\t\t\t\tif (hook.schema === 'standalone') {\n\t\t\t\t\tif (!this.standaloneValidator[type])\n\t\t\t\t\t\tthis.standaloneValidator[type] = []\n\n\t\t\t\t\tconst response = !hook?.response\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: typeof hook.response === 'string' ||\n\t\t\t\t\t\t\t Kind in hook.response ||\n\t\t\t\t\t\t\t '~standard' in hook.response\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t200: hook.response\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: hook?.response\n\n\t\t\t\t\tthis.standaloneValidator[type].push({\n\t\t\t\t\t\tbody: hook.body,\n\t\t\t\t\t\theaders: hook.headers,\n\t\t\t\t\t\tparams: hook.params,\n\t\t\t\t\t\tquery: hook.query,\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\tcookie: hook.cookie\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.validator[type] = {\n\t\t\t\t\t\tbody: hook.body ?? this.validator[type]?.body,\n\t\t\t\t\t\theaders: hook.headers ?? this.validator[type]?.headers,\n\t\t\t\t\t\tparams: hook.params ?? this.validator[type]?.params,\n\t\t\t\t\t\tquery: hook.query ?? this.validator[type]?.query,\n\t\t\t\t\t\tresponse:\n\t\t\t\t\t\t\thook.response ?? this.validator[type]?.response,\n\t\t\t\t\t\tcookie: hook.cookie ?? this.validator[type]?.cookie\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (hook.parse) this.on({ as: type }, 'parse', hook.parse)\n\t\t\t\tif (hook.transform)\n\t\t\t\t\tthis.on({ as: type }, 'transform', hook.transform)\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (hook.derive) this.on({ as: type }, 'derive', hook.derive)\n\t\t\t\tif (hook.beforeHandle)\n\t\t\t\t\tthis.on({ as: type }, 'beforeHandle', hook.beforeHandle)\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (hook.resolve) this.on({ as: type }, 'resolve', hook.resolve)\n\t\t\t\tif (hook.afterHandle)\n\t\t\t\t\tthis.on({ as: type }, 'afterHandle', hook.afterHandle)\n\t\t\t\tif (hook.mapResponse)\n\t\t\t\t\tthis.on({ as: type }, 'mapResponse', hook.mapResponse)\n\t\t\t\tif (hook.afterResponse)\n\t\t\t\t\tthis.on({ as: type }, 'afterResponse', hook.afterResponse)\n\t\t\t\tif (hook.error) this.on({ as: type }, 'error', hook.error)\n\n\t\t\t\treturn this\n\t\t\t}\n\n\t\t\treturn this.guard({} as any, hook)\n\t\t}\n\n\t\tconst instance = new Elysia({\n\t\t\t...this.config,\n\t\t\tprefix: ''\n\t\t})\n\t\tinstance.singleton = { ...this.singleton }\n\t\tinstance.definitions = { ...this.definitions }\n\t\tinstance.inference = cloneInference(this.inference)\n\t\tinstance.extender = { ...this.extender }\n\t\tinstance.getServer = () => this.getServer()\n\n\t\tconst sandbox = run(instance)\n\t\tthis.singleton = mergeDeep(this.singleton, instance.singleton) as any\n\t\tthis.definitions = mergeDeep(this.definitions, instance.definitions)\n\n\t\t// ? Inject getServer for websocket and trace (important, do not remove)\n\t\tsandbox.getServer = () => this.server\n\n\t\tif (sandbox.event.request?.length)\n\t\t\tthis.event.request = [\n\t\t\t\t...(this.event.request || []),\n\t\t\t\t...(sandbox.event.request || [])\n\t\t\t]\n\n\t\tif (sandbox.event.mapResponse?.length)\n\t\t\tthis.event.mapResponse = [\n\t\t\t\t...(this.event.mapResponse || []),\n\t\t\t\t...(sandbox.event.mapResponse || [])\n\t\t\t]\n\n\t\tthis.model(sandbox.definitions.type)\n\n\t\tObject.values(instance.router.history).forEach(\n\t\t\t({ method, path, handler, hooks: localHook }) => {\n\t\t\t\tconst {\n\t\t\t\t\tbody,\n\t\t\t\t\theaders,\n\t\t\t\t\tquery,\n\t\t\t\t\tparams,\n\t\t\t\t\tcookie,\n\t\t\t\t\tresponse,\n\t\t\t\t\t...guardHook\n\t\t\t\t} = hook\n\n\t\t\t\tconst hasStandaloneSchema =\n\t\t\t\t\tbody || headers || query || params || cookie || response\n\n\t\t\t\tthis.add(\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath,\n\t\t\t\t\thandler,\n\t\t\t\t\tmergeHook(guardHook as AnyLocalHook, {\n\t\t\t\t\t\t...((localHook || {}) as AnyLocalHook),\n\t\t\t\t\t\terror: !localHook.error\n\t\t\t\t\t\t\t? sandbox.event.error\n\t\t\t\t\t\t\t: Array.isArray(localHook.error)\n\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t...(localHook.error ?? []),\n\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\tlocalHook.error,\n\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\tstandaloneValidator: !hasStandaloneSchema\n\t\t\t\t\t\t\t? localHook.standaloneValidator\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...(localHook.standaloneValidator ?? []),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * Entire Instance\n\t **/\n\tuse<const NewElysia extends AnyElysia>(\n\t\tinstance: MaybePromise<NewElysia>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tNewElysia['~Singleton']['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & NewElysia['~Singleton']['store']\n\t\t\t>\n\t\t\tderive: Singleton['derive'] & NewElysia['~Singleton']['derive']\n\t\t\tresolve: Singleton['resolve'] & NewElysia['~Singleton']['resolve']\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\tEphemeral,\n\t\tVolatile & NewElysia['~Ephemeral']\n\t>\n\n\t/**\n\t * Entire multiple Instance\n\t **/\n\tuse<const Instances extends AnyElysia[]>(\n\t\tinstance: MaybePromise<Instances>\n\t): MergeElysiaInstances<Instances, BasePath>\n\n\t/**\n\t * Import fn\n\t */\n\tuse<const NewElysia extends AnyElysia>(\n\t\tplugin: Promise<{\n\t\t\tdefault: (elysia: AnyElysia) => MaybePromise<NewElysia>\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tNewElysia['~Singleton']['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & NewElysia['~Singleton']['store']\n\t\t\t>\n\t\t\tderive: Singleton['derive'] & NewElysia['~Singleton']['derive']\n\t\t\tresolve: Singleton['resolve'] & NewElysia['~Singleton']['resolve']\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\tEphemeral & NewElysia['~Ephemeral'],\n\t\tVolatile & NewElysia['~Volatile']\n\t>\n\n\t/**\n\t * Import entire instance\n\t */\n\tuse<const LazyLoadElysia extends AnyElysia>(\n\t\tplugin: Promise<{\n\t\t\tdefault: LazyLoadElysia\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tPartial<LazyLoadElysia['~Singleton']['decorator']>\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] &\n\t\t\t\t\tPartial<LazyLoadElysia['~Singleton']['store']>\n\t\t\t>\n\t\t\tderive: Singleton['derive'] &\n\t\t\t\tPartial<LazyLoadElysia['~Singleton']['derive']>\n\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\tPartial<LazyLoadElysia['~Singleton']['resolve']>\n\t\t},\n\t\tDefinitions & LazyLoadElysia['~Definitions'],\n\t\tMetadata & LazyLoadElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & LazyLoadElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, LazyLoadElysia['~Routes']>,\n\t\tEphemeral,\n\t\t{\n\t\t\tschema: Volatile['schema'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['schema']>\n\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['standaloneSchema']>\n\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['resolve']>\n\t\t\tderive: Volatile['derive'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['derive']>\n\t\t\tresponse: Volatile['response'] &\n\t\t\t\tLazyLoadElysia['~Ephemeral']['response']\n\t\t}\n\t>\n\n\t/**\n\t * Inline fn\n\t */\n\tuse<\n\t\tconst NewElysia extends AnyElysia,\n\t\tconst Param extends AnyElysia = this\n\t>(\n\t\tplugin: (app: Param) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tNewElysia['~Singleton']['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & NewElysia['~Singleton']['store']\n\t\t\t>\n\t\t\tderive: Singleton['derive'] & NewElysia['~Singleton']['derive']\n\t\t\tresolve: Singleton['resolve'] & NewElysia['~Singleton']['resolve']\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\tEphemeral & NewElysia['~Ephemeral'],\n\t\tVolatile & NewElysia['~Volatile']\n\t>\n\n\t/**\n\t * Inline async fn\n\t */\n\tuse<\n\t\tconst NewElysia extends AnyElysia,\n\t\tconst Param extends AnyElysia = this\n\t>(\n\t\tplugin:\n\t\t\t| ((app: Param) => Promise<NewElysia>)\n\t\t\t| Promise<(app: Param) => NewElysia>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tPartial<NewElysia['~Singleton']['decorator']>\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & Partial<NewElysia['~Singleton']['store']>\n\t\t\t>\n\t\t\tderive: Singleton['derive'] &\n\t\t\t\tPartial<NewElysia['~Singleton']['derive']>\n\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\tPartial<NewElysia['~Singleton']['resolve']>\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\t{\n\t\t\tschema: Ephemeral['schema'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['schema']>\n\t\t\tstandaloneSchema: Ephemeral['standaloneSchema'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['standaloneSchema']>\n\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['resolve']>\n\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['derive']>\n\t\t\tresponse: Ephemeral['response'] &\n\t\t\t\tNewElysia['~Ephemeral']['response']\n\t\t},\n\t\t{\n\t\t\tschema: Volatile['schema'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['schema']>\n\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['standaloneSchema']>\n\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['resolve']>\n\t\t\tderive: Volatile['derive'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['derive']>\n\t\t\tresponse: Volatile['response'] & NewElysia['~Volatile']['response']\n\t\t}\n\t>\n\n\t/**\n\t * conditional undefined ignore type\n\t */\n\tuse(\n\t\tinstance:\n\t\t\t| MaybeArray<MaybePromise<AnyElysia>>\n\t\t\t| MaybePromise<\n\t\t\t\t\tAnyElysia | ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t >\n\t\t\t| Promise<{\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t| AnyElysia\n\t\t\t\t\t\t| ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t }>\n\t\t\t| undefined\n\t\t\t| false\n\t): this\n\n\t/**\n\t * ### use\n\t * Merge separate logic of Elysia with current\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * const plugin = (app: Elysia) => app\n\t * .get('/plugin', () => 'hi')\n\t *\n\t * new Elysia()\n\t * .use(plugin)\n\t * ```\n\t */\n\tuse(\n\t\tplugin:\n\t\t\t| MaybeArray<MaybePromise<AnyElysia>>\n\t\t\t| MaybePromise<\n\t\t\t\t\tAnyElysia | ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t >\n\t\t\t| Promise<{\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t| AnyElysia\n\t\t\t\t\t\t| ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t }>\n\t\t\t| undefined\n\t\t\t| false\n\t): AnyElysia {\n\t\tif (!plugin) return this\n\n\t\tif (Array.isArray(plugin)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\t\tlet app = this\n\t\t\tfor (const p of plugin) app = app.use(p) as any\n\t\t\treturn app\n\t\t}\n\n\t\tif (plugin instanceof Promise) {\n\t\t\tthis.promisedModules.add(\n\t\t\t\tplugin\n\t\t\t\t\t.then((plugin) => {\n\t\t\t\t\t\tif (typeof plugin === 'function') return plugin(this)\n\n\t\t\t\t\t\tif (plugin instanceof Elysia)\n\t\t\t\t\t\t\treturn this._use(plugin).compile()\n\n\t\t\t\t\t\tif (plugin.constructor?.name === 'Elysia')\n\t\t\t\t\t\t\treturn this._use(\n\t\t\t\t\t\t\t\tplugin as unknown as Elysia\n\t\t\t\t\t\t\t).compile()\n\n\t\t\t\t\t\tif (typeof plugin.default === 'function')\n\t\t\t\t\t\t\treturn plugin.default(this)\n\n\t\t\t\t\t\tif (plugin.default instanceof Elysia)\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\n\t\t\t\t\t\tif (plugin.constructor?.name === 'Elysia')\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\n\t\t\t\t\t\tif (plugin.constructor?.name === '_Elysia')\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t\t'Invalid plugin type. Expected Elysia instance, function, or module with \"default\" as Elysia instance or function that returns Elysia instance.'\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tthrow error\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then((v) => {\n\t\t\t\t\t\tif (v && typeof v.compile === 'function') v.compile()\n\n\t\t\t\t\t\treturn v\n\t\t\t\t\t})\n\t\t\t)\n\n\t\t\treturn this\n\t\t}\n\n\t\treturn this._use(plugin)\n\t}\n\n\tprivate propagatePromiseModules(plugin: Elysia) {\n\t\tif (plugin.promisedModules.size <= 0) return this\n\n\t\tfor (const promise of plugin.promisedModules.promises)\n\t\t\tthis.promisedModules.add(\n\t\t\t\tpromise.then((v) => {\n\t\t\t\t\tif (!v) return\n\n\t\t\t\t\tconst t = this._use(v)\n\t\t\t\t\tif (t instanceof Promise)\n\t\t\t\t\t\treturn t.then((v2) => {\n\t\t\t\t\t\t\tif (v2) v2.compile()\n\t\t\t\t\t\t\telse v.compile()\n\t\t\t\t\t\t})\n\n\t\t\t\t\treturn v.compile()\n\t\t\t\t})\n\t\t\t)\n\n\t\treturn this\n\t}\n\n\tprivate _use(\n\t\tplugin: AnyElysia | ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t) {\n\t\tif (typeof plugin === 'function') {\n\t\t\tconst instance = plugin(this as unknown as any) as unknown as any\n\n\t\t\tif (instance instanceof Promise) {\n\t\t\t\tthis.promisedModules.add(\n\t\t\t\t\tinstance\n\t\t\t\t\t\t.then((plugin) => {\n\t\t\t\t\t\t\tif (plugin instanceof Elysia) {\n\t\t\t\t\t\t\t\tplugin.getServer = () => this.getServer()\n\t\t\t\t\t\t\t\tplugin.getGlobalRoutes = () =>\n\t\t\t\t\t\t\t\t\tthis.getGlobalRoutes()\n\t\t\t\t\t\t\t\tplugin.getGlobalDefinitions = () =>\n\t\t\t\t\t\t\t\t\tthis.getGlobalDefinitions()\n\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Model and error is required for Swagger generation\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\tplugin.model(this.definitions.type as any)\n\t\t\t\t\t\t\t\tplugin.error(this.definitions.error as any)\n\n\t\t\t\t\t\t\t\t// Recompile async plugin routes\n\t\t\t\t\t\t\t\tfor (const {\n\t\t\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\t\thandler,\n\t\t\t\t\t\t\t\t\thooks\n\t\t\t\t\t\t\t\t} of Object.values(plugin.router.history))\n\t\t\t\t\t\t\t\t\tthis.add(\n\t\t\t\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\t\t\thandler,\n\t\t\t\t\t\t\t\t\t\thooks,\n\t\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\tif (plugin === this) return\n\n\t\t\t\t\t\t\t\tthis.propagatePromiseModules(plugin)\n\n\t\t\t\t\t\t\t\treturn plugin\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof plugin === 'function')\n\t\t\t\t\t\t\t\treturn plugin(\n\t\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\t\tif (typeof plugin.default === 'function')\n\t\t\t\t\t\t\t\treturn plugin.default(\n\t\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\t\treturn this._use(plugin)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then((v) => {\n\t\t\t\t\t\t\tif (v && typeof v.compile === 'function')\n\t\t\t\t\t\t\t\tv.compile()\n\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\treturn this as unknown as any\n\t\t\t}\n\n\t\t\treturn instance\n\t\t}\n\n\t\tthis.propagatePromiseModules(plugin)\n\n\t\tconst name = plugin.config.name\n\t\tconst seed = plugin.config.seed\n\n\t\tplugin.getParent = () => this as any\n\t\tplugin.getServer = () => this.getServer()\n\t\tplugin.getGlobalRoutes = () => this.getGlobalRoutes()\n\t\tplugin.getGlobalDefinitions = () => this.getGlobalDefinitions()\n\n\t\tif (plugin.standaloneValidator?.scoped) {\n\t\t\tif (this.standaloneValidator.local)\n\t\t\t\tthis.standaloneValidator.local =\n\t\t\t\t\tthis.standaloneValidator.local.concat(\n\t\t\t\t\t\tplugin.standaloneValidator.scoped\n\t\t\t\t\t)\n\t\t\telse\n\t\t\t\tthis.standaloneValidator.local =\n\t\t\t\t\tplugin.standaloneValidator.scoped\n\t\t}\n\n\t\tif (plugin.standaloneValidator?.global) {\n\t\t\tif (this.standaloneValidator.global)\n\t\t\t\tthis.standaloneValidator.global =\n\t\t\t\t\tthis.standaloneValidator.global.concat(\n\t\t\t\t\t\tplugin.standaloneValidator.global\n\t\t\t\t\t)\n\t\t\telse\n\t\t\t\tthis.standaloneValidator.global =\n\t\t\t\t\tplugin.standaloneValidator.global\n\t\t}\n\n\t\t/**\n\t\t * Model and error is required for Swagger generation\n\t\t */\n\t\t// plugin.model(this.definitions.type as any)\n\t\t// plugin.error(this.definitions.error as any)\n\n\t\tif (isNotEmpty(plugin['~parser']))\n\t\t\tthis['~parser'] = {\n\t\t\t\t...plugin['~parser'],\n\t\t\t\t...this['~parser']\n\t\t\t}\n\n\t\tif (plugin.setHeaders) this.headers(plugin.setHeaders)\n\n\t\tif (name) {\n\t\t\tif (!(name in this.dependencies)) this.dependencies[name] = []\n\n\t\t\tconst current =\n\t\t\t\tseed !== undefined ? checksum(name + JSON.stringify(seed)) : 0\n\n\t\t\tif (\n\t\t\t\t!this.dependencies[name].some(\n\t\t\t\t\t({ checksum }) => current === checksum\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthis.extender.macro = {\n\t\t\t\t\t...this.extender.macro,\n\t\t\t\t\t...plugin.extender.macro\n\t\t\t\t}\n\n\t\t\t\tthis.extender.higherOrderFunctions =\n\t\t\t\t\tthis.extender.higherOrderFunctions.concat(\n\t\t\t\t\t\tplugin.extender.higherOrderFunctions\n\t\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tif (isNotEmpty(plugin.extender.macro))\n\t\t\t\tthis.extender.macro = {\n\t\t\t\t\t...this.extender.macro,\n\t\t\t\t\t...plugin.extender.macro\n\t\t\t\t}\n\n\t\t\tif (plugin.extender.higherOrderFunctions.length)\n\t\t\t\tthis.extender.higherOrderFunctions =\n\t\t\t\t\tthis.extender.higherOrderFunctions.concat(\n\t\t\t\t\t\tplugin.extender.higherOrderFunctions\n\t\t\t\t\t)\n\t\t}\n\n\t\tif (plugin.extender.higherOrderFunctions.length) {\n\t\t\tdeduplicateChecksum(this.extender.higherOrderFunctions)\n\n\t\t\t// ! Deduplicate current instance\n\t\t\tconst hofHashes: number[] = []\n\t\t\tfor (\n\t\t\t\tlet i = 0;\n\t\t\t\ti < this.extender.higherOrderFunctions.length;\n\t\t\t\ti++\n\t\t\t) {\n\t\t\t\tconst hof = this.extender.higherOrderFunctions[i]\n\n\t\t\t\tif (hof.checksum) {\n\t\t\t\t\tif (hofHashes.includes(hof.checksum)) {\n\t\t\t\t\t\tthis.extender.higherOrderFunctions.splice(i, 1)\n\t\t\t\t\t\ti--\n\t\t\t\t\t}\n\n\t\t\t\t\thofHashes.push(hof.checksum)\n\t\t\t\t}\n\t\t\t}\n\t\t\thofHashes.length = 0\n\t\t}\n\n\t\tthis.inference = mergeInference(this.inference, plugin.inference)\n\n\t\tif (isNotEmpty(plugin.singleton.decorator))\n\t\t\tthis.decorate(plugin.singleton.decorator)\n\n\t\tif (isNotEmpty(plugin.singleton.store))\n\t\t\tthis.state(plugin.singleton.store)\n\n\t\tif (isNotEmpty(plugin.definitions.type))\n\t\t\tthis.model(plugin.definitions.type)\n\n\t\tif (isNotEmpty(plugin.definitions.error))\n\t\t\tthis.error(plugin.definitions.error as any)\n\n\t\tif (isNotEmpty(plugin.extender.macro))\n\t\t\tthis.extender.macro = {\n\t\t\t\t...this.extender.macro,\n\t\t\t\t...plugin.extender.macro\n\t\t\t}\n\n\t\tfor (const { method, path, handler, hooks } of Object.values(\n\t\t\tplugin.router.history\n\t\t))\n\t\t\tthis.add(method, path, handler, hooks)\n\n\t\tif (name) {\n\t\t\tif (!(name in this.dependencies)) this.dependencies[name] = []\n\n\t\t\tconst current =\n\t\t\t\tseed !== undefined ? checksum(name + JSON.stringify(seed)) : 0\n\n\t\t\tif (\n\t\t\t\tthis.dependencies[name].some(\n\t\t\t\t\t({ checksum }) => current === checksum\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn this\n\n\t\t\tthis.dependencies[name].push(\n\t\t\t\tthis.config?.analytic\n\t\t\t\t\t? ({\n\t\t\t\t\t\t\tname: plugin.config.name,\n\t\t\t\t\t\t\tseed: plugin.config.seed,\n\t\t\t\t\t\t\tchecksum: current,\n\t\t\t\t\t\t\tdependencies: plugin.dependencies,\n\t\t\t\t\t\t\tstack: plugin.telemetry?.stack,\n\t\t\t\t\t\t\troutes: plugin.router.history,\n\t\t\t\t\t\t\tdecorators: plugin.singleton,\n\t\t\t\t\t\t\tstore: plugin.singleton.store,\n\t\t\t\t\t\t\terror: plugin.definitions.error,\n\t\t\t\t\t\t\tderive: plugin.event.transform\n\t\t\t\t\t\t\t\t?.filter((x) => x?.subType === 'derive')\n\t\t\t\t\t\t\t\t.map((x) => ({\n\t\t\t\t\t\t\t\t\tfn: x.toString(),\n\t\t\t\t\t\t\t\t\tstack: new Error().stack ?? ''\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tresolve: plugin.event.transform\n\t\t\t\t\t\t\t\t?.filter((x) => x?.subType === 'resolve')\n\t\t\t\t\t\t\t\t.map((x) => ({\n\t\t\t\t\t\t\t\t\tfn: x.toString(),\n\t\t\t\t\t\t\t\t\tstack: new Error().stack ?? ''\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t} as any)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tname: plugin.config.name,\n\t\t\t\t\t\t\tseed: plugin.config.seed,\n\t\t\t\t\t\t\tchecksum: current,\n\t\t\t\t\t\t\tdependencies: plugin.dependencies\n\t\t\t\t\t\t}\n\t\t\t)\n\n\t\t\tif (isNotEmpty(plugin.event))\n\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\tthis.event,\n\t\t\t\t\tfilterGlobalHook(plugin.event),\n\t\t\t\t\tcurrent\n\t\t\t\t)\n\t\t} else {\n\t\t\tif (isNotEmpty(plugin.event))\n\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\tthis.event,\n\t\t\t\t\tfilterGlobalHook(plugin.event)\n\t\t\t\t)\n\t\t}\n\n\t\tif (plugin.validator.global)\n\t\t\t// @ts-ignore\n\t\t\tthis.validator.global = mergeHook(this.validator.global, {\n\t\t\t\t...plugin.validator.global\n\t\t\t}) as any\n\n\t\tif (plugin.validator.scoped)\n\t\t\t// @ts-ignore\n\t\t\tthis.validator.local = mergeHook(this.validator.local, {\n\t\t\t\t...plugin.validator.scoped\n\t\t\t})\n\n\t\treturn this\n\t}\n\n\tmacro<\n\t\tconst Name extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\tMergeSchema<\n\t\t\t\tVolatile['schema'],\n\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Property extends MaybeValueOrVoidFunction<\n\t\t\tMacroProperty<\n\t\t\t\tSchema & MacroContext,\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Partial<Ephemeral['derive'] & Volatile['derive']>\n\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t> &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions['error']\n\t\t\t>\n\t\t>\n\t>(\n\t\tname: Name,\n\t\tmacro: (Input extends any ? Input : Prettify<Input>) & Property\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro'] & {\n\t\t\t\t[name in Name]?: Property extends (a: infer Params) => any\n\t\t\t\t\t? Params\n\t\t\t\t\t: boolean\n\t\t\t}\n\t\t\tmacroFn: Metadata['macroFn'] & {\n\t\t\t\t[name in Name]: Property\n\t\t\t}\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmacro<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst NewMacro extends Macro<\n\t\t\tInput,\n\t\t\tIntersectIfObjectSchema<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>\n\t\t\t\t>,\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema']\n\t\t\t>,\n\t\t\tSingleton & {\n\t\t\t\tderive: Partial<Ephemeral['derive'] & Volatile['derive']>\n\t\t\t\tresolve: Partial<Ephemeral['resolve'] & Volatile['resolve']>\n\t\t\t},\n\t\t\tDefinitions['error']\n\t\t>\n\t>(\n\t\tmacro: NewMacro\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro'] & Partial<MacroToProperty<NewMacro>>\n\t\t\tmacroFn: Metadata['macroFn'] & NewMacro\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmacro<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst NewMacro extends MaybeFunction<\n\t\t\tMacro<\n\t\t\t\tInput,\n\t\t\t\tIntersectIfObjectSchema<\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t\t>\n\t\t\t\t\t>,\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\tVolatile['standaloneSchema']\n\t\t\t\t>,\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Partial<Ephemeral['derive'] & Volatile['derive']>\n\t\t\t\t\tresolve: Partial<Ephemeral['resolve'] & Volatile['resolve']>\n\t\t\t\t},\n\t\t\t\tDefinitions['error']\n\t\t\t>\n\t\t>\n\t>(\n\t\tmacro: NewMacro\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro'] & Partial<MacroToProperty<NewMacro>>\n\t\t\tmacroFn: Metadata['macroFn'] & NewMacro\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmacro(macroOrName: string | Macro, macro?: Macro) {\n\t\tif (typeof macroOrName === 'string' && !macro)\n\t\t\tthrow new Error('Macro function is required')\n\n\t\tif (typeof macroOrName === 'string')\n\t\t\tthis.extender.macro[macroOrName] = macro!\n\t\telse\n\t\t\tthis.extender.macro = {\n\t\t\t\t...this.extender.macro,\n\t\t\t\t...macroOrName\n\t\t\t}\n\n\t\treturn this as any\n\t}\n\n\tprivate applyMacro(\n\t\tlocalHook: AnyLocalHook,\n\t\tappliable: AnyLocalHook = localHook,\n\t\t{\n\t\t\titeration = 0,\n\t\t\tapplied = {}\n\t\t}: { iteration?: number; applied?: { [key: number]: true } } = {}\n\t) {\n\t\tif (iteration >= 16) return\n\t\tconst macro = this.extender.macro\n\n\t\tfor (let [key, value] of Object.entries(appliable)) {\n\t\t\tif (key in macro === false) continue\n\n\t\t\tconst macroHook =\n\t\t\t\ttypeof macro[key] === 'function'\n\t\t\t\t\t? macro[key](value)\n\t\t\t\t\t: macro[key]\n\n\t\t\tif (\n\t\t\t\t!macroHook ||\n\t\t\t\t(typeof macro[key] === 'object' && value === false)\n\t\t\t)\n\t\t\t\treturn\n\n\t\t\tconst seed = checksum(key + JSON.stringify(macroHook.seed ?? value))\n\t\t\tif (seed in applied) continue\n\n\t\t\tapplied[seed] = true\n\n\t\t\tfor (let [k, value] of Object.entries(macroHook)) {\n\t\t\t\tif (k === 'seed') continue\n\n\t\t\t\tif (k in emptySchema) {\n\t\t\t\t\tinsertStandaloneValidator(\n\t\t\t\t\t\tlocalHook,\n\t\t\t\t\t\tk as keyof RouteSchema,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t)\n\t\t\t\t\tdelete localHook[key]\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (k === 'detail') {\n\t\t\t\t\tif (!localHook.detail) localHook.detail = {}\n\t\t\t\t\tlocalHook.detail = mergeDeep(localHook.detail, value, {\n\t\t\t\t\t\tmergeArray: true\n\t\t\t\t\t})\n\n\t\t\t\t\tdelete localHook[key]\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (k in macro) {\n\t\t\t\t\tthis.applyMacro(\n\t\t\t\t\t\tlocalHook,\n\t\t\t\t\t\t{ [k]: value },\n\t\t\t\t\t\t{ applied, iteration: iteration + 1 }\n\t\t\t\t\t)\n\n\t\t\t\t\tdelete localHook[key]\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(k === 'derive' || k === 'resolve') &&\n\t\t\t\t\ttypeof value === 'function'\n\t\t\t\t)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalue = {\n\t\t\t\t\t\tfn: value,\n\t\t\t\t\t\tsubType: k\n\t\t\t\t\t} as HookContainer\n\n\t\t\t\tswitch (typeof localHook[k]) {\n\t\t\t\t\tcase 'function':\n\t\t\t\t\t\tlocalHook[k] = [localHook[k], value]\n\t\t\t\t\t\tbreak\n\n\t\t\t\t\tcase 'object':\n\t\t\t\t\t\tif (Array.isArray(localHook[k]))\n\t\t\t\t\t\t\t(localHook[k] as any[]).push(value)\n\t\t\t\t\t\telse localHook[k] = [localHook[k], value]\n\t\t\t\t\t\tbreak\n\n\t\t\t\t\tcase 'undefined':\n\t\t\t\t\t\tlocalHook[k] = value\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tdelete localHook[key]\n\t\t\t}\n\t\t}\n\t}\n\n\tmount(\n\t\thandle: ((request: Request) => MaybePromise<Response>) | AnyElysia,\n\t\tdetail?: { detail?: DocumentDecoration }\n\t): this\n\tmount(\n\t\tpath: string,\n\t\thandle: ((request: Request) => MaybePromise<Response>) | AnyElysia,\n\t\tdetail?: { detail?: DocumentDecoration }\n\t): this\n\n\tmount(\n\t\tpath:\n\t\t\t| string\n\t\t\t| ((request: Request) => MaybePromise<Response>)\n\t\t\t| AnyElysia,\n\t\thandleOrConfig?:\n\t\t\t| ((request: Request) => MaybePromise<Response>)\n\t\t\t| AnyElysia\n\t\t\t| { detail?: DocumentDecoration },\n\t\tconfig?: { detail?: DocumentDecoration }\n\t) {\n\t\tif (\n\t\t\tpath instanceof Elysia ||\n\t\t\ttypeof path === 'function' ||\n\t\t\tpath.length === 0 ||\n\t\t\tpath === '/'\n\t\t) {\n\t\t\tconst run =\n\t\t\t\ttypeof path === 'function'\n\t\t\t\t\t? path\n\t\t\t\t\t: path instanceof Elysia\n\t\t\t\t\t\t? path.compile().fetch\n\t\t\t\t\t\t: handleOrConfig instanceof Elysia\n\t\t\t\t\t\t\t? handleOrConfig.compile().fetch\n\t\t\t\t\t\t\t: typeof handleOrConfig === 'function'\n\t\t\t\t\t\t\t\t? handleOrConfig\n\t\t\t\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\t\t\t\tthrow new Error('Invalid handler')\n\t\t\t\t\t\t\t\t\t})()\n\n\t\t\tconst handler: Handler = ({ request, path }) =>\n\t\t\t\trun(\n\t\t\t\t\tnew Request(replaceUrlPath(request.url, path), {\n\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\tcredentials: request.credentials,\n\t\t\t\t\t\treferrerPolicy: request.referrerPolicy as any,\n\t\t\t\t\t\tduplex: request.duplex,\n\t\t\t\t\t\tredirect: request.redirect,\n\t\t\t\t\t\tmode: request.mode,\n\t\t\t\t\t\tkeepalive: request.keepalive,\n\t\t\t\t\t\tintegrity: request.integrity,\n\t\t\t\t\t\tbody: request.body\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\tthis.route('ALL', '/*', handler as any, {\n\t\t\t\tparse: 'none',\n\t\t\t\t...config,\n\t\t\t\tdetail: {\n\t\t\t\t\t...config?.detail,\n\t\t\t\t\thide: true\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tmount: run\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn this\n\t\t}\n\n\t\tconst handle =\n\t\t\thandleOrConfig instanceof Elysia\n\t\t\t\t? handleOrConfig.compile().fetch\n\t\t\t\t: typeof handleOrConfig === 'function'\n\t\t\t\t\t? handleOrConfig\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tthrow new Error('Invalid handler')\n\t\t\t\t\t\t})()\n\n\t\tconst length = path.length - (path.endsWith('*') ? 1 : 0)\n\n\t\tconst handler: Handler = ({ request, path }) =>\n\t\t\thandle(\n\t\t\t\tnew Request(\n\t\t\t\t\treplaceUrlPath(request.url, path.slice(length) || '/'),\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\tcredentials: request.credentials,\n\t\t\t\t\t\treferrerPolicy: request.referrerPolicy as any,\n\t\t\t\t\t\tduplex: request.duplex,\n\t\t\t\t\t\tredirect: request.redirect,\n\t\t\t\t\t\tmode: request.mode,\n\t\t\t\t\t\tkeepalive: request.keepalive,\n\t\t\t\t\t\tintegrity: request.integrity,\n\t\t\t\t\t\tbody: request.body\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t)\n\n\t\tthis.route('ALL', path, handler as any, {\n\t\t\tparse: 'none',\n\t\t\t...config,\n\t\t\tdetail: {\n\t\t\t\t...config?.detail,\n\t\t\t\thide: true\n\t\t\t},\n\t\t\tconfig: {\n\t\t\t\tmount: handle\n\t\t\t}\n\t\t})\n\n\t\tthis.route(\n\t\t\t'ALL',\n\t\t\tpath + (path.endsWith('/') ? '*' : '/*'),\n\t\t\thandler as any,\n\t\t\t{\n\t\t\t\tparse: 'none',\n\t\t\t\t...config,\n\t\t\t\tdetail: {\n\t\t\t\t\t...config?.detail,\n\t\t\t\t\thide: true\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tmount: handle\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### get\n\t * Register handler for path with method [GET]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .get('/', () => 'hi')\n\t * .get('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tget<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends {} extends MacroContext\n\t\t\t? InlineHandlerNonMacro<NoInfer<Schema>, NoInfer<Decorator>>\n\t\t\t: InlineHandler<\n\t\t\t\t\tNoInfer<Schema>,\n\t\t\t\t\tNoInfer<Decorator>,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext\n\t\t\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tget: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('GET', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### post\n\t * Register handler for path with method [POST]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .post('/', () => 'hi')\n\t * .post('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tpost<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends {} extends MacroContext\n\t\t\t? InlineHandlerNonMacro<NoInfer<Schema>, NoInfer<Decorator>>\n\t\t\t: InlineHandler<\n\t\t\t\t\tNoInfer<Schema>,\n\t\t\t\t\tNoInfer<Decorator>,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext\n\t\t\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tpost: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('POST', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### put\n\t * Register handler for path with method [PUT]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .put('/', () => 'hi')\n\t * .put('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tput<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends {} extends MacroContext\n\t\t\t? InlineHandlerNonMacro<NoInfer<Schema>, NoInfer<Decorator>>\n\t\t\t: InlineHandler<\n\t\t\t\t\tNoInfer<Schema>,\n\t\t\t\t\tNoInfer<Decorator>,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext\n\t\t\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tput: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('PUT', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### patch\n\t * Register handler for path with method [PATCH]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .patch('/', () => 'hi')\n\t * .patch('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tpatch<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tpatch: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('PATCH', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### delete\n\t * Register handler for path with method [DELETE]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .delete('/', () => 'hi')\n\t * .delete('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tdelete<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tdelete: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('DELETE', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### options\n\t * Register handler for path with method [POST]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .options('/', () => 'hi')\n\t * .options('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\toptions<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\toptions: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('OPTIONS', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### all\n\t * Register handler for path with method [ALL]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .all('/', () => 'hi')\n\t * .all('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tall<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\t[method in string]: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('ALL', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### head\n\t * Register handler for path with method [HEAD]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .head('/', () => 'hi')\n\t * .head('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\thead<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\thead: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('HEAD', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### connect\n\t * Register handler for path with method [CONNECT]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .connect('/', () => 'hi')\n\t * .connect('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tconnect<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tconnect: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('CONNECT', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### route\n\t * Register handler for path with method [ROUTE]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .route('/', () => 'hi')\n\t * .route('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\troute<\n\t\tconst Method extends HTTPMethod,\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tmethod: Method,\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t> & {\n\t\t\tconfig?: {\n\t\t\t\tallowMeta?: boolean\n\t\t\t\tmount?: Function\n\t\t\t}\n\t\t}\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\t[method in Method]: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add(method.toUpperCase(), path, handler as any, hook, hook?.config)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### ws\n\t * Register handler for path with method [ws]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .ws('/', {\n\t * message(ws, message) {\n\t * ws.send(message)\n\t * }\n\t * })\n\t * ```\n\t */\n\tws<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst MacroContext extends MacroToContext<\n\t\t\tMetadata['macroFn'],\n\t\t\tOmit<Input, NonResolvableMacroKey>\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\toptions: WSLocalHook<\n\t\t\tInput,\n\t\t\tSchema,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\tVolatile['resolve'] &\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext['resolve']\n\t\t\t}\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tsubscribe: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\t{} extends Schema['response']\n\t\t\t\t\t\t\t\t? unknown\n\t\t\t\t\t\t\t\t: Schema['response'] extends { [200]: any }\n\t\t\t\t\t\t\t\t\t? Schema['response'][200]\n\t\t\t\t\t\t\t\t\t: unknown,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tif (this['~adapter'].ws) this['~adapter'].ws(this, path, options as any)\n\t\telse console.warn(`Current adapter doesn't support WebSocket`)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state('counter', 0)\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<const Name extends string | number | symbol, Value>(\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & {\n\t\t\t\t\t[name in Name]: Value\n\t\t\t\t}\n\t\t\t>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state({ counter: 0 })\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<Store extends Record<string, unknown>>(\n\t\tstore: Store\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Prettify<Singleton['store'] & Store>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state('counter', 0)\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<\n\t\tconst Type extends ContextAppendType,\n\t\tconst Name extends string | number | symbol,\n\t\tValue\n\t>(\n\t\toptions: { as: Type },\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Type extends 'override'\n\t\t\t\t? Reconcile<\n\t\t\t\t\t\tSingleton['store'],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttrue\n\t\t\t\t\t>\n\t\t\t\t: Prettify<\n\t\t\t\t\t\tSingleton['store'] & {\n\t\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state({ counter: 0 })\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<\n\t\tconst Type extends ContextAppendType,\n\t\tStore extends Record<string, unknown>\n\t>(\n\t\toptions: { as: Type },\n\t\tstore: Store\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Type extends 'override'\n\t\t\t\t? Reconcile<Singleton['store'], Store>\n\t\t\t\t: Prettify<Singleton['store'] & Store>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tstate<NewStore extends Record<string, unknown>>(\n\t\tmapper: (decorators: Singleton['store']) => NewStore\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: NewStore\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state('counter', 0)\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate(\n\t\toptions:\n\t\t\t| { as: ContextAppendType }\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function,\n\t\tname?:\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function\n\t\t\t| { as: ContextAppendType },\n\t\tvalue?: unknown\n\t) {\n\t\tif (name === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ name: value })\n\t\t\t */\n\t\t\tvalue = options\n\t\t\toptions = { as: 'append' }\n\t\t\tname = ''\n\t\t} else if (value === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ as: 'override' }, { name: value })\n\t\t\t * - decorate('name', value)\n\t\t\t */\n\n\t\t\t// decorate('name', value)\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tvalue = name\n\t\t\t\tname = options\n\t\t\t\toptions = { as: 'append' }\n\t\t\t} else if (typeof options === 'object') {\n\t\t\t\t// decorate({ as: 'override' }, { name: value })\n\t\t\t\tvalue = name\n\t\t\t\tname = ''\n\t\t\t}\n\t\t}\n\n\t\tconst { as } = options as { as: ContextAppendType }\n\n\t\tif (typeof name !== 'string') return this\n\n\t\tswitch (typeof value) {\n\t\t\tcase 'object':\n\t\t\t\tif (!value || !isNotEmpty(value)) return this\n\n\t\t\t\tif (name) {\n\t\t\t\t\tif (name in this.singleton.store)\n\t\t\t\t\t\tthis.singleton.store[name] = mergeDeep(\n\t\t\t\t\t\t\tthis.singleton.store[name] as any,\n\t\t\t\t\t\t\tvalue!,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\toverride: as === 'override'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\telse this.singleton.store[name] = value\n\n\t\t\t\t\treturn this\n\t\t\t\t}\n\n\t\t\t\tif (value === null) return this\n\n\t\t\t\tthis.singleton.store = mergeDeep(this.singleton.store, value, {\n\t\t\t\t\toverride: as === 'override'\n\t\t\t\t})\n\n\t\t\t\treturn this as any\n\n\t\t\tcase 'function':\n\t\t\t\tif (name) {\n\t\t\t\t\tif (as === 'override' || !(name in this.singleton.store))\n\t\t\t\t\t\tthis.singleton.store[name] = value\n\t\t\t\t} else this.singleton.store = value(this.singleton.store)\n\n\t\t\t\treturn this as any\n\n\t\t\tdefault:\n\t\t\t\tif (as === 'override' || !(name in this.singleton.store))\n\t\t\t\t\tthis.singleton.store[name] = value\n\n\t\t\t\treturn this\n\t\t}\n\t}\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<const Name extends string, Value>(\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] & {\n\t\t\t\t[name in Name]: Value\n\t\t\t}\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<NewDecorators extends Record<string, unknown>>(\n\t\tdecorators: NewDecorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] & NewDecorators\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tdecorate<NewDecorators extends Record<string, unknown>>(\n\t\tmapper: (decorators: Singleton['decorator']) => NewDecorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: NewDecorators\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate({ as: 'override' }, 'getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<\n\t\tconst Type extends ContextAppendType,\n\t\tconst Name extends string,\n\t\tValue\n\t>(\n\t\toptions: { as: Type },\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Type extends 'override'\n\t\t\t\t? Reconcile<\n\t\t\t\t\t\tSingleton['decorator'],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttrue\n\t\t\t\t\t>\n\t\t\t\t: Singleton['decorator'] & {\n\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t}\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<\n\t\tconst Type extends ContextAppendType,\n\t\tNewDecorators extends Record<string, unknown>\n\t>(\n\t\toptions: { as: Type },\n\t\tdecorators: NewDecorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Type extends 'override'\n\t\t\t\t? Reconcile<Singleton['decorator'], NewDecorators, true>\n\t\t\t\t: Singleton['decorator'] & NewDecorators\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate(\n\t\toptions:\n\t\t\t| { as: ContextAppendType }\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function,\n\t\tname?:\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function\n\t\t\t| { as: ContextAppendType },\n\t\tvalue?: unknown\n\t) {\n\t\tif (name === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ name: value })\n\t\t\t */\n\t\t\tvalue = options\n\t\t\toptions = { as: 'append' }\n\t\t\tname = ''\n\t\t} else if (value === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ as: 'override' }, { name: value })\n\t\t\t * - decorate('name', value)\n\t\t\t */\n\n\t\t\t// decorate('name', value)\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tvalue = name\n\t\t\t\tname = options\n\t\t\t\toptions = { as: 'append' }\n\t\t\t} else if (typeof options === 'object') {\n\t\t\t\t// decorate({ as: 'override' }, { name: value })\n\t\t\t\tvalue = name\n\t\t\t\tname = ''\n\t\t\t}\n\t\t}\n\n\t\tconst { as } = options as { as: ContextAppendType }\n\n\t\tif (typeof name !== 'string') return this\n\n\t\tswitch (typeof value) {\n\t\t\tcase 'object':\n\t\t\t\tif (name) {\n\t\t\t\t\tif (name in this.singleton.decorator)\n\t\t\t\t\t\tthis.singleton.decorator[name] = mergeDeep(\n\t\t\t\t\t\t\tthis.singleton.decorator[name] as any,\n\t\t\t\t\t\t\tvalue!,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\toverride: as === 'override'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\telse this.singleton.decorator[name] = value\n\n\t\t\t\t\treturn this\n\t\t\t\t}\n\n\t\t\t\tif (value === null) return this\n\n\t\t\t\tthis.singleton.decorator = mergeDeep(\n\t\t\t\t\tthis.singleton.decorator,\n\t\t\t\t\tvalue,\n\t\t\t\t\t{\n\t\t\t\t\t\toverride: as === 'override'\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\treturn this as any\n\n\t\t\tcase 'function':\n\t\t\t\tif (name) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tas === 'override' ||\n\t\t\t\t\t\t!(name in this.singleton.decorator)\n\t\t\t\t\t)\n\t\t\t\t\t\tthis.singleton.decorator[name] = value\n\t\t\t\t} else\n\t\t\t\t\tthis.singleton.decorator = value(this.singleton.decorator)\n\n\t\t\t\treturn this as any\n\n\t\t\tdefault:\n\t\t\t\tif (as === 'override' || !(name in this.singleton.decorator))\n\t\t\t\t\tthis.singleton.decorator[name] = value\n\n\t\t\t\treturn this\n\t\t}\n\t}\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tderive<\n\t\tconst Derivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t\t\t| void\n\t>(\n\t\ttransform: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t}\n\t\t\t>\n\t\t) => MaybePromise<Derivative>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive'] & ExcludeElysiaResponse<Derivative>\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tderive<\n\t\tconst Derivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t\t\t| void,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\ttransform: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<Derivative>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tExcludeElysiaResponse<Derivative>\n\t\t\t\t\tresolve: Singleton['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Derivative>\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Derivative>\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tderive(\n\t\toptionsOrTransform: { as: LifeCycleType } | Function,\n\t\ttransform?: Function\n\t) {\n\t\tif (!transform) {\n\t\t\ttransform = optionsOrTransform as any\n\t\t\toptionsOrTransform = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'derive',\n\t\t\tfn: transform!\n\t\t}\n\n\t\treturn this.onTransform(optionsOrTransform as any, hook as any) as any\n\t}\n\n\tmodel<\n\t\tconst Name extends string,\n\t\tconst Model extends TSchema | StandardSchemaV1Like\n\t>(\n\t\tname: Name,\n\t\tmodel: Model\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox'] & {\n\t\t\t\t[name in Name]: Model\n\t\t\t}\n\t\t\terror: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmodel<\n\t\tconst Recorder extends Record<string, TSchema | StandardSchemaV1Like>\n\t>(\n\t\trecord: Recorder\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox'] & Recorder\n\t\t\terror: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmodel<const NewType extends Record<string, TSchema | StandardSchemaV1Like>>(\n\t\tmapper: (\n\t\t\tdecorators: Definitions['typebox'] extends infer Models\n\t\t\t\t? {\n\t\t\t\t\t\t[Name in keyof Models]: Models[Name] extends TSchema\n\t\t\t\t\t\t\t? TRef<Name & string>\n\t\t\t\t\t\t\t: Models[Name]\n\t\t\t\t\t}\n\t\t\t\t: {}\n\t\t) => NewType\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: {\n\t\t\t\t[Name in keyof NewType]: NewType[Name] extends TRef<\n\t\t\t\t\tName & string\n\t\t\t\t>\n\t\t\t\t\t? // @ts-ignore\n\t\t\t\t\t\tDefinitions['typebox'][Name]\n\t\t\t\t\t: NewType[Name]\n\t\t\t}\n\t\t\terror: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmodel(\n\t\tname:\n\t\t\t| string\n\t\t\t| Record<string, TAnySchema | StandardSchemaV1Like>\n\t\t\t| Function,\n\t\tmodel?: TAnySchema | StandardSchemaV1Like\n\t): AnyElysia {\n\t\tconst onlyTypebox = <\n\t\t\tA extends Record<string, TAnySchema | StandardSchemaV1Like>\n\t\t>(\n\t\t\ta: A\n\t\t): Extract<A, TAnySchema> => {\n\t\t\tconst res = {} as Record<string, TAnySchema>\n\t\t\tfor (const key in a) if (!('~standard' in a[key])) res[key] = a[key]\n\t\t\treturn res as Extract<A, TAnySchema>\n\t\t}\n\n\t\tswitch (typeof name) {\n\t\t\tcase 'object':\n\t\t\t\tconst parsedTypebox = {} as Record<\n\t\t\t\t\tstring,\n\t\t\t\t\tTSchema | StandardSchemaV1Like\n\t\t\t\t>\n\n\t\t\t\tconst kvs = Object.entries(name)\n\n\t\t\t\tif (!kvs.length) return this\n\n\t\t\t\tfor (const [key, value] of kvs) {\n\t\t\t\t\tif (key in this.definitions.type) continue\n\n\t\t\t\t\tif ('~standard' in value) {\n\t\t\t\t\t\tthis.definitions.type[key] = value\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparsedTypebox[key] = this.definitions.type[key] = value\n\t\t\t\t\t\tparsedTypebox[key].$id ??= `#/components/schemas/${key}`\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tthis.definitions.typebox = t.Module({\n\t\t\t\t\t...(this.definitions.typebox['$defs'] as TModule<{}>),\n\t\t\t\t\t...parsedTypebox\n\t\t\t\t} as any)\n\n\t\t\t\treturn this\n\n\t\t\tcase 'function':\n\t\t\t\tconst result = name(this.definitions.type)\n\t\t\t\tthis.definitions.type = result\n\t\t\t\tthis.definitions.typebox = t.Module(onlyTypebox(result))\n\n\t\t\t\treturn this\n\n\t\t\tcase 'string':\n\t\t\t\tif (!model) break\n\n\t\t\t\tthis.definitions.type[name] = model\n\n\t\t\t\tif ('~standard' in model) return this\n\n\t\t\t\tconst newModel = {\n\t\t\t\t\t...model,\n\t\t\t\t\tid: model.$id ?? `#/components/schemas/${name}`\n\t\t\t\t}\n\n\t\t\t\tthis.definitions.typebox = t.Module({\n\t\t\t\t\t...(this.definitions.typebox['$defs'] as TModule<{}>),\n\t\t\t\t\t...newModel\n\t\t\t\t} as any)\n\n\t\t\t\treturn this\n\t\t}\n\n\t\tif (!model) return this\n\n\t\tthis.definitions.type[name] = model!\n\t\tif ('~standard' in model) return this\n\n\t\tthis.definitions.typebox = t.Module({\n\t\t\t...this.definitions.typebox['$defs'],\n\t\t\t[name]: model!\n\t\t})\n\n\t\treturn this\n\t}\n\n\tRef<K extends keyof Extract<Definitions['typebox'], TAnySchema> & string>(\n\t\tkey: K\n\t) {\n\t\treturn t.Ref(key)\n\t}\n\n\tmapDerive<\n\t\tconst NewDerivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t>(\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\t{},\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<NewDerivative>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: ExcludeElysiaResponse<NewDerivative>\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t>\n\t\t}\n\t>\n\n\tmapDerive<\n\t\tconst NewDerivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\t{},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<NewDerivative>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tExcludeElysiaResponse<NewDerivative>\n\t\t\t\t\tresolve: Singleton['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewDerivative>\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewDerivative>\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tmapDerive(\n\t\toptionsOrDerive: { as: LifeCycleType } | Function,\n\t\tmapper?: Function\n\t) {\n\t\tif (!mapper) {\n\t\t\tmapper = optionsOrDerive as any\n\t\t\toptionsOrDerive = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'mapDerive',\n\t\t\tfn: mapper!\n\t\t}\n\n\t\treturn this.onTransform(optionsOrDerive as any, hook as any) as any\n\t}\n\n\taffix<\n\t\tconst Base extends 'prefix' | 'suffix',\n\t\tconst Type extends 'all' | 'decorator' | 'state' | 'model' | 'error',\n\t\tconst Word extends string\n\t>(\n\t\tbase: Base,\n\t\ttype: Type,\n\t\tword: Word\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Type extends 'decorator' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['decorator']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['decorator']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Singleton['decorator']>\n\t\t\t\t: Singleton['decorator']\n\t\t\tstore: Type extends 'state' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['store']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['store']>\n\t\t\t\t\t: AddSuffix<Word, Singleton['store']>\n\t\t\t\t: Singleton['store']\n\t\t\tderive: Type extends 'decorator' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['derive']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['derive']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Singleton['derive']>\n\t\t\t\t: Singleton['derive']\n\t\t\tresolve: Type extends 'decorator' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['resolve']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['resolve']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Singleton['resolve']>\n\t\t\t\t: Singleton['resolve']\n\t\t},\n\t\t{\n\t\t\ttypebox: Type extends 'model' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Definitions['typebox']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Definitions['typebox']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Definitions['typebox']>\n\t\t\t\t: Definitions['typebox']\n\t\t\terror: Type extends 'error' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Definitions['error']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Definitions['error']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Definitions['error']>\n\t\t\t\t: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tif (word === '') return this as any\n\n\t\tconst delimieter = ['_', '-', ' ']\n\t\tconst capitalize = (word: string) =>\n\t\t\tword[0].toUpperCase() + word.slice(1)\n\n\t\tconst joinKey =\n\t\t\tbase === 'prefix'\n\t\t\t\t? (prefix: string, word: string) =>\n\t\t\t\t\t\tdelimieter.includes(prefix.at(-1) ?? '')\n\t\t\t\t\t\t\t? prefix + word\n\t\t\t\t\t\t\t: prefix + capitalize(word)\n\t\t\t\t: delimieter.includes(word.at(-1) ?? '')\n\t\t\t\t\t? (suffix: string, word: string) => word + suffix\n\t\t\t\t\t: (suffix: string, word: string) =>\n\t\t\t\t\t\t\tword + capitalize(suffix)\n\n\t\tconst remap = (type: 'decorator' | 'state' | 'model' | 'error') => {\n\t\t\tconst store: Record<string, any> = {}\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'decorator':\n\t\t\t\t\tfor (const key in this.singleton.decorator) {\n\t\t\t\t\t\tstore[joinKey(word, key)] =\n\t\t\t\t\t\t\tthis.singleton.decorator[key]\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.singleton.decorator = store\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'state':\n\t\t\t\t\tfor (const key in this.singleton.store)\n\t\t\t\t\t\tstore[joinKey(word, key)] = this.singleton.store[key]\n\n\t\t\t\t\tthis.singleton.store = store\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'model':\n\t\t\t\t\tfor (const key in this.definitions.type)\n\t\t\t\t\t\tstore[joinKey(word, key)] = this.definitions.type[key]\n\n\t\t\t\t\tthis.definitions.type = store\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'error':\n\t\t\t\t\tfor (const key in this.definitions.error)\n\t\t\t\t\t\tstore[joinKey(word, key)] = this.definitions.error[key]\n\n\t\t\t\t\tthis.definitions.error = store\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst types = Array.isArray(type) ? type : [type]\n\n\t\tfor (const type of types.some((x) => x === 'all')\n\t\t\t? ['decorator', 'state', 'model', 'error']\n\t\t\t: types)\n\t\t\tremap(type as 'decorator')\n\n\t\treturn this as any\n\t}\n\n\tprefix<\n\t\tconst Type extends 'all' | 'decorator' | 'state' | 'model' | 'error',\n\t\tconst Word extends string\n\t>(type: Type, word: Word) {\n\t\treturn this.affix('prefix', type, word)\n\t}\n\n\tsuffix<\n\t\tconst Type extends 'all' | 'decorator' | 'state' | 'model' | 'error',\n\t\tconst Word extends string\n\t>(type: Type, word: Word) {\n\t\treturn this.affix('suffix', type, word)\n\t}\n\n\tcompile() {\n\t\tthis['~adapter'].beforeCompile?.(this)\n\n\t\tif (this['~adapter'].isWebStandard) {\n\t\t\tthis.fetch = this.config.aot\n\t\t\t\t? composeGeneralHandler(this)\n\t\t\t\t: createDynamicHandler(this)\n\n\t\t\tif (typeof this.server?.reload === 'function')\n\t\t\t\tthis.server.reload({\n\t\t\t\t\t...(this.server || {}),\n\t\t\t\t\tfetch: this.fetch\n\t\t\t\t})\n\n\t\t\treturn this\n\t\t}\n\n\t\tif (typeof this.server?.reload === 'function')\n\t\t\tthis.server.reload(this.server || {})\n\n\t\tthis._handle = composeGeneralHandler(this)\n\n\t\treturn this\n\t}\n\n\thandle = async (request: Request) => this.fetch(request)\n\n\t/**\n\t * Use handle can be either sync or async to save performance.\n\t *\n\t * Beside benchmark purpose, please use 'handle' instead.\n\t */\n\tfetch = (request: Request): MaybePromise<Response> => {\n\t\treturn (this.fetch = this.config.aot\n\t\t\t? composeGeneralHandler(this)\n\t\t\t: createDynamicHandler(this))(request)\n\t}\n\n\t/**\n\t * Custom handle written by adapter\n\t */\n\tprotected _handle?(...a: unknown[]): unknown\n\n\tprotected handleError = async (\n\t\tcontext: Partial<\n\t\t\tContext<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tMetadata['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Volatile['schema']>\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t> & {\n\t\t\trequest: Request\n\t\t},\n\t\terror:\n\t\t\t| Error\n\t\t\t| ValidationError\n\t\t\t| ParseError\n\t\t\t| NotFoundError\n\t\t\t| InternalServerError\n\t) => {\n\t\treturn (this.handleError = this.config.aot\n\t\t\t? composeErrorHandler(this)\n\t\t\t: createDynamicErrorHandler(this))(context, error)\n\t}\n\n\t/**\n\t * ### listen\n\t * Assign current instance to port and start serving\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .get(\"/\", () => 'hi')\n\t * .listen(3000)\n\t * ```\n\t */\n\tlisten = (\n\t\toptions: string | number | Partial<Serve>,\n\t\tcallback?: ListenCallback\n\t) => {\n\t\tthis['~adapter'].listen(this)(options, callback)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### stop\n\t * Stop server from serving\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * const app = new Elysia()\n\t * .get(\"/\", () => 'hi')\n\t * .listen(3000)\n\t *\n\t * // Sometime later\n\t * app.stop()\n\t * ```\n\t *\n\t * @example\n\t * ```typescript\n\t * const app = new Elysia()\n\t * .get(\"/\", () => 'hi')\n\t * .listen(3000)\n\t *\n\t * app.stop(true) // Abruptly any requests inflight\n\t * ```\n\t */\n\tstop = async (closeActiveConnections?: boolean) => {\n\t\tawait this['~adapter'].stop?.(this, closeActiveConnections)\n\n\t\treturn this\n\t};\n\n\t[Symbol.dispose] = () => {\n\t\tif (this.server) this.stop()\n\t}\n\n\t/**\n\t * Wait until all lazy loaded modules all load is fully\n\t */\n\tget modules() {\n\t\treturn this.promisedModules\n\t}\n}\n\nexport { Elysia }\n\nexport { t } from './type-system'\nexport { validationDetail, fileType } from './type-system/utils'\nexport type {\n\tElysiaTypeCustomError,\n\tElysiaTypeCustomErrorCallback\n} from './type-system/types'\n\nexport { serializeCookie, Cookie, type CookieOptions } from './cookies'\nexport type { Context, PreContext, ErrorContext } from './context'\nexport {\n\tELYSIA_TRACE,\n\ttype TraceEvent,\n\ttype TraceListener,\n\ttype TraceHandler,\n\ttype TraceProcess,\n\ttype TraceStream\n} from './trace'\n\nexport {\n\tgetSchemaValidator,\n\tgetResponseSchemaValidator,\n\treplaceSchemaType\n} from './schema'\n\nexport {\n\tmergeHook,\n\tmergeObjectArray,\n\tredirect,\n\tStatusMap,\n\tInvertedStatusMap,\n\tform,\n\treplaceUrlPath,\n\tchecksum,\n\tcloneInference,\n\tdeduplicateChecksum,\n\tELYSIA_FORM_DATA,\n\tELYSIA_REQUEST_ID,\n\tsse\n} from './utils'\n\nexport {\n\tstatus,\n\tmapValueError,\n\tParseError,\n\tNotFoundError,\n\tValidationError,\n\tInvalidFileType,\n\tInternalServerError,\n\tInvalidCookieSignature,\n\tERROR_CODE,\n\tElysiaCustomStatusResponse\n} from './error'\n\nexport type {\n\tEphemeralType,\n\tCreateEden,\n\tComposeElysiaResponse,\n\tElysiaConfig,\n\tSingletonBase,\n\tDefinitionBase,\n\tRouteBase,\n\tHandler,\n\tComposedHandler,\n\tInputSchema,\n\tLocalHook,\n\tMergeSchema,\n\tRouteSchema,\n\tUnwrapRoute,\n\tInternalRoute,\n\tHTTPMethod,\n\tSchemaValidator,\n\tVoidHandler,\n\tPreHandler,\n\tBodyHandler,\n\tOptionalHandler,\n\tAfterResponseHandler,\n\tErrorHandler,\n\tLifeCycleEvent,\n\tLifeCycleStore,\n\tLifeCycleType,\n\tMaybePromise,\n\tUnwrapSchema,\n\tChecksum,\n\tDocumentDecoration,\n\tInferContext,\n\tInferHandler,\n\tResolvePath,\n\tMapResponse,\n\tBaseMacro,\n\tMacroManager,\n\tMacroToProperty,\n\tMergeElysiaInstances,\n\tMaybeArray,\n\tModelValidator,\n\tMetadataBase,\n\tUnwrapBodySchema,\n\tUnwrapGroupGuardRoute,\n\tModelValidatorError,\n\tExcludeElysiaResponse,\n\tSSEPayload,\n\tStandaloneInputSchema,\n\tMergeStandaloneSchema,\n\tMergeTypeModule,\n\tGracefulHandler,\n\tAfterHandler,\n\tInlineHandler,\n\tResolveHandler,\n\tTransformHandler,\n\tHTTPHeaders,\n\tEmptyRouteSchema\n} from './types'\n\nexport { env } from './universal/env'\nexport { file, ElysiaFile } from './universal/file'\nexport type { ElysiaAdapter } from './adapter'\n\nexport { TypeSystemPolicy } from '@sinclair/typebox/system'\nexport type { Static, TSchema } from '@sinclair/typebox'\n",
8
+ "import { Memoirist } from 'memoirist'\nimport {\n\tKind,\n\ttype TObject,\n\ttype TSchema,\n\ttype TModule,\n\ttype TRef,\n\ttype TAnySchema\n} from '@sinclair/typebox'\n\nimport fastDecodeURIComponent from 'fast-decode-uri-component'\nimport type { Context, PreContext } from './context'\n\nimport { t } from './type-system'\nimport { mergeInference, sucrose, type Sucrose } from './sucrose'\n\nimport type { WSLocalHook } from './ws/types'\n\nimport { BunAdapter } from './adapter/bun/index'\nimport { WebStandardAdapter } from './adapter/web-standard/index'\nimport type { ElysiaAdapter } from './adapter/types'\n\nimport { env } from './universal/env'\nimport type { ListenCallback, Serve, Server } from './universal/server'\n\nimport {\n\tcloneInference,\n\tdeduplicateChecksum,\n\tfnToContainer,\n\tgetLoosePath,\n\tlocalHookToLifeCycleStore,\n\tmergeDeep,\n\tmergeSchemaValidator,\n\tPromiseGroup,\n\tpromoteEvent,\n\tisNotEmpty,\n\tencodePath,\n\tlifeCycleToArray,\n\tsupportPerMethodInlineHandler,\n\tredirect,\n\temptySchema,\n\tinsertStandaloneValidator\n} from './utils'\n\nimport {\n\tcoercePrimitiveRoot,\n\tstringToStructureCoercions,\n\tgetSchemaValidator,\n\tgetResponseSchemaValidator,\n\tgetCookieValidator,\n\tElysiaTypeCheck,\n\tqueryCoercions\n} from './schema'\nimport {\n\tcomposeHandler,\n\tcomposeGeneralHandler,\n\tcomposeErrorHandler\n} from './compose'\n\nimport { createTracer } from './trace'\n\nimport {\n\tmergeHook,\n\tchecksum,\n\tmergeLifeCycle,\n\tfilterGlobalHook,\n\tasHookType,\n\treplaceUrlPath\n} from './utils'\n\nimport {\n\tcreateDynamicErrorHandler,\n\tcreateDynamicHandler,\n\ttype DynamicHandler\n} from './dynamic-handle'\n\nimport {\n\tstatus,\n\tERROR_CODE,\n\tValidationError,\n\ttype ParseError,\n\ttype NotFoundError,\n\ttype InternalServerError,\n\ttype ElysiaCustomStatusResponse\n} from './error'\n\nimport type { TraceHandler } from './trace'\n\nimport type {\n\tElysiaConfig,\n\tSingletonBase,\n\tDefinitionBase,\n\tHandler,\n\tComposedHandler,\n\tInputSchema,\n\tLocalHook,\n\tAnyLocalHook,\n\tMergeSchema,\n\tRouteSchema,\n\tUnwrapRoute,\n\tInternalRoute,\n\tHTTPMethod,\n\tSchemaValidator,\n\tPreHandler,\n\tBodyHandler,\n\tOptionalHandler,\n\tErrorHandler,\n\tLifeCycleStore,\n\tMaybePromise,\n\tPrettify,\n\tAddPrefix,\n\tAddSuffix,\n\tAddPrefixCapitalize,\n\tAddSuffixCapitalize,\n\tMaybeArray,\n\tGracefulHandler,\n\tMapResponse,\n\tChecksum,\n\tMacroManager,\n\tMacroToProperty,\n\tTransformHandler,\n\tMetadataBase,\n\tRouteBase,\n\tCreateEden,\n\tComposeElysiaResponse,\n\tInlineHandler,\n\tHookContainer,\n\tLifeCycleType,\n\tEphemeralType,\n\tExcludeElysiaResponse,\n\tModelValidator,\n\tContextAppendType,\n\tReconcile,\n\tAfterResponseHandler,\n\tHigherOrderFunction,\n\tResolvePath,\n\tJoinPath,\n\tValidatorLayer,\n\tMergeElysiaInstances,\n\tMacro,\n\tMacroToContext,\n\tStandaloneValidator,\n\tGuardSchemaType,\n\tOr,\n\tDocumentDecoration,\n\tAfterHandler,\n\tNonResolvableMacroKey,\n\tStandardSchemaV1Like,\n\tElysiaHandlerToResponseSchema,\n\tElysiaHandlerToResponseSchemas,\n\tExtractErrorFromHandle,\n\tElysiaHandlerToResponseSchemaAmbiguous,\n\tGuardLocalHook,\n\tPickIfExists,\n\tSimplifyToSchema,\n\tUnionResponseStatus,\n\tCreateEdenResponse,\n\tMacroProperty,\n\tMaybeValueOrVoidFunction,\n\tIntersectIfObject,\n\tIntersectIfObjectSchema,\n\tEmptyRouteSchema,\n\tUnknownRouteSchema,\n\tMaybeFunction,\n\tInlineHandlerNonMacro\n} from './types'\n\nexport type AnyElysia = Elysia<any, any, any, any, any, any, any>\n\n/**\n * ### Elysia Server\n * Main instance to create web server using Elysia\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia } from 'elysia'\n *\n * new Elysia()\n * .get(\"/\", () => \"Hello\")\n * .listen(3000)\n * ```\n */\nexport default class Elysia<\n\tconst in out BasePath extends string = '',\n\tconst in out Singleton extends SingletonBase = {\n\t\tdecorator: {}\n\t\tstore: {}\n\t\tderive: {}\n\t\tresolve: {}\n\t},\n\tconst in out Definitions extends DefinitionBase = {\n\t\ttypebox: {}\n\t\terror: {}\n\t},\n\tconst in out Metadata extends MetadataBase = {\n\t\tschema: {}\n\t\tstandaloneSchema: {}\n\t\tmacro: {}\n\t\tmacroFn: {}\n\t\tparser: {}\n\t\tresponse: {}\n\t},\n\tconst out Routes extends RouteBase = {},\n\t// ? scoped\n\tconst in out Ephemeral extends EphemeralType = {\n\t\tderive: {}\n\t\tresolve: {}\n\t\tschema: {}\n\t\tstandaloneSchema: {}\n\t\tresponse: {}\n\t},\n\t// ? local\n\tconst in out Volatile extends EphemeralType = {\n\t\tderive: {}\n\t\tresolve: {}\n\t\tschema: {}\n\t\tstandaloneSchema: {}\n\t\tresponse: {}\n\t}\n> {\n\tconfig: ElysiaConfig<BasePath>\n\n\tserver: Server | null = null\n\tprivate dependencies: { [key in string]: Checksum[] } = {}\n\n\t'~Prefix' = '' as BasePath\n\t'~Singleton' = null as unknown as Singleton\n\t'~Definitions' = null as unknown as Definitions\n\t'~Metadata' = null as unknown as Metadata\n\t'~Ephemeral' = null as unknown as Ephemeral\n\t'~Volatile' = null as unknown as Volatile\n\t'~Routes' = null as unknown as Routes\n\n\tprotected singleton = {\n\t\tdecorator: {},\n\t\tstore: {},\n\t\tderive: {},\n\t\tresolve: {}\n\t} as SingletonBase\n\n\tget store(): Singleton['store'] {\n\t\treturn this.singleton.store\n\t}\n\n\tget decorator(): Singleton['decorator'] {\n\t\treturn this.singleton.decorator\n\t}\n\n\tprotected definitions = {\n\t\ttypebox: t.Module({}),\n\t\ttype: {} as Record<string, TSchema | StandardSchemaV1Like>,\n\t\terror: {} as Record<string, Error>\n\t}\n\n\tprotected extender = {\n\t\tmacro: <Macro>{},\n\t\thigherOrderFunctions: <HookContainer<HigherOrderFunction>[]>[]\n\t}\n\n\tprotected validator: ValidatorLayer = {\n\t\tglobal: null,\n\t\tscoped: null,\n\t\tlocal: null,\n\t\tgetCandidate() {\n\t\t\tif (!this.global && !this.scoped && !this.local)\n\t\t\t\treturn {\n\t\t\t\t\tbody: undefined,\n\t\t\t\t\theaders: undefined,\n\t\t\t\t\tparams: undefined,\n\t\t\t\t\tquery: undefined,\n\t\t\t\t\tcookie: undefined,\n\t\t\t\t\tresponse: undefined\n\t\t\t\t}\n\n\t\t\treturn mergeSchemaValidator(\n\t\t\t\tmergeSchemaValidator(this.global, this.scoped),\n\t\t\t\tthis.local\n\t\t\t)\n\t\t}\n\t}\n\n\tprotected standaloneValidator: StandaloneValidator = {\n\t\tglobal: null,\n\t\tscoped: null,\n\t\tlocal: null\n\t}\n\n\tevent: Partial<LifeCycleStore> = {}\n\n\tprotected telemetry:\n\t\t| undefined\n\t\t| {\n\t\t\t\tstack: string | undefined\n\t\t }\n\n\trouter = {\n\t\t'~http': undefined as\n\t\t\t| Memoirist<{\n\t\t\t\t\tcompile: Function\n\t\t\t\t\thandler?: ComposedHandler\n\t\t\t }>\n\t\t\t| undefined,\n\t\tget http() {\n\t\t\tif (!this['~http'])\n\t\t\t\tthis['~http'] = new Memoirist({\n\t\t\t\t\tlazy: true,\n\t\t\t\t\tonParam: fastDecodeURIComponent\n\t\t\t\t})\n\n\t\t\treturn this['~http']\n\t\t},\n\t\t'~dynamic': undefined as Memoirist<DynamicHandler> | undefined,\n\t\t// Use in non-AOT mode\n\t\tget dynamic() {\n\t\t\tif (!this['~dynamic'])\n\t\t\t\tthis['~dynamic'] = new Memoirist({\n\t\t\t\t\tonParam: fastDecodeURIComponent\n\t\t\t\t})\n\n\t\t\treturn this['~dynamic']\n\t\t},\n\t\t// Static Router\n\t\tstatic: {} as { [path in string]: { [method in string]: number } },\n\t\t// Native Static Response\n\t\tresponse: {} as {\n\t\t\t[path: string]:\n\t\t\t\t| MaybePromise<Response | undefined>\n\t\t\t\t| { [method: string]: MaybePromise<Response | undefined> }\n\t\t},\n\t\thistory: [] as InternalRoute[]\n\t}\n\n\tprotected routeTree: Record<string, number> = {}\n\n\tget routes(): InternalRoute[] {\n\t\treturn this.router.history\n\t}\n\n\tprotected getGlobalRoutes(): InternalRoute[] {\n\t\treturn this.router.history\n\t}\n\n\tprotected getGlobalDefinitions() {\n\t\treturn this.definitions\n\t}\n\n\tprotected inference: Sucrose.Inference = {\n\t\tbody: false,\n\t\tcookie: false,\n\t\theaders: false,\n\t\tquery: false,\n\t\tset: false,\n\t\tserver: false,\n\t\tpath: false,\n\t\troute: false,\n\t\turl: false\n\t}\n\n\tprivate getServer() {\n\t\treturn this.server\n\t}\n\n\tprivate getParent(): Elysia | null {\n\t\treturn null\n\t}\n\n\t'~parser': { [K in string]: BodyHandler<any, any> } = {}\n\n\tprivate _promisedModules: PromiseGroup | undefined\n\tprivate get promisedModules() {\n\t\tif (!this._promisedModules)\n\t\t\tthis._promisedModules = new PromiseGroup(console.error, () => {\n\t\t\t\t// this.compile()\n\t\t\t})\n\n\t\treturn this._promisedModules\n\t}\n\n\tconstructor(config: ElysiaConfig<BasePath> = {}) {\n\t\tif (config.tags) {\n\t\t\tif (!config.detail)\n\t\t\t\tconfig.detail = {\n\t\t\t\t\ttags: config.tags\n\t\t\t\t}\n\t\t\telse config.detail.tags = config.tags\n\t\t}\n\n\t\tthis.config = {\n\t\t\taot: env.ELYSIA_AOT !== 'false',\n\t\t\tnativeStaticResponse: true,\n\t\t\tsystemRouter: true,\n\t\t\tencodeSchema: true,\n\t\t\tnormalize: true,\n\t\t\t...config,\n\t\t\tprefix: config.prefix\n\t\t\t\t? config.prefix.charCodeAt(0) === 47\n\t\t\t\t\t? config.prefix\n\t\t\t\t\t: `/${config.prefix}`\n\t\t\t\t: (undefined as any),\n\t\t\tcookie: {\n\t\t\t\tpath: '/',\n\t\t\t\t...config?.cookie\n\t\t\t},\n\t\t\texperimental: config?.experimental ?? {},\n\t\t\tseed: config?.seed === undefined ? '' : config?.seed\n\t\t}\n\n\t\tthis['~adapter'] =\n\t\t\tconfig.adapter ??\n\t\t\t(typeof Bun !== 'undefined' ? BunAdapter : WebStandardAdapter)\n\n\t\tif (config?.analytic && (config?.name || config?.seed !== undefined))\n\t\t\tthis.telemetry = {\n\t\t\t\tstack: new Error().stack\n\t\t\t}\n\t}\n\n\t'~adapter': ElysiaAdapter\n\n\tenv(model: TObject<any>, _env = env) {\n\t\tconst validator = getSchemaValidator(model, {\n\t\t\tmodules: this.definitions.typebox,\n\t\t\tdynamic: true,\n\t\t\tadditionalProperties: true,\n\t\t\tcoerce: true,\n\t\t\tsanitize: () => this.config.sanitize\n\t\t})\n\n\t\tif (validator.Check(_env) === false) {\n\t\t\tconst error = new ValidationError('env', model, _env)\n\n\t\t\tthrow new Error(error.all.map((x) => x.summary).join('\\n'))\n\t\t}\n\n\t\treturn this\n\t}\n\n\t/**\n\t * @private DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n\t * @version 1.1.0\n\t *\n\t * ! Do not use unless you know exactly what you are doing\n\t * ? Add Higher order function to Elysia.fetch\n\t */\n\twrap(fn: HigherOrderFunction) {\n\t\tthis.extender.higherOrderFunctions.push({\n\t\t\tchecksum: checksum(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tname: this.config.name,\n\t\t\t\t\tseed: this.config.seed,\n\t\t\t\t\tcontent: fn.toString()\n\t\t\t\t})\n\t\t\t),\n\t\t\tfn\n\t\t})\n\n\t\treturn this\n\t}\n\n\tget models(): {\n\t\t[K in keyof Definitions['typebox']]: ModelValidator<\n\t\t\tDefinitions['typebox'][K]\n\t\t>\n\t} & {\n\t\tmodules:\n\t\t\t| TModule<Extract<Definitions['typebox'], TAnySchema>>\n\t\t\t| Extract<Definitions['typebox'], StandardSchemaV1Like>\n\t} {\n\t\tconst models: Record<string, ElysiaTypeCheck<TSchema>> = {}\n\n\t\tfor (const name of Object.keys(this.definitions.type))\n\t\t\tmodels[name] = getSchemaValidator(\n\t\t\t\tthis.definitions.typebox.Import(name as never)\n\t\t\t)\n\n\t\t// @ts-expect-error\n\t\tmodels.modules = this.definitions.typebox\n\n\t\treturn models as any\n\t}\n\n\tprivate add(\n\t\tmethod: HTTPMethod,\n\t\tpath: string,\n\t\thandle: Handler<any, any, any> | any,\n\t\tlocalHook?: AnyLocalHook,\n\t\toptions?: {\n\t\t\tallowMeta?: boolean\n\t\t\tskipPrefix?: boolean\n\t\t}\n\t) {\n\t\tconst skipPrefix = options?.skipPrefix ?? false\n\t\tconst allowMeta = options?.allowMeta ?? false\n\n\t\tlocalHook ??= {}\n\n\t\tthis.applyMacro(localHook)\n\n\t\tlet standaloneValidators = [] as InputSchema[]\n\n\t\tif (localHook.standaloneValidator)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tlocalHook.standaloneValidator\n\t\t\t)\n\n\t\tif (this.standaloneValidator.local)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tthis.standaloneValidator.local\n\t\t\t)\n\n\t\tif (this.standaloneValidator.scoped)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tthis.standaloneValidator.scoped\n\t\t\t)\n\n\t\tif (this.standaloneValidator.global)\n\t\t\tstandaloneValidators = standaloneValidators.concat(\n\t\t\t\tthis.standaloneValidator.global\n\t\t\t)\n\n\t\tif (path !== '' && path.charCodeAt(0) !== 47) path = '/' + path\n\t\tif (this.config.prefix && !skipPrefix) path = this.config.prefix + path\n\n\t\tif (localHook?.type)\n\t\t\tswitch (localHook.type) {\n\t\t\t\tcase 'text':\n\t\t\t\t\tlocalHook.type = 'text/plain'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'json':\n\t\t\t\t\tlocalHook.type = 'application/json'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'formdata':\n\t\t\t\t\tlocalHook.type = 'multipart/form-data'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'urlencoded':\n\t\t\t\t\tlocalHook.type = 'application/x-www-form-urlencoded'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\tlocalHook.type = 'application/octet-stream'\n\t\t\t\t\tbreak\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak\n\t\t\t}\n\n\t\tconst instanceValidator = this.validator.getCandidate()\n\n\t\tconst cloned = {\n\t\t\tbody: localHook?.body ?? (instanceValidator?.body as any),\n\t\t\theaders: localHook?.headers ?? (instanceValidator?.headers as any),\n\t\t\tparams: localHook?.params ?? (instanceValidator?.params as any),\n\t\t\tquery: localHook?.query ?? (instanceValidator?.query as any),\n\t\t\tcookie: localHook?.cookie ?? (instanceValidator?.cookie as any),\n\t\t\tresponse:\n\t\t\t\tlocalHook?.response ?? (instanceValidator?.response as any)\n\t\t}\n\n\t\tconst shouldPrecompile =\n\t\t\tthis.config.precompile === true ||\n\t\t\t(typeof this.config.precompile === 'object' &&\n\t\t\t\tthis.config.precompile.compose === true)\n\n\t\tconst createValidator = () => {\n\t\t\tconst models = this.definitions.type\n\t\t\tconst dynamic = !this.config.aot\n\n\t\t\tconst normalize = this.config.normalize\n\t\t\tconst modules = this.definitions.typebox\n\n\t\t\tconst sanitize = () => this.config.sanitize\n\n\t\t\tconst cookieValidator = () => {\n\t\t\t\tif (cloned.cookie || standaloneValidators.find((x) => x.cookie))\n\t\t\t\t\treturn getCookieValidator({\n\t\t\t\t\t\tmodules,\n\t\t\t\t\t\tvalidator: cloned.cookie,\n\t\t\t\t\t\tdefaultConfig: this.config.cookie,\n\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\tconfig: cloned.cookie?.config ?? {},\n\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\tmodels,\n\t\t\t\t\t\tvalidators: standaloneValidators.map((x) => x.cookie),\n\t\t\t\t\t\tsanitize\n\t\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn shouldPrecompile\n\t\t\t\t? {\n\t\t\t\t\t\tbody: getSchemaValidator(cloned.body, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\tadditionalCoerce: coercePrimitiveRoot(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map((x) => x.body),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\theaders: getSchemaValidator(cloned.headers, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tadditionalProperties: true,\n\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\tadditionalCoerce: stringToStructureCoercions(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.headers\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tparams: getSchemaValidator(cloned.params, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\tadditionalCoerce: stringToStructureCoercions(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.params\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tquery: getSchemaValidator(cloned.query, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\tadditionalCoerce: queryCoercions(),\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.query\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tcookie: cookieValidator(),\n\t\t\t\t\t\tresponse: getResponseSchemaValidator(cloned.response, {\n\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t(x) => x.response as any\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t: ({\n\t\t\t\t\t\tcreateBody() {\n\t\t\t\t\t\t\tif (this.body) return this.body\n\n\t\t\t\t\t\t\treturn (this.body = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.body,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tadditionalCoerce: coercePrimitiveRoot(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.body\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateHeaders() {\n\t\t\t\t\t\t\tif (this.headers) return this.headers\n\n\t\t\t\t\t\t\treturn (this.headers = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.headers,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tadditionalProperties: !normalize,\n\t\t\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\t\t\tadditionalCoerce:\n\t\t\t\t\t\t\t\t\t\tstringToStructureCoercions(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.headers\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateParams() {\n\t\t\t\t\t\t\tif (this.params) return this.params\n\n\t\t\t\t\t\t\treturn (this.params = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.params,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\t\t\tadditionalCoerce:\n\t\t\t\t\t\t\t\t\t\tstringToStructureCoercions(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.params\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateQuery() {\n\t\t\t\t\t\t\tif (this.query) return this.query\n\n\t\t\t\t\t\t\treturn (this.query = getSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.query,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tcoerce: true,\n\t\t\t\t\t\t\t\t\tadditionalCoerce: queryCoercions(),\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.query\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateCookie() {\n\t\t\t\t\t\t\tif (this.cookie) return this.cookie\n\n\t\t\t\t\t\t\treturn (this.cookie = cookieValidator())\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcreateResponse() {\n\t\t\t\t\t\t\tif (this.response) return this.response\n\n\t\t\t\t\t\t\treturn (this.response = getResponseSchemaValidator(\n\t\t\t\t\t\t\t\tcloned.response,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\t\tvalidators: standaloneValidators.map(\n\t\t\t\t\t\t\t\t\t\t(x) => x.response as any\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsanitize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t}\n\t\t\t\t\t} as any)\n\t\t}\n\n\t\tif (\n\t\t\tinstanceValidator.body ||\n\t\t\tinstanceValidator.cookie ||\n\t\t\tinstanceValidator.headers ||\n\t\t\tinstanceValidator.params ||\n\t\t\tinstanceValidator.query ||\n\t\t\tinstanceValidator.response\n\t\t)\n\t\t\tlocalHook = mergeHook(localHook, instanceValidator)\n\n\t\tif (localHook.tags) {\n\t\t\tif (!localHook.detail)\n\t\t\t\tlocalHook.detail = {\n\t\t\t\t\ttags: localHook.tags\n\t\t\t\t}\n\t\t\telse localHook.detail.tags = localHook.tags\n\t\t}\n\n\t\tif (isNotEmpty(this.config.detail))\n\t\t\tlocalHook.detail = mergeDeep(\n\t\t\t\tObject.assign({}, this.config.detail!),\n\t\t\t\tlocalHook.detail\n\t\t\t)\n\n\t\tconst hooks = isNotEmpty(this.event)\n\t\t\t? mergeHook(this.event, localHookToLifeCycleStore(localHook))\n\t\t\t: { ...lifeCycleToArray(localHookToLifeCycleStore(localHook)) }\n\n\t\tif (standaloneValidators.length)\n\t\t\tObject.assign(hooks, {\n\t\t\t\tstandaloneValidator: standaloneValidators\n\t\t\t})\n\n\t\tif (this.config.aot === false) {\n\t\t\tconst validator = createValidator()\n\n\t\t\tthis.router.dynamic.add(method, path, {\n\t\t\t\tvalidator,\n\t\t\t\thooks,\n\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\thandle,\n\t\t\t\troute: path\n\t\t\t})\n\n\t\t\tconst encoded = encodePath(path, { dynamic: true })\n\t\t\tif (path !== encoded) {\n\t\t\t\tthis.router.dynamic.add(method, encoded, {\n\t\t\t\t\tvalidator,\n\t\t\t\t\thooks,\n\t\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\t\thandle,\n\t\t\t\t\troute: path\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!this.config.strictPath) {\n\t\t\t\tconst loosePath = getLoosePath(path)\n\t\t\t\tthis.router.dynamic.add(method, loosePath, {\n\t\t\t\t\tvalidator,\n\t\t\t\t\thooks,\n\t\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\t\thandle,\n\t\t\t\t\troute: path\n\t\t\t\t})\n\n\t\t\t\tconst encoded = encodePath(loosePath)\n\t\t\t\tif (loosePath !== encoded)\n\t\t\t\t\tthis.router.dynamic.add(method, loosePath, {\n\t\t\t\t\t\tvalidator,\n\t\t\t\t\t\thooks,\n\t\t\t\t\t\tcontent: localHook?.type as string,\n\t\t\t\t\t\thandle,\n\t\t\t\t\t\troute: path\n\t\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.router.history.push({\n\t\t\t\tmethod,\n\t\t\t\tpath,\n\t\t\t\tcomposed: null,\n\t\t\t\thandler: handle,\n\t\t\t\tcompile: undefined as any,\n\t\t\t\thooks\n\t\t\t})\n\n\t\t\treturn\n\t\t}\n\n\t\tconst adapter = this['~adapter'].handler\n\n\t\tconst nativeStaticHandler =\n\t\t\ttypeof handle !== 'function'\n\t\t\t\t? () => {\n\t\t\t\t\t\tconst context: PreContext = {\n\t\t\t\t\t\t\tredirect,\n\t\t\t\t\t\t\trequest: this['~adapter'].isWebStandard\n\t\t\t\t\t\t\t\t? new Request(`http://ely.sia${path}`, {\n\t\t\t\t\t\t\t\t\t\tmethod\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t: (undefined as any as Request),\n\t\t\t\t\t\t\tserver: null,\n\t\t\t\t\t\t\tset: {\n\t\t\t\t\t\t\t\theaders: Object.assign({}, this.setHeaders)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\tstore: this.store\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.event.request?.map((x) => {\n\t\t\t\t\t\t\t\tif (typeof x.fn === 'function')\n\t\t\t\t\t\t\t\t\treturn x.fn(context)\n\n\t\t\t\t\t\t\t\t// @ts-ignore just in case\n\t\t\t\t\t\t\t\tif (typeof x === 'function') return x(context)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tlet res\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcontext.error = error\n\n\t\t\t\t\t\t\tthis.event.error?.some((x) => {\n\t\t\t\t\t\t\t\tif (typeof x.fn === 'function')\n\t\t\t\t\t\t\t\t\treturn (res = x.fn(context))\n\n\t\t\t\t\t\t\t\tif (typeof x === 'function')\n\t\t\t\t\t\t\t\t\t// @ts-ignore just in case\n\t\t\t\t\t\t\t\t\treturn (res = x(context))\n\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\tif (res !== undefined) handle = res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst fn = adapter.createNativeStaticHandler?.(\n\t\t\t\t\t\t\thandle,\n\t\t\t\t\t\t\thooks,\n\t\t\t\t\t\t\tcontext.set as Context['set']\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\treturn fn instanceof Promise\n\t\t\t\t\t\t\t? fn.then((fn) => {\n\t\t\t\t\t\t\t\t\tif (fn) return fn\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t: fn?.()\n\t\t\t\t\t}\n\t\t\t\t: undefined\n\n\t\tconst useNativeStaticResponse =\n\t\t\tthis.config.nativeStaticResponse === true\n\n\t\tconst addResponsePath = (path: string) => {\n\t\t\tif (!useNativeStaticResponse || !nativeStaticHandler) return\n\n\t\t\tif (supportPerMethodInlineHandler) {\n\t\t\t\tif (this.router.response[path])\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\tthis.router.response[path]![method] = nativeStaticHandler()\n\t\t\t\telse\n\t\t\t\t\tthis.router.response[path] = {\n\t\t\t\t\t\t[method]: nativeStaticHandler()\n\t\t\t\t\t}\n\t\t\t} else this.router.response[path] = nativeStaticHandler()\n\t\t}\n\n\t\taddResponsePath(path)\n\n\t\tlet _compiled: ComposedHandler\n\t\tconst compile = () => {\n\t\t\tif (_compiled) return _compiled\n\n\t\t\treturn (_compiled = composeHandler({\n\t\t\t\tapp: this,\n\t\t\t\tpath,\n\t\t\t\tmethod,\n\t\t\t\thooks,\n\t\t\t\tvalidator: createValidator(),\n\t\t\t\thandler:\n\t\t\t\t\ttypeof handle !== 'function' &&\n\t\t\t\t\ttypeof adapter.createStaticHandler !== 'function'\n\t\t\t\t\t\t? () => handle\n\t\t\t\t\t\t: handle,\n\t\t\t\tallowMeta,\n\t\t\t\tinference: this.inference\n\t\t\t}))\n\t\t}\n\n\t\tlet oldIndex: number | undefined\n\t\tif (`${method}_${path}` in this.routeTree)\n\t\t\tfor (let i = 0; i < this.router.history.length; i++) {\n\t\t\t\tconst route = this.router.history[i]\n\t\t\t\tif (route.path === path && route.method === method) {\n\t\t\t\t\toldIndex = i\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\telse this.routeTree[`${method}_${path}`] = this.router.history.length\n\n\t\tconst index = oldIndex ?? this.router.history.length\n\n\t\tconst mainHandler = shouldPrecompile\n\t\t\t? compile()\n\t\t\t: (ctx: Context) =>\n\t\t\t\t\t(\n\t\t\t\t\t\t(this.router.history[index].composed =\n\t\t\t\t\t\t\tcompile!()) as ComposedHandler\n\t\t\t\t\t)(ctx)\n\n\t\tif (oldIndex !== undefined)\n\t\t\tthis.router.history[oldIndex] = Object.assign(\n\t\t\t\t{\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath,\n\t\t\t\t\tcomposed: mainHandler,\n\t\t\t\t\tcompile: compile!,\n\t\t\t\t\thandler: handle,\n\t\t\t\t\thooks\n\t\t\t\t},\n\t\t\t\tstandaloneValidators.length\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstandaloneValidators\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tlocalHook.webSocket\n\t\t\t\t\t? { websocket: localHook.websocket as any }\n\t\t\t\t\t: undefined\n\t\t\t)\n\t\telse\n\t\t\tthis.router.history.push(\n\t\t\t\tObject.assign(\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tcomposed: mainHandler,\n\t\t\t\t\t\tcompile: compile!,\n\t\t\t\t\t\thandler: handle,\n\t\t\t\t\t\thooks\n\t\t\t\t\t},\n\t\t\t\t\tlocalHook.webSocket\n\t\t\t\t\t\t? { websocket: localHook.websocket as any }\n\t\t\t\t\t\t: undefined\n\t\t\t\t)\n\t\t\t)\n\n\t\tconst handler = {\n\t\t\thandler: shouldPrecompile ? mainHandler : undefined,\n\t\t\tcompile() {\n\t\t\t\treturn (this.handler = compile!())\n\t\t\t}\n\t\t}\n\n\t\tconst staticRouter = this.router.static\n\t\tconst isStaticPath =\n\t\t\tpath.indexOf(':') === -1 && path.indexOf('*') === -1\n\n\t\tif (method === 'WS') {\n\t\t\tif (isStaticPath) {\n\t\t\t\tif (path in staticRouter) staticRouter[path][method] = index\n\t\t\t\telse\n\t\t\t\t\tstaticRouter[path] = {\n\t\t\t\t\t\t[method]: index\n\t\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.router.http.add('WS', path, handler)\n\n\t\t\tif (!this.config.strictPath)\n\t\t\t\tthis.router.http.add('WS', getLoosePath(path), handler)\n\n\t\t\tconst encoded = encodePath(path, { dynamic: true })\n\t\t\tif (path !== encoded) this.router.http.add('WS', encoded, handler)\n\n\t\t\t// Static path doesn't need encode as it's done in compilation process\n\n\t\t\treturn\n\t\t}\n\n\t\tif (isStaticPath) {\n\t\t\tif (path in staticRouter) staticRouter[path][method] = index\n\t\t\telse\n\t\t\t\tstaticRouter[path] = {\n\t\t\t\t\t[method]: index\n\t\t\t\t} as const\n\n\t\t\tif (!this.config.strictPath) addResponsePath(getLoosePath(path))\n\n\t\t\t// Static path doesn't need encode as it's done in compilation process\n\t\t} else {\n\t\t\tthis.router.http.add(method, path, handler)\n\n\t\t\tif (!this.config.strictPath) {\n\t\t\t\tconst loosePath = getLoosePath(path)\n\n\t\t\t\taddResponsePath(loosePath)\n\t\t\t\tthis.router.http.add(method, loosePath, handler)\n\t\t\t}\n\n\t\t\tconst encoded = encodePath(path, { dynamic: true })\n\t\t\tif (path !== encoded) {\n\t\t\t\tthis.router.http.add(method, encoded, handler)\n\n\t\t\t\taddResponsePath(encoded)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate setHeaders?: Context['set']['headers']\n\theaders(header: Context['set']['headers'] | undefined) {\n\t\tif (!header) return this\n\n\t\tif (!this.setHeaders) this.setHeaders = {}\n\n\t\tthis.setHeaders = mergeDeep(this.setHeaders, header)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### start | Life cycle event\n\t * Called after server is ready for serving\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onStart(({ server }) => {\n\t * console.log(\"Running at ${server?.url}:${server?.port}\")\n\t * })\n\t * .listen(3000)\n\t * ```\n\t */\n\tonStart(handler: MaybeArray<GracefulHandler<this>>) {\n\t\tthis.on('start', handler as any)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### request | Life cycle event\n\t * Called on every new request is accepted\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onRequest(({ method, url }) => {\n\t * saveToAnalytic({ method, url })\n\t * })\n\t * ```\n\t */\n\tonRequest<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends PreHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t{\n\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\tstore: Singleton['store']\n\t\t\t\tderive: {}\n\t\t\t\tresolve: {}\n\t\t\t}\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### request | Life cycle event\n\t * Called on every new request is accepted\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onRequest(({ method, url }) => {\n\t * saveToAnalytic({ method, url })\n\t * })\n\t * ```\n\t */\n\tonRequest<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends PreHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t{\n\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\tstore: Singleton['store']\n\t\t\t\tderive: {}\n\t\t\t\tresolve: {}\n\t\t\t}\n\t\t>[]\n\t>(\n\t\thandler: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\tonRequest(handler: MaybeArray<Handler>): any {\n\t\tthis.on('request', handler as any)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### parse | Life cycle event\n\t * Callback function to handle body parsing\n\t *\n\t * If truthy value is returned, will be assigned to `context.body`\n\t * Otherwise will skip the callback and look for the next one.\n\t *\n\t * Equivalent to Express's body parser\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onParse((request, contentType) => {\n\t * if(contentType === \"application/json\")\n\t * return request.json()\n\t * })\n\t * ```\n\t */\n\tonParse<const Schema extends RouteSchema>(\n\t\tparser: MaybeArray<\n\t\t\tBodyHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\tresolve: {}\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### parse | Life cycle event\n\t * Callback function to handle body parsing\n\t *\n\t * If truthy value is returned, will be assigned to `context.body`\n\t * Otherwise will skip the callback and look for the next one.\n\t *\n\t * Equivalent to Express's body parser\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onParse((request, contentType) => {\n\t * if(contentType === \"application/json\")\n\t * return request.json()\n\t * })\n\t * ```\n\t */\n\tonParse<const Schema extends RouteSchema, const Type extends LifeCycleType>(\n\t\toptions: { as: Type },\n\t\tparser: MaybeArray<\n\t\t\tBodyHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\t'global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\tPartial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\tonParse<const Parsers extends keyof Metadata['parser']>(\n\t\tparser: Parsers\n\t): this\n\n\tonParse(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function> | string,\n\t\thandler?: MaybeArray<Function>\n\t): unknown {\n\t\tif (!handler) {\n\t\t\tif (typeof options === 'string')\n\t\t\t\treturn this.on('parse', this['~parser'][options] as any)\n\n\t\t\treturn this.on('parse', options as any)\n\t\t}\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'parse',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### parse | Life cycle event\n\t * Callback function to handle body parsing\n\t *\n\t * If truthy value is returned, will be assigned to `context.body`\n\t * Otherwise will skip the callback and look for the next one.\n\t *\n\t * Equivalent to Express's body parser\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onParse((request, contentType) => {\n\t * if(contentType === \"application/json\")\n\t * return request.json()\n\t * })\n\t * ```\n\t */\n\tparser<\n\t\tconst Parser extends string,\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends BodyHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t{\n\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\tstore: Singleton['store']\n\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\tVolatile['derive']\n\t\t\t\tresolve: {}\n\t\t\t}\n\t\t>\n\t>(\n\t\tname: Parser,\n\t\tparser: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro']\n\t\t\tmacroFn: Metadata['macroFn']\n\t\t\tparser: Metadata['parser'] & { [K in Parser]: Handler }\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis['~parser'][name] = parser as any\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### transform | Life cycle event\n\t * Assign or transform anything related to context before validation.\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onTransform(({ params }) => {\n\t * if(params.id)\n\t * params.id = +params.id\n\t * })\n\t * ```\n\t */\n\tonTransform<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<\n\t\t\tTransformHandler<\n\t\t\t\tUnknownRouteSchema<ResolvePath<BasePath>>,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\tresolve: {}\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### transform | Life cycle event\n\t * Assign or transform anything related to context before validation.\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onTransform(({ params }) => {\n\t * if(params.id)\n\t * params.id = +params.id\n\t * })\n\t * ```\n\t */\n\tonTransform<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: MaybeArray<\n\t\t\tTransformHandler<\n\t\t\t\tUnknownRouteSchema<\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t\t? { [name: string]: string | undefined }\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? { [name: string]: string | undefined }\n\t\t\t\t\t\t\t: ResolvePath<BasePath>\n\t\t\t\t>,\n\t\t\t\t'global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<\n\t\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: {}\n\t\t\t\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\tonTransform(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) return this.on('transform', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'transform',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tresolve<\n\t\tconst Resolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\tresolver: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t) => MaybePromise<Resolver | void>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\tExcludeElysiaResponse<Resolver>\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Resolver>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Resolver>\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tresolve<\n\t\tconst Resolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t\t\t| void\n\t>(\n\t\tresolver: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<Resolver | void>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve'] & ExcludeElysiaResponse<Resolver>\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<Resolver>\n\t\t\t>\n\t\t}\n\t>\n\n\tresolve(\n\t\toptionsOrResolve: { as: LifeCycleType } | Function,\n\t\tresolve?: Function\n\t) {\n\t\tif (!resolve) {\n\t\t\tresolve = optionsOrResolve as any\n\t\t\toptionsOrResolve = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'resolve',\n\t\t\tfn: resolve!\n\t\t}\n\n\t\treturn this.onBeforeHandle(optionsOrResolve as any, hook as any) as any\n\t}\n\n\tmapResolve<\n\t\tconst NewResolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t>(\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tMetadata['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Volatile['schema']>\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<NewResolver | void>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: ExcludeElysiaResponse<NewResolver>\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t>\n\t\t}\n\t>\n\n\tmapResolve<\n\t\tconst NewResolver extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tMetadata['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Volatile['schema']>\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t) => MaybePromise<NewResolver | void>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: ExcludeElysiaResponse<NewResolver>\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewResolver>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewResolver>\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewResolver>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tmapResolve(\n\t\toptionsOrResolve: Function | { as: LifeCycleType },\n\t\tmapper?: Function\n\t) {\n\t\tif (!mapper) {\n\t\t\tmapper = optionsOrResolve as any\n\t\t\toptionsOrResolve = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'mapResolve',\n\t\t\tfn: mapper!\n\t\t}\n\n\t\treturn this.onBeforeHandle(optionsOrResolve as any, hook as any) as any\n\t}\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>[]\n\t>(\n\t\thandlers: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handler extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t}),\n\t\t\tBasePath\n\t\t>\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handler\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Execute after validation and before the main route handler.\n\t *\n\t * If truthy value is returned, will be assigned as `Response` and skip the main handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onBeforeHandle(({ params: { id }, status }) => {\n\t * if(id && !isExisted(id)) {\n\t * \t status(401)\n\t *\n\t * return \"Unauthorized\"\n\t * \t }\n\t * })\n\t * ```\n\t */\n\tonBeforeHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handlers extends OptionalHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t}),\n\t\t\tBasePath\n\t\t>[]\n\t>(\n\t\toptions: { as: Type },\n\t\thandlers: Handlers\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tonBeforeHandle(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t): any {\n\t\tif (!handler) return this.on('beforeHandle', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'beforeHandle',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t}\n\t\t>[]\n\t>(\n\t\thandlers: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handler extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t})\n\t\t>\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handler\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tonAfterHandle<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handlers extends AfterHandler<\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>,\n\t\t\t\tBasePath\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t'global' extends Type\n\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: {},\n\t\t\tSingleton &\n\t\t\t\t('global' extends Type\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t}\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t})\n\t\t>[]\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handlers\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tonAfterHandle(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t): any {\n\t\tif (!handler) return this.on('afterHandle', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'afterHandle',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .mapResponse((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tmapResponse<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<\n\t\t\tMapResponse<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .mapResponse((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\tmapResponse<const Schema extends RouteSchema, Type extends LifeCycleType>(\n\t\toptions: { as: Type },\n\t\thandler: MaybeArray<\n\t\t\tMapResponse<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t>\n\t): this\n\n\tmapResponse(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) return this.on('mapResponse', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'mapResponse',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### response | Life cycle event\n\t * Call AFTER main handler is executed\n\t * Good for analytic metrics\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterResponse(() => {\n\t * cleanup()\n\t * })\n\t * ```\n\t */\n\tonAfterResponse<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<\n\t\t\tAfterResponseHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t}\n\t\t\t>\n\t\t>\n\t): this\n\n\t/**\n\t * ### response | Life cycle event\n\t * Call AFTER main handler is executed\n\t * Good for analytic metrics\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterResponse(() => {\n\t * cleanup()\n\t * \t })\n\t * ```\n\t */\n\n\tonAfterResponse<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: MaybeArray<\n\t\t\tAfterResponseHandler<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tSchema,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t})\n\t\t\t>\n\t\t>\n\t): this\n\n\tonAfterResponse(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) return this.on('afterResponse', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'afterResponse',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\ttrace<const Schema extends RouteSchema>(\n\t\thandler: MaybeArray<TraceHandler<Schema, Singleton>>\n\t): this\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\ttrace<const Schema extends RouteSchema>(\n\t\toptions: { as: LifeCycleType },\n\t\thandler: MaybeArray<TraceHandler<Schema, Singleton>>\n\t): this\n\n\t/**\n\t * ### After Handle | Life cycle event\n\t * Intercept request **after** main handler is called.\n\t *\n\t * If truthy value is returned, will be assigned as `Response`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onAfterHandle((context, response) => {\n\t * if(typeof response === \"object\")\n\t * return JSON.stringify(response)\n\t * })\n\t * ```\n\t */\n\ttrace(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t) {\n\t\tif (!handler) {\n\t\t\thandler = options as MaybeArray<Function>\n\t\t\toptions = { as: 'local' }\n\t\t}\n\n\t\tif (!Array.isArray(handler)) handler = [handler] as Function[]\n\n\t\tfor (const fn of handler)\n\t\t\tthis.on(\n\t\t\t\toptions as { as: LifeCycleType },\n\t\t\t\t'trace',\n\t\t\t\tcreateTracer(fn as any) as any\n\t\t\t)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * Register errors\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * class CustomError extends Error {\n\t * constructor() {\n\t * super()\n\t * }\n\t * }\n\t *\n\t * new Elysia()\n\t * .error('CUSTOM_ERROR', CustomError)\n\t * ```\n\t */\n\terror<\n\t\tconst Errors extends Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tprototype: Error\n\t\t\t}\n\t\t>\n\t>(\n\t\terrors: Errors\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox']\n\t\t\terror: Definitions['error'] & {\n\t\t\t\t[K in keyof Errors]: Errors[K] extends {\n\t\t\t\t\tprototype: infer LiteralError extends Error\n\t\t\t\t}\n\t\t\t\t\t? LiteralError\n\t\t\t\t\t: Errors[K]\n\t\t\t}\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * Register errors\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * class CustomError extends Error {\n\t * constructor() {\n\t * super()\n\t * }\n\t * }\n\t *\n\t * new Elysia()\n\t * .error({\n\t * CUSTOM_ERROR: CustomError\n\t * })\n\t * ```\n\t */\n\terror<\n\t\tName extends string,\n\t\tconst CustomError extends {\n\t\t\tprototype: Error\n\t\t}\n\t>(\n\t\tname: Name,\n\t\terrors: CustomError\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox']\n\t\t\terror: Definitions['error'] & {\n\t\t\t\t[name in Name]: CustomError extends {\n\t\t\t\t\tprototype: infer LiteralError extends Error\n\t\t\t\t}\n\t\t\t\t\t? LiteralError\n\t\t\t\t\t: CustomError\n\t\t\t}\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * Register errors\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * class CustomError extends Error {\n\t * constructor() {\n\t * super()\n\t * }\n\t * }\n\t *\n\t * new Elysia()\n\t * .error('CUSTOM_ERROR', CustomError)\n\t * ```\n\t */\n\terror<const NewErrors extends Record<string, Error>>(\n\t\tmapper: (decorators: Definitions['error']) => NewErrors\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox']\n\t\t\terror: {\n\t\t\t\t[K in keyof NewErrors]: NewErrors[K] extends {\n\t\t\t\t\tprototype: infer LiteralError extends Error\n\t\t\t\t}\n\t\t\t\t\t? LiteralError\n\t\t\t\t\t: never\n\t\t\t}\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\terror(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tname:\n\t\t\t| string\n\t\t\t| Record<\n\t\t\t\t\tstring,\n\t\t\t\t\t{\n\t\t\t\t\t\tprototype: Error\n\t\t\t\t\t}\n\t\t\t >\n\t\t\t| Function,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\terror?: {\n\t\t\tprototype: Error\n\t\t}\n\t): AnyElysia {\n\t\tswitch (typeof name) {\n\t\t\tcase 'string':\n\t\t\t\t// @ts-ignore\n\t\t\t\terror.prototype[ERROR_CODE] = name\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthis.definitions.error[name] = error\n\n\t\t\t\treturn this\n\n\t\t\tcase 'function':\n\t\t\t\tthis.definitions.error = name(this.definitions.error)\n\n\t\t\t\treturn this as any\n\t\t}\n\n\t\tfor (const [code, error] of Object.entries(name)) {\n\t\t\t// @ts-ignore\n\t\t\terror.prototype[ERROR_CODE] = code as any\n\n\t\t\tthis.definitions.error[code] = error as any\n\t\t}\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handler extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton,\n\t\t\tEphemeral,\n\t\t\tVolatile\n\t\t>\n\t>(\n\t\thandler: Handler\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Handlers extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tSingleton,\n\t\t\tEphemeral,\n\t\t\tVolatile\n\t\t>[]\n\t>(\n\t\thandler: Handlers\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handler extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tType extends 'global'\n\t\t\t\t? {\n\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\tEphemeral['resolve'] &\n\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t}\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tderive: Singleton['derive'] & Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] & Ephemeral['resolve']\n\t\t\t\t\t\t}\n\t\t\t\t\t: Singleton,\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: {\n\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t},\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? Ephemeral\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t\t}\n\t\t>\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handler\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchema<Handler>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError<\n\t\tconst Schema extends RouteSchema,\n\t\tconst Type extends LifeCycleType,\n\t\tconst Handlers extends ErrorHandler<\n\t\t\tDefinitions['error'],\n\t\t\tMergeSchema<\n\t\t\t\tSchema,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'],\n\t\t\tType extends 'global'\n\t\t\t\t? {\n\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\t\tEphemeral['derive'] &\n\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\tEphemeral['resolve'] &\n\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t}\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tderive: Singleton['derive'] & Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] & Ephemeral['resolve']\n\t\t\t\t\t\t}\n\t\t\t\t\t: Singleton,\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: {\n\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t},\n\t\t\tType extends 'global'\n\t\t\t\t? Ephemeral\n\t\t\t\t: Type extends 'scoped'\n\t\t\t\t\t? Ephemeral\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tderive: Partial<Ephemeral['derive']>\n\t\t\t\t\t\t\tresolve: Partial<Ephemeral['resolve']>\n\t\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\t\tresponse: Ephemeral['response']\n\t\t\t\t\t\t}\n\t\t>[]\n\t>(\n\t\toptions: { as: Type },\n\t\thandler: Handlers\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemas<Handlers>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\t/**\n\t * ### Error | Life cycle event\n\t * Called when error is thrown during processing request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\tonError(\n\t\toptions: { as: LifeCycleType } | MaybeArray<Function>,\n\t\thandler?: MaybeArray<Function>\n\t): any {\n\t\tif (!handler) return this.on('error', options as any)\n\n\t\treturn this.on(\n\t\t\toptions as { as: LifeCycleType },\n\t\t\t'error',\n\t\t\thandler as any\n\t\t)\n\t}\n\n\t/**\n\t * ### stop | Life cycle event\n\t * Called after server stop serving request\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .onStop((app) => {\n\t * cleanup()\n\t * })\n\t * ```\n\t */\n\tonStop(handler: MaybeArray<GracefulHandler<this>>) {\n\t\tthis.on('stop', handler as any)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### on\n\t * Syntax sugar for attaching life cycle event by name\n\t *\n\t * Does the exact same thing as `.on[Event]()`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .on('error', ({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\ton<Event extends keyof LifeCycleStore>(\n\t\ttype: Event,\n\t\thandlers: MaybeArray<\n\t\t\tExtract<LifeCycleStore[Event], HookContainer[]>[0]['fn']\n\t\t>\n\t): this\n\n\t/**\n\t * ### on\n\t * Syntax sugar for attaching life cycle event by name\n\t *\n\t * Does the exact same thing as `.on[Event]()`\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .on('error', ({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\ton<const Event extends keyof LifeCycleStore>(\n\t\toptions: { as: LifeCycleType },\n\t\ttype: Event,\n\t\thandlers: MaybeArray<Extract<LifeCycleStore[Event], Function[]>[0]>\n\t): this\n\n\ton(\n\t\toptionsOrType: { as: LifeCycleType } | string,\n\t\ttypeOrHandlers: MaybeArray<Function | HookContainer> | string,\n\t\thandlers?: MaybeArray<Function | HookContainer>\n\t) {\n\t\tlet type: keyof LifeCycleStore\n\n\t\tswitch (typeof optionsOrType) {\n\t\t\tcase 'string':\n\t\t\t\ttype = optionsOrType as any\n\t\t\t\thandlers = typeOrHandlers as any\n\n\t\t\t\tbreak\n\n\t\t\tcase 'object':\n\t\t\t\ttype = typeOrHandlers as any\n\n\t\t\t\tif (\n\t\t\t\t\t!Array.isArray(typeOrHandlers) &&\n\t\t\t\t\ttypeof typeOrHandlers === 'object'\n\t\t\t\t)\n\t\t\t\t\thandlers = typeOrHandlers\n\n\t\t\t\tbreak\n\t\t}\n\n\t\tif (Array.isArray(handlers)) handlers = fnToContainer(handlers)\n\t\telse {\n\t\t\tif (typeof handlers === 'function')\n\t\t\t\thandlers = [\n\t\t\t\t\t{\n\t\t\t\t\t\tfn: handlers\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\telse handlers = [handlers!]\n\t\t}\n\n\t\tconst handles = handlers as HookContainer[]\n\n\t\tfor (const handle of handles) {\n\t\t\thandle.scope =\n\t\t\t\ttypeof optionsOrType === 'string'\n\t\t\t\t\t? 'local'\n\t\t\t\t\t: (optionsOrType?.as ?? 'local')\n\n\t\t\t// @ts-expect-error\n\t\t\tif (type === 'resolve' || type === 'derive') handle.subType = type\n\t\t}\n\n\t\tif (type !== 'trace')\n\t\t\tthis.inference = sucrose(\n\t\t\t\t{\n\t\t\t\t\t[type]: handles.map((x) => x.fn)\n\t\t\t\t},\n\t\t\t\tthis.inference,\n\t\t\t\tthis.config.sucrose\n\t\t\t)\n\n\t\tfor (const handle of handles) {\n\t\t\tconst fn = asHookType(handle, 'global', { skipIfHasType: true })\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'start':\n\t\t\t\t\tthis.event.start ??= []\n\t\t\t\t\tthis.event.start.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'request':\n\t\t\t\t\tthis.event.request ??= []\n\t\t\t\t\tthis.event.request.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'parse':\n\t\t\t\t\tthis.event.parse ??= []\n\t\t\t\t\tthis.event.parse.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'transform':\n\t\t\t\t\tthis.event.transform ??= []\n\t\t\t\t\tthis.event.transform.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tcase 'derive':\n\t\t\t\t\tthis.event.transform ??= []\n\t\t\t\t\tthis.event.transform.push(\n\t\t\t\t\t\tfnToContainer(fn as any, 'derive') as any\n\t\t\t\t\t)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'beforeHandle':\n\t\t\t\t\tthis.event.beforeHandle ??= []\n\t\t\t\t\tthis.event.beforeHandle.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\t// eslint-disable-next-line sonarjs/no-duplicated-branches\n\t\t\t\tcase 'resolve':\n\t\t\t\t\tthis.event.beforeHandle ??= []\n\t\t\t\t\tthis.event.beforeHandle.push(\n\t\t\t\t\t\tfnToContainer(fn as any, 'resolve') as any\n\t\t\t\t\t)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'afterHandle':\n\t\t\t\t\tthis.event.afterHandle ??= []\n\t\t\t\t\tthis.event.afterHandle.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'mapResponse':\n\t\t\t\t\tthis.event.mapResponse ??= []\n\t\t\t\t\tthis.event.mapResponse.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'afterResponse':\n\t\t\t\t\tthis.event.afterResponse ??= []\n\t\t\t\t\tthis.event.afterResponse.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'trace':\n\t\t\t\t\tthis.event.trace ??= []\n\t\t\t\t\tthis.event.trace.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'error':\n\t\t\t\t\tthis.event.error ??= []\n\t\t\t\t\tthis.event.error.push(fn as any)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'stop':\n\t\t\t\t\tthis.event.stop ??= []\n\t\t\t\t\tthis.event.stop.push(fn as any)\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn this\n\t}\n\n\tas(type: 'global'): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive'] &\n\t\t\t\tEphemeral['derive'] &\n\t\t\t\tVolatile['derive']\n\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\tEphemeral['resolve'] &\n\t\t\t\tVolatile['resolve']\n\t\t},\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: MergeSchema<\n\t\t\t\tMergeSchema<Volatile['schema'], Ephemeral['schema']>,\n\t\t\t\tMetadata['schema']\n\t\t\t>\n\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema']\n\t\t\tmacro: Metadata['macro']\n\t\t\tmacroFn: Metadata['macroFn']\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response'] &\n\t\t\t\tEphemeral['response'] &\n\t\t\t\tVolatile['response']\n\t\t},\n\t\tRoutes,\n\t\t{\n\t\t\tderive: {}\n\t\t\tresolve: {}\n\t\t\tschema: {}\n\t\t\tstandaloneSchema: {}\n\t\t\tresponse: {}\n\t\t},\n\t\t{\n\t\t\tderive: {}\n\t\t\tresolve: {}\n\t\t\tschema: {}\n\t\t\tstandaloneSchema: {}\n\t\t\tresponse: {}\n\t\t}\n\t>\n\n\tas(type: 'scoped'): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\t{\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\tschema: MergeSchema<Volatile['schema'], Ephemeral['schema']>\n\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema']\n\t\t\tresponse: Volatile['response'] & Ephemeral['response']\n\t\t},\n\t\t{\n\t\t\tderive: {}\n\t\t\tresolve: {}\n\t\t\tschema: {}\n\t\t\tstandaloneSchema: {}\n\t\t\tresponse: {}\n\t\t}\n\t>\n\n\tas(type: 'global' | 'scoped') {\n\t\tpromoteEvent(this.event.parse, type)\n\t\tpromoteEvent(this.event.transform, type)\n\t\tpromoteEvent(this.event.beforeHandle, type)\n\t\tpromoteEvent(this.event.afterHandle, type)\n\t\tpromoteEvent(this.event.mapResponse, type)\n\t\tpromoteEvent(this.event.afterResponse, type)\n\t\tpromoteEvent(this.event.trace, type)\n\t\tpromoteEvent(this.event.error, type)\n\n\t\tif (type === 'scoped') {\n\t\t\tthis.validator.scoped = mergeSchemaValidator(\n\t\t\t\tthis.validator.scoped,\n\t\t\t\tthis.validator.local\n\t\t\t)\n\t\t\tthis.validator.local = null\n\n\t\t\tif (this.standaloneValidator.local !== null) {\n\t\t\t\tthis.standaloneValidator.scoped ||= []\n\t\t\t\tthis.standaloneValidator.scoped.push(\n\t\t\t\t\t...this.standaloneValidator.local\n\t\t\t\t)\n\t\t\t\tthis.standaloneValidator.local = null\n\t\t\t}\n\t\t} else if (type === 'global') {\n\t\t\tthis.validator.global = mergeSchemaValidator(\n\t\t\t\tthis.validator.global,\n\t\t\t\tmergeSchemaValidator(\n\t\t\t\t\tthis.validator.scoped,\n\t\t\t\t\tthis.validator.local\n\t\t\t\t) as SchemaValidator\n\t\t\t) as SchemaValidator\n\n\t\t\tthis.validator.scoped = null\n\t\t\tthis.validator.local = null\n\n\t\t\tif (this.standaloneValidator.local !== null) {\n\t\t\t\tthis.standaloneValidator.scoped ||= []\n\t\t\t\tthis.standaloneValidator.scoped.push(\n\t\t\t\t\t...this.standaloneValidator.local\n\t\t\t\t)\n\t\t\t\tthis.standaloneValidator.local = null\n\t\t\t}\n\t\t\tif (this.standaloneValidator.scoped !== null) {\n\t\t\t\tthis.standaloneValidator.global ||= []\n\t\t\t\tthis.standaloneValidator.global.push(\n\t\t\t\t\t...this.standaloneValidator.scoped\n\t\t\t\t)\n\t\t\t\tthis.standaloneValidator.scoped = null\n\t\t\t}\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\tgroup<const Prefix extends string, const NewElysia extends AnyElysia>(\n\t\tprefix: Prefix,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tJoinPath<BasePath, Prefix>,\n\t\t\t\tSingleton,\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: MergeSchema<\n\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\t\tJoinPath<BasePath, Prefix>\n\t\t\t\t\t\t>,\n\t\t\t\t\t\tMetadata['schema']\n\t\t\t\t\t>\n\t\t\t\t\tstandaloneSchema: UnwrapRoute<\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\tJoinPath<BasePath, Prefix>\n\t\t\t\t\t> &\n\t\t\t\t\t\tMetadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: Metadata['response']\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes & NewElysia['~Routes'],\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tgroup<\n\t\tconst Prefix extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<\n\t\t\t\tInput,\n\t\t\t\tDefinitions['typebox'],\n\t\t\t\tJoinPath<BasePath, Prefix>\n\t\t\t>,\n\t\t\tMergeSchema<\n\t\t\t\tVolatile['schema'],\n\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t>\n\t\t> &\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\tEphemeral['standaloneSchema'] &\n\t\t\tVolatile['standaloneSchema'],\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst BeforeHandle extends MaybeArray<\n\t\t\tOptionalHandler<Schema, Singleton>\n\t\t>,\n\t\tconst AfterHandle extends MaybeArray<AfterHandler<Schema, Singleton>>,\n\t\tconst ErrorHandle extends MaybeArray<\n\t\t\tErrorHandler<Definitions['error'], Schema, Singleton>\n\t\t>,\n\t\tconst NewElysia extends AnyElysia\n\t>(\n\t\tprefix: Prefix,\n\t\tschema: GuardLocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\tVolatile['resolve'] &\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext['response']\n\t\t\t},\n\t\t\tkeyof Metadata['parser'],\n\t\t\tBeforeHandle,\n\t\t\tAfterHandle,\n\t\t\tErrorHandle\n\t\t>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tJoinPath<BasePath, Prefix>,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Schema\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\t\t\tSchema &\n\t\t\t\t\t\tMacroContext\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['response'] &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle>\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes & NewElysia['~Routes'],\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### group\n\t * Encapsulate and group path with prefix\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .group('/v1', app => app\n\t * .get('/', () => 'Hi')\n\t * .get('/name', () => 'Elysia')\n\t * })\n\t * ```\n\t */\n\tgroup(\n\t\tprefix: string,\n\t\tschemaOrRun: AnyLocalHook | ((group: AnyElysia) => AnyElysia),\n\t\trun?: (group: AnyElysia) => AnyElysia\n\t): AnyElysia {\n\t\tconst instance = new Elysia({\n\t\t\t...this.config,\n\t\t\tprefix: ''\n\t\t})\n\n\t\tinstance.singleton = { ...this.singleton }\n\t\tinstance.definitions = { ...this.definitions }\n\t\tinstance.getServer = () => this.getServer()\n\t\tinstance.inference = cloneInference(this.inference)\n\t\tinstance.extender = { ...this.extender }\n\t\tinstance['~parser'] = this['~parser']\n\t\tinstance.standaloneValidator = {\n\t\t\tlocal: [...(this.standaloneValidator.local ?? [])],\n\t\t\tscoped: [...(this.standaloneValidator.scoped ?? [])],\n\t\t\tglobal: [...(this.standaloneValidator.global ?? [])]\n\t\t}\n\n\t\tconst isSchema = typeof schemaOrRun === 'object'\n\t\tconst sandbox = (isSchema ? run! : schemaOrRun)(instance)\n\t\tthis.singleton = mergeDeep(this.singleton, instance.singleton) as any\n\t\tthis.definitions = mergeDeep(this.definitions, instance.definitions)\n\n\t\tif (sandbox.event.request?.length)\n\t\t\tthis.event.request = [\n\t\t\t\t...(this.event.request || []),\n\t\t\t\t...((sandbox.event.request || []) as any)\n\t\t\t]\n\n\t\tif (sandbox.event.mapResponse?.length)\n\t\t\tthis.event.mapResponse = [\n\t\t\t\t...(this.event.mapResponse || []),\n\t\t\t\t...((sandbox.event.mapResponse || []) as any)\n\t\t\t]\n\n\t\tthis.model(sandbox.definitions.type)\n\n\t\tObject.values(instance.router.history).forEach(\n\t\t\t({ method, path, handler, hooks }) => {\n\t\t\t\tpath =\n\t\t\t\t\t(isSchema ? '' : (this.config.prefix ?? '')) + prefix + path\n\n\t\t\t\tif (isSchema) {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tbody,\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tcookie,\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t...hook\n\t\t\t\t\t} = schemaOrRun\n\t\t\t\t\tconst localHook = hooks as AnyLocalHook\n\n\t\t\t\t\tconst hasStandaloneSchema =\n\t\t\t\t\t\tbody || headers || query || params || cookie || response\n\n\t\t\t\t\tthis.add(\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\thandler,\n\t\t\t\t\t\tmergeHook(hook, {\n\t\t\t\t\t\t\t...(localHook || {}),\n\t\t\t\t\t\t\terror: !localHook.error\n\t\t\t\t\t\t\t\t? sandbox.event.error\n\t\t\t\t\t\t\t\t: Array.isArray(localHook.error)\n\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t...(localHook.error ?? []),\n\t\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\tlocalHook.error,\n\t\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tstandaloneValidator: !hasStandaloneSchema\n\t\t\t\t\t\t\t\t? localHook.standaloneValidator\n\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t...(localHook.standaloneValidator ??\n\t\t\t\t\t\t\t\t\t\t\t[]),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tundefined\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tthis.add(\n\t\t\t\t\t\tmethod,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\thandler,\n\t\t\t\t\t\tmergeHook(hooks as AnyLocalHook, {\n\t\t\t\t\t\t\terror: sandbox.event.error\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tskipPrefix: true\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### guard\n\t * Encapsulate and pass hook into all child handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .guard({\n\t * body: t.Object({\n\t * username: t.String(),\n\t * password: t.String()\n\t * })\n\t * })\n\t * ```\n\t */\n\tguard<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\tMetadata['schema']\n\t\t>,\n\t\tconst MacroContext extends MacroToContext<\n\t\t\tMetadata['macroFn'],\n\t\t\tNoInfer<Omit<Input, keyof InputSchema>>\n\t\t>,\n\t\tconst GuardType extends GuardSchemaType,\n\t\tconst AsType extends LifeCycleType,\n\t\tconst BeforeHandle extends MaybeArray<\n\t\t\tOptionalHandler<Schema, Singleton>\n\t\t>,\n\t\tconst AfterHandle extends MaybeArray<AfterHandler<Schema, Singleton>>,\n\t\tconst ErrorHandle extends MaybeArray<\n\t\t\tErrorHandler<Definitions['error'], Schema, Singleton>\n\t\t>\n\t>(\n\t\thook: GuardLocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\tVolatile['resolve'] &\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext['response']\n\t\t\t},\n\t\t\tkeyof Metadata['parser'],\n\t\t\tBeforeHandle,\n\t\t\tAfterHandle,\n\t\t\tErrorHandle,\n\t\t\tGuardType,\n\t\t\tAsType\n\t\t>\n\t): Or<\n\t\tGuardSchemaType extends GuardType ? true : false,\n\t\tGuardType extends 'override' ? true : false\n\t> extends true\n\t\t? Or<\n\t\t\t\tLifeCycleType extends AsType ? true : false,\n\t\t\t\tAsType extends 'local' ? true : false\n\t\t\t> extends true\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\tschema: {} extends PickIfExists<\n\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t? Volatile['schema']\n\t\t\t\t\t\t\t: MergeSchema<\n\t\t\t\t\t\t\t\t\tUnwrapRoute<Input, Definitions['typebox']>,\n\t\t\t\t\t\t\t\t\tMetadata['schema']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\t\t\t\tSimplifyToSchema<MacroContext>\n\t\t\t\t\t\tresponse: Volatile['response'] &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t: AsType extends 'global'\n\t\t\t\t? Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tschema: {} extends PickIfExists<\n\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t? Metadata['schema']\n\t\t\t\t\t\t\t\t: MergeSchema<\n\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\t\t\t\t\t\tBasePath\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tMetadata['schema']\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tSimplifyToSchema<MacroContext>\n\t\t\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\tEphemeral,\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\t\t\t\t: Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\tSingleton,\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\tMetadata,\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t\tschema: {} extends PickIfExists<\n\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t? EphemeralType['schema']\n\t\t\t\t\t\t\t\t: MergeSchema<\n\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tMetadata['schema'] & Ephemeral['schema']\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tSimplifyToSchema<MacroContext>\n\t\t\t\t\t\t\tresponse: Ephemeral['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\t\t: Or<\n\t\t\t\t\tLifeCycleType extends AsType ? true : false,\n\t\t\t\t\tAsType extends 'local' ? true : false\n\t\t\t > extends true\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: SimplifyToSchema<MacroContext> &\n\t\t\t\t\t\t\t({} extends PickIfExists<Input, keyof InputSchema>\n\t\t\t\t\t\t\t\t? Volatile['standaloneSchema']\n\t\t\t\t\t\t\t\t: Volatile['standaloneSchema'] &\n\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t\t\t\t\t\t\t>)\n\t\t\t\t\t\tresponse: Volatile['response'] &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t: AsType extends 'global'\n\t\t\t\t? Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\t\t\tstandaloneSchema: SimplifyToSchema<MacroContext> &\n\t\t\t\t\t\t\t\t({} extends PickIfExists<\n\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t? Metadata['standaloneSchema']\n\t\t\t\t\t\t\t\t\t: UnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\t\t\t\t\t\t\tBasePath\n\t\t\t\t\t\t\t\t\t\t> &\n\t\t\t\t\t\t\t\t\t\t\tMetadata['standaloneSchema'])\n\t\t\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\tEphemeral,\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\t\t\t\t: Elysia<\n\t\t\t\t\t\tBasePath,\n\t\t\t\t\t\tSingleton,\n\t\t\t\t\t\tDefinitions,\n\t\t\t\t\t\tMetadata,\n\t\t\t\t\t\tRoutes,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tderive: Ephemeral['derive']\n\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\t\tstandaloneSchema: SimplifyToSchema<MacroContext> &\n\t\t\t\t\t\t\t\t({} extends PickIfExists<\n\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\tkeyof InputSchema\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t? Ephemeral['standaloneSchema']\n\t\t\t\t\t\t\t\t\t: Ephemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\t\t\t\tUnwrapRoute<\n\t\t\t\t\t\t\t\t\t\t\t\tInput,\n\t\t\t\t\t\t\t\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t\t\t\t\t\t\t\t>)\n\t\t\t\t\t\t\tresponse: Ephemeral['response'] &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle> &\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tMacroContext['return']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tVolatile\n\t\t\t\t\t>\n\n\tguard<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\tMergeSchema<\n\t\t\t\tVolatile['schema'],\n\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t>\n\t\t> &\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\tEphemeral['standaloneSchema'] &\n\t\t\tVolatile['standaloneSchema'],\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst BeforeHandle extends MaybeArray<\n\t\t\tOptionalHandler<Schema, Singleton>\n\t\t>,\n\t\tconst AfterHandle extends MaybeArray<AfterHandler<Schema, Singleton>>,\n\t\tconst ErrorHandle extends MaybeArray<\n\t\t\tErrorHandler<any, Schema, Singleton>\n\t\t>,\n\t\tconst NewElysia extends AnyElysia\n\t>(\n\t\tschema: GuardLocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t},\n\t\t\tkeyof Metadata['parser'],\n\t\t\tBeforeHandle,\n\t\t\tAfterHandle,\n\t\t\tErrorHandle\n\t\t>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive']\n\t\t\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Schema\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema'] &\n\t\t\t\t\t\tSchema &\n\t\t\t\t\t\tMacroContext\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: Metadata['response'] &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['response'] &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<BeforeHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<AfterHandle> &\n\t\t\t\t\t\tElysiaHandlerToResponseSchemaAmbiguous<ErrorHandle>\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes & NewElysia['~Routes'],\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive']\n\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t// @ts-ignore\n\t\t\t\tMacroContext['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: Volatile['response'] &\n\t\t\t\t// @ts-ignore\n\t\t\t\tMacroContext['response']\n\t\t}\n\t>\n\n\t/**\n\t * ### guard\n\t * Encapsulate and pass hook into all child handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .guard({\n\t * body: t.Object({\n\t * username: t.String(),\n\t * password: t.String()\n\t * })\n\t * }, app => app\n\t * .get(\"/\", () => 'Hi')\n\t * .get(\"/name\", () => 'Elysia')\n\t * })\n\t * ```\n\t */\n\tguard(\n\t\thook:\n\t\t\t| (AnyLocalHook & {\n\t\t\t\t\tas: LifeCycleType\n\t\t\t })\n\t\t\t| ((group: AnyElysia) => AnyElysia),\n\t\trun?: (group: AnyElysia) => AnyElysia\n\t): AnyElysia {\n\t\tif (!run) {\n\t\t\tif (typeof hook === 'object') {\n\t\t\t\tthis.applyMacro(hook)\n\n\t\t\t\tif (hook.detail) {\n\t\t\t\t\tif (this.config.detail)\n\t\t\t\t\t\tthis.config.detail = mergeDeep(\n\t\t\t\t\t\t\tObject.assign({}, this.config.detail),\n\t\t\t\t\t\t\thook.detail\n\t\t\t\t\t\t)\n\t\t\t\t\telse this.config.detail = hook.detail\n\t\t\t\t}\n\n\t\t\t\tif (hook.tags) {\n\t\t\t\t\tif (!this.config.detail)\n\t\t\t\t\t\tthis.config.detail = {\n\t\t\t\t\t\t\ttags: hook.tags\n\t\t\t\t\t\t}\n\t\t\t\t\telse this.config.detail.tags = hook.tags\n\t\t\t\t}\n\n\t\t\t\tconst type: LifeCycleType = hook.as ?? 'local'\n\n\t\t\t\tif (hook.schema === 'standalone') {\n\t\t\t\t\tif (!this.standaloneValidator[type])\n\t\t\t\t\t\tthis.standaloneValidator[type] = []\n\n\t\t\t\t\tconst response = !hook?.response\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: typeof hook.response === 'string' ||\n\t\t\t\t\t\t\t Kind in hook.response ||\n\t\t\t\t\t\t\t '~standard' in hook.response\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t200: hook.response\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: hook?.response\n\n\t\t\t\t\tthis.standaloneValidator[type].push({\n\t\t\t\t\t\tbody: hook.body,\n\t\t\t\t\t\theaders: hook.headers,\n\t\t\t\t\t\tparams: hook.params,\n\t\t\t\t\t\tquery: hook.query,\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\tcookie: hook.cookie\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.validator[type] = {\n\t\t\t\t\t\tbody: hook.body ?? this.validator[type]?.body,\n\t\t\t\t\t\theaders: hook.headers ?? this.validator[type]?.headers,\n\t\t\t\t\t\tparams: hook.params ?? this.validator[type]?.params,\n\t\t\t\t\t\tquery: hook.query ?? this.validator[type]?.query,\n\t\t\t\t\t\tresponse:\n\t\t\t\t\t\t\thook.response ?? this.validator[type]?.response,\n\t\t\t\t\t\tcookie: hook.cookie ?? this.validator[type]?.cookie\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (hook.parse) this.on({ as: type }, 'parse', hook.parse)\n\t\t\t\tif (hook.transform)\n\t\t\t\t\tthis.on({ as: type }, 'transform', hook.transform)\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (hook.derive) this.on({ as: type }, 'derive', hook.derive)\n\t\t\t\tif (hook.beforeHandle)\n\t\t\t\t\tthis.on({ as: type }, 'beforeHandle', hook.beforeHandle)\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (hook.resolve) this.on({ as: type }, 'resolve', hook.resolve)\n\t\t\t\tif (hook.afterHandle)\n\t\t\t\t\tthis.on({ as: type }, 'afterHandle', hook.afterHandle)\n\t\t\t\tif (hook.mapResponse)\n\t\t\t\t\tthis.on({ as: type }, 'mapResponse', hook.mapResponse)\n\t\t\t\tif (hook.afterResponse)\n\t\t\t\t\tthis.on({ as: type }, 'afterResponse', hook.afterResponse)\n\t\t\t\tif (hook.error) this.on({ as: type }, 'error', hook.error)\n\n\t\t\t\treturn this\n\t\t\t}\n\n\t\t\treturn this.guard({} as any, hook)\n\t\t}\n\n\t\tconst instance = new Elysia({\n\t\t\t...this.config,\n\t\t\tprefix: ''\n\t\t})\n\t\tinstance.singleton = { ...this.singleton }\n\t\tinstance.definitions = { ...this.definitions }\n\t\tinstance.inference = cloneInference(this.inference)\n\t\tinstance.extender = { ...this.extender }\n\t\tinstance.getServer = () => this.getServer()\n\n\t\tconst sandbox = run(instance)\n\t\tthis.singleton = mergeDeep(this.singleton, instance.singleton) as any\n\t\tthis.definitions = mergeDeep(this.definitions, instance.definitions)\n\n\t\t// ? Inject getServer for websocket and trace (important, do not remove)\n\t\tsandbox.getServer = () => this.server\n\n\t\tif (sandbox.event.request?.length)\n\t\t\tthis.event.request = [\n\t\t\t\t...(this.event.request || []),\n\t\t\t\t...(sandbox.event.request || [])\n\t\t\t]\n\n\t\tif (sandbox.event.mapResponse?.length)\n\t\t\tthis.event.mapResponse = [\n\t\t\t\t...(this.event.mapResponse || []),\n\t\t\t\t...(sandbox.event.mapResponse || [])\n\t\t\t]\n\n\t\tthis.model(sandbox.definitions.type)\n\n\t\tObject.values(instance.router.history).forEach(\n\t\t\t({ method, path, handler, hooks: localHook }) => {\n\t\t\t\tconst {\n\t\t\t\t\tbody,\n\t\t\t\t\theaders,\n\t\t\t\t\tquery,\n\t\t\t\t\tparams,\n\t\t\t\t\tcookie,\n\t\t\t\t\tresponse,\n\t\t\t\t\t...guardHook\n\t\t\t\t} = hook\n\n\t\t\t\tconst hasStandaloneSchema =\n\t\t\t\t\tbody || headers || query || params || cookie || response\n\n\t\t\t\tthis.add(\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath,\n\t\t\t\t\thandler,\n\t\t\t\t\tmergeHook(guardHook as AnyLocalHook, {\n\t\t\t\t\t\t...((localHook || {}) as AnyLocalHook),\n\t\t\t\t\t\terror: !localHook.error\n\t\t\t\t\t\t\t? sandbox.event.error\n\t\t\t\t\t\t\t: Array.isArray(localHook.error)\n\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t...(localHook.error ?? []),\n\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\tlocalHook.error,\n\t\t\t\t\t\t\t\t\t\t...(sandbox.event.error ?? [])\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\tstandaloneValidator: !hasStandaloneSchema\n\t\t\t\t\t\t\t? localHook.standaloneValidator\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...(localHook.standaloneValidator ?? []),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * Entire Instance\n\t **/\n\tuse<const NewElysia extends AnyElysia>(\n\t\tinstance: MaybePromise<NewElysia>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tNewElysia['~Singleton']['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & NewElysia['~Singleton']['store']\n\t\t\t>\n\t\t\tderive: Singleton['derive'] & NewElysia['~Singleton']['derive']\n\t\t\tresolve: Singleton['resolve'] & NewElysia['~Singleton']['resolve']\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\tEphemeral,\n\t\tVolatile & NewElysia['~Ephemeral']\n\t>\n\n\t/**\n\t * Entire multiple Instance\n\t **/\n\tuse<const Instances extends AnyElysia[]>(\n\t\tinstance: MaybePromise<Instances>\n\t): MergeElysiaInstances<Instances, BasePath>\n\n\t/**\n\t * Import fn\n\t */\n\tuse<const NewElysia extends AnyElysia>(\n\t\tplugin: Promise<{\n\t\t\tdefault: (elysia: AnyElysia) => MaybePromise<NewElysia>\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tNewElysia['~Singleton']['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & NewElysia['~Singleton']['store']\n\t\t\t>\n\t\t\tderive: Singleton['derive'] & NewElysia['~Singleton']['derive']\n\t\t\tresolve: Singleton['resolve'] & NewElysia['~Singleton']['resolve']\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\tEphemeral & NewElysia['~Ephemeral'],\n\t\tVolatile & NewElysia['~Volatile']\n\t>\n\n\t/**\n\t * Import entire instance\n\t */\n\tuse<const LazyLoadElysia extends AnyElysia>(\n\t\tplugin: Promise<{\n\t\t\tdefault: LazyLoadElysia\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tPartial<LazyLoadElysia['~Singleton']['decorator']>\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] &\n\t\t\t\t\tPartial<LazyLoadElysia['~Singleton']['store']>\n\t\t\t>\n\t\t\tderive: Singleton['derive'] &\n\t\t\t\tPartial<LazyLoadElysia['~Singleton']['derive']>\n\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\tPartial<LazyLoadElysia['~Singleton']['resolve']>\n\t\t},\n\t\tDefinitions & LazyLoadElysia['~Definitions'],\n\t\tMetadata & LazyLoadElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & LazyLoadElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, LazyLoadElysia['~Routes']>,\n\t\tEphemeral,\n\t\t{\n\t\t\tschema: Volatile['schema'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['schema']>\n\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['standaloneSchema']>\n\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['resolve']>\n\t\t\tderive: Volatile['derive'] &\n\t\t\t\tPartial<LazyLoadElysia['~Ephemeral']['derive']>\n\t\t\tresponse: Volatile['response'] &\n\t\t\t\tLazyLoadElysia['~Ephemeral']['response']\n\t\t}\n\t>\n\n\t/**\n\t * Inline fn\n\t */\n\tuse<\n\t\tconst NewElysia extends AnyElysia,\n\t\tconst Param extends AnyElysia = this\n\t>(\n\t\tplugin: (app: Param) => NewElysia\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tNewElysia['~Singleton']['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & NewElysia['~Singleton']['store']\n\t\t\t>\n\t\t\tderive: Singleton['derive'] & NewElysia['~Singleton']['derive']\n\t\t\tresolve: Singleton['resolve'] & NewElysia['~Singleton']['resolve']\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\tEphemeral & NewElysia['~Ephemeral'],\n\t\tVolatile & NewElysia['~Volatile']\n\t>\n\n\t/**\n\t * Inline async fn\n\t */\n\tuse<\n\t\tconst NewElysia extends AnyElysia,\n\t\tconst Param extends AnyElysia = this\n\t>(\n\t\tplugin:\n\t\t\t| ((app: Param) => Promise<NewElysia>)\n\t\t\t| Promise<(app: Param) => NewElysia>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] &\n\t\t\t\tPartial<NewElysia['~Singleton']['decorator']>\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & Partial<NewElysia['~Singleton']['store']>\n\t\t\t>\n\t\t\tderive: Singleton['derive'] &\n\t\t\t\tPartial<NewElysia['~Singleton']['derive']>\n\t\t\tresolve: Singleton['resolve'] &\n\t\t\t\tPartial<NewElysia['~Singleton']['resolve']>\n\t\t},\n\t\tDefinitions & NewElysia['~Definitions'],\n\t\tMetadata & NewElysia['~Metadata'],\n\t\tBasePath extends ``\n\t\t\t? Routes & NewElysia['~Routes']\n\t\t\t: Routes & CreateEden<BasePath, NewElysia['~Routes']>,\n\t\t{\n\t\t\tschema: Ephemeral['schema'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['schema']>\n\t\t\tstandaloneSchema: Ephemeral['standaloneSchema'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['standaloneSchema']>\n\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['resolve']>\n\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\tPartial<NewElysia['~Ephemeral']['derive']>\n\t\t\tresponse: Ephemeral['response'] &\n\t\t\t\tNewElysia['~Ephemeral']['response']\n\t\t},\n\t\t{\n\t\t\tschema: Volatile['schema'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['schema']>\n\t\t\tstandaloneSchema: Volatile['standaloneSchema'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['standaloneSchema']>\n\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['resolve']>\n\t\t\tderive: Volatile['derive'] &\n\t\t\t\tPartial<NewElysia['~Volatile']['derive']>\n\t\t\tresponse: Volatile['response'] & NewElysia['~Volatile']['response']\n\t\t}\n\t>\n\n\t/**\n\t * conditional undefined ignore type\n\t */\n\tuse(\n\t\tinstance:\n\t\t\t| MaybeArray<MaybePromise<AnyElysia>>\n\t\t\t| MaybePromise<\n\t\t\t\t\tAnyElysia | ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t >\n\t\t\t| Promise<{\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t| AnyElysia\n\t\t\t\t\t\t| ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t }>\n\t\t\t| undefined\n\t\t\t| false\n\t): this\n\n\t/**\n\t * ### use\n\t * Merge separate logic of Elysia with current\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * const plugin = (app: Elysia) => app\n\t * .get('/plugin', () => 'hi')\n\t *\n\t * new Elysia()\n\t * .use(plugin)\n\t * ```\n\t */\n\tuse(\n\t\tplugin:\n\t\t\t| MaybeArray<MaybePromise<AnyElysia>>\n\t\t\t| MaybePromise<\n\t\t\t\t\tAnyElysia | ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t >\n\t\t\t| Promise<{\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t| AnyElysia\n\t\t\t\t\t\t| ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t\t\t }>\n\t\t\t| undefined\n\t\t\t| false\n\t): AnyElysia {\n\t\tif (!plugin) return this\n\n\t\tif (Array.isArray(plugin)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\t\tlet app = this\n\t\t\tfor (const p of plugin) app = app.use(p) as any\n\t\t\treturn app\n\t\t}\n\n\t\tif (plugin instanceof Promise) {\n\t\t\tthis.promisedModules.add(\n\t\t\t\tplugin\n\t\t\t\t\t.then((plugin) => {\n\t\t\t\t\t\tif (typeof plugin === 'function') return plugin(this)\n\n\t\t\t\t\t\tif (plugin instanceof Elysia)\n\t\t\t\t\t\t\treturn this._use(plugin).compile()\n\n\t\t\t\t\t\tif (plugin.constructor?.name === 'Elysia')\n\t\t\t\t\t\t\treturn this._use(\n\t\t\t\t\t\t\t\tplugin as unknown as Elysia\n\t\t\t\t\t\t\t).compile()\n\n\t\t\t\t\t\tif (typeof plugin.default === 'function')\n\t\t\t\t\t\t\treturn plugin.default(this)\n\n\t\t\t\t\t\tif (plugin.default instanceof Elysia)\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\n\t\t\t\t\t\tif (plugin.constructor?.name === 'Elysia')\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\n\t\t\t\t\t\tif (plugin.constructor?.name === '_Elysia')\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn this._use(plugin.default)\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t\t'Invalid plugin type. Expected Elysia instance, function, or module with \"default\" as Elysia instance or function that returns Elysia instance.'\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tthrow error\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.then((v) => {\n\t\t\t\t\t\tif (v && typeof v.compile === 'function') v.compile()\n\n\t\t\t\t\t\treturn v\n\t\t\t\t\t})\n\t\t\t)\n\n\t\t\treturn this\n\t\t}\n\n\t\treturn this._use(plugin)\n\t}\n\n\tprivate propagatePromiseModules(plugin: Elysia) {\n\t\tif (plugin.promisedModules.size <= 0) return this\n\n\t\tfor (const promise of plugin.promisedModules.promises)\n\t\t\tthis.promisedModules.add(\n\t\t\t\tpromise.then((v) => {\n\t\t\t\t\tif (!v) return\n\n\t\t\t\t\tconst t = this._use(v)\n\t\t\t\t\tif (t instanceof Promise)\n\t\t\t\t\t\treturn t.then((v2) => {\n\t\t\t\t\t\t\tif (v2) v2.compile()\n\t\t\t\t\t\t\telse v.compile()\n\t\t\t\t\t\t})\n\n\t\t\t\t\treturn v.compile()\n\t\t\t\t})\n\t\t\t)\n\n\t\treturn this\n\t}\n\n\tprivate _use(\n\t\tplugin: AnyElysia | ((app: AnyElysia) => MaybePromise<AnyElysia>)\n\t) {\n\t\tif (typeof plugin === 'function') {\n\t\t\tconst instance = plugin(this as unknown as any) as unknown as any\n\n\t\t\tif (instance instanceof Promise) {\n\t\t\t\tthis.promisedModules.add(\n\t\t\t\t\tinstance\n\t\t\t\t\t\t.then((plugin) => {\n\t\t\t\t\t\t\tif (plugin instanceof Elysia) {\n\t\t\t\t\t\t\t\tplugin.getServer = () => this.getServer()\n\t\t\t\t\t\t\t\tplugin.getGlobalRoutes = () =>\n\t\t\t\t\t\t\t\t\tthis.getGlobalRoutes()\n\t\t\t\t\t\t\t\tplugin.getGlobalDefinitions = () =>\n\t\t\t\t\t\t\t\t\tthis.getGlobalDefinitions()\n\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * Model and error is required for Swagger generation\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\tplugin.model(this.definitions.type as any)\n\t\t\t\t\t\t\t\tplugin.error(this.definitions.error as any)\n\n\t\t\t\t\t\t\t\t// Recompile async plugin routes\n\t\t\t\t\t\t\t\tfor (const {\n\t\t\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\t\thandler,\n\t\t\t\t\t\t\t\t\thooks\n\t\t\t\t\t\t\t\t} of Object.values(plugin.router.history))\n\t\t\t\t\t\t\t\t\tthis.add(\n\t\t\t\t\t\t\t\t\t\tmethod,\n\t\t\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\t\t\thandler,\n\t\t\t\t\t\t\t\t\t\thooks,\n\t\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\tif (plugin === this) return\n\n\t\t\t\t\t\t\t\tthis.propagatePromiseModules(plugin)\n\n\t\t\t\t\t\t\t\treturn plugin\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof plugin === 'function')\n\t\t\t\t\t\t\t\treturn plugin(\n\t\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\t\tif (typeof plugin.default === 'function')\n\t\t\t\t\t\t\t\treturn plugin.default(\n\t\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\t\treturn this._use(plugin)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then((v) => {\n\t\t\t\t\t\t\tif (v && typeof v.compile === 'function')\n\t\t\t\t\t\t\t\tv.compile()\n\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\treturn this as unknown as any\n\t\t\t}\n\n\t\t\treturn instance\n\t\t}\n\n\t\tthis.propagatePromiseModules(plugin)\n\n\t\tconst name = plugin.config.name\n\t\tconst seed = plugin.config.seed\n\n\t\tplugin.getParent = () => this as any\n\t\tplugin.getServer = () => this.getServer()\n\t\tplugin.getGlobalRoutes = () => this.getGlobalRoutes()\n\t\tplugin.getGlobalDefinitions = () => this.getGlobalDefinitions()\n\n\t\tif (plugin.standaloneValidator?.scoped) {\n\t\t\tif (this.standaloneValidator.local)\n\t\t\t\tthis.standaloneValidator.local =\n\t\t\t\t\tthis.standaloneValidator.local.concat(\n\t\t\t\t\t\tplugin.standaloneValidator.scoped\n\t\t\t\t\t)\n\t\t\telse\n\t\t\t\tthis.standaloneValidator.local =\n\t\t\t\t\tplugin.standaloneValidator.scoped\n\t\t}\n\n\t\tif (plugin.standaloneValidator?.global) {\n\t\t\tif (this.standaloneValidator.global)\n\t\t\t\tthis.standaloneValidator.global =\n\t\t\t\t\tthis.standaloneValidator.global.concat(\n\t\t\t\t\t\tplugin.standaloneValidator.global\n\t\t\t\t\t)\n\t\t\telse\n\t\t\t\tthis.standaloneValidator.global =\n\t\t\t\t\tplugin.standaloneValidator.global\n\t\t}\n\n\t\t/**\n\t\t * Model and error is required for Swagger generation\n\t\t */\n\t\t// plugin.model(this.definitions.type as any)\n\t\t// plugin.error(this.definitions.error as any)\n\n\t\tif (isNotEmpty(plugin['~parser']))\n\t\t\tthis['~parser'] = {\n\t\t\t\t...plugin['~parser'],\n\t\t\t\t...this['~parser']\n\t\t\t}\n\n\t\tif (plugin.setHeaders) this.headers(plugin.setHeaders)\n\n\t\tif (name) {\n\t\t\tif (!(name in this.dependencies)) this.dependencies[name] = []\n\n\t\t\tconst current =\n\t\t\t\tseed !== undefined ? checksum(name + JSON.stringify(seed)) : 0\n\n\t\t\tif (\n\t\t\t\t!this.dependencies[name].some(\n\t\t\t\t\t({ checksum }) => current === checksum\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthis.extender.macro = {\n\t\t\t\t\t...this.extender.macro,\n\t\t\t\t\t...plugin.extender.macro\n\t\t\t\t}\n\n\t\t\t\tthis.extender.higherOrderFunctions =\n\t\t\t\t\tthis.extender.higherOrderFunctions.concat(\n\t\t\t\t\t\tplugin.extender.higherOrderFunctions\n\t\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tif (isNotEmpty(plugin.extender.macro))\n\t\t\t\tthis.extender.macro = {\n\t\t\t\t\t...this.extender.macro,\n\t\t\t\t\t...plugin.extender.macro\n\t\t\t\t}\n\n\t\t\tif (plugin.extender.higherOrderFunctions.length)\n\t\t\t\tthis.extender.higherOrderFunctions =\n\t\t\t\t\tthis.extender.higherOrderFunctions.concat(\n\t\t\t\t\t\tplugin.extender.higherOrderFunctions\n\t\t\t\t\t)\n\t\t}\n\n\t\tif (plugin.extender.higherOrderFunctions.length) {\n\t\t\tdeduplicateChecksum(this.extender.higherOrderFunctions)\n\n\t\t\t// ! Deduplicate current instance\n\t\t\tconst hofHashes: number[] = []\n\t\t\tfor (\n\t\t\t\tlet i = 0;\n\t\t\t\ti < this.extender.higherOrderFunctions.length;\n\t\t\t\ti++\n\t\t\t) {\n\t\t\t\tconst hof = this.extender.higherOrderFunctions[i]\n\n\t\t\t\tif (hof.checksum) {\n\t\t\t\t\tif (hofHashes.includes(hof.checksum)) {\n\t\t\t\t\t\tthis.extender.higherOrderFunctions.splice(i, 1)\n\t\t\t\t\t\ti--\n\t\t\t\t\t}\n\n\t\t\t\t\thofHashes.push(hof.checksum)\n\t\t\t\t}\n\t\t\t}\n\t\t\thofHashes.length = 0\n\t\t}\n\n\t\tthis.inference = mergeInference(this.inference, plugin.inference)\n\n\t\tif (isNotEmpty(plugin.singleton.decorator))\n\t\t\tthis.decorate(plugin.singleton.decorator)\n\n\t\tif (isNotEmpty(plugin.singleton.store))\n\t\t\tthis.state(plugin.singleton.store)\n\n\t\tif (isNotEmpty(plugin.definitions.type))\n\t\t\tthis.model(plugin.definitions.type)\n\n\t\tif (isNotEmpty(plugin.definitions.error))\n\t\t\tthis.error(plugin.definitions.error as any)\n\n\t\tif (isNotEmpty(plugin.extender.macro))\n\t\t\tthis.extender.macro = {\n\t\t\t\t...this.extender.macro,\n\t\t\t\t...plugin.extender.macro\n\t\t\t}\n\n\t\tfor (const { method, path, handler, hooks } of Object.values(\n\t\t\tplugin.router.history\n\t\t))\n\t\t\tthis.add(method, path, handler, hooks)\n\n\t\tif (name) {\n\t\t\tif (!(name in this.dependencies)) this.dependencies[name] = []\n\n\t\t\tconst current =\n\t\t\t\tseed !== undefined ? checksum(name + JSON.stringify(seed)) : 0\n\n\t\t\tif (\n\t\t\t\tthis.dependencies[name].some(\n\t\t\t\t\t({ checksum }) => current === checksum\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn this\n\n\t\t\tthis.dependencies[name].push(\n\t\t\t\tthis.config?.analytic\n\t\t\t\t\t? ({\n\t\t\t\t\t\t\tname: plugin.config.name,\n\t\t\t\t\t\t\tseed: plugin.config.seed,\n\t\t\t\t\t\t\tchecksum: current,\n\t\t\t\t\t\t\tdependencies: plugin.dependencies,\n\t\t\t\t\t\t\tstack: plugin.telemetry?.stack,\n\t\t\t\t\t\t\troutes: plugin.router.history,\n\t\t\t\t\t\t\tdecorators: plugin.singleton,\n\t\t\t\t\t\t\tstore: plugin.singleton.store,\n\t\t\t\t\t\t\terror: plugin.definitions.error,\n\t\t\t\t\t\t\tderive: plugin.event.transform\n\t\t\t\t\t\t\t\t?.filter((x) => x?.subType === 'derive')\n\t\t\t\t\t\t\t\t.map((x) => ({\n\t\t\t\t\t\t\t\t\tfn: x.toString(),\n\t\t\t\t\t\t\t\t\tstack: new Error().stack ?? ''\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tresolve: plugin.event.transform\n\t\t\t\t\t\t\t\t?.filter((x) => x?.subType === 'resolve')\n\t\t\t\t\t\t\t\t.map((x) => ({\n\t\t\t\t\t\t\t\t\tfn: x.toString(),\n\t\t\t\t\t\t\t\t\tstack: new Error().stack ?? ''\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t} as any)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tname: plugin.config.name,\n\t\t\t\t\t\t\tseed: plugin.config.seed,\n\t\t\t\t\t\t\tchecksum: current,\n\t\t\t\t\t\t\tdependencies: plugin.dependencies\n\t\t\t\t\t\t}\n\t\t\t)\n\n\t\t\tif (isNotEmpty(plugin.event))\n\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\tthis.event,\n\t\t\t\t\tfilterGlobalHook(plugin.event),\n\t\t\t\t\tcurrent\n\t\t\t\t)\n\t\t} else {\n\t\t\tif (isNotEmpty(plugin.event))\n\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\tthis.event,\n\t\t\t\t\tfilterGlobalHook(plugin.event)\n\t\t\t\t)\n\t\t}\n\n\t\tif (plugin.validator.global)\n\t\t\t// @ts-ignore\n\t\t\tthis.validator.global = mergeHook(this.validator.global, {\n\t\t\t\t...plugin.validator.global\n\t\t\t}) as any\n\n\t\tif (plugin.validator.scoped)\n\t\t\t// @ts-ignore\n\t\t\tthis.validator.local = mergeHook(this.validator.local, {\n\t\t\t\t...plugin.validator.scoped\n\t\t\t})\n\n\t\treturn this\n\t}\n\n\tmacro<\n\t\tconst Name extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends MergeSchema<\n\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\tMergeSchema<\n\t\t\t\tVolatile['schema'],\n\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t> &\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Property extends MaybeValueOrVoidFunction<\n\t\t\tMacroProperty<\n\t\t\t\tSchema & MacroContext,\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Partial<Ephemeral['derive'] & Volatile['derive']>\n\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t> &\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tMacroContext['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions['error']\n\t\t\t>\n\t\t>\n\t>(\n\t\tname: Name,\n\t\tmacro: (Input extends any ? Input : Prettify<Input>) & Property\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro'] & {\n\t\t\t\t[name in Name]?: Property extends (a: infer Params) => any\n\t\t\t\t\t? Params\n\t\t\t\t\t: boolean\n\t\t\t}\n\t\t\tmacroFn: Metadata['macroFn'] & {\n\t\t\t\t[name in Name]: Property\n\t\t\t}\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmacro<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst NewMacro extends Macro<\n\t\t\tInput,\n\t\t\tIntersectIfObjectSchema<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t>\n\t\t\t\t>,\n\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema']\n\t\t\t>,\n\t\t\tSingleton & {\n\t\t\t\tderive: Partial<Ephemeral['derive'] & Volatile['derive']>\n\t\t\t\tresolve: Partial<Ephemeral['resolve'] & Volatile['resolve']>\n\t\t\t},\n\t\t\tDefinitions['error']\n\t\t>\n\t>(\n\t\tmacro: NewMacro\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro'] & Partial<MacroToProperty<NewMacro>>\n\t\t\tmacroFn: Metadata['macroFn'] & NewMacro\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmacro<\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst NewMacro extends MaybeFunction<\n\t\t\tMacro<\n\t\t\t\tInput,\n\t\t\t\tIntersectIfObjectSchema<\n\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\tUnwrapRoute<Input, Definitions['typebox'], BasePath>,\n\t\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t\t\t>\n\t\t\t\t\t>,\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\tVolatile['standaloneSchema']\n\t\t\t\t>,\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Partial<Ephemeral['derive'] & Volatile['derive']>\n\t\t\t\t\tresolve: Partial<Ephemeral['resolve'] & Volatile['resolve']>\n\t\t\t\t},\n\t\t\t\tDefinitions['error']\n\t\t\t>\n\t\t>\n\t>(\n\t\tmacro: NewMacro\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\t{\n\t\t\tschema: Metadata['schema']\n\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\tmacro: Metadata['macro'] & Partial<MacroToProperty<NewMacro>>\n\t\t\tmacroFn: Metadata['macroFn'] & NewMacro\n\t\t\tparser: Metadata['parser']\n\t\t\tresponse: Metadata['response']\n\t\t},\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmacro(macroOrName: string | Macro, macro?: Macro) {\n\t\tif (typeof macroOrName === 'string' && !macro)\n\t\t\tthrow new Error('Macro function is required')\n\n\t\tif (typeof macroOrName === 'string')\n\t\t\tthis.extender.macro[macroOrName] = macro!\n\t\telse\n\t\t\tthis.extender.macro = {\n\t\t\t\t...this.extender.macro,\n\t\t\t\t...macroOrName\n\t\t\t}\n\n\t\treturn this as any\n\t}\n\n\tprivate applyMacro(\n\t\tlocalHook: AnyLocalHook,\n\t\tappliable: AnyLocalHook = localHook,\n\t\t{\n\t\t\titeration = 0,\n\t\t\tapplied = {}\n\t\t}: { iteration?: number; applied?: { [key: number]: true } } = {}\n\t) {\n\t\tif (iteration >= 16) return\n\t\tconst macro = this.extender.macro\n\n\t\tfor (let [key, value] of Object.entries(appliable)) {\n\t\t\tif (key in macro === false) continue\n\n\t\t\tconst macroHook =\n\t\t\t\ttypeof macro[key] === 'function'\n\t\t\t\t\t? macro[key](value)\n\t\t\t\t\t: macro[key]\n\n\t\t\tif (\n\t\t\t\t!macroHook ||\n\t\t\t\t(typeof macro[key] === 'object' && value === false)\n\t\t\t)\n\t\t\t\treturn\n\n\t\t\tconst seed = checksum(key + JSON.stringify(macroHook.seed ?? value))\n\t\t\tif (seed in applied) continue\n\n\t\t\tapplied[seed] = true\n\n\t\t\tfor (let [k, value] of Object.entries(macroHook)) {\n\t\t\t\tif (k === 'seed') continue\n\n\t\t\t\tif (k in emptySchema) {\n\t\t\t\t\tinsertStandaloneValidator(\n\t\t\t\t\t\tlocalHook,\n\t\t\t\t\t\tk as keyof RouteSchema,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t)\n\t\t\t\t\tdelete localHook[key]\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (k === 'detail') {\n\t\t\t\t\tif (!localHook.detail) localHook.detail = {}\n\t\t\t\t\tlocalHook.detail = mergeDeep(localHook.detail, value, {\n\t\t\t\t\t\tmergeArray: true\n\t\t\t\t\t})\n\n\t\t\t\t\tdelete localHook[key]\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (k in macro) {\n\t\t\t\t\tthis.applyMacro(\n\t\t\t\t\t\tlocalHook,\n\t\t\t\t\t\t{ [k]: value },\n\t\t\t\t\t\t{ applied, iteration: iteration + 1 }\n\t\t\t\t\t)\n\n\t\t\t\t\tdelete localHook[key]\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(k === 'derive' || k === 'resolve') &&\n\t\t\t\t\ttypeof value === 'function'\n\t\t\t\t)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalue = {\n\t\t\t\t\t\tfn: value,\n\t\t\t\t\t\tsubType: k\n\t\t\t\t\t} as HookContainer\n\n\t\t\t\tswitch (typeof localHook[k]) {\n\t\t\t\t\tcase 'function':\n\t\t\t\t\t\tlocalHook[k] = [localHook[k], value]\n\t\t\t\t\t\tbreak\n\n\t\t\t\t\tcase 'object':\n\t\t\t\t\t\tif (Array.isArray(localHook[k]))\n\t\t\t\t\t\t\t(localHook[k] as any[]).push(value)\n\t\t\t\t\t\telse localHook[k] = [localHook[k], value]\n\t\t\t\t\t\tbreak\n\n\t\t\t\t\tcase 'undefined':\n\t\t\t\t\t\tlocalHook[k] = value\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tdelete localHook[key]\n\t\t\t}\n\t\t}\n\t}\n\n\tmount(\n\t\thandle: ((request: Request) => MaybePromise<Response>) | AnyElysia,\n\t\tdetail?: { detail?: DocumentDecoration }\n\t): this\n\tmount(\n\t\tpath: string,\n\t\thandle: ((request: Request) => MaybePromise<Response>) | AnyElysia,\n\t\tdetail?: { detail?: DocumentDecoration }\n\t): this\n\n\tmount(\n\t\tpath:\n\t\t\t| string\n\t\t\t| ((request: Request) => MaybePromise<Response>)\n\t\t\t| AnyElysia,\n\t\thandleOrConfig?:\n\t\t\t| ((request: Request) => MaybePromise<Response>)\n\t\t\t| AnyElysia\n\t\t\t| { detail?: DocumentDecoration },\n\t\tconfig?: { detail?: DocumentDecoration }\n\t) {\n\t\tif (\n\t\t\tpath instanceof Elysia ||\n\t\t\ttypeof path === 'function' ||\n\t\t\tpath.length === 0 ||\n\t\t\tpath === '/'\n\t\t) {\n\t\t\tconst run =\n\t\t\t\ttypeof path === 'function'\n\t\t\t\t\t? path\n\t\t\t\t\t: path instanceof Elysia\n\t\t\t\t\t\t? path.compile().fetch\n\t\t\t\t\t\t: handleOrConfig instanceof Elysia\n\t\t\t\t\t\t\t? handleOrConfig.compile().fetch\n\t\t\t\t\t\t\t: typeof handleOrConfig === 'function'\n\t\t\t\t\t\t\t\t? handleOrConfig\n\t\t\t\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\t\t\t\tthrow new Error('Invalid handler')\n\t\t\t\t\t\t\t\t\t})()\n\n\t\t\tconst handler: Handler = ({ request, path }) =>\n\t\t\t\trun(\n\t\t\t\t\tnew Request(replaceUrlPath(request.url, path), {\n\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\tcredentials: request.credentials,\n\t\t\t\t\t\treferrerPolicy: request.referrerPolicy as any,\n\t\t\t\t\t\tduplex: request.duplex,\n\t\t\t\t\t\tredirect: request.redirect,\n\t\t\t\t\t\tmode: request.mode,\n\t\t\t\t\t\tkeepalive: request.keepalive,\n\t\t\t\t\t\tintegrity: request.integrity,\n\t\t\t\t\t\tbody: request.body\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\tthis.route('ALL', '/*', handler as any, {\n\t\t\t\tparse: 'none',\n\t\t\t\t...config,\n\t\t\t\tdetail: {\n\t\t\t\t\t...config?.detail,\n\t\t\t\t\thide: true\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tmount: run\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn this\n\t\t}\n\n\t\tconst handle =\n\t\t\thandleOrConfig instanceof Elysia\n\t\t\t\t? handleOrConfig.compile().fetch\n\t\t\t\t: typeof handleOrConfig === 'function'\n\t\t\t\t\t? handleOrConfig\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tthrow new Error('Invalid handler')\n\t\t\t\t\t\t})()\n\n\t\tconst length = path.length - (path.endsWith('*') ? 1 : 0)\n\n\t\tconst handler: Handler = ({ request, path }) =>\n\t\t\thandle(\n\t\t\t\tnew Request(\n\t\t\t\t\treplaceUrlPath(request.url, path.slice(length) || '/'),\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\theaders: request.headers,\n\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\tcredentials: request.credentials,\n\t\t\t\t\t\treferrerPolicy: request.referrerPolicy as any,\n\t\t\t\t\t\tduplex: request.duplex,\n\t\t\t\t\t\tredirect: request.redirect,\n\t\t\t\t\t\tmode: request.mode,\n\t\t\t\t\t\tkeepalive: request.keepalive,\n\t\t\t\t\t\tintegrity: request.integrity,\n\t\t\t\t\t\tbody: request.body\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t)\n\n\t\tthis.route('ALL', path, handler as any, {\n\t\t\tparse: 'none',\n\t\t\t...config,\n\t\t\tdetail: {\n\t\t\t\t...config?.detail,\n\t\t\t\thide: true\n\t\t\t},\n\t\t\tconfig: {\n\t\t\t\tmount: handle\n\t\t\t}\n\t\t})\n\n\t\tthis.route(\n\t\t\t'ALL',\n\t\t\tpath + (path.endsWith('/') ? '*' : '/*'),\n\t\t\thandler as any,\n\t\t\t{\n\t\t\t\tparse: 'none',\n\t\t\t\t...config,\n\t\t\t\tdetail: {\n\t\t\t\t\t...config?.detail,\n\t\t\t\t\thide: true\n\t\t\t\t},\n\t\t\t\tconfig: {\n\t\t\t\t\tmount: handle\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### get\n\t * Register handler for path with method [GET]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .get('/', () => 'hi')\n\t * .get('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tget<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends {} extends MacroContext\n\t\t\t? InlineHandlerNonMacro<NoInfer<Schema>, NoInfer<Decorator>>\n\t\t\t: InlineHandler<\n\t\t\t\t\tNoInfer<Schema>,\n\t\t\t\t\tNoInfer<Decorator>,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext\n\t\t\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tget: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('GET', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### post\n\t * Register handler for path with method [POST]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .post('/', () => 'hi')\n\t * .post('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tpost<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends {} extends MacroContext\n\t\t\t? InlineHandlerNonMacro<NoInfer<Schema>, NoInfer<Decorator>>\n\t\t\t: InlineHandler<\n\t\t\t\t\tNoInfer<Schema>,\n\t\t\t\t\tNoInfer<Decorator>,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext\n\t\t\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tpost: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('POST', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### put\n\t * Register handler for path with method [PUT]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .put('/', () => 'hi')\n\t * .put('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tput<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends {} extends MacroContext\n\t\t\t? InlineHandlerNonMacro<NoInfer<Schema>, NoInfer<Decorator>>\n\t\t\t: InlineHandler<\n\t\t\t\t\tNoInfer<Schema>,\n\t\t\t\t\tNoInfer<Decorator>,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext\n\t\t\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tput: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('PUT', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### patch\n\t * Register handler for path with method [PATCH]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .patch('/', () => 'hi')\n\t * .patch('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tpatch<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tpatch: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('PATCH', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### delete\n\t * Register handler for path with method [DELETE]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .delete('/', () => 'hi')\n\t * .delete('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tdelete<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tdelete: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('DELETE', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### options\n\t * Register handler for path with method [POST]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .options('/', () => 'hi')\n\t * .options('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\toptions<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\toptions: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('OPTIONS', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### all\n\t * Register handler for path with method [ALL]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .all('/', () => 'hi')\n\t * .all('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tall<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\t[method in string]: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('ALL', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### head\n\t * Register handler for path with method [HEAD]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .head('/', () => 'hi')\n\t * .head('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\thead<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\thead: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('HEAD', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### connect\n\t * Register handler for path with method [CONNECT]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .connect('/', () => 'hi')\n\t * .connect('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\tconnect<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tconnect: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add('CONNECT', path, handler as any, hook)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### route\n\t * Register handler for path with method [ROUTE]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .route('/', () => 'hi')\n\t * .route('/with-hook', () => 'hi', {\n\t * response: t.String()\n\t * })\n\t * ```\n\t */\n\troute<\n\t\tconst Method extends HTTPMethod,\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst Decorator extends Singleton & {\n\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t},\n\t\tconst MacroContext extends {} extends Metadata['macroFn']\n\t\t\t? {}\n\t\t\t: MacroToContext<\n\t\t\t\t\tMetadata['macroFn'],\n\t\t\t\t\tOmit<Input, NonResolvableMacroKey>,\n\t\t\t\t\tDefinitions['typebox']\n\t\t\t\t>,\n\t\tconst Handle extends InlineHandler<\n\t\t\tNoInfer<Schema>,\n\t\t\tNoInfer<Decorator>,\n\t\t\t// @ts-ignore\n\t\t\tMacroContext\n\t\t>\n\t>(\n\t\tmethod: Method,\n\t\tpath: Path,\n\t\thandler: Handle,\n\t\thook?: LocalHook<\n\t\t\tInput,\n\t\t\t// @ts-ignore\n\t\t\tSchema & MacroContext,\n\t\t\tDecorator,\n\t\t\tDefinitions['error'],\n\t\t\tkeyof Metadata['parser']\n\t\t> & {\n\t\t\tconfig?: {\n\t\t\t\tallowMeta?: boolean\n\t\t\t\tmount?: Function\n\t\t\t}\n\t\t}\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\t[method in Method]: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\tHandle,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tthis.add(method.toUpperCase(), path, handler as any, hook, hook?.config)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### ws\n\t * Register handler for path with method [ws]\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * import { Elysia, t } from 'elysia'\n\t *\n\t * new Elysia()\n\t * .ws('/', {\n\t * message(ws, message) {\n\t * ws.send(message)\n\t * }\n\t * })\n\t * ```\n\t */\n\tws<\n\t\tconst Path extends string,\n\t\tconst Input extends Metadata['macro'] &\n\t\t\tInputSchema<keyof Definitions['typebox'] & string>,\n\t\tconst Schema extends IntersectIfObjectSchema<\n\t\t\tMergeSchema<\n\t\t\t\tUnwrapRoute<\n\t\t\t\t\tInput,\n\t\t\t\t\tDefinitions['typebox'],\n\t\t\t\t\tJoinPath<BasePath, Path>\n\t\t\t\t>,\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>\n\t\t\t\t>\n\t\t\t>,\n\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\tVolatile['standaloneSchema']\n\t\t>,\n\t\tconst MacroContext extends MacroToContext<\n\t\t\tMetadata['macroFn'],\n\t\t\tOmit<Input, NonResolvableMacroKey>\n\t\t>\n\t>(\n\t\tpath: Path,\n\t\toptions: WSLocalHook<\n\t\t\tInput,\n\t\t\tSchema,\n\t\t\tSingleton & {\n\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\tVolatile['resolve'] &\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tMacroContext['resolve']\n\t\t\t}\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes &\n\t\t\tCreateEden<\n\t\t\t\tJoinPath<BasePath, Path>,\n\t\t\t\t{\n\t\t\t\t\tsubscribe: CreateEdenResponse<\n\t\t\t\t\t\tPath,\n\t\t\t\t\t\tSchema,\n\t\t\t\t\t\tMacroContext,\n\t\t\t\t\t\tComposeElysiaResponse<\n\t\t\t\t\t\t\tSchema &\n\t\t\t\t\t\t\t\tMacroContext &\n\t\t\t\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\t\t\t\t{} extends Schema['response']\n\t\t\t\t\t\t\t\t? unknown\n\t\t\t\t\t\t\t\t: Schema['response'] extends { [200]: any }\n\t\t\t\t\t\t\t\t\t? Schema['response'][200]\n\t\t\t\t\t\t\t\t\t: unknown,\n\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\t\t\tUnionResponseStatus<\n\t\t\t\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tMacroContext['return'] & {}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t>\n\t\t\t\t\t>\n\t\t\t\t}\n\t\t\t>,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tif (this['~adapter'].ws) this['~adapter'].ws(this, path, options as any)\n\t\telse console.warn(`Current adapter doesn't support WebSocket`)\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state('counter', 0)\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<const Name extends string | number | symbol, Value>(\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Prettify<\n\t\t\t\tSingleton['store'] & {\n\t\t\t\t\t[name in Name]: Value\n\t\t\t\t}\n\t\t\t>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state({ counter: 0 })\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<Store extends Record<string, unknown>>(\n\t\tstore: Store\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Prettify<Singleton['store'] & Store>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state('counter', 0)\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<\n\t\tconst Type extends ContextAppendType,\n\t\tconst Name extends string | number | symbol,\n\t\tValue\n\t>(\n\t\toptions: { as: Type },\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Type extends 'override'\n\t\t\t\t? Reconcile<\n\t\t\t\t\t\tSingleton['store'],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttrue\n\t\t\t\t\t>\n\t\t\t\t: Prettify<\n\t\t\t\t\t\tSingleton['store'] & {\n\t\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state({ counter: 0 })\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate<\n\t\tconst Type extends ContextAppendType,\n\t\tStore extends Record<string, unknown>\n\t>(\n\t\toptions: { as: Type },\n\t\tstore: Store\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: Type extends 'override'\n\t\t\t\t? Reconcile<Singleton['store'], Store>\n\t\t\t\t: Prettify<Singleton['store'] & Store>\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tstate<NewStore extends Record<string, unknown>>(\n\t\tmapper: (decorators: Singleton['store']) => NewStore\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator']\n\t\t\tstore: NewStore\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### state\n\t * Assign global mutatable state accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .state('counter', 0)\n\t * .get('/', (({ counter }) => ++counter)\n\t * ```\n\t */\n\tstate(\n\t\toptions:\n\t\t\t| { as: ContextAppendType }\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function,\n\t\tname?:\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function\n\t\t\t| { as: ContextAppendType },\n\t\tvalue?: unknown\n\t) {\n\t\tif (name === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ name: value })\n\t\t\t */\n\t\t\tvalue = options\n\t\t\toptions = { as: 'append' }\n\t\t\tname = ''\n\t\t} else if (value === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ as: 'override' }, { name: value })\n\t\t\t * - decorate('name', value)\n\t\t\t */\n\n\t\t\t// decorate('name', value)\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tvalue = name\n\t\t\t\tname = options\n\t\t\t\toptions = { as: 'append' }\n\t\t\t} else if (typeof options === 'object') {\n\t\t\t\t// decorate({ as: 'override' }, { name: value })\n\t\t\t\tvalue = name\n\t\t\t\tname = ''\n\t\t\t}\n\t\t}\n\n\t\tconst { as } = options as { as: ContextAppendType }\n\n\t\tif (typeof name !== 'string') return this\n\n\t\tswitch (typeof value) {\n\t\t\tcase 'object':\n\t\t\t\tif (!value || !isNotEmpty(value)) return this\n\n\t\t\t\tif (name) {\n\t\t\t\t\tif (name in this.singleton.store)\n\t\t\t\t\t\tthis.singleton.store[name] = mergeDeep(\n\t\t\t\t\t\t\tthis.singleton.store[name] as any,\n\t\t\t\t\t\t\tvalue!,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\toverride: as === 'override'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\telse this.singleton.store[name] = value\n\n\t\t\t\t\treturn this\n\t\t\t\t}\n\n\t\t\t\tif (value === null) return this\n\n\t\t\t\tthis.singleton.store = mergeDeep(this.singleton.store, value, {\n\t\t\t\t\toverride: as === 'override'\n\t\t\t\t})\n\n\t\t\t\treturn this as any\n\n\t\t\tcase 'function':\n\t\t\t\tif (name) {\n\t\t\t\t\tif (as === 'override' || !(name in this.singleton.store))\n\t\t\t\t\t\tthis.singleton.store[name] = value\n\t\t\t\t} else this.singleton.store = value(this.singleton.store)\n\n\t\t\t\treturn this as any\n\n\t\t\tdefault:\n\t\t\t\tif (as === 'override' || !(name in this.singleton.store))\n\t\t\t\t\tthis.singleton.store[name] = value\n\n\t\t\t\treturn this\n\t\t}\n\t}\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<const Name extends string, Value>(\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] & {\n\t\t\t\t[name in Name]: Value\n\t\t\t}\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<NewDecorators extends Record<string, unknown>>(\n\t\tdecorators: NewDecorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Singleton['decorator'] & NewDecorators\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tdecorate<NewDecorators extends Record<string, unknown>>(\n\t\tmapper: (decorators: Singleton['decorator']) => NewDecorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: NewDecorators\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate({ as: 'override' }, 'getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<\n\t\tconst Type extends ContextAppendType,\n\t\tconst Name extends string,\n\t\tValue\n\t>(\n\t\toptions: { as: Type },\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Type extends 'override'\n\t\t\t\t? Reconcile<\n\t\t\t\t\t\tSingleton['decorator'],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttrue\n\t\t\t\t\t>\n\t\t\t\t: Singleton['decorator'] & {\n\t\t\t\t\t\t[name in Name]: Value\n\t\t\t\t\t}\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate<\n\t\tconst Type extends ContextAppendType,\n\t\tNewDecorators extends Record<string, unknown>\n\t>(\n\t\toptions: { as: Type },\n\t\tdecorators: NewDecorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Type extends 'override'\n\t\t\t\t? Reconcile<Singleton['decorator'], NewDecorators, true>\n\t\t\t\t: Singleton['decorator'] & NewDecorators\n\t\t\tstore: Singleton['store']\n\t\t\tderive: Singleton['derive']\n\t\t\tresolve: Singleton['resolve']\n\t\t},\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\t/**\n\t * ### decorate\n\t * Define custom method to `Context` accessible for all handler\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .decorate('getDate', () => Date.now())\n\t * .get('/', (({ getDate }) => getDate())\n\t * ```\n\t */\n\tdecorate(\n\t\toptions:\n\t\t\t| { as: ContextAppendType }\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function,\n\t\tname?:\n\t\t\t| string\n\t\t\t| Record<string, unknown>\n\t\t\t| Function\n\t\t\t| { as: ContextAppendType },\n\t\tvalue?: unknown\n\t) {\n\t\tif (name === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ name: value })\n\t\t\t */\n\t\t\tvalue = options\n\t\t\toptions = { as: 'append' }\n\t\t\tname = ''\n\t\t} else if (value === undefined) {\n\t\t\t/**\n\t\t\t * Using either\n\t\t\t * - decorate({ as: 'override' }, { name: value })\n\t\t\t * - decorate('name', value)\n\t\t\t */\n\n\t\t\t// decorate('name', value)\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tvalue = name\n\t\t\t\tname = options\n\t\t\t\toptions = { as: 'append' }\n\t\t\t} else if (typeof options === 'object') {\n\t\t\t\t// decorate({ as: 'override' }, { name: value })\n\t\t\t\tvalue = name\n\t\t\t\tname = ''\n\t\t\t}\n\t\t}\n\n\t\tconst { as } = options as { as: ContextAppendType }\n\n\t\tif (typeof name !== 'string') return this\n\n\t\tswitch (typeof value) {\n\t\t\tcase 'object':\n\t\t\t\tif (name) {\n\t\t\t\t\tif (name in this.singleton.decorator)\n\t\t\t\t\t\tthis.singleton.decorator[name] = mergeDeep(\n\t\t\t\t\t\t\tthis.singleton.decorator[name] as any,\n\t\t\t\t\t\t\tvalue!,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\toverride: as === 'override'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\telse this.singleton.decorator[name] = value\n\n\t\t\t\t\treturn this\n\t\t\t\t}\n\n\t\t\t\tif (value === null) return this\n\n\t\t\t\tthis.singleton.decorator = mergeDeep(\n\t\t\t\t\tthis.singleton.decorator,\n\t\t\t\t\tvalue,\n\t\t\t\t\t{\n\t\t\t\t\t\toverride: as === 'override'\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\treturn this as any\n\n\t\t\tcase 'function':\n\t\t\t\tif (name) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tas === 'override' ||\n\t\t\t\t\t\t!(name in this.singleton.decorator)\n\t\t\t\t\t)\n\t\t\t\t\t\tthis.singleton.decorator[name] = value\n\t\t\t\t} else\n\t\t\t\t\tthis.singleton.decorator = value(this.singleton.decorator)\n\n\t\t\t\treturn this as any\n\n\t\t\tdefault:\n\t\t\t\tif (as === 'override' || !(name in this.singleton.decorator))\n\t\t\t\t\tthis.singleton.decorator[name] = value\n\n\t\t\t\treturn this\n\t\t}\n\t}\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tderive<\n\t\tconst Derivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t\t\t| void\n\t>(\n\t\ttransform: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t}\n\t\t\t>\n\t\t) => MaybePromise<Derivative>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: Volatile['derive'] & ExcludeElysiaResponse<Derivative>\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t>\n\t\t}\n\t>\n\n\t/**\n\t * Derive new property for each request with access to `Context`.\n\t *\n\t * If error is thrown, the scope will skip to handling error instead.\n\t *\n\t * ---\n\t * @example\n\t * new Elysia()\n\t * .state('counter', 1)\n\t * .derive(({ store }) => ({\n\t * increase() {\n\t * store.counter++\n\t * }\n\t * }))\n\t */\n\tderive<\n\t\tconst Derivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t\t\t| void,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\ttransform: (\n\t\t\tcontext: Context<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tVolatile['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Metadata['schema']>,\n\t\t\t\t\tBasePath\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'] &\n\t\t\t\t\t'global' extends Type\n\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t? { params: { [name: string]: string | undefined } }\n\t\t\t\t\t\t: {},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<Derivative>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tExcludeElysiaResponse<Derivative>\n\t\t\t\t\tresolve: Singleton['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Derivative>\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<Derivative>\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<Derivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tderive(\n\t\toptionsOrTransform: { as: LifeCycleType } | Function,\n\t\ttransform?: Function\n\t) {\n\t\tif (!transform) {\n\t\t\ttransform = optionsOrTransform as any\n\t\t\toptionsOrTransform = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'derive',\n\t\t\tfn: transform!\n\t\t}\n\n\t\treturn this.onTransform(optionsOrTransform as any, hook as any) as any\n\t}\n\n\tmodel<\n\t\tconst Name extends string,\n\t\tconst Model extends TSchema | StandardSchemaV1Like\n\t>(\n\t\tname: Name,\n\t\tmodel: Model\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox'] & {\n\t\t\t\t[name in Name]: Model\n\t\t\t}\n\t\t\terror: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmodel<\n\t\tconst Recorder extends Record<string, TSchema | StandardSchemaV1Like>\n\t>(\n\t\trecord: Recorder\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: Definitions['typebox'] & Recorder\n\t\t\terror: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmodel<const NewType extends Record<string, TSchema | StandardSchemaV1Like>>(\n\t\tmapper: (\n\t\t\tdecorators: Definitions['typebox'] extends infer Models\n\t\t\t\t? {\n\t\t\t\t\t\t[Name in keyof Models]: Models[Name] extends TSchema\n\t\t\t\t\t\t\t? TRef<Name & string>\n\t\t\t\t\t\t\t: Models[Name]\n\t\t\t\t\t}\n\t\t\t\t: {}\n\t\t) => NewType\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\t{\n\t\t\ttypebox: {\n\t\t\t\t[Name in keyof NewType]: NewType[Name] extends TRef<\n\t\t\t\t\tName & string\n\t\t\t\t>\n\t\t\t\t\t? // @ts-ignore\n\t\t\t\t\t\tDefinitions['typebox'][Name]\n\t\t\t\t\t: NewType[Name]\n\t\t\t}\n\t\t\terror: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t>\n\n\tmodel(\n\t\tname:\n\t\t\t| string\n\t\t\t| Record<string, TAnySchema | StandardSchemaV1Like>\n\t\t\t| Function,\n\t\tmodel?: TAnySchema | StandardSchemaV1Like\n\t): AnyElysia {\n\t\tconst onlyTypebox = <\n\t\t\tA extends Record<string, TAnySchema | StandardSchemaV1Like>\n\t\t>(\n\t\t\ta: A\n\t\t): Extract<A, TAnySchema> => {\n\t\t\tconst res = {} as Record<string, TAnySchema>\n\t\t\tfor (const key in a) if (!('~standard' in a[key])) res[key] = a[key]\n\t\t\treturn res as Extract<A, TAnySchema>\n\t\t}\n\n\t\tswitch (typeof name) {\n\t\t\tcase 'object':\n\t\t\t\tconst parsedTypebox = {} as Record<\n\t\t\t\t\tstring,\n\t\t\t\t\tTSchema | StandardSchemaV1Like\n\t\t\t\t>\n\n\t\t\t\tconst kvs = Object.entries(name)\n\n\t\t\t\tif (!kvs.length) return this\n\n\t\t\t\tfor (const [key, value] of kvs) {\n\t\t\t\t\tif (key in this.definitions.type) continue\n\n\t\t\t\t\tif ('~standard' in value) {\n\t\t\t\t\t\tthis.definitions.type[key] = value\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparsedTypebox[key] = this.definitions.type[key] = value\n\t\t\t\t\t\tparsedTypebox[key].$id ??= `#/components/schemas/${key}`\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tthis.definitions.typebox = t.Module({\n\t\t\t\t\t...(this.definitions.typebox['$defs'] as TModule<{}>),\n\t\t\t\t\t...parsedTypebox\n\t\t\t\t} as any)\n\n\t\t\t\treturn this\n\n\t\t\tcase 'function':\n\t\t\t\tconst result = name(this.definitions.type)\n\t\t\t\tthis.definitions.type = result\n\t\t\t\tthis.definitions.typebox = t.Module(onlyTypebox(result))\n\n\t\t\t\treturn this\n\n\t\t\tcase 'string':\n\t\t\t\tif (!model) break\n\n\t\t\t\tthis.definitions.type[name] = model\n\n\t\t\t\tif ('~standard' in model) return this\n\n\t\t\t\tconst newModel = {\n\t\t\t\t\t...model,\n\t\t\t\t\tid: model.$id ?? `#/components/schemas/${name}`\n\t\t\t\t}\n\n\t\t\t\tthis.definitions.typebox = t.Module({\n\t\t\t\t\t...(this.definitions.typebox['$defs'] as TModule<{}>),\n\t\t\t\t\t...newModel\n\t\t\t\t} as any)\n\n\t\t\t\treturn this\n\t\t}\n\n\t\tif (!model) return this\n\n\t\tthis.definitions.type[name] = model!\n\t\tif ('~standard' in model) return this\n\n\t\tthis.definitions.typebox = t.Module({\n\t\t\t...this.definitions.typebox['$defs'],\n\t\t\t[name]: model!\n\t\t})\n\n\t\treturn this\n\t}\n\n\tRef<K extends keyof Extract<Definitions['typebox'], TAnySchema> & string>(\n\t\tkey: K\n\t) {\n\t\treturn t.Ref(key)\n\t}\n\n\tmapDerive<\n\t\tconst NewDerivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>\n\t>(\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\t{},\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<NewDerivative>\n\t): Elysia<\n\t\tBasePath,\n\t\tSingleton,\n\t\tDefinitions,\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\t{\n\t\t\tderive: ExcludeElysiaResponse<NewDerivative>\n\t\t\tresolve: Volatile['resolve']\n\t\t\tschema: Volatile['schema']\n\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\tresponse: UnionResponseStatus<\n\t\t\t\tVolatile['response'],\n\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t>\n\t\t}\n\t>\n\n\tmapDerive<\n\t\tconst NewDerivative extends\n\t\t\t| Record<string, unknown>\n\t\t\t| ElysiaCustomStatusResponse<any, any, any>,\n\t\tconst Type extends LifeCycleType\n\t>(\n\t\toptions: { as: Type },\n\t\tmapper: (\n\t\t\tcontext: Context<\n\t\t\t\t{},\n\t\t\t\tSingleton &\n\t\t\t\t\t('global' extends Type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tderive: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['derive'] & Volatile['derive']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tresolve: Partial<\n\t\t\t\t\t\t\t\t\tEphemeral['resolve'] & Volatile['resolve']\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: 'scoped' extends Type\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['derive']>\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tPartial<Volatile['resolve']>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['derive']\n\t\t\t\t\t\t\t\t\tresolve: Ephemeral['resolve'] &\n\t\t\t\t\t\t\t\t\t\tVolatile['resolve']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\tBasePath\n\t\t\t>\n\t\t) => MaybePromise<NewDerivative>\n\t): Type extends 'global'\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\tdecorator: Singleton['decorator']\n\t\t\t\t\tstore: Singleton['store']\n\t\t\t\t\tderive: Singleton['derive'] &\n\t\t\t\t\t\tExcludeElysiaResponse<NewDerivative>\n\t\t\t\t\tresolve: Singleton['resolve']\n\t\t\t\t},\n\t\t\t\tDefinitions,\n\t\t\t\t{\n\t\t\t\t\tschema: Metadata['schema']\n\t\t\t\t\tstandaloneSchema: Metadata['standaloneSchema']\n\t\t\t\t\tmacro: Metadata['macro']\n\t\t\t\t\tmacroFn: Metadata['macroFn']\n\t\t\t\t\tparser: Metadata['parser']\n\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\tMetadata['response'],\n\t\t\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t\t\t>\n\t\t\t\t},\n\t\t\t\tRoutes,\n\t\t\t\tEphemeral,\n\t\t\t\tVolatile\n\t\t\t>\n\t\t: Type extends 'scoped'\n\t\t\t? Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Ephemeral['derive'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewDerivative>\n\t\t\t\t\t\tresolve: Ephemeral['resolve']\n\t\t\t\t\t\tschema: Ephemeral['schema']\n\t\t\t\t\t\tstandaloneSchema: Ephemeral['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tEphemeral['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t},\n\t\t\t\t\tVolatile\n\t\t\t\t>\n\t\t\t: Elysia<\n\t\t\t\t\tBasePath,\n\t\t\t\t\tSingleton,\n\t\t\t\t\tDefinitions,\n\t\t\t\t\tMetadata,\n\t\t\t\t\tRoutes,\n\t\t\t\t\tEphemeral,\n\t\t\t\t\t{\n\t\t\t\t\t\tderive: Volatile['derive']\n\t\t\t\t\t\tresolve: Volatile['resolve'] &\n\t\t\t\t\t\t\tExcludeElysiaResponse<NewDerivative>\n\t\t\t\t\t\tschema: Volatile['schema']\n\t\t\t\t\t\tstandaloneSchema: Volatile['standaloneSchema']\n\t\t\t\t\t\tresponse: UnionResponseStatus<\n\t\t\t\t\t\t\tVolatile['response'],\n\t\t\t\t\t\t\tExtractErrorFromHandle<NewDerivative>\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t>\n\n\tmapDerive(\n\t\toptionsOrDerive: { as: LifeCycleType } | Function,\n\t\tmapper?: Function\n\t) {\n\t\tif (!mapper) {\n\t\t\tmapper = optionsOrDerive as any\n\t\t\toptionsOrDerive = { as: 'local' }\n\t\t}\n\n\t\tconst hook: HookContainer = {\n\t\t\tsubType: 'mapDerive',\n\t\t\tfn: mapper!\n\t\t}\n\n\t\treturn this.onTransform(optionsOrDerive as any, hook as any) as any\n\t}\n\n\taffix<\n\t\tconst Base extends 'prefix' | 'suffix',\n\t\tconst Type extends 'all' | 'decorator' | 'state' | 'model' | 'error',\n\t\tconst Word extends string\n\t>(\n\t\tbase: Base,\n\t\ttype: Type,\n\t\tword: Word\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tdecorator: Type extends 'decorator' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['decorator']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['decorator']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Singleton['decorator']>\n\t\t\t\t: Singleton['decorator']\n\t\t\tstore: Type extends 'state' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['store']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['store']>\n\t\t\t\t\t: AddSuffix<Word, Singleton['store']>\n\t\t\t\t: Singleton['store']\n\t\t\tderive: Type extends 'decorator' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['derive']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['derive']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Singleton['derive']>\n\t\t\t\t: Singleton['derive']\n\t\t\tresolve: Type extends 'decorator' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Singleton['resolve']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Singleton['resolve']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Singleton['resolve']>\n\t\t\t\t: Singleton['resolve']\n\t\t},\n\t\t{\n\t\t\ttypebox: Type extends 'model' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Definitions['typebox']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Definitions['typebox']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Definitions['typebox']>\n\t\t\t\t: Definitions['typebox']\n\t\t\terror: Type extends 'error' | 'all'\n\t\t\t\t? 'prefix' extends Base\n\t\t\t\t\t? Word extends `${string}${'_' | '-' | ' '}`\n\t\t\t\t\t\t? AddPrefix<Word, Definitions['error']>\n\t\t\t\t\t\t: AddPrefixCapitalize<Word, Definitions['error']>\n\t\t\t\t\t: AddSuffixCapitalize<Word, Definitions['error']>\n\t\t\t\t: Definitions['error']\n\t\t},\n\t\tMetadata,\n\t\tRoutes,\n\t\tEphemeral,\n\t\tVolatile\n\t> {\n\t\tif (word === '') return this as any\n\n\t\tconst delimieter = ['_', '-', ' ']\n\t\tconst capitalize = (word: string) =>\n\t\t\tword[0].toUpperCase() + word.slice(1)\n\n\t\tconst joinKey =\n\t\t\tbase === 'prefix'\n\t\t\t\t? (prefix: string, word: string) =>\n\t\t\t\t\t\tdelimieter.includes(prefix.at(-1) ?? '')\n\t\t\t\t\t\t\t? prefix + word\n\t\t\t\t\t\t\t: prefix + capitalize(word)\n\t\t\t\t: delimieter.includes(word.at(-1) ?? '')\n\t\t\t\t\t? (suffix: string, word: string) => word + suffix\n\t\t\t\t\t: (suffix: string, word: string) =>\n\t\t\t\t\t\t\tword + capitalize(suffix)\n\n\t\tconst remap = (type: 'decorator' | 'state' | 'model' | 'error') => {\n\t\t\tconst store: Record<string, any> = {}\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'decorator':\n\t\t\t\t\tfor (const key in this.singleton.decorator) {\n\t\t\t\t\t\tstore[joinKey(word, key)] =\n\t\t\t\t\t\t\tthis.singleton.decorator[key]\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.singleton.decorator = store\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'state':\n\t\t\t\t\tfor (const key in this.singleton.store)\n\t\t\t\t\t\tstore[joinKey(word, key)] = this.singleton.store[key]\n\n\t\t\t\t\tthis.singleton.store = store\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'model':\n\t\t\t\t\tfor (const key in this.definitions.type)\n\t\t\t\t\t\tstore[joinKey(word, key)] = this.definitions.type[key]\n\n\t\t\t\t\tthis.definitions.type = store\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'error':\n\t\t\t\t\tfor (const key in this.definitions.error)\n\t\t\t\t\t\tstore[joinKey(word, key)] = this.definitions.error[key]\n\n\t\t\t\t\tthis.definitions.error = store\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst types = Array.isArray(type) ? type : [type]\n\n\t\tfor (const type of types.some((x) => x === 'all')\n\t\t\t? ['decorator', 'state', 'model', 'error']\n\t\t\t: types)\n\t\t\tremap(type as 'decorator')\n\n\t\treturn this as any\n\t}\n\n\tprefix<\n\t\tconst Type extends 'all' | 'decorator' | 'state' | 'model' | 'error',\n\t\tconst Word extends string\n\t>(type: Type, word: Word) {\n\t\treturn this.affix('prefix', type, word)\n\t}\n\n\tsuffix<\n\t\tconst Type extends 'all' | 'decorator' | 'state' | 'model' | 'error',\n\t\tconst Word extends string\n\t>(type: Type, word: Word) {\n\t\treturn this.affix('suffix', type, word)\n\t}\n\n\tcompile() {\n\t\tthis['~adapter'].beforeCompile?.(this)\n\n\t\tif (this['~adapter'].isWebStandard) {\n\t\t\tthis.fetch = this.config.aot\n\t\t\t\t? composeGeneralHandler(this)\n\t\t\t\t: createDynamicHandler(this)\n\n\t\t\tif (typeof this.server?.reload === 'function')\n\t\t\t\tthis.server.reload({\n\t\t\t\t\t...(this.server || {}),\n\t\t\t\t\tfetch: this.fetch\n\t\t\t\t})\n\n\t\t\treturn this\n\t\t}\n\n\t\tif (typeof this.server?.reload === 'function')\n\t\t\tthis.server.reload(this.server || {})\n\n\t\tthis._handle = composeGeneralHandler(this)\n\n\t\treturn this\n\t}\n\n\thandle = async (request: Request) => this.fetch(request)\n\n\t/**\n\t * Use handle can be either sync or async to save performance.\n\t *\n\t * Beside benchmark purpose, please use 'handle' instead.\n\t */\n\tfetch = (request: Request): MaybePromise<Response> => {\n\t\treturn (this.fetch = this.config.aot\n\t\t\t? composeGeneralHandler(this)\n\t\t\t: createDynamicHandler(this))(request)\n\t}\n\n\t/**\n\t * Custom handle written by adapter\n\t */\n\tprotected _handle?(...a: unknown[]): unknown\n\n\tprotected handleError = async (\n\t\tcontext: Partial<\n\t\t\tContext<\n\t\t\t\tMergeSchema<\n\t\t\t\t\tMetadata['schema'],\n\t\t\t\t\tMergeSchema<Ephemeral['schema'], Volatile['schema']>\n\t\t\t\t> &\n\t\t\t\t\tMetadata['standaloneSchema'] &\n\t\t\t\t\tEphemeral['standaloneSchema'] &\n\t\t\t\t\tVolatile['standaloneSchema'],\n\t\t\t\tSingleton & {\n\t\t\t\t\tderive: Ephemeral['derive'] & Volatile['derive']\n\t\t\t\t\tresolve: Ephemeral['resolve'] & Volatile['resolve']\n\t\t\t\t},\n\t\t\t\tBasePath\n\t\t\t>\n\t\t> & {\n\t\t\trequest: Request\n\t\t},\n\t\terror:\n\t\t\t| Error\n\t\t\t| ValidationError\n\t\t\t| ParseError\n\t\t\t| NotFoundError\n\t\t\t| InternalServerError\n\t) => {\n\t\treturn (this.handleError = this.config.aot\n\t\t\t? composeErrorHandler(this)\n\t\t\t: createDynamicErrorHandler(this))(context, error)\n\t}\n\n\t/**\n\t * ### listen\n\t * Assign current instance to port and start serving\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * new Elysia()\n\t * .get(\"/\", () => 'hi')\n\t * .listen(3000)\n\t * ```\n\t */\n\tlisten = (\n\t\toptions: string | number | Partial<Serve>,\n\t\tcallback?: ListenCallback\n\t) => {\n\t\tthis['~adapter'].listen(this)(options, callback)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### stop\n\t * Stop server from serving\n\t *\n\t * ---\n\t * @example\n\t * ```typescript\n\t * const app = new Elysia()\n\t * .get(\"/\", () => 'hi')\n\t * .listen(3000)\n\t *\n\t * // Sometime later\n\t * app.stop()\n\t * ```\n\t *\n\t * @example\n\t * ```typescript\n\t * const app = new Elysia()\n\t * .get(\"/\", () => 'hi')\n\t * .listen(3000)\n\t *\n\t * app.stop(true) // Abruptly any requests inflight\n\t * ```\n\t */\n\tstop = async (closeActiveConnections?: boolean) => {\n\t\tawait this['~adapter'].stop?.(this, closeActiveConnections)\n\n\t\treturn this\n\t};\n\n\t[Symbol.dispose] = () => {\n\t\tif (this.server) this.stop()\n\t}\n\n\t/**\n\t * Wait until all lazy loaded modules all load is fully\n\t */\n\tget modules() {\n\t\treturn this.promisedModules\n\t}\n}\n\nexport { Elysia }\n\nexport { t } from './type-system'\nexport { validationDetail, fileType } from './type-system/utils'\nexport type {\n\tElysiaTypeCustomError,\n\tElysiaTypeCustomErrorCallback\n} from './type-system/types'\n\nexport { serializeCookie, Cookie, type CookieOptions } from './cookies'\nexport type {\n\tContext,\n\tPreContext,\n\tErrorContext,\n\tSelectiveStatus\n} from './context'\nexport {\n\tELYSIA_TRACE,\n\ttype TraceEvent,\n\ttype TraceListener,\n\ttype TraceHandler,\n\ttype TraceProcess,\n\ttype TraceStream\n} from './trace'\n\nexport {\n\tgetSchemaValidator,\n\tgetResponseSchemaValidator,\n\treplaceSchemaType\n} from './schema'\n\nexport {\n\tmergeHook,\n\tmergeObjectArray,\n\tredirect,\n\tStatusMap,\n\tInvertedStatusMap,\n\tform,\n\treplaceUrlPath,\n\tchecksum,\n\tcloneInference,\n\tdeduplicateChecksum,\n\tELYSIA_FORM_DATA,\n\tELYSIA_REQUEST_ID,\n\tsse\n} from './utils'\n\nexport {\n\tstatus,\n\tmapValueError,\n\tParseError,\n\tNotFoundError,\n\tValidationError,\n\tInvalidFileType,\n\tInternalServerError,\n\tInvalidCookieSignature,\n\tERROR_CODE,\n\tElysiaCustomStatusResponse\n} from './error'\n\nexport type {\n\tEphemeralType,\n\tCreateEden,\n\tComposeElysiaResponse,\n\tElysiaConfig,\n\tSingletonBase,\n\tDefinitionBase,\n\tRouteBase,\n\tHandler,\n\tComposedHandler,\n\tInputSchema,\n\tLocalHook,\n\tMergeSchema,\n\tRouteSchema,\n\tUnwrapRoute,\n\tInternalRoute,\n\tHTTPMethod,\n\tSchemaValidator,\n\tVoidHandler,\n\tPreHandler,\n\tBodyHandler,\n\tOptionalHandler,\n\tAfterResponseHandler,\n\tErrorHandler,\n\tLifeCycleEvent,\n\tLifeCycleStore,\n\tLifeCycleType,\n\tMaybePromise,\n\tUnwrapSchema,\n\tChecksum,\n\tDocumentDecoration,\n\tInferContext,\n\tInferHandler,\n\tResolvePath,\n\tMapResponse,\n\tBaseMacro,\n\tMacroManager,\n\tMacroToProperty,\n\tMergeElysiaInstances,\n\tMaybeArray,\n\tModelValidator,\n\tMetadataBase,\n\tUnwrapBodySchema,\n\tUnwrapGroupGuardRoute,\n\tModelValidatorError,\n\tExcludeElysiaResponse,\n\tSSEPayload,\n\tStandaloneInputSchema,\n\tMergeStandaloneSchema,\n\tMergeTypeModule,\n\tGracefulHandler,\n\tAfterHandler,\n\tInlineHandler,\n\tResolveHandler,\n\tTransformHandler,\n\tHTTPHeaders,\n\tEmptyRouteSchema\n} from './types'\n\nexport { env } from './universal/env'\nexport { file, ElysiaFile } from './universal/file'\nexport type { ElysiaAdapter } from './adapter'\n\nexport { TypeSystemPolicy } from '@sinclair/typebox/system'\nexport type { Static, TSchema } from '@sinclair/typebox'\n",
9
9
  "import { Type, Kind } from '@sinclair/typebox'\nimport type {\n\tArrayOptions,\n\tDateOptions,\n\tIntegerOptions,\n\tObjectOptions,\n\tSchemaOptions,\n\tTAnySchema,\n\tTArray,\n\tTBoolean,\n\tTDate,\n\tTEnumValue,\n\tTInteger,\n\tTNumber,\n\tTObject,\n\tTProperties,\n\tTSchema,\n\tTString,\n\tNumberOptions,\n\tJavaScriptTypeBuilder,\n\tStringOptions,\n\tTUnsafe,\n\tUint8ArrayOptions,\n\tTEnum\n} from '@sinclair/typebox'\n\nimport {\n\tcompile,\n\tcreateType,\n\tloadFileType,\n\ttryParse,\n\tvalidateFile\n} from './utils'\nimport {\n\tCookieValidatorOptions,\n\tTFile,\n\tTFiles,\n\tFileOptions,\n\tFilesOptions,\n\tNonEmptyArray,\n\tTForm,\n\tTUnionEnum,\n\tElysiaTransformDecodeBuilder,\n\tTArrayBuffer,\n\tAssertNumericEnum\n} from './types'\n\nimport { ELYSIA_FORM_DATA, form } from '../utils'\nimport { ValidationError } from '../error'\nimport { parseDateTimeEmptySpace } from './format'\n\nconst t = Object.assign({}, Type) as unknown as Omit<\n\tJavaScriptTypeBuilder,\n\t'String' | 'Transform'\n> &\n\ttypeof ElysiaType & {\n\t\tTransform<Type extends TSchema>(\n\t\t\ttype: Type\n\t\t): ElysiaTransformDecodeBuilder<Type>\n\t}\n\ncreateType<TUnionEnum>(\n\t'UnionEnum',\n\t(schema, value) =>\n\t\t(typeof value === 'number' ||\n\t\t\ttypeof value === 'string' ||\n\t\t\tvalue === null) &&\n\t\tschema.enum.includes(value as never)\n)\n\ncreateType<TArrayBuffer>(\n\t'ArrayBuffer',\n\t(schema, value) => value instanceof ArrayBuffer\n)\n\nconst internalFiles = createType<FilesOptions, File[]>(\n\t'Files',\n\t(options, value) => {\n\t\tif (options.minItems && options.minItems > 1 && !Array.isArray(value))\n\t\t\treturn false\n\n\t\tif (!Array.isArray(value)) return validateFile(options, value)\n\n\t\tif (options.minItems && value.length < options.minItems) return false\n\t\tif (options.maxItems && value.length > options.maxItems) return false\n\n\t\tfor (let i = 0; i < value.length; i++)\n\t\t\tif (!validateFile(options, value[i])) return false\n\n\t\treturn true\n\t}\n) as unknown as TFiles\n\nconst internalFormData = createType<TForm, FormData>(\n\t'ElysiaForm',\n\t({ compiler, ...schema }, value) => {\n\t\tif (!(value instanceof FormData)) return false\n\n\t\tif (compiler) {\n\t\t\tif (!(ELYSIA_FORM_DATA in value))\n\t\t\t\tthrow new ValidationError('property', schema, value)\n\n\t\t\tif (!compiler.Check(value[ELYSIA_FORM_DATA]))\n\t\t\t\tthrow compiler.Error(value[ELYSIA_FORM_DATA])\n\t\t}\n\n\t\treturn true\n\t}\n) as unknown as TForm\n\ninterface ElysiaStringOptions extends StringOptions {\n\t/**\n\t * Whether the value include JSON escape sequences or not\n\t *\n\t * When using JSON Accelerator, this will bypass the JSON escape sequence validation\n\t *\n\t * Set to `true` if the value doesn't include JSON escape sequences\n\t *\n\t * @default false\n\t */\n\ttrusted?: boolean\n}\n\nexport const ElysiaType = {\n\t// @ts-ignore\n\tString: (property?: ElysiaStringOptions) => Type.String(property),\n\tNumeric: (property?: NumberOptions) => {\n\t\tconst schema = Type.Number(property)\n\t\tconst compiler = compile(schema)\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union(\n\t\t\t\t\t[\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tformat: 'numeric',\n\t\t\t\t\t\t\tdefault: 0\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tt.Number(property)\n\t\t\t\t\t],\n\t\t\t\t\tproperty\n\t\t\t\t)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tconst number = +value\n\t\t\t\tif (isNaN(number)) return value\n\n\t\t\t\tif (property && !compiler.Check(number))\n\t\t\t\t\tthrow compiler.Error(number)\n\n\t\t\t\treturn number\n\t\t\t})\n\t\t\t.Encode((value) => value) as any as TNumber\n\t},\n\n\tNumericEnum<T extends AssertNumericEnum<T>>(item: T, property?: SchemaOptions) {\n\t\tconst schema = Type.Enum(item, property)\n\t\tconst compiler = compile(schema)\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union([t.String({ format: 'numeric' }), t.Number()], property)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tconst number = +value\n\t\t\t\tif (isNaN(number)) throw compiler.Error(number)\n\t\t\t\tif (!compiler.Check(number)) throw compiler.Error(number)\n\t\t\t\treturn number\n\t\t\t})\n\t\t\t.Encode((value) => value) as any as TEnum<T>\n\t},\n\n\tInteger: (property?: IntegerOptions): TInteger => {\n\t\tconst schema = Type.Integer(property)\n\t\tconst compiler = compile(schema)\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union(\n\t\t\t\t\t[\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tformat: 'integer',\n\t\t\t\t\t\t\tdefault: 0\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tType.Integer(property)\n\t\t\t\t\t],\n\t\t\t\t\tproperty\n\t\t\t\t)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tconst number = +value\n\n\t\t\t\tif (!compiler.Check(number)) throw compiler.Error(number)\n\n\t\t\t\treturn number\n\t\t\t})\n\t\t\t.Encode((value) => value) as any as TInteger\n\t},\n\n\tDate: (property?: DateOptions) => {\n\t\tconst schema = Type.Date(property)\n\t\tconst compiler = compile(schema)\n\n\t\tconst _default = property?.default\n\t\t\t? new Date(property.default) // in case the default is an ISO string or milliseconds from epoch\n\t\t\t: undefined\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union(\n\t\t\t\t\t[\n\t\t\t\t\t\tType.Date(property),\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tformat: 'date-time',\n\t\t\t\t\t\t\tdefault: _default?.toISOString()\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tformat: 'date',\n\t\t\t\t\t\t\tdefault: _default?.toISOString()\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tt.Number({ default: _default?.getTime() })\n\t\t\t\t\t],\n\t\t\t\t\tproperty\n\t\t\t\t)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tif (typeof value === 'number') {\n\t\t\t\t\tconst date = new Date(value)\n\n\t\t\t\t\tif (!compiler.Check(date)) throw compiler.Error(date)\n\n\t\t\t\t\treturn date\n\t\t\t\t}\n\n\t\t\t\tif (value instanceof Date) return value\n\n\t\t\t\tconst date = new Date(parseDateTimeEmptySpace(value))\n\n\t\t\t\tif (!date || isNaN(date.getTime()))\n\t\t\t\t\tthrow new ValidationError('property', schema, date)\n\n\t\t\t\tif (!compiler.Check(date)) throw compiler.Error(date)\n\n\t\t\t\treturn date\n\t\t\t})\n\t\t\t.Encode((value) => {\n\t\t\t\tif (value instanceof Date) return value.toISOString()\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tif (\n\t\t\t\t\t\tisNaN(\n\t\t\t\t\t\t\tnew Date(parseDateTimeEmptySpace(value)).getTime()\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t\tthrow new ValidationError('property', schema, value)\n\n\t\t\t\t\treturn value\n\t\t\t\t}\n\n\t\t\t\tif (!compiler.Check(value)) throw compiler.Error(value)\n\n\t\t\t\treturn value\n\t\t\t}) as any as TDate\n\t},\n\n\tBooleanString: (property?: SchemaOptions) => {\n\t\tconst schema = Type.Boolean(property)\n\t\tconst compiler = compile(schema)\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union(\n\t\t\t\t\t[\n\t\t\t\t\t\tt.Boolean(property),\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tformat: 'boolean',\n\t\t\t\t\t\t\tdefault: false\n\t\t\t\t\t\t})\n\t\t\t\t\t],\n\t\t\t\t\tproperty\n\t\t\t\t)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tif (typeof value === 'string') return value === 'true'\n\n\t\t\t\tif (value !== undefined && !compiler.Check(value))\n\t\t\t\t\tthrow compiler.Error(value)\n\n\t\t\t\treturn value\n\t\t\t})\n\t\t\t.Encode((value) => value) as any as TBoolean\n\t},\n\n\tObjectString: <T extends TProperties>(\n\t\tproperties: T,\n\t\toptions?: ObjectOptions\n\t) => {\n\t\tconst schema = t.Object(properties, options)\n\t\tconst compiler = compile(schema)\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union(\n\t\t\t\t\t[\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tformat: 'ObjectString',\n\t\t\t\t\t\t\tdefault: '{}'\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tschema\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\telysiaMeta: 'ObjectString'\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tif (value.charCodeAt(0) !== 123)\n\t\t\t\t\t\tthrow new ValidationError('property', schema, value)\n\n\t\t\t\t\tif (!compiler.Check((value = tryParse(value, schema))))\n\t\t\t\t\t\tthrow compiler.Error(value)\n\n\t\t\t\t\treturn compiler.Decode(value)\n\t\t\t\t}\n\n\t\t\t\treturn value\n\t\t\t})\n\t\t\t.Encode((value) => {\n\t\t\t\tlet original\n\t\t\t\tif (typeof value === 'string')\n\t\t\t\t\tvalue = tryParse((original = value), schema)\n\n\t\t\t\tif (!compiler.Check(value)) throw compiler.Error(value)\n\n\t\t\t\treturn original ?? JSON.stringify(value)\n\t\t\t}) as any as TObject<T>\n\t},\n\n\tArrayString: <T extends TSchema = TString>(\n\t\tchildren: T = t.String() as any,\n\t\toptions?: ArrayOptions\n\t) => {\n\t\tconst schema = t.Array(children, options)\n\t\tconst compiler = compile(schema)\n\n\t\tconst decode = (value: string, isProperty = false) => {\n\t\t\tif (value.charCodeAt(0) === 91) {\n\t\t\t\tif (!compiler.Check((value = tryParse(value, schema))))\n\t\t\t\t\tthrow compiler.Error(value)\n\n\t\t\t\treturn compiler.Decode(value)\n\t\t\t}\n\n\t\t\t// has , (as used in nuqs)\n\t\t\t// if (value.indexOf(',') !== -1) {\n\t\t\t// \t// const newValue = value.split(',').map((v) => v.trim())\n\n\t\t\t// \tif (!compiler.Check(value)) throw compiler.Error(value)\n\n\t\t\t// \treturn compiler.Decode(value)\n\t\t\t// }\n\n\t\t\tif (isProperty) return value\n\n\t\t\tthrow new ValidationError('property', schema, value)\n\t\t}\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union([\n\t\t\t\t\tt.String({\n\t\t\t\t\t\tformat: 'ArrayString',\n\t\t\t\t\t\tdefault: options?.default\n\t\t\t\t\t}),\n\t\t\t\t\tschema\n\t\t\t\t])\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tlet values = <unknown[]>[]\n\n\t\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\t\tconst v = value[i]\n\t\t\t\t\t\tif (typeof v === 'string') {\n\t\t\t\t\t\t\tconst t = decode(v, true)\n\t\t\t\t\t\t\tif (Array.isArray(t)) values = values.concat(t)\n\t\t\t\t\t\t\telse values.push(t)\n\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalues.push(v)\n\t\t\t\t\t}\n\n\t\t\t\t\treturn values\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'string') return decode(value)\n\n\t\t\t\t// Is probably transformed, unable to check schema\n\t\t\t\treturn value\n\t\t\t})\n\t\t\t.Encode((value) => {\n\t\t\t\tlet original\n\t\t\t\tif (typeof value === 'string')\n\t\t\t\t\tvalue = tryParse((original = value), schema)\n\n\t\t\t\tif (!compiler.Check(value))\n\t\t\t\t\tthrow new ValidationError('property', schema, value)\n\n\t\t\t\treturn original ?? JSON.stringify(value)\n\t\t\t}) as any as TArray<T>\n\t},\n\n\tArrayQuery: <T extends TSchema = TString>(\n\t\tchildren: T = t.String() as any,\n\t\toptions?: ArrayOptions\n\t) => {\n\t\tconst schema = t.Array(children, options)\n\t\tconst compiler = compile(schema)\n\n\t\tconst decode = (value: string) => {\n\t\t\t// has , (as used in nuqs)\n\t\t\tif (value.indexOf(',') !== -1)\n\t\t\t\treturn compiler.Decode(value.split(','))\n\n\t\t\treturn [value]\n\t\t}\n\n\t\treturn t\n\t\t\t.Transform(\n\t\t\t\tt.Union(\n\t\t\t\t\t[\n\t\t\t\t\t\tt.String({\n\t\t\t\t\t\t\tdefault: options?.default\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tschema\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\telysiaMeta: 'ArrayQuery'\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t)\n\t\t\t.Decode((value) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tlet values = <unknown[]>[]\n\n\t\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\t\tconst v = value[i]\n\t\t\t\t\t\tif (typeof v === 'string') {\n\t\t\t\t\t\t\tconst t = decode(v)\n\t\t\t\t\t\t\tif (Array.isArray(t)) values = values.concat(t)\n\t\t\t\t\t\t\telse values.push(t)\n\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalues.push(v)\n\t\t\t\t\t}\n\n\t\t\t\t\treturn values\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'string') return decode(value)\n\n\t\t\t\t// Is probably transformed, unable to check schema\n\t\t\t\treturn value\n\t\t\t})\n\t\t\t.Encode((value) => {\n\t\t\t\tlet original\n\t\t\t\tif (typeof value === 'string')\n\t\t\t\t\tvalue = tryParse((original = value), schema)\n\n\t\t\t\tif (!compiler.Check(value))\n\t\t\t\t\tthrow new ValidationError('property', schema, value)\n\n\t\t\t\treturn original ?? JSON.stringify(value)\n\t\t\t}) as any as TArray<T>\n\t},\n\n\tFile: createType<FileOptions, File>(\n\t\t'File',\n\t\tvalidateFile\n\t) as unknown as TFile,\n\n\tFiles: (options: FilesOptions = {}): TUnsafe<File[]> =>\n\t\tt\n\t\t\t.Transform(internalFiles(options))\n\t\t\t.Decode((value) => {\n\t\t\t\tif (Array.isArray(value)) return value\n\t\t\t\treturn [value]\n\t\t\t})\n\t\t\t.Encode((value) => value) as unknown as TUnsafe<File[]>,\n\n\tNullable: <T extends TSchema>(schema: T, options?: SchemaOptions) =>\n\t\tt.Union([schema, t.Null()], {\n\t\t\t...options,\n\t\t\tnullable: true\n\t\t}),\n\n\t/**\n\t * Allow Optional, Nullable and Undefined\n\t */\n\tMaybeEmpty: <T extends TSchema>(schema: T, options?: SchemaOptions) =>\n\t\tt.Union([schema, t.Null(), t.Undefined()], options),\n\n\tCookie: <T extends TProperties>(\n\t\tproperties: T,\n\t\t{\n\t\t\tdomain,\n\t\t\texpires,\n\t\t\thttpOnly,\n\t\t\tmaxAge,\n\t\t\tpath,\n\t\t\tpriority,\n\t\t\tsameSite,\n\t\t\tsecure,\n\t\t\tsecrets,\n\t\t\tsign,\n\t\t\t...options\n\t\t}: CookieValidatorOptions<T> = {}\n\t) => {\n\t\tconst v = t.Object(properties, options)\n\n\t\tv.config = {\n\t\t\tdomain,\n\t\t\texpires,\n\t\t\thttpOnly,\n\t\t\tmaxAge,\n\t\t\tpath,\n\t\t\tpriority,\n\t\t\tsameSite,\n\t\t\tsecure,\n\t\t\tsecrets,\n\t\t\tsign\n\t\t}\n\n\t\treturn v\n\t},\n\n\tUnionEnum: <\n\t\tconst T extends\n\t\t\t| NonEmptyArray<TEnumValue>\n\t\t\t| Readonly<NonEmptyArray<TEnumValue>>\n\t>(\n\t\tvalues: T,\n\t\toptions: SchemaOptions = {}\n\t) => {\n\t\tconst type = values.every((value) => typeof value === 'string')\n\t\t\t? { type: 'string' }\n\t\t\t: values.every((value) => typeof value === 'number')\n\t\t\t\t? { type: 'number' }\n\t\t\t\t: values.every((value) => value === null)\n\t\t\t\t\t? { type: 'null' }\n\t\t\t\t\t: {}\n\n\t\tif (values.some((x) => typeof x === 'object' && x !== null))\n\t\t\tthrow new Error('This type does not support objects or arrays')\n\n\t\treturn {\n\t\t\t// default is need for generating error message\n\t\t\tdefault: values[0],\n\t\t\t...options,\n\t\t\t[Kind]: 'UnionEnum',\n\t\t\t...type,\n\t\t\tenum: values\n\t\t} as any as TUnionEnum<T>\n\t},\n\n\tNoValidate: <T extends TAnySchema>(v: T, enabled = true) => {\n\t\tv.noValidate = enabled\n\n\t\treturn v\n\t},\n\n\tForm: <T extends TProperties>(\n\t\tv: T,\n\t\toptions: ObjectOptions = {}\n\t): TForm<T> => {\n\t\tconst schema = t.Object(v, {\n\t\t\tdefault: form({}),\n\t\t\t...options\n\t\t})\n\t\tconst compiler = compile(schema)\n\n\t\treturn t.Union([\n\t\t\tschema,\n\t\t\t// @ts-expect-error\n\t\t\tinternalFormData({\n\t\t\t\tcompiler\n\t\t\t})\n\t\t])\n\t},\n\n\tArrayBuffer(options: TArrayBuffer = {}) {\n\t\treturn {\n\t\t\t// default is need for generating error message\n\t\t\tdefault: [1, 2, 3],\n\t\t\t...options,\n\t\t\t[Kind]: 'ArrayBuffer'\n\t\t} as any as TUnsafe<ArrayBuffer>\n\t},\n\n\tUint8Array: (options: Uint8ArrayOptions) => {\n\t\tconst schema = Type.Uint8Array(options)\n\t\tconst compiler = compile(schema)\n\n\t\treturn t\n\t\t\t.Transform(t.Union([t.ArrayBuffer(), Type.Uint8Array(options)]))\n\t\t\t.Decode((value) => {\n\t\t\t\tif (value instanceof ArrayBuffer) {\n\t\t\t\t\tif (!compiler.Check((value = new Uint8Array(value))))\n\t\t\t\t\t\tthrow compiler.Error(value)\n\n\t\t\t\t\treturn value\n\t\t\t\t}\n\n\t\t\t\treturn value\n\t\t\t})\n\t\t\t.Encode((value) => value) as any as TUnsafe<Uint8Array>\n\t}\n}\n\nt.BooleanString = ElysiaType.BooleanString\nt.ObjectString = ElysiaType.ObjectString\nt.ArrayString = ElysiaType.ArrayString\nt.ArrayQuery = ElysiaType.ArrayQuery\nt.Numeric = ElysiaType.Numeric\nt.NumericEnum = ElysiaType.NumericEnum\nt.Integer = ElysiaType.Integer\n\nt.File = (arg) => {\n\tif (arg?.type) loadFileType()\n\n\treturn ElysiaType.File({\n\t\tdefault: 'File',\n\t\t...arg,\n\t\textension: arg?.type,\n\t\ttype: 'string',\n\t\tformat: 'binary'\n\t})\n}\n\nt.Files = (arg) => {\n\tif (arg?.type) loadFileType()\n\n\treturn ElysiaType.Files({\n\t\t...arg,\n\t\telysiaMeta: 'Files',\n\t\tdefault: 'Files',\n\t\textension: arg?.type,\n\t\ttype: 'array',\n\t\titems: {\n\t\t\t...arg,\n\t\t\tdefault: 'Files',\n\t\t\ttype: 'string',\n\t\t\tformat: 'binary'\n\t\t}\n\t})\n}\n\nt.Nullable = ElysiaType.Nullable\nt.MaybeEmpty = ElysiaType.MaybeEmpty\nt.Cookie = ElysiaType.Cookie\nt.Date = ElysiaType.Date\nt.UnionEnum = ElysiaType.UnionEnum\nt.NoValidate = ElysiaType.NoValidate\nt.Form = ElysiaType.Form\n\nt.ArrayBuffer = ElysiaType.ArrayBuffer\nt.Uint8Array = ElysiaType.Uint8Array as any\n\nexport { t }\n\nexport {\n\tTypeSystemPolicy,\n\tTypeSystem,\n\tTypeSystemDuplicateFormat,\n\tTypeSystemDuplicateTypeKind\n} from '@sinclair/typebox/system'\nexport { TypeRegistry, FormatRegistry } from '@sinclair/typebox'\nexport { TypeCompiler, TypeCheck } from '@sinclair/typebox/compiler'\n",
10
10
  "import {\n\tKind,\n\tTUnsafe,\n\tTypeRegistry,\n\tUnsafe,\n\ttype TAnySchema\n} from '@sinclair/typebox'\nimport { Value } from '@sinclair/typebox/value'\nimport { TypeCheck, TypeCompiler } from '@sinclair/typebox/compiler'\n\nimport { ElysiaFile } from '../universal/file'\nimport { InvalidFileType, ValidationError } from '../error'\nimport type {\n\tElysiaTypeCustomErrorCallback,\n\tFileOptions,\n\tFileUnit,\n\tFileType\n} from './types'\nimport type { MaybeArray } from '../types'\n\nexport const tryParse = (v: unknown, schema: TAnySchema) => {\n\ttry {\n\t\treturn JSON.parse(v as string)\n\t} catch {\n\t\tthrow new ValidationError('property', schema, v)\n\t}\n}\n\nexport function createType<TSchema = unknown, TReturn = unknown>(\n\tkind: string,\n\tfunc: TypeRegistry.TypeRegistryValidationFunction<TSchema>\n): TUnsafe<TReturn> {\n\tif (!TypeRegistry.Has(kind)) TypeRegistry.Set<TSchema>(kind, func)\n\n\treturn ((options = {}) => Unsafe({ ...options, [Kind]: kind })) as any\n}\n\nexport const compile = <T extends TAnySchema>(schema: T) => {\n\ttry {\n\t\tconst compiler = TypeCompiler.Compile(schema) as TypeCheck<T> & {\n\t\t\tCreate(): T['static']\n\t\t\tError(v: unknown): asserts v is T['static']\n\t\t}\n\n\t\tcompiler.Create = () => Value.Create(schema)\n\t\tcompiler.Error = (v: unknown) =>\n\t\t\t// @ts-ignore\n\t\t\tnew ValidationError('property', schema, v, compiler.Errors(v))\n\n\t\treturn compiler\n\t} catch {\n\t\treturn {\n\t\t\tCheck: (v: unknown) => Value.Check(schema, v),\n\t\t\tCheckThrow: (v: unknown) => {\n\t\t\t\tif (!Value.Check(schema, v))\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t'property',\n\t\t\t\t\t\tschema,\n\t\t\t\t\t\tv,\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tValue.Errors(schema, v)\n\t\t\t\t\t)\n\t\t\t},\n\t\t\tDecode: (v: unknown) => Value.Decode(schema, v),\n\t\t\tCreate: () => Value.Create(schema),\n\t\t\tError: (v: unknown) =>\n\t\t\t\tnew ValidationError(\n\t\t\t\t\t'property',\n\t\t\t\t\tschema,\n\t\t\t\t\tv,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tValue.Errors(schema, v)\n\t\t\t\t)\n\t\t}\n\t}\n}\n\nexport const parseFileUnit = (size: FileUnit) => {\n\tif (typeof size === 'string')\n\t\tswitch (size.slice(-1)) {\n\t\t\tcase 'k':\n\t\t\t\treturn +size.slice(0, size.length - 1) * 1024\n\n\t\t\tcase 'm':\n\t\t\t\treturn +size.slice(0, size.length - 1) * 1048576\n\n\t\t\tdefault:\n\t\t\t\treturn +size\n\t\t}\n\n\treturn size\n}\n\nexport const checkFileExtension = (type: string, extension: string) => {\n\tif (type.startsWith(extension)) return true\n\n\treturn (\n\t\textension.charCodeAt(extension.length - 1) === 42 &&\n\t\textension.charCodeAt(extension.length - 2) === 47 &&\n\t\ttype.startsWith(extension.slice(0, -1))\n\t)\n}\n\nlet _fileTypeFromBlobWarn = false\nconst warnIfFileTypeIsNotInstalled = () => {\n\tif (!_fileTypeFromBlobWarn) {\n\t\tconsole.warn(\n\t\t\t\"[Elysia] Attempt to validate file type without 'file-type'. This may lead to security risks. We recommend installing 'file-type' to properly validate file extension.\"\n\t\t)\n\t\t_fileTypeFromBlobWarn = true\n\t}\n}\n\nexport const loadFileType = async () =>\n\timport('file-type')\n\t\t.then((x) => {\n\t\t\t_fileTypeFromBlob = x.fileTypeFromBlob\n\t\t\treturn _fileTypeFromBlob\n\t\t})\n\t\t.catch(warnIfFileTypeIsNotInstalled)\n\nlet _fileTypeFromBlob: Function\nexport const fileTypeFromBlob = (file: Blob | File) => {\n\tif (_fileTypeFromBlob) return _fileTypeFromBlob(file)\n\n\treturn loadFileType().then((mod) => {\n\t\tif (mod) return mod(file)\n\t})\n}\n\nexport const fileType = async (\n\tfile: MaybeArray<Blob | File | undefined>,\n\textension: FileType | FileType[],\n\t// @ts-ignore\n\tname = file?.name ?? ''\n): Promise<boolean> => {\n\tif (Array.isArray(file)) {\n\t\tawait Promise.all(file.map((f) => fileType(f, extension, name)))\n\n\t\treturn true\n\t}\n\n\tif (!file) return false\n\n\tconst result = await fileTypeFromBlob(file)\n\tif (!result) throw new InvalidFileType(name, extension)\n\n\tif (typeof extension === 'string')\n\t\tif (!checkFileExtension(result.mime, extension))\n\t\t\tthrow new InvalidFileType(name, extension)\n\n\tfor (let i = 0; i < extension.length; i++)\n\t\tif (checkFileExtension(result.mime, extension[i])) return true\n\n\tthrow new InvalidFileType(name, extension)\n}\n\n/**\n * This only check file extension based on it's name / mimetype\n * to actual check the file type, use `validateFileExtension` instead\n */\nexport const validateFile = (options: FileOptions, value: any) => {\n\tif (value instanceof ElysiaFile) return true\n\n\tif (!(value instanceof Blob)) return false\n\n\tif (options.minSize && value.size < parseFileUnit(options.minSize))\n\t\treturn false\n\n\tif (options.maxSize && value.size > parseFileUnit(options.maxSize))\n\t\treturn false\n\n\tif (options.extension) {\n\t\tif (typeof options.extension === 'string')\n\t\t\treturn checkFileExtension(value.type, options.extension)\n\n\t\tfor (let i = 0; i < options.extension.length; i++)\n\t\t\tif (checkFileExtension(value.type, options.extension[i]))\n\t\t\t\treturn true\n\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Utility function to inherit add custom error and keep the original Validation error\n *\n * @since 1.3.14\n *\n * @example\n * ```ts\n * import { Elysia, t, errorWithDetail } from 'elysia'\n *\n * new Elysia()\n *\t\t.post('/', () => 'Hello World!', {\n *\t\t\tbody: t.Object({\n *\t\t\t\tx: t.Number({\n *\t\t\t\t\terror: validationDetail('x must be a number')\n *\t\t\t\t})\n *\t\t\t})\n *\t\t})\n */\nexport const validationDetail =\n\t<T>(message: T) =>\n\t(error: Parameters<ElysiaTypeCustomErrorCallback>[0]) => ({\n\t\t...error,\n\t\tmessage\n\t})\n",
11
11
  "// @ts-ignore\nexport const isBun = typeof Bun !== 'undefined'\n// @ts-ignore\nexport const isDeno = typeof Deno !== 'undefined'\n",
@@ -32,7 +32,7 @@
32
32
  "/* eslint-disable sonarjs/no-duplicate-string */\nimport type { TSchema } from '@sinclair/typebox'\n\nimport { WebStandardAdapter } from '../web-standard/index'\nimport { parseSetCookies } from '../utils'\nimport type { ElysiaAdapter } from '../types'\nimport type { Serve } from '../../universal/server'\n\nimport { createBunRouteHandler } from './compose'\nimport { createNativeStaticHandler } from './handler-native'\n\nimport { serializeCookie } from '../../cookies'\nimport { isProduction, ValidationError } from '../../error'\nimport { getSchemaValidator } from '../../schema'\nimport {\n\thasHeaderShorthand,\n\tisNotEmpty,\n\tisNumericString,\n\trandomId,\n\tsupportPerMethodInlineHandler\n} from '../../utils'\n\nimport {\n\tmapResponse,\n\tmapEarlyResponse,\n\tmapCompactResponse,\n\tcreateStaticHandler\n} from './handler'\n\nimport {\n\tcreateHandleWSResponse,\n\tcreateWSMessageParser,\n\tElysiaWS,\n\twebsocket\n} from '../../ws/index'\nimport type { ServerWebSocket } from '../../ws/bun'\nimport type { AnyElysia } from '../..'\n\nconst optionalParam = /:.+?\\?(?=\\/|$)/\n\nconst getPossibleParams = (path: string) => {\n\tconst match = optionalParam.exec(path)\n\n\tif (!match) return [path]\n\n\tconst routes: string[] = []\n\n\tconst head = path.slice(0, match.index)\n\tconst param = match[0].slice(0, -1)\n\tconst tail = path.slice(match.index + match[0].length)\n\n\troutes.push(head.slice(0, -1))\n\troutes.push(head + param)\n\n\tfor (const fragment of getPossibleParams(tail)) {\n\t\tif (!fragment) continue\n\n\t\tif (!fragment.startsWith('/:'))\n\t\t\troutes.push(head.slice(0, -1) + fragment)\n\n\t\troutes.push(head + param + fragment)\n\t}\n\n\treturn routes\n}\n\nexport const isHTMLBundle = (handle: any) => {\n\treturn (\n\t\ttypeof handle === 'object' &&\n\t\thandle !== null &&\n\t\t(handle.toString() === '[object HTMLBundle]' ||\n\t\t\ttypeof handle.index === 'string')\n\t)\n}\n\nconst supportedMethods = {\n\tGET: true,\n\tHEAD: true,\n\tOPTIONS: true,\n\tDELETE: true,\n\tPATCH: true,\n\tPOST: true,\n\tPUT: true\n} as const\n\nconst mapRoutes = (app: AnyElysia) => {\n\tif (!app.config.aot || !app.config.systemRouter) return undefined\n\n\tconst routes = <Record<string, Function | Record<string, unknown>>>{}\n\n\tconst add = (\n\t\troute: {\n\t\t\tpath: string\n\t\t\tmethod: string\n\t\t},\n\t\thandler: Function\n\t) => {\n\t\tconst path = encodeURI(route.path)\n\n\t\tif (routes[path]) {\n\t\t\t// @ts-ignore\n\t\t\tif (!routes[path][route.method])\n\t\t\t\t// @ts-ignore\n\t\t\t\troutes[path][route.method] = handler\n\t\t} else\n\t\t\troutes[path] = {\n\t\t\t\t[route.method]: handler\n\t\t\t}\n\t}\n\n\t// @ts-expect-error\n\tconst tree = app.routeTree\n\n\tfor (const route of app.router.history) {\n\t\tif (typeof route.handler !== 'function') continue\n\n\t\tconst method = route.method\n\n\t\tif (\n\t\t\t(method === 'GET' && `WS_${route.path}` in tree) ||\n\t\t\tmethod === 'WS' ||\n\t\t\troute.path.charCodeAt(route.path.length - 1) === 42 ||\n\t\t\t!(method in supportedMethods)\n\t\t)\n\t\t\tcontinue\n\n\t\tif (method === 'ALL') {\n\t\t\tif (!(`WS_${route.path}` in tree))\n\t\t\t\troutes[route.path] = route.hooks?.config?.mount\n\t\t\t\t\t? route.hooks.trace ||\n\t\t\t\t\t\tapp.event.trace ||\n\t\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\t\tapp.extender.higherOrderFunctions\n\t\t\t\t\t\t? createBunRouteHandler(app, route)\n\t\t\t\t\t\t: route.hooks.mount || route.handler\n\t\t\t\t\t: route.handler\n\n\t\t\tcontinue\n\t\t}\n\n\t\tlet compiled: Function\n\n\t\tconst handler = app.config.precompile\n\t\t\t? createBunRouteHandler(app, route)\n\t\t\t: (request: Request) => {\n\t\t\t\t\tif (compiled) return compiled(request)\n\n\t\t\t\t\treturn (compiled = createBunRouteHandler(app, route))(\n\t\t\t\t\t\trequest\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\tfor (const path of getPossibleParams(route.path))\n\t\t\tadd(\n\t\t\t\t{\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath\n\t\t\t\t},\n\t\t\t\thandler\n\t\t\t)\n\t}\n\n\treturn routes\n}\n\ntype Routes = Record<string, Function | Response | Record<string, unknown>>\n\nconst mergeRoutes = (r1: Routes, r2?: Routes) => {\n\tif (!r2) return r1\n\n\tfor (const key of Object.keys(r2)) {\n\t\tif (r1[key] === r2[key]) continue\n\n\t\tif (!r1[key]) {\n\t\t\tr1[key] = r2[key]\n\t\t\tcontinue\n\t\t}\n\n\t\tif (r1[key] && r2[key]) {\n\t\t\tif (typeof r1[key] === 'function' || r1[key] instanceof Response) {\n\t\t\t\tr1[key] = r2[key]\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tr1[key] = {\n\t\t\t\t...r1[key],\n\t\t\t\t...r2[key]\n\t\t\t}\n\t\t}\n\t}\n\n\treturn r1\n}\n\nexport const BunAdapter: ElysiaAdapter = {\n\t...WebStandardAdapter,\n\tname: 'bun',\n\thandler: {\n\t\tmapResponse,\n\t\tmapEarlyResponse,\n\t\tmapCompactResponse,\n\t\tcreateStaticHandler,\n\t\tcreateNativeStaticHandler\n\t},\n\tcomposeHandler: {\n\t\t...WebStandardAdapter.composeHandler,\n\t\theaders: hasHeaderShorthand\n\t\t\t? 'c.headers=c.request.headers.toJSON()\\n'\n\t\t\t: 'c.headers={}\\n' +\n\t\t\t\t'for(const [k,v] of c.request.headers.entries())' +\n\t\t\t\t'c.headers[k]=v\\n'\n\t},\n\tlisten(app) {\n\t\treturn (options, callback) => {\n\t\t\tif (typeof Bun === 'undefined')\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'.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'\n\t\t\t\t)\n\n\t\t\tapp.compile()\n\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tif (!isNumericString(options))\n\t\t\t\t\tthrow new Error('Port must be a numeric value')\n\n\t\t\t\toptions = parseInt(options)\n\t\t\t}\n\n\t\t\tconst createStaticRoute = <\n\t\t\t\tWithAsync extends boolean | undefined = false\n\t\t\t>(\n\t\t\t\titerator: AnyElysia['router']['response'],\n\t\t\t\t{ withAsync = false }: { withAsync?: WithAsync } = {}\n\t\t\t): true extends WithAsync\n\t\t\t\t? Promise<{\n\t\t\t\t\t\t[path: string]:\n\t\t\t\t\t\t\t| Response\n\t\t\t\t\t\t\t| { [method: string]: Response }\n\t\t\t\t\t}>\n\t\t\t\t: {\n\t\t\t\t\t\t[path: string]:\n\t\t\t\t\t\t\t| Response\n\t\t\t\t\t\t\t| { [method: string]: Response }\n\t\t\t\t\t} => {\n\t\t\t\tconst staticRoutes = <\n\t\t\t\t\t{\n\t\t\t\t\t\t[path: string]:\n\t\t\t\t\t\t\t| Response\n\t\t\t\t\t\t\t| { [method: string]: Response }\n\t\t\t\t\t}\n\t\t\t\t>{}\n\t\t\t\tconst ops = <Promise<any>[]>[]\n\n\t\t\t\tfor (let [path, route] of Object.entries(iterator)) {\n\t\t\t\t\tpath = encodeURI(path)\n\n\t\t\t\t\tif (supportPerMethodInlineHandler) {\n\t\t\t\t\t\tif (!route) continue\n\n\t\t\t\t\t\tfor (const [method, value] of Object.entries(route)) {\n\t\t\t\t\t\t\tif (!value || !(method in supportedMethods))\n\t\t\t\t\t\t\t\tcontinue\n\n\t\t\t\t\t\t\tif (value instanceof Promise) {\n\t\t\t\t\t\t\t\tif (withAsync) {\n\t\t\t\t\t\t\t\t\tif (!staticRoutes[path])\n\t\t\t\t\t\t\t\t\t\tstaticRoutes[path] = {}\n\n\t\t\t\t\t\t\t\t\tops.push(\n\t\t\t\t\t\t\t\t\t\tvalue.then((awaited) => {\n\t\t\t\t\t\t\t\t\t\t\tif (awaited instanceof Response)\n\t\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\t\tstaticRoutes[path][method] =\n\t\t\t\t\t\t\t\t\t\t\t\t\tawaited\n\n\t\t\t\t\t\t\t\t\t\t\tif (isHTMLBundle(awaited))\n\t\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\t\tstaticRoutes[path][method] =\n\t\t\t\t\t\t\t\t\t\t\t\t\tawaited\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!(value instanceof Response) &&\n\t\t\t\t\t\t\t\t!isHTMLBundle(value)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tcontinue\n\n\t\t\t\t\t\t\tif (!staticRoutes[path]) staticRoutes[path] = {}\n\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tstaticRoutes[path][method] = value\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!route) continue\n\n\t\t\t\t\t\tif (route instanceof Promise) {\n\t\t\t\t\t\t\tif (withAsync) {\n\t\t\t\t\t\t\t\tif (!staticRoutes[path]) staticRoutes[path] = {}\n\n\t\t\t\t\t\t\t\tops.push(\n\t\t\t\t\t\t\t\t\troute.then((awaited) => {\n\t\t\t\t\t\t\t\t\t\tif (awaited instanceof Response)\n\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\tstaticRoutes[path] = awaited\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!(route instanceof Response)) continue\n\n\t\t\t\t\t\tstaticRoutes[path] = route\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (withAsync)\n\t\t\t\t\treturn Promise.all(ops).then(() => staticRoutes) as any\n\n\t\t\t\treturn staticRoutes as any\n\t\t\t}\n\n\t\t\tconst serve =\n\t\t\t\ttypeof options === 'object'\n\t\t\t\t\t? ({\n\t\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t\treusePort: true,\n\t\t\t\t\t\t\tidleTimeout: 30,\n\t\t\t\t\t\t\t...(app.config.serve || {}),\n\t\t\t\t\t\t\t...(options || {}),\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\troutes: mergeRoutes(\n\t\t\t\t\t\t\t\tmergeRoutes(\n\t\t\t\t\t\t\t\t\tcreateStaticRoute(app.router.response),\n\t\t\t\t\t\t\t\t\tmapRoutes(app)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tapp.config.serve?.routes\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\twebsocket: {\n\t\t\t\t\t\t\t\t...(app.config.websocket || {}),\n\t\t\t\t\t\t\t\t...(websocket || {}),\n\t\t\t\t\t\t\t\t...(options.websocket || {})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfetch: app.fetch\n\t\t\t\t\t\t} as Serve)\n\t\t\t\t\t: ({\n\t\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t\treusePort: true,\n\t\t\t\t\t\t\tidleTimeout: 30,\n\t\t\t\t\t\t\t...(app.config.serve || {}),\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\troutes: mergeRoutes(\n\t\t\t\t\t\t\t\tmergeRoutes(\n\t\t\t\t\t\t\t\t\tcreateStaticRoute(app.router.response),\n\t\t\t\t\t\t\t\t\tmapRoutes(app)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tapp.config.serve?.routes\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\twebsocket: {\n\t\t\t\t\t\t\t\t...(app.config.websocket || {}),\n\t\t\t\t\t\t\t\t...(websocket || {})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tport: options,\n\t\t\t\t\t\t\tfetch: app.fetch\n\t\t\t\t\t\t} as Serve)\n\n\t\t\tapp.server = Bun.serve(serve as any) as any\n\n\t\t\tif (app.event.start)\n\t\t\t\tfor (let i = 0; i < app.event.start.length; i++)\n\t\t\t\t\tapp.event.start[i].fn(app)\n\n\t\t\tif (callback) callback(app.server!)\n\n\t\t\tprocess.on('beforeExit', async () => {\n\t\t\t\tif (app.server) {\n\t\t\t\t\tawait app.server.stop?.()\n\t\t\t\t\tapp.server = null\n\n\t\t\t\t\tif (app.event.stop)\n\t\t\t\t\t\tfor (let i = 0; i < app.event.stop.length; i++)\n\t\t\t\t\t\t\tapp.event.stop[i].fn(app)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// @ts-expect-error private\n\t\t\tapp.promisedModules.then(async () => {\n\t\t\t\tapp.server?.reload({\n\t\t\t\t\t...serve,\n\t\t\t\t\tfetch: app.fetch,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\troutes: mergeRoutes(\n\t\t\t\t\t\tmergeRoutes(\n\t\t\t\t\t\t\tawait createStaticRoute(app.router.response, {\n\t\t\t\t\t\t\t\twithAsync: true\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tmapRoutes(app)\n\t\t\t\t\t\t),\n\t\t\t\t\t\tapp.config.serve?.routes\n\t\t\t\t\t)\n\t\t\t\t})\n\n\t\t\t\tBun?.gc(false)\n\t\t\t})\n\t\t}\n\t},\n\tasync stop(app, closeActiveConnections) {\n\t\tif (app.server) {\n\t\t\tawait app.server.stop(closeActiveConnections)\n\t\t\tapp.server = null\n\n\t\t\tif (app.event.stop?.length)\n\t\t\t\tfor (let i = 0; i < app.event.stop.length; i++)\n\t\t\t\t\tapp.event.stop[i].fn(app)\n\t\t} else\n\t\t\tconsole.log(\n\t\t\t\t\"Elysia isn't running. Call `app.listen` to start the server.\",\n\t\t\t\tnew Error().stack\n\t\t\t)\n\t},\n\tws(app, path, options) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconst { parse, body, response, ...rest } = options\n\n\t\tconst validateMessage = getSchemaValidator(body, {\n\t\t\t// @ts-expect-error private property\n\t\t\tmodules: app.definitions.typebox,\n\t\t\t// @ts-expect-error private property\n\t\t\tmodels: app.definitions.type as Record<string, TSchema>,\n\t\t\tnormalize: app.config.normalize\n\t\t})\n\n\t\tconst validateResponse = getSchemaValidator(response as any, {\n\t\t\t// @ts-expect-error private property\n\t\t\tmodules: app.definitions.typebox,\n\t\t\t// @ts-expect-error private property\n\t\t\tmodels: app.definitions.type as Record<string, TSchema>,\n\t\t\tnormalize: app.config.normalize\n\t\t})\n\n\t\tapp.route(\n\t\t\t'WS',\n\t\t\tpath as any,\n\t\t\tasync (context: any) => {\n\t\t\t\tconst server =\n\t\t\t\t\t(context.server as (typeof app)['server']) ?? app.server\n\n\t\t\t\t// ! Enable static code analysis just in case resolveUnknownFunction doesn't work, do not remove\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\tconst { set, path, qi, headers, query, params } = context\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tcontext.validator = validateResponse\n\n\t\t\t\tif (options.upgrade) {\n\t\t\t\t\tif (typeof options.upgrade === 'function') {\n\t\t\t\t\t\tconst temp = options.upgrade(context as any)\n\t\t\t\t\t\tif (temp instanceof Promise) await temp\n\t\t\t\t\t} else if (options.upgrade)\n\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\tset.headers,\n\t\t\t\t\t\t\toptions.upgrade as Record<string, any>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif (set.cookie && isNotEmpty(set.cookie)) {\n\t\t\t\t\tconst cookie = serializeCookie(set.cookie)\n\n\t\t\t\t\tif (cookie) set.headers['set-cookie'] = cookie\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tset.headers['set-cookie'] &&\n\t\t\t\t\tArray.isArray(set.headers['set-cookie'])\n\t\t\t\t)\n\t\t\t\t\tset.headers = parseSetCookies(\n\t\t\t\t\t\tnew Headers(set.headers as any) as Headers,\n\t\t\t\t\t\tset.headers['set-cookie']\n\t\t\t\t\t) as any\n\n\t\t\t\tconst handleResponse = createHandleWSResponse(validateResponse)\n\t\t\t\tconst parseMessage = createWSMessageParser(parse as any)\n\n\t\t\t\tlet _id: string | undefined\n\n\t\t\t\tif (typeof options.beforeHandle === 'function') {\n\t\t\t\t\tconst result = options.beforeHandle(context)\n\t\t\t\t\tif (result instanceof Promise) await result\n\t\t\t\t}\n\n\t\t\t\tconst errorHandlers = [\n\t\t\t\t\t...(options.error\n\t\t\t\t\t\t? Array.isArray(options.error)\n\t\t\t\t\t\t\t? options.error\n\t\t\t\t\t\t\t: [options.error]\n\t\t\t\t\t\t: []),\n\t\t\t\t\t...(app.event.error ?? []).map((x) =>\n\t\t\t\t\t\ttypeof x === 'function' ? x : x.fn\n\t\t\t\t\t)\n\t\t\t\t].filter((x) => x)\n\n\t\t\t\tconst hasCustomErrorHandlers = errorHandlers.length > 0\n\n\t\t\t\tconst handleErrors = !hasCustomErrorHandlers\n\t\t\t\t\t? () => {}\n\t\t\t\t\t: async (ws: ServerWebSocket<any>, error: unknown) => {\n\t\t\t\t\t\t\tfor (const handleError of errorHandlers) {\n\t\t\t\t\t\t\t\tlet response = handleError(\n\t\t\t\t\t\t\t\t\tObject.assign(context, { error })\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif (response instanceof Promise)\n\t\t\t\t\t\t\t\t\tresponse = await response\n\n\t\t\t\t\t\t\t\tawait handleResponse(ws, response)\n\n\t\t\t\t\t\t\t\tif (response) break\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tserver?.upgrade(context.request, {\n\t\t\t\t\t\theaders: isNotEmpty(set.headers)\n\t\t\t\t\t\t\t? (set.headers as Record<string, string>)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\tget id() {\n\t\t\t\t\t\t\t\tif (_id) return _id\n\n\t\t\t\t\t\t\t\treturn (_id = randomId())\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvalidator: validateResponse,\n\t\t\t\t\t\t\tping(ws: ServerWebSocket<any>, data?: unknown) {\n\t\t\t\t\t\t\t\toptions.ping?.(ws as any, data)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpong(ws: ServerWebSocket<any>, data?: unknown) {\n\t\t\t\t\t\t\t\toptions.pong?.(ws as any, data)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\topen: async (ws: ServerWebSocket<any>) => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait handleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.open?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(ws, context as any)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmessage: async (\n\t\t\t\t\t\t\t\tws: ServerWebSocket<any>,\n\t\t\t\t\t\t\t\t_message: any\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst message = await parseMessage(ws, _message)\n\n\t\t\t\t\t\t\t\tif (validateMessage?.Check(message) === false) {\n\t\t\t\t\t\t\t\t\tconst validationError = new ValidationError(\n\t\t\t\t\t\t\t\t\t\t'message',\n\t\t\t\t\t\t\t\t\t\tvalidateMessage,\n\t\t\t\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\t\tif (!hasCustomErrorHandlers) {\n\t\t\t\t\t\t\t\t\t\treturn void ws.send(\n\t\t\t\t\t\t\t\t\t\t\tvalidationError.message as string\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn handleErrors(ws, validationError)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait handleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.message?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(\n\t\t\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\t\t\tcontext as any,\n\t\t\t\t\t\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tmessage as any\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdrain: async (ws: ServerWebSocket<any>) => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait handleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.drain?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(ws, context as any)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclose: async (\n\t\t\t\t\t\t\t\tws: ServerWebSocket<any>,\n\t\t\t\t\t\t\t\tcode: number,\n\t\t\t\t\t\t\t\treason: string\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait handleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.close?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(ws, context as any),\n\t\t\t\t\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t\t\t\t\t\treason\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t\treturn\n\n\t\t\t\tset.status = 400\n\t\t\t\treturn 'Expected a websocket connection'\n\t\t\t},\n\t\t\t{\n\t\t\t\t...rest,\n\t\t\t\twebsocket: options\n\t\t\t} as any\n\t\t)\n\t}\n}\n",
33
33
  "import type { AnyElysia, CookieOptions } from './index'\n\nimport { TransformDecodeError } from '@sinclair/typebox/value'\nimport { TypeCheck } from './type-system'\n\nimport type { Context } from './context'\nimport type { ElysiaTypeCheck } from './schema'\n\nimport {\n\tElysiaCustomStatusResponse,\n\tElysiaErrors,\n\tstatus,\n\tNotFoundError,\n\tValidationError\n} from './error'\n\nimport { parseQuery } from './parse-query'\n\nimport { redirect, signCookie, StatusMap } from './utils'\nimport { parseCookie } from './cookies'\n\nimport type { Handler, LifeCycleStore, SchemaValidator } from './types'\n\n// JIT Handler\nexport type DynamicHandler = {\n\thandle: unknown | Handler<any, any>\n\tcontent?: string\n\thooks: Partial<LifeCycleStore>\n\tvalidator?: SchemaValidator\n\troute: string\n}\n\nconst injectDefaultValues = (\n\ttypeChecker: TypeCheck<any> | ElysiaTypeCheck<any>,\n\tobj: Record<string, any>\n) => {\n\t// @ts-expect-error private property\n\tlet schema = typeChecker.schema\n\tif (!schema) return\n\n\tif (schema.$defs?.[schema.$ref]) schema = schema.$defs[schema.$ref]\n\n\tif (!schema?.properties) return\n\n\tfor (const [key, keySchema] of Object.entries(schema.properties)) {\n\t\t// @ts-expect-error private\n\t\tobj[key] ??= keySchema.default\n\t}\n}\n\nexport const createDynamicHandler = (app: AnyElysia) => {\n\tconst { mapResponse, mapEarlyResponse } = app['~adapter'].handler\n\n\t// @ts-ignore\n\tconst defaultHeader = app.setHeaders\n\n\treturn async (request: Request): Promise<Response> => {\n\t\tconst url = request.url,\n\t\t\ts = url.indexOf('/', 11),\n\t\t\tqi = url.indexOf('?', s + 1),\n\t\t\tpath = qi === -1 ? url.substring(s) : url.substring(s, qi)\n\n\t\tconst set: Context['set'] = {\n\t\t\tcookie: {},\n\t\t\tstatus: 200,\n\t\t\theaders: defaultHeader ? { ...defaultHeader } : {}\n\t\t}\n\n\t\tconst context = Object.assign(\n\t\t\t{},\n\t\t\t// @ts-expect-error\n\t\t\tapp.singleton.decorator,\n\t\t\t{\n\t\t\t\tset,\n\t\t\t\t// @ts-expect-error\n\t\t\t\tstore: app.singleton.store,\n\t\t\t\trequest,\n\t\t\t\tpath,\n\t\t\t\tqi,\n\t\t\t\terror: status,\n\t\t\t\tstatus,\n\t\t\t\tredirect\n\t\t\t}\n\t\t) as unknown as Context & {\n\t\t\tresponse: unknown\n\t\t}\n\n\t\ttry {\n\t\t\tif (app.event.request)\n\t\t\t\tfor (let i = 0; i < app.event.request.length; i++) {\n\t\t\t\t\tconst onRequest = app.event.request[i].fn\n\t\t\t\t\tlet response = onRequest(context as any)\n\t\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\t\tresponse = mapEarlyResponse(response, set)\n\t\t\t\t\tif (response) return (context.response = response)\n\t\t\t\t}\n\n\t\t\tconst isWS =\n\t\t\t\trequest.method === 'GET' &&\n\t\t\t\trequest.headers.get('upgrade')?.toLowerCase() === 'websocket'\n\n\t\t\tconst methodKey = isWS ? 'WS' : request.method\n\n\t\t\tconst handler =\n\t\t\t\tapp.router.dynamic.find(request.method, path) ??\n\t\t\t\tapp.router.dynamic.find(methodKey, path) ??\n\t\t\t\tapp.router.dynamic.find('ALL', path)\n\n\t\t\tif (!handler) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tcontext.query =\n\t\t\t\t\tqi === -1 ? {} : parseQuery(url.substring(qi + 1))\n\n\t\t\t\tthrow new NotFoundError()\n\t\t\t}\n\n\t\t\tconst { handle, hooks, validator, content, route } = handler.store\n\n\t\t\tlet body: string | Record<string, any> | undefined\n\t\t\tif (request.method !== 'GET' && request.method !== 'HEAD') {\n\t\t\t\tif (content) {\n\t\t\t\t\tswitch (content) {\n\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\tbody = (await request.json()) as any\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\tbody = await request.text()\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\tbody = parseQuery(await request.text())\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\tbody = await request.arrayBuffer()\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\tbody = {}\n\n\t\t\t\t\t\t\tconst form = await request.formData()\n\t\t\t\t\t\t\tfor (const key of form.keys()) {\n\t\t\t\t\t\t\t\tif (body[key]) continue\n\n\t\t\t\t\t\t\t\tconst value = form.getAll(key)\n\t\t\t\t\t\t\t\tif (value.length === 1) body[key] = value[0]\n\t\t\t\t\t\t\t\telse body[key] = value\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet contentType\n\t\t\t\t\tif (request.body)\n\t\t\t\t\t\tcontentType = request.headers.get('content-type')\n\n\t\t\t\t\tif (contentType) {\n\t\t\t\t\t\tconst index = contentType.indexOf(';')\n\t\t\t\t\t\tif (index !== -1)\n\t\t\t\t\t\t\tcontentType = contentType.slice(0, index)\n\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tcontext.contentType = contentType\n\n\t\t\t\t\t\tif (hooks.parse)\n\t\t\t\t\t\t\tfor (let i = 0; i < hooks.parse.length; i++) {\n\t\t\t\t\t\t\t\tconst hook = hooks.parse[i].fn\n\n\t\t\t\t\t\t\t\tif (typeof hook === 'string')\n\t\t\t\t\t\t\t\t\tswitch (hook) {\n\t\t\t\t\t\t\t\t\t\tcase 'json':\n\t\t\t\t\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\t\t\t\t\tbody = (await request.json()) as any\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\t\t\t\t\tbody = await request.text()\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\t\t\tcase 'urlencoded':\n\t\t\t\t\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\t\t\t\t\tbody = parseQuery(\n\t\t\t\t\t\t\t\t\t\t\t\tawait request.text()\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\t\t\t\t\tbody = await request.arrayBuffer()\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\t\t\tcase 'formdata':\n\t\t\t\t\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\t\t\t\t\tbody = {}\n\n\t\t\t\t\t\t\t\t\t\t\tconst form =\n\t\t\t\t\t\t\t\t\t\t\t\tawait request.formData()\n\t\t\t\t\t\t\t\t\t\t\tfor (const key of form.keys()) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (body[key]) continue\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = form.getAll(key)\n\t\t\t\t\t\t\t\t\t\t\t\tif (value.length === 1)\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody[key] = value[0]\n\t\t\t\t\t\t\t\t\t\t\t\telse body[key] = value\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tconst parser = app['~parser'][hook]\n\t\t\t\t\t\t\t\t\t\t\tif (parser) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet temp = parser(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontext as any,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontentType\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\tif (temp instanceof Promise)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttemp = await temp\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (temp) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody = temp\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet temp = hook(context as any, contentType)\n\t\t\t\t\t\t\t\t\tif (temp instanceof Promise)\n\t\t\t\t\t\t\t\t\t\ttemp = await temp\n\n\t\t\t\t\t\t\t\t\tif (temp) {\n\t\t\t\t\t\t\t\t\t\tbody = temp\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tdelete context.contentType\n\n\t\t\t\t\t\t// body might be empty string thus can't use !body\n\t\t\t\t\t\tif (body === undefined) {\n\t\t\t\t\t\t\tswitch (contentType) {\n\t\t\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\t\t\tbody = (await request.json()) as any\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\t\t\tbody = await request.text()\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\t\t\tbody = parseQuery(await request.text())\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\t\t\tbody = await request.arrayBuffer()\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\t\t\tbody = {}\n\n\t\t\t\t\t\t\t\t\tconst form = await request.formData()\n\t\t\t\t\t\t\t\t\tfor (const key of form.keys()) {\n\t\t\t\t\t\t\t\t\t\tif (body[key]) continue\n\n\t\t\t\t\t\t\t\t\t\tconst value = form.getAll(key)\n\t\t\t\t\t\t\t\t\t\tif (value.length === 1)\n\t\t\t\t\t\t\t\t\t\t\tbody[key] = value[0]\n\t\t\t\t\t\t\t\t\t\telse body[key] = value\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontext.route = route\n\t\t\tcontext.body = body\n\t\t\tcontext.params = handler?.params || undefined\n\n\t\t\t// @ts-ignore\n\t\t\tcontext.query = qi === -1 ? {} : parseQuery(url.substring(qi + 1))\n\n\t\t\tcontext.headers = {}\n\t\t\tfor (const [key, value] of request.headers.entries())\n\t\t\t\tcontext.headers[key] = value\n\n\t\t\tconst cookieMeta = {\n\t\t\t\tdomain:\n\t\t\t\t\tapp.config.cookie?.domain ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.domain,\n\t\t\t\texpires:\n\t\t\t\t\tapp.config.cookie?.expires ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.expires,\n\t\t\t\thttpOnly:\n\t\t\t\t\tapp.config.cookie?.httpOnly ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.httpOnly,\n\t\t\t\tmaxAge:\n\t\t\t\t\tapp.config.cookie?.maxAge ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.maxAge,\n\t\t\t\t// @ts-ignore\n\t\t\t\tpath: app.config.cookie?.path ?? validator?.cookie?.config.path,\n\t\t\t\tpriority:\n\t\t\t\t\tapp.config.cookie?.priority ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.priority,\n\t\t\t\tpartitioned:\n\t\t\t\t\tapp.config.cookie?.partitioned ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.partitioned,\n\t\t\t\tsameSite:\n\t\t\t\t\tapp.config.cookie?.sameSite ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.sameSite,\n\t\t\t\tsecure:\n\t\t\t\t\tapp.config.cookie?.secure ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.secure,\n\t\t\t\tsecrets:\n\t\t\t\t\tapp.config.cookie?.secrets ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvalidator?.cookie?.config.secrets,\n\t\t\t\t// @ts-ignore\n\t\t\t\tsign: app.config.cookie?.sign ?? validator?.cookie?.config.sign\n\t\t\t} as CookieOptions & {\n\t\t\t\tsign?: true | string | string[]\n\t\t\t}\n\n\t\t\tconst cookieHeaderValue = request.headers.get('cookie')\n\n\t\t\tcontext.cookie = (await parseCookie(\n\t\t\t\tcontext.set,\n\t\t\t\tcookieHeaderValue,\n\t\t\t\tcookieMeta\n\t\t\t)) as any\n\n\t\t\tconst headerValidator = validator?.createHeaders?.()\n\t\t\tif (headerValidator)\n\t\t\t\tinjectDefaultValues(headerValidator, context.headers)\n\n\t\t\tconst paramsValidator = validator?.createParams?.()\n\t\t\tif (paramsValidator)\n\t\t\t\tinjectDefaultValues(paramsValidator, context.params)\n\n\t\t\tconst queryValidator = validator?.createQuery?.()\n\t\t\tif (queryValidator)\n\t\t\t\tinjectDefaultValues(queryValidator, context.query)\n\n\t\t\tif (hooks.transform)\n\t\t\t\tfor (let i = 0; i < hooks.transform.length; i++) {\n\t\t\t\t\tconst hook = hooks.transform[i]\n\t\t\t\t\tlet response = hook.fn(context)\n\n\t\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\t\t// @ts-ignore jusut in case\n\t\t\t\t\tif (response instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\t\tconst result = mapEarlyResponse(response, context.set)\n\t\t\t\t\t\tif (result)\n\t\t\t\t\t\t\treturn (context.response = result) as Response\n\t\t\t\t\t}\n\n\t\t\t\t\tif (hook.subType === 'derive')\n\t\t\t\t\t\tObject.assign(context, response)\n\t\t\t\t}\n\n\t\t\tif (validator) {\n\t\t\t\tif (headerValidator) {\n\t\t\t\t\tconst _header = structuredClone(context.headers)\n\t\t\t\t\tfor (const [key, value] of request.headers)\n\t\t\t\t\t\t_header[key] = value\n\n\t\t\t\t\tif (validator.headers!.Check(_header) === false)\n\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t'header',\n\t\t\t\t\t\t\tvalidator.headers!,\n\t\t\t\t\t\t\t_header\n\t\t\t\t\t\t)\n\t\t\t\t} else if (validator.headers?.Decode)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcontext.headers = validator.headers.Decode(context.headers)\n\n\t\t\t\tif (paramsValidator?.Check(context.params) === false) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t'params',\n\t\t\t\t\t\tvalidator.params!,\n\t\t\t\t\t\tcontext.params\n\t\t\t\t\t)\n\t\t\t\t} else if (validator.params?.Decode)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcontext.params = validator.params.Decode(context.params)\n\n\t\t\t\tif (validator.query?.schema) {\n\t\t\t\t\tlet schema = validator.query.schema\n\t\t\t\t\tif (schema.$defs?.[schema.$ref])\n\t\t\t\t\t\tschema = schema.$defs[schema.$ref]\n\n\t\t\t\t\tconst properties = schema.properties\n\n\t\t\t\t\tfor (const property of Object.keys(properties)) {\n\t\t\t\t\t\tconst value = properties[property]\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(value.type === 'array' ||\n\t\t\t\t\t\t\t\tvalue.items?.type === 'string') &&\n\t\t\t\t\t\t\ttypeof context.query[property] === 'string' &&\n\t\t\t\t\t\t\tcontext.query[property]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcontext.query[property] =\n\t\t\t\t\t\t\t\tcontext.query[property].split(',')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (queryValidator?.Check(context.query) === false)\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t'query',\n\t\t\t\t\t\tvalidator.query!,\n\t\t\t\t\t\tcontext.query\n\t\t\t\t\t)\n\t\t\t\telse if (validator.query?.Decode)\n\t\t\t\t\tcontext.query = validator.query.Decode(context.query) as any\n\n\t\t\t\tif (validator.createCookie?.()) {\n\t\t\t\t\tlet cookieValue: Record<string, unknown> = {}\n\t\t\t\t\tfor (const [key, value] of Object.entries(context.cookie))\n\t\t\t\t\t\tcookieValue[key] = value.value\n\n\t\t\t\t\tif (validator.cookie!.Check(cookieValue) === false)\n\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t'cookie',\n\t\t\t\t\t\t\tvalidator.cookie!,\n\t\t\t\t\t\t\tcookieValue\n\t\t\t\t\t\t)\n\t\t\t\t\telse if (validator.cookie?.Decode)\n\t\t\t\t\t\tcookieValue = validator.cookie.Decode(\n\t\t\t\t\t\t\tcookieValue\n\t\t\t\t\t\t) as any\n\t\t\t\t}\n\n\t\t\t\tif (validator.createBody?.()?.Check(body) === false)\n\t\t\t\t\tthrow new ValidationError('body', validator.body!, body)\n\t\t\t\telse if (validator.body?.Decode)\n\t\t\t\t\tcontext.body = validator.body.Decode(body) as any\n\t\t\t}\n\n\t\t\tif (hooks.beforeHandle)\n\t\t\t\tfor (let i = 0; i < hooks.beforeHandle.length; i++) {\n\t\t\t\t\tconst hook = hooks.beforeHandle[i]\n\t\t\t\t\tlet response = hook.fn(context)\n\t\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\t\tif (response instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\t\tconst result = mapEarlyResponse(response, context.set)\n\t\t\t\t\t\tif (result)\n\t\t\t\t\t\t\treturn (context.response = result) as Response\n\t\t\t\t\t}\n\n\t\t\t\t\tif (hook.subType === 'resolve') {\n\t\t\t\t\t\tObject.assign(context, response)\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\t// `false` is a falsey value, check for undefined instead\n\t\t\t\t\tif (response !== undefined) {\n\t\t\t\t\t\t;(\n\t\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t).response = response\n\n\t\t\t\t\t\tif (hooks.afterHandle)\n\t\t\t\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\t\t\t\tlet newResponse = hooks.afterHandle[i].fn(\n\t\t\t\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif (newResponse instanceof Promise)\n\t\t\t\t\t\t\t\t\tnewResponse = await newResponse\n\n\t\t\t\t\t\t\t\tif (newResponse) response = newResponse\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst result = mapEarlyResponse(response, context.set)\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tif (result) return (context.response = result)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tlet response =\n\t\t\t\ttypeof handle === 'function' ? handle(context) : handle\n\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\tif (!hooks.afterHandle?.length) {\n\t\t\t\tconst isCustomStatuResponse =\n\t\t\t\t\tresponse instanceof ElysiaCustomStatusResponse\n\n\t\t\t\tconst status = isCustomStatuResponse\n\t\t\t\t\t? response.code\n\t\t\t\t\t: set.status\n\t\t\t\t\t\t? typeof set.status === 'string'\n\t\t\t\t\t\t\t? StatusMap[set.status]\n\t\t\t\t\t\t\t: set.status\n\t\t\t\t\t\t: 200\n\n\t\t\t\tif (isCustomStatuResponse) {\n\t\t\t\t\tset.status = status\n\t\t\t\t\tresponse = response.response\n\t\t\t\t}\n\n\t\t\t\tconst responseValidator =\n\t\t\t\t\tvalidator?.createResponse?.()?.[status]\n\n\t\t\t\tif (responseValidator?.Check(response) === false) {\n\t\t\t\t\tif (responseValidator?.Clean) {\n\t\t\t\t\t\tconst temp = responseValidator.Clean(response)\n\t\t\t\t\t\tif (responseValidator?.Check(temp) === false)\n\t\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t\t'response',\n\t\t\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\tresponse = temp\n\t\t\t\t\t} else\n\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t'response',\n\t\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif (responseValidator?.Encode)\n\t\t\t\t\tresponse = responseValidator.Encode(response)\n\n\t\t\t\tif (responseValidator?.Clean)\n\t\t\t\t\tresponse = responseValidator.Clean(response)\n\t\t\t} else {\n\t\t\t\t;(\n\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t}\n\t\t\t\t).response = response\n\n\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\tlet response: unknown = hooks.afterHandle[i].fn(\n\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\t\tconst isCustomStatuResponse =\n\t\t\t\t\t\tresponse instanceof ElysiaCustomStatusResponse\n\n\t\t\t\t\tconst status = isCustomStatuResponse\n\t\t\t\t\t\t? (response as ElysiaCustomStatusResponse<any>).code\n\t\t\t\t\t\t: set.status\n\t\t\t\t\t\t\t? typeof set.status === 'string'\n\t\t\t\t\t\t\t\t? StatusMap[set.status]\n\t\t\t\t\t\t\t\t: set.status\n\t\t\t\t\t\t\t: 200\n\n\t\t\t\t\tif (isCustomStatuResponse) {\n\t\t\t\t\t\tset.status = status\n\t\t\t\t\t\tresponse = (response as ElysiaCustomStatusResponse<any>)\n\t\t\t\t\t\t\t.response\n\t\t\t\t\t}\n\n\t\t\t\t\tconst responseValidator =\n\t\t\t\t\t\tvalidator?.createResponse?.()?.[status]\n\n\t\t\t\t\tif (responseValidator?.Check(response) === false) {\n\t\t\t\t\t\tif (responseValidator?.Clean) {\n\t\t\t\t\t\t\tconst temp = responseValidator.Clean(response)\n\t\t\t\t\t\t\tif (responseValidator?.Check(temp) === false)\n\t\t\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t\t\t'response',\n\t\t\t\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tresponse = temp\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t\t'response',\n\t\t\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (responseValidator?.Encode)\n\t\t\t\t\t\tcontext.response = response =\n\t\t\t\t\t\t\tresponseValidator.Encode(response)\n\n\t\t\t\t\tif (responseValidator?.Clean)\n\t\t\t\t\t\tcontext.response = response =\n\t\t\t\t\t\t\tresponseValidator.Clean(response)\n\n\t\t\t\t\tconst result = mapEarlyResponse(response, context.set)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (result !== undefined) return (context.response = result)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (context.set.cookie && cookieMeta?.sign) {\n\t\t\t\tconst secret = !cookieMeta.secrets\n\t\t\t\t\t? undefined\n\t\t\t\t\t: typeof cookieMeta.secrets === 'string'\n\t\t\t\t\t\t? cookieMeta.secrets\n\t\t\t\t\t\t: cookieMeta.secrets[0]\n\n\t\t\t\tif (cookieMeta.sign === true) {\n\t\t\t\t\tif (secret)\n\t\t\t\t\t\tfor (const [key, cookie] of Object.entries(\n\t\t\t\t\t\t\tcontext.set.cookie\n\t\t\t\t\t\t))\n\t\t\t\t\t\t\tcontext.set.cookie[key].value = await signCookie(\n\t\t\t\t\t\t\t\tcookie.value as any,\n\t\t\t\t\t\t\t\tsecret\n\t\t\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tconst properties = validator?.cookie?.schema?.properties\n\n\t\t\t\t\tif (secret)\n\t\t\t\t\t\tfor (const name of cookieMeta.sign) {\n\t\t\t\t\t\t\tif (!(name in properties)) continue\n\n\t\t\t\t\t\t\tif (context.set.cookie[name]?.value) {\n\t\t\t\t\t\t\t\tcontext.set.cookie[name].value =\n\t\t\t\t\t\t\t\t\tawait signCookie(\n\t\t\t\t\t\t\t\t\t\tcontext.set.cookie[name].value as any,\n\t\t\t\t\t\t\t\t\t\tsecret\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// @ts-expect-error\n\t\t\treturn mapResponse((context.response = response), context.set)\n\t\t} catch (error) {\n\t\t\tconst reportedError =\n\t\t\t\terror instanceof TransformDecodeError && error.error\n\t\t\t\t\t? error.error\n\t\t\t\t\t: error\n\n\t\t\t// ? Since error is reconciled in mergeResponseWithHeaders, this is not needed (if I'm not drunk)\n\t\t\t// if ((reportedError as ElysiaErrors).status)\n\t\t\t// \tset.status = (reportedError as ElysiaErrors).status\n\n\t\t\t// @ts-expect-error private\n\t\t\treturn app.handleError(context, reportedError)\n\t\t} finally {\n\t\t\tif (app.event.afterResponse)\n\t\t\t\tsetImmediate(async () => {\n\t\t\t\t\tfor (const afterResponse of app.event.afterResponse!)\n\t\t\t\t\t\tawait afterResponse.fn(context as any)\n\t\t\t\t})\n\t\t}\n\t}\n}\n\nexport const createDynamicErrorHandler = (app: AnyElysia) => {\n\tconst { mapResponse } = app['~adapter'].handler\n\n\treturn async (\n\t\tcontext: Context & {\n\t\t\tresponse: unknown\n\t\t},\n\t\terror: ElysiaErrors\n\t) => {\n\t\tconst errorContext = Object.assign(context, { error, code: error.code })\n\t\terrorContext.set = context.set\n\n\t\tif (app.event.error)\n\t\t\tfor (let i = 0; i < app.event.error.length; i++) {\n\t\t\t\tconst hook = app.event.error[i]\n\t\t\t\tlet response = hook.fn(errorContext as any)\n\t\t\t\tif (response instanceof Promise) response = await response\n\t\t\t\tif (response !== undefined && response !== null)\n\t\t\t\t\treturn (context.response = mapResponse(\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\tcontext.set\n\t\t\t\t\t))\n\t\t\t}\n\n\t\treturn new Response(\n\t\t\ttypeof error.cause === 'string' ? error.cause : error.message,\n\t\t\t{\n\t\t\t\theaders: context.set.headers as any,\n\t\t\t\tstatus: error.status ?? 500\n\t\t\t}\n\t\t)\n\t}\n}\n"
34
34
  ],
35
- "mappings": ";0qBAEA,IAAI,YAAc,GACd,YAAc,EACd,UAAY,CAEd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAA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",
35
+ "mappings": ";0qBAEA,IAAI,YAAc,GACd,YAAc,EACd,UAAY,CAEd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAA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",
36
36
  "debugId": "20440DDF9673A3FB64756E2164756E21",
37
37
  "names": []
38
38
  }