elysia 1.2.21 → 1.2.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.
@@ -17,13 +17,13 @@
17
17
  "/* eslint-disable sonarjs/no-duplicate-string */\nimport type { Serve } from 'bun'\nimport type { TSchema } from '@sinclair/typebox'\n\nimport { WebStandardAdapter } from '../web-standard/index'\nimport { parseSetCookies } from '../web-standard/handler'\nimport type { ElysiaAdapter } from '../types'\n\nimport { createNativeStaticHandler } from './handler'\nimport { serializeCookie } from '../../cookies'\nimport { isProduction, ValidationError } from '../../error'\nimport {\n\tgetSchemaValidator,\n\thasHeaderShorthand,\n\tisNotEmpty,\n\tisNumericString,\n\tmergeHook,\n\trandomId\n} from '../../utils'\n\nimport {\n\tcreateHandleWSResponse,\n\tcreateWSMessageParser,\n\tElysiaWS,\n\twebsocket\n} from '../../ws/index'\nimport type { ServerWebSocket } from '../../ws/bun'\n\nexport const BunAdapter: ElysiaAdapter = {\n\t...WebStandardAdapter,\n\tname: 'bun',\n\thandler: {\n\t\t...WebStandardAdapter.handler,\n\t\tcreateNativeStaticHandler\n\t},\n\tcomposeHandler: {\n\t\t...WebStandardAdapter.composeHandler,\n\t\theaders: hasHeaderShorthand\n\t\t\t? 'c.headers = c.request.headers.toJSON()\\n'\n\t\t\t: 'c.headers = {}\\n' +\n\t\t\t\t'for (const [key, value] of c.request.headers.entries())' +\n\t\t\t\t'c.headers[key] = value\\n'\n\t},\n\tlisten(app) {\n\t\treturn (options, callback) => {\n\t\t\tif (typeof Bun === 'undefined')\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'.listen() is designed to run on Bun only. If you are running Elysia in other environment please use a dedicated plugin or export the handler via Elysia.fetch'\n\t\t\t\t)\n\n\t\t\tapp.compile()\n\n\t\t\tif (typeof options === 'string') {\n\t\t\t\tif (!isNumericString(options))\n\t\t\t\t\tthrow new Error('Port must be a numeric value')\n\n\t\t\t\toptions = parseInt(options)\n\t\t\t}\n\n\t\t\tconst fetch = app.fetch\n\n\t\t\tconst serve =\n\t\t\t\ttypeof options === 'object'\n\t\t\t\t\t? ({\n\t\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t\treusePort: true,\n\t\t\t\t\t\t\t...(app.config.serve || {}),\n\t\t\t\t\t\t\t...(options || {}),\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tstatic: {\n\t\t\t\t\t\t\t\t...app.router.static.http.static,\n\t\t\t\t\t\t\t\t...app.config.serve?.static\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twebsocket: {\n\t\t\t\t\t\t\t\t...(app.config.websocket || {}),\n\t\t\t\t\t\t\t\t...(websocket || {})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfetch,\n\t\t\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\t\t\terror: app.outerErrorHandler\n\t\t\t\t\t\t} as Serve)\n\t\t\t\t\t: ({\n\t\t\t\t\t\t\tdevelopment: !isProduction,\n\t\t\t\t\t\t\treusePort: true,\n\t\t\t\t\t\t\t...(app.config.serve || {}),\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tstatic: app.router.static.http.static,\n\t\t\t\t\t\t\twebsocket: {\n\t\t\t\t\t\t\t\t...(app.config.websocket || {}),\n\t\t\t\t\t\t\t\t...(websocket || {})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tport: options,\n\t\t\t\t\t\t\tfetch,\n\t\t\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\t\t\terror: app.outerErrorHandler\n\t\t\t\t\t\t} as Serve)\n\n\t\t\tapp.server = Bun?.serve(serve)\n\n\t\t\tif (app.event.start)\n\t\t\t\tfor (let i = 0; i < app.event.start.length; i++)\n\t\t\t\t\tapp.event.start[i].fn(app)\n\n\t\t\tif (callback) callback(app.server!)\n\n\t\t\tprocess.on('beforeExit', () => {\n\t\t\t\tif (app.server) {\n\t\t\t\t\tapp.server.stop?.()\n\t\t\t\t\tapp.server = null\n\n\t\t\t\t\tif (app.event.stop)\n\t\t\t\t\t\tfor (let i = 0; i < app.event.stop.length; i++)\n\t\t\t\t\t\t\tapp.event.stop[i].fn(app)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// @ts-expect-error private\n\t\t\tapp.promisedModules.then(() => {\n\t\t\t\tBun?.gc(false)\n\t\t\t})\n\t\t}\n\t},\n\tws(app, path, options) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconst { parse, body, response, ...rest } = options\n\n\t\tconst validateMessage = getSchemaValidator(body, {\n\t\t\t// @ts-expect-error private property\n\t\t\tmodules: app.definitions.typebox,\n\t\t\t// @ts-expect-error private property\n\t\t\tmodels: app.definitions.type as Record<string, TSchema>,\n\t\t\tnormalize: app.config.normalize\n\t\t})\n\n\t\tconst validateResponse = getSchemaValidator(response as any, {\n\t\t\t// @ts-expect-error private property\n\t\t\tmodules: app.definitions.typebox,\n\t\t\t// @ts-expect-error private property\n\t\t\tmodels: app.definitions.type as Record<string, TSchema>,\n\t\t\tnormalize: app.config.normalize\n\t\t})\n\n\t\tapp.route(\n\t\t\t'$INTERNALWS',\n\t\t\tpath as any,\n\t\t\tasync (context) => {\n\t\t\t\t// @ts-expect-error private property\n\t\t\t\tconst server = app.getServer()\n\n\t\t\t\t// ! Enable static code analysis just in case resolveUnknownFunction doesn't work, do not remove\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\tconst { set, path, qi, headers, query, params } = context\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tcontext.validator = validateResponse\n\n\t\t\t\tif (options.upgrade) {\n\t\t\t\t\tif (typeof options.upgrade === 'function') {\n\t\t\t\t\t\tconst temp = options.upgrade(context as any)\n\t\t\t\t\t\tif (temp instanceof Promise) await temp\n\t\t\t\t\t} else if (options.upgrade)\n\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\tset.headers,\n\t\t\t\t\t\t\toptions.upgrade as Record<string, any>\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tif (set.cookie && isNotEmpty(set.cookie)) {\n\t\t\t\t\tconst cookie = serializeCookie(set.cookie)\n\n\t\t\t\t\tif (cookie) set.headers['set-cookie'] = cookie\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tset.headers['set-cookie'] &&\n\t\t\t\t\tArray.isArray(set.headers['set-cookie'])\n\t\t\t\t)\n\t\t\t\t\tset.headers = parseSetCookies(\n\t\t\t\t\t\tnew Headers(set.headers as any) as Headers,\n\t\t\t\t\t\tset.headers['set-cookie']\n\t\t\t\t\t) as any\n\n\t\t\t\tconst handleResponse = createHandleWSResponse(validateResponse)\n\t\t\t\tconst parseMessage = createWSMessageParser(parse)\n\n\t\t\t\tlet _id: string | undefined\n\n\t\t\t\tconst errorHandlers = [\n\t\t\t\t\t...(Array.isArray(options.error)\n\t\t\t\t\t\t? options.error\n\t\t\t\t\t\t: [options.error]),\n\t\t\t\t\t...(app.event.error ?? []).map((x) =>\n\t\t\t\t\t\ttypeof x === 'function' ? x : x.fn\n\t\t\t\t\t)\n\t\t\t\t]\n\n\t\t\t\tconst handleErrors = !errorHandlers.length\n\t\t\t\t\t? () => {}\n\t\t\t\t\t: async (ws: ServerWebSocket<any>, error: unknown) => {\n\t\t\t\t\t\t\tfor (const handleError of errorHandlers) {\n\t\t\t\t\t\t\t\tlet response = handleError(\n\t\t\t\t\t\t\t\t\tObject.assign(context, { error })\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif (response instanceof Promise)\n\t\t\t\t\t\t\t\t\tresponse = await response\n\n\t\t\t\t\t\t\t\tawait handleResponse(ws, response)\n\n\t\t\t\t\t\t\t\tif (response) break\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tserver?.upgrade<any>(context.request, {\n\t\t\t\t\t\theaders: isNotEmpty(set.headers)\n\t\t\t\t\t\t\t? (set.headers as Record<string, string>)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\tget id() {\n\t\t\t\t\t\t\t\tif (_id) return _id\n\n\t\t\t\t\t\t\t\treturn (_id = randomId())\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvalidator: validateResponse,\n\t\t\t\t\t\t\tping(data?: unknown) {\n\t\t\t\t\t\t\t\toptions.ping?.(data)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpong(data?: unknown) {\n\t\t\t\t\t\t\t\toptions.pong?.(data)\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\topen(ws: ServerWebSocket<any>) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\thandleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.open?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(ws, context as any)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmessage: async (\n\t\t\t\t\t\t\t\tws: ServerWebSocket<any>,\n\t\t\t\t\t\t\t\t_message: any\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst message = await parseMessage(ws, _message)\n\n\t\t\t\t\t\t\t\tif (validateMessage?.Check(message) === false)\n\t\t\t\t\t\t\t\t\treturn void ws.send(\n\t\t\t\t\t\t\t\t\t\tnew ValidationError(\n\t\t\t\t\t\t\t\t\t\t\t'message',\n\t\t\t\t\t\t\t\t\t\t\tvalidateMessage,\n\t\t\t\t\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\t\t\t\t).message as string\n\t\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\thandleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.message?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(\n\t\t\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\t\t\tcontext as any,\n\t\t\t\t\t\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tmessage as any\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdrain(ws: ServerWebSocket<any>) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\thandleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.drain?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(ws, context as any)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclose(\n\t\t\t\t\t\t\t\tws: ServerWebSocket<any>,\n\t\t\t\t\t\t\t\tcode: number,\n\t\t\t\t\t\t\t\treason: string\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\thandleResponse(\n\t\t\t\t\t\t\t\t\t\tws,\n\t\t\t\t\t\t\t\t\t\toptions.close?.(\n\t\t\t\t\t\t\t\t\t\t\tnew ElysiaWS(ws, context as any),\n\t\t\t\t\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t\t\t\t\t\treason\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\thandleErrors(ws, error)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t\treturn\n\n\t\t\t\tset.status = 400\n\t\t\t\treturn 'Expected a websocket connection'\n\t\t\t},\n\t\t\t{\n\t\t\t\t...rest,\n\t\t\t\twebsocket: options\n\t\t\t} as any\n\t\t)\n\t}\n}\n",
18
18
  "// @ts-ignore\nexport const isBun = typeof Bun !== 'undefined'\n// @ts-ignore\nexport const isDeno = typeof Deno !== 'undefined'\n",
19
19
  "import { isBun } from './utils'\n\nexport const env = isBun\n\t? Bun.env\n\t: typeof process !== 'undefined' && process?.env\n\t\t? process.env\n\t\t: {}\n",
20
- "import type { AnyElysia } from '.'\n\nimport { Value } from '@sinclair/typebox/value'\nimport {\n\tKind,\n\tTypeBoxError,\n\ttype TAnySchema,\n\ttype TSchema\n} from '@sinclair/typebox'\n\nimport { parseQuery, parseQueryFromURL } from './fast-querystring'\n\nimport { decode as decodeURIComponent } from './deuri'\n\nimport {\n\tELYSIA_REQUEST_ID,\n\tgetCookieValidator,\n\tgetLoosePath,\n\tlifeCycleToFn,\n\trandomId,\n\tredirect,\n\tsignCookie,\n\tisNotEmpty,\n\tencodePath\n} from './utils'\nimport { ParseError, error } from './error'\n\nimport {\n\tNotFoundError,\n\tValidationError,\n\tInternalServerError,\n\tERROR_CODE,\n\tElysiaCustomStatusResponse\n} from './error'\nimport { ELYSIA_TRACE, type TraceHandler } from './trace'\n\nimport { Sucrose, hasReturn, sucrose } from './sucrose'\nimport { parseCookie, type CookieOptions } from './cookies'\n\nimport type { TraceEvent } from './trace'\nimport type {\n\tComposedHandler,\n\tHandler,\n\tHookContainer,\n\tLifeCycleStore,\n\tSchemaValidator\n} from './types'\nimport { type TypeCheck } from './type-system'\n\nconst TypeBoxSymbol = {\n\toptional: Symbol.for('TypeBox.Optional'),\n\tkind: Symbol.for('TypeBox.Kind')\n} as const\n\nconst isOptional = (validator?: TypeCheck<any>) => {\n\tif (!validator) return false\n\n\t// @ts-expect-error\n\tconst schema = validator?.schema\n\n\tif (schema?.[TypeBoxSymbol.kind] === 'Import')\n\t\treturn validator.References().some(isOptional as any)\n\n\treturn !!schema && TypeBoxSymbol.optional in schema\n}\n\nconst allocateIf = (value: string, condition: unknown) =>\n\tcondition ? value : ''\n\nconst defaultParsers = [\n\t'json',\n\t'text',\n\t'urlencoded',\n\t'arrayBuffer',\n\t'formdata',\n\t'application/json',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'text/plain',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'application/x-www-form-urlencoded',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'application/octet-stream',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'multipart/form-data'\n]\n\nexport const hasAdditionalProperties = (\n\t_schema: TAnySchema | TypeCheck<any>\n) => {\n\tif (!_schema) return false\n\n\t// @ts-expect-error private property\n\tconst schema: TAnySchema = (_schema as TypeCheck<any>)?.schema ?? _schema\n\n\t// @ts-expect-error private property\n\tif (schema[TypeBoxSymbol.kind] === 'Import' && _schema.References()) {\n\t\treturn _schema.References().some(hasAdditionalProperties)\n\t}\n\n\tif (schema.anyOf) return schema.anyOf.some(hasAdditionalProperties)\n\tif (schema.someOf) return schema.someOf.some(hasAdditionalProperties)\n\tif (schema.allOf) return schema.allOf.some(hasAdditionalProperties)\n\tif (schema.not) return schema.not.some(hasAdditionalProperties)\n\n\tif (schema.type === 'object') {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tif ('additionalProperties' in schema) return schema.additionalProperties\n\t\tif ('patternProperties' in schema) return false\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (property.type === 'object') {\n\t\t\t\tif (hasAdditionalProperties(property)) return true\n\t\t\t} else if (property.anyOf) {\n\t\t\t\tfor (let i = 0; i < property.anyOf.length; i++)\n\t\t\t\t\tif (hasAdditionalProperties(property.anyOf[i])) return true\n\t\t\t}\n\n\t\t\treturn property.additionalProperties\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn false\n}\n\nconst createReport = ({\n\tcontext = 'c',\n\ttrace = [],\n\taddFn\n}: {\n\tcontext?: string\n\ttrace?: (TraceHandler | HookContainer<TraceHandler>)[]\n\taddFn(string: string): void\n}) => {\n\tif (!trace.length)\n\t\treturn () => {\n\t\t\treturn {\n\t\t\t\tresolveChild() {\n\t\t\t\t\treturn () => {}\n\t\t\t\t},\n\t\t\t\tresolve() {}\n\t\t\t}\n\t\t}\n\n\tfor (let i = 0; i < trace.length; i++)\n\t\taddFn(\n\t\t\t`let report${i}, reportChild${i}, reportErr${i}, reportErrChild${i};` +\n\t\t\t\t`let trace${i} = ${context}[ELYSIA_TRACE]?.[${i}] ?? trace[${i}](${context});\\n`\n\t\t)\n\n\treturn (\n\t\tevent: TraceEvent,\n\t\t{\n\t\t\tname,\n\t\t\ttotal = 0\n\t\t}: {\n\t\t\tname?: string\n\t\t\tattribute?: string\n\t\t\ttotal?: number\n\t\t} = {}\n\t) => {\n\t\t// ? For debug specific event\n\t\t// if (event !== 'mapResponse')\n\t\t// \treturn {\n\t\t// \t\tresolveChild() {\n\t\t// \t\t\treturn () => {}\n\t\t// \t\t},\n\t\t// \t\tresolve() {}\n\t\t// \t}\n\n\t\tif (!name) name = 'anonymous'\n\n\t\tconst reporter = event === 'error' ? 'reportErr' : 'report'\n\n\t\tfor (let i = 0; i < trace.length; i++)\n\t\t\taddFn(\n\t\t\t\t`${reporter}${i} = trace${i}.${event}({` +\n\t\t\t\t\t`id,` +\n\t\t\t\t\t`event:'${event}',` +\n\t\t\t\t\t`name:'${name}',` +\n\t\t\t\t\t`begin:performance.now(),` +\n\t\t\t\t\t`total:${total}` +\n\t\t\t\t\t`})\\n`\n\t\t\t)\n\n\t\treturn {\n\t\t\tresolve() {\n\t\t\t\tfor (let i = 0; i < trace.length; i++)\n\t\t\t\t\taddFn(`${reporter}${i}.resolve()\\n`)\n\t\t\t},\n\t\t\tresolveChild(name: string) {\n\t\t\t\tfor (let i = 0; i < trace.length; i++)\n\t\t\t\t\taddFn(\n\t\t\t\t\t\t`${reporter}Child${i}=${reporter}${i}.resolveChild?.shift()?.({` +\n\t\t\t\t\t\t\t`id,` +\n\t\t\t\t\t\t\t`event:'${event}',` +\n\t\t\t\t\t\t\t`name:'${name}',` +\n\t\t\t\t\t\t\t`begin:performance.now()` +\n\t\t\t\t\t\t\t`})\\n`\n\t\t\t\t\t)\n\n\t\t\t\treturn (binding?: string) => {\n\t\t\t\t\tfor (let i = 0; i < trace.length; i++) {\n\t\t\t\t\t\tif (binding)\n\t\t\t\t\t\t\t// Don't report error because HTTP response is expected and not an actual error to look for\n\t\t\t\t\t\t\t// if (${binding} instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\t\t\t// ${reporter}Child${i}?.(${binding}.error)\n\t\t\t\t\t\t\t// ${reporter}Child${i}?.()\\n\n\t\t\t\t\t\t\t// } else\n\t\t\t\t\t\t\taddFn(\n\t\t\t\t\t\t\t\t`if(${binding} instanceof Error){` +\n\t\t\t\t\t\t\t\t\t`${reporter}Child${i}?.(${binding}) ` +\n\t\t\t\t\t\t\t\t\t`}else{` +\n\t\t\t\t\t\t\t\t\t`${reporter}Child${i}?.()` +\n\t\t\t\t\t\t\t\t\t'}'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telse addFn(`${reporter}Child${i}?.()\\n`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst composeValidationFactory = ({\n\tinjectResponse = '',\n\tnormalize = false,\n\tvalidator,\n\tencodeSchema = false\n}: {\n\tinjectResponse?: string\n\tnormalize?: boolean\n\tvalidator: SchemaValidator\n\tencodeSchema?: boolean\n}) => ({\n\tcomposeValidation: (type: string, value = `c.${type}`) =>\n\t\t`c.set.status=422;throw new ValidationError('${type}',validator.${type},${value})`,\n\tcomposeResponseValidation: (name = 'r') => {\n\t\tlet code = injectResponse + '\\n'\n\n\t\tcode +=\n\t\t\t`if(${name} instanceof ElysiaCustomStatusResponse){` +\n\t\t\t`c.set.status=${name}.code\\n` +\n\t\t\t`${name}=${name}.response` +\n\t\t\t`}` +\n\t\t\t`const isResponse=${name} instanceof Response\\n` +\n\t\t\t`switch(c.set.status){`\n\n\t\tfor (const [status, value] of Object.entries(\n\t\t\tvalidator.response as Record<string, TypeCheck<any>>\n\t\t)) {\n\t\t\tcode += `\\ncase ${status}:if(!isResponse){`\n\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in value &&\n\t\t\t\t!hasAdditionalProperties(value as any)\n\t\t\t)\n\t\t\t\tcode += `${name}=validator.response['${status}'].Clean(${name})\\n`\n\n\t\t\tcode +=\n\t\t\t\t`if(validator.response['${status}'].Check(${name})===false){` +\n\t\t\t\t'c.set.status=422\\n' +\n\t\t\t\t`throw new ValidationError('response',validator.response['${status}'],${name})` +\n\t\t\t\t'}' +\n\t\t\t\t`c.set.status = ${status}` +\n\t\t\t\t'}\\n'\n\n\t\t\tif (\n\t\t\t\tencodeSchema &&\n\t\t\t\t// @ts-expect-error hasTransform is appended by getResponseSchemaValidator\n\t\t\t\t(value.hasTransform || typeof value.Decode === 'function')\n\t\t\t) {\n\t\t\t\tcode += `${name}=validator.response['${status}'].Encode(${name})\\n`\n\t\t\t}\n\n\t\t\tcode += 'break\\n'\n\t\t}\n\n\t\treturn code + '}'\n\t}\n})\n\nconst KindSymbol = Symbol.for('TypeBox.Kind')\n\nexport const hasType = (type: string, schema: TAnySchema) => {\n\tif (!schema) return\n\n\tif (KindSymbol in schema && schema[KindSymbol] === type) return true\n\n\tif (schema.type === 'object') {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (property.type === 'object') {\n\t\t\t\tif (hasType(type, property)) return true\n\t\t\t} else if (property.anyOf) {\n\t\t\t\tfor (let i = 0; i < property.anyOf.length; i++)\n\t\t\t\t\tif (hasType(type, property.anyOf[i])) return true\n\t\t\t}\n\n\t\t\tif (KindSymbol in property && property[KindSymbol] === type)\n\t\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn (\n\t\tschema.properties &&\n\t\tKindSymbol in schema.properties &&\n\t\tschema.properties[KindSymbol] === type\n\t)\n}\n\nexport const hasProperty = (\n\texpectedProperty: string,\n\t_schema: TAnySchema | TypeCheck<any>\n) => {\n\tif (!_schema) return\n\n\t// @ts-expect-error private property\n\tconst schema = _schema.schema ?? _schema\n\n\tif (schema[TypeBoxSymbol.kind] === 'Import')\n\t\treturn _schema\n\t\t\t.References()\n\t\t\t.some((schema: TAnySchema) => hasProperty(expectedProperty, schema))\n\n\tif (schema.type === 'object') {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tif (!properties) return false\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (expectedProperty in property) return true\n\n\t\t\tif (property.type === 'object') {\n\t\t\t\tif (hasProperty(expectedProperty, property)) return true\n\t\t\t} else if (property.anyOf) {\n\t\t\t\tfor (let i = 0; i < property.anyOf.length; i++) {\n\t\t\t\t\tif (hasProperty(expectedProperty, property.anyOf[i]))\n\t\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn expectedProperty in schema\n}\n\nconst TransformSymbol = Symbol.for('TypeBox.Transform')\n\nexport const hasRef = (schema: TAnySchema): boolean => {\n\tif (!schema) return false\n\n\tif (schema.oneOf)\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tif (hasRef(schema.oneOf[i])) return true\n\n\tif (schema.anyOf)\n\t\tfor (let i = 0; i < schema.anyOf.length; i++)\n\t\t\tif (hasRef(schema.anyOf[i])) return true\n\n\tif (schema.oneOf)\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tif (hasRef(schema.oneOf[i])) return true\n\n\tif (schema.allOf)\n\t\tfor (let i = 0; i < schema.allOf.length; i++)\n\t\t\tif (hasRef(schema.allOf[i])) return true\n\n\tif (schema.not && hasRef(schema.not)) return true\n\n\tif (schema.type === 'object' && schema.properties) {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (hasRef(property)) return true\n\n\t\t\tif (\n\t\t\t\tproperty.type === 'array' &&\n\t\t\t\tproperty.items &&\n\t\t\t\thasRef(property.items)\n\t\t\t)\n\t\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tif (schema.type === 'array' && schema.items && hasRef(schema.items))\n\t\treturn true\n\n\treturn schema[Kind] === 'Ref' && '$ref' in schema\n}\n\nexport const hasTransform = (schema: TAnySchema): boolean => {\n\tif (!schema) return false\n\n\tif (schema.$ref && schema.$defs && schema.$ref in schema.$defs)\n\t\treturn hasTransform(schema.$defs[schema.$ref])\n\n\tif (schema.oneOf)\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tif (hasTransform(schema.oneOf[i])) return true\n\n\tif (schema.anyOf) {\n\t\tfor (let i = 0; i < schema.anyOf.length; i++)\n\t\t\tif (hasTransform(schema.anyOf[i])) return true\n\t}\n\n\tif (schema.allOf)\n\t\tfor (let i = 0; i < schema.allOf.length; i++)\n\t\t\tif (hasTransform(schema.allOf[i])) return true\n\n\tif (schema.not && hasTransform(schema.not)) return true\n\n\tif (schema.type === 'object' && schema.properties) {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (hasTransform(property)) return true\n\n\t\t\tif (\n\t\t\t\tproperty.type === 'array' &&\n\t\t\t\tproperty.items &&\n\t\t\t\thasTransform(property.items)\n\t\t\t)\n\t\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tif (schema.type === 'array' && schema.items && hasTransform(schema.items))\n\t\treturn true\n\n\treturn (\n\t\tTransformSymbol in schema ||\n\t\t(!!schema.properties && TransformSymbol in schema.properties)\n\t)\n}\n\n/**\n * This function will return the type of unioned if all unioned type is the same.\n * It's intent to use for content-type mapping only\n *\n * ```ts\n * t.Union([\n * t.Object({\n * password: t.String()\n * }),\n * t.Object({\n * token: t.String()\n * })\n * ])\n * ```\n */\n// const getUnionedType = (validator: TypeCheck<any> | undefined) => {\n// \tif (!validator) return\n\n// \t// @ts-ignore\n// \tconst schema = validator?.schema\n\n// \tif (schema && 'anyOf' in schema) {\n// \t\tlet foundDifference = false\n// \t\tconst type: string = schema.anyOf[0].type\n\n// \t\tfor (const validator of schema.anyOf as { type: string }[]) {\n// \t\t\tif (validator.type !== type) {\n// \t\t\t\tfoundDifference = true\n// \t\t\t\tbreak\n// \t\t\t}\n// \t\t}\n\n// \t\tif (!foundDifference) return type\n// \t}\n\n// \t// @ts-ignore\n// \treturn validator.schema?.type\n// }\n\nconst matchFnReturn = /(?:return|=>) \\S+\\(/g\n\nexport const isAsyncName = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\treturn fn.constructor.name === 'AsyncFunction'\n}\n\nexport const isAsync = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\tif (fn.constructor.name === 'AsyncFunction') return true\n\n\tconst literal = fn.toString()\n\tif (literal.includes('=> response.clone(')) return false\n\tif (literal.includes('await')) return true\n\tif (literal.includes('async')) return true\n\t// v8 minified\n\tif (literal.includes('=>response.clone(')) return false\n\n\treturn !!literal.match(matchFnReturn)\n}\n\nexport const isGenerator = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\treturn (\n\t\tfn.constructor.name === 'AsyncGeneratorFunction' ||\n\t\tfn.constructor.name === 'GeneratorFunction'\n\t)\n}\n\nexport const composeHandler = ({\n\tapp,\n\tpath,\n\tmethod,\n\thooks,\n\tvalidator,\n\thandler,\n\tallowMeta = false,\n\tinference,\n\tasManifest = false\n}: {\n\tapp: AnyElysia\n\tpath: string\n\tmethod: string\n\thooks: Partial<LifeCycleStore>\n\tvalidator: SchemaValidator\n\thandler: unknown | Handler<any, any>\n\tallowMeta?: boolean\n\tinference: Sucrose.Inference\n\tasManifest?: boolean\n}): ComposedHandler => {\n\tconst adapter = app['~adapter'].composeHandler\n\tconst adapterHandler = app['~adapter'].handler\n\tconst isHandleFn = typeof handler === 'function'\n\n\tif (!isHandleFn) {\n\t\thandler = adapterHandler.mapResponse(handler, {\n\t\t\t// @ts-expect-error private property\n\t\t\theaders: app.setHeaders ?? {}\n\t\t})\n\n\t\tif (\n\t\t\thooks.parse?.length &&\n\t\t\thooks.transform?.length &&\n\t\t\thooks.beforeHandle?.length &&\n\t\t\thooks.afterHandle?.length\n\t\t) {\n\t\t\tif (handler instanceof Response)\n\t\t\t\treturn Function(\n\t\t\t\t\t'a',\n\t\t\t\t\t`return function(){return a.clone()}`\n\t\t\t\t)(handler)\n\n\t\t\treturn Function('a', 'return function(){return a}')(handler)\n\t\t}\n\t}\n\n\tconst handle = isHandleFn ? `handler(c)` : `handler`\n\tconst hasAfterResponse = !!hooks.afterResponse?.length\n\n\tconst hasTrace = !!hooks.trace?.length\n\tlet fnLiteral = ''\n\n\tinference = sucrose(\n\t\tObject.assign({}, hooks, {\n\t\t\thandler: handler as any\n\t\t}),\n\t\tinference\n\t)\n\n\tif (adapter.declare) {\n\t\tconst literal = adapter.declare(inference)\n\n\t\tif (literal) fnLiteral += literal\n\t}\n\n\tif (inference.server)\n\t\tfnLiteral +=\n\t\t\t\"Object.defineProperty(c,'server',{\" +\n\t\t\t'get:function(){return getServer()}' +\n\t\t\t'})\\n'\n\n\tvalidator.createBody?.()\n\tvalidator.createQuery?.()\n\tvalidator.createHeaders?.()\n\tvalidator.createParams?.()\n\tvalidator.createCookie?.()\n\tvalidator.createResponse?.()\n\n\tconst hasValidation =\n\t\tvalidator.body ||\n\t\tvalidator.headers ||\n\t\tvalidator.params ||\n\t\tvalidator.query ||\n\t\tvalidator.cookie ||\n\t\tvalidator.response\n\n\tconst hasQuery = inference.query || !!validator.query\n\n\tconst requestNoBody =\n\t\thooks.parse?.length === 1 &&\n\t\t// @ts-expect-error\n\t\thooks.parse[0].fn === 'none'\n\n\tconst hasBody =\n\t\tmethod !== '$INTERNALWS' &&\n\t\tmethod !== 'GET' &&\n\t\tmethod !== 'HEAD' &&\n\t\t(inference.body || !!validator.body || !!hooks.parse?.length) &&\n\t\t!requestNoBody\n\n\tif (hasBody) fnLiteral += `let isParsing=false\\n`\n\n\t// @ts-expect-error private\n\tconst defaultHeaders = app.setHeaders\n\tconst hasDefaultHeaders =\n\t\tdefaultHeaders && !!Object.keys(defaultHeaders).length\n\n\t// ? defaultHeaders doesn't imply that user will use headers in handler\n\tconst hasHeaders =\n\t\tinference.headers ||\n\t\tvalidator.headers ||\n\t\t(adapter.preferWebstandardHeaders !== true && inference.body)\n\n\tconst hasCookie = inference.cookie || !!validator.cookie\n\n\tconst cookieValidator = hasCookie\n\t\t? getCookieValidator({\n\t\t\t\t// @ts-expect-error private property\n\t\t\t\tmodules: app.definitions.typebox,\n\t\t\t\tvalidator: validator.cookie as any,\n\t\t\t\tdefaultConfig: app.config.cookie,\n\t\t\t\tdynamic: !!app.config.aot,\n\t\t\t\t// @ts-expect-error\n\t\t\t\tconfig: validator.cookie?.config ?? {},\n\t\t\t\t// @ts-expect-error\n\t\t\t\tmodels: app.definitions.type\n\t\t\t})\n\t\t: undefined\n\n\t// @ts-ignore private property\n\tconst cookieMeta = cookieValidator?.config as {\n\t\tsecrets?: string | string[]\n\t\tsign: string[] | true\n\t\tproperties: { [x: string]: Object }\n\t}\n\n\tlet encodeCookie = ''\n\n\tif (cookieMeta?.sign) {\n\t\tif (!cookieMeta.secrets)\n\t\t\tthrow new Error(\n\t\t\t\t`t.Cookie required secret which is not set in (${method}) ${path}.`\n\t\t\t)\n\n\t\tconst secret = !cookieMeta.secrets\n\t\t\t? undefined\n\t\t\t: typeof cookieMeta.secrets === 'string'\n\t\t\t\t? cookieMeta.secrets\n\t\t\t\t: cookieMeta.secrets[0]\n\n\t\tencodeCookie += 'const _setCookie = c.set.cookie\\n' + 'if(_setCookie){'\n\n\t\tif (cookieMeta.sign === true) {\n\t\t\tencodeCookie +=\n\t\t\t\t'for(const [key, cookie] of Object.entries(_setCookie)){' +\n\t\t\t\t`c.set.cookie[key].value=await signCookie(cookie.value,'${secret}')` +\n\t\t\t\t'}'\n\t\t} else\n\t\t\tfor (const name of cookieMeta.sign)\n\t\t\t\tencodeCookie +=\n\t\t\t\t\t`if(_setCookie['${name}']?.value){` +\n\t\t\t\t\t`c.set.cookie['${name}'].value=await signCookie(_setCookie['${name}'].value,'${secret}')` +\n\t\t\t\t\t'}'\n\n\t\tencodeCookie += '}\\n'\n\t}\n\n\tconst normalize = app.config.normalize\n\tconst encodeSchema = app.config.experimental?.encodeSchema\n\n\tconst { composeValidation, composeResponseValidation } =\n\t\tcomposeValidationFactory({\n\t\t\tnormalize,\n\t\t\tvalidator,\n\t\t\tencodeSchema\n\t\t})\n\n\tif (hasHeaders) fnLiteral += adapter.headers\n\n\tif (hasTrace) fnLiteral += 'const id=c[ELYSIA_REQUEST_ID]\\n'\n\n\tconst report = createReport({\n\t\ttrace: hooks.trace,\n\t\taddFn: (word) => {\n\t\t\tfnLiteral += word\n\t\t}\n\t})\n\n\tfnLiteral += 'try{'\n\n\tif (hasCookie) {\n\t\tconst get = (name: keyof CookieOptions, defaultValue?: unknown) => {\n\t\t\t// @ts-ignore\n\t\t\tconst value = cookieMeta?.[name] ?? defaultValue\n\t\t\tif (!value)\n\t\t\t\treturn typeof defaultValue === 'string'\n\t\t\t\t\t? `${name}:\"${defaultValue}\",`\n\t\t\t\t\t: `${name}:${defaultValue},`\n\n\t\t\tif (typeof value === 'string') return `${name}:'${value}',`\n\t\t\tif (value instanceof Date)\n\t\t\t\treturn `${name}: new Date(${value.getTime()}),`\n\n\t\t\treturn `${name}:${value},`\n\t\t}\n\n\t\tconst options = cookieMeta\n\t\t\t? `{secrets:${\n\t\t\t\t\tcookieMeta.secrets !== undefined\n\t\t\t\t\t\t? typeof cookieMeta.secrets === 'string'\n\t\t\t\t\t\t\t? `'${cookieMeta.secrets}'`\n\t\t\t\t\t\t\t: '[' +\n\t\t\t\t\t\t\t\tcookieMeta.secrets.reduce(\n\t\t\t\t\t\t\t\t\t(a, b) => a + `'${b}',`,\n\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t\t']'\n\t\t\t\t\t\t: 'undefined'\n\t\t\t\t},` +\n\t\t\t\t`sign:${\n\t\t\t\t\tcookieMeta.sign === true\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: cookieMeta.sign !== undefined\n\t\t\t\t\t\t\t? '[' +\n\t\t\t\t\t\t\t\tcookieMeta.sign.reduce(\n\t\t\t\t\t\t\t\t\t(a, b) => a + `'${b}',`,\n\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t\t']'\n\t\t\t\t\t\t\t: 'undefined'\n\t\t\t\t},` +\n\t\t\t\tget('domain') +\n\t\t\t\tget('expires') +\n\t\t\t\tget('httpOnly') +\n\t\t\t\tget('maxAge') +\n\t\t\t\tget('path', '/') +\n\t\t\t\tget('priority') +\n\t\t\t\tget('sameSite') +\n\t\t\t\tget('secure') +\n\t\t\t\t'}'\n\t\t\t: 'undefined'\n\n\t\tif (hasHeaders)\n\t\t\tfnLiteral += `\\nc.cookie=await parseCookie(c.set,c.headers.cookie,${options})\\n`\n\t\telse\n\t\t\tfnLiteral += `\\nc.cookie=await parseCookie(c.set,c.request.headers.get('cookie'),${options})\\n`\n\t}\n\n\tif (hasQuery) {\n\t\tconst destructured = <\n\t\t\t{\n\t\t\t\tkey: string\n\t\t\t\tisArray: boolean\n\t\t\t\tisNestedObjectArray: boolean\n\t\t\t\tisObject: boolean\n\t\t\t\tanyOf: boolean\n\t\t\t}[]\n\t\t>[]\n\n\t\t// @ts-ignore\n\t\tif (validator.query && validator.query.schema.type === 'object') {\n\t\t\t// @ts-expect-error private property\n\t\t\tconst properties = validator.query.schema.properties\n\n\t\t\tif (!hasAdditionalProperties(validator.query as any))\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tfor (let [key, _value] of Object.entries(properties)) {\n\t\t\t\t\tlet value = _value as TAnySchema\n\n\t\t\t\t\tconst isArray =\n\t\t\t\t\t\tvalue.type === 'array' ||\n\t\t\t\t\t\t!!value.anyOf?.some(\n\t\t\t\t\t\t\t(v: TSchema) =>\n\t\t\t\t\t\t\t\tv.type === 'string' &&\n\t\t\t\t\t\t\t\tv.format === 'ArrayString'\n\t\t\t\t\t\t)\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (\n\t\t\t\t\t\tvalue &&\n\t\t\t\t\t\tTypeBoxSymbol.optional in value &&\n\t\t\t\t\t\tvalue.type === 'array' &&\n\t\t\t\t\t\tvalue.items\n\t\t\t\t\t)\n\t\t\t\t\t\tvalue = value.items\n\n\t\t\t\t\t// @ts-ignore unknown\n\t\t\t\t\tconst { type, anyOf } = value\n\n\t\t\t\t\tdestructured.push({\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tisArray,\n\t\t\t\t\t\tisNestedObjectArray:\n\t\t\t\t\t\t\t(isArray && value.items?.type === 'object') ||\n\t\t\t\t\t\t\t!!value.items?.anyOf?.some(\n\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t(x) => x.type === 'object' || x.type === 'array'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\tisObject:\n\t\t\t\t\t\t\ttype === 'object' ||\n\t\t\t\t\t\t\tanyOf?.some(\n\t\t\t\t\t\t\t\t(v: TSchema) =>\n\t\t\t\t\t\t\t\t\tv.type === 'string' &&\n\t\t\t\t\t\t\t\t\tv.format === 'ArrayString'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\tanyOf: !!anyOf\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t}\n\n\t\tif (!destructured.length) {\n\t\t\tfnLiteral +=\n\t\t\t\t'if(c.qi===-1){' +\n\t\t\t\t'c.query={}' +\n\t\t\t\t'}else{' +\n\t\t\t\t'c.query=parseQueryFromURL(c.url.slice(c.qi + 1))' +\n\t\t\t\t'}'\n\t\t} else {\n\t\t\tfnLiteral +=\n\t\t\t\t'if(c.qi!==-1){' + `let url='&'+c.url.slice(c.qi + 1)\\n`\n\n\t\t\tlet index = 0\n\t\t\tfor (const {\n\t\t\t\tkey,\n\t\t\t\tisArray,\n\t\t\t\tisObject,\n\t\t\t\tisNestedObjectArray,\n\t\t\t\tanyOf\n\t\t\t} of destructured) {\n\t\t\t\tconst init =\n\t\t\t\t\t(index === 0 ? 'let ' : '') +\n\t\t\t\t\t`memory=url.indexOf('&${key}=')` +\n\t\t\t\t\t`\\nlet a${index}\\n`\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\tfnLiteral += init\n\n\t\t\t\t\tif (isNestedObjectArray)\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`while(memory!==-1){` +\n\t\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t\t`if(a${index}===undefined)\\n` +\n\t\t\t\t\t\t\t`a${index}=''\\n` +\n\t\t\t\t\t\t\t`else\\n` +\n\t\t\t\t\t\t\t`a${index}+=','\\n` +\n\t\t\t\t\t\t\t`let temp\\n` +\n\t\t\t\t\t\t\t`if(memory===-1)temp=decodeURIComponent(url.slice(start).replace(/\\\\+/g,' '))\\n` +\n\t\t\t\t\t\t\t`else temp=decodeURIComponent(url.slice(start, memory).replace(/\\\\+/g,' '))\\n` +\n\t\t\t\t\t\t\t`const charCode=temp.charCodeAt(0)\\n` +\n\t\t\t\t\t\t\t`if(charCode!==91&&charCode !== 123)\\n` +\n\t\t\t\t\t\t\t`temp='\"'+temp+'\"'\\n` +\n\t\t\t\t\t\t\t`a${index}+=temp\\n` +\n\t\t\t\t\t\t\t`if(memory===-1)break\\n` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&${key}=',memory)\\n` +\n\t\t\t\t\t\t\t`if(memory===-1)break` +\n\t\t\t\t\t\t\t`}` +\n\t\t\t\t\t\t\t`try{` +\n\t\t\t\t\t\t\t`if(a${index}.charCodeAt(0)===91)` +\n\t\t\t\t\t\t\t`a${index} = JSON.parse(a${index})\\n` +\n\t\t\t\t\t\t\t`else\\n` +\n\t\t\t\t\t\t\t`a${index}=JSON.parse('['+a${index}+']')` +\n\t\t\t\t\t\t\t`}catch{}\\n`\n\t\t\t\t\telse\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`while(memory!==-1){` +\n\t\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t\t`if(a${index}===undefined)` +\n\t\t\t\t\t\t\t`a${index}=[]\\n` +\n\t\t\t\t\t\t\t`if(memory===-1){` +\n\t\t\t\t\t\t\t`const temp=decodeURIComponent(url.slice(start)).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`if(temp.includes(',')){a${index}=a${index}.concat(temp.split(','))}` +\n\t\t\t\t\t\t\t`else{a${index}.push(decodeURIComponent(url.slice(start)).replace(/\\\\+/g,' '))}\\n` +\n\t\t\t\t\t\t\t`break` +\n\t\t\t\t\t\t\t`}else{` +\n\t\t\t\t\t\t\t`const temp=decodeURIComponent(url.slice(start, memory)).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`if(temp.includes(',')){a${index}=a${index}.concat(temp.split(','))}` +\n\t\t\t\t\t\t\t`else{a${index}.push(temp)}\\n` +\n\t\t\t\t\t\t\t`}` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&${key}=',memory)\\n` +\n\t\t\t\t\t\t\t`if(memory===-1) break\\n` +\n\t\t\t\t\t\t\t`}`\n\t\t\t\t} else if (isObject)\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\tinit +\n\t\t\t\t\t\t`if(memory!==-1){` +\n\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t`if(memory===-1)a${index}=decodeURIComponent(url.slice(start).replace(/\\\\+/g,' '))` +\n\t\t\t\t\t\t`else a${index}=decodeURIComponent(url.slice(start,memory).replace(/\\\\+/g,' '))` +\n\t\t\t\t\t\t`if(a${index}!==undefined)` +\n\t\t\t\t\t\t`try{` +\n\t\t\t\t\t\t`a${index}=JSON.parse(a${index})` +\n\t\t\t\t\t\t`}catch{}` +\n\t\t\t\t\t\t'}'\n\t\t\t\t// Might be union primitive and array\n\t\t\t\telse {\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\tinit +\n\t\t\t\t\t\t`if(memory!==-1){` +\n\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t`if(memory===-1)a${index}=decodeURIComponent(url.slice(start).replace(/\\\\+/g,' '))\\n` +\n\t\t\t\t\t\t`else{` +\n\t\t\t\t\t\t`a${index}=decodeURIComponent(url.slice(start,memory).replace(/\\\\+/g,' '))`\n\n\t\t\t\t\tif (anyOf)\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`\\nlet deepMemory=url.indexOf('&${key}=',memory)\\n` +\n\t\t\t\t\t\t\t`if(deepMemory!==-1){` +\n\t\t\t\t\t\t\t`a${index}=[a${index}]\\n` +\n\t\t\t\t\t\t\t`let first=true\\n` +\n\t\t\t\t\t\t\t`while(true){` +\n\t\t\t\t\t\t\t`const start=deepMemory+${key.length + 2}\\n` +\n\t\t\t\t\t\t\t`if(first)first=false\\n` +\n\t\t\t\t\t\t\t`else deepMemory = url.indexOf('&', start)\\n` +\n\t\t\t\t\t\t\t`let value\\n` +\n\t\t\t\t\t\t\t`if(deepMemory===-1)value=url.slice(start).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`else value=url.slice(start, deepMemory).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`value=decodeURIComponent(value)\\n` +\n\t\t\t\t\t\t\t`if(value===null){if(deepMemory===-1){break}else{continue}}\\n` +\n\t\t\t\t\t\t\t`const vStart=value.charCodeAt(0)\\n` +\n\t\t\t\t\t\t\t`const vEnd=value.charCodeAt(value.length - 1)\\n` +\n\t\t\t\t\t\t\t`if((vStart===91&&vEnd===93)||(vStart===123&&vEnd===125))\\n` +\n\t\t\t\t\t\t\t`try{` +\n\t\t\t\t\t\t\t`a${index}.push(JSON.parse(value))` +\n\t\t\t\t\t\t\t`}catch{` +\n\t\t\t\t\t\t\t`a${index}.push(value)` +\n\t\t\t\t\t\t\t`}` +\n\t\t\t\t\t\t\t`if(deepMemory===-1)break` +\n\t\t\t\t\t\t\t`}}`\n\n\t\t\t\t\tfnLiteral += '}}'\n\t\t\t\t}\n\n\t\t\t\tindex++\n\t\t\t\tfnLiteral += '\\n'\n\t\t\t}\n\n\t\t\tfnLiteral +=\n\t\t\t\t`c.query={` +\n\t\t\t\tdestructured\n\t\t\t\t\t.map(({ key }, index) => `'${key}':a${index}`)\n\t\t\t\t\t.join(',') +\n\t\t\t\t`}`\n\n\t\t\t// If there are no query parameters, set it to an empty object\n\t\t\tfnLiteral += `} else c.query = {}\\n`\n\t\t}\n\t}\n\n\tconst isAsyncHandler = typeof handler === 'function' && isAsync(handler)\n\n\tconst saveResponse =\n\t\thasTrace || hooks.afterResponse?.length ? 'c.response= ' : ''\n\n\tconst maybeAsync =\n\t\thasCookie ||\n\t\thasBody ||\n\t\tisAsyncHandler ||\n\t\t!!hooks.parse?.length ||\n\t\t!!hooks.afterHandle?.some(isAsync) ||\n\t\t!!hooks.beforeHandle?.some(isAsync) ||\n\t\t!!hooks.transform?.some(isAsync) ||\n\t\t!!hooks.mapResponse?.some(isAsync)\n\n\tconst maybeStream =\n\t\t(typeof handler === 'function' ? isGenerator(handler as any) : false) ||\n\t\t!!hooks.beforeHandle?.some(isGenerator) ||\n\t\t!!hooks.afterHandle?.some(isGenerator) ||\n\t\t!!hooks.transform?.some(isGenerator)\n\n\tconst hasSet =\n\t\tinference.cookie ||\n\t\tinference.set ||\n\t\thasHeaders ||\n\t\thasTrace ||\n\t\tvalidator.response ||\n\t\t(isHandleFn && hasDefaultHeaders) ||\n\t\tmaybeStream\n\n\tconst mapResponseContext = adapter.mapResponseContext\n\t\t? `,${adapter.mapResponseContext}`\n\t\t: ''\n\n\tif (inference.route) fnLiteral += `c.route=\\`${path}\\`\\n`\n\n\tconst parseReporter = report('parse', {\n\t\ttotal: hooks.parse?.length\n\t})\n\n\tif (hasBody) {\n\t\tconst isOptionalBody = isOptional(validator.body)\n\n\t\tconst hasBodyInference =\n\t\t\t!!hooks.parse?.length || inference.body || validator.body\n\n\t\tif (adapter.parser.declare) fnLiteral += adapter.parser.declare\n\n\t\tfnLiteral += '\\nisParsing=true\\n'\n\n\t\tconst parser =\n\t\t\ttypeof hooks.parse === 'string'\n\t\t\t\t? hooks.parse\n\t\t\t\t: Array.isArray(hooks.parse) && hooks.parse.length === 1\n\t\t\t\t\t? typeof hooks.parse[0] === 'string'\n\t\t\t\t\t\t? hooks.parse[0]\n\t\t\t\t\t\t: typeof hooks.parse[0].fn === 'string'\n\t\t\t\t\t\t\t? hooks.parse[0].fn\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t: undefined\n\n\t\tif (parser && defaultParsers.includes(parser)) {\n\t\t\tconst reporter = report('parse', {\n\t\t\t\ttotal: hooks.parse?.length\n\t\t\t})\n\n\t\t\tswitch (parser) {\n\t\t\t\tcase 'json':\n\t\t\t\tcase 'application/json':\n\t\t\t\t\tfnLiteral += adapter.parser.json(isOptionalBody)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'text':\n\t\t\t\tcase 'text/plain':\n\t\t\t\t\tfnLiteral += adapter.parser.text(isOptionalBody)\n\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'urlencoded':\n\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\tfnLiteral += adapter.parser.urlencoded(isOptionalBody)\n\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'arrayBuffer':\n\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\tfnLiteral += adapter.parser.arrayBuffer(isOptionalBody)\n\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'formdata':\n\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\tfnLiteral += adapter.parser.formData(isOptionalBody)\n\t\t\t\t\tbreak\n\n\t\t\t\tdefault:\n\t\t\t\t\tif ((parser[0] as string) in app['~parser']) {\n\t\t\t\t\t\tfnLiteral += hasHeaders\n\t\t\t\t\t\t\t? `let contentType = c.headers['content-type']`\n\t\t\t\t\t\t\t: `let contentType = c.request.headers.get('content-type')`\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`\\nif(contentType){` +\n\t\t\t\t\t\t\t`const index=contentType.indexOf(';')\\n` +\n\t\t\t\t\t\t\t`if(index!==-1)contentType=contentType.substring(0, index)}\\n` +\n\t\t\t\t\t\t\t`else{contentType=''}` +\n\t\t\t\t\t\t\t`c.contentType=contentType\\n`\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`let result=parser['${parser}'](c, contentType)\\n` +\n\t\t\t\t\t\t\t`if(result instanceof Promise)result=await result\\n` +\n\t\t\t\t\t\t\t`if(result instanceof ElysiaCustomStatusResponse)throw result\\n` +\n\t\t\t\t\t\t\t`if(result!==undefined)c.body=result\\n` +\n\t\t\t\t\t\t\t'delete c.contentType\\n'\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak\n\t\t\t}\n\n\t\t\treporter.resolve()\n\t\t} else if (hasBodyInference) {\n\t\t\tfnLiteral += '\\n'\n\t\t\tfnLiteral += hasHeaders\n\t\t\t\t? `let contentType = c.headers['content-type']`\n\t\t\t\t: `let contentType = c.request.headers.get('content-type')`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`\\nif(contentType){` +\n\t\t\t\t`const index=contentType.indexOf(';')\\n` +\n\t\t\t\t`if(index!==-1)contentType=contentType.substring(0, index)}\\n` +\n\t\t\t\t`else{contentType=''}` +\n\t\t\t\t`c.contentType=contentType\\n`\n\n\t\t\tif (hooks.parse?.length) fnLiteral += `let used=false\\n`\n\n\t\t\tconst reporter = report('parse', {\n\t\t\t\ttotal: hooks.parse?.length\n\t\t\t})\n\n\t\t\tlet hasDefaultParser = false\n\t\t\tif (hooks.parse)\n\t\t\t\tfor (let i = 0; i < hooks.parse.length; i++) {\n\t\t\t\t\tconst name = `bo${i}`\n\t\t\t\t\tif (i !== 0) fnLiteral += `\\nif(!used){`\n\n\t\t\t\t\tif (typeof hooks.parse[i].fn === 'string') {\n\t\t\t\t\t\tconst endUnit = reporter.resolveChild(\n\t\t\t\t\t\t\thooks.parse[i].fn as unknown as string\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tswitch (hooks.parse[i].fn as unknown as string) {\n\t\t\t\t\t\t\tcase 'json':\n\t\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral += adapter.parser.json(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral += adapter.parser.text(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'urlencoded':\n\t\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\tadapter.parser.urlencoded(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\tadapter.parser.arrayBuffer(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'formdata':\n\t\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\tadapter.parser.formData(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\t`${name}=parser['${hooks.parse[i].fn}'](c,contentType)\\n` +\n\t\t\t\t\t\t\t\t\t`if(${name} instanceof Promise)${name}=await ${name}\\n` +\n\t\t\t\t\t\t\t\t\t`if(${name}!==undefined){c.body=${name};used=true}\\n`\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst endUnit = reporter.resolveChild(\n\t\t\t\t\t\t\thooks.parse[i].fn.name\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`let ${name}=e.parse[${i}]\\n` +\n\t\t\t\t\t\t\t`${name}=${name}(c,contentType)\\n` +\n\t\t\t\t\t\t\t`if(${name} instanceof Promise)${name}=await ${name}\\n` +\n\t\t\t\t\t\t\t`if(${name}!==undefined){c.body=${name};used=true}`\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (i !== 0) fnLiteral += `}`\n\n\t\t\t\t\tif (hasDefaultParser) break\n\t\t\t\t}\n\n\t\t\treporter.resolve()\n\n\t\t\tif (!hasDefaultParser) {\n\t\t\t\tif (hooks.parse?.length)\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`\\nif(!used){\\n` +\n\t\t\t\t\t\t`if(!contentType) throw new ParseError()\\n`\n\n\t\t\t\tfnLiteral += `switch(contentType){`\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`case 'application/json':\\n` +\n\t\t\t\t\tadapter.parser.json(isOptionalBody) +\n\t\t\t\t\t`break\\n` +\n\t\t\t\t\t`case 'text/plain':` +\n\t\t\t\t\tadapter.parser.text(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n' +\n\t\t\t\t\t`case 'application/x-www-form-urlencoded':` +\n\t\t\t\t\tadapter.parser.urlencoded(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n' +\n\t\t\t\t\t`case 'application/octet-stream':` +\n\t\t\t\t\tadapter.parser.arrayBuffer(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n' +\n\t\t\t\t\t`case 'multipart/form-data':` +\n\t\t\t\t\tadapter.parser.formData(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n'\n\n\t\t\t\tfor (const key of Object.keys(app['~parser']))\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`case '${key}':` +\n\t\t\t\t\t\t`let bo${key}=parser['${key}'](c,contentType)\\n` +\n\t\t\t\t\t\t`if(bo${key} instanceof Promise)bo${key}=await bo${key}\\n` +\n\t\t\t\t\t\t`if(bo${key} instanceof ElysiaCustomStatusResponse)throw result\\n` +\n\t\t\t\t\t\t`if(bo${key}!==undefined)c.body=bo${key}\\n` +\n\t\t\t\t\t\t`break` +\n\t\t\t\t\t\t'\\n'\n\n\t\t\t\tif (hooks.parse?.length) fnLiteral += '}'\n\n\t\t\t\tfnLiteral += '}'\n\t\t\t}\n\n\t\t\t// fnLiteral += '}'\n\t\t}\n\n\t\tfnLiteral += '\\ndelete c.contentType'\n\t\tfnLiteral += '\\nisParsing=false\\n'\n\t}\n\n\tparseReporter.resolve()\n\n\tif (hooks?.transform) {\n\t\tconst reporter = report('transform', {\n\t\t\ttotal: hooks.transform.length\n\t\t})\n\n\t\tif (hooks.transform.length) fnLiteral += 'let transformed\\n'\n\n\t\tfor (let i = 0; i < hooks.transform.length; i++) {\n\t\t\tconst transform = hooks.transform[i]\n\n\t\t\tconst endUnit = reporter.resolveChild(transform.fn.name)\n\n\t\t\tfnLiteral += isAsync(transform)\n\t\t\t\t? `transformed=await e.transform[${i}](c)\\n`\n\t\t\t\t: `transformed=e.transform[${i}](c)\\n`\n\n\t\t\tif (transform.subType === 'mapDerive')\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(transformed instanceof ElysiaCustomStatusResponse)throw transformed\\n` +\n\t\t\t\t\t`else{` +\n\t\t\t\t\t`transformed.request=c.request\\n` +\n\t\t\t\t\t`transformed.store=c.store\\n` +\n\t\t\t\t\t`transformed.qi=c.qi\\n` +\n\t\t\t\t\t`transformed.path=c.path\\n` +\n\t\t\t\t\t`transformed.url=c.url\\n` +\n\t\t\t\t\t`transformed.redirect=c.redirect\\n` +\n\t\t\t\t\t`transformed.set=c.set\\n` +\n\t\t\t\t\t`transformed.error=c.error\\n` +\n\t\t\t\t\t`c=transformed` +\n\t\t\t\t\t'}'\n\t\t\telse\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(transformed instanceof ElysiaCustomStatusResponse)throw transformed\\n` +\n\t\t\t\t\t`else Object.assign(c,transformed)\\n`\n\n\t\t\tendUnit()\n\t\t}\n\n\t\treporter.resolve()\n\t}\n\n\tif (validator) {\n\t\tif (validator.headers) {\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in validator.headers &&\n\t\t\t\t!hasAdditionalProperties(validator.headers as any)\n\t\t\t)\n\t\t\t\tfnLiteral += 'c.headers=validator.headers.Clean(c.headers);\\n'\n\n\t\t\tif (hasProperty('default', validator.headers))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tvalidator.headers.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tconst parsed =\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t\t: value\n\n\t\t\t\t\tif (parsed !== undefined)\n\t\t\t\t\t\tfnLiteral += `c.headers['${key}']??=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\tif (isOptional(validator.headers))\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.headers)){`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.headers.Check(c.headers) === false){` +\n\t\t\t\tcomposeValidation('headers') +\n\t\t\t\t'}'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.headers.schema))\n\t\t\t\tfnLiteral += `c.headers=validator.headers.Decode(c.headers)\\n`\n\n\t\t\tif (isOptional(validator.headers)) fnLiteral += '}'\n\t\t}\n\n\t\tif (validator.params) {\n\t\t\tif (hasProperty('default', validator.params))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tvalidator.params.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tconst parsed =\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t\t: value\n\n\t\t\t\t\tif (parsed !== undefined)\n\t\t\t\t\t\tfnLiteral += `c.params['${key}']??=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.params.Check(c.params)===false){` +\n\t\t\t\tcomposeValidation('params') +\n\t\t\t\t'}'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.params.schema))\n\t\t\t\tfnLiteral += `c.params=validator.params.Decode(c.params)\\n`\n\t\t}\n\n\t\tif (validator.query) {\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in validator.query &&\n\t\t\t\t!hasAdditionalProperties(validator.query as any)\n\t\t\t)\n\t\t\t\tfnLiteral += 'c.query=validator.query.Clean(c.query)\\n'\n\n\t\t\tif (hasProperty('default', validator.query))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tvalidator.query.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tconst parsed =\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t\t: value\n\n\t\t\t\t\tif (parsed !== undefined)\n\t\t\t\t\t\tfnLiteral += `if(c.query['${key}']===undefined)c.query['${key}']=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\tif (isOptional(validator.query))\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.query)){`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.query.Check(c.query)===false){` +\n\t\t\t\tcomposeValidation('query') +\n\t\t\t\t`}`\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.query.schema))\n\t\t\t\tfnLiteral += `c.query=validator.query.Decode(Object.assign({},c.query))\\n`\n\n\t\t\tif (isOptional(validator.query)) fnLiteral += `}`\n\t\t}\n\n\t\tif (validator.body) {\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in validator.body &&\n\t\t\t\t!hasAdditionalProperties(validator.body as any)\n\t\t\t)\n\t\t\t\tfnLiteral += 'c.body=validator.body.Clean(c.body)\\n'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tconst doesHaveTransform = hasTransform(validator.body.schema)\n\n\t\t\tif (doesHaveTransform || isOptional(validator.body))\n\t\t\t\tfnLiteral += `const isNotEmptyObject=c.body&&(typeof c.body===\"object\"&&isNotEmpty(c.body))\\n`\n\n\t\t\tif (hasProperty('default', validator.body)) {\n\t\t\t\tconst value = Value.Default(\n\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\tvalidator.body.schema,\n\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\tvalidator.body.schema.type === 'object' ? {} : undefined\n\t\t\t\t)\n\n\t\t\t\tconst parsed =\n\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t: value\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t`if(typeof c.body==='object')` +\n\t\t\t\t\t`c.body=Object.assign(${parsed},c.body)\\n` +\n\t\t\t\t\t`else c.body=${parsed}\\n`\n\n\t\t\t\tif (isOptional(validator.body))\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(isNotEmptyObject&&validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t'}'\n\t\t\t\telse\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t`}`\n\n\t\t\t\tfnLiteral += '}'\n\t\t\t} else {\n\t\t\t\tif (isOptional(validator.body))\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(isNotEmptyObject&&validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t'}'\n\t\t\t\telse\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t'}'\n\t\t\t}\n\n\t\t\tif (doesHaveTransform)\n\t\t\t\tfnLiteral += `if(isNotEmptyObject)c.body=validator.body.Decode(c.body)\\n`\n\t\t}\n\n\t\tif (\n\t\t\tcookieValidator &&\n\t\t\tisNotEmpty(\n\t\t\t\t// @ts-ignore\n\t\t\t\tcookieValidator?.schema?.properties ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcookieValidator?.schema?.schema ??\n\t\t\t\t\t{}\n\t\t\t)\n\t\t) {\n\t\t\tfnLiteral +=\n\t\t\t\t`const cookieValue={}\\n` +\n\t\t\t\t`for(const [key,value] of Object.entries(c.cookie))` +\n\t\t\t\t`cookieValue[key]=value.value\\n`\n\n\t\t\tif (hasProperty('default', cookieValidator))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcookieValidator.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tfnLiteral += `cookieValue['${key}'] = ${\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: value\n\t\t\t\t\t}\\n`\n\t\t\t\t}\n\n\t\t\tif (isOptional(validator.cookie))\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.cookie)){`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.cookie.Check(cookieValue)===false){` +\n\t\t\t\tcomposeValidation('cookie', 'cookieValue') +\n\t\t\t\t'}'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.cookie.schema))\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`for(const [key,value] of Object.entries(validator.cookie.Decode(cookieValue)))` +\n\t\t\t\t\t`c.cookie[key].value=value\\n`\n\n\t\t\tif (isOptional(validator.cookie)) fnLiteral += `}`\n\t\t}\n\t}\n\n\tif (hooks?.beforeHandle) {\n\t\tconst reporter = report('beforeHandle', {\n\t\t\ttotal: hooks.beforeHandle.length\n\t\t})\n\n\t\tlet hasResolve = false\n\n\t\tfor (let i = 0; i < hooks.beforeHandle.length; i++) {\n\t\t\tconst beforeHandle = hooks.beforeHandle[i]\n\n\t\t\tconst endUnit = reporter.resolveChild(beforeHandle.fn.name)\n\n\t\t\tconst returning = hasReturn(beforeHandle)\n\t\t\tconst isResolver =\n\t\t\t\tbeforeHandle.subType === 'resolve' ||\n\t\t\t\tbeforeHandle.subType === 'mapResolve'\n\n\t\t\tif (isResolver) {\n\t\t\t\tif (!hasResolve) {\n\t\t\t\t\thasResolve = true\n\t\t\t\t\tfnLiteral += '\\nlet resolved\\n'\n\t\t\t\t}\n\n\t\t\t\tfnLiteral += isAsync(beforeHandle)\n\t\t\t\t\t? `resolved=await e.beforeHandle[${i}](c);\\n`\n\t\t\t\t\t: `resolved=e.beforeHandle[${i}](c);\\n`\n\n\t\t\t\tif (beforeHandle.subType === 'mapResolve')\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(resolved instanceof ElysiaCustomStatusResponse)` +\n\t\t\t\t\t\t`throw resolved\\n` +\n\t\t\t\t\t\t`else{` +\n\t\t\t\t\t\t`resolved.request = c.request\\n` +\n\t\t\t\t\t\t`resolved.store = c.store\\n` +\n\t\t\t\t\t\t`resolved.qi = c.qi\\n` +\n\t\t\t\t\t\t`resolved.path = c.path\\n` +\n\t\t\t\t\t\t`resolved.url = c.url\\n` +\n\t\t\t\t\t\t`resolved.redirect = c.redirect\\n` +\n\t\t\t\t\t\t`resolved.set = c.set\\n` +\n\t\t\t\t\t\t`resolved.error = c.error\\n` +\n\t\t\t\t\t\t`c = resolved` +\n\t\t\t\t\t\t`}`\n\t\t\t\telse\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(resolved instanceof ElysiaCustomStatusResponse)throw resolved\\n` +\n\t\t\t\t\t\t`else Object.assign(c, resolved)\\n`\n\t\t\t} else if (!returning) {\n\t\t\t\tfnLiteral += isAsync(beforeHandle)\n\t\t\t\t\t? `await e.beforeHandle[${i}](c)\\n`\n\t\t\t\t\t: `e.beforeHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit()\n\t\t\t} else {\n\t\t\t\tfnLiteral += isAsync(beforeHandle)\n\t\t\t\t\t? `be=await e.beforeHandle[${i}](c)\\n`\n\t\t\t\t\t: `be=e.beforeHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit('be')\n\n\t\t\t\tfnLiteral += `if(be!==undefined){`\n\t\t\t\treporter.resolve()\n\n\t\t\t\tif (hooks.afterHandle?.length) {\n\t\t\t\t\treport('handle', {\n\t\t\t\t\t\tname: isHandleFn\n\t\t\t\t\t\t\t? (handler as Function).name\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}).resolve()\n\n\t\t\t\t\tconst reporter = report('afterHandle', {\n\t\t\t\t\t\ttotal: hooks.afterHandle.length\n\t\t\t\t\t})\n\n\t\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\t\tconst hook = hooks.afterHandle[i]\n\t\t\t\t\t\tconst returning = hasReturn(hook)\n\t\t\t\t\t\tconst endUnit = reporter.resolveChild(hook.fn.name)\n\n\t\t\t\t\t\tfnLiteral += `c.response = be\\n`\n\n\t\t\t\t\t\tif (!returning) {\n\t\t\t\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t\t\t\t? `await e.afterHandle[${i}](c, be)\\n`\n\t\t\t\t\t\t\t\t: `e.afterHandle[${i}](c, be)\\n`\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t\t\t\t? `af = await e.afterHandle[${i}](c)\\n`\n\t\t\t\t\t\t\t\t: `af = e.afterHandle[${i}](c)\\n`\n\n\t\t\t\t\t\t\tfnLiteral += `if(af!==undefined) c.response=be=af\\n`\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tendUnit('af')\n\t\t\t\t\t}\n\t\t\t\t\treporter.resolve()\n\t\t\t\t}\n\n\t\t\t\tif (validator.response)\n\t\t\t\t\tfnLiteral += composeResponseValidation('be')\n\n\t\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t\t})\n\n\t\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\t\tfnLiteral += `c.response=be\\n`\n\n\t\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`if(mr===undefined){` +\n\t\t\t\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t\t`if(mr!==undefined)be=c.response=mr` +\n\t\t\t\t\t\t\t'}'\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmapResponseReporter.resolve()\n\n\t\t\t\tfnLiteral += encodeCookie\n\t\t\t\tfnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})}\\n`\n\t\t\t}\n\t\t}\n\n\t\treporter.resolve()\n\t}\n\n\tif (hooks.afterHandle?.length) {\n\t\tconst handleReporter = report('handle', {\n\t\t\tname: isHandleFn ? (handler as Function).name : undefined\n\t\t})\n\n\t\tif (hooks.afterHandle.length)\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=c.response=await ${handle}\\n`\n\t\t\t\t: `let r=c.response=${handle}\\n`\n\t\telse\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=await ${handle}\\n`\n\t\t\t\t: `let r=${handle}\\n`\n\n\t\thandleReporter.resolve()\n\n\t\tconst reporter = report('afterHandle', {\n\t\t\ttotal: hooks.afterHandle.length\n\t\t})\n\n\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\tconst hook = hooks.afterHandle[i]\n\t\t\tconst returning = hasReturn(hook)\n\t\t\tconst endUnit = reporter.resolveChild(hook.fn.name)\n\n\t\t\tif (!returning) {\n\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t? `await e.afterHandle[${i}](c)\\n`\n\t\t\t\t\t: `e.afterHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit()\n\t\t\t} else {\n\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t? `af=await e.afterHandle[${i}](c)\\n`\n\t\t\t\t\t: `af=e.afterHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit('af')\n\n\t\t\t\tif (validator.response) {\n\t\t\t\t\tfnLiteral += `if(af!==undefined){`\n\t\t\t\t\treporter.resolve()\n\n\t\t\t\t\tfnLiteral += composeResponseValidation('af')\n\n\t\t\t\t\tfnLiteral += `c.response=af}`\n\t\t\t\t} else {\n\t\t\t\t\tfnLiteral += `if(af!==undefined){`\n\t\t\t\t\treporter.resolve()\n\n\t\t\t\t\tfnLiteral += `c.response=af}`\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treporter.resolve()\n\n\t\tfnLiteral += `r=c.response\\n`\n\n\t\tif (validator.response) fnLiteral += composeResponseValidation()\n\n\t\tfnLiteral += encodeCookie\n\n\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\ttotal: hooks.mapResponse?.length\n\t\t})\n\t\tif (hooks.mapResponse?.length) {\n\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t)\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`mr=${\n\t\t\t\t\t\tisAsyncName(mapResponse) ? 'await ' : ''\n\t\t\t\t\t}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t`if(mr!==undefined)r=c.response=mr\\n`\n\n\t\t\t\tendUnit()\n\t\t\t}\n\t\t}\n\t\tmapResponseReporter.resolve()\n\n\t\tif (hasSet)\n\t\t\tfnLiteral += `return mapResponse(${saveResponse}r,c.set${\n\t\t\t\tmapResponseContext\n\t\t\t})\\n`\n\t\telse\n\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\tmapResponseContext\n\t\t\t})\\n`\n\t} else {\n\t\tconst handleReporter = report('handle', {\n\t\t\tname: isHandleFn ? (handler as Function).name : undefined\n\t\t})\n\n\t\tif (validator.response || hooks.mapResponse?.length) {\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=await ${handle}\\n`\n\t\t\t\t: `let r=${handle}\\n`\n\n\t\t\thandleReporter.resolve()\n\n\t\t\tif (validator.response) fnLiteral += composeResponseValidation()\n\n\t\t\treport('afterHandle').resolve()\n\n\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t})\n\n\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\tfnLiteral += '\\nc.response=r\\n'\n\n\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t)\n\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`\\nif(mr===undefined){` +\n\t\t\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t`if(mr!==undefined)r=c.response=mr` +\n\t\t\t\t\t\t`}\\n`\n\n\t\t\t\t\tendUnit()\n\t\t\t\t}\n\t\t\t}\n\t\t\tmapResponseReporter.resolve()\n\n\t\t\tfnLiteral += encodeCookie\n\n\t\t\tif (handler instanceof Response) {\n\t\t\t\tfnLiteral += inference.set\n\t\t\t\t\t? `if(` +\n\t\t\t\t\t\t`isNotEmpty(c.set.headers)||` +\n\t\t\t\t\t\t`c.set.status!==200||` +\n\t\t\t\t\t\t`c.set.redirect||` +\n\t\t\t\t\t\t`c.set.cookie)return mapResponse(${saveResponse}${handle}.clone(),c.set${\n\t\t\t\t\t\t\tmapResponseContext\n\t\t\t\t\t\t})` +\n\t\t\t\t\t\t`else return ${handle}.clone()`\n\t\t\t\t\t: `return ${handle}.clone()`\n\n\t\t\t\tfnLiteral += '\\n'\n\t\t\t} else if (hasSet)\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}r,c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\telse\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t} else if (hasCookie || hasTrace) {\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=await ${handle}\\n`\n\t\t\t\t: `let r=${handle}\\n`\n\n\t\t\thandleReporter.resolve()\n\n\t\t\treport('afterHandle').resolve()\n\n\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t})\n\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\tfnLiteral += 'c.response= r\\n'\n\n\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t)\n\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(mr===undefined){` +\n\t\t\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t`if(mr!==undefined)r=c.response=mr` +\n\t\t\t\t\t\t`}`\n\n\t\t\t\t\tendUnit()\n\t\t\t\t}\n\t\t\t}\n\t\t\tmapResponseReporter.resolve()\n\n\t\t\tfnLiteral += encodeCookie\n\n\t\t\tif (hasSet)\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}r,c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\telse\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t} else {\n\t\t\thandleReporter.resolve()\n\n\t\t\tconst handled = isAsyncHandler ? `await ${handle}` : handle\n\n\t\t\treport('afterHandle').resolve()\n\n\t\t\tif (handler instanceof Response) {\n\t\t\t\tfnLiteral += inference.set\n\t\t\t\t\t? `if(isNotEmpty(c.set.headers)||` +\n\t\t\t\t\t\t`c.set.status!==200||` +\n\t\t\t\t\t\t`c.set.redirect||` +\n\t\t\t\t\t\t`c.set.cookie)` +\n\t\t\t\t\t\t`return mapResponse(${saveResponse}${handle}.clone(),c.set${\n\t\t\t\t\t\t\tmapResponseContext\n\t\t\t\t\t\t})\\n` +\n\t\t\t\t\t\t`else return ${handle}.clone()\\n`\n\t\t\t\t\t: `return ${handle}.clone()\\n`\n\t\t\t} else if (hasSet)\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}${handled},c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\telse\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}${handled}${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t}\n\t}\n\n\tfnLiteral += `\\n}catch(error){`\n\n\tif (hasBody) fnLiteral += `if(isParsing)error=new ParseError()\\n`\n\n\tif (!maybeAsync) fnLiteral += `return(async()=>{`\n\tfnLiteral +=\n\t\t`const set=c.set\\n` +\n\t\t`if(!set.status||set.status<300)set.status=error?.status||500\\n`\n\n\tif (hasTrace && hooks.trace)\n\t\tfor (let i = 0; i < hooks.trace.length; i++)\n\t\t\t// There's a case where the error is thrown before any trace is called\n\t\t\tfnLiteral += `report${i}?.resolve(error);reportChild${i}?.(error)\\n`\n\n\tconst errorReporter = report('error', {\n\t\ttotal: hooks.error?.length\n\t})\n\n\tif (hooks.error?.length) {\n\t\tfnLiteral += `c.error=error\\n`\n\n\t\tif (hasValidation)\n\t\t\tfnLiteral +=\n\t\t\t\t`if(error instanceof TypeBoxError){` +\n\t\t\t\t'c.code=\"VALIDATION\"\\n' +\n\t\t\t\t'c.set.status=422' +\n\t\t\t\t'}else{' +\n\t\t\t\t`c.code=error.code??error[ERROR_CODE]??\"UNKNOWN\"}`\n\t\telse fnLiteral += `c.code=error.code??error[ERROR_CODE]??\"UNKNOWN\"\\n`\n\n\t\tfnLiteral += `let er\\n`\n\n\t\tfor (let i = 0; i < hooks.error.length; i++) {\n\t\t\tconst endUnit = errorReporter.resolveChild(hooks.error[i].fn.name)\n\n\t\t\tif (isAsync(hooks.error[i]))\n\t\t\t\tfnLiteral += `er=await e.error[${i}](c)\\n`\n\t\t\telse\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`er=e.error[${i}](c)\\n` +\n\t\t\t\t\t`if(er instanceof Promise)er=await er\\n`\n\n\t\t\tendUnit()\n\n\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t})\n\n\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t)\n\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`c.response=er\\n` +\n\t\t\t\t\t\t`er=e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t`if(er instanceof Promise)er=await er\\n`\n\n\t\t\t\t\tendUnit()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmapResponseReporter.resolve()\n\n\t\t\tfnLiteral += `er=mapEarlyResponse(er,set${mapResponseContext})\\n`\n\t\t\tfnLiteral += `if(er){`\n\n\t\t\tif (hasTrace && hooks.trace) {\n\t\t\t\tfor (let i = 0; i < hooks.trace.length; i++)\n\t\t\t\t\tfnLiteral += `report${i}.resolve()\\n`\n\n\t\t\t\terrorReporter.resolve()\n\t\t\t}\n\n\t\t\tfnLiteral += `return er}`\n\t\t}\n\t}\n\n\terrorReporter.resolve()\n\n\tfnLiteral += `return handleError(c,error,true)`\n\tif (!maybeAsync) fnLiteral += '})()'\n\tfnLiteral += '}'\n\n\tif (hasAfterResponse || hasTrace) {\n\t\tfnLiteral += `finally{ `\n\n\t\tif (!maybeAsync) fnLiteral += ';(async()=>{'\n\n\t\tconst reporter = report('afterResponse', {\n\t\t\ttotal: hooks.afterResponse?.length\n\t\t})\n\n\t\tif (hasAfterResponse && hooks.afterResponse) {\n\t\t\tfor (let i = 0; i < hooks.afterResponse.length; i++) {\n\t\t\t\tconst endUnit = reporter.resolveChild(\n\t\t\t\t\thooks.afterResponse[i].fn.name\n\t\t\t\t)\n\t\t\t\tfnLiteral += `\\nawait e.afterResponse[${i}](c)\\n`\n\t\t\t\tendUnit()\n\t\t\t}\n\t\t}\n\n\t\treporter.resolve()\n\n\t\tif (!maybeAsync) fnLiteral += '})()'\n\n\t\tfnLiteral += `}`\n\t}\n\n\tconst adapterVariables = adapter.inject\n\t\t? Object.keys(adapter.inject).join(',') + ','\n\t\t: ''\n\n\tlet init =\n\t\t`const {` +\n\t\t`handler,` +\n\t\t`handleError,` +\n\t\t`hooks:e, ` +\n\t\tallocateIf(`validator,`, hasValidation) +\n\t\t`mapResponse,` +\n\t\t`mapCompactResponse,` +\n\t\t`mapEarlyResponse,` +\n\t\t`isNotEmpty,` +\n\t\t`utils:{` +\n\t\tallocateIf(`parseQuery,`, hasBody) +\n\t\tallocateIf(`parseQueryFromURL,`, hasQuery) +\n\t\t`},` +\n\t\t`error:{` +\n\t\tallocateIf(`ValidationError,`, hasValidation) +\n\t\t`InternalServerError,` +\n\t\tallocateIf(`ParseError`, hasBody) +\n\t\t`},` +\n\t\t`schema,` +\n\t\t`definitions,` +\n\t\t`ERROR_CODE,` +\n\t\tallocateIf(`parseCookie,`, hasCookie) +\n\t\tallocateIf(`signCookie,`, hasCookie) +\n\t\tallocateIf(`decodeURIComponent,`, hasQuery) +\n\t\t`ElysiaCustomStatusResponse,` +\n\t\tallocateIf(`ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tallocateIf('parser,', hooks.parse?.length) +\n\t\tallocateIf(`getServer,`, inference.server) +\n\t\tadapterVariables +\n\t\tallocateIf('TypeBoxError', hasValidation) +\n\t\t`}=hooks\\n` +\n\t\t`const trace=e.trace?.map(x=>typeof x==='function'?x:x.fn)??[]\\n` +\n\t\t`return ${maybeAsync ? 'async ' : ''}function handle(c){`\n\n\tif (hooks.beforeHandle?.length) init += 'let be\\n'\n\tif (hooks.afterHandle?.length) init += 'let af\\n'\n\tif (hooks.mapResponse?.length) init += 'let mr\\n'\n\tif (allowMeta) init += 'c.schema = schema\\nc.defs = definitions\\n'\n\n\tinit += fnLiteral + '}'\n\n\ttry {\n\t\tif (asManifest) return Function('hooks', init) as any\n\n\t\treturn Function(\n\t\t\t'hooks',\n\t\t\tinit\n\t\t)({\n\t\t\thandler,\n\t\t\thooks: lifeCycleToFn(hooks),\n\t\t\tvalidator: hasValidation ? validator : undefined,\n\t\t\t// @ts-expect-error\n\t\t\thandleError: app.handleError,\n\t\t\tmapResponse: adapterHandler.mapResponse,\n\t\t\tmapCompactResponse: adapterHandler.mapCompactResponse,\n\t\t\tmapEarlyResponse: adapterHandler.mapEarlyResponse,\n\t\t\tisNotEmpty,\n\t\t\tutils: {\n\t\t\t\tparseQuery: hasBody ? parseQuery : undefined,\n\t\t\t\tparseQueryFromURL: hasQuery ? parseQueryFromURL : undefined\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tValidationError: hasValidation ? ValidationError : undefined,\n\t\t\t\tInternalServerError,\n\t\t\t\tParseError: hasBody ? ParseError : undefined\n\t\t\t},\n\t\t\tschema: app.router.history,\n\t\t\t// @ts-expect-error\n\t\t\tdefinitions: app.definitions.type,\n\t\t\tERROR_CODE,\n\t\t\tparseCookie: hasCookie ? parseCookie : undefined,\n\t\t\tsignCookie: hasCookie ? signCookie : undefined,\n\t\t\tdecodeURIComponent: hasQuery ? decodeURIComponent : undefined,\n\t\t\tElysiaCustomStatusResponse,\n\t\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\t\t// @ts-expect-error private property\n\t\t\tgetServer: () => app.getServer(),\n\t\t\tTypeBoxError: hasValidation ? TypeBoxError : undefined,\n\t\t\tparser: app['~parser'],\n\t\t\t...adapter.inject\n\t\t})\n\t} catch (error) {\n\t\tconst debugHooks = lifeCycleToFn(hooks)\n\n\t\tconsole.log('[Composer] failed to generate optimized handler')\n\t\tconsole.log('---')\n\t\tconsole.log({\n\t\t\thandler:\n\t\t\t\ttypeof handler === 'function' ? handler.toString() : handler,\n\t\t\tinstruction: init,\n\t\t\thooks: {\n\t\t\t\t...debugHooks,\n\t\t\t\t// @ts-expect-error\n\t\t\t\ttransform: debugHooks?.transform?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tresolve: debugHooks?.resolve?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tbeforeHandle: debugHooks?.beforeHandle?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tafterHandle: debugHooks?.afterHandle?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tmapResponse: debugHooks?.mapResponse?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tparse: debugHooks?.parse?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\terror: debugHooks?.error?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tafterResponse: debugHooks?.afterResponse?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tstop: debugHooks?.stop?.map?.((x) => x.toString())\n\t\t\t},\n\t\t\tvalidator,\n\t\t\t// @ts-expect-error\n\t\t\tdefinitions: app.definitions.type,\n\t\t\terror,\n\t\t\tfnLiteral\n\t\t})\n\t\tconsole.log('---')\n\n\t\tprocess.exit(1)\n\t}\n}\n\nexport interface ComposerGeneralHandlerOptions {\n\t/**\n\t * optimization for standard internet hostname\n\t * this will assume hostname is always use a standard internet hostname\n\t * assuming hostname is at minimum of 11 length of string (http://a.bc)\n\t *\n\t * setting this to true will skip the first 11 character of the hostname\n\t *\n\t * @default true\n\t */\n\tstandardHostname?: boolean\n}\n\nexport const composeGeneralHandler = (\n\tapp: AnyElysia,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t{ asManifest = false }: { asManifest?: false } = {}\n) => {\n\tconst adapter = app['~adapter'].composeGeneralHandler\n\tapp.router.http.build()\n\tconst error404 = adapter.error404(\n\t\t!!app.event.request?.length,\n\t\t!!app.event.error?.length\n\t)\n\n\tconst hasTrace = app.event.trace?.length\n\n\tlet fnLiteral = ''\n\n\tconst router = app.router\n\n\tlet findDynamicRoute = `const route=router.find(r.method,p)`\n\tfindDynamicRoute += router.http.root.ALL ? '??router.find(\"ALL\",p)\\n' : '\\n'\n\n\tfindDynamicRoute += error404.code\n\n\tfindDynamicRoute +=\n\t\t`\\nc.params=route.params\\n` +\n\t\t`if(route.store.handler)return route.store.handler(c)\\n` +\n\t\t`return (route.store.handler=route.store.compile())(c)\\n`\n\n\tlet switchMap = ``\n\tfor (const [path, v] of Object.entries(router.static.http.map)) {\n\t\tswitchMap += `case'${path}':`\n\n\t\tif (app.config.strictPath !== true)\n\t\t\tswitchMap += `case'${getLoosePath(path)}':`\n\n\t\tconst encoded = encodePath(path)\n\t\tif (path !== encoded) switchMap += `case'${encoded}':`\n\n\t\tswitchMap +=\n\t\t\t`switch(r.method){${v.code}\\n` +\n\t\t\t(v.all ?? `default: break map`) +\n\t\t\t'}'\n\t}\n\n\tconst maybeAsync = !!app.event.request?.some(isAsync)\n\n\tconst adapterVariables = adapter.inject\n\t\t? Object.keys(adapter.inject).join(',') + ','\n\t\t: ''\n\n\tfnLiteral +=\n\t\t`\\nconst {` +\n\t\t`app,` +\n\t\t`mapEarlyResponse,` +\n\t\t`NotFoundError,` +\n\t\t`randomId,` +\n\t\t`handleError,` +\n\t\t`error,` +\n\t\t`redirect,` +\n\t\tallocateIf(`ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tadapterVariables +\n\t\t`}=data\\n` +\n\t\t`const store=app.singleton.store\\n` +\n\t\t`const decorator=app.singleton.decorator\\n` +\n\t\t`const staticRouter=app.router.static.http\\n` +\n\t\t`const ht=app.router.history\\n` +\n\t\t`const router=app.router.http\\n` +\n\t\t`const trace=app.event.trace?.map(x=>typeof x==='function'?x:x.fn)??[]\\n` +\n\t\t`const notFound=new NotFoundError()\\n` +\n\t\t`const hoc=app.extender.higherOrderFunctions.map(x=>x.fn)\\n`\n\n\tif (app.event.request?.length)\n\t\tfnLiteral += `const onRequest=app.event.request.map(x=>x.fn)\\n`\n\n\tfnLiteral += error404.declare\n\n\tif (app.event.trace?.length)\n\t\tfnLiteral +=\n\t\t\t`const ` +\n\t\t\tapp.event.trace\n\t\t\t\t.map((_, i) => `tr${i}=app.event.trace[${i}].fn`)\n\t\t\t\t.join(',') +\n\t\t\t'\\n'\n\n\tfnLiteral += `${maybeAsync ? 'async ' : ''}function map(${adapter.parameters}){`\n\n\tif (app.event.request?.length) fnLiteral += `let re\\n`\n\n\tfnLiteral += adapter.createContext(app)\n\n\tif (app.event.trace?.length)\n\t\tfnLiteral +=\n\t\t\t`c[ELYSIA_TRACE]=[` +\n\t\t\tapp.event.trace.map((_, i) => `tr${i}(c)`).join(',') +\n\t\t\t`]\\n`\n\n\tconst report = createReport({\n\t\ttrace: app.event.trace,\n\t\taddFn(word) {\n\t\t\tfnLiteral += word\n\t\t}\n\t})\n\n\tconst reporter = report('request', {\n\t\ttotal: app.event.request?.length\n\t})\n\n\tif (app.event.request?.length) {\n\t\tfnLiteral += `try{`\n\n\t\tfor (let i = 0; i < app.event.request.length; i++) {\n\t\t\tconst hook = app.event.request[i]\n\t\t\tconst withReturn = hasReturn(hook)\n\t\t\tconst maybeAsync = isAsync(hook)\n\n\t\t\tconst endUnit = reporter.resolveChild(app.event.request[i].fn.name)\n\n\t\t\tif (withReturn) {\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`re=mapEarlyResponse(` +\n\t\t\t\t\t`${maybeAsync ? 'await ' : ''}onRequest[${i}](c),` +\n\t\t\t\t\t`c.set)\\n`\n\n\t\t\t\tendUnit('re')\n\t\t\t\tfnLiteral += `if(re!==undefined)return re\\n`\n\t\t\t} else {\n\t\t\t\tfnLiteral += `${maybeAsync ? 'await ' : ''}onRequest[${i}](c)\\n`\n\t\t\t\tendUnit()\n\t\t\t}\n\t\t}\n\n\t\tfnLiteral += `}catch(error){return app.handleError(c,error,false)}`\n\t}\n\n\treporter.resolve()\n\n\tfnLiteral += adapter.websocket(app)\n\n\tfnLiteral +=\n\t\t`\\nmap:switch(p){\\n` +\n\t\tswitchMap +\n\t\t`default:break}` +\n\t\tfindDynamicRoute +\n\t\t`}\\n`\n\n\t// @ts-expect-error private property\n\tif (app.extender.higherOrderFunctions.length) {\n\t\tlet handler = 'map'\n\t\t// @ts-expect-error private property\n\t\tfor (let i = 0; i < app.extender.higherOrderFunctions.length; i++)\n\t\t\thandler = `hoc[${i}](${handler},${adapter.parameters})`\n\n\t\tfnLiteral += `return function hocMap(${adapter.parameters}){return ${handler}(${adapter.parameters})}`\n\t} else fnLiteral += `return map`\n\n\tconst handleError = composeErrorHandler(app) as any\n\n\t// @ts-expect-error\n\tapp.handleError = handleError\n\n\treturn Function(\n\t\t'data',\n\t\tfnLiteral\n\t)({\n\t\tapp,\n\t\tmapEarlyResponse: app['~adapter']['handler'].mapEarlyResponse,\n\t\tNotFoundError,\n\t\trandomId,\n\t\thandleError,\n\t\terror,\n\t\tredirect,\n\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\t...adapter.inject\n\t})\n}\n\nexport const composeErrorHandler = (app: AnyElysia) => {\n\tconst hooks = app.event\n\tlet fnLiteral = ''\n\n\tconst adapter = app['~adapter'].composeError\n\tconst adapterVariables = adapter.inject\n\t\t? Object.keys(adapter.inject).join(',') + ','\n\t\t: ''\n\n\tconst hasTrace = !!app.event.trace?.length\n\n\tfnLiteral +=\n\t\t`const {` +\n\t\t`app:{` +\n\t\t`event:{` +\n\t\t`error:onErrorContainer,` +\n\t\t`afterResponse:resContainer,` +\n\t\t`mapResponse:_onMapResponse,` +\n\t\t`trace:_trace` +\n\t\t`}` +\n\t\t`},` +\n\t\t`mapResponse,` +\n\t\t`ERROR_CODE,` +\n\t\t`ElysiaCustomStatusResponse,` +\n\t\tallocateIf(`ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tadapterVariables +\n\t\t`}=inject\\n`\n\n\tfnLiteral +=\n\t\t`const trace=_trace?.map(x=>typeof x==='function'?x:x.fn)??[]\\n` +\n\t\t`const onMapResponse=[]\\n` +\n\t\t`if(_onMapResponse)for(let i=0;i<_onMapResponse.length;i++)` +\n\t\t`onMapResponse.push(_onMapResponse[i].fn??_onMapResponse[i])\\n` +\n\t\t`delete _onMapResponse\\n` +\n\t\t`const onError=onErrorContainer?.map(x=>x.fn)??[]\\n` +\n\t\t`const res=resContainer?.map(x=>x.fn)??[]\\n` +\n\t\t`return ${\n\t\t\tapp.event.error?.find(isAsync) ||\n\t\t\tapp.event.mapResponse?.find(isAsync)\n\t\t\t\t? 'async '\n\t\t\t\t: ''\n\t\t}function(context,error,skipGlobal){`\n\n\tfnLiteral += ''\n\n\tif (hasTrace) fnLiteral += 'const id=context[ELYSIA_REQUEST_ID]\\n'\n\n\tconst report = createReport({\n\t\tcontext: 'context',\n\t\ttrace: hooks.trace,\n\t\taddFn: (word) => {\n\t\t\tfnLiteral += word\n\t\t}\n\t})\n\n\tfnLiteral +=\n\t\t`const set=context.set\\n` +\n\t\t`let _r\\n` +\n\t\t`if(!context.code)context.code=error.code??error[ERROR_CODE]\\n` +\n\t\t`if(!(context.error instanceof Error))context.error=error\\n` +\n\t\t`if(error instanceof ElysiaCustomStatusResponse){` +\n\t\t`set.status=error.status=error.code\\n` +\n\t\t`error.message=error.response` +\n\t\t`}`\n\n\tif (adapter.declare) fnLiteral += adapter.declare\n\n\tconst saveResponse =\n\t\thasTrace ||\n\t\t!!hooks.afterResponse?.length ||\n\t\t!!hooks.afterResponse?.length\n\t\t\t? 'context.response = '\n\t\t\t: ''\n\n\tif (app.event.error)\n\t\tfor (let i = 0; i < app.event.error.length; i++) {\n\t\t\tconst handler = app.event.error[i]\n\n\t\t\tconst response = `${\n\t\t\t\tisAsync(handler) ? 'await ' : ''\n\t\t\t}onError[${i}](context)\\n`\n\n\t\t\tfnLiteral += 'if(skipGlobal!==true){'\n\n\t\t\tif (hasReturn(handler)) {\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`_r=${response}\\nif(_r!==undefined){` +\n\t\t\t\t\t`if(_r instanceof Response)return mapResponse(_r,set${adapter.mapResponseContext})\\n` +\n\t\t\t\t\t`if(_r instanceof ElysiaCustomStatusResponse){` +\n\t\t\t\t\t`error.status=error.code\\n` +\n\t\t\t\t\t`error.message = error.response` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`if(set.status===200||!set.status)set.status=error.status\\n`\n\n\t\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\t\ttotal: hooks.mapResponse?.length,\n\t\t\t\t\tname: 'context'\n\t\t\t\t})\n\n\t\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`context.response=_r` +\n\t\t\t\t\t\t\t`_r=${isAsyncName(mapResponse) ? 'await ' : ''}onMapResponse[${i}](context)\\n`\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmapResponseReporter.resolve()\n\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}_r,set${adapter.mapResponseContext})}`\n\t\t\t} else fnLiteral += response\n\n\t\t\tfnLiteral += '}'\n\t\t}\n\n\tfnLiteral +=\n\t\t`if(error.constructor.name===\"ValidationError\"||error.constructor.name===\"TransformDecodeError\"){` +\n\t\t`if(error.error)error=error.error\\n` +\n\t\t`set.status=error.status??422\\n` +\n\t\tadapter.validationError +\n\t\t`}`\n\n\tfnLiteral += `if(error instanceof Error){` + adapter.unknownError + `}`\n\n\tconst mapResponseReporter = report('mapResponse', {\n\t\ttotal: hooks.mapResponse?.length,\n\t\tname: 'context'\n\t})\n\n\tfnLiteral +=\n\t\t'\\nif(!context.response)context.response=error.message??error\\n'\n\n\tif (hooks.mapResponse?.length) {\n\t\tfnLiteral += 'let mr\\n'\n\n\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\tmapResponse.fn.name\n\t\t\t)\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(mr===undefined){` +\n\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}onMapResponse[${i}](context)\\n` +\n\t\t\t\t`if(mr!==undefined)error=context.response=mr` +\n\t\t\t\t'}'\n\n\t\t\tendUnit()\n\t\t}\n\t}\n\n\tmapResponseReporter.resolve()\n\n\tfnLiteral += `\\nreturn mapResponse(${saveResponse}error,set${adapter.mapResponseContext})}`\n\n\treturn Function(\n\t\t'inject',\n\t\tfnLiteral\n\t)({\n\t\tapp,\n\t\tmapResponse: app['~adapter'].handler.mapResponse,\n\t\tERROR_CODE,\n\t\tElysiaCustomStatusResponse,\n\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\t...adapter.inject\n\t})\n}\n",
20
+ "import type { AnyElysia } from '.'\n\nimport { Value } from '@sinclair/typebox/value'\nimport {\n\tKind,\n\tTypeBoxError,\n\ttype TAnySchema,\n\ttype TSchema\n} from '@sinclair/typebox'\n\nimport { parseQuery, parseQueryFromURL } from './fast-querystring'\n\nimport { decode as decodeURIComponent } from './deuri'\n\nimport {\n\tELYSIA_REQUEST_ID,\n\tgetCookieValidator,\n\tgetLoosePath,\n\tlifeCycleToFn,\n\trandomId,\n\tredirect,\n\tsignCookie,\n\tisNotEmpty,\n\tencodePath\n} from './utils'\nimport { ParseError, error } from './error'\n\nimport {\n\tNotFoundError,\n\tValidationError,\n\tInternalServerError,\n\tERROR_CODE,\n\tElysiaCustomStatusResponse\n} from './error'\nimport { ELYSIA_TRACE, type TraceHandler } from './trace'\n\nimport { Sucrose, hasReturn, sucrose } from './sucrose'\nimport { parseCookie, type CookieOptions } from './cookies'\n\nimport type { TraceEvent } from './trace'\nimport type {\n\tComposedHandler,\n\tHandler,\n\tHookContainer,\n\tLifeCycleStore,\n\tSchemaValidator\n} from './types'\nimport { type TypeCheck } from './type-system'\n\nconst TypeBoxSymbol = {\n\toptional: Symbol.for('TypeBox.Optional'),\n\tkind: Symbol.for('TypeBox.Kind')\n} as const\n\nconst isOptional = (validator?: TypeCheck<any>) => {\n\tif (!validator) return false\n\n\t// @ts-expect-error\n\tconst schema = validator?.schema\n\n\tif (schema?.[TypeBoxSymbol.kind] === 'Import')\n\t\treturn validator.References().some(isOptional as any)\n\n\treturn !!schema && TypeBoxSymbol.optional in schema\n}\n\nconst allocateIf = (value: string, condition: unknown) =>\n\tcondition ? value : ''\n\nconst defaultParsers = [\n\t'json',\n\t'text',\n\t'urlencoded',\n\t'arrayBuffer',\n\t'formdata',\n\t'application/json',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'text/plain',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'application/x-www-form-urlencoded',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'application/octet-stream',\n\t// eslint-disable-next-line sonarjs/no-duplicate-string\n\t'multipart/form-data'\n]\n\nexport const hasAdditionalProperties = (\n\t_schema: TAnySchema | TypeCheck<any>\n) => {\n\tif (!_schema) return false\n\n\t// @ts-expect-error private property\n\tconst schema: TAnySchema = (_schema as TypeCheck<any>)?.schema ?? _schema\n\n\t// @ts-expect-error private property\n\tif (schema[TypeBoxSymbol.kind] === 'Import' && _schema.References()) {\n\t\treturn _schema.References().some(hasAdditionalProperties)\n\t}\n\n\tif (schema.anyOf) return schema.anyOf.some(hasAdditionalProperties)\n\tif (schema.someOf) return schema.someOf.some(hasAdditionalProperties)\n\tif (schema.allOf) return schema.allOf.some(hasAdditionalProperties)\n\tif (schema.not) return schema.not.some(hasAdditionalProperties)\n\n\tif (schema.type === 'object') {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tif ('additionalProperties' in schema) return schema.additionalProperties\n\t\tif ('patternProperties' in schema) return false\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (property.type === 'object') {\n\t\t\t\tif (hasAdditionalProperties(property)) return true\n\t\t\t} else if (property.anyOf) {\n\t\t\t\tfor (let i = 0; i < property.anyOf.length; i++)\n\t\t\t\t\tif (hasAdditionalProperties(property.anyOf[i])) return true\n\t\t\t}\n\n\t\t\treturn property.additionalProperties\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn false\n}\n\nconst createReport = ({\n\tcontext = 'c',\n\ttrace = [],\n\taddFn\n}: {\n\tcontext?: string\n\ttrace?: (TraceHandler | HookContainer<TraceHandler>)[]\n\taddFn(string: string): void\n}) => {\n\tif (!trace.length)\n\t\treturn () => {\n\t\t\treturn {\n\t\t\t\tresolveChild() {\n\t\t\t\t\treturn () => {}\n\t\t\t\t},\n\t\t\t\tresolve() {}\n\t\t\t}\n\t\t}\n\n\tfor (let i = 0; i < trace.length; i++)\n\t\taddFn(\n\t\t\t`let report${i}, reportChild${i}, reportErr${i}, reportErrChild${i};` +\n\t\t\t\t`let trace${i} = ${context}[ELYSIA_TRACE]?.[${i}] ?? trace[${i}](${context});\\n`\n\t\t)\n\n\treturn (\n\t\tevent: TraceEvent,\n\t\t{\n\t\t\tname,\n\t\t\ttotal = 0\n\t\t}: {\n\t\t\tname?: string\n\t\t\tattribute?: string\n\t\t\ttotal?: number\n\t\t} = {}\n\t) => {\n\t\t// ? For debug specific event\n\t\t// if (event !== 'mapResponse')\n\t\t// \treturn {\n\t\t// \t\tresolveChild() {\n\t\t// \t\t\treturn () => {}\n\t\t// \t\t},\n\t\t// \t\tresolve() {}\n\t\t// \t}\n\n\t\tif (!name) name = 'anonymous'\n\n\t\tconst reporter = event === 'error' ? 'reportErr' : 'report'\n\n\t\tfor (let i = 0; i < trace.length; i++)\n\t\t\taddFn(\n\t\t\t\t`${reporter}${i} = trace${i}.${event}({` +\n\t\t\t\t\t`id,` +\n\t\t\t\t\t`event:'${event}',` +\n\t\t\t\t\t`name:'${name}',` +\n\t\t\t\t\t`begin:performance.now(),` +\n\t\t\t\t\t`total:${total}` +\n\t\t\t\t\t`})\\n`\n\t\t\t)\n\n\t\treturn {\n\t\t\tresolve() {\n\t\t\t\tfor (let i = 0; i < trace.length; i++)\n\t\t\t\t\taddFn(`${reporter}${i}.resolve()\\n`)\n\t\t\t},\n\t\t\tresolveChild(name: string) {\n\t\t\t\tfor (let i = 0; i < trace.length; i++)\n\t\t\t\t\taddFn(\n\t\t\t\t\t\t`${reporter}Child${i}=${reporter}${i}.resolveChild?.shift()?.({` +\n\t\t\t\t\t\t\t`id,` +\n\t\t\t\t\t\t\t`event:'${event}',` +\n\t\t\t\t\t\t\t`name:'${name}',` +\n\t\t\t\t\t\t\t`begin:performance.now()` +\n\t\t\t\t\t\t\t`})\\n`\n\t\t\t\t\t)\n\n\t\t\t\treturn (binding?: string) => {\n\t\t\t\t\tfor (let i = 0; i < trace.length; i++) {\n\t\t\t\t\t\tif (binding)\n\t\t\t\t\t\t\t// Don't report error because HTTP response is expected and not an actual error to look for\n\t\t\t\t\t\t\t// if (${binding} instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\t\t\t// ${reporter}Child${i}?.(${binding}.error)\n\t\t\t\t\t\t\t// ${reporter}Child${i}?.()\\n\n\t\t\t\t\t\t\t// } else\n\t\t\t\t\t\t\taddFn(\n\t\t\t\t\t\t\t\t`if(${binding} instanceof Error){` +\n\t\t\t\t\t\t\t\t\t`${reporter}Child${i}?.(${binding}) ` +\n\t\t\t\t\t\t\t\t\t`}else{` +\n\t\t\t\t\t\t\t\t\t`${reporter}Child${i}?.()` +\n\t\t\t\t\t\t\t\t\t'}'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telse addFn(`${reporter}Child${i}?.()\\n`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst composeValidationFactory = ({\n\tinjectResponse = '',\n\tnormalize = false,\n\tvalidator,\n\tencodeSchema = false\n}: {\n\tinjectResponse?: string\n\tnormalize?: boolean\n\tvalidator: SchemaValidator\n\tencodeSchema?: boolean\n}) => ({\n\tcomposeValidation: (type: string, value = `c.${type}`) =>\n\t\t`c.set.status=422;throw new ValidationError('${type}',validator.${type},${value})`,\n\tcomposeResponseValidation: (name = 'r') => {\n\t\tlet code = injectResponse + '\\n'\n\n\t\tcode +=\n\t\t\t`if(${name} instanceof ElysiaCustomStatusResponse){` +\n\t\t\t`c.set.status=${name}.code\\n` +\n\t\t\t`${name}=${name}.response` +\n\t\t\t`}` +\n\t\t\t`const isResponse=${name} instanceof Response\\n` +\n\t\t\t`switch(c.set.status){`\n\n\t\tfor (const [status, value] of Object.entries(\n\t\t\tvalidator.response as Record<string, TypeCheck<any>>\n\t\t)) {\n\t\t\tcode += `\\ncase ${status}:if(!isResponse){`\n\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in value &&\n\t\t\t\t!hasAdditionalProperties(value as any)\n\t\t\t)\n\t\t\t\tcode += `${name}=validator.response['${status}'].Clean(${name})\\n`\n\n\t\t\tif (\n\t\t\t\tencodeSchema &&\n\t\t\t\t// @ts-expect-error hasTransform is appended by getResponseSchemaValidator\n\t\t\t\t(value.hasTransform || typeof value.Decode === 'function')\n\t\t\t)\n\t\t\t\tcode += `${name}=validator.response['${status}'].Encode(${name})\\n`\n\n\t\t\tcode +=\n\t\t\t\t`if(validator.response['${status}'].Check(${name})===false){` +\n\t\t\t\t'c.set.status=422\\n' +\n\t\t\t\t`throw new ValidationError('response',validator.response['${status}'],${name})` +\n\t\t\t\t'}' +\n\t\t\t\t`c.set.status = ${status}` +\n\t\t\t\t'}\\n'\n\n\t\t\tcode += 'break\\n'\n\t\t}\n\n\t\treturn code + '}'\n\t}\n})\n\nconst KindSymbol = Symbol.for('TypeBox.Kind')\n\nexport const hasType = (type: string, schema: TAnySchema) => {\n\tif (!schema) return\n\n\tif (KindSymbol in schema && schema[KindSymbol] === type) return true\n\n\tif (schema.type === 'object') {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (property.type === 'object') {\n\t\t\t\tif (hasType(type, property)) return true\n\t\t\t} else if (property.anyOf) {\n\t\t\t\tfor (let i = 0; i < property.anyOf.length; i++)\n\t\t\t\t\tif (hasType(type, property.anyOf[i])) return true\n\t\t\t}\n\n\t\t\tif (KindSymbol in property && property[KindSymbol] === type)\n\t\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn (\n\t\tschema.properties &&\n\t\tKindSymbol in schema.properties &&\n\t\tschema.properties[KindSymbol] === type\n\t)\n}\n\nexport const hasProperty = (\n\texpectedProperty: string,\n\t_schema: TAnySchema | TypeCheck<any>\n) => {\n\tif (!_schema) return\n\n\t// @ts-expect-error private property\n\tconst schema = _schema.schema ?? _schema\n\n\tif (schema[TypeBoxSymbol.kind] === 'Import')\n\t\treturn _schema\n\t\t\t.References()\n\t\t\t.some((schema: TAnySchema) => hasProperty(expectedProperty, schema))\n\n\tif (schema.type === 'object') {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tif (!properties) return false\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (expectedProperty in property) return true\n\n\t\t\tif (property.type === 'object') {\n\t\t\t\tif (hasProperty(expectedProperty, property)) return true\n\t\t\t} else if (property.anyOf) {\n\t\t\t\tfor (let i = 0; i < property.anyOf.length; i++) {\n\t\t\t\t\tif (hasProperty(expectedProperty, property.anyOf[i]))\n\t\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn expectedProperty in schema\n}\n\nconst TransformSymbol = Symbol.for('TypeBox.Transform')\n\nexport const hasRef = (schema: TAnySchema): boolean => {\n\tif (!schema) return false\n\n\tif (schema.oneOf)\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tif (hasRef(schema.oneOf[i])) return true\n\n\tif (schema.anyOf)\n\t\tfor (let i = 0; i < schema.anyOf.length; i++)\n\t\t\tif (hasRef(schema.anyOf[i])) return true\n\n\tif (schema.oneOf)\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tif (hasRef(schema.oneOf[i])) return true\n\n\tif (schema.allOf)\n\t\tfor (let i = 0; i < schema.allOf.length; i++)\n\t\t\tif (hasRef(schema.allOf[i])) return true\n\n\tif (schema.not && hasRef(schema.not)) return true\n\n\tif (schema.type === 'object' && schema.properties) {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (hasRef(property)) return true\n\n\t\t\tif (\n\t\t\t\tproperty.type === 'array' &&\n\t\t\t\tproperty.items &&\n\t\t\t\thasRef(property.items)\n\t\t\t)\n\t\t\t\treturn true\n\t\t}\n\t}\n\n\tif (schema.type === 'array' && schema.items && hasRef(schema.items))\n\t\treturn true\n\n\treturn schema[Kind] === 'Ref' && '$ref' in schema\n}\n\nexport const hasTransform = (schema: TAnySchema): boolean => {\n\tif (!schema) return false\n\n\tif (\n\t\tschema.$ref &&\n\t\tschema.$defs &&\n\t\tschema.$ref in schema.$defs &&\n\t\thasTransform(schema.$defs[schema.$ref])\n\t)\n\t\treturn true\n\n\tif (schema.oneOf)\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tif (hasTransform(schema.oneOf[i])) return true\n\n\tif (schema.anyOf) {\n\t\tfor (let i = 0; i < schema.anyOf.length; i++)\n\t\t\tif (hasTransform(schema.anyOf[i])) return true\n\t}\n\n\tif (schema.allOf)\n\t\tfor (let i = 0; i < schema.allOf.length; i++)\n\t\t\tif (hasTransform(schema.allOf[i])) return true\n\n\tif (schema.not && hasTransform(schema.not)) return true\n\n\tif (schema.type === 'object' && schema.properties) {\n\t\tconst properties = schema.properties as Record<string, TAnySchema>\n\n\t\tfor (const key of Object.keys(properties)) {\n\t\t\tconst property = properties[key]\n\n\t\t\tif (hasTransform(property)) return true\n\n\t\t\tif (\n\t\t\t\tproperty.type === 'array' &&\n\t\t\t\tproperty.items &&\n\t\t\t\thasTransform(property.items)\n\t\t\t)\n\t\t\t\treturn true\n\t\t}\n\t}\n\n\tif (schema.type === 'array' && schema.items && hasTransform(schema.items))\n\t\treturn true\n\n\treturn TransformSymbol in schema\n}\n\n/**\n * This function will return the type of unioned if all unioned type is the same.\n * It's intent to use for content-type mapping only\n *\n * ```ts\n * t.Union([\n * t.Object({\n * password: t.String()\n * }),\n * t.Object({\n * token: t.String()\n * })\n * ])\n * ```\n */\n// const getUnionedType = (validator: TypeCheck<any> | undefined) => {\n// \tif (!validator) return\n\n// \t// @ts-ignore\n// \tconst schema = validator?.schema\n\n// \tif (schema && 'anyOf' in schema) {\n// \t\tlet foundDifference = false\n// \t\tconst type: string = schema.anyOf[0].type\n\n// \t\tfor (const validator of schema.anyOf as { type: string }[]) {\n// \t\t\tif (validator.type !== type) {\n// \t\t\t\tfoundDifference = true\n// \t\t\t\tbreak\n// \t\t\t}\n// \t\t}\n\n// \t\tif (!foundDifference) return type\n// \t}\n\n// \t// @ts-ignore\n// \treturn validator.schema?.type\n// }\n\nconst matchFnReturn = /(?:return|=>) \\S+\\(/g\n\nexport const isAsyncName = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\treturn fn.constructor.name === 'AsyncFunction'\n}\n\nexport const isAsync = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\tif (fn.constructor.name === 'AsyncFunction') return true\n\n\tconst literal = fn.toString()\n\tif (literal.includes('=> response.clone(')) return false\n\tif (literal.includes('await')) return true\n\tif (literal.includes('async')) return true\n\t// v8 minified\n\tif (literal.includes('=>response.clone(')) return false\n\n\treturn !!literal.match(matchFnReturn)\n}\n\nexport const isGenerator = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\treturn (\n\t\tfn.constructor.name === 'AsyncGeneratorFunction' ||\n\t\tfn.constructor.name === 'GeneratorFunction'\n\t)\n}\n\nexport const composeHandler = ({\n\tapp,\n\tpath,\n\tmethod,\n\thooks,\n\tvalidator,\n\thandler,\n\tallowMeta = false,\n\tinference,\n\tasManifest = false\n}: {\n\tapp: AnyElysia\n\tpath: string\n\tmethod: string\n\thooks: Partial<LifeCycleStore>\n\tvalidator: SchemaValidator\n\thandler: unknown | Handler<any, any>\n\tallowMeta?: boolean\n\tinference: Sucrose.Inference\n\tasManifest?: boolean\n}): ComposedHandler => {\n\tconst adapter = app['~adapter'].composeHandler\n\tconst adapterHandler = app['~adapter'].handler\n\tconst isHandleFn = typeof handler === 'function'\n\n\tif (!isHandleFn) {\n\t\thandler = adapterHandler.mapResponse(handler, {\n\t\t\t// @ts-expect-error private property\n\t\t\theaders: app.setHeaders ?? {}\n\t\t})\n\n\t\tif (\n\t\t\thooks.parse?.length &&\n\t\t\thooks.transform?.length &&\n\t\t\thooks.beforeHandle?.length &&\n\t\t\thooks.afterHandle?.length\n\t\t) {\n\t\t\tif (handler instanceof Response)\n\t\t\t\treturn Function(\n\t\t\t\t\t'a',\n\t\t\t\t\t`return function(){return a.clone()}`\n\t\t\t\t)(handler)\n\n\t\t\treturn Function('a', 'return function(){return a}')(handler)\n\t\t}\n\t}\n\n\tconst handle = isHandleFn ? `handler(c)` : `handler`\n\tconst hasAfterResponse = !!hooks.afterResponse?.length\n\n\tconst hasTrace = !!hooks.trace?.length\n\tlet fnLiteral = ''\n\n\tinference = sucrose(\n\t\tObject.assign({}, hooks, {\n\t\t\thandler: handler as any\n\t\t}),\n\t\tinference\n\t)\n\n\tif (adapter.declare) {\n\t\tconst literal = adapter.declare(inference)\n\n\t\tif (literal) fnLiteral += literal\n\t}\n\n\tif (inference.server)\n\t\tfnLiteral +=\n\t\t\t\"Object.defineProperty(c,'server',{\" +\n\t\t\t'get:function(){return getServer()}' +\n\t\t\t'})\\n'\n\n\tvalidator.createBody?.()\n\tvalidator.createQuery?.()\n\tvalidator.createHeaders?.()\n\tvalidator.createParams?.()\n\tvalidator.createCookie?.()\n\tvalidator.createResponse?.()\n\n\tconst hasValidation =\n\t\tvalidator.body ||\n\t\tvalidator.headers ||\n\t\tvalidator.params ||\n\t\tvalidator.query ||\n\t\tvalidator.cookie ||\n\t\tvalidator.response\n\n\tconst hasQuery = inference.query || !!validator.query\n\n\tconst requestNoBody =\n\t\thooks.parse?.length === 1 &&\n\t\t// @ts-expect-error\n\t\thooks.parse[0].fn === 'none'\n\n\tconst hasBody =\n\t\tmethod !== '$INTERNALWS' &&\n\t\tmethod !== 'GET' &&\n\t\tmethod !== 'HEAD' &&\n\t\t(inference.body || !!validator.body || !!hooks.parse?.length) &&\n\t\t!requestNoBody\n\n\tif (hasBody) fnLiteral += `let isParsing=false\\n`\n\n\t// @ts-expect-error private\n\tconst defaultHeaders = app.setHeaders\n\tconst hasDefaultHeaders =\n\t\tdefaultHeaders && !!Object.keys(defaultHeaders).length\n\n\t// ? defaultHeaders doesn't imply that user will use headers in handler\n\tconst hasHeaders =\n\t\tinference.headers ||\n\t\tvalidator.headers ||\n\t\t(adapter.preferWebstandardHeaders !== true && inference.body)\n\n\tconst hasCookie = inference.cookie || !!validator.cookie\n\n\tconst cookieValidator = hasCookie\n\t\t? getCookieValidator({\n\t\t\t\t// @ts-expect-error private property\n\t\t\t\tmodules: app.definitions.typebox,\n\t\t\t\tvalidator: validator.cookie as any,\n\t\t\t\tdefaultConfig: app.config.cookie,\n\t\t\t\tdynamic: !!app.config.aot,\n\t\t\t\t// @ts-expect-error\n\t\t\t\tconfig: validator.cookie?.config ?? {},\n\t\t\t\t// @ts-expect-error\n\t\t\t\tmodels: app.definitions.type\n\t\t\t})\n\t\t: undefined\n\n\t// @ts-ignore private property\n\tconst cookieMeta = cookieValidator?.config as {\n\t\tsecrets?: string | string[]\n\t\tsign: string[] | true\n\t\tproperties: { [x: string]: Object }\n\t}\n\n\tlet encodeCookie = ''\n\n\tif (cookieMeta?.sign) {\n\t\tif (!cookieMeta.secrets)\n\t\t\tthrow new Error(\n\t\t\t\t`t.Cookie required secret which is not set in (${method}) ${path}.`\n\t\t\t)\n\n\t\tconst secret = !cookieMeta.secrets\n\t\t\t? undefined\n\t\t\t: typeof cookieMeta.secrets === 'string'\n\t\t\t\t? cookieMeta.secrets\n\t\t\t\t: cookieMeta.secrets[0]\n\n\t\tencodeCookie += 'const _setCookie = c.set.cookie\\n' + 'if(_setCookie){'\n\n\t\tif (cookieMeta.sign === true) {\n\t\t\tencodeCookie +=\n\t\t\t\t'for(const [key, cookie] of Object.entries(_setCookie)){' +\n\t\t\t\t`c.set.cookie[key].value=await signCookie(cookie.value,'${secret}')` +\n\t\t\t\t'}'\n\t\t} else\n\t\t\tfor (const name of cookieMeta.sign)\n\t\t\t\tencodeCookie +=\n\t\t\t\t\t`if(_setCookie['${name}']?.value){` +\n\t\t\t\t\t`c.set.cookie['${name}'].value=await signCookie(_setCookie['${name}'].value,'${secret}')` +\n\t\t\t\t\t'}'\n\n\t\tencodeCookie += '}\\n'\n\t}\n\n\tconst normalize = app.config.normalize\n\tconst encodeSchema = app.config.experimental?.encodeSchema\n\n\tconst { composeValidation, composeResponseValidation } =\n\t\tcomposeValidationFactory({\n\t\t\tnormalize,\n\t\t\tvalidator,\n\t\t\tencodeSchema\n\t\t})\n\n\tif (hasHeaders) fnLiteral += adapter.headers\n\n\tif (hasTrace) fnLiteral += 'const id=c[ELYSIA_REQUEST_ID]\\n'\n\n\tconst report = createReport({\n\t\ttrace: hooks.trace,\n\t\taddFn: (word) => {\n\t\t\tfnLiteral += word\n\t\t}\n\t})\n\n\tfnLiteral += 'try{'\n\n\tif (hasCookie) {\n\t\tconst get = (name: keyof CookieOptions, defaultValue?: unknown) => {\n\t\t\t// @ts-ignore\n\t\t\tconst value = cookieMeta?.[name] ?? defaultValue\n\t\t\tif (!value)\n\t\t\t\treturn typeof defaultValue === 'string'\n\t\t\t\t\t? `${name}:\"${defaultValue}\",`\n\t\t\t\t\t: `${name}:${defaultValue},`\n\n\t\t\tif (typeof value === 'string') return `${name}:'${value}',`\n\t\t\tif (value instanceof Date)\n\t\t\t\treturn `${name}: new Date(${value.getTime()}),`\n\n\t\t\treturn `${name}:${value},`\n\t\t}\n\n\t\tconst options = cookieMeta\n\t\t\t? `{secrets:${\n\t\t\t\t\tcookieMeta.secrets !== undefined\n\t\t\t\t\t\t? typeof cookieMeta.secrets === 'string'\n\t\t\t\t\t\t\t? `'${cookieMeta.secrets}'`\n\t\t\t\t\t\t\t: '[' +\n\t\t\t\t\t\t\t\tcookieMeta.secrets.reduce(\n\t\t\t\t\t\t\t\t\t(a, b) => a + `'${b}',`,\n\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t\t']'\n\t\t\t\t\t\t: 'undefined'\n\t\t\t\t},` +\n\t\t\t\t`sign:${\n\t\t\t\t\tcookieMeta.sign === true\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: cookieMeta.sign !== undefined\n\t\t\t\t\t\t\t? '[' +\n\t\t\t\t\t\t\t\tcookieMeta.sign.reduce(\n\t\t\t\t\t\t\t\t\t(a, b) => a + `'${b}',`,\n\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t) +\n\t\t\t\t\t\t\t\t']'\n\t\t\t\t\t\t\t: 'undefined'\n\t\t\t\t},` +\n\t\t\t\tget('domain') +\n\t\t\t\tget('expires') +\n\t\t\t\tget('httpOnly') +\n\t\t\t\tget('maxAge') +\n\t\t\t\tget('path', '/') +\n\t\t\t\tget('priority') +\n\t\t\t\tget('sameSite') +\n\t\t\t\tget('secure') +\n\t\t\t\t'}'\n\t\t\t: 'undefined'\n\n\t\tif (hasHeaders)\n\t\t\tfnLiteral += `\\nc.cookie=await parseCookie(c.set,c.headers.cookie,${options})\\n`\n\t\telse\n\t\t\tfnLiteral += `\\nc.cookie=await parseCookie(c.set,c.request.headers.get('cookie'),${options})\\n`\n\t}\n\n\tif (hasQuery) {\n\t\tconst destructured = <\n\t\t\t{\n\t\t\t\tkey: string\n\t\t\t\tisArray: boolean\n\t\t\t\tisNestedObjectArray: boolean\n\t\t\t\tisObject: boolean\n\t\t\t\tanyOf: boolean\n\t\t\t}[]\n\t\t>[]\n\n\t\t// @ts-ignore\n\t\tif (validator.query && validator.query.schema.type === 'object') {\n\t\t\t// @ts-expect-error private property\n\t\t\tconst properties = validator.query.schema.properties\n\n\t\t\tif (!hasAdditionalProperties(validator.query as any))\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tfor (let [key, _value] of Object.entries(properties)) {\n\t\t\t\t\tlet value = _value as TAnySchema\n\n\t\t\t\t\tconst isArray =\n\t\t\t\t\t\tvalue.type === 'array' ||\n\t\t\t\t\t\t!!value.anyOf?.some(\n\t\t\t\t\t\t\t(v: TSchema) =>\n\t\t\t\t\t\t\t\tv.type === 'string' &&\n\t\t\t\t\t\t\t\tv.format === 'ArrayString'\n\t\t\t\t\t\t)\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (\n\t\t\t\t\t\tvalue &&\n\t\t\t\t\t\tTypeBoxSymbol.optional in value &&\n\t\t\t\t\t\tvalue.type === 'array' &&\n\t\t\t\t\t\tvalue.items\n\t\t\t\t\t)\n\t\t\t\t\t\tvalue = value.items\n\n\t\t\t\t\t// @ts-ignore unknown\n\t\t\t\t\tconst { type, anyOf } = value\n\n\t\t\t\t\tdestructured.push({\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tisArray,\n\t\t\t\t\t\tisNestedObjectArray:\n\t\t\t\t\t\t\t(isArray && value.items?.type === 'object') ||\n\t\t\t\t\t\t\t!!value.items?.anyOf?.some(\n\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t(x) => x.type === 'object' || x.type === 'array'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\tisObject:\n\t\t\t\t\t\t\ttype === 'object' ||\n\t\t\t\t\t\t\tanyOf?.some(\n\t\t\t\t\t\t\t\t(v: TSchema) =>\n\t\t\t\t\t\t\t\t\tv.type === 'string' &&\n\t\t\t\t\t\t\t\t\tv.format === 'ArrayString'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\tanyOf: !!anyOf\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t}\n\n\t\tif (!destructured.length) {\n\t\t\tfnLiteral +=\n\t\t\t\t'if(c.qi===-1){' +\n\t\t\t\t'c.query={}' +\n\t\t\t\t'}else{' +\n\t\t\t\t'c.query=parseQueryFromURL(c.url.slice(c.qi + 1))' +\n\t\t\t\t'}'\n\t\t} else {\n\t\t\tfnLiteral +=\n\t\t\t\t'if(c.qi!==-1){' + `let url='&'+c.url.slice(c.qi + 1)\\n`\n\n\t\t\tlet index = 0\n\t\t\tfor (const {\n\t\t\t\tkey,\n\t\t\t\tisArray,\n\t\t\t\tisObject,\n\t\t\t\tisNestedObjectArray,\n\t\t\t\tanyOf\n\t\t\t} of destructured) {\n\t\t\t\tconst init =\n\t\t\t\t\t(index === 0 ? 'let ' : '') +\n\t\t\t\t\t`memory=url.indexOf('&${key}=')` +\n\t\t\t\t\t`\\nlet a${index}\\n`\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\tfnLiteral += init\n\n\t\t\t\t\tif (isNestedObjectArray)\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`while(memory!==-1){` +\n\t\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t\t`if(a${index}===undefined)\\n` +\n\t\t\t\t\t\t\t`a${index}=''\\n` +\n\t\t\t\t\t\t\t`else\\n` +\n\t\t\t\t\t\t\t`a${index}+=','\\n` +\n\t\t\t\t\t\t\t`let temp\\n` +\n\t\t\t\t\t\t\t`if(memory===-1)temp=decodeURIComponent(url.slice(start).replace(/\\\\+/g,' '))\\n` +\n\t\t\t\t\t\t\t`else temp=decodeURIComponent(url.slice(start, memory).replace(/\\\\+/g,' '))\\n` +\n\t\t\t\t\t\t\t`const charCode=temp.charCodeAt(0)\\n` +\n\t\t\t\t\t\t\t`if(charCode!==91&&charCode !== 123)\\n` +\n\t\t\t\t\t\t\t`temp='\"'+temp+'\"'\\n` +\n\t\t\t\t\t\t\t`a${index}+=temp\\n` +\n\t\t\t\t\t\t\t`if(memory===-1)break\\n` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&${key}=',memory)\\n` +\n\t\t\t\t\t\t\t`if(memory===-1)break` +\n\t\t\t\t\t\t\t`}` +\n\t\t\t\t\t\t\t`try{` +\n\t\t\t\t\t\t\t`if(a${index}.charCodeAt(0)===91)` +\n\t\t\t\t\t\t\t`a${index} = JSON.parse(a${index})\\n` +\n\t\t\t\t\t\t\t`else\\n` +\n\t\t\t\t\t\t\t`a${index}=JSON.parse('['+a${index}+']')` +\n\t\t\t\t\t\t\t`}catch{}\\n`\n\t\t\t\t\telse\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`while(memory!==-1){` +\n\t\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t\t`if(a${index}===undefined)` +\n\t\t\t\t\t\t\t`a${index}=[]\\n` +\n\t\t\t\t\t\t\t`if(memory===-1){` +\n\t\t\t\t\t\t\t`const temp=decodeURIComponent(url.slice(start)).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`if(temp.includes(',')){a${index}=a${index}.concat(temp.split(','))}` +\n\t\t\t\t\t\t\t`else{a${index}.push(decodeURIComponent(url.slice(start)).replace(/\\\\+/g,' '))}\\n` +\n\t\t\t\t\t\t\t`break` +\n\t\t\t\t\t\t\t`}else{` +\n\t\t\t\t\t\t\t`const temp=decodeURIComponent(url.slice(start, memory)).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`if(temp.includes(',')){a${index}=a${index}.concat(temp.split(','))}` +\n\t\t\t\t\t\t\t`else{a${index}.push(temp)}\\n` +\n\t\t\t\t\t\t\t`}` +\n\t\t\t\t\t\t\t`memory=url.indexOf('&${key}=',memory)\\n` +\n\t\t\t\t\t\t\t`if(memory===-1) break\\n` +\n\t\t\t\t\t\t\t`}`\n\t\t\t\t} else if (isObject)\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\tinit +\n\t\t\t\t\t\t`if(memory!==-1){` +\n\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t`if(memory===-1)a${index}=decodeURIComponent(url.slice(start).replace(/\\\\+/g,' '))` +\n\t\t\t\t\t\t`else a${index}=decodeURIComponent(url.slice(start,memory).replace(/\\\\+/g,' '))` +\n\t\t\t\t\t\t`if(a${index}!==undefined)` +\n\t\t\t\t\t\t`try{` +\n\t\t\t\t\t\t`a${index}=JSON.parse(a${index})` +\n\t\t\t\t\t\t`}catch{}` +\n\t\t\t\t\t\t'}'\n\t\t\t\t// Might be union primitive and array\n\t\t\t\telse {\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\tinit +\n\t\t\t\t\t\t`if(memory!==-1){` +\n\t\t\t\t\t\t`const start=memory+${key.length + 2}\\n` +\n\t\t\t\t\t\t`memory=url.indexOf('&',start)\\n` +\n\t\t\t\t\t\t`if(memory===-1)a${index}=decodeURIComponent(url.slice(start).replace(/\\\\+/g,' '))\\n` +\n\t\t\t\t\t\t`else{` +\n\t\t\t\t\t\t`a${index}=decodeURIComponent(url.slice(start,memory).replace(/\\\\+/g,' '))`\n\n\t\t\t\t\tif (anyOf)\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`\\nlet deepMemory=url.indexOf('&${key}=',memory)\\n` +\n\t\t\t\t\t\t\t`if(deepMemory!==-1){` +\n\t\t\t\t\t\t\t`a${index}=[a${index}]\\n` +\n\t\t\t\t\t\t\t`let first=true\\n` +\n\t\t\t\t\t\t\t`while(true){` +\n\t\t\t\t\t\t\t`const start=deepMemory+${key.length + 2}\\n` +\n\t\t\t\t\t\t\t`if(first)first=false\\n` +\n\t\t\t\t\t\t\t`else deepMemory = url.indexOf('&', start)\\n` +\n\t\t\t\t\t\t\t`let value\\n` +\n\t\t\t\t\t\t\t`if(deepMemory===-1)value=url.slice(start).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`else value=url.slice(start, deepMemory).replace(/\\\\+/g,' ')\\n` +\n\t\t\t\t\t\t\t`value=decodeURIComponent(value)\\n` +\n\t\t\t\t\t\t\t`if(value===null){if(deepMemory===-1){break}else{continue}}\\n` +\n\t\t\t\t\t\t\t`const vStart=value.charCodeAt(0)\\n` +\n\t\t\t\t\t\t\t`const vEnd=value.charCodeAt(value.length - 1)\\n` +\n\t\t\t\t\t\t\t`if((vStart===91&&vEnd===93)||(vStart===123&&vEnd===125))\\n` +\n\t\t\t\t\t\t\t`try{` +\n\t\t\t\t\t\t\t`a${index}.push(JSON.parse(value))` +\n\t\t\t\t\t\t\t`}catch{` +\n\t\t\t\t\t\t\t`a${index}.push(value)` +\n\t\t\t\t\t\t\t`}` +\n\t\t\t\t\t\t\t`if(deepMemory===-1)break` +\n\t\t\t\t\t\t\t`}}`\n\n\t\t\t\t\tfnLiteral += '}}'\n\t\t\t\t}\n\n\t\t\t\tindex++\n\t\t\t\tfnLiteral += '\\n'\n\t\t\t}\n\n\t\t\tfnLiteral +=\n\t\t\t\t`c.query={` +\n\t\t\t\tdestructured\n\t\t\t\t\t.map(({ key }, index) => `'${key}':a${index}`)\n\t\t\t\t\t.join(',') +\n\t\t\t\t`}`\n\n\t\t\t// If there are no query parameters, set it to an empty object\n\t\t\tfnLiteral += `} else c.query = {}\\n`\n\t\t}\n\t}\n\n\tconst isAsyncHandler = typeof handler === 'function' && isAsync(handler)\n\n\tconst saveResponse =\n\t\thasTrace || hooks.afterResponse?.length ? 'c.response= ' : ''\n\n\tconst maybeAsync =\n\t\thasCookie ||\n\t\thasBody ||\n\t\tisAsyncHandler ||\n\t\t!!hooks.parse?.length ||\n\t\t!!hooks.afterHandle?.some(isAsync) ||\n\t\t!!hooks.beforeHandle?.some(isAsync) ||\n\t\t!!hooks.transform?.some(isAsync) ||\n\t\t!!hooks.mapResponse?.some(isAsync)\n\n\tconst maybeStream =\n\t\t(typeof handler === 'function' ? isGenerator(handler as any) : false) ||\n\t\t!!hooks.beforeHandle?.some(isGenerator) ||\n\t\t!!hooks.afterHandle?.some(isGenerator) ||\n\t\t!!hooks.transform?.some(isGenerator)\n\n\tconst hasSet =\n\t\tinference.cookie ||\n\t\tinference.set ||\n\t\thasHeaders ||\n\t\thasTrace ||\n\t\tvalidator.response ||\n\t\t(isHandleFn && hasDefaultHeaders) ||\n\t\tmaybeStream\n\n\tconst mapResponseContext = adapter.mapResponseContext\n\t\t? `,${adapter.mapResponseContext}`\n\t\t: ''\n\n\tif (inference.route) fnLiteral += `c.route=\\`${path}\\`\\n`\n\n\tconst parseReporter = report('parse', {\n\t\ttotal: hooks.parse?.length\n\t})\n\n\tif (hasBody) {\n\t\tconst isOptionalBody = isOptional(validator.body)\n\n\t\tconst hasBodyInference =\n\t\t\t!!hooks.parse?.length || inference.body || validator.body\n\n\t\tif (adapter.parser.declare) fnLiteral += adapter.parser.declare\n\n\t\tfnLiteral += '\\nisParsing=true\\n'\n\n\t\tconst parser =\n\t\t\ttypeof hooks.parse === 'string'\n\t\t\t\t? hooks.parse\n\t\t\t\t: Array.isArray(hooks.parse) && hooks.parse.length === 1\n\t\t\t\t\t? typeof hooks.parse[0] === 'string'\n\t\t\t\t\t\t? hooks.parse[0]\n\t\t\t\t\t\t: typeof hooks.parse[0].fn === 'string'\n\t\t\t\t\t\t\t? hooks.parse[0].fn\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t: undefined\n\n\t\tif (parser && defaultParsers.includes(parser)) {\n\t\t\tconst reporter = report('parse', {\n\t\t\t\ttotal: hooks.parse?.length\n\t\t\t})\n\n\t\t\tswitch (parser) {\n\t\t\t\tcase 'json':\n\t\t\t\tcase 'application/json':\n\t\t\t\t\tfnLiteral += adapter.parser.json(isOptionalBody)\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'text':\n\t\t\t\tcase 'text/plain':\n\t\t\t\t\tfnLiteral += adapter.parser.text(isOptionalBody)\n\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'urlencoded':\n\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\tfnLiteral += adapter.parser.urlencoded(isOptionalBody)\n\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'arrayBuffer':\n\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\tfnLiteral += adapter.parser.arrayBuffer(isOptionalBody)\n\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'formdata':\n\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\tfnLiteral += adapter.parser.formData(isOptionalBody)\n\t\t\t\t\tbreak\n\n\t\t\t\tdefault:\n\t\t\t\t\tif ((parser[0] as string) in app['~parser']) {\n\t\t\t\t\t\tfnLiteral += hasHeaders\n\t\t\t\t\t\t\t? `let contentType = c.headers['content-type']`\n\t\t\t\t\t\t\t: `let contentType = c.request.headers.get('content-type')`\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`\\nif(contentType){` +\n\t\t\t\t\t\t\t`const index=contentType.indexOf(';')\\n` +\n\t\t\t\t\t\t\t`if(index!==-1)contentType=contentType.substring(0, index)}\\n` +\n\t\t\t\t\t\t\t`else{contentType=''}` +\n\t\t\t\t\t\t\t`c.contentType=contentType\\n`\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`let result=parser['${parser}'](c, contentType)\\n` +\n\t\t\t\t\t\t\t`if(result instanceof Promise)result=await result\\n` +\n\t\t\t\t\t\t\t`if(result instanceof ElysiaCustomStatusResponse)throw result\\n` +\n\t\t\t\t\t\t\t`if(result!==undefined)c.body=result\\n` +\n\t\t\t\t\t\t\t'delete c.contentType\\n'\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak\n\t\t\t}\n\n\t\t\treporter.resolve()\n\t\t} else if (hasBodyInference) {\n\t\t\tfnLiteral += '\\n'\n\t\t\tfnLiteral += hasHeaders\n\t\t\t\t? `let contentType = c.headers['content-type']`\n\t\t\t\t: `let contentType = c.request.headers.get('content-type')`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`\\nif(contentType){` +\n\t\t\t\t`const index=contentType.indexOf(';')\\n` +\n\t\t\t\t`if(index!==-1)contentType=contentType.substring(0, index)}\\n` +\n\t\t\t\t`else{contentType=''}` +\n\t\t\t\t`c.contentType=contentType\\n`\n\n\t\t\tif (hooks.parse?.length) fnLiteral += `let used=false\\n`\n\n\t\t\tconst reporter = report('parse', {\n\t\t\t\ttotal: hooks.parse?.length\n\t\t\t})\n\n\t\t\tlet hasDefaultParser = false\n\t\t\tif (hooks.parse)\n\t\t\t\tfor (let i = 0; i < hooks.parse.length; i++) {\n\t\t\t\t\tconst name = `bo${i}`\n\t\t\t\t\tif (i !== 0) fnLiteral += `\\nif(!used){`\n\n\t\t\t\t\tif (typeof hooks.parse[i].fn === 'string') {\n\t\t\t\t\t\tconst endUnit = reporter.resolveChild(\n\t\t\t\t\t\t\thooks.parse[i].fn as unknown as string\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tswitch (hooks.parse[i].fn as unknown as string) {\n\t\t\t\t\t\t\tcase 'json':\n\t\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral += adapter.parser.json(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral += adapter.parser.text(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'urlencoded':\n\t\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\tadapter.parser.urlencoded(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'arrayBuffer':\n\t\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\tadapter.parser.arrayBuffer(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tcase 'formdata':\n\t\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\t\thasDefaultParser = true\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\tadapter.parser.formData(isOptionalBody)\n\n\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t\t\t`${name}=parser['${hooks.parse[i].fn}'](c,contentType)\\n` +\n\t\t\t\t\t\t\t\t\t`if(${name} instanceof Promise)${name}=await ${name}\\n` +\n\t\t\t\t\t\t\t\t\t`if(${name}!==undefined){c.body=${name};used=true}\\n`\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst endUnit = reporter.resolveChild(\n\t\t\t\t\t\t\thooks.parse[i].fn.name\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`let ${name}=e.parse[${i}]\\n` +\n\t\t\t\t\t\t\t`${name}=${name}(c,contentType)\\n` +\n\t\t\t\t\t\t\t`if(${name} instanceof Promise)${name}=await ${name}\\n` +\n\t\t\t\t\t\t\t`if(${name}!==undefined){c.body=${name};used=true}`\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (i !== 0) fnLiteral += `}`\n\n\t\t\t\t\tif (hasDefaultParser) break\n\t\t\t\t}\n\n\t\t\treporter.resolve()\n\n\t\t\tif (!hasDefaultParser) {\n\t\t\t\tif (hooks.parse?.length)\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`\\nif(!used){\\n` +\n\t\t\t\t\t\t`if(!contentType) throw new ParseError()\\n`\n\n\t\t\t\tfnLiteral += `switch(contentType){`\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`case 'application/json':\\n` +\n\t\t\t\t\tadapter.parser.json(isOptionalBody) +\n\t\t\t\t\t`break\\n` +\n\t\t\t\t\t`case 'text/plain':` +\n\t\t\t\t\tadapter.parser.text(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n' +\n\t\t\t\t\t`case 'application/x-www-form-urlencoded':` +\n\t\t\t\t\tadapter.parser.urlencoded(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n' +\n\t\t\t\t\t`case 'application/octet-stream':` +\n\t\t\t\t\tadapter.parser.arrayBuffer(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n' +\n\t\t\t\t\t`case 'multipart/form-data':` +\n\t\t\t\t\tadapter.parser.formData(isOptionalBody) +\n\t\t\t\t\t`break` +\n\t\t\t\t\t'\\n'\n\n\t\t\t\tfor (const key of Object.keys(app['~parser']))\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`case '${key}':` +\n\t\t\t\t\t\t`let bo${key}=parser['${key}'](c,contentType)\\n` +\n\t\t\t\t\t\t`if(bo${key} instanceof Promise)bo${key}=await bo${key}\\n` +\n\t\t\t\t\t\t`if(bo${key} instanceof ElysiaCustomStatusResponse)throw result\\n` +\n\t\t\t\t\t\t`if(bo${key}!==undefined)c.body=bo${key}\\n` +\n\t\t\t\t\t\t`break` +\n\t\t\t\t\t\t'\\n'\n\n\t\t\t\tif (hooks.parse?.length) fnLiteral += '}'\n\n\t\t\t\tfnLiteral += '}'\n\t\t\t}\n\n\t\t\t// fnLiteral += '}'\n\t\t}\n\n\t\tfnLiteral += '\\ndelete c.contentType'\n\t\tfnLiteral += '\\nisParsing=false\\n'\n\t}\n\n\tparseReporter.resolve()\n\n\tif (hooks?.transform) {\n\t\tconst reporter = report('transform', {\n\t\t\ttotal: hooks.transform.length\n\t\t})\n\n\t\tif (hooks.transform.length) fnLiteral += 'let transformed\\n'\n\n\t\tfor (let i = 0; i < hooks.transform.length; i++) {\n\t\t\tconst transform = hooks.transform[i]\n\n\t\t\tconst endUnit = reporter.resolveChild(transform.fn.name)\n\n\t\t\tfnLiteral += isAsync(transform)\n\t\t\t\t? `transformed=await e.transform[${i}](c)\\n`\n\t\t\t\t: `transformed=e.transform[${i}](c)\\n`\n\n\t\t\tif (transform.subType === 'mapDerive')\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(transformed instanceof ElysiaCustomStatusResponse)throw transformed\\n` +\n\t\t\t\t\t`else{` +\n\t\t\t\t\t`transformed.request=c.request\\n` +\n\t\t\t\t\t`transformed.store=c.store\\n` +\n\t\t\t\t\t`transformed.qi=c.qi\\n` +\n\t\t\t\t\t`transformed.path=c.path\\n` +\n\t\t\t\t\t`transformed.url=c.url\\n` +\n\t\t\t\t\t`transformed.redirect=c.redirect\\n` +\n\t\t\t\t\t`transformed.set=c.set\\n` +\n\t\t\t\t\t`transformed.error=c.error\\n` +\n\t\t\t\t\t`c=transformed` +\n\t\t\t\t\t'}'\n\t\t\telse\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(transformed instanceof ElysiaCustomStatusResponse)throw transformed\\n` +\n\t\t\t\t\t`else Object.assign(c,transformed)\\n`\n\n\t\t\tendUnit()\n\t\t}\n\n\t\treporter.resolve()\n\t}\n\n\tif (validator) {\n\t\tif (validator.headers) {\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in validator.headers &&\n\t\t\t\t!hasAdditionalProperties(validator.headers as any)\n\t\t\t)\n\t\t\t\tfnLiteral += 'c.headers=validator.headers.Clean(c.headers);\\n'\n\n\t\t\tif (hasProperty('default', validator.headers))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tvalidator.headers.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tconst parsed =\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t\t: value\n\n\t\t\t\t\tif (parsed !== undefined)\n\t\t\t\t\t\tfnLiteral += `c.headers['${key}']??=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\tif (isOptional(validator.headers))\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.headers)){`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.headers.Check(c.headers) === false){` +\n\t\t\t\tcomposeValidation('headers') +\n\t\t\t\t'}'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.headers.schema))\n\t\t\t\tfnLiteral += `c.headers=validator.headers.Decode(c.headers)\\n`\n\n\t\t\tif (isOptional(validator.headers)) fnLiteral += '}'\n\t\t}\n\n\t\tif (validator.params) {\n\t\t\tif (hasProperty('default', validator.params))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tvalidator.params.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tconst parsed =\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t\t: value\n\n\t\t\t\t\tif (parsed !== undefined)\n\t\t\t\t\t\tfnLiteral += `c.params['${key}']??=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.params.Check(c.params)===false){` +\n\t\t\t\tcomposeValidation('params') +\n\t\t\t\t'}'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.params.schema))\n\t\t\t\tfnLiteral += `c.params=validator.params.Decode(c.params)\\n`\n\t\t}\n\n\t\tif (validator.query) {\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in validator.query &&\n\t\t\t\t!hasAdditionalProperties(validator.query as any)\n\t\t\t)\n\t\t\t\tfnLiteral += 'c.query=validator.query.Clean(c.query)\\n'\n\n\t\t\tif (hasProperty('default', validator.query))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tvalidator.query.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tconst parsed =\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t\t: value\n\n\t\t\t\t\tif (parsed !== undefined)\n\t\t\t\t\t\tfnLiteral += `if(c.query['${key}']===undefined)c.query['${key}']=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\tif (isOptional(validator.query))\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.query)){`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.query.Check(c.query)===false){` +\n\t\t\t\tcomposeValidation('query') +\n\t\t\t\t`}`\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.query.schema))\n\t\t\t\tfnLiteral += `c.query=validator.query.Decode(Object.assign({},c.query))\\n`\n\n\t\t\tif (isOptional(validator.query)) fnLiteral += `}`\n\t\t}\n\n\t\tif (validator.body) {\n\t\t\tif (\n\t\t\t\tnormalize &&\n\t\t\t\t'Clean' in validator.body &&\n\t\t\t\t!hasAdditionalProperties(validator.body as any)\n\t\t\t)\n\t\t\t\tfnLiteral += 'c.body=validator.body.Clean(c.body)\\n'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tconst doesHaveTransform = hasTransform(validator.body.schema)\n\n\t\t\tif (doesHaveTransform || isOptional(validator.body))\n\t\t\t\tfnLiteral += `const isNotEmptyObject=c.body&&(typeof c.body===\"object\"&&isNotEmpty(c.body))\\n`\n\n\t\t\tif (hasProperty('default', validator.body)) {\n\t\t\t\tconst value = Value.Default(\n\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\tvalidator.body.schema,\n\t\t\t\t\t// @ts-expect-error private property\n\t\t\t\t\tvalidator.body.schema.type === 'object' ? {} : undefined\n\t\t\t\t)\n\n\t\t\t\tconst parsed =\n\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t: typeof value === 'string'\n\t\t\t\t\t\t\t? `'${value}'`\n\t\t\t\t\t\t\t: value\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t`if(typeof c.body==='object')` +\n\t\t\t\t\t`c.body=Object.assign(${parsed},c.body)\\n` +\n\t\t\t\t\t`else c.body=${parsed}\\n`\n\n\t\t\t\tif (isOptional(validator.body))\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(isNotEmptyObject&&validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t'}'\n\t\t\t\telse\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t`}`\n\n\t\t\t\tfnLiteral += '}'\n\t\t\t} else {\n\t\t\t\tif (isOptional(validator.body))\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(isNotEmptyObject&&validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t'}'\n\t\t\t\telse\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t'}'\n\t\t\t}\n\n\t\t\tif (doesHaveTransform)\n\t\t\t\tfnLiteral += `if(isNotEmptyObject)c.body=validator.body.Decode(c.body)\\n`\n\t\t}\n\n\t\tif (\n\t\t\tcookieValidator &&\n\t\t\tisNotEmpty(\n\t\t\t\t// @ts-ignore\n\t\t\t\tcookieValidator?.schema?.properties ??\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcookieValidator?.schema?.schema ??\n\t\t\t\t\t{}\n\t\t\t)\n\t\t) {\n\t\t\tfnLiteral +=\n\t\t\t\t`const cookieValue={}\\n` +\n\t\t\t\t`for(const [key,value] of Object.entries(c.cookie))` +\n\t\t\t\t`cookieValue[key]=value.value\\n`\n\n\t\t\tif (hasProperty('default', cookieValidator))\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcookieValidator.schema,\n\t\t\t\t\t\t{}\n\t\t\t\t\t) as Object\n\t\t\t\t)) {\n\t\t\t\t\tfnLiteral += `cookieValue['${key}'] = ${\n\t\t\t\t\t\ttypeof value === 'object'\n\t\t\t\t\t\t\t? JSON.stringify(value)\n\t\t\t\t\t\t\t: value\n\t\t\t\t\t}\\n`\n\t\t\t\t}\n\n\t\t\tif (isOptional(validator.cookie))\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.cookie)){`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(validator.cookie.Check(cookieValue)===false){` +\n\t\t\t\tcomposeValidation('cookie', 'cookieValue') +\n\t\t\t\t'}'\n\n\t\t\t// @ts-expect-error private property\n\t\t\tif (hasTransform(validator.cookie.schema))\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`for(const [key,value] of Object.entries(validator.cookie.Decode(cookieValue)))` +\n\t\t\t\t\t`c.cookie[key].value=value\\n`\n\n\t\t\tif (isOptional(validator.cookie)) fnLiteral += `}`\n\t\t}\n\t}\n\n\tif (hooks?.beforeHandle) {\n\t\tconst reporter = report('beforeHandle', {\n\t\t\ttotal: hooks.beforeHandle.length\n\t\t})\n\n\t\tlet hasResolve = false\n\n\t\tfor (let i = 0; i < hooks.beforeHandle.length; i++) {\n\t\t\tconst beforeHandle = hooks.beforeHandle[i]\n\n\t\t\tconst endUnit = reporter.resolveChild(beforeHandle.fn.name)\n\n\t\t\tconst returning = hasReturn(beforeHandle)\n\t\t\tconst isResolver =\n\t\t\t\tbeforeHandle.subType === 'resolve' ||\n\t\t\t\tbeforeHandle.subType === 'mapResolve'\n\n\t\t\tif (isResolver) {\n\t\t\t\tif (!hasResolve) {\n\t\t\t\t\thasResolve = true\n\t\t\t\t\tfnLiteral += '\\nlet resolved\\n'\n\t\t\t\t}\n\n\t\t\t\tfnLiteral += isAsync(beforeHandle)\n\t\t\t\t\t? `resolved=await e.beforeHandle[${i}](c);\\n`\n\t\t\t\t\t: `resolved=e.beforeHandle[${i}](c);\\n`\n\n\t\t\t\tif (beforeHandle.subType === 'mapResolve')\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(resolved instanceof ElysiaCustomStatusResponse)` +\n\t\t\t\t\t\t`throw resolved\\n` +\n\t\t\t\t\t\t`else{` +\n\t\t\t\t\t\t`resolved.request = c.request\\n` +\n\t\t\t\t\t\t`resolved.store = c.store\\n` +\n\t\t\t\t\t\t`resolved.qi = c.qi\\n` +\n\t\t\t\t\t\t`resolved.path = c.path\\n` +\n\t\t\t\t\t\t`resolved.url = c.url\\n` +\n\t\t\t\t\t\t`resolved.redirect = c.redirect\\n` +\n\t\t\t\t\t\t`resolved.set = c.set\\n` +\n\t\t\t\t\t\t`resolved.error = c.error\\n` +\n\t\t\t\t\t\t`c = resolved` +\n\t\t\t\t\t\t`}`\n\t\t\t\telse\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(resolved instanceof ElysiaCustomStatusResponse)throw resolved\\n` +\n\t\t\t\t\t\t`else Object.assign(c, resolved)\\n`\n\t\t\t} else if (!returning) {\n\t\t\t\tfnLiteral += isAsync(beforeHandle)\n\t\t\t\t\t? `await e.beforeHandle[${i}](c)\\n`\n\t\t\t\t\t: `e.beforeHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit()\n\t\t\t} else {\n\t\t\t\tfnLiteral += isAsync(beforeHandle)\n\t\t\t\t\t? `be=await e.beforeHandle[${i}](c)\\n`\n\t\t\t\t\t: `be=e.beforeHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit('be')\n\n\t\t\t\tfnLiteral += `if(be!==undefined){`\n\t\t\t\treporter.resolve()\n\n\t\t\t\tif (hooks.afterHandle?.length) {\n\t\t\t\t\treport('handle', {\n\t\t\t\t\t\tname: isHandleFn\n\t\t\t\t\t\t\t? (handler as Function).name\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}).resolve()\n\n\t\t\t\t\tconst reporter = report('afterHandle', {\n\t\t\t\t\t\ttotal: hooks.afterHandle.length\n\t\t\t\t\t})\n\n\t\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\t\tconst hook = hooks.afterHandle[i]\n\t\t\t\t\t\tconst returning = hasReturn(hook)\n\t\t\t\t\t\tconst endUnit = reporter.resolveChild(hook.fn.name)\n\n\t\t\t\t\t\tfnLiteral += `c.response = be\\n`\n\n\t\t\t\t\t\tif (!returning) {\n\t\t\t\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t\t\t\t? `await e.afterHandle[${i}](c, be)\\n`\n\t\t\t\t\t\t\t\t: `e.afterHandle[${i}](c, be)\\n`\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t\t\t\t? `af = await e.afterHandle[${i}](c)\\n`\n\t\t\t\t\t\t\t\t: `af = e.afterHandle[${i}](c)\\n`\n\n\t\t\t\t\t\t\tfnLiteral += `if(af!==undefined) c.response=be=af\\n`\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tendUnit('af')\n\t\t\t\t\t}\n\t\t\t\t\treporter.resolve()\n\t\t\t\t}\n\n\t\t\t\tif (validator.response)\n\t\t\t\t\tfnLiteral += composeResponseValidation('be')\n\n\t\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t\t})\n\n\t\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\t\tfnLiteral += `c.response=be\\n`\n\n\t\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`if(mr===undefined){` +\n\t\t\t\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t\t`if(mr!==undefined)be=c.response=mr` +\n\t\t\t\t\t\t\t'}'\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmapResponseReporter.resolve()\n\n\t\t\t\tfnLiteral += encodeCookie\n\t\t\t\tfnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})}\\n`\n\t\t\t}\n\t\t}\n\n\t\treporter.resolve()\n\t}\n\n\tif (hooks.afterHandle?.length) {\n\t\tconst handleReporter = report('handle', {\n\t\t\tname: isHandleFn ? (handler as Function).name : undefined\n\t\t})\n\n\t\tif (hooks.afterHandle.length)\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=c.response=await ${handle}\\n`\n\t\t\t\t: `let r=c.response=${handle}\\n`\n\t\telse\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=await ${handle}\\n`\n\t\t\t\t: `let r=${handle}\\n`\n\n\t\thandleReporter.resolve()\n\n\t\tconst reporter = report('afterHandle', {\n\t\t\ttotal: hooks.afterHandle.length\n\t\t})\n\n\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\tconst hook = hooks.afterHandle[i]\n\t\t\tconst returning = hasReturn(hook)\n\t\t\tconst endUnit = reporter.resolveChild(hook.fn.name)\n\n\t\t\tif (!returning) {\n\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t? `await e.afterHandle[${i}](c)\\n`\n\t\t\t\t\t: `e.afterHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit()\n\t\t\t} else {\n\t\t\t\tfnLiteral += isAsync(hook.fn)\n\t\t\t\t\t? `af=await e.afterHandle[${i}](c)\\n`\n\t\t\t\t\t: `af=e.afterHandle[${i}](c)\\n`\n\n\t\t\t\tendUnit('af')\n\n\t\t\t\tif (validator.response) {\n\t\t\t\t\tfnLiteral += `if(af!==undefined){`\n\t\t\t\t\treporter.resolve()\n\n\t\t\t\t\tfnLiteral += composeResponseValidation('af')\n\n\t\t\t\t\tfnLiteral += `c.response=af}`\n\t\t\t\t} else {\n\t\t\t\t\tfnLiteral += `if(af!==undefined){`\n\t\t\t\t\treporter.resolve()\n\n\t\t\t\t\tfnLiteral += `c.response=af}`\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treporter.resolve()\n\n\t\tfnLiteral += `r=c.response\\n`\n\n\t\tif (validator.response) fnLiteral += composeResponseValidation()\n\n\t\tfnLiteral += encodeCookie\n\n\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\ttotal: hooks.mapResponse?.length\n\t\t})\n\t\tif (hooks.mapResponse?.length) {\n\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t)\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`mr=${\n\t\t\t\t\t\tisAsyncName(mapResponse) ? 'await ' : ''\n\t\t\t\t\t}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t`if(mr!==undefined)r=c.response=mr\\n`\n\n\t\t\t\tendUnit()\n\t\t\t}\n\t\t}\n\t\tmapResponseReporter.resolve()\n\n\t\tif (hasSet)\n\t\t\tfnLiteral += `return mapResponse(${saveResponse}r,c.set${\n\t\t\t\tmapResponseContext\n\t\t\t})\\n`\n\t\telse\n\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\tmapResponseContext\n\t\t\t})\\n`\n\t} else {\n\t\tconst handleReporter = report('handle', {\n\t\t\tname: isHandleFn ? (handler as Function).name : undefined\n\t\t})\n\n\t\tif (validator.response || hooks.mapResponse?.length) {\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=await ${handle}\\n`\n\t\t\t\t: `let r=${handle}\\n`\n\n\t\t\thandleReporter.resolve()\n\n\t\t\tif (validator.response) fnLiteral += composeResponseValidation()\n\n\t\t\treport('afterHandle').resolve()\n\n\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t})\n\n\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\tfnLiteral += '\\nc.response=r\\n'\n\n\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t)\n\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`\\nif(mr===undefined){` +\n\t\t\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t`if(mr!==undefined)r=c.response=mr` +\n\t\t\t\t\t\t`}\\n`\n\n\t\t\t\t\tendUnit()\n\t\t\t\t}\n\t\t\t}\n\t\t\tmapResponseReporter.resolve()\n\n\t\t\tfnLiteral += encodeCookie\n\n\t\t\tif (handler instanceof Response) {\n\t\t\t\tfnLiteral += inference.set\n\t\t\t\t\t? `if(` +\n\t\t\t\t\t\t`isNotEmpty(c.set.headers)||` +\n\t\t\t\t\t\t`c.set.status!==200||` +\n\t\t\t\t\t\t`c.set.redirect||` +\n\t\t\t\t\t\t`c.set.cookie)return mapResponse(${saveResponse}${handle}.clone(),c.set${\n\t\t\t\t\t\t\tmapResponseContext\n\t\t\t\t\t\t})` +\n\t\t\t\t\t\t`else return ${handle}.clone()`\n\t\t\t\t\t: `return ${handle}.clone()`\n\n\t\t\t\tfnLiteral += '\\n'\n\t\t\t} else if (hasSet)\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}r,c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\telse\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t} else if (hasCookie || hasTrace) {\n\t\t\tfnLiteral += isAsyncHandler\n\t\t\t\t? `let r=await ${handle}\\n`\n\t\t\t\t: `let r=${handle}\\n`\n\n\t\t\thandleReporter.resolve()\n\n\t\t\treport('afterHandle').resolve()\n\n\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t})\n\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\tfnLiteral += 'c.response= r\\n'\n\n\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t)\n\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`if(mr===undefined){` +\n\t\t\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t`if(mr!==undefined)r=c.response=mr` +\n\t\t\t\t\t\t`}`\n\n\t\t\t\t\tendUnit()\n\t\t\t\t}\n\t\t\t}\n\t\t\tmapResponseReporter.resolve()\n\n\t\t\tfnLiteral += encodeCookie\n\n\t\t\tif (hasSet)\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}r,c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\telse\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t} else {\n\t\t\thandleReporter.resolve()\n\n\t\t\tconst handled = isAsyncHandler ? `await ${handle}` : handle\n\n\t\t\treport('afterHandle').resolve()\n\n\t\t\tif (handler instanceof Response) {\n\t\t\t\tfnLiteral += inference.set\n\t\t\t\t\t? `if(isNotEmpty(c.set.headers)||` +\n\t\t\t\t\t\t`c.set.status!==200||` +\n\t\t\t\t\t\t`c.set.redirect||` +\n\t\t\t\t\t\t`c.set.cookie)` +\n\t\t\t\t\t\t`return mapResponse(${saveResponse}${handle}.clone(),c.set${\n\t\t\t\t\t\t\tmapResponseContext\n\t\t\t\t\t\t})\\n` +\n\t\t\t\t\t\t`else return ${handle}.clone()\\n`\n\t\t\t\t\t: `return ${handle}.clone()\\n`\n\t\t\t} else if (hasSet)\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}${handled},c.set${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\telse\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}${handled}${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t}\n\t}\n\n\tfnLiteral += `\\n}catch(error){`\n\n\tif (hasBody) fnLiteral += `if(isParsing)error=new ParseError()\\n`\n\n\tif (!maybeAsync) fnLiteral += `return(async()=>{`\n\tfnLiteral +=\n\t\t`const set=c.set\\n` +\n\t\t`if(!set.status||set.status<300)set.status=error?.status||500\\n`\n\n\tif (hasTrace && hooks.trace)\n\t\tfor (let i = 0; i < hooks.trace.length; i++)\n\t\t\t// There's a case where the error is thrown before any trace is called\n\t\t\tfnLiteral += `report${i}?.resolve(error);reportChild${i}?.(error)\\n`\n\n\tconst errorReporter = report('error', {\n\t\ttotal: hooks.error?.length\n\t})\n\n\tif (hooks.error?.length) {\n\t\tfnLiteral += `c.error=error\\n`\n\n\t\tif (hasValidation)\n\t\t\tfnLiteral +=\n\t\t\t\t`if(error instanceof TypeBoxError){` +\n\t\t\t\t'c.code=\"VALIDATION\"\\n' +\n\t\t\t\t'c.set.status=422' +\n\t\t\t\t'}else{' +\n\t\t\t\t`c.code=error.code??error[ERROR_CODE]??\"UNKNOWN\"}`\n\t\telse fnLiteral += `c.code=error.code??error[ERROR_CODE]??\"UNKNOWN\"\\n`\n\n\t\tfnLiteral += `let er\\n`\n\n\t\tfor (let i = 0; i < hooks.error.length; i++) {\n\t\t\tconst endUnit = errorReporter.resolveChild(hooks.error[i].fn.name)\n\n\t\t\tif (isAsync(hooks.error[i]))\n\t\t\t\tfnLiteral += `er=await e.error[${i}](c)\\n`\n\t\t\telse\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`er=e.error[${i}](c)\\n` +\n\t\t\t\t\t`if(er instanceof Promise)er=await er\\n`\n\n\t\t\tendUnit()\n\n\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\ttotal: hooks.mapResponse?.length\n\t\t\t})\n\n\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t)\n\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`c.response=er\\n` +\n\t\t\t\t\t\t`er=e.mapResponse[${i}](c)\\n` +\n\t\t\t\t\t\t`if(er instanceof Promise)er=await er\\n`\n\n\t\t\t\t\tendUnit()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmapResponseReporter.resolve()\n\n\t\t\tfnLiteral += `er=mapEarlyResponse(er,set${mapResponseContext})\\n`\n\t\t\tfnLiteral += `if(er){`\n\n\t\t\tif (hasTrace && hooks.trace) {\n\t\t\t\tfor (let i = 0; i < hooks.trace.length; i++)\n\t\t\t\t\tfnLiteral += `report${i}.resolve()\\n`\n\n\t\t\t\terrorReporter.resolve()\n\t\t\t}\n\n\t\t\tfnLiteral += `return er}`\n\t\t}\n\t}\n\n\terrorReporter.resolve()\n\n\tfnLiteral += `return handleError(c,error,true)`\n\tif (!maybeAsync) fnLiteral += '})()'\n\tfnLiteral += '}'\n\n\tif (hasAfterResponse || hasTrace) {\n\t\tfnLiteral += `finally{ `\n\n\t\tif (!maybeAsync) fnLiteral += ';(async()=>{'\n\n\t\tconst reporter = report('afterResponse', {\n\t\t\ttotal: hooks.afterResponse?.length\n\t\t})\n\n\t\tif (hasAfterResponse && hooks.afterResponse) {\n\t\t\tfor (let i = 0; i < hooks.afterResponse.length; i++) {\n\t\t\t\tconst endUnit = reporter.resolveChild(\n\t\t\t\t\thooks.afterResponse[i].fn.name\n\t\t\t\t)\n\t\t\t\tfnLiteral += `\\nawait e.afterResponse[${i}](c)\\n`\n\t\t\t\tendUnit()\n\t\t\t}\n\t\t}\n\n\t\treporter.resolve()\n\n\t\tif (!maybeAsync) fnLiteral += '})()'\n\n\t\tfnLiteral += `}`\n\t}\n\n\tconst adapterVariables = adapter.inject\n\t\t? Object.keys(adapter.inject).join(',') + ','\n\t\t: ''\n\n\tlet init =\n\t\t`const {` +\n\t\t`handler,` +\n\t\t`handleError,` +\n\t\t`hooks:e, ` +\n\t\tallocateIf(`validator,`, hasValidation) +\n\t\t`mapResponse,` +\n\t\t`mapCompactResponse,` +\n\t\t`mapEarlyResponse,` +\n\t\t`isNotEmpty,` +\n\t\t`utils:{` +\n\t\tallocateIf(`parseQuery,`, hasBody) +\n\t\tallocateIf(`parseQueryFromURL,`, hasQuery) +\n\t\t`},` +\n\t\t`error:{` +\n\t\tallocateIf(`ValidationError,`, hasValidation) +\n\t\t`InternalServerError,` +\n\t\tallocateIf(`ParseError`, hasBody) +\n\t\t`},` +\n\t\t`schema,` +\n\t\t`definitions,` +\n\t\t`ERROR_CODE,` +\n\t\tallocateIf(`parseCookie,`, hasCookie) +\n\t\tallocateIf(`signCookie,`, hasCookie) +\n\t\tallocateIf(`decodeURIComponent,`, hasQuery) +\n\t\t`ElysiaCustomStatusResponse,` +\n\t\tallocateIf(`ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tallocateIf('parser,', hooks.parse?.length) +\n\t\tallocateIf(`getServer,`, inference.server) +\n\t\tadapterVariables +\n\t\tallocateIf('TypeBoxError', hasValidation) +\n\t\t`}=hooks\\n` +\n\t\t`const trace=e.trace?.map(x=>typeof x==='function'?x:x.fn)??[]\\n` +\n\t\t`return ${maybeAsync ? 'async ' : ''}function handle(c){`\n\n\tif (hooks.beforeHandle?.length) init += 'let be\\n'\n\tif (hooks.afterHandle?.length) init += 'let af\\n'\n\tif (hooks.mapResponse?.length) init += 'let mr\\n'\n\tif (allowMeta) init += 'c.schema = schema\\nc.defs = definitions\\n'\n\n\tinit += fnLiteral + '}'\n\n\ttry {\n\t\tif (asManifest) return Function('hooks', init) as any\n\n\t\treturn Function(\n\t\t\t'hooks',\n\t\t\tinit\n\t\t)({\n\t\t\thandler,\n\t\t\thooks: lifeCycleToFn(hooks),\n\t\t\tvalidator: hasValidation ? validator : undefined,\n\t\t\t// @ts-expect-error\n\t\t\thandleError: app.handleError,\n\t\t\tmapResponse: adapterHandler.mapResponse,\n\t\t\tmapCompactResponse: adapterHandler.mapCompactResponse,\n\t\t\tmapEarlyResponse: adapterHandler.mapEarlyResponse,\n\t\t\tisNotEmpty,\n\t\t\tutils: {\n\t\t\t\tparseQuery: hasBody ? parseQuery : undefined,\n\t\t\t\tparseQueryFromURL: hasQuery ? parseQueryFromURL : undefined\n\t\t\t},\n\t\t\terror: {\n\t\t\t\tValidationError: hasValidation ? ValidationError : undefined,\n\t\t\t\tInternalServerError,\n\t\t\t\tParseError: hasBody ? ParseError : undefined\n\t\t\t},\n\t\t\tschema: app.router.history,\n\t\t\t// @ts-expect-error\n\t\t\tdefinitions: app.definitions.type,\n\t\t\tERROR_CODE,\n\t\t\tparseCookie: hasCookie ? parseCookie : undefined,\n\t\t\tsignCookie: hasCookie ? signCookie : undefined,\n\t\t\tdecodeURIComponent: hasQuery ? decodeURIComponent : undefined,\n\t\t\tElysiaCustomStatusResponse,\n\t\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\t\t// @ts-expect-error private property\n\t\t\tgetServer: () => app.getServer(),\n\t\t\tTypeBoxError: hasValidation ? TypeBoxError : undefined,\n\t\t\tparser: app['~parser'],\n\t\t\t...adapter.inject\n\t\t})\n\t} catch (error) {\n\t\tconst debugHooks = lifeCycleToFn(hooks)\n\n\t\tconsole.log('[Composer] failed to generate optimized handler')\n\t\tconsole.log('---')\n\t\tconsole.log({\n\t\t\thandler:\n\t\t\t\ttypeof handler === 'function' ? handler.toString() : handler,\n\t\t\tinstruction: init,\n\t\t\thooks: {\n\t\t\t\t...debugHooks,\n\t\t\t\t// @ts-expect-error\n\t\t\t\ttransform: debugHooks?.transform?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tresolve: debugHooks?.resolve?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tbeforeHandle: debugHooks?.beforeHandle?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tafterHandle: debugHooks?.afterHandle?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tmapResponse: debugHooks?.mapResponse?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tparse: debugHooks?.parse?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\terror: debugHooks?.error?.map?.((x) => x.toString()),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tafterResponse: debugHooks?.afterResponse?.map?.((x) =>\n\t\t\t\t\tx.toString()\n\t\t\t\t),\n\t\t\t\t// @ts-expect-error\n\t\t\t\tstop: debugHooks?.stop?.map?.((x) => x.toString())\n\t\t\t},\n\t\t\tvalidator,\n\t\t\t// @ts-expect-error\n\t\t\tdefinitions: app.definitions.type,\n\t\t\terror,\n\t\t\tfnLiteral\n\t\t})\n\t\tconsole.log('---')\n\n\t\tprocess.exit(1)\n\t}\n}\n\nexport interface ComposerGeneralHandlerOptions {\n\t/**\n\t * optimization for standard internet hostname\n\t * this will assume hostname is always use a standard internet hostname\n\t * assuming hostname is at minimum of 11 length of string (http://a.bc)\n\t *\n\t * setting this to true will skip the first 11 character of the hostname\n\t *\n\t * @default true\n\t */\n\tstandardHostname?: boolean\n}\n\nexport const composeGeneralHandler = (\n\tapp: AnyElysia,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t{ asManifest = false }: { asManifest?: false } = {}\n) => {\n\tconst adapter = app['~adapter'].composeGeneralHandler\n\tapp.router.http.build()\n\tconst error404 = adapter.error404(\n\t\t!!app.event.request?.length,\n\t\t!!app.event.error?.length\n\t)\n\n\tconst hasTrace = app.event.trace?.length\n\n\tlet fnLiteral = ''\n\n\tconst router = app.router\n\n\tlet findDynamicRoute = `const route=router.find(r.method,p)`\n\tfindDynamicRoute += router.http.root.ALL ? '??router.find(\"ALL\",p)\\n' : '\\n'\n\n\tfindDynamicRoute += error404.code\n\n\tfindDynamicRoute +=\n\t\t`\\nc.params=route.params\\n` +\n\t\t`if(route.store.handler)return route.store.handler(c)\\n` +\n\t\t`return (route.store.handler=route.store.compile())(c)\\n`\n\n\tlet switchMap = ``\n\tfor (const [path, v] of Object.entries(router.static.http.map)) {\n\t\tswitchMap += `case'${path}':`\n\n\t\tif (app.config.strictPath !== true)\n\t\t\tswitchMap += `case'${getLoosePath(path)}':`\n\n\t\tconst encoded = encodePath(path)\n\t\tif (path !== encoded) switchMap += `case'${encoded}':`\n\n\t\tswitchMap +=\n\t\t\t`switch(r.method){${v.code}\\n` +\n\t\t\t(v.all ?? `default: break map`) +\n\t\t\t'}'\n\t}\n\n\tconst maybeAsync = !!app.event.request?.some(isAsync)\n\n\tconst adapterVariables = adapter.inject\n\t\t? Object.keys(adapter.inject).join(',') + ','\n\t\t: ''\n\n\tfnLiteral +=\n\t\t`\\nconst {` +\n\t\t`app,` +\n\t\t`mapEarlyResponse,` +\n\t\t`NotFoundError,` +\n\t\t`randomId,` +\n\t\t`handleError,` +\n\t\t`error,` +\n\t\t`redirect,` +\n\t\tallocateIf(`ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tadapterVariables +\n\t\t`}=data\\n` +\n\t\t`const store=app.singleton.store\\n` +\n\t\t`const decorator=app.singleton.decorator\\n` +\n\t\t`const staticRouter=app.router.static.http\\n` +\n\t\t`const ht=app.router.history\\n` +\n\t\t`const router=app.router.http\\n` +\n\t\t`const trace=app.event.trace?.map(x=>typeof x==='function'?x:x.fn)??[]\\n` +\n\t\t`const notFound=new NotFoundError()\\n` +\n\t\t`const hoc=app.extender.higherOrderFunctions.map(x=>x.fn)\\n`\n\n\tif (app.event.request?.length)\n\t\tfnLiteral += `const onRequest=app.event.request.map(x=>x.fn)\\n`\n\n\tfnLiteral += error404.declare\n\n\tif (app.event.trace?.length)\n\t\tfnLiteral +=\n\t\t\t`const ` +\n\t\t\tapp.event.trace\n\t\t\t\t.map((_, i) => `tr${i}=app.event.trace[${i}].fn`)\n\t\t\t\t.join(',') +\n\t\t\t'\\n'\n\n\tfnLiteral += `${maybeAsync ? 'async ' : ''}function map(${adapter.parameters}){`\n\n\tif (app.event.request?.length) fnLiteral += `let re\\n`\n\n\tfnLiteral += adapter.createContext(app)\n\n\tif (app.event.trace?.length)\n\t\tfnLiteral +=\n\t\t\t`c[ELYSIA_TRACE]=[` +\n\t\t\tapp.event.trace.map((_, i) => `tr${i}(c)`).join(',') +\n\t\t\t`]\\n`\n\n\tconst report = createReport({\n\t\ttrace: app.event.trace,\n\t\taddFn(word) {\n\t\t\tfnLiteral += word\n\t\t}\n\t})\n\n\tconst reporter = report('request', {\n\t\ttotal: app.event.request?.length\n\t})\n\n\tif (app.event.request?.length) {\n\t\tfnLiteral += `try{`\n\n\t\tfor (let i = 0; i < app.event.request.length; i++) {\n\t\t\tconst hook = app.event.request[i]\n\t\t\tconst withReturn = hasReturn(hook)\n\t\t\tconst maybeAsync = isAsync(hook)\n\n\t\t\tconst endUnit = reporter.resolveChild(app.event.request[i].fn.name)\n\n\t\t\tif (withReturn) {\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`re=mapEarlyResponse(` +\n\t\t\t\t\t`${maybeAsync ? 'await ' : ''}onRequest[${i}](c),` +\n\t\t\t\t\t`c.set)\\n`\n\n\t\t\t\tendUnit('re')\n\t\t\t\tfnLiteral += `if(re!==undefined)return re\\n`\n\t\t\t} else {\n\t\t\t\tfnLiteral += `${maybeAsync ? 'await ' : ''}onRequest[${i}](c)\\n`\n\t\t\t\tendUnit()\n\t\t\t}\n\t\t}\n\n\t\tfnLiteral += `}catch(error){return app.handleError(c,error,false)}`\n\t}\n\n\treporter.resolve()\n\n\tfnLiteral += adapter.websocket(app)\n\n\tfnLiteral +=\n\t\t`\\nmap:switch(p){\\n` +\n\t\tswitchMap +\n\t\t`default:break}` +\n\t\tfindDynamicRoute +\n\t\t`}\\n`\n\n\t// @ts-expect-error private property\n\tif (app.extender.higherOrderFunctions.length) {\n\t\tlet handler = 'map'\n\t\t// @ts-expect-error private property\n\t\tfor (let i = 0; i < app.extender.higherOrderFunctions.length; i++)\n\t\t\thandler = `hoc[${i}](${handler},${adapter.parameters})`\n\n\t\tfnLiteral += `return function hocMap(${adapter.parameters}){return ${handler}(${adapter.parameters})}`\n\t} else fnLiteral += `return map`\n\n\tconst handleError = composeErrorHandler(app) as any\n\n\t// @ts-expect-error\n\tapp.handleError = handleError\n\n\treturn Function(\n\t\t'data',\n\t\tfnLiteral\n\t)({\n\t\tapp,\n\t\tmapEarlyResponse: app['~adapter']['handler'].mapEarlyResponse,\n\t\tNotFoundError,\n\t\trandomId,\n\t\thandleError,\n\t\terror,\n\t\tredirect,\n\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\t...adapter.inject\n\t})\n}\n\nexport const composeErrorHandler = (app: AnyElysia) => {\n\tconst hooks = app.event\n\tlet fnLiteral = ''\n\n\tconst adapter = app['~adapter'].composeError\n\tconst adapterVariables = adapter.inject\n\t\t? Object.keys(adapter.inject).join(',') + ','\n\t\t: ''\n\n\tconst hasTrace = !!app.event.trace?.length\n\n\tfnLiteral +=\n\t\t`const {` +\n\t\t`app:{` +\n\t\t`event:{` +\n\t\t`error:onErrorContainer,` +\n\t\t`afterResponse:resContainer,` +\n\t\t`mapResponse:_onMapResponse,` +\n\t\t`trace:_trace` +\n\t\t`}` +\n\t\t`},` +\n\t\t`mapResponse,` +\n\t\t`ERROR_CODE,` +\n\t\t`ElysiaCustomStatusResponse,` +\n\t\tallocateIf(`ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tadapterVariables +\n\t\t`}=inject\\n`\n\n\tfnLiteral +=\n\t\t`const trace=_trace?.map(x=>typeof x==='function'?x:x.fn)??[]\\n` +\n\t\t`const onMapResponse=[]\\n` +\n\t\t`if(_onMapResponse)for(let i=0;i<_onMapResponse.length;i++)` +\n\t\t`onMapResponse.push(_onMapResponse[i].fn??_onMapResponse[i])\\n` +\n\t\t`delete _onMapResponse\\n` +\n\t\t`const onError=onErrorContainer?.map(x=>x.fn)??[]\\n` +\n\t\t`const res=resContainer?.map(x=>x.fn)??[]\\n` +\n\t\t`return ${\n\t\t\tapp.event.error?.find(isAsync) ||\n\t\t\tapp.event.mapResponse?.find(isAsync)\n\t\t\t\t? 'async '\n\t\t\t\t: ''\n\t\t}function(context,error,skipGlobal){`\n\n\tfnLiteral += ''\n\n\tif (hasTrace) fnLiteral += 'const id=context[ELYSIA_REQUEST_ID]\\n'\n\n\tconst report = createReport({\n\t\tcontext: 'context',\n\t\ttrace: hooks.trace,\n\t\taddFn: (word) => {\n\t\t\tfnLiteral += word\n\t\t}\n\t})\n\n\tfnLiteral +=\n\t\t`const set=context.set\\n` +\n\t\t`let _r\\n` +\n\t\t`if(!context.code)context.code=error.code??error[ERROR_CODE]\\n` +\n\t\t`if(!(context.error instanceof Error))context.error=error\\n` +\n\t\t`if(error instanceof ElysiaCustomStatusResponse){` +\n\t\t`set.status=error.status=error.code\\n` +\n\t\t`error.message=error.response` +\n\t\t`}`\n\n\tif (adapter.declare) fnLiteral += adapter.declare\n\n\tconst saveResponse =\n\t\thasTrace ||\n\t\t!!hooks.afterResponse?.length ||\n\t\t!!hooks.afterResponse?.length\n\t\t\t? 'context.response = '\n\t\t\t: ''\n\n\tif (app.event.error)\n\t\tfor (let i = 0; i < app.event.error.length; i++) {\n\t\t\tconst handler = app.event.error[i]\n\n\t\t\tconst response = `${\n\t\t\t\tisAsync(handler) ? 'await ' : ''\n\t\t\t}onError[${i}](context)\\n`\n\n\t\t\tfnLiteral += 'if(skipGlobal!==true){'\n\n\t\t\tif (hasReturn(handler)) {\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`_r=${response}\\nif(_r!==undefined){` +\n\t\t\t\t\t`if(_r instanceof Response)return mapResponse(_r,set${adapter.mapResponseContext})\\n` +\n\t\t\t\t\t`if(_r instanceof ElysiaCustomStatusResponse){` +\n\t\t\t\t\t`error.status=error.code\\n` +\n\t\t\t\t\t`error.message = error.response` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`if(set.status===200||!set.status)set.status=error.status\\n`\n\n\t\t\t\tconst mapResponseReporter = report('mapResponse', {\n\t\t\t\t\ttotal: hooks.mapResponse?.length,\n\t\t\t\t\tname: 'context'\n\t\t\t\t})\n\n\t\t\t\tif (hooks.mapResponse?.length) {\n\t\t\t\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\t\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\t\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\t\t\t\tmapResponse.fn.name\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`context.response=_r` +\n\t\t\t\t\t\t\t`_r=${isAsyncName(mapResponse) ? 'await ' : ''}onMapResponse[${i}](context)\\n`\n\n\t\t\t\t\t\tendUnit()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmapResponseReporter.resolve()\n\n\t\t\t\tfnLiteral += `return mapResponse(${saveResponse}_r,set${adapter.mapResponseContext})}`\n\t\t\t} else fnLiteral += response\n\n\t\t\tfnLiteral += '}'\n\t\t}\n\n\tfnLiteral +=\n\t\t`if(error.constructor.name===\"ValidationError\"||error.constructor.name===\"TransformDecodeError\"){` +\n\t\t`if(error.error)error=error.error\\n` +\n\t\t`set.status=error.status??422\\n` +\n\t\tadapter.validationError +\n\t\t`}`\n\n\tfnLiteral += `if(error instanceof Error){` + adapter.unknownError + `}`\n\n\tconst mapResponseReporter = report('mapResponse', {\n\t\ttotal: hooks.mapResponse?.length,\n\t\tname: 'context'\n\t})\n\n\tfnLiteral +=\n\t\t'\\nif(!context.response)context.response=error.message??error\\n'\n\n\tif (hooks.mapResponse?.length) {\n\t\tfnLiteral += 'let mr\\n'\n\n\t\tfor (let i = 0; i < hooks.mapResponse.length; i++) {\n\t\t\tconst mapResponse = hooks.mapResponse[i]\n\n\t\t\tconst endUnit = mapResponseReporter.resolveChild(\n\t\t\t\tmapResponse.fn.name\n\t\t\t)\n\n\t\t\tfnLiteral +=\n\t\t\t\t`if(mr===undefined){` +\n\t\t\t\t`mr=${isAsyncName(mapResponse) ? 'await ' : ''}onMapResponse[${i}](context)\\n` +\n\t\t\t\t`if(mr!==undefined)error=context.response=mr` +\n\t\t\t\t'}'\n\n\t\t\tendUnit()\n\t\t}\n\t}\n\n\tmapResponseReporter.resolve()\n\n\tfnLiteral += `\\nreturn mapResponse(${saveResponse}error,set${adapter.mapResponseContext})}`\n\n\treturn Function(\n\t\t'inject',\n\t\tfnLiteral\n\t)({\n\t\tapp,\n\t\tmapResponse: app['~adapter'].handler.mapResponse,\n\t\tERROR_CODE,\n\t\tElysiaCustomStatusResponse,\n\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\t...adapter.inject\n\t})\n}\n",
21
21
  "/**\nFork of fast-querystring\n\noriginate\n@from https://github.com/anonrig/fast-querystring/tree/main\n\nmodified\n@from https://discord.com/channels/876711213126520882/1111136889743888455/1263902371801595979\n\nCopyright (c) 2022 Yagiz Nizipli\n\nPermission is hereby granted, free of charge, to any\nperson obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the\nSoftware without restriction, including without\nlimitation the rights to use, copy, modify, merge,\npublish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software\nis furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice\nshall be included in all copies or substantial portions\nof the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF\nANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\nTO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\nPARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT\nSHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR\nIN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n*/\n\nimport { decode as fastDecode } from './deuri'\n\nconst plusRegex = /\\+/g\n\n// Parse query without array\nexport function parseQueryFromURL(input: string) {\n\tconst result = <Record<string, string>>{}\n\n\tif (typeof input !== 'string') return result\n\n\tlet key = ''\n\tlet value = ''\n\tlet startingIndex = -1\n\tlet equalityIndex = -1\n\tlet flags = 0\n\n\tconst l = input.length\n\n\tfor (let i = 0; i < l; i++) {\n\t\tswitch (input.charCodeAt(i)) {\n\t\t\tcase 38: // '&'\n\t\t\t\tconst hasBothKeyValuePair = equalityIndex > startingIndex\n\t\t\t\tif (!hasBothKeyValuePair) equalityIndex = i\n\n\t\t\t\tkey = input.slice(startingIndex + 1, equalityIndex)\n\n\t\t\t\tif (hasBothKeyValuePair || key.length > 0) {\n\t\t\t\t\tif (flags & 0b0000_0001) key = key.replace(plusRegex, ' ')\n\t\t\t\t\tif (flags & 0b0000_0010) key = fastDecode(key) || key\n\n\t\t\t\t\tif (!result[key]) {\n\t\t\t\t\t\tif (hasBothKeyValuePair) {\n\t\t\t\t\t\t\tvalue = input.slice(equalityIndex + 1, i)\n\n\t\t\t\t\t\t\tif (flags & 0b0000_0100)\n\t\t\t\t\t\t\t\tvalue = value.replace(plusRegex, ' ')\n\t\t\t\t\t\t\tif (flags & 0b0000_1000)\n\t\t\t\t\t\t\t\tvalue = fastDecode(value) || value\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresult[key] = value\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tkey = ''\n\t\t\t\tvalue = ''\n\t\t\t\tstartingIndex = i\n\t\t\t\tequalityIndex = i\n\t\t\t\tflags = 0\n\t\t\t\tbreak\n\n\t\t\tcase 61: // '='\n\t\t\t\tif (equalityIndex <= startingIndex) equalityIndex = i\n\t\t\t\telse flags |= 0b0000_1000\n\t\t\t\tbreak\n\n\t\t\tcase 43: // '+'\n\t\t\t\tif (equalityIndex > startingIndex) flags |= 0b0000_0100\n\t\t\t\telse flags |= 0b0000_0001\n\t\t\t\tbreak\n\n\t\t\tcase 37: // '%'\n\t\t\t\tif (equalityIndex > startingIndex) flags |= 0b0000_1000\n\t\t\t\telse flags |= 0b0000_0010\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tif (startingIndex < l) {\n\t\tconst hasBothKeyValuePair = equalityIndex > startingIndex\n\t\tkey = input.slice(\n\t\t\tstartingIndex + 1,\n\t\t\thasBothKeyValuePair ? equalityIndex : l\n\t\t)\n\n\t\tif (hasBothKeyValuePair || key.length > 0) {\n\t\t\tif (flags & 0b0000_0001) key = key.replace(plusRegex, ' ')\n\t\t\tif (flags & 0b0000_0010) key = fastDecode(key) || key\n\n\t\t\tif (!result[key]) {\n\t\t\t\tif (hasBothKeyValuePair) {\n\t\t\t\t\tvalue = input.slice(equalityIndex + 1, l)\n\n\t\t\t\t\tif (flags & 0b0000_0100)\n\t\t\t\t\t\tvalue = value.replace(plusRegex, ' ')\n\t\t\t\t\tif (flags & 0b0000_1000) value = fastDecode(value) || value\n\t\t\t\t}\n\n\t\t\t\tresult[key] = value\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\n/**\n * @callback parse\n * @param {string} input\n */\nexport const parseQuery = (input: string) => {\n\tconst result: Record<string, string[]> = {}\n\n\tif (typeof input !== 'string') return result\n\n\tconst inputLength = input.length\n\tlet key = ''\n\tlet value = ''\n\tlet startingIndex = -1\n\tlet equalityIndex = -1\n\tlet shouldDecodeKey = false\n\tlet shouldDecodeValue = false\n\tlet keyHasPlus = false\n\tlet valueHasPlus = false\n\tlet hasBothKeyValuePair = false\n\tlet c = 0\n\n\t// Have a boundary of input.length + 1 to access last pair inside the loop.\n\tfor (let i = 0; i < inputLength + 1; i++) {\n\t\tif (i !== inputLength) c = input.charCodeAt(i)\n\t\telse c = 38\n\n\t\t// Handle '&' and end of line to pass the current values to result\n\t\tswitch (c) {\n\t\t\tcase 38: {\n\t\t\t\thasBothKeyValuePair = equalityIndex > startingIndex\n\n\t\t\t\t// Optimization: Reuse equality index to store the end of key\n\t\t\t\tif (!hasBothKeyValuePair) equalityIndex = i\n\n\t\t\t\tkey = input.slice(startingIndex + 1, equalityIndex)\n\n\t\t\t\t// Add key/value pair only if the range size is greater than 1; a.k.a. contains at least \"=\"\n\t\t\t\tif (hasBothKeyValuePair || key.length > 0) {\n\t\t\t\t\t// Optimization: Replace '+' with space\n\t\t\t\t\tif (keyHasPlus) key = key.replace(plusRegex, ' ')\n\n\t\t\t\t\t// Optimization: Do not decode if it's not necessary.\n\t\t\t\t\tif (shouldDecodeKey) key = fastDecode(key) || key\n\n\t\t\t\t\tif (hasBothKeyValuePair) {\n\t\t\t\t\t\tvalue = input.slice(equalityIndex + 1, i)\n\n\t\t\t\t\t\tif (valueHasPlus) value = value.replace(plusRegex, ' ')\n\n\t\t\t\t\t\tif (shouldDecodeValue)\n\t\t\t\t\t\t\tvalue = fastDecode(value) || value\n\t\t\t\t\t}\n\n\t\t\t\t\tconst currentValue = result[key]\n\n\t\t\t\t\tif (currentValue === undefined)\n\t\t\t\t\t\t// @ts-ignore - As current value is undefined, we can safely assign it\n\t\t\t\t\t\tresult[key] = value\n\t\t\t\t\telse {\n\t\t\t\t\t\t// @ts-ignore - Optimization: value.pop is faster than Array.isArray(value)\n\t\t\t\t\t\tif (currentValue.pop) currentValue.push(value)\n\t\t\t\t\t\t// @ts-ignore - As current value is a string, convert it to an array\n\t\t\t\t\t\telse result[key] = [currentValue, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Reset reading key value pairs\n\t\t\t\tvalue = ''\n\t\t\t\tstartingIndex = i\n\t\t\t\tequalityIndex = i\n\t\t\t\tshouldDecodeKey = false\n\t\t\t\tshouldDecodeValue = false\n\t\t\t\tkeyHasPlus = false\n\t\t\t\tvalueHasPlus = false\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check '='\n\t\t\tcase 61:\n\t\t\t\tif (equalityIndex <= startingIndex) equalityIndex = i\n\t\t\t\t// If '=' character occurs again, we should decode the input.\n\t\t\t\telse shouldDecodeValue = true\n\n\t\t\t\tbreak\n\n\t\t\t// Check '+', and remember to replace it with empty space.\n\t\t\tcase 43:\n\t\t\t\tif (equalityIndex > startingIndex) valueHasPlus = true\n\t\t\t\telse keyHasPlus = true\n\n\t\t\t\tbreak\n\n\t\t\t// Check '%' character for encoding\n\t\t\tcase 37:\n\t\t\t\tif (equalityIndex > startingIndex) shouldDecodeValue = true\n\t\t\t\telse shouldDecodeKey = true\n\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\treturn result\n}\n",
22
22
  "import { ELYSIA_REQUEST_ID } from './utils'\n\nimport type { Context } from './context'\nimport type { Prettify, RouteSchema, SingletonBase } from './types'\n\nexport type TraceEvent =\n\t| 'request'\n\t| 'parse'\n\t| 'transform'\n\t| 'beforeHandle'\n\t| 'handle'\n\t| 'afterHandle'\n\t| 'mapResponse'\n\t| 'afterResponse'\n\t| 'error'\n\nexport type TraceStream = {\n\tid: number\n\tevent: TraceEvent\n\ttype: 'begin' | 'end'\n\tbegin: number\n\tname?: string\n\ttotal?: number\n}\n\ntype TraceEndDetail = {\n\t/**\n\t * Timestamp of a function after it's executed since the server start\n\t */\n\tend: TraceProcess<'end'>\n\t/**\n\t * Error that was thrown in the lifecycle\n\t */\n\terror: Error | null\n\t/**\n\t * Elapsed time of the lifecycle\n\t */\n\telapsed: number\n}\n\nexport type TraceProcess<\n\tType extends 'begin' | 'end' = 'begin' | 'end',\n\tWithChildren extends boolean = true\n> = Type extends 'begin'\n\t? Prettify<\n\t\t\t{\n\t\t\t\t/**\n\t\t\t\t * Function name\n\t\t\t\t */\n\t\t\t\tname: string\n\t\t\t\t/**\n\t\t\t\t * Timestamp of a function is called since the server start\n\t\t\t\t */\n\t\t\t\tbegin: number\n\t\t\t\t/**\n\t\t\t\t * Timestamp of a function after it's executed since the server start\n\t\t\t\t */\n\t\t\t\tend: Promise<number>\n\t\t\t\t/**\n\t\t\t\t * Error that was thrown in the lifecycle\n\t\t\t\t */\n\t\t\t\terror: Promise<Error | null>\n\t\t\t\t/**\n\t\t\t\t * Listener to intercept the end of the lifecycle\n\t\t\t\t *\n\t\t\t\t * If you want to mutate the context, you must do it in this function\n\t\t\t\t * as there's a lock mechanism to ensure the context is mutate successfully\n\t\t\t\t */\n\t\t\t\tonStop(\n\t\t\t\t\t/**\n\t\t\t\t\t * A callback function that will be called when the function ends\n\t\t\t\t\t *\n\t\t\t\t\t * If you want to mutate the context, you must do it in this function\n\t\t\t\t\t * as there's a lock mechanism to ensure the context is mutate successfully\n\t\t\t\t\t */\n\t\t\t\t\tcallback?: (detail: TraceEndDetail) => unknown\n\t\t\t\t): Promise<void>\n\t\t\t} & (WithChildren extends true\n\t\t\t\t? {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * total number of lifecycle's children and\n\t\t\t\t\t\t * total number of `onEvent` will be called\n\t\t\t\t\t\t * if there were no early exists or error thrown\n\t\t\t\t\t\t */\n\t\t\t\t\t\ttotal: number\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Listener to intercept each child lifecycle\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonEvent(\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Callback function that will be called for when each child start\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tcallback?: (\n\t\t\t\t\t\t\t\tprocess: TraceProcess<'begin', false>\n\t\t\t\t\t\t\t) => unknown\n\t\t\t\t\t\t): Promise<void>\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Index of the child event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tindex: number\n\t\t\t\t\t})\n\t\t>\n\t: number\n\nexport type TraceListener = (\n\tcallback?: (process: TraceProcess<'begin'>) => unknown\n) => Promise<TraceProcess<'begin'>>\n\nexport type TraceHandler<\n\tin out Route extends RouteSchema = {},\n\tin out Singleton extends SingletonBase = {\n\t\tdecorator: {}\n\t\tstore: {}\n\t\tderive: {}\n\t\tresolve: {}\n\t}\n> = {\n\t(\n\t\tlifecycle: Prettify<\n\t\t\t{\n\t\t\t\tid: number\n\t\t\t\tcontext: Context<Route, Singleton>\n\t\t\t\tset: Context['set']\n\t\t\t\ttime: number\n\t\t\t\tstore: Singleton['store']\n\t\t\t} & {\n\t\t\t\t[x in `on${Capitalize<TraceEvent>}`]: TraceListener\n\t\t\t}\n\t\t>\n\t): unknown\n}\n\nexport const ELYSIA_TRACE = Symbol('ElysiaTrace')\n\nconst createProcess = () => {\n\tconst { promise, resolve } = Promise.withResolvers<TraceProcess>()\n\tconst { promise: end, resolve: resolveEnd } =\n\t\tPromise.withResolvers<number>()\n\tconst { promise: error, resolve: resolveError } =\n\t\tPromise.withResolvers<Error | null>()\n\n\tconst callbacks = <Function[]>[]\n\tconst callbacksEnd = <Function[]>[]\n\n\treturn [\n\t\t(callback?: Function) => {\n\t\t\tif (callback) callbacks.push(callback)\n\n\t\t\treturn promise\n\t\t},\n\t\t(process: TraceStream) => {\n\t\t\tconst processes = <((callback?: Function) => Promise<void>)[]>[]\n\t\t\tconst resolvers = <((process: TraceStream) => () => void)[]>[]\n\n\t\t\t// When error is return but not thrown\n\t\t\tlet groupError: Error | null = null\n\n\t\t\tfor (let i = 0; i < (process.total ?? 0); i++) {\n\t\t\t\tconst { promise, resolve } = Promise.withResolvers<void>()\n\t\t\t\tconst { promise: end, resolve: resolveEnd } =\n\t\t\t\t\tPromise.withResolvers<number>()\n\t\t\t\tconst { promise: error, resolve: resolveError } =\n\t\t\t\t\tPromise.withResolvers<Error | null>()\n\n\t\t\t\tconst callbacks = <Function[]>[]\n\t\t\t\tconst callbacksEnd = <Function[]>[]\n\n\t\t\t\tprocesses.push((callback?: Function) => {\n\t\t\t\t\tif (callback) callbacks.push(callback)\n\n\t\t\t\t\treturn promise\n\t\t\t\t})\n\n\t\t\t\tresolvers.push((process: TraceStream) => {\n\t\t\t\t\tconst result = {\n\t\t\t\t\t\t...process,\n\t\t\t\t\t\tend,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\tonStop(callback?: Function) {\n\t\t\t\t\t\t\tif (callback) callbacksEnd.push(callback)\n\n\t\t\t\t\t\t\treturn end\n\t\t\t\t\t\t}\n\t\t\t\t\t} as any\n\n\t\t\t\t\tresolve(result)\n\t\t\t\t\tfor (let i = 0; i < callbacks.length; i++)\n\t\t\t\t\t\tcallbacks[i](result)\n\n\t\t\t\t\treturn (error: Error | null = null) => {\n\t\t\t\t\t\tconst end = performance.now()\n\n\t\t\t\t\t\t// Catch return error\n\t\t\t\t\t\tif (error) groupError = error\n\n\t\t\t\t\t\tconst detail = {\n\t\t\t\t\t\t\tend,\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tget elapsed() {\n\t\t\t\t\t\t\t\treturn end - process.begin\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < callbacksEnd.length; i++)\n\t\t\t\t\t\t\tcallbacksEnd[i](detail)\n\n\t\t\t\t\t\tresolveEnd(end)\n\t\t\t\t\t\tresolveError(error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst result = {\n\t\t\t\t...process,\n\t\t\t\tend,\n\t\t\t\terror,\n\t\t\t\tonEvent(callback?: Function) {\n\t\t\t\t\tfor (let i = 0; i < processes.length; i++)\n\t\t\t\t\t\tprocesses[i](callback)\n\t\t\t\t},\n\t\t\t\tonStop(callback?: Function) {\n\t\t\t\t\tif (callback) callbacksEnd.push(callback)\n\n\t\t\t\t\treturn end\n\t\t\t\t}\n\t\t\t} as any\n\n\t\t\tresolve(result)\n\t\t\tfor (let i = 0; i < callbacks.length; i++) callbacks[i](result)\n\n\t\t\treturn {\n\t\t\t\tresolveChild: resolvers,\n\t\t\t\tresolve(error: Error | null = null) {\n\t\t\t\t\tconst end = performance.now()\n\n\t\t\t\t\t// If error is return, parent group will not catch an error\n\t\t\t\t\t// but the child group will catch the error\n\t\t\t\t\tif (!error && groupError) error = groupError\n\n\t\t\t\t\tconst detail = {\n\t\t\t\t\t\tend,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tget elapsed() {\n\t\t\t\t\t\t\treturn end - process.begin\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (let i = 0; i < callbacksEnd.length; i++)\n\t\t\t\t\t\tcallbacksEnd[i](detail)\n\n\t\t\t\t\tresolveEnd(end)\n\t\t\t\t\tresolveError(error)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t] as const\n}\n\nexport const createTracer = (traceListener: TraceHandler) => {\n\treturn (context: Context) => {\n\t\tconst [onRequest, resolveRequest] = createProcess()\n\t\tconst [onParse, resolveParse] = createProcess()\n\t\tconst [onTransform, resolveTransform] = createProcess()\n\t\tconst [onBeforeHandle, resolveBeforeHandle] = createProcess()\n\t\tconst [onHandle, resolveHandle] = createProcess()\n\t\tconst [onAfterHandle, resolveAfterHandle] = createProcess()\n\t\tconst [onError, resolveError] = createProcess()\n\t\tconst [onMapResponse, resolveMapResponse] = createProcess()\n\t\tconst [onAfterResponse, resolveAfterResponse] = createProcess()\n\n\t\ttraceListener({\n\t\t\t// @ts-ignore\n\t\t\tid: context[ELYSIA_REQUEST_ID],\n\t\t\tcontext,\n\t\t\tset: context.set,\n\t\t\t// @ts-ignore\n\t\t\tonRequest,\n\t\t\t// @ts-ignore\n\t\t\tonParse,\n\t\t\t// @ts-ignore\n\t\t\tonTransform,\n\t\t\t// @ts-ignore\n\t\t\tonBeforeHandle,\n\t\t\t// @ts-ignore\n\t\t\tonHandle,\n\t\t\t// @ts-ignore\n\t\t\tonAfterHandle,\n\t\t\t// @ts-ignore\n\t\t\tonMapResponse,\n\t\t\t// @ts-ignore\n\t\t\tonAfterResponse,\n\t\t\t// @ts-ignore\n\t\t\tonError\n\t\t})\n\n\t\t// ? This is pass to compiler\n\t\treturn {\n\t\t\trequest: resolveRequest,\n\t\t\tparse: resolveParse,\n\t\t\ttransform: resolveTransform,\n\t\t\tbeforeHandle: resolveBeforeHandle,\n\t\t\thandle: resolveHandle,\n\t\t\tafterHandle: resolveAfterHandle,\n\t\t\terror: resolveError,\n\t\t\tmapResponse: resolveMapResponse,\n\t\t\tafterResponse: resolveAfterResponse\n\t\t}\n\t}\n}\n",
23
23
  "import type { AnyElysia } from '.'\n\nimport {\n\tElysiaCustomStatusResponse,\n\tElysiaErrors,\n\terror,\n\tNotFoundError,\n\tValidationError\n} from './error'\n\nimport type { Context } from './context'\n\nimport { parseQuery } from './fast-querystring'\n\nimport { redirect, signCookie, StatusMap } from './utils'\nimport { parseCookie } from './cookies'\n\nimport type { Handler, LifeCycleStore, SchemaValidator } from './types'\nimport { TransformDecodeError } from '@sinclair/typebox/value'\nimport { TypeCheck } from './type-system'\n\n// JIT Handler\nexport type DynamicHandler = {\n\thandle: unknown | Handler<any, any>\n\tcontent?: string\n\thooks: Partial<LifeCycleStore>\n\tvalidator?: SchemaValidator\n\troute: string\n}\n\nconst injectDefaultValues = (\n\ttypeChecker: TypeCheck<any>,\n\tobj: Record<string, any>\n) => {\n\tfor (const [key, keySchema] of Object.entries(\n\t\t// @ts-expect-error private\n\t\ttypeChecker.schema.properties\n\t)) {\n\t\t// @ts-expect-error private\n\t\tobj[key] ??= keySchema.default\n\t}\n}\n\nexport const createDynamicHandler = (app: AnyElysia) => {\n\tconst { mapResponse, mapEarlyResponse } = app['~adapter'].handler\n\n\treturn async (request: Request): Promise<Response> => {\n\t\tconst url = request.url,\n\t\t\ts = url.indexOf('/', 11),\n\t\t\tqi = url.indexOf('?', s + 1),\n\t\t\tpath = qi === -1 ? url.substring(s) : url.substring(s, qi)\n\n\t\tconst set: Context['set'] = {\n\t\t\tcookie: {},\n\t\t\tstatus: 200,\n\t\t\theaders: {}\n\t\t}\n\n\t\tconst context = Object.assign(\n\t\t\t{},\n\t\t\t// @ts-expect-error\n\t\t\tapp.singleton.decorator,\n\t\t\t{\n\t\t\t\tset,\n\t\t\t\t// @ts-expect-error\n\t\t\t\tstore: app.singleton.store,\n\t\t\t\trequest,\n\t\t\t\tpath,\n\t\t\t\tqi,\n\t\t\t\terror,\n\t\t\t\tredirect\n\t\t\t}\n\t\t) as unknown as Context & {\n\t\t\tresponse: unknown\n\t\t}\n\n\t\ttry {\n\t\t\tif (app.event.request)\n\t\t\t\tfor (let i = 0; i < app.event.request.length; i++) {\n\t\t\t\t\tconst onRequest = app.event.request[i].fn\n\t\t\t\t\tlet response = onRequest(context as any)\n\t\t\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\t\t\tresponse = mapEarlyResponse(response, set)\n\t\t\t\t\tif (response) return (context.response = response)\n\t\t\t\t}\n\n\t\t\tconst handler =\n\t\t\t\tapp.router.dynamic.find(request.method, path) ??\n\t\t\t\tapp.router.dynamic.find('ALL', path)\n\n\t\t\tif (!handler) throw new NotFoundError()\n\n\t\t\tconst { handle, hooks, validator, content, route } = handler.store\n\n\t\t\tlet body: string | Record<string, any> | undefined\n\t\t\tif (request.method !== 'GET' && request.method !== 'HEAD') {\n\t\t\t\tif (content) {\n\t\t\t\t\tswitch (content) {\n\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\tbody = (await request.json()) as any\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\tbody = await request.text()\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\tbody = parseQuery(await request.text())\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\tbody = await request.arrayBuffer()\n\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\tbody = {}\n\n\t\t\t\t\t\t\tconst form = await request.formData()\n\t\t\t\t\t\t\tfor (const key of form.keys()) {\n\t\t\t\t\t\t\t\tif (body[key]) continue\n\n\t\t\t\t\t\t\t\tconst value = form.getAll(key)\n\t\t\t\t\t\t\t\tif (value.length === 1) body[key] = value[0]\n\t\t\t\t\t\t\t\telse body[key] = value\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet contentType = request.headers.get('content-type')\n\n\t\t\t\t\tif (contentType) {\n\t\t\t\t\t\tconst index = contentType.indexOf(';')\n\t\t\t\t\t\tif (index !== -1)\n\t\t\t\t\t\t\tcontentType = contentType.slice(0, index)\n\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tcontext.contentType = contentType\n\n\t\t\t\t\t\tif (hooks.parse)\n\t\t\t\t\t\t\tfor (let i = 0; i < hooks.parse.length; i++) {\n\t\t\t\t\t\t\t\tconst hook = hooks.parse[i].fn\n\t\t\t\t\t\t\t\tlet temp = hook(context as any, contentType)\n\t\t\t\t\t\t\t\tif (temp instanceof Promise) temp = await temp\n\n\t\t\t\t\t\t\t\tif (temp) {\n\t\t\t\t\t\t\t\t\tbody = temp\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tdelete context.contentType\n\n\t\t\t\t\t\t// body might be empty string thus can't use !body\n\t\t\t\t\t\tif (body === undefined) {\n\t\t\t\t\t\t\tswitch (contentType) {\n\t\t\t\t\t\t\t\tcase 'application/json':\n\t\t\t\t\t\t\t\t\tbody = (await request.json()) as any\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'text/plain':\n\t\t\t\t\t\t\t\t\tbody = await request.text()\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'application/x-www-form-urlencoded':\n\t\t\t\t\t\t\t\t\tbody = parseQuery(await request.text())\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'application/octet-stream':\n\t\t\t\t\t\t\t\t\tbody = await request.arrayBuffer()\n\t\t\t\t\t\t\t\t\tbreak\n\n\t\t\t\t\t\t\t\tcase 'multipart/form-data':\n\t\t\t\t\t\t\t\t\tbody = {}\n\n\t\t\t\t\t\t\t\t\tconst form = await request.formData()\n\t\t\t\t\t\t\t\t\tfor (const key of form.keys()) {\n\t\t\t\t\t\t\t\t\t\tif (body[key]) continue\n\n\t\t\t\t\t\t\t\t\t\tconst value = form.getAll(key)\n\t\t\t\t\t\t\t\t\t\tif (value.length === 1)\n\t\t\t\t\t\t\t\t\t\t\tbody[key] = value[0]\n\t\t\t\t\t\t\t\t\t\telse body[key] = value\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontext.route = route\n\t\t\tcontext.body = body\n\t\t\tcontext.params = handler?.params || undefined\n\n\t\t\t// @ts-ignore\n\t\t\tcontext.query = qi === -1 ? {} : parseQuery(url.substring(qi + 1))\n\n\t\t\tcontext.headers = {}\n\t\t\tfor (const [key, value] of request.headers.entries())\n\t\t\t\tcontext.headers[key] = value\n\n\t\t\tconst cookieMeta = Object.assign(\n\t\t\t\t{},\n\t\t\t\tapp.config?.cookie,\n\t\t\t\t// @ts-expect-error\n\t\t\t\tvalidator?.cookie?.config\n\t\t\t) as {\n\t\t\t\tsecrets?: string | string[]\n\t\t\t\tsign: string[] | true\n\t\t\t\tproperties: { [x: string]: Object }\n\t\t\t}\n\n\t\t\tconst cookieHeaderValue = request.headers.get('cookie')\n\n\t\t\tcontext.cookie = (await parseCookie(\n\t\t\t\tcontext.set,\n\t\t\t\tcookieHeaderValue,\n\t\t\t\tcookieMeta\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsecrets:\n\t\t\t\t\t\t\t\tcookieMeta.secrets !== undefined\n\t\t\t\t\t\t\t\t\t? typeof cookieMeta.secrets === 'string'\n\t\t\t\t\t\t\t\t\t\t? cookieMeta.secrets\n\t\t\t\t\t\t\t\t\t\t: cookieMeta.secrets.join(',')\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tsign:\n\t\t\t\t\t\t\t\tcookieMeta.sign === true\n\t\t\t\t\t\t\t\t\t? true\n\t\t\t\t\t\t\t\t\t: cookieMeta.sign !== undefined\n\t\t\t\t\t\t\t\t\t\t? typeof cookieMeta.sign === 'string'\n\t\t\t\t\t\t\t\t\t\t\t? cookieMeta.sign\n\t\t\t\t\t\t\t\t\t\t\t: cookieMeta.sign.join(',')\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t)) as any\n\n\t\t\tconst headerValidator = validator?.createHeaders?.()\n\t\t\tif (headerValidator)\n\t\t\t\tinjectDefaultValues(headerValidator, context.headers)\n\n\t\t\tconst paramsValidator = validator?.createParams?.()\n\t\t\tif (paramsValidator)\n\t\t\t\tinjectDefaultValues(paramsValidator, context.params)\n\n\t\t\tconst queryValidator = validator?.createQuery?.()\n\t\t\tif (queryValidator)\n\t\t\t\tinjectDefaultValues(queryValidator, context.query)\n\n\t\t\tif (hooks.transform)\n\t\t\t\tfor (let i = 0; i < hooks.transform.length; i++) {\n\t\t\t\t\tconst hook = hooks.transform[i]\n\t\t\t\t\tconst operation = hook.fn(context)\n\n\t\t\t\t\tif (hook.subType === 'derive') {\n\t\t\t\t\t\tif (operation instanceof Promise)\n\t\t\t\t\t\t\tObject.assign(context, await operation)\n\t\t\t\t\t\telse Object.assign(context, operation)\n\t\t\t\t\t} else if (operation instanceof Promise) await operation\n\t\t\t\t}\n\n\t\t\tif (validator) {\n\t\t\t\tif (headerValidator) {\n\t\t\t\t\tconst _header = structuredClone(context.headers)\n\t\t\t\t\tfor (const [key, value] of request.headers)\n\t\t\t\t\t\t_header[key] = value\n\n\t\t\t\t\tif (validator.headers!.Check(_header) === false)\n\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t'header',\n\t\t\t\t\t\t\tvalidator.headers!,\n\t\t\t\t\t\t\t_header\n\t\t\t\t\t\t)\n\t\t\t\t} else if (validator.headers?.Decode)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcontext.headers = validator.headers.Decode(context.headers)\n\n\t\t\t\tif (paramsValidator?.Check(context.params) === false) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t'params',\n\t\t\t\t\t\tvalidator.params!,\n\t\t\t\t\t\tcontext.params\n\t\t\t\t\t)\n\t\t\t\t} else if (validator.params?.Decode)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcontext.params = validator.params.Decode(context.params)\n\n\t\t\t\tif (queryValidator?.Check(context.query) === false)\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t'query',\n\t\t\t\t\t\tvalidator.query!,\n\t\t\t\t\t\tcontext.query\n\t\t\t\t\t)\n\t\t\t\telse if (validator.query?.Decode)\n\t\t\t\t\tcontext.query = validator.query.Decode(context.query) as any\n\n\t\t\t\tif (validator.createCookie?.()) {\n\t\t\t\t\tlet cookieValue: Record<string, unknown> = {}\n\t\t\t\t\tfor (const [key, value] of Object.entries(context.cookie))\n\t\t\t\t\t\tcookieValue[key] = value.value\n\n\t\t\t\t\tif (validator.cookie!.Check(cookieValue) === false)\n\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t'cookie',\n\t\t\t\t\t\t\tvalidator.cookie!,\n\t\t\t\t\t\t\tcookieValue\n\t\t\t\t\t\t)\n\t\t\t\t\telse if (validator.cookie?.Decode)\n\t\t\t\t\t\tcookieValue = validator.cookie.Decode(\n\t\t\t\t\t\t\tcookieValue\n\t\t\t\t\t\t) as any\n\t\t\t\t}\n\n\t\t\t\tif (validator.createBody?.()?.Check(body) === false)\n\t\t\t\t\tthrow new ValidationError('body', validator.body!, body)\n\t\t\t\telse if (validator.body?.Decode)\n\t\t\t\t\tcontext.body = validator.body.Decode(body) as any\n\t\t\t}\n\n\t\t\tif (hooks.beforeHandle)\n\t\t\t\tfor (let i = 0; i < hooks.beforeHandle.length; i++) {\n\t\t\t\t\tconst hook = hooks.beforeHandle[i]\n\t\t\t\t\tlet response = hook.fn(context)\n\n\t\t\t\t\tif (hook.subType === 'resolve') {\n\t\t\t\t\t\tif (response instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\t\t\tconst result = mapEarlyResponse(\n\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t\tcontext.set\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tif (result)\n\t\t\t\t\t\t\t\treturn (context.response = result) as Response\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (response instanceof Promise)\n\t\t\t\t\t\t\tObject.assign(context, await response)\n\t\t\t\t\t\telse Object.assign(context, response)\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else if (response instanceof Promise)\n\t\t\t\t\t\tresponse = await response\n\n\t\t\t\t\t// `false` is a falsey value, check for undefined instead\n\t\t\t\t\tif (response !== undefined) {\n\t\t\t\t\t\t;(\n\t\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t).response = response\n\n\t\t\t\t\t\tif (hooks.afterHandle)\n\t\t\t\t\t\t\tfor (let i = 0; i < hooks.afterHandle.length; i++) {\n\t\t\t\t\t\t\t\tlet newResponse = hooks.afterHandle[i].fn(\n\t\t\t\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tif (newResponse instanceof Promise)\n\t\t\t\t\t\t\t\t\tnewResponse = await newResponse\n\n\t\t\t\t\t\t\t\tif (newResponse) response = newResponse\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst result = mapEarlyResponse(response, context.set)\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tif (result) return (context.response = result)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tlet response =\n\t\t\t\ttypeof handle === 'function' ? handle(context) : handle\n\t\t\tif (response instanceof Promise) response = await response\n\n\t\t\tif (hooks.afterHandle)\n\t\t\t\tif (!hooks.afterHandle.length) {\n\t\t\t\t\tconst status =\n\t\t\t\t\t\tresponse instanceof ElysiaCustomStatusResponse\n\t\t\t\t\t\t\t? response.code\n\t\t\t\t\t\t\t: set.status\n\t\t\t\t\t\t\t\t? typeof set.status === 'string'\n\t\t\t\t\t\t\t\t\t? StatusMap[set.status]\n\t\t\t\t\t\t\t\t\t: set.status\n\t\t\t\t\t\t\t\t: 200\n\n\t\t\t\t\tconst responseValidator =\n\t\t\t\t\t\tvalidator?.createResponse?.()?.[status]\n\n\t\t\t\t\tif (responseValidator?.Check(response) === false)\n\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t'response',\n\t\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\t\tresponse\n\t\t\t\t\t\t)\n\t\t\t\t\telse if (responseValidator?.Decode)\n\t\t\t\t\t\tresponse = responseValidator.Decode(response)\n\t\t\t\t} else {\n\t\t\t\t\t;(\n\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t}\n\t\t\t\t\t).response = response\n\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].fn(\n\t\t\t\t\t\t\tcontext as Context & {\n\t\t\t\t\t\t\t\tresponse: unknown\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\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\tconst result = mapEarlyResponse(\n\t\t\t\t\t\t\tnewResponse,\n\t\t\t\t\t\t\tcontext.set\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (result !== undefined) {\n\t\t\t\t\t\t\tconst responseValidator =\n\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\tvalidator?.response?.[result.status]\n\n\t\t\t\t\t\t\tif (responseValidator?.Check(result) === false)\n\t\t\t\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t\t\t\t'response',\n\t\t\t\t\t\t\t\t\tresponseValidator,\n\t\t\t\t\t\t\t\t\tresult\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse if (responseValidator?.Decode)\n\t\t\t\t\t\t\t\tresponse = responseValidator.Decode(response)\n\n\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\treturn (context.response = result)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tif (context.set.cookie && cookieMeta?.sign) {\n\t\t\t\tconst secret = !cookieMeta.secrets\n\t\t\t\t\t? undefined\n\t\t\t\t\t: typeof cookieMeta.secrets === 'string'\n\t\t\t\t\t\t? cookieMeta.secrets\n\t\t\t\t\t\t: cookieMeta.secrets[0]\n\n\t\t\t\tif (cookieMeta.sign === true)\n\t\t\t\t\tfor (const [key, cookie] of Object.entries(\n\t\t\t\t\t\tcontext.set.cookie\n\t\t\t\t\t))\n\t\t\t\t\t\tcontext.set.cookie[key].value = await signCookie(\n\t\t\t\t\t\t\tcookie.value as any,\n\t\t\t\t\t\t\t'${secret}'\n\t\t\t\t\t\t)\n\t\t\t\telse {\n\t\t\t\t\t// @ts-expect-error private\n\t\t\t\t\tconst properties = validator?.cookie?.schema?.properties\n\n\t\t\t\t\tfor (const name of cookieMeta.sign) {\n\t\t\t\t\t\tif (!(name in properties)) continue\n\n\t\t\t\t\t\tif (context.set.cookie[name]?.value) {\n\t\t\t\t\t\t\tcontext.set.cookie[name].value = await signCookie(\n\t\t\t\t\t\t\t\tcontext.set.cookie[name].value as any,\n\t\t\t\t\t\t\t\tsecret as any\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\t// @ts-expect-error\n\t\t\treturn mapResponse((context.response = response), context.set)\n\t\t} catch (error) {\n\t\t\tconst reportedError =\n\t\t\t\terror instanceof TransformDecodeError && error.error\n\t\t\t\t\t? error.error\n\t\t\t\t\t: error\n\n\t\t\t// ? Since error is reconciled in mergeResponseWithHeaders, this is not needed (if I'm not drunk)\n\t\t\t// if ((reportedError as ElysiaErrors).status)\n\t\t\t// \tset.status = (reportedError as ElysiaErrors).status\n\n\t\t\t// @ts-expect-error private\n\t\t\treturn app.handleError(context, reportedError)\n\t\t} finally {\n\t\t\tif (app.event.afterResponse)\n\t\t\t\tfor (const afterResponse of app.event.afterResponse)\n\t\t\t\t\tawait afterResponse.fn(context as any)\n\t\t}\n\t}\n}\n\nexport const createDynamicErrorHandler = (app: AnyElysia) => {\n\tconst { mapResponse } = app['~adapter'].handler\n\n\treturn async (\n\t\tcontext: Context & {\n\t\t\tresponse: unknown\n\t\t},\n\t\terror: ElysiaErrors\n\t) => {\n\t\tconst errorContext = Object.assign(context, { error, code: error.code })\n\t\terrorContext.set = context.set\n\n\t\tif (app.event.error)\n\t\t\tfor (let i = 0; i < app.event.error.length; i++) {\n\t\t\t\tconst hook = app.event.error[i]\n\t\t\t\tlet response = hook.fn(errorContext as any)\n\t\t\t\tif (response instanceof Promise) response = await response\n\t\t\t\tif (response !== undefined && response !== null)\n\t\t\t\t\treturn (context.response = mapResponse(\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\tcontext.set\n\t\t\t\t\t))\n\t\t\t}\n\n\t\treturn new Response(\n\t\t\ttypeof error.cause === 'string' ? error.cause : error.message,\n\t\t\t{\n\t\t\t\theaders: context.set.headers as any,\n\t\t\t\tstatus: error.status ?? 500\n\t\t\t}\n\t\t)\n\t}\n}\n",
24
24
  "/* eslint-disable sonarjs/no-duplicate-string */\nimport { type createReadStream as CreateReadStream } from 'fs'\nimport { type stat as Stat } from 'fs/promises'\n\nimport { isBun } from './utils'\nimport type { BunFile } from 'bun'\nimport type { MaybePromise } from '../types'\n\nexport const mime = {\n\taac: 'audio/aac',\n\tabw: 'application/x-abiword',\n\tai: 'application/postscript',\n\tarc: 'application/octet-stream',\n\tavi: 'video/x-msvideo',\n\tazw: 'application/vnd.amazon.ebook',\n\tbin: 'application/octet-stream',\n\tbz: 'application/x-bzip',\n\tbz2: 'application/x-bzip2',\n\tcsh: 'application/x-csh',\n\tcss: 'text/css',\n\tcsv: 'text/csv',\n\tdoc: 'application/msword',\n\tdll: 'application/octet-stream',\n\teot: 'application/vnd.ms-fontobject',\n\tepub: 'application/epub+zip',\n\tgif: 'image/gif',\n\thtm: 'text/html',\n\thtml: 'text/html',\n\tico: 'image/x-icon',\n\tics: 'text/calendar',\n\tjar: 'application/java-archive',\n\tjpeg: 'image/jpeg',\n\tjpg: 'image/jpeg',\n\tjs: 'application/javascript',\n\tjson: 'application/json',\n\tmid: 'audio/midi',\n\tmidi: 'audio/midi',\n\tmp2: 'audio/mpeg',\n\tmp3: 'audio/mpeg',\n\tmp4: 'video/mp4',\n\tmpa: 'video/mpeg',\n\tmpe: 'video/mpeg',\n\tmpeg: 'video/mpeg',\n\tmpkg: 'application/vnd.apple.installer+xml',\n\todp: 'application/vnd.oasis.opendocument.presentation',\n\tods: 'application/vnd.oasis.opendocument.spreadsheet',\n\todt: 'application/vnd.oasis.opendocument.text',\n\toga: 'audio/ogg',\n\togv: 'video/ogg',\n\togx: 'application/ogg',\n\totf: 'font/otf',\n\tpng: 'image/png',\n\tpdf: 'application/pdf',\n\tppt: 'application/vnd.ms-powerpoint',\n\trar: 'application/x-rar-compressed',\n\trtf: 'application/rtf',\n\tsh: 'application/x-sh',\n\tsvg: 'image/svg+xml',\n\tswf: 'application/x-shockwave-flash',\n\ttar: 'application/x-tar',\n\ttif: 'image/tiff',\n\ttiff: 'image/tiff',\n\tts: 'application/typescript',\n\tttf: 'font/ttf',\n\ttxt: 'text/plain',\n\tvsd: 'application/vnd.visio',\n\twav: 'audio/x-wav',\n\tweba: 'audio/webm',\n\twebm: 'video/webm',\n\twebp: 'image/webp',\n\twoff: 'font/woff',\n\twoff2: 'font/woff2',\n\txhtml: 'application/xhtml+xml',\n\txls: 'application/vnd.ms-excel',\n\txlsx: 'application/vnd.ms-excel',\n\txlsx_OLD:\n\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\txml: 'application/xml',\n\txul: 'application/vnd.mozilla.xul+xml',\n\tzip: 'application/zip',\n\t'3gp': 'video/3gpp',\n\t'3gp_DOES_NOT_CONTAIN_VIDEO': 'audio/3gpp',\n\t'3gp2': 'video/3gpp2',\n\t'3gp2_DOES_NOT_CONTAIN_VIDEO': 'audio/3gpp2',\n\t'7z': 'application/x-7z-compressed'\n} as const\n\nexport const getFileExtension = (path: string) => {\n\tconst index = path.lastIndexOf('.')\n\tif (index === -1) return ''\n\n\treturn path.slice(index + 1)\n}\n\nexport const file = (path: string) => new ElysiaFile(path)\n\nlet createReadStream: typeof CreateReadStream\nlet stat: typeof Stat\n\nexport class ElysiaFile {\n\treadonly value: MaybePromise<unknown>\n\treadonly stats: ReturnType<typeof Stat> | undefined\n\n\tconstructor(public path: string) {\n\t\tif (isBun) this.value = Bun.file(path)\n\t\telse {\n\t\t\t// Browser\n\t\t\t// @ts-ignore\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\tconsole.warn('Browser environment does not support file')\n\t\t\t} else {\n\t\t\t\tif (!createReadStream || !stat) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.value = import('fs').then((fs) => {\n\t\t\t\t\t\t\tcreateReadStream = fs.createReadStream\n\n\t\t\t\t\t\t\treturn fs.createReadStream(path)\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.stats = import('fs/promises').then((fs) => {\n\t\t\t\t\t\t\tstat = fs.stat\n\n\t\t\t\t\t\t\treturn fs.stat(path)\n\t\t\t\t\t\t})\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// not empty\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.value = createReadStream(path)\n\t\t\t\t\tthis.stats = stat(path)!\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tget type() {\n\t\treturn (\n\t\t\t// @ts-ignore\n\t\t\tmime[getFileExtension(this.path)] || 'application/octet-stream'\n\t\t)\n\t}\n\n\tget length() {\n\t\tif (isBun) return (this.value as BunFile).size\n\n\t\treturn this.stats?.then((x) => x.size) ?? 0\n\t}\n}\n"
25
25
  ],
26
- "mappings": "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",
27
- "debugId": "7B771E2CCAD9D44064756E2164756E21",
26
+ "mappings": "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",
27
+ "debugId": "58E99CAFB75745FB64756E2164756E21",
28
28
  "names": []
29
29
  }