elysia 1.3.0-exp.21 → 1.3.0-exp.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.
@@ -14,21 +14,21 @@
14
14
  "import { parse, serialize } from 'cookie'\n\nimport { decode as decodeURIComponent } from './deuri'\n\nimport { isNotEmpty, unsignCookie } from './utils'\nimport { InvalidCookieSignature } from './error'\n\nimport type { Context } from './context'\nimport type { Prettify } from './types'\n\nexport interface CookieOptions {\n\t/**\n\t * Specifies the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.3|Domain Set-Cookie attribute}. By default, no\n\t * domain is set, and most clients will consider the cookie to apply to only\n\t * the current domain.\n\t */\n\tdomain?: string | undefined\n\n\t/**\n\t * Specifies the `Date` object to be the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.1|`Expires` `Set-Cookie` attribute}. By default,\n\t * no expiration is set, and most clients will consider this a \"non-persistent cookie\" and will delete\n\t * it on a condition like exiting a web browser application.\n\t *\n\t * *Note* the {@link https://tools.ietf.org/html/rfc6265#section-5.3|cookie storage model specification}\n\t * states that if both `expires` and `maxAge` are set, then `maxAge` takes precedence, but it is\n\t * possible not all clients by obey this, so if both are set, they should\n\t * point to the same date and time.\n\t */\n\texpires?: Date | undefined\n\t/**\n\t * Specifies the boolean value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.6|`HttpOnly` `Set-Cookie` attribute}.\n\t * When truthy, the `HttpOnly` attribute is set, otherwise it is not. By\n\t * default, the `HttpOnly` attribute is not set.\n\t *\n\t * *Note* be careful when setting this to true, as compliant clients will\n\t * not allow client-side JavaScript to see the cookie in `document.cookie`.\n\t */\n\thttpOnly?: boolean | undefined\n\t/**\n\t * Specifies the number (in seconds) to be the value for the `Max-Age`\n\t * `Set-Cookie` attribute. The given number will be converted to an integer\n\t * by rounding down. By default, no maximum age is set.\n\t *\n\t * *Note* the {@link https://tools.ietf.org/html/rfc6265#section-5.3|cookie storage model specification}\n\t * states that if both `expires` and `maxAge` are set, then `maxAge` takes precedence, but it is\n\t * possible not all clients by obey this, so if both are set, they should\n\t * point to the same date and time.\n\t */\n\tmaxAge?: number | undefined\n\t/**\n\t * Specifies the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.4|`Path` `Set-Cookie` attribute}.\n\t * By default, the path is considered the \"default path\".\n\t */\n\tpath?: string | undefined\n\t/**\n\t * Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1].\n\t *\n\t * - `'low'` will set the `Priority` attribute to `Low`.\n\t * - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.\n\t * - `'high'` will set the `Priority` attribute to `High`.\n\t *\n\t * More information about the different priority levels can be found in\n\t * [the specification][rfc-west-cookie-priority-00-4.1].\n\t *\n\t * **note** This is an attribute that has not yet been fully standardized, and may change in the future.\n\t * This also means many clients may ignore this attribute until they understand it.\n\t */\n\tpriority?: 'low' | 'medium' | 'high' | undefined\n\t/**\n\t * Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies)\n\t * attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the\n\t * `Partitioned` attribute is not set.\n\t *\n\t * **note** This is an attribute that has not yet been fully standardized, and may change in the future.\n\t * This also means many clients may ignore this attribute until they understand it.\n\t *\n\t * More information about can be found in [the proposal](https://github.com/privacycg/CHIPS)\n\t */\n\tpartitioned?: boolean | undefined\n\t/**\n\t * Specifies the boolean or string to be the value for the {@link https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7|`SameSite` `Set-Cookie` attribute}.\n\t *\n\t * - `true` will set the `SameSite` attribute to `Strict` for strict same\n\t * site enforcement.\n\t * - `false` will not set the `SameSite` attribute.\n\t * - `'lax'` will set the `SameSite` attribute to Lax for lax same site\n\t * enforcement.\n\t * - `'strict'` will set the `SameSite` attribute to Strict for strict same\n\t * site enforcement.\n\t * - `'none'` will set the SameSite attribute to None for an explicit\n\t * cross-site cookie.\n\t *\n\t * More information about the different enforcement levels can be found in {@link https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7|the specification}.\n\t *\n\t * *note* This is an attribute that has not yet been fully standardized, and may change in the future. This also means many clients may ignore this attribute until they understand it.\n\t */\n\tsameSite?: true | false | 'lax' | 'strict' | 'none' | undefined\n\t/**\n\t * Specifies the boolean value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.5|`Secure` `Set-Cookie` attribute}. When truthy, the\n\t * `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set.\n\t *\n\t * *Note* be careful when setting this to `true`, as compliant clients will\n\t * not send the cookie back to the server in the future if the browser does\n\t * not have an HTTPS connection.\n\t */\n\tsecure?: boolean | undefined\n\n\t/**\n\t * Secret key for signing cookie\n\t *\n\t * If array is passed, will use Key Rotation.\n\t *\n\t * Key rotation is when an encryption key is retired\n\t * and replaced by generating a new cryptographic key.\n\t */\n\tsecrets?: string | string[]\n}\n\nexport type ElysiaCookie = Prettify<\n\tCookieOptions & {\n\t\tvalue?: unknown\n\t}\n>\n\ntype Updater<T> = T | ((value: T) => T)\n\nexport class Cookie<T> implements ElysiaCookie {\n\tconstructor(\n\t\tprivate name: string,\n\t\tprivate jar: Record<string, ElysiaCookie>,\n\t\tprivate initial: Partial<ElysiaCookie> = {}\n\t) {}\n\n\tget cookie() {\n\t\treturn this.jar[this.name] ?? this.initial\n\t}\n\n\tset cookie(jar: ElysiaCookie) {\n\t\tif (!(this.name in this.jar)) this.jar[this.name] = this.initial\n\n\t\tthis.jar[this.name] = jar\n\t}\n\n\tprotected get setCookie() {\n\t\tif (!(this.name in this.jar)) this.jar[this.name] = this.initial\n\n\t\treturn this.jar[this.name]\n\t}\n\n\tprotected set setCookie(jar: ElysiaCookie) {\n\t\tthis.cookie = jar\n\t}\n\n\tget value(): T {\n\t\treturn this.cookie.value as T\n\t}\n\n\tset value(value: T) {\n\t\tthis.setCookie.value = value\n\t}\n\n\tget expires() {\n\t\treturn this.cookie.expires\n\t}\n\n\tset expires(expires) {\n\t\tthis.setCookie.expires = expires\n\t}\n\n\tget maxAge() {\n\t\treturn this.cookie.maxAge\n\t}\n\n\tset maxAge(maxAge) {\n\t\tthis.setCookie.maxAge = maxAge\n\t}\n\n\tget domain() {\n\t\treturn this.cookie.domain\n\t}\n\n\tset domain(domain) {\n\t\tthis.setCookie.domain = domain\n\t}\n\n\tget path() {\n\t\treturn this.cookie.path\n\t}\n\n\tset path(path) {\n\t\tthis.setCookie.path = path\n\t}\n\n\tget secure() {\n\t\treturn this.cookie.secure\n\t}\n\n\tset secure(secure) {\n\t\tthis.setCookie.secure = secure\n\t}\n\n\tget httpOnly() {\n\t\treturn this.cookie.httpOnly\n\t}\n\n\tset httpOnly(httpOnly) {\n\t\tthis.setCookie.httpOnly = httpOnly\n\t}\n\n\tget sameSite() {\n\t\treturn this.cookie.sameSite\n\t}\n\n\tset sameSite(sameSite) {\n\t\tthis.setCookie.sameSite = sameSite\n\t}\n\n\tget priority() {\n\t\treturn this.cookie.priority\n\t}\n\n\tset priority(priority) {\n\t\tthis.setCookie.priority = priority\n\t}\n\n\tget partitioned() {\n\t\treturn this.cookie.partitioned\n\t}\n\n\tset partitioned(partitioned) {\n\t\tthis.setCookie.partitioned = partitioned\n\t}\n\n\tget secrets() {\n\t\treturn this.cookie.secrets\n\t}\n\n\tset secrets(secrets) {\n\t\tthis.setCookie.secrets = secrets\n\t}\n\n\tupdate(config: Updater<Partial<ElysiaCookie>>) {\n\t\tthis.setCookie = Object.assign(\n\t\t\tthis.cookie,\n\t\t\ttypeof config === 'function' ? config(this.cookie) : config\n\t\t)\n\n\t\treturn this\n\t}\n\n\tset(config: Updater<Partial<ElysiaCookie>>) {\n\t\tthis.setCookie = Object.assign(\n\t\t\t{\n\t\t\t\t...this.initial,\n\t\t\t\tvalue: this.value\n\t\t\t},\n\t\t\ttypeof config === 'function' ? config(this.cookie) : config\n\t\t)\n\n\t\treturn this\n\t}\n\n\tremove() {\n\t\tif (this.value === undefined) return\n\n\t\tthis.set({\n\t\t\texpires: new Date(0),\n\t\t\tmaxAge: 0,\n\t\t\tvalue: ''\n\t\t})\n\n\t\treturn this\n\t}\n\n\ttoString() {\n\t\treturn typeof this.value === 'object'\n\t\t\t? JSON.stringify(this.value)\n\t\t\t: (this.value?.toString() ?? '')\n\t}\n}\n\nexport const createCookieJar = (\n\tset: Context['set'],\n\tstore: Record<string, ElysiaCookie>,\n\tinitial?: Partial<ElysiaCookie>\n): Record<string, Cookie<unknown>> => {\n\tif (!set.cookie) set.cookie = {}\n\n\treturn new Proxy(store, {\n\t\tget(_, key: string) {\n\t\t\tif (key in store)\n\t\t\t\treturn new Cookie(\n\t\t\t\t\tkey,\n\t\t\t\t\tset.cookie as Record<string, ElysiaCookie>,\n\t\t\t\t\tObject.assign({}, initial ?? {}, store[key])\n\t\t\t\t)\n\n\t\t\treturn new Cookie(\n\t\t\t\tkey,\n\t\t\t\tset.cookie as Record<string, ElysiaCookie>,\n\t\t\t\tObject.assign({}, initial)\n\t\t\t)\n\t\t}\n\t}) as Record<string, Cookie<unknown>>\n}\n\nexport const parseCookie = async (\n\tset: Context['set'],\n\tcookieString?: string | null,\n\t{\n\t\tsecrets,\n\t\tsign,\n\t\t...initial\n\t}: CookieOptions & {\n\t\tsign?: true | string | string[]\n\t} = {}\n) => {\n\tif (!cookieString) return createCookieJar(set, {}, initial)\n\n\tconst isStringKey = typeof secrets === 'string'\n\tif (sign && sign !== true && !Array.isArray(sign)) sign = [sign]\n\n\tconst jar: Record<string, ElysiaCookie> = {}\n\n\tconst cookies = parse(cookieString)\n\tfor (const [name, v] of Object.entries(cookies)) {\n\t\tif (v === undefined) continue\n\n\t\tlet value = decodeURIComponent(v)\n\n\t\tif (sign === true || sign?.includes(name)) {\n\t\t\tif (!secrets)\n\t\t\t\tthrow new Error('No secret is provided to cookie plugin')\n\n\t\t\tif (isStringKey) {\n\t\t\t\tconst temp = await unsignCookie(value as string, secrets)\n\t\t\t\tif (temp === false) throw new InvalidCookieSignature(name)\n\n\t\t\t\tvalue = temp\n\t\t\t} else {\n\t\t\t\tlet decoded = true\n\t\t\t\tfor (let i = 0; i < secrets.length; i++) {\n\t\t\t\t\tconst temp = await unsignCookie(value as string, secrets[i])\n\n\t\t\t\t\tif (temp !== false) {\n\t\t\t\t\t\tdecoded = true\n\t\t\t\t\t\tvalue = temp\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!decoded) throw new InvalidCookieSignature(name)\n\t\t\t}\n\t\t}\n\n\t\tjar[name] = {\n\t\t\tvalue\n\t\t}\n\t}\n\n\treturn createCookieJar(set, jar, initial)\n}\n\nexport const serializeCookie = (cookies: Context['set']['cookie']) => {\n\tif (!cookies || !isNotEmpty(cookies)) return undefined\n\n\tconst set: string[] = []\n\n\tfor (const [key, property] of Object.entries(cookies)) {\n\t\tif (!key || !property) continue\n\n\t\tconst value = property.value\n\t\tif (value === undefined || value === null) continue\n\n\t\tset.push(\n\t\t\tserialize(\n\t\t\t\tkey,\n\t\t\t\ttypeof value === 'object' ? JSON.stringify(value) : value + '',\n\t\t\t\tproperty\n\t\t\t)\n\t\t)\n\t}\n\n\tif (set.length === 0) return undefined\n\tif (set.length === 1) return set[0]\n\n\treturn set\n}\n",
15
15
  "// deuri doesn't support cjs output so I have to copy the code here\n// @see https://github.com/re-utils/deuri\n\n/* eslint-disable */\nconst hex: number[] = []\nfor (let i = 48; i < 58; i++) hex[i] = i - 48\n\n// A - F (index 65 - 70)\n// a - f (index 97 - 102)\nfor (let i = 0; i < 6; i++)\n\t// 10 to 15\n\thex[i + 65] = hex[i + 97] = i + 10\n\nconst calcHex = (a: number, b: number): number => {\n\tif (a in hex && b in hex) return (hex[a] << 4) | hex[b]\n\n\treturn 255\n}\n\n// Map bytes to character to a transition\nconst type: number[] = [\n\t...new Array(128).fill(0),\n\t...new Array(16).fill(1),\n\t...new Array(16).fill(2),\n\t...new Array(32).fill(3),\n\n\t4,\n\t4,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t5,\n\t6,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t7,\n\t8,\n\t7,\n\t7,\n\t10,\n\t9,\n\t9,\n\t9,\n\t11,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4,\n\t4\n]\n\n// Maps a state to a new state when adding a transition\nconst next = [\n\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 24, 36, 48, 60, 72, 84,\n\t96, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0,\n\t0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\n// Maps the current transition to a mask that needs to apply to the byte\nconst mask = type.map(\n\t(val) =>\n\t\t[\n\t\t\t0x7f, 0x3f, 0x3f, 0x3f, 0x00, 0x1f, 0x0f, 0x0f, 0x0f, 0x07, 0x07,\n\t\t\t0x07\n\t\t][val]\n)\n\n/**\n * Decode the full string\n */\nexport const decode = (url: string): string | null => {\n\tlet percentPosition = url.indexOf('%')\n\tif (percentPosition === -1) return url\n\n\t// Ensure percentPosition always has 2 chars after\n\tlet end = url.length - 3\n\tif (percentPosition > end) return null\n\n\tlet decoded = '',\n\t\tstart = 0,\n\t\tcodepoint = 0,\n\t\tstartOfOctets = percentPosition,\n\t\t// UTF_ACCEPT\n\t\tstate = 12,\n\t\tbyte: number\n\n\tfor (;;) {\n\t\tbyte = calcHex(\n\t\t\turl.charCodeAt(percentPosition + 1),\n\t\t\turl.charCodeAt(percentPosition + 2)\n\t\t)\n\t\tstate = next[state + type[byte]]\n\t\tif (state === 0) return null\n\t\tif (state === 12) {\n\t\t\tdecoded += url.substring(start, startOfOctets)\n\n\t\t\t// Calculate current codepoint\n\t\t\tcodepoint = (codepoint << 6) | (byte & mask[byte])\n\n\t\t\tif (codepoint > 0xffff)\n\t\t\t\tdecoded += String.fromCharCode(\n\t\t\t\t\t0xd7c0 + (codepoint >> 10),\n\t\t\t\t\t0xdc00 + (codepoint & 0x3ff)\n\t\t\t\t)\n\t\t\telse decoded += String.fromCharCode(codepoint)\n\n\t\t\t// Search next encoded component\n\t\t\tstart = percentPosition + 3\n\n\t\t\tpercentPosition = url.indexOf('%', start)\n\t\t\tif (percentPosition === -1) return decoded + url.substring(start)\n\n\t\t\t// Ensure percentPosition always has 2 chars after\n\t\t\tif (percentPosition > end) return null\n\n\t\t\tstartOfOctets = percentPosition\n\t\t\tcodepoint = 0\n\t\t} else {\n\t\t\t// Check next %\n\t\t\tpercentPosition += 3\n\t\t\tif (percentPosition > end || url.charCodeAt(percentPosition) !== 37)\n\t\t\t\treturn null\n\n\t\t\t// Calculate current codepoint\n\t\t\tcodepoint = (codepoint << 6) | (byte & mask[byte])\n\t\t}\n\t}\n}\n\n/**\n * Encode URI components\n */\nexport const encode = (str: string): string | null =>\n\tstr.isWellFormed() ? encodeURIComponent(str) : null\n\n/**\n * Decode a substring of an input string\n */\nexport const decodeSegment = (\n\turl: string,\n\tstart: number,\n\tend: number\n): string | null => {\n\tlet percentPosition = url.indexOf('%')\n\tif (percentPosition === -1) return url\n\n\t// Ensure percentPosition always has 2 chars after\n\tend -= 3\n\tif (percentPosition > end) return null\n\n\tlet decoded = '',\n\t\tcodepoint = 0,\n\t\tstartOfOctets = percentPosition,\n\t\t// UTF_ACCEPT\n\t\tstate = 12,\n\t\tbyte: number\n\n\tfor (;;) {\n\t\tbyte = calcHex(\n\t\t\turl.charCodeAt(percentPosition + 1),\n\t\t\turl.charCodeAt(percentPosition + 2)\n\t\t)\n\t\tstate = next[state + type[byte]]\n\t\tif (state === 0) return null\n\t\tif (state === 12) {\n\t\t\tdecoded += url.substring(start, startOfOctets)\n\n\t\t\t// Calculate current codepoint\n\t\t\tcodepoint = (codepoint << 6) | (byte & mask[byte])\n\n\t\t\tif (codepoint > 0xffff)\n\t\t\t\tdecoded += String.fromCharCode(\n\t\t\t\t\t0xd7c0 + (codepoint >> 10),\n\t\t\t\t\t0xdc00 + (codepoint & 0x3ff)\n\t\t\t\t)\n\t\t\telse decoded += String.fromCharCode(codepoint)\n\n\t\t\t// Search next encoded component\n\t\t\tstart = percentPosition + 3\n\n\t\t\tpercentPosition = url.indexOf('%', start)\n\t\t\tif (percentPosition === -1) return decoded + url.substring(start)\n\n\t\t\t// Ensure percentPosition always has 2 chars after\n\t\t\tif (percentPosition > end) return null\n\n\t\t\tstartOfOctets = percentPosition\n\t\t\tcodepoint = 0\n\t\t} else {\n\t\t\t// Check next %\n\t\t\tpercentPosition += 3\n\t\t\tif (percentPosition > end || url.charCodeAt(percentPosition) !== 37)\n\t\t\t\treturn null\n\n\t\t\t// Calculate current codepoint\n\t\t\tcodepoint = (codepoint << 6) | (byte & mask[byte])\n\t\t}\n\t}\n}\n",
16
16
  "/* eslint-disable sonarjs/no-nested-switch */\n/* eslint-disable sonarjs/no-duplicate-string */\nimport { isNotEmpty, hasHeaderShorthand, StatusMap } from '../../utils'\n\nimport { Cookie, serializeCookie } from '../../cookies'\n\nimport type { Context } from '../../context'\nimport type { AnyLocalHook } from '../../types'\nimport { ElysiaCustomStatusResponse } from '../../error'\nimport { ElysiaFile } from '../../universal/file'\n\n// type SetResponse = Omit<Context['set'], 'status'> & {\n// \tstatus: number\n// }\n\nconst handleFile = (response: File | Blob, set?: Context['set']) => {\n\tconst size = response.size\n\n\tif (\n\t\t(!set && size) ||\n\t\t(size &&\n\t\t\tset &&\n\t\t\tset.status !== 206 &&\n\t\t\tset.status !== 304 &&\n\t\t\tset.status !== 412 &&\n\t\t\tset.status !== 416)\n\t) {\n\t\tif (set) {\n\t\t\tif (set.headers instanceof Headers) {\n\t\t\t\tlet setHeaders: Record<string, any> = {\n\t\t\t\t\t'accept-ranges': 'bytes',\n\t\t\t\t\t'content-range': `bytes 0-${size - 1}/${size}`,\n\t\t\t\t\t'transfer-encoding': 'chunked'\n\t\t\t\t}\n\n\t\t\t\tif (hasHeaderShorthand)\n\t\t\t\t\tsetHeaders = (set.headers as unknown as Headers).toJSON()\n\t\t\t\telse {\n\t\t\t\t\tsetHeaders = {}\n\t\t\t\t\tfor (const [key, value] of set.headers.entries())\n\t\t\t\t\t\tif (key in set.headers) setHeaders[key] = value\n\t\t\t\t}\n\n\t\t\t\treturn new Response(response as Blob, {\n\t\t\t\t\tstatus: set.status as number,\n\t\t\t\t\theaders: setHeaders\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (isNotEmpty(set.headers))\n\t\t\t\treturn new Response(response as Blob, {\n\t\t\t\t\tstatus: set.status as number,\n\t\t\t\t\theaders: Object.assign(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'accept-ranges': 'bytes',\n\t\t\t\t\t\t\t'content-range': `bytes 0-${size - 1}/${size}`,\n\t\t\t\t\t\t\t'transfer-encoding': 'chunked'\n\t\t\t\t\t\t} as any,\n\t\t\t\t\t\tset.headers\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t}\n\n\t\treturn new Response(response as Blob, {\n\t\t\theaders: {\n\t\t\t\t'accept-ranges': 'bytes',\n\t\t\t\t'content-range': `bytes 0-${size - 1}/${size}`,\n\t\t\t\t'transfer-encoding': 'chunked'\n\t\t\t}\n\t\t})\n\t}\n\n\treturn new Response(response as Blob)\n}\n\nexport const parseSetCookies = (headers: Headers, setCookie: string[]) => {\n\tif (!headers) return headers\n\n\theaders.delete('set-cookie')\n\n\tfor (let i = 0; i < setCookie.length; i++) {\n\t\tconst index = setCookie[i].indexOf('=')\n\n\t\theaders.append(\n\t\t\t'set-cookie',\n\t\t\t`${setCookie[i].slice(0, index)}=${\n\t\t\t\tsetCookie[i].slice(index + 1) || ''\n\t\t\t}`\n\t\t)\n\t}\n\n\treturn headers\n}\n\nconst responseToSetHeaders = (response: Response, set?: Context['set']) => {\n\tif (set?.headers) {\n\t\tif (response) {\n\t\t\tif (hasHeaderShorthand)\n\t\t\t\t// @ts-expect-error\n\t\t\t\tObject.assign(set.headers, response.headers.toJSON())\n\t\t\telse\n\t\t\t\tfor (const [key, value] of response.headers.entries())\n\t\t\t\t\tif (key in set.headers) set.headers[key] = value\n\t\t}\n\n\t\tif (set.status === 200) set.status = response.status\n\n\t\t// ? `content-encoding` prevent response streaming\n\t\tif (set.headers['content-encoding'])\n\t\t\tdelete set.headers['content-encoding']\n\n\t\treturn set\n\t}\n\n\tif (!response)\n\t\treturn {\n\t\t\theaders: {},\n\t\t\tstatus: set?.status ?? 200\n\t\t}\n\n\tif (hasHeaderShorthand) {\n\t\tset = {\n\t\t\t// @ts-expect-error\n\t\t\theaders: response.headers.toJSON(),\n\t\t\tstatus: set?.status ?? 200\n\t\t}\n\n\t\t// ? `content-encoding` prevent response streaming\n\t\tif (set.headers['content-encoding'])\n\t\t\tdelete set.headers['content-encoding']\n\n\t\treturn set\n\t}\n\n\tset = {\n\t\theaders: {},\n\t\tstatus: set?.status ?? 200\n\t}\n\n\tfor (const [key, value] of response.headers.entries()) {\n\t\t// ? `content-encoding` prevent response streaming\n\n\t\tif (key === 'content-encoding') continue\n\n\t\tif (key in set.headers) set.headers[key] = value\n\t}\n\n\treturn set\n}\n\nconst handleStream = async (\n\tgenerator: Generator | AsyncGenerator,\n\tset?: Context['set'],\n\trequest?: Request\n) => {\n\tlet init = generator.next()\n\tif (init instanceof Promise) init = await init\n\n\tif (init.done) {\n\t\tif (set) return mapResponse(init.value, set, request)\n\t\treturn mapCompactResponse(init.value, request)\n\t}\n\n\tif (set?.headers) {\n\t\tif (!set.headers['transfer-encoding'])\n\t\t\tset.headers['transfer-encoding'] = 'chunked'\n\t\tif (!set.headers['content-type'])\n\t\t\tset.headers['content-type'] = 'text/event-stream; charset=utf-8'\n\t} else {\n\t\tset = {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t'content-type': 'text/event-stream; charset=utf-8',\n\t\t\t\t'transfer-encoding': 'chunked'\n\t\t\t}\n\t\t}\n\t}\n\n\treturn new Response(\n\t\tnew ReadableStream({\n\t\t\tasync start(controller) {\n\t\t\t\tlet end = false\n\n\t\t\t\trequest?.signal?.addEventListener('abort', () => {\n\t\t\t\t\tend = true\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tcontroller.close()\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// nothing\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tif (init.value !== undefined && init.value !== null) {\n\t\t\t\t\tif (typeof init.value === 'object')\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\t\t\t// @ts-expect-error this is a valid operation\n\t\t\t\t\t\t\t\tBuffer.from(JSON.stringify(init.value))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\t\t\t// @ts-expect-error this is a valid operation\n\t\t\t\t\t\t\t\tBuffer.from(init.value.toString())\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\t\t// @ts-expect-error this is a valid operation\n\t\t\t\t\t\t\tBuffer.from(init.value.toString())\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tfor await (const chunk of generator) {\n\t\t\t\t\tif (end) break\n\t\t\t\t\tif (chunk === undefined || chunk === null) continue\n\n\t\t\t\t\tif (typeof chunk === 'object')\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\t\t\t// @ts-expect-error this is a valid operation\n\t\t\t\t\t\t\t\tBuffer.from(JSON.stringify(chunk))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\t\t\t// @ts-expect-error this is a valid operation\n\t\t\t\t\t\t\t\tBuffer.from(chunk.toString())\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tcontroller.enqueue(\n\t\t\t\t\t\t\t// @ts-expect-error this is a valid operation\n\t\t\t\t\t\t\tBuffer.from(chunk.toString())\n\t\t\t\t\t\t)\n\n\t\t\t\t\t// Wait for the next event loop\n\t\t\t\t\t// Otherwise the data will be mixed up\n\t\t\t\t\tawait new Promise<void>((resolve) =>\n\t\t\t\t\t\tsetTimeout(() => resolve(), 0)\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tcontroller.close()\n\t\t\t\t} catch {\n\t\t\t\t\t// nothing\n\t\t\t\t}\n\t\t\t}\n\t\t}),\n\t\tset as any\n\t)\n}\n\nexport async function* streamResponse(response: Response) {\n\tconst body = response.body\n\n\tif (!body) return\n\n\tconst reader = body.getReader()\n\tconst decoder = new TextDecoder()\n\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read()\n\t\t\tif (done) break\n\n\t\t\tyield decoder.decode(value)\n\t\t}\n\t} finally {\n\t\treader.releaseLock()\n\t}\n}\n\nexport const handleSet = (set: Context['set']) => {\n\tif (typeof set.status === 'string') set.status = StatusMap[set.status]\n\n\tif (set.cookie && isNotEmpty(set.cookie)) {\n\t\tconst cookie = serializeCookie(set.cookie)\n\n\t\tif (cookie) set.headers['set-cookie'] = cookie\n\t}\n\n\tif (set.headers['set-cookie'] && Array.isArray(set.headers['set-cookie'])) {\n\t\tset.headers = parseSetCookies(\n\t\t\tnew Headers(set.headers as any) as Headers,\n\t\t\tset.headers['set-cookie']\n\t\t) as any\n\t}\n}\n\nexport const mergeResponseWithSetHeaders = (\n\tresponse: Response,\n\tset: Context['set']\n) => {\n\tif (\n\t\t(response as Response).status !== set.status &&\n\t\tset.status !== 200 &&\n\t\t((response.status as number) <= 300 ||\n\t\t\t(response.status as number) > 400)\n\t)\n\t\tresponse = new Response(response.body, {\n\t\t\theaders: response.headers,\n\t\t\tstatus: set.status as number\n\t\t})\n\n\tlet isCookieSet = false\n\n\tif (set.headers instanceof Headers)\n\t\tfor (const key of set.headers.keys()) {\n\t\t\tif (key === 'set-cookie') {\n\t\t\t\tif (isCookieSet) continue\n\n\t\t\t\tisCookieSet = true\n\n\t\t\t\tfor (const cookie of set.headers.getSetCookie())\n\t\t\t\t\tresponse.headers.append('set-cookie', cookie)\n\t\t\t} else response.headers.append(key, set.headers?.get(key) ?? '')\n\t\t}\n\telse\n\t\tfor (const key in set.headers)\n\t\t\t(response as Response).headers.append(key, set.headers[key] as any)\n\n\treturn response\n}\n\nexport const mapResponse = (\n\tresponse: unknown,\n\tset: Context['set'],\n\trequest?: Request\n): Response => {\n\tif (isNotEmpty(set.headers) || set.status !== 200 || set.cookie) {\n\t\thandleSet(set)\n\n\t\tswitch (response?.constructor?.name) {\n\t\t\tcase 'String':\n\t\t\t\treturn new Response(response as string, set as any)\n\n\t\t\tcase 'Array':\n\t\t\tcase 'Object':\n\t\t\t\treturn Response.json(response, set as any)\n\n\t\t\tcase 'ElysiaFile':\n\t\t\t\treturn handleFile((response as ElysiaFile).value as File)\n\n\t\t\tcase 'Blob':\n\t\t\t\treturn handleFile(response as Blob, set as any)\n\n\t\t\tcase 'ElysiaCustomStatusResponse':\n\t\t\t\tset.status = (response as ElysiaCustomStatusResponse<200>).code\n\n\t\t\t\treturn mapResponse(\n\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\tset,\n\t\t\t\t\trequest\n\t\t\t\t)\n\n\t\t\tcase 'ReadableStream':\n\t\t\t\tif (\n\t\t\t\t\t!set.headers['content-type']?.startsWith(\n\t\t\t\t\t\t'text/event-stream'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tset.headers['content-type'] =\n\t\t\t\t\t\t'text/event-stream; charset=utf-8'\n\n\t\t\t\trequest?.signal?.addEventListener(\n\t\t\t\t\t'abort',\n\t\t\t\t\t{\n\t\t\t\t\t\thandleEvent() {\n\t\t\t\t\t\t\tif (request?.signal && !request?.signal?.aborted)\n\t\t\t\t\t\t\t\t(response as ReadableStream).cancel()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tonce: true\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\treturn new Response(response as ReadableStream, set as any)\n\n\t\t\tcase undefined:\n\t\t\t\tif (!response) return new Response('', set as any)\n\n\t\t\t\treturn Response.json(response, set as any)\n\n\t\t\tcase 'Response':\n\t\t\t\tresponse = mergeResponseWithSetHeaders(\n\t\t\t\t\tresponse as Response,\n\t\t\t\t\tset\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\t!(response as Response).headers.has('content-length') &&\n\t\t\t\t\t(response as Response).headers.get('transfer-encoding') ===\n\t\t\t\t\t\t'chunked'\n\t\t\t\t)\n\t\t\t\t\treturn handleStream(\n\t\t\t\t\t\tstreamResponse(response as Response),\n\t\t\t\t\t\tresponseToSetHeaders(response as Response, set),\n\t\t\t\t\t\trequest\n\t\t\t\t\t) as any\n\n\t\t\t\treturn response as Response\n\n\t\t\tcase 'Error':\n\t\t\t\treturn errorToResponse(response as Error, set)\n\n\t\t\tcase 'Promise':\n\t\t\t\treturn (response as Promise<any>).then((x) =>\n\t\t\t\t\tmapResponse(x, set, request)\n\t\t\t\t) as any\n\n\t\t\tcase 'Function':\n\t\t\t\treturn mapResponse((response as Function)(), set, request)\n\n\t\t\tcase 'Number':\n\t\t\tcase 'Boolean':\n\t\t\t\treturn new Response(\n\t\t\t\t\t(response as number | boolean).toString(),\n\t\t\t\t\tset as any\n\t\t\t\t)\n\n\t\t\tcase 'Cookie':\n\t\t\t\tif (response instanceof Cookie)\n\t\t\t\t\treturn new Response(response.value, set as any)\n\n\t\t\t\treturn new Response(response?.toString(), set as any)\n\n\t\t\tcase 'FormData':\n\t\t\t\treturn new Response(response as FormData, set as any)\n\n\t\t\tdefault:\n\t\t\t\tif (response instanceof Response) {\n\t\t\t\t\tresponse = mergeResponseWithSetHeaders(\n\t\t\t\t\t\tresponse as Response,\n\t\t\t\t\t\tset\n\t\t\t\t\t)\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(response as Response).headers.get(\n\t\t\t\t\t\t\t'transfer-encoding'\n\t\t\t\t\t\t) === 'chunked'\n\t\t\t\t\t)\n\t\t\t\t\t\treturn handleStream(\n\t\t\t\t\t\t\tstreamResponse(response as Response),\n\t\t\t\t\t\t\tresponseToSetHeaders(response as Response, set),\n\t\t\t\t\t\t\trequest\n\t\t\t\t\t\t) as any\n\n\t\t\t\t\treturn response as Response\n\t\t\t\t}\n\n\t\t\t\tif (response instanceof Promise)\n\t\t\t\t\treturn response.then((x) => mapResponse(x, set)) as any\n\n\t\t\t\tif (response instanceof Error)\n\t\t\t\t\treturn errorToResponse(response as Error, set)\n\n\t\t\t\tif (response instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\tset.status = (\n\t\t\t\t\t\tresponse as ElysiaCustomStatusResponse<200>\n\t\t\t\t\t).code\n\n\t\t\t\t\treturn mapResponse(\n\t\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\t\tset,\n\t\t\t\t\t\trequest\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.next === 'function')\n\t\t\t\t\treturn handleStream(response as any, set, request) as any\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.then === 'function')\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\treturn response.then((x) => mapResponse(x, set)) as any\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.toResponse === 'function')\n\t\t\t\t\treturn mapResponse((response as any).toResponse(), set)\n\n\t\t\t\tif ('charCodeAt' in (response as any)) {\n\t\t\t\t\tconst code = (response as any).charCodeAt(0)\n\n\t\t\t\t\tif (code === 123 || code === 91) {\n\t\t\t\t\t\tif (!set.headers['Content-Type'])\n\t\t\t\t\t\t\tset.headers['Content-Type'] = 'application/json'\n\n\t\t\t\t\t\treturn new Response(\n\t\t\t\t\t\t\tJSON.stringify(response),\n\t\t\t\t\t\t\tset as any\n\t\t\t\t\t\t) as any\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn new Response(response as any, set as any)\n\t\t}\n\t}\n\n\tif (\n\t\tresponse instanceof Response &&\n\t\t!(response as Response).headers.has('content-length') &&\n\t\t(response as Response).headers.get('transfer-encoding') === 'chunked'\n\t)\n\t\treturn handleStream(\n\t\t\tstreamResponse(response),\n\t\t\tresponseToSetHeaders(response as Response, set),\n\t\t\trequest\n\t\t) as any\n\n\t// Stream response defers a 'set' API, assume that it may include 'set'\n\tif (\n\t\t// @ts-expect-error\n\t\ttypeof response?.next === 'function' ||\n\t\tresponse instanceof ReadableStream\n\t)\n\t\treturn handleStream(response as any, set, request) as any\n\n\treturn mapCompactResponse(response, request)\n}\n\nexport const mapEarlyResponse = (\n\tresponse: unknown,\n\tset: Context['set'],\n\trequest?: Request\n): Response | undefined => {\n\tif (response === undefined || response === null) return\n\n\tif (isNotEmpty(set.headers) || set.status !== 200 || set.cookie) {\n\t\thandleSet(set)\n\n\t\tswitch (response?.constructor?.name) {\n\t\t\tcase 'String':\n\t\t\t\treturn new Response(response as string, set as any)\n\n\t\t\tcase 'Array':\n\t\t\tcase 'Object':\n\t\t\t\treturn Response.json(response, set as any)\n\n\t\t\tcase 'ElysiaFile':\n\t\t\t\treturn handleFile((response as ElysiaFile).value as File)\n\n\t\t\tcase 'Blob':\n\t\t\t\treturn handleFile(response as File | Blob, set)\n\n\t\t\tcase 'ElysiaCustomStatusResponse':\n\t\t\t\tset.status = (response as ElysiaCustomStatusResponse<200>).code\n\n\t\t\t\treturn mapEarlyResponse(\n\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\tset,\n\t\t\t\t\trequest\n\t\t\t\t)\n\n\t\t\tcase 'ReadableStream':\n\t\t\t\tif (\n\t\t\t\t\t!set.headers['content-type']?.startsWith(\n\t\t\t\t\t\t'text/event-stream'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\tset.headers['content-type'] =\n\t\t\t\t\t\t'text/event-stream; charset=utf-8'\n\n\t\t\t\trequest?.signal?.addEventListener(\n\t\t\t\t\t'abort',\n\t\t\t\t\t{\n\t\t\t\t\t\thandleEvent() {\n\t\t\t\t\t\t\tif (request?.signal && !request?.signal?.aborted)\n\t\t\t\t\t\t\t\t(response as ReadableStream).cancel()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tonce: true\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\treturn new Response(response as ReadableStream, set as any)\n\n\t\t\tcase undefined:\n\t\t\t\tif (!response) return\n\n\t\t\t\treturn Response.json(response, set as any)\n\n\t\t\tcase 'Response':\n\t\t\t\tresponse = mergeResponseWithSetHeaders(\n\t\t\t\t\tresponse as Response,\n\t\t\t\t\tset\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\t!(response as Response).headers.has('content-length') &&\n\t\t\t\t\t(response as Response).headers.get('transfer-encoding') ===\n\t\t\t\t\t\t'chunked'\n\t\t\t\t)\n\t\t\t\t\treturn handleStream(\n\t\t\t\t\t\tstreamResponse(response as Response),\n\t\t\t\t\t\tresponseToSetHeaders(response as Response, set),\n\t\t\t\t\t\trequest\n\t\t\t\t\t) as any\n\n\t\t\t\treturn response as Response\n\n\t\t\tcase 'Promise':\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn (response as Promise<unknown>).then((x) =>\n\t\t\t\t\tmapEarlyResponse(x, set)\n\t\t\t\t)\n\n\t\t\tcase 'Error':\n\t\t\t\treturn errorToResponse(response as Error, set)\n\n\t\t\tcase 'Function':\n\t\t\t\treturn mapEarlyResponse((response as Function)(), set)\n\n\t\t\tcase 'Number':\n\t\t\tcase 'Boolean':\n\t\t\t\treturn new Response(\n\t\t\t\t\t(response as number | boolean).toString(),\n\t\t\t\t\tset as any\n\t\t\t\t)\n\n\t\t\tcase 'FormData':\n\t\t\t\treturn new Response(response as FormData)\n\n\t\t\tcase 'Cookie':\n\t\t\t\tif (response instanceof Cookie)\n\t\t\t\t\treturn new Response(response.value, set as any)\n\n\t\t\t\treturn new Response(response?.toString(), set as any)\n\n\t\t\tdefault:\n\t\t\t\tif (response instanceof Response) {\n\t\t\t\t\tresponse = mergeResponseWithSetHeaders(\n\t\t\t\t\t\tresponse as Response,\n\t\t\t\t\t\tset\n\t\t\t\t\t)\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(response as Response).headers.get(\n\t\t\t\t\t\t\t'transfer-encoding'\n\t\t\t\t\t\t) === 'chunked'\n\t\t\t\t\t)\n\t\t\t\t\t\treturn handleStream(\n\t\t\t\t\t\t\tstreamResponse(response as Response),\n\t\t\t\t\t\t\tresponseToSetHeaders(response as Response, set),\n\t\t\t\t\t\t\trequest\n\t\t\t\t\t\t) as any\n\n\t\t\t\t\treturn response as Response\n\t\t\t\t}\n\n\t\t\t\tif (response instanceof Promise)\n\t\t\t\t\treturn response.then((x) => mapEarlyResponse(x, set)) as any\n\n\t\t\t\tif (response instanceof Error)\n\t\t\t\t\treturn errorToResponse(response as Error, set)\n\n\t\t\t\tif (response instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\tset.status = (\n\t\t\t\t\t\tresponse as ElysiaCustomStatusResponse<200>\n\t\t\t\t\t).code\n\n\t\t\t\t\treturn mapEarlyResponse(\n\t\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\t\tset,\n\t\t\t\t\t\trequest\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.next === 'function')\n\t\t\t\t\treturn handleStream(response as any, set, request) as any\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.then === 'function')\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\treturn response.then((x) => mapEarlyResponse(x, set)) as any\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.toResponse === 'function')\n\t\t\t\t\treturn mapEarlyResponse((response as any).toResponse(), set)\n\n\t\t\t\tif ('charCodeAt' in (response as any)) {\n\t\t\t\t\tconst code = (response as any).charCodeAt(0)\n\n\t\t\t\t\tif (code === 123 || code === 91) {\n\t\t\t\t\t\tif (!set.headers['Content-Type'])\n\t\t\t\t\t\t\tset.headers['Content-Type'] = 'application/json'\n\n\t\t\t\t\t\treturn new Response(\n\t\t\t\t\t\t\tJSON.stringify(response),\n\t\t\t\t\t\t\tset as any\n\t\t\t\t\t\t) as any\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn new Response(response as any, set as any)\n\t\t}\n\t} else\n\t\tswitch (response?.constructor?.name) {\n\t\t\tcase 'String':\n\t\t\t\treturn new Response(response as string)\n\n\t\t\tcase 'Array':\n\t\t\tcase 'Object':\n\t\t\t\treturn Response.json(response, set as any)\n\n\t\t\tcase 'ElysiaFile':\n\t\t\t\treturn handleFile((response as ElysiaFile).value as File)\n\n\t\t\tcase 'Blob':\n\t\t\t\treturn handleFile(response as File | Blob, set)\n\n\t\t\tcase 'ElysiaCustomStatusResponse':\n\t\t\t\tset.status = (response as ElysiaCustomStatusResponse<200>).code\n\n\t\t\t\treturn mapEarlyResponse(\n\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\tset,\n\t\t\t\t\trequest\n\t\t\t\t)\n\n\t\t\tcase 'ReadableStream':\n\t\t\t\trequest?.signal?.addEventListener(\n\t\t\t\t\t'abort',\n\t\t\t\t\t{\n\t\t\t\t\t\thandleEvent() {\n\t\t\t\t\t\t\tif (request?.signal && !request?.signal?.aborted)\n\t\t\t\t\t\t\t\t(response as ReadableStream).cancel()\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tonce: true\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\treturn new Response(response as ReadableStream, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'text/event-stream; charset=utf-8'\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\tcase undefined:\n\t\t\t\tif (!response) return new Response('')\n\n\t\t\t\treturn new Response(JSON.stringify(response), {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'content-type': 'application/json'\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\tcase 'Response':\n\t\t\t\tif (\n\t\t\t\t\t!(response as Response).headers.has('content-length') &&\n\t\t\t\t\t(response as Response).headers.get('transfer-encoding') ===\n\t\t\t\t\t\t'chunked'\n\t\t\t\t)\n\t\t\t\t\treturn handleStream(\n\t\t\t\t\t\tstreamResponse(response as Response),\n\t\t\t\t\t\tresponseToSetHeaders(response as Response),\n\t\t\t\t\t\trequest\n\t\t\t\t\t) as any\n\n\t\t\t\treturn response as Response\n\n\t\t\tcase 'Promise':\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn (response as Promise<unknown>).then((x) => {\n\t\t\t\t\tconst r = mapEarlyResponse(x, set)\n\t\t\t\t\tif (r !== undefined) return r\n\t\t\t\t})\n\n\t\t\tcase 'Error':\n\t\t\t\treturn errorToResponse(response as Error, set)\n\n\t\t\tcase 'Function':\n\t\t\t\treturn mapCompactResponse((response as Function)(), request)\n\n\t\t\tcase 'Number':\n\t\t\tcase 'Boolean':\n\t\t\t\treturn new Response((response as number | boolean).toString())\n\n\t\t\tcase 'Cookie':\n\t\t\t\tif (response instanceof Cookie)\n\t\t\t\t\treturn new Response(response.value, set as any)\n\n\t\t\t\treturn new Response(response?.toString(), set as any)\n\n\t\t\tcase 'FormData':\n\t\t\t\treturn new Response(response as FormData)\n\n\t\t\tdefault:\n\t\t\t\tif (response instanceof Response) return response\n\n\t\t\t\tif (response instanceof Promise)\n\t\t\t\t\treturn response.then((x) => mapEarlyResponse(x, set)) as any\n\n\t\t\t\tif (response instanceof Error)\n\t\t\t\t\treturn errorToResponse(response as Error, set)\n\n\t\t\t\tif (response instanceof ElysiaCustomStatusResponse) {\n\t\t\t\t\tset.status = (\n\t\t\t\t\t\tresponse as ElysiaCustomStatusResponse<200>\n\t\t\t\t\t).code\n\n\t\t\t\t\treturn mapEarlyResponse(\n\t\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\t\tset,\n\t\t\t\t\t\trequest\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.next === 'function')\n\t\t\t\t\treturn handleStream(response as any, set, request) as any\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.then === 'function')\n\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\treturn response.then((x) => mapEarlyResponse(x, set)) as any\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (typeof response?.toResponse === 'function')\n\t\t\t\t\treturn mapEarlyResponse((response as any).toResponse(), set)\n\n\t\t\t\tif ('charCodeAt' in (response as any)) {\n\t\t\t\t\tconst code = (response as any).charCodeAt(0)\n\n\t\t\t\t\tif (code === 123 || code === 91) {\n\t\t\t\t\t\tif (!set.headers['Content-Type'])\n\t\t\t\t\t\t\tset.headers['Content-Type'] = 'application/json'\n\n\t\t\t\t\t\treturn new Response(\n\t\t\t\t\t\t\tJSON.stringify(response),\n\t\t\t\t\t\t\tset as any\n\t\t\t\t\t\t) as any\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn new Response(response as any)\n\t\t}\n}\n\nexport const mapCompactResponse = (\n\tresponse: unknown,\n\trequest?: Request\n): Response => {\n\tswitch (response?.constructor?.name) {\n\t\tcase 'String':\n\t\t\treturn new Response(response as string)\n\n\t\tcase 'Object':\n\t\tcase 'Array':\n\t\t\treturn Response.json(response)\n\n\t\tcase 'ElysiaFile':\n\t\t\treturn handleFile((response as ElysiaFile).value as File)\n\n\t\tcase 'Blob':\n\t\t\treturn handleFile(response as File | Blob)\n\n\t\tcase 'ElysiaCustomStatusResponse':\n\t\t\treturn mapResponse(\n\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t{\n\t\t\t\t\tstatus: (response as ElysiaCustomStatusResponse<200>).code,\n\t\t\t\t\theaders: {}\n\t\t\t\t}\n\t\t\t)\n\n\t\tcase 'ReadableStream':\n\t\t\trequest?.signal?.addEventListener(\n\t\t\t\t'abort',\n\t\t\t\t{\n\t\t\t\t\thandleEvent() {\n\t\t\t\t\t\tif (request?.signal && !request?.signal?.aborted)\n\t\t\t\t\t\t\t(response as ReadableStream).cancel()\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonce: true\n\t\t\t\t}\n\t\t\t)\n\n\t\t\treturn new Response(response as ReadableStream, {\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'text/event-stream; charset=utf-8'\n\t\t\t\t}\n\t\t\t})\n\n\t\tcase undefined:\n\t\t\tif (!response) return new Response('')\n\n\t\t\treturn new Response(JSON.stringify(response), {\n\t\t\t\theaders: {\n\t\t\t\t\t'content-type': 'application/json'\n\t\t\t\t}\n\t\t\t})\n\n\t\tcase 'Response':\n\t\t\tif (\n\t\t\t\t(response as Response).headers.get('transfer-encoding') ===\n\t\t\t\t'chunked'\n\t\t\t)\n\t\t\t\treturn handleStream(\n\t\t\t\t\tstreamResponse(response as Response),\n\t\t\t\t\tresponseToSetHeaders(response as Response),\n\t\t\t\t\trequest\n\t\t\t\t) as any\n\n\t\t\treturn response as Response\n\n\t\tcase 'Error':\n\t\t\treturn errorToResponse(response as Error)\n\n\t\tcase 'Promise':\n\t\t\treturn (response as any as Promise<unknown>).then((x) =>\n\t\t\t\tmapCompactResponse(x, request)\n\t\t\t) as any\n\n\t\t// ? Maybe response or Blob\n\t\tcase 'Function':\n\t\t\treturn mapCompactResponse((response as Function)(), request)\n\n\t\tcase 'Number':\n\t\tcase 'Boolean':\n\t\t\treturn new Response((response as number | boolean).toString())\n\n\t\tcase 'FormData':\n\t\t\treturn new Response(response as FormData)\n\n\t\tdefault:\n\t\t\tif (response instanceof Response) return response\n\n\t\t\tif (response instanceof Promise)\n\t\t\t\treturn response.then((x) =>\n\t\t\t\t\tmapCompactResponse(x, request)\n\t\t\t\t) as any\n\n\t\t\tif (response instanceof Error)\n\t\t\t\treturn errorToResponse(response as Error)\n\n\t\t\tif (response instanceof ElysiaCustomStatusResponse)\n\t\t\t\treturn mapResponse(\n\t\t\t\t\t(response as ElysiaCustomStatusResponse<200>).response,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: (response as ElysiaCustomStatusResponse<200>)\n\t\t\t\t\t\t\t.code,\n\t\t\t\t\t\theaders: {}\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t// @ts-expect-error\n\t\t\tif (typeof response?.next === 'function')\n\t\t\t\treturn handleStream(response as any, undefined, request) as any\n\n\t\t\t// @ts-expect-error\n\t\t\tif (typeof response?.then === 'function')\n\t\t\t\t// @ts-expect-error\n\t\t\t\treturn response.then((x) => mapResponse(x, set)) as any\n\n\t\t\t// @ts-expect-error\n\t\t\tif (typeof response?.toResponse === 'function')\n\t\t\t\treturn mapCompactResponse((response as any).toResponse())\n\n\t\t\tif ('charCodeAt' in (response as any)) {\n\t\t\t\tconst code = (response as any).charCodeAt(0)\n\n\t\t\t\tif (code === 123 || code === 91) {\n\t\t\t\t\treturn new Response(JSON.stringify(response), {\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t\t\t}\n\t\t\t\t\t}) as any\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn new Response(response as any)\n\t}\n}\n\nexport const errorToResponse = (error: Error, set?: Context['set']) =>\n\tnew Response(\n\t\tJSON.stringify({\n\t\t\tname: error?.name,\n\t\t\tmessage: error?.message,\n\t\t\tcause: error?.cause\n\t\t}),\n\t\t{\n\t\t\tstatus:\n\t\t\t\tset?.status !== 200 ? ((set?.status as number) ?? 500) : 500,\n\t\t\theaders: set?.headers as any\n\t\t}\n\t)\n\nexport const createStaticHandler = (\n\thandle: unknown,\n\thooks: Partial<AnyLocalHook>,\n\tsetHeaders: Context['set']['headers'] = {}\n): (() => Response) | undefined => {\n\tif (typeof handle === 'function') return\n\n\tconst response = mapResponse(handle, {\n\t\theaders: setHeaders\n\t})\n\n\tif (\n\t\t!hooks.parse?.length &&\n\t\t!hooks.transform?.length &&\n\t\t!hooks.beforeHandle?.length &&\n\t\t!hooks.afterHandle?.length\n\t)\n\t\treturn response.clone.bind(response)\n}\n",
17
- "import {\n\tmapResponse,\n\tmapEarlyResponse,\n\tmapCompactResponse,\n\tcreateStaticHandler\n} from './handler'\n\nimport { getLoosePath } from '../../utils'\n\nimport type { ElysiaAdapter } from '../types'\n\nexport const WebStandardAdapter: ElysiaAdapter = {\n\tname: 'web-standard',\n\tisWebStandard: true,\n\thandler: {\n\t\tmapResponse,\n\t\tmapEarlyResponse,\n\t\tmapCompactResponse,\n\t\tcreateStaticHandler\n\t},\n\tcomposeHandler: {\n\t\tmapResponseContext: 'c.request',\n\t\tpreferWebstandardHeaders: true,\n\t\t// @ts-ignore Bun specific\n\t\theaders:\n\t\t\t'c.headers = {}\\n' +\n\t\t\t'for (const [key, value] of c.request.headers.entries())' +\n\t\t\t'c.headers[key] = value\\n',\n\t\tparser: {\n\t\t\tjson(isOptional) {\n\t\t\t\tif (isOptional)\n\t\t\t\t\treturn `try{c.body=await c.request.json()}catch{}\\n`\n\t\t\t\treturn `c.body=await c.request.json()\\n`\n\t\t\t},\n\t\t\ttext() {\n\t\t\t\treturn `c.body=await c.request.text()\\n`\n\t\t\t},\n\t\t\turlencoded() {\n\t\t\t\treturn `c.body=parseQuery(await c.request.text())\\n`\n\t\t\t},\n\t\t\tarrayBuffer() {\n\t\t\t\treturn `c.body=await c.request.arrayBuffer()\\n`\n\t\t\t},\n\t\t\tformData(isOptional) {\n\t\t\t\tlet fnLiteral = '\\nc.body={}\\n'\n\n\t\t\t\tif (isOptional)\n\t\t\t\t\tfnLiteral += `let form;try{form=await c.request.formData()}catch{}`\n\t\t\t\telse fnLiteral += `const form=await c.request.formData()\\n`\n\n\t\t\t\treturn (\n\t\t\t\t\tfnLiteral +\n\t\t\t\t\t`for(const key of form.keys()){` +\n\t\t\t\t\t`if(c.body[key]) continue\\n` +\n\t\t\t\t\t`const value=form.getAll(key)\\n` +\n\t\t\t\t\t`if(value.length===1)` +\n\t\t\t\t\t`c.body[key]=value[0]\\n` +\n\t\t\t\t\t`else c.body[key]=value` +\n\t\t\t\t\t`}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t},\n\tcomposeGeneralHandler: {\n\t\tparameters: 'r',\n\t\tcreateContext(app) {\n\t\t\tlet decoratorsLiteral = ''\n\t\t\tlet fnLiteral = ''\n\n\t\t\t// @ts-expect-error private\n\t\t\tconst defaultHeaders = app.setHeaders\n\n\t\t\t// @ts-ignore\n\t\t\tfor (const key of Object.keys(app.singleton.decorator))\n\t\t\t\tdecoratorsLiteral += `,${key}:decorator['${key}']`\n\n\t\t\tconst standardHostname =\n\t\t\t\tapp.config.handler?.standardHostname ?? true\n\t\t\tconst hasTrace = !!app.event.trace?.length\n\n\t\t\tfnLiteral +=\n\t\t\t\t`const u=r.url,` +\n\t\t\t\t`s=u.indexOf('/',${standardHostname ? 11 : 7}),` +\n\t\t\t\t`qi=u.indexOf('?', s + 1)\\n` +\n\t\t\t\t`let p\\n` +\n\t\t\t\t`if(qi===-1)p=u.substring(s)\\n` +\n\t\t\t\t`else p=u.substring(s, qi)\\n`\n\n\t\t\tif (hasTrace) fnLiteral += `const id=randomId()\\n`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`const c={request:r,` +\n\t\t\t\t`store,` +\n\t\t\t\t`qi,` +\n\t\t\t\t`path:p,` +\n\t\t\t\t`url:u,` +\n\t\t\t\t`redirect,` +\n\t\t\t\t`error,` +\n\t\t\t\t`set:{headers:`\n\n\t\t\tfnLiteral += Object.keys(defaultHeaders ?? {}).length\n\t\t\t\t? 'Object.assign({},app.setHeaders)'\n\t\t\t\t: '{}'\n\n\t\t\tfnLiteral += `,status:200}`\n\n\t\t\t// @ts-expect-error private\n\t\t\tif (app.inference.server)\n\t\t\t\tfnLiteral += `,get server(){return app.getServer()}`\n\t\t\tif (hasTrace) fnLiteral += ',[ELYSIA_REQUEST_ID]:id'\n\t\t\tfnLiteral += decoratorsLiteral\n\t\t\tfnLiteral += `}\\n`\n\n\t\t\treturn fnLiteral\n\t\t},\n\t\twebsocket(app) {\n\t\t\tlet fnLiteral = ''\n\n\t\t\tconst wsPaths = app.router.static.ws\n\t\t\tconst router = app.router.http\n\n\t\t\trouter.build()\n\n\t\t\tif (\n\t\t\t\tObject.keys(wsPaths).length ||\n\t\t\t\trouter.root.ws ||\n\t\t\t\trouter.history.find((x) => x['0'] === 'ws')\n\t\t\t) {\n\t\t\t\tfnLiteral += `if(r.method==='GET'){switch(p){`\n\n\t\t\t\tfor (const [path, index] of Object.entries(wsPaths)) {\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`case'${path}':` +\n\t\t\t\t\t\t(app.config.strictPath !== true\n\t\t\t\t\t\t\t? `case'${getLoosePath(path)}':`\n\t\t\t\t\t\t\t: '') +\n\t\t\t\t\t\t`if(r.headers.get('upgrade')==='websocket')` +\n\t\t\t\t\t\t`return ht[${index}].composed(c)\\n`\n\t\t\t\t}\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`default:` +\n\t\t\t\t\t`if(r.headers.get('upgrade')==='websocket'){` +\n\t\t\t\t\t`const route=router.find('ws',p)\\n` +\n\t\t\t\t\t`if(route){` +\n\t\t\t\t\t`c.params=route.params\\n` +\n\t\t\t\t\t`if(route.store.handler)return route.store.handler(c)\\n` +\n\t\t\t\t\t`return (route.store.handler=route.store.compile())(c)` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`break` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`}`\n\t\t\t}\n\n\t\t\treturn fnLiteral\n\t\t},\n\t\terror404(hasEventHook, hasErrorHook) {\n\t\t\tlet findDynamicRoute = `if(route===null)return `\n\n\t\t\tif (hasErrorHook)\n\t\t\t\tfindDynamicRoute += `app.handleError(c,notFound,false,${this.parameters})`\n\t\t\telse\n\t\t\t\tfindDynamicRoute += hasEventHook\n\t\t\t\t\t? `new Response(error404Message,{` +\n\t\t\t\t\t\t`status:c.set.status===200?404:c.set.status,` +\n\t\t\t\t\t\t`headers:c.set.headers` +\n\t\t\t\t\t\t`})`\n\t\t\t\t\t: `error404.clone()`\n\n\t\t\treturn {\n\t\t\t\tdeclare: hasErrorHook\n\t\t\t\t\t? ''\n\t\t\t\t\t: `const error404Message=notFound.message.toString()\\n` +\n\t\t\t\t\t\t`const error404=new Response(error404Message,{status:404})\\n`,\n\t\t\t\tcode: findDynamicRoute\n\t\t\t}\n\t\t}\n\t},\n\tcomposeError: {\n\t\tmapResponseContext: '',\n\t\tvalidationError:\n\t\t\t`return new Response(` +\n\t\t\t`error.message,` +\n\t\t\t`{` +\n\t\t\t`headers:Object.assign(` +\n\t\t\t`{'content-type':'application/json'},` +\n\t\t\t`set.headers` +\n\t\t\t`),` +\n\t\t\t`status:set.status` +\n\t\t\t`}` +\n\t\t\t`)`,\n\t\tunknownError:\n\t\t\t`return new Response(` +\n\t\t\t`error.message,` +\n\t\t\t`{headers:set.headers,status:error.status??set.status??500}` +\n\t\t\t`)`\n\t},\n\tlisten() {\n\t\treturn () => {\n\t\t\tthrow new Error(\n\t\t\t\t'WebStandard does not support listen, you might want to export default Elysia.fetch instead'\n\t\t\t)\n\t\t}\n\t}\n}\n",
17
+ "import {\n\tmapResponse,\n\tmapEarlyResponse,\n\tmapCompactResponse,\n\tcreateStaticHandler\n} from './handler'\n\nimport { getLoosePath } from '../../utils'\n\nimport type { ElysiaAdapter } from '../types'\n\nexport const WebStandardAdapter: ElysiaAdapter = {\n\tname: 'web-standard',\n\tisWebStandard: true,\n\thandler: {\n\t\tmapResponse,\n\t\tmapEarlyResponse,\n\t\tmapCompactResponse,\n\t\tcreateStaticHandler\n\t},\n\tcomposeHandler: {\n\t\tmapResponseContext: 'c.request',\n\t\tpreferWebstandardHeaders: true,\n\t\t// @ts-ignore Bun specific\n\t\theaders:\n\t\t\t'c.headers = {}\\n' +\n\t\t\t'for (const [key, value] of c.request.headers.entries())' +\n\t\t\t'c.headers[key] = value\\n',\n\t\tparser: {\n\t\t\tjson(isOptional) {\n\t\t\t\tif (isOptional)\n\t\t\t\t\treturn `try{c.body=await c.request.json()}catch{}\\n`\n\t\t\t\treturn `c.body=await c.request.json()\\n`\n\t\t\t},\n\t\t\ttext() {\n\t\t\t\treturn `c.body=await c.request.text()\\n`\n\t\t\t},\n\t\t\turlencoded() {\n\t\t\t\treturn `c.body=parseQuery(await c.request.text())\\n`\n\t\t\t},\n\t\t\tarrayBuffer() {\n\t\t\t\treturn `c.body=await c.request.arrayBuffer()\\n`\n\t\t\t},\n\t\t\tformData(isOptional) {\n\t\t\t\tlet fnLiteral = '\\nc.body={}\\n'\n\n\t\t\t\tif (isOptional)\n\t\t\t\t\tfnLiteral += `let form;try{form=await c.request.formData()}catch{}`\n\t\t\t\telse fnLiteral += `const form=await c.request.formData()\\n`\n\n\t\t\t\treturn (\n\t\t\t\t\tfnLiteral +\n\t\t\t\t\t`for(const key of form.keys()){` +\n\t\t\t\t\t`if(c.body[key]) continue\\n` +\n\t\t\t\t\t`const value=form.getAll(key)\\n` +\n\t\t\t\t\t`if(value.length===1)` +\n\t\t\t\t\t`c.body[key]=value[0]\\n` +\n\t\t\t\t\t`else c.body[key]=value` +\n\t\t\t\t\t`}`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t},\n\tcomposeGeneralHandler: {\n\t\tparameters: 'r',\n\t\tcreateContext(app) {\n\t\t\tlet decoratorsLiteral = ''\n\t\t\tlet fnLiteral = ''\n\n\t\t\t// @ts-expect-error private\n\t\t\tconst defaultHeaders = app.setHeaders\n\n\t\t\tfor (const key of Object.keys(app.decorator))\n\t\t\t\tdecoratorsLiteral += `,${key}:decorator['${key}']`\n\n\t\t\tconst standardHostname =\n\t\t\t\tapp.config.handler?.standardHostname ?? true\n\t\t\tconst hasTrace = !!app.event.trace?.length\n\n\t\t\tfnLiteral +=\n\t\t\t\t`const u=r.url,` +\n\t\t\t\t`s=u.indexOf('/',${standardHostname ? 11 : 7}),` +\n\t\t\t\t`qi=u.indexOf('?', s + 1)\\n` +\n\t\t\t\t`let p\\n` +\n\t\t\t\t`if(qi===-1)p=u.substring(s)\\n` +\n\t\t\t\t`else p=u.substring(s, qi)\\n`\n\n\t\t\tif (hasTrace) fnLiteral += `const id=randomId()\\n`\n\n\t\t\tfnLiteral +=\n\t\t\t\t`const c={request:r,` +\n\t\t\t\t`store,` +\n\t\t\t\t`qi,` +\n\t\t\t\t`path:p,` +\n\t\t\t\t`url:u,` +\n\t\t\t\t`redirect,` +\n\t\t\t\t`error,` +\n\t\t\t\t`set:{headers:`\n\n\t\t\tfnLiteral += Object.keys(defaultHeaders ?? {}).length\n\t\t\t\t? 'Object.assign({},app.setHeaders)'\n\t\t\t\t: '{}'\n\n\t\t\tfnLiteral += `,status:200}`\n\n\t\t\t// @ts-expect-error private\n\t\t\tif (app.inference.server)\n\t\t\t\tfnLiteral += `,get server(){return app.getServer()}`\n\t\t\tif (hasTrace) fnLiteral += ',[ELYSIA_REQUEST_ID]:id'\n\t\t\tfnLiteral += decoratorsLiteral\n\t\t\tfnLiteral += `}\\n`\n\n\t\t\treturn fnLiteral\n\t\t},\n\t\twebsocket(app) {\n\t\t\tlet fnLiteral = ''\n\n\t\t\tconst wsPaths = app.router.static.ws\n\t\t\tconst router = app.router.http\n\n\t\t\trouter.build()\n\n\t\t\tif (\n\t\t\t\tObject.keys(wsPaths).length ||\n\t\t\t\trouter.root.ws ||\n\t\t\t\trouter.history.find((x) => x['0'] === 'ws')\n\t\t\t) {\n\t\t\t\tfnLiteral += `if(r.method==='GET'){switch(p){`\n\n\t\t\t\tfor (const [path, index] of Object.entries(wsPaths)) {\n\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t`case'${path}':` +\n\t\t\t\t\t\t(app.config.strictPath !== true\n\t\t\t\t\t\t\t? `case'${getLoosePath(path)}':`\n\t\t\t\t\t\t\t: '') +\n\t\t\t\t\t\t`if(r.headers.get('upgrade')==='websocket')` +\n\t\t\t\t\t\t`return ht[${index}].composed(c)\\n`\n\t\t\t\t}\n\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`default:` +\n\t\t\t\t\t`if(r.headers.get('upgrade')==='websocket'){` +\n\t\t\t\t\t`const route=router.find('ws',p)\\n` +\n\t\t\t\t\t`if(route){` +\n\t\t\t\t\t`c.params=route.params\\n` +\n\t\t\t\t\t`if(route.store.handler)return route.store.handler(c)\\n` +\n\t\t\t\t\t`return (route.store.handler=route.store.compile())(c)` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`break` +\n\t\t\t\t\t`}` +\n\t\t\t\t\t`}`\n\t\t\t}\n\n\t\t\treturn fnLiteral\n\t\t},\n\t\terror404(hasEventHook, hasErrorHook) {\n\t\t\tlet findDynamicRoute = `if(route===null)return `\n\n\t\t\tif (hasErrorHook)\n\t\t\t\tfindDynamicRoute += `app.handleError(c,notFound,false,${this.parameters})`\n\t\t\telse\n\t\t\t\tfindDynamicRoute += hasEventHook\n\t\t\t\t\t? `new Response(error404Message,{` +\n\t\t\t\t\t\t`status:c.set.status===200?404:c.set.status,` +\n\t\t\t\t\t\t`headers:c.set.headers` +\n\t\t\t\t\t\t`})`\n\t\t\t\t\t: `error404.clone()`\n\n\t\t\treturn {\n\t\t\t\tdeclare: hasErrorHook\n\t\t\t\t\t? ''\n\t\t\t\t\t: `const error404Message=notFound.message.toString()\\n` +\n\t\t\t\t\t\t`const error404=new Response(error404Message,{status:404})\\n`,\n\t\t\t\tcode: findDynamicRoute\n\t\t\t}\n\t\t}\n\t},\n\tcomposeError: {\n\t\tmapResponseContext: '',\n\t\tvalidationError:\n\t\t\t`return new Response(` +\n\t\t\t`error.message,` +\n\t\t\t`{` +\n\t\t\t`headers:Object.assign(` +\n\t\t\t`{'content-type':'application/json'},` +\n\t\t\t`set.headers` +\n\t\t\t`),` +\n\t\t\t`status:set.status` +\n\t\t\t`}` +\n\t\t\t`)`,\n\t\tunknownError:\n\t\t\t`return new Response(` +\n\t\t\t`error.message,` +\n\t\t\t`{headers:set.headers,status:error.status??set.status??500}` +\n\t\t\t`)`\n\t},\n\tlisten() {\n\t\treturn () => {\n\t\t\tthrow new Error(\n\t\t\t\t'WebStandard does not support listen, you might want to export default Elysia.fetch instead'\n\t\t\t)\n\t\t}\n\t}\n}\n",
18
18
  "import type { AnyElysia } from '.'\n\nimport { Value } from '@sinclair/typebox/value'\nimport {\n\tKind,\n\tOptionalKind,\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\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 {\n\tcreateAccelerators,\n\tElysiaTypeCheck,\n\tgetCookieValidator\n} from './schema'\nimport { Sucrose, sucrose } from './sucrose'\nimport { parseCookie, type CookieOptions } from './cookies'\n\nimport type { TraceEvent } from './trace'\nimport type {\n\tComposedHandler,\n\tElysiaConfig,\n\tHandler,\n\tHookContainer,\n\tLifeCycleStore,\n\tSchemaValidator\n} from './types'\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\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 composeCleaner = ({\n\tschema,\n\tname,\n\ttype,\n\ttypeAlias = type,\n\tnormalize\n}: {\n\tschema: ElysiaTypeCheck<any>\n\tname: string\n\ttype: keyof SchemaValidator\n\ttypeAlias?: string\n\tnormalize: ElysiaConfig<''>['normalize']\n}) => {\n\tif (!normalize || !schema.Clean || schema.sucrose.hasAdditionalProperties)\n\t\treturn ''\n\n\tif (normalize === true || normalize === 'exactMirror')\n\t\treturn (\n\t\t\t`try{` +\n\t\t\t`${name}=validator.${typeAlias}.Clean(${name})\\n` +\n\t\t\t`}catch{` +\n\t\t\t(schema.sucrose.isOptional\n\t\t\t\t? ''\n\t\t\t\t: `throw new ValidationError('${type}',validator.${typeAlias},${name})`) +\n\t\t\t`}`\n\t\t)\n\n\tif (normalize === 'typebox')\n\t\treturn `${name}=validator.${typeAlias}.Clean(${name})\\n`\n\n\treturn ''\n}\n\nconst composeValidationFactory = ({\n\tinjectResponse = '',\n\tnormalize = false,\n\tvalidator,\n\tencodeSchema = false,\n\taccelerators,\n\tisStaticResponse = false\n}: {\n\tinjectResponse?: string\n\tnormalize?: ElysiaConfig<''>['normalize']\n\tvalidator: SchemaValidator\n\tencodeSchema?: boolean\n\taccelerators?: ReturnType<typeof createAccelerators>\n\tisStaticResponse?: 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\tif (isStaticResponse) return ''\n\n\t\tlet code = injectResponse + '\\n'\n\n\t\tif (accelerators) code += `let accelerate\\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`switch(c.set.status){`\n\n\t\tfor (const [status, value] of Object.entries(validator.response!)) {\n\t\t\tcode += `\\ncase ${status}:if(${name} instanceof Response)break\\n`\n\n\t\t\tconst noValidate = value.schema.noValidate === true\n\t\t\tconst withAccelerator =\n\t\t\t\taccelerators?.[+status] &&\n\t\t\t\t(value.schema.type === 'object' ||\n\t\t\t\t\tvalue.schema.type === 'array')\n\n\t\t\tif (!noValidate || (noValidate && !withAccelerator))\n\t\t\t\tcode += composeCleaner({\n\t\t\t\t\tname,\n\t\t\t\t\tschema: value,\n\t\t\t\t\ttype: 'response',\n\t\t\t\t\ttypeAlias: `response['${status}']`,\n\t\t\t\t\tnormalize\n\t\t\t\t})\n\n\t\t\t// Encode call TypeCheck.Check internally\n\t\t\tif (encodeSchema && value.sucrose.hasTransform)\n\t\t\t\tcode +=\n\t\t\t\t\t`try{` +\n\t\t\t\t\t`${name}=validator.response[${status}].Encode(${name})\\n` +\n\t\t\t\t\t`c.set.status=${status}` +\n\t\t\t\t\t`}catch{` +\n\t\t\t\t\t`throw new ValidationError('response',validator.response[${status}],${name})` +\n\t\t\t\t\t`}`\n\t\t\telse {\n\t\t\t\tif (!noValidate)\n\t\t\t\t\tcode +=\n\t\t\t\t\t\t`if(validator.response[${status}].Check(${name})===false){` +\n\t\t\t\t\t\t'c.set.status=422\\n' +\n\t\t\t\t\t\t`throw new ValidationError('response',validator.response[${status}],${name})` +\n\t\t\t\t\t\t'}' +\n\t\t\t\t\t\t`c.set.status=${status}\\n`\n\t\t\t}\n\n\t\t\tif (withAccelerator) code += `accelerate=accelerators[${status}]\\n`\n\n\t\t\tcode += 'break\\n'\n\t\t}\n\n\t\treturn code + '}'\n\t}\n})\n\nconst isAsyncName = (v: Function | HookContainer) => {\n\t// @ts-ignore\n\tconst fn = v?.fn ?? v\n\n\treturn fn.constructor.name === 'AsyncFunction'\n}\n\nconst matchResponseClone = /=>\\s?response\\.clone\\(/\nconst matchFnReturn = /(?:return|=>)\\s?\\S+\\(|a(?:sync|wait)/\n\nconst isAsync = (v: Function | HookContainer) => {\n\tconst isObject = typeof v === 'object'\n\n\tif (isObject && v.isAsync !== undefined) return v.isAsync\n\n\tconst fn = isObject ? v.fn : v\n\n\tif (fn.constructor.name === 'AsyncFunction') return true\n\n\tconst literal: string = fn.toString()\n\n\tif (matchResponseClone.test(literal)) {\n\t\tif (isObject) v.isAsync = false\n\n\t\treturn false\n\t}\n\n\tconst result = matchFnReturn.test(literal)\n\n\tif (isObject) v.isAsync = result\n\n\treturn result\n}\n\nconst hasReturn = (v: string | HookContainer<any> | Function) => {\n\tconst isObject = typeof v === 'object'\n\n\tif (isObject && v.hasReturn !== undefined) return v.hasReturn\n\n\tconst fnLiteral = isObject\n\t\t? v.fn.toString()\n\t\t: typeof v === 'string'\n\t\t\t? v.toString()\n\t\t\t: v\n\n\tconst parenthesisEnd = fnLiteral.indexOf(')')\n\n\t// Is direct arrow function return eg. () => 1\n\tif (\n\t\tfnLiteral.charCodeAt(parenthesisEnd + 2) === 61 &&\n\t\tfnLiteral.charCodeAt(parenthesisEnd + 5) !== 123\n\t) {\n\t\tif (isObject) v.hasReturn = true\n\n\t\treturn true\n\t}\n\n\tconst result = fnLiteral.includes('return')\n\n\tif (isObject) v.hasReturn = result\n\n\treturn result\n}\n\nconst 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 jsonAccelerator =\n\t\t(app.config.jsonAccelerator ?? true) && validator.response\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\t!!validator.headers ||\n\t\t(adapter.preferWebstandardHeaders !== true && inference.body)\n\n\tconst hasCookie = inference.cookie || !!validator.cookie\n\n\t// ! Get latest app.config.cookie\n\tconst cookieValidator = getCookieValidator({\n\t\t// @ts-expect-error private property\n\t\tmodules: app.definitions.typebox,\n\t\tvalidator: validator.cookie as any,\n\t\tdefaultConfig: app.config.cookie,\n\t\tdynamic: !!app.config.aot,\n\t\tconfig: validator.cookie?.config ?? {},\n\t\t// @ts-expect-error\n\t\tmodels: app.definitions.type\n\t})!\n\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.encodeSchema\n\tconst accelerators = jsonAccelerator\n\t\t? createAccelerators(validator.response!)\n\t\t: undefined\n\n\tconst { composeValidation, composeResponseValidation } =\n\t\tcomposeValidationFactory({\n\t\t\tnormalize,\n\t\t\tvalidator,\n\t\t\tencodeSchema,\n\t\t\taccelerators,\n\t\t\tisStaticResponse: handler instanceof Response\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\tif (validator.query && validator.query.schema.type === 'object') {\n\t\t\tconst properties = validator.query.schema.properties\n\n\t\t\tif (!validator.query.sucrose.hasAdditionalProperties)\n\t\t\t\tfor (const [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\tOptionalKind 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\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(x: TSchema) =>\n\t\t\t\t\t\t\t\t\tx.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 responseKeys = Object.keys(validator.response ?? {})\n\tconst hasMultipleResponses = responseKeys.length > 1\n\tconst hasSingle200 =\n\t\tresponseKeys.length === 0 ||\n\t\t(responseKeys.length === 1 && responseKeys[0] === '200')\n\n\tconst hasSet =\n\t\tinference.cookie ||\n\t\tinference.set ||\n\t\thasHeaders ||\n\t\thasTrace ||\n\t\thasMultipleResponses ||\n\t\t!hasSingle200 ||\n\t\t(isHandleFn && hasDefaultHeaders) ||\n\t\tmaybeStream\n\n\tconst mapResponseContext = adapter.mapResponseContext\n\t\t? `,${adapter.mapResponseContext}`\n\t\t: ''\n\n\tconst mapAccelerate = (response = 'r', compact = false) =>\n\t\tjsonAccelerator\n\t\t\t? (saveResponse ? `${saveResponse}${response}\\n` : '') +\n\t\t\t\t`if(accelerate){\\n` +\n\t\t\t\t`c.set.headers['content-type']='application/json'\\n` +\n\t\t\t\t(compact\n\t\t\t\t\t? `return mapCompactResponse(accelerate(${response})${mapResponseContext})}\\n`\n\t\t\t\t\t: `return mapResponse(accelerate(${response}),c.set${mapResponseContext})}\\n`)\n\t\t\t: ''\n\n\tif (hasTrace || 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 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\tconst isOptionalBody = !!validator.body?.sucrose.isOptional\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\tconst isOptionalBody =\n\t\t\t\t\t\t\t!!validator.body?.sucrose.isOptional\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\tconst isOptionalBody = !!validator.body?.sucrose.isOptional\n\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\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 (validator.headers.sucrose.hasDefault)\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\tfnLiteral += composeCleaner({\n\t\t\t\tname: 'c.headers',\n\t\t\t\tschema: validator.headers,\n\t\t\t\ttype: 'headers',\n\t\t\t\tnormalize\n\t\t\t})\n\n\t\t\tif (validator.headers.sucrose.isOptional)\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.headers)){`\n\n\t\t\tif (validator.body?.schema.noValidate !== true)\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(validator.headers.Check(c.headers) === false){` +\n\t\t\t\t\tcomposeValidation('headers') +\n\t\t\t\t\t'}'\n\n\t\t\tif (validator.headers.sucrose.hasTransform)\n\t\t\t\tfnLiteral += `c.headers=validator.headers.Decode(c.headers)\\n`\n\n\t\t\tif (validator.headers.sucrose.isOptional) fnLiteral += '}'\n\t\t}\n\n\t\tif (validator.params) {\n\t\t\tif (validator.params.sucrose.hasDefault)\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\tif (validator.params?.schema.noValidate !== true)\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(validator.params.Check(c.params)===false){` +\n\t\t\t\t\tcomposeValidation('params') +\n\t\t\t\t\t'}'\n\n\t\t\tif (validator.params.sucrose.hasTransform)\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 (validator.query.sucrose.hasDefault)\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\n\t\t\t\t\tfnLiteral += composeCleaner({\n\t\t\t\t\t\tname: 'c.query',\n\t\t\t\t\t\tschema: validator.query,\n\t\t\t\t\t\ttype: 'query',\n\t\t\t\t\t\tnormalize\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\tif (validator.query.sucrose.isOptional)\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.query)){`\n\n\t\t\tif (validator.query?.schema.noValidate !== true)\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(validator.query.Check(c.query)===false){` +\n\t\t\t\t\tcomposeValidation('query') +\n\t\t\t\t\t`}`\n\n\t\t\tif (validator.query.sucrose.hasTransform)\n\t\t\t\tfnLiteral += `c.query=validator.query.Decode(Object.assign({},c.query))\\n`\n\n\t\t\tif (validator.query.sucrose.isOptional) fnLiteral += `}`\n\t\t}\n\n\t\tif (validator.body) {\n\t\t\tif (\n\t\t\t\tvalidator.body.sucrose.hasTransform ||\n\t\t\t\tvalidator.body.sucrose.isOptional\n\t\t\t)\n\t\t\t\tfnLiteral += `const isNotEmptyObject=c.body&&(typeof c.body===\"object\"&&isNotEmpty(c.body))\\n`\n\n\t\t\tif (validator.body.sucrose.hasDefault) {\n\t\t\t\tconst value = Value.Default(\n\t\t\t\t\tvalidator.body.schema,\n\t\t\t\t\tvalidator.body.schema.type === 'object' ||\n\t\t\t\t\t\t(validator.body.schema[Kind] === 'Import' &&\n\t\t\t\t\t\t\tvalidator.body.schema.$defs[\n\t\t\t\t\t\t\t\tvalidator.body.schema.$ref\n\t\t\t\t\t\t\t][Kind] === 'Object')\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: 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\tif (value !== undefined && value !== null) {\n\t\t\t\t\tif (typeof value === 'object')\n\t\t\t\t\t\tfnLiteral += `c.body=Object.assign(${parsed},c.body)\\n`\n\t\t\t\t\telse fnLiteral += `c.body=${parsed}\\n`\n\t\t\t\t}\n\n\t\t\t\tfnLiteral += composeCleaner({\n\t\t\t\t\tname: 'c.body',\n\t\t\t\t\tschema: validator.body,\n\t\t\t\t\ttype: 'body',\n\t\t\t\t\tnormalize\n\t\t\t\t})\n\n\t\t\t\tif (validator.body?.schema.noValidate !== true) {\n\t\t\t\t\tif (validator.body.sucrose.isOptional)\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`if(isNotEmptyObject&&validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t\t'}'\n\t\t\t\t\telse\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t\t`}`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfnLiteral += composeCleaner({\n\t\t\t\t\tname: 'c.body',\n\t\t\t\t\tschema: validator.body,\n\t\t\t\t\ttype: 'body',\n\t\t\t\t\tnormalize\n\t\t\t\t})\n\n\t\t\t\tif (validator.body?.schema.noValidate !== true) {\n\t\t\t\t\tif (validator.body.sucrose.isOptional)\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`if(isNotEmptyObject&&validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t\t'}'\n\t\t\t\t\telse\n\t\t\t\t\t\tfnLiteral +=\n\t\t\t\t\t\t\t`if(validator.body.Check(c.body)===false){` +\n\t\t\t\t\t\t\tcomposeValidation('body') +\n\t\t\t\t\t\t\t'}'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (validator.body.sucrose.hasTransform)\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\tcookieValidator.schema.properties ??\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 (cookieValidator.sucrose.hasDefault)\n\t\t\t\tfor (const [key, value] of Object.entries(\n\t\t\t\t\tValue.Default(cookieValidator.schema, {}) 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 (cookieValidator.sucrose.isOptional)\n\t\t\t\tfnLiteral += `if(isNotEmpty(c.cookie)){`\n\n\t\t\tif (validator.body?.schema.noValidate !== true) {\n\t\t\t\tfnLiteral +=\n\t\t\t\t\t`if(validator.cookie.Check(cookieValue)===false){` +\n\t\t\t\t\tcomposeValidation('cookie', 'cookieValue') +\n\t\t\t\t\t'}'\n\t\t\t}\n\n\t\t\tif (cookieValidator.sucrose.hasTransform)\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 (cookieValidator.sucrose.isOptional) 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\tfnLiteral += mapAccelerate('r', !hasSet)\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 += mapAccelerate()\n\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\t} else {\n\t\t\t\tfnLiteral += mapAccelerate('r', true)\n\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}r${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\t}\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\t\t\tfnLiteral += mapAccelerate('r', !hasSet)\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 += mapAccelerate(handled)\n\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\t} else {\n\t\t\t\tfnLiteral += mapAccelerate(handled, true)\n\n\t\t\t\tfnLiteral += `return mapCompactResponse(${saveResponse}${handled}${\n\t\t\t\t\tmapResponseContext\n\t\t\t\t})\\n`\n\t\t\t}\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\tallocateIf('accelerators,', jsonAccelerator) +\n\t\tadapterVariables +\n\t\tallocateIf('TypeBoxError', hasValidation) +\n\t\t`}=hooks\\n` +\n\t\t`const trace=e.trace\\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\taccelerators,\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 createOnRequestHandler = (\n\tapp: AnyElysia,\n\taddFn?: (word: string) => void\n) => {\n\tlet fnLiteral = ''\n\n\tconst report = createReport({\n\t\ttrace: app.event.trace,\n\t\taddFn:\n\t\t\taddFn ??\n\t\t\t((word) => {\n\t\t\t\tfnLiteral += word\n\t\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\treturn fnLiteral\n}\n\nexport const createHoc = (app: AnyElysia, fnName = 'map') => {\n\t// @ts-expect-error private property\n\tconst hoc = app.extender.higherOrderFunctions\n\n\tif (!hoc.length) return 'return ' + fnName\n\n\tconst adapter = app['~adapter'].composeGeneralHandler\n\n\tlet handler = fnName\n\n\tfor (let i = 0; i < hoc.length; i++)\n\t\thandler = `hoc[${i}](${handler},${adapter.parameters})`\n\n\treturn `return function hocMap(${adapter.parameters}){return ${handler}(${adapter.parameters})}`\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\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\tfnLiteral += createOnRequestHandler(app)\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\tfnLiteral += createHoc(app)\n\n\t// @ts-expect-error private property\n\tapp.handleError = composeErrorHandler(app) as any\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\t// @ts-expect-error private property\n\t\thandleError: app.handleError,\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",
19
19
  "/**\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",
20
20
  "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",
21
21
  "/* eslint-disable sonarjs/no-duplicate-string */\nimport {\n\tKind,\n\tOptionalKind,\n\tTModule,\n\tTObject,\n\tTransformKind,\n\tTSchema,\n\ttype TAnySchema\n} from '@sinclair/typebox'\nimport { Value } from '@sinclair/typebox/value'\nimport { TypeCompiler } from '@sinclair/typebox/compiler'\n\nimport { createAccelerator } from 'json-accelerator'\nimport { createMirror } from 'exact-mirror'\n\nimport { t, type TypeCheck } from './type-system'\n\nimport { isNotEmpty, mergeCookie, randomId } from './utils'\nimport { mapValueError } from './error'\n\nimport type { CookieOptions } from './cookies'\nimport type {\n\tElysiaConfig,\n\tInputSchema,\n\tMaybeArray,\n\tStandaloneInputSchema\n} from './types'\n\ntype MapValueError = ReturnType<typeof mapValueError>\n\nexport interface ElysiaTypeCheck<T extends TSchema>\n\textends Omit<TypeCheck<T>, 'schema'> {\n\tschema: T\n\tconfig: Object\n\tClean?(v: unknown): T\n\tparse(v: unknown): T\n\tsafeParse(v: unknown):\n\t\t| { success: true; data: T; error: null }\n\t\t| {\n\t\t\t\tsuccess: false\n\t\t\t\tdata: null\n\t\t\t\terror: string | undefined\n\t\t\t\terrors: MapValueError[]\n\t\t }\n\tsucrose: {\n\t\thasAdditionalProperties: boolean\n\t\t'~hasAdditionalProperties'?: boolean\n\t\thasDefault: boolean\n\t\t'~hasDefault'?: boolean\n\t\tisOptional: boolean\n\t\t'~isOptional'?: boolean\n\t\thasTransform: boolean\n\t\t'~hasTransform'?: boolean\n\t\thasRef: boolean\n\t\t'~hasRef'?: boolean\n\t}\n}\n\nexport const isOptional = (\n\tschema?: TSchema | TypeCheck<any> | ElysiaTypeCheck<any>\n) => {\n\tif (!schema) return false\n\n\t// @ts-expect-error private property\n\tif (schema?.[Kind] === 'Import' && schema.References)\n\t\treturn schema.References().some(isOptional as any)\n\n\t// @ts-expect-error private property\n\tif (schema.schema)\n\t\t// @ts-expect-error private property\n\t\tschema = schema.schema\n\n\treturn !!schema && OptionalKind in schema\n}\n\nexport const hasAdditionalProperties = (\n\t_schema: TAnySchema | TypeCheck<any> | ElysiaTypeCheck<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\tif (schema[Kind] === 'Import' && _schema.References)\n\t\treturn _schema.References().some(hasAdditionalProperties)\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\nexport const hasType = (type: string, schema: TAnySchema) => {\n\tif (!schema) return\n\n\tif (Kind in schema && schema[Kind] === 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 (Kind in property && property[Kind] === type) return true\n\t\t}\n\n\t\treturn false\n\t}\n\n\treturn (\n\t\tschema.properties &&\n\t\tKind in schema.properties &&\n\t\tschema.properties[Kind] === type\n\t)\n}\n\nexport const hasProperty = (\n\texpectedProperty: string,\n\t_schema: TAnySchema | TypeCheck<any> | ElysiaTypeCheck<any>\n) => {\n\tif (!_schema) return\n\n\t// @ts-expect-error private property\n\tconst schema = _schema.schema ?? _schema\n\n\tif (schema[Kind] === 'Import' && _schema.References)\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\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 TransformKind in schema\n}\n\ninterface ReplaceSchemaTypeOptions {\n\tfrom: TSchema\n\tto(options: Object): TSchema | null\n\texcludeRoot?: boolean\n\trootOnly?: boolean\n\toriginal?: TAnySchema\n\t/**\n\t * Traverse until object is found except root object\n\t **/\n\tuntilObjectFound?: boolean\n}\n\ninterface ReplaceSchemaTypeConfig {\n\troot: boolean\n\tdefinitions?: Record<string, TSchema> | undefined\n}\n\nexport const replaceSchemaType = (\n\tschema: TSchema,\n\toptions: MaybeArray<ReplaceSchemaTypeOptions>,\n\t_config: Partial<Omit<ReplaceSchemaTypeConfig, 'root'>> = {}\n) => {\n\tconst config = _config as ReplaceSchemaTypeConfig\n\tconfig.root = true\n\n\t// if (schema.$defs)\n\t// \tconfig.definitions = {\n\t// \t\t...config.definitions,\n\t// \t\t...schema.$defs\n\t// \t}\n\n\t// const corceDefinitions = (option: ReplaceSchemaTypeOptions) => {\n\t// \tif (!config.definitions) return\n\n\t// \tfor (const [key, value] of Object.entries(config.definitions)) {\n\t// \t\tconst fromSymbol = option.from[Kind]\n\n\t// \t\tif (fromSymbol === 'Ref') continue\n\n\t// \t\tconfig.definitions[key] = _replaceSchemaType(value, option, config)\n\t// \t}\n\t// }\n\n\tif (!Array.isArray(options)) {\n\t\toptions.original = schema\n\n\t\t// corceDefinitions(options)\n\n\t\treturn _replaceSchemaType(schema, options, config)\n\t}\n\n\tfor (const option of options) {\n\t\toption.original = schema\n\n\t\t// corceDefinitions(option)\n\n\t\tschema = _replaceSchemaType(schema, option, config)\n\t}\n\n\treturn schema\n}\n\nconst _replaceSchemaType = (\n\tschema: TSchema,\n\toptions: ReplaceSchemaTypeOptions,\n\tconfig: ReplaceSchemaTypeConfig\n): TSchema => {\n\tif (!schema) return schema\n\n\tconst root = config.root\n\n\tif (options.untilObjectFound && !root && schema.type === 'object')\n\t\treturn schema\n\n\tconst fromSymbol = options.from[Kind]\n\n\t// if (schema.$ref) {\n\t// \tif (schema.$defs && schema.$ref in schema.$defs) {\n\t// \t\tconst definitions: Record<string, TSchema> = {}\n\n\t// \t\tfor (const [key, value] of Object.entries(schema.$defs))\n\t// \t\t\tdefinitions[key] = _replaceSchemaType(\n\t// \t\t\t\tvalue as TSchema,\n\t// \t\t\t\toptions,\n\t// \t\t\t\tconfig\n\t// \t\t\t)\n\n\t// \t\tconfig.definitions = { ...config.definitions, ...definitions }\n\t// \t}\n\n\t// \treturn schema\n\t// }\n\n\tif (schema.oneOf) {\n\t\tfor (let i = 0; i < schema.oneOf.length; i++)\n\t\t\tschema.oneOf[i] = _replaceSchemaType(\n\t\t\t\tschema.oneOf[i],\n\t\t\t\toptions,\n\t\t\t\tconfig\n\t\t\t)\n\n\t\treturn schema\n\t}\n\n\tif (schema.anyOf) {\n\t\tfor (let i = 0; i < schema.anyOf.length; i++)\n\t\t\tschema.anyOf[i] = _replaceSchemaType(\n\t\t\t\tschema.anyOf[i],\n\t\t\t\toptions,\n\t\t\t\tconfig\n\t\t\t)\n\n\t\treturn schema\n\t}\n\n\tif (schema.allOf) {\n\t\tfor (let i = 0; i < schema.allOf.length; i++)\n\t\t\tschema.allOf[i] = _replaceSchemaType(\n\t\t\t\tschema.allOf[i],\n\t\t\t\toptions,\n\t\t\t\tconfig\n\t\t\t)\n\n\t\treturn schema\n\t}\n\n\tif (schema.not) return _replaceSchemaType(schema.not, options, config)\n\n\tconst isRoot = root && !!options.excludeRoot\n\n\tif (schema[Kind] === fromSymbol) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tconst { anyOf, oneOf, allOf, not, properties, items, ...rest } = schema\n\n\t\tconst to = options.to(rest)\n\n\t\tif (!to) return schema\n\n\t\t// If t.Transform is used, we need to re-calculate Encode, Decode\n\t\tlet transform\n\n\t\tconst composeProperties = (schema: TSchema) => {\n\t\t\tconst v = _composeProperties(schema)\n\n\t\t\t// $id is removed because it's used in Union inside an Import\n\t\t\tif (v.$id) delete v.$id\n\n\t\t\treturn v\n\t\t}\n\n\t\tconst _composeProperties = (v: TSchema) => {\n\t\t\tif (properties && v.type === 'object') {\n\t\t\t\tconst newProperties = <Record<string, unknown>>{}\n\t\t\t\tfor (const [key, value] of Object.entries(properties))\n\t\t\t\t\tnewProperties[key] = _replaceSchemaType(\n\t\t\t\t\t\tvalue as TSchema,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\troot: false\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\t...v,\n\t\t\t\t\tproperties: newProperties\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (items && v.type === 'array')\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\t...v,\n\t\t\t\t\titems: _replaceSchemaType(items, options, {\n\t\t\t\t\t\t...config,\n\t\t\t\t\t\troot: false\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\tconst value = {\n\t\t\t\t...rest,\n\t\t\t\t...v\n\t\t\t}\n\n\t\t\t// Remove required as it's not object\n\t\t\tdelete value['required']\n\n\t\t\t// Create default value for ObjectString\n\t\t\tif (\n\t\t\t\tproperties &&\n\t\t\t\tv.type === 'string' &&\n\t\t\t\tv.format === 'ObjectString' &&\n\t\t\t\tv.default === '{}'\n\t\t\t) {\n\t\t\t\ttransform = t.ObjectString(properties, rest)\n\t\t\t\tvalue.default = JSON.stringify(\n\t\t\t\t\tValue.Create(t.Object(properties))\n\t\t\t\t)\n\t\t\t\tvalue.properties = properties\n\t\t\t}\n\n\t\t\t// Create default value for ArrayString\n\t\t\tif (\n\t\t\t\titems &&\n\t\t\t\tv.type === 'string' &&\n\t\t\t\tv.format === 'ArrayString' &&\n\t\t\t\tv.default === '[]'\n\t\t\t) {\n\t\t\t\ttransform = t.ArrayString(items, rest)\n\t\t\t\tvalue.default = JSON.stringify(Value.Create(t.Array(items)))\n\t\t\t\tvalue.items = items\n\t\t\t}\n\n\t\t\treturn value\n\t\t}\n\n\t\tif (isRoot) {\n\t\t\tif (properties) {\n\t\t\t\tconst newProperties = <Record<string, unknown>>{}\n\t\t\t\tfor (const [key, value] of Object.entries(properties))\n\t\t\t\t\tnewProperties[key] = _replaceSchemaType(\n\t\t\t\t\t\tvalue as TSchema,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\troot: false\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\tproperties: newProperties\n\t\t\t\t}\n\t\t\t} else if (items?.map)\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\titems: items.map((v: TSchema) =>\n\t\t\t\t\t\t_replaceSchemaType(v, options, {\n\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\troot: false\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\treturn rest\n\t\t}\n\n\t\tif (to.anyOf)\n\t\t\tfor (let i = 0; i < to.anyOf.length; i++)\n\t\t\t\tto.anyOf[i] = composeProperties(to.anyOf[i])\n\t\telse if (to.oneOf)\n\t\t\tfor (let i = 0; i < to.oneOf.length; i++)\n\t\t\t\tto.oneOf[i] = composeProperties(to.oneOf[i])\n\t\telse if (to.allOf)\n\t\t\tfor (let i = 0; i < to.allOf.length; i++)\n\t\t\t\tto.allOf[i] = composeProperties(to.allOf[i])\n\t\telse if (to.not) to.not = composeProperties(to.not)\n\n\t\tif (transform) to[TransformKind as any] = transform[TransformKind]\n\n\t\tif (to.anyOf || to.oneOf || to.allOf || to.not) return to\n\n\t\tif (properties) {\n\t\t\tconst newProperties = <Record<string, unknown>>{}\n\t\t\tfor (const [key, value] of Object.entries(properties))\n\t\t\t\tnewProperties[key] = _replaceSchemaType(\n\t\t\t\t\tvalue as TSchema,\n\t\t\t\t\toptions,\n\t\t\t\t\t{\n\t\t\t\t\t\t...config,\n\t\t\t\t\t\troot: false\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\treturn {\n\t\t\t\t...rest,\n\t\t\t\t...to,\n\t\t\t\tproperties: newProperties\n\t\t\t}\n\t\t} else if (items?.map)\n\t\t\treturn {\n\t\t\t\t...rest,\n\t\t\t\t...to,\n\t\t\t\titems: items.map((v: TSchema) =>\n\t\t\t\t\t_replaceSchemaType(v, options, {\n\t\t\t\t\t\t...config,\n\t\t\t\t\t\troot: false\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t}\n\n\t\treturn {\n\t\t\t...rest,\n\t\t\t...to\n\t\t}\n\t}\n\n\tconst properties = schema?.properties as Record<string, TSchema>\n\n\tif (properties && root && options.rootOnly !== true)\n\t\tfor (const [key, value] of Object.entries(properties)) {\n\t\t\tswitch (value[Kind]) {\n\t\t\t\tcase fromSymbol:\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\tconst { anyOf, oneOf, allOf, not, type, ...rest } = value\n\t\t\t\t\tconst to = options.to(rest)\n\n\t\t\t\t\tif (!to) return schema\n\n\t\t\t\t\tif (to.anyOf)\n\t\t\t\t\t\tfor (let i = 0; i < to.anyOf.length; i++)\n\t\t\t\t\t\t\tto.anyOf[i] = { ...rest, ...to.anyOf[i] }\n\t\t\t\t\telse if (to.oneOf)\n\t\t\t\t\t\tfor (let i = 0; i < to.oneOf.length; i++)\n\t\t\t\t\t\t\tto.oneOf[i] = { ...rest, ...to.oneOf[i] }\n\t\t\t\t\telse if (to.allOf)\n\t\t\t\t\t\tfor (let i = 0; i < to.allOf.length; i++)\n\t\t\t\t\t\t\tto.allOf[i] = { ...rest, ...to.allOf[i] }\n\t\t\t\t\telse if (to.not) to.not = { ...rest, ...to.not }\n\n\t\t\t\t\tproperties[key] = {\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\t..._replaceSchemaType(rest, options, {\n\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\troot: false\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\n\t\t\t\tcase 'Object':\n\t\t\t\tcase 'Union':\n\t\t\t\t\tproperties[key] = _replaceSchemaType(value, options, {\n\t\t\t\t\t\t...config,\n\t\t\t\t\t\troot: false\n\t\t\t\t\t})\n\t\t\t\t\tbreak\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (Array.isArray(value.items)) {\n\t\t\t\t\t\tfor (let i = 0; i < value.items.length; i++) {\n\t\t\t\t\t\t\tvalue.items[i] = _replaceSchemaType(\n\t\t\t\t\t\t\t\tvalue.items[i],\n\t\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\t\t\troot: false\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} else if (\n\t\t\t\t\t\tvalue.anyOf ||\n\t\t\t\t\t\tvalue.oneOf ||\n\t\t\t\t\t\tvalue.allOf ||\n\t\t\t\t\t\tvalue.not\n\t\t\t\t\t)\n\t\t\t\t\t\tproperties[key] = _replaceSchemaType(value, options, {\n\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\troot: false\n\t\t\t\t\t\t})\n\t\t\t\t\telse if (value.type === 'array') {\n\t\t\t\t\t\tvalue.items = _replaceSchemaType(value.items, options, {\n\t\t\t\t\t\t\t...config,\n\t\t\t\t\t\t\troot: false\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\treturn schema\n}\n\n// const unwrapImport = (schema: TImport<any, any>) => {\n// \tif (\n// \t\t!schema ||\n// \t\t!schema.$defs ||\n// \t\t!schema.$ref ||\n// \t\t!(schema.$ref in schema.$defs)\n// \t)\n// \t\treturn schema\n\n// \treturn schema.$defs[schema.$ref]\n// }\n\nconst createCleaner = (schema: TAnySchema) => (value: unknown) => {\n\tif (typeof value === 'object')\n\t\ttry {\n\t\t\treturn Value.Clean(schema, structuredClone(value))\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\treturn Value.Clean(schema, value)\n\t\t\t} catch {\n\t\t\t\treturn value\n\t\t\t}\n\t\t}\n\n\treturn value\n}\n\nconst caches = <Record<string, ElysiaTypeCheck<any>>>{}\n\nexport const getSchemaValidator = <T extends TSchema | string | undefined>(\n\ts: T,\n\t{\n\t\tmodels = {},\n\t\tdynamic = false,\n\t\tmodules,\n\t\tnormalize = false,\n\t\tadditionalProperties = false,\n\t\tcoerce = false,\n\t\tadditionalCoerce = [],\n\t\tvalidators\n\t}: {\n\t\tmodels?: Record<string, TSchema>\n\t\tmodules: TModule<any, any>\n\t\tadditionalProperties?: boolean\n\t\tdynamic?: boolean\n\t\tnormalize?: ElysiaConfig<''>['normalize']\n\t\tcoerce?: boolean\n\t\tadditionalCoerce?: MaybeArray<ReplaceSchemaTypeOptions>\n\t\tvalidators?: InputSchema['body'][]\n\t} = {\n\t\tmodules: t.Module({})\n\t}\n): T extends TSchema ? ElysiaTypeCheck<TSchema> : undefined => {\n\tvalidators = validators?.filter((x) => x)\n\n\tif (!s) {\n\t\tif (!validators?.length) return undefined as any\n\n\t\ts = validators[0] as any\n\t\tvalidators = validators.slice(1)\n\t}\n\n\tlet doesHaveRef: boolean | undefined = undefined\n\n\tconst replaceSchema = (schema: TAnySchema): TAnySchema => {\n\t\tif (coerce)\n\t\t\treturn replaceSchemaType(schema, [\n\t\t\t\t{\n\t\t\t\t\tfrom: t.Number(),\n\t\t\t\t\tto: (options) => t.Numeric(options),\n\t\t\t\t\tuntilObjectFound: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tfrom: t.Boolean(),\n\t\t\t\t\tto: (options) => t.BooleanString(options),\n\t\t\t\t\tuntilObjectFound: true\n\t\t\t\t},\n\t\t\t\t...(Array.isArray(additionalCoerce)\n\t\t\t\t\t? additionalCoerce\n\t\t\t\t\t: [additionalCoerce])\n\t\t\t])\n\n\t\treturn replaceSchemaType(schema, additionalCoerce)\n\t}\n\n\tconst mapSchema = (s: string | TSchema | undefined): TSchema => {\n\t\tlet schema: TSchema\n\n\t\tif (!s) return undefined as any\n\n\t\tif (typeof s !== 'string') schema = s\n\t\telse {\n\t\t\tif (s in caches) return caches[s] as any\n\n\t\t\tconst isArray = s.endsWith('[]')\n\t\t\tconst key = isArray ? s.substring(0, s.length - 2) : s\n\n\t\t\tschema =\n\t\t\t\t(modules as TModule<{}, {}>).Import(key as never) ?? models[key]\n\n\t\t\tif (isArray) schema = t.Array(schema)\n\t\t}\n\n\t\tif (!schema) return undefined as any\n\n\t\tlet _doesHaveRef: boolean\n\t\tif (schema[Kind] !== 'Import' && (_doesHaveRef = hasRef(schema))) {\n\t\t\tconst id = randomId()\n\n\t\t\tif (doesHaveRef === undefined) doesHaveRef = _doesHaveRef\n\n\t\t\tconst model: any = t.Module({\n\t\t\t\t// @ts-expect-error private property\n\t\t\t\t...modules.$defs,\n\t\t\t\t[id]: schema\n\t\t\t})\n\n\t\t\tschema = model.Import(id)\n\t\t}\n\n\t\tif (schema[Kind] === 'Import') {\n\t\t\tconst newDefs: Record<string, TSchema> = {}\n\n\t\t\tfor (const [key, value] of Object.entries(schema.$defs))\n\t\t\t\tnewDefs[key] = replaceSchema(value as TSchema)\n\n\t\t\tconst key = schema.$ref\n\t\t\tschema = t.Module(newDefs).Import(key)\n\t\t} else if (coerce || additionalCoerce) schema = replaceSchema(schema)\n\n\t\treturn schema\n\t}\n\n\tlet schema = mapSchema(s)\n\n\tif (validators?.length) {\n\t\tlet hasAdditional = false\n\n\t\tconst { schema: mergedObjectSchema, notObjects } = mergeObjectSchemas([\n\t\t\tschema,\n\t\t\t...validators.map(mapSchema)\n\t\t])\n\n\t\tif (notObjects) {\n\t\t\tschema = t.Intersect([\n\t\t\t\t...(mergedObjectSchema ? [mergedObjectSchema] : []),\n\t\t\t\t...notObjects.map((x) => {\n\t\t\t\t\tconst schema = mapSchema(x)\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tschema.type === 'object' &&\n\t\t\t\t\t\t'additionalProperties' in schema\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!hasAdditional &&\n\t\t\t\t\t\t\tschema.additionalProperties === false\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thasAdditional = true\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdelete schema.additionalProperties\n\t\t\t\t\t}\n\n\t\t\t\t\treturn schema\n\t\t\t\t})\n\t\t\t])\n\n\t\t\tif (schema.type === 'object' && hasAdditional)\n\t\t\t\tschema.additionalProperties = false\n\t\t}\n\t} else {\n\t\t// console.log(\"A\", schema)\n\n\t\tif (\n\t\t\tschema.type === 'object' &&\n\t\t\t'additionalProperties' in schema === false\n\t\t)\n\t\t\tschema.additionalProperties = additionalProperties\n\t}\n\n\tif (dynamic) {\n\t\tconst validator: ElysiaTypeCheck<any> = {\n\t\t\tschema,\n\t\t\treferences: '',\n\t\t\tcheckFunc: () => {},\n\t\t\tcode: '',\n\t\t\t// @ts-expect-error\n\t\t\tCheck: (value: unknown) => Value.Check(schema, value),\n\t\t\tErrors: (value: unknown) => Value.Errors(schema, value),\n\t\t\tCode: () => '',\n\t\t\tClean: createCleaner(schema),\n\t\t\tDecode: (value: unknown) => Value.Decode(schema, value),\n\t\t\tEncode: (value: unknown) => Value.Encode(schema, value),\n\t\t\tsucrose: {\n\t\t\t\tget hasAdditionalProperties() {\n\t\t\t\t\tif ('~hasAdditionalProperties' in this)\n\t\t\t\t\t\treturn this['~hasAdditionalProperties']\n\n\t\t\t\t\treturn (this['~hasAdditionalProperties'] =\n\t\t\t\t\t\thasAdditionalProperties(schema))\n\t\t\t\t},\n\t\t\t\tget hasDefault() {\n\t\t\t\t\tif ('~hasDefault' in this) return this['~hasDefault']\n\n\t\t\t\t\treturn (this['~hasDefault'] = hasProperty(\n\t\t\t\t\t\t'default',\n\t\t\t\t\t\tschema\n\t\t\t\t\t))\n\t\t\t\t},\n\t\t\t\tget isOptional() {\n\t\t\t\t\tif ('~isOptional' in this) return this['~isOptional']!\n\n\t\t\t\t\treturn (this['~isOptional'] = isOptional(schema))\n\t\t\t\t},\n\t\t\t\tget hasTransform() {\n\t\t\t\t\tif ('~hasTransform' in this) return this['~hasTransform']!\n\n\t\t\t\t\treturn (this['~hasTransform'] = hasTransform(schema))\n\t\t\t\t},\n\t\t\t\t'~hasRef': doesHaveRef,\n\t\t\t\tget hasRef() {\n\t\t\t\t\tif ('~hasRef' in this) return this['~hasRef']!\n\n\t\t\t\t\treturn (this['~hasRef'] = hasTransform(schema))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (schema.config) {\n\t\t\tvalidator.config = schema.config\n\n\t\t\tif (validator?.schema?.config) delete validator.schema.config\n\t\t}\n\n\t\tif (normalize && schema.additionalProperties === false) {\n\t\t\tif (normalize === true || normalize === 'exactMirror') {\n\t\t\t\ttry {\n\t\t\t\t\tvalidator.Clean = createMirror(schema, {\n\t\t\t\t\t\tTypeCompiler\n\t\t\t\t\t})\n\t\t\t\t} catch {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Failed to create exactMirror. Please report the following code to https://github.com/elysiajs/elysia/issues'\n\t\t\t\t\t)\n\t\t\t\t\tconsole.warn(schema)\n\t\t\t\t\tvalidator.Clean = createCleaner(schema)\n\t\t\t\t}\n\t\t\t} else validator.Clean = createCleaner(schema)\n\t\t}\n\n\t\tvalidator.parse = (v) => {\n\t\t\ttry {\n\t\t\t\treturn validator.Decode(v)\n\t\t\t} catch (error) {\n\t\t\t\tthrow [...validator.Errors(v)].map(mapValueError)\n\t\t\t}\n\t\t}\n\n\t\tvalidator.safeParse = (v) => {\n\t\t\ttry {\n\t\t\t\treturn { success: true, data: validator.Decode(v), error: null }\n\t\t\t} catch (error) {\n\t\t\t\tconst errors = [...compiled.Errors(v)].map(mapValueError)\n\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: errors[0]?.summary,\n\t\t\t\t\terrors\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if (cacheKey) caches[cacheKey] = validator\n\n\t\treturn validator as any\n\t}\n\n\tconst compiled = TypeCompiler.Compile(\n\t\tschema,\n\t\tObject.values(models)\n\t) as any as ElysiaTypeCheck<any>\n\n\tif (schema.config) {\n\t\tcompiled.config = schema.config\n\n\t\tif (compiled?.schema?.config) delete compiled.schema.config\n\t}\n\n\tif (normalize === true || normalize === 'exactMirror') {\n\t\ttry {\n\t\t\tcompiled.Clean = createMirror(schema, {\n\t\t\t\tTypeCompiler\n\t\t\t})\n\t\t} catch {\n\t\t\tconsole.warn(\n\t\t\t\t'Failed to create exactMirror. Please report the following code to https://github.com/elysiajs/elysia/issues'\n\t\t\t)\n\t\t\tconsole.warn(schema)\n\t\t\tcompiled.Clean = createMirror(schema)\n\t\t}\n\t} else compiled.Clean = createCleaner(schema)\n\n\tcompiled.parse = (v) => {\n\t\ttry {\n\t\t\treturn compiled.Decode(v)\n\t\t} catch (error) {\n\t\t\tthrow [...compiled.Errors(v)].map(mapValueError)\n\t\t}\n\t}\n\n\tcompiled.safeParse = (v) => {\n\t\ttry {\n\t\t\treturn { success: true, data: compiled.Decode(v), error: null }\n\t\t} catch (error) {\n\t\t\tconst errors = [...compiled.Errors(v)].map(mapValueError)\n\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\tdata: null,\n\t\t\t\terror: errors[0]?.summary,\n\t\t\t\terrors\n\t\t\t}\n\t\t}\n\t}\n\n\tcompiled.sucrose = {\n\t\tget hasAdditionalProperties() {\n\t\t\tif ('~hasAdditionalProperties' in this)\n\t\t\t\treturn this['~hasAdditionalProperties']\n\n\t\t\treturn (this['~hasAdditionalProperties'] =\n\t\t\t\thasAdditionalProperties(compiled))\n\t\t},\n\t\tget hasDefault() {\n\t\t\tif ('~hasDefault' in this) return this['~hasDefault']\n\n\t\t\treturn (this['~hasDefault'] = hasProperty('default', compiled))\n\t\t},\n\t\tget isOptional() {\n\t\t\tif ('~isOptional' in this) return this['~isOptional']!\n\n\t\t\treturn (this['~isOptional'] = isOptional(compiled))\n\t\t},\n\t\tget hasTransform() {\n\t\t\tif ('~hasTransform' in this) return this['~hasTransform']!\n\n\t\t\treturn (this['~hasTransform'] = hasTransform(schema))\n\t\t},\n\t\tget hasRef() {\n\t\t\tif ('~hasRef' in this) return this['~hasRef']!\n\n\t\t\treturn (this['~hasRef'] = hasRef(schema))\n\t\t},\n\t\t'~hasRef': doesHaveRef\n\t}\n\n\t// if (cacheKey) caches[cacheKey] = compiled\n\n\treturn compiled as any\n}\n\nexport const mergeObjectSchemas = (\n\tschemas: TSchema[]\n): {\n\tschema: TObject | undefined\n\tnotObjects: TSchema[]\n} => {\n\tif (schemas.length === 0) {\n\t\treturn {\n\t\t\tschema: undefined,\n\t\t\tnotObjects: []\n\t\t}\n\t}\n\tif (schemas.length === 1)\n\t\treturn schemas[0].type === 'object'\n\t\t\t? {\n\t\t\t\t\tschema: schemas[0] as TObject,\n\t\t\t\t\tnotObjects: []\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tschema: undefined,\n\t\t\t\t\tnotObjects: schemas\n\t\t\t\t}\n\n\tlet newSchema: TObject\n\tconst notObjects = <TSchema[]>[]\n\n\tlet additionalPropertiesIsTrue = false\n\tlet additionalPropertiesIsFalse = false\n\n\tfor (const schema of schemas) {\n\t\tif (schema.type !== 'object') {\n\t\t\tnotObjects.push(schema)\n\t\t\tcontinue\n\t\t}\n\n\t\tif ('additionalProperties' in schema) {\n\t\t\tif (schema.additionalProperties === true)\n\t\t\t\tadditionalPropertiesIsTrue = true\n\t\t\telse if (schema.additionalProperties === false)\n\t\t\t\tadditionalPropertiesIsFalse = true\n\t\t}\n\n\t\tif (!newSchema!) {\n\t\t\tnewSchema = schema as TObject\n\t\t\tcontinue\n\t\t}\n\n\t\tnewSchema = {\n\t\t\t...newSchema,\n\t\t\t...schema,\n\t\t\tproperties: {\n\t\t\t\t...newSchema.properties,\n\t\t\t\t...schema.properties\n\t\t\t},\n\t\t\trequired: [...(newSchema?.required ?? []), ...schema.required]\n\t\t} as TObject\n\t}\n\n\tif (newSchema!) {\n\t\tif (newSchema.required)\n\t\t\tnewSchema.required = [...new Set(newSchema.required)]\n\n\t\tif (additionalPropertiesIsFalse) newSchema.additionalProperties = false\n\t\telse if (additionalPropertiesIsTrue)\n\t\t\tnewSchema.additionalProperties = true\n\t}\n\n\treturn {\n\t\tschema: newSchema!,\n\t\tnotObjects\n\t}\n}\n\nexport const getResponseSchemaValidator = (\n\ts: InputSchema['response'] | undefined,\n\t{\n\t\tmodels = {},\n\t\tmodules,\n\t\tdynamic = false,\n\t\tnormalize = false,\n\t\tadditionalProperties = false,\n\t\tvalidators = []\n\t}: {\n\t\tmodules: TModule<any, any>\n\t\tmodels?: Record<string, TSchema>\n\t\tadditionalProperties?: boolean\n\t\tdynamic?: boolean\n\t\tnormalize?: ElysiaConfig<''>['normalize']\n\t\tvalidators?: StandaloneInputSchema['response'][]\n\t}\n): Record<number, ElysiaTypeCheck<any>> | undefined => {\n\tvalidators = validators.filter((x) => x)\n\n\tif (!s) {\n\t\tif (!validators?.length) return undefined as any\n\n\t\ts = validators[0] as any\n\t\tvalidators = validators.slice(1)\n\t}\n\n\tlet maybeSchemaOrRecord: TSchema | Record<number, string | TSchema>\n\n\tif (typeof s !== 'string') maybeSchemaOrRecord = s!\n\telse {\n\t\tconst isArray = s.endsWith('[]')\n\t\tconst key = isArray ? s.substring(0, s.length - 2) : s\n\n\t\tmaybeSchemaOrRecord =\n\t\t\t(modules as TModule<{}, {}>).Import(key as never) ?? models[key]\n\n\t\tif (isArray)\n\t\t\tmaybeSchemaOrRecord = t.Array(maybeSchemaOrRecord as TSchema)\n\t}\n\n\tif (!maybeSchemaOrRecord) return\n\n\tif (Kind in maybeSchemaOrRecord) {\n\t\treturn {\n\t\t\t200: getSchemaValidator(maybeSchemaOrRecord, {\n\t\t\t\tmodules,\n\t\t\t\tmodels,\n\t\t\t\tadditionalProperties,\n\t\t\t\tdynamic,\n\t\t\t\tnormalize,\n\t\t\t\tcoerce: false,\n\t\t\t\tadditionalCoerce: [],\n\t\t\t\tvalidators: validators.map((x) => x![200])\n\t\t\t})\n\t\t}\n\t}\n\n\tconst record: Record<number, ElysiaTypeCheck<any>> = {}\n\n\tObject.keys(maybeSchemaOrRecord).forEach((status): TSchema | undefined => {\n\t\tconst maybeNameOrSchema = maybeSchemaOrRecord[+status]\n\n\t\tif (typeof maybeNameOrSchema === 'string') {\n\t\t\tif (maybeNameOrSchema in models) {\n\t\t\t\tconst schema = models[maybeNameOrSchema]\n\n\t\t\t\t// Inherits model maybe already compiled\n\t\t\t\trecord[+status] =\n\t\t\t\t\tKind in schema\n\t\t\t\t\t\t? getSchemaValidator(schema, {\n\t\t\t\t\t\t\t\tmodules,\n\t\t\t\t\t\t\t\tmodels,\n\t\t\t\t\t\t\t\tadditionalProperties,\n\t\t\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t\tcoerce: false,\n\t\t\t\t\t\t\t\tadditionalCoerce: [],\n\t\t\t\t\t\t\t\tvalidators: validators.map((x) => x![+status])\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: schema\n\t\t\t}\n\n\t\t\treturn undefined\n\t\t}\n\n\t\t// Inherits model maybe already compiled\n\t\trecord[+status] =\n\t\t\tKind in maybeNameOrSchema\n\t\t\t\t? getSchemaValidator(maybeNameOrSchema as TSchema, {\n\t\t\t\t\t\tmodules,\n\t\t\t\t\t\tmodels,\n\t\t\t\t\t\tadditionalProperties,\n\t\t\t\t\t\tdynamic,\n\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\tcoerce: false,\n\t\t\t\t\t\tadditionalCoerce: [],\n\t\t\t\t\t\tvalidators: validators.map((x) => x![+status])\n\t\t\t\t\t})\n\t\t\t\t: maybeNameOrSchema\n\t})\n\n\treturn record\n}\n\nlet _stringToStructureCoercions: ReplaceSchemaTypeOptions[]\n\nexport const stringToStructureCoercions = () => {\n\tif (!_stringToStructureCoercions) {\n\t\t_stringToStructureCoercions = [\n\t\t\t{\n\t\t\t\tfrom: t.Object({}),\n\t\t\t\tto: () => t.ObjectString({}),\n\t\t\t\texcludeRoot: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tfrom: t.Array(t.Any()),\n\t\t\t\tto: () => t.ArrayString(t.Any())\n\t\t\t}\n\t\t] satisfies ReplaceSchemaTypeOptions[]\n\t}\n\n\treturn _stringToStructureCoercions\n}\n\nlet _coercePrimitiveRoot: ReplaceSchemaTypeOptions[]\n\nexport const coercePrimitiveRoot = () => {\n\tif (!_coercePrimitiveRoot)\n\t\t_coercePrimitiveRoot = [\n\t\t\t{\n\t\t\t\tfrom: t.Number(),\n\t\t\t\tto: (options) => t.Numeric(options),\n\t\t\t\trootOnly: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tfrom: t.Boolean(),\n\t\t\t\tto: (options) => t.BooleanString(options),\n\t\t\t\trootOnly: true\n\t\t\t}\n\t\t] satisfies ReplaceSchemaTypeOptions[]\n\n\treturn _coercePrimitiveRoot\n}\n\nexport const getCookieValidator = ({\n\tvalidator,\n\tmodules,\n\tdefaultConfig = {},\n\tconfig,\n\tdynamic,\n\tmodels,\n\tvalidators\n}: {\n\tvalidator: TSchema | string | undefined\n\tmodules: TModule<any, any>\n\tdefaultConfig: CookieOptions | undefined\n\tconfig: CookieOptions\n\tdynamic: boolean\n\tmodels: Record<string, TSchema> | undefined\n\tvalidators?: InputSchema['cookie'][]\n}) => {\n\tlet cookieValidator = getSchemaValidator(validator, {\n\t\tmodules,\n\t\tdynamic,\n\t\tmodels,\n\t\tadditionalProperties: true,\n\t\tcoerce: true,\n\t\tadditionalCoerce: stringToStructureCoercions(),\n\t\tvalidators\n\t})\n\n\tif (isNotEmpty(defaultConfig)) {\n\t\tif (cookieValidator)\n\t\t\tcookieValidator.config = mergeCookie(cookieValidator.config, config)\n\t\telse {\n\t\t\tcookieValidator = getSchemaValidator(t.Cookie({}), {\n\t\t\t\tmodules,\n\t\t\t\tdynamic,\n\t\t\t\tmodels,\n\t\t\t\tadditionalProperties: true,\n\t\t\t\tvalidators\n\t\t\t})\n\n\t\t\tcookieValidator.config = defaultConfig\n\t\t}\n\t}\n\n\treturn cookieValidator\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\nexport const createAccelerators = (\n\trecords: Record<number, ElysiaTypeCheck<any>>\n) => {\n\tconst accelerators = <Record<number, Function>>{}\n\n\tfor (const [id, validator] of Object.entries(records)) {\n\t\tif (!validator) continue\n\n\t\ttry {\n\t\t\taccelerators[+id] = createAccelerator(validator.schema)\n\t\t} catch (err) {\n\t\t\tconsole.log(validator.schema)\n\t\t}\n\t}\n\n\treturn accelerators\n}\n",
22
22
  "// src/index.ts\nvar Kind = Symbol.for(\"TypeBox.Kind\");\nvar OptionalKind = Symbol.for(\"TypeBox.Optional\");\nvar isSpecialProperty = (name) => /(\\ |-|\\t|\\n)/.test(name);\nvar joinProperty = (v1, v2) => {\n if (typeof v2 === \"number\") return `${v1}[${v2}]`;\n if (isSpecialProperty(v2)) return `${v1}[\"${v2}\"]`;\n return `${v1}.${v2}`;\n};\nvar encodeProperty = (v) => `\"${v}\"`;\nvar isInteger = (schema) => {\n if (!schema.anyOf || Kind in schema && schema[Kind] !== \"Union\")\n return false;\n let hasIntegerFormat = false;\n let hasNumberType = false;\n for (const type of schema.anyOf) {\n if (type.type === \"null\" || type.type === \"undefined\") {\n continue;\n }\n if (!hasIntegerFormat && type.type === \"string\" && type.format === \"integer\") {\n hasIntegerFormat = true;\n continue;\n }\n if (!hasNumberType && (type.type === \"number\" || type.type === \"integer\")) {\n hasNumberType = true;\n continue;\n }\n return false;\n }\n return hasIntegerFormat && hasNumberType;\n};\nvar getMetadata = (schema) => {\n let isNullable = false;\n let isUndefinable = false;\n let newSchema;\n if (!schema.anyOf || Kind in schema && schema[Kind] !== \"Union\")\n return {\n schema,\n isNullable,\n isUndefinable\n };\n for (const type of schema.anyOf) {\n if (type.type === \"null\") {\n isNullable = true;\n continue;\n }\n if (type.type === \"undefined\") {\n isUndefinable = true;\n continue;\n }\n if (!newSchema) {\n newSchema = type;\n continue;\n }\n return {\n schema,\n isNullable,\n isUndefinable\n };\n }\n return {\n schema: newSchema,\n isNullable,\n isUndefinable\n };\n};\nvar mergeObjectIntersection = (schema) => {\n if (!schema.allOf || Kind in schema && (schema[Kind] !== \"Intersect\" || schema.type !== \"object\"))\n return schema;\n const { allOf, ...newSchema } = schema;\n newSchema.properties = {};\n if (Kind in newSchema) newSchema[Kind] = \"Object\";\n for (const type of allOf) {\n if (type.type !== \"object\") continue;\n const { properties, required, type: _, [Kind]: __, ...rest } = type;\n if (required)\n newSchema.required = newSchema.required ? newSchema.required.concat(required) : required;\n Object.assign(newSchema, rest);\n for (const property in type.properties)\n newSchema.properties[property] = mergeObjectIntersection(\n type.properties[property]\n );\n }\n return newSchema;\n};\nvar isDateType = (schema) => {\n if (!schema.anyOf || Kind in schema && schema[Kind] !== \"Union\")\n return false;\n if (!schema.anyOf) return false;\n let hasDateType = false;\n let hasStringFormatDate = false;\n let hasNumberType = false;\n if (schema.anyOf)\n for (const type of schema.anyOf) {\n if (!hasDateType && type.type === \"Date\") hasDateType = true;\n if (!hasStringFormatDate && type.type === \"string\" && (type.format === \"date\" || type.format === \"date-time\"))\n hasStringFormatDate = true;\n if (!hasNumberType && type.type === \"number\") hasNumberType = true;\n }\n return hasDateType;\n};\nvar SANITIZE = {\n auto: (property) => `re.test(${property})?JSON.stringify(${property}):\\`\"\\${${property}}\"\\``,\n manual: (property) => `${property}`,\n throw: (property) => `re.test(${property})?(()=>{throw new Error(\"Property '${property}' contains invalid characters\")})():${property}`\n};\nvar joinStringArray = (p) => `\"\\${((p)=>{if(p.length===1)return p\nlet ars=''\nfor(let i=0;i<p.length;i++){if(i===0)ars+=p[i]\nelse ars+=\\`\",\"\\${p[i]}\\`}return ars})(${p})}\"`;\nvar handleRecord = (schema, property, instruction) => {\n const child = schema.patternProperties[\"^(.*)$\"] ?? schema.patternProperties[Object.keys(schema.patternProperties)[0]];\n if (!child) return property;\n const i = instruction.array;\n instruction.array++;\n return `\\${((ar${i}n)=>{const ar${i}s=Object.keys(ar${i}n);let ar${i}v='{';for(let i=0;i<ar${i}s.length;i++){const ar${i}p=ar${i}n[ar${i}s[i]];if(i!==0)ar${i}v+=',';ar${i}v+=\\`\"\\${ar${i}s[i]}\":${accelerate(child, `ar${i}p`, instruction)}\\`}return ar${i}v + '}'})(${property})}`;\n};\nvar accelerate = (schema, property, instruction) => {\n if (!schema) return \"\";\n if (Kind in schema && schema[Kind] === \"Import\" && schema.$ref in schema.$defs)\n return accelerate(schema.$defs[schema.$ref], property, {\n ...instruction,\n definitions: Object.assign(instruction.definitions, schema.$defs)\n });\n let v = \"\";\n const isRoot = property === \"v\";\n const { schema: newSchema, isNullable, isUndefinable } = getMetadata(schema);\n schema = newSchema;\n const nullableCondition = isNullable && isUndefinable ? `${property}===null||${property}===undefined` : isNullable ? `${property}===null` : isUndefinable ? `${property}===undefined` : \"\";\n let sanitize = SANITIZE[instruction.sanitize];\n switch (schema.type) {\n case \"string\":\n instruction.hasString = true;\n if (instruction.sanitize === \"auto\" || // Elysia specific format, this implied that format might contain unescaped JSON string\n schema.sanitize) {\n sanitize = SANITIZE[\"auto\"];\n if (nullableCondition)\n v = `\\${${nullableCondition}?${schema.const !== void 0 ? `'${JSON.stringify(schema.const)}'` : schema.default !== void 0 ? `'${JSON.stringify(schema.default)}'` : `'null'`}:${sanitize(property)}}`;\n else\n v = `${schema.const !== void 0 ? `${JSON.stringify(schema.const)}` : `\\${${sanitize(property)}}`}`;\n } else {\n if (nullableCondition)\n v = `\\${${nullableCondition}?${schema.const !== void 0 ? `'${JSON.stringify(schema.const)}'` : schema.default !== void 0 ? `'${JSON.stringify(schema.default)}'` : `'null'`}:\\`\\\\\"\\${${sanitize(property)}}\\\\\"\\`}`;\n else\n v = `${schema.const !== void 0 ? `${JSON.stringify(schema.const)}` : `\"\\${${sanitize(property)}}\"`}`;\n }\n break;\n case \"number\":\n case \"boolean\":\n case \"bigint\":\n if (nullableCondition)\n v = `\\${${property}??${schema.default !== void 0 ? schema.default : `'null'`}}`;\n else v = `\\${${property}}`;\n break;\n case \"null\":\n v = `\\${${property}}`;\n break;\n case \"undefined\":\n break;\n case \"object\":\n if (nullableCondition) v += `\\${${nullableCondition}?\"null\":\\``;\n v += \"{\";\n if (schema.additionalProperties) {\n v = `\\${JSON.stringify(${property})}`;\n break;\n }\n schema = mergeObjectIntersection(schema);\n let init = true;\n let hasOptional = false;\n let op = `op${instruction.optional}`;\n if (schema[Kind] === \"Record\") {\n v = handleRecord(schema, property, instruction);\n break;\n }\n if (!Object.keys(schema.properties).length && schema.patternProperties) {\n v = `\\${JSON.stringify(${property})}`;\n break;\n }\n for (const key in schema.properties)\n if (OptionalKind in schema.properties[key]) {\n instruction.optional++;\n hasOptional = true;\n break;\n }\n for (const key in schema.properties) {\n const isOptional = OptionalKind in schema.properties[key];\n const name = joinProperty(property, key);\n const hasShortName = schema.properties[key].type === \"object\" && !name.startsWith(\"ar\");\n const i2 = instruction.properties.length;\n if (hasShortName) instruction.properties.push(name);\n const k = encodeProperty(key);\n const p = accelerate(\n schema.properties[key],\n hasShortName ? `s${i2}` : name,\n instruction\n );\n const comma = `\\${${op}?',':(${op}=true)&&''}`;\n let defaultValue = schema.properties[key].default;\n if (defaultValue !== void 0) {\n if (typeof defaultValue === \"string\")\n defaultValue = `\"${defaultValue}\"`;\n defaultValue = `\\`${comma}${k}:${defaultValue}\\``;\n } else defaultValue = '\"\"';\n v += isOptional ? `\\${(${name}===undefined?${defaultValue}:\\`${comma}${k}:${p}\\`)}` : hasOptional ? `${!init ? \",\" : `\\${(${op}=true)&&\"\"}`}${k}:${p}` : `${!init ? \",\" : \"\"}${k}:${p}`;\n init = false;\n }\n v += \"}\";\n if (nullableCondition) v += `\\`}`;\n break;\n case \"array\":\n const i = instruction.array;\n instruction.array++;\n if (schema.items.type === \"string\") {\n if (isRoot) v += \"return `\";\n if (nullableCondition)\n v += `\\${${nullableCondition}?\"null\":${property}.length?\\`[${joinStringArray(property)}]\\`:\"[]\"}`;\n else\n v += `\\${${property}.length?\\`[${joinStringArray(property)}]\\`:\"[]\"}`;\n if (isRoot) v += \"`\";\n break;\n }\n if (schema.items.type === \"number\" || schema.items.type === \"boolean\" || schema.items.type === \"bigint\" || isInteger(schema.items)) {\n if (isRoot) v += \"return `\";\n if (nullableCondition)\n v += `\\${${nullableCondition}?'\"null\"':${property}.length?\\`[\\${${property}.toString()}]\\`:\"[]\"`;\n else\n v += `\\${${property}.length?\\`[\\${${property}.toString()}]\\`:\"[]\"}`;\n if (isRoot) v += \"`\";\n break;\n }\n if (isNullable || isUndefinable) v += `\\${!${property}?'\"null\"':\\``;\n if (isRoot) v += `const ar${i}s=${property};`;\n else v += `\\${((ar${i}s)=>{`;\n v += `let ar${i}v='[';for(let i=0;i<ar${i}s.length;i++){const ar${i}p=ar${i}s[i];if(i!==0){ar${i}v+=','}ar${i}v+=\\`${accelerate(schema.items, `ar${i}p`, instruction)}\\`}return ar${i}v+']'`;\n if (!isRoot) v += `})(${property})}`;\n if (isNullable || isUndefinable) v += `\\`}`;\n break;\n default:\n if (schema.$ref && schema.$ref in instruction.definitions)\n return accelerate(\n instruction.definitions[schema.$ref],\n property,\n instruction\n );\n if (isDateType(schema)) {\n if (isNullable || isUndefinable)\n v = `\\${${nullableCondition}?${schema.default !== void 0 ? `'\"${schema.default}\"'` : \"'null'\"}:typeof ${property}===\"object\"?\\`\"\\${${property}.toISOString()}\"\\`:${property}}`;\n else {\n v = `\\${typeof ${property}===\"object\"?\\`\"\\${${property}.toISOString()}\"\\`:${property}}`;\n }\n break;\n }\n if (isInteger(schema)) {\n if (nullableCondition)\n v = `\\${${property}??${schema.default !== void 0 ? schema.default : `'null'`}}`;\n else v = `\\${${property}}`;\n break;\n }\n v = `\\${JSON.stringify(${property})}`;\n break;\n }\n if (!isRoot) return v;\n const isArray = schema.type === \"array\";\n if (!isArray) v = `\\`${v}\\``;\n let setup = \"\";\n if (instruction.hasString)\n setup += `const re=/[\\\\b\\\\f\\\\n\\\\r\\\\t\\\\\\\\\\\\\\\\/\"]/\n`;\n if (instruction.optional) {\n setup += \"let \";\n for (let i = 0; i < instruction.optional; i++) {\n if (i !== 0) setup += \",\";\n setup += `op${i}=false`;\n }\n setup += \"\\n\";\n }\n if (instruction.properties.length) {\n setup += \"const \";\n for (let i = 0; i < instruction.properties.length; i++) {\n if (i !== 0) setup += \",\";\n setup += `s${i}=${instruction.properties[i]}`;\n }\n setup += \"\\n\";\n }\n if (isArray) return setup + \"\\n\" + v;\n return setup + \"return \" + v;\n};\nvar createAccelerator = (schema, {\n sanitize = \"auto\",\n definitions = {}\n} = {}) => {\n const f = accelerate(schema, \"v\", {\n array: 0,\n optional: 0,\n properties: [],\n hasString: false,\n sanitize,\n definitions\n });\n return Function(\"v\", f);\n};\nvar index_default = createAccelerator;\nexport {\n createAccelerator,\n index_default as default,\n mergeObjectIntersection\n};\n",
23
23
  "// src/index.ts\nimport { TypeCompiler } from \"@sinclair/typebox/compiler\";\nvar Kind = Symbol.for(\"TypeBox.Kind\");\nvar OptionalKind = Symbol.for(\"TypeBox.Optional\");\nvar isSpecialProperty = (name) => /(\\ |-|\\t|\\n)/.test(name);\nvar joinProperty = (v1, v2, isOptional = false) => {\n if (typeof v2 === \"number\") return `${v1}[${v2}]`;\n if (isSpecialProperty(v2)) return `${v1}${isOptional ? \"?.\" : \"\"}[\"${v2}\"]`;\n return `${v1}${isOptional ? \"?\" : \"\"}.${v2}`;\n};\nvar encodeProperty = (v) => isSpecialProperty(v) ? `\"${v}\"` : v;\nvar mergeObjectIntersection = (schema) => {\n if (!schema.allOf || Kind in schema && (schema[Kind] !== \"Intersect\" || schema.type !== \"object\"))\n return schema;\n const { allOf, ...newSchema } = schema;\n newSchema.properties = {};\n if (Kind in newSchema) newSchema[Kind] = \"Object\";\n for (const type of allOf) {\n if (type.type !== \"object\") continue;\n const { properties, required, type: _, [Kind]: __, ...rest } = type;\n if (required)\n newSchema.required = newSchema.required ? newSchema.required.concat(required) : required;\n Object.assign(newSchema, rest);\n for (const property in type.properties)\n newSchema.properties[property] = mergeObjectIntersection(\n type.properties[property]\n );\n }\n return newSchema;\n};\nvar handleRecord = (schema, property, instruction) => {\n const child = schema.patternProperties[\"^(.*)$\"] ?? schema.patternProperties[Object.keys(schema.patternProperties)[0]];\n if (!child) return property;\n const i = instruction.array;\n instruction.array++;\n return `(()=>{const ar${i}s=Object.keys(${property}),ar${i}v={};for(let i=0;i<ar${i}s.length;i++){const ar${i}p=${property}[ar${i}s[i]];ar${i}v[ar${i}s[i]]=${mirror(child, `ar${i}p`, instruction)}}return ar${i}v})()`;\n};\nvar handleTuple = (schema, property, instruction) => {\n const i = instruction.array;\n instruction.array++;\n const isRoot = property === \"v\" && !instruction.unions.length;\n let v = \"\";\n if (!isRoot) v = `(()=>{`;\n v += `const ar${i}v=[`;\n for (let i2 = 0; i2 < schema.length; i2++) {\n if (i2 !== 0) v += \",\";\n v += mirror(\n schema[i2],\n joinProperty(property, i2, instruction.parentIsOptional),\n instruction\n );\n }\n v += `];`;\n if (!isRoot) v += `return ar${i}v})()`;\n return v;\n};\nvar handleUnion = (schemas, property, instruction) => {\n if (instruction.TypeCompiler === void 0) {\n if (!instruction.typeCompilerWanred) {\n console.warn(\n new Error(\"TypeBox's TypeCompiler is required to use Union\")\n );\n instruction.typeCompilerWanred = true;\n }\n return property;\n }\n instruction.unionKeys[property] = 1;\n const ui = instruction.unions.length;\n const typeChecks = instruction.unions[ui] = [];\n let v = `(()=>{\n`;\n for (let i = 0; i < schemas.length; i++) {\n typeChecks.push(TypeCompiler.Compile(schemas[i]));\n v += `if(d.unions[${ui}][${i}].Check(${property})){return ${mirror(\n schemas[i],\n property,\n {\n ...instruction,\n parentIsOptional: true\n }\n )}}\n`;\n }\n v += `return undefined})()`;\n return v;\n};\nvar mirror = (schema, property, instruction) => {\n if (!schema) return \"\";\n const isRoot = property === \"v\" && !instruction.unions.length;\n if (Kind in schema && schema[Kind] === \"Import\" && schema.$ref in schema.$defs)\n return mirror(schema.$defs[schema.$ref], property, {\n ...instruction,\n definitions: Object.assign(instruction.definitions, schema.$defs)\n });\n if (isRoot && schema.type !== \"object\" && schema.type !== \"array\" && !schema.anyOf)\n return `return v`;\n let v = \"\";\n switch (schema.type) {\n case \"object\":\n if (schema[Kind] === \"Record\") {\n v = handleRecord(schema, property, instruction);\n break;\n }\n schema = mergeObjectIntersection(schema);\n v += \"{\";\n if (schema.additionalProperties) v += `...${property}`;\n const keys = Object.keys(schema.properties);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n let isOptional = schema.required && !schema.required.includes(key) || Array.isArray(schema.properties[key].anyOf);\n const name = joinProperty(\n property,\n key,\n instruction.parentIsOptional\n );\n if (isOptional) {\n const index = instruction.array;\n if (property.startsWith(\"ar\")) {\n const refName = name.slice(name.indexOf(\".\") + 1);\n const array = instruction.optionalsInArray;\n if (array[index]) array[index].push(refName);\n else array[index] = [refName];\n } else {\n instruction.optionals.push(name);\n }\n }\n const child = schema.properties[key];\n if (schema.additionalProperties && child.type !== \"object\")\n continue;\n if (i2 !== 0) v += \",\";\n v += `${encodeProperty(key)}:${isOptional ? `${name}===undefined?undefined:` : \"\"}${mirror(\n child,\n name,\n {\n ...instruction,\n parentIsOptional: isOptional\n }\n )}`;\n }\n v += \"}\";\n break;\n case \"array\":\n if (schema.items.type !== \"object\" && schema.items.type !== \"array\") {\n if (Array.isArray(schema.items))\n v = handleTuple(schema.items, property, instruction);\n else if (isRoot) return \"return v\";\n else v = property;\n break;\n }\n const i = instruction.array;\n instruction.array++;\n let reference = property;\n if (isRoot) v = `const ar${i}v=new Array(${property}.length);`;\n else {\n reference = `ar${i}s`;\n v = `((${reference})=>{const ar${i}v=new Array(${reference}.length);`;\n }\n v += `for(let i=0;i<${reference}.length;i++){const ar${i}p=${reference}[i];ar${i}v[i]=${mirror(schema.items, `ar${i}p`, instruction)}`;\n const optionals = instruction.optionalsInArray[i + 1];\n if (optionals) {\n for (let oi = 0; oi < optionals.length; oi++) {\n const target = `ar${i}v[i].${optionals[oi]}`;\n v += `;if(${target}===undefined)delete ${target}`;\n }\n }\n v += `}`;\n if (!isRoot) v += `return ar${i}v})(${property})`;\n break;\n default:\n if (schema.$ref && schema.$ref in instruction.definitions)\n return mirror(\n instruction.definitions[schema.$ref],\n property,\n instruction\n );\n if (Array.isArray(schema.anyOf)) {\n v = handleUnion(schema.anyOf, property, instruction);\n break;\n }\n v = property;\n break;\n }\n if (!isRoot) return v;\n if (schema.type === \"array\") return `${v}return ar0v`;\n v = `const x=${v}\n`;\n for (let i = 0; i < instruction.optionals.length; i++) {\n const key = instruction.optionals[i];\n const prop = key.slice(1);\n v += `if(${key}===undefined`;\n if (instruction.unionKeys[key]) v += `||x${prop}===undefined`;\n v += `)delete x${prop.charCodeAt(0) !== 63 ? \"?\" : \"\"}${prop}\n`;\n }\n return `${v}return x`;\n};\nvar createMirror = (schema, {\n TypeCompiler: TypeCompiler2,\n definitions = {}\n} = {}) => {\n const unions = [];\n const f = mirror(schema, \"v\", {\n optionals: [],\n optionalsInArray: [],\n array: 0,\n parentIsOptional: false,\n unions,\n unionKeys: {},\n TypeCompiler: TypeCompiler2,\n definitions\n });\n if (!unions.length) return Function(\"v\", f);\n const fn = `return function mirror(v){${f}}`;\n return Function(\n \"d\",\n fn\n )({\n unions\n });\n};\nvar index_default = createMirror;\nexport {\n createMirror,\n index_default as default,\n mergeObjectIntersection\n};\n",
24
- "\nimport { sucrose, type Sucrose } from '../../sucrose'\nimport { createHoc, createOnRequestHandler } from '../../compose'\n\nimport { randomId, ELYSIA_REQUEST_ID, redirect } from '../../utils'\nimport { error } from '../../error'\nimport { ELYSIA_TRACE } from '../../trace'\n\nimport type { AnyElysia } from '../..'\nimport type { InternalRoute } from '../../types'\n\nconst allocateIf = (value: string, condition: unknown) =>\n\tcondition ? value : ''\n\nconst createContext = (\n\tapp: AnyElysia,\n\troute: InternalRoute,\n\tinference: Sucrose.Inference,\n\tisInline = false\n) => {\n\tlet fnLiteral = ''\n\n\t// @ts-expect-error private\n\tconst defaultHeaders = app.setHeaders\n\n\tconst hasTrace = !!app.event.trace?.length\n\tif (hasTrace) fnLiteral += `const id=randomId()\\n`\n\n\tconst path = route.path\n\n\tconst isDynamic = path.includes(':') || path.includes('*')\n\n\tconst standardHostname = app.config.handler?.standardHostname ?? true\n\n\tconst getQi =\n\t\t`const u=request.url,` +\n\t\t`s=u.indexOf('/',${standardHostname ? 11 : 7}),` +\n\t\t`qi=u.indexOf('?', s + 1)\\n`\n\n\tif (inference.query) fnLiteral += getQi\n\n\tconst getPath = !inference.path\n\t\t? ''\n\t\t: !isDynamic\n\t\t\t? `path:'${path}',`\n\t\t\t: `get path(){` +\n\t\t\t\t(inference.query ? '' : getQi) +\n\t\t\t\t`if(qi===-1) return u.substring(s)\\n` +\n\t\t\t\t`return u.substring(s, qi)\\n` +\n\t\t\t\t`},`\n\n\tfnLiteral +=\n\t\tallocateIf(`const c=`, !isInline) +\n\t\t`{request,` +\n\t\t`store,` +\n\t\tallocateIf(`qi,`, inference.query) +\n\t\tallocateIf(`route,`, inference.route || hasTrace) +\n\t\t`params:request.params,` +\n\t\tgetPath +\n\t\t`url:request.url,` +\n\t\t`redirect,` +\n\t\t`error,` +\n\t\t`set:{headers:`\n\n\tfnLiteral += Object.keys(defaultHeaders ?? {}).length\n\t\t? 'Object.assign({},app.setHeaders)'\n\t\t: '{}'\n\n\tfnLiteral += `,status:200}`\n\n\tif (inference.server) fnLiteral += `,get server(){return app.getServer()}`\n\n\tif (hasTrace) fnLiteral += ',[ELYSIA_REQUEST_ID]:id'\n\n\t{\n\t\tlet decoratorsLiteral = ''\n\t\t// @ts-expect-error private\n\t\tfor (const key of Object.keys(app.singleton.decorator))\n\t\t\tdecoratorsLiteral += `,${key}:decorator['${key}']`\n\n\t\tfnLiteral += decoratorsLiteral\n\t}\n\n\tfnLiteral += `}\\n`\n\n\treturn fnLiteral\n}\n\nexport const createBunRouteHandler = (app: AnyElysia, route: InternalRoute) => {\n\tconst hasTrace = !!app.event.trace?.length\n\t// @ts-expect-error private property\n\tconst hasHoc = !!app.extender.higherOrderFunctions.length\n\n\tconst inference = sucrose(\n\t\tObject.assign({}, route.hooks, {\n\t\t\thandler: route.handler\n\t\t}),\n\t\t// @ts-expect-error\n\t\tapp.inference\n\t)\n\n\tlet fnLiteral =\n\t\t'const handler=data.handler,' +\n\t\t'store=data.store,' +\n\t\t'redirect=data.redirect,' +\n\t\tallocateIf('route=data.route,', inference.route || hasTrace) +\n\t\tallocateIf('randomId=data.randomId,', hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID=data.ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_TRACE=data.ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`trace=data.trace,`, hasTrace) +\n\t\tallocateIf(`hoc=data.hoc,`, hasHoc) +\n\t\t'error=data.error\\n' +\n\t\t'function map(request){'\n\n\t// inference.query require declaring const 'qi'\n\tif (hasTrace || inference.query || app.event.request?.length) {\n\t\tfnLiteral += createContext(app, route, inference)\n\t\tfnLiteral += createOnRequestHandler(app)\n\n\t\tfnLiteral += 'return handler(c)}'\n\t} else {\n\t\tfnLiteral += `return handler(${createContext(app, route, inference, true)})}`\n\t}\n\n\tfnLiteral += createHoc(app)\n\n\treturn Function(\n\t\t'data',\n\t\tfnLiteral\n\t)({\n\t\thandler: route.compile?.() ?? route.composed,\n\t\tredirect,\n\t\terror,\n\t\t// @ts-expect-error private property\n\t\thoc: app.extender.higherOrderFunctions.map((x) => x.fn),\n\t\tstore: app.store,\n\t\troute: inference.route || hasTrace ? route.path : undefined,\n\t\trandomId: hasTrace ? randomId : undefined,\n\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\ttrace: hasTrace ? app.event.trace?.map((x) => x?.fn ?? x) : undefined\n\t})\n}\n",
24
+ "import { sucrose, type Sucrose } from '../../sucrose'\nimport { createHoc, createOnRequestHandler } from '../../compose'\n\nimport { randomId, ELYSIA_REQUEST_ID, redirect } from '../../utils'\nimport { error } from '../../error'\nimport { ELYSIA_TRACE } from '../../trace'\n\nimport type { AnyElysia } from '../..'\nimport type { InternalRoute } from '../../types'\n\nconst allocateIf = (value: string, condition: unknown) =>\n\tcondition ? value : ''\n\nconst createContext = (\n\tapp: AnyElysia,\n\troute: InternalRoute,\n\tinference: Sucrose.Inference,\n\tisInline = false\n) => {\n\tlet fnLiteral = ''\n\n\t// @ts-expect-error private\n\tconst defaultHeaders = app.setHeaders\n\n\tconst hasTrace = !!app.event.trace?.length\n\tif (hasTrace) fnLiteral += `const id=randomId()\\n`\n\n\tconst path = route.path\n\n\tconst isDynamic = path.includes(':') || path.includes('*')\n\n\tconst standardHostname = app.config.handler?.standardHostname ?? true\n\n\tconst getQi =\n\t\t`const u=request.url,` +\n\t\t`s=u.indexOf('/',${standardHostname ? 11 : 7}),` +\n\t\t`qi=u.indexOf('?', s + 1)\\n`\n\n\tif (inference.query) fnLiteral += getQi\n\n\tconst getPath = !inference.path\n\t\t? ''\n\t\t: !isDynamic\n\t\t\t? `path:'${path}',`\n\t\t\t: `get path(){` +\n\t\t\t\t(inference.query ? '' : getQi) +\n\t\t\t\t`if(qi===-1) return u.substring(s)\\n` +\n\t\t\t\t`return u.substring(s, qi)\\n` +\n\t\t\t\t`},`\n\n\tfnLiteral +=\n\t\tallocateIf(`const c=`, !isInline) +\n\t\t`{request,` +\n\t\t`store,` +\n\t\tallocateIf(`qi,`, inference.query) +\n\t\tallocateIf(`route,`, inference.route || hasTrace) +\n\t\t`params:request.params,` +\n\t\tgetPath +\n\t\t`url:request.url,` +\n\t\t`redirect,` +\n\t\t`error,` +\n\t\t`set:{headers:`\n\n\tfnLiteral += Object.keys(defaultHeaders ?? {}).length\n\t\t? 'Object.assign({},app.setHeaders)'\n\t\t: '{}'\n\n\tfnLiteral += `,status:200}`\n\n\tif (inference.server) fnLiteral += `,get server(){return app.getServer()}`\n\n\tif (hasTrace) fnLiteral += ',[ELYSIA_REQUEST_ID]:id'\n\n\t{\n\t\tlet decoratorsLiteral = ''\n\t\t// @ts-expect-error private\n\t\tfor (const key of Object.keys(app.singleton.decorator))\n\t\t\tdecoratorsLiteral += `,${key}:decorator['${key}']`\n\n\t\tfnLiteral += decoratorsLiteral\n\t}\n\n\tfnLiteral += `}\\n`\n\n\treturn fnLiteral\n}\n\nexport const createBunRouteHandler = (app: AnyElysia, route: InternalRoute) => {\n\tconst hasTrace = !!app.event.trace?.length\n\t// @ts-expect-error private property\n\tconst hasHoc = !!app.extender.higherOrderFunctions.length\n\n\tconst inference = sucrose(\n\t\tObject.assign({}, route.hooks, {\n\t\t\thandler: route.handler\n\t\t}),\n\t\t// @ts-expect-error\n\t\tapp.inference\n\t)\n\n\tlet fnLiteral =\n\t\t'const handler=data.handler,' +\n\t\t'store=data.store,' +\n\t\t`decorator=data.decorator,` +\n\t\t'redirect=data.redirect,' +\n\t\tallocateIf('route=data.route,', inference.route || hasTrace) +\n\t\tallocateIf('randomId=data.randomId,', hasTrace) +\n\t\tallocateIf(`ELYSIA_REQUEST_ID=data.ELYSIA_REQUEST_ID,`, hasTrace) +\n\t\tallocateIf(`ELYSIA_TRACE=data.ELYSIA_TRACE,`, hasTrace) +\n\t\tallocateIf(`trace=data.trace,`, hasTrace) +\n\t\tallocateIf(`hoc=data.hoc,`, hasHoc) +\n\t\t'error=data.error\\n' +\n\t\t'function map(request){'\n\n\t// inference.query require declaring const 'qi'\n\tif (hasTrace || inference.query || app.event.request?.length) {\n\t\tfnLiteral += createContext(app, route, inference)\n\t\tfnLiteral += createOnRequestHandler(app)\n\n\t\tfnLiteral += 'return handler(c)}'\n\t} else {\n\t\tfnLiteral += `return handler(${createContext(app, route, inference, true)})}`\n\t}\n\n\tfnLiteral += createHoc(app)\n\n\treturn Function(\n\t\t'data',\n\t\tfnLiteral\n\t)({\n\t\thandler: route.compile?.() ?? route.composed,\n\t\tredirect,\n\t\terror,\n\t\t// @ts-expect-error private property\n\t\thoc: app.extender.higherOrderFunctions.map((x) => x.fn),\n\t\tstore: app.store,\n\t\tdecorator: app.decorator,\n\t\troute: inference.route || hasTrace ? route.path : undefined,\n\t\trandomId: hasTrace ? randomId : undefined,\n\t\tELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : undefined,\n\t\tELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : undefined,\n\t\ttrace: hasTrace ? app.event.trace?.map((x) => x?.fn ?? x) : undefined\n\t})\n}\n",
25
25
  "import type { Context } from '../../context'\nimport type { AnyLocalHook } from '../../types'\n\nimport {\n\tmapResponse,\n\tmapEarlyResponse,\n\tmapCompactResponse,\n\tcreateStaticHandler\n} from '../web-standard/handler'\n\nexport const createNativeStaticHandler = (\n\thandle: unknown,\n\thooks: AnyLocalHook,\n\tsetHeaders: Context['set']['headers'] = {}\n): (() => Response) | undefined => {\n\tif (typeof handle === 'function' || handle instanceof Blob) return\n\n\tif (\n\t\ttypeof handle === 'object' &&\n\t\thandle?.toString() === '[object HTMLBundle]'\n\t)\n\t\t// Bun HTMLBundle\n\t\treturn () => handle as any\n\n\tconst response = mapResponse(handle, {\n\t\theaders: setHeaders\n\t})\n\n\tif (\n\t\t!hooks.parse?.length &&\n\t\t!hooks.transform?.length &&\n\t\t!hooks.beforeHandle?.length &&\n\t\t!hooks.afterHandle?.length\n\t) {\n\t\tif (!response.headers.has('content-type'))\n\t\t\tresponse.headers.append('content-type', 'text/plain')\n\n\t\treturn response.clone.bind(response)\n\t}\n}\n\nexport {\n\tmapResponse,\n\tmapEarlyResponse,\n\tmapCompactResponse,\n\tcreateStaticHandler\n}\n",
26
26
  "import { isNumericString } from '../utils'\n\nimport type {\n\tServerWebSocket,\n\tServerWebSocketSendStatus,\n\tBufferSource,\n\tWebSocketHandler\n} from './bun'\n\nimport type { TSchema } from '@sinclair/typebox'\nimport type { TypeCheck } from '../type-system'\nimport type { ElysiaTypeCheck } from '../schema'\n\nimport type { FlattenResponse, WSParseHandler } from './types'\nimport type { MaybeArray, Prettify, RouteSchema } from '../types'\nimport { ValidationError } from '../error'\n\nexport const websocket: WebSocketHandler<any> = {\n\topen(ws) {\n\t\tws.data.open?.(ws)\n\t},\n\tmessage(ws, message) {\n\t\tws.data.message?.(ws, message)\n\t},\n\tdrain(ws) {\n\t\tws.data.drain?.(ws)\n\t},\n\tclose(ws, code, reason) {\n\t\tws.data.close?.(ws, code, reason)\n\t}\n}\n\ntype ElysiaServerWebSocket = Omit<\n\tServerWebSocket<unknown>,\n\t'send' | 'ping' | 'pong' | 'publish'\n>\n\nexport class ElysiaWS<Context = unknown, Route extends RouteSchema = {}>\n\timplements ElysiaServerWebSocket\n{\n\tvalidator?: TypeCheck<TSchema>;\n\t['~types']?: {\n\t\tvalidator: Prettify<Route>\n\t}\n\n\tget id() {\n\t\t// @ts-ignore\n\t\treturn this.data.id\n\t}\n\n\tconstructor(\n\t\tpublic raw: ServerWebSocket<{\n\t\t\tid?: string\n\t\t\tvalidator?: TypeCheck<TSchema>\n\t\t}>,\n\t\tpublic data: Context,\n\t\tpublic body: Route['body'] = undefined\n\t) {\n\t\tthis.validator = raw.data?.validator\n\n\t\tthis.sendText = raw.sendText.bind(raw)\n\t\tthis.sendBinary = raw.sendBinary.bind(raw)\n\t\tthis.close = raw.close.bind(raw)\n\t\tthis.terminate = raw.terminate.bind(raw)\n\t\tthis.publishText = raw.publishText.bind(raw)\n\t\tthis.publishBinary = raw.publishBinary.bind(raw)\n\t\tthis.subscribe = raw.subscribe.bind(raw)\n\t\tthis.unsubscribe = raw.unsubscribe.bind(raw)\n\t\tthis.isSubscribed = raw.isSubscribed.bind(raw)\n\t\tthis.cork = raw.cork.bind(raw)\n\t\tthis.remoteAddress = raw.remoteAddress\n\t\tthis.binaryType = raw.binaryType\n\t\tthis.data = raw.data as any\n\n\t\tthis.send = this.send.bind(this)\n\t\tthis.ping = this.ping.bind(this)\n\t\tthis.pong = this.pong.bind(this)\n\t\tthis.publish = this.publish.bind(this)\n\t}\n\n\t/**\n\t * Sends a message to the client.\n\t *\n\t * @param data The data to send.\n\t * @param compress Should the data be compressed? If the client does not support compression, this is ignored.\n\t * @example\n\t * ws.send(\"Hello!\");\n\t * ws.send(\"Compress this.\", true);\n\t * ws.send(new Uint8Array([1, 2, 3, 4]));\n\t */\n\tsend(\n\t\tdata: FlattenResponse<Route['response']> | BufferSource,\n\t\tcompress?: boolean\n\t): ServerWebSocketSendStatus {\n\t\tif (Buffer.isBuffer(data))\n\t\t\treturn this.raw.send(data as unknown as BufferSource, compress)\n\n\t\tif (this.validator?.Check(data) === false)\n\t\t\treturn this.raw.send(\n\t\t\t\tnew ValidationError('message', this.validator, data).message\n\t\t\t)\n\n\t\tif (typeof data === 'object') data = JSON.stringify(data) as any\n\n\t\treturn this.raw.send(data as unknown as string, compress)\n\t}\n\n\t/**\n\t * Sends a ping.\n\t *\n\t * @param data The data to send\n\t */\n\tping(\n\t\tdata?: FlattenResponse<Route['response']> | BufferSource\n\t): ServerWebSocketSendStatus {\n\t\tif (Buffer.isBuffer(data))\n\t\t\treturn this.raw.ping(data as unknown as BufferSource)\n\n\t\tif (this.validator?.Check(data) === false)\n\t\t\treturn this.raw.send(\n\t\t\t\tnew ValidationError('message', this.validator, data).message\n\t\t\t)\n\n\t\tif (typeof data === 'object') data = JSON.stringify(data) as any\n\n\t\treturn this.raw.ping(data as string)\n\t}\n\n\t/**\n\t * Sends a pong.\n\t *\n\t * @param data The data to send\n\t */\n\tpong(\n\t\tdata?: FlattenResponse<Route['response']> | BufferSource\n\t): ServerWebSocketSendStatus {\n\t\tif (Buffer.isBuffer(data))\n\t\t\treturn this.raw.pong(data as unknown as BufferSource)\n\n\t\tif (this.validator?.Check(data) === false)\n\t\t\treturn this.raw.send(\n\t\t\t\tnew ValidationError('message', this.validator, data).message\n\t\t\t)\n\n\t\tif (typeof data === 'object') data = JSON.stringify(data) as any\n\n\t\treturn this.raw.pong(data as string)\n\t}\n\n\t/**\n\t * Sends a message to subscribers of the topic.\n\t *\n\t * @param topic The topic name.\n\t * @param data The data to send.\n\t * @param compress Should the data be compressed? If the client does not support compression, this is ignored.\n\t * @example\n\t * ws.publish(\"chat\", \"Hello!\");\n\t * ws.publish(\"chat\", \"Compress this.\", true);\n\t * ws.publish(\"chat\", new Uint8Array([1, 2, 3, 4]));\n\t */\n\tpublish(\n\t\ttopic: string,\n\t\tdata: FlattenResponse<Route['response']> | BufferSource,\n\t\tcompress?: boolean\n\t): ServerWebSocketSendStatus {\n\t\tif (Buffer.isBuffer(data))\n\t\t\treturn this.raw.publish(\n\t\t\t\ttopic,\n\t\t\t\tdata as unknown as BufferSource,\n\t\t\t\tcompress\n\t\t\t)\n\n\t\tif (this.validator?.Check(data) === false)\n\t\t\treturn this.raw.send(\n\t\t\t\tnew ValidationError('message', this.validator, data).message\n\t\t\t)\n\n\t\tif (typeof data === 'object') data = JSON.stringify(data) as any\n\n\t\treturn this.raw.publish(topic, data as unknown as string, compress)\n\t}\n\n\tsendText: ServerWebSocket['sendText']\n\tsendBinary: ServerWebSocket['sendBinary']\n\tclose: ServerWebSocket['close']\n\tterminate: ServerWebSocket['terminate']\n\tpublishText: ServerWebSocket['publishText']\n\tpublishBinary: ServerWebSocket['publishBinary']\n\tsubscribe: ServerWebSocket['subscribe']\n\tunsubscribe: ServerWebSocket['unsubscribe']\n\tisSubscribed: ServerWebSocket['isSubscribed']\n\tcork: ServerWebSocket['cork']\n\tremoteAddress: ServerWebSocket['remoteAddress']\n\tbinaryType: ServerWebSocket['binaryType']\n\n\tget readyState() {\n\t\treturn this.raw.readyState\n\t}\n}\n\nexport const createWSMessageParser = (\n\tparse: MaybeArray<WSParseHandler<any>>\n) => {\n\tconst parsers = typeof parse === 'function' ? [parse] : parse\n\n\treturn async function parseMessage(ws: ServerWebSocket<any>, message: any) {\n\t\tif (typeof message === 'string') {\n\t\t\tconst start = message?.charCodeAt(0)\n\n\t\t\tif (start === 34 || start === 47 || start === 91 || start === 123)\n\t\t\t\ttry {\n\t\t\t\t\tmessage = JSON.parse(message)\n\t\t\t\t} catch {\n\t\t\t\t\t// Not empty\n\t\t\t\t}\n\t\t\telse if (isNumericString(message)) message = +message\n\t\t\telse if (message === 'true') message = true\n\t\t\telse if (message === 'false') message = false\n\t\t\telse if (message === 'null') message = null\n\t\t}\n\n\t\tif (parsers)\n\t\t\tfor (let i = 0; i < parsers.length; i++) {\n\t\t\t\tlet temp = parsers[i](ws as any, message)\n\t\t\t\tif (temp instanceof Promise) temp = await temp\n\n\t\t\t\tif (temp !== undefined) return temp\n\t\t\t}\n\n\t\treturn message\n\t}\n}\n\nexport const createHandleWSResponse = (\n\tvalidateResponse: TypeCheck<any> | ElysiaTypeCheck<any> | undefined\n) => {\n\tconst handleWSResponse = (\n\t\tws: ServerWebSocket<any>,\n\t\tdata: unknown\n\t): unknown => {\n\t\tif (data instanceof Promise)\n\t\t\treturn data.then((data) => handleWSResponse(ws, data))\n\n\t\tif (Buffer.isBuffer(data)) return ws.send(data.toString())\n\n\t\tif (data === undefined) return\n\n\t\tconst send = (datum: unknown) => {\n\t\t\tif (validateResponse?.Check(datum) === false)\n\t\t\t\treturn ws.send(\n\t\t\t\t\tnew ValidationError('message', validateResponse, datum)\n\t\t\t\t\t\t.message\n\t\t\t\t)\n\n\t\t\tif (typeof datum === 'object') return ws.send(JSON.stringify(datum))\n\n\t\t\tws.send(datum)\n\t\t}\n\n\t\tif (typeof (data as Generator)?.next !== 'function')\n\t\t\treturn void send(data)\n\n\t\tconst init = (data as Generator | AsyncGenerator).next()\n\n\t\tif (init instanceof Promise)\n\t\t\treturn (async () => {\n\t\t\t\tconst first = await init\n\n\t\t\t\tif (validateResponse?.Check(first) === false)\n\t\t\t\t\treturn ws.send(\n\t\t\t\t\t\tnew ValidationError('message', validateResponse, first)\n\t\t\t\t\t\t\t.message\n\t\t\t\t\t)\n\n\t\t\t\tsend(first.value as any)\n\n\t\t\t\tif (!first.done)\n\t\t\t\t\tfor await (const datum of data as Generator) send(datum)\n\t\t\t})()\n\n\t\tsend(init.value)\n\n\t\tif (!init.done) for (const datum of data as Generator) send(datum)\n\t}\n\n\treturn handleWSResponse\n}\n\nexport type { WSLocalHook } from './types'\n",
27
27
  "/* 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 { createBunRouteHandler } from './compose'\nimport { createNativeStaticHandler } from './handler'\n\nimport { serializeCookie } from '../../cookies'\nimport { isProduction, ValidationError } from '../../error'\nimport { getSchemaValidator, } from '../../schema'\nimport {\n\thasHeaderShorthand,\n\tisNotEmpty,\n\tisNumericString,\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\tconst routes = app.config.aot\n\t\t\t\t? <Record<string, Function | Record<string, unknown>>>{}\n\t\t\t\t: undefined\n\n\t\t\tif (routes && app.config.systemRouter)\n\t\t\t\t// @ts-expect-error private property\n\t\t\t\tfor (const r of app.routeTree) {\n\t\t\t\t\tconst route = app.router.history[r[1]]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof route.handler !== 'function' ||\n\t\t\t\t\t\troute.method === '$INTERNALWS'\n\t\t\t\t\t)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\t\tif (route.method === 'ALL') {\n\t\t\t\t\t\troutes[route.path] = route.handler\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tlet compiled: Function\n\n\t\t\t\t\tconst handler = app.config.precompile\n\t\t\t\t\t\t? createBunRouteHandler(app, route)\n\t\t\t\t\t\t: (request: Request) => {\n\t\t\t\t\t\t\t\tif (compiled) return compiled(request)\n\n\t\t\t\t\t\t\t\treturn (compiled = createBunRouteHandler(\n\t\t\t\t\t\t\t\t\tapp,\n\t\t\t\t\t\t\t\t\troute\n\t\t\t\t\t\t\t\t))(request)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\tif (!(route.path in routes)) {\n\t\t\t\t\t\troutes[route.path] = {\n\t\t\t\t\t\t\t[route.method]: handler\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!(route.method in routes[route.path]) &&\n\t\t\t\t\t\ttypeof routes[route.path] === 'object'\n\t\t\t\t\t)\n\t\t\t\t\t\t// @ts-expect-error is object\n\t\t\t\t\t\troutes[route.path][route.method] = route.handler\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// @ts-expect-error\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\troutes: {\n\t\t\t\t\t\t\t\t...routes,\n\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t...app.config.serve?.routes\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twebsocket: {\n\t\t\t\t\t\t\t\t...(app.config.websocket || {}),\n\t\t\t\t\t\t\t\t...routes,\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\troutes: {\n\t\t\t\t\t\t\t\t...routes,\n\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t...app.config.serve?.routes\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twebsocket: {\n\t\t\t\t\t\t\t\t...(app.config.websocket || {}),\n\t\t\t\t\t\t\t\t...(websocket || {})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tport: options,\n\t\t\t\t\t\t\tfetch,\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 as any) as any\n\n\t\t\tif (app.event.start)\n\t\t\t\tfor (let i = 0; i < app.event.start.length; i++)\n\t\t\t\t\tapp.event.start[i].fn(app)\n\n\t\t\tif (callback) callback(app.server!)\n\n\t\t\tprocess.on('beforeExit', () => {\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: any) => {\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",
28
28
  "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",
29
29
  "import type { AnyElysia } from '.'\n\nimport { TransformDecodeError } from '@sinclair/typebox/value'\nimport { TypeCheck } from './type-system'\n\nimport type { Context } from './context'\nimport type { ElysiaTypeCheck } from './schema'\n\nimport {\n\tElysiaCustomStatusResponse,\n\tElysiaErrors,\n\terror,\n\tNotFoundError,\n\tValidationError\n} from './error'\n\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'\n\n// JIT Handler\nexport type DynamicHandler = {\n\thandle: unknown | Handler<any, any>\n\tcontent?: string\n\thooks: Partial<LifeCycleStore>\n\tvalidator?: SchemaValidator\n\troute: string\n}\n\nconst injectDefaultValues = (\n\ttypeChecker: TypeCheck<any> | ElysiaTypeCheck<any>,\n\tobj: Record<string, any>\n) => {\n\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\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\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"
30
30
  ],
31
- "mappings": "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",
32
- "debugId": "28DE6A8B71CA94A964756E2164756E21",
31
+ "mappings": "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",
32
+ "debugId": "67B5D3245D654D7F64756E2164756E21",
33
33
  "names": []
34
34
  }