elysia 0.6.21 → 0.6.22

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.
@@ -37,9 +37,9 @@
37
37
  "import { Memoirist } from 'memoirist'\nimport type {\n\tServerWebSocket,\n\tServerWebSocketSendStatus,\n\tWebSocketHandler\n} from 'bun'\n\nimport type { Elysia, Context } from '..'\n\nimport type { ElysiaWSContext } from './types'\nimport { ValidationError } from '../error'\n\nconst getPath = (url: string) => {\n\tconst start = url.indexOf('/', 10)\n\tconst end = url.indexOf('?', start)\n\n\tif (end === -1) return url.slice(start)\n\n\treturn url.slice(start, end)\n}\n\nexport class ElysiaWS<WS extends ElysiaWSContext> {\n\traw: WS\n\tdata: WS['data']\n\tisSubscribed: WS['isSubscribed']\n\n\tconstructor(ws: WS) {\n\t\tthis.raw = ws\n\t\tthis.data = ws.data\n\t\tthis.isSubscribed = ws.isSubscribed\n\t}\n\n\tpublish(\n\t\ttopic: string,\n\t\tdata: WS['data']['schema']['response'] = undefined as any,\n\t\tcompress?: boolean\n\t) {\n\t\t// @ts-ignore\n\t\tif (typeof data === 'object') data = JSON.stringify(data)\n\n\t\tthis.raw.publish(topic, data as unknown as string, compress)\n\n\t\treturn this\n\t}\n\n\tpublishToSelf(\n\t\ttopic: string,\n\t\tdata: WS['data']['schema']['response'] = undefined as any,\n\t\tcompress?: boolean\n\t) {\n\t\t// @ts-ignore\n\t\tif (typeof data === 'object') data = JSON.stringify(data)\n\n\t\tthis.raw.publish(topic, data as unknown as string, compress)\n\n\t\treturn this\n\t}\n\n\tsend(data: WS['data']['schema']['response']) {\n\t\t// @ts-ignore\n\t\tif (typeof data === 'object') data = JSON.stringify(data)\n\n\t\tthis.raw.send(data as unknown as string)\n\n\t\treturn this\n\t}\n\n\tsubscribe(room: string) {\n\t\tthis.raw.subscribe(room)\n\n\t\treturn this\n\t}\n\n\tunsubscribe(room: string) {\n\t\tthis.raw.unsubscribe(room)\n\n\t\treturn this\n\t}\n\n\tcork(callback: (ws: ServerWebSocket<any>) => any) {\n\t\tthis.raw.cork(callback)\n\n\t\treturn this\n\t}\n\n\tclose() {\n\t\tthis.raw.close()\n\n\t\treturn this\n\t}\n}\n\n/**\n * Register websocket config for Elysia\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia } from 'elysia'\n * import { websocket } from '@elysiajs/websocket'\n *\n * const app = new Elysia()\n * .use(websocket())\n * .ws('/ws', {\n * message: () => \"Hi\"\n * })\n * .listen(8080)\n * ```\n */\nexport const ws =\n\t(config?: Omit<WebSocketHandler, 'open' | 'message' | 'close' | 'drain'>) =>\n\t(app: Elysia) => {\n\t\t// @ts-ignore\n\t\tif (!app.wsRouter) app.wsRouter = new Memoirist()\n\n\t\t// @ts-ignore\n\t\tconst router = app.wsRouter!\n\n\t\tif (!app.config.serve)\n\t\t\tapp.config.serve = {\n\t\t\t\twebsocket: {\n\t\t\t\t\t...config,\n\t\t\t\t\topen(ws) {\n\t\t\t\t\t\tif (!ws.data) return\n\n\t\t\t\t\t\tconst url = getPath(\n\t\t\t\t\t\t\t(ws?.data as unknown as Context).request.url\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (!url) return\n\n\t\t\t\t\t\tconst route = router.find('subscribe', url)?.store\n\n\t\t\t\t\t\tif (route && route.open)\n\t\t\t\t\t\t\troute.open(new ElysiaWS(ws as any))\n\t\t\t\t\t},\n\t\t\t\t\tmessage(ws, message: any): void {\n\t\t\t\t\t\tif (!ws.data) return\n\n\t\t\t\t\t\tconst url = getPath(\n\t\t\t\t\t\t\t(ws?.data as unknown as Context).request.url\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (!url) return\n\n\t\t\t\t\t\tconst route = router.find('subscribe', url)?.store\n\t\t\t\t\t\tif (!route?.message) return\n\n\t\t\t\t\t\tmessage = message.toString()\n\t\t\t\t\t\tconst start = message.charCodeAt(0)\n\n\t\t\t\t\t\tif (start === 47 || start === 123)\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tmessage = JSON.parse(message)\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t// Not empty\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (!Number.isNaN(+message)) message = +message\n\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tlet i = 0;\n\t\t\t\t\t\t\ti <\n\t\t\t\t\t\t\t(ws.data as ElysiaWSContext['data'])\n\t\t\t\t\t\t\t\t.transformMessage.length;\n\t\t\t\t\t\t\ti++\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst temp: any = (\n\t\t\t\t\t\t\t\tws.data as ElysiaWSContext['data']\n\t\t\t\t\t\t\t).transformMessage[i](message)\n\n\t\t\t\t\t\t\tif (temp !== undefined) message = temp\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(ws.data as ElysiaWSContext['data']).message?.Check(\n\t\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\t) === false\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn void ws.send(\n\t\t\t\t\t\t\t\tnew ValidationError(\n\t\t\t\t\t\t\t\t\t'message',\n\t\t\t\t\t\t\t\t\t(ws.data as ElysiaWSContext['data'])\n\t\t\t\t\t\t\t\t\t\t.message as any,\n\t\t\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\t\t).cause as string\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\troute.message(new ElysiaWS(ws as any), message)\n\t\t\t\t\t},\n\t\t\t\t\tclose(ws, code, reason) {\n\t\t\t\t\t\tif (!ws.data) return\n\n\t\t\t\t\t\tconst url = getPath(\n\t\t\t\t\t\t\t(ws?.data as unknown as Context).request.url\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (!url) return\n\n\t\t\t\t\t\tconst route = router.find('subscribe', url)?.store\n\n\t\t\t\t\t\tif (route && route.close)\n\t\t\t\t\t\t\troute.close(new ElysiaWS(ws as any), code, reason)\n\t\t\t\t\t},\n\t\t\t\t\tdrain(ws) {\n\t\t\t\t\t\tif (!ws.data) return\n\n\t\t\t\t\t\tconst url = getPath(\n\t\t\t\t\t\t\t(ws?.data as unknown as Context).request.url\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (!url) return\n\n\t\t\t\t\t\tconst route = router.find('subscribe', url)?.store\n\n\t\t\t\t\t\tif (route && route.drain)\n\t\t\t\t\t\t\troute.drain(new ElysiaWS(ws as any))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\treturn app\n\t\t\t.decorate('publish', app.server?.publish as WSPublish)\n\t\t\t.onStart((app) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tapp.decorators.publish = app.server?.publish\n\t\t\t})\n\t}\n\ntype WSPublish = (\n\ttopic: string,\n\tdata: string | ArrayBufferView | ArrayBuffer | SharedArrayBuffer,\n\tcompress?: boolean\n) => ServerWebSocketSendStatus\n\nexport type {\n\tWSTypedSchema,\n\tWebSocketHeaderHandler,\n\tWebSocketSchemaToRoute,\n\tElysiaWSContext,\n\tElysiaWSOptions,\n\tTransformMessageHandler\n} from './types'\n",
38
38
  "import type { Elysia } from '.'\n\nimport {\n\tElysiaErrors,\n\tNotFoundError,\n\tValidationError,\n\tERROR_CODE\n} from './error'\nimport { mapEarlyResponse, mapResponse } from './handler'\n\nimport type { Context } from './context'\nimport type { Handler, RegisteredHook, SchemaValidator } from './types'\n\nimport { parse as parseQuery } from 'fast-querystring'\n\nexport type DynamicHandler = {\n\thandle: Handler<any, any>\n\tcontent?: string\n\thooks: RegisteredHook<any>\n\tvalidator?: SchemaValidator\n}\n\nexport const createDynamicHandler =\n\t(app: Elysia<any, any>) =>\n\tasync (request: Request): Promise<Response> => {\n\t\tconst set: Context['set'] = {\n\t\t\tstatus: 200,\n\t\t\theaders: {}\n\t\t}\n\n\t\tlet context: Context\n\n\t\t// @ts-ignore\n\t\tif (app.decorators) {\n\t\t\t// @ts-ignore\n\t\t\tcontext = app.decorators as any as Context\n\n\t\t\tcontext.request = request\n\t\t\tcontext.set = set\n\t\t\tcontext.store = app.store\n\t\t} else {\n\t\t\t// @ts-ignore\n\t\t\tcontext = {\n\t\t\t\tset,\n\t\t\t\tstore: app.store,\n\t\t\t\trequest\n\t\t\t}\n\t\t}\n\n\t\tconst url = request.url,\n\t\t\ts = url.indexOf('/', 11),\n\t\t\tq = url.indexOf('?', s + 1),\n\t\t\tpath = q === -1 ? url.substring(s) : url.substring(s, q)\n\n\t\ttry {\n\t\t\t// @ts-ignore\n\n\t\t\tfor (let i = 0; i < app.event.request.length; i++) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tconst onRequest = app.event.request[i]\n\t\t\t\tlet response = onRequest(context)\n\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\tresponse = mapEarlyResponse(response, set)\n\t\t\t\tif (response) return response\n\t\t\t}\n\n\t\t\tconst handler =\n\t\t\t\t// @ts-ignore\n\t\t\t\tapp.dynamicRouter.find(request.method, path) ??\n\t\t\t\t// @ts-ignore\n\t\t\t\tapp.dynamicRouter.find('ALL', path)\n\n\t\t\tif (!handler) throw new NotFoundError()\n\n\t\t\tconst { handle, hooks, validator, content } = handler.store\n\n\t\t\tlet body: string | Record<string, any> | undefined\n\t\t\tif (request.method !== 'GET') {\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()\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 = 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-ignore\n\t\t\t\t\t\tfor (let i = 0; i < app.event.parse.length; i++) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tlet temp = app.event.parse[i](context, contentType)\n\t\t\t\t\t\t\tif (temp instanceof Promise) temp = await temp\n\n\t\t\t\t\t\t\tif (temp) {\n\t\t\t\t\t\t\t\tbody = temp\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\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()\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.body = body\n\t\t\tcontext.params = handler?.params || {}\n\t\t\tcontext.query = q === -1 ? {} : parseQuery(url.substring(q + 1))\n\n\t\t\tfor (let i = 0; i < hooks.transform.length; i++) {\n\t\t\t\tconst operation = hooks.transform[i](context)\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (hooks.transform[i].$elysia === 'derive') {\n\t\t\t\t\tif (operation instanceof Promise)\n\t\t\t\t\t\tObject.assign(context, await operation)\n\t\t\t\t\telse Object.assign(context, operation)\n\t\t\t\t} else if (operation instanceof Promise) await operation\n\t\t\t}\n\n\t\t\tif (validator) {\n\t\t\t\tif (validator.headers) {\n\t\t\t\t\tconst _header: Record<string, string> = {}\n\t\t\t\t\tfor (const key in request.headers)\n\t\t\t\t\t\t_header[key] = request.headers.get(key)!\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}\n\n\t\t\t\tif (validator.params?.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\n\t\t\t\tif (validator.query?.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\n\t\t\t\tif (validator.body?.Check(body) === false)\n\t\t\t\t\tthrow new ValidationError('body', validator.body, body)\n\t\t\t}\n\n\t\t\tfor (let i = 0; i < hooks.beforeHandle.length; i++) {\n\t\t\t\tlet response = hooks.beforeHandle[i](context)\n\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\t// `false` is a falsey value, check for undefined instead\n\t\t\t\tif (response !== undefined) {\n\t\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\t\tlet newResponse = hooks.afterHandle[i](\n\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (newResponse instanceof Promise)\n\t\t\t\t\t\t\tnewResponse = await newResponse\n\n\t\t\t\t\t\tif (newResponse) response = newResponse\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = mapEarlyResponse(response, context.set)\n\t\t\t\t\tif (result) return result\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet response = handle(context)\n\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\tif (!hooks.afterHandle.length) {\n\t\t\t\tconst responseValidator = validator?.response?.[response.status]\n\n\t\t\t\tif (responseValidator?.Check(response) === false)\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t'response',\n\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\tresponse\n\t\t\t\t\t)\n\t\t\t} else\n\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\tlet newResponse = hooks.afterHandle[i](context, response)\n\t\t\t\t\tif (newResponse instanceof Promise)\n\t\t\t\t\t\tnewResponse = await newResponse\n\n\t\t\t\t\tconst result = mapEarlyResponse(newResponse, context.set)\n\t\t\t\t\tif (result !== undefined) {\n\t\t\t\t\t\tconst responseValidator =\n\t\t\t\t\t\t\tvalidator?.response?.[response.status]\n\n\t\t\t\t\t\tif (responseValidator?.Check(result) === 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\tresult\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\treturn result\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\treturn mapResponse(response, context.set)\n\t\t} catch (error) {\n\t\t\tif ((error as ElysiaErrors).status)\n\t\t\t\tset.status = (error as ElysiaErrors).status\n\n\t\t\t// @ts-ignore\n\t\t\treturn app.handleError(request, error as Error, set)\n\t\t} finally {\n\t\t\t// @ts-ignore\n\t\t\tfor (const onResponse of app.event.onResponse)\n\t\t\t\tawait onResponse(context)\n\t\t}\n\t}\n\nexport const createDynamicErrorHandler =\n\t(app: Elysia<any, any>) =>\n\tasync (\n\t\trequest: Request,\n\t\terror: ElysiaErrors,\n\t\tset: Context['set'] = {\n\t\t\theaders: {}\n\t\t}\n\t) => {\n\t\t// @ts-ignore\n\t\tfor (let i = 0; i < app.event.error.length; i++) {\n\t\t\t// @ts-ignore\n\t\t\tlet response = app.event.error[i]({\n\t\t\t\trequest,\n\t\t\t\t// @ts-ignore\n\t\t\t\tcode: error.code ?? error[ERROR_CODE] ?? 'UNKNOWN',\n\t\t\t\terror,\n\t\t\t\tset\n\t\t\t})\n\t\t\tif (response instanceof Promise) response = await response\n\t\t\tif (response !== undefined && response !== null)\n\t\t\t\treturn mapResponse(response, set)\n\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: set.headers,\n\t\t\t\tstatus: error.status ?? 500\n\t\t\t}\n\t\t)\n\t}\n",
39
39
  "import {\n\tType,\n\ttype SchemaOptions,\n\ttype NumericOptions\n} from '@sinclair/typebox'\nimport type { TypeCheck } from '@sinclair/typebox/compiler'\nimport { TypeSystem } from '@sinclair/typebox/system'\n\ntry {\n\tTypeSystem.Format('email', (value) =>\n\t\t/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(\n\t\t\tvalue\n\t\t)\n\t)\n\n\tTypeSystem.Format('uuid', (value) =>\n\t\t/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n\t\t\tvalue\n\t\t)\n\t)\n\n\tTypeSystem.Format(\n\t\t'date',\n\t\t(value) => !Number.isNaN(new Date(value).getTime())\n\t)\n\n\tTypeSystem.Format(\n\t\t'date-time',\n\t\t(value) => !Number.isNaN(new Date(value).getTime())\n\t)\n} catch (error) {\n\t// Not empty\n}\n\ntype MaybeArray<T> = T | T[]\n\nexport namespace ElysiaTypeOptions {\n\texport type Numeric = NumericOptions<number>\n\n\texport type FileUnit = number | `${number}${'k' | 'm'}`\n\n\texport interface File extends SchemaOptions {\n\t\ttype?: MaybeArray<\n\t\t\t| (string & {})\n\t\t\t| 'image'\n\t\t\t| 'image/jpeg'\n\t\t\t| 'image/png'\n\t\t\t| 'image/gif'\n\t\t\t| 'image/tiff'\n\t\t\t| 'image/x-icon'\n\t\t\t| 'image/svg'\n\t\t\t| 'image/webp'\n\t\t\t| 'image/avif'\n\t\t\t| 'audio'\n\t\t\t| 'audio/mpeg'\n\t\t\t| 'audio/x-ms-wma'\n\t\t\t| 'audio/vnd.rn-realaudio'\n\t\t\t| 'audio/x-wav'\n\t\t\t| 'video'\n\t\t\t| 'video/mpeg'\n\t\t\t| 'video/mp4'\n\t\t\t| 'video/quicktime'\n\t\t\t| 'video/x-ms-wmv'\n\t\t\t| 'video/x-msvideo'\n\t\t\t| 'video/x-flv'\n\t\t\t| 'video/webm'\n\t\t\t| 'text'\n\t\t\t| 'text/css'\n\t\t\t| 'text/csv'\n\t\t\t| 'text/html'\n\t\t\t| 'text/javascript'\n\t\t\t| 'text/plain'\n\t\t\t| 'text/xml'\n\t\t\t| 'application'\n\t\t\t| 'application/ogg'\n\t\t\t| 'application/pdf'\n\t\t\t| 'application/xhtml'\n\t\t\t| 'application/html'\n\t\t\t| 'application/json'\n\t\t\t| 'application/ld+json'\n\t\t\t| 'application/xml'\n\t\t\t| 'application/zip'\n\t\t>\n\t\tminSize?: FileUnit\n\t\tmaxSize?: FileUnit\n\t}\n\n\texport interface Files extends File {\n\t\tminItems?: number\n\t\tmaxItems?: number\n\t}\n}\n\nconst parseFileUnit = (size: ElysiaTypeOptions.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\nconst validateFile = (options: ElysiaTypeOptions.File, value: any) => {\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\tif (!value.type.startsWith(options.extension)) return false\n\t\t} else {\n\t\t\tfor (let i = 0; i < options.extension.length; i++)\n\t\t\t\tif (value.type.startsWith(options.extension[i])) return true\n\n\t\t\treturn false\n\t\t}\n\n\treturn true\n}\n\nexport const ElysiaType = {\n\t// Numeric type is for type reference only since it's aliased to t.Number\n\tNumeric: TypeSystem.Type<number, NumericOptions<number>>(\n\t\t'Numeric',\n\t\t{} as any\n\t),\n\tFile: TypeSystem.Type<Blob, ElysiaTypeOptions.File>('File', validateFile),\n\tFiles: TypeSystem.Type<Blob[], ElysiaTypeOptions.Files>(\n\t\t'Files',\n\t\t(options, value) => {\n\t\t\tif (!Array.isArray(value)) return validateFile(options, value)\n\n\t\t\tif (options.minItems && value.length < options.minItems)\n\t\t\t\treturn false\n\n\t\t\tif (options.maxItems && value.length > options.maxItems)\n\t\t\t\treturn false\n\n\t\t\tfor (let i = 0; i < value.length; i++)\n\t\t\t\tif (!validateFile(options, value[i])) return false\n\n\t\t\treturn true\n\t\t}\n\t)\n} as const\n\ndeclare module '@sinclair/typebox' {\n\tinterface TypeBuilder {\n\t\t// @ts-ignore\n\t\tNumeric: typeof ElysiaType.Numeric\n\t\tFile: typeof ElysiaType.File\n\t\tFiles: typeof ElysiaType.Files\n\t\tURLEncoded: (typeof Type)['Object']\n\t}\n\n\tinterface SchemaOptions {\n\t\terror?:\n\t\t\t| string\n\t\t\t| ((\n\t\t\t\t\ttype: string,\n\t\t\t\t\tvalidator: TypeCheck<any>,\n\t\t\t\t\tvalue: unknown\n\t\t\t ) => string | void)\n\t}\n}\n\n/**\n * A Numeric string\n *\n * Will be parse to Number\n */\nType.Numeric = (properties) => {\n\treturn Type.Number({\n\t\t...properties,\n\t\telysiaMeta: 'Numeric'\n\t}) as any\n}\n\nType.URLEncoded = (property, options) =>\n\tType.Object(property, {\n\t\t...options,\n\t\telysiaMeta: 'URLEncoded'\n\t})\n\nType.File = (arg?: ElysiaTypeOptions.File) =>\n\tElysiaType.File({\n\t\telysiaMeta: '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\nType.Files = (arg?: ElysiaTypeOptions.Files) =>\n\tElysiaType.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\nexport { Type as t }\n",
40
- "import { Memoirist } from 'memoirist'\nimport type { Serve, Server } from 'bun'\n\nimport {\n\tmergeHook,\n\tgetSchemaValidator,\n\tgetResponseSchemaValidator,\n\tmergeDeep,\n\tchecksum,\n\tmergeLifeCycle,\n\tfilterGlobalHook,\n\tasGlobal\n} from './utils'\nimport type { Context } from './context'\n\nimport {\n\tcomposeErrorHandler,\n\tcomposeGeneralHandler,\n\tcomposeHandler\n} from './compose'\n\nimport { ws } from './ws'\nimport type { ElysiaWSContext, ElysiaWSOptions, WSTypedSchema } from './ws'\n\nimport type {\n\tHandler,\n\tRegisteredHook,\n\tVoidRequestHandler,\n\tTypedRoute,\n\tElysiaInstance,\n\tElysiaConfig,\n\tHTTPMethod,\n\tComposedHandler,\n\tInternalRoute,\n\tBodyParser,\n\tErrorHandler,\n\tTypedSchema,\n\tLocalHook,\n\tLocalHandler,\n\tLifeCycle,\n\tLifeCycleEvent,\n\tLifeCycleStore,\n\tVoidLifeCycle,\n\tAfterRequestHandler,\n\tSchemaValidator,\n\tIsAny,\n\tOverwritableTypeRoute,\n\tMergeSchema,\n\tListenCallback,\n\tNoReturnHandler,\n\tMaybePromise,\n\tPrettify,\n\tTypedWSRouteToEden,\n\tUnwrapSchema,\n\tExtractPath,\n\tTypedSchemaToRoute,\n\tDeepWritable,\n\tReconciliation,\n\tBeforeRequestHandler,\n\tElysiaDefaultMeta\n} from './types'\nimport type { Static, TSchema } from '@sinclair/typebox'\n\nimport {\n\ttype ValidationError,\n\ttype ParseError,\n\ttype NotFoundError,\n\ttype InternalServerError,\n\tisProduction,\n\tERROR_CODE\n} from './error'\n\nimport {\n\tcreateDynamicErrorHandler,\n\tcreateDynamicHandler,\n\ttype DynamicHandler\n} from './dynamic-handle'\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(8080)\n * ```\n */\nexport default class Elysia<\n\tBasePath extends string = '',\n\tInstance extends ElysiaInstance<{\n\t\tstore?: Record<string, unknown>\n\t\trequest?: Record<string, unknown>\n\t\terror?: Record<string, Error>\n\t\tschema?: TypedSchema<any>\n\t\tmeta?: ElysiaDefaultMeta\n\t}> = {\n\t\tstore: {}\n\t\trequest: {}\n\t\tschema: {}\n\t\terror: {}\n\t\tmeta: {\n\t\t\tschema: {}\n\t\t\tdefs: {}\n\t\t\texposed: {}\n\t\t}\n\t}\n> {\n\tconfig: ElysiaConfig<BasePath>\n\tprivate dependencies: Record<string, number[]> = {}\n\n\tstore: Instance['store'] = {}\n\tmeta: Instance['meta'] = {\n\t\tschema: Object.create(null),\n\t\tdefs: Object.create(null),\n\t\texposed: Object.create(null)\n\t}\n\n\t// Will be applied to Context\n\tprivate decorators: Instance['request'] = {}\n\n\tevent: LifeCycleStore<Instance> = {\n\t\tstart: [],\n\t\trequest: [],\n\t\tparse: [],\n\t\ttransform: [],\n\t\tbeforeHandle: [],\n\t\tafterHandle: [],\n\t\tonResponse: [],\n\t\terror: [],\n\t\tstop: []\n\t}\n\n\tserver: Server | null = null\n\n\tprivate $schema: SchemaValidator | null = null\n\tprivate error: Instance['error'] = {}\n\n\tprivate router = new Memoirist<ComposedHandler>()\n\troutes: InternalRoute<Instance>[] = []\n\n\tprivate staticRouter = {\n\t\thandlers: [] as ComposedHandler[],\n\t\tvariables: '',\n\t\tmap: {} as Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tcode: string\n\t\t\t\tall?: string\n\t\t\t}\n\t\t>,\n\t\tall: ''\n\t}\n\tprivate wsRouter: Memoirist<any> | undefined\n\n\tprivate dynamicRouter = new Memoirist<DynamicHandler>()\n\tprivate lazyLoadModules: Promise<Elysia<any, any>>[] = []\n\tpath: BasePath = '' as any\n\n\tconstructor(config?: Partial<ElysiaConfig<BasePath>>) {\n\t\tthis.config = {\n\t\t\tforceErrorEncapsulation: false,\n\t\t\tprefix: '',\n\t\t\taot: true,\n\t\t\tstrictPath: false,\n\t\t\tscoped: false,\n\t\t\t...config,\n\t\t\tseed: config?.seed === undefined ? '' : config?.seed\n\t\t} as any\n\t}\n\n\tprivate add(\n\t\tmethod: HTTPMethod,\n\t\tpath: string,\n\t\thandler: LocalHandler<any, any>,\n\t\thook?: LocalHook<any, any, string>,\n\t\t{ allowMeta = false, skipPrefix = false } = {\n\t\t\tallowMeta: false as boolean | undefined,\n\t\t\tskipPrefix: false as boolean | undefined\n\t\t}\n\t) {\n\t\tpath =\n\t\t\tpath === '' ? path : path.charCodeAt(0) === 47 ? path : `/${path}`\n\n\t\tif (this.config.prefix && !skipPrefix) path = this.config.prefix + path\n\n\t\tconst defs = this.meta.defs\n\n\t\tif (hook?.type)\n\t\t\tswitch (hook.type) {\n\t\t\t\tcase 'text':\n\t\t\t\t\thook.type = 'text/plain'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'json':\n\t\t\t\t\thook.type = 'application/json'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'formdata':\n\t\t\t\t\thook.type = 'multipart/form-data'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'urlencoded':\n\t\t\t\t\thook.type = 'application/x-www-form-urlencoded'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\thook.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 validator = {\n\t\t\tbody: getSchemaValidator(\n\t\t\t\thook?.body ?? (this.$schema?.body as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t),\n\t\t\theaders: getSchemaValidator(\n\t\t\t\thook?.headers ?? (this.$schema?.headers as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs,\n\t\t\t\t\tadditionalProperties: true\n\t\t\t\t}\n\t\t\t),\n\t\t\tparams: getSchemaValidator(\n\t\t\t\thook?.params ?? (this.$schema?.params as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t),\n\t\t\tquery: getSchemaValidator(\n\t\t\t\thook?.query ?? (this.$schema?.query as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t),\n\t\t\tresponse: getResponseSchemaValidator(\n\t\t\t\thook?.response ?? (this.$schema?.response as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t)\n\t\t} as any\n\n\t\tconst hooks = mergeHook(this.event, hook as RegisteredHook)\n\t\tconst loosePath = path.endsWith('/')\n\t\t\t? path.slice(0, path.length - 1)\n\t\t\t: path + '/'\n\n\t\tif (this.config.aot === false) {\n\t\t\tthis.dynamicRouter.add(method, path, {\n\t\t\t\tvalidator,\n\t\t\t\thooks,\n\t\t\t\tcontent: hook?.type as string,\n\t\t\t\thandle: handler\n\t\t\t})\n\n\t\t\tif (this.config.strictPath === false) {\n\t\t\t\tthis.dynamicRouter.add(method, loosePath, {\n\t\t\t\t\tvalidator,\n\t\t\t\t\thooks,\n\t\t\t\t\tcontent: hook?.type as string,\n\t\t\t\t\thandle: handler\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.routes.push({\n\t\t\t\tmethod,\n\t\t\t\tpath,\n\t\t\t\tcomposed: null,\n\t\t\t\thandler,\n\t\t\t\thooks\n\t\t\t})\n\n\t\t\treturn\n\t\t}\n\n\t\tconst mainHandler = composeHandler({\n\t\t\tpath,\n\t\t\tmethod,\n\t\t\thooks,\n\t\t\tvalidator,\n\t\t\thandler,\n\t\t\thandleError: this.handleError,\n\t\t\tmeta: allowMeta ? this.meta : undefined,\n\t\t\tonRequest: this.event.request,\n\t\t\tconfig: this.config\n\t\t})\n\n\t\tthis.routes.push({\n\t\t\tmethod,\n\t\t\tpath,\n\t\t\tcomposed: mainHandler,\n\t\t\thandler,\n\t\t\thooks\n\t\t})\n\n\t\tif (path.indexOf(':') === -1 && path.indexOf('*') === -1) {\n\t\t\tconst index = this.staticRouter.handlers.length\n\t\t\tthis.staticRouter.handlers.push(mainHandler)\n\n\t\t\tthis.staticRouter.variables += `const st${index} = staticRouter.handlers[${index}]\\n`\n\n\t\t\tif (!this.staticRouter.map[path])\n\t\t\t\tthis.staticRouter.map[path] = {\n\t\t\t\t\tcode: ''\n\t\t\t\t}\n\n\t\t\tif (method === 'ALL')\n\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\tpath\n\t\t\t\t].all = `default: return st${index}(ctx)\\n`\n\t\t\telse\n\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\tpath\n\t\t\t\t].code += `case '${method}': return st${index}(ctx)\\n`\n\n\t\t\tif (!this.config.strictPath) {\n\t\t\t\tif (!this.staticRouter.map[loosePath])\n\t\t\t\t\tthis.staticRouter.map[loosePath] = {\n\t\t\t\t\t\tcode: ''\n\t\t\t\t\t}\n\n\t\t\t\tif (method === 'ALL')\n\t\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\t\tloosePath\n\t\t\t\t\t].all = `default: return st${index}(ctx)\\n`\n\t\t\t\telse\n\t\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\t\tloosePath\n\t\t\t\t\t].code += `case '${method}': return st${index}(ctx)\\n`\n\t\t\t}\n\t\t} else {\n\t\t\tthis.router.add(method, path, mainHandler)\n\t\t\tif (!this.config.strictPath)\n\t\t\t\tthis.router.add(\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath.endsWith('/')\n\t\t\t\t\t\t? path.slice(0, path.length - 1)\n\t\t\t\t\t\t: path + '/',\n\t\t\t\t\tmainHandler\n\t\t\t\t)\n\t\t}\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(({ url, port }) => {\n\t * console.log(\"Running at ${url}:${port}\")\n\t * })\n\t * .listen(8080)\n\t * ```\n\t */\n\tonStart(handler: VoidLifeCycle<Instance>) {\n\t\tthis.on('start', handler)\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: BeforeRequestHandler<Route, Instance>\n\t) {\n\t\tthis.on('request', handler)\n\n\t\treturn this\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(parser: BodyParser<any, Instance>) {\n\t\tthis.on('parse', parser)\n\n\t\treturn this\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: NoReturnHandler<Route, Instance>\n\t) {\n\t\tthis.on('transform', handler)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Intercept request **before(()) main handler is called.\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: Handler<Route, Instance>\n\t) {\n\t\tthis.on('beforeHandle', handler)\n\n\t\treturn this\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: AfterRequestHandler<Route, Instance>\n\t) {\n\t\tthis.on('afterHandle', handler)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### response | Life cycle event\n\t * Called when 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 * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\n\tonResponse<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: VoidRequestHandler<Route, Instance>\n\t) {\n\t\tthis.on('response', handler)\n\n\t\treturn this\n\t}\n\n\taddError<\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\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\terrors: Errors\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error'] & {\n\t\t\t\t[K in NonNullable<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\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t>\n\n\taddError<\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\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['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\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t>\n\n\t/**\n\t * Register errors\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\taddError(\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// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\terror?: {\n\t\t\tprototype: Error\n\t\t}\n\t): Elysia<any, any> {\n\t\tif (typeof name === 'string' && error) {\n\t\t\t// @ts-ignore\n\t\t\terror.prototype[ERROR_CODE] = name\n\n\t\t\treturn this\n\t\t}\n\n\t\t// @ts-ignore\n\t\tfor (const [code, error] of Object.entries(name))\n\t\t\terror.prototype[ERROR_CODE] = code\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(handler: ErrorHandler<Instance['error']>): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t> {\n\t\tthis.on('error', handler)\n\n\t\treturn this as any\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: VoidLifeCycle<Instance>) {\n\t\tthis.on('stop', handler)\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 LifeCycleEvent = LifeCycleEvent>(\n\t\ttype: Event,\n\t\thandler: LifeCycle<Instance>[Event]\n\t) {\n\t\thandler = asGlobal(handler)\n\n\t\tswitch (type) {\n\t\t\tcase 'start':\n\t\t\t\tthis.event.start.push(handler as LifeCycle<Instance>['start'])\n\t\t\t\tbreak\n\n\t\t\tcase 'request':\n\t\t\t\tthis.event.request.push(handler as LifeCycle['request'])\n\t\t\t\tbreak\n\n\t\t\tcase 'response':\n\t\t\t\tthis.event.onResponse.push(handler as LifeCycle['response'])\n\t\t\t\tbreak\n\n\t\t\tcase 'parse':\n\t\t\t\tthis.event.parse.splice(\n\t\t\t\t\tthis.event.parse.length - 1,\n\t\t\t\t\t0,\n\t\t\t\t\thandler as BodyParser<any, Instance>\n\t\t\t\t)\n\t\t\t\tbreak\n\n\t\t\tcase 'transform':\n\t\t\t\tthis.event.transform.push(handler as LifeCycle['transform'])\n\t\t\t\tbreak\n\n\t\t\tcase 'beforeHandle':\n\t\t\t\tthis.event.beforeHandle.push(\n\t\t\t\t\thandler as LifeCycle<Instance>['beforeHandle']\n\t\t\t\t)\n\t\t\t\tbreak\n\n\t\t\tcase 'afterHandle':\n\t\t\t\tthis.event.afterHandle.push(handler as LifeCycle['afterHandle'])\n\t\t\t\tbreak\n\n\t\t\tcase 'error':\n\t\t\t\tthis.event.error.push(handler as LifeCycle['error'])\n\t\t\t\tbreak\n\n\t\t\tcase 'stop':\n\t\t\t\tthis.event.stop.push(handler as LifeCycle<Instance>['stop'])\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn this\n\t}\n\n\tgroup<\n\t\tNewElysia extends Elysia<any, any> = Elysia<any, any>,\n\t\tPrefix extends string = string\n\t>(\n\t\tprefix: Prefix,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\t`${BasePath}${Prefix}`,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store'] & ElysiaInstance['store']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\t\t\tdefs: Instance['meta']['defs']\n\t\t\t\t\t\texposed: {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t>\n\t\t) => NewElysia\n\t): NewElysia extends Elysia<`${BasePath}${Prefix}`, infer NewInstance>\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tmeta: Instance['meta'] & NewInstance['meta']\n\t\t\t\t}\n\t\t >\n\t\t: this\n\n\tgroup<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tNewElysia extends Elysia<any, any> = Elysia<any, any>,\n\t\tPrefix extends string = string\n\t>(\n\t\tprefix: Prefix,\n\t\tschema: LocalHook<Schema, Instance, `${BasePath}${Prefix}`>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\t`${BasePath}${Prefix}`,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store'] & ElysiaInstance['store']\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tbody: undefined extends Schema['body']\n\t\t\t\t\t\t\t? Instance['schema']['body']\n\t\t\t\t\t\t\t: Schema['body']\n\t\t\t\t\t\theaders: undefined extends Schema['headers']\n\t\t\t\t\t\t\t? Instance['schema']['headers']\n\t\t\t\t\t\t\t: Schema['headers']\n\t\t\t\t\t\tquery: undefined extends Schema['query']\n\t\t\t\t\t\t\t? Instance['schema']['query']\n\t\t\t\t\t\t\t: Schema['query']\n\t\t\t\t\t\tparams: undefined extends Schema['params']\n\t\t\t\t\t\t\t? Instance['schema']['params']\n\t\t\t\t\t\t\t: Schema['params']\n\t\t\t\t\t\tresponse: undefined extends Schema['response']\n\t\t\t\t\t\t\t? Instance['schema']['response']\n\t\t\t\t\t\t\t: Schema['response']\n\t\t\t\t\t}\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\t\t\tdefs: Instance['meta']['defs']\n\t\t\t\t\t\texposed: {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t>\n\t\t) => NewElysia\n\t): NewElysia extends Elysia<`${BasePath}${Prefix}`, infer NewInstance>\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tmeta: Instance['meta'] &\n\t\t\t\t\t\t(Omit<NewInstance['meta'], 'schema'> &\n\t\t\t\t\t\t\tRecord<\n\t\t\t\t\t\t\t\t'schema',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t[Path in keyof NewInstance['meta']['schema']]: NewInstance['meta']['schema'][Path]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>)\n\t\t\t\t}\n\t\t >\n\t\t: this\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\tExecutor extends (group: Elysia) => Elysia,\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>\n\t>(\n\t\tprefix: string,\n\t\tschemaOrRun: LocalHook<Schema, Instance> | Executor,\n\t\trun?: Executor\n\t): this {\n\t\tconst instance = new Elysia<any, any>({\n\t\t\t...this.config,\n\t\t\tprefix: ''\n\t\t})\n\t\tinstance.store = this.store\n\n\t\tif (this.wsRouter) instance.use(ws())\n\n\t\tconst isSchema = typeof schemaOrRun === 'object'\n\n\t\tconst sandbox = (isSchema ? run! : schemaOrRun)(instance)\n\t\tthis.decorators = mergeDeep(this.decorators, instance.decorators)\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.onResponse.length)\n\t\t\tthis.event.onResponse = [\n\t\t\t\t...this.event.onResponse,\n\t\t\t\t...(sandbox.event.onResponse as any)\n\t\t\t]\n\n\t\tthis.model(sandbox.meta.defs)\n\n\t\tObject.values(instance.routes).forEach(\n\t\t\t({ method, path, handler, hooks }) => {\n\t\t\t\tpath = this.config.prefix + prefix + path\n\n\t\t\t\tif (isSchema) {\n\t\t\t\t\tconst hook = schemaOrRun\n\t\t\t\t\tconst localHook = hooks\n\n\t\t\t\t\t// Same as guard\n\t\t\t\t\tconst hasWsRoute = instance.wsRouter?.find(\n\t\t\t\t\t\t'subscribe',\n\t\t\t\t\t\tpath\n\t\t\t\t\t)\n\t\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\t\tconst wsRoute = instance.wsRouter!.history.find(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t\t}\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 as LocalHook<any, any>, {\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? [...localHook.error, ...sandbox.event.error]\n\t\t\t\t\t\t\t\t: [localHook.error, ...sandbox.event.error]\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tconst hasWsRoute = instance.wsRouter?.find(\n\t\t\t\t\t\t'subscribe',\n\t\t\t\t\t\tpath\n\t\t\t\t\t)\n\t\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\t\tconst wsRoute = instance.wsRouter!.history.find(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t\t}\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(hooks, {\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\tif (instance.wsRouter && this.wsRouter)\n\t\t\tinstance.wsRouter.history.forEach(([method, path, handler]) => {\n\t\t\t\tpath = this.config.prefix + prefix + path\n\n\t\t\t\tif (path === '/') this.wsRouter?.add(method, prefix, handler)\n\t\t\t\telse this.wsRouter?.add(method, `${prefix}${path}`, handler)\n\t\t\t})\n\n\t\treturn this as any\n\t}\n\n\tguard<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>\n\t>(\n\t\thook: LocalHook<Schema, Instance>\n\t): Elysia<\n\t\tany,\n\t\t{\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta'] &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\t{\n\t\t\t\t\t\t[key in keyof Schema]: Schema[key]\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t}\n\t>\n\n\tguard<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tNewElysia extends Elysia<any, any> = Elysia<any, any>\n\t>(\n\t\thook: LocalHook<Schema, Instance>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tbody: undefined extends Schema['body']\n\t\t\t\t\t\t\t? Instance['schema']['body']\n\t\t\t\t\t\t\t: Schema['body']\n\t\t\t\t\t\theaders: undefined extends Schema['headers']\n\t\t\t\t\t\t\t? Instance['schema']['headers']\n\t\t\t\t\t\t\t: Schema['headers']\n\t\t\t\t\t\tquery: undefined extends Schema['query']\n\t\t\t\t\t\t\t? Instance['schema']['query']\n\t\t\t\t\t\t\t: Schema['query']\n\t\t\t\t\t\tparams: undefined extends Schema['params']\n\t\t\t\t\t\t\t? Instance['schema']['params']\n\t\t\t\t\t\t\t: Schema['params']\n\t\t\t\t\t\tresponse: undefined extends Schema['response']\n\t\t\t\t\t\t\t? Instance['schema']['response']\n\t\t\t\t\t\t\t: Schema['response']\n\t\t\t\t\t}\n\t\t\t\t\tmeta: Instance['meta']\n\t\t\t\t}\n\t\t\t>\n\t\t) => NewElysia\n\t): NewElysia extends Elysia<any, infer NewInstance>\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tmeta: Instance['meta'] &\n\t\t\t\t\t\tRecord<\n\t\t\t\t\t\t\t'schema',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[key in keyof NewInstance['meta']['schema']]: NewInstance['meta']['schema'][key]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t}\n\t\t >\n\t\t: this\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 * schema: {\n\t * body: t.Object({\n\t * username: t.String(),\n\t * password: t.String()\n\t * })\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: LocalHook<any, Instance>,\n\t\trun?: (group: Elysia<any, any>) => Elysia<any, any>\n\t): Elysia<any, any> {\n\t\tif (!run) {\n\t\t\tthis.event = mergeLifeCycle(this.event, hook)\n\t\t\tthis.$schema = {\n\t\t\t\tbody: hook.body,\n\t\t\t\theaders: hook.headers,\n\t\t\t\tparams: hook.params,\n\t\t\t\tquery: hook.query,\n\t\t\t\tresponse: hook.response\n\t\t\t}\n\n\t\t\treturn this\n\t\t}\n\n\t\tconst instance = new Elysia<any>()\n\t\tinstance.store = this.store\n\t\tif (this.wsRouter) instance.use(ws())\n\n\t\tconst sandbox = run(instance)\n\t\tthis.decorators = mergeDeep(this.decorators, instance.decorators)\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.onResponse.length)\n\t\t\tthis.event.onResponse = [\n\t\t\t\t...this.event.onResponse,\n\t\t\t\t...sandbox.event.onResponse\n\t\t\t]\n\n\t\tthis.model(sandbox.meta.defs)\n\n\t\tObject.values(instance.routes).forEach(\n\t\t\t({ method, path, handler, hooks: localHook }) => {\n\t\t\t\tconst hasWsRoute = instance.wsRouter?.find('subscribe', path)\n\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\tconst wsRoute = instance.wsRouter!.history.find(\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t)\n\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t}\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(hook as LocalHook<any, any>, {\n\t\t\t\t\t\t...localHook,\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? [...localHook.error, ...sandbox.event.error]\n\t\t\t\t\t\t\t: [localHook.error, ...sandbox.event.error]\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\n\t\tif (instance.wsRouter && this.wsRouter)\n\t\t\tinstance.wsRouter.history.forEach(([method, path, handler]) => {\n\t\t\t\tthis.wsRouter?.add(method, path, handler)\n\t\t\t})\n\n\t\treturn this as any\n\t}\n\n\t// Inline Fn\n\tuse<\n\t\tNewInstance extends ElysiaInstance,\n\t\tParams extends Elysia = Elysia<any, any>\n\t>(\n\t\tplugin: MaybePromise<\n\t\t\t(\n\t\t\t\tapp: Params extends Elysia<any, infer ParamsInstance>\n\t\t\t\t\t? IsAny<ParamsInstance> extends true\n\t\t\t\t\t\t? this\n\t\t\t\t\t\t: any\n\t\t\t\t\t: Params\n\t\t\t) => MaybePromise<Elysia<any, NewInstance>>\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & NewInstance['error']\n\t\t\trequest: Reconciliation<Instance['request'], NewInstance['request']>\n\t\t\tstore: Reconciliation<Instance['store'], NewInstance['store']>\n\t\t\tschema: Instance['schema'] & NewInstance['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof NewInstance['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: NewInstance['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tNewInstance['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tNewInstance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\tuse<NewInstance extends ElysiaInstance>(\n\t\tinstance: Elysia<any, NewInstance>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & NewInstance['error']\n\t\t\trequest: Reconciliation<Instance['request'], NewInstance['request']>\n\t\t\tstore: Reconciliation<Instance['store'], NewInstance['store']>\n\t\t\tschema: Instance['schema'] & NewInstance['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof NewInstance['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: NewInstance['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tNewInstance['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tNewInstance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\t// Import Fn\n\tuse<LazyLoadElysia extends ElysiaInstance>(\n\t\tplugin: Promise<{\n\t\t\tdefault: (\n\t\t\t\telysia: Elysia<any, any>\n\t\t\t) => MaybePromise<Elysia<any, LazyLoadElysia>>\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & LazyLoadElysia['error']\n\t\t\trequest: Reconciliation<\n\t\t\t\tInstance['request'],\n\t\t\t\tLazyLoadElysia['request']\n\t\t\t>\n\t\t\tstore: Reconciliation<Instance['store'], LazyLoadElysia['store']>\n\t\t\tschema: Instance['schema'] & LazyLoadElysia['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof LazyLoadElysia['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: LazyLoadElysia['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tLazyLoadElysia['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tLazyLoadElysia['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\t// Import inline\n\tuse<LazyLoadElysia extends ElysiaInstance>(\n\t\tplugin: Promise<{\n\t\t\tdefault: (elysia: Elysia<any, any>) => Elysia<any, LazyLoadElysia>\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & LazyLoadElysia['error']\n\t\t\trequest: Reconciliation<\n\t\t\t\tInstance['request'],\n\t\t\t\tLazyLoadElysia['request']\n\t\t\t>\n\t\t\tstore: Reconciliation<Instance['store'], LazyLoadElysia['store']>\n\t\t\tschema: Instance['schema'] & LazyLoadElysia['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof LazyLoadElysia['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: LazyLoadElysia['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tLazyLoadElysia['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tLazyLoadElysia['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\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| Elysia<any, any>\n\t\t\t| MaybePromise<\n\t\t\t\t\t(app: Elysia<any, any>) => MaybePromise<Elysia<any, any>>\n\t\t\t >\n\t\t\t| Promise<{\n\t\t\t\t\tdefault: Elysia<any, any>\n\t\t\t }>\n\t\t\t| Promise<{\n\t\t\t\t\tdefault: (\n\t\t\t\t\t\telysia: Elysia<any, any>\n\t\t\t\t\t) => MaybePromise<Elysia<any, any>>\n\t\t\t }>\n\t): Elysia<any, any> {\n\t\tconst register = (\n\t\t\tplugin:\n\t\t\t\t| Elysia<any, any>\n\t\t\t\t| ((app: Elysia<any, any>) => MaybePromise<Elysia<any, any>>)\n\t\t) => {\n\t\t\tif (typeof plugin === 'function') {\n\t\t\t\tconst instance = plugin(\n\t\t\t\t\tthis as unknown as any\n\t\t\t\t) as unknown as any\n\t\t\t\tif (instance instanceof Promise) {\n\t\t\t\t\tthis.lazyLoadModules.push(instance.then((x) => x.compile()))\n\n\t\t\t\t\treturn this as unknown as any\n\t\t\t\t}\n\n\t\t\t\treturn instance\n\t\t\t}\n\n\t\t\tconst isScoped = plugin.config.scoped\n\n\t\t\tif (!isScoped) {\n\t\t\t\tthis.decorators = mergeDeep(this.decorators, plugin.decorators)\n\t\t\t\tthis.state(plugin.store)\n\t\t\t\tthis.model(plugin.meta.defs)\n\t\t\t\tthis.addError(plugin.error)\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tconfig: { name, seed }\n\t\t\t} = plugin\n\n\t\t\tObject.values(plugin.routes).forEach(\n\t\t\t\t({ method, path, handler, hooks }) => {\n\t\t\t\t\tconst hasWsRoute = plugin.wsRouter?.find('subscribe', path)\n\t\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\t\tconst wsRoute = plugin.wsRouter!.history.find(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t\t}\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(hooks, {\n\t\t\t\t\t\t\terror: plugin.event.error\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\tif (!isScoped)\n\t\t\t\tif (name) {\n\t\t\t\t\tif (!(name in this.dependencies))\n\t\t\t\t\t\tthis.dependencies[name] = []\n\n\t\t\t\t\tconst current =\n\t\t\t\t\t\tseed !== undefined\n\t\t\t\t\t\t\t? checksum(name + JSON.stringify(seed))\n\t\t\t\t\t\t\t: 0\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.dependencies[name].some(\n\t\t\t\t\t\t\t(checksum) => current === checksum\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t\treturn this\n\n\t\t\t\t\tthis.dependencies[name].push(current)\n\t\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\t\tthis.event,\n\t\t\t\t\t\tfilterGlobalHook(plugin.event),\n\t\t\t\t\t\tcurrent\n\t\t\t\t\t)\n\t\t\t\t} else\n\t\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\t\tthis.event,\n\t\t\t\t\t\tfilterGlobalHook(plugin.event)\n\t\t\t\t\t)\n\n\t\t\treturn this\n\t\t}\n\n\t\tif (plugin instanceof Promise) {\n\t\t\tthis.lazyLoadModules.push(\n\t\t\t\tplugin\n\t\t\t\t\t.then((plugin) => {\n\t\t\t\t\t\tif (typeof plugin === 'function')\n\t\t\t\t\t\t\treturn plugin(\n\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\tif (typeof plugin.default === 'function')\n\t\t\t\t\t\t\treturn plugin.default(\n\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\treturn register(plugin.default)\n\t\t\t\t\t})\n\t\t\t\t\t.then((x) => x.compile())\n\t\t\t)\n\n\t\t\treturn this as unknown as any\n\t\t} else return register(plugin)\n\n\t\treturn this\n\t}\n\n\tmount(handle: (request: Request) => MaybePromise<Response>): this\n\tmount(\n\t\tpath: string,\n\t\thandle: (request: Request) => MaybePromise<Response>\n\t): this\n\n\tmount(\n\t\tpath: string | ((request: Request) => MaybePromise<Response>),\n\t\thandle?: (request: Request) => MaybePromise<Response>\n\t) {\n\t\tif (typeof path === 'function' || path.length === 0 || path === '/') {\n\t\t\tconst run = typeof path === 'function' ? path : handle!\n\n\t\t\tconst handler: Handler<any, any> = async ({ request, path }) =>\n\t\t\t\trun(new Request('http://a.cc' + path || '/', request))\n\n\t\t\tthis.all('/', handler, {\n\t\t\t\ttype: 'none'\n\t\t\t})\n\t\t\tthis.all('/*', handler, {\n\t\t\t\ttype: 'none'\n\t\t\t})\n\n\t\t\treturn this\n\t\t}\n\n\t\tconst length = path.length\n\t\tconst handler: Handler<any, any> = async ({ request, path }) =>\n\t\t\thandle!(\n\t\t\t\tnew Request('http://a.cc' + path.slice(length) || '/', request)\n\t\t\t)\n\n\t\tthis.all(path, handler, {\n\t\t\ttype: 'none'\n\t\t})\n\t\tthis.all(path + (path.endsWith('/') ? '*' : '/*'), handler, {\n\t\t\ttype: 'none'\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tget<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: {\n\t\t\t\tdefs: Instance['meta']['defs']\n\t\t\t\texposed: Instance['meta']['exposed']\n\t\t\t\tschema: Prettify<\n\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\tget: {\n\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t| string\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\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\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\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: {})\n\t\t\t\t>\n\t\t\t}\n\t\t}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('GET', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tpost<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tpost: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('POST', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tput<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tput: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('PUT', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tpatch<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tpatch: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('PATCH', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tdelete<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tdelete: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add(\n\t\t\t\t'DELETE',\n\t\t\t\tpath,\n\t\t\t\thandler as any,\n\t\t\t\thook as LocalHook<any, any>\n\t\t\t)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### options\n\t * Register handler for path with method [OPTIONS]\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\toptions<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add(\n\t\t\t\t'OPTIONS',\n\t\t\t\tpath,\n\t\t\t\thandler as any,\n\t\t\t\thook as LocalHook<any, any>\n\t\t\t)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### all\n\t * Register handler for path with any method\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 * ```\n\t */\n\tall<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tall: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('ALL', path, handler, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\thead<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\thead: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('HEAD', path, handler, hook as LocalHook<any, any>)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### trace\n\t * Register handler for path with method [TRACE]\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 * .trace('/', () => 'hi')\n\t * .trace('/with-hook', () => 'hi', {\n\t * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\ttrace<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\ttrace: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('TRACE', path, handler, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tconnect<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tconnect: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('CONNECT', path, handler, hook as LocalHook<any, any>)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### ws\n\t * Register handler for websocket.\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 * .use(ws())\n\t * .ws('/ws', {\n\t * message(ws, message) {\n\t * ws.send(message)\n\t * }\n\t * })\n\t * ```\n\t */\n\tws<\n\t\tPaths extends string | string[],\n\t\tSchema extends WSTypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\t/**\n\t\t * Path to register websocket to\n\t\t */\n\t\tpaths: Paths,\n\t\toptions: this extends Elysia<any, infer Instance>\n\t\t\t? ElysiaWSOptions<\n\t\t\t\t\t`${BasePath}${Extract<Paths, string>}`,\n\t\t\t\t\tSchema,\n\t\t\t\t\tInstance\n\t\t\t >\n\t\t\t: never\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Instance['meta'] &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tRecord<\n\t\t\t\t\t\t`${BasePath}${Extract<Paths, string>}`,\n\t\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tsubscribe: TypedWSRouteToEden<\n\t\t\t\t\t\t\t\t\t\tTyped,\n\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t`${BasePath}${Extract<Paths, string>}`\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\t: {}\n\t\t\t\t\t>\n\t\t\t\t>\n\t\t}\n\t> {\n\t\tif (!this.wsRouter)\n\t\t\tthrow new Error(\n\t\t\t\t\"Can't find WebSocket. Please register WebSocket plugin first by importing 'elysia/ws'\"\n\t\t\t)\n\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.wsRouter.add('subscribe', path, options as any)\n\n\t\t\tthis.get(\n\t\t\t\tpath,\n\t\t\t\t// @ts-ignore\n\t\t\t\t(context) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tthis.server?.upgrade(context.request, {\n\t\t\t\t\t\t\theaders:\n\t\t\t\t\t\t\t\ttypeof options.upgrade === 'function'\n\t\t\t\t\t\t\t\t\t? options.upgrade(context as any)\n\t\t\t\t\t\t\t\t\t: options.upgrade,\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\t\tid: Date.now(),\n\t\t\t\t\t\t\t\theaders: context.request.headers.toJSON(),\n\t\t\t\t\t\t\t\tmessage: getSchemaValidator(options?.body, {\n\t\t\t\t\t\t\t\t\tmodels: this.meta.defs\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ttransformMessage: !options.transform\n\t\t\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t\t\t: Array.isArray(options.transformMessage)\n\t\t\t\t\t\t\t\t\t? options.transformMessage\n\t\t\t\t\t\t\t\t\t: [options.transformMessage]\n\t\t\t\t\t\t\t} as ElysiaWSContext<any>['data']\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t\treturn\n\n\t\t\t\t\tcontext.set.status = 400\n\n\t\t\t\t\treturn 'Expected a websocket connection'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbeforeHandle: options.beforeHandle,\n\t\t\t\t\ttransform: options.transform,\n\t\t\t\t\theaders: options?.headers,\n\t\t\t\t\tparams: options?.params,\n\t\t\t\t\tquery: options?.query\n\t\t\t\t} as any\n\t\t\t)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### route\n\t * Register handler for path with custom method\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('CUSTOM', '/', () => 'hi')\n\t * .route('CUSTOM', '/with-hook', () => 'hi', {\n\t * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\troute<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tMethod extends HTTPMethod,\n\t\tPath extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Path, string>}`\n\t\t>\n\t>(\n\t\tmethod: Method,\n\t\tpath: Path,\n\t\thandler: Handler,\n\t\t// @ts-ignore\n\t\t{\n\t\t\tconfig,\n\t\t\t...hook\n\t\t}: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Path, string>}`\n\t\t> & {\n\t\t\tconfig: {\n\t\t\t\tallowMeta?: boolean\n\t\t\t}\n\t\t} = {\n\t\t\tconfig: {\n\t\t\t\tallowMeta: false\n\t\t\t}\n\t\t}\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\tPath,\n\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t[method in Method]: {\n\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPath,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t| string\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\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\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\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: never\n\t\t\t\t\t>\n\t\t\t\t>\n\t\t}\n\t> {\n\t\tif (typeof path === 'string') {\n\t\t\tpath = [path] as Path\n\t\t}\n\t\tfor (const p of path) {\n\t\t\tthis.add(method, p, handler, hook as LocalHook<any, any>, config)\n\t\t}\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<Key extends string | number | symbol, Value>(\n\t\tname: Key,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Reconciliation<Instance['store'], Record<Key, Value>>\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\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<NewStore extends Record<string, unknown>>(\n\t\tstore: NewStore\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Reconciliation<Instance['store'], DeepWritable<NewStore>>\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\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\tname: string | number | symbol | Record<string, unknown>,\n\t\tvalue?: unknown\n\t) {\n\t\tif (typeof name === 'object') {\n\t\t\tthis.store = mergeDeep(this.store, name)\n\n\t\t\treturn this as any\n\t\t}\n\n\t\tif (!(name in this.store)) {\n\t\t\t// eslint-disable-next-line no-extra-semi\n\t\t\t;(this.store as Record<string | number | symbol, unknown>)[name] =\n\t\t\t\tvalue\n\t\t}\n\n\t\treturn this as any\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, const Value>(\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Reconciliation<Instance['request'], Record<Name, Value>>\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\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 Decorators extends Record<string, unknown>>(\n\t\tname: Decorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Reconciliation<\n\t\t\t\tInstance['request'],\n\t\t\t\tDeepWritable<Decorators>\n\t\t\t>\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\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(name: string | Record<string, unknown>, value?: unknown) {\n\t\tif (typeof name === 'object') {\n\t\t\tthis.decorators = mergeDeep(this.decorators, name)\n\n\t\t\treturn this as any\n\t\t}\n\n\t\t// @ts-ignore\n\t\tif (!(name in this.decorators)) this.decorators[name] = value\n\n\t\treturn this as any\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<Returned extends Object = Object>(\n\t\ttransform: (\n\t\t\tcontext: Context<\n\t\t\t\tTypedSchemaToRoute<\n\t\t\t\t\tInstance['schema'],\n\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t>,\n\t\t\t\tInstance['store']\n\t\t\t> &\n\t\t\t\tInstance['request']\n\t\t) => MaybePromise<Returned> extends { store: any } ? never : Returned\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request'] & Awaited<Returned>\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t> {\n\t\t// @ts-ignore\n\t\ttransform.$elysia = 'derive'\n\n\t\treturn this.onTransform(transform as any) as any\n\t}\n\n\t/**\n\t * ### schema\n\t * Define type strict validation for request\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 * .schema({\n\t * response: t.String()\n\t * })\n\t * .get('/', () => 'hi')\n\t * ```\n\t */\n\tschema<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t> = TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tNewInstance = Elysia<\n\t\t\tBasePath,\n\t\t\t{\n\t\t\t\trequest: Instance['request']\n\t\t\t\tstore: Instance['store']\n\t\t\t\terror: Instance['error']\n\t\t\t\tschema: MergeSchema<Schema, Instance['schema']>\n\t\t\t\tmeta: Instance['meta']\n\t\t\t}\n\t\t>\n\t>(schema: Schema): NewInstance {\n\t\tconst models = this.meta.defs\n\n\t\tthis.$schema = {\n\t\t\tbody: getSchemaValidator(schema.body, {\n\t\t\t\tmodels\n\t\t\t}),\n\t\t\theaders: getSchemaValidator(schema?.headers, {\n\t\t\t\tmodels,\n\t\t\t\tadditionalProperties: true\n\t\t\t}),\n\t\t\tparams: getSchemaValidator(schema?.params, {\n\t\t\t\tmodels\n\t\t\t}),\n\t\t\tquery: getSchemaValidator(schema?.query, {\n\t\t\t\tmodels\n\t\t\t}),\n\t\t\t// @ts-ignore\n\t\t\tresponse: getSchemaValidator(schema?.response, {\n\t\t\t\tmodels\n\t\t\t})\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\tcompile() {\n\t\tthis.fetch = this.config.aot\n\t\t\t? composeGeneralHandler(this)\n\t\t\t: createDynamicHandler(this)\n\n\t\tif (typeof this.server?.reload === 'function')\n\t\t\tthis.server.reload({\n\t\t\t\t...this.server,\n\t\t\t\tfetch: this.fetch\n\t\t\t})\n\n\t\treturn this\n\t}\n\n\thandle = async (request: Request) => this.fetch(request)\n\n\t/**\n\t * 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\t(this.fetch = this.config.aot\n\t\t\t? composeGeneralHandler(this)\n\t\t\t: createDynamicHandler(this))(request)\n\n\tprivate handleError = async (\n\t\trequest: Request,\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\tset: Context['set']\n\t) =>\n\t\t(this.handleError = this.config.aot\n\t\t\t? composeErrorHandler(this)\n\t\t\t: createDynamicErrorHandler(this))(request, error, set)\n\n\tprivate outerErrorHandler = (error: Error) =>\n\t\tnew Response(error.message, {\n\t\t\t// @ts-ignore\n\t\t\tstatus: error?.status ?? 500\n\t\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(8080)\n\t * ```\n\t */\n\tlisten = (\n\t\toptions: string | number | Partial<Serve>,\n\t\tcallback?: ListenCallback\n\t) => {\n\t\tif (!Bun) throw new Error('Bun to run')\n\n\t\tthis.compile()\n\n\t\tif (typeof options === 'string') {\n\t\t\toptions = +options.trim()\n\n\t\t\tif (Number.isNaN(options))\n\t\t\t\tthrow new Error('Port must be a numeric value')\n\t\t}\n\n\t\tconst fetch = this.fetch\n\n\t\tconst serve =\n\t\t\ttypeof options === 'object'\n\t\t\t\t? ({\n\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t...this.config.serve,\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfetch,\n\t\t\t\t\t\terror: this.outerErrorHandler\n\t\t\t\t } as Serve)\n\t\t\t\t: ({\n\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t...this.config.serve,\n\t\t\t\t\t\tport: options,\n\t\t\t\t\t\tfetch,\n\t\t\t\t\t\terror: this.outerErrorHandler\n\t\t\t\t } as Serve)\n\n\t\tif (typeof Bun === 'undefined')\n\t\t\tthrow new Error(\n\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)\n\n\t\tthis.server = Bun?.serve(serve)\n\n\t\tfor (let i = 0; i < this.event.start.length; i++)\n\t\t\tthis.event.start[i](this as any)\n\n\t\tif (callback) callback(this.server!)\n\n\t\tPromise.all(this.lazyLoadModules).then(() => {\n\t\t\tBun?.gc(true)\n\t\t})\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(8080)\n\t *\n\t * // Sometime later\n\t * app.stop()\n\t * ```\n\t */\n\tstop = async () => {\n\t\tif (!this.server)\n\t\t\tthrow new Error(\n\t\t\t\t\"Elysia isn't running. Call `app.listen` to start the server.\"\n\t\t\t)\n\n\t\tthis.server.stop()\n\n\t\tfor (let i = 0; i < this.event.stop.length; i++)\n\t\t\tawait this.event.stop[i](this as any)\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 Promise.all(this.lazyLoadModules)\n\t}\n\n\tmodel<Name extends string, Model extends TSchema>(\n\t\tname: Name,\n\t\tmodel: Model\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tRecord<Name, Static<Model>>\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\tmodel<Recorder extends Record<string, TSchema>>(\n\t\trecord: Recorder\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t{\n\t\t\t\t\t\t[key in keyof Recorder]: Static<Recorder[key]>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\tmodel(name: string, model?: TSchema) {\n\t\tif (typeof name === 'object')\n\t\t\tObject.entries(name).forEach(([key, value]) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (!(key in this.meta.defs)) this.meta.defs[key] = value\n\t\t\t})\n\t\telse (this.meta.defs as Record<string, TSchema>)[name] = model!\n\n\t\treturn this as any\n\t}\n}\n\nexport { mapResponse, mapCompactResponse, mapEarlyResponse } from './handler'\nexport { Elysia }\nexport { t } from './custom-types'\nexport { ws } from './ws'\n\nexport {\n\tgetSchemaValidator,\n\tmergeDeep,\n\tmergeHook,\n\tmergeObjectArray,\n\tgetResponseSchemaValidator\n} from './utils'\n\nexport {\n\tParseError,\n\tNotFoundError,\n\tValidationError,\n\tInternalServerError\n} from './error'\n\nexport type { Context, PreContext } from './context'\nexport type {\n\tHandler,\n\tRegisteredHook,\n\tBeforeRequestHandler,\n\tVoidRequestHandler,\n\tTypedRoute,\n\tOverwritableTypeRoute,\n\tElysiaInstance,\n\tElysiaConfig,\n\tHTTPMethod,\n\tComposedHandler,\n\tInternalRoute,\n\tBodyParser,\n\tErrorHandler,\n\tErrorCode,\n\tTypedSchema,\n\tLocalHook,\n\tLocalHandler,\n\tLifeCycle,\n\tLifeCycleEvent,\n\tAfterRequestHandler,\n\tHookHandler,\n\tTypedSchemaToRoute,\n\tUnwrapSchema,\n\tLifeCycleStore,\n\tVoidLifeCycle,\n\tSchemaValidator,\n\tExtractPath,\n\tIsPathParameter,\n\tIsAny,\n\tIsNever,\n\tUnknownFallback,\n\tWithArray,\n\tObjectValues,\n\tMaybePromise,\n\tMergeIfNotNull,\n\tElysiaDefaultMeta,\n\tAnyTypedSchema,\n\tDeepMergeTwoTypes\n} from './types'\n"
40
+ "import { Memoirist } from 'memoirist'\nimport type { Serve, Server } from 'bun'\n\nimport {\n\tmergeHook,\n\tgetSchemaValidator,\n\tgetResponseSchemaValidator,\n\tmergeDeep,\n\tchecksum,\n\tmergeLifeCycle,\n\tfilterGlobalHook,\n\tasGlobal\n} from './utils'\nimport type { Context } from './context'\n\nimport {\n\tcomposeErrorHandler,\n\tcomposeGeneralHandler,\n\tcomposeHandler\n} from './compose'\n\nimport { ws } from './ws'\nimport type { ElysiaWSContext, ElysiaWSOptions, WSTypedSchema } from './ws'\n\nimport type {\n\tHandler,\n\tRegisteredHook,\n\tVoidRequestHandler,\n\tTypedRoute,\n\tElysiaInstance,\n\tElysiaConfig,\n\tHTTPMethod,\n\tComposedHandler,\n\tInternalRoute,\n\tBodyParser,\n\tErrorHandler,\n\tTypedSchema,\n\tLocalHook,\n\tLocalHandler,\n\tLifeCycle,\n\tLifeCycleEvent,\n\tLifeCycleStore,\n\tVoidLifeCycle,\n\tAfterRequestHandler,\n\tSchemaValidator,\n\tIsAny,\n\tOverwritableTypeRoute,\n\tMergeSchema,\n\tListenCallback,\n\tNoReturnHandler,\n\tMaybePromise,\n\tPrettify,\n\tTypedWSRouteToEden,\n\tUnwrapSchema,\n\tExtractPath,\n\tTypedSchemaToRoute,\n\tDeepWritable,\n\tReconciliation,\n\tBeforeRequestHandler,\n\tElysiaDefaultMeta\n} from './types'\nimport type { Static, TSchema } from '@sinclair/typebox'\n\nimport {\n\ttype ValidationError,\n\ttype ParseError,\n\ttype NotFoundError,\n\ttype InternalServerError,\n\tisProduction,\n\tERROR_CODE\n} from './error'\n\nimport {\n\tcreateDynamicErrorHandler,\n\tcreateDynamicHandler,\n\ttype DynamicHandler\n} from './dynamic-handle'\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(8080)\n * ```\n */\nexport default class Elysia<\n\tBasePath extends string = '',\n\tInstance extends ElysiaInstance<{\n\t\tstore?: Record<string, unknown>\n\t\trequest?: Record<string, unknown>\n\t\terror?: Record<string, Error>\n\t\tschema?: TypedSchema<any>\n\t\tmeta?: ElysiaDefaultMeta\n\t}> = {\n\t\tstore: {}\n\t\trequest: {}\n\t\tschema: {}\n\t\terror: {}\n\t\tmeta: {\n\t\t\tschema: {}\n\t\t\tdefs: {}\n\t\t\texposed: {}\n\t\t}\n\t}\n> {\n\tconfig: ElysiaConfig<BasePath>\n\tprivate dependencies: Record<string, number[]> = {}\n\n\tstore: Instance['store'] = {}\n\tmeta: Instance['meta'] = {\n\t\tschema: Object.create(null),\n\t\tdefs: Object.create(null),\n\t\texposed: Object.create(null)\n\t}\n\n\t// Will be applied to Context\n\tprivate decorators: Instance['request'] = {}\n\n\tevent: LifeCycleStore<Instance> = {\n\t\tstart: [],\n\t\trequest: [],\n\t\tparse: [],\n\t\ttransform: [],\n\t\tbeforeHandle: [],\n\t\tafterHandle: [],\n\t\tonResponse: [],\n\t\terror: [],\n\t\tstop: []\n\t}\n\n\tserver: Server | null = null\n\n\tprivate $schema: SchemaValidator | null = null\n\tprivate error: Instance['error'] = {}\n\n\tprivate router = new Memoirist<ComposedHandler>()\n\troutes: InternalRoute<Instance>[] = []\n\n\tprivate staticRouter = {\n\t\thandlers: [] as ComposedHandler[],\n\t\tvariables: '',\n\t\tmap: {} as Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tcode: string\n\t\t\t\tall?: string\n\t\t\t}\n\t\t>,\n\t\tall: ''\n\t}\n\tprivate wsRouter: Memoirist<any> | undefined\n\n\tprivate dynamicRouter = new Memoirist<DynamicHandler>()\n\tprivate lazyLoadModules: Promise<Elysia<any, any>>[] = []\n\tpath: BasePath = '' as any\n\n\tconstructor(config?: Partial<ElysiaConfig<BasePath>>) {\n\t\tthis.config = {\n\t\t\tforceErrorEncapsulation: false,\n\t\t\tprefix: '',\n\t\t\taot: true,\n\t\t\tstrictPath: false,\n\t\t\tscoped: false,\n\t\t\t...config,\n\t\t\tseed: config?.seed === undefined ? '' : config?.seed\n\t\t} as any\n\t}\n\n\tprivate add(\n\t\tmethod: HTTPMethod,\n\t\tpath: string,\n\t\thandler: LocalHandler<any, any>,\n\t\thook?: LocalHook<any, any, string>,\n\t\t{ allowMeta = false, skipPrefix = false } = {\n\t\t\tallowMeta: false as boolean | undefined,\n\t\t\tskipPrefix: false as boolean | undefined\n\t\t}\n\t) {\n\t\tpath =\n\t\t\tpath === '' ? path : path.charCodeAt(0) === 47 ? path : `/${path}`\n\n\t\tif (this.config.prefix && !skipPrefix) path = this.config.prefix + path\n\n\t\tconst defs = this.meta.defs\n\n\t\tif (hook?.type)\n\t\t\tswitch (hook.type) {\n\t\t\t\tcase 'text':\n\t\t\t\t\thook.type = 'text/plain'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'json':\n\t\t\t\t\thook.type = 'application/json'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'formdata':\n\t\t\t\t\thook.type = 'multipart/form-data'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'urlencoded':\n\t\t\t\t\thook.type = 'application/x-www-form-urlencoded'\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\thook.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 validator = {\n\t\t\tbody: getSchemaValidator(\n\t\t\t\thook?.body ?? (this.$schema?.body as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t),\n\t\t\theaders: getSchemaValidator(\n\t\t\t\thook?.headers ?? (this.$schema?.headers as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs,\n\t\t\t\t\tadditionalProperties: true\n\t\t\t\t}\n\t\t\t),\n\t\t\tparams: getSchemaValidator(\n\t\t\t\thook?.params ?? (this.$schema?.params as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t),\n\t\t\tquery: getSchemaValidator(\n\t\t\t\thook?.query ?? (this.$schema?.query as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t),\n\t\t\tresponse: getResponseSchemaValidator(\n\t\t\t\thook?.response ?? (this.$schema?.response as any),\n\t\t\t\t{\n\t\t\t\t\tdynamic: !this.config.aot,\n\t\t\t\t\tmodels: defs\n\t\t\t\t}\n\t\t\t)\n\t\t} as any\n\n\t\tconst hooks = mergeHook(this.event, hook as RegisteredHook)\n\t\tconst loosePath = path.endsWith('/')\n\t\t\t? path.slice(0, path.length - 1)\n\t\t\t: path + '/'\n\n\t\tif (this.config.aot === false) {\n\t\t\tthis.dynamicRouter.add(method, path, {\n\t\t\t\tvalidator,\n\t\t\t\thooks,\n\t\t\t\tcontent: hook?.type as string,\n\t\t\t\thandle: handler\n\t\t\t})\n\n\t\t\tif (this.config.strictPath === false) {\n\t\t\t\tthis.dynamicRouter.add(method, loosePath, {\n\t\t\t\t\tvalidator,\n\t\t\t\t\thooks,\n\t\t\t\t\tcontent: hook?.type as string,\n\t\t\t\t\thandle: handler\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.routes.push({\n\t\t\t\tmethod,\n\t\t\t\tpath,\n\t\t\t\tcomposed: null,\n\t\t\t\thandler,\n\t\t\t\thooks\n\t\t\t})\n\n\t\t\treturn\n\t\t}\n\n\t\tconst mainHandler = composeHandler({\n\t\t\tpath,\n\t\t\tmethod,\n\t\t\thooks,\n\t\t\tvalidator,\n\t\t\thandler,\n\t\t\thandleError: this.handleError,\n\t\t\tmeta: allowMeta ? this.meta : undefined,\n\t\t\tonRequest: this.event.request,\n\t\t\tconfig: this.config\n\t\t})\n\n\t\tthis.routes.push({\n\t\t\tmethod,\n\t\t\tpath,\n\t\t\tcomposed: mainHandler,\n\t\t\thandler,\n\t\t\thooks\n\t\t})\n\n\t\tif (path.indexOf(':') === -1 && path.indexOf('*') === -1) {\n\t\t\tconst index = this.staticRouter.handlers.length\n\t\t\tthis.staticRouter.handlers.push(mainHandler)\n\n\t\t\tthis.staticRouter.variables += `const st${index} = staticRouter.handlers[${index}]\\n`\n\n\t\t\tif (!this.staticRouter.map[path])\n\t\t\t\tthis.staticRouter.map[path] = {\n\t\t\t\t\tcode: ''\n\t\t\t\t}\n\n\t\t\tif (method === 'ALL')\n\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\tpath\n\t\t\t\t].all = `default: return st${index}(ctx)\\n`\n\t\t\telse\n\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\tpath\n\t\t\t\t].code += `case '${method}': return st${index}(ctx)\\n`\n\n\t\t\tif (!this.config.strictPath) {\n\t\t\t\tif (!this.staticRouter.map[loosePath])\n\t\t\t\t\tthis.staticRouter.map[loosePath] = {\n\t\t\t\t\t\tcode: ''\n\t\t\t\t\t}\n\n\t\t\t\tif (method === 'ALL')\n\t\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\t\tloosePath\n\t\t\t\t\t].all = `default: return st${index}(ctx)\\n`\n\t\t\t\telse\n\t\t\t\t\tthis.staticRouter.map[\n\t\t\t\t\t\tloosePath\n\t\t\t\t\t].code += `case '${method}': return st${index}(ctx)\\n`\n\t\t\t}\n\t\t} else {\n\t\t\tthis.router.add(method, path, mainHandler)\n\t\t\tif (!this.config.strictPath)\n\t\t\t\tthis.router.add(\n\t\t\t\t\tmethod,\n\t\t\t\t\tpath.endsWith('/')\n\t\t\t\t\t\t? path.slice(0, path.length - 1)\n\t\t\t\t\t\t: path + '/',\n\t\t\t\t\tmainHandler\n\t\t\t\t)\n\t\t}\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(({ url, port }) => {\n\t * console.log(\"Running at ${url}:${port}\")\n\t * })\n\t * .listen(8080)\n\t * ```\n\t */\n\tonStart(handler: VoidLifeCycle<Instance>) {\n\t\tthis.on('start', handler)\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: BeforeRequestHandler<Route, Instance>\n\t) {\n\t\tthis.on('request', handler)\n\n\t\treturn this\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(parser: BodyParser<any, Instance>) {\n\t\tthis.on('parse', parser)\n\n\t\treturn this\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: NoReturnHandler<Route, Instance>\n\t) {\n\t\tthis.on('transform', handler)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### Before Handle | Life cycle event\n\t * Intercept request **before(()) main handler is called.\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: Handler<Route, Instance>\n\t) {\n\t\tthis.on('beforeHandle', handler)\n\n\t\treturn this\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<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: AfterRequestHandler<Route, Instance>\n\t) {\n\t\tthis.on('afterHandle', handler)\n\n\t\treturn this\n\t}\n\n\t/**\n\t * ### response | Life cycle event\n\t * Called when 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 * .onError(({ code }) => {\n\t * if(code === \"NOT_FOUND\")\n\t * return \"Path not found :(\"\n\t * })\n\t * ```\n\t */\n\n\tonResponse<Route extends OverwritableTypeRoute = TypedRoute>(\n\t\thandler: VoidRequestHandler<Route, Instance>\n\t) {\n\t\tthis.on('response', handler)\n\n\t\treturn this\n\t}\n\n\taddError<\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\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\terrors: Errors\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error'] & {\n\t\t\t\t[K in NonNullable<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\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t>\n\n\taddError<\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\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['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\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t>\n\n\t/**\n\t * Register errors\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\taddError(\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// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\terror?: {\n\t\t\tprototype: Error\n\t\t}\n\t): Elysia<any, any> {\n\t\tif (typeof name === 'string' && error) {\n\t\t\t// @ts-ignore\n\t\t\terror.prototype[ERROR_CODE] = name\n\n\t\t\treturn this\n\t\t}\n\n\t\t// @ts-ignore\n\t\tfor (const [code, error] of Object.entries(name))\n\t\t\terror.prototype[ERROR_CODE] = code\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(handler: ErrorHandler<Instance['error']>): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t> {\n\t\tthis.on('error', handler)\n\n\t\treturn this as any\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: VoidLifeCycle<Instance>) {\n\t\tthis.on('stop', handler)\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 LifeCycleEvent = LifeCycleEvent>(\n\t\ttype: Event,\n\t\thandler: LifeCycle<Instance>[Event]\n\t) {\n\t\thandler = asGlobal(handler)\n\n\t\tswitch (type) {\n\t\t\tcase 'start':\n\t\t\t\tthis.event.start.push(handler as LifeCycle<Instance>['start'])\n\t\t\t\tbreak\n\n\t\t\tcase 'request':\n\t\t\t\tthis.event.request.push(handler as LifeCycle['request'])\n\t\t\t\tbreak\n\n\t\t\tcase 'response':\n\t\t\t\tthis.event.onResponse.push(handler as LifeCycle['response'])\n\t\t\t\tbreak\n\n\t\t\tcase 'parse':\n\t\t\t\tthis.event.parse.splice(\n\t\t\t\t\tthis.event.parse.length - 1,\n\t\t\t\t\t0,\n\t\t\t\t\thandler as BodyParser<any, Instance>\n\t\t\t\t)\n\t\t\t\tbreak\n\n\t\t\tcase 'transform':\n\t\t\t\tthis.event.transform.push(handler as LifeCycle['transform'])\n\t\t\t\tbreak\n\n\t\t\tcase 'beforeHandle':\n\t\t\t\tthis.event.beforeHandle.push(\n\t\t\t\t\thandler as LifeCycle<Instance>['beforeHandle']\n\t\t\t\t)\n\t\t\t\tbreak\n\n\t\t\tcase 'afterHandle':\n\t\t\t\tthis.event.afterHandle.push(handler as LifeCycle['afterHandle'])\n\t\t\t\tbreak\n\n\t\t\tcase 'error':\n\t\t\t\tthis.event.error.push(handler as LifeCycle['error'])\n\t\t\t\tbreak\n\n\t\t\tcase 'stop':\n\t\t\t\tthis.event.stop.push(handler as LifeCycle<Instance>['stop'])\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn this\n\t}\n\n\tgroup<\n\t\tNewElysia extends Elysia<any, any> = Elysia<any, any>,\n\t\tPrefix extends string = string\n\t>(\n\t\tprefix: Prefix,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\t`${BasePath}${Prefix}`,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store'] & ElysiaInstance['store']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\t\t\tdefs: Instance['meta']['defs']\n\t\t\t\t\t\texposed: {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t>\n\t\t) => NewElysia\n\t): NewElysia extends Elysia<`${BasePath}${Prefix}`, infer NewInstance>\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tmeta: Instance['meta'] & NewInstance['meta']\n\t\t\t\t}\n\t\t >\n\t\t: this\n\n\tgroup<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tNewElysia extends Elysia<any, any> = Elysia<any, any>,\n\t\tPrefix extends string = string\n\t>(\n\t\tprefix: Prefix,\n\t\tschema: LocalHook<Schema, Instance, `${BasePath}${Prefix}`>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\t`${BasePath}${Prefix}`,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store'] & ElysiaInstance['store']\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tbody: undefined extends Schema['body']\n\t\t\t\t\t\t\t? Instance['schema']['body']\n\t\t\t\t\t\t\t: Schema['body']\n\t\t\t\t\t\theaders: undefined extends Schema['headers']\n\t\t\t\t\t\t\t? Instance['schema']['headers']\n\t\t\t\t\t\t\t: Schema['headers']\n\t\t\t\t\t\tquery: undefined extends Schema['query']\n\t\t\t\t\t\t\t? Instance['schema']['query']\n\t\t\t\t\t\t\t: Schema['query']\n\t\t\t\t\t\tparams: undefined extends Schema['params']\n\t\t\t\t\t\t\t? Instance['schema']['params']\n\t\t\t\t\t\t\t: Schema['params']\n\t\t\t\t\t\tresponse: undefined extends Schema['response']\n\t\t\t\t\t\t\t? Instance['schema']['response']\n\t\t\t\t\t\t\t: Schema['response']\n\t\t\t\t\t}\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\t\t\tdefs: Instance['meta']['defs']\n\t\t\t\t\t\texposed: {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t>\n\t\t) => NewElysia\n\t): NewElysia extends Elysia<`${BasePath}${Prefix}`, infer NewInstance>\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tmeta: Instance['meta'] &\n\t\t\t\t\t\t(Omit<NewInstance['meta'], 'schema'> &\n\t\t\t\t\t\t\tRecord<\n\t\t\t\t\t\t\t\t'schema',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t[Path in keyof NewInstance['meta']['schema']]: NewInstance['meta']['schema'][Path]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>)\n\t\t\t\t}\n\t\t >\n\t\t: this\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\tExecutor extends (group: Elysia) => Elysia,\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>\n\t>(\n\t\tprefix: string,\n\t\tschemaOrRun: LocalHook<Schema, Instance> | Executor,\n\t\trun?: Executor\n\t): this {\n\t\tconst instance = new Elysia<any, any>({\n\t\t\t...this.config,\n\t\t\tprefix: ''\n\t\t})\n\t\tinstance.store = this.store\n\n\t\tif (this.wsRouter) instance.use(ws())\n\n\t\tconst isSchema = typeof schemaOrRun === 'object'\n\n\t\tconst sandbox = (isSchema ? run! : schemaOrRun)(instance)\n\t\tthis.decorators = mergeDeep(this.decorators, instance.decorators)\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.onResponse.length)\n\t\t\tthis.event.onResponse = [\n\t\t\t\t...this.event.onResponse,\n\t\t\t\t...(sandbox.event.onResponse as any)\n\t\t\t]\n\n\t\tthis.model(sandbox.meta.defs)\n\n\t\tObject.values(instance.routes).forEach(\n\t\t\t({ method, path, handler, hooks }) => {\n\t\t\t\tpath = this.config.prefix + prefix + path\n\n\t\t\t\tif (isSchema) {\n\t\t\t\t\tconst hook = schemaOrRun\n\t\t\t\t\tconst localHook = hooks\n\n\t\t\t\t\t// Same as guard\n\t\t\t\t\tconst hasWsRoute = instance.wsRouter?.find(\n\t\t\t\t\t\t'subscribe',\n\t\t\t\t\t\tpath\n\t\t\t\t\t)\n\t\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\t\tconst wsRoute = instance.wsRouter!.history.find(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t\t}\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 as LocalHook<any, any>, {\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? [...localHook.error, ...sandbox.event.error]\n\t\t\t\t\t\t\t\t: [localHook.error, ...sandbox.event.error]\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tconst hasWsRoute = instance.wsRouter?.find(\n\t\t\t\t\t\t'subscribe',\n\t\t\t\t\t\tpath\n\t\t\t\t\t)\n\t\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\t\tconst wsRoute = instance.wsRouter!.history.find(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t\t}\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(hooks, {\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\tif (instance.wsRouter && this.wsRouter)\n\t\t\tinstance.wsRouter.history.forEach(([method, path, handler]) => {\n\t\t\t\tpath = this.config.prefix + prefix + path\n\n\t\t\t\tif (path === '/') this.wsRouter?.add(method, prefix, handler)\n\t\t\t\telse this.wsRouter?.add(method, `${prefix}${path}`, handler)\n\t\t\t})\n\n\t\treturn this as any\n\t}\n\n\tguard<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>\n\t>(\n\t\thook: LocalHook<Schema, Instance>\n\t): Elysia<\n\t\tany,\n\t\t{\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta'] &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\t{\n\t\t\t\t\t\t[key in keyof Schema]: Schema[key]\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t}\n\t>\n\n\tguard<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tNewElysia extends Elysia<any, any> = Elysia<any, any>\n\t>(\n\t\thook: LocalHook<Schema, Instance>,\n\t\trun: (\n\t\t\tgroup: Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tschema: {\n\t\t\t\t\t\tbody: undefined extends Schema['body']\n\t\t\t\t\t\t\t? Instance['schema']['body']\n\t\t\t\t\t\t\t: Schema['body']\n\t\t\t\t\t\theaders: undefined extends Schema['headers']\n\t\t\t\t\t\t\t? Instance['schema']['headers']\n\t\t\t\t\t\t\t: Schema['headers']\n\t\t\t\t\t\tquery: undefined extends Schema['query']\n\t\t\t\t\t\t\t? Instance['schema']['query']\n\t\t\t\t\t\t\t: Schema['query']\n\t\t\t\t\t\tparams: undefined extends Schema['params']\n\t\t\t\t\t\t\t? Instance['schema']['params']\n\t\t\t\t\t\t\t: Schema['params']\n\t\t\t\t\t\tresponse: undefined extends Schema['response']\n\t\t\t\t\t\t\t? Instance['schema']['response']\n\t\t\t\t\t\t\t: Schema['response']\n\t\t\t\t\t}\n\t\t\t\t\tmeta: Instance['meta']\n\t\t\t\t}\n\t\t\t>\n\t\t) => NewElysia\n\t): NewElysia extends Elysia<any, infer NewInstance>\n\t\t? Elysia<\n\t\t\t\tBasePath,\n\t\t\t\t{\n\t\t\t\t\terror: Instance['error']\n\t\t\t\t\trequest: Instance['request']\n\t\t\t\t\tstore: Instance['store']\n\t\t\t\t\tschema: Instance['schema']\n\t\t\t\t\tmeta: Instance['meta'] &\n\t\t\t\t\t\tRecord<\n\t\t\t\t\t\t\t'schema',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[key in keyof NewInstance['meta']['schema']]: NewInstance['meta']['schema'][key]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t}\n\t\t >\n\t\t: this\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 * schema: {\n\t * body: t.Object({\n\t * username: t.String(),\n\t * password: t.String()\n\t * })\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: LocalHook<any, Instance>,\n\t\trun?: (group: Elysia<any, any>) => Elysia<any, any>\n\t): Elysia<any, any> {\n\t\tif (!run) {\n\t\t\tthis.event = mergeLifeCycle(this.event, hook)\n\t\t\tthis.$schema = {\n\t\t\t\tbody: hook.body,\n\t\t\t\theaders: hook.headers,\n\t\t\t\tparams: hook.params,\n\t\t\t\tquery: hook.query,\n\t\t\t\tresponse: hook.response\n\t\t\t}\n\n\t\t\treturn this\n\t\t}\n\n\t\tconst instance = new Elysia<any>()\n\t\tinstance.store = this.store\n\t\tif (this.wsRouter) instance.use(ws())\n\n\t\tconst sandbox = run(instance)\n\t\tthis.decorators = mergeDeep(this.decorators, instance.decorators)\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.onResponse.length)\n\t\t\tthis.event.onResponse = [\n\t\t\t\t...this.event.onResponse,\n\t\t\t\t...sandbox.event.onResponse\n\t\t\t]\n\n\t\tthis.model(sandbox.meta.defs)\n\n\t\tObject.values(instance.routes).forEach(\n\t\t\t({ method, path, handler, hooks: localHook }) => {\n\t\t\t\tconst hasWsRoute = instance.wsRouter?.find('subscribe', path)\n\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\tconst wsRoute = instance.wsRouter!.history.find(\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t)\n\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t}\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(hook as LocalHook<any, any>, {\n\t\t\t\t\t\t...localHook,\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? [...localHook.error, ...sandbox.event.error]\n\t\t\t\t\t\t\t: [localHook.error, ...sandbox.event.error]\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\n\t\tif (instance.wsRouter && this.wsRouter)\n\t\t\tinstance.wsRouter.history.forEach(([method, path, handler]) => {\n\t\t\t\tthis.wsRouter?.add(method, path, handler)\n\t\t\t})\n\n\t\treturn this as any\n\t}\n\n\t// Inline Fn\n\tuse<\n\t\tNewInstance extends ElysiaInstance,\n\t\tParams extends Elysia = Elysia<any, any>\n\t>(\n\t\tplugin: MaybePromise<\n\t\t\t(\n\t\t\t\tapp: Params extends Elysia<any, infer ParamsInstance>\n\t\t\t\t\t? IsAny<ParamsInstance> extends true\n\t\t\t\t\t\t? this\n\t\t\t\t\t\t: any\n\t\t\t\t\t: Params\n\t\t\t) => MaybePromise<Elysia<any, NewInstance>>\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & NewInstance['error']\n\t\t\trequest: Reconciliation<Instance['request'], NewInstance['request']>\n\t\t\tstore: Reconciliation<Instance['store'], NewInstance['store']>\n\t\t\tschema: Instance['schema'] & NewInstance['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof NewInstance['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: NewInstance['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tNewInstance['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tNewInstance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\tuse<NewInstance extends ElysiaInstance>(\n\t\tinstance: Elysia<any, NewInstance>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & NewInstance['error']\n\t\t\trequest: Reconciliation<Instance['request'], NewInstance['request']>\n\t\t\tstore: Reconciliation<Instance['store'], NewInstance['store']>\n\t\t\tschema: Instance['schema'] & NewInstance['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof NewInstance['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: NewInstance['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tNewInstance['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tNewInstance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\t// Import Fn\n\tuse<LazyLoadElysia extends ElysiaInstance>(\n\t\tplugin: Promise<{\n\t\t\tdefault: (\n\t\t\t\telysia: Elysia<any, any>\n\t\t\t) => MaybePromise<Elysia<any, LazyLoadElysia>>\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & LazyLoadElysia['error']\n\t\t\trequest: Reconciliation<\n\t\t\t\tInstance['request'],\n\t\t\t\tLazyLoadElysia['request']\n\t\t\t>\n\t\t\tstore: Reconciliation<Instance['store'], LazyLoadElysia['store']>\n\t\t\tschema: Instance['schema'] & LazyLoadElysia['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof LazyLoadElysia['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: LazyLoadElysia['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tLazyLoadElysia['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tLazyLoadElysia['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\t// Import inline\n\tuse<LazyLoadElysia extends ElysiaInstance>(\n\t\tplugin: Promise<{\n\t\t\tdefault: (elysia: Elysia<any, any>) => Elysia<any, LazyLoadElysia>\n\t\t}>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\terror: Instance['error'] & LazyLoadElysia['error']\n\t\t\trequest: Reconciliation<\n\t\t\t\tInstance['request'],\n\t\t\t\tLazyLoadElysia['request']\n\t\t\t>\n\t\t\tstore: Reconciliation<Instance['store'], LazyLoadElysia['store']>\n\t\t\tschema: Instance['schema'] & LazyLoadElysia['schema']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema'] & {\n\t\t\t\t\t[Path in keyof LazyLoadElysia['meta']['schema'] as Path extends string\n\t\t\t\t\t\t? `${BasePath}${Path}`\n\t\t\t\t\t\t: Path]: LazyLoadElysia['meta']['schema'][Path]\n\t\t\t\t}\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tLazyLoadElysia['meta']['defs']\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed'] &\n\t\t\t\t\tLazyLoadElysia['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\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| Elysia<any, any>\n\t\t\t| MaybePromise<\n\t\t\t\t\t(app: Elysia<any, any>) => MaybePromise<Elysia<any, any>>\n\t\t\t >\n\t\t\t| Promise<{\n\t\t\t\t\tdefault: Elysia<any, any>\n\t\t\t }>\n\t\t\t| Promise<{\n\t\t\t\t\tdefault: (\n\t\t\t\t\t\telysia: Elysia<any, any>\n\t\t\t\t\t) => MaybePromise<Elysia<any, any>>\n\t\t\t }>\n\t): Elysia<any, any> {\n\t\tconst register = (\n\t\t\tplugin:\n\t\t\t\t| Elysia<any, any>\n\t\t\t\t| ((app: Elysia<any, any>) => MaybePromise<Elysia<any, any>>)\n\t\t) => {\n\t\t\tif (typeof plugin === 'function') {\n\t\t\t\tconst instance = plugin(\n\t\t\t\t\tthis as unknown as any\n\t\t\t\t) as unknown as any\n\t\t\t\tif (instance instanceof Promise) {\n\t\t\t\t\tthis.lazyLoadModules.push(instance.then((x) => x.compile()))\n\n\t\t\t\t\treturn this as unknown as any\n\t\t\t\t}\n\n\t\t\t\treturn instance\n\t\t\t}\n\n\t\t\tconst isScoped = plugin.config.scoped\n\n\t\t\tif (!isScoped) {\n\t\t\t\tthis.decorators = mergeDeep(this.decorators, plugin.decorators)\n\t\t\t\tthis.state(plugin.store)\n\t\t\t\tthis.model(plugin.meta.defs)\n\t\t\t\tthis.addError(plugin.error)\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tconfig: { name, seed }\n\t\t\t} = plugin\n\n\t\t\tObject.values(plugin.routes).forEach(\n\t\t\t\t({ method, path, handler, hooks }) => {\n\t\t\t\t\tconst hasWsRoute = plugin.wsRouter?.find('subscribe', path)\n\t\t\t\t\tif (hasWsRoute) {\n\t\t\t\t\t\tconst wsRoute = plugin.wsRouter!.history.find(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t\t\t([_, wsPath]) => path === wsPath\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (!wsRoute) return\n\n\t\t\t\t\t\treturn this.ws(path as any, wsRoute[2] as any)\n\t\t\t\t\t}\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(hooks, {\n\t\t\t\t\t\t\terror: plugin.event.error\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\tif (!isScoped)\n\t\t\t\tif (name) {\n\t\t\t\t\tif (!(name in this.dependencies))\n\t\t\t\t\t\tthis.dependencies[name] = []\n\n\t\t\t\t\tconst current =\n\t\t\t\t\t\tseed !== undefined\n\t\t\t\t\t\t\t? checksum(name + JSON.stringify(seed))\n\t\t\t\t\t\t\t: 0\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.dependencies[name].some(\n\t\t\t\t\t\t\t(checksum) => current === checksum\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t\treturn this\n\n\t\t\t\t\tthis.dependencies[name].push(current)\n\t\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\t\tthis.event,\n\t\t\t\t\t\tfilterGlobalHook(plugin.event),\n\t\t\t\t\t\tcurrent\n\t\t\t\t\t)\n\t\t\t\t} else\n\t\t\t\t\tthis.event = mergeLifeCycle(\n\t\t\t\t\t\tthis.event,\n\t\t\t\t\t\tfilterGlobalHook(plugin.event)\n\t\t\t\t\t)\n\n\t\t\treturn this\n\t\t}\n\n\t\tif (plugin instanceof Promise) {\n\t\t\tthis.lazyLoadModules.push(\n\t\t\t\tplugin\n\t\t\t\t\t.then((plugin) => {\n\t\t\t\t\t\tif (typeof plugin === 'function')\n\t\t\t\t\t\t\treturn plugin(\n\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\tif (typeof plugin.default === 'function')\n\t\t\t\t\t\t\treturn plugin.default(\n\t\t\t\t\t\t\t\tthis as unknown as any\n\t\t\t\t\t\t\t) as unknown as Elysia\n\n\t\t\t\t\t\treturn register(plugin.default)\n\t\t\t\t\t})\n\t\t\t\t\t.then((x) => x.compile())\n\t\t\t)\n\n\t\t\treturn this as unknown as any\n\t\t} else return register(plugin)\n\n\t\treturn this\n\t}\n\n\tmount(handle: (request: Request) => MaybePromise<Response>): this\n\tmount(\n\t\tpath: string,\n\t\thandle: (request: Request) => MaybePromise<Response>\n\t): this\n\n\tmount(\n\t\tpath: string | ((request: Request) => MaybePromise<Response>),\n\t\thandle?: (request: Request) => MaybePromise<Response>\n\t) {\n\t\tif (typeof path === 'function' || path.length === 0 || path === '/') {\n\t\t\tconst run = typeof path === 'function' ? path : handle!\n\n\t\t\tconst handler: Handler<any, any> = async ({ request, path }) =>\n\t\t\t\trun(new Request('http://a.cc' + path || '/', request))\n\n\t\t\tthis.all('/', handler, {\n\t\t\t\ttype: 'none'\n\t\t\t})\n\t\t\tthis.all('/*', handler, {\n\t\t\t\ttype: 'none'\n\t\t\t})\n\n\t\t\treturn this\n\t\t}\n\n\t\tconst length = path.length\n\t\tconst handler: Handler<any, any> = async ({ request, path }) =>\n\t\t\thandle!(\n\t\t\t\tnew Request('http://a.cc' + path.slice(length) || '/', request)\n\t\t\t)\n\n\t\tthis.all(path, handler, {\n\t\t\ttype: 'none'\n\t\t})\n\t\tthis.all(path + (path.endsWith('/') ? '*' : '/*'), handler, {\n\t\t\ttype: 'none'\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tget<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: {\n\t\t\t\tdefs: Instance['meta']['defs']\n\t\t\t\texposed: Instance['meta']['exposed']\n\t\t\t\tschema: Prettify<\n\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\tget: {\n\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t| string\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\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\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\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: {})\n\t\t\t\t>\n\t\t\t}\n\t\t}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('GET', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tpost<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tpost: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('POST', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tput<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tput: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('PUT', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tpatch<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tpatch: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('PATCH', path, handler as any, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tdelete<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tdelete: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add(\n\t\t\t\t'DELETE',\n\t\t\t\tpath,\n\t\t\t\thandler as any,\n\t\t\t\thook as LocalHook<any, any>\n\t\t\t)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### options\n\t * Register handler for path with method [OPTIONS]\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\toptions<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add(\n\t\t\t\t'OPTIONS',\n\t\t\t\tpath,\n\t\t\t\thandler as any,\n\t\t\t\thook as LocalHook<any, any>\n\t\t\t)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### all\n\t * Register handler for path with any method\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 * ```\n\t */\n\tall<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tall: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('ALL', path, handler, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\thead<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\thead: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('HEAD', path, handler, hook as LocalHook<any, any>)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### trace\n\t * Register handler for path with method [TRACE]\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 * .trace('/', () => 'hi')\n\t * .trace('/with-hook', () => 'hi', {\n\t * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\ttrace<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\ttrace: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('TRACE', path, handler, hook as LocalHook<any, any>)\n\t\t}\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 * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\tconnect<\n\t\tPaths extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>,\n\t\tSchema extends TypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\tpaths: Paths,\n\t\thandler: Handler,\n\t\thook?: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Paths, string>}`\n\t\t>\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\t(MergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t\tconnect: {\n\t\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\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\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPaths,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t\t| string\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\n\t\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\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}\n\t> {\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.add('CONNECT', path, handler, hook as LocalHook<any, any>)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### ws\n\t * Register handler for websocket.\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 * .use(ws())\n\t * .ws('/ws', {\n\t * message(ws, message) {\n\t * ws.send(message)\n\t * }\n\t * })\n\t * ```\n\t */\n\tws<\n\t\tPaths extends string | string[],\n\t\tSchema extends WSTypedSchema<\n\t\t\tExtract<keyof Instance['meta']['defs'], string>\n\t\t>\n\t>(\n\t\t/**\n\t\t * Path to register websocket to\n\t\t */\n\t\tpaths: Paths,\n\t\toptions: this extends Elysia<any, infer Instance>\n\t\t\t? ElysiaWSOptions<\n\t\t\t\t\t`${BasePath}${Extract<Paths, string>}`,\n\t\t\t\t\tSchema,\n\t\t\t\t\tInstance\n\t\t\t >\n\t\t\t: never\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Instance['meta'] &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tRecord<\n\t\t\t\t\t\t`${BasePath}${Extract<Paths, string>}`,\n\t\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tsubscribe: TypedWSRouteToEden<\n\t\t\t\t\t\t\t\t\t\tTyped,\n\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t`${BasePath}${Extract<Paths, string>}`\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\t: {}\n\t\t\t\t\t>\n\t\t\t\t>\n\t\t}\n\t> {\n\t\tif (!this.wsRouter)\n\t\t\tthrow new Error(\n\t\t\t\t\"Can't find WebSocket. Please register WebSocket plugin first by importing 'elysia/ws'\"\n\t\t\t)\n\n\t\tif (typeof paths === 'string') {\n\t\t\tpaths = [paths] as Paths\n\t\t}\n\t\tfor (const path of paths) {\n\t\t\tthis.wsRouter.add('subscribe', path, options as any)\n\n\t\t\tthis.get(\n\t\t\t\tpath,\n\t\t\t\t// @ts-ignore\n\t\t\t\t(context) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tthis.server?.upgrade(context.request, {\n\t\t\t\t\t\t\theaders:\n\t\t\t\t\t\t\t\ttypeof options.upgrade === 'function'\n\t\t\t\t\t\t\t\t\t? options.upgrade(context as any)\n\t\t\t\t\t\t\t\t\t: options.upgrade,\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\t\tid: Date.now(),\n\t\t\t\t\t\t\t\theaders: context.request.headers.toJSON(),\n\t\t\t\t\t\t\t\tmessage: getSchemaValidator(options?.body, {\n\t\t\t\t\t\t\t\t\tmodels: this.meta.defs\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ttransformMessage: !options.transform\n\t\t\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t\t\t: Array.isArray(options.transformMessage)\n\t\t\t\t\t\t\t\t\t? options.transformMessage\n\t\t\t\t\t\t\t\t\t: [options.transformMessage]\n\t\t\t\t\t\t\t} as ElysiaWSContext<any>['data']\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t\treturn\n\n\t\t\t\t\tcontext.set.status = 400\n\n\t\t\t\t\treturn 'Expected a websocket connection'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbeforeHandle: options.beforeHandle,\n\t\t\t\t\ttransform: options.transform,\n\t\t\t\t\theaders: options?.headers,\n\t\t\t\t\tparams: options?.params,\n\t\t\t\t\tquery: options?.query\n\t\t\t\t} as any\n\t\t\t)\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\t/**\n\t * ### route\n\t * Register handler for path with custom method\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('CUSTOM', '/', () => 'hi')\n\t * .route('CUSTOM', '/with-hook', () => 'hi', {\n\t * schema: {\n\t * response: t.String()\n\t * }\n\t * })\n\t * ```\n\t */\n\troute<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tMethod extends HTTPMethod,\n\t\tPath extends string | string[],\n\t\tHandler extends LocalHandler<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Path, string>}`\n\t\t>\n\t>(\n\t\tmethod: Method,\n\t\tpath: Path,\n\t\thandler: Handler,\n\t\t// @ts-ignore\n\t\t{\n\t\t\tconfig,\n\t\t\t...hook\n\t\t}: LocalHook<\n\t\t\tSchema,\n\t\t\tInstance,\n\t\t\t`${BasePath}${Extract<Path, string>}`\n\t\t> & {\n\t\t\tconfig: {\n\t\t\t\tallowMeta?: boolean\n\t\t\t}\n\t\t} = {\n\t\t\tconfig: {\n\t\t\t\tallowMeta: false\n\t\t\t}\n\t\t}\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\trequest: Instance['request']\n\t\t\tstore: Instance['store']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: Record<'defs', Instance['meta']['defs']> &\n\t\t\t\tRecord<'exposed', Instance['meta']['exposed']> &\n\t\t\t\tRecord<\n\t\t\t\t\t'schema',\n\t\t\t\t\tPrettify<\n\t\t\t\t\t\tInstance['meta']['schema'] &\n\t\t\t\t\t\t\tMergeSchema<\n\t\t\t\t\t\t\t\tSchema,\n\t\t\t\t\t\t\t\tInstance['schema']\n\t\t\t\t\t\t\t> extends infer Typed extends TypedSchema\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t[path in `${BasePath}${Extract<\n\t\t\t\t\t\t\t\t\t\tPath,\n\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t>}`]: {\n\t\t\t\t\t\t\t\t\t\t[method in Method]: {\n\t\t\t\t\t\t\t\t\t\t\tbody: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['body'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\theaders: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['headers'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tquery: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['query'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\tparams: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\tTyped['params'],\n\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t\t\t\t\t\t\t\t> extends infer Result\n\t\t\t\t\t\t\t\t\t\t\t\t? Result extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tany\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\t\t? Result\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtractPath<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExtract<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPath,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring\n\t\t\t\t\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t\tresponse: Typed['response'] extends\n\t\t\t\t\t\t\t\t\t\t\t\t| TSchema\n\t\t\t\t\t\t\t\t\t\t\t\t| string\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\t\t\t'200': UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: Typed['response'] extends Record<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTSchema | string\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\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key in keyof Typed['response']]: UnwrapSchema<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTyped['response'][key],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tReturnType<Handler>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\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\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'200': ReturnType<Handler>\n\t\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}\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: never\n\t\t\t\t\t>\n\t\t\t\t>\n\t\t}\n\t> {\n\t\tif (typeof path === 'string') {\n\t\t\tpath = [path] as Path\n\t\t}\n\t\tfor (const p of path) {\n\t\t\tthis.add(method, p, handler, hook as LocalHook<any, any>, config)\n\t\t}\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<Key extends string | number | symbol, Value>(\n\t\tname: Key,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Reconciliation<Instance['store'], Record<Key, Value>>\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\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<NewStore extends Record<string, unknown>>(\n\t\tstore: NewStore\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Reconciliation<Instance['store'], DeepWritable<NewStore>>\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\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\tname: string | number | symbol | Record<string, unknown>,\n\t\tvalue?: unknown\n\t) {\n\t\tif (typeof name === 'object') {\n\t\t\tthis.store = mergeDeep(this.store, name)\n\n\t\t\treturn this as any\n\t\t}\n\n\t\tif (!(name in this.store)) {\n\t\t\t// eslint-disable-next-line no-extra-semi\n\t\t\t;(this.store as Record<string | number | symbol, unknown>)[name] =\n\t\t\t\tvalue\n\t\t}\n\n\t\treturn this as any\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, const Value>(\n\t\tname: Name,\n\t\tvalue: Value\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Reconciliation<Instance['request'], Record<Name, Value>>\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\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<Decorators extends Record<string, unknown>>(\n\t\tname: Decorators\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Reconciliation<\n\t\t\t\tInstance['request'],\n\t\t\t\tDecorators\n\t\t\t>\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\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(name: string | Record<string, unknown>, value?: unknown) {\n\t\tif (typeof name === 'object') {\n\t\t\tthis.decorators = mergeDeep(this.decorators, name)\n\n\t\t\treturn this as any\n\t\t}\n\n\t\t// @ts-ignore\n\t\tif (!(name in this.decorators)) this.decorators[name] = value\n\n\t\treturn this as any\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<Returned extends Object = Object>(\n\t\ttransform: (\n\t\t\tcontext: Context<\n\t\t\t\tTypedSchemaToRoute<\n\t\t\t\t\tInstance['schema'],\n\t\t\t\t\tInstance['meta']['defs']\n\t\t\t\t>,\n\t\t\t\tInstance['store']\n\t\t\t> &\n\t\t\t\tInstance['request']\n\t\t) => MaybePromise<Returned> extends { store: any } ? never : Returned\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\terror: Instance['error']\n\t\t\trequest: Instance['request'] & Awaited<Returned>\n\t\t\tschema: Instance['schema']\n\t\t\tmeta: Instance['meta']\n\t\t}\n\t> {\n\t\t// @ts-ignore\n\t\ttransform.$elysia = 'derive'\n\n\t\treturn this.onTransform(transform as any) as any\n\t}\n\n\t/**\n\t * ### schema\n\t * Define type strict validation for request\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 * .schema({\n\t * response: t.String()\n\t * })\n\t * .get('/', () => 'hi')\n\t * ```\n\t */\n\tschema<\n\t\tSchema extends TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t> = TypedSchema<\n\t\t\tExclude<keyof Instance['meta']['defs'], number | symbol>\n\t\t>,\n\t\tNewInstance = Elysia<\n\t\t\tBasePath,\n\t\t\t{\n\t\t\t\trequest: Instance['request']\n\t\t\t\tstore: Instance['store']\n\t\t\t\terror: Instance['error']\n\t\t\t\tschema: MergeSchema<Schema, Instance['schema']>\n\t\t\t\tmeta: Instance['meta']\n\t\t\t}\n\t\t>\n\t>(schema: Schema): NewInstance {\n\t\tconst models = this.meta.defs\n\n\t\tthis.$schema = {\n\t\t\tbody: getSchemaValidator(schema.body, {\n\t\t\t\tmodels\n\t\t\t}),\n\t\t\theaders: getSchemaValidator(schema?.headers, {\n\t\t\t\tmodels,\n\t\t\t\tadditionalProperties: true\n\t\t\t}),\n\t\t\tparams: getSchemaValidator(schema?.params, {\n\t\t\t\tmodels\n\t\t\t}),\n\t\t\tquery: getSchemaValidator(schema?.query, {\n\t\t\t\tmodels\n\t\t\t}),\n\t\t\t// @ts-ignore\n\t\t\tresponse: getSchemaValidator(schema?.response, {\n\t\t\t\tmodels\n\t\t\t})\n\t\t}\n\n\t\treturn this as any\n\t}\n\n\tcompile() {\n\t\tthis.fetch = this.config.aot\n\t\t\t? composeGeneralHandler(this)\n\t\t\t: createDynamicHandler(this)\n\n\t\tif (typeof this.server?.reload === 'function')\n\t\t\tthis.server.reload({\n\t\t\t\t...this.server,\n\t\t\t\tfetch: this.fetch\n\t\t\t})\n\n\t\treturn this\n\t}\n\n\thandle = async (request: Request) => this.fetch(request)\n\n\t/**\n\t * 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\t(this.fetch = this.config.aot\n\t\t\t? composeGeneralHandler(this)\n\t\t\t: createDynamicHandler(this))(request)\n\n\tprivate handleError = async (\n\t\trequest: Request,\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\tset: Context['set']\n\t) =>\n\t\t(this.handleError = this.config.aot\n\t\t\t? composeErrorHandler(this)\n\t\t\t: createDynamicErrorHandler(this))(request, error, set)\n\n\tprivate outerErrorHandler = (error: Error) =>\n\t\tnew Response(error.message, {\n\t\t\t// @ts-ignore\n\t\t\tstatus: error?.status ?? 500\n\t\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(8080)\n\t * ```\n\t */\n\tlisten = (\n\t\toptions: string | number | Partial<Serve>,\n\t\tcallback?: ListenCallback\n\t) => {\n\t\tif (!Bun) throw new Error('Bun to run')\n\n\t\tthis.compile()\n\n\t\tif (typeof options === 'string') {\n\t\t\toptions = +options.trim()\n\n\t\t\tif (Number.isNaN(options))\n\t\t\t\tthrow new Error('Port must be a numeric value')\n\t\t}\n\n\t\tconst fetch = this.fetch\n\n\t\tconst serve =\n\t\t\ttypeof options === 'object'\n\t\t\t\t? ({\n\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t...this.config.serve,\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfetch,\n\t\t\t\t\t\terror: this.outerErrorHandler\n\t\t\t\t } as Serve)\n\t\t\t\t: ({\n\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t...this.config.serve,\n\t\t\t\t\t\tport: options,\n\t\t\t\t\t\tfetch,\n\t\t\t\t\t\terror: this.outerErrorHandler\n\t\t\t\t } as Serve)\n\n\t\tif (typeof Bun === 'undefined')\n\t\t\tthrow new Error(\n\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)\n\n\t\tthis.server = Bun?.serve(serve)\n\n\t\tfor (let i = 0; i < this.event.start.length; i++)\n\t\t\tthis.event.start[i](this as any)\n\n\t\tif (callback) callback(this.server!)\n\n\t\tPromise.all(this.lazyLoadModules).then(() => {\n\t\t\tBun?.gc(true)\n\t\t})\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(8080)\n\t *\n\t * // Sometime later\n\t * app.stop()\n\t * ```\n\t */\n\tstop = async () => {\n\t\tif (!this.server)\n\t\t\tthrow new Error(\n\t\t\t\t\"Elysia isn't running. Call `app.listen` to start the server.\"\n\t\t\t)\n\n\t\tthis.server.stop()\n\n\t\tfor (let i = 0; i < this.event.stop.length; i++)\n\t\t\tawait this.event.stop[i](this as any)\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 Promise.all(this.lazyLoadModules)\n\t}\n\n\tmodel<Name extends string, Model extends TSchema>(\n\t\tname: Name,\n\t\tmodel: Model\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\tRecord<Name, Static<Model>>\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\tmodel<Recorder extends Record<string, TSchema>>(\n\t\trecord: Recorder\n\t): Elysia<\n\t\tBasePath,\n\t\t{\n\t\t\tstore: Instance['store']\n\t\t\trequest: Instance['request']\n\t\t\tschema: Instance['schema']\n\t\t\terror: Instance['error']\n\t\t\tmeta: {\n\t\t\t\tschema: Instance['meta']['schema']\n\t\t\t\tdefs: Reconciliation<\n\t\t\t\t\tInstance['meta']['defs'],\n\t\t\t\t\t{\n\t\t\t\t\t\t[key in keyof Recorder]: Static<Recorder[key]>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\texposed: Instance['meta']['exposed']\n\t\t\t}\n\t\t}\n\t>\n\n\tmodel(name: string, model?: TSchema) {\n\t\tif (typeof name === 'object')\n\t\t\tObject.entries(name).forEach(([key, value]) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (!(key in this.meta.defs)) this.meta.defs[key] = value\n\t\t\t})\n\t\telse (this.meta.defs as Record<string, TSchema>)[name] = model!\n\n\t\treturn this as any\n\t}\n}\n\nexport { mapResponse, mapCompactResponse, mapEarlyResponse } from './handler'\nexport { Elysia }\nexport { t } from './custom-types'\nexport { ws } from './ws'\n\nexport {\n\tgetSchemaValidator,\n\tmergeDeep,\n\tmergeHook,\n\tmergeObjectArray,\n\tgetResponseSchemaValidator\n} from './utils'\n\nexport {\n\tParseError,\n\tNotFoundError,\n\tValidationError,\n\tInternalServerError\n} from './error'\n\nexport type { Context, PreContext } from './context'\nexport type {\n\tHandler,\n\tRegisteredHook,\n\tBeforeRequestHandler,\n\tVoidRequestHandler,\n\tTypedRoute,\n\tOverwritableTypeRoute,\n\tElysiaInstance,\n\tElysiaConfig,\n\tHTTPMethod,\n\tComposedHandler,\n\tInternalRoute,\n\tBodyParser,\n\tErrorHandler,\n\tErrorCode,\n\tTypedSchema,\n\tLocalHook,\n\tLocalHandler,\n\tLifeCycle,\n\tLifeCycleEvent,\n\tAfterRequestHandler,\n\tHookHandler,\n\tTypedSchemaToRoute,\n\tUnwrapSchema,\n\tLifeCycleStore,\n\tVoidLifeCycle,\n\tSchemaValidator,\n\tExtractPath,\n\tIsPathParameter,\n\tIsAny,\n\tIsNever,\n\tUnknownFallback,\n\tWithArray,\n\tObjectValues,\n\tMaybePromise,\n\tMergeIfNotNull,\n\tElysiaDefaultMeta,\n\tAnyTypedSchema,\n\tDeepMergeTwoTypes\n} from './types'\n"
41
41
  ],
42
42
  "mappings": "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AAG,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,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAI/C,EAAG,EAAG,EAAG,EAAG,EAAG,E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",
43
- "debugId": "EE11537A0537F7E064756e2164756e21",
43
+ "debugId": "D7C918DE1CB90B8F64756e2164756e21",
44
44
  "names": []
45
45
  }