@mobtakronio/capskit 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/kernel/platform.ts","../src/kernel/loader.ts"],"sourcesContent":["import { ActionHandler, ICapsKit, CapsKitConfig, CapsuleManifest, ActionInterceptor, ActionContext, ActionDefinition } from '../types';\r\nimport * as path from 'path';\r\nimport { fileURLToPath } from 'url';\r\nimport { loadCapsules } from './loader';\r\n\r\nexport class CapsKit implements ICapsKit {\r\n private actions = new Map<string, ActionDefinition>();\r\n private manifests = new Map<string, CapsuleManifest>();\r\n private interceptors: ActionInterceptor[] = [];\r\n private eventRegistry = new Map<string, string[]>();\r\n private dependencies: Record<string, any> = {};\r\n\r\n constructor(private config: CapsKitConfig) {\r\n this.dependencies = {\r\n ...config.dependencies,\r\n capskit: this\r\n };\r\n }\r\n\r\n async start(): Promise<any> {\r\n // 1. Auto-load built-in capsules\r\n try {\r\n const currentDir = path.dirname(fileURLToPath(import.meta.url));\r\n const builtinDir = path.resolve(currentDir, '../capsules');\r\n const builtinManifests = await loadCapsules(builtinDir);\r\n for (const manifest of builtinManifests) {\r\n this.registerCapsule(manifest);\r\n }\r\n } catch (error) {\r\n console.warn('[CapsKit] Could not auto-load built-in capsules:', error);\r\n }\r\n\r\n // 2. Load custom capsules from config\r\n if (this.config.capsuleDirs) {\r\n for (const dir of this.config.capsuleDirs) {\r\n const absoluteDir = path.resolve(dir);\r\n const manifests = await loadCapsules(absoluteDir);\r\n \r\n for (const manifest of manifests) {\r\n this.registerCapsule(manifest);\r\n }\r\n }\r\n }\r\n\r\n // 3. Execute boot action if specified\r\n if (this.config.boot) {\r\n return await this.call(this.config.boot.action, this.config.boot.payload || {});\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private registerCapsule(manifest: CapsuleManifest) {\r\n this.validateDependencies(manifest);\r\n this.manifests.set(manifest.name, manifest);\r\n\r\n for (const [actionName, definition] of Object.entries(manifest.actions)) {\r\n const fullName = `${manifest.name}.${actionName}`;\r\n if (typeof definition.handler === 'function') {\r\n this.actions.set(fullName, definition);\r\n } else {\r\n // In a real implementation, we would dynamic import here based on string path\r\n }\r\n }\r\n\r\n if (manifest.events?.subscribes) {\r\n for (const sub of manifest.events.subscribes) {\r\n const targetAction = `${manifest.name}.${sub.action}`;\r\n const existing = this.eventRegistry.get(sub.event) || [];\r\n existing.push(targetAction);\r\n this.eventRegistry.set(sub.event, existing);\r\n }\r\n }\r\n }\r\n\r\n private validateDependencies(manifest: CapsuleManifest) {\r\n if (manifest.requires) {\r\n for (const dep of manifest.requires) {\r\n if (!this.dependencies[dep]) {\r\n throw new Error(`Capsule \"${manifest.name}\" requires dependency \"${dep}\" which is not provided.`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n addInterceptor(interceptor: ActionInterceptor): void {\r\n this.interceptors.push(interceptor);\r\n }\r\n\r\n async call(actionName: string, payload: any): Promise<any> {\r\n const actionDef = this.actions.get(actionName);\r\n if (!actionDef) {\r\n throw new Error(`Action \"${actionName}\" not found.`);\r\n }\r\n\r\n const handler = actionDef.handler as ActionHandler;\r\n\r\n const context: ActionContext = {\r\n params: payload?.params,\r\n body: payload?.body,\r\n query: payload?.query,\r\n deps: this.dependencies,\r\n emit: this.emit.bind(this),\r\n call: this.call.bind(this),\r\n use: this.use.bind(this)\r\n };\r\n\r\n let index = -1;\r\n const dispatch = async (i: number): Promise<any> => {\r\n if (i <= index) throw new Error('next() called multiple times');\r\n index = i;\r\n if (i === this.interceptors.length) {\r\n \r\n if (actionDef.pre) {\r\n for (const hook of actionDef.pre) {\r\n await hook(payload, context);\r\n }\r\n }\r\n\r\n let result = await handler(payload, context);\r\n\r\n if (actionDef.post) {\r\n for (const hook of actionDef.post) {\r\n const hookResult = await hook(payload, result, context);\r\n if (hookResult !== undefined) {\r\n result = hookResult;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n const interceptor = this.interceptors[i];\r\n return interceptor(actionName, payload, context, () => dispatch(i + 1));\r\n };\r\n\r\n return dispatch(0);\r\n }\r\n\r\n use<TCapsule = any>(capsuleName: string): TCapsule {\r\n return new Proxy({}, {\r\n get: (_, actionName: string | symbol) => {\r\n return async (payload: any) => {\r\n const actionPath = `${capsuleName}.${String(actionName)}`;\r\n return this.call(actionPath, payload);\r\n };\r\n }\r\n }) as TCapsule;\r\n }\r\n\r\n describe(capsuleName: string): CapsuleManifest | undefined {\r\n return this.manifests.get(capsuleName);\r\n }\r\n\r\n emit(event: string, data: any): void {\r\n // Basic event emission (can be expanded with adapters later)\r\n console.log(`[Event Bus] Emitted: ${event}`);\r\n \r\n // Asynchronously dispatch to all registered subscribers\r\n const subscribers = this.eventRegistry.get(event);\r\n if (subscribers) {\r\n for (const actionName of subscribers) {\r\n // Fire and forget, but catch errors to avoid unhandled promises\r\n this.call(actionName, data).catch(err => {\r\n console.error(`[Event Bus] Subscriber action ${actionName} failed handling event ${event}:`, err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Helper for internal registry access (used by system capsule later)\r\n getManifests() {\r\n return Array.from(this.manifests.values());\r\n }\r\n}\r\n\r\nexport async function createCapsKit(config: CapsKitConfig): Promise<any> {\r\n const kit = new CapsKit(config);\r\n const bootResult = await kit.start();\r\n \r\n // Return boot results merged with the kit instance for convenience\r\n return Object.assign(bootResult || {}, { capskit: kit });\r\n}\r\n\r\n","import { CapsuleManifest } from '../types';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nexport async function loadCapsules(capsulesDir: string): Promise<CapsuleManifest[]> {\r\n const manifests: CapsuleManifest[] = [];\r\n\r\n if (!fs.existsSync(capsulesDir)) {\r\n return manifests;\r\n }\r\n\r\n const entries = fs.readdirSync(capsulesDir, { withFileTypes: true });\r\n\r\n for (const entry of entries) {\r\n if (entry.isDirectory()) {\r\n const manifestPath = path.join(capsulesDir, entry.name, 'manifest.ts');\r\n const manifestJsPath = path.join(capsulesDir, entry.name, 'manifest.js');\r\n \r\n let finalPath = '';\r\n if (fs.existsSync(manifestPath)) {\r\n finalPath = manifestPath;\r\n } else if (fs.existsSync(manifestJsPath)) {\r\n finalPath = manifestJsPath;\r\n }\r\n\r\n if (finalPath) {\r\n try {\r\n console.log(finalPath)\r\n // In Windows, absolute paths must be prefixed with file:// for dynamic import()\r\n const module = await import(`file://${finalPath}`);\r\n const manifest = module.service || module.manifest || module.default;\r\n if (manifest) {\r\n manifests.push(manifest);\r\n }\r\n } catch (error) {\r\n console.error(`Failed to load manifest at ${finalPath}:`, error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return manifests;\r\n}\r\n"],"mappings":";AACA,YAAYA,WAAU;AACtB,SAAS,qBAAqB;;;ACD9B,YAAY,QAAQ;AACpB,YAAY,UAAU;AAEtB,eAAsB,aAAa,aAAiD;AAClF,QAAM,YAA+B,CAAC;AAEtC,MAAI,CAAI,cAAW,WAAW,GAAG;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,UAAa,eAAY,aAAa,EAAE,eAAe,KAAK,CAAC;AAEnE,aAAW,SAAS,SAAS;AAC3B,QAAI,MAAM,YAAY,GAAG;AACvB,YAAM,eAAoB,UAAK,aAAa,MAAM,MAAM,aAAa;AACrE,YAAM,iBAAsB,UAAK,aAAa,MAAM,MAAM,aAAa;AAEvE,UAAI,YAAY;AAChB,UAAO,cAAW,YAAY,GAAG;AAC/B,oBAAY;AAAA,MACd,WAAc,cAAW,cAAc,GAAG;AACxC,oBAAY;AAAA,MACd;AAEA,UAAI,WAAW;AACb,YAAI;AACA,kBAAQ,IAAI,SAAS;AAEvB,gBAAM,SAAS,MAAM,OAAO,UAAU,SAAS;AAC/C,gBAAM,WAAW,OAAO,WAAW,OAAO,YAAY,OAAO;AAC7D,cAAI,UAAU;AACZ,sBAAU,KAAK,QAAQ;AAAA,UACzB;AAAA,QACF,SAAS,OAAO;AACd,kBAAQ,MAAM,8BAA8B,SAAS,KAAK,KAAK;AAAA,QACjE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;ADrCO,IAAM,UAAN,MAAkC;AAAA,EAOvC,YAAoB,QAAuB;AAAvB;AAClB,SAAK,eAAe;AAAA,MAClB,GAAG,OAAO;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAXQ,UAAU,oBAAI,IAA8B;AAAA,EAC5C,YAAY,oBAAI,IAA6B;AAAA,EAC7C,eAAoC,CAAC;AAAA,EACrC,gBAAgB,oBAAI,IAAsB;AAAA,EAC1C,eAAoC,CAAC;AAAA,EAS7C,MAAM,QAAsB;AAE1B,QAAI;AACF,YAAM,aAAkB,cAAQ,cAAc,YAAY,GAAG,CAAC;AAC9D,YAAM,aAAkB,cAAQ,YAAY,aAAa;AACzD,YAAM,mBAAmB,MAAM,aAAa,UAAU;AACtD,iBAAW,YAAY,kBAAkB;AACvC,aAAK,gBAAgB,QAAQ;AAAA,MAC/B;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,KAAK,oDAAoD,KAAK;AAAA,IACxE;AAGA,QAAI,KAAK,OAAO,aAAa;AAC3B,iBAAW,OAAO,KAAK,OAAO,aAAa;AACzC,cAAM,cAAmB,cAAQ,GAAG;AACpC,cAAM,YAAY,MAAM,aAAa,WAAW;AAEhD,mBAAW,YAAY,WAAW;AAChC,eAAK,gBAAgB,QAAQ;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AAGA,QAAI,KAAK,OAAO,MAAM;AACpB,aAAO,MAAM,KAAK,KAAK,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,KAAK,WAAW,CAAC,CAAC;AAAA,IAChF;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,gBAAgB,UAA2B;AACjD,SAAK,qBAAqB,QAAQ;AAClC,SAAK,UAAU,IAAI,SAAS,MAAM,QAAQ;AAE1C,eAAW,CAAC,YAAY,UAAU,KAAK,OAAO,QAAQ,SAAS,OAAO,GAAG;AACvE,YAAM,WAAW,GAAG,SAAS,IAAI,IAAI,UAAU;AAC/C,UAAI,OAAO,WAAW,YAAY,YAAY;AAC5C,aAAK,QAAQ,IAAI,UAAU,UAAU;AAAA,MACvC,OAAO;AAAA,MAEP;AAAA,IACF;AAEA,QAAI,SAAS,QAAQ,YAAY;AAC/B,iBAAW,OAAO,SAAS,OAAO,YAAY;AAC5C,cAAM,eAAe,GAAG,SAAS,IAAI,IAAI,IAAI,MAAM;AACnD,cAAM,WAAW,KAAK,cAAc,IAAI,IAAI,KAAK,KAAK,CAAC;AACvD,iBAAS,KAAK,YAAY;AAC1B,aAAK,cAAc,IAAI,IAAI,OAAO,QAAQ;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,qBAAqB,UAA2B;AACtD,QAAI,SAAS,UAAU;AACrB,iBAAW,OAAO,SAAS,UAAU;AACnC,YAAI,CAAC,KAAK,aAAa,GAAG,GAAG;AAC3B,gBAAM,IAAI,MAAM,YAAY,SAAS,IAAI,0BAA0B,GAAG,0BAA0B;AAAA,QAClG;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe,aAAsC;AACnD,SAAK,aAAa,KAAK,WAAW;AAAA,EACpC;AAAA,EAEA,MAAM,KAAK,YAAoB,SAA4B;AACzD,UAAM,YAAY,KAAK,QAAQ,IAAI,UAAU;AAC7C,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,WAAW,UAAU,cAAc;AAAA,IACrD;AAEA,UAAM,UAAU,UAAU;AAE1B,UAAM,UAAyB;AAAA,MAC7B,QAAQ,SAAS;AAAA,MACjB,MAAM,SAAS;AAAA,MACf,OAAO,SAAS;AAAA,MAChB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,KAAK,KAAK,IAAI;AAAA,MACzB,MAAM,KAAK,KAAK,KAAK,IAAI;AAAA,MACzB,KAAK,KAAK,IAAI,KAAK,IAAI;AAAA,IACzB;AAEA,QAAI,QAAQ;AACZ,UAAM,WAAW,OAAO,MAA4B;AAClD,UAAI,KAAK,MAAO,OAAM,IAAI,MAAM,8BAA8B;AAC9D,cAAQ;AACR,UAAI,MAAM,KAAK,aAAa,QAAQ;AAElC,YAAI,UAAU,KAAK;AACjB,qBAAW,QAAQ,UAAU,KAAK;AAChC,kBAAM,KAAK,SAAS,OAAO;AAAA,UAC7B;AAAA,QACF;AAEA,YAAI,SAAS,MAAM,QAAQ,SAAS,OAAO;AAE3C,YAAI,UAAU,MAAM;AAClB,qBAAW,QAAQ,UAAU,MAAM;AACjC,kBAAM,aAAa,MAAM,KAAK,SAAS,QAAQ,OAAO;AACtD,gBAAI,eAAe,QAAW;AAC5B,uBAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AACA,YAAM,cAAc,KAAK,aAAa,CAAC;AACvC,aAAO,YAAY,YAAY,SAAS,SAAS,MAAM,SAAS,IAAI,CAAC,CAAC;AAAA,IACxE;AAEA,WAAO,SAAS,CAAC;AAAA,EACnB;AAAA,EAEA,IAAoB,aAA+B;AACjD,WAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MACnB,KAAK,CAAC,GAAG,eAAgC;AACvC,eAAO,OAAO,YAAiB;AAC7B,gBAAM,aAAa,GAAG,WAAW,IAAI,OAAO,UAAU,CAAC;AACvD,iBAAO,KAAK,KAAK,YAAY,OAAO;AAAA,QACtC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,SAAS,aAAkD;AACzD,WAAO,KAAK,UAAU,IAAI,WAAW;AAAA,EACvC;AAAA,EAEA,KAAK,OAAe,MAAiB;AAEnC,YAAQ,IAAI,wBAAwB,KAAK,EAAE;AAG3C,UAAM,cAAc,KAAK,cAAc,IAAI,KAAK;AAChD,QAAI,aAAa;AACf,iBAAW,cAAc,aAAa;AAEpC,aAAK,KAAK,YAAY,IAAI,EAAE,MAAM,SAAO;AACvC,kBAAQ,MAAM,iCAAiC,UAAU,0BAA0B,KAAK,KAAK,GAAG;AAAA,QAClG,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AACb,WAAO,MAAM,KAAK,KAAK,UAAU,OAAO,CAAC;AAAA,EAC3C;AACF;AAEA,eAAsB,cAAc,QAAqC;AACvE,QAAM,MAAM,IAAI,QAAQ,MAAM;AAC9B,QAAM,aAAa,MAAM,IAAI,MAAM;AAGnC,SAAO,OAAO,OAAO,cAAc,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC;AACzD;","names":["path"]}
1
+ {"version":3,"sources":["../node_modules/fast-decode-uri-component/index.js","../node_modules/strtok3/lib/stream/Errors.js","../node_modules/strtok3/lib/stream/Deferred.js","../node_modules/strtok3/lib/stream/AbstractStreamReader.js","../node_modules/strtok3/lib/stream/StreamReader.js","../node_modules/strtok3/lib/stream/WebStreamReader.js","../node_modules/strtok3/lib/stream/WebStreamByobReader.js","../node_modules/strtok3/lib/stream/WebStreamDefaultReader.js","../node_modules/strtok3/lib/stream/WebStreamReaderFactory.js","../node_modules/strtok3/lib/stream/index.js","../node_modules/strtok3/lib/AbstractTokenizer.js","../node_modules/strtok3/lib/ReadStreamTokenizer.js","../node_modules/strtok3/lib/BufferTokenizer.js","../node_modules/strtok3/lib/BlobTokenizer.js","../node_modules/strtok3/lib/core.js","../node_modules/strtok3/lib/FileTokenizer.js","../node_modules/strtok3/lib/index.js","../node_modules/ieee754/index.js","../node_modules/@borewit/text-codec/lib/index.js","../node_modules/token-types/lib/index.js","../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../node_modules/debug/src/node.js","../node_modules/debug/src/index.js","../node_modules/@tokenizer/inflate/lib/ZipToken.js","../node_modules/@tokenizer/inflate/lib/ZipHandler.js","../node_modules/@tokenizer/inflate/lib/GzipHandler.js","../node_modules/@tokenizer/inflate/lib/index.js","../node_modules/uint8array-extras/index.js","../node_modules/file-type/util.js","../node_modules/file-type/supported.js","../node_modules/file-type/core.js","../node_modules/file-type/index.js","../node_modules/cookie/src/index.ts","../src/kernel/platform.ts","../src/kernel/loader.ts","../src/capsules/system/src/actions/getHealth.ts","../src/capsules/system/src/actions/listCapsules.ts","../src/capsules/system/src/actions/metrics.ts","../src/capsules/system/src/actions/audit.ts","../src/capsules/system/manifest.ts","../node_modules/memoirist/dist/index.mjs","../node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs","../node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs","../node_modules/@sinclair/typebox/build/esm/type/clone/type.mjs","../node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs","../node_modules/@sinclair/typebox/build/esm/system/policy.mjs","../node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs","../node_modules/@sinclair/typebox/build/esm/type/create/type.mjs","../node_modules/@sinclair/typebox/build/esm/type/error/error.mjs","../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs","../node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs","../node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs","../node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.mjs","../node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs","../node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs","../node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs","../node_modules/@sinclair/typebox/build/esm/type/any/any.mjs","../node_modules/@sinclair/typebox/build/esm/type/array/array.mjs","../node_modules/@sinclair/typebox/build/esm/type/argument/argument.mjs","../node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs","../node_modules/@sinclair/typebox/build/esm/type/computed/computed.mjs","../node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs","../node_modules/@sinclair/typebox/build/esm/type/never/never.mjs","../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.mjs","../node_modules/@sinclair/typebox/build/esm/type/function/function.mjs","../node_modules/@sinclair/typebox/build/esm/type/union/union-create.mjs","../node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs","../node_modules/@sinclair/typebox/build/esm/type/union/union.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.mjs","../node_modules/@sinclair/typebox/build/esm/type/literal/literal.mjs","../node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs","../node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.mjs","../node_modules/@sinclair/typebox/build/esm/type/number/number.mjs","../node_modules/@sinclair/typebox/build/esm/type/string/string.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/union.mjs","../node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs","../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs","../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.mjs","../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs","../node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.mjs","../node_modules/@sinclair/typebox/build/esm/type/object/object.mjs","../node_modules/@sinclair/typebox/build/esm/type/promise/promise.mjs","../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.mjs","../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.mjs","../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs","../node_modules/@sinclair/typebox/build/esm/type/optional/optional.mjs","../node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs","../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs","../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.mjs","../node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs","../node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.mjs","../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs","../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.mjs","../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs","../node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs","../node_modules/@sinclair/typebox/build/esm/type/date/date.mjs","../node_modules/@sinclair/typebox/build/esm/type/null/null.mjs","../node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.mjs","../node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.mjs","../node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs","../node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs","../node_modules/@sinclair/typebox/build/esm/type/const/const.mjs","../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs","../node_modules/@sinclair/typebox/build/esm/type/enum/enum.mjs","../node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.mjs","../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/extends/extends.mjs","../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs","../node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs","../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs","../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.mjs","../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs","../node_modules/@sinclair/typebox/build/esm/type/extract/extract.mjs","../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs","../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs","../node_modules/@sinclair/typebox/build/esm/type/record/record.mjs","../node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs","../node_modules/@sinclair/typebox/build/esm/type/integer/integer.mjs","../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs","../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs","../node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs","../node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs","../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs","../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs","../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs","../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs","../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs","../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs","../node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs","../node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/required/required.mjs","../node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs","../node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs","../node_modules/@sinclair/typebox/build/esm/type/module/module.mjs","../node_modules/@sinclair/typebox/build/esm/type/not/not.mjs","../node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.mjs","../node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs","../node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.mjs","../node_modules/@sinclair/typebox/build/esm/type/rest/rest.mjs","../node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs","../node_modules/@sinclair/typebox/build/esm/type/transform/transform.mjs","../node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs","../node_modules/@sinclair/typebox/build/esm/type/void/void.mjs","../node_modules/@sinclair/typebox/build/esm/type/type/type.mjs","../node_modules/@sinclair/typebox/build/esm/type/type/index.mjs","../node_modules/elysia/dist/index.mjs","../node_modules/@sinclair/typebox/build/esm/errors/function.mjs","../node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs","../node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs","../node_modules/@sinclair/typebox/build/esm/value/check/check.mjs","../node_modules/@sinclair/typebox/build/esm/errors/errors.mjs","../node_modules/@sinclair/typebox/build/esm/value/assert/assert.mjs","../node_modules/@sinclair/typebox/build/esm/value/clone/clone.mjs","../node_modules/@sinclair/typebox/build/esm/value/create/create.mjs","../node_modules/@sinclair/typebox/build/esm/value/cast/cast.mjs","../node_modules/@sinclair/typebox/build/esm/value/clean/clean.mjs","../node_modules/@sinclair/typebox/build/esm/value/convert/convert.mjs","../node_modules/@sinclair/typebox/build/esm/value/transform/decode.mjs","../node_modules/@sinclair/typebox/build/esm/value/transform/encode.mjs","../node_modules/@sinclair/typebox/build/esm/value/transform/has.mjs","../node_modules/@sinclair/typebox/build/esm/value/decode/decode.mjs","../node_modules/@sinclair/typebox/build/esm/value/default/default.mjs","../node_modules/@sinclair/typebox/build/esm/value/pointer/pointer.mjs","../node_modules/@sinclair/typebox/build/esm/value/equal/equal.mjs","../node_modules/@sinclair/typebox/build/esm/value/delta/delta.mjs","../node_modules/@sinclair/typebox/build/esm/value/encode/encode.mjs","../node_modules/@sinclair/typebox/build/esm/value/mutate/mutate.mjs","../node_modules/@sinclair/typebox/build/esm/value/parse/parse.mjs","../node_modules/@sinclair/typebox/build/esm/value/value/value.mjs","../node_modules/@sinclair/typebox/build/esm/compiler/compiler.mjs","../node_modules/elysia/dist/universal/utils.mjs","../node_modules/elysia/dist/universal/file.mjs","../node_modules/elysia/dist/utils.mjs","../node_modules/elysia/dist/error.mjs","../node_modules/elysia/dist/type-system/utils.mjs","../node_modules/elysia/dist/type-system/format.mjs","../node_modules/elysia/dist/type-system/index.mjs","../node_modules/elysia/dist/sucrose.mjs","../node_modules/elysia/dist/cookies.mjs","../node_modules/elysia/dist/universal/env.mjs","../node_modules/elysia/dist/adapter/utils.mjs","../node_modules/elysia/dist/adapter/web-standard/handler.mjs","../node_modules/elysia/dist/adapter/web-standard/index.mjs","../node_modules/elysia/dist/adapter/bun/handler.mjs","../node_modules/elysia/dist/compose.mjs","../node_modules/elysia/dist/parse-query.mjs","../node_modules/elysia/dist/trace.mjs","../node_modules/exact-mirror/dist/index.mjs","../node_modules/elysia/dist/replace-schema.mjs","../node_modules/elysia/dist/schema.mjs","../node_modules/elysia/dist/adapter/bun/compose.mjs","../node_modules/elysia/dist/adapter/bun/handler-native.mjs","../node_modules/elysia/dist/ws/index.mjs","../node_modules/elysia/dist/adapter/bun/index.mjs","../node_modules/elysia/dist/dynamic-handle.mjs","../src/capsules/http/src/adapters/elysia.ts","../src/capsules/http/src/actions/buildRouter.ts","../src/capsules/http/manifest.ts","../src/capsules/capskit-calculator/src/actions/sum.ts","../src/capsules/capskit-calculator/manifest.ts"],"sourcesContent":["'use strict'\n\nvar UTF8_ACCEPT = 12\nvar UTF8_REJECT = 0\nvar UTF8_DATA = [\n // The first part of the table maps bytes to character to a transition.\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7,\n 10, 9, 9, 9, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n\n // The second part of the table maps a state to a new state when adding a\n // transition.\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 12, 0, 0, 0, 0, 24, 36, 48, 60, 72, 84, 96,\n 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\n // The third part maps the current transition to a mask that needs to apply\n // to the byte.\n 0x7F, 0x3F, 0x3F, 0x3F, 0x00, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07\n]\n\nfunction decodeURIComponent (uri) {\n var percentPosition = uri.indexOf('%')\n if (percentPosition === -1) return uri\n\n var length = uri.length\n var decoded = ''\n var last = 0\n var codepoint = 0\n var startOfOctets = percentPosition\n var state = UTF8_ACCEPT\n\n while (percentPosition > -1 && percentPosition < length) {\n var high = hexCodeToInt(uri[percentPosition + 1], 4)\n var low = hexCodeToInt(uri[percentPosition + 2], 0)\n var byte = high | low\n var type = UTF8_DATA[byte]\n state = UTF8_DATA[256 + state + type]\n codepoint = (codepoint << 6) | (byte & UTF8_DATA[364 + type])\n\n if (state === UTF8_ACCEPT) {\n decoded += uri.slice(last, startOfOctets)\n\n decoded += (codepoint <= 0xFFFF)\n ? String.fromCharCode(codepoint)\n : String.fromCharCode(\n (0xD7C0 + (codepoint >> 10)),\n (0xDC00 + (codepoint & 0x3FF))\n )\n\n codepoint = 0\n last = percentPosition + 3\n percentPosition = startOfOctets = uri.indexOf('%', last)\n } else if (state === UTF8_REJECT) {\n return null\n } else {\n percentPosition += 3\n if (percentPosition < length && uri.charCodeAt(percentPosition) === 37) continue\n return null\n }\n }\n\n return decoded + uri.slice(last)\n}\n\nvar HEX = {\n '0': 0,\n '1': 1,\n '2': 2,\n '3': 3,\n '4': 4,\n '5': 5,\n '6': 6,\n '7': 7,\n '8': 8,\n '9': 9,\n 'a': 10,\n 'A': 10,\n 'b': 11,\n 'B': 11,\n 'c': 12,\n 'C': 12,\n 'd': 13,\n 'D': 13,\n 'e': 14,\n 'E': 14,\n 'f': 15,\n 'F': 15\n}\n\nfunction hexCodeToInt (c, shift) {\n var i = HEX[c]\n return i === undefined ? 255 : i << shift\n}\n\nmodule.exports = decodeURIComponent\n","export const defaultMessages = 'End-Of-Stream';\n/**\n * Thrown on read operation of the end of file or stream has been reached\n */\nexport class EndOfStreamError extends Error {\n constructor() {\n super(defaultMessages);\n this.name = \"EndOfStreamError\";\n }\n}\nexport class AbortError extends Error {\n constructor(message = \"The operation was aborted\") {\n super(message);\n this.name = \"AbortError\";\n }\n}\n","export class Deferred {\n constructor() {\n this.resolve = () => null;\n this.reject = () => null;\n this.promise = new Promise((resolve, reject) => {\n this.reject = reject;\n this.resolve = resolve;\n });\n }\n}\n","import { EndOfStreamError, AbortError } from \"./Errors.js\";\nexport class AbstractStreamReader {\n constructor() {\n this.endOfStream = false;\n this.interrupted = false;\n /**\n * Store peeked data\n * @type {Array}\n */\n this.peekQueue = [];\n }\n async peek(uint8Array, mayBeLess = false) {\n const bytesRead = await this.read(uint8Array, mayBeLess);\n this.peekQueue.push(uint8Array.subarray(0, bytesRead)); // Put read data back to peek buffer\n return bytesRead;\n }\n async read(buffer, mayBeLess = false) {\n if (buffer.length === 0) {\n return 0;\n }\n let bytesRead = this.readFromPeekBuffer(buffer);\n if (!this.endOfStream) {\n bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess);\n }\n if (bytesRead === 0 && !mayBeLess) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n /**\n * Read chunk from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @returns Number of bytes read\n */\n readFromPeekBuffer(buffer) {\n let remaining = buffer.length;\n let bytesRead = 0;\n // consume peeked data first\n while (this.peekQueue.length > 0 && remaining > 0) {\n const peekData = this.peekQueue.pop(); // Front of queue\n if (!peekData)\n throw new Error('peekData should be defined');\n const lenCopy = Math.min(peekData.length, remaining);\n buffer.set(peekData.subarray(0, lenCopy), bytesRead);\n bytesRead += lenCopy;\n remaining -= lenCopy;\n if (lenCopy < peekData.length) {\n // remainder back to queue\n this.peekQueue.push(peekData.subarray(lenCopy));\n }\n }\n return bytesRead;\n }\n async readRemainderFromStream(buffer, mayBeLess) {\n let bytesRead = 0;\n // Continue reading from stream if required\n while (bytesRead < buffer.length && !this.endOfStream) {\n if (this.interrupted) {\n throw new AbortError();\n }\n const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess);\n if (chunkLen === 0)\n break;\n bytesRead += chunkLen;\n }\n if (!mayBeLess && bytesRead < buffer.length) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n}\n","import { AbortError, } from './Errors.js';\nimport { Deferred } from './Deferred.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\n/**\n * Node.js Readable Stream Reader\n * Ref: https://nodejs.org/api/stream.html#readable-streams\n */\nexport class StreamReader extends AbstractStreamReader {\n constructor(s) {\n super();\n this.s = s;\n /**\n * Deferred used for postponed read request (as not data is yet available to read)\n */\n this.deferred = null;\n if (!s.read || !s.once) {\n throw new Error('Expected an instance of stream.Readable');\n }\n this.s.once('end', () => {\n this.endOfStream = true;\n if (this.deferred) {\n this.deferred.resolve(0);\n }\n });\n this.s.once('error', err => this.reject(err));\n this.s.once('close', () => this.abort());\n }\n /**\n * Read chunk from stream\n * @param buffer Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @returns Number of bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n const readBuffer = this.s.read(buffer.length);\n if (readBuffer) {\n buffer.set(readBuffer);\n return readBuffer.length;\n }\n const request = {\n buffer,\n mayBeLess,\n deferred: new Deferred()\n };\n this.deferred = request.deferred;\n this.s.once('readable', () => {\n this.readDeferred(request);\n });\n return request.deferred.promise;\n }\n /**\n * Process deferred read request\n * @param request Deferred read request\n */\n readDeferred(request) {\n const readBuffer = this.s.read(request.buffer.length);\n if (readBuffer) {\n request.buffer.set(readBuffer);\n request.deferred.resolve(readBuffer.length);\n this.deferred = null;\n }\n else {\n this.s.once('readable', () => {\n this.readDeferred(request);\n });\n }\n }\n reject(err) {\n this.interrupted = true;\n if (this.deferred) {\n this.deferred.reject(err);\n this.deferred = null;\n }\n }\n async abort() {\n this.reject(new AbortError());\n }\n async close() {\n return this.abort();\n }\n}\n","import { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamReader extends AbstractStreamReader {\n constructor(reader) {\n super();\n this.reader = reader;\n }\n async abort() {\n return this.close();\n }\n async close() {\n this.reader.releaseLock();\n }\n}\n","import { WebStreamReader } from './WebStreamReader.js';\n/**\n * Read from a WebStream using a BYOB reader\n * Reference: https://nodejs.org/api/webstreams.html#class-readablestreambyobreader\n */\nexport class WebStreamByobReader extends WebStreamReader {\n /**\n * Read from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @protected Bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n // @ts-ignore\n const result = await this.reader.read(new Uint8Array(buffer.length), { min: mayBeLess ? undefined : buffer.length });\n if (result.done) {\n this.endOfStream = result.done;\n }\n if (result.value) {\n buffer.set(result.value);\n return result.value.length;\n }\n return 0;\n }\n}\n","import { EndOfStreamError } from './Errors.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamDefaultReader extends AbstractStreamReader {\n constructor(reader) {\n super();\n this.reader = reader;\n this.buffer = null; // Internal buffer to store excess data\n }\n /**\n * Copy chunk to target, and store the remainder in this.buffer\n */\n writeChunk(target, chunk) {\n const written = Math.min(chunk.length, target.length);\n target.set(chunk.subarray(0, written));\n // Adjust the remainder of the buffer\n if (written < chunk.length) {\n this.buffer = chunk.subarray(written);\n }\n else {\n this.buffer = null;\n }\n return written;\n }\n /**\n * Read from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @protected Bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n let totalBytesRead = 0;\n // Serve from the internal buffer first\n if (this.buffer) {\n totalBytesRead += this.writeChunk(buffer, this.buffer);\n }\n // Continue reading from the stream if more data is needed\n while (totalBytesRead < buffer.length && !this.endOfStream) {\n const result = await this.reader.read();\n if (result.done) {\n this.endOfStream = true;\n break;\n }\n if (result.value) {\n totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value);\n }\n }\n if (!mayBeLess && totalBytesRead === 0 && this.endOfStream) {\n throw new EndOfStreamError();\n }\n return totalBytesRead;\n }\n abort() {\n this.interrupted = true;\n return this.reader.cancel();\n }\n async close() {\n await this.abort();\n this.reader.releaseLock();\n }\n}\n","import { WebStreamByobReader } from './WebStreamByobReader.js';\nimport { WebStreamDefaultReader } from './WebStreamDefaultReader.js';\nexport function makeWebStreamReader(stream) {\n try {\n const reader = stream.getReader({ mode: \"byob\" });\n if (reader instanceof ReadableStreamDefaultReader) {\n // Fallback to default reader in case `mode: byob` is ignored\n return new WebStreamDefaultReader(reader);\n }\n return new WebStreamByobReader(reader);\n }\n catch (error) {\n if (error instanceof TypeError) {\n // Fallback to default reader in case `mode: byob` rejected by a `TypeError`\n return new WebStreamDefaultReader(stream.getReader());\n }\n throw error;\n }\n}\n","export { AbortError, EndOfStreamError } from './Errors.js';\nexport { StreamReader } from './StreamReader.js';\nexport { WebStreamByobReader } from './WebStreamByobReader.js';\nexport { WebStreamDefaultReader } from './WebStreamDefaultReader.js';\nexport { makeWebStreamReader } from './WebStreamReaderFactory.js';\n","import { EndOfStreamError } from './stream/index.js';\n/**\n * Core tokenizer\n */\nexport class AbstractTokenizer {\n /**\n * Constructor\n * @param options Tokenizer options\n * @protected\n */\n constructor(options) {\n this.numBuffer = new Uint8Array(8);\n /**\n * Tokenizer-stream position\n */\n this.position = 0;\n this.onClose = options?.onClose;\n if (options?.abortSignal) {\n options.abortSignal.addEventListener('abort', () => {\n this.abort();\n });\n }\n }\n /**\n * Read a token from the tokenizer-stream\n * @param token - The token to read\n * @param position - If provided, the desired position in the tokenizer-stream\n * @returns Promise with token data\n */\n async readToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.readBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Peek a token from the tokenizer-stream.\n * @param token - Token to peek from the tokenizer-stream.\n * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\n * @returns Promise with token data\n */\n async peekToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.peekBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async readNumber(token) {\n const len = await this.readBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async peekNumber(token) {\n const len = await this.peekBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n * @param length - Number of bytes to ignore\n * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\n */\n async ignore(length) {\n if (this.fileInfo.size !== undefined) {\n const bytesLeft = this.fileInfo.size - this.position;\n if (length > bytesLeft) {\n this.position += bytesLeft;\n return bytesLeft;\n }\n }\n this.position += length;\n return length;\n }\n async close() {\n await this.abort();\n await this.onClose?.();\n }\n normalizeOptions(uint8Array, options) {\n if (!this.supportsRandomAccess() && options && options.position !== undefined && options.position < this.position) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n return {\n ...{\n mayBeLess: false,\n offset: 0,\n length: uint8Array.length,\n position: this.position\n }, ...options\n };\n }\n abort() {\n return Promise.resolve(); // Ignore abort signal\n }\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from './stream/index.js';\nconst maxBufferSize = 256000;\nexport class ReadStreamTokenizer extends AbstractTokenizer {\n /**\n * Constructor\n * @param streamReader stream-reader to read from\n * @param options Tokenizer options\n */\n constructor(streamReader, options) {\n super(options);\n this.streamReader = streamReader;\n this.fileInfo = options?.fileInfo ?? {};\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream\n * @param options - Read behaviour options\n * @returns Promise with number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const skipBytes = normOptions.position - this.position;\n if (skipBytes > 0) {\n await this.ignore(skipBytes);\n return this.readBuffer(uint8Array, options);\n }\n if (skipBytes < 0) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n if (normOptions.length === 0) {\n return 0;\n }\n const bytesRead = await this.streamReader.read(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n this.position += bytesRead;\n if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise with number of bytes peeked\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n let bytesRead = 0;\n if (normOptions.position) {\n const skipBytes = normOptions.position - this.position;\n if (skipBytes > 0) {\n const skipBuffer = new Uint8Array(normOptions.length + skipBytes);\n bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });\n uint8Array.set(skipBuffer.subarray(skipBytes));\n return bytesRead - skipBytes;\n }\n if (skipBytes < 0) {\n throw new Error('Cannot peek from a negative offset in a stream');\n }\n }\n if (normOptions.length > 0) {\n try {\n bytesRead = await this.streamReader.peek(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n }\n catch (err) {\n if (options?.mayBeLess && err instanceof EndOfStreamError) {\n return 0;\n }\n throw err;\n }\n if ((!normOptions.mayBeLess) && bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n }\n return bytesRead;\n }\n async ignore(length) {\n // debug(`ignore ${this.position}...${this.position + length - 1}`);\n const bufSize = Math.min(maxBufferSize, length);\n const buf = new Uint8Array(bufSize);\n let totBytesRead = 0;\n while (totBytesRead < length) {\n const remaining = length - totBytesRead;\n const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });\n if (bytesRead < 0) {\n return bytesRead;\n }\n totBytesRead += bytesRead;\n }\n return totBytesRead;\n }\n abort() {\n return this.streamReader.abort();\n }\n async close() {\n return this.streamReader.close();\n }\n supportsRandomAccess() {\n return false;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BufferTokenizer extends AbstractTokenizer {\n /**\n * Construct BufferTokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options Tokenizer options\n */\n constructor(uint8Array, options) {\n super(options);\n this.uint8Array = uint8Array;\n this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } };\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async readBuffer(uint8Array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const bytesRead = await this.peekBuffer(uint8Array, options);\n this.position += bytesRead;\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8Array\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n throw new EndOfStreamError();\n }\n uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));\n return bytes2read;\n }\n close() {\n return super.close();\n }\n supportsRandomAccess() {\n return true;\n }\n setPosition(position) {\n this.position = position;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BlobTokenizer extends AbstractTokenizer {\n /**\n * Construct BufferTokenizer\n * @param blob - Uint8Array to tokenize\n * @param options Tokenizer options\n */\n constructor(blob, options) {\n super(options);\n this.blob = blob;\n this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: blob.size, mimeType: blob.type } };\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async readBuffer(uint8Array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const bytesRead = await this.peekBuffer(uint8Array, options);\n this.position += bytesRead;\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param buffer\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async peekBuffer(buffer, options) {\n const normOptions = this.normalizeOptions(buffer, options);\n const bytes2read = Math.min(this.blob.size - normOptions.position, normOptions.length);\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n throw new EndOfStreamError();\n }\n const arrayBuffer = await this.blob.slice(normOptions.position, normOptions.position + bytes2read).arrayBuffer();\n buffer.set(new Uint8Array(arrayBuffer));\n return bytes2read;\n }\n close() {\n return super.close();\n }\n supportsRandomAccess() {\n return true;\n }\n setPosition(position) {\n this.position = position;\n }\n}\n","import { StreamReader, makeWebStreamReader } from './stream/index.js';\nimport { ReadStreamTokenizer } from './ReadStreamTokenizer.js';\nimport { BufferTokenizer } from './BufferTokenizer.js';\nimport { BlobTokenizer } from './BlobTokenizer.js';\nexport { EndOfStreamError, AbortError } from './stream/index.js';\nexport { AbstractTokenizer } from './AbstractTokenizer.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param stream - Read from Node.js Stream.Readable\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromStream(stream, options) {\n const streamReader = new StreamReader(stream);\n const _options = options ?? {};\n const chainedClose = _options.onClose;\n _options.onClose = async () => {\n await streamReader.close();\n if (chainedClose) {\n return chainedClose();\n }\n };\n return new ReadStreamTokenizer(streamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given ReadableStream (WebStream API).\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param webStream - Read from Node.js Stream.Readable (must be a byte stream)\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromWebStream(webStream, options) {\n const webStreamReader = makeWebStreamReader(webStream);\n const _options = options ?? {};\n const chainedClose = _options.onClose;\n _options.onClose = async () => {\n await webStreamReader.close();\n if (chainedClose) {\n return chainedClose();\n }\n };\n return new ReadStreamTokenizer(webStreamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given Buffer.\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBuffer(uint8Array, options) {\n return new BufferTokenizer(uint8Array, options);\n}\n/**\n * Construct ReadStreamTokenizer from given Blob.\n * @param blob - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBlob(blob, options) {\n return new BlobTokenizer(blob, options);\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from './stream/index.js';\nimport { open as fsOpen } from 'node:fs/promises';\nexport class FileTokenizer extends AbstractTokenizer {\n /**\n * Create tokenizer from provided file path\n * @param sourceFilePath File path\n */\n static async fromFile(sourceFilePath) {\n const fileHandle = await fsOpen(sourceFilePath, 'r');\n const stat = await fileHandle.stat();\n return new FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });\n }\n constructor(fileHandle, options) {\n super(options);\n this.fileHandle = fileHandle;\n this.fileInfo = options.fileInfo;\n }\n /**\n * Read buffer from file\n * @param uint8Array - Uint8Array to write result to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n this.position = normOptions.position;\n if (normOptions.length === 0)\n return 0;\n const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n this.position += res.bytesRead;\n if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n /**\n * Peek buffer from file\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n async close() {\n await this.fileHandle.close();\n return super.close();\n }\n setPosition(position) {\n this.position = position;\n }\n supportsRandomAccess() {\n return true;\n }\n}\n","import { stat as fsStat } from 'node:fs/promises';\nimport { fromStream as coreFromStream } from './core.js';\nimport { FileTokenizer } from \"./FileTokenizer.js\";\nexport { FileTokenizer } from './FileTokenizer.js';\nexport * from './core.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property.\n * @param stream - Node.js Stream.Readable\n * @param options - Pass additional file information to the tokenizer\n * @returns Tokenizer\n */\nexport async function fromStream(stream, options) {\n const rst = coreFromStream(stream, options);\n if (stream.path) {\n const stat = await fsStat(stream.path);\n rst.fileInfo.path = stream.path;\n rst.fileInfo.size = stat.size;\n }\n return rst;\n}\nexport const fromFile = FileTokenizer.fromFile;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","const WINDOWS_1252_EXTRA = {\n 0x80: \"€\", 0x82: \"‚\", 0x83: \"ƒ\", 0x84: \"„\", 0x85: \"…\", 0x86: \"†\",\n 0x87: \"‡\", 0x88: \"ˆ\", 0x89: \"‰\", 0x8a: \"Š\", 0x8b: \"‹\", 0x8c: \"Œ\",\n 0x8e: \"Ž\", 0x91: \"‘\", 0x92: \"’\", 0x93: \"“\", 0x94: \"”\", 0x95: \"•\",\n 0x96: \"–\", 0x97: \"—\", 0x98: \"˜\", 0x99: \"™\", 0x9a: \"š\", 0x9b: \"›\",\n 0x9c: \"œ\", 0x9e: \"ž\", 0x9f: \"Ÿ\",\n};\nconst WINDOWS_1252_REVERSE = {};\nfor (const [code, char] of Object.entries(WINDOWS_1252_EXTRA)) {\n WINDOWS_1252_REVERSE[char] = Number.parseInt(code, 10);\n}\n// ---------- Cached decoders/encoders ----------\nlet _utf8Decoder;\nlet _utf8Encoder;\nfunction utf8Decoder() {\n if (typeof globalThis.TextDecoder === \"undefined\")\n return undefined;\n return (_utf8Decoder !== null && _utf8Decoder !== void 0 ? _utf8Decoder : (_utf8Decoder = new globalThis.TextDecoder(\"utf-8\")));\n}\nfunction utf8Encoder() {\n if (typeof globalThis.TextEncoder === \"undefined\")\n return undefined;\n return (_utf8Encoder !== null && _utf8Encoder !== void 0 ? _utf8Encoder : (_utf8Encoder = new globalThis.TextEncoder()));\n}\n// Safe chunk size well under your measured ~105k cliff.\n// 32k keeps memory reasonable and is plenty fast.\nconst CHUNK = 32 * 1024;\n/**\n * Decode text from binary data\n * @param bytes Binary data\n * @param encoding Encoding\n */\nexport function textDecode(bytes, encoding = \"utf-8\") {\n switch (encoding.toLowerCase()) {\n case \"utf-8\":\n case \"utf8\": {\n const dec = utf8Decoder();\n return dec ? dec.decode(bytes) : decodeUTF8(bytes);\n }\n case \"utf-16le\":\n return decodeUTF16LE(bytes);\n case \"us-ascii\":\n case \"ascii\":\n return decodeASCII(bytes);\n case \"latin1\":\n case \"iso-8859-1\":\n return decodeLatin1(bytes);\n case \"windows-1252\":\n return decodeWindows1252(bytes);\n default:\n throw new RangeError(`Encoding '${encoding}' not supported`);\n }\n}\nexport function textEncode(input = \"\", encoding = \"utf-8\") {\n switch (encoding.toLowerCase()) {\n case \"utf-8\":\n case \"utf8\": {\n const enc = utf8Encoder();\n return enc ? enc.encode(input) : encodeUTF8(input);\n }\n case \"utf-16le\":\n return encodeUTF16LE(input);\n case \"us-ascii\":\n case \"ascii\":\n return encodeASCII(input);\n case \"latin1\":\n case \"iso-8859-1\":\n return encodeLatin1(input);\n case \"windows-1252\":\n return encodeWindows1252(input);\n default:\n throw new RangeError(`Encoding '${encoding}' not supported`);\n }\n}\n// --- Internal helpers ---\nfunction decodeUTF8(bytes) {\n const parts = [];\n let out = \"\";\n let i = 0;\n while (i < bytes.length) {\n const b1 = bytes[i++];\n if (b1 < 0x80) {\n out += String.fromCharCode(b1);\n }\n else if (b1 < 0xe0) {\n const b2 = bytes[i++] & 0x3f;\n out += String.fromCharCode(((b1 & 0x1f) << 6) | b2);\n }\n else if (b1 < 0xf0) {\n const b2 = bytes[i++] & 0x3f;\n const b3 = bytes[i++] & 0x3f;\n out += String.fromCharCode(((b1 & 0x0f) << 12) | (b2 << 6) | b3);\n }\n else {\n const b2 = bytes[i++] & 0x3f;\n const b3 = bytes[i++] & 0x3f;\n const b4 = bytes[i++] & 0x3f;\n let cp = ((b1 & 0x07) << 18) | (b2 << 12) | (b3 << 6) | b4;\n cp -= 0x10000;\n out += String.fromCharCode(0xd800 + ((cp >> 10) & 0x3ff), 0xdc00 + (cp & 0x3ff));\n }\n if (out.length >= CHUNK) {\n parts.push(out);\n out = \"\";\n }\n }\n if (out)\n parts.push(out);\n return parts.join(\"\");\n}\nfunction decodeUTF16LE(bytes) {\n // Use chunked fromCharCode on 16-bit code units.\n // If odd length, ignore trailing byte (common behavior).\n const len = bytes.length & ~1;\n if (len === 0)\n return \"\";\n const parts = [];\n // Build a temporary code-unit array per chunk.\n const maxUnits = CHUNK; // CHUNK code units per chunk\n for (let i = 0; i < len;) {\n const unitsThis = Math.min(maxUnits, (len - i) >> 1);\n const units = new Array(unitsThis);\n for (let j = 0; j < unitsThis; j++, i += 2) {\n units[j] = bytes[i] | (bytes[i + 1] << 8);\n }\n parts.push(String.fromCharCode.apply(null, units));\n }\n return parts.join(\"\");\n}\nfunction decodeASCII(bytes) {\n // 7-bit ASCII: mask high bit. (Kept to match your original semantics.)\n const parts = [];\n for (let i = 0; i < bytes.length; i += CHUNK) {\n const end = Math.min(bytes.length, i + CHUNK);\n const codes = new Array(end - i);\n for (let j = i, k = 0; j < end; j++, k++) {\n codes[k] = bytes[j] & 0x7f;\n }\n parts.push(String.fromCharCode.apply(null, codes));\n }\n return parts.join(\"\");\n}\nfunction decodeLatin1(bytes) {\n // Latin-1 is 0x00..0xFF direct mapping; avoid spread.\n const parts = [];\n for (let i = 0; i < bytes.length; i += CHUNK) {\n const end = Math.min(bytes.length, i + CHUNK);\n const codes = new Array(end - i);\n for (let j = i, k = 0; j < end; j++, k++) {\n codes[k] = bytes[j];\n }\n parts.push(String.fromCharCode.apply(null, codes));\n }\n return parts.join(\"\");\n}\nfunction decodeWindows1252(bytes) {\n // Only 0x80..0x9F need mapping; others are direct 1-byte codes.\n const parts = [];\n let out = \"\";\n for (let i = 0; i < bytes.length; i++) {\n const b = bytes[i];\n const extra = b >= 0x80 && b <= 0x9f ? WINDOWS_1252_EXTRA[b] : undefined;\n out += extra !== null && extra !== void 0 ? extra : String.fromCharCode(b);\n if (out.length >= CHUNK) {\n parts.push(out);\n out = \"\";\n }\n }\n if (out)\n parts.push(out);\n return parts.join(\"\");\n}\nfunction encodeUTF8(str) {\n const out = [];\n for (let i = 0; i < str.length; i++) {\n let cp = str.charCodeAt(i);\n // surrogate pair\n if (cp >= 0xd800 && cp <= 0xdbff && i + 1 < str.length) {\n const lo = str.charCodeAt(i + 1);\n if (lo >= 0xdc00 && lo <= 0xdfff) {\n cp = 0x10000 + ((cp - 0xd800) << 10) + (lo - 0xdc00);\n i++;\n }\n }\n if (cp < 0x80) {\n out.push(cp);\n }\n else if (cp < 0x800) {\n out.push(0xc0 | (cp >> 6), 0x80 | (cp & 0x3f));\n }\n else if (cp < 0x10000) {\n out.push(0xe0 | (cp >> 12), 0x80 | ((cp >> 6) & 0x3f), 0x80 | (cp & 0x3f));\n }\n else {\n out.push(0xf0 | (cp >> 18), 0x80 | ((cp >> 12) & 0x3f), 0x80 | ((cp >> 6) & 0x3f), 0x80 | (cp & 0x3f));\n }\n }\n return new Uint8Array(out);\n}\nfunction encodeUTF16LE(str) {\n const out = new Uint8Array(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n const o = i * 2;\n out[o] = code & 0xff;\n out[o + 1] = code >>> 8;\n }\n return out;\n}\nfunction encodeASCII(str) {\n // 7-bit ASCII: mask high bit\n const out = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++)\n out[i] = str.charCodeAt(i) & 0x7f;\n return out;\n}\nfunction encodeLatin1(str) {\n const out = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++)\n out[i] = str.charCodeAt(i) & 0xff;\n return out;\n}\nfunction encodeWindows1252(str) {\n const out = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n const ch = str[i];\n const code = ch.charCodeAt(0);\n if (code <= 0xff) {\n out[i] = code;\n continue;\n }\n const mapped = WINDOWS_1252_REVERSE[ch];\n out[i] = mapped !== undefined ? mapped : 0x3f; // '?'\n }\n return out;\n}\n","import * as ieee754 from 'ieee754';\nimport { textDecode } from \"@borewit/text-codec\";\n// Primitive types\nfunction dv(array) {\n return new DataView(array.buffer, array.byteOffset);\n}\n/*\n * 8-bit unsigned integer\n */\nexport const UINT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getUint8(offset);\n },\n put(array, offset, value) {\n dv(array).setUint8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit unsigned integer, Little Endian byte order\n */\nexport const UINT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 16-bit unsigned integer, Big Endian byte order\n */\nexport const UINT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 24-bit unsigned integer, Little Endian byte order\n */\nexport const UINT24_LE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit unsigned integer, Big Endian byte order\n */\nexport const UINT24_BE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit unsigned integer, Little Endian byte order\n */\nexport const UINT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 32-bit unsigned integer, Big Endian byte order\n */\nexport const UINT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 8-bit signed integer\n */\nexport const INT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getInt8(offset);\n },\n put(array, offset, value) {\n dv(array).setInt8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit signed integer, Big Endian byte order\n */\nexport const INT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 16-bit signed integer, Little Endian byte order\n */\nexport const INT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 24-bit signed integer, Little Endian byte order\n */\nexport const INT24_LE = {\n len: 3,\n get(array, offset) {\n const unsigned = UINT24_LE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit signed integer, Big Endian byte order\n */\nexport const INT24_BE = {\n len: 3,\n get(array, offset) {\n const unsigned = UINT24_BE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 64-bit unsigned integer, Little Endian byte order\n */\nexport const UINT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Little Endian byte order\n */\nexport const INT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit unsigned integer, Big Endian byte order\n */\nexport const UINT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Big Endian byte order\n */\nexport const INT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, big endian\n */\nexport const Float16_BE = {\n len: 2,\n get(dataView, offset) {\n return ieee754.read(dataView, offset, false, 10, this.len);\n },\n put(dataView, offset, value) {\n ieee754.write(dataView, value, offset, false, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, little endian\n */\nexport const Float16_LE = {\n len: 2,\n get(array, offset) {\n return ieee754.read(array, offset, true, 10, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, true, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, big endian\n */\nexport const Float32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, little endian\n */\nexport const Float32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, big endian\n */\nexport const Float64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, little endian\n */\nexport const Float64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, big endian\n */\nexport const Float80_BE = {\n len: 10,\n get(array, offset) {\n return ieee754.read(array, offset, false, 63, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, false, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, little endian\n */\nexport const Float80_LE = {\n len: 10,\n get(array, offset) {\n return ieee754.read(array, offset, true, 63, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, true, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * Ignore a given number of bytes\n */\nexport class IgnoreType {\n /**\n * @param len number of bytes to ignore\n */\n constructor(len) {\n this.len = len;\n }\n // ToDo: don't read, but skip data\n get(_array, _off) {\n }\n}\nexport class Uint8ArrayType {\n constructor(len) {\n this.len = len;\n }\n get(array, offset) {\n return array.subarray(offset, offset + this.len);\n }\n}\n/**\n * Consume a fixed number of bytes from the stream and return a string with a specified encoding.\n * Supports all encodings supported by TextDecoder, plus 'windows-1252'.\n */\nexport class StringType {\n constructor(len, encoding) {\n this.len = len;\n this.encoding = encoding;\n }\n get(data, offset = 0) {\n const bytes = data.subarray(offset, offset + this.len);\n return textDecode(bytes, this.encoding);\n }\n}\n/**\n * ANSI Latin 1 String using Windows-1252 (Code Page 1252)\n * Windows-1252 is a superset of ISO 8859-1 / Latin-1.\n */\nexport class AnsiStringType extends StringType {\n constructor(len) {\n super(len, 'windows-1252');\n }\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Ref https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT\n */\nimport { UINT16_LE, UINT32_LE } from \"token-types\";\nexport const Signature = {\n LocalFileHeader: 0x04034b50,\n DataDescriptor: 0x08074b50,\n CentralFileHeader: 0x02014b50,\n EndOfCentralDirectory: 0x06054b50\n};\nexport const DataDescriptor = {\n get(array) {\n return {\n signature: UINT32_LE.get(array, 0),\n compressedSize: UINT32_LE.get(array, 8),\n uncompressedSize: UINT32_LE.get(array, 12),\n };\n }, len: 16\n};\n/**\n * First part of the ZIP Local File Header\n * Offset | Bytes| Description\n * -------|------+-------------------------------------------------------------------\n * 0 | 4 | Signature (0x04034b50)\n * 4 | 2 | Minimum version needed to extract\n * 6 | 2 | Bit flag\n * 8 | 2 | Compression method\n * 10 | 2 | File last modification time (MS-DOS format)\n * 12 | 2 | File last modification date (MS-DOS format)\n * 14 | 4 | CRC-32 of uncompressed data\n * 18 | 4 | Compressed size\n * 22 | 4 | Uncompressed size\n * 26 | 2 | File name length (n)\n * 28 | 2 | Extra field length (m)\n * 30 | n | File name\n * 30 + n | m | Extra field\n */\nexport const LocalFileHeaderToken = {\n get(array) {\n const flags = UINT16_LE.get(array, 6);\n return {\n signature: UINT32_LE.get(array, 0),\n minVersion: UINT16_LE.get(array, 4),\n dataDescriptor: !!(flags & 0x0008),\n compressedMethod: UINT16_LE.get(array, 8),\n compressedSize: UINT32_LE.get(array, 18),\n uncompressedSize: UINT32_LE.get(array, 22),\n filenameLength: UINT16_LE.get(array, 26),\n extraFieldLength: UINT16_LE.get(array, 28),\n filename: null\n };\n }, len: 30\n};\n/**\n * 4.3.16 End of central directory record:\n * end of central dir signature (0x06064b50) 4 bytes\n * number of this disk 2 bytes\n * number of the disk with the start of the central directory 2 bytes\n * total number of entries in the central directory on this disk 2 bytes\n * total number of entries in the size of the central directory 2 bytes\n * sizeOfTheCentralDirectory 4 bytes\n * offset of start of central directory with respect to the starting disk number 4 bytes\n * .ZIP file comment length 2 bytes\n * .ZIP file comment (variable size)\n */\nexport const EndOfCentralDirectoryRecordToken = {\n get(array) {\n return {\n signature: UINT32_LE.get(array, 0),\n nrOfThisDisk: UINT16_LE.get(array, 4),\n nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6),\n nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8),\n nrOfEntriesOfSize: UINT16_LE.get(array, 10),\n sizeOfCd: UINT32_LE.get(array, 12),\n offsetOfStartOfCd: UINT32_LE.get(array, 16),\n zipFileCommentLength: UINT16_LE.get(array, 20),\n };\n }, len: 22\n};\n/**\n * File header:\n * central file header signature 4 bytes 0 (0x02014b50)\n * version made by 2 bytes 4\n * version needed to extract 2 bytes 6\n * general purpose bit flag 2 bytes 8\n * compression method 2 bytes 10\n * last mod file time 2 bytes 12\n * last mod file date 2 bytes 14\n * crc-32 4 bytes 16\n * compressed size 4 bytes 20\n * uncompressed size 4 bytes 24\n * file name length 2 bytes 28\n * extra field length 2 bytes 30\n * file comment length 2 bytes 32\n * disk number start 2 bytes 34\n * internal file attributes 2 bytes 36\n * external file attributes 4 bytes 38\n * relative offset of local header 4 bytes 42\n */\nexport const FileHeader = {\n get(array) {\n const flags = UINT16_LE.get(array, 8);\n return {\n signature: UINT32_LE.get(array, 0),\n minVersion: UINT16_LE.get(array, 6),\n dataDescriptor: !!(flags & 0x0008),\n compressedMethod: UINT16_LE.get(array, 10),\n compressedSize: UINT32_LE.get(array, 20),\n uncompressedSize: UINT32_LE.get(array, 24),\n filenameLength: UINT16_LE.get(array, 28),\n extraFieldLength: UINT16_LE.get(array, 30),\n fileCommentLength: UINT16_LE.get(array, 32),\n relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42),\n filename: null\n };\n }, len: 46\n};\n","import { StringType, UINT32_LE } from 'token-types';\nimport initDebug from 'debug';\nimport { DataDescriptor, EndOfCentralDirectoryRecordToken, FileHeader, LocalFileHeaderToken, Signature } from \"./ZipToken.js\";\nfunction signatureToArray(signature) {\n const signatureBytes = new Uint8Array(UINT32_LE.len);\n UINT32_LE.put(signatureBytes, 0, signature);\n return signatureBytes;\n}\nconst debug = initDebug('tokenizer:inflate');\nconst syncBufferSize = 256 * 1024;\nconst ddSignatureArray = signatureToArray(Signature.DataDescriptor);\nconst eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory);\nexport class ZipHandler {\n constructor(tokenizer) {\n this.tokenizer = tokenizer;\n this.syncBuffer = new Uint8Array(syncBufferSize);\n }\n async isZip() {\n return await this.peekSignature() === Signature.LocalFileHeader;\n }\n peekSignature() {\n return this.tokenizer.peekToken(UINT32_LE);\n }\n async findEndOfCentralDirectoryLocator() {\n const randomReadTokenizer = this.tokenizer;\n const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size);\n const buffer = this.syncBuffer.subarray(0, chunkLength);\n await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength });\n // Search the buffer from end to beginning for EOCD signature\n // const signature = 0x06054b50;\n for (let i = buffer.length - 4; i >= 0; i--) {\n // Compare 4 bytes directly without calling readUInt32LE\n if (buffer[i] === eocdSignatureBytes[0] &&\n buffer[i + 1] === eocdSignatureBytes[1] &&\n buffer[i + 2] === eocdSignatureBytes[2] &&\n buffer[i + 3] === eocdSignatureBytes[3]) {\n return randomReadTokenizer.fileInfo.size - chunkLength + i;\n }\n }\n return -1;\n }\n async readCentralDirectory() {\n if (!this.tokenizer.supportsRandomAccess()) {\n debug('Cannot reading central-directory without random-read support');\n return;\n }\n debug('Reading central-directory...');\n const pos = this.tokenizer.position;\n const offset = await this.findEndOfCentralDirectoryLocator();\n if (offset > 0) {\n debug('Central-directory 32-bit signature found');\n const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset);\n const files = [];\n this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd);\n for (let n = 0; n < eocdHeader.nrOfEntriesOfSize; ++n) {\n const entry = await this.tokenizer.readToken(FileHeader);\n if (entry.signature !== Signature.CentralFileHeader) {\n throw new Error('Expected Central-File-Header signature');\n }\n entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, 'utf-8'));\n await this.tokenizer.ignore(entry.extraFieldLength);\n await this.tokenizer.ignore(entry.fileCommentLength);\n files.push(entry);\n debug(`Add central-directory file-entry: n=${n + 1}/${files.length}: filename=${files[n].filename}`);\n }\n this.tokenizer.setPosition(pos);\n return files;\n }\n this.tokenizer.setPosition(pos);\n }\n async unzip(fileCb) {\n const entries = await this.readCentralDirectory();\n if (entries) {\n // Use Central Directory to iterate over files\n return this.iterateOverCentralDirectory(entries, fileCb);\n }\n // Scan Zip files for local-file-header\n let stop = false;\n do {\n const zipHeader = await this.readLocalFileHeader();\n if (!zipHeader)\n break;\n const next = fileCb(zipHeader);\n stop = !!next.stop;\n let fileData;\n await this.tokenizer.ignore(zipHeader.extraFieldLength);\n if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) {\n const chunks = [];\n let len = syncBufferSize;\n debug('Compressed-file-size unknown, scanning for next data-descriptor-signature....');\n let nextHeaderIndex = -1;\n while (nextHeaderIndex < 0 && len === syncBufferSize) {\n len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true });\n nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray);\n const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len;\n if (next.handler) {\n const data = new Uint8Array(size);\n await this.tokenizer.readBuffer(data);\n chunks.push(data);\n }\n else {\n // Move position to the next header if found, skip the whole buffer otherwise\n await this.tokenizer.ignore(size);\n }\n }\n debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`);\n if (next.handler) {\n await this.inflate(zipHeader, mergeArrays(chunks), next.handler);\n }\n }\n else {\n if (next.handler) {\n debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`);\n fileData = new Uint8Array(zipHeader.compressedSize);\n await this.tokenizer.readBuffer(fileData);\n await this.inflate(zipHeader, fileData, next.handler);\n }\n else {\n debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`);\n await this.tokenizer.ignore(zipHeader.compressedSize);\n }\n }\n debug(`Reading data-descriptor at pos=${this.tokenizer.position}`);\n if (zipHeader.dataDescriptor) {\n // await this.tokenizer.ignore(DataDescriptor.len);\n const dataDescriptor = await this.tokenizer.readToken(DataDescriptor);\n if (dataDescriptor.signature !== 0x08074b50) {\n throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`);\n }\n }\n } while (!stop);\n }\n async iterateOverCentralDirectory(entries, fileCb) {\n for (const fileHeader of entries) {\n const next = fileCb(fileHeader);\n if (next.handler) {\n this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader);\n const zipHeader = await this.readLocalFileHeader();\n if (zipHeader) {\n await this.tokenizer.ignore(zipHeader.extraFieldLength);\n const fileData = new Uint8Array(fileHeader.compressedSize);\n await this.tokenizer.readBuffer(fileData);\n await this.inflate(zipHeader, fileData, next.handler);\n }\n }\n if (next.stop)\n break;\n }\n }\n async inflate(zipHeader, fileData, cb) {\n if (zipHeader.compressedMethod === 0) {\n // Stored (uncompressed)\n return cb(fileData);\n }\n if (zipHeader.compressedMethod !== 8) {\n throw new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`);\n }\n debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`);\n const uncompressedData = await ZipHandler.decompressDeflateRaw(fileData);\n return cb(uncompressedData);\n }\n static async decompressDeflateRaw(data) {\n // Wrap Uint8Array in a ReadableStream without copying\n const input = new ReadableStream({\n start(controller) {\n controller.enqueue(data);\n controller.close();\n }\n });\n const ds = new DecompressionStream(\"deflate-raw\");\n const output = input.pipeThrough(ds);\n try {\n // Collect decompressed bytes from the output stream\n const response = new Response(output);\n const buffer = await response.arrayBuffer();\n return new Uint8Array(buffer);\n }\n catch (err) {\n // Provide ZIP-specific error context\n const message = err instanceof Error\n ? `Failed to deflate ZIP entry: ${err.message}`\n : \"Unknown decompression error in ZIP entry\";\n throw new TypeError(message);\n }\n }\n async readLocalFileHeader() {\n const signature = await this.tokenizer.peekToken(UINT32_LE);\n if (signature === Signature.LocalFileHeader) {\n const header = await this.tokenizer.readToken(LocalFileHeaderToken);\n header.filename = await this.tokenizer.readToken(new StringType(header.filenameLength, 'utf-8'));\n return header;\n }\n if (signature === Signature.CentralFileHeader) {\n return false;\n }\n if (signature === 0xE011CFD0) {\n throw new Error('Encrypted ZIP');\n }\n throw new Error('Unexpected signature');\n }\n}\nfunction indexOf(buffer, portion) {\n const bufferLength = buffer.length;\n const portionLength = portion.length;\n // Return -1 if the portion is longer than the buffer\n if (portionLength > bufferLength)\n return -1;\n // Search for the portion in the buffer\n for (let i = 0; i <= bufferLength - portionLength; i++) {\n let found = true;\n for (let j = 0; j < portionLength; j++) {\n if (buffer[i + j] !== portion[j]) {\n found = false;\n break;\n }\n }\n if (found) {\n return i; // Return the starting offset\n }\n }\n return -1; // Not found\n}\nfunction mergeArrays(chunks) {\n // Concatenate chunks into a single Uint8Array\n const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0);\n const mergedArray = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n mergedArray.set(chunk, offset);\n offset += chunk.length;\n }\n return mergedArray;\n}\n","export class GzipHandler {\n constructor(tokenizer) {\n this.tokenizer = tokenizer;\n }\n inflate() {\n const tokenizer = this.tokenizer;\n return new ReadableStream({\n async pull(controller) {\n const buffer = new Uint8Array(1024);\n const size = await tokenizer.readBuffer(buffer, { mayBeLess: true });\n if (size === 0) {\n controller.close();\n return;\n }\n controller.enqueue(buffer.subarray(0, size));\n }\n }).pipeThrough(new DecompressionStream(\"gzip\"));\n }\n}\n","export { ZipHandler } from './ZipHandler.js';\nexport { GzipHandler } from './GzipHandler.js';\n","const objectToString = Object.prototype.toString;\nconst uint8ArrayStringified = '[object Uint8Array]';\nconst arrayBufferStringified = '[object ArrayBuffer]';\n\nfunction isType(value, typeConstructor, typeStringified) {\n\tif (!value) {\n\t\treturn false;\n\t}\n\n\tif (value.constructor === typeConstructor) {\n\t\treturn true;\n\t}\n\n\treturn objectToString.call(value) === typeStringified;\n}\n\nexport function isUint8Array(value) {\n\treturn isType(value, Uint8Array, uint8ArrayStringified);\n}\n\nfunction isArrayBuffer(value) {\n\treturn isType(value, ArrayBuffer, arrayBufferStringified);\n}\n\nfunction isUint8ArrayOrArrayBuffer(value) {\n\treturn isUint8Array(value) || isArrayBuffer(value);\n}\n\nexport function assertUint8Array(value) {\n\tif (!isUint8Array(value)) {\n\t\tthrow new TypeError(`Expected \\`Uint8Array\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nexport function assertUint8ArrayOrArrayBuffer(value) {\n\tif (!isUint8ArrayOrArrayBuffer(value)) {\n\t\tthrow new TypeError(`Expected \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nexport function toUint8Array(value) {\n\tif (value instanceof ArrayBuffer) {\n\t\treturn new Uint8Array(value);\n\t}\n\n\tif (ArrayBuffer.isView(value)) {\n\t\treturn new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n\t}\n\n\tthrow new TypeError(`Unsupported value, got \\`${typeof value}\\`.`);\n}\n\nexport function concatUint8Arrays(arrays, totalLength) {\n\tif (arrays.length === 0) {\n\t\treturn new Uint8Array(0);\n\t}\n\n\ttotalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.length, 0);\n\n\tconst returnValue = new Uint8Array(totalLength);\n\n\tlet offset = 0;\n\tfor (const array of arrays) {\n\t\tassertUint8Array(array);\n\t\treturnValue.set(array, offset);\n\t\toffset += array.length;\n\t}\n\n\treturn returnValue;\n}\n\nexport function areUint8ArraysEqual(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\t// eslint-disable-next-line unicorn/no-for-loop\n\tfor (let index = 0; index < a.length; index++) {\n\t\tif (a[index] !== b[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport function compareUint8Arrays(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tconst length = Math.min(a.length, b.length);\n\n\tfor (let index = 0; index < length; index++) {\n\t\tconst diff = a[index] - b[index];\n\t\tif (diff !== 0) {\n\t\t\treturn Math.sign(diff);\n\t\t}\n\t}\n\n\t// At this point, all the compared elements are equal.\n\t// The shorter array should come first if the arrays are of different lengths.\n\treturn Math.sign(a.length - b.length);\n}\n\nconst cachedDecoders = {\n\tutf8: new globalThis.TextDecoder('utf8'),\n};\n\nexport function uint8ArrayToString(array, encoding = 'utf8') {\n\tassertUint8ArrayOrArrayBuffer(array);\n\tcachedDecoders[encoding] ??= new globalThis.TextDecoder(encoding);\n\treturn cachedDecoders[encoding].decode(array);\n}\n\nfunction assertString(value) {\n\tif (typeof value !== 'string') {\n\t\tthrow new TypeError(`Expected \\`string\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nconst cachedEncoder = new globalThis.TextEncoder();\n\nexport function stringToUint8Array(string) {\n\tassertString(string);\n\treturn cachedEncoder.encode(string);\n}\n\nfunction base64ToBase64Url(base64) {\n\treturn base64.replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');\n}\n\nfunction base64UrlToBase64(base64url) {\n\tconst base64 = base64url.replaceAll('-', '+').replaceAll('_', '/');\n\tconst padding = (4 - (base64.length % 4)) % 4;\n\treturn base64 + '='.repeat(padding);\n}\n\n// Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/\n// Important: Keep this value divisible by 3 so intermediate chunks produce no Base64 padding.\nconst MAX_BLOCK_SIZE = 65_535;\n\nexport function uint8ArrayToBase64(array, {urlSafe = false} = {}) {\n\tassertUint8Array(array);\n\n\tlet base64 = '';\n\n\tfor (let index = 0; index < array.length; index += MAX_BLOCK_SIZE) {\n\t\tconst chunk = array.subarray(index, index + MAX_BLOCK_SIZE);\n\t\t// Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n\t\tbase64 += globalThis.btoa(String.fromCodePoint.apply(undefined, chunk));\n\t}\n\n\treturn urlSafe ? base64ToBase64Url(base64) : base64;\n}\n\nexport function base64ToUint8Array(base64String) {\n\tassertString(base64String);\n\treturn Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), x => x.codePointAt(0));\n}\n\nexport function stringToBase64(string, {urlSafe = false} = {}) {\n\tassertString(string);\n\treturn uint8ArrayToBase64(stringToUint8Array(string), {urlSafe});\n}\n\nexport function base64ToString(base64String) {\n\tassertString(base64String);\n\treturn uint8ArrayToString(base64ToUint8Array(base64String));\n}\n\nconst byteToHexLookupTable = Array.from({length: 256}, (_, index) => index.toString(16).padStart(2, '0'));\n\nexport function uint8ArrayToHex(array) {\n\tassertUint8Array(array);\n\n\t// Concatenating a string is faster than using an array.\n\tlet hexString = '';\n\n\t// eslint-disable-next-line unicorn/no-for-loop -- Max performance is critical.\n\tfor (let index = 0; index < array.length; index++) {\n\t\thexString += byteToHexLookupTable[array[index]];\n\t}\n\n\treturn hexString;\n}\n\nconst hexToDecimalLookupTable = {\n\t0: 0,\n\t1: 1,\n\t2: 2,\n\t3: 3,\n\t4: 4,\n\t5: 5,\n\t6: 6,\n\t7: 7,\n\t8: 8,\n\t9: 9,\n\ta: 10,\n\tb: 11,\n\tc: 12,\n\td: 13,\n\te: 14,\n\tf: 15,\n\tA: 10,\n\tB: 11,\n\tC: 12,\n\tD: 13,\n\tE: 14,\n\tF: 15,\n};\n\nexport function hexToUint8Array(hexString) {\n\tassertString(hexString);\n\n\tif (hexString.length % 2 !== 0) {\n\t\tthrow new Error('Invalid Hex string length.');\n\t}\n\n\tconst resultLength = hexString.length / 2;\n\tconst bytes = new Uint8Array(resultLength);\n\n\tfor (let index = 0; index < resultLength; index++) {\n\t\tconst highNibble = hexToDecimalLookupTable[hexString[index * 2]];\n\t\tconst lowNibble = hexToDecimalLookupTable[hexString[(index * 2) + 1]];\n\n\t\tif (highNibble === undefined || lowNibble === undefined) {\n\t\t\tthrow new Error(`Invalid Hex character encountered at position ${index * 2}`);\n\t\t}\n\n\t\tbytes[index] = (highNibble << 4) | lowNibble; // eslint-disable-line no-bitwise\n\t}\n\n\treturn bytes;\n}\n\n/**\n@param {DataView} view\n@returns {number}\n*/\nexport function getUintBE(view) {\n\tconst {byteLength} = view;\n\n\tif (byteLength === 6) {\n\t\treturn (view.getUint16(0) * (2 ** 32)) + view.getUint32(2);\n\t}\n\n\tif (byteLength === 5) {\n\t\treturn (view.getUint8(0) * (2 ** 32)) + view.getUint32(1);\n\t}\n\n\tif (byteLength === 4) {\n\t\treturn view.getUint32(0);\n\t}\n\n\tif (byteLength === 3) {\n\t\treturn (view.getUint8(0) * (2 ** 16)) + view.getUint16(1);\n\t}\n\n\tif (byteLength === 2) {\n\t\treturn view.getUint16(0);\n\t}\n\n\tif (byteLength === 1) {\n\t\treturn view.getUint8(0);\n\t}\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {number}\n*/\nexport function indexOf(array, value) {\n\tconst arrayLength = array.length;\n\tconst valueLength = value.length;\n\n\tif (valueLength === 0) {\n\t\treturn -1;\n\t}\n\n\tif (valueLength > arrayLength) {\n\t\treturn -1;\n\t}\n\n\tconst validOffsetLength = arrayLength - valueLength;\n\n\tfor (let index = 0; index <= validOffsetLength; index++) {\n\t\tlet isMatch = true;\n\t\tfor (let index2 = 0; index2 < valueLength; index2++) {\n\t\t\tif (array[index + index2] !== value[index2]) {\n\t\t\t\tisMatch = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (isMatch) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {boolean}\n*/\nexport function includes(array, value) {\n\treturn indexOf(array, value) !== -1;\n}\n","import {StringType} from 'token-types';\n\nexport function stringToBytes(string, encoding) {\n\tif (encoding === 'utf-16le') {\n\t\tconst bytes = [];\n\t\tfor (let index = 0; index < string.length; index++) {\n\t\t\tconst code = string.charCodeAt(index); // eslint-disable-line unicorn/prefer-code-point\n\t\t\tbytes.push(code & 0xFF, (code >> 8) & 0xFF); // High byte\n\t\t}\n\n\t\treturn bytes;\n\t}\n\n\tif (encoding === 'utf-16be') {\n\t\tconst bytes = [];\n\t\tfor (let index = 0; index < string.length; index++) {\n\t\t\tconst code = string.charCodeAt(index); // eslint-disable-line unicorn/prefer-code-point\n\t\t\tbytes.push((code >> 8) & 0xFF, code & 0xFF); // Low byte\n\t\t}\n\n\t\treturn bytes;\n\t}\n\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Uint8Array} arrayBuffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(arrayBuffer, offset = 0) {\n\tconst readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n","export const extensions = [\n\t'jpg',\n\t'png',\n\t'apng',\n\t'gif',\n\t'webp',\n\t'flif',\n\t'xcf',\n\t'cr2',\n\t'cr3',\n\t'orf',\n\t'arw',\n\t'dng',\n\t'nef',\n\t'rw2',\n\t'raf',\n\t'tif',\n\t'bmp',\n\t'icns',\n\t'jxr',\n\t'psd',\n\t'indd',\n\t'zip',\n\t'tar',\n\t'rar',\n\t'gz',\n\t'bz2',\n\t'7z',\n\t'dmg',\n\t'mp4',\n\t'mid',\n\t'mkv',\n\t'webm',\n\t'mov',\n\t'avi',\n\t'mpg',\n\t'mp2',\n\t'mp3',\n\t'm4a',\n\t'oga',\n\t'ogg',\n\t'ogv',\n\t'opus',\n\t'flac',\n\t'wav',\n\t'spx',\n\t'amr',\n\t'pdf',\n\t'epub',\n\t'elf',\n\t'macho',\n\t'exe',\n\t'swf',\n\t'rtf',\n\t'wasm',\n\t'woff',\n\t'woff2',\n\t'eot',\n\t'ttf',\n\t'otf',\n\t'ttc',\n\t'ico',\n\t'flv',\n\t'ps',\n\t'xz',\n\t'sqlite',\n\t'nes',\n\t'crx',\n\t'xpi',\n\t'cab',\n\t'deb',\n\t'ar',\n\t'rpm',\n\t'Z',\n\t'lz',\n\t'cfb',\n\t'mxf',\n\t'mts',\n\t'blend',\n\t'bpg',\n\t'docx',\n\t'pptx',\n\t'xlsx',\n\t'3gp',\n\t'3g2',\n\t'j2c',\n\t'jp2',\n\t'jpm',\n\t'jpx',\n\t'mj2',\n\t'aif',\n\t'qcp',\n\t'odt',\n\t'ods',\n\t'odp',\n\t'xml',\n\t'mobi',\n\t'heic',\n\t'cur',\n\t'ktx',\n\t'ape',\n\t'wv',\n\t'dcm',\n\t'ics',\n\t'glb',\n\t'pcap',\n\t'dsf',\n\t'lnk',\n\t'alias',\n\t'voc',\n\t'ac3',\n\t'm4v',\n\t'm4p',\n\t'm4b',\n\t'f4v',\n\t'f4p',\n\t'f4b',\n\t'f4a',\n\t'mie',\n\t'asf',\n\t'ogm',\n\t'ogx',\n\t'mpc',\n\t'arrow',\n\t'shp',\n\t'aac',\n\t'mp1',\n\t'it',\n\t's3m',\n\t'xm',\n\t'skp',\n\t'avif',\n\t'eps',\n\t'lzh',\n\t'pgp',\n\t'asar',\n\t'stl',\n\t'chm',\n\t'3mf',\n\t'zst',\n\t'jxl',\n\t'vcf',\n\t'jls',\n\t'pst',\n\t'dwg',\n\t'parquet',\n\t'class',\n\t'arj',\n\t'cpio',\n\t'ace',\n\t'avro',\n\t'icc',\n\t'fbx',\n\t'vsdx',\n\t'vtt',\n\t'apk',\n\t'drc',\n\t'lz4',\n\t'potx',\n\t'xltx',\n\t'dotx',\n\t'xltm',\n\t'ott',\n\t'ots',\n\t'otp',\n\t'odg',\n\t'otg',\n\t'xlsm',\n\t'docm',\n\t'dotm',\n\t'potm',\n\t'pptm',\n\t'jar',\n\t'jmp',\n\t'rm',\n\t'sav',\n\t'ppsm',\n\t'ppsx',\n\t'tar.gz',\n\t'reg',\n\t'dat',\n];\n\nexport const mimeTypes = [\n\t'image/jpeg',\n\t'image/png',\n\t'image/gif',\n\t'image/webp',\n\t'image/flif',\n\t'image/x-xcf',\n\t'image/x-canon-cr2',\n\t'image/x-canon-cr3',\n\t'image/tiff',\n\t'image/bmp',\n\t'image/vnd.ms-photo',\n\t'image/vnd.adobe.photoshop',\n\t'application/x-indesign',\n\t'application/epub+zip',\n\t'application/x-xpinstall',\n\t'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text',\n\t'application/vnd.oasis.opendocument.spreadsheet',\n\t'application/vnd.oasis.opendocument.presentation',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n\t'application/zip',\n\t'application/x-tar',\n\t'application/x-rar-compressed',\n\t'application/gzip',\n\t'application/x-bzip2',\n\t'application/x-7z-compressed',\n\t'application/x-apple-diskimage',\n\t'application/vnd.apache.arrow.file',\n\t'video/mp4',\n\t'audio/midi',\n\t'video/matroska',\n\t'video/webm',\n\t'video/quicktime',\n\t'video/vnd.avi',\n\t'audio/wav',\n\t'audio/qcelp',\n\t'audio/x-ms-asf',\n\t'video/x-ms-asf',\n\t'application/vnd.ms-asf',\n\t'video/mpeg',\n\t'video/3gpp',\n\t'audio/mpeg',\n\t'audio/mp4', // RFC 4337\n\t'video/ogg',\n\t'audio/ogg',\n\t'audio/ogg; codecs=opus',\n\t'application/ogg',\n\t'audio/flac',\n\t'audio/ape',\n\t'audio/wavpack',\n\t'audio/amr',\n\t'application/pdf',\n\t'application/x-elf',\n\t'application/x-mach-binary',\n\t'application/x-msdownload',\n\t'application/x-shockwave-flash',\n\t'application/rtf',\n\t'application/wasm',\n\t'font/woff',\n\t'font/woff2',\n\t'application/vnd.ms-fontobject',\n\t'font/ttf',\n\t'font/otf',\n\t'font/collection',\n\t'image/x-icon',\n\t'video/x-flv',\n\t'application/postscript',\n\t'application/eps',\n\t'application/x-xz',\n\t'application/x-sqlite3',\n\t'application/x-nintendo-nes-rom',\n\t'application/x-google-chrome-extension',\n\t'application/vnd.ms-cab-compressed',\n\t'application/x-deb',\n\t'application/x-unix-archive',\n\t'application/x-rpm',\n\t'application/x-compress',\n\t'application/x-lzip',\n\t'application/x-cfb',\n\t'application/x-mie',\n\t'application/mxf',\n\t'video/mp2t',\n\t'application/x-blender',\n\t'image/bpg',\n\t'image/j2c',\n\t'image/jp2',\n\t'image/jpx',\n\t'image/jpm',\n\t'image/mj2',\n\t'audio/aiff',\n\t'application/xml',\n\t'application/x-mobipocket-ebook',\n\t'image/heif',\n\t'image/heif-sequence',\n\t'image/heic',\n\t'image/heic-sequence',\n\t'image/icns',\n\t'image/ktx',\n\t'application/dicom',\n\t'audio/x-musepack',\n\t'text/calendar',\n\t'text/vcard',\n\t'text/vtt',\n\t'model/gltf-binary',\n\t'application/vnd.tcpdump.pcap',\n\t'audio/x-dsf', // Non-standard\n\t'application/x.ms.shortcut', // Invented by us\n\t'application/x.apple.alias', // Invented by us\n\t'audio/x-voc',\n\t'audio/vnd.dolby.dd-raw',\n\t'audio/x-m4a',\n\t'image/apng',\n\t'image/x-olympus-orf',\n\t'image/x-sony-arw',\n\t'image/x-adobe-dng',\n\t'image/x-nikon-nef',\n\t'image/x-panasonic-rw2',\n\t'image/x-fujifilm-raf',\n\t'video/x-m4v',\n\t'video/3gpp2',\n\t'application/x-esri-shape',\n\t'audio/aac',\n\t'audio/x-it',\n\t'audio/x-s3m',\n\t'audio/x-xm',\n\t'video/MP1S',\n\t'video/MP2P',\n\t'application/vnd.sketchup.skp',\n\t'image/avif',\n\t'application/x-lzh-compressed',\n\t'application/pgp-encrypted',\n\t'application/x-asar',\n\t'model/stl',\n\t'application/vnd.ms-htmlhelp',\n\t'model/3mf',\n\t'image/jxl',\n\t'application/zstd',\n\t'image/jls',\n\t'application/vnd.ms-outlook',\n\t'image/vnd.dwg',\n\t'application/vnd.apache.parquet',\n\t'application/java-vm',\n\t'application/x-arj',\n\t'application/x-cpio',\n\t'application/x-ace-compressed',\n\t'application/avro',\n\t'application/vnd.iccprofile',\n\t'application/x.autodesk.fbx', // Invented by us\n\t'application/vnd.visio',\n\t'application/vnd.android.package-archive',\n\t'application/vnd.google.draco', // Invented by us\n\t'application/x-lz4', // Invented by us\n\t'application/vnd.openxmlformats-officedocument.presentationml.template',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n\t'application/vnd.ms-excel.template.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text-template',\n\t'application/vnd.oasis.opendocument.spreadsheet-template',\n\t'application/vnd.oasis.opendocument.presentation-template',\n\t'application/vnd.oasis.opendocument.graphics',\n\t'application/vnd.oasis.opendocument.graphics-template',\n\t'application/vnd.ms-excel.sheet.macroenabled.12',\n\t'application/vnd.ms-word.document.macroenabled.12',\n\t'application/vnd.ms-word.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t'application/java-archive',\n\t'application/vnd.rn-realmedia',\n\t'application/x-spss-sav',\n\t'application/x-ms-regedit',\n\t'application/x-ft-windows-registry-hive',\n\t'application/x-jmp-data',\n];\n","/**\nPrimary entry point, Node.js specific entry point is index.js\n*/\n\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core';\nimport {ZipHandler, GzipHandler} from '@tokenizer/inflate';\nimport {getUintBE} from 'uint8array-extras';\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nexport const reasonableDetectionSizeInBytes = 4100; // A fair amount of file-types are detectable within this range.\n// Keep defensive limits small enough to avoid accidental memory spikes from untrusted inputs.\nconst maximumMpegOffsetTolerance = reasonableDetectionSizeInBytes - 2;\nconst maximumZipEntrySizeInBytes = 1024 * 1024;\nconst maximumUntrustedSkipSizeInBytes = 16 * 1024 * 1024;\nconst maximumNestedGzipDetectionSizeInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumId3HeaderSizeInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumEbmlDocumentTypeSizeInBytes = 64;\nconst maximumEbmlElementPayloadSizeInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumEbmlElementCount = 256;\nconst maximumPngChunkSizeInBytes = maximumUntrustedSkipSizeInBytes;\nconst maximumTiffIfdOffsetInBytes = maximumUntrustedSkipSizeInBytes;\nconst recoverableZipErrorMessages = new Set([\n\t'Unexpected signature',\n\t'Encrypted ZIP',\n\t'Expected Central-File-Header signature',\n]);\nconst recoverableZipErrorMessagePrefixes = [\n\t'Unsupported ZIP compression method:',\n\t'ZIP entry decompressed data exceeds ',\n];\nconst recoverableZipErrorCodes = new Set([\n\t'Z_BUF_ERROR',\n\t'Z_DATA_ERROR',\n\t'ERR_INVALID_STATE',\n]);\n\nclass ParserHardLimitError extends Error {}\n\nfunction getSafeBound(value, maximum, reason) {\n\tif (\n\t\t!Number.isFinite(value)\n\t\t|| value < 0\n\t\t|| value > maximum\n\t) {\n\t\tthrow new ParserHardLimitError(`${reason} has invalid size ${value} (maximum ${maximum} bytes)`);\n\t}\n\n\treturn value;\n}\n\nasync function safeIgnore(tokenizer, length, {maximumLength = maximumUntrustedSkipSizeInBytes, reason = 'skip'} = {}) {\n\tconst safeLength = getSafeBound(length, maximumLength, reason);\n\tawait tokenizer.ignore(safeLength);\n}\n\nasync function safeReadBuffer(tokenizer, buffer, options, {maximumLength = buffer.length, reason = 'read'} = {}) {\n\tconst length = options?.length ?? buffer.length;\n\tconst safeLength = getSafeBound(length, maximumLength, reason);\n\treturn tokenizer.readBuffer(buffer, {\n\t\t...options,\n\t\tlength: safeLength,\n\t});\n}\n\nasync function decompressDeflateRawWithLimit(data, {maximumLength = maximumZipEntrySizeInBytes} = {}) {\n\tconst input = new ReadableStream({\n\t\tstart(controller) {\n\t\t\tcontroller.enqueue(data);\n\t\t\tcontroller.close();\n\t\t},\n\t});\n\tconst output = input.pipeThrough(new DecompressionStream('deflate-raw'));\n\tconst reader = output.getReader();\n\tconst chunks = [];\n\tlet totalLength = 0;\n\n\ttry {\n\t\tfor (;;) {\n\t\t\tconst {done, value} = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\ttotalLength += value.length;\n\t\t\tif (totalLength > maximumLength) {\n\t\t\t\tawait reader.cancel();\n\t\t\t\tthrow new Error(`ZIP entry decompressed data exceeds ${maximumLength} bytes`);\n\t\t\t}\n\n\t\t\tchunks.push(value);\n\t\t}\n\t} finally {\n\t\treader.releaseLock();\n\t}\n\n\tconst uncompressedData = new Uint8Array(totalLength);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tuncompressedData.set(chunk, offset);\n\t\toffset += chunk.length;\n\t}\n\n\treturn uncompressedData;\n}\n\n// Override the default inflate to enforce decompression size limits, since @tokenizer/inflate does not expose a configuration hook for this.\nZipHandler.prototype.inflate = async function (zipHeader, fileData, callback) {\n\tif (zipHeader.compressedMethod === 0) {\n\t\treturn callback(fileData);\n\t}\n\n\tif (zipHeader.compressedMethod !== 8) {\n\t\tthrow new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`);\n\t}\n\n\tconst maximumLength = hasUnknownFileSize(this.tokenizer) ? maximumZipEntrySizeInBytes : Number.MAX_SAFE_INTEGER;\n\tconst uncompressedData = await decompressDeflateRawWithLimit(fileData, {maximumLength});\n\treturn callback(uncompressedData);\n};\n\nfunction createByteLimitedReadableStream(stream, maximumBytes) {\n\tconst reader = stream.getReader();\n\tlet emittedBytes = 0;\n\tlet sourceDone = false;\n\tlet sourceCanceled = false;\n\n\tconst cancelSource = async reason => {\n\t\tif (\n\t\t\tsourceDone\n\t\t\t|| sourceCanceled\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsourceCanceled = true;\n\t\tawait reader.cancel(reason);\n\t};\n\n\treturn new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\tif (emittedBytes >= maximumBytes) {\n\t\t\t\tcontroller.close();\n\t\t\t\tawait cancelSource();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {done, value} = await reader.read();\n\t\t\tif (\n\t\t\t\tdone\n\t\t\t\t|| !value\n\t\t\t) {\n\t\t\t\tsourceDone = true;\n\t\t\t\tcontroller.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst remainingBytes = maximumBytes - emittedBytes;\n\t\t\tif (value.length > remainingBytes) {\n\t\t\t\tcontroller.enqueue(value.subarray(0, remainingBytes));\n\t\t\t\temittedBytes += remainingBytes;\n\t\t\t\tcontroller.close();\n\t\t\t\tawait cancelSource();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcontroller.enqueue(value);\n\t\t\temittedBytes += value.length;\n\t\t},\n\t\tasync cancel(reason) {\n\t\t\tawait cancelSource(reason);\n\t\t},\n\t});\n}\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn new FileTypeParser(options).fromStream(stream);\n}\n\nexport async function fileTypeFromBuffer(input, options) {\n\treturn new FileTypeParser(options).fromBuffer(input);\n}\n\nexport async function fileTypeFromBlob(blob, options) {\n\treturn new FileTypeParser(options).fromBlob(blob);\n}\n\nfunction getFileTypeFromMimeType(mimeType) {\n\tmimeType = mimeType.toLowerCase();\n\tswitch (mimeType) {\n\t\tcase 'application/epub+zip':\n\t\t\treturn {\n\t\t\t\text: 'epub',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\treturn {\n\t\t\t\text: 'odt',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text-template':\n\t\t\treturn {\n\t\t\t\text: 'ott',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\treturn {\n\t\t\t\text: 'ods',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet-template':\n\t\t\treturn {\n\t\t\t\text: 'ots',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\treturn {\n\t\t\t\text: 'odp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation-template':\n\t\t\treturn {\n\t\t\t\text: 'otp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics':\n\t\t\treturn {\n\t\t\t\text: 'odg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics-template':\n\t\t\treturn {\n\t\t\t\text: 'otg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.slideshow':\n\t\t\treturn {\n\t\t\t\text: 'ppsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n\t\t\treturn {\n\t\t\t\text: 'xlsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.sheet.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xlsm',\n\t\t\t\tmime: 'application/vnd.ms-excel.sheet.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.template':\n\t\t\treturn {\n\t\t\t\text: 'xltx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xltm',\n\t\t\t\tmime: 'application/vnd.ms-excel.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.slideshow.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'ppsm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n\t\t\treturn {\n\t\t\t\text: 'docx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.document.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'docm',\n\t\t\t\tmime: 'application/vnd.ms-word.document.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.template':\n\t\t\treturn {\n\t\t\t\text: 'dotx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.template.macroenabledtemplate':\n\t\t\treturn {\n\t\t\t\text: 'dotm',\n\t\t\t\tmime: 'application/vnd.ms-word.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.template':\n\t\t\treturn {\n\t\t\t\text: 'potx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'potm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n\t\t\treturn {\n\t\t\t\text: 'pptx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.presentation.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'pptm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-visio.drawing':\n\t\t\treturn {\n\t\t\t\text: 'vsdx',\n\t\t\t\tmime: 'application/vnd.visio',\n\t\t\t};\n\t\tcase 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml':\n\t\t\treturn {\n\t\t\t\text: '3mf',\n\t\t\t\tmime: 'model/3mf',\n\t\t\t};\n\t\tdefault:\n\t}\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport function normalizeSampleSize(sampleSize) {\n\t// Accept odd caller input, but preserve valid caller-requested probe depth.\n\tif (!Number.isFinite(sampleSize)) {\n\t\treturn reasonableDetectionSizeInBytes;\n\t}\n\n\treturn Math.max(1, Math.trunc(sampleSize));\n}\n\nfunction normalizeMpegOffsetTolerance(mpegOffsetTolerance) {\n\t// This value controls scan depth and therefore worst-case CPU work.\n\tif (!Number.isFinite(mpegOffsetTolerance)) {\n\t\treturn 0;\n\t}\n\n\treturn Math.max(0, Math.min(maximumMpegOffsetTolerance, Math.trunc(mpegOffsetTolerance)));\n}\n\nfunction getKnownFileSizeOrMaximum(fileSize) {\n\tif (!Number.isFinite(fileSize)) {\n\t\treturn Number.MAX_SAFE_INTEGER;\n\t}\n\n\treturn Math.max(0, fileSize);\n}\n\nfunction hasUnknownFileSize(tokenizer) {\n\tconst fileSize = tokenizer.fileInfo.size;\n\treturn (\n\t\t!Number.isFinite(fileSize)\n\t\t|| fileSize === Number.MAX_SAFE_INTEGER\n\t);\n}\n\nfunction hasExceededUnknownSizeScanBudget(tokenizer, startOffset, maximumBytes) {\n\treturn (\n\t\thasUnknownFileSize(tokenizer)\n\t\t&& tokenizer.position - startOffset > maximumBytes\n\t);\n}\n\nfunction isRecoverableZipError(error) {\n\tif (error instanceof strtok3.EndOfStreamError) {\n\t\treturn true;\n\t}\n\n\tif (error instanceof ParserHardLimitError) {\n\t\treturn true;\n\t}\n\n\tif (!(error instanceof Error)) {\n\t\treturn false;\n\t}\n\n\tif (recoverableZipErrorMessages.has(error.message)) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\terror instanceof TypeError\n\t\t&& recoverableZipErrorCodes.has(error.code)\n\t) {\n\t\treturn true;\n\t}\n\n\tfor (const prefix of recoverableZipErrorMessagePrefixes) {\n\t\tif (error.message.startsWith(prefix)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction canReadZipEntryForDetection(zipHeader, maximumSize = maximumZipEntrySizeInBytes) {\n\tconst sizes = [zipHeader.compressedSize, zipHeader.uncompressedSize];\n\tfor (const size of sizes) {\n\t\tif (\n\t\t\t!Number.isFinite(size)\n\t\t\t|| size < 0\n\t\t\t|| size > maximumSize\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction createOpenXmlZipDetectionState() {\n\treturn {\n\t\thasContentTypesEntry: false,\n\t\thasParsedContentTypesEntry: false,\n\t\tisParsingContentTypes: false,\n\t\thasUnparseableContentTypes: false,\n\t\thasWordDirectory: false,\n\t\thasPresentationDirectory: false,\n\t\thasSpreadsheetDirectory: false,\n\t\thasThreeDimensionalModelEntry: false,\n\t};\n}\n\nfunction updateOpenXmlZipDetectionStateFromFilename(openXmlState, filename) {\n\tif (filename.startsWith('word/')) {\n\t\topenXmlState.hasWordDirectory = true;\n\t}\n\n\tif (filename.startsWith('ppt/')) {\n\t\topenXmlState.hasPresentationDirectory = true;\n\t}\n\n\tif (filename.startsWith('xl/')) {\n\t\topenXmlState.hasSpreadsheetDirectory = true;\n\t}\n\n\tif (\n\t\tfilename.startsWith('3D/')\n\t\t&& filename.endsWith('.model')\n\t) {\n\t\topenXmlState.hasThreeDimensionalModelEntry = true;\n\t}\n}\n\nfunction getOpenXmlFileTypeFromZipEntries(openXmlState) {\n\t// Only use directory-name heuristic when [Content_Types].xml was present in the archive\n\t// but its handler was skipped (not invoked, not currently running, and not already resolved).\n\t// This avoids guessing from directory names when content-type parsing already gave a definitive answer or failed.\n\tif (\n\t\t!openXmlState.hasContentTypesEntry\n\t\t|| openXmlState.hasUnparseableContentTypes\n\t\t|| openXmlState.isParsingContentTypes\n\t\t|| openXmlState.hasParsedContentTypesEntry\n\t) {\n\t\treturn;\n\t}\n\n\tif (openXmlState.hasWordDirectory) {\n\t\treturn {\n\t\t\text: 'docx',\n\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t};\n\t}\n\n\tif (openXmlState.hasPresentationDirectory) {\n\t\treturn {\n\t\t\text: 'pptx',\n\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t};\n\t}\n\n\tif (openXmlState.hasSpreadsheetDirectory) {\n\t\treturn {\n\t\t\text: 'xlsx',\n\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t};\n\t}\n\n\tif (openXmlState.hasThreeDimensionalModelEntry) {\n\t\treturn {\n\t\t\text: '3mf',\n\t\t\tmime: 'model/3mf',\n\t\t};\n\t}\n}\n\nfunction getOpenXmlMimeTypeFromContentTypesXml(xmlContent) {\n\t// We only need the `ContentType=\"...main+xml\"` value, so a small string scan is enough and avoids full XML parsing.\n\tconst endPosition = xmlContent.indexOf('.main+xml\"');\n\tif (endPosition === -1) {\n\t\tconst mimeType = 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml';\n\t\tif (xmlContent.includes(`ContentType=\"${mimeType}\"`)) {\n\t\t\treturn mimeType;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tconst truncatedContent = xmlContent.slice(0, endPosition);\n\tconst firstQuotePosition = truncatedContent.lastIndexOf('\"');\n\t// If no quote is found, `lastIndexOf` returns -1 and this intentionally falls back to the full truncated prefix.\n\treturn truncatedContent.slice(firstQuotePosition + 1);\n}\n\nexport async function fileTypeFromTokenizer(tokenizer, options) {\n\treturn new FileTypeParser(options).fromTokenizer(tokenizer);\n}\n\nexport async function fileTypeStream(webStream, options) {\n\treturn new FileTypeParser(options).toDetectionStream(webStream, options);\n}\n\nexport class FileTypeParser {\n\tconstructor(options) {\n\t\tconst normalizedMpegOffsetTolerance = normalizeMpegOffsetTolerance(options?.mpegOffsetTolerance);\n\t\tthis.options = {\n\t\t\t...options,\n\t\t\tmpegOffsetTolerance: normalizedMpegOffsetTolerance,\n\t\t};\n\n\t\tthis.detectors = [...(this.options.customDetectors ?? []),\n\t\t\t{id: 'core', detect: this.detectConfident},\n\t\t\t{id: 'core.imprecise', detect: this.detectImprecise}];\n\t\tthis.tokenizerOptions = {\n\t\t\tabortSignal: this.options.signal,\n\t\t};\n\t}\n\n\tasync fromTokenizer(tokenizer) {\n\t\tconst initialPosition = tokenizer.position;\n\t\t// Iterate through all file-type detectors\n\t\tfor (const detector of this.detectors) {\n\t\t\tlet fileType;\n\t\t\ttry {\n\t\t\t\tfileType = await detector.detect(tokenizer);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (error instanceof ParserHardLimitError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\n\t\t\tif (initialPosition !== tokenizer.position) {\n\t\t\t\treturn undefined; // Cannot proceed scanning of the tokenizer is at an arbitrary position\n\t\t\t}\n\t\t}\n\t}\n\n\tasync fromBuffer(input) {\n\t\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t\t}\n\n\t\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\t\tif (!(buffer?.length > 1)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.fromTokenizer(strtok3.fromBuffer(buffer, this.tokenizerOptions));\n\t}\n\n\tasync fromBlob(blob) {\n\t\tconst tokenizer = strtok3.fromBlob(blob, this.tokenizerOptions);\n\t\ttry {\n\t\t\treturn await this.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync fromStream(stream) {\n\t\tconst tokenizer = strtok3.fromWebStream(stream, this.tokenizerOptions);\n\t\ttry {\n\t\t\treturn await this.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync toDetectionStream(stream, options) {\n\t\tconst sampleSize = normalizeSampleSize(options?.sampleSize ?? reasonableDetectionSizeInBytes);\n\t\tlet detectedFileType;\n\t\tlet firstChunk;\n\n\t\tconst reader = stream.getReader({mode: 'byob'});\n\t\ttry {\n\t\t\t// Read the first chunk from the stream\n\t\t\tconst {value: chunk, done} = await reader.read(new Uint8Array(sampleSize));\n\t\t\tfirstChunk = chunk;\n\t\t\tif (!done && chunk) {\n\t\t\t\ttry {\n\t\t\t\t\t// Attempt to detect the file type from the chunk\n\t\t\t\t\tdetectedFileType = await this.fromBuffer(chunk.subarray(0, sampleSize));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\t\tthrow error; // Re-throw non-EndOfStreamError\n\t\t\t\t\t}\n\n\t\t\t\t\tdetectedFileType = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirstChunk = chunk;\n\t\t} finally {\n\t\t\treader.releaseLock(); // Ensure the reader is released\n\t\t}\n\n\t\t// Create a new ReadableStream to manage locking issues\n\t\tconst transformStream = new TransformStream({\n\t\t\tasync start(controller) {\n\t\t\t\tcontroller.enqueue(firstChunk); // Enqueue the initial chunk\n\t\t\t},\n\t\t\ttransform(chunk, controller) {\n\t\t\t\t// Pass through the chunks without modification\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t});\n\n\t\tconst newStream = stream.pipeThrough(transformStream);\n\t\tnewStream.fileType = detectedFileType;\n\n\t\treturn newStream;\n\t}\n\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header, options?.encoding), options);\n\t}\n\n\t// Detections with a high degree of certainty in identifying the correct file type\n\tdetectConfident = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 32, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC7, 0x71])) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x60, 0xEA])) {\n\t\t\treturn {\n\t\t\t\text: 'arj',\n\t\t\t\tmime: 'application/x-arj',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF])) { // UTF-8-BOM\n\t\t\t// Strip off UTF-8-BOM\n\t\t\tawait this.tokenizer.ignore(3);\n\t\t\treturn this.detectConfident(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\tconst gzipHandler = new GzipHandler(tokenizer);\n\t\t\tconst limitedInflatedStream = createByteLimitedReadableStream(gzipHandler.inflate(), maximumNestedGzipDetectionSizeInBytes);\n\t\t\tlet compressedFileType;\n\t\t\ttry {\n\t\t\t\tcompressedFileType = await this.fromStream(limitedInflatedStream);\n\t\t\t} catch (error) {\n\t\t\t\tif (error?.name === 'AbortError') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\t// Decompression or inner-detection failures are expected for non-tar gzip files.\n\t\t\t}\n\n\t\t\t// We only need enough inflated bytes to confidently decide whether this is tar.gz.\n\t\t\tif (compressedFileType?.ext === 'tar') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'tar.gz',\n\t\t\t\t\tmime: 'application/gzip',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait safeIgnore(tokenizer, 6, {\n\t\t\t\tmaximumLength: 6,\n\t\t\t\treason: 'ID3 header prefix',\n\t\t\t}); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tconst isUnknownFileSize = hasUnknownFileSize(tokenizer);\n\t\t\tif (\n\t\t\t\t!Number.isFinite(id3HeaderLength)\n\t\t\t\t\t|| id3HeaderLength < 0\n\t\t\t\t// Keep ID3 probing bounded for unknown-size streams to avoid attacker-controlled large skips.\n\t\t\t\t|| (\n\t\t\t\t\tisUnknownFileSize\n\t\t\t\t\t&& id3HeaderLength > maximumId3HeaderSizeInBytes\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\tif (isUnknownFileSize) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait safeIgnore(tokenizer, id3HeaderLength, {\n\t\t\t\t\tmaximumLength: isUnknownFileSize ? maximumId3HeaderSizeInBytes : tokenizer.fileInfo.size,\n\t\t\t\t\treason: 'ID3 payload',\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn this.fromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\t// Requires a sample size of 4 bytes\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\tif (this.check([0xF7], {offset: 3})) { // JPG7/SOF55, indicating a ISO/IEC 14495 / JPEG-LS file\n\t\t\t\treturn {\n\t\t\t\t\text: 'jls',\n\t\t\t\t\tmime: 'image/jls',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4F, 0x62, 0x6A, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'avro',\n\t\t\t\tmime: 'application/avro',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\tlet fileType;\n\t\t\tconst openXmlState = createOpenXmlZipDetectionState();\n\n\t\t\ttry {\n\t\t\t\tawait new ZipHandler(tokenizer).unzip(zipHeader => {\n\t\t\t\t\tupdateOpenXmlZipDetectionStateFromFilename(openXmlState, zipHeader.filename);\n\n\t\t\t\t\tconst isOpenXmlContentTypesEntry = zipHeader.filename === '[Content_Types].xml';\n\t\t\t\t\tconst openXmlFileTypeFromEntries = getOpenXmlFileTypeFromZipEntries(openXmlState);\n\t\t\t\t\tif (\n\t\t\t\t\t\t!isOpenXmlContentTypesEntry\n\t\t\t\t\t\t&& openXmlFileTypeFromEntries\n\t\t\t\t\t) {\n\t\t\t\t\t\tfileType = openXmlFileTypeFromEntries;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (zipHeader.filename) {\n\t\t\t\t\t\tcase 'META-INF/mozilla.rsa':\n\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'META-INF/MANIFEST.MF':\n\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\text: 'jar',\n\t\t\t\t\t\t\t\tmime: 'application/java-archive',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\tcase 'mimetype':\n\t\t\t\t\t\t\tif (!canReadZipEntryForDetection(zipHeader)) {\n\t\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\t\tconst mimeType = new TextDecoder('utf-8').decode(fileData).trim();\n\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\tcase '[Content_Types].xml': {\n\t\t\t\t\t\t\topenXmlState.hasContentTypesEntry = true;\n\n\t\t\t\t\t\t\tconst maximumContentTypesEntrySize = hasUnknownFileSize(tokenizer) ? maximumZipEntrySizeInBytes : Number.MAX_SAFE_INTEGER;\n\t\t\t\t\t\t\tif (!canReadZipEntryForDetection(zipHeader, maximumContentTypesEntrySize)) {\n\t\t\t\t\t\t\t\topenXmlState.hasUnparseableContentTypes = true;\n\t\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\topenXmlState.isParsingContentTypes = true;\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\t\tconst xmlContent = new TextDecoder('utf-8').decode(fileData);\n\t\t\t\t\t\t\t\t\tconst mimeType = getOpenXmlMimeTypeFromContentTypesXml(xmlContent);\n\t\t\t\t\t\t\t\t\tif (mimeType) {\n\t\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\topenXmlState.hasParsedContentTypesEntry = true;\n\t\t\t\t\t\t\t\t\topenXmlState.isParsingContentTypes = false;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif (/classes\\d*\\.dex/.test(zipHeader.filename)) {\n\t\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\t\text: 'apk',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.android.package-archive',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn {stop: true};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (!isRecoverableZipError(error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tif (openXmlState.isParsingContentTypes) {\n\t\t\t\t\topenXmlState.isParsingContentTypes = false;\n\t\t\t\t\topenXmlState.hasUnparseableContentTypes = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn fileType ?? getOpenXmlFileTypeFromZipEntries(openXmlState) ?? {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = new Uint8Array(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/ogg; codecs=opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/file/file/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D\n\n\t\t\t\twhile ((msb & mask) === 0 && mask !== 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = new Uint8Array(ic + 1);\n\t\t\t\tawait safeReadBuffer(tokenizer, id, undefined, {\n\t\t\t\t\tmaximumLength: id.length,\n\t\t\t\t\treason: 'EBML field',\n\t\t\t\t});\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst idField = await readField();\n\t\t\t\tconst lengthField = await readField();\n\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\n\t\t\t\tconst idView = new DataView(idField.buffer);\n\t\t\t\tconst lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength);\n\n\t\t\t\treturn {\n\t\t\t\t\tid: getUintBE(idView),\n\t\t\t\t\tlen: getUintBE(lengthView),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(children) {\n\t\t\t\tlet ebmlElementCount = 0;\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tebmlElementCount++;\n\t\t\t\t\tif (ebmlElementCount > maximumEbmlElementCount) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst element = await readElement();\n\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\t// `DocType` is a short string (\"webm\", \"matroska\", ...), reject implausible lengths to avoid large allocations.\n\t\t\t\t\t\tif (element.len > maximumEbmlDocumentTypeSizeInBytes) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst documentTypeLength = getSafeBound(element.len, maximumEbmlDocumentTypeSizeInBytes, 'EBML DocType');\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(documentTypeLength));\n\t\t\t\t\t\treturn rawValue.replaceAll(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\thasUnknownFileSize(tokenizer)\n\t\t\t\t\t\t&& (\n\t\t\t\t\t\t\t!Number.isFinite(element.len)\n\t\t\t\t\t\t\t|| element.len < 0\n\t\t\t\t\t\t\t|| element.len > maximumEbmlElementPayloadSizeInBytes\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait safeIgnore(tokenizer, element.len, {\n\t\t\t\t\t\tmaximumLength: hasUnknownFileSize(tokenizer) ? maximumEbmlElementPayloadSizeInBytes : tokenizer.fileInfo.size,\n\t\t\t\t\t\treason: 'EBML payload',\n\t\t\t\t\t}); // ignore payload\n\t\t\t\t\t--children;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst rootElement = await readElement();\n\t\t\tconst documentType = await readChildren(rootElement.len);\n\n\t\t\tswitch (documentType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x21, 0x42, 0x44, 0x4E])) {\n\t\t\treturn {\n\t\t\t\text: 'pst',\n\t\t\t\tmime: 'application/vnd.ms-outlook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('PAR1') || this.checkString('PARE')) {\n\t\t\treturn {\n\t\t\t\text: 'parquet',\n\t\t\t\tmime: 'application/vnd.apache.parquet',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ttcf')) {\n\t\t\treturn {\n\t\t\t\text: 'ttc',\n\t\t\t\tmime: 'font/collection',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFE, 0xED, 0xFA, 0xCE]) // 32-bit, big-endian\n\t\t\t|| this.check([0xFE, 0xED, 0xFA, 0xCF]) // 64-bit, big-endian\n\t\t\t|| this.check([0xCE, 0xFA, 0xED, 0xFE]) // 32-bit, little-endian\n\t\t\t|| this.check([0xCF, 0xFA, 0xED, 0xFE]) // 64-bit, little-endian\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'macho',\n\t\t\t\tmime: 'application/x-mach-binary',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x22, 0x4D, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'lz4',\n\t\t\t\tmime: 'application/x-lz4', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('regf')) {\n\t\t\treturn {\n\t\t\t\text: 'dat',\n\t\t\t\tmime: 'application/x-ft-windows-registry-hive',\n\t\t\t};\n\t\t}\n\n\t\t// SPSS Statistical Data File\n\t\tif (this.checkString('$FL2') || this.checkString('$FL3')) {\n\t\t\treturn {\n\t\t\t\text: 'sav',\n\t\t\t\tmime: 'application/x-spss-sav',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t// MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCA, 0xFE, 0xBA, 0xBE])) {\n\t\t\t// Java bytecode and Mach-O universal binaries have the same magic number.\n\t\t\t// We disambiguate based on the next 4 bytes, as done by `file`.\n\t\t\t// See https://github.com/file/file/blob/master/magic/Magdir/cafebabe\n\t\t\tconst machOArchitectureCount = Token.UINT32_BE.get(this.buffer, 4);\n\t\t\tconst javaClassFileMajorVersion = Token.UINT16_BE.get(this.buffer, 6);\n\n\t\t\tif (machOArchitectureCount > 0 && machOArchitectureCount <= 30) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'macho',\n\t\t\t\t\tmime: 'application/x-mach-binary',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (javaClassFileMajorVersion > 30) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'class',\n\t\t\t\t\tmime: 'application/java-vm',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('.RMF')) {\n\t\t\treturn {\n\t\t\t\text: 'rm',\n\t\t\t\tmime: 'application/vnd.rn-realmedia',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.checkString('DRACO')) {\n\t\t\treturn {\n\t\t\t\text: 'drc',\n\t\t\t\tmime: 'application/vnd.google.draco', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('<?xml ')) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\t\treturn {\n\t\t\t\text: '7z',\n\t\t\t\tmime: 'application/x-7z-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n\t\t\t&& (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'rar',\n\t\t\t\tmime: 'application/x-rar-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('solid ')) {\n\t\t\treturn {\n\t\t\t\text: 'stl',\n\t\t\t\tmime: 'model/stl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('AC')) {\n\t\t\tconst version = new Token.StringType(4, 'latin1').get(this.buffer, 2);\n\t\t\tif (version.match('^d*') && version >= 1000 && version <= 1050) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'dwg',\n\t\t\t\t\tmime: 'image/vnd.dwg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('070707')) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!<arch>')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('WEBVTT')\n\t\t\t&&\t(\n\t\t\t\t// One of LF, CR, tab, space, or end of file must follow \"WEBVTT\" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\\0` gives us the same result as checking for the end of the stream.\n\t\t\t\t(['\\n', '\\r', '\\t', ' ', '\\0'].some(char7 => this.checkString(char7, {offset: 6}))))\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'vtt',\n\t\t\t\tmime: 'text/vtt',\n\t\t\t};\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\tconst pngFileType = {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\n\t\t\tconst apngFileType = {\n\t\t\t\text: 'apng',\n\t\t\t\tmime: 'image/apng',\n\t\t\t};\n\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'latin1')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst isUnknownPngStream = hasUnknownFileSize(tokenizer);\n\t\t\tconst pngScanStart = tokenizer.position;\n\t\t\tdo {\n\t\t\t\tif (hasExceededUnknownSizeScanBudget(tokenizer, pngScanStart, maximumPngChunkSizeInBytes)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn pngFileType;\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn apngFileType;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisUnknownPngStream\n\t\t\t\t\t\t\t\t&& chunk.length > maximumPngChunkSizeInBytes\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Avoid huge attacker-controlled skips when probing unknown-size streams.\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait safeIgnore(tokenizer, chunk.length + 4, {\n\t\t\t\t\t\t\t\tmaximumLength: isUnknownPngStream ? maximumPngChunkSizeInBytes + 4 : tokenizer.fileInfo.size,\n\t\t\t\t\t\t\t\treason: 'PNG chunk payload',\n\t\t\t\t\t\t\t}); // Ignore chunk-data + CRC\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!isUnknownPngStream\n\t\t\t\t\t\t\t\t\t&& (\n\t\t\t\t\t\t\t\t\t\terror instanceof ParserHardLimitError\n\t\t\t\t\t\t\t\t\t\t|| error instanceof strtok3.EndOfStreamError\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn pngFileType;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn pngFileType;\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/vnd.apache.arrow.file',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = new Token.StringType(4, 'latin1').get(this.buffer, 8).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\t// -- 10-byte signatures --\n\n\t\tif (this.checkString('REGEDIT4\\r\\n')) {\n\t\t\treturn {\n\t\t\t\text: 'reg',\n\t\t\t\tmime: 'application/x-ms-regedit',\n\t\t\t};\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'webp',\n\t\t\t\t\tmime: 'image/webp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/wav',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tlet isMalformedAsf = false;\n\t\t\ttry {\n\t\t\t\tasync function readHeader() {\n\t\t\t\t\tconst guid = new Uint8Array(16);\n\t\t\t\t\tawait safeReadBuffer(tokenizer, guid, undefined, {\n\t\t\t\t\t\tmaximumLength: guid.length,\n\t\t\t\t\t\treason: 'ASF header GUID',\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: guid,\n\t\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tawait safeIgnore(tokenizer, 30, {\n\t\t\t\t\tmaximumLength: 30,\n\t\t\t\t\treason: 'ASF header prelude',\n\t\t\t\t});\n\t\t\t\tconst isUnknownFileSize = hasUnknownFileSize(tokenizer);\n\t\t\t\tconst asfHeaderScanStart = tokenizer.position;\n\t\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\t\tif (hasExceededUnknownSizeScanBudget(tokenizer, asfHeaderScanStart, maximumUntrustedSkipSizeInBytes)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst previousPosition = tokenizer.position;\n\t\t\t\t\tconst header = await readHeader();\n\t\t\t\t\tlet payload = header.size - 24;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!Number.isFinite(payload)\n\t\t\t\t\t\t|| payload < 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\t\tconst typeId = new Uint8Array(16);\n\t\t\t\t\t\tpayload -= await safeReadBuffer(tokenizer, typeId, undefined, {\n\t\t\t\t\t\t\tmaximumLength: typeId.length,\n\t\t\t\t\t\t\treason: 'ASF stream type GUID',\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait safeIgnore(tokenizer, payload, {\n\t\t\t\t\t\tmaximumLength: isUnknownFileSize ? maximumUntrustedSkipSizeInBytes : tokenizer.fileInfo.size,\n\t\t\t\t\t\treason: 'ASF header payload',\n\t\t\t\t\t});\n\n\t\t\t\t\t// Safeguard against malformed files: break if the position did not advance.\n\t\t\t\t\tif (tokenizer.position <= previousPosition) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (\n\t\t\t\t\terror instanceof strtok3.EndOfStreamError\n\t\t\t\t\t|| error instanceof ParserHardLimitError\n\t\t\t\t) {\n\t\t\t\t\tif (hasUnknownFileSize(tokenizer)) {\n\t\t\t\t\t\tisMalformedAsf = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isMalformedAsf) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0x4F, 0xFF, 0x51])) {\n\t\t\treturn {\n\t\t\t\text: 'j2c',\n\t\t\t\tmime: 'image/j2c',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFE, 0xFF])) { // UTF-16-BOM-BE\n\t\t\tif (this.checkString('<?xml ', {offset: 2, encoding: 'utf-16be'})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some unknown text based format\n\t\t}\n\n\t\tif (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n\t\t\t// Detected Microsoft Compound File Binary File (MS-CFB) Format.\n\t\t\treturn {\n\t\t\t\text: 'cfb',\n\t\t\t\tmime: 'application/x-cfb',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 32 to 256.\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (this.check([0x61, 0x63, 0x73, 0x70], {offset: 36})) {\n\t\t\treturn {\n\t\t\t\text: 'icc',\n\t\t\t\tmime: 'application/vnd.iccprofile',\n\t\t\t};\n\t\t}\n\n\t\t// ACE: requires 14 bytes in the buffer\n\t\tif (this.checkString('**ACE', {offset: 7}) && this.checkString('**', {offset: 12})) {\n\t\t\treturn {\n\t\t\t\text: 'ace',\n\t\t\t\tmime: 'application/x-ace-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// -- 15-byte signatures --\n\n\t\tif (this.checkString('BEGIN:')) {\n\t\t\tif (this.checkString('VCARD', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'vcf',\n\t\t\t\t\tmime: 'text/vcard',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('VCALENDAR', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ics',\n\t\t\t\t\tmime: 'text/calendar',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// `raf` is here just to keep all the raw image detectors together.\n\t\tif (this.checkString('FUJIFILMCCD-RAW')) {\n\t\t\treturn {\n\t\t\t\text: 'raf',\n\t\t\t\tmime: 'image/x-fujifilm-raf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Extended Module:')) {\n\t\t\treturn {\n\t\t\t\text: 'xm',\n\t\t\t\tmime: 'audio/x-xm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Creative Voice File')) {\n\t\t\treturn {\n\t\t\t\text: 'voc',\n\t\t\t\tmime: 'audio/x-voc',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = new DataView(this.buffer.buffer).getUint32(12, true);\n\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = new TextDecoder().decode(this.buffer.subarray(16, jsonSize + 16));\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Kaydara FBX Binary \\u0000')) {\n\t\t\treturn {\n\t\t\t\text: 'fbx',\n\t\t\t\tmime: 'application/x.autodesk.fbx', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// -- 16-byte signatures --\n\n\t\t// JMP files - check for both Little Endian and Big Endian signatures\n\t\tif (this.check([0xFF, 0xFF, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00])\n\t\t\t|| this.check([0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'jmp',\n\t\t\t\tmime: 'application/x-jmp-data',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif ((this.checkString('ustar', {offset: 257}) && (this.checkString('\\0', {offset: 262}) || this.checkString(' ', {offset: 262})))\n\t\t\t|| (this.check([0, 0, 0, 0, 0, 0], {offset: 257}) && tarHeaderChecksumMatches(this.buffer))) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE])) { // UTF-16-BOM-LE\n\t\t\tconst encoding = 'utf-16le';\n\t\t\tif (this.checkString('<?xml ', {offset: 2, encoding})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0xFF, 0x0E], {offset: 2}) && this.checkString('SketchUp Model', {offset: 4, encoding})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'skp',\n\t\t\t\t\tmime: 'application/vnd.sketchup.skp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('Windows Registry Editor Version 5.00\\r\\n', {offset: 2, encoding})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'reg',\n\t\t\t\t\tmime: 'application/x-ms-regedit',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some text based format\n\t\t}\n\n\t\tif (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\t\treturn {\n\t\t\t\text: 'pgp',\n\t\t\t\tmime: 'application/pgp-encrypted',\n\t\t\t};\n\t\t}\n\t};\n\t// Detections with limited supporting data, resulting in a higher likelihood of false positives\n\tdetectImprecise = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\t\tconst fileSize = getKnownFileSizeOrMaximum(tokenizer.fileInfo.size);\n\n\t\t// Read initial sample size of 8 bytes\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(8, fileSize), mayBeLess: true});\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\t// Adjust buffer to `mpegOffsetTolerance`\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(2 + this.options.mpegOffsetTolerance, fileSize), mayBeLess: true});\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= (2 + this.options.mpegOffsetTolerance)) {\n\t\t\tfor (let depth = 0; depth <= this.options.mpegOffsetTolerance; ++depth) {\n\t\t\t\tconst type = this.scanMpeg(depth);\n\t\t\t\tif (type) {\n\t\t\t\t\treturn type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tawait this.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tif (\n\t\t\thasUnknownFileSize(this.tokenizer)\n\t\t\t&& (2 + (numberOfTags * 12)) > maximumTiffIfdOffsetInBytes\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst tiffFileType = {\n\t\t\text: 'tif',\n\t\t\tmime: 'image/tiff',\n\t\t};\n\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8) {\n\t\t\t\t\tconst someId1 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 8);\n\t\t\t\t\tconst someId2 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 10);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(someId1 === 0x1C && someId2 === 0xFE)\n\t\t\t\t\t\t|| (someId1 === 0x1F && someId2 === 0x0B)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\t\tmime: 'image/x-nikon-nef',\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\tconst maximumTiffOffset = hasUnknownFileSize(this.tokenizer) ? maximumTiffIfdOffsetInBytes : this.tokenizer.fileInfo.size;\n\n\t\t\ttry {\n\t\t\t\tawait safeIgnore(this.tokenizer, ifdOffset, {\n\t\t\t\t\tmaximumLength: maximumTiffOffset,\n\t\t\t\t\treason: 'TIFF IFD offset',\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tlet fileType;\n\t\t\ttry {\n\t\t\t\tfileType = await this.readTiffIFD(bigEndian);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn fileType ?? tiffFileType;\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn tiffFileType;\n\t\t}\n\t}\n\n\t/**\n\tScan check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE).\n\n\t@param offset - Offset to scan for sync-preamble.\n\t@returns {{ext: string, mime: string}}\n\t*/\n\tscanMpeg(offset) {\n\t\tif (this.check([0xFF, 0xE0], {offset, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: offset + 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: offset + 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n","/**\nNode.js specific entry point.\n*/\n\nimport {ReadableStream as WebReadableStream} from 'node:stream/web';\nimport {pipeline, PassThrough, Readable} from 'node:stream';\nimport * as strtok3 from 'strtok3';\nimport {\n\tFileTypeParser as DefaultFileTypeParser,\n\treasonableDetectionSizeInBytes,\n\tnormalizeSampleSize,\n} from './core.js';\n\nfunction isTokenizerStreamBoundsError(error) {\n\tif (\n\t\t!(error instanceof RangeError)\n\t\t|| error.message !== 'offset is out of bounds'\n\t\t|| typeof error.stack !== 'string'\n\t) {\n\t\treturn false;\n\t}\n\n\t// Some malformed or non-byte Node.js streams can surface this tokenizer-internal range error.\n\t// Note: This stack-trace check is fragile and may break if strtok3 restructures its internals.\n\treturn /strtok3[/\\\\]lib[/\\\\]stream[/\\\\]/.test(error.stack);\n}\n\nexport class FileTypeParser extends DefaultFileTypeParser {\n\tasync fromStream(stream) {\n\t\tconst tokenizer = await (stream instanceof WebReadableStream ? strtok3.fromWebStream(stream, this.tokenizerOptions) : strtok3.fromStream(stream, this.tokenizerOptions));\n\t\ttry {\n\t\t\treturn await super.fromTokenizer(tokenizer);\n\t\t} catch (error) {\n\t\t\tif (isTokenizerStreamBoundsError(error)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync fromFile(path) {\n\t\tconst tokenizer = await strtok3.fromFile(path);\n\t\ttry {\n\t\t\treturn await super.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync toDetectionStream(readableStream, options = {}) {\n\t\tif (!(readableStream instanceof Readable)) {\n\t\t\treturn super.toDetectionStream(readableStream, options);\n\t\t}\n\n\t\tconst sampleSize = normalizeSampleSize(options.sampleSize ?? reasonableDetectionSizeInBytes);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadableStream.on('error', reject);\n\n\t\t\treadableStream.once('readable', () => {\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Set up output stream\n\t\t\t\t\t\tconst pass = new PassThrough();\n\t\t\t\t\t\tconst outputStream = pipeline ? pipeline(readableStream, pass, () => {}) : readableStream.pipe(pass);\n\n\t\t\t\t\t\t// Read the input stream and detect the filetype\n\t\t\t\t\t\tconst chunk = readableStream.read(sampleSize) ?? readableStream.read() ?? new Uint8Array(0);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tpass.fileType = await this.fromBuffer(chunk);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\t\t\t\tpass.fileType = undefined;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve(outputStream);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport async function fileTypeFromFile(path, options) {\n\treturn (new FileTypeParser(options)).fromFile(path, options);\n}\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn (new FileTypeParser(options)).fromStream(stream);\n}\n\nexport async function fileTypeStream(readableStream, options = {}) {\n\treturn new FileTypeParser(options).toDetectionStream(readableStream, options);\n}\n\nexport {\n\tfileTypeFromTokenizer,\n\tfileTypeFromBuffer,\n\tfileTypeFromBlob,\n\tsupportedMimeTypes,\n\tsupportedExtensions,\n} from './core.js';\n","/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = <subdomain>\n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * <subdomain> = <label> | <subdomain> \".\" <label>\n * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n * Labels must be 63 characters or less.\n * 'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp> = <let-dig> | \"-\"\n * <let-dig> = <letter> | <digit>\n * <letter> = any one of the 52 alphabetic characters A through Z in\n * upper case and a through z in lower case\n * <digit> = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp =\n /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value = <any CHAR except CTLs or \";\">\n * CHAR = %x01-7F\n * ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n\n/**\n * RegExp to match max-age-value in RFC 6265 sec 5.6.2\n */\nconst maxAgeRegExp = /^-?\\d+$/;\n\nconst __toString = Object.prototype.toString;\n\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () {};\n C.prototype = Object.create(null);\n return C;\n})() as unknown as { new (): any };\n\n/**\n * Parse options.\n */\nexport interface ParseOptions {\n /**\n * Specifies a function that will be used to decode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n * Since the value of a cookie has a limited character set (and must be a simple string), this function can be used to decode\n * a previously-encoded cookie value into a JavaScript string.\n *\n * The default function is the global `decodeURIComponent`, wrapped in a `try..catch`. If an error\n * is thrown it will return the cookie's original value. If you provide your own encode/decode\n * scheme you must ensure errors are appropriately handled.\n *\n * @default decode\n */\n decode?: (str: string) => string | undefined;\n}\n\n/**\n * Cookies object.\n */\nexport type Cookies = Record<string, string | undefined>;\n\n/**\n * Parse a `Cookie` header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nexport function parseCookie(str: string, options?: ParseOptions): Cookies {\n const obj: Cookies = new NullObject();\n const len = str.length;\n // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n if (len < 2) return obj;\n\n const dec = options?.decode || decode;\n let index = 0;\n\n do {\n const eqIdx = eqIndex(str, index, len);\n if (eqIdx === -1) break; // No more cookie pairs.\n\n const endIdx = endIndex(str, index, len);\n\n if (eqIdx > endIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n\n const key = valueSlice(str, index, eqIdx);\n\n // only assign once\n if (obj[key] === undefined) {\n obj[key] = dec(valueSlice(str, eqIdx + 1, endIdx));\n }\n\n index = endIdx + 1;\n } while (index < len);\n\n return obj;\n}\n\nexport interface StringifyOptions {\n /**\n * Specifies a function that will be used to encode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n * Since value of a cookie has a limited character set (and must be a simple string), this function can be used to encode\n * a value into a string suited for a cookie's value, and should mirror `decode` when parsing.\n *\n * @default encodeURIComponent\n */\n encode?: (str: string) => string;\n}\n\n/**\n * Stringifies an object into an HTTP `Cookie` header.\n */\nexport function stringifyCookie(\n cookie: Cookies,\n options?: StringifyOptions,\n): string {\n const enc = options?.encode || encodeURIComponent;\n const cookieStrings: string[] = [];\n\n for (const name of Object.keys(cookie)) {\n const val = cookie[name];\n if (val === undefined) continue;\n\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(`cookie name is invalid: ${name}`);\n }\n\n const value = enc(val);\n\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`cookie val is invalid: ${val}`);\n }\n\n cookieStrings.push(`${name}=${value}`);\n }\n\n return cookieStrings.join(\"; \");\n}\n\n/**\n * Set-Cookie object.\n */\nexport interface SetCookie {\n /**\n * Specifies the name of the cookie.\n */\n name: string;\n /**\n * Specifies the string to be the value for the cookie.\n */\n value: string | undefined;\n /**\n * Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.2).\n *\n * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n * so if both are set, they should point to the same date and time.\n */\n maxAge?: number;\n /**\n * Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.1).\n * When no expiration is set, clients consider this a \"non-persistent cookie\" and delete it when the current session is over.\n *\n * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n * so if both are set, they should point to the same date and time.\n */\n expires?: Date;\n /**\n * Specifies the value for the [`Domain` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.3).\n * When no domain is set, clients consider the cookie to apply to the current domain only.\n */\n domain?: string;\n /**\n * Specifies the value for the [`Path` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.4).\n * When no path is set, the path is considered the [\"default path\"](https://tools.ietf.org/html/rfc6265#section-5.1.4).\n */\n path?: string;\n /**\n * Enables the [`HttpOnly` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.6).\n * When enabled, clients will not allow client-side JavaScript to see the cookie in `document.cookie`.\n */\n httpOnly?: boolean;\n /**\n * Enables the [`Secure` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.5).\n * When enabled, clients will only send the cookie back if the browser has an HTTPS connection.\n */\n secure?: boolean;\n /**\n * Enables the [`Partitioned` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/).\n * When enabled, clients will only send the cookie back when the current domain _and_ top-level domain matches.\n *\n * This is an attribute that has not yet been fully standardized, and may change in the future.\n * This also means clients may ignore this attribute until they understand it. More information\n * about can be found in [the proposal](https://github.com/privacycg/CHIPS).\n */\n partitioned?: boolean;\n /**\n * Specifies the value for the [`Priority` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n *\n * - `'low'` will set the `Priority` attribute to `Low`.\n * - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.\n * - `'high'` will set the `Priority` attribute to `High`.\n *\n * More information about priority levels can be found in [the specification](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n */\n priority?: \"low\" | \"medium\" | \"high\";\n /**\n * Specifies the value for the [`SameSite` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n *\n * - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n * - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.\n * - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.\n * - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n *\n * More information about enforcement levels can be found in [the specification](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n */\n sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n}\n\n/**\n * Backward compatibility serialize options.\n */\nexport type SerializeOptions = StringifyOptions &\n Omit<SetCookie, \"name\" | \"value\">;\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n */\nexport function stringifySetCookie(\n cookie: SetCookie,\n options?: StringifyOptions,\n): string;\nexport function stringifySetCookie(\n name: string,\n val: string,\n options?: SerializeOptions,\n): string;\nexport function stringifySetCookie(\n _name: string | SetCookie,\n _val?: string | StringifyOptions,\n _opts?: SerializeOptions,\n): string {\n const cookie =\n typeof _name === \"object\"\n ? _name\n : { ..._opts, name: _name, value: String(_val) };\n const options = typeof _val === \"object\" ? _val : _opts;\n const enc = options?.encode || encodeURIComponent;\n\n if (!cookieNameRegExp.test(cookie.name)) {\n throw new TypeError(`argument name is invalid: ${cookie.name}`);\n }\n\n const value = cookie.value ? enc(cookie.value) : \"\";\n\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`argument val is invalid: ${cookie.value}`);\n }\n\n let str = cookie.name + \"=\" + value;\n\n if (cookie.maxAge !== undefined) {\n if (!Number.isInteger(cookie.maxAge)) {\n throw new TypeError(`option maxAge is invalid: ${cookie.maxAge}`);\n }\n\n str += \"; Max-Age=\" + cookie.maxAge;\n }\n\n if (cookie.domain) {\n if (!domainValueRegExp.test(cookie.domain)) {\n throw new TypeError(`option domain is invalid: ${cookie.domain}`);\n }\n\n str += \"; Domain=\" + cookie.domain;\n }\n\n if (cookie.path) {\n if (!pathValueRegExp.test(cookie.path)) {\n throw new TypeError(`option path is invalid: ${cookie.path}`);\n }\n\n str += \"; Path=\" + cookie.path;\n }\n\n if (cookie.expires) {\n if (!isDate(cookie.expires) || !Number.isFinite(cookie.expires.valueOf())) {\n throw new TypeError(`option expires is invalid: ${cookie.expires}`);\n }\n\n str += \"; Expires=\" + cookie.expires.toUTCString();\n }\n\n if (cookie.httpOnly) {\n str += \"; HttpOnly\";\n }\n\n if (cookie.secure) {\n str += \"; Secure\";\n }\n\n if (cookie.partitioned) {\n str += \"; Partitioned\";\n }\n\n if (cookie.priority) {\n const priority =\n typeof cookie.priority === \"string\"\n ? cookie.priority.toLowerCase()\n : undefined;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(`option priority is invalid: ${cookie.priority}`);\n }\n }\n\n if (cookie.sameSite) {\n const sameSite =\n typeof cookie.sameSite === \"string\"\n ? cookie.sameSite.toLowerCase()\n : cookie.sameSite;\n switch (sameSite) {\n case true:\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(`option sameSite is invalid: ${cookie.sameSite}`);\n }\n }\n\n return str;\n}\n\n/**\n * Deserialize a `Set-Cookie` header into an object.\n *\n * deserialize('foo=bar; httpOnly')\n * => { name: 'foo', value: 'bar', httpOnly: true }\n */\nexport function parseSetCookie(str: string, options?: ParseOptions): SetCookie {\n const dec = options?.decode || decode;\n const len = str.length;\n const endIdx = endIndex(str, 0, len);\n const eqIdx = eqIndex(str, 0, endIdx);\n const setCookie: SetCookie =\n eqIdx === -1\n ? { name: \"\", value: dec(valueSlice(str, 0, endIdx)) }\n : {\n name: valueSlice(str, 0, eqIdx),\n value: dec(valueSlice(str, eqIdx + 1, endIdx)),\n };\n\n let index = endIdx + 1;\n while (index < len) {\n const endIdx = endIndex(str, index, len);\n const eqIdx = eqIndex(str, index, endIdx);\n const attr =\n eqIdx === -1\n ? valueSlice(str, index, endIdx)\n : valueSlice(str, index, eqIdx);\n const val = eqIdx === -1 ? undefined : valueSlice(str, eqIdx + 1, endIdx);\n\n switch (attr.toLowerCase()) {\n case \"httponly\":\n setCookie.httpOnly = true;\n break;\n case \"secure\":\n setCookie.secure = true;\n break;\n case \"partitioned\":\n setCookie.partitioned = true;\n break;\n case \"domain\":\n setCookie.domain = val;\n break;\n case \"path\":\n setCookie.path = val;\n break;\n case \"max-age\":\n if (val && maxAgeRegExp.test(val)) setCookie.maxAge = Number(val);\n break;\n case \"expires\":\n if (!val) break;\n const date = new Date(val);\n if (Number.isFinite(date.valueOf())) setCookie.expires = date;\n break;\n case \"priority\":\n if (!val) break;\n const priority = val.toLowerCase();\n if (\n priority === \"low\" ||\n priority === \"medium\" ||\n priority === \"high\"\n ) {\n setCookie.priority = priority;\n }\n break;\n case \"samesite\":\n if (!val) break;\n const sameSite = val.toLowerCase();\n if (\n sameSite === \"lax\" ||\n sameSite === \"strict\" ||\n sameSite === \"none\"\n ) {\n setCookie.sameSite = sameSite;\n }\n break;\n }\n\n index = endIdx + 1;\n }\n\n return setCookie;\n}\n\n/**\n * Find the `;` character between `min` and `len` in str.\n */\nfunction endIndex(str: string, min: number, len: number) {\n const index = str.indexOf(\";\", min);\n return index === -1 ? len : index;\n}\n\n/**\n * Find the `=` character between `min` and `max` in str.\n */\nfunction eqIndex(str: string, min: number, max: number) {\n const index = str.indexOf(\"=\", min);\n return index < max ? index : -1;\n}\n\n/**\n * Slice out a value between startPod to max.\n */\nfunction valueSlice(str: string, min: number, max: number) {\n let start = min;\n let end = max;\n\n do {\n const code = str.charCodeAt(start);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) break;\n } while (++start < end);\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) break;\n end--;\n }\n\n return str.slice(start, end);\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str: string): string {\n if (str.indexOf(\"%\") === -1) return str;\n\n try {\n return decodeURIComponent(str);\n } catch (e) {\n return str;\n }\n}\n\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val: any): val is Date {\n return __toString.call(val) === \"[object Date]\";\n}\n\n/**\n * Backward compatibility exports.\n */\nexport { stringifySetCookie as serialize, parseCookie as parse };\n","import { ActionHandler, ICapsKit, CapsKitConfig, CapsuleManifest, ActionInterceptor, ActionContext, ActionDefinition } from '../types';\r\nimport * as path from 'path';\r\nimport { loadCapsules } from './loader';\r\nimport { service as systemService } from '../capsules/system/manifest';\r\nimport { service as httpService } from '../capsules/http/manifest';\r\nimport { service as calculatorService } from '../capsules/capskit-calculator/manifest';\r\n\r\nexport class CapsKit implements ICapsKit {\r\n private actions = new Map<string, ActionDefinition>();\r\n private manifests = new Map<string, CapsuleManifest>();\r\n private interceptors: ActionInterceptor[] = [];\r\n private eventRegistry = new Map<string, string[]>();\r\n private dependencies: Record<string, any> = {};\r\n\r\n constructor(private config: CapsKitConfig) {\r\n this.dependencies = {\r\n ...config.dependencies,\r\n capskit: this\r\n };\r\n }\r\n\r\n async start(): Promise<any> {\r\n // 1. Register built-in capsules (statically imported)\r\n this.registerCapsule(systemService);\r\n this.registerCapsule(httpService);\r\n this.registerCapsule(calculatorService);\r\n\r\n // 2. Load custom capsules from config\r\n if (this.config.capsuleDirs) {\r\n for (const dir of this.config.capsuleDirs) {\r\n const absoluteDir = path.resolve(dir);\r\n const manifests = await loadCapsules(absoluteDir);\r\n \r\n for (const manifest of manifests) {\r\n this.registerCapsule(manifest);\r\n }\r\n }\r\n }\r\n\r\n // 3. Execute boot action if specified\r\n if (this.config.boot) {\r\n return await this.call(this.config.boot.action, this.config.boot.payload || {});\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private registerCapsule(manifest: CapsuleManifest) {\r\n this.validateDependencies(manifest);\r\n this.manifests.set(manifest.name, manifest);\r\n\r\n for (const [actionName, definition] of Object.entries(manifest.actions)) {\r\n const fullName = `${manifest.name}.${actionName}`;\r\n if (typeof definition.handler === 'function') {\r\n this.actions.set(fullName, definition);\r\n } else {\r\n // In a real implementation, we would dynamic import here based on string path\r\n }\r\n }\r\n\r\n if (manifest.events?.subscribes) {\r\n for (const sub of manifest.events.subscribes) {\r\n const targetAction = `${manifest.name}.${sub.action}`;\r\n const existing = this.eventRegistry.get(sub.event) || [];\r\n existing.push(targetAction);\r\n this.eventRegistry.set(sub.event, existing);\r\n }\r\n }\r\n }\r\n\r\n private validateDependencies(manifest: CapsuleManifest) {\r\n if (manifest.requires) {\r\n for (const dep of manifest.requires) {\r\n if (!this.dependencies[dep]) {\r\n throw new Error(`Capsule \"${manifest.name}\" requires dependency \"${dep}\" which is not provided.`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n addInterceptor(interceptor: ActionInterceptor): void {\r\n this.interceptors.push(interceptor);\r\n }\r\n\r\n async call(actionName: string, payload: any): Promise<any> {\r\n const actionDef = this.actions.get(actionName);\r\n if (!actionDef) {\r\n throw new Error(`Action \"${actionName}\" not found.`);\r\n }\r\n\r\n const handler = actionDef.handler as ActionHandler;\r\n\r\n const context: ActionContext = {\r\n params: payload?.params,\r\n body: payload?.body,\r\n query: payload?.query,\r\n deps: this.dependencies,\r\n emit: this.emit.bind(this),\r\n call: this.call.bind(this),\r\n use: this.use.bind(this)\r\n };\r\n\r\n let index = -1;\r\n const dispatch = async (i: number): Promise<any> => {\r\n if (i <= index) throw new Error('next() called multiple times');\r\n index = i;\r\n if (i === this.interceptors.length) {\r\n \r\n if (actionDef.pre) {\r\n for (const hook of actionDef.pre) {\r\n await hook(payload, context);\r\n }\r\n }\r\n\r\n let result = await handler(payload, context);\r\n\r\n if (actionDef.post) {\r\n for (const hook of actionDef.post) {\r\n const hookResult = await hook(payload, result, context);\r\n if (hookResult !== undefined) {\r\n result = hookResult;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n const interceptor = this.interceptors[i];\r\n return interceptor(actionName, payload, context, () => dispatch(i + 1));\r\n };\r\n\r\n return dispatch(0);\r\n }\r\n\r\n use<TCapsule = any>(capsuleName: string): TCapsule {\r\n return new Proxy({}, {\r\n get: (_, actionName: string | symbol) => {\r\n return async (payload: any) => {\r\n const actionPath = `${capsuleName}.${String(actionName)}`;\r\n return this.call(actionPath, payload);\r\n };\r\n }\r\n }) as TCapsule;\r\n }\r\n\r\n describe(capsuleName: string): CapsuleManifest | undefined {\r\n return this.manifests.get(capsuleName);\r\n }\r\n\r\n emit(event: string, data: any): void {\r\n // Basic event emission (can be expanded with adapters later)\r\n console.log(`[Event Bus] Emitted: ${event}`);\r\n \r\n // Asynchronously dispatch to all registered subscribers\r\n const subscribers = this.eventRegistry.get(event);\r\n if (subscribers) {\r\n for (const actionName of subscribers) {\r\n // Fire and forget, but catch errors to avoid unhandled promises\r\n this.call(actionName, data).catch(err => {\r\n console.error(`[Event Bus] Subscriber action ${actionName} failed handling event ${event}:`, err);\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Helper for internal registry access (used by system capsule later)\r\n getManifests() {\r\n return Array.from(this.manifests.values());\r\n }\r\n}\r\n\r\nexport async function createCapsKit(config: CapsKitConfig): Promise<any> {\r\n const kit = new CapsKit(config);\r\n const bootResult = await kit.start();\r\n \r\n // Return boot results merged with the kit instance for convenience\r\n return Object.assign(bootResult || {}, { capskit: kit });\r\n}\r\n\r\n","import { CapsuleManifest } from '../types';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nexport async function loadCapsules(capsulesDir: string): Promise<CapsuleManifest[]> {\r\n const manifests: CapsuleManifest[] = [];\r\n\r\n if (!fs.existsSync(capsulesDir)) {\r\n return manifests;\r\n }\r\n\r\n const entries = fs.readdirSync(capsulesDir, { withFileTypes: true });\r\n\r\n for (const entry of entries) {\r\n if (entry.isDirectory()) {\r\n const manifestPath = path.join(capsulesDir, entry.name, 'manifest.ts');\r\n const manifestJsPath = path.join(capsulesDir, entry.name, 'manifest.js');\r\n \r\n let finalPath = '';\r\n if (fs.existsSync(manifestPath)) {\r\n finalPath = manifestPath;\r\n } else if (fs.existsSync(manifestJsPath)) {\r\n finalPath = manifestJsPath;\r\n }\r\n\r\n if (finalPath) {\r\n try {\r\n console.log(finalPath)\r\n // In Windows, absolute paths must be prefixed with file:// for dynamic import()\r\n const module = await import(`file://${finalPath}`);\r\n const manifest = module.service || module.manifest || module.default;\r\n if (manifest) {\r\n manifests.push(manifest);\r\n }\r\n } catch (error) {\r\n console.error(`Failed to load manifest at ${finalPath}:`, error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return manifests;\r\n}\r\n","import { ActionHandler } from '../../../../types';\r\n\r\nexport const getHealth: ActionHandler = async () => {\r\n return {\r\n status: 'healthy',\r\n uptime: process.uptime(),\r\n timestamp: Date.now(),\r\n version: '0.0.0'\r\n };\r\n};\r\n","import { ActionHandler } from '../../../../types';\r\n\r\nexport const listCapsules: ActionHandler = async (payload, context) => {\r\n const capskit = context.deps.capskit;\r\n if (!capskit || typeof capskit.getManifests !== 'function') {\r\n throw new Error('System capsule requires \"capskit\" dependency with getManifests() method.');\r\n }\r\n\r\n return capskit.getManifests();\r\n};\r\n","import { ActionHandler } from '../../../../types';\r\n\r\nexport const metrics: ActionHandler = async () => {\r\n return {\r\n memory: process.memoryUsage(),\r\n cpu: process.cpuUsage(),\r\n timestamp: Date.now()\r\n };\r\n};\r\n","import { ActionHandler } from '../../../../types';\n\nexport const audit: ActionHandler = async (payload) => {\n console.log('[System Audit] Event received correctly via Event Bus:', payload);\n return { success: true };\n};\n","import { CapsuleManifest } from '../../types';\r\nimport { getHealth } from './src/actions/getHealth';\r\nimport { listCapsules } from './src/actions/listCapsules';\r\nimport { metrics } from './src/actions/metrics';\r\nimport { audit } from './src/actions/audit';\r\n\r\nexport const service: CapsuleManifest = {\r\n name: 'system',\r\n actions: {\r\n getHealth: {\r\n handler: getHealth,\r\n description: 'Returns the health status of the platform'\r\n },\r\n listCapsules: {\r\n handler: listCapsules,\r\n description: 'Lists all registered capsules and their capabilities'\r\n },\r\n metrics: {\r\n handler: metrics,\r\n description: 'Returns platform performance metrics'\r\n },\r\n audit: {\r\n handler: audit,\r\n description: 'Global audit logger listener'\r\n }\r\n },\r\n events: {\r\n subscribes: [\r\n { event: 'calculator.calculated', action: 'audit' }\r\n ]\r\n }\r\n};\r\n","// src/index.ts\nvar createNode = (part, inert) => {\n const inertMap = inert?.length ? {} : null;\n if (inertMap)\n for (const child of inert)\n inertMap[child.part.charCodeAt(0)] = child;\n return {\n part,\n store: null,\n inert: inertMap,\n params: null,\n wildcardStore: null\n };\n};\nvar cloneNode = (node, part) => ({\n ...node,\n part\n});\nvar createParamNode = (name) => ({\n name,\n store: null,\n inert: null\n});\nvar Memoirist = class _Memoirist {\n constructor(config = {}) {\n this.config = config;\n if (config.lazy)\n this.find = this.lazyFind;\n if (config.onParam && !Array.isArray(config.onParam))\n this.config.onParam = [\n this.config.onParam\n ];\n }\n root = {};\n history = [];\n deferred = [];\n static regex = {\n static: /:.+?(?=\\/|$)/,\n params: /:.+?(?=\\/|$)/g,\n optionalParams: /(\\/:\\w+\\?)/g\n };\n lazyFind = (method, url) => {\n if (!this.config.lazy)\n return this.find;\n this.build();\n return this.find(method, url);\n };\n build() {\n if (!this.config.lazy)\n return;\n for (const [method, path, store] of this.deferred)\n this.add(method, path, store, { lazy: false, ignoreHistory: true });\n this.deferred = [];\n this.find = (method, url) => {\n const root = this.root[method];\n if (!root)\n return null;\n return matchRoute(\n url,\n url.length,\n root,\n 0,\n this.config.onParam\n );\n };\n }\n add(method, path, store, {\n ignoreError = false,\n ignoreHistory = false,\n lazy = this.config.lazy\n } = {}) {\n if (lazy) {\n this.find = this.lazyFind;\n this.deferred.push([method, path, store]);\n return store;\n }\n if (typeof path !== \"string\")\n throw new TypeError(\"Route path must be a string\");\n if (path === \"\")\n path = \"/\";\n else if (path[0] !== \"/\")\n path = `/${path}`;\n const isWildcard = path[path.length - 1] === \"*\";\n const optionalParams = path.match(_Memoirist.regex.optionalParams);\n if (optionalParams) {\n const originalPath = path.replaceAll(\"?\", \"\");\n this.add(method, originalPath, store, {\n ignoreError,\n ignoreHistory,\n lazy\n });\n for (let i = 0; i < optionalParams.length; i++) {\n let newPath = path.replace(optionalParams[i], \"\");\n this.add(method, newPath, store, {\n ignoreError: true,\n ignoreHistory,\n lazy\n });\n }\n return store;\n }\n if (optionalParams)\n path = path.replaceAll(\"?\", \"\");\n if (this.history.find(([m, p, s]) => m === method && p === path))\n return store;\n if (isWildcard || optionalParams && path.charCodeAt(path.length - 1) === 63)\n path = path.slice(0, -1);\n if (!ignoreHistory)\n this.history.push([method, path, store]);\n const inertParts = path.split(_Memoirist.regex.static);\n const paramParts = path.match(_Memoirist.regex.params) || [];\n if (inertParts[inertParts.length - 1] === \"\")\n inertParts.pop();\n let node;\n if (!this.root[method])\n node = this.root[method] = createNode(\"/\");\n else\n node = this.root[method];\n let paramPartsIndex = 0;\n for (let i = 0; i < inertParts.length; ++i) {\n let part = inertParts[i];\n if (i > 0) {\n const param = paramParts[paramPartsIndex++].slice(1);\n if (node.params === null)\n node.params = createParamNode(param);\n else if (node.params.name !== param) {\n if (ignoreError)\n return store;\n else\n throw new Error(\n `Cannot create route \"${path}\" with parameter \"${param}\" because a route already exists with a different parameter name (\"${node.params.name}\") in the same location`\n );\n }\n const params = node.params;\n if (params.inert === null) {\n node = params.inert = createNode(part);\n continue;\n }\n node = params.inert;\n }\n for (let j = 0; ; ) {\n if (j === part.length) {\n if (j < node.part.length) {\n const childNode = cloneNode(node, node.part.slice(j));\n Object.assign(node, createNode(part, [childNode]));\n }\n break;\n }\n if (j === node.part.length) {\n if (node.inert === null)\n node.inert = {};\n const inert = node.inert[part.charCodeAt(j)];\n if (inert) {\n node = inert;\n part = part.slice(j);\n j = 0;\n continue;\n }\n const childNode = createNode(part.slice(j));\n node.inert[part.charCodeAt(j)] = childNode;\n node = childNode;\n break;\n }\n if (part[j] !== node.part[j]) {\n const existingChild = cloneNode(node, node.part.slice(j));\n const newChild = createNode(part.slice(j));\n Object.assign(\n node,\n createNode(node.part.slice(0, j), [\n existingChild,\n newChild\n ])\n );\n node = newChild;\n break;\n }\n ++j;\n }\n }\n if (paramPartsIndex < paramParts.length) {\n const param = paramParts[paramPartsIndex];\n const name = param.slice(1);\n if (node.params === null)\n node.params = createParamNode(name);\n else if (node.params.name !== name) {\n if (ignoreError)\n return store;\n else\n throw new Error(\n `Cannot create route \"${path}\" with parameter \"${name}\" because a route already exists with a different parameter name (\"${node.params.name}\") in the same location`\n );\n }\n if (node.params.store === null)\n node.params.store = store;\n return node.params.store;\n }\n if (isWildcard) {\n if (node.wildcardStore === null)\n node.wildcardStore = store;\n return node.wildcardStore;\n }\n if (node.store === null)\n node.store = store;\n return node.store;\n }\n find(method, url) {\n const root = this.root[method];\n if (!root)\n return null;\n return matchRoute(\n url,\n url.length,\n root,\n 0,\n this.config.onParam\n );\n }\n};\nvar matchRoute = (url, urlLength, node, startIndex, onParam) => {\n const part = node.part;\n const length = part.length;\n const endIndex = startIndex + length;\n if (length > 1) {\n if (endIndex > urlLength)\n return null;\n if (length < 15) {\n for (let i = 1, j = startIndex + 1; i < length; ++i, ++j)\n if (part.charCodeAt(i) !== url.charCodeAt(j))\n return null;\n } else if (url.slice(startIndex, endIndex) !== part)\n return null;\n }\n if (endIndex === urlLength) {\n if (node.store !== null)\n return {\n store: node.store,\n params: {}\n };\n if (node.wildcardStore !== null)\n return {\n store: node.wildcardStore,\n params: { \"*\": \"\" }\n };\n return null;\n }\n if (node.inert !== null) {\n const inert = node.inert[url.charCodeAt(endIndex)];\n if (inert !== void 0) {\n const route = matchRoute(url, urlLength, inert, endIndex, onParam);\n if (route !== null)\n return route;\n }\n }\n if (node.params !== null) {\n const { store, name, inert } = node.params;\n const slashIndex = url.indexOf(\"/\", endIndex);\n if (slashIndex !== endIndex) {\n if (slashIndex === -1 || slashIndex >= urlLength) {\n if (store !== null) {\n const params = {};\n params[name] = url.substring(endIndex, urlLength);\n if (onParam)\n for (let i = 0; i < onParam.length; i++) {\n let temp = onParam[i](params[name], name);\n if (temp !== void 0)\n params[name] = temp;\n }\n return {\n store,\n params\n };\n }\n } else if (inert !== null) {\n const route = matchRoute(\n url,\n urlLength,\n inert,\n slashIndex,\n onParam\n );\n if (route !== null) {\n route.params[name] = url.substring(endIndex, slashIndex);\n if (onParam)\n for (let i = 0; i < onParam.length; i++) {\n let temp = onParam[i](route.params[name], name);\n if (temp !== void 0)\n route.params[name] = temp;\n }\n return route;\n }\n }\n }\n }\n if (node.wildcardStore !== null)\n return {\n store: node.wildcardStore,\n params: {\n \"*\": url.substring(endIndex, urlLength)\n }\n };\n return null;\n};\nvar src_default = Memoirist;\nexport {\n Memoirist,\n src_default as default\n};\n","// --------------------------------------------------------------------------\n// PropertyKey\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return key in value;\n}\n// --------------------------------------------------------------------------\n// Object Instances\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;\n}\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return Array.isArray(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return typeof value === 'bigint';\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return typeof value === 'boolean';\n}\n/** Returns true if this value is a Date object */\nexport function IsDate(value) {\n return value instanceof globalThis.Date;\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return typeof value === 'function';\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return value === null;\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return typeof value === 'number';\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return typeof value === 'object' && value !== null;\n}\n/** Returns true if this value is RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return typeof value === 'string';\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return typeof value === 'symbol';\n}\n/** Returns true if this value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return value === undefined;\n}\n","import * as ValueGuard from '../guard/value.mjs';\nfunction ArrayType(value) {\n return value.map((value) => Visit(value));\n}\nfunction DateType(value) {\n return new Date(value.getTime());\n}\nfunction Uint8ArrayType(value) {\n return new Uint8Array(value);\n}\nfunction RegExpType(value) {\n return new RegExp(value.source, value.flags);\n}\nfunction ObjectType(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Visit(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Visit(value[key]);\n }\n return result;\n}\n// prettier-ignore\nfunction Visit(value) {\n return (ValueGuard.IsArray(value) ? ArrayType(value) :\n ValueGuard.IsDate(value) ? DateType(value) :\n ValueGuard.IsUint8Array(value) ? Uint8ArrayType(value) :\n ValueGuard.IsRegExp(value) ? RegExpType(value) :\n ValueGuard.IsObject(value) ? ObjectType(value) :\n value);\n}\n/** Clones a value */\nexport function Clone(value) {\n return Visit(value);\n}\n","import { Clone } from './value.mjs';\n/** Clones a Rest */\nexport function CloneRest(schemas) {\n return schemas.map((schema) => CloneType(schema));\n}\n/** Clones a Type */\nexport function CloneType(schema, options) {\n return options === undefined ? Clone(schema) : Clone({ ...options, ...schema });\n}\n","// --------------------------------------------------------------------------\n// Iterators\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && globalThis.Symbol.asyncIterator in value;\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && globalThis.Symbol.iterator in value;\n}\n// --------------------------------------------------------------------------\n// Object Instances\n// --------------------------------------------------------------------------\n/** Returns true if this value is not an instance of a class */\nexport function IsStandardObject(value) {\n return IsObject(value) && (globalThis.Object.getPrototypeOf(value) === Object.prototype || globalThis.Object.getPrototypeOf(value) === null);\n}\n/** Returns true if this value is an instance of a class */\nexport function IsInstanceObject(value) {\n return IsObject(value) && !IsArray(value) && IsFunction(value.constructor) && value.constructor.name !== 'Object';\n}\n// --------------------------------------------------------------------------\n// JavaScript\n// --------------------------------------------------------------------------\n/** Returns true if this value is a Promise */\nexport function IsPromise(value) {\n return value instanceof globalThis.Promise;\n}\n/** Returns true if this value is a Date */\nexport function IsDate(value) {\n return value instanceof Date && globalThis.Number.isFinite(value.getTime());\n}\n/** Returns true if this value is an instance of Map<K, T> */\nexport function IsMap(value) {\n return value instanceof globalThis.Map;\n}\n/** Returns true if this value is an instance of Set<T> */\nexport function IsSet(value) {\n return value instanceof globalThis.Set;\n}\n/** Returns true if this value is RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n/** Returns true if this value is a typed array */\nexport function IsTypedArray(value) {\n return globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if the value is a Int8Array */\nexport function IsInt8Array(value) {\n return value instanceof globalThis.Int8Array;\n}\n/** Returns true if the value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if the value is a Uint8ClampedArray */\nexport function IsUint8ClampedArray(value) {\n return value instanceof globalThis.Uint8ClampedArray;\n}\n/** Returns true if the value is a Int16Array */\nexport function IsInt16Array(value) {\n return value instanceof globalThis.Int16Array;\n}\n/** Returns true if the value is a Uint16Array */\nexport function IsUint16Array(value) {\n return value instanceof globalThis.Uint16Array;\n}\n/** Returns true if the value is a Int32Array */\nexport function IsInt32Array(value) {\n return value instanceof globalThis.Int32Array;\n}\n/** Returns true if the value is a Uint32Array */\nexport function IsUint32Array(value) {\n return value instanceof globalThis.Uint32Array;\n}\n/** Returns true if the value is a Float32Array */\nexport function IsFloat32Array(value) {\n return value instanceof globalThis.Float32Array;\n}\n/** Returns true if the value is a Float64Array */\nexport function IsFloat64Array(value) {\n return value instanceof globalThis.Float64Array;\n}\n/** Returns true if the value is a BigInt64Array */\nexport function IsBigInt64Array(value) {\n return value instanceof globalThis.BigInt64Array;\n}\n/** Returns true if the value is a BigUint64Array */\nexport function IsBigUint64Array(value) {\n return value instanceof globalThis.BigUint64Array;\n}\n// --------------------------------------------------------------------------\n// PropertyKey\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return key in value;\n}\n// --------------------------------------------------------------------------\n// Standard\n// --------------------------------------------------------------------------\n/** Returns true of this value is an object type */\nexport function IsObject(value) {\n return value !== null && typeof value === 'object';\n}\n/** Returns true if this value is an array, but not a typed array */\nexport function IsArray(value) {\n return globalThis.Array.isArray(value) && !globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if this value is an undefined */\nexport function IsUndefined(value) {\n return value === undefined;\n}\n/** Returns true if this value is an null */\nexport function IsNull(value) {\n return value === null;\n}\n/** Returns true if this value is an boolean */\nexport function IsBoolean(value) {\n return typeof value === 'boolean';\n}\n/** Returns true if this value is an number */\nexport function IsNumber(value) {\n return typeof value === 'number';\n}\n/** Returns true if this value is an integer */\nexport function IsInteger(value) {\n return globalThis.Number.isInteger(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return typeof value === 'bigint';\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return typeof value === 'string';\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return typeof value === 'function';\n}\n/** Returns true if this value is a symbol */\nexport function IsSymbol(value) {\n return typeof value === 'symbol';\n}\n/** Returns true if this value is a value type such as number, string, boolean */\nexport function IsValueType(value) {\n // prettier-ignore\n return (IsBigInt(value) ||\n IsBoolean(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsUndefined(value));\n}\n","import { IsObject, IsArray, IsNumber, IsUndefined } from '../value/guard/index.mjs';\nexport var TypeSystemPolicy;\n(function (TypeSystemPolicy) {\n // ------------------------------------------------------------------\n // TypeSystemPolicy: Instancing\n // ------------------------------------------------------------------\n /**\n * Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript\n * references for embedded types, which may cause side effects if type properties are explicitly updated\n * outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation,\n * preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making\n * it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the\n * fastest way to instantiate types. The default setting is `default`.\n */\n TypeSystemPolicy.InstanceMode = 'default';\n // ------------------------------------------------------------------\n // TypeSystemPolicy: Checking\n // ------------------------------------------------------------------\n /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */\n TypeSystemPolicy.ExactOptionalPropertyTypes = false;\n /** Sets whether arrays should be treated as a kind of objects. The default is `false` */\n TypeSystemPolicy.AllowArrayObject = false;\n /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */\n TypeSystemPolicy.AllowNaN = false;\n /** Sets whether `null` should validate for void types. The default is `false` */\n TypeSystemPolicy.AllowNullVoid = false;\n /** Checks this value using the ExactOptionalPropertyTypes policy */\n function IsExactOptionalProperty(value, key) {\n return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;\n }\n TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty;\n /** Checks this value using the AllowArrayObjects policy */\n function IsObjectLike(value) {\n const isObject = IsObject(value);\n return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !IsArray(value);\n }\n TypeSystemPolicy.IsObjectLike = IsObjectLike;\n /** Checks this value as a record using the AllowArrayObjects policy */\n function IsRecordLike(value) {\n return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);\n }\n TypeSystemPolicy.IsRecordLike = IsRecordLike;\n /** Checks this value using the AllowNaN policy */\n function IsNumberLike(value) {\n return TypeSystemPolicy.AllowNaN ? IsNumber(value) : Number.isFinite(value);\n }\n TypeSystemPolicy.IsNumberLike = IsNumberLike;\n /** Checks this value using the AllowVoidNull policy */\n function IsVoidLike(value) {\n const isUndefined = IsUndefined(value);\n return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined;\n }\n TypeSystemPolicy.IsVoidLike = IsVoidLike;\n})(TypeSystemPolicy || (TypeSystemPolicy = {}));\n","import * as ValueGuard from '../guard/value.mjs';\nfunction ImmutableArray(value) {\n return globalThis.Object.freeze(value).map((value) => Immutable(value));\n}\nfunction ImmutableDate(value) {\n return value;\n}\nfunction ImmutableUint8Array(value) {\n return value;\n}\nfunction ImmutableRegExp(value) {\n return value;\n}\nfunction ImmutableObject(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Immutable(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Immutable(value[key]);\n }\n return globalThis.Object.freeze(result);\n}\n/** Specialized deep immutable value. Applies freeze recursively to the given value */\n// prettier-ignore\nexport function Immutable(value) {\n return (ValueGuard.IsArray(value) ? ImmutableArray(value) :\n ValueGuard.IsDate(value) ? ImmutableDate(value) :\n ValueGuard.IsUint8Array(value) ? ImmutableUint8Array(value) :\n ValueGuard.IsRegExp(value) ? ImmutableRegExp(value) :\n ValueGuard.IsObject(value) ? ImmutableObject(value) :\n value);\n}\n","import { TypeSystemPolicy } from '../../system/policy.mjs';\nimport { Immutable } from './immutable.mjs';\nimport { Clone } from '../clone/value.mjs';\n/** Creates TypeBox schematics using the configured InstanceMode */\nexport function CreateType(schema, options) {\n const result = options !== undefined ? { ...options, ...schema } : schema;\n switch (TypeSystemPolicy.InstanceMode) {\n case 'freeze':\n return Immutable(result);\n case 'clone':\n return Clone(result);\n default:\n return result;\n }\n}\n","/** The base Error type thrown for all TypeBox exceptions */\nexport class TypeBoxError extends Error {\n constructor(message) {\n super(message);\n }\n}\n","/** Symbol key applied to transform types */\nexport const TransformKind = Symbol.for('TypeBox.Transform');\n/** Symbol key applied to readonly types */\nexport const ReadonlyKind = Symbol.for('TypeBox.Readonly');\n/** Symbol key applied to optional types */\nexport const OptionalKind = Symbol.for('TypeBox.Optional');\n/** Symbol key applied to types */\nexport const Hint = Symbol.for('TypeBox.Hint');\n/** Symbol key applied to types */\nexport const Kind = Symbol.for('TypeBox.Kind');\n","import * as ValueGuard from './value.mjs';\nimport { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';\n/** `[Kind-Only]` Returns true if this value has a Readonly symbol */\nexport function IsReadonly(value) {\n return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';\n}\n/** `[Kind-Only]` Returns true if this value has a Optional symbol */\nexport function IsOptional(value) {\n return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';\n}\n/** `[Kind-Only]` Returns true if the given value is TAny */\nexport function IsAny(value) {\n return IsKindOf(value, 'Any');\n}\n/** `[Kind-Only]` Returns true if the given value is TArgument */\nexport function IsArgument(value) {\n return IsKindOf(value, 'Argument');\n}\n/** `[Kind-Only]` Returns true if the given value is TArray */\nexport function IsArray(value) {\n return IsKindOf(value, 'Array');\n}\n/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */\nexport function IsAsyncIterator(value) {\n return IsKindOf(value, 'AsyncIterator');\n}\n/** `[Kind-Only]` Returns true if the given value is TBigInt */\nexport function IsBigInt(value) {\n return IsKindOf(value, 'BigInt');\n}\n/** `[Kind-Only]` Returns true if the given value is TBoolean */\nexport function IsBoolean(value) {\n return IsKindOf(value, 'Boolean');\n}\n/** `[Kind-Only]` Returns true if the given value is TComputed */\nexport function IsComputed(value) {\n return IsKindOf(value, 'Computed');\n}\n/** `[Kind-Only]` Returns true if the given value is TConstructor */\nexport function IsConstructor(value) {\n return IsKindOf(value, 'Constructor');\n}\n/** `[Kind-Only]` Returns true if the given value is TDate */\nexport function IsDate(value) {\n return IsKindOf(value, 'Date');\n}\n/** `[Kind-Only]` Returns true if the given value is TFunction */\nexport function IsFunction(value) {\n return IsKindOf(value, 'Function');\n}\n/** `[Kind-Only]` Returns true if the given value is TInteger */\nexport function IsImport(value) {\n return IsKindOf(value, 'Import');\n}\n/** `[Kind-Only]` Returns true if the given value is TInteger */\nexport function IsInteger(value) {\n return IsKindOf(value, 'Integer');\n}\n/** `[Kind-Only]` Returns true if the given schema is TProperties */\nexport function IsProperties(value) {\n return ValueGuard.IsObject(value);\n}\n/** `[Kind-Only]` Returns true if the given value is TIntersect */\nexport function IsIntersect(value) {\n return IsKindOf(value, 'Intersect');\n}\n/** `[Kind-Only]` Returns true if the given value is TIterator */\nexport function IsIterator(value) {\n return IsKindOf(value, 'Iterator');\n}\n/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */\nexport function IsKindOf(value, kind) {\n return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<string> */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && ValueGuard.IsString(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<number> */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && ValueGuard.IsNumber(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<boolean> */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && ValueGuard.IsBoolean(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteralValue */\nexport function IsLiteralValue(value) {\n return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral */\nexport function IsLiteral(value) {\n return IsKindOf(value, 'Literal');\n}\n/** `[Kind-Only]` Returns true if the given value is a TMappedKey */\nexport function IsMappedKey(value) {\n return IsKindOf(value, 'MappedKey');\n}\n/** `[Kind-Only]` Returns true if the given value is TMappedResult */\nexport function IsMappedResult(value) {\n return IsKindOf(value, 'MappedResult');\n}\n/** `[Kind-Only]` Returns true if the given value is TNever */\nexport function IsNever(value) {\n return IsKindOf(value, 'Never');\n}\n/** `[Kind-Only]` Returns true if the given value is TNot */\nexport function IsNot(value) {\n return IsKindOf(value, 'Not');\n}\n/** `[Kind-Only]` Returns true if the given value is TNull */\nexport function IsNull(value) {\n return IsKindOf(value, 'Null');\n}\n/** `[Kind-Only]` Returns true if the given value is TNumber */\nexport function IsNumber(value) {\n return IsKindOf(value, 'Number');\n}\n/** `[Kind-Only]` Returns true if the given value is TObject */\nexport function IsObject(value) {\n return IsKindOf(value, 'Object');\n}\n/** `[Kind-Only]` Returns true if the given value is TPromise */\nexport function IsPromise(value) {\n return IsKindOf(value, 'Promise');\n}\n/** `[Kind-Only]` Returns true if the given value is TRecord */\nexport function IsRecord(value) {\n return IsKindOf(value, 'Record');\n}\n/** `[Kind-Only]` Returns true if this value is TRecursive */\nexport function IsRecursive(value) {\n return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';\n}\n/** `[Kind-Only]` Returns true if the given value is TRef */\nexport function IsRef(value) {\n return IsKindOf(value, 'Ref');\n}\n/** `[Kind-Only]` Returns true if the given value is TRegExp */\nexport function IsRegExp(value) {\n return IsKindOf(value, 'RegExp');\n}\n/** `[Kind-Only]` Returns true if the given value is TString */\nexport function IsString(value) {\n return IsKindOf(value, 'String');\n}\n/** `[Kind-Only]` Returns true if the given value is TSymbol */\nexport function IsSymbol(value) {\n return IsKindOf(value, 'Symbol');\n}\n/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */\nexport function IsTemplateLiteral(value) {\n return IsKindOf(value, 'TemplateLiteral');\n}\n/** `[Kind-Only]` Returns true if the given value is TThis */\nexport function IsThis(value) {\n return IsKindOf(value, 'This');\n}\n/** `[Kind-Only]` Returns true of this value is TTransform */\nexport function IsTransform(value) {\n return ValueGuard.IsObject(value) && TransformKind in value;\n}\n/** `[Kind-Only]` Returns true if the given value is TTuple */\nexport function IsTuple(value) {\n return IsKindOf(value, 'Tuple');\n}\n/** `[Kind-Only]` Returns true if the given value is TUndefined */\nexport function IsUndefined(value) {\n return IsKindOf(value, 'Undefined');\n}\n/** `[Kind-Only]` Returns true if the given value is TUnion */\nexport function IsUnion(value) {\n return IsKindOf(value, 'Union');\n}\n/** `[Kind-Only]` Returns true if the given value is TUint8Array */\nexport function IsUint8Array(value) {\n return IsKindOf(value, 'Uint8Array');\n}\n/** `[Kind-Only]` Returns true if the given value is TUnknown */\nexport function IsUnknown(value) {\n return IsKindOf(value, 'Unknown');\n}\n/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */\nexport function IsUnsafe(value) {\n return IsKindOf(value, 'Unsafe');\n}\n/** `[Kind-Only]` Returns true if the given value is TVoid */\nexport function IsVoid(value) {\n return IsKindOf(value, 'Void');\n}\n/** `[Kind-Only]` Returns true if the given value is TKind */\nexport function IsKind(value) {\n return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]);\n}\n/** `[Kind-Only]` Returns true if the given value is TSchema */\nexport function IsSchema(value) {\n // prettier-ignore\n return (IsAny(value) ||\n IsArgument(value) ||\n IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(value) ||\n IsComputed(value) ||\n IsConstructor(value) ||\n IsDate(value) ||\n IsFunction(value) ||\n IsInteger(value) ||\n IsIntersect(value) ||\n IsIterator(value) ||\n IsLiteral(value) ||\n IsMappedKey(value) ||\n IsMappedResult(value) ||\n IsNever(value) ||\n IsNot(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsObject(value) ||\n IsPromise(value) ||\n IsRecord(value) ||\n IsRef(value) ||\n IsRegExp(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsTemplateLiteral(value) ||\n IsThis(value) ||\n IsTuple(value) ||\n IsUndefined(value) ||\n IsUnion(value) ||\n IsUint8Array(value) ||\n IsUnknown(value) ||\n IsUnsafe(value) ||\n IsVoid(value) ||\n IsKind(value));\n}\n","import * as ValueGuard from './value.mjs';\nimport { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\nexport class TypeGuardUnknownTypeError extends TypeBoxError {\n}\nconst KnownTypes = [\n 'Argument',\n 'Any',\n 'Array',\n 'AsyncIterator',\n 'BigInt',\n 'Boolean',\n 'Computed',\n 'Constructor',\n 'Date',\n 'Enum',\n 'Function',\n 'Integer',\n 'Intersect',\n 'Iterator',\n 'Literal',\n 'MappedKey',\n 'MappedResult',\n 'Not',\n 'Null',\n 'Number',\n 'Object',\n 'Promise',\n 'Record',\n 'Ref',\n 'RegExp',\n 'String',\n 'Symbol',\n 'TemplateLiteral',\n 'This',\n 'Tuple',\n 'Undefined',\n 'Union',\n 'Uint8Array',\n 'Unknown',\n 'Void',\n];\nfunction IsPattern(value) {\n try {\n new RegExp(value);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction IsControlCharacterFree(value) {\n if (!ValueGuard.IsString(value))\n return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if ((code >= 7 && code <= 13) || code === 27 || code === 127) {\n return false;\n }\n }\n return true;\n}\nfunction IsAdditionalProperties(value) {\n return IsOptionalBoolean(value) || IsSchema(value);\n}\nfunction IsOptionalBigInt(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsBigInt(value);\n}\nfunction IsOptionalNumber(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsNumber(value);\n}\nfunction IsOptionalBoolean(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsBoolean(value);\n}\nfunction IsOptionalString(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsString(value);\n}\nfunction IsOptionalPattern(value) {\n return ValueGuard.IsUndefined(value) || (ValueGuard.IsString(value) && IsControlCharacterFree(value) && IsPattern(value));\n}\nfunction IsOptionalFormat(value) {\n return ValueGuard.IsUndefined(value) || (ValueGuard.IsString(value) && IsControlCharacterFree(value));\n}\nfunction IsOptionalSchema(value) {\n return ValueGuard.IsUndefined(value) || IsSchema(value);\n}\n// ------------------------------------------------------------------\n// Modifiers\n// ------------------------------------------------------------------\n/** Returns true if this value has a Readonly symbol */\nexport function IsReadonly(value) {\n return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';\n}\n/** Returns true if this value has a Optional symbol */\nexport function IsOptional(value) {\n return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\n/** Returns true if the given value is TAny */\nexport function IsAny(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Any') &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TArgument */\nexport function IsArgument(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Argument') &&\n ValueGuard.IsNumber(value.index));\n}\n/** Returns true if the given value is TArray */\nexport function IsArray(value) {\n return (IsKindOf(value, 'Array') &&\n value.type === 'array' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.items) &&\n IsOptionalNumber(value.minItems) &&\n IsOptionalNumber(value.maxItems) &&\n IsOptionalBoolean(value.uniqueItems) &&\n IsOptionalSchema(value.contains) &&\n IsOptionalNumber(value.minContains) &&\n IsOptionalNumber(value.maxContains));\n}\n/** Returns true if the given value is TAsyncIterator */\nexport function IsAsyncIterator(value) {\n // prettier-ignore\n return (IsKindOf(value, 'AsyncIterator') &&\n value.type === 'AsyncIterator' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.items));\n}\n/** Returns true if the given value is TBigInt */\nexport function IsBigInt(value) {\n // prettier-ignore\n return (IsKindOf(value, 'BigInt') &&\n value.type === 'bigint' &&\n IsOptionalString(value.$id) &&\n IsOptionalBigInt(value.exclusiveMaximum) &&\n IsOptionalBigInt(value.exclusiveMinimum) &&\n IsOptionalBigInt(value.maximum) &&\n IsOptionalBigInt(value.minimum) &&\n IsOptionalBigInt(value.multipleOf));\n}\n/** Returns true if the given value is TBoolean */\nexport function IsBoolean(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Boolean') &&\n value.type === 'boolean' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TComputed */\nexport function IsComputed(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Computed') &&\n ValueGuard.IsString(value.target) &&\n ValueGuard.IsArray(value.parameters) &&\n value.parameters.every((schema) => IsSchema(schema)));\n}\n/** Returns true if the given value is TConstructor */\nexport function IsConstructor(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Constructor') &&\n value.type === 'Constructor' &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsArray(value.parameters) &&\n value.parameters.every(schema => IsSchema(schema)) &&\n IsSchema(value.returns));\n}\n/** Returns true if the given value is TDate */\nexport function IsDate(value) {\n return (IsKindOf(value, 'Date') &&\n value.type === 'Date' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.exclusiveMaximumTimestamp) &&\n IsOptionalNumber(value.exclusiveMinimumTimestamp) &&\n IsOptionalNumber(value.maximumTimestamp) &&\n IsOptionalNumber(value.minimumTimestamp) &&\n IsOptionalNumber(value.multipleOfTimestamp));\n}\n/** Returns true if the given value is TFunction */\nexport function IsFunction(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Function') &&\n value.type === 'Function' &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsArray(value.parameters) &&\n value.parameters.every(schema => IsSchema(schema)) &&\n IsSchema(value.returns));\n}\n/** Returns true if the given value is TImport */\nexport function IsImport(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Import') &&\n ValueGuard.HasPropertyKey(value, '$defs') &&\n ValueGuard.IsObject(value.$defs) &&\n IsProperties(value.$defs) &&\n ValueGuard.HasPropertyKey(value, '$ref') &&\n ValueGuard.IsString(value.$ref) &&\n value.$ref in value.$defs // required\n );\n}\n/** Returns true if the given value is TInteger */\nexport function IsInteger(value) {\n return (IsKindOf(value, 'Integer') &&\n value.type === 'integer' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.exclusiveMaximum) &&\n IsOptionalNumber(value.exclusiveMinimum) &&\n IsOptionalNumber(value.maximum) &&\n IsOptionalNumber(value.minimum) &&\n IsOptionalNumber(value.multipleOf));\n}\n/** Returns true if the given schema is TProperties */\nexport function IsProperties(value) {\n // prettier-ignore\n return (ValueGuard.IsObject(value) &&\n Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && IsSchema(schema)));\n}\n/** Returns true if the given value is TIntersect */\nexport function IsIntersect(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Intersect') &&\n (ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&\n ValueGuard.IsArray(value.allOf) &&\n value.allOf.every(schema => IsSchema(schema) && !IsTransform(schema)) &&\n IsOptionalString(value.type) &&\n (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TIterator */\nexport function IsIterator(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Iterator') &&\n value.type === 'Iterator' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.items));\n}\n/** Returns true if the given value is a TKind with the given name. */\nexport function IsKindOf(value, kind) {\n return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;\n}\n/** Returns true if the given value is TLiteral<string> */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && ValueGuard.IsString(value.const);\n}\n/** Returns true if the given value is TLiteral<number> */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && ValueGuard.IsNumber(value.const);\n}\n/** Returns true if the given value is TLiteral<boolean> */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && ValueGuard.IsBoolean(value.const);\n}\n/** Returns true if the given value is TLiteral */\nexport function IsLiteral(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Literal') &&\n IsOptionalString(value.$id) && IsLiteralValue(value.const));\n}\n/** Returns true if the given value is a TLiteralValue */\nexport function IsLiteralValue(value) {\n return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);\n}\n/** Returns true if the given value is a TMappedKey */\nexport function IsMappedKey(value) {\n // prettier-ignore\n return (IsKindOf(value, 'MappedKey') &&\n ValueGuard.IsArray(value.keys) &&\n value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));\n}\n/** Returns true if the given value is TMappedResult */\nexport function IsMappedResult(value) {\n // prettier-ignore\n return (IsKindOf(value, 'MappedResult') &&\n IsProperties(value.properties));\n}\n/** Returns true if the given value is TNever */\nexport function IsNever(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Never') &&\n ValueGuard.IsObject(value.not) &&\n Object.getOwnPropertyNames(value.not).length === 0);\n}\n/** Returns true if the given value is TNot */\nexport function IsNot(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Not') &&\n IsSchema(value.not));\n}\n/** Returns true if the given value is TNull */\nexport function IsNull(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Null') &&\n value.type === 'null' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TNumber */\nexport function IsNumber(value) {\n return (IsKindOf(value, 'Number') &&\n value.type === 'number' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.exclusiveMaximum) &&\n IsOptionalNumber(value.exclusiveMinimum) &&\n IsOptionalNumber(value.maximum) &&\n IsOptionalNumber(value.minimum) &&\n IsOptionalNumber(value.multipleOf));\n}\n/** Returns true if the given value is TObject */\nexport function IsObject(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Object') &&\n value.type === 'object' &&\n IsOptionalString(value.$id) &&\n IsProperties(value.properties) &&\n IsAdditionalProperties(value.additionalProperties) &&\n IsOptionalNumber(value.minProperties) &&\n IsOptionalNumber(value.maxProperties));\n}\n/** Returns true if the given value is TPromise */\nexport function IsPromise(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Promise') &&\n value.type === 'Promise' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.item));\n}\n/** Returns true if the given value is TRecord */\nexport function IsRecord(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Record') &&\n value.type === 'object' &&\n IsOptionalString(value.$id) &&\n IsAdditionalProperties(value.additionalProperties) &&\n ValueGuard.IsObject(value.patternProperties) &&\n ((schema) => {\n const keys = Object.getOwnPropertyNames(schema.patternProperties);\n return (keys.length === 1 &&\n IsPattern(keys[0]) &&\n ValueGuard.IsObject(schema.patternProperties) &&\n IsSchema(schema.patternProperties[keys[0]]));\n })(value));\n}\n/** Returns true if this value is TRecursive */\nexport function IsRecursive(value) {\n return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';\n}\n/** Returns true if the given value is TRef */\nexport function IsRef(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Ref') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsString(value.$ref));\n}\n/** Returns true if the given value is TRegExp */\nexport function IsRegExp(value) {\n // prettier-ignore\n return (IsKindOf(value, 'RegExp') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsString(value.source) &&\n ValueGuard.IsString(value.flags) &&\n IsOptionalNumber(value.maxLength) &&\n IsOptionalNumber(value.minLength));\n}\n/** Returns true if the given value is TString */\nexport function IsString(value) {\n // prettier-ignore\n return (IsKindOf(value, 'String') &&\n value.type === 'string' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.minLength) &&\n IsOptionalNumber(value.maxLength) &&\n IsOptionalPattern(value.pattern) &&\n IsOptionalFormat(value.format));\n}\n/** Returns true if the given value is TSymbol */\nexport function IsSymbol(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Symbol') &&\n value.type === 'symbol' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TTemplateLiteral */\nexport function IsTemplateLiteral(value) {\n // prettier-ignore\n return (IsKindOf(value, 'TemplateLiteral') &&\n value.type === 'string' &&\n ValueGuard.IsString(value.pattern) &&\n value.pattern[0] === '^' &&\n value.pattern[value.pattern.length - 1] === '$');\n}\n/** Returns true if the given value is TThis */\nexport function IsThis(value) {\n // prettier-ignore\n return (IsKindOf(value, 'This') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsString(value.$ref));\n}\n/** Returns true of this value is TTransform */\nexport function IsTransform(value) {\n return ValueGuard.IsObject(value) && TransformKind in value;\n}\n/** Returns true if the given value is TTuple */\nexport function IsTuple(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Tuple') &&\n value.type === 'array' &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsNumber(value.minItems) &&\n ValueGuard.IsNumber(value.maxItems) &&\n value.minItems === value.maxItems &&\n (( // empty\n ValueGuard.IsUndefined(value.items) &&\n ValueGuard.IsUndefined(value.additionalItems) &&\n value.minItems === 0) || (ValueGuard.IsArray(value.items) &&\n value.items.every(schema => IsSchema(schema)))));\n}\n/** Returns true if the given value is TUndefined */\nexport function IsUndefined(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Undefined') &&\n value.type === 'undefined' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TUnion<Literal<string | number>[]> */\nexport function IsUnionLiteral(value) {\n return IsUnion(value) && value.anyOf.every((schema) => IsLiteralString(schema) || IsLiteralNumber(schema));\n}\n/** Returns true if the given value is TUnion */\nexport function IsUnion(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Union') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsObject(value) &&\n ValueGuard.IsArray(value.anyOf) &&\n value.anyOf.every(schema => IsSchema(schema)));\n}\n/** Returns true if the given value is TUint8Array */\nexport function IsUint8Array(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Uint8Array') &&\n value.type === 'Uint8Array' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.minByteLength) &&\n IsOptionalNumber(value.maxByteLength));\n}\n/** Returns true if the given value is TUnknown */\nexport function IsUnknown(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Unknown') &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is a raw TUnsafe */\nexport function IsUnsafe(value) {\n return IsKindOf(value, 'Unsafe');\n}\n/** Returns true if the given value is TVoid */\nexport function IsVoid(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Void') &&\n value.type === 'void' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TKind */\nexport function IsKind(value) {\n return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);\n}\n/** Returns true if the given value is TSchema */\nexport function IsSchema(value) {\n // prettier-ignore\n return (ValueGuard.IsObject(value)) && (IsAny(value) ||\n IsArgument(value) ||\n IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(value) ||\n IsComputed(value) ||\n IsConstructor(value) ||\n IsDate(value) ||\n IsFunction(value) ||\n IsInteger(value) ||\n IsIntersect(value) ||\n IsIterator(value) ||\n IsLiteral(value) ||\n IsMappedKey(value) ||\n IsMappedResult(value) ||\n IsNever(value) ||\n IsNot(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsObject(value) ||\n IsPromise(value) ||\n IsRecord(value) ||\n IsRef(value) ||\n IsRegExp(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsTemplateLiteral(value) ||\n IsThis(value) ||\n IsTuple(value) ||\n IsUndefined(value) ||\n IsUnion(value) ||\n IsUint8Array(value) ||\n IsUnknown(value) ||\n IsUnsafe(value) ||\n IsVoid(value) ||\n IsKind(value));\n}\n","export const PatternBoolean = '(true|false)';\nexport const PatternNumber = '(0|[1-9][0-9]*)';\nexport const PatternString = '(.*)';\nexport const PatternNever = '(?!.*)';\nexport const PatternBooleanExact = `^${PatternBoolean}$`;\nexport const PatternNumberExact = `^${PatternNumber}$`;\nexport const PatternStringExact = `^${PatternString}$`;\nexport const PatternNeverExact = `^${PatternNever}$`;\n","/** A registry for user defined string formats */\nconst map = new Map();\n/** Returns the entries in this registry */\nexport function Entries() {\n return new Map(map);\n}\n/** Clears all user defined string formats */\nexport function Clear() {\n return map.clear();\n}\n/** Deletes a registered format */\nexport function Delete(format) {\n return map.delete(format);\n}\n/** Returns true if the user defined string format exists */\nexport function Has(format) {\n return map.has(format);\n}\n/** Sets a validation function for a user defined string format */\nexport function Set(format, func) {\n map.set(format, func);\n}\n/** Gets a validation function for a user defined string format */\nexport function Get(format) {\n return map.get(format);\n}\n","/** A registry for user defined types */\nconst map = new Map();\n/** Returns the entries in this registry */\nexport function Entries() {\n return new Map(map);\n}\n/** Clears all user defined types */\nexport function Clear() {\n return map.clear();\n}\n/** Deletes a registered type */\nexport function Delete(kind) {\n return map.delete(kind);\n}\n/** Returns true if this registry contains this kind */\nexport function Has(kind) {\n return map.has(kind);\n}\n/** Sets a validation function for a user defined type */\nexport function Set(kind, func) {\n map.set(kind, func);\n}\n/** Gets a custom validation function for a user defined type */\nexport function Get(kind) {\n return map.get(kind);\n}\n","/** Returns true if element right is in the set of left */\n// prettier-ignore\nexport function SetIncludes(T, S) {\n return T.includes(S);\n}\n/** Returns true if left is a subset of right */\nexport function SetIsSubset(T, S) {\n return T.every((L) => SetIncludes(S, L));\n}\n/** Returns a distinct set of elements */\nexport function SetDistinct(T) {\n return [...new Set(T)];\n}\n/** Returns the Intersect of the given sets */\nexport function SetIntersect(T, S) {\n return T.filter((L) => S.includes(L));\n}\n/** Returns the Union of the given sets */\nexport function SetUnion(T, S) {\n return [...T, ...S];\n}\n/** Returns the Complement by omitting elements in T that are in S */\n// prettier-ignore\nexport function SetComplement(T, S) {\n return T.filter(L => !S.includes(L));\n}\n// prettier-ignore\nfunction SetIntersectManyResolve(T, Init) {\n return T.reduce((Acc, L) => {\n return SetIntersect(Acc, L);\n }, Init);\n}\n// prettier-ignore\nexport function SetIntersectMany(T) {\n return (T.length === 1\n ? T[0]\n // Use left to initialize the accumulator for resolve\n : T.length > 1\n ? SetIntersectManyResolve(T.slice(1), T[0])\n : []);\n}\n/** Returns the Union of multiple sets */\nexport function SetUnionMany(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...L);\n return Acc;\n}\n","import { CreateType } from '../create/index.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Any type */\nexport function Any(options) {\n return CreateType({ [Kind]: 'Any' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Array type */\nexport function Array(items, options) {\n return CreateType({ [Kind]: 'Array', type: 'array', items }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates an Argument Type. */\nexport function Argument(index) {\n return CreateType({ [Kind]: 'Argument', index });\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/type.mjs';\n/** `[JavaScript]` Creates a AsyncIterator type */\nexport function AsyncIterator(items, options) {\n return CreateType({ [Kind]: 'AsyncIterator', type: 'AsyncIterator', items }, options);\n}\n","import { CreateType } from '../create/index.mjs';\nimport { Kind } from '../symbols/symbols.mjs';\n/** `[Internal]` Creates a deferred computed type. This type is used exclusively in modules to defer resolution of computable types that contain interior references */\nexport function Computed(target, parameters, options) {\n return CreateType({ [Kind]: 'Computed', target, parameters }, options);\n}\n","function DiscardKey(value, key) {\n const { [key]: _, ...rest } = value;\n return rest;\n}\n/** Discards property keys from the given value. This function returns a shallow Clone. */\nexport function Discard(value, keys) {\n return keys.reduce((acc, key) => DiscardKey(acc, key), value);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Never type */\nexport function Never(options) {\n return CreateType({ [Kind]: 'Never', not: {} }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// prettier-ignore\nexport function MappedResult(properties) {\n return CreateType({\n [Kind]: 'MappedResult',\n properties\n });\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Constructor type */\nexport function Constructor(parameters, returns, options) {\n return CreateType({ [Kind]: 'Constructor', type: 'Constructor', parameters, returns }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Function type */\nexport function Function(parameters, returns, options) {\n return CreateType({ [Kind]: 'Function', type: 'Function', parameters, returns }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\nexport function UnionCreate(T, options) {\n return CreateType({ [Kind]: 'Union', anyOf: T }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { OptionalKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { UnionCreate } from './union-create.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional } from '../guard/kind.mjs';\n// prettier-ignore\nfunction IsUnionOptional(types) {\n return types.some(type => IsOptional(type));\n}\n// prettier-ignore\nfunction RemoveOptionalFromRest(types) {\n return types.map(left => IsOptional(left) ? RemoveOptionalFromType(left) : left);\n}\n// prettier-ignore\nfunction RemoveOptionalFromType(T) {\n return (Discard(T, [OptionalKind]));\n}\n// prettier-ignore\nfunction ResolveUnion(types, options) {\n const isOptional = IsUnionOptional(types);\n return (isOptional\n ? Optional(UnionCreate(RemoveOptionalFromRest(types), options))\n : UnionCreate(RemoveOptionalFromRest(types), options));\n}\n/** `[Json]` Creates an evaluated Union type */\nexport function UnionEvaluated(T, options) {\n // prettier-ignore\n return (T.length === 1 ? CreateType(T[0], options) :\n T.length === 0 ? Never(options) :\n ResolveUnion(T, options));\n}\n","import { Never } from '../never/index.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { UnionCreate } from './union-create.mjs';\n/** `[Json]` Creates a Union type */\nexport function Union(types, options) {\n // prettier-ignore\n return (types.length === 0 ? Never(options) :\n types.length === 1 ? CreateType(types[0], options) :\n UnionCreate(types, options));\n}\n","import { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralParserError\n// ------------------------------------------------------------------\nexport class TemplateLiteralParserError extends TypeBoxError {\n}\n// -------------------------------------------------------------------\n// Unescape\n//\n// Unescape for these control characters specifically. Note that this\n// function is only called on non union group content, and where we\n// still want to allow the user to embed control characters in that\n// content. For review.\n// -------------------------------------------------------------------\n// prettier-ignore\nfunction Unescape(pattern) {\n return pattern\n .replace(/\\\\\\$/g, '$')\n .replace(/\\\\\\*/g, '*')\n .replace(/\\\\\\^/g, '^')\n .replace(/\\\\\\|/g, '|')\n .replace(/\\\\\\(/g, '(')\n .replace(/\\\\\\)/g, ')');\n}\n// -------------------------------------------------------------------\n// Control Characters\n// -------------------------------------------------------------------\nfunction IsNonEscaped(pattern, index, char) {\n return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;\n}\nfunction IsOpenParen(pattern, index) {\n return IsNonEscaped(pattern, index, '(');\n}\nfunction IsCloseParen(pattern, index) {\n return IsNonEscaped(pattern, index, ')');\n}\nfunction IsSeparator(pattern, index) {\n return IsNonEscaped(pattern, index, '|');\n}\n// -------------------------------------------------------------------\n// Control Groups\n// -------------------------------------------------------------------\nfunction IsGroup(pattern) {\n if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1)))\n return false;\n let count = 0;\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (count === 0 && index !== pattern.length - 1)\n return false;\n }\n return true;\n}\n// prettier-ignore\nfunction InGroup(pattern) {\n return pattern.slice(1, pattern.length - 1);\n}\n// prettier-ignore\nfunction IsPrecedenceOr(pattern) {\n let count = 0;\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (IsSeparator(pattern, index) && count === 0)\n return true;\n }\n return false;\n}\n// prettier-ignore\nfunction IsPrecedenceAnd(pattern) {\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n return true;\n }\n return false;\n}\n// prettier-ignore\nfunction Or(pattern) {\n let [count, start] = [0, 0];\n const expressions = [];\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (IsSeparator(pattern, index) && count === 0) {\n const range = pattern.slice(start, index);\n if (range.length > 0)\n expressions.push(TemplateLiteralParse(range));\n start = index + 1;\n }\n }\n const range = pattern.slice(start);\n if (range.length > 0)\n expressions.push(TemplateLiteralParse(range));\n if (expressions.length === 0)\n return { type: 'const', const: '' };\n if (expressions.length === 1)\n return expressions[0];\n return { type: 'or', expr: expressions };\n}\n// prettier-ignore\nfunction And(pattern) {\n function Group(value, index) {\n if (!IsOpenParen(value, index))\n throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);\n let count = 0;\n for (let scan = index; scan < value.length; scan++) {\n if (IsOpenParen(value, scan))\n count += 1;\n if (IsCloseParen(value, scan))\n count -= 1;\n if (count === 0)\n return [index, scan];\n }\n throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`);\n }\n function Range(pattern, index) {\n for (let scan = index; scan < pattern.length; scan++) {\n if (IsOpenParen(pattern, scan))\n return [index, scan];\n }\n return [index, pattern.length];\n }\n const expressions = [];\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index)) {\n const [start, end] = Group(pattern, index);\n const range = pattern.slice(start, end + 1);\n expressions.push(TemplateLiteralParse(range));\n index = end;\n }\n else {\n const [start, end] = Range(pattern, index);\n const range = pattern.slice(start, end);\n if (range.length > 0)\n expressions.push(TemplateLiteralParse(range));\n index = end - 1;\n }\n }\n return ((expressions.length === 0) ? { type: 'const', const: '' } :\n (expressions.length === 1) ? expressions[0] :\n { type: 'and', expr: expressions });\n}\n// ------------------------------------------------------------------\n// TemplateLiteralParse\n// ------------------------------------------------------------------\n/** Parses a pattern and returns an expression tree */\nexport function TemplateLiteralParse(pattern) {\n // prettier-ignore\n return (IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) :\n IsPrecedenceOr(pattern) ? Or(pattern) :\n IsPrecedenceAnd(pattern) ? And(pattern) :\n { type: 'const', const: Unescape(pattern) });\n}\n// ------------------------------------------------------------------\n// TemplateLiteralParseExact\n// ------------------------------------------------------------------\n/** Parses a pattern and strips forward and trailing ^ and $ */\nexport function TemplateLiteralParseExact(pattern) {\n return TemplateLiteralParse(pattern.slice(1, pattern.length - 1));\n}\n","import { TemplateLiteralParseExact } from './parse.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralFiniteError\n// ------------------------------------------------------------------\nexport class TemplateLiteralFiniteError extends TypeBoxError {\n}\n// ------------------------------------------------------------------\n// IsTemplateLiteralFiniteCheck\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsNumberExpression(expression) {\n return (expression.type === 'or' &&\n expression.expr.length === 2 &&\n expression.expr[0].type === 'const' &&\n expression.expr[0].const === '0' &&\n expression.expr[1].type === 'const' &&\n expression.expr[1].const === '[1-9][0-9]*');\n}\n// prettier-ignore\nfunction IsBooleanExpression(expression) {\n return (expression.type === 'or' &&\n expression.expr.length === 2 &&\n expression.expr[0].type === 'const' &&\n expression.expr[0].const === 'true' &&\n expression.expr[1].type === 'const' &&\n expression.expr[1].const === 'false');\n}\n// prettier-ignore\nfunction IsStringExpression(expression) {\n return expression.type === 'const' && expression.const === '.*';\n}\n// ------------------------------------------------------------------\n// IsTemplateLiteralExpressionFinite\n// ------------------------------------------------------------------\n// prettier-ignore\nexport function IsTemplateLiteralExpressionFinite(expression) {\n return (IsNumberExpression(expression) || IsStringExpression(expression) ? false :\n IsBooleanExpression(expression) ? true :\n (expression.type === 'and') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) :\n (expression.type === 'or') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) :\n (expression.type === 'const') ? true :\n (() => { throw new TemplateLiteralFiniteError(`Unknown expression type`); })());\n}\n/** Returns true if this TemplateLiteral resolves to a finite set of values */\nexport function IsTemplateLiteralFinite(schema) {\n const expression = TemplateLiteralParseExact(schema.pattern);\n return IsTemplateLiteralExpressionFinite(expression);\n}\n","import { IsTemplateLiteralExpressionFinite } from './finite.mjs';\nimport { TemplateLiteralParseExact } from './parse.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralGenerateError\n// ------------------------------------------------------------------\nexport class TemplateLiteralGenerateError extends TypeBoxError {\n}\n// ------------------------------------------------------------------\n// TemplateLiteralExpressionGenerate\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction* GenerateReduce(buffer) {\n if (buffer.length === 1)\n return yield* buffer[0];\n for (const left of buffer[0]) {\n for (const right of GenerateReduce(buffer.slice(1))) {\n yield `${left}${right}`;\n }\n }\n}\n// prettier-ignore\nfunction* GenerateAnd(expression) {\n return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralExpressionGenerate(expr)]));\n}\n// prettier-ignore\nfunction* GenerateOr(expression) {\n for (const expr of expression.expr)\n yield* TemplateLiteralExpressionGenerate(expr);\n}\n// prettier-ignore\nfunction* GenerateConst(expression) {\n return yield expression.const;\n}\nexport function* TemplateLiteralExpressionGenerate(expression) {\n return expression.type === 'and'\n ? yield* GenerateAnd(expression)\n : expression.type === 'or'\n ? yield* GenerateOr(expression)\n : expression.type === 'const'\n ? yield* GenerateConst(expression)\n : (() => {\n throw new TemplateLiteralGenerateError('Unknown expression');\n })();\n}\n/** Generates a tuple of strings from the given TemplateLiteral. Returns an empty tuple if infinite. */\nexport function TemplateLiteralGenerate(schema) {\n const expression = TemplateLiteralParseExact(schema.pattern);\n // prettier-ignore\n return (IsTemplateLiteralExpressionFinite(expression)\n ? [...TemplateLiteralExpressionGenerate(expression)]\n : []);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Literal type */\nexport function Literal(value, options) {\n return CreateType({\n [Kind]: 'Literal',\n const: value,\n type: typeof value,\n }, options);\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/index.mjs';\n/** `[Json]` Creates a Boolean type */\nexport function Boolean(options) {\n return CreateType({ [Kind]: 'Boolean', type: 'boolean' }, options);\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/index.mjs';\n/** `[JavaScript]` Creates a BigInt type */\nexport function BigInt(options) {\n return CreateType({ [Kind]: 'BigInt', type: 'bigint' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Number type */\nexport function Number(options) {\n return CreateType({ [Kind]: 'Number', type: 'number' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a String type */\nexport function String(options) {\n return CreateType({ [Kind]: 'String', type: 'string' }, options);\n}\n","import { Literal } from '../literal/index.mjs';\nimport { Boolean } from '../boolean/index.mjs';\nimport { BigInt } from '../bigint/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { String } from '../string/index.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\n// ------------------------------------------------------------------\n// SyntaxParsers\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction* FromUnion(syntax) {\n const trim = syntax.trim().replace(/\"|'/g, '');\n return (trim === 'boolean' ? yield Boolean() :\n trim === 'number' ? yield Number() :\n trim === 'bigint' ? yield BigInt() :\n trim === 'string' ? yield String() :\n yield (() => {\n const literals = trim.split('|').map((literal) => Literal(literal.trim()));\n return (literals.length === 0 ? Never() :\n literals.length === 1 ? literals[0] :\n UnionEvaluated(literals));\n })());\n}\n// prettier-ignore\nfunction* FromTerminal(syntax) {\n if (syntax[1] !== '{') {\n const L = Literal('$');\n const R = FromSyntax(syntax.slice(1));\n return yield* [L, ...R];\n }\n for (let i = 2; i < syntax.length; i++) {\n if (syntax[i] === '}') {\n const L = FromUnion(syntax.slice(2, i));\n const R = FromSyntax(syntax.slice(i + 1));\n return yield* [...L, ...R];\n }\n }\n yield Literal(syntax);\n}\n// prettier-ignore\nfunction* FromSyntax(syntax) {\n for (let i = 0; i < syntax.length; i++) {\n if (syntax[i] === '$') {\n const L = Literal(syntax.slice(0, i));\n const R = FromTerminal(syntax.slice(i));\n return yield* [L, ...R];\n }\n }\n yield Literal(syntax);\n}\n/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */\nexport function TemplateLiteralSyntax(syntax) {\n return [...FromSyntax(syntax)];\n}\n","import { PatternNumber, PatternString, PatternBoolean } from '../patterns/index.mjs';\nimport { Kind } from '../symbols/index.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTemplateLiteral, IsUnion, IsNumber, IsInteger, IsBigInt, IsString, IsLiteral, IsBoolean } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralPatternError\n// ------------------------------------------------------------------\nexport class TemplateLiteralPatternError extends TypeBoxError {\n}\n// ------------------------------------------------------------------\n// TemplateLiteralPattern\n// ------------------------------------------------------------------\nfunction Escape(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n// prettier-ignore\nfunction Visit(schema, acc) {\n return (IsTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) :\n IsUnion(schema) ? `(${schema.anyOf.map((schema) => Visit(schema, acc)).join('|')})` :\n IsNumber(schema) ? `${acc}${PatternNumber}` :\n IsInteger(schema) ? `${acc}${PatternNumber}` :\n IsBigInt(schema) ? `${acc}${PatternNumber}` :\n IsString(schema) ? `${acc}${PatternString}` :\n IsLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` :\n IsBoolean(schema) ? `${acc}${PatternBoolean}` :\n (() => { throw new TemplateLiteralPatternError(`Unexpected Kind '${schema[Kind]}'`); })());\n}\nexport function TemplateLiteralPattern(kinds) {\n return `^${kinds.map((schema) => Visit(schema, '')).join('')}\\$`;\n}\n","import { UnionEvaluated } from '../union/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { TemplateLiteralGenerate } from './generate.mjs';\n/** Returns a Union from the given TemplateLiteral */\nexport function TemplateLiteralToUnion(schema) {\n const R = TemplateLiteralGenerate(schema);\n const L = R.map((S) => Literal(S));\n return UnionEvaluated(L);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { TemplateLiteralSyntax } from './syntax.mjs';\nimport { TemplateLiteralPattern } from './pattern.mjs';\nimport { IsString } from '../guard/value.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a TemplateLiteral type */\n// prettier-ignore\nexport function TemplateLiteral(unresolved, options) {\n const pattern = IsString(unresolved)\n ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved))\n : TemplateLiteralPattern(unresolved);\n return CreateType({ [Kind]: 'TemplateLiteral', type: 'string', pattern }, options);\n}\n","import { TemplateLiteralGenerate } from '../template-literal/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTemplateLiteral, IsUnion, IsLiteral, IsNumber, IsInteger } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromTemplateLiteral(templateLiteral) {\n const keys = TemplateLiteralGenerate(templateLiteral);\n return keys.map(key => key.toString());\n}\n// prettier-ignore\nfunction FromUnion(types) {\n const result = [];\n for (const type of types)\n result.push(...IndexPropertyKeys(type));\n return result;\n}\n// prettier-ignore\nfunction FromLiteral(literalValue) {\n return ([literalValue.toString()] // TS 5.4 observes TLiteralValue as not having a toString()\n );\n}\n/** Returns a tuple of PropertyKeys derived from the given TSchema */\n// prettier-ignore\nexport function IndexPropertyKeys(type) {\n return [...new Set((IsTemplateLiteral(type) ? FromTemplateLiteral(type) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsLiteral(type) ? FromLiteral(type.const) :\n IsNumber(type) ? ['[number]'] :\n IsInteger(type) ? ['[number]'] :\n []))];\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { IndexPropertyKeys } from './indexed-property-keys.mjs';\nimport { Index } from './index.mjs';\n// prettier-ignore\nfunction FromProperties(type, properties, options) {\n const result = {};\n for (const K2 of Object.getOwnPropertyNames(properties)) {\n result[K2] = Index(type, IndexPropertyKeys(properties[K2]), options);\n }\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(type, mappedResult, options) {\n return FromProperties(type, mappedResult.properties, options);\n}\n// prettier-ignore\nexport function IndexFromMappedResult(type, mappedResult, options) {\n const properties = FromMappedResult(type, mappedResult, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { IntersectEvaluated } from '../intersect/index.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { IndexPropertyKeys } from './indexed-property-keys.mjs';\nimport { IndexFromMappedKey } from './indexed-from-mapped-key.mjs';\nimport { IndexFromMappedResult } from './indexed-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsIntersect, IsObject, IsMappedKey, IsMappedResult, IsNever, IsSchema, IsTuple, IsUnion, IsRef } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(types, key) {\n return types.map(type => IndexFromPropertyKey(type, key));\n}\n// prettier-ignore\nfunction FromIntersectRest(types) {\n return types.filter(type => !IsNever(type));\n}\n// prettier-ignore\nfunction FromIntersect(types, key) {\n return (IntersectEvaluated(FromIntersectRest(FromRest(types, key))));\n}\n// prettier-ignore\nfunction FromUnionRest(types) {\n return (types.some(L => IsNever(L))\n ? []\n : types);\n}\n// prettier-ignore\nfunction FromUnion(types, key) {\n return (UnionEvaluated(FromUnionRest(FromRest(types, key))));\n}\n// prettier-ignore\nfunction FromTuple(types, key) {\n return (key in types ? types[key] :\n key === '[number]' ? UnionEvaluated(types) :\n Never());\n}\n// prettier-ignore\nfunction FromArray(type, key) {\n return (key === '[number]'\n ? type\n : Never());\n}\n// prettier-ignore\nfunction FromProperty(properties, propertyKey) {\n return (propertyKey in properties ? properties[propertyKey] : Never());\n}\n// prettier-ignore\nexport function IndexFromPropertyKey(type, propertyKey) {\n return (IsIntersect(type) ? FromIntersect(type.allOf, propertyKey) :\n IsUnion(type) ? FromUnion(type.anyOf, propertyKey) :\n IsTuple(type) ? FromTuple(type.items ?? [], propertyKey) :\n IsArray(type) ? FromArray(type.items, propertyKey) :\n IsObject(type) ? FromProperty(type.properties, propertyKey) :\n Never());\n}\n// prettier-ignore\nexport function IndexFromPropertyKeys(type, propertyKeys) {\n return propertyKeys.map(propertyKey => IndexFromPropertyKey(type, propertyKey));\n}\n// prettier-ignore\nfunction FromSchema(type, propertyKeys) {\n return (UnionEvaluated(IndexFromPropertyKeys(type, propertyKeys)));\n}\n// prettier-ignore\nexport function IndexFromComputed(type, key) {\n return Computed('Index', [type, key]);\n}\n/** `[Json]` Returns an Indexed property type for the given keys */\nexport function Index(type, key, options) {\n // computed-type\n if (IsRef(type) || IsRef(key)) {\n const error = `Index types using Ref parameters require both Type and Key to be of TSchema`;\n if (!IsSchema(type) || !IsSchema(key))\n throw new TypeBoxError(error);\n return Computed('Index', [type, key]);\n }\n // mapped-types\n if (IsMappedResult(key))\n return IndexFromMappedResult(type, key, options);\n if (IsMappedKey(key))\n return IndexFromMappedKey(type, key, options);\n // prettier-ignore\n return CreateType(IsSchema(key)\n ? FromSchema(type, IndexPropertyKeys(key))\n : FromSchema(type, key), options);\n}\n","import { Index } from './indexed.mjs';\nimport { MappedResult } from '../mapped/index.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction MappedIndexPropertyKey(type, key, options) {\n return { [key]: Index(type, [key], Clone(options)) };\n}\n// prettier-ignore\nfunction MappedIndexPropertyKeys(type, propertyKeys, options) {\n return propertyKeys.reduce((result, left) => {\n return { ...result, ...MappedIndexPropertyKey(type, left, options) };\n }, {});\n}\n// prettier-ignore\nfunction MappedIndexProperties(type, mappedKey, options) {\n return MappedIndexPropertyKeys(type, mappedKey.keys, options);\n}\n// prettier-ignore\nexport function IndexFromMappedKey(type, mappedKey, options) {\n const properties = MappedIndexProperties(type, mappedKey, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates an Iterator type */\nexport function Iterator(items, options) {\n return CreateType({ [Kind]: 'Iterator', type: 'Iterator', items }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional } from '../guard/kind.mjs';\n/** Creates a RequiredArray derived from the given TProperties value. */\nfunction RequiredArray(properties) {\n return globalThis.Object.keys(properties).filter((key) => !IsOptional(properties[key]));\n}\n/** `[Json]` Creates an Object type */\nfunction _Object(properties, options) {\n const required = RequiredArray(properties);\n const schema = required.length > 0 ? { [Kind]: 'Object', type: 'object', required, properties } : { [Kind]: 'Object', type: 'object', properties };\n return CreateType(schema, options);\n}\n/** `[Json]` Creates an Object type */\nexport var Object = _Object;\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Promise type */\nexport function Promise(item, options) {\n return CreateType({ [Kind]: 'Promise', type: 'Promise', item }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { ReadonlyKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { ReadonlyFromMappedResult } from './readonly-from-mapped-result.mjs';\nimport { IsMappedResult } from '../guard/kind.mjs';\nfunction RemoveReadonly(schema) {\n return CreateType(Discard(schema, [ReadonlyKind]));\n}\nfunction AddReadonly(schema) {\n return CreateType({ ...schema, [ReadonlyKind]: 'Readonly' });\n}\n// prettier-ignore\nfunction ReadonlyWithFlag(schema, F) {\n return (F === false\n ? RemoveReadonly(schema)\n : AddReadonly(schema));\n}\n/** `[Json]` Creates a Readonly property */\nexport function Readonly(schema, enable) {\n const F = enable ?? true;\n return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F) : ReadonlyWithFlag(schema, F);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Readonly } from './readonly.mjs';\n// prettier-ignore\nfunction FromProperties(K, F) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(K))\n Acc[K2] = Readonly(K[K2], F);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, F) {\n return FromProperties(R.properties, F);\n}\n// prettier-ignore\nexport function ReadonlyFromMappedResult(R, F) {\n const P = FromMappedResult(R, F);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Tuple type */\nexport function Tuple(types, options) {\n // prettier-ignore\n return CreateType(types.length > 0 ?\n { [Kind]: 'Tuple', type: 'array', items: types, additionalItems: false, minItems: types.length, maxItems: types.length } :\n { [Kind]: 'Tuple', type: 'array', minItems: types.length, maxItems: types.length }, options);\n}\n","import { Kind, OptionalKind, ReadonlyKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\n// evaluation types\nimport { Array } from '../array/index.mjs';\nimport { AsyncIterator } from '../async-iterator/index.mjs';\nimport { Constructor } from '../constructor/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Iterator } from '../iterator/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Promise } from '../promise/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Union } from '../union/index.mjs';\n// operator\nimport { SetIncludes } from '../sets/index.mjs';\n// mapping types\nimport { MappedResult } from './mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsAsyncIterator, IsConstructor, IsFunction, IsIntersect, IsIterator, IsReadonly, IsMappedResult, IsMappedKey, IsObject, IsOptional, IsPromise, IsSchema, IsTuple, IsUnion } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromMappedResult(K, P) {\n return (K in P\n ? FromSchemaType(K, P[K])\n : MappedResult(P));\n}\n// prettier-ignore\nfunction MappedKeyToKnownMappedResultProperties(K) {\n return { [K]: Literal(K) };\n}\n// prettier-ignore\nfunction MappedKeyToUnknownMappedResultProperties(P) {\n const Acc = {};\n for (const L of P)\n Acc[L] = Literal(L);\n return Acc;\n}\n// prettier-ignore\nfunction MappedKeyToMappedResultProperties(K, P) {\n return (SetIncludes(P, K)\n ? MappedKeyToKnownMappedResultProperties(K)\n : MappedKeyToUnknownMappedResultProperties(P));\n}\n// prettier-ignore\nfunction FromMappedKey(K, P) {\n const R = MappedKeyToMappedResultProperties(K, P);\n return FromMappedResult(K, R);\n}\n// prettier-ignore\nfunction FromRest(K, T) {\n return T.map(L => FromSchemaType(K, L));\n}\n// prettier-ignore\nfunction FromProperties(K, T) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(T))\n Acc[K2] = FromSchemaType(K, T[K2]);\n return Acc;\n}\n// prettier-ignore\nfunction FromSchemaType(K, T) {\n // required to retain user defined options for mapped type\n const options = { ...T };\n return (\n // unevaluated modifier types\n IsOptional(T) ? Optional(FromSchemaType(K, Discard(T, [OptionalKind]))) :\n IsReadonly(T) ? Readonly(FromSchemaType(K, Discard(T, [ReadonlyKind]))) :\n // unevaluated mapped types\n IsMappedResult(T) ? FromMappedResult(K, T.properties) :\n IsMappedKey(T) ? FromMappedKey(K, T.keys) :\n // unevaluated types\n IsConstructor(T) ? Constructor(FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) :\n IsFunction(T) ? FunctionType(FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) :\n IsAsyncIterator(T) ? AsyncIterator(FromSchemaType(K, T.items), options) :\n IsIterator(T) ? Iterator(FromSchemaType(K, T.items), options) :\n IsIntersect(T) ? Intersect(FromRest(K, T.allOf), options) :\n IsUnion(T) ? Union(FromRest(K, T.anyOf), options) :\n IsTuple(T) ? Tuple(FromRest(K, T.items ?? []), options) :\n IsObject(T) ? Object(FromProperties(K, T.properties), options) :\n IsArray(T) ? Array(FromSchemaType(K, T.items), options) :\n IsPromise(T) ? Promise(FromSchemaType(K, T.item), options) :\n T);\n}\n// prettier-ignore\nexport function MappedFunctionReturnType(K, T) {\n const Acc = {};\n for (const L of K)\n Acc[L] = FromSchemaType(L, T);\n return Acc;\n}\n/** `[Json]` Creates a Mapped object type */\nexport function Mapped(key, map, options) {\n const K = IsSchema(key) ? IndexPropertyKeys(key) : key;\n const RT = map({ [Kind]: 'MappedKey', keys: K });\n const R = MappedFunctionReturnType(K, RT);\n return Object(R, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { OptionalKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { OptionalFromMappedResult } from './optional-from-mapped-result.mjs';\nimport { IsMappedResult } from '../guard/kind.mjs';\nfunction RemoveOptional(schema) {\n return CreateType(Discard(schema, [OptionalKind]));\n}\nfunction AddOptional(schema) {\n return CreateType({ ...schema, [OptionalKind]: 'Optional' });\n}\n// prettier-ignore\nfunction OptionalWithFlag(schema, F) {\n return (F === false\n ? RemoveOptional(schema)\n : AddOptional(schema));\n}\n/** `[Json]` Creates a Optional property */\nexport function Optional(schema, enable) {\n const F = enable ?? true;\n return IsMappedResult(schema) ? OptionalFromMappedResult(schema, F) : OptionalWithFlag(schema, F);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Optional } from './optional.mjs';\n// prettier-ignore\nfunction FromProperties(P, F) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Optional(P[K2], F);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, F) {\n return FromProperties(R.properties, F);\n}\n// prettier-ignore\nexport function OptionalFromMappedResult(R, F) {\n const P = FromMappedResult(R, F);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsObject, IsSchema } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// IntersectCreate\n// ------------------------------------------------------------------\n// prettier-ignore\nexport function IntersectCreate(T, options = {}) {\n const allObjects = T.every((schema) => IsObject(schema));\n const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties)\n ? { unevaluatedProperties: options.unevaluatedProperties }\n : {};\n return CreateType((options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects\n ? { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', type: 'object', allOf: T }\n : { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', allOf: T }), options);\n}\n","import { OptionalKind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { IntersectCreate } from './intersect-create.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional, IsTransform } from '../guard/kind.mjs';\n// prettier-ignore\nfunction IsIntersectOptional(types) {\n return types.every(left => IsOptional(left));\n}\n// prettier-ignore\nfunction RemoveOptionalFromType(type) {\n return (Discard(type, [OptionalKind]));\n}\n// prettier-ignore\nfunction RemoveOptionalFromRest(types) {\n return types.map(left => IsOptional(left) ? RemoveOptionalFromType(left) : left);\n}\n// prettier-ignore\nfunction ResolveIntersect(types, options) {\n return (IsIntersectOptional(types)\n ? Optional(IntersectCreate(RemoveOptionalFromRest(types), options))\n : IntersectCreate(RemoveOptionalFromRest(types), options));\n}\n/** `[Json]` Creates an evaluated Intersect type */\nexport function IntersectEvaluated(types, options = {}) {\n if (types.length === 1)\n return CreateType(types[0], options);\n if (types.length === 0)\n return Never(options);\n if (types.some((schema) => IsTransform(schema)))\n throw new Error('Cannot intersect transform types');\n return ResolveIntersect(types, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Never } from '../never/index.mjs';\nimport { IntersectCreate } from './intersect-create.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTransform } from '../guard/kind.mjs';\n/** `[Json]` Creates an evaluated Intersect type */\nexport function Intersect(types, options) {\n if (types.length === 1)\n return CreateType(types[0], options);\n if (types.length === 0)\n return Never(options);\n if (types.some((schema) => IsTransform(schema)))\n throw new Error('Cannot intersect transform types');\n return IntersectCreate(types, options);\n}\n","import { TypeBoxError } from '../error/index.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Ref type. The referenced type must contain a $id */\nexport function Ref(...args) {\n const [$ref, options] = typeof args[0] === 'string' ? [args[0], args[1]] : [args[0].$id, args[1]];\n if (typeof $ref !== 'string')\n throw new TypeBoxError('Ref: $ref must be a string');\n return CreateType({ [Kind]: 'Ref', $ref }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Ref } from '../ref/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsPromise, IsRef, IsComputed } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('Awaited', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('Awaited', [Ref($ref)]);\n}\n// prettier-ignore\nfunction FromIntersect(types) {\n return Intersect(FromRest(types));\n}\n// prettier-ignore\nfunction FromUnion(types) {\n return Union(FromRest(types));\n}\n// prettier-ignore\nfunction FromPromise(type) {\n return Awaited(type);\n}\n// prettier-ignore\nfunction FromRest(types) {\n return types.map(type => Awaited(type));\n}\n/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */\nexport function Awaited(type, options) {\n return CreateType(IsComputed(type) ? FromComputed(type.target, type.parameters) : IsIntersect(type) ? FromIntersect(type.allOf) : IsUnion(type) ? FromUnion(type.anyOf) : IsPromise(type) ? FromPromise(type.item) : IsRef(type) ? FromRef(type.$ref) : type, options);\n}\n","import { SetUnionMany, SetIntersectMany } from '../sets/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsTuple, IsArray, IsObject, IsRecord } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(types) {\n const result = [];\n for (const L of types)\n result.push(KeyOfPropertyKeys(L));\n return result;\n}\n// prettier-ignore\nfunction FromIntersect(types) {\n const propertyKeysArray = FromRest(types);\n const propertyKeys = SetUnionMany(propertyKeysArray);\n return propertyKeys;\n}\n// prettier-ignore\nfunction FromUnion(types) {\n const propertyKeysArray = FromRest(types);\n const propertyKeys = SetIntersectMany(propertyKeysArray);\n return propertyKeys;\n}\n// prettier-ignore\nfunction FromTuple(types) {\n return types.map((_, indexer) => indexer.toString());\n}\n// prettier-ignore\nfunction FromArray(_) {\n return (['[number]']);\n}\n// prettier-ignore\nfunction FromProperties(T) {\n return (globalThis.Object.getOwnPropertyNames(T));\n}\n// ------------------------------------------------------------------\n// FromPatternProperties\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromPatternProperties(patternProperties) {\n if (!includePatternProperties)\n return [];\n const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties);\n return patternPropertyKeys.map(key => {\n return (key[0] === '^' && key[key.length - 1] === '$')\n ? key.slice(1, key.length - 1)\n : key;\n });\n}\n/** Returns a tuple of PropertyKeys derived from the given TSchema. */\n// prettier-ignore\nexport function KeyOfPropertyKeys(type) {\n return (IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsTuple(type) ? FromTuple(type.items ?? []) :\n IsArray(type) ? FromArray(type.items) :\n IsObject(type) ? FromProperties(type.properties) :\n IsRecord(type) ? FromPatternProperties(type.patternProperties) :\n []);\n}\n// ----------------------------------------------------------------\n// KeyOfPattern\n// ----------------------------------------------------------------\nlet includePatternProperties = false;\n/** Returns a regular expression pattern derived from the given TSchema */\nexport function KeyOfPattern(schema) {\n includePatternProperties = true;\n const keys = KeyOfPropertyKeys(schema);\n includePatternProperties = false;\n const pattern = keys.map((key) => `(${key})`);\n return `^(${pattern.join('|')})$`;\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Ref } from '../ref/index.mjs';\nimport { KeyOfPropertyKeys } from './keyof-property-keys.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { KeyOfFromMappedResult } from './keyof-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsRef, IsComputed } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('KeyOf', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('KeyOf', [Ref($ref)]);\n}\n// prettier-ignore\nfunction KeyOfFromType(type, options) {\n const propertyKeys = KeyOfPropertyKeys(type);\n const propertyKeyTypes = KeyOfPropertyKeysToRest(propertyKeys);\n const result = UnionEvaluated(propertyKeyTypes);\n return CreateType(result, options);\n}\n// prettier-ignore\nexport function KeyOfPropertyKeysToRest(propertyKeys) {\n return propertyKeys.map(L => L === '[number]' ? Number() : Literal(L));\n}\n/** `[Json]` Creates a KeyOf type */\nexport function KeyOf(type, options) {\n return (IsComputed(type) ? FromComputed(type.target, type.parameters) : IsRef(type) ? FromRef(type.$ref) : IsMappedResult(type) ? KeyOfFromMappedResult(type, options) : KeyOfFromType(type, options));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { KeyOf } from './keyof.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(properties, options) {\n const result = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(properties))\n result[K2] = KeyOf(properties[K2], Clone(options));\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(mappedResult, options) {\n return FromProperties(mappedResult.properties, options);\n}\n// prettier-ignore\nexport function KeyOfFromMappedResult(mappedResult, options) {\n const properties = FromMappedResult(mappedResult, options);\n return MappedResult(properties);\n}\n","import { IndexFromPropertyKeys } from '../indexed/indexed.mjs';\nimport { KeyOfPropertyKeys } from './keyof-property-keys.mjs';\n/**\n * `[Utility]` Resolves an array of keys and schemas from the given schema. This method is faster\n * than obtaining the keys and resolving each individually via indexing. This method was written\n * accellerate Intersect and Union encoding.\n */\nexport function KeyOfPropertyEntries(schema) {\n const keys = KeyOfPropertyKeys(schema);\n const schemas = IndexFromPropertyKeys(schema, keys);\n return keys.map((_, index) => [keys[index], schemas[index]]);\n}\n","import { IntersectEvaluated } from '../intersect/index.mjs';\nimport { IndexFromPropertyKeys } from '../indexed/index.mjs';\nimport { KeyOfPropertyKeys } from '../keyof/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { SetDistinct } from '../sets/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsNever } from '../guard/kind.mjs';\n// prettier-ignore\nfunction CompositeKeys(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...KeyOfPropertyKeys(L));\n return SetDistinct(Acc);\n}\n// prettier-ignore\nfunction FilterNever(T) {\n return T.filter(L => !IsNever(L));\n}\n// prettier-ignore\nfunction CompositeProperty(T, K) {\n const Acc = [];\n for (const L of T)\n Acc.push(...IndexFromPropertyKeys(L, [K]));\n return FilterNever(Acc);\n}\n// prettier-ignore\nfunction CompositeProperties(T, K) {\n const Acc = {};\n for (const L of K) {\n Acc[L] = IntersectEvaluated(CompositeProperty(T, L));\n }\n return Acc;\n}\n// prettier-ignore\nexport function Composite(T, options) {\n const K = CompositeKeys(T);\n const P = CompositeProperties(T, K);\n const R = Object(P, options);\n return R;\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/type.mjs';\n/** `[JavaScript]` Creates a Date type */\nexport function Date(options) {\n return CreateType({ [Kind]: 'Date', type: 'Date' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Null type */\nexport function Null(options) {\n return CreateType({ [Kind]: 'Null', type: 'null' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Symbol type */\nexport function Symbol(options) {\n return CreateType({ [Kind]: 'Symbol', type: 'symbol' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Undefined type */\nexport function Undefined(options) {\n return CreateType({ [Kind]: 'Undefined', type: 'undefined' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Uint8Array type */\nexport function Uint8Array(options) {\n return CreateType({ [Kind]: 'Uint8Array', type: 'Uint8Array' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Unknown type */\nexport function Unknown(options) {\n return CreateType({ [Kind]: 'Unknown' }, options);\n}\n","import { Any } from '../any/index.mjs';\nimport { BigInt } from '../bigint/index.mjs';\nimport { Date } from '../date/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Null } from '../null/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Symbol } from '../symbol/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Undefined } from '../undefined/index.mjs';\nimport { Uint8Array } from '../uint8array/index.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { CreateType } from '../create/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsNumber, IsBigInt, IsUint8Array, IsDate, IsIterator, IsObject, IsAsyncIterator, IsFunction, IsUndefined, IsNull, IsSymbol, IsBoolean, IsString } from '../guard/value.mjs';\n// prettier-ignore\nfunction FromArray(T) {\n return T.map(L => FromValue(L, false));\n}\n// prettier-ignore\nfunction FromProperties(value) {\n const Acc = {};\n for (const K of globalThis.Object.getOwnPropertyNames(value))\n Acc[K] = Readonly(FromValue(value[K], false));\n return Acc;\n}\nfunction ConditionalReadonly(T, root) {\n return (root === true ? T : Readonly(T));\n}\n// prettier-ignore\nfunction FromValue(value, root) {\n return (IsAsyncIterator(value) ? ConditionalReadonly(Any(), root) :\n IsIterator(value) ? ConditionalReadonly(Any(), root) :\n IsArray(value) ? Readonly(Tuple(FromArray(value))) :\n IsUint8Array(value) ? Uint8Array() :\n IsDate(value) ? Date() :\n IsObject(value) ? ConditionalReadonly(Object(FromProperties(value)), root) :\n IsFunction(value) ? ConditionalReadonly(FunctionType([], Unknown()), root) :\n IsUndefined(value) ? Undefined() :\n IsNull(value) ? Null() :\n IsSymbol(value) ? Symbol() :\n IsBigInt(value) ? BigInt() :\n IsNumber(value) ? Literal(value) :\n IsBoolean(value) ? Literal(value) :\n IsString(value) ? Literal(value) :\n Object({}));\n}\n/** `[JavaScript]` Creates a readonly const type from the given value. */\nexport function Const(T, options) {\n return CreateType(FromValue(T, true), options);\n}\n","import { Tuple } from '../tuple/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */\nexport function ConstructorParameters(schema, options) {\n return (KindGuard.IsConstructor(schema) ? Tuple(schema.parameters, options) : Never(options));\n}\n","import { Literal } from '../literal/index.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { Union } from '../union/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsUndefined } from '../guard/value.mjs';\n/** `[Json]` Creates a Enum type */\nexport function Enum(item, options) {\n if (IsUndefined(item))\n throw new Error('Enum undefined or empty');\n const values1 = globalThis.Object.getOwnPropertyNames(item)\n .filter((key) => isNaN(key))\n .map((key) => item[key]);\n const values2 = [...new Set(values1)];\n const anyOf = values2.map((value) => Literal(value));\n return Union(anyOf, { ...options, [Hint]: 'Enum' });\n}\n","import { Any } from '../any/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { String } from '../string/index.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { TemplateLiteralToUnion } from '../template-literal/index.mjs';\nimport { PatternNumberExact, PatternStringExact } from '../patterns/index.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\nimport { TypeGuard, ValueGuard } from '../guard/index.mjs';\nexport class ExtendsResolverError extends TypeBoxError {\n}\nexport var ExtendsResult;\n(function (ExtendsResult) {\n ExtendsResult[ExtendsResult[\"Union\"] = 0] = \"Union\";\n ExtendsResult[ExtendsResult[\"True\"] = 1] = \"True\";\n ExtendsResult[ExtendsResult[\"False\"] = 2] = \"False\";\n})(ExtendsResult || (ExtendsResult = {}));\n// ------------------------------------------------------------------\n// IntoBooleanResult\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IntoBooleanResult(result) {\n return result === ExtendsResult.False ? result : ExtendsResult.True;\n}\n// ------------------------------------------------------------------\n// Throw\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction Throw(message) {\n throw new ExtendsResolverError(message);\n}\n// ------------------------------------------------------------------\n// StructuralRight\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsStructuralRight(right) {\n return (TypeGuard.IsNever(right) ||\n TypeGuard.IsIntersect(right) ||\n TypeGuard.IsUnion(right) ||\n TypeGuard.IsUnknown(right) ||\n TypeGuard.IsAny(right));\n}\n// prettier-ignore\nfunction StructuralRight(left, right) {\n return (TypeGuard.IsNever(right) ? FromNeverRight(left, right) :\n TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n TypeGuard.IsUnion(right) ? FromUnionRight(left, right) :\n TypeGuard.IsUnknown(right) ? FromUnknownRight(left, right) :\n TypeGuard.IsAny(right) ? FromAnyRight(left, right) :\n Throw('StructuralRight'));\n}\n// ------------------------------------------------------------------\n// Any\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromAnyRight(left, right) {\n return ExtendsResult.True;\n}\n// prettier-ignore\nfunction FromAny(left, right) {\n return (TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n (TypeGuard.IsUnion(right) && right.anyOf.some((schema) => TypeGuard.IsAny(schema) || TypeGuard.IsUnknown(schema))) ? ExtendsResult.True :\n TypeGuard.IsUnion(right) ? ExtendsResult.Union :\n TypeGuard.IsUnknown(right) ? ExtendsResult.True :\n TypeGuard.IsAny(right) ? ExtendsResult.True :\n ExtendsResult.Union);\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromArrayRight(left, right) {\n return (TypeGuard.IsUnknown(left) ? ExtendsResult.False :\n TypeGuard.IsAny(left) ? ExtendsResult.Union :\n TypeGuard.IsNever(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromArray(left, right) {\n return (TypeGuard.IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.IsArray(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n}\n// ------------------------------------------------------------------\n// AsyncIterator\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromAsyncIterator(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.IsAsyncIterator(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n}\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromBigInt(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsBigInt(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromBooleanRight(left, right) {\n return (TypeGuard.IsLiteralBoolean(left) ? ExtendsResult.True :\n TypeGuard.IsBoolean(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromBoolean(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsBoolean(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Constructor\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromConstructor(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n !TypeGuard.IsConstructor(right) ? ExtendsResult.False :\n left.parameters.length > right.parameters.length ? ExtendsResult.False :\n (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.returns, right.returns)));\n}\n// ------------------------------------------------------------------\n// Date\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromDate(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsDate(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Function\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromFunction(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n !TypeGuard.IsFunction(right) ? ExtendsResult.False :\n left.parameters.length > right.parameters.length ? ExtendsResult.False :\n (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.returns, right.returns)));\n}\n// ------------------------------------------------------------------\n// Integer\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromIntegerRight(left, right) {\n return (TypeGuard.IsLiteral(left) && ValueGuard.IsNumber(left.const) ? ExtendsResult.True :\n TypeGuard.IsNumber(left) || TypeGuard.IsInteger(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromInteger(left, right) {\n return (TypeGuard.IsInteger(right) || TypeGuard.IsNumber(right) ? ExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Intersect\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromIntersectRight(left, right) {\n return right.allOf.every((schema) => Visit(left, schema) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// prettier-ignore\nfunction FromIntersect(left, right) {\n return left.allOf.some((schema) => Visit(schema, right) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// ------------------------------------------------------------------\n// Iterator\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromIterator(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.IsIterator(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n}\n// ------------------------------------------------------------------\n// Literal\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromLiteral(left, right) {\n return (TypeGuard.IsLiteral(right) && right.const === left.const ? ExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsString(right) ? FromStringRight(left, right) :\n TypeGuard.IsNumber(right) ? FromNumberRight(left, right) :\n TypeGuard.IsInteger(right) ? FromIntegerRight(left, right) :\n TypeGuard.IsBoolean(right) ? FromBooleanRight(left, right) :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Never\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromNeverRight(left, right) {\n return ExtendsResult.False;\n}\n// prettier-ignore\nfunction FromNever(left, right) {\n return ExtendsResult.True;\n}\n// ------------------------------------------------------------------\n// Not\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction UnwrapTNot(schema) {\n let [current, depth] = [schema, 0];\n while (true) {\n if (!TypeGuard.IsNot(current))\n break;\n current = current.not;\n depth += 1;\n }\n return depth % 2 === 0 ? current : Unknown();\n}\n// prettier-ignore\nfunction FromNot(left, right) {\n // TypeScript has no concept of negated types, and attempts to correctly check the negated\n // type at runtime would put TypeBox at odds with TypeScripts ability to statically infer\n // the type. Instead we unwrap to either unknown or T and continue evaluating.\n // prettier-ignore\n return (TypeGuard.IsNot(left) ? Visit(UnwrapTNot(left), right) :\n TypeGuard.IsNot(right) ? Visit(left, UnwrapTNot(right)) :\n Throw('Invalid fallthrough for Not'));\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromNull(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsNull(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromNumberRight(left, right) {\n return (TypeGuard.IsLiteralNumber(left) ? ExtendsResult.True :\n TypeGuard.IsNumber(left) || TypeGuard.IsInteger(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromNumber(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsInteger(right) || TypeGuard.IsNumber(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsObjectPropertyCount(schema, count) {\n return Object.getOwnPropertyNames(schema.properties).length === count;\n}\n// prettier-ignore\nfunction IsObjectStringLike(schema) {\n return IsObjectArrayLike(schema);\n}\n// prettier-ignore\nfunction IsObjectSymbolLike(schema) {\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && TypeGuard.IsUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((TypeGuard.IsString(schema.properties.description.anyOf[0]) &&\n TypeGuard.IsUndefined(schema.properties.description.anyOf[1])) || (TypeGuard.IsString(schema.properties.description.anyOf[1]) &&\n TypeGuard.IsUndefined(schema.properties.description.anyOf[0]))));\n}\n// prettier-ignore\nfunction IsObjectNumberLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectBooleanLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectBigIntLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectDateLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectUint8ArrayLike(schema) {\n return IsObjectArrayLike(schema);\n}\n// prettier-ignore\nfunction IsObjectFunctionLike(schema) {\n const length = Number();\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);\n}\n// prettier-ignore\nfunction IsObjectConstructorLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectArrayLike(schema) {\n const length = Number();\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);\n}\n// prettier-ignore\nfunction IsObjectPromiseLike(schema) {\n const then = FunctionType([Any()], Any());\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(Visit(schema.properties['then'], then)) === ExtendsResult.True);\n}\n// ------------------------------------------------------------------\n// Property\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction Property(left, right) {\n return (Visit(left, right) === ExtendsResult.False ? ExtendsResult.False :\n TypeGuard.IsOptional(left) && !TypeGuard.IsOptional(right) ? ExtendsResult.False :\n ExtendsResult.True);\n}\n// prettier-ignore\nfunction FromObjectRight(left, right) {\n return (TypeGuard.IsUnknown(left) ? ExtendsResult.False :\n TypeGuard.IsAny(left) ? ExtendsResult.Union : (TypeGuard.IsNever(left) ||\n (TypeGuard.IsLiteralString(left) && IsObjectStringLike(right)) ||\n (TypeGuard.IsLiteralNumber(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.IsLiteralBoolean(left) && IsObjectBooleanLike(right)) ||\n (TypeGuard.IsSymbol(left) && IsObjectSymbolLike(right)) ||\n (TypeGuard.IsBigInt(left) && IsObjectBigIntLike(right)) ||\n (TypeGuard.IsString(left) && IsObjectStringLike(right)) ||\n (TypeGuard.IsSymbol(left) && IsObjectSymbolLike(right)) ||\n (TypeGuard.IsNumber(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.IsInteger(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.IsBoolean(left) && IsObjectBooleanLike(right)) ||\n (TypeGuard.IsUint8Array(left) && IsObjectUint8ArrayLike(right)) ||\n (TypeGuard.IsDate(left) && IsObjectDateLike(right)) ||\n (TypeGuard.IsConstructor(left) && IsObjectConstructorLike(right)) ||\n (TypeGuard.IsFunction(left) && IsObjectFunctionLike(right))) ? ExtendsResult.True :\n (TypeGuard.IsRecord(left) && TypeGuard.IsString(RecordKey(left))) ? (() => {\n // When expressing a Record with literal key values, the Record is converted into a Object with\n // the Hint assigned as `Record`. This is used to invert the extends logic.\n return right[Hint] === 'Record' ? ExtendsResult.True : ExtendsResult.False;\n })() :\n (TypeGuard.IsRecord(left) && TypeGuard.IsNumber(RecordKey(left))) ? (() => {\n return IsObjectPropertyCount(right, 0) ? ExtendsResult.True : ExtendsResult.False;\n })() :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromObject(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n !TypeGuard.IsObject(right) ? ExtendsResult.False :\n (() => {\n for (const key of Object.getOwnPropertyNames(right.properties)) {\n if (!(key in left.properties) && !TypeGuard.IsOptional(right.properties[key])) {\n return ExtendsResult.False;\n }\n if (TypeGuard.IsOptional(right.properties[key])) {\n return ExtendsResult.True;\n }\n if (Property(left.properties[key], right.properties[key]) === ExtendsResult.False) {\n return ExtendsResult.False;\n }\n }\n return ExtendsResult.True;\n })());\n}\n// ------------------------------------------------------------------\n// Promise\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromPromise(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) && IsObjectPromiseLike(right) ? ExtendsResult.True :\n !TypeGuard.IsPromise(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.item, right.item)));\n}\n// ------------------------------------------------------------------\n// Record\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordKey(schema) {\n return (PatternNumberExact in schema.patternProperties ? Number() :\n PatternStringExact in schema.patternProperties ? String() :\n Throw('Unknown record key pattern'));\n}\n// prettier-ignore\nfunction RecordValue(schema) {\n return (PatternNumberExact in schema.patternProperties ? schema.patternProperties[PatternNumberExact] :\n PatternStringExact in schema.patternProperties ? schema.patternProperties[PatternStringExact] :\n Throw('Unable to get record value schema'));\n}\n// prettier-ignore\nfunction FromRecordRight(left, right) {\n const [Key, Value] = [RecordKey(right), RecordValue(right)];\n return ((TypeGuard.IsLiteralString(left) && TypeGuard.IsNumber(Key) && IntoBooleanResult(Visit(left, Value)) === ExtendsResult.True) ? ExtendsResult.True :\n TypeGuard.IsUint8Array(left) && TypeGuard.IsNumber(Key) ? Visit(left, Value) :\n TypeGuard.IsString(left) && TypeGuard.IsNumber(Key) ? Visit(left, Value) :\n TypeGuard.IsArray(left) && TypeGuard.IsNumber(Key) ? Visit(left, Value) :\n TypeGuard.IsObject(left) ? (() => {\n for (const key of Object.getOwnPropertyNames(left.properties)) {\n if (Property(Value, left.properties[key]) === ExtendsResult.False) {\n return ExtendsResult.False;\n }\n }\n return ExtendsResult.True;\n })() :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromRecord(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n !TypeGuard.IsRecord(right) ? ExtendsResult.False :\n Visit(RecordValue(left), RecordValue(right)));\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromRegExp(left, right) {\n // Note: RegExp types evaluate as strings, not RegExp objects.\n // Here we remap either into string and continue evaluating.\n const L = TypeGuard.IsRegExp(left) ? String() : left;\n const R = TypeGuard.IsRegExp(right) ? String() : right;\n return Visit(L, R);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromStringRight(left, right) {\n return (TypeGuard.IsLiteral(left) && ValueGuard.IsString(left.const) ? ExtendsResult.True :\n TypeGuard.IsString(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromString(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsString(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Symbol\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromSymbol(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsSymbol(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// TemplateLiteral\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromTemplateLiteral(left, right) {\n // TemplateLiteral types are resolved to either unions for finite expressions or string\n // for infinite expressions. Here we call to TemplateLiteralResolver to resolve for\n // either type and continue evaluating.\n return (TypeGuard.IsTemplateLiteral(left) ? Visit(TemplateLiteralToUnion(left), right) :\n TypeGuard.IsTemplateLiteral(right) ? Visit(left, TemplateLiteralToUnion(right)) :\n Throw('Invalid fallthrough for TemplateLiteral'));\n}\n// ------------------------------------------------------------------\n// Tuple\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsArrayOfTuple(left, right) {\n return (TypeGuard.IsArray(right) &&\n left.items !== undefined &&\n left.items.every((schema) => Visit(schema, right.items) === ExtendsResult.True));\n}\n// prettier-ignore\nfunction FromTupleRight(left, right) {\n return (TypeGuard.IsNever(left) ? ExtendsResult.True :\n TypeGuard.IsUnknown(left) ? ExtendsResult.False :\n TypeGuard.IsAny(left) ? ExtendsResult.Union :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromTuple(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :\n TypeGuard.IsArray(right) && IsArrayOfTuple(left, right) ? ExtendsResult.True :\n !TypeGuard.IsTuple(right) ? ExtendsResult.False :\n (ValueGuard.IsUndefined(left.items) && !ValueGuard.IsUndefined(right.items)) || (!ValueGuard.IsUndefined(left.items) && ValueGuard.IsUndefined(right.items)) ? ExtendsResult.False :\n (ValueGuard.IsUndefined(left.items) && !ValueGuard.IsUndefined(right.items)) ? ExtendsResult.True :\n left.items.every((schema, index) => Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Uint8Array\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUint8Array(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsUint8Array(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUndefined(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsVoid(right) ? FromVoidRight(left, right) :\n TypeGuard.IsUndefined(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Union\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUnionRight(left, right) {\n return right.anyOf.some((schema) => Visit(left, schema) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// prettier-ignore\nfunction FromUnion(left, right) {\n return left.anyOf.every((schema) => Visit(schema, right) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// ------------------------------------------------------------------\n// Unknown\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUnknownRight(left, right) {\n return ExtendsResult.True;\n}\n// prettier-ignore\nfunction FromUnknown(left, right) {\n return (TypeGuard.IsNever(right) ? FromNeverRight(left, right) :\n TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n TypeGuard.IsUnion(right) ? FromUnionRight(left, right) :\n TypeGuard.IsAny(right) ? FromAnyRight(left, right) :\n TypeGuard.IsString(right) ? FromStringRight(left, right) :\n TypeGuard.IsNumber(right) ? FromNumberRight(left, right) :\n TypeGuard.IsInteger(right) ? FromIntegerRight(left, right) :\n TypeGuard.IsBoolean(right) ? FromBooleanRight(left, right) :\n TypeGuard.IsArray(right) ? FromArrayRight(left, right) :\n TypeGuard.IsTuple(right) ? FromTupleRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsUnknown(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Void\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromVoidRight(left, right) {\n return (TypeGuard.IsUndefined(left) ? ExtendsResult.True :\n TypeGuard.IsUndefined(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromVoid(left, right) {\n return (TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n TypeGuard.IsUnion(right) ? FromUnionRight(left, right) :\n TypeGuard.IsUnknown(right) ? FromUnknownRight(left, right) :\n TypeGuard.IsAny(right) ? FromAnyRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsVoid(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction Visit(left, right) {\n return (\n // resolvable\n (TypeGuard.IsTemplateLiteral(left) || TypeGuard.IsTemplateLiteral(right)) ? FromTemplateLiteral(left, right) :\n (TypeGuard.IsRegExp(left) || TypeGuard.IsRegExp(right)) ? FromRegExp(left, right) :\n (TypeGuard.IsNot(left) || TypeGuard.IsNot(right)) ? FromNot(left, right) :\n // standard\n TypeGuard.IsAny(left) ? FromAny(left, right) :\n TypeGuard.IsArray(left) ? FromArray(left, right) :\n TypeGuard.IsBigInt(left) ? FromBigInt(left, right) :\n TypeGuard.IsBoolean(left) ? FromBoolean(left, right) :\n TypeGuard.IsAsyncIterator(left) ? FromAsyncIterator(left, right) :\n TypeGuard.IsConstructor(left) ? FromConstructor(left, right) :\n TypeGuard.IsDate(left) ? FromDate(left, right) :\n TypeGuard.IsFunction(left) ? FromFunction(left, right) :\n TypeGuard.IsInteger(left) ? FromInteger(left, right) :\n TypeGuard.IsIntersect(left) ? FromIntersect(left, right) :\n TypeGuard.IsIterator(left) ? FromIterator(left, right) :\n TypeGuard.IsLiteral(left) ? FromLiteral(left, right) :\n TypeGuard.IsNever(left) ? FromNever(left, right) :\n TypeGuard.IsNull(left) ? FromNull(left, right) :\n TypeGuard.IsNumber(left) ? FromNumber(left, right) :\n TypeGuard.IsObject(left) ? FromObject(left, right) :\n TypeGuard.IsRecord(left) ? FromRecord(left, right) :\n TypeGuard.IsString(left) ? FromString(left, right) :\n TypeGuard.IsSymbol(left) ? FromSymbol(left, right) :\n TypeGuard.IsTuple(left) ? FromTuple(left, right) :\n TypeGuard.IsPromise(left) ? FromPromise(left, right) :\n TypeGuard.IsUint8Array(left) ? FromUint8Array(left, right) :\n TypeGuard.IsUndefined(left) ? FromUndefined(left, right) :\n TypeGuard.IsUnion(left) ? FromUnion(left, right) :\n TypeGuard.IsUnknown(left) ? FromUnknown(left, right) :\n TypeGuard.IsVoid(left) ? FromVoid(left, right) :\n Throw(`Unknown left type operand '${left[Kind]}'`));\n}\nexport function ExtendsCheck(left, right) {\n return Visit(left, right);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Extends } from './extends.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(P, Right, True, False, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Extends(P[K2], Right, True, False, Clone(options));\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(Left, Right, True, False, options) {\n return FromProperties(Left.properties, Right, True, False, options);\n}\n// prettier-ignore\nexport function ExtendsFromMappedResult(Left, Right, True, False, options) {\n const P = FromMappedResult(Left, Right, True, False, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Union } from '../union/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from './extends-check.mjs';\nimport { ExtendsFromMappedKey } from './extends-from-mapped-key.mjs';\nimport { ExtendsFromMappedResult } from './extends-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsMappedResult } from '../guard/kind.mjs';\n// prettier-ignore\nfunction ExtendsResolve(left, right, trueType, falseType) {\n const R = ExtendsCheck(left, right);\n return (R === ExtendsResult.Union ? Union([trueType, falseType]) :\n R === ExtendsResult.True ? trueType :\n falseType);\n}\n/** `[Json]` Creates a Conditional type */\nexport function Extends(L, R, T, F, options) {\n // prettier-ignore\n return (IsMappedResult(L) ? ExtendsFromMappedResult(L, R, T, F, options) :\n IsMappedKey(L) ? CreateType(ExtendsFromMappedKey(L, R, T, F, options)) :\n CreateType(ExtendsResolve(L, R, T, F), options));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Extends } from './extends.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromPropertyKey(K, U, L, R, options) {\n return {\n [K]: Extends(Literal(K), U, L, R, Clone(options))\n };\n}\n// prettier-ignore\nfunction FromPropertyKeys(K, U, L, R, options) {\n return K.reduce((Acc, LK) => {\n return { ...Acc, ...FromPropertyKey(LK, U, L, R, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(K, U, L, R, options) {\n return FromPropertyKeys(K.keys, U, L, R, options);\n}\n// prettier-ignore\nexport function ExtendsFromMappedKey(T, U, L, R, options) {\n const P = FromMappedKey(T, U, L, R, options);\n return MappedResult(P);\n}\n","import { Kind } from '../symbols/index.mjs';\n/** Fast undefined check used for properties of type undefined */\nfunction Intersect(schema) {\n return schema.allOf.every((schema) => ExtendsUndefinedCheck(schema));\n}\nfunction Union(schema) {\n return schema.anyOf.some((schema) => ExtendsUndefinedCheck(schema));\n}\nfunction Not(schema) {\n return !ExtendsUndefinedCheck(schema.not);\n}\n/** Fast undefined check used for properties of type undefined */\n// prettier-ignore\nexport function ExtendsUndefinedCheck(schema) {\n return (schema[Kind] === 'Intersect' ? Intersect(schema) :\n schema[Kind] === 'Union' ? Union(schema) :\n schema[Kind] === 'Not' ? Not(schema) :\n schema[Kind] === 'Undefined' ? true :\n false);\n}\n","import { Exclude } from './exclude.mjs';\nimport { TemplateLiteralToUnion } from '../template-literal/index.mjs';\nexport function ExcludeFromTemplateLiteral(L, R) {\n return Exclude(TemplateLiteralToUnion(L), R);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from '../extends/index.mjs';\nimport { ExcludeFromMappedResult } from './exclude-from-mapped-result.mjs';\nimport { ExcludeFromTemplateLiteral } from './exclude-from-template-literal.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\nfunction ExcludeRest(L, R) {\n const excluded = L.filter((inner) => ExtendsCheck(inner, R) === ExtendsResult.False);\n return excluded.length === 1 ? excluded[0] : Union(excluded);\n}\n/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */\nexport function Exclude(L, R, options = {}) {\n // overloads\n if (IsTemplateLiteral(L))\n return CreateType(ExcludeFromTemplateLiteral(L, R), options);\n if (IsMappedResult(L))\n return CreateType(ExcludeFromMappedResult(L, R), options);\n // prettier-ignore\n return CreateType(IsUnion(L) ? ExcludeRest(L.anyOf, R) :\n ExtendsCheck(L, R) !== ExtendsResult.False ? Never() : L, options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Exclude } from './exclude.mjs';\n// prettier-ignore\nfunction FromProperties(P, U) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Exclude(P[K2], U);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, T) {\n return FromProperties(R.properties, T);\n}\n// prettier-ignore\nexport function ExcludeFromMappedResult(R, T) {\n const P = FromMappedResult(R, T);\n return MappedResult(P);\n}\n","import { Extract } from './extract.mjs';\nimport { TemplateLiteralToUnion } from '../template-literal/index.mjs';\nexport function ExtractFromTemplateLiteral(L, R) {\n return Extract(TemplateLiteralToUnion(L), R);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from '../extends/index.mjs';\nimport { ExtractFromMappedResult } from './extract-from-mapped-result.mjs';\nimport { ExtractFromTemplateLiteral } from './extract-from-template-literal.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\nfunction ExtractRest(L, R) {\n const extracted = L.filter((inner) => ExtendsCheck(inner, R) !== ExtendsResult.False);\n return extracted.length === 1 ? extracted[0] : Union(extracted);\n}\n/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */\nexport function Extract(L, R, options) {\n // overloads\n if (IsTemplateLiteral(L))\n return CreateType(ExtractFromTemplateLiteral(L, R), options);\n if (IsMappedResult(L))\n return CreateType(ExtractFromMappedResult(L, R), options);\n // prettier-ignore\n return CreateType(IsUnion(L) ? ExtractRest(L.anyOf, R) :\n ExtendsCheck(L, R) !== ExtendsResult.False ? L : Never(), options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Extract } from './extract.mjs';\n// prettier-ignore\nfunction FromProperties(P, T) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Extract(P[K2], T);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, T) {\n return FromProperties(R.properties, T);\n}\n// prettier-ignore\nexport function ExtractFromMappedResult(R, T) {\n const P = FromMappedResult(R, T);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */\nexport function InstanceType(schema, options) {\n return (KindGuard.IsConstructor(schema) ? CreateType(schema.returns, options) : Never(options));\n}\n","import { Readonly } from '../readonly/index.mjs';\nimport { Optional } from '../optional/index.mjs';\n/** `[Json]` Creates a Readonly and Optional property */\nexport function ReadonlyOptional(schema) {\n return Readonly(Optional(schema));\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { String } from '../string/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { IsTemplateLiteralFinite } from '../template-literal/index.mjs';\nimport { PatternStringExact, PatternNumberExact, PatternNeverExact } from '../patterns/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsUndefined } from '../guard/value.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsInteger, IsLiteral, IsAny, IsBoolean, IsNever, IsNumber, IsString, IsRegExp, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// RecordCreateFromPattern\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordCreateFromPattern(pattern, T, options) {\n return CreateType({ [Kind]: 'Record', type: 'object', patternProperties: { [pattern]: T } }, options);\n}\n// ------------------------------------------------------------------\n// RecordCreateFromKeys\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordCreateFromKeys(K, T, options) {\n const result = {};\n for (const K2 of K)\n result[K2] = T;\n return Object(result, { ...options, [Hint]: 'Record' });\n}\n// prettier-ignore\nfunction FromTemplateLiteralKey(K, T, options) {\n return (IsTemplateLiteralFinite(K)\n ? RecordCreateFromKeys(IndexPropertyKeys(K), T, options)\n : RecordCreateFromPattern(K.pattern, T, options));\n}\n// prettier-ignore\nfunction FromUnionKey(key, type, options) {\n return RecordCreateFromKeys(IndexPropertyKeys(Union(key)), type, options);\n}\n// prettier-ignore\nfunction FromLiteralKey(key, type, options) {\n return RecordCreateFromKeys([key.toString()], type, options);\n}\n// prettier-ignore\nfunction FromRegExpKey(key, type, options) {\n return RecordCreateFromPattern(key.source, type, options);\n}\n// prettier-ignore\nfunction FromStringKey(key, type, options) {\n const pattern = IsUndefined(key.pattern) ? PatternStringExact : key.pattern;\n return RecordCreateFromPattern(pattern, type, options);\n}\n// prettier-ignore\nfunction FromAnyKey(_, type, options) {\n return RecordCreateFromPattern(PatternStringExact, type, options);\n}\n// prettier-ignore\nfunction FromNeverKey(_key, type, options) {\n return RecordCreateFromPattern(PatternNeverExact, type, options);\n}\n// prettier-ignore\nfunction FromBooleanKey(_key, type, options) {\n return Object({ true: type, false: type }, options);\n}\n// prettier-ignore\nfunction FromIntegerKey(_key, type, options) {\n return RecordCreateFromPattern(PatternNumberExact, type, options);\n}\n// prettier-ignore\nfunction FromNumberKey(_, type, options) {\n return RecordCreateFromPattern(PatternNumberExact, type, options);\n}\n// ------------------------------------------------------------------\n// TRecordOrObject\n// ------------------------------------------------------------------\n/** `[Json]` Creates a Record type */\nexport function Record(key, type, options = {}) {\n // prettier-ignore\n return (IsUnion(key) ? FromUnionKey(key.anyOf, type, options) :\n IsTemplateLiteral(key) ? FromTemplateLiteralKey(key, type, options) :\n IsLiteral(key) ? FromLiteralKey(key.const, type, options) :\n IsBoolean(key) ? FromBooleanKey(key, type, options) :\n IsInteger(key) ? FromIntegerKey(key, type, options) :\n IsNumber(key) ? FromNumberKey(key, type, options) :\n IsRegExp(key) ? FromRegExpKey(key, type, options) :\n IsString(key) ? FromStringKey(key, type, options) :\n IsAny(key) ? FromAnyKey(key, type, options) :\n IsNever(key) ? FromNeverKey(key, type, options) :\n Never(options));\n}\n// ------------------------------------------------------------------\n// Record Utilities\n// ------------------------------------------------------------------\n/** Gets the Records Pattern */\nexport function RecordPattern(record) {\n return globalThis.Object.getOwnPropertyNames(record.patternProperties)[0];\n}\n/** Gets the Records Key Type */\n// prettier-ignore\nexport function RecordKey(type) {\n const pattern = RecordPattern(type);\n return (pattern === PatternStringExact ? String() :\n pattern === PatternNumberExact ? Number() :\n String({ pattern }));\n}\n/** Gets a Record Value Type */\n// prettier-ignore\nexport function RecordValue(type) {\n return type.patternProperties[RecordPattern(type)];\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { ReadonlyOptional } from '../readonly-optional/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Record, RecordKey, RecordValue } from '../record/index.mjs';\nimport * as ValueGuard from '../guard/value.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromConstructor(args, type) {\n type.parameters = FromTypes(args, type.parameters);\n type.returns = FromType(args, type.returns);\n return type;\n}\n// prettier-ignore\nfunction FromFunction(args, type) {\n type.parameters = FromTypes(args, type.parameters);\n type.returns = FromType(args, type.returns);\n return type;\n}\n// prettier-ignore\nfunction FromIntersect(args, type) {\n type.allOf = FromTypes(args, type.allOf);\n return type;\n}\n// prettier-ignore\nfunction FromUnion(args, type) {\n type.anyOf = FromTypes(args, type.anyOf);\n return type;\n}\n// prettier-ignore\nfunction FromTuple(args, type) {\n if (ValueGuard.IsUndefined(type.items))\n return type;\n type.items = FromTypes(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromArray(args, type) {\n type.items = FromType(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromAsyncIterator(args, type) {\n type.items = FromType(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromIterator(args, type) {\n type.items = FromType(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromPromise(args, type) {\n type.item = FromType(args, type.item);\n return type;\n}\n// prettier-ignore\nfunction FromObject(args, type) {\n const mappedProperties = FromProperties(args, type.properties);\n return { ...type, ...Object(mappedProperties) }; // retain options\n}\n// prettier-ignore\nfunction FromRecord(args, type) {\n const mappedKey = FromType(args, RecordKey(type));\n const mappedValue = FromType(args, RecordValue(type));\n const result = Record(mappedKey, mappedValue);\n return { ...type, ...result }; // retain options\n}\n// prettier-ignore\nfunction FromArgument(args, argument) {\n return argument.index in args ? args[argument.index] : Unknown();\n}\n// prettier-ignore\nfunction FromProperty(args, type) {\n const isReadonly = KindGuard.IsReadonly(type);\n const isOptional = KindGuard.IsOptional(type);\n const mapped = FromType(args, type);\n return (isReadonly && isOptional ? ReadonlyOptional(mapped) :\n isReadonly && !isOptional ? Readonly(mapped) :\n !isReadonly && isOptional ? Optional(mapped) :\n mapped);\n}\n// prettier-ignore\nfunction FromProperties(args, properties) {\n return globalThis.Object.getOwnPropertyNames(properties).reduce((result, key) => {\n return { ...result, [key]: FromProperty(args, properties[key]) };\n }, {});\n}\n// prettier-ignore\nexport function FromTypes(args, types) {\n return types.map(type => FromType(args, type));\n}\n// prettier-ignore\nfunction FromType(args, type) {\n return (KindGuard.IsConstructor(type) ? FromConstructor(args, type) :\n KindGuard.IsFunction(type) ? FromFunction(args, type) :\n KindGuard.IsIntersect(type) ? FromIntersect(args, type) :\n KindGuard.IsUnion(type) ? FromUnion(args, type) :\n KindGuard.IsTuple(type) ? FromTuple(args, type) :\n KindGuard.IsArray(type) ? FromArray(args, type) :\n KindGuard.IsAsyncIterator(type) ? FromAsyncIterator(args, type) :\n KindGuard.IsIterator(type) ? FromIterator(args, type) :\n KindGuard.IsPromise(type) ? FromPromise(args, type) :\n KindGuard.IsObject(type) ? FromObject(args, type) :\n KindGuard.IsRecord(type) ? FromRecord(args, type) :\n KindGuard.IsArgument(type) ? FromArgument(args, type) :\n type);\n}\n/** `[JavaScript]` Instantiates a type with the given parameters */\n// prettier-ignore\nexport function Instantiate(type, args) {\n return FromType(args, CloneType(type));\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Integer type */\nexport function Integer(options) {\n return CreateType({ [Kind]: 'Integer', type: 'integer' }, options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Intrinsic } from './intrinsic.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction MappedIntrinsicPropertyKey(K, M, options) {\n return {\n [K]: Intrinsic(Literal(K), M, Clone(options))\n };\n}\n// prettier-ignore\nfunction MappedIntrinsicPropertyKeys(K, M, options) {\n const result = K.reduce((Acc, L) => {\n return { ...Acc, ...MappedIntrinsicPropertyKey(L, M, options) };\n }, {});\n return result;\n}\n// prettier-ignore\nfunction MappedIntrinsicProperties(T, M, options) {\n return MappedIntrinsicPropertyKeys(T['keys'], M, options);\n}\n// prettier-ignore\nexport function IntrinsicFromMappedKey(T, M, options) {\n const P = MappedIntrinsicProperties(T, M, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { TemplateLiteral, TemplateLiteralParseExact, IsTemplateLiteralExpressionFinite, TemplateLiteralExpressionGenerate } from '../template-literal/index.mjs';\nimport { IntrinsicFromMappedKey } from './intrinsic-from-mapped-key.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Union } from '../union/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsTemplateLiteral, IsUnion, IsLiteral } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// Apply\n// ------------------------------------------------------------------\nfunction ApplyUncapitalize(value) {\n const [first, rest] = [value.slice(0, 1), value.slice(1)];\n return [first.toLowerCase(), rest].join('');\n}\nfunction ApplyCapitalize(value) {\n const [first, rest] = [value.slice(0, 1), value.slice(1)];\n return [first.toUpperCase(), rest].join('');\n}\nfunction ApplyUppercase(value) {\n return value.toUpperCase();\n}\nfunction ApplyLowercase(value) {\n return value.toLowerCase();\n}\nfunction FromTemplateLiteral(schema, mode, options) {\n // note: template literals require special runtime handling as they are encoded in string patterns.\n // This diverges from the mapped type which would otherwise map on the template literal kind.\n const expression = TemplateLiteralParseExact(schema.pattern);\n const finite = IsTemplateLiteralExpressionFinite(expression);\n if (!finite)\n return { ...schema, pattern: FromLiteralValue(schema.pattern, mode) };\n const strings = [...TemplateLiteralExpressionGenerate(expression)];\n const literals = strings.map((value) => Literal(value));\n const mapped = FromRest(literals, mode);\n const union = Union(mapped);\n return TemplateLiteral([union], options);\n}\n// prettier-ignore\nfunction FromLiteralValue(value, mode) {\n return (typeof value === 'string' ? (mode === 'Uncapitalize' ? ApplyUncapitalize(value) :\n mode === 'Capitalize' ? ApplyCapitalize(value) :\n mode === 'Uppercase' ? ApplyUppercase(value) :\n mode === 'Lowercase' ? ApplyLowercase(value) :\n value) : value.toString());\n}\n// prettier-ignore\nfunction FromRest(T, M) {\n return T.map(L => Intrinsic(L, M));\n}\n/** Applies an intrinsic string manipulation to the given type. */\nexport function Intrinsic(schema, mode, options = {}) {\n // prettier-ignore\n return (\n // Intrinsic-Mapped-Inference\n IsMappedKey(schema) ? IntrinsicFromMappedKey(schema, mode, options) :\n // Standard-Inference\n IsTemplateLiteral(schema) ? FromTemplateLiteral(schema, mode, options) :\n IsUnion(schema) ? Union(FromRest(schema.anyOf, mode), options) :\n IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) :\n // Default Type\n CreateType(schema, options));\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Capitalize LiteralString types */\nexport function Capitalize(T, options = {}) {\n return Intrinsic(T, 'Capitalize', options);\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Lowercase LiteralString types */\nexport function Lowercase(T, options = {}) {\n return Intrinsic(T, 'Lowercase', options);\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */\nexport function Uncapitalize(T, options = {}) {\n return Intrinsic(T, 'Uncapitalize', options);\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Uppercase LiteralString types */\nexport function Uppercase(T, options = {}) {\n return Intrinsic(T, 'Uppercase', options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Omit } from './omit.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys, options) {\n const result = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(properties))\n result[K2] = Omit(properties[K2], propertyKeys, Clone(options));\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(mappedResult, propertyKeys, options) {\n return FromProperties(mappedResult.properties, propertyKeys, options);\n}\n// prettier-ignore\nexport function OmitFromMappedResult(mappedResult, propertyKeys, options) {\n const properties = FromMappedResult(mappedResult, propertyKeys, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Discard } from '../discard/discard.mjs';\nimport { TransformKind } from '../symbols/symbols.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Object } from '../object/index.mjs';\n// ------------------------------------------------------------------\n// Mapped\n// ------------------------------------------------------------------\nimport { OmitFromMappedKey } from './omit-from-mapped-key.mjs';\nimport { OmitFromMappedResult } from './omit-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsIntersect, IsUnion, IsObject, IsSchema, IsMappedResult, IsLiteralValue, IsRef } from '../guard/kind.mjs';\nimport { IsArray as IsArrayValue } from '../guard/value.mjs';\n// prettier-ignore\nfunction FromIntersect(types, propertyKeys) {\n return types.map((type) => OmitResolve(type, propertyKeys));\n}\n// prettier-ignore\nfunction FromUnion(types, propertyKeys) {\n return types.map((type) => OmitResolve(type, propertyKeys));\n}\n// ------------------------------------------------------------------\n// FromProperty\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromProperty(properties, key) {\n const { [key]: _, ...R } = properties;\n return R;\n}\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys) {\n return propertyKeys.reduce((T, K2) => FromProperty(T, K2), properties);\n}\n// prettier-ignore\nfunction FromObject(type, propertyKeys, properties) {\n const options = Discard(type, [TransformKind, '$id', 'required', 'properties']);\n const mappedProperties = FromProperties(properties, propertyKeys);\n return Object(mappedProperties, options);\n}\n// prettier-ignore\nfunction UnionFromPropertyKeys(propertyKeys) {\n const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []);\n return Union(result);\n}\n// prettier-ignore\nfunction OmitResolve(type, propertyKeys) {\n return (IsIntersect(type) ? Intersect(FromIntersect(type.allOf, propertyKeys)) :\n IsUnion(type) ? Union(FromUnion(type.anyOf, propertyKeys)) :\n IsObject(type) ? FromObject(type, propertyKeys, type.properties) :\n Object({}));\n}\n/** `[Json]` Constructs a type whose keys are picked from the given type */\n// prettier-ignore\nexport function Omit(type, key, options) {\n const typeKey = IsArrayValue(key) ? UnionFromPropertyKeys(key) : key;\n const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;\n const isTypeRef = IsRef(type);\n const isKeyRef = IsRef(key);\n return (IsMappedResult(type) ? OmitFromMappedResult(type, propertyKeys, options) :\n IsMappedKey(key) ? OmitFromMappedKey(type, key, options) :\n (isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) :\n (!isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) :\n (isTypeRef && !isKeyRef) ? Computed('Omit', [type, typeKey], options) :\n CreateType({ ...OmitResolve(type, propertyKeys), ...options }));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Omit } from './omit.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromPropertyKey(type, key, options) {\n return { [key]: Omit(type, [key], Clone(options)) };\n}\n// prettier-ignore\nfunction FromPropertyKeys(type, propertyKeys, options) {\n return propertyKeys.reduce((Acc, LK) => {\n return { ...Acc, ...FromPropertyKey(type, LK, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(type, mappedKey, options) {\n return FromPropertyKeys(type, mappedKey.keys, options);\n}\n// prettier-ignore\nexport function OmitFromMappedKey(type, mappedKey, options) {\n const properties = FromMappedKey(type, mappedKey, options);\n return MappedResult(properties);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Pick } from './pick.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys, options) {\n const result = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(properties))\n result[K2] = Pick(properties[K2], propertyKeys, Clone(options));\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(mappedResult, propertyKeys, options) {\n return FromProperties(mappedResult.properties, propertyKeys, options);\n}\n// prettier-ignore\nexport function PickFromMappedResult(mappedResult, propertyKeys, options) {\n const properties = FromMappedResult(mappedResult, propertyKeys, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Discard } from '../discard/discard.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { TransformKind } from '../symbols/symbols.mjs';\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsMappedResult, IsIntersect, IsUnion, IsObject, IsSchema, IsLiteralValue, IsRef } from '../guard/kind.mjs';\nimport { IsArray as IsArrayValue } from '../guard/value.mjs';\n// ------------------------------------------------------------------\n// Infrastructure\n// ------------------------------------------------------------------\nimport { PickFromMappedKey } from './pick-from-mapped-key.mjs';\nimport { PickFromMappedResult } from './pick-from-mapped-result.mjs';\nfunction FromIntersect(types, propertyKeys) {\n return types.map((type) => PickResolve(type, propertyKeys));\n}\n// prettier-ignore\nfunction FromUnion(types, propertyKeys) {\n return types.map((type) => PickResolve(type, propertyKeys));\n}\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys) {\n const result = {};\n for (const K2 of propertyKeys)\n if (K2 in properties)\n result[K2] = properties[K2];\n return result;\n}\n// prettier-ignore\nfunction FromObject(Type, keys, properties) {\n const options = Discard(Type, [TransformKind, '$id', 'required', 'properties']);\n const mappedProperties = FromProperties(properties, keys);\n return Object(mappedProperties, options);\n}\n// prettier-ignore\nfunction UnionFromPropertyKeys(propertyKeys) {\n const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []);\n return Union(result);\n}\n// prettier-ignore\nfunction PickResolve(type, propertyKeys) {\n return (IsIntersect(type) ? Intersect(FromIntersect(type.allOf, propertyKeys)) :\n IsUnion(type) ? Union(FromUnion(type.anyOf, propertyKeys)) :\n IsObject(type) ? FromObject(type, propertyKeys, type.properties) :\n Object({}));\n}\n/** `[Json]` Constructs a type whose keys are picked from the given type */\n// prettier-ignore\nexport function Pick(type, key, options) {\n const typeKey = IsArrayValue(key) ? UnionFromPropertyKeys(key) : key;\n const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;\n const isTypeRef = IsRef(type);\n const isKeyRef = IsRef(key);\n return (IsMappedResult(type) ? PickFromMappedResult(type, propertyKeys, options) :\n IsMappedKey(key) ? PickFromMappedKey(type, key, options) :\n (isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) :\n (!isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) :\n (isTypeRef && !isKeyRef) ? Computed('Pick', [type, typeKey], options) :\n CreateType({ ...PickResolve(type, propertyKeys), ...options }));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Pick } from './pick.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromPropertyKey(type, key, options) {\n return {\n [key]: Pick(type, [key], Clone(options))\n };\n}\n// prettier-ignore\nfunction FromPropertyKeys(type, propertyKeys, options) {\n return propertyKeys.reduce((result, leftKey) => {\n return { ...result, ...FromPropertyKey(type, leftKey, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(type, mappedKey, options) {\n return FromPropertyKeys(type, mappedKey.keys, options);\n}\n// prettier-ignore\nexport function PickFromMappedKey(type, mappedKey, options) {\n const properties = FromMappedKey(type, mappedKey, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Ref } from '../ref/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { TransformKind } from '../symbols/index.mjs';\nimport { PartialFromMappedResult } from './partial-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('Partial', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('Partial', [Ref($ref)]);\n}\n// prettier-ignore\nfunction FromProperties(properties) {\n const partialProperties = {};\n for (const K of globalThis.Object.getOwnPropertyNames(properties))\n partialProperties[K] = Optional(properties[K]);\n return partialProperties;\n}\n// prettier-ignore\nfunction FromObject(type, properties) {\n const options = Discard(type, [TransformKind, '$id', 'required', 'properties']);\n const mappedProperties = FromProperties(properties);\n return Object(mappedProperties, options);\n}\n// prettier-ignore\nfunction FromRest(types) {\n return types.map(type => PartialResolve(type));\n}\n// ------------------------------------------------------------------\n// PartialResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction PartialResolve(type) {\n return (\n // Mappable\n KindGuard.IsComputed(type) ? FromComputed(type.target, type.parameters) :\n KindGuard.IsRef(type) ? FromRef(type.$ref) :\n KindGuard.IsIntersect(type) ? Intersect(FromRest(type.allOf)) :\n KindGuard.IsUnion(type) ? Union(FromRest(type.anyOf)) :\n KindGuard.IsObject(type) ? FromObject(type, type.properties) :\n // Intrinsic\n KindGuard.IsBigInt(type) ? type :\n KindGuard.IsBoolean(type) ? type :\n KindGuard.IsInteger(type) ? type :\n KindGuard.IsLiteral(type) ? type :\n KindGuard.IsNull(type) ? type :\n KindGuard.IsNumber(type) ? type :\n KindGuard.IsString(type) ? type :\n KindGuard.IsSymbol(type) ? type :\n KindGuard.IsUndefined(type) ? type :\n // Passthrough\n Object({}));\n}\n/** `[Json]` Constructs a type where all properties are optional */\nexport function Partial(type, options) {\n if (KindGuard.IsMappedResult(type)) {\n return PartialFromMappedResult(type, options);\n }\n else {\n // special: mapping types require overridable options\n return CreateType({ ...PartialResolve(type), ...options });\n }\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Partial } from './partial.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(K, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(K))\n Acc[K2] = Partial(K[K2], Clone(options));\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, options) {\n return FromProperties(R.properties, options);\n}\n// prettier-ignore\nexport function PartialFromMappedResult(R, options) {\n const P = FromMappedResult(R, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Ref } from '../ref/index.mjs';\nimport { OptionalKind, TransformKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { RequiredFromMappedResult } from './required-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('Required', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('Required', [Ref($ref)]);\n}\n// prettier-ignore\nfunction FromProperties(properties) {\n const requiredProperties = {};\n for (const K of globalThis.Object.getOwnPropertyNames(properties))\n requiredProperties[K] = Discard(properties[K], [OptionalKind]);\n return requiredProperties;\n}\n// prettier-ignore\nfunction FromObject(type, properties) {\n const options = Discard(type, [TransformKind, '$id', 'required', 'properties']);\n const mappedProperties = FromProperties(properties);\n return Object(mappedProperties, options);\n}\n// prettier-ignore\nfunction FromRest(types) {\n return types.map(type => RequiredResolve(type));\n}\n// ------------------------------------------------------------------\n// RequiredResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RequiredResolve(type) {\n return (\n // Mappable\n KindGuard.IsComputed(type) ? FromComputed(type.target, type.parameters) :\n KindGuard.IsRef(type) ? FromRef(type.$ref) :\n KindGuard.IsIntersect(type) ? Intersect(FromRest(type.allOf)) :\n KindGuard.IsUnion(type) ? Union(FromRest(type.anyOf)) :\n KindGuard.IsObject(type) ? FromObject(type, type.properties) :\n // Intrinsic\n KindGuard.IsBigInt(type) ? type :\n KindGuard.IsBoolean(type) ? type :\n KindGuard.IsInteger(type) ? type :\n KindGuard.IsLiteral(type) ? type :\n KindGuard.IsNull(type) ? type :\n KindGuard.IsNumber(type) ? type :\n KindGuard.IsString(type) ? type :\n KindGuard.IsSymbol(type) ? type :\n KindGuard.IsUndefined(type) ? type :\n // Passthrough\n Object({}));\n}\n/** `[Json]` Constructs a type where all properties are required */\nexport function Required(type, options) {\n if (KindGuard.IsMappedResult(type)) {\n return RequiredFromMappedResult(type, options);\n }\n else {\n // special: mapping types require overridable options\n return CreateType({ ...RequiredResolve(type), ...options });\n }\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Required } from './required.mjs';\n// prettier-ignore\nfunction FromProperties(P, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Required(P[K2], options);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, options) {\n return FromProperties(R.properties, options);\n}\n// prettier-ignore\nexport function RequiredFromMappedResult(R, options) {\n const P = FromMappedResult(R, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/index.mjs';\nimport { CloneType } from '../clone/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { Array } from '../array/index.mjs';\nimport { Awaited } from '../awaited/index.mjs';\nimport { AsyncIterator } from '../async-iterator/index.mjs';\nimport { Constructor } from '../constructor/index.mjs';\nimport { Index } from '../indexed/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Iterator } from '../iterator/index.mjs';\nimport { KeyOf } from '../keyof/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Omit } from '../omit/index.mjs';\nimport { Pick } from '../pick/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Partial } from '../partial/index.mjs';\nimport { RecordValue, RecordPattern } from '../record/index.mjs';\nimport { Required } from '../required/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Union } from '../union/index.mjs';\n// ------------------------------------------------------------------\n// Symbols\n// ------------------------------------------------------------------\nimport { TransformKind, OptionalKind, ReadonlyKind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction DereferenceParameters(moduleProperties, types) {\n return types.map((type) => {\n return KindGuard.IsRef(type)\n ? Dereference(moduleProperties, type.$ref)\n : FromType(moduleProperties, type);\n });\n}\n// prettier-ignore\nfunction Dereference(moduleProperties, ref) {\n return (ref in moduleProperties\n ? KindGuard.IsRef(moduleProperties[ref])\n ? Dereference(moduleProperties, moduleProperties[ref].$ref)\n : FromType(moduleProperties, moduleProperties[ref])\n : Never());\n}\n// prettier-ignore\nfunction FromAwaited(parameters) {\n return Awaited(parameters[0]);\n}\n// prettier-ignore\nfunction FromIndex(parameters) {\n return Index(parameters[0], parameters[1]);\n}\n// prettier-ignore\nfunction FromKeyOf(parameters) {\n return KeyOf(parameters[0]);\n}\n// prettier-ignore\nfunction FromPartial(parameters) {\n return Partial(parameters[0]);\n}\n// prettier-ignore\nfunction FromOmit(parameters) {\n return Omit(parameters[0], parameters[1]);\n}\n// prettier-ignore\nfunction FromPick(parameters) {\n return Pick(parameters[0], parameters[1]);\n}\n// prettier-ignore\nfunction FromRequired(parameters) {\n return Required(parameters[0]);\n}\n// prettier-ignore\nfunction FromComputed(moduleProperties, target, parameters) {\n const dereferenced = DereferenceParameters(moduleProperties, parameters);\n return (target === 'Awaited' ? FromAwaited(dereferenced) :\n target === 'Index' ? FromIndex(dereferenced) :\n target === 'KeyOf' ? FromKeyOf(dereferenced) :\n target === 'Partial' ? FromPartial(dereferenced) :\n target === 'Omit' ? FromOmit(dereferenced) :\n target === 'Pick' ? FromPick(dereferenced) :\n target === 'Required' ? FromRequired(dereferenced) :\n Never());\n}\nfunction FromArray(moduleProperties, type) {\n return Array(FromType(moduleProperties, type));\n}\nfunction FromAsyncIterator(moduleProperties, type) {\n return AsyncIterator(FromType(moduleProperties, type));\n}\n// prettier-ignore\nfunction FromConstructor(moduleProperties, parameters, instanceType) {\n return Constructor(FromTypes(moduleProperties, parameters), FromType(moduleProperties, instanceType));\n}\n// prettier-ignore\nfunction FromFunction(moduleProperties, parameters, returnType) {\n return FunctionType(FromTypes(moduleProperties, parameters), FromType(moduleProperties, returnType));\n}\nfunction FromIntersect(moduleProperties, types) {\n return Intersect(FromTypes(moduleProperties, types));\n}\nfunction FromIterator(moduleProperties, type) {\n return Iterator(FromType(moduleProperties, type));\n}\nfunction FromObject(moduleProperties, properties) {\n return Object(globalThis.Object.keys(properties).reduce((result, key) => {\n return { ...result, [key]: FromType(moduleProperties, properties[key]) };\n }, {}));\n}\n// prettier-ignore\nfunction FromRecord(moduleProperties, type) {\n const [value, pattern] = [FromType(moduleProperties, RecordValue(type)), RecordPattern(type)];\n const result = CloneType(type);\n result.patternProperties[pattern] = value;\n return result;\n}\n// prettier-ignore\nfunction FromTransform(moduleProperties, transform) {\n return (KindGuard.IsRef(transform))\n ? { ...Dereference(moduleProperties, transform.$ref), [TransformKind]: transform[TransformKind] }\n : transform;\n}\nfunction FromTuple(moduleProperties, types) {\n return Tuple(FromTypes(moduleProperties, types));\n}\nfunction FromUnion(moduleProperties, types) {\n return Union(FromTypes(moduleProperties, types));\n}\nfunction FromTypes(moduleProperties, types) {\n return types.map((type) => FromType(moduleProperties, type));\n}\n// prettier-ignore\nexport function FromType(moduleProperties, type) {\n return (\n // Modifiers\n KindGuard.IsOptional(type) ? CreateType(FromType(moduleProperties, Discard(type, [OptionalKind])), type) :\n KindGuard.IsReadonly(type) ? CreateType(FromType(moduleProperties, Discard(type, [ReadonlyKind])), type) :\n // Transform\n KindGuard.IsTransform(type) ? CreateType(FromTransform(moduleProperties, type), type) :\n // Types\n KindGuard.IsArray(type) ? CreateType(FromArray(moduleProperties, type.items), type) :\n KindGuard.IsAsyncIterator(type) ? CreateType(FromAsyncIterator(moduleProperties, type.items), type) :\n KindGuard.IsComputed(type) ? CreateType(FromComputed(moduleProperties, type.target, type.parameters)) :\n KindGuard.IsConstructor(type) ? CreateType(FromConstructor(moduleProperties, type.parameters, type.returns), type) :\n KindGuard.IsFunction(type) ? CreateType(FromFunction(moduleProperties, type.parameters, type.returns), type) :\n KindGuard.IsIntersect(type) ? CreateType(FromIntersect(moduleProperties, type.allOf), type) :\n KindGuard.IsIterator(type) ? CreateType(FromIterator(moduleProperties, type.items), type) :\n KindGuard.IsObject(type) ? CreateType(FromObject(moduleProperties, type.properties), type) :\n KindGuard.IsRecord(type) ? CreateType(FromRecord(moduleProperties, type)) :\n KindGuard.IsTuple(type) ? CreateType(FromTuple(moduleProperties, type.items || []), type) :\n KindGuard.IsUnion(type) ? CreateType(FromUnion(moduleProperties, type.anyOf), type) :\n type);\n}\n// prettier-ignore\nexport function ComputeType(moduleProperties, key) {\n return (key in moduleProperties\n ? FromType(moduleProperties, moduleProperties[key])\n : Never());\n}\n// prettier-ignore\nexport function ComputeModuleProperties(moduleProperties) {\n return globalThis.Object.getOwnPropertyNames(moduleProperties).reduce((result, key) => {\n return { ...result, [key]: ComputeType(moduleProperties, key) };\n }, {});\n}\n","import { CreateType } from '../create/index.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// Module Infrastructure Types\n// ------------------------------------------------------------------\nimport { ComputeModuleProperties } from './compute.mjs';\n// ------------------------------------------------------------------\n// Module\n// ------------------------------------------------------------------\n// prettier-ignore\nexport class TModule {\n constructor($defs) {\n const computed = ComputeModuleProperties($defs);\n const identified = this.WithIdentifiers(computed);\n this.$defs = identified;\n }\n /** `[Json]` Imports a Type by Key. */\n Import(key, options) {\n const $defs = { ...this.$defs, [key]: CreateType(this.$defs[key], options) };\n return CreateType({ [Kind]: 'Import', $defs, $ref: key });\n }\n // prettier-ignore\n WithIdentifiers($defs) {\n return globalThis.Object.getOwnPropertyNames($defs).reduce((result, key) => {\n return { ...result, [key]: { ...$defs[key], $id: key } };\n }, {});\n }\n}\n/** `[Json]` Creates a Type Definition Module. */\nexport function Module(properties) {\n return new TModule(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Not type */\nexport function Not(type, options) {\n return CreateType({ [Kind]: 'Not', not: type }, options);\n}\n","import { Tuple } from '../tuple/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the Parameters from the given Function type */\nexport function Parameters(schema, options) {\n return (KindGuard.IsFunction(schema) ? Tuple(schema.parameters, options) : Never());\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { IsUndefined } from '../guard/value.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\n// Auto Tracked For Recursive Types without ID's\nlet Ordinal = 0;\n/** `[Json]` Creates a Recursive type */\nexport function Recursive(callback, options = {}) {\n if (IsUndefined(options.$id))\n options.$id = `T${Ordinal++}`;\n const thisType = CloneType(callback({ [Kind]: 'This', $ref: `${options.$id}` }));\n thisType.$id = options.$id;\n // prettier-ignore\n return CreateType({ [Hint]: 'Recursive', ...thisType }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { IsString } from '../guard/value.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a RegExp type */\nexport function RegExp(unresolved, options) {\n const expr = IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved;\n return CreateType({ [Kind]: 'RegExp', type: 'RegExp', source: expr.source, flags: expr.flags }, options);\n}\n","// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsTuple } from '../guard/kind.mjs';\n// prettier-ignore\nfunction RestResolve(T) {\n return (IsIntersect(T) ? T.allOf :\n IsUnion(T) ? T.anyOf :\n IsTuple(T) ? T.items ?? [] :\n []);\n}\n/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */\nexport function Rest(T) {\n return RestResolve(T);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the ReturnType from the given Function type */\nexport function ReturnType(schema, options) {\n return (KindGuard.IsFunction(schema) ? CreateType(schema.returns, options) : Never(options));\n}\n","import { TransformKind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTransform } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// TransformBuilders\n// ------------------------------------------------------------------\nexport class TransformDecodeBuilder {\n constructor(schema) {\n this.schema = schema;\n }\n Decode(decode) {\n return new TransformEncodeBuilder(this.schema, decode);\n }\n}\n// prettier-ignore\nexport class TransformEncodeBuilder {\n constructor(schema, decode) {\n this.schema = schema;\n this.decode = decode;\n }\n EncodeTransform(encode, schema) {\n const Encode = (value) => schema[TransformKind].Encode(encode(value));\n const Decode = (value) => this.decode(schema[TransformKind].Decode(value));\n const Codec = { Encode: Encode, Decode: Decode };\n return { ...schema, [TransformKind]: Codec };\n }\n EncodeSchema(encode, schema) {\n const Codec = { Decode: this.decode, Encode: encode };\n return { ...schema, [TransformKind]: Codec };\n }\n Encode(encode) {\n return (IsTransform(this.schema) ? this.EncodeTransform(encode, this.schema) : this.EncodeSchema(encode, this.schema));\n }\n}\n/** `[Json]` Creates a Transform type */\nexport function Transform(schema) {\n return new TransformDecodeBuilder(schema);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */\nexport function Unsafe(options = {}) {\n return CreateType({ [Kind]: options[Kind] ?? 'Unsafe' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Void type */\nexport function Void(options) {\n return CreateType({ [Kind]: 'Void', type: 'void' }, options);\n}\n","// ------------------------------------------------------------------\n// Type: Module\n// ------------------------------------------------------------------\nexport { Any } from '../any/index.mjs';\nexport { Argument } from '../argument/index.mjs';\nexport { Array } from '../array/index.mjs';\nexport { AsyncIterator } from '../async-iterator/index.mjs';\nexport { Awaited } from '../awaited/index.mjs';\nexport { BigInt } from '../bigint/index.mjs';\nexport { Boolean } from '../boolean/index.mjs';\nexport { Composite } from '../composite/index.mjs';\nexport { Const } from '../const/index.mjs';\nexport { Constructor } from '../constructor/index.mjs';\nexport { ConstructorParameters } from '../constructor-parameters/index.mjs';\nexport { Date } from '../date/index.mjs';\nexport { Enum } from '../enum/index.mjs';\nexport { Exclude } from '../exclude/index.mjs';\nexport { Extends } from '../extends/index.mjs';\nexport { Extract } from '../extract/index.mjs';\nexport { Function } from '../function/index.mjs';\nexport { Index } from '../indexed/index.mjs';\nexport { InstanceType } from '../instance-type/index.mjs';\nexport { Instantiate } from '../instantiate/index.mjs';\nexport { Integer } from '../integer/index.mjs';\nexport { Intersect } from '../intersect/index.mjs';\nexport { Capitalize, Uncapitalize, Lowercase, Uppercase } from '../intrinsic/index.mjs';\nexport { Iterator } from '../iterator/index.mjs';\nexport { KeyOf } from '../keyof/index.mjs';\nexport { Literal } from '../literal/index.mjs';\nexport { Mapped } from '../mapped/index.mjs';\nexport { Module } from '../module/index.mjs';\nexport { Never } from '../never/index.mjs';\nexport { Not } from '../not/index.mjs';\nexport { Null } from '../null/index.mjs';\nexport { Number } from '../number/index.mjs';\nexport { Object } from '../object/index.mjs';\nexport { Omit } from '../omit/index.mjs';\nexport { Optional } from '../optional/index.mjs';\nexport { Parameters } from '../parameters/index.mjs';\nexport { Partial } from '../partial/index.mjs';\nexport { Pick } from '../pick/index.mjs';\nexport { Promise } from '../promise/index.mjs';\nexport { Readonly } from '../readonly/index.mjs';\nexport { ReadonlyOptional } from '../readonly-optional/index.mjs';\nexport { Record } from '../record/index.mjs';\nexport { Recursive } from '../recursive/index.mjs';\nexport { Ref } from '../ref/index.mjs';\nexport { RegExp } from '../regexp/index.mjs';\nexport { Required } from '../required/index.mjs';\nexport { Rest } from '../rest/index.mjs';\nexport { ReturnType } from '../return-type/index.mjs';\nexport { String } from '../string/index.mjs';\nexport { Symbol } from '../symbol/index.mjs';\nexport { TemplateLiteral } from '../template-literal/index.mjs';\nexport { Transform } from '../transform/index.mjs';\nexport { Tuple } from '../tuple/index.mjs';\nexport { Uint8Array } from '../uint8array/index.mjs';\nexport { Undefined } from '../undefined/index.mjs';\nexport { Union } from '../union/index.mjs';\nexport { Unknown } from '../unknown/index.mjs';\nexport { Unsafe } from '../unsafe/index.mjs';\nexport { Void } from '../void/index.mjs';\n","// ------------------------------------------------------------------\n// JsonTypeBuilder\n// ------------------------------------------------------------------\nexport { JsonTypeBuilder } from './json.mjs';\n// ------------------------------------------------------------------\n// JavaScriptTypeBuilder\n// ------------------------------------------------------------------\nimport * as TypeBuilder from './type.mjs';\nimport { JavaScriptTypeBuilder } from './javascript.mjs';\n/** JavaScript Type Builder with Static Resolution for TypeScript */\nconst Type = TypeBuilder;\nexport { JavaScriptTypeBuilder };\nexport { Type };\n","var _a;\nimport { Memoirist } from \"memoirist\";\nimport {\n Kind\n} from \"@sinclair/typebox\";\nimport fastDecodeURIComponent from \"fast-decode-uri-component\";\nimport { t } from \"./type-system/index.mjs\";\nimport { mergeInference, sucrose } from \"./sucrose.mjs\";\nimport { BunAdapter } from \"./adapter/bun/index.mjs\";\nimport { WebStandardAdapter } from \"./adapter/web-standard/index.mjs\";\nimport { env } from \"./universal/env.mjs\";\nimport {\n cloneInference,\n deduplicateChecksum,\n fnToContainer,\n getLoosePath,\n localHookToLifeCycleStore,\n mergeDeep,\n mergeSchemaValidator,\n PromiseGroup,\n promoteEvent,\n isNotEmpty,\n encodePath,\n lifeCycleToArray,\n supportPerMethodInlineHandler,\n redirect,\n emptySchema,\n insertStandaloneValidator\n} from \"./utils.mjs\";\nimport {\n getSchemaValidator,\n getResponseSchemaValidator,\n getCookieValidator,\n hasType,\n resolveSchema\n} from \"./schema.mjs\";\nimport {\n composeHandler,\n composeGeneralHandler,\n composeErrorHandler\n} from \"./compose.mjs\";\nimport { createTracer } from \"./trace.mjs\";\nimport {\n mergeHook,\n checksum,\n mergeLifeCycle,\n filterGlobalHook,\n asHookType,\n replaceUrlPath\n} from \"./utils.mjs\";\nimport {\n createDynamicErrorHandler,\n createDynamicHandler\n} from \"./dynamic-handle.mjs\";\nimport {\n status,\n ERROR_CODE,\n ValidationError\n} from \"./error.mjs\";\nimport {\n coercePrimitiveRoot,\n coerceFormData,\n queryCoercions,\n stringToStructureCoercions\n} from \"./replace-schema.mjs\";\n_a = Symbol.dispose;\nconst _Elysia = class _Elysia {\n constructor(config = {}) {\n this.server = null;\n this.dependencies = {};\n this[\"~Prefix\"] = \"\";\n this[\"~Singleton\"] = null;\n this[\"~Definitions\"] = null;\n this[\"~Metadata\"] = null;\n this[\"~Ephemeral\"] = null;\n this[\"~Volatile\"] = null;\n this[\"~Routes\"] = null;\n this.singleton = {\n decorator: {},\n store: {},\n derive: {},\n resolve: {}\n };\n this.definitions = {\n typebox: t.Module({}),\n type: {},\n error: {}\n };\n this.extender = {\n macro: {},\n higherOrderFunctions: []\n };\n this.validator = {\n global: null,\n scoped: null,\n local: null,\n getCandidate() {\n return !this.global && !this.scoped && !this.local ? {\n body: void 0,\n headers: void 0,\n params: void 0,\n query: void 0,\n cookie: void 0,\n response: void 0\n } : mergeSchemaValidator(\n mergeSchemaValidator(this.global, this.scoped),\n this.local\n );\n }\n };\n this.standaloneValidator = {\n global: null,\n scoped: null,\n local: null\n };\n this.event = {};\n this.router = {\n \"~http\": void 0,\n get http() {\n return this[\"~http\"] || (this[\"~http\"] = new Memoirist({\n lazy: !0,\n onParam: fastDecodeURIComponent\n })), this[\"~http\"];\n },\n \"~dynamic\": void 0,\n // Use in non-AOT mode\n get dynamic() {\n return this[\"~dynamic\"] || (this[\"~dynamic\"] = new Memoirist({\n onParam: fastDecodeURIComponent\n })), this[\"~dynamic\"];\n },\n // Static Router\n static: {},\n // Native Static Response\n response: {},\n history: []\n };\n this.routeTree = {};\n this.inference = {\n body: !1,\n cookie: !1,\n headers: !1,\n query: !1,\n set: !1,\n server: !1,\n path: !1,\n route: !1,\n url: !1\n };\n this[\"~parser\"] = {};\n this.handle = async (request) => this.fetch(request);\n this.handleError = async (context, error) => (this.handleError = this.config.aot ? composeErrorHandler(this) : createDynamicErrorHandler(this))(context, error);\n /**\n * ### listen\n * Assign current instance to port and start serving\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .get(\"/\", () => 'hi')\n * .listen(3000)\n * ```\n */\n this.listen = (options, callback) => (this[\"~adapter\"].listen(this)(options, callback), this);\n /**\n * ### stop\n * Stop server from serving\n *\n * ---\n * @example\n * ```typescript\n * const app = new Elysia()\n * .get(\"/\", () => 'hi')\n * .listen(3000)\n *\n * // Sometime later\n * app.stop()\n * ```\n *\n * @example\n * ```typescript\n * const app = new Elysia()\n * .get(\"/\", () => 'hi')\n * .listen(3000)\n *\n * app.stop(true) // Abruptly any requests inflight\n * ```\n */\n this.stop = async (closeActiveConnections) => (await this[\"~adapter\"].stop?.(this, closeActiveConnections), this);\n this[_a] = () => {\n this.server && this.stop();\n };\n config.tags && (config.detail ? config.detail.tags = config.tags : config.detail = {\n tags: config.tags\n }), this.config = {\n aot: env.ELYSIA_AOT !== \"false\",\n nativeStaticResponse: !0,\n encodeSchema: !0,\n normalize: !0,\n ...config,\n prefix: config.prefix ? config.prefix.charCodeAt(0) === 47 ? config.prefix : `/${config.prefix}` : void 0,\n cookie: {\n path: \"/\",\n ...config?.cookie\n },\n experimental: config?.experimental ?? {},\n seed: config?.seed === void 0 ? \"\" : config?.seed\n }, this[\"~adapter\"] = config.adapter ?? (typeof Bun < \"u\" ? BunAdapter : WebStandardAdapter), config?.analytic && (config?.name || config?.seed !== void 0) && (this.telemetry = {\n stack: new Error().stack\n });\n }\n get store() {\n return this.singleton.store;\n }\n get decorator() {\n return this.singleton.decorator;\n }\n get routes() {\n return this.router.history;\n }\n getGlobalRoutes() {\n return this.router.history;\n }\n getGlobalDefinitions() {\n return this.definitions;\n }\n getServer() {\n return this.server;\n }\n getParent() {\n return null;\n }\n get promisedModules() {\n return this._promisedModules || (this._promisedModules = new PromiseGroup(console.error, () => {\n })), this._promisedModules;\n }\n env(model, _env = env) {\n if (getSchemaValidator(model, {\n modules: this.definitions.typebox,\n dynamic: !0,\n additionalProperties: !0,\n coerce: !0,\n sanitize: () => this.config.sanitize\n }).Check(_env) === !1) {\n const error = new ValidationError(\"env\", model, _env);\n throw new Error(error.all.map((x) => x.summary).join(`\n`));\n }\n return this;\n }\n /**\n * @private DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n * @version 1.1.0\n *\n * ! Do not use unless you know exactly what you are doing\n * ? Add Higher order function to Elysia.fetch\n */\n wrap(fn) {\n return this.extender.higherOrderFunctions.push({\n checksum: checksum(\n JSON.stringify({\n name: this.config.name,\n seed: this.config.seed,\n content: fn.toString()\n })\n ),\n fn\n }), this;\n }\n get models() {\n const models = {};\n for (const name of Object.keys(this.definitions.type))\n models[name] = getSchemaValidator(\n this.definitions.typebox.Import(name),\n {\n models: this.definitions.type\n }\n );\n return models.modules = this.definitions.typebox, models;\n }\n add(method, path, handle, localHook, options) {\n const skipPrefix = options?.skipPrefix ?? !1, allowMeta = options?.allowMeta ?? !1;\n localHook ??= {}, this.applyMacro(localHook);\n let standaloneValidators = [];\n if (localHook.standaloneValidator && (standaloneValidators = standaloneValidators.concat(\n localHook.standaloneValidator\n )), this.standaloneValidator.local && (standaloneValidators = standaloneValidators.concat(\n this.standaloneValidator.local\n )), this.standaloneValidator.scoped && (standaloneValidators = standaloneValidators.concat(\n this.standaloneValidator.scoped\n )), this.standaloneValidator.global && (standaloneValidators = standaloneValidators.concat(\n this.standaloneValidator.global\n )), path !== \"\" && path.charCodeAt(0) !== 47 && (path = \"/\" + path), this.config.prefix && !skipPrefix && (path = this.config.prefix + path), localHook?.type)\n switch (localHook.type) {\n case \"text\":\n localHook.type = \"text/plain\";\n break;\n case \"json\":\n localHook.type = \"application/json\";\n break;\n case \"formdata\":\n localHook.type = \"multipart/form-data\";\n break;\n case \"urlencoded\":\n localHook.type = \"application/x-www-form-urlencoded\";\n break;\n case \"arrayBuffer\":\n localHook.type = \"application/octet-stream\";\n break;\n default:\n break;\n }\n const instanceValidator = this.validator.getCandidate(), cloned = {\n body: localHook?.body ?? instanceValidator?.body,\n headers: localHook?.headers ?? instanceValidator?.headers,\n params: localHook?.params ?? instanceValidator?.params,\n query: localHook?.query ?? instanceValidator?.query,\n cookie: localHook?.cookie ?? instanceValidator?.cookie,\n response: localHook?.response ?? instanceValidator?.response\n }, shouldPrecompile = this.config.precompile === !0 || typeof this.config.precompile == \"object\" && this.config.precompile.compose === !0, createValidator = () => {\n const models = this.definitions.type, dynamic = !this.config.aot, normalize = this.config.normalize, modules = this.definitions.typebox, sanitize = () => this.config.sanitize, cookieValidator = () => {\n if (cloned.cookie || standaloneValidators.find((x) => x.cookie))\n return getCookieValidator({\n modules,\n validator: cloned.cookie,\n defaultConfig: this.config.cookie,\n normalize,\n config: cloned.cookie?.config ?? {},\n dynamic,\n models,\n validators: standaloneValidators.map((x) => x.cookie),\n sanitize\n });\n };\n return shouldPrecompile ? {\n body: getSchemaValidator(cloned.body, {\n modules,\n dynamic,\n models,\n normalize,\n additionalCoerce: (() => {\n const resolved = resolveSchema(\n cloned.body,\n models,\n modules\n );\n return resolved && Kind in resolved && (hasType(\"File\", resolved) || hasType(\"Files\", resolved)) ? coerceFormData() : coercePrimitiveRoot();\n })(),\n validators: standaloneValidators.map((x) => x.body),\n sanitize\n }),\n headers: getSchemaValidator(cloned.headers, {\n modules,\n dynamic,\n models,\n additionalProperties: !0,\n coerce: !0,\n additionalCoerce: stringToStructureCoercions(),\n validators: standaloneValidators.map(\n (x) => x.headers\n ),\n sanitize\n }),\n params: getSchemaValidator(cloned.params, {\n modules,\n dynamic,\n models,\n coerce: !0,\n additionalCoerce: stringToStructureCoercions(),\n validators: standaloneValidators.map(\n (x) => x.params\n ),\n sanitize\n }),\n query: getSchemaValidator(cloned.query, {\n modules,\n dynamic,\n models,\n normalize,\n coerce: !0,\n additionalCoerce: queryCoercions(),\n validators: standaloneValidators.map(\n (x) => x.query\n ),\n sanitize\n }),\n cookie: cookieValidator(),\n response: getResponseSchemaValidator(cloned.response, {\n modules,\n dynamic,\n models,\n normalize,\n validators: standaloneValidators.map(\n (x) => x.response\n ),\n sanitize\n })\n } : {\n createBody() {\n return this.body ? this.body : this.body = getSchemaValidator(\n cloned.body,\n {\n modules,\n dynamic,\n models,\n normalize,\n additionalCoerce: (() => {\n const resolved = resolveSchema(\n cloned.body,\n models,\n modules\n );\n return resolved && Kind in resolved && (hasType(\"File\", resolved) || hasType(\"Files\", resolved)) ? coerceFormData() : coercePrimitiveRoot();\n })(),\n validators: standaloneValidators.map(\n (x) => x.body\n ),\n sanitize\n }\n );\n },\n createHeaders() {\n return this.headers ? this.headers : this.headers = getSchemaValidator(\n cloned.headers,\n {\n modules,\n dynamic,\n models,\n normalize,\n additionalProperties: !normalize,\n coerce: !0,\n additionalCoerce: stringToStructureCoercions(),\n validators: standaloneValidators.map(\n (x) => x.headers\n ),\n sanitize\n }\n );\n },\n createParams() {\n return this.params ? this.params : this.params = getSchemaValidator(\n cloned.params,\n {\n modules,\n dynamic,\n models,\n normalize,\n coerce: !0,\n additionalCoerce: stringToStructureCoercions(),\n validators: standaloneValidators.map(\n (x) => x.params\n ),\n sanitize\n }\n );\n },\n createQuery() {\n return this.query ? this.query : this.query = getSchemaValidator(\n cloned.query,\n {\n modules,\n dynamic,\n models,\n normalize,\n coerce: !0,\n additionalCoerce: queryCoercions(),\n validators: standaloneValidators.map(\n (x) => x.query\n ),\n sanitize\n }\n );\n },\n createCookie() {\n return this.cookie ? this.cookie : this.cookie = cookieValidator();\n },\n createResponse() {\n return this.response ? this.response : this.response = getResponseSchemaValidator(\n cloned.response,\n {\n modules,\n dynamic,\n models,\n normalize,\n validators: standaloneValidators.map(\n (x) => x.response\n ),\n sanitize\n }\n );\n }\n };\n };\n (instanceValidator.body || instanceValidator.cookie || instanceValidator.headers || instanceValidator.params || instanceValidator.query || instanceValidator.response) && (localHook = mergeHook(localHook, instanceValidator)), localHook.tags && (localHook.detail ? localHook.detail.tags = localHook.tags : localHook.detail = {\n tags: localHook.tags\n }), isNotEmpty(this.config.detail) && (localHook.detail = mergeDeep(\n Object.assign({}, this.config.detail),\n localHook.detail\n ));\n const hooks = isNotEmpty(this.event) ? mergeHook(this.event, localHookToLifeCycleStore(localHook)) : { ...lifeCycleToArray(localHookToLifeCycleStore(localHook)) };\n if (standaloneValidators.length && Object.assign(hooks, {\n standaloneValidator: standaloneValidators\n }), this.config.aot === !1) {\n const validator = createValidator();\n this.router.dynamic.add(method, path, {\n validator,\n hooks,\n content: localHook?.type,\n handle,\n route: path\n });\n const encoded = encodePath(path, { dynamic: !0 });\n if (path !== encoded && this.router.dynamic.add(method, encoded, {\n validator,\n hooks,\n content: localHook?.type,\n handle,\n route: path\n }), !this.config.strictPath) {\n const loosePath = getLoosePath(path);\n this.router.dynamic.add(method, loosePath, {\n validator,\n hooks,\n content: localHook?.type,\n handle,\n route: path\n });\n const encoded2 = encodePath(loosePath);\n loosePath !== encoded2 && this.router.dynamic.add(method, loosePath, {\n validator,\n hooks,\n content: localHook?.type,\n handle,\n route: path\n });\n }\n this.router.history.push({\n method,\n path,\n composed: null,\n handler: handle,\n compile: void 0,\n hooks\n });\n return;\n }\n const adapter = this[\"~adapter\"].handler, nativeStaticHandler = typeof handle != \"function\" ? () => {\n const context = {\n redirect,\n request: this[\"~adapter\"].isWebStandard ? new Request(`http://ely.sia${path}`, {\n method\n }) : void 0,\n server: null,\n set: {\n headers: Object.assign({}, this.setHeaders)\n },\n status,\n store: this.store\n };\n try {\n this.event.request?.map((x) => {\n if (typeof x.fn == \"function\")\n return x.fn(context);\n if (typeof x == \"function\") return x(context);\n });\n } catch (error) {\n let res;\n context.error = error, this.event.error?.some((x) => {\n if (typeof x.fn == \"function\")\n return res = x.fn(context);\n if (typeof x == \"function\")\n return res = x(context);\n }), res !== void 0 && (handle = res);\n }\n const fn = adapter.createNativeStaticHandler?.(\n handle,\n hooks,\n context.set\n );\n return fn instanceof Promise ? fn.then((fn2) => {\n if (fn2) return fn2;\n }) : fn?.();\n } : void 0, useNativeStaticResponse = this.config.nativeStaticResponse === !0, addResponsePath = (path2) => {\n !useNativeStaticResponse || !nativeStaticHandler || (supportPerMethodInlineHandler ? this.router.response[path2] ? this.router.response[path2][method] = nativeStaticHandler() : this.router.response[path2] = {\n [method]: nativeStaticHandler()\n } : this.router.response[path2] = nativeStaticHandler());\n };\n addResponsePath(path);\n let _compiled;\n const compile = () => {\n if (_compiled) return _compiled;\n const compiled = composeHandler({\n app: this,\n path,\n method,\n hooks,\n validator: createValidator(),\n handler: typeof handle != \"function\" && typeof adapter.createStaticHandler != \"function\" ? () => handle : handle,\n allowMeta,\n inference: this.inference\n });\n return this.router.history[index] && (_compiled = this.router.history[index].composed = compiled), compiled;\n };\n let oldIndex;\n if (`${method}_${path}` in this.routeTree)\n for (let i = 0; i < this.router.history.length; i++) {\n const route2 = this.router.history[i];\n if (route2.path === path && route2.method === method) {\n oldIndex = i;\n break;\n }\n }\n else this.routeTree[`${method}_${path}`] = this.router.history.length;\n const index = oldIndex ?? this.router.history.length, route = this.router.history, mainHandler = shouldPrecompile ? compile() : (ctx) => _compiled ? _compiled(ctx) : (route[index].composed = compile())(ctx);\n oldIndex !== void 0 ? this.router.history[oldIndex] = Object.assign(\n {\n method,\n path,\n composed: mainHandler,\n compile,\n handler: handle,\n hooks\n },\n standaloneValidators.length ? {\n standaloneValidators\n } : void 0,\n localHook.webSocket ? { websocket: localHook.websocket } : void 0\n ) : this.router.history.push(\n Object.assign(\n {\n method,\n path,\n composed: mainHandler,\n compile,\n handler: handle,\n hooks\n },\n localHook.webSocket ? { websocket: localHook.websocket } : void 0\n )\n );\n const handler = {\n handler: shouldPrecompile ? route[index].composed : void 0,\n compile() {\n return this.handler = compile();\n }\n }, staticRouter = this.router.static, isStaticPath = path.indexOf(\":\") === -1 && path.indexOf(\"*\") === -1;\n if (method === \"WS\") {\n if (isStaticPath) {\n path in staticRouter ? staticRouter[path][method] = index : staticRouter[path] = {\n [method]: index\n };\n return;\n }\n this.router.http.add(\"WS\", path, handler), this.config.strictPath || this.router.http.add(\"WS\", getLoosePath(path), handler);\n const encoded = encodePath(path, { dynamic: !0 });\n path !== encoded && this.router.http.add(\"WS\", encoded, handler);\n return;\n }\n if (isStaticPath)\n path in staticRouter ? staticRouter[path][method] = index : staticRouter[path] = {\n [method]: index\n }, this.config.strictPath || addResponsePath(getLoosePath(path));\n else {\n if (this.router.http.add(method, path, handler), !this.config.strictPath) {\n const loosePath = getLoosePath(path);\n addResponsePath(loosePath), this.router.http.add(method, loosePath, handler);\n }\n const encoded = encodePath(path, { dynamic: !0 });\n path !== encoded && (this.router.http.add(method, encoded, handler), addResponsePath(encoded));\n }\n }\n headers(header) {\n return header ? (this.setHeaders || (this.setHeaders = {}), this.setHeaders = mergeDeep(this.setHeaders, header), this) : this;\n }\n /**\n * ### start | Life cycle event\n * Called after server is ready for serving\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .onStart(({ server }) => {\n * console.log(\"Running at ${server?.url}:${server?.port}\")\n * })\n * .listen(3000)\n * ```\n */\n onStart(handler) {\n return this.on(\"start\", handler), this;\n }\n onRequest(handler) {\n return this.on(\"request\", handler), this;\n }\n onParse(options, handler) {\n return handler ? this.on(\n options,\n \"parse\",\n handler\n ) : typeof options == \"string\" ? this.on(\"parse\", this[\"~parser\"][options]) : this.on(\"parse\", options);\n }\n /**\n * ### parse | Life cycle event\n * Callback function to handle body parsing\n *\n * If truthy value is returned, will be assigned to `context.body`\n * Otherwise will skip the callback and look for the next one.\n *\n * Equivalent to Express's body parser\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .onParse((request, contentType) => {\n * if(contentType === \"application/json\")\n * return request.json()\n * })\n * ```\n */\n parser(name, parser) {\n return this[\"~parser\"][name] = parser, this;\n }\n onTransform(options, handler) {\n return handler ? this.on(\n options,\n \"transform\",\n handler\n ) : this.on(\"transform\", options);\n }\n resolve(optionsOrResolve, resolve) {\n resolve || (resolve = optionsOrResolve, optionsOrResolve = { as: \"local\" });\n const hook = {\n subType: \"resolve\",\n fn: resolve\n };\n return this.onBeforeHandle(optionsOrResolve, hook);\n }\n mapResolve(optionsOrResolve, mapper) {\n mapper || (mapper = optionsOrResolve, optionsOrResolve = { as: \"local\" });\n const hook = {\n subType: \"mapResolve\",\n fn: mapper\n };\n return this.onBeforeHandle(optionsOrResolve, hook);\n }\n onBeforeHandle(options, handler) {\n return handler ? this.on(\n options,\n \"beforeHandle\",\n handler\n ) : this.on(\"beforeHandle\", options);\n }\n onAfterHandle(options, handler) {\n return handler ? this.on(\n options,\n \"afterHandle\",\n handler\n ) : this.on(\"afterHandle\", options);\n }\n mapResponse(options, handler) {\n return handler ? this.on(\n options,\n \"mapResponse\",\n handler\n ) : this.on(\"mapResponse\", options);\n }\n onAfterResponse(options, handler) {\n return handler ? this.on(\n options,\n \"afterResponse\",\n handler\n ) : this.on(\"afterResponse\", options);\n }\n /**\n * ### After Handle | Life cycle event\n * Intercept request **after** main handler is called.\n *\n * If truthy value is returned, will be assigned as `Response`\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .onAfterHandle((context, response) => {\n * if(typeof response === \"object\")\n * return JSON.stringify(response)\n * })\n * ```\n */\n trace(options, handler) {\n handler || (handler = options, options = { as: \"local\" }), Array.isArray(handler) || (handler = [handler]);\n for (const fn of handler)\n this.on(\n options,\n \"trace\",\n createTracer(fn)\n );\n return this;\n }\n error(name, error) {\n switch (typeof name) {\n case \"string\":\n return error.prototype[ERROR_CODE] = name, this.definitions.error[name] = error, this;\n case \"function\":\n return this.definitions.error = name(this.definitions.error), this;\n }\n for (const [code, error2] of Object.entries(name))\n error2.prototype[ERROR_CODE] = code, this.definitions.error[code] = error2;\n return this;\n }\n /**\n * ### Error | Life cycle event\n * Called when error is thrown during processing request\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .onError(({ code }) => {\n * if(code === \"NOT_FOUND\")\n * return \"Path not found :(\"\n * })\n * ```\n */\n onError(options, handler) {\n return handler ? this.on(\n options,\n \"error\",\n handler\n ) : this.on(\"error\", options);\n }\n /**\n * ### stop | Life cycle event\n * Called after server stop serving request\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .onStop((app) => {\n * cleanup()\n * })\n * ```\n */\n onStop(handler) {\n return this.on(\"stop\", handler), this;\n }\n on(optionsOrType, typeOrHandlers, handlers) {\n let type;\n switch (typeof optionsOrType) {\n case \"string\":\n type = optionsOrType, handlers = typeOrHandlers;\n break;\n case \"object\":\n type = typeOrHandlers, !Array.isArray(typeOrHandlers) && typeof typeOrHandlers == \"object\" && (handlers = typeOrHandlers);\n break;\n }\n Array.isArray(handlers) ? handlers = fnToContainer(handlers) : typeof handlers == \"function\" ? handlers = [\n {\n fn: handlers\n }\n ] : handlers = [handlers];\n const handles = handlers;\n for (const handle of handles)\n handle.scope = typeof optionsOrType == \"string\" ? \"local\" : optionsOrType?.as ?? \"local\", (type === \"resolve\" || type === \"derive\") && (handle.subType = type);\n type !== \"trace\" && (this.inference = sucrose(\n {\n [type]: handles.map((x) => x.fn)\n },\n this.inference,\n this.config.sucrose\n ));\n for (const handle of handles) {\n const fn = asHookType(handle, \"global\", { skipIfHasType: !0 });\n switch ((this.config.name || this.config.seed) && (fn.checksum = checksum(\n this.config.name + JSON.stringify(this.config.seed)\n )), type) {\n case \"start\":\n this.event.start ??= [], this.event.start.push(fn);\n break;\n case \"request\":\n this.event.request ??= [], this.event.request.push(fn);\n break;\n case \"parse\":\n this.event.parse ??= [], this.event.parse.push(fn);\n break;\n case \"transform\":\n this.event.transform ??= [], this.event.transform.push(fn);\n break;\n // @ts-expect-error\n case \"derive\":\n this.event.transform ??= [], this.event.transform.push(\n fnToContainer(fn, \"derive\")\n );\n break;\n case \"beforeHandle\":\n this.event.beforeHandle ??= [], this.event.beforeHandle.push(fn);\n break;\n // @ts-expect-error\n // eslint-disable-next-line sonarjs/no-duplicated-branches\n case \"resolve\":\n this.event.beforeHandle ??= [], this.event.beforeHandle.push(\n fnToContainer(fn, \"resolve\")\n );\n break;\n case \"afterHandle\":\n this.event.afterHandle ??= [], this.event.afterHandle.push(fn);\n break;\n case \"mapResponse\":\n this.event.mapResponse ??= [], this.event.mapResponse.push(fn);\n break;\n case \"afterResponse\":\n this.event.afterResponse ??= [], this.event.afterResponse.push(fn);\n break;\n case \"trace\":\n this.event.trace ??= [], this.event.trace.push(fn);\n break;\n case \"error\":\n this.event.error ??= [], this.event.error.push(fn);\n break;\n case \"stop\":\n this.event.stop ??= [], this.event.stop.push(fn);\n break;\n }\n }\n return this;\n }\n as(type) {\n return promoteEvent(this.event.parse, type), promoteEvent(this.event.transform, type), promoteEvent(this.event.beforeHandle, type), promoteEvent(this.event.afterHandle, type), promoteEvent(this.event.mapResponse, type), promoteEvent(this.event.afterResponse, type), promoteEvent(this.event.trace, type), promoteEvent(this.event.error, type), type === \"scoped\" ? (this.validator.scoped = mergeSchemaValidator(\n this.validator.scoped,\n this.validator.local\n ), this.validator.local = null, this.standaloneValidator.local !== null && (this.standaloneValidator.scoped ||= [], this.standaloneValidator.scoped.push(\n ...this.standaloneValidator.local\n ), this.standaloneValidator.local = null)) : type === \"global\" && (this.validator.global = mergeSchemaValidator(\n this.validator.global,\n mergeSchemaValidator(\n this.validator.scoped,\n this.validator.local\n )\n ), this.validator.scoped = null, this.validator.local = null, this.standaloneValidator.local !== null && (this.standaloneValidator.scoped ||= [], this.standaloneValidator.scoped.push(\n ...this.standaloneValidator.local\n ), this.standaloneValidator.local = null), this.standaloneValidator.scoped !== null && (this.standaloneValidator.global ||= [], this.standaloneValidator.global.push(\n ...this.standaloneValidator.scoped\n ), this.standaloneValidator.scoped = null)), this;\n }\n /**\n * ### group\n * Encapsulate and group path with prefix\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .group('/v1', app => app\n * .get('/', () => 'Hi')\n * .get('/name', () => 'Elysia')\n * })\n * ```\n */\n group(prefix, schemaOrRun, run) {\n const instance = new _Elysia({\n ...this.config,\n prefix: \"\"\n });\n instance.singleton = { ...this.singleton }, instance.definitions = { ...this.definitions }, instance.getServer = () => this.getServer(), instance.inference = cloneInference(this.inference), instance.extender = { ...this.extender }, instance[\"~parser\"] = this[\"~parser\"], instance.standaloneValidator = {\n local: [...this.standaloneValidator.local ?? []],\n scoped: [...this.standaloneValidator.scoped ?? []],\n global: [...this.standaloneValidator.global ?? []]\n };\n const isSchema = typeof schemaOrRun == \"object\", sandbox = (isSchema ? run : schemaOrRun)(instance);\n return this.singleton = mergeDeep(this.singleton, instance.singleton), this.definitions = mergeDeep(this.definitions, instance.definitions), sandbox.event.request?.length && (this.event.request = [\n ...this.event.request || [],\n ...sandbox.event.request || []\n ]), sandbox.event.mapResponse?.length && (this.event.mapResponse = [\n ...this.event.mapResponse || [],\n ...sandbox.event.mapResponse || []\n ]), this.model(sandbox.definitions.type), Object.values(instance.router.history).forEach(\n ({ method, path, handler, hooks }) => {\n if (path = (isSchema ? \"\" : this.config.prefix ?? \"\") + prefix + path, isSchema) {\n const {\n body,\n headers,\n query,\n params,\n cookie,\n response,\n ...hook\n } = schemaOrRun, localHook = hooks;\n this.applyMacro(hook);\n const hasStandaloneSchema = body || headers || query || params || cookie || response;\n this.add(\n method,\n path,\n handler,\n mergeHook(hook, {\n ...localHook || {},\n error: localHook.error ? Array.isArray(localHook.error) ? [\n ...localHook.error ?? [],\n ...sandbox.event.error ?? []\n ] : [\n localHook.error,\n ...sandbox.event.error ?? []\n ] : sandbox.event.error,\n // Merge macro's standaloneValidator with local and group schema\n standaloneValidator: hook.standaloneValidator || localHook.standaloneValidator || hasStandaloneSchema ? [\n ...hook.standaloneValidator ?? [],\n ...localHook.standaloneValidator ?? [],\n ...hasStandaloneSchema ? [\n {\n body,\n headers,\n query,\n params,\n cookie,\n response\n }\n ] : []\n ] : void 0\n }),\n void 0\n );\n } else\n this.add(\n method,\n path,\n handler,\n mergeHook(hooks, {\n error: sandbox.event.error\n }),\n {\n skipPrefix: !0\n }\n );\n }\n ), this;\n }\n /**\n * ### guard\n * Encapsulate and pass hook into all child handler\n *\n * ---\n * @example\n * ```typescript\n * import { t } from 'elysia'\n *\n * new Elysia()\n * .guard({\n * body: t.Object({\n * username: t.String(),\n * password: t.String()\n * })\n * }, app => app\n * .get(\"/\", () => 'Hi')\n * .get(\"/name\", () => 'Elysia')\n * })\n * ```\n */\n guard(hook, run) {\n if (!run) {\n if (typeof hook == \"object\") {\n this.applyMacro(hook), hook.detail && (this.config.detail ? this.config.detail = mergeDeep(\n Object.assign({}, this.config.detail),\n hook.detail\n ) : this.config.detail = hook.detail), hook.tags && (this.config.detail ? this.config.detail.tags = hook.tags : this.config.detail = {\n tags: hook.tags\n });\n const type = hook.as ?? \"local\";\n if (hook.schema === \"standalone\") {\n this.standaloneValidator[type] || (this.standaloneValidator[type] = []);\n const response = hook?.response ? typeof hook.response == \"string\" || Kind in hook.response || \"~standard\" in hook.response ? {\n 200: hook.response\n } : hook?.response : void 0;\n this.standaloneValidator[type].push({\n body: hook.body,\n headers: hook.headers,\n params: hook.params,\n query: hook.query,\n response,\n cookie: hook.cookie\n });\n } else\n this.validator[type] = {\n body: hook.body ?? this.validator[type]?.body,\n headers: hook.headers ?? this.validator[type]?.headers,\n params: hook.params ?? this.validator[type]?.params,\n query: hook.query ?? this.validator[type]?.query,\n response: hook.response ?? this.validator[type]?.response,\n cookie: hook.cookie ?? this.validator[type]?.cookie\n };\n return hook.parse && this.on({ as: type }, \"parse\", hook.parse), hook.transform && this.on({ as: type }, \"transform\", hook.transform), hook.derive && this.on({ as: type }, \"derive\", hook.derive), hook.beforeHandle && this.on({ as: type }, \"beforeHandle\", hook.beforeHandle), hook.resolve && this.on({ as: type }, \"resolve\", hook.resolve), hook.afterHandle && this.on({ as: type }, \"afterHandle\", hook.afterHandle), hook.mapResponse && this.on({ as: type }, \"mapResponse\", hook.mapResponse), hook.afterResponse && this.on({ as: type }, \"afterResponse\", hook.afterResponse), hook.error && this.on({ as: type }, \"error\", hook.error), this;\n }\n return this.guard({}, hook);\n }\n const instance = new _Elysia({\n ...this.config,\n prefix: \"\"\n });\n instance.singleton = { ...this.singleton }, instance.definitions = { ...this.definitions }, instance.inference = cloneInference(this.inference), instance.extender = { ...this.extender }, instance.getServer = () => this.getServer();\n const sandbox = run(instance);\n return this.singleton = mergeDeep(this.singleton, instance.singleton), this.definitions = mergeDeep(this.definitions, instance.definitions), sandbox.getServer = () => this.server, sandbox.event.request?.length && (this.event.request = [\n ...this.event.request || [],\n ...sandbox.event.request || []\n ]), sandbox.event.mapResponse?.length && (this.event.mapResponse = [\n ...this.event.mapResponse || [],\n ...sandbox.event.mapResponse || []\n ]), this.model(sandbox.definitions.type), Object.values(instance.router.history).forEach(\n ({ method, path, handler, hooks: localHook }) => {\n const {\n body,\n headers,\n query,\n params,\n cookie,\n response,\n ...guardHook\n } = hook, hasStandaloneSchema = body || headers || query || params || cookie || response;\n this.add(\n method,\n path,\n handler,\n mergeHook(guardHook, {\n ...localHook || {},\n error: localHook.error ? Array.isArray(localHook.error) ? [\n ...localHook.error ?? [],\n ...sandbox.event.error ?? []\n ] : [\n localHook.error,\n ...sandbox.event.error ?? []\n ] : sandbox.event.error,\n standaloneValidator: hasStandaloneSchema ? [\n ...localHook.standaloneValidator ?? [],\n {\n body,\n headers,\n query,\n params,\n cookie,\n response\n }\n ] : localHook.standaloneValidator\n })\n );\n }\n ), this;\n }\n /**\n * ### use\n * Merge separate logic of Elysia with current\n *\n * ---\n * @example\n * ```typescript\n * const plugin = (app: Elysia) => app\n * .get('/plugin', () => 'hi')\n *\n * new Elysia()\n * .use(plugin)\n * ```\n */\n use(plugin) {\n if (!plugin) return this;\n if (Array.isArray(plugin)) {\n let app = this;\n for (const p of plugin) app = app.use(p);\n return app;\n }\n return plugin instanceof Promise ? (this.promisedModules.add(\n plugin.then((plugin2) => {\n if (typeof plugin2 == \"function\") return plugin2(this);\n if (plugin2 instanceof _Elysia)\n return this._use(plugin2).compile();\n if (plugin2.constructor?.name === \"Elysia\")\n return this._use(\n plugin2\n ).compile();\n if (typeof plugin2.default == \"function\")\n return plugin2.default(this);\n if (plugin2.default instanceof _Elysia)\n return this._use(plugin2.default);\n if (plugin2.constructor?.name === \"Elysia\")\n return this._use(plugin2.default);\n if (plugin2.constructor?.name === \"_Elysia\")\n return this._use(plugin2.default);\n try {\n return this._use(plugin2.default);\n } catch (error) {\n throw console.error(\n 'Invalid plugin type. Expected Elysia instance, function, or module with \"default\" as Elysia instance or function that returns Elysia instance.'\n ), error;\n }\n }).then((v) => (v && typeof v.compile == \"function\" && v.compile(), v))\n ), this) : this._use(plugin);\n }\n propagatePromiseModules(plugin) {\n if (plugin.promisedModules.size <= 0) return this;\n for (const promise of plugin.promisedModules.promises)\n this.promisedModules.add(\n promise.then((v) => {\n if (!v) return;\n const t3 = this._use(v);\n return t3 instanceof Promise ? t3.then((v2) => {\n v2 ? v2.compile() : v.compile();\n }) : v.compile();\n })\n );\n return this;\n }\n _use(plugin) {\n if (typeof plugin == \"function\") {\n const instance = plugin(this);\n return instance instanceof Promise ? (this.promisedModules.add(\n instance.then((plugin2) => {\n if (plugin2 instanceof _Elysia) {\n plugin2.getServer = () => this.getServer(), plugin2.getGlobalRoutes = () => this.getGlobalRoutes(), plugin2.getGlobalDefinitions = () => this.getGlobalDefinitions(), plugin2.model(this.definitions.type), plugin2.error(this.definitions.error);\n for (const {\n method,\n path,\n handler,\n hooks\n } of Object.values(plugin2.router.history))\n this.add(\n method,\n path,\n handler,\n hooks,\n void 0\n );\n return plugin2 === this ? void 0 : (this.propagatePromiseModules(plugin2), plugin2);\n }\n return typeof plugin2 == \"function\" ? plugin2(\n this\n ) : typeof plugin2.default == \"function\" ? plugin2.default(\n this\n ) : this._use(plugin2);\n }).then((v) => (v && typeof v.compile == \"function\" && v.compile(), v))\n ), this) : instance;\n }\n this.propagatePromiseModules(plugin);\n const name = plugin.config.name, seed = plugin.config.seed;\n if (plugin.getParent = () => this, plugin.getServer = () => this.getServer(), plugin.getGlobalRoutes = () => this.getGlobalRoutes(), plugin.getGlobalDefinitions = () => this.getGlobalDefinitions(), plugin.standaloneValidator?.scoped && (this.standaloneValidator.local ? this.standaloneValidator.local = this.standaloneValidator.local.concat(\n plugin.standaloneValidator.scoped\n ) : this.standaloneValidator.local = plugin.standaloneValidator.scoped), plugin.standaloneValidator?.global && (this.standaloneValidator.global ? this.standaloneValidator.global = this.standaloneValidator.global.concat(\n plugin.standaloneValidator.global\n ) : this.standaloneValidator.global = plugin.standaloneValidator.global), isNotEmpty(plugin[\"~parser\"]) && (this[\"~parser\"] = {\n ...plugin[\"~parser\"],\n ...this[\"~parser\"]\n }), plugin.setHeaders && this.headers(plugin.setHeaders), name) {\n name in this.dependencies || (this.dependencies[name] = []);\n const current = seed !== void 0 ? checksum(name + JSON.stringify(seed)) : 0;\n this.dependencies[name].some(\n ({ checksum: checksum3 }) => current === checksum3\n ) || (this.extender.macro = {\n ...this.extender.macro,\n ...plugin.extender.macro\n }, this.extender.higherOrderFunctions = this.extender.higherOrderFunctions.concat(\n plugin.extender.higherOrderFunctions\n ));\n } else\n isNotEmpty(plugin.extender.macro) && (this.extender.macro = {\n ...this.extender.macro,\n ...plugin.extender.macro\n }), plugin.extender.higherOrderFunctions.length && (this.extender.higherOrderFunctions = this.extender.higherOrderFunctions.concat(\n plugin.extender.higherOrderFunctions\n ));\n if (plugin.extender.higherOrderFunctions.length) {\n deduplicateChecksum(this.extender.higherOrderFunctions);\n const hofHashes = [];\n for (let i = 0; i < this.extender.higherOrderFunctions.length; i++) {\n const hof = this.extender.higherOrderFunctions[i];\n hof.checksum && (hofHashes.includes(hof.checksum) && (this.extender.higherOrderFunctions.splice(i, 1), i--), hofHashes.push(hof.checksum));\n }\n hofHashes.length = 0;\n }\n this.inference = mergeInference(this.inference, plugin.inference), isNotEmpty(plugin.singleton.decorator) && this.decorate(plugin.singleton.decorator), isNotEmpty(plugin.singleton.store) && this.state(plugin.singleton.store), isNotEmpty(plugin.definitions.type) && this.model(plugin.definitions.type), isNotEmpty(plugin.definitions.error) && this.error(plugin.definitions.error), isNotEmpty(plugin.extender.macro) && (this.extender.macro = {\n ...this.extender.macro,\n ...plugin.extender.macro\n });\n for (const { method, path, handler, hooks } of Object.values(\n plugin.router.history\n ))\n this.add(method, path, handler, hooks);\n if (name) {\n name in this.dependencies || (this.dependencies[name] = []);\n const current = seed !== void 0 ? checksum(name + JSON.stringify(seed)) : 0;\n if (this.dependencies[name].some(\n ({ checksum: checksum3 }) => current === checksum3\n ))\n return this;\n this.dependencies[name].push(\n this.config?.analytic ? {\n name: plugin.config.name,\n seed: plugin.config.seed,\n checksum: current,\n dependencies: plugin.dependencies,\n stack: plugin.telemetry?.stack,\n routes: plugin.router.history,\n decorators: plugin.singleton,\n store: plugin.singleton.store,\n error: plugin.definitions.error,\n derive: plugin.event.transform?.filter((x) => x?.subType === \"derive\").map((x) => ({\n fn: x.toString(),\n stack: new Error().stack ?? \"\"\n })),\n resolve: plugin.event.transform?.filter((x) => x?.subType === \"resolve\").map((x) => ({\n fn: x.toString(),\n stack: new Error().stack ?? \"\"\n }))\n } : {\n name: plugin.config.name,\n seed: plugin.config.seed,\n checksum: current,\n dependencies: plugin.dependencies\n }\n ), isNotEmpty(plugin.event) && (this.event = mergeLifeCycle(\n this.event,\n filterGlobalHook(plugin.event),\n current\n ));\n } else\n isNotEmpty(plugin.event) && (this.event = mergeLifeCycle(\n this.event,\n filterGlobalHook(plugin.event)\n ));\n return plugin.validator.global && (this.validator.global = mergeHook(this.validator.global, {\n ...plugin.validator.global\n })), plugin.validator.scoped && (this.validator.local = mergeHook(this.validator.local, {\n ...plugin.validator.scoped\n })), this;\n }\n macro(macroOrName, macro) {\n if (typeof macroOrName == \"string\" && !macro)\n throw new Error(\"Macro function is required\");\n return typeof macroOrName == \"string\" ? this.extender.macro[macroOrName] = macro : this.extender.macro = {\n ...this.extender.macro,\n ...macroOrName\n }, this;\n }\n applyMacro(localHook, appliable = localHook, {\n iteration = 0,\n applied = {}\n } = {}) {\n if (iteration >= 16) return;\n const macro = this.extender.macro;\n for (let [key, value] of Object.entries(appliable)) {\n if (!(key in macro)) continue;\n const macroHook = typeof macro[key] == \"function\" ? macro[key](value) : macro[key];\n if (!macroHook || typeof macro[key] == \"object\" && value === !1)\n return;\n const seed = checksum(key + JSON.stringify(macroHook.seed ?? value));\n if (!(seed in applied)) {\n applied[seed] = !0;\n for (let [k, value2] of Object.entries(macroHook))\n if (k !== \"seed\") {\n if (k in emptySchema) {\n insertStandaloneValidator(\n localHook,\n k,\n value2\n ), delete localHook[key];\n continue;\n }\n if (k === \"introspect\") {\n value2?.(localHook), delete localHook[key];\n continue;\n }\n if (k === \"detail\") {\n localHook.detail || (localHook.detail = {}), localHook.detail = mergeDeep(localHook.detail, value2, {\n mergeArray: !0\n }), delete localHook[key];\n continue;\n }\n if (k in macro) {\n this.applyMacro(\n localHook,\n { [k]: value2 },\n { applied, iteration: iteration + 1 }\n ), delete localHook[key];\n continue;\n }\n switch ((k === \"derive\" || k === \"resolve\") && typeof value2 == \"function\" && (value2 = {\n fn: value2,\n subType: k\n }), typeof localHook[k]) {\n case \"function\":\n localHook[k] = [localHook[k], value2];\n break;\n case \"object\":\n Array.isArray(localHook[k]) ? localHook[k].push(value2) : localHook[k] = [localHook[k], value2];\n break;\n case \"undefined\":\n localHook[k] = value2;\n break;\n }\n delete localHook[key];\n }\n }\n }\n }\n mount(path, handleOrConfig, config) {\n if (path instanceof _Elysia || typeof path == \"function\" || path.length === 0 || path === \"/\") {\n const run = typeof path == \"function\" ? path : path instanceof _Elysia ? path.compile().fetch : handleOrConfig instanceof _Elysia ? handleOrConfig.compile().fetch : typeof handleOrConfig == \"function\" ? handleOrConfig : (() => {\n throw new Error(\"Invalid handler\");\n })(), handler2 = ({ request, path: path2 }) => run(new Request(replaceUrlPath(request.url, path2), request));\n return this.route(\"ALL\", \"/*\", handler2, {\n parse: \"none\",\n ...config,\n detail: {\n ...config?.detail,\n hide: !0\n },\n config: {\n mount: run\n }\n }), this;\n }\n const handle = handleOrConfig instanceof _Elysia ? handleOrConfig.compile().fetch : typeof handleOrConfig == \"function\" ? handleOrConfig : (() => {\n throw new Error(\"Invalid handler\");\n })(), length = (typeof path == \"string\" && this.config.prefix ? this.config.prefix + path : path).length - (path.endsWith(\"*\") ? 1 : 0), handler = ({ request, path: path2 }) => handle(\n new Request(\n replaceUrlPath(request.url, path2.slice(length) || \"/\"),\n request\n )\n );\n return this.route(\"ALL\", path, handler, {\n parse: \"none\",\n ...config,\n detail: {\n ...config?.detail,\n hide: !0\n },\n config: {\n mount: handle\n }\n }), this.route(\n \"ALL\",\n path + (path.endsWith(\"/\") ? \"*\" : \"/*\"),\n handler,\n {\n parse: \"none\",\n ...config,\n detail: {\n ...config?.detail,\n hide: !0\n },\n config: {\n mount: handle\n }\n }\n ), this;\n }\n /**\n * ### get\n * Register handler for path with method [GET]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .get('/', () => 'hi')\n * .get('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n get(path, handler, hook) {\n return this.add(\"GET\", path, handler, hook), this;\n }\n /**\n * ### post\n * Register handler for path with method [POST]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .post('/', () => 'hi')\n * .post('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n post(path, handler, hook) {\n return this.add(\"POST\", path, handler, hook), this;\n }\n /**\n * ### put\n * Register handler for path with method [PUT]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .put('/', () => 'hi')\n * .put('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n put(path, handler, hook) {\n return this.add(\"PUT\", path, handler, hook), this;\n }\n /**\n * ### patch\n * Register handler for path with method [PATCH]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .patch('/', () => 'hi')\n * .patch('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n patch(path, handler, hook) {\n return this.add(\"PATCH\", path, handler, hook), this;\n }\n /**\n * ### delete\n * Register handler for path with method [DELETE]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .delete('/', () => 'hi')\n * .delete('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n delete(path, handler, hook) {\n return this.add(\"DELETE\", path, handler, hook), this;\n }\n /**\n * ### options\n * Register handler for path with method [POST]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .options('/', () => 'hi')\n * .options('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n options(path, handler, hook) {\n return this.add(\"OPTIONS\", path, handler, hook), this;\n }\n /**\n * ### all\n * Register handler for path with method [ALL]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .all('/', () => 'hi')\n * .all('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n all(path, handler, hook) {\n return this.add(\"ALL\", path, handler, hook), this;\n }\n /**\n * ### head\n * Register handler for path with method [HEAD]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .head('/', () => 'hi')\n * .head('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n head(path, handler, hook) {\n return this.add(\"HEAD\", path, handler, hook), this;\n }\n /**\n * ### connect\n * Register handler for path with method [CONNECT]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .connect('/', () => 'hi')\n * .connect('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n connect(path, handler, hook) {\n return this.add(\"CONNECT\", path, handler, hook), this;\n }\n /**\n * ### route\n * Register handler for path with method [ROUTE]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .route('/', () => 'hi')\n * .route('/with-hook', () => 'hi', {\n * response: t.String()\n * })\n * ```\n */\n route(method, path, handler, hook) {\n return this.add(method.toUpperCase(), path, handler, hook, hook?.config), this;\n }\n /**\n * ### ws\n * Register handler for path with method [ws]\n *\n * ---\n * @example\n * ```typescript\n * import { Elysia, t } from 'elysia'\n *\n * new Elysia()\n * .ws('/', {\n * message(ws, message) {\n * ws.send(message)\n * }\n * })\n * ```\n */\n ws(path, options) {\n return this[\"~adapter\"].ws ? this[\"~adapter\"].ws(this, path, options) : console.warn(\"Current adapter doesn't support WebSocket\"), this;\n }\n /**\n * ### state\n * Assign global mutatable state accessible for all handler\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .state('counter', 0)\n * .get('/', (({ counter }) => ++counter)\n * ```\n */\n state(options, name, value) {\n name === void 0 ? (value = options, options = { as: \"append\" }, name = \"\") : value === void 0 && (typeof options == \"string\" ? (value = name, name = options, options = { as: \"append\" }) : typeof options == \"object\" && (value = name, name = \"\"));\n const { as } = options;\n if (typeof name != \"string\") return this;\n switch (typeof value) {\n case \"object\":\n return !value || !isNotEmpty(value) ? this : name ? (name in this.singleton.store ? this.singleton.store[name] = mergeDeep(\n this.singleton.store[name],\n value,\n {\n override: as === \"override\"\n }\n ) : this.singleton.store[name] = value, this) : value === null ? this : (this.singleton.store = mergeDeep(this.singleton.store, value, {\n override: as === \"override\"\n }), this);\n case \"function\":\n return name ? (as === \"override\" || !(name in this.singleton.store)) && (this.singleton.store[name] = value) : this.singleton.store = value(this.singleton.store), this;\n default:\n return (as === \"override\" || !(name in this.singleton.store)) && (this.singleton.store[name] = value), this;\n }\n }\n /**\n * ### decorate\n * Define custom method to `Context` accessible for all handler\n *\n * ---\n * @example\n * ```typescript\n * new Elysia()\n * .decorate('getDate', () => Date.now())\n * .get('/', (({ getDate }) => getDate())\n * ```\n */\n decorate(options, name, value) {\n name === void 0 ? (value = options, options = { as: \"append\" }, name = \"\") : value === void 0 && (typeof options == \"string\" ? (value = name, name = options, options = { as: \"append\" }) : typeof options == \"object\" && (value = name, name = \"\"));\n const { as } = options;\n if (typeof name != \"string\") return this;\n switch (typeof value) {\n case \"object\":\n return name ? (name in this.singleton.decorator ? this.singleton.decorator[name] = mergeDeep(\n this.singleton.decorator[name],\n value,\n {\n override: as === \"override\"\n }\n ) : this.singleton.decorator[name] = value, this) : value === null ? this : (this.singleton.decorator = mergeDeep(\n this.singleton.decorator,\n value,\n {\n override: as === \"override\"\n }\n ), this);\n case \"function\":\n return name ? (as === \"override\" || !(name in this.singleton.decorator)) && (this.singleton.decorator[name] = value) : this.singleton.decorator = value(this.singleton.decorator), this;\n default:\n return (as === \"override\" || !(name in this.singleton.decorator)) && (this.singleton.decorator[name] = value), this;\n }\n }\n derive(optionsOrTransform, transform) {\n transform || (transform = optionsOrTransform, optionsOrTransform = { as: \"local\" });\n const hook = {\n subType: \"derive\",\n fn: transform\n };\n return this.onTransform(optionsOrTransform, hook);\n }\n model(name, model) {\n const onlyTypebox = (a) => {\n const res = {};\n for (const key in a) \"~standard\" in a[key] || (res[key] = a[key]);\n return res;\n };\n switch (typeof name) {\n case \"object\":\n const parsedTypebox = {}, kvs = Object.entries(name);\n if (!kvs.length) return this;\n for (const [key, value] of kvs)\n key in this.definitions.type || (\"~standard\" in value ? this.definitions.type[key] = value : (parsedTypebox[key] = this.definitions.type[key] = value, parsedTypebox[key].$id ??= `#/components/schemas/${key}`));\n return this.definitions.typebox = t.Module({\n ...this.definitions.typebox.$defs,\n ...parsedTypebox\n }), this;\n case \"function\":\n const result = name(this.definitions.type);\n return this.definitions.type = result, this.definitions.typebox = t.Module(onlyTypebox(result)), this;\n case \"string\":\n if (!model) break;\n if (this.definitions.type[name] = model, \"~standard\" in model) return this;\n const newModel = {\n ...model,\n id: model.$id ?? `#/components/schemas/${name}`\n };\n return this.definitions.typebox = t.Module({\n ...this.definitions.typebox.$defs,\n ...newModel\n }), this;\n }\n return model ? (this.definitions.type[name] = model, \"~standard\" in model ? this : (this.definitions.typebox = t.Module({\n ...this.definitions.typebox.$defs,\n [name]: model\n }), this)) : this;\n }\n Ref(key) {\n return t.Ref(key);\n }\n mapDerive(optionsOrDerive, mapper) {\n mapper || (mapper = optionsOrDerive, optionsOrDerive = { as: \"local\" });\n const hook = {\n subType: \"mapDerive\",\n fn: mapper\n };\n return this.onTransform(optionsOrDerive, hook);\n }\n affix(base, type, word) {\n if (word === \"\") return this;\n const delimieter = [\"_\", \"-\", \" \"], capitalize = (word2) => word2[0].toUpperCase() + word2.slice(1), joinKey = base === \"prefix\" ? (prefix, word2) => delimieter.includes(prefix.at(-1) ?? \"\") ? prefix + word2 : prefix + capitalize(word2) : delimieter.includes(word.at(-1) ?? \"\") ? (suffix, word2) => word2 + suffix : (suffix, word2) => word2 + capitalize(suffix), remap = (type2) => {\n const store = {};\n switch (type2) {\n case \"decorator\":\n for (const key in this.singleton.decorator)\n store[joinKey(word, key)] = this.singleton.decorator[key];\n this.singleton.decorator = store;\n break;\n case \"state\":\n for (const key in this.singleton.store)\n store[joinKey(word, key)] = this.singleton.store[key];\n this.singleton.store = store;\n break;\n case \"model\":\n for (const key in this.definitions.type)\n store[joinKey(word, key)] = this.definitions.type[key];\n this.definitions.type = store;\n break;\n case \"error\":\n for (const key in this.definitions.error)\n store[joinKey(word, key)] = this.definitions.error[key];\n this.definitions.error = store;\n break;\n }\n }, types = Array.isArray(type) ? type : [type];\n for (const type2 of types.some((x) => x === \"all\") ? [\"decorator\", \"state\", \"model\", \"error\"] : types)\n remap(type2);\n return this;\n }\n prefix(type, word) {\n return this.affix(\"prefix\", type, word);\n }\n suffix(type, word) {\n return this.affix(\"suffix\", type, word);\n }\n compile() {\n return this[\"~adapter\"].beforeCompile?.(this), this[\"~adapter\"].isWebStandard ? (this._handle = this.config.aot ? composeGeneralHandler(this) : createDynamicHandler(this), Object.defineProperty(this, \"fetch\", {\n value: this._handle,\n configurable: !0,\n writable: !0\n }), typeof this.server?.reload == \"function\" && this.server.reload({\n ...this.server || {},\n fetch: this.fetch\n }), this) : (typeof this.server?.reload == \"function\" && this.server.reload(this.server || {}), this._handle = composeGeneralHandler(this), this);\n }\n /**\n * Use handle can be either sync or async to save performance.\n *\n * Beside benchmark purpose, please use 'handle' instead.\n */\n get fetch() {\n const fetch = this.config.aot ? composeGeneralHandler(this) : createDynamicHandler(this);\n return Object.defineProperty(this, \"fetch\", {\n value: fetch,\n configurable: !0,\n writable: !0\n }), fetch;\n }\n /**\n * Wait until all lazy loaded modules all load is fully\n */\n get modules() {\n return this.promisedModules;\n }\n};\nlet Elysia = _Elysia;\nimport { t as t2 } from \"./type-system/index.mjs\";\nimport { validationDetail, fileType } from \"./type-system/utils.mjs\";\nimport { serializeCookie, Cookie } from \"./cookies.mjs\";\nimport {\n ELYSIA_TRACE\n} from \"./trace.mjs\";\nimport { getSchemaValidator as getSchemaValidator2, getResponseSchemaValidator as getResponseSchemaValidator2 } from \"./schema.mjs\";\nimport { replaceSchemaTypeFromManyOptions } from \"./replace-schema.mjs\";\nimport {\n mergeHook as mergeHook2,\n mergeObjectArray,\n redirect as redirect2,\n StatusMap,\n InvertedStatusMap,\n form,\n replaceUrlPath as replaceUrlPath2,\n checksum as checksum2,\n cloneInference as cloneInference2,\n deduplicateChecksum as deduplicateChecksum2,\n ELYSIA_FORM_DATA,\n ELYSIA_REQUEST_ID,\n sse\n} from \"./utils.mjs\";\nimport {\n status as status2,\n mapValueError,\n ParseError,\n NotFoundError,\n ValidationError as ValidationError2,\n InvalidFileType,\n InternalServerError,\n InvalidCookieSignature,\n ERROR_CODE as ERROR_CODE2,\n ElysiaStatus,\n ElysiaCustomStatusResponse\n} from \"./error.mjs\";\nimport { env as env2 } from \"./universal/env.mjs\";\nimport { file, ElysiaFile } from \"./universal/file.mjs\";\nimport { TypeSystemPolicy } from \"@sinclair/typebox/system\";\nexport {\n Cookie,\n ELYSIA_FORM_DATA,\n ELYSIA_REQUEST_ID,\n ELYSIA_TRACE,\n ERROR_CODE2 as ERROR_CODE,\n Elysia,\n ElysiaCustomStatusResponse,\n ElysiaFile,\n ElysiaStatus,\n InternalServerError,\n InvalidCookieSignature,\n InvalidFileType,\n InvertedStatusMap,\n NotFoundError,\n ParseError,\n StatusMap,\n TypeSystemPolicy,\n ValidationError2 as ValidationError,\n checksum2 as checksum,\n cloneInference2 as cloneInference,\n deduplicateChecksum2 as deduplicateChecksum,\n Elysia as default,\n env2 as env,\n file,\n fileType,\n form,\n getResponseSchemaValidator2 as getResponseSchemaValidator,\n getSchemaValidator2 as getSchemaValidator,\n mapValueError,\n mergeHook2 as mergeHook,\n mergeObjectArray,\n redirect2 as redirect,\n replaceSchemaTypeFromManyOptions as replaceSchemaType,\n replaceUrlPath2 as replaceUrlPath,\n serializeCookie,\n sse,\n status2 as status,\n t2 as t,\n validationDetail\n};\n","import { Kind } from '../type/symbols/index.mjs';\nimport { ValueErrorType } from './errors.mjs';\n/** Creates an error message using en-US as the default locale */\nexport function DefaultErrorFunction(error) {\n switch (error.errorType) {\n case ValueErrorType.ArrayContains:\n return 'Expected array to contain at least one matching value';\n case ValueErrorType.ArrayMaxContains:\n return `Expected array to contain no more than ${error.schema.maxContains} matching values`;\n case ValueErrorType.ArrayMinContains:\n return `Expected array to contain at least ${error.schema.minContains} matching values`;\n case ValueErrorType.ArrayMaxItems:\n return `Expected array length to be less or equal to ${error.schema.maxItems}`;\n case ValueErrorType.ArrayMinItems:\n return `Expected array length to be greater or equal to ${error.schema.minItems}`;\n case ValueErrorType.ArrayUniqueItems:\n return 'Expected array elements to be unique';\n case ValueErrorType.Array:\n return 'Expected array';\n case ValueErrorType.AsyncIterator:\n return 'Expected AsyncIterator';\n case ValueErrorType.BigIntExclusiveMaximum:\n return `Expected bigint to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.BigIntExclusiveMinimum:\n return `Expected bigint to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.BigIntMaximum:\n return `Expected bigint to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.BigIntMinimum:\n return `Expected bigint to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.BigIntMultipleOf:\n return `Expected bigint to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.BigInt:\n return 'Expected bigint';\n case ValueErrorType.Boolean:\n return 'Expected boolean';\n case ValueErrorType.DateExclusiveMinimumTimestamp:\n return `Expected Date timestamp to be greater than ${error.schema.exclusiveMinimumTimestamp}`;\n case ValueErrorType.DateExclusiveMaximumTimestamp:\n return `Expected Date timestamp to be less than ${error.schema.exclusiveMaximumTimestamp}`;\n case ValueErrorType.DateMinimumTimestamp:\n return `Expected Date timestamp to be greater or equal to ${error.schema.minimumTimestamp}`;\n case ValueErrorType.DateMaximumTimestamp:\n return `Expected Date timestamp to be less or equal to ${error.schema.maximumTimestamp}`;\n case ValueErrorType.DateMultipleOfTimestamp:\n return `Expected Date timestamp to be a multiple of ${error.schema.multipleOfTimestamp}`;\n case ValueErrorType.Date:\n return 'Expected Date';\n case ValueErrorType.Function:\n return 'Expected function';\n case ValueErrorType.IntegerExclusiveMaximum:\n return `Expected integer to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.IntegerExclusiveMinimum:\n return `Expected integer to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.IntegerMaximum:\n return `Expected integer to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.IntegerMinimum:\n return `Expected integer to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.IntegerMultipleOf:\n return `Expected integer to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.Integer:\n return 'Expected integer';\n case ValueErrorType.IntersectUnevaluatedProperties:\n return 'Unexpected property';\n case ValueErrorType.Intersect:\n return 'Expected all values to match';\n case ValueErrorType.Iterator:\n return 'Expected Iterator';\n case ValueErrorType.Literal:\n return `Expected ${typeof error.schema.const === 'string' ? `'${error.schema.const}'` : error.schema.const}`;\n case ValueErrorType.Never:\n return 'Never';\n case ValueErrorType.Not:\n return 'Value should not match';\n case ValueErrorType.Null:\n return 'Expected null';\n case ValueErrorType.NumberExclusiveMaximum:\n return `Expected number to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.NumberExclusiveMinimum:\n return `Expected number to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.NumberMaximum:\n return `Expected number to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.NumberMinimum:\n return `Expected number to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.NumberMultipleOf:\n return `Expected number to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.Number:\n return 'Expected number';\n case ValueErrorType.Object:\n return 'Expected object';\n case ValueErrorType.ObjectAdditionalProperties:\n return 'Unexpected property';\n case ValueErrorType.ObjectMaxProperties:\n return `Expected object to have no more than ${error.schema.maxProperties} properties`;\n case ValueErrorType.ObjectMinProperties:\n return `Expected object to have at least ${error.schema.minProperties} properties`;\n case ValueErrorType.ObjectRequiredProperty:\n return 'Expected required property';\n case ValueErrorType.Promise:\n return 'Expected Promise';\n case ValueErrorType.RegExp:\n return 'Expected string to match regular expression';\n case ValueErrorType.StringFormatUnknown:\n return `Unknown format '${error.schema.format}'`;\n case ValueErrorType.StringFormat:\n return `Expected string to match '${error.schema.format}' format`;\n case ValueErrorType.StringMaxLength:\n return `Expected string length less or equal to ${error.schema.maxLength}`;\n case ValueErrorType.StringMinLength:\n return `Expected string length greater or equal to ${error.schema.minLength}`;\n case ValueErrorType.StringPattern:\n return `Expected string to match '${error.schema.pattern}'`;\n case ValueErrorType.String:\n return 'Expected string';\n case ValueErrorType.Symbol:\n return 'Expected symbol';\n case ValueErrorType.TupleLength:\n return `Expected tuple to have ${error.schema.maxItems || 0} elements`;\n case ValueErrorType.Tuple:\n return 'Expected tuple';\n case ValueErrorType.Uint8ArrayMaxByteLength:\n return `Expected byte length less or equal to ${error.schema.maxByteLength}`;\n case ValueErrorType.Uint8ArrayMinByteLength:\n return `Expected byte length greater or equal to ${error.schema.minByteLength}`;\n case ValueErrorType.Uint8Array:\n return 'Expected Uint8Array';\n case ValueErrorType.Undefined:\n return 'Expected undefined';\n case ValueErrorType.Union:\n return 'Expected union value';\n case ValueErrorType.Void:\n return 'Expected void';\n case ValueErrorType.Kind:\n return `Expected kind '${error.schema[Kind]}'`;\n default:\n return 'Unknown error type';\n }\n}\n/** Manages error message providers */\nlet errorFunction = DefaultErrorFunction;\n/** Sets the error function used to generate error messages. */\nexport function SetErrorFunction(callback) {\n errorFunction = callback;\n}\n/** Gets the error function used to generate error messages */\nexport function GetErrorFunction() {\n return errorFunction;\n}\n","import { TypeBoxError } from '../../type/error/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { IsString } from '../guard/guard.mjs';\nexport class TypeDereferenceError extends TypeBoxError {\n constructor(schema) {\n super(`Unable to dereference schema with $id '${schema.$ref}'`);\n this.schema = schema;\n }\n}\nfunction Resolve(schema, references) {\n const target = references.find((target) => target.$id === schema.$ref);\n if (target === undefined)\n throw new TypeDereferenceError(schema);\n return Deref(target, references);\n}\n/** `[Internal]` Pushes a schema onto references if the schema has an $id and does not exist on references */\nexport function Pushref(schema, references) {\n if (!IsString(schema.$id) || references.some((target) => target.$id === schema.$id))\n return references;\n references.push(schema);\n return references;\n}\n/** `[Internal]` Dereferences a schema from the references array or throws if not found */\nexport function Deref(schema, references) {\n // prettier-ignore\n return (schema[Kind] === 'This' || schema[Kind] === 'Ref')\n ? Resolve(schema, references)\n : schema;\n}\n","import { IsArray, IsBoolean, IsBigInt, IsDate, IsNull, IsNumber, IsObject, IsString, IsSymbol, IsUint8Array, IsUndefined } from '../guard/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueHashError extends TypeBoxError {\n constructor(value) {\n super(`Unable to hash value`);\n this.value = value;\n }\n}\n// ------------------------------------------------------------------\n// ByteMarker\n// ------------------------------------------------------------------\nvar ByteMarker;\n(function (ByteMarker) {\n ByteMarker[ByteMarker[\"Undefined\"] = 0] = \"Undefined\";\n ByteMarker[ByteMarker[\"Null\"] = 1] = \"Null\";\n ByteMarker[ByteMarker[\"Boolean\"] = 2] = \"Boolean\";\n ByteMarker[ByteMarker[\"Number\"] = 3] = \"Number\";\n ByteMarker[ByteMarker[\"String\"] = 4] = \"String\";\n ByteMarker[ByteMarker[\"Object\"] = 5] = \"Object\";\n ByteMarker[ByteMarker[\"Array\"] = 6] = \"Array\";\n ByteMarker[ByteMarker[\"Date\"] = 7] = \"Date\";\n ByteMarker[ByteMarker[\"Uint8Array\"] = 8] = \"Uint8Array\";\n ByteMarker[ByteMarker[\"Symbol\"] = 9] = \"Symbol\";\n ByteMarker[ByteMarker[\"BigInt\"] = 10] = \"BigInt\";\n})(ByteMarker || (ByteMarker = {}));\n// ------------------------------------------------------------------\n// State\n// ------------------------------------------------------------------\nlet Accumulator = BigInt('14695981039346656037');\nconst [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)];\nconst Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));\nconst F64 = new Float64Array(1);\nconst F64In = new DataView(F64.buffer);\nconst F64Out = new Uint8Array(F64.buffer);\n// ------------------------------------------------------------------\n// NumberToBytes\n// ------------------------------------------------------------------\nfunction* NumberToBytes(value) {\n const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8);\n for (let i = 0; i < byteCount; i++) {\n yield (value >> (8 * (byteCount - 1 - i))) & 0xff;\n }\n}\n// ------------------------------------------------------------------\n// Hashing Functions\n// ------------------------------------------------------------------\nfunction ArrayType(value) {\n FNV1A64(ByteMarker.Array);\n for (const item of value) {\n Visit(item);\n }\n}\nfunction BooleanType(value) {\n FNV1A64(ByteMarker.Boolean);\n FNV1A64(value ? 1 : 0);\n}\nfunction BigIntType(value) {\n FNV1A64(ByteMarker.BigInt);\n F64In.setBigInt64(0, value);\n for (const byte of F64Out) {\n FNV1A64(byte);\n }\n}\nfunction DateType(value) {\n FNV1A64(ByteMarker.Date);\n Visit(value.getTime());\n}\nfunction NullType(value) {\n FNV1A64(ByteMarker.Null);\n}\nfunction NumberType(value) {\n FNV1A64(ByteMarker.Number);\n F64In.setFloat64(0, value);\n for (const byte of F64Out) {\n FNV1A64(byte);\n }\n}\nfunction ObjectType(value) {\n FNV1A64(ByteMarker.Object);\n for (const key of globalThis.Object.getOwnPropertyNames(value).sort()) {\n Visit(key);\n Visit(value[key]);\n }\n}\nfunction StringType(value) {\n FNV1A64(ByteMarker.String);\n for (let i = 0; i < value.length; i++) {\n for (const byte of NumberToBytes(value.charCodeAt(i))) {\n FNV1A64(byte);\n }\n }\n}\nfunction SymbolType(value) {\n FNV1A64(ByteMarker.Symbol);\n Visit(value.description);\n}\nfunction Uint8ArrayType(value) {\n FNV1A64(ByteMarker.Uint8Array);\n for (let i = 0; i < value.length; i++) {\n FNV1A64(value[i]);\n }\n}\nfunction UndefinedType(value) {\n return FNV1A64(ByteMarker.Undefined);\n}\nfunction Visit(value) {\n if (IsArray(value))\n return ArrayType(value);\n if (IsBoolean(value))\n return BooleanType(value);\n if (IsBigInt(value))\n return BigIntType(value);\n if (IsDate(value))\n return DateType(value);\n if (IsNull(value))\n return NullType(value);\n if (IsNumber(value))\n return NumberType(value);\n if (IsObject(value))\n return ObjectType(value);\n if (IsString(value))\n return StringType(value);\n if (IsSymbol(value))\n return SymbolType(value);\n if (IsUint8Array(value))\n return Uint8ArrayType(value);\n if (IsUndefined(value))\n return UndefinedType(value);\n throw new ValueHashError(value);\n}\nfunction FNV1A64(byte) {\n Accumulator = Accumulator ^ Bytes[byte];\n Accumulator = (Accumulator * Prime) % Size;\n}\n// ------------------------------------------------------------------\n// Hash\n// ------------------------------------------------------------------\n/** Creates a FNV1A-64 non cryptographic hash of the given value */\nexport function Hash(value) {\n Accumulator = BigInt('14695981039346656037');\n Visit(value);\n return Accumulator;\n}\n","import { TypeSystemPolicy } from '../../system/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Hash } from '../hash/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { KeyOfPattern } from '../../type/keyof/index.mjs';\nimport { ExtendsUndefinedCheck } from '../../type/extends/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../../type/registry/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { Never } from '../../type/never/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport { IsSchema } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueCheckUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super(`Unknown type`);\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// TypeGuards\n// ------------------------------------------------------------------\nfunction IsAnyOrUnknown(schema) {\n return schema[Kind] === 'Any' || schema[Kind] === 'Unknown';\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromAny(schema, references, value) {\n return true;\n}\nfunction FromArgument(schema, references, value) {\n return true;\n}\nfunction FromArray(schema, references, value) {\n if (!IsArray(value))\n return false;\n if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {\n return false;\n }\n if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) {\n return false;\n }\n for (const element of value) {\n if (!Visit(schema.items, references, element))\n return false;\n }\n // prettier-ignore\n if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {\n const hashed = Hash(element);\n if (set.has(hashed)) {\n return false;\n }\n else {\n set.add(hashed);\n }\n } return true; })())) {\n return false;\n }\n // contains\n if (!(IsDefined(schema.contains) || IsNumber(schema.minContains) || IsNumber(schema.maxContains))) {\n return true; // exit\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : Never();\n const containsCount = value.reduce((acc, value) => (Visit(containsSchema, references, value) ? acc + 1 : acc), 0);\n if (containsCount === 0) {\n return false;\n }\n if (IsNumber(schema.minContains) && containsCount < schema.minContains) {\n return false;\n }\n if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {\n return false;\n }\n return true;\n}\nfunction FromAsyncIterator(schema, references, value) {\n return IsAsyncIterator(value);\n}\nfunction FromBigInt(schema, references, value) {\n if (!IsBigInt(value))\n return false;\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) {\n return false;\n }\n return true;\n}\nfunction FromBoolean(schema, references, value) {\n return IsBoolean(value);\n}\nfunction FromConstructor(schema, references, value) {\n return Visit(schema.returns, references, value.prototype);\n}\nfunction FromDate(schema, references, value) {\n if (!IsDate(value))\n return false;\n if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) {\n return false;\n }\n return true;\n}\nfunction FromFunction(schema, references, value) {\n return IsFunction(value);\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromInteger(schema, references, value) {\n if (!IsInteger(value)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n return false;\n }\n return true;\n}\nfunction FromIntersect(schema, references, value) {\n const check1 = schema.allOf.every((schema) => Visit(schema, references, value));\n if (schema.unevaluatedProperties === false) {\n const keyPattern = new RegExp(KeyOfPattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));\n return check1 && check2;\n }\n else if (IsSchema(schema.unevaluatedProperties)) {\n const keyCheck = new RegExp(KeyOfPattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || Visit(schema.unevaluatedProperties, references, value[key]));\n return check1 && check2;\n }\n else {\n return check1;\n }\n}\nfunction FromIterator(schema, references, value) {\n return IsIterator(value);\n}\nfunction FromLiteral(schema, references, value) {\n return value === schema.const;\n}\nfunction FromNever(schema, references, value) {\n return false;\n}\nfunction FromNot(schema, references, value) {\n return !Visit(schema.not, references, value);\n}\nfunction FromNull(schema, references, value) {\n return IsNull(value);\n}\nfunction FromNumber(schema, references, value) {\n if (!TypeSystemPolicy.IsNumberLike(value))\n return false;\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n return false;\n }\n return true;\n}\nfunction FromObject(schema, references, value) {\n if (!TypeSystemPolicy.IsObjectLike(value))\n return false;\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n return false;\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n return false;\n }\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n for (const knownKey of knownKeys) {\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n if (!Visit(property, references, value[knownKey])) {\n return false;\n }\n if ((ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {\n return false;\n }\n }\n else {\n if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {\n return false;\n }\n }\n }\n if (schema.additionalProperties === false) {\n const valueKeys = Object.getOwnPropertyNames(value);\n // optimization: value is valid if schemaKey length matches the valueKey length\n if (schema.required && schema.required.length === knownKeys.length && valueKeys.length === knownKeys.length) {\n return true;\n }\n else {\n return valueKeys.every((valueKey) => knownKeys.includes(valueKey));\n }\n }\n else if (typeof schema.additionalProperties === 'object') {\n const valueKeys = Object.getOwnPropertyNames(value);\n return valueKeys.every((key) => knownKeys.includes(key) || Visit(schema.additionalProperties, references, value[key]));\n }\n else {\n return true;\n }\n}\nfunction FromPromise(schema, references, value) {\n return IsPromise(value);\n}\nfunction FromRecord(schema, references, value) {\n if (!TypeSystemPolicy.IsRecordLike(value)) {\n return false;\n }\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n return false;\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n return false;\n }\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const regex = new RegExp(patternKey);\n // prettier-ignore\n const check1 = Object.entries(value).every(([key, value]) => {\n return (regex.test(key)) ? Visit(patternSchema, references, value) : true;\n });\n // prettier-ignore\n const check2 = typeof schema.additionalProperties === 'object' ? Object.entries(value).every(([key, value]) => {\n return (!regex.test(key)) ? Visit(schema.additionalProperties, references, value) : true;\n }) : true;\n const check3 = schema.additionalProperties === false\n ? Object.getOwnPropertyNames(value).every((key) => {\n return regex.test(key);\n })\n : true;\n return check1 && check2 && check3;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromRegExp(schema, references, value) {\n const regex = new RegExp(schema.source, schema.flags);\n if (IsDefined(schema.minLength)) {\n if (!(value.length >= schema.minLength))\n return false;\n }\n if (IsDefined(schema.maxLength)) {\n if (!(value.length <= schema.maxLength))\n return false;\n }\n return regex.test(value);\n}\nfunction FromString(schema, references, value) {\n if (!IsString(value)) {\n return false;\n }\n if (IsDefined(schema.minLength)) {\n if (!(value.length >= schema.minLength))\n return false;\n }\n if (IsDefined(schema.maxLength)) {\n if (!(value.length <= schema.maxLength))\n return false;\n }\n if (IsDefined(schema.pattern)) {\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value))\n return false;\n }\n if (IsDefined(schema.format)) {\n if (!FormatRegistry.Has(schema.format))\n return false;\n const func = FormatRegistry.Get(schema.format);\n return func(value);\n }\n return true;\n}\nfunction FromSymbol(schema, references, value) {\n return IsSymbol(value);\n}\nfunction FromTemplateLiteral(schema, references, value) {\n return IsString(value) && new RegExp(schema.pattern).test(value);\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n if (!IsArray(value)) {\n return false;\n }\n if (schema.items === undefined && !(value.length === 0)) {\n return false;\n }\n if (!(value.length === schema.maxItems)) {\n return false;\n }\n if (!schema.items) {\n return true;\n }\n for (let i = 0; i < schema.items.length; i++) {\n if (!Visit(schema.items[i], references, value[i]))\n return false;\n }\n return true;\n}\nfunction FromUndefined(schema, references, value) {\n return IsUndefined(value);\n}\nfunction FromUnion(schema, references, value) {\n return schema.anyOf.some((inner) => Visit(inner, references, value));\n}\nfunction FromUint8Array(schema, references, value) {\n if (!IsUint8Array(value)) {\n return false;\n }\n if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {\n return false;\n }\n if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) {\n return false;\n }\n return true;\n}\nfunction FromUnknown(schema, references, value) {\n return true;\n}\nfunction FromVoid(schema, references, value) {\n return TypeSystemPolicy.IsVoidLike(value);\n}\nfunction FromKind(schema, references, value) {\n if (!TypeRegistry.Has(schema[Kind]))\n return false;\n const func = TypeRegistry.Get(schema[Kind]);\n return func(schema, value);\n}\nfunction Visit(schema, references, value) {\n const references_ = IsDefined(schema.$id) ? Pushref(schema, references) : references;\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Any':\n return FromAny(schema_, references_, value);\n case 'Argument':\n return FromArgument(schema_, references_, value);\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'AsyncIterator':\n return FromAsyncIterator(schema_, references_, value);\n case 'BigInt':\n return FromBigInt(schema_, references_, value);\n case 'Boolean':\n return FromBoolean(schema_, references_, value);\n case 'Constructor':\n return FromConstructor(schema_, references_, value);\n case 'Date':\n return FromDate(schema_, references_, value);\n case 'Function':\n return FromFunction(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Integer':\n return FromInteger(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Iterator':\n return FromIterator(schema_, references_, value);\n case 'Literal':\n return FromLiteral(schema_, references_, value);\n case 'Never':\n return FromNever(schema_, references_, value);\n case 'Not':\n return FromNot(schema_, references_, value);\n case 'Null':\n return FromNull(schema_, references_, value);\n case 'Number':\n return FromNumber(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Promise':\n return FromPromise(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'RegExp':\n return FromRegExp(schema_, references_, value);\n case 'String':\n return FromString(schema_, references_, value);\n case 'Symbol':\n return FromSymbol(schema_, references_, value);\n case 'TemplateLiteral':\n return FromTemplateLiteral(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Undefined':\n return FromUndefined(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n case 'Uint8Array':\n return FromUint8Array(schema_, references_, value);\n case 'Unknown':\n return FromUnknown(schema_, references_, value);\n case 'Void':\n return FromVoid(schema_, references_, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueCheckUnknownTypeError(schema_);\n return FromKind(schema_, references_, value);\n }\n}\n/** Returns true if the value matches the given type. */\nexport function Check(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { TypeSystemPolicy } from '../system/index.mjs';\nimport { KeyOfPattern } from '../type/keyof/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../type/registry/index.mjs';\nimport { ExtendsUndefinedCheck } from '../type/extends/extends-undefined.mjs';\nimport { GetErrorFunction } from './function.mjs';\nimport { TypeBoxError } from '../type/error/index.mjs';\nimport { Deref } from '../value/deref/index.mjs';\nimport { Hash } from '../value/hash/index.mjs';\nimport { Check } from '../value/check/index.mjs';\nimport { Kind } from '../type/symbols/index.mjs';\nimport { Never } from '../type/never/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\n// prettier-ignore\nimport { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../value/guard/index.mjs';\n// ------------------------------------------------------------------\n// ValueErrorType\n// ------------------------------------------------------------------\nexport var ValueErrorType;\n(function (ValueErrorType) {\n ValueErrorType[ValueErrorType[\"ArrayContains\"] = 0] = \"ArrayContains\";\n ValueErrorType[ValueErrorType[\"ArrayMaxContains\"] = 1] = \"ArrayMaxContains\";\n ValueErrorType[ValueErrorType[\"ArrayMaxItems\"] = 2] = \"ArrayMaxItems\";\n ValueErrorType[ValueErrorType[\"ArrayMinContains\"] = 3] = \"ArrayMinContains\";\n ValueErrorType[ValueErrorType[\"ArrayMinItems\"] = 4] = \"ArrayMinItems\";\n ValueErrorType[ValueErrorType[\"ArrayUniqueItems\"] = 5] = \"ArrayUniqueItems\";\n ValueErrorType[ValueErrorType[\"Array\"] = 6] = \"Array\";\n ValueErrorType[ValueErrorType[\"AsyncIterator\"] = 7] = \"AsyncIterator\";\n ValueErrorType[ValueErrorType[\"BigIntExclusiveMaximum\"] = 8] = \"BigIntExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"BigIntExclusiveMinimum\"] = 9] = \"BigIntExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"BigIntMaximum\"] = 10] = \"BigIntMaximum\";\n ValueErrorType[ValueErrorType[\"BigIntMinimum\"] = 11] = \"BigIntMinimum\";\n ValueErrorType[ValueErrorType[\"BigIntMultipleOf\"] = 12] = \"BigIntMultipleOf\";\n ValueErrorType[ValueErrorType[\"BigInt\"] = 13] = \"BigInt\";\n ValueErrorType[ValueErrorType[\"Boolean\"] = 14] = \"Boolean\";\n ValueErrorType[ValueErrorType[\"DateExclusiveMaximumTimestamp\"] = 15] = \"DateExclusiveMaximumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateExclusiveMinimumTimestamp\"] = 16] = \"DateExclusiveMinimumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMaximumTimestamp\"] = 17] = \"DateMaximumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMinimumTimestamp\"] = 18] = \"DateMinimumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMultipleOfTimestamp\"] = 19] = \"DateMultipleOfTimestamp\";\n ValueErrorType[ValueErrorType[\"Date\"] = 20] = \"Date\";\n ValueErrorType[ValueErrorType[\"Function\"] = 21] = \"Function\";\n ValueErrorType[ValueErrorType[\"IntegerExclusiveMaximum\"] = 22] = \"IntegerExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"IntegerExclusiveMinimum\"] = 23] = \"IntegerExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"IntegerMaximum\"] = 24] = \"IntegerMaximum\";\n ValueErrorType[ValueErrorType[\"IntegerMinimum\"] = 25] = \"IntegerMinimum\";\n ValueErrorType[ValueErrorType[\"IntegerMultipleOf\"] = 26] = \"IntegerMultipleOf\";\n ValueErrorType[ValueErrorType[\"Integer\"] = 27] = \"Integer\";\n ValueErrorType[ValueErrorType[\"IntersectUnevaluatedProperties\"] = 28] = \"IntersectUnevaluatedProperties\";\n ValueErrorType[ValueErrorType[\"Intersect\"] = 29] = \"Intersect\";\n ValueErrorType[ValueErrorType[\"Iterator\"] = 30] = \"Iterator\";\n ValueErrorType[ValueErrorType[\"Kind\"] = 31] = \"Kind\";\n ValueErrorType[ValueErrorType[\"Literal\"] = 32] = \"Literal\";\n ValueErrorType[ValueErrorType[\"Never\"] = 33] = \"Never\";\n ValueErrorType[ValueErrorType[\"Not\"] = 34] = \"Not\";\n ValueErrorType[ValueErrorType[\"Null\"] = 35] = \"Null\";\n ValueErrorType[ValueErrorType[\"NumberExclusiveMaximum\"] = 36] = \"NumberExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"NumberExclusiveMinimum\"] = 37] = \"NumberExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"NumberMaximum\"] = 38] = \"NumberMaximum\";\n ValueErrorType[ValueErrorType[\"NumberMinimum\"] = 39] = \"NumberMinimum\";\n ValueErrorType[ValueErrorType[\"NumberMultipleOf\"] = 40] = \"NumberMultipleOf\";\n ValueErrorType[ValueErrorType[\"Number\"] = 41] = \"Number\";\n ValueErrorType[ValueErrorType[\"ObjectAdditionalProperties\"] = 42] = \"ObjectAdditionalProperties\";\n ValueErrorType[ValueErrorType[\"ObjectMaxProperties\"] = 43] = \"ObjectMaxProperties\";\n ValueErrorType[ValueErrorType[\"ObjectMinProperties\"] = 44] = \"ObjectMinProperties\";\n ValueErrorType[ValueErrorType[\"ObjectRequiredProperty\"] = 45] = \"ObjectRequiredProperty\";\n ValueErrorType[ValueErrorType[\"Object\"] = 46] = \"Object\";\n ValueErrorType[ValueErrorType[\"Promise\"] = 47] = \"Promise\";\n ValueErrorType[ValueErrorType[\"RegExp\"] = 48] = \"RegExp\";\n ValueErrorType[ValueErrorType[\"StringFormatUnknown\"] = 49] = \"StringFormatUnknown\";\n ValueErrorType[ValueErrorType[\"StringFormat\"] = 50] = \"StringFormat\";\n ValueErrorType[ValueErrorType[\"StringMaxLength\"] = 51] = \"StringMaxLength\";\n ValueErrorType[ValueErrorType[\"StringMinLength\"] = 52] = \"StringMinLength\";\n ValueErrorType[ValueErrorType[\"StringPattern\"] = 53] = \"StringPattern\";\n ValueErrorType[ValueErrorType[\"String\"] = 54] = \"String\";\n ValueErrorType[ValueErrorType[\"Symbol\"] = 55] = \"Symbol\";\n ValueErrorType[ValueErrorType[\"TupleLength\"] = 56] = \"TupleLength\";\n ValueErrorType[ValueErrorType[\"Tuple\"] = 57] = \"Tuple\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMaxByteLength\"] = 58] = \"Uint8ArrayMaxByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMinByteLength\"] = 59] = \"Uint8ArrayMinByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8Array\"] = 60] = \"Uint8Array\";\n ValueErrorType[ValueErrorType[\"Undefined\"] = 61] = \"Undefined\";\n ValueErrorType[ValueErrorType[\"Union\"] = 62] = \"Union\";\n ValueErrorType[ValueErrorType[\"Void\"] = 63] = \"Void\";\n})(ValueErrorType || (ValueErrorType = {}));\n// ------------------------------------------------------------------\n// ValueErrors\n// ------------------------------------------------------------------\nexport class ValueErrorsUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super('Unknown type');\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// EscapeKey\n// ------------------------------------------------------------------\nfunction EscapeKey(key) {\n return key.replace(/~/g, '~0').replace(/\\//g, '~1'); // RFC6901 Path\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// ------------------------------------------------------------------\n// ValueErrorIterator\n// ------------------------------------------------------------------\nexport class ValueErrorIterator {\n constructor(iterator) {\n this.iterator = iterator;\n }\n [Symbol.iterator]() {\n return this.iterator;\n }\n /** Returns the first value error or undefined if no errors */\n First() {\n const next = this.iterator.next();\n return next.done ? undefined : next.value;\n }\n}\n// --------------------------------------------------------------------------\n// Create\n// --------------------------------------------------------------------------\nfunction Create(errorType, schema, path, value, errors = []) {\n return {\n type: errorType,\n schema,\n path,\n value,\n message: GetErrorFunction()({ errorType, path, schema, value, errors }),\n errors,\n };\n}\n// --------------------------------------------------------------------------\n// Types\n// --------------------------------------------------------------------------\nfunction* FromAny(schema, references, path, value) { }\nfunction* FromArgument(schema, references, path, value) { }\nfunction* FromArray(schema, references, path, value) {\n if (!IsArray(value)) {\n return yield Create(ValueErrorType.Array, schema, path, value);\n }\n if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {\n yield Create(ValueErrorType.ArrayMinItems, schema, path, value);\n }\n if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) {\n yield Create(ValueErrorType.ArrayMaxItems, schema, path, value);\n }\n for (let i = 0; i < value.length; i++) {\n yield* Visit(schema.items, references, `${path}/${i}`, value[i]);\n }\n // prettier-ignore\n if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {\n const hashed = Hash(element);\n if (set.has(hashed)) {\n return false;\n }\n else {\n set.add(hashed);\n }\n } return true; })())) {\n yield Create(ValueErrorType.ArrayUniqueItems, schema, path, value);\n }\n // contains\n if (!(IsDefined(schema.contains) || IsDefined(schema.minContains) || IsDefined(schema.maxContains))) {\n return;\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : Never();\n const containsCount = value.reduce((acc, value, index) => (Visit(containsSchema, references, `${path}${index}`, value).next().done === true ? acc + 1 : acc), 0);\n if (containsCount === 0) {\n yield Create(ValueErrorType.ArrayContains, schema, path, value);\n }\n if (IsNumber(schema.minContains) && containsCount < schema.minContains) {\n yield Create(ValueErrorType.ArrayMinContains, schema, path, value);\n }\n if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {\n yield Create(ValueErrorType.ArrayMaxContains, schema, path, value);\n }\n}\nfunction* FromAsyncIterator(schema, references, path, value) {\n if (!IsAsyncIterator(value))\n yield Create(ValueErrorType.AsyncIterator, schema, path, value);\n}\nfunction* FromBigInt(schema, references, path, value) {\n if (!IsBigInt(value))\n return yield Create(ValueErrorType.BigInt, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.BigIntExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.BigIntExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.BigIntMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.BigIntMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) {\n yield Create(ValueErrorType.BigIntMultipleOf, schema, path, value);\n }\n}\nfunction* FromBoolean(schema, references, path, value) {\n if (!IsBoolean(value))\n yield Create(ValueErrorType.Boolean, schema, path, value);\n}\nfunction* FromConstructor(schema, references, path, value) {\n yield* Visit(schema.returns, references, path, value.prototype);\n}\nfunction* FromDate(schema, references, path, value) {\n if (!IsDate(value))\n return yield Create(ValueErrorType.Date, schema, path, value);\n if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {\n yield Create(ValueErrorType.DateExclusiveMaximumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) {\n yield Create(ValueErrorType.DateExclusiveMinimumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) {\n yield Create(ValueErrorType.DateMaximumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) {\n yield Create(ValueErrorType.DateMinimumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) {\n yield Create(ValueErrorType.DateMultipleOfTimestamp, schema, path, value);\n }\n}\nfunction* FromFunction(schema, references, path, value) {\n if (!IsFunction(value))\n yield Create(ValueErrorType.Function, schema, path, value);\n}\nfunction* FromImport(schema, references, path, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n yield* Visit(target, [...references, ...definitions], path, value);\n}\nfunction* FromInteger(schema, references, path, value) {\n if (!IsInteger(value))\n return yield Create(ValueErrorType.Integer, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.IntegerExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.IntegerExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.IntegerMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.IntegerMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n yield Create(ValueErrorType.IntegerMultipleOf, schema, path, value);\n }\n}\nfunction* FromIntersect(schema, references, path, value) {\n let hasError = false;\n for (const inner of schema.allOf) {\n for (const error of Visit(inner, references, path, value)) {\n hasError = true;\n yield error;\n }\n }\n if (hasError) {\n return yield Create(ValueErrorType.Intersect, schema, path, value);\n }\n if (schema.unevaluatedProperties === false) {\n const keyCheck = new RegExp(KeyOfPattern(schema));\n for (const valueKey of Object.getOwnPropertyNames(value)) {\n if (!keyCheck.test(valueKey)) {\n yield Create(ValueErrorType.IntersectUnevaluatedProperties, schema, `${path}/${valueKey}`, value);\n }\n }\n }\n if (typeof schema.unevaluatedProperties === 'object') {\n const keyCheck = new RegExp(KeyOfPattern(schema));\n for (const valueKey of Object.getOwnPropertyNames(value)) {\n if (!keyCheck.test(valueKey)) {\n const next = Visit(schema.unevaluatedProperties, references, `${path}/${valueKey}`, value[valueKey]).next();\n if (!next.done)\n yield next.value; // yield interior\n }\n }\n }\n}\nfunction* FromIterator(schema, references, path, value) {\n if (!IsIterator(value))\n yield Create(ValueErrorType.Iterator, schema, path, value);\n}\nfunction* FromLiteral(schema, references, path, value) {\n if (!(value === schema.const))\n yield Create(ValueErrorType.Literal, schema, path, value);\n}\nfunction* FromNever(schema, references, path, value) {\n yield Create(ValueErrorType.Never, schema, path, value);\n}\nfunction* FromNot(schema, references, path, value) {\n if (Visit(schema.not, references, path, value).next().done === true)\n yield Create(ValueErrorType.Not, schema, path, value);\n}\nfunction* FromNull(schema, references, path, value) {\n if (!IsNull(value))\n yield Create(ValueErrorType.Null, schema, path, value);\n}\nfunction* FromNumber(schema, references, path, value) {\n if (!TypeSystemPolicy.IsNumberLike(value))\n return yield Create(ValueErrorType.Number, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.NumberExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.NumberExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.NumberMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.NumberMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n yield Create(ValueErrorType.NumberMultipleOf, schema, path, value);\n }\n}\nfunction* FromObject(schema, references, path, value) {\n if (!TypeSystemPolicy.IsObjectLike(value))\n return yield Create(ValueErrorType.Object, schema, path, value);\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n yield Create(ValueErrorType.ObjectMinProperties, schema, path, value);\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value);\n }\n const requiredKeys = Array.isArray(schema.required) ? schema.required : [];\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n const unknownKeys = Object.getOwnPropertyNames(value);\n for (const requiredKey of requiredKeys) {\n if (unknownKeys.includes(requiredKey))\n continue;\n yield Create(ValueErrorType.ObjectRequiredProperty, schema.properties[requiredKey], `${path}/${EscapeKey(requiredKey)}`, undefined);\n }\n if (schema.additionalProperties === false) {\n for (const valueKey of unknownKeys) {\n if (!knownKeys.includes(valueKey)) {\n yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(valueKey)}`, value[valueKey]);\n }\n }\n }\n if (typeof schema.additionalProperties === 'object') {\n for (const valueKey of unknownKeys) {\n if (knownKeys.includes(valueKey))\n continue;\n yield* Visit(schema.additionalProperties, references, `${path}/${EscapeKey(valueKey)}`, value[valueKey]);\n }\n }\n for (const knownKey of knownKeys) {\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n if (ExtendsUndefinedCheck(schema) && !(knownKey in value)) {\n yield Create(ValueErrorType.ObjectRequiredProperty, property, `${path}/${EscapeKey(knownKey)}`, undefined);\n }\n }\n else {\n if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n }\n }\n }\n}\nfunction* FromPromise(schema, references, path, value) {\n if (!IsPromise(value))\n yield Create(ValueErrorType.Promise, schema, path, value);\n}\nfunction* FromRecord(schema, references, path, value) {\n if (!TypeSystemPolicy.IsRecordLike(value))\n return yield Create(ValueErrorType.Object, schema, path, value);\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n yield Create(ValueErrorType.ObjectMinProperties, schema, path, value);\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value);\n }\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const regex = new RegExp(patternKey);\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (regex.test(propertyKey))\n yield* Visit(patternSchema, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n if (typeof schema.additionalProperties === 'object') {\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (!regex.test(propertyKey))\n yield* Visit(schema.additionalProperties, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n }\n if (schema.additionalProperties === false) {\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (regex.test(propertyKey))\n continue;\n return yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n }\n}\nfunction* FromRef(schema, references, path, value) {\n yield* Visit(Deref(schema, references), references, path, value);\n}\nfunction* FromRegExp(schema, references, path, value) {\n if (!IsString(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n if (IsDefined(schema.minLength) && !(value.length >= schema.minLength)) {\n yield Create(ValueErrorType.StringMinLength, schema, path, value);\n }\n if (IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) {\n yield Create(ValueErrorType.StringMaxLength, schema, path, value);\n }\n const regex = new RegExp(schema.source, schema.flags);\n if (!regex.test(value)) {\n return yield Create(ValueErrorType.RegExp, schema, path, value);\n }\n}\nfunction* FromString(schema, references, path, value) {\n if (!IsString(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n if (IsDefined(schema.minLength) && !(value.length >= schema.minLength)) {\n yield Create(ValueErrorType.StringMinLength, schema, path, value);\n }\n if (IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) {\n yield Create(ValueErrorType.StringMaxLength, schema, path, value);\n }\n if (IsString(schema.pattern)) {\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value)) {\n yield Create(ValueErrorType.StringPattern, schema, path, value);\n }\n }\n if (IsString(schema.format)) {\n if (!FormatRegistry.Has(schema.format)) {\n yield Create(ValueErrorType.StringFormatUnknown, schema, path, value);\n }\n else {\n const format = FormatRegistry.Get(schema.format);\n if (!format(value)) {\n yield Create(ValueErrorType.StringFormat, schema, path, value);\n }\n }\n }\n}\nfunction* FromSymbol(schema, references, path, value) {\n if (!IsSymbol(value))\n yield Create(ValueErrorType.Symbol, schema, path, value);\n}\nfunction* FromTemplateLiteral(schema, references, path, value) {\n if (!IsString(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value)) {\n yield Create(ValueErrorType.StringPattern, schema, path, value);\n }\n}\nfunction* FromThis(schema, references, path, value) {\n yield* Visit(Deref(schema, references), references, path, value);\n}\nfunction* FromTuple(schema, references, path, value) {\n if (!IsArray(value))\n return yield Create(ValueErrorType.Tuple, schema, path, value);\n if (schema.items === undefined && !(value.length === 0)) {\n return yield Create(ValueErrorType.TupleLength, schema, path, value);\n }\n if (!(value.length === schema.maxItems)) {\n return yield Create(ValueErrorType.TupleLength, schema, path, value);\n }\n if (!schema.items) {\n return;\n }\n for (let i = 0; i < schema.items.length; i++) {\n yield* Visit(schema.items[i], references, `${path}/${i}`, value[i]);\n }\n}\nfunction* FromUndefined(schema, references, path, value) {\n if (!IsUndefined(value))\n yield Create(ValueErrorType.Undefined, schema, path, value);\n}\nfunction* FromUnion(schema, references, path, value) {\n if (Check(schema, references, value))\n return;\n const errors = schema.anyOf.map((variant) => new ValueErrorIterator(Visit(variant, references, path, value)));\n yield Create(ValueErrorType.Union, schema, path, value, errors);\n}\nfunction* FromUint8Array(schema, references, path, value) {\n if (!IsUint8Array(value))\n return yield Create(ValueErrorType.Uint8Array, schema, path, value);\n if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {\n yield Create(ValueErrorType.Uint8ArrayMaxByteLength, schema, path, value);\n }\n if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) {\n yield Create(ValueErrorType.Uint8ArrayMinByteLength, schema, path, value);\n }\n}\nfunction* FromUnknown(schema, references, path, value) { }\nfunction* FromVoid(schema, references, path, value) {\n if (!TypeSystemPolicy.IsVoidLike(value))\n yield Create(ValueErrorType.Void, schema, path, value);\n}\nfunction* FromKind(schema, references, path, value) {\n const check = TypeRegistry.Get(schema[Kind]);\n if (!check(schema, value))\n yield Create(ValueErrorType.Kind, schema, path, value);\n}\nfunction* Visit(schema, references, path, value) {\n const references_ = IsDefined(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Any':\n return yield* FromAny(schema_, references_, path, value);\n case 'Argument':\n return yield* FromArgument(schema_, references_, path, value);\n case 'Array':\n return yield* FromArray(schema_, references_, path, value);\n case 'AsyncIterator':\n return yield* FromAsyncIterator(schema_, references_, path, value);\n case 'BigInt':\n return yield* FromBigInt(schema_, references_, path, value);\n case 'Boolean':\n return yield* FromBoolean(schema_, references_, path, value);\n case 'Constructor':\n return yield* FromConstructor(schema_, references_, path, value);\n case 'Date':\n return yield* FromDate(schema_, references_, path, value);\n case 'Function':\n return yield* FromFunction(schema_, references_, path, value);\n case 'Import':\n return yield* FromImport(schema_, references_, path, value);\n case 'Integer':\n return yield* FromInteger(schema_, references_, path, value);\n case 'Intersect':\n return yield* FromIntersect(schema_, references_, path, value);\n case 'Iterator':\n return yield* FromIterator(schema_, references_, path, value);\n case 'Literal':\n return yield* FromLiteral(schema_, references_, path, value);\n case 'Never':\n return yield* FromNever(schema_, references_, path, value);\n case 'Not':\n return yield* FromNot(schema_, references_, path, value);\n case 'Null':\n return yield* FromNull(schema_, references_, path, value);\n case 'Number':\n return yield* FromNumber(schema_, references_, path, value);\n case 'Object':\n return yield* FromObject(schema_, references_, path, value);\n case 'Promise':\n return yield* FromPromise(schema_, references_, path, value);\n case 'Record':\n return yield* FromRecord(schema_, references_, path, value);\n case 'Ref':\n return yield* FromRef(schema_, references_, path, value);\n case 'RegExp':\n return yield* FromRegExp(schema_, references_, path, value);\n case 'String':\n return yield* FromString(schema_, references_, path, value);\n case 'Symbol':\n return yield* FromSymbol(schema_, references_, path, value);\n case 'TemplateLiteral':\n return yield* FromTemplateLiteral(schema_, references_, path, value);\n case 'This':\n return yield* FromThis(schema_, references_, path, value);\n case 'Tuple':\n return yield* FromTuple(schema_, references_, path, value);\n case 'Undefined':\n return yield* FromUndefined(schema_, references_, path, value);\n case 'Union':\n return yield* FromUnion(schema_, references_, path, value);\n case 'Uint8Array':\n return yield* FromUint8Array(schema_, references_, path, value);\n case 'Unknown':\n return yield* FromUnknown(schema_, references_, path, value);\n case 'Void':\n return yield* FromVoid(schema_, references_, path, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueErrorsUnknownTypeError(schema);\n return yield* FromKind(schema_, references_, path, value);\n }\n}\n/** Returns an iterator for each error in this value. */\nexport function Errors(...args) {\n const iterator = args.length === 3 ? Visit(args[0], args[1], '', args[2]) : Visit(args[0], [], '', args[1]);\n return new ValueErrorIterator(iterator);\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AssertError_instances, _AssertError_iterator, _AssertError_Iterator;\nimport { Errors, ValueErrorIterator } from '../../errors/index.mjs';\nimport { TypeBoxError } from '../../type/error/error.mjs';\nimport { Check } from '../check/check.mjs';\n// ------------------------------------------------------------------\n// AssertError\n// ------------------------------------------------------------------\nexport class AssertError extends TypeBoxError {\n constructor(iterator) {\n const error = iterator.First();\n super(error === undefined ? 'Invalid Value' : error.message);\n _AssertError_instances.add(this);\n _AssertError_iterator.set(this, void 0);\n __classPrivateFieldSet(this, _AssertError_iterator, iterator, \"f\");\n this.error = error;\n }\n /** Returns an iterator for each error in this value. */\n Errors() {\n return new ValueErrorIterator(__classPrivateFieldGet(this, _AssertError_instances, \"m\", _AssertError_Iterator).call(this));\n }\n}\n_AssertError_iterator = new WeakMap(), _AssertError_instances = new WeakSet(), _AssertError_Iterator = function* _AssertError_Iterator() {\n if (this.error)\n yield this.error;\n yield* __classPrivateFieldGet(this, _AssertError_iterator, \"f\");\n};\n// ------------------------------------------------------------------\n// AssertValue\n// ------------------------------------------------------------------\nfunction AssertValue(schema, references, value) {\n if (Check(schema, references, value))\n return;\n throw new AssertError(Errors(schema, references, value));\n}\n/** Asserts a value matches the given type or throws an `AssertError` if invalid */\nexport function Assert(...args) {\n return args.length === 3 ? AssertValue(args[0], args[1], args[2]) : AssertValue(args[0], [], args[1]);\n}\n","// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsDate, IsMap, IsSet, IsObject, IsTypedArray, IsValueType } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// Clonable\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n const Acc = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n Acc[key] = Clone(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n Acc[key] = Clone(value[key]);\n }\n return Acc;\n}\nfunction FromArray(value) {\n return value.map((element) => Clone(element));\n}\nfunction FromTypedArray(value) {\n return value.slice();\n}\nfunction FromMap(value) {\n return new Map(Clone([...value.entries()]));\n}\nfunction FromSet(value) {\n return new Set(Clone([...value.entries()]));\n}\nfunction FromDate(value) {\n return new Date(value.toISOString());\n}\nfunction FromValue(value) {\n return value;\n}\n// ------------------------------------------------------------------\n// Clone\n// ------------------------------------------------------------------\n/** Returns a clone of the given value */\nexport function Clone(value) {\n if (IsArray(value))\n return FromArray(value);\n if (IsDate(value))\n return FromDate(value);\n if (IsTypedArray(value))\n return FromTypedArray(value);\n if (IsMap(value))\n return FromMap(value);\n if (IsSet(value))\n return FromSet(value);\n if (IsObject(value))\n return FromObject(value);\n if (IsValueType(value))\n return FromValue(value);\n throw new Error('ValueClone: Unable to clone value');\n}\n","import { HasPropertyKey } from '../guard/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { TemplateLiteralGenerate, IsTemplateLiteralFinite } from '../../type/template-literal/index.mjs';\nimport { TypeRegistry } from '../../type/registry/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { IsFunction } from '../guard/guard.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueCreateError extends TypeBoxError {\n constructor(schema, message) {\n super(message);\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// Default\n// ------------------------------------------------------------------\nfunction FromDefault(value) {\n return IsFunction(value) ? value() : Clone(value);\n}\n// ------------------------------------------------------------------\n// Create\n// ------------------------------------------------------------------\nfunction FromAny(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return {};\n }\n}\nfunction FromArgument(schema, references) {\n return {};\n}\nfunction FromArray(schema, references) {\n if (schema.uniqueItems === true && !HasPropertyKey(schema, 'default')) {\n throw new ValueCreateError(schema, 'Array with the uniqueItems constraint requires a default value');\n }\n else if ('contains' in schema && !HasPropertyKey(schema, 'default')) {\n throw new ValueCreateError(schema, 'Array with the contains constraint requires a default value');\n }\n else if ('default' in schema) {\n return FromDefault(schema.default);\n }\n else if (schema.minItems !== undefined) {\n return Array.from({ length: schema.minItems }).map((item) => {\n return Visit(schema.items, references);\n });\n }\n else {\n return [];\n }\n}\nfunction FromAsyncIterator(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return (async function* () { })();\n }\n}\nfunction FromBigInt(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return BigInt(0);\n }\n}\nfunction FromBoolean(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return false;\n }\n}\nfunction FromConstructor(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n const value = Visit(schema.returns, references);\n if (typeof value === 'object' && !Array.isArray(value)) {\n return class {\n constructor() {\n for (const [key, val] of Object.entries(value)) {\n const self = this;\n self[key] = val;\n }\n }\n };\n }\n else {\n return class {\n };\n }\n }\n}\nfunction FromDate(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if (schema.minimumTimestamp !== undefined) {\n return new Date(schema.minimumTimestamp);\n }\n else {\n return new Date();\n }\n}\nfunction FromFunction(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return () => Visit(schema.returns, references);\n }\n}\nfunction FromImport(schema, references) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions]);\n}\nfunction FromInteger(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if (schema.minimum !== undefined) {\n return schema.minimum;\n }\n else {\n return 0;\n }\n}\nfunction FromIntersect(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n // --------------------------------------------------------------\n // Note: The best we can do here is attempt to instance each\n // sub type and apply through object assign. For non-object\n // sub types, we just escape the assignment and just return\n // the value. In the latter case, this is typically going to\n // be a consequence of an illogical intersection.\n // --------------------------------------------------------------\n const value = schema.allOf.reduce((acc, schema) => {\n const next = Visit(schema, references);\n return typeof next === 'object' ? { ...acc, ...next } : next;\n }, {});\n if (!Check(schema, references, value))\n throw new ValueCreateError(schema, 'Intersect produced invalid value. Consider using a default value.');\n return value;\n }\n}\nfunction FromIterator(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return (function* () { })();\n }\n}\nfunction FromLiteral(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return schema.const;\n }\n}\nfunction FromNever(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n throw new ValueCreateError(schema, 'Never types cannot be created. Consider using a default value.');\n }\n}\nfunction FromNot(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n throw new ValueCreateError(schema, 'Not types must have a default value');\n }\n}\nfunction FromNull(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return null;\n }\n}\nfunction FromNumber(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if (schema.minimum !== undefined) {\n return schema.minimum;\n }\n else {\n return 0;\n }\n}\nfunction FromObject(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n const required = new Set(schema.required);\n const Acc = {};\n for (const [key, subschema] of Object.entries(schema.properties)) {\n if (!required.has(key))\n continue;\n Acc[key] = Visit(subschema, references);\n }\n return Acc;\n }\n}\nfunction FromPromise(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return Promise.resolve(Visit(schema.item, references));\n }\n}\nfunction FromRecord(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return {};\n }\n}\nfunction FromRef(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return Visit(Deref(schema, references), references);\n }\n}\nfunction FromRegExp(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n throw new ValueCreateError(schema, 'RegExp types cannot be created. Consider using a default value.');\n }\n}\nfunction FromString(schema, references) {\n if (schema.pattern !== undefined) {\n if (!HasPropertyKey(schema, 'default')) {\n throw new ValueCreateError(schema, 'String types with patterns must specify a default value');\n }\n else {\n return FromDefault(schema.default);\n }\n }\n else if (schema.format !== undefined) {\n if (!HasPropertyKey(schema, 'default')) {\n throw new ValueCreateError(schema, 'String types with formats must specify a default value');\n }\n else {\n return FromDefault(schema.default);\n }\n }\n else {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if (schema.minLength !== undefined) {\n // prettier-ignore\n return Array.from({ length: schema.minLength }).map(() => ' ').join('');\n }\n else {\n return '';\n }\n }\n}\nfunction FromSymbol(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if ('value' in schema) {\n return Symbol.for(schema.value);\n }\n else {\n return Symbol();\n }\n}\nfunction FromTemplateLiteral(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n if (!IsTemplateLiteralFinite(schema))\n throw new ValueCreateError(schema, 'Can only create template literals that produce a finite variants. Consider using a default value.');\n const generated = TemplateLiteralGenerate(schema);\n return generated[0];\n}\nfunction FromThis(schema, references) {\n if (recursiveDepth++ > recursiveMaxDepth)\n throw new ValueCreateError(schema, 'Cannot create recursive type as it appears possibly infinite. Consider using a default.');\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return Visit(Deref(schema, references), references);\n }\n}\nfunction FromTuple(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n if (schema.items === undefined) {\n return [];\n }\n else {\n return Array.from({ length: schema.minItems }).map((_, index) => Visit(schema.items[index], references));\n }\n}\nfunction FromUndefined(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return undefined;\n }\n}\nfunction FromUnion(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if (schema.anyOf.length === 0) {\n throw new Error('ValueCreate.Union: Cannot create Union with zero variants');\n }\n else {\n return Visit(schema.anyOf[0], references);\n }\n}\nfunction FromUint8Array(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else if (schema.minByteLength !== undefined) {\n return new Uint8Array(schema.minByteLength);\n }\n else {\n return new Uint8Array(0);\n }\n}\nfunction FromUnknown(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return {};\n }\n}\nfunction FromVoid(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n return void 0;\n }\n}\nfunction FromKind(schema, references) {\n if (HasPropertyKey(schema, 'default')) {\n return FromDefault(schema.default);\n }\n else {\n throw new Error('User defined types must specify a default value');\n }\n}\nfunction Visit(schema, references) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Any':\n return FromAny(schema_, references_);\n case 'Argument':\n return FromArgument(schema_, references_);\n case 'Array':\n return FromArray(schema_, references_);\n case 'AsyncIterator':\n return FromAsyncIterator(schema_, references_);\n case 'BigInt':\n return FromBigInt(schema_, references_);\n case 'Boolean':\n return FromBoolean(schema_, references_);\n case 'Constructor':\n return FromConstructor(schema_, references_);\n case 'Date':\n return FromDate(schema_, references_);\n case 'Function':\n return FromFunction(schema_, references_);\n case 'Import':\n return FromImport(schema_, references_);\n case 'Integer':\n return FromInteger(schema_, references_);\n case 'Intersect':\n return FromIntersect(schema_, references_);\n case 'Iterator':\n return FromIterator(schema_, references_);\n case 'Literal':\n return FromLiteral(schema_, references_);\n case 'Never':\n return FromNever(schema_, references_);\n case 'Not':\n return FromNot(schema_, references_);\n case 'Null':\n return FromNull(schema_, references_);\n case 'Number':\n return FromNumber(schema_, references_);\n case 'Object':\n return FromObject(schema_, references_);\n case 'Promise':\n return FromPromise(schema_, references_);\n case 'Record':\n return FromRecord(schema_, references_);\n case 'Ref':\n return FromRef(schema_, references_);\n case 'RegExp':\n return FromRegExp(schema_, references_);\n case 'String':\n return FromString(schema_, references_);\n case 'Symbol':\n return FromSymbol(schema_, references_);\n case 'TemplateLiteral':\n return FromTemplateLiteral(schema_, references_);\n case 'This':\n return FromThis(schema_, references_);\n case 'Tuple':\n return FromTuple(schema_, references_);\n case 'Undefined':\n return FromUndefined(schema_, references_);\n case 'Union':\n return FromUnion(schema_, references_);\n case 'Uint8Array':\n return FromUint8Array(schema_, references_);\n case 'Unknown':\n return FromUnknown(schema_, references_);\n case 'Void':\n return FromVoid(schema_, references_);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueCreateError(schema_, 'Unknown type');\n return FromKind(schema_, references_);\n }\n}\n// ------------------------------------------------------------------\n// State\n// ------------------------------------------------------------------\nconst recursiveMaxDepth = 512;\nlet recursiveDepth = 0;\n/** Creates a value from the given schema */\nexport function Create(...args) {\n recursiveDepth = 0;\n return args.length === 2 ? Visit(args[0], args[1]) : Visit(args[0], []);\n}\n","import { IsObject, IsArray, IsString, IsNumber, IsNull } from '../guard/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { Create } from '../create/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueCastError extends TypeBoxError {\n constructor(schema, message) {\n super(message);\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// The following logic assigns a score to a schema based on how well\n// it matches a given value. For object types, the score is calculated\n// by evaluating each property of the value against the schema's\n// properties. To avoid bias towards objects with many properties,\n// each property contributes equally to the total score. Properties\n// that exactly match literal values receive the highest possible\n// score, as literals are often used as discriminators in union types.\n// ------------------------------------------------------------------\nfunction ScoreUnion(schema, references, value) {\n if (schema[Kind] === 'Object' && typeof value === 'object' && !IsNull(value)) {\n const object = schema;\n const keys = Object.getOwnPropertyNames(value);\n const entries = Object.entries(object.properties);\n return entries.reduce((acc, [key, schema]) => {\n const literal = schema[Kind] === 'Literal' && schema.const === value[key] ? 100 : 0;\n const checks = Check(schema, references, value[key]) ? 10 : 0;\n const exists = keys.includes(key) ? 1 : 0;\n return acc + (literal + checks + exists);\n }, 0);\n }\n else if (schema[Kind] === 'Union') {\n const schemas = schema.anyOf.map((schema) => Deref(schema, references));\n const scores = schemas.map((schema) => ScoreUnion(schema, references, value));\n return Math.max(...scores);\n }\n else {\n return Check(schema, references, value) ? 1 : 0;\n }\n}\nfunction SelectUnion(union, references, value) {\n const schemas = union.anyOf.map((schema) => Deref(schema, references));\n let [select, best] = [schemas[0], 0];\n for (const schema of schemas) {\n const score = ScoreUnion(schema, references, value);\n if (score > best) {\n select = schema;\n best = score;\n }\n }\n return select;\n}\nfunction CastUnion(union, references, value) {\n if ('default' in union) {\n return typeof value === 'function' ? union.default : Clone(union.default);\n }\n else {\n const schema = SelectUnion(union, references, value);\n return Cast(schema, references, value);\n }\n}\n// ------------------------------------------------------------------\n// Default\n// ------------------------------------------------------------------\nfunction DefaultClone(schema, references, value) {\n return Check(schema, references, value) ? Clone(value) : Create(schema, references);\n}\nfunction Default(schema, references, value) {\n return Check(schema, references, value) ? value : Create(schema, references);\n}\n// ------------------------------------------------------------------\n// Cast\n// ------------------------------------------------------------------\nfunction FromArray(schema, references, value) {\n if (Check(schema, references, value))\n return Clone(value);\n const created = IsArray(value) ? Clone(value) : Create(schema, references);\n const minimum = IsNumber(schema.minItems) && created.length < schema.minItems ? [...created, ...Array.from({ length: schema.minItems - created.length }, () => null)] : created;\n const maximum = IsNumber(schema.maxItems) && minimum.length > schema.maxItems ? minimum.slice(0, schema.maxItems) : minimum;\n const casted = maximum.map((value) => Visit(schema.items, references, value));\n if (schema.uniqueItems !== true)\n return casted;\n const unique = [...new Set(casted)];\n if (!Check(schema, references, unique))\n throw new ValueCastError(schema, 'Array cast produced invalid data due to uniqueItems constraint');\n return unique;\n}\nfunction FromConstructor(schema, references, value) {\n if (Check(schema, references, value))\n return Create(schema, references);\n const required = new Set(schema.returns.required || []);\n const result = function () { };\n for (const [key, property] of Object.entries(schema.returns.properties)) {\n if (!required.has(key) && value.prototype[key] === undefined)\n continue;\n result.prototype[key] = Visit(property, references, value.prototype[key]);\n }\n return result;\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\n// ------------------------------------------------------------------\n// Intersect\n// ------------------------------------------------------------------\nfunction IntersectAssign(correct, value) {\n // trust correct on mismatch | value on non-object\n if ((IsObject(correct) && !IsObject(value)) || (!IsObject(correct) && IsObject(value)))\n return correct;\n if (!IsObject(correct) || !IsObject(value))\n return value;\n return globalThis.Object.getOwnPropertyNames(correct).reduce((result, key) => {\n const property = key in value ? IntersectAssign(correct[key], value[key]) : correct[key];\n return { ...result, [key]: property };\n }, {});\n}\nfunction FromIntersect(schema, references, value) {\n if (Check(schema, references, value))\n return value;\n const correct = Create(schema, references);\n const assigned = IntersectAssign(correct, value);\n return Check(schema, references, assigned) ? assigned : correct;\n}\nfunction FromNever(schema, references, value) {\n throw new ValueCastError(schema, 'Never types cannot be cast');\n}\nfunction FromObject(schema, references, value) {\n if (Check(schema, references, value))\n return value;\n if (value === null || typeof value !== 'object')\n return Create(schema, references);\n const required = new Set(schema.required || []);\n const result = {};\n for (const [key, property] of Object.entries(schema.properties)) {\n if (!required.has(key) && value[key] === undefined)\n continue;\n result[key] = Visit(property, references, value[key]);\n }\n // additional schema properties\n if (typeof schema.additionalProperties === 'object') {\n const propertyNames = Object.getOwnPropertyNames(schema.properties);\n for (const propertyName of Object.getOwnPropertyNames(value)) {\n if (propertyNames.includes(propertyName))\n continue;\n result[propertyName] = Visit(schema.additionalProperties, references, value[propertyName]);\n }\n }\n return result;\n}\nfunction FromRecord(schema, references, value) {\n if (Check(schema, references, value))\n return Clone(value);\n if (value === null || typeof value !== 'object' || Array.isArray(value) || value instanceof Date)\n return Create(schema, references);\n const subschemaPropertyName = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const subschema = schema.patternProperties[subschemaPropertyName];\n const result = {};\n for (const [propKey, propValue] of Object.entries(value)) {\n result[propKey] = Visit(subschema, references, propValue);\n }\n return result;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n if (Check(schema, references, value))\n return Clone(value);\n if (!IsArray(value))\n return Create(schema, references);\n if (schema.items === undefined)\n return [];\n return schema.items.map((schema, index) => Visit(schema, references, value[index]));\n}\nfunction FromUnion(schema, references, value) {\n return Check(schema, references, value) ? Clone(value) : CastUnion(schema, references, value);\n}\nfunction Visit(schema, references, value) {\n const references_ = IsString(schema.$id) ? Pushref(schema, references) : references;\n const schema_ = schema;\n switch (schema[Kind]) {\n // --------------------------------------------------------------\n // Structural\n // --------------------------------------------------------------\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'Constructor':\n return FromConstructor(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Never':\n return FromNever(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n // --------------------------------------------------------------\n // DefaultClone\n // --------------------------------------------------------------\n case 'Date':\n case 'Symbol':\n case 'Uint8Array':\n return DefaultClone(schema, references, value);\n // --------------------------------------------------------------\n // Default\n // --------------------------------------------------------------\n default:\n return Default(schema_, references_, value);\n }\n}\n/** Casts a value into a given type. The return value will retain as much information of the original value as possible. */\nexport function Cast(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { KeyOfPropertyKeys } from '../../type/keyof/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\n// prettier-ignore\nimport { HasPropertyKey, IsString, IsObject, IsArray, IsUndefined } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\n// prettier-ignore\nimport { IsKind } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// IsCheckable\n// ------------------------------------------------------------------\nfunction IsCheckable(schema) {\n return IsKind(schema) && schema[Kind] !== 'Unsafe';\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromArray(schema, references, value) {\n if (!IsArray(value))\n return value;\n return value.map((value) => Visit(schema.items, references, value));\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromIntersect(schema, references, value) {\n const unevaluatedProperties = schema.unevaluatedProperties;\n const intersections = schema.allOf.map((schema) => Visit(schema, references, Clone(value)));\n const composite = intersections.reduce((acc, value) => (IsObject(value) ? { ...acc, ...value } : value), {});\n if (!IsObject(value) || !IsObject(composite) || !IsKind(unevaluatedProperties))\n return composite;\n const knownkeys = KeyOfPropertyKeys(schema);\n for (const key of Object.getOwnPropertyNames(value)) {\n if (knownkeys.includes(key))\n continue;\n if (Check(unevaluatedProperties, references, value[key])) {\n composite[key] = Visit(unevaluatedProperties, references, value[key]);\n }\n }\n return composite;\n}\nfunction FromObject(schema, references, value) {\n if (!IsObject(value) || IsArray(value))\n return value; // Check IsArray for AllowArrayObject configuration\n const additionalProperties = schema.additionalProperties;\n for (const key of Object.getOwnPropertyNames(value)) {\n if (HasPropertyKey(schema.properties, key)) {\n value[key] = Visit(schema.properties[key], references, value[key]);\n continue;\n }\n if (IsKind(additionalProperties) && Check(additionalProperties, references, value[key])) {\n value[key] = Visit(additionalProperties, references, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\nfunction FromRecord(schema, references, value) {\n if (!IsObject(value))\n return value;\n const additionalProperties = schema.additionalProperties;\n const propertyKeys = Object.getOwnPropertyNames(value);\n const [propertyKey, propertySchema] = Object.entries(schema.patternProperties)[0];\n const propertyKeyTest = new RegExp(propertyKey);\n for (const key of propertyKeys) {\n if (propertyKeyTest.test(key)) {\n value[key] = Visit(propertySchema, references, value[key]);\n continue;\n }\n if (IsKind(additionalProperties) && Check(additionalProperties, references, value[key])) {\n value[key] = Visit(additionalProperties, references, value[key]);\n continue;\n }\n delete value[key];\n }\n return value;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n if (!IsArray(value))\n return value;\n if (IsUndefined(schema.items))\n return [];\n const length = Math.min(value.length, schema.items.length);\n for (let i = 0; i < length; i++) {\n value[i] = Visit(schema.items[i], references, value[i]);\n }\n // prettier-ignore\n return value.length > length\n ? value.slice(0, length)\n : value;\n}\nfunction FromUnion(schema, references, value) {\n for (const inner of schema.anyOf) {\n if (IsCheckable(inner) && Check(inner, references, value)) {\n return Visit(inner, references, value);\n }\n }\n return value;\n}\nfunction Visit(schema, references, value) {\n const references_ = IsString(schema.$id) ? Pushref(schema, references) : references;\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n default:\n return value;\n }\n}\n/** `[Mutable]` Removes excess properties from a value and returns the result. This function does not check the value and returns an unknown type. You should Check the result before use. Clean is a mutable operation. To avoid mutation, Clone the value first. */\nexport function Clean(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { Clone } from '../clone/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsObject, IsDate, IsUndefined, IsString, IsNumber, IsBoolean, IsBigInt, IsSymbol, HasPropertyKey } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// Conversions\n// ------------------------------------------------------------------\nfunction IsStringNumeric(value) {\n return IsString(value) && !isNaN(value) && !isNaN(parseFloat(value));\n}\nfunction IsValueToString(value) {\n return IsBigInt(value) || IsBoolean(value) || IsNumber(value);\n}\nfunction IsValueTrue(value) {\n return value === true || (IsNumber(value) && value === 1) || (IsBigInt(value) && value === BigInt('1')) || (IsString(value) && (value.toLowerCase() === 'true' || value === '1'));\n}\nfunction IsValueFalse(value) {\n return value === false || (IsNumber(value) && (value === 0 || Object.is(value, -0))) || (IsBigInt(value) && value === BigInt('0')) || (IsString(value) && (value.toLowerCase() === 'false' || value === '0' || value === '-0'));\n}\nfunction IsTimeStringWithTimeZone(value) {\n return IsString(value) && /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i.test(value);\n}\nfunction IsTimeStringWithoutTimeZone(value) {\n return IsString(value) && /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)?$/i.test(value);\n}\nfunction IsDateTimeStringWithTimeZone(value) {\n return IsString(value) && /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i.test(value);\n}\nfunction IsDateTimeStringWithoutTimeZone(value) {\n return IsString(value) && /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)?$/i.test(value);\n}\nfunction IsDateString(value) {\n return IsString(value) && /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/i.test(value);\n}\n// ------------------------------------------------------------------\n// Convert\n// ------------------------------------------------------------------\nfunction TryConvertLiteralString(value, target) {\n const conversion = TryConvertString(value);\n return conversion === target ? conversion : value;\n}\nfunction TryConvertLiteralNumber(value, target) {\n const conversion = TryConvertNumber(value);\n return conversion === target ? conversion : value;\n}\nfunction TryConvertLiteralBoolean(value, target) {\n const conversion = TryConvertBoolean(value);\n return conversion === target ? conversion : value;\n}\n// prettier-ignore\nfunction TryConvertLiteral(schema, value) {\n return (IsString(schema.const) ? TryConvertLiteralString(value, schema.const) :\n IsNumber(schema.const) ? TryConvertLiteralNumber(value, schema.const) :\n IsBoolean(schema.const) ? TryConvertLiteralBoolean(value, schema.const) :\n value);\n}\nfunction TryConvertBoolean(value) {\n return IsValueTrue(value) ? true : IsValueFalse(value) ? false : value;\n}\nfunction TryConvertBigInt(value) {\n const truncateInteger = (value) => value.split('.')[0];\n return IsStringNumeric(value) ? BigInt(truncateInteger(value)) : IsNumber(value) ? BigInt(Math.trunc(value)) : IsValueFalse(value) ? BigInt(0) : IsValueTrue(value) ? BigInt(1) : value;\n}\nfunction TryConvertString(value) {\n return IsSymbol(value) && value.description !== undefined ? value.description.toString() : IsValueToString(value) ? value.toString() : value;\n}\nfunction TryConvertNumber(value) {\n return IsStringNumeric(value) ? parseFloat(value) : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;\n}\nfunction TryConvertInteger(value) {\n return IsStringNumeric(value) ? parseInt(value) : IsNumber(value) ? Math.trunc(value) : IsValueTrue(value) ? 1 : IsValueFalse(value) ? 0 : value;\n}\nfunction TryConvertNull(value) {\n return IsString(value) && value.toLowerCase() === 'null' ? null : value;\n}\nfunction TryConvertUndefined(value) {\n return IsString(value) && value === 'undefined' ? undefined : value;\n}\n// ------------------------------------------------------------------\n// note: this function may return an invalid dates for the regex\n// tests above. Invalid dates will however be checked during the\n// casting function and will return a epoch date if invalid.\n// Consider better string parsing for the iso dates in future\n// revisions.\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction TryConvertDate(value) {\n return (IsDate(value) ? value :\n IsNumber(value) ? new Date(value) :\n IsValueTrue(value) ? new Date(1) :\n IsValueFalse(value) ? new Date(0) :\n IsStringNumeric(value) ? new Date(parseInt(value)) :\n IsTimeStringWithoutTimeZone(value) ? new Date(`1970-01-01T${value}.000Z`) :\n IsTimeStringWithTimeZone(value) ? new Date(`1970-01-01T${value}`) :\n IsDateTimeStringWithoutTimeZone(value) ? new Date(`${value}.000Z`) :\n IsDateTimeStringWithTimeZone(value) ? new Date(value) :\n IsDateString(value) ? new Date(`${value}T00:00:00.000Z`) :\n value);\n}\n// ------------------------------------------------------------------\n// Default\n// ------------------------------------------------------------------\nfunction Default(value) {\n return value;\n}\n// ------------------------------------------------------------------\n// Convert\n// ------------------------------------------------------------------\nfunction FromArray(schema, references, value) {\n const elements = IsArray(value) ? value : [value];\n return elements.map((element) => Visit(schema.items, references, element));\n}\nfunction FromBigInt(schema, references, value) {\n return TryConvertBigInt(value);\n}\nfunction FromBoolean(schema, references, value) {\n return TryConvertBoolean(value);\n}\nfunction FromDate(schema, references, value) {\n return TryConvertDate(value);\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromInteger(schema, references, value) {\n return TryConvertInteger(value);\n}\nfunction FromIntersect(schema, references, value) {\n return schema.allOf.reduce((value, schema) => Visit(schema, references, value), value);\n}\nfunction FromLiteral(schema, references, value) {\n return TryConvertLiteral(schema, value);\n}\nfunction FromNull(schema, references, value) {\n return TryConvertNull(value);\n}\nfunction FromNumber(schema, references, value) {\n return TryConvertNumber(value);\n}\n// prettier-ignore\nfunction FromObject(schema, references, value) {\n if (!IsObject(value) || IsArray(value))\n return value;\n for (const propertyKey of Object.getOwnPropertyNames(schema.properties)) {\n if (!HasPropertyKey(value, propertyKey))\n continue;\n value[propertyKey] = Visit(schema.properties[propertyKey], references, value[propertyKey]);\n }\n return value;\n}\nfunction FromRecord(schema, references, value) {\n const isConvertable = IsObject(value) && !IsArray(value);\n if (!isConvertable)\n return value;\n const propertyKey = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const property = schema.patternProperties[propertyKey];\n for (const [propKey, propValue] of Object.entries(value)) {\n value[propKey] = Visit(property, references, propValue);\n }\n return value;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromString(schema, references, value) {\n return TryConvertString(value);\n}\nfunction FromSymbol(schema, references, value) {\n return IsString(value) || IsNumber(value) ? Symbol(value) : value;\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\n// prettier-ignore\nfunction FromTuple(schema, references, value) {\n const isConvertable = IsArray(value) && !IsUndefined(schema.items);\n if (!isConvertable)\n return value;\n return value.map((value, index) => {\n return (index < schema.items.length)\n ? Visit(schema.items[index], references, value)\n : value;\n });\n}\nfunction FromUndefined(schema, references, value) {\n return TryConvertUndefined(value);\n}\nfunction FromUnion(schema, references, value) {\n // Check if original value already matches one of the union variants\n for (const subschema of schema.anyOf) {\n if (Check(subschema, references, value)) {\n return value;\n }\n }\n // Attempt conversion for each variant\n for (const subschema of schema.anyOf) {\n const converted = Visit(subschema, references, Clone(value));\n if (!Check(subschema, references, converted))\n continue;\n return converted;\n }\n return value;\n}\nfunction Visit(schema, references, value) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n switch (schema[Kind]) {\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'BigInt':\n return FromBigInt(schema_, references_, value);\n case 'Boolean':\n return FromBoolean(schema_, references_, value);\n case 'Date':\n return FromDate(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Integer':\n return FromInteger(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Literal':\n return FromLiteral(schema_, references_, value);\n case 'Null':\n return FromNull(schema_, references_, value);\n case 'Number':\n return FromNumber(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'String':\n return FromString(schema_, references_, value);\n case 'Symbol':\n return FromSymbol(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Undefined':\n return FromUndefined(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n default:\n return Default(value);\n }\n}\n/** `[Mutable]` Converts any type mismatched values to their target type if a reasonable conversion is possible. */\n// prettier-ignore\nexport function Convert(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { TypeSystemPolicy } from '../../system/policy.mjs';\nimport { Kind, TransformKind } from '../../type/symbols/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { KeyOfPropertyKeys, KeyOfPropertyEntries } from '../../type/keyof/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Check } from '../check/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { HasPropertyKey, IsObject, IsArray, IsValueType, IsUndefined as IsUndefinedValue } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport { IsTransform, IsSchema, IsUndefined } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\n// thrown externally\n// prettier-ignore\nexport class TransformDecodeCheckError extends TypeBoxError {\n constructor(schema, value, error) {\n super(`Unable to decode value as it does not match the expected schema`);\n this.schema = schema;\n this.value = value;\n this.error = error;\n }\n}\n// prettier-ignore\nexport class TransformDecodeError extends TypeBoxError {\n constructor(schema, path, value, error) {\n super(error instanceof Error ? error.message : 'Unknown error');\n this.schema = schema;\n this.path = path;\n this.value = value;\n this.error = error;\n }\n}\n// ------------------------------------------------------------------\n// Decode\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction Default(schema, path, value) {\n try {\n return IsTransform(schema) ? schema[TransformKind].Decode(value) : value;\n }\n catch (error) {\n throw new TransformDecodeError(schema, path, value, error);\n }\n}\n// prettier-ignore\nfunction FromArray(schema, references, path, value) {\n return (IsArray(value))\n ? Default(schema, path, value.map((value, index) => Visit(schema.items, references, `${path}/${index}`, value)))\n : Default(schema, path, value);\n}\n// prettier-ignore\nfunction FromIntersect(schema, references, path, value) {\n if (!IsObject(value) || IsValueType(value))\n return Default(schema, path, value);\n const knownEntries = KeyOfPropertyEntries(schema);\n const knownKeys = knownEntries.map(entry => entry[0]);\n const knownProperties = { ...value };\n for (const [knownKey, knownSchema] of knownEntries)\n if (knownKey in knownProperties) {\n knownProperties[knownKey] = Visit(knownSchema, references, `${path}/${knownKey}`, knownProperties[knownKey]);\n }\n if (!IsTransform(schema.unevaluatedProperties)) {\n return Default(schema, path, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const unevaluatedProperties = schema.unevaluatedProperties;\n const unknownProperties = { ...knownProperties };\n for (const key of unknownKeys)\n if (!knownKeys.includes(key)) {\n unknownProperties[key] = Default(unevaluatedProperties, `${path}/${key}`, unknownProperties[key]);\n }\n return Default(schema, path, unknownProperties);\n}\n// prettier-ignore\nfunction FromImport(schema, references, path, value) {\n const additional = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n const result = Visit(target, [...references, ...additional], path, value);\n return Default(schema, path, result);\n}\nfunction FromNot(schema, references, path, value) {\n return Default(schema, path, Visit(schema.not, references, path, value));\n}\n// prettier-ignore\nfunction FromObject(schema, references, path, value) {\n if (!IsObject(value))\n return Default(schema, path, value);\n const knownKeys = KeyOfPropertyKeys(schema);\n const knownProperties = { ...value };\n for (const key of knownKeys) {\n if (!HasPropertyKey(knownProperties, key))\n continue;\n // if the property value is undefined, but the target is not, nor does it satisfy exact optional \n // property policy, then we need to continue. This is a special case for optional property handling \n // where a transforms wrapped in a optional modifiers should not run.\n if (IsUndefinedValue(knownProperties[key]) && (!IsUndefined(schema.properties[key]) ||\n TypeSystemPolicy.IsExactOptionalProperty(knownProperties, key)))\n continue;\n // decode property\n knownProperties[key] = Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]);\n }\n if (!IsSchema(schema.additionalProperties)) {\n return Default(schema, path, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n const unknownProperties = { ...knownProperties };\n for (const key of unknownKeys)\n if (!knownKeys.includes(key)) {\n unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]);\n }\n return Default(schema, path, unknownProperties);\n}\n// prettier-ignore\nfunction FromRecord(schema, references, path, value) {\n if (!IsObject(value))\n return Default(schema, path, value);\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const knownKeys = new RegExp(pattern);\n const knownProperties = { ...value };\n for (const key of Object.getOwnPropertyNames(value))\n if (knownKeys.test(key)) {\n knownProperties[key] = Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]);\n }\n if (!IsSchema(schema.additionalProperties)) {\n return Default(schema, path, knownProperties);\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n const unknownProperties = { ...knownProperties };\n for (const key of unknownKeys)\n if (!knownKeys.test(key)) {\n unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]);\n }\n return Default(schema, path, unknownProperties);\n}\n// prettier-ignore\nfunction FromRef(schema, references, path, value) {\n const target = Deref(schema, references);\n return Default(schema, path, Visit(target, references, path, value));\n}\n// prettier-ignore\nfunction FromThis(schema, references, path, value) {\n const target = Deref(schema, references);\n return Default(schema, path, Visit(target, references, path, value));\n}\n// prettier-ignore\nfunction FromTuple(schema, references, path, value) {\n return (IsArray(value) && IsArray(schema.items))\n ? Default(schema, path, schema.items.map((schema, index) => Visit(schema, references, `${path}/${index}`, value[index])))\n : Default(schema, path, value);\n}\n// prettier-ignore\nfunction FromUnion(schema, references, path, value) {\n for (const subschema of schema.anyOf) {\n if (!Check(subschema, references, value))\n continue;\n // note: ensure interior is decoded first\n const decoded = Visit(subschema, references, path, value);\n return Default(schema, path, decoded);\n }\n return Default(schema, path, value);\n}\n// prettier-ignore\nfunction Visit(schema, references, path, value) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n switch (schema[Kind]) {\n case 'Array':\n return FromArray(schema_, references_, path, value);\n case 'Import':\n return FromImport(schema_, references_, path, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, path, value);\n case 'Not':\n return FromNot(schema_, references_, path, value);\n case 'Object':\n return FromObject(schema_, references_, path, value);\n case 'Record':\n return FromRecord(schema_, references_, path, value);\n case 'Ref':\n return FromRef(schema_, references_, path, value);\n case 'Symbol':\n return Default(schema_, path, value);\n case 'This':\n return FromThis(schema_, references_, path, value);\n case 'Tuple':\n return FromTuple(schema_, references_, path, value);\n case 'Union':\n return FromUnion(schema_, references_, path, value);\n default:\n return Default(schema_, path, value);\n }\n}\n/**\n * `[Internal]` Decodes the value and returns the result. This function requires that\n * the caller `Check` the value before use. Passing unchecked values may result in\n * undefined behavior. Refer to the `Value.Decode()` for implementation details.\n */\nexport function TransformDecode(schema, references, value) {\n return Visit(schema, references, '', value);\n}\n","import { TypeSystemPolicy } from '../../system/policy.mjs';\nimport { Kind, TransformKind } from '../../type/symbols/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { KeyOfPropertyKeys, KeyOfPropertyEntries } from '../../type/keyof/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Check } from '../check/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { HasPropertyKey, IsObject, IsArray, IsValueType, IsUndefined as IsUndefinedValue } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport { IsTransform, IsSchema, IsUndefined } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\n// prettier-ignore\nexport class TransformEncodeCheckError extends TypeBoxError {\n constructor(schema, value, error) {\n super(`The encoded value does not match the expected schema`);\n this.schema = schema;\n this.value = value;\n this.error = error;\n }\n}\n// prettier-ignore\nexport class TransformEncodeError extends TypeBoxError {\n constructor(schema, path, value, error) {\n super(`${error instanceof Error ? error.message : 'Unknown error'}`);\n this.schema = schema;\n this.path = path;\n this.value = value;\n this.error = error;\n }\n}\n// ------------------------------------------------------------------\n// Encode\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction Default(schema, path, value) {\n try {\n return IsTransform(schema) ? schema[TransformKind].Encode(value) : value;\n }\n catch (error) {\n throw new TransformEncodeError(schema, path, value, error);\n }\n}\n// prettier-ignore\nfunction FromArray(schema, references, path, value) {\n const defaulted = Default(schema, path, value);\n return IsArray(defaulted)\n ? defaulted.map((value, index) => Visit(schema.items, references, `${path}/${index}`, value))\n : defaulted;\n}\n// prettier-ignore\nfunction FromImport(schema, references, path, value) {\n const additional = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n const result = Default(schema, path, value);\n return Visit(target, [...references, ...additional], path, result);\n}\n// prettier-ignore\nfunction FromIntersect(schema, references, path, value) {\n const defaulted = Default(schema, path, value);\n if (!IsObject(value) || IsValueType(value))\n return defaulted;\n const knownEntries = KeyOfPropertyEntries(schema);\n const knownKeys = knownEntries.map(entry => entry[0]);\n const knownProperties = { ...defaulted };\n for (const [knownKey, knownSchema] of knownEntries)\n if (knownKey in knownProperties) {\n knownProperties[knownKey] = Visit(knownSchema, references, `${path}/${knownKey}`, knownProperties[knownKey]);\n }\n if (!IsTransform(schema.unevaluatedProperties)) {\n return knownProperties;\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const unevaluatedProperties = schema.unevaluatedProperties;\n const properties = { ...knownProperties };\n for (const key of unknownKeys)\n if (!knownKeys.includes(key)) {\n properties[key] = Default(unevaluatedProperties, `${path}/${key}`, properties[key]);\n }\n return properties;\n}\n// prettier-ignore\nfunction FromNot(schema, references, path, value) {\n return Default(schema.not, path, Default(schema, path, value));\n}\n// prettier-ignore\nfunction FromObject(schema, references, path, value) {\n const defaulted = Default(schema, path, value);\n if (!IsObject(defaulted))\n return defaulted;\n const knownKeys = KeyOfPropertyKeys(schema);\n const knownProperties = { ...defaulted };\n for (const key of knownKeys) {\n if (!HasPropertyKey(knownProperties, key))\n continue;\n // if the property value is undefined, but the target is not, nor does it satisfy exact optional \n // property policy, then we need to continue. This is a special case for optional property handling \n // where a transforms wrapped in a optional modifiers should not run.\n if (IsUndefinedValue(knownProperties[key]) && (!IsUndefined(schema.properties[key]) ||\n TypeSystemPolicy.IsExactOptionalProperty(knownProperties, key)))\n continue;\n // encode property\n knownProperties[key] = Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]);\n }\n if (!IsSchema(schema.additionalProperties)) {\n return knownProperties;\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n const properties = { ...knownProperties };\n for (const key of unknownKeys)\n if (!knownKeys.includes(key)) {\n properties[key] = Default(additionalProperties, `${path}/${key}`, properties[key]);\n }\n return properties;\n}\n// prettier-ignore\nfunction FromRecord(schema, references, path, value) {\n const defaulted = Default(schema, path, value);\n if (!IsObject(value))\n return defaulted;\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const knownKeys = new RegExp(pattern);\n const knownProperties = { ...defaulted };\n for (const key of Object.getOwnPropertyNames(value))\n if (knownKeys.test(key)) {\n knownProperties[key] = Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]);\n }\n if (!IsSchema(schema.additionalProperties)) {\n return knownProperties;\n }\n const unknownKeys = Object.getOwnPropertyNames(knownProperties);\n const additionalProperties = schema.additionalProperties;\n const properties = { ...knownProperties };\n for (const key of unknownKeys)\n if (!knownKeys.test(key)) {\n properties[key] = Default(additionalProperties, `${path}/${key}`, properties[key]);\n }\n return properties;\n}\n// prettier-ignore\nfunction FromRef(schema, references, path, value) {\n const target = Deref(schema, references);\n const resolved = Visit(target, references, path, value);\n return Default(schema, path, resolved);\n}\n// prettier-ignore\nfunction FromThis(schema, references, path, value) {\n const target = Deref(schema, references);\n const resolved = Visit(target, references, path, value);\n return Default(schema, path, resolved);\n}\n// prettier-ignore\nfunction FromTuple(schema, references, path, value) {\n const value1 = Default(schema, path, value);\n return IsArray(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, `${path}/${index}`, value1[index])) : [];\n}\n// prettier-ignore\nfunction FromUnion(schema, references, path, value) {\n // test value against union variants\n for (const subschema of schema.anyOf) {\n if (!Check(subschema, references, value))\n continue;\n const value1 = Visit(subschema, references, path, value);\n return Default(schema, path, value1);\n }\n // test transformed value against union variants\n for (const subschema of schema.anyOf) {\n const value1 = Visit(subschema, references, path, value);\n if (!Check(schema, references, value1))\n continue;\n return Default(schema, path, value1);\n }\n return Default(schema, path, value);\n}\n// prettier-ignore\nfunction Visit(schema, references, path, value) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n switch (schema[Kind]) {\n case 'Array':\n return FromArray(schema_, references_, path, value);\n case 'Import':\n return FromImport(schema_, references_, path, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, path, value);\n case 'Not':\n return FromNot(schema_, references_, path, value);\n case 'Object':\n return FromObject(schema_, references_, path, value);\n case 'Record':\n return FromRecord(schema_, references_, path, value);\n case 'Ref':\n return FromRef(schema_, references_, path, value);\n case 'This':\n return FromThis(schema_, references_, path, value);\n case 'Tuple':\n return FromTuple(schema_, references_, path, value);\n case 'Union':\n return FromUnion(schema_, references_, path, value);\n default:\n return Default(schema_, path, value);\n }\n}\n/**\n * `[Internal]` Encodes the value and returns the result. This function expects the\n * caller to pass a statically checked value. This function does not check the encoded\n * result, meaning the result should be passed to `Check` before use. Refer to the\n * `Value.Encode()` function for implementation details.\n */\nexport function TransformEncode(schema, references, value) {\n return Visit(schema, references, '', value);\n}\n","import { Deref, Pushref } from '../deref/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport { IsTransform, IsSchema } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsUndefined } from '../guard/index.mjs';\n// prettier-ignore\nfunction FromArray(schema, references) {\n return IsTransform(schema) || Visit(schema.items, references);\n}\n// prettier-ignore\nfunction FromAsyncIterator(schema, references) {\n return IsTransform(schema) || Visit(schema.items, references);\n}\n// prettier-ignore\nfunction FromConstructor(schema, references) {\n return IsTransform(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));\n}\n// prettier-ignore\nfunction FromFunction(schema, references) {\n return IsTransform(schema) || Visit(schema.returns, references) || schema.parameters.some((schema) => Visit(schema, references));\n}\n// prettier-ignore\nfunction FromIntersect(schema, references) {\n return IsTransform(schema) || IsTransform(schema.unevaluatedProperties) || schema.allOf.some((schema) => Visit(schema, references));\n}\n// prettier-ignore\nfunction FromImport(schema, references) {\n const additional = globalThis.Object.getOwnPropertyNames(schema.$defs).reduce((result, key) => [...result, schema.$defs[key]], []);\n const target = schema.$defs[schema.$ref];\n return IsTransform(schema) || Visit(target, [...additional, ...references]);\n}\n// prettier-ignore\nfunction FromIterator(schema, references) {\n return IsTransform(schema) || Visit(schema.items, references);\n}\n// prettier-ignore\nfunction FromNot(schema, references) {\n return IsTransform(schema) || Visit(schema.not, references);\n}\n// prettier-ignore\nfunction FromObject(schema, references) {\n return (IsTransform(schema) ||\n Object.values(schema.properties).some((schema) => Visit(schema, references)) ||\n (IsSchema(schema.additionalProperties) && Visit(schema.additionalProperties, references)));\n}\n// prettier-ignore\nfunction FromPromise(schema, references) {\n return IsTransform(schema) || Visit(schema.item, references);\n}\n// prettier-ignore\nfunction FromRecord(schema, references) {\n const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];\n const property = schema.patternProperties[pattern];\n return IsTransform(schema) || Visit(property, references) || (IsSchema(schema.additionalProperties) && IsTransform(schema.additionalProperties));\n}\n// prettier-ignore\nfunction FromRef(schema, references) {\n if (IsTransform(schema))\n return true;\n return Visit(Deref(schema, references), references);\n}\n// prettier-ignore\nfunction FromThis(schema, references) {\n if (IsTransform(schema))\n return true;\n return Visit(Deref(schema, references), references);\n}\n// prettier-ignore\nfunction FromTuple(schema, references) {\n return IsTransform(schema) || (!IsUndefined(schema.items) && schema.items.some((schema) => Visit(schema, references)));\n}\n// prettier-ignore\nfunction FromUnion(schema, references) {\n return IsTransform(schema) || schema.anyOf.some((schema) => Visit(schema, references));\n}\n// prettier-ignore\nfunction Visit(schema, references) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n if (schema.$id && visited.has(schema.$id))\n return false;\n if (schema.$id)\n visited.add(schema.$id);\n switch (schema[Kind]) {\n case 'Array':\n return FromArray(schema_, references_);\n case 'AsyncIterator':\n return FromAsyncIterator(schema_, references_);\n case 'Constructor':\n return FromConstructor(schema_, references_);\n case 'Function':\n return FromFunction(schema_, references_);\n case 'Import':\n return FromImport(schema_, references_);\n case 'Intersect':\n return FromIntersect(schema_, references_);\n case 'Iterator':\n return FromIterator(schema_, references_);\n case 'Not':\n return FromNot(schema_, references_);\n case 'Object':\n return FromObject(schema_, references_);\n case 'Promise':\n return FromPromise(schema_, references_);\n case 'Record':\n return FromRecord(schema_, references_);\n case 'Ref':\n return FromRef(schema_, references_);\n case 'This':\n return FromThis(schema_, references_);\n case 'Tuple':\n return FromTuple(schema_, references_);\n case 'Union':\n return FromUnion(schema_, references_);\n default:\n return IsTransform(schema);\n }\n}\nconst visited = new Set();\n/** Returns true if this schema contains a transform codec */\nexport function HasTransform(schema, references) {\n visited.clear();\n return Visit(schema, references);\n}\n","import { HasTransform, TransformDecode, TransformDecodeCheckError } from '../transform/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../../errors/index.mjs';\n/** Decodes a value or throws if error */\nexport function Decode(...args) {\n const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]];\n if (!Check(schema, references, value))\n throw new TransformDecodeCheckError(schema, value, Errors(schema, references, value).First());\n return HasTransform(schema, references) ? TransformDecode(schema, references, value) : value;\n}\n","import { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsDate, IsFunction, IsObject, IsUndefined, HasPropertyKey } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsKind } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// ValueOrDefault\n// ------------------------------------------------------------------\nfunction ValueOrDefault(schema, value) {\n const defaultValue = HasPropertyKey(schema, 'default') ? schema.default : undefined;\n const clone = IsFunction(defaultValue) ? defaultValue() : Clone(defaultValue);\n return IsUndefined(value) ? clone : IsObject(value) && IsObject(clone) ? Object.assign(clone, value) : value;\n}\n// ------------------------------------------------------------------\n// HasDefaultProperty\n// ------------------------------------------------------------------\nfunction HasDefaultProperty(schema) {\n return IsKind(schema) && 'default' in schema;\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromArray(schema, references, value) {\n // if the value is an array, we attempt to initialize it's elements\n if (IsArray(value)) {\n for (let i = 0; i < value.length; i++) {\n value[i] = Visit(schema.items, references, value[i]);\n }\n return value;\n }\n // ... otherwise use default initialization\n const defaulted = ValueOrDefault(schema, value);\n if (!IsArray(defaulted))\n return defaulted;\n for (let i = 0; i < defaulted.length; i++) {\n defaulted[i] = Visit(schema.items, references, defaulted[i]);\n }\n return defaulted;\n}\nfunction FromDate(schema, references, value) {\n // special case intercept for dates\n return IsDate(value) ? value : ValueOrDefault(schema, value);\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromIntersect(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n return schema.allOf.reduce((acc, schema) => {\n const next = Visit(schema, references, defaulted);\n return IsObject(next) ? { ...acc, ...next } : next;\n }, {});\n}\nfunction FromObject(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n // return defaulted\n if (!IsObject(defaulted))\n return defaulted;\n const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties);\n // properties\n for (const key of knownPropertyKeys) {\n // note: we need to traverse into the object and test if the return value\n // yielded a non undefined result. Here we interpret an undefined result as\n // a non assignable property and continue.\n const propertyValue = Visit(schema.properties[key], references, defaulted[key]);\n if (IsUndefined(propertyValue))\n continue;\n defaulted[key] = Visit(schema.properties[key], references, defaulted[key]);\n }\n // return if not additional properties\n if (!HasDefaultProperty(schema.additionalProperties))\n return defaulted;\n // additional properties\n for (const key of Object.getOwnPropertyNames(defaulted)) {\n if (knownPropertyKeys.includes(key))\n continue;\n defaulted[key] = Visit(schema.additionalProperties, references, defaulted[key]);\n }\n return defaulted;\n}\nfunction FromRecord(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n if (!IsObject(defaulted))\n return defaulted;\n const additionalPropertiesSchema = schema.additionalProperties;\n const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0];\n const knownPropertyKey = new RegExp(propertyKeyPattern);\n // properties\n for (const key of Object.getOwnPropertyNames(defaulted)) {\n if (!(knownPropertyKey.test(key) && HasDefaultProperty(propertySchema)))\n continue;\n defaulted[key] = Visit(propertySchema, references, defaulted[key]);\n }\n // return if not additional properties\n if (!HasDefaultProperty(additionalPropertiesSchema))\n return defaulted;\n // additional properties\n for (const key of Object.getOwnPropertyNames(defaulted)) {\n if (knownPropertyKey.test(key))\n continue;\n defaulted[key] = Visit(additionalPropertiesSchema, references, defaulted[key]);\n }\n return defaulted;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, ValueOrDefault(schema, value));\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n if (!IsArray(defaulted) || IsUndefined(schema.items))\n return defaulted;\n const [items, max] = [schema.items, Math.max(schema.items.length, defaulted.length)];\n for (let i = 0; i < max; i++) {\n if (i < items.length)\n defaulted[i] = Visit(items[i], references, defaulted[i]);\n }\n return defaulted;\n}\nfunction FromUnion(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n for (const inner of schema.anyOf) {\n const result = Visit(inner, references, Clone(defaulted));\n if (Check(inner, references, result)) {\n return result;\n }\n }\n return defaulted;\n}\nfunction Visit(schema, references, value) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'Date':\n return FromDate(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n default:\n return ValueOrDefault(schema_, value);\n }\n}\n/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */\nexport function Default(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { TypeBoxError } from '../../type/error/index.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValuePointerRootSetError extends TypeBoxError {\n constructor(value, path, update) {\n super('Cannot set root value');\n this.value = value;\n this.path = path;\n this.update = update;\n }\n}\nexport class ValuePointerRootDeleteError extends TypeBoxError {\n constructor(value, path) {\n super('Cannot delete root value');\n this.value = value;\n this.path = path;\n }\n}\n// ------------------------------------------------------------------\n// ValuePointer\n// ------------------------------------------------------------------\n/** Provides functionality to update values through RFC6901 string pointers */\n// prettier-ignore\nfunction Escape(component) {\n return component.indexOf('~') === -1 ? component : component.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n/** Formats the given pointer into navigable key components */\n// prettier-ignore\nexport function* Format(pointer) {\n if (pointer === '')\n return;\n let [start, end] = [0, 0];\n for (let i = 0; i < pointer.length; i++) {\n const char = pointer.charAt(i);\n if (char === '/') {\n if (i === 0) {\n start = i + 1;\n }\n else {\n end = i;\n yield Escape(pointer.slice(start, end));\n start = i + 1;\n }\n }\n else {\n end = i;\n }\n }\n yield Escape(pointer.slice(start));\n}\n/** Sets the value at the given pointer. If the value at the pointer does not exist it is created */\n// prettier-ignore\nexport function Set(value, pointer, update) {\n if (pointer === '')\n throw new ValuePointerRootSetError(value, pointer, update);\n let [owner, next, key] = [null, value, ''];\n for (const component of Format(pointer)) {\n if (next[component] === undefined)\n next[component] = {};\n owner = next;\n next = next[component];\n key = component;\n }\n owner[key] = update;\n}\n/** Deletes a value at the given pointer */\n// prettier-ignore\nexport function Delete(value, pointer) {\n if (pointer === '')\n throw new ValuePointerRootDeleteError(value, pointer);\n let [owner, next, key] = [null, value, ''];\n for (const component of Format(pointer)) {\n if (next[component] === undefined || next[component] === null)\n return;\n owner = next;\n next = next[component];\n key = component;\n }\n if (Array.isArray(owner)) {\n const index = parseInt(key);\n owner.splice(index, 1);\n }\n else {\n delete owner[key];\n }\n}\n/** Returns true if a value exists at the given pointer */\n// prettier-ignore\nexport function Has(value, pointer) {\n if (pointer === '')\n return true;\n let [owner, next, key] = [null, value, ''];\n for (const component of Format(pointer)) {\n if (next[component] === undefined)\n return false;\n owner = next;\n next = next[component];\n key = component;\n }\n return Object.getOwnPropertyNames(owner).includes(key);\n}\n/** Gets the value at the given pointer */\n// prettier-ignore\nexport function Get(value, pointer) {\n if (pointer === '')\n return value;\n let current = value;\n for (const component of Format(pointer)) {\n if (current[component] === undefined)\n return undefined;\n current = current[component];\n }\n return current;\n}\n","import { IsObject, IsDate, IsArray, IsTypedArray, IsValueType } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// Equality Checks\n// ------------------------------------------------------------------\nfunction ObjectType(left, right) {\n if (!IsObject(right))\n return false;\n const leftKeys = [...Object.keys(left), ...Object.getOwnPropertySymbols(left)];\n const rightKeys = [...Object.keys(right), ...Object.getOwnPropertySymbols(right)];\n if (leftKeys.length !== rightKeys.length)\n return false;\n return leftKeys.every((key) => Equal(left[key], right[key]));\n}\nfunction DateType(left, right) {\n return IsDate(right) && left.getTime() === right.getTime();\n}\nfunction ArrayType(left, right) {\n if (!IsArray(right) || left.length !== right.length)\n return false;\n return left.every((value, index) => Equal(value, right[index]));\n}\nfunction TypedArrayType(left, right) {\n if (!IsTypedArray(right) || left.length !== right.length || Object.getPrototypeOf(left).constructor.name !== Object.getPrototypeOf(right).constructor.name)\n return false;\n return left.every((value, index) => Equal(value, right[index]));\n}\nfunction ValueType(left, right) {\n return left === right;\n}\n// ------------------------------------------------------------------\n// Equal\n// ------------------------------------------------------------------\n/** Returns true if the left value deep-equals the right */\nexport function Equal(left, right) {\n if (IsDate(left))\n return DateType(left, right);\n if (IsTypedArray(left))\n return TypedArrayType(left, right);\n if (IsArray(left))\n return ArrayType(left, right);\n if (IsObject(left))\n return ObjectType(left, right);\n if (IsValueType(left))\n return ValueType(left, right);\n throw new Error('ValueEquals: Unable to compare value');\n}\n","import { HasPropertyKey, IsStandardObject, IsArray, IsTypedArray, IsValueType } from '../guard/index.mjs';\nimport { ValuePointer } from '../pointer/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Equal } from '../equal/equal.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { Literal } from '../../type/literal/index.mjs';\nimport { Object } from '../../type/object/index.mjs';\nimport { String } from '../../type/string/index.mjs';\nimport { Unknown } from '../../type/unknown/index.mjs';\nimport { Union } from '../../type/union/index.mjs';\nexport const Insert = Object({\n type: Literal('insert'),\n path: String(),\n value: Unknown(),\n});\nexport const Update = Object({\n type: Literal('update'),\n path: String(),\n value: Unknown(),\n});\nexport const Delete = Object({\n type: Literal('delete'),\n path: String(),\n});\nexport const Edit = Union([Insert, Update, Delete]);\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueDiffError extends TypeBoxError {\n constructor(value, message) {\n super(message);\n this.value = value;\n }\n}\n// ------------------------------------------------------------------\n// Command Factory\n// ------------------------------------------------------------------\nfunction CreateUpdate(path, value) {\n return { type: 'update', path, value };\n}\nfunction CreateInsert(path, value) {\n return { type: 'insert', path, value };\n}\nfunction CreateDelete(path) {\n return { type: 'delete', path };\n}\n// ------------------------------------------------------------------\n// AssertDiffable\n// ------------------------------------------------------------------\nfunction AssertDiffable(value) {\n if (globalThis.Object.getOwnPropertySymbols(value).length > 0)\n throw new ValueDiffError(value, 'Cannot diff objects with symbols');\n}\n// ------------------------------------------------------------------\n// Diffing Generators\n// ------------------------------------------------------------------\nfunction* ObjectType(path, current, next) {\n AssertDiffable(current);\n AssertDiffable(next);\n if (!IsStandardObject(next))\n return yield CreateUpdate(path, next);\n const currentKeys = globalThis.Object.getOwnPropertyNames(current);\n const nextKeys = globalThis.Object.getOwnPropertyNames(next);\n // ----------------------------------------------------------------\n // inserts\n // ----------------------------------------------------------------\n for (const key of nextKeys) {\n if (HasPropertyKey(current, key))\n continue;\n yield CreateInsert(`${path}/${key}`, next[key]);\n }\n // ----------------------------------------------------------------\n // updates\n // ----------------------------------------------------------------\n for (const key of currentKeys) {\n if (!HasPropertyKey(next, key))\n continue;\n if (Equal(current, next))\n continue;\n yield* Visit(`${path}/${key}`, current[key], next[key]);\n }\n // ----------------------------------------------------------------\n // deletes\n // ----------------------------------------------------------------\n for (const key of currentKeys) {\n if (HasPropertyKey(next, key))\n continue;\n yield CreateDelete(`${path}/${key}`);\n }\n}\nfunction* ArrayType(path, current, next) {\n if (!IsArray(next))\n return yield CreateUpdate(path, next);\n for (let i = 0; i < Math.min(current.length, next.length); i++) {\n yield* Visit(`${path}/${i}`, current[i], next[i]);\n }\n for (let i = 0; i < next.length; i++) {\n if (i < current.length)\n continue;\n yield CreateInsert(`${path}/${i}`, next[i]);\n }\n for (let i = current.length - 1; i >= 0; i--) {\n if (i < next.length)\n continue;\n yield CreateDelete(`${path}/${i}`);\n }\n}\nfunction* TypedArrayType(path, current, next) {\n if (!IsTypedArray(next) || current.length !== next.length || globalThis.Object.getPrototypeOf(current).constructor.name !== globalThis.Object.getPrototypeOf(next).constructor.name)\n return yield CreateUpdate(path, next);\n for (let i = 0; i < Math.min(current.length, next.length); i++) {\n yield* Visit(`${path}/${i}`, current[i], next[i]);\n }\n}\nfunction* ValueType(path, current, next) {\n if (current === next)\n return;\n yield CreateUpdate(path, next);\n}\nfunction* Visit(path, current, next) {\n if (IsStandardObject(current))\n return yield* ObjectType(path, current, next);\n if (IsArray(current))\n return yield* ArrayType(path, current, next);\n if (IsTypedArray(current))\n return yield* TypedArrayType(path, current, next);\n if (IsValueType(current))\n return yield* ValueType(path, current, next);\n throw new ValueDiffError(current, 'Unable to diff value');\n}\n// ------------------------------------------------------------------\n// Diff\n// ------------------------------------------------------------------\nexport function Diff(current, next) {\n return [...Visit('', current, next)];\n}\n// ------------------------------------------------------------------\n// Patch\n// ------------------------------------------------------------------\nfunction IsRootUpdate(edits) {\n return edits.length > 0 && edits[0].path === '' && edits[0].type === 'update';\n}\nfunction IsIdentity(edits) {\n return edits.length === 0;\n}\nexport function Patch(current, edits) {\n if (IsRootUpdate(edits)) {\n return Clone(edits[0].value);\n }\n if (IsIdentity(edits)) {\n return Clone(current);\n }\n const clone = Clone(current);\n for (const edit of edits) {\n switch (edit.type) {\n case 'insert': {\n ValuePointer.Set(clone, edit.path, edit.value);\n break;\n }\n case 'update': {\n ValuePointer.Set(clone, edit.path, edit.value);\n break;\n }\n case 'delete': {\n ValuePointer.Delete(clone, edit.path);\n break;\n }\n }\n }\n return clone;\n}\n","import { HasTransform, TransformEncode, TransformEncodeCheckError } from '../transform/index.mjs';\nimport { Check } from '../check/index.mjs';\nimport { Errors } from '../../errors/index.mjs';\n/** Encodes a value or throws if error */\nexport function Encode(...args) {\n const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]];\n const encoded = HasTransform(schema, references) ? TransformEncode(schema, references, value) : value;\n if (!Check(schema, references, encoded))\n throw new TransformEncodeCheckError(schema, encoded, Errors(schema, references, encoded).First());\n return encoded;\n}\n","import { IsObject, IsArray, IsTypedArray, IsValueType } from '../guard/index.mjs';\nimport { ValuePointer } from '../pointer/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\n// ------------------------------------------------------------------\n// IsStandardObject\n// ------------------------------------------------------------------\nfunction IsStandardObject(value) {\n return IsObject(value) && !IsArray(value);\n}\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueMutateError extends TypeBoxError {\n constructor(message) {\n super(message);\n }\n}\nfunction ObjectType(root, path, current, next) {\n if (!IsStandardObject(current)) {\n ValuePointer.Set(root, path, Clone(next));\n }\n else {\n const currentKeys = Object.getOwnPropertyNames(current);\n const nextKeys = Object.getOwnPropertyNames(next);\n for (const currentKey of currentKeys) {\n if (!nextKeys.includes(currentKey)) {\n delete current[currentKey];\n }\n }\n for (const nextKey of nextKeys) {\n if (!currentKeys.includes(nextKey)) {\n current[nextKey] = null;\n }\n }\n for (const nextKey of nextKeys) {\n Visit(root, `${path}/${nextKey}`, current[nextKey], next[nextKey]);\n }\n }\n}\nfunction ArrayType(root, path, current, next) {\n if (!IsArray(current)) {\n ValuePointer.Set(root, path, Clone(next));\n }\n else {\n for (let index = 0; index < next.length; index++) {\n Visit(root, `${path}/${index}`, current[index], next[index]);\n }\n current.splice(next.length);\n }\n}\nfunction TypedArrayType(root, path, current, next) {\n if (IsTypedArray(current) && current.length === next.length) {\n for (let i = 0; i < current.length; i++) {\n current[i] = next[i];\n }\n }\n else {\n ValuePointer.Set(root, path, Clone(next));\n }\n}\nfunction ValueType(root, path, current, next) {\n if (current === next)\n return;\n ValuePointer.Set(root, path, next);\n}\nfunction Visit(root, path, current, next) {\n if (IsArray(next))\n return ArrayType(root, path, current, next);\n if (IsTypedArray(next))\n return TypedArrayType(root, path, current, next);\n if (IsStandardObject(next))\n return ObjectType(root, path, current, next);\n if (IsValueType(next))\n return ValueType(root, path, current, next);\n}\n// ------------------------------------------------------------------\n// IsNonMutableValue\n// ------------------------------------------------------------------\nfunction IsNonMutableValue(value) {\n return IsTypedArray(value) || IsValueType(value);\n}\nfunction IsMismatchedValue(current, next) {\n // prettier-ignore\n return ((IsStandardObject(current) && IsArray(next)) ||\n (IsArray(current) && IsStandardObject(next)));\n}\n// ------------------------------------------------------------------\n// Mutate\n// ------------------------------------------------------------------\n/** `[Mutable]` Performs a deep mutable value assignment while retaining internal references */\nexport function Mutate(current, next) {\n if (IsNonMutableValue(current) || IsNonMutableValue(next))\n throw new ValueMutateError('Only object and array types can be mutated at the root level');\n if (IsMismatchedValue(current, next))\n throw new ValueMutateError('Cannot assign due type mismatch of assignable values');\n Visit(current, '', current, next);\n}\n","import { TypeBoxError } from '../../type/error/index.mjs';\nimport { TransformDecode, TransformEncode, HasTransform } from '../transform/index.mjs';\nimport { Assert } from '../assert/index.mjs';\nimport { Cast } from '../cast/index.mjs';\nimport { Clean } from '../clean/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Convert } from '../convert/index.mjs';\nimport { Default } from '../default/index.mjs';\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nimport { IsArray, IsUndefined } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// Error\n// ------------------------------------------------------------------\nexport class ParseError extends TypeBoxError {\n constructor(message) {\n super(message);\n }\n}\n// prettier-ignore\nexport var ParseRegistry;\n(function (ParseRegistry) {\n const registry = new Map([\n ['Assert', (type, references, value) => { Assert(type, references, value); return value; }],\n ['Cast', (type, references, value) => Cast(type, references, value)],\n ['Clean', (type, references, value) => Clean(type, references, value)],\n ['Clone', (_type, _references, value) => Clone(value)],\n ['Convert', (type, references, value) => Convert(type, references, value)],\n ['Decode', (type, references, value) => (HasTransform(type, references) ? TransformDecode(type, references, value) : value)],\n ['Default', (type, references, value) => Default(type, references, value)],\n ['Encode', (type, references, value) => (HasTransform(type, references) ? TransformEncode(type, references, value) : value)],\n ]);\n // Deletes an entry from the registry\n function Delete(key) {\n registry.delete(key);\n }\n ParseRegistry.Delete = Delete;\n // Sets an entry in the registry\n function Set(key, callback) {\n registry.set(key, callback);\n }\n ParseRegistry.Set = Set;\n // Gets an entry in the registry\n function Get(key) {\n return registry.get(key);\n }\n ParseRegistry.Get = Get;\n})(ParseRegistry || (ParseRegistry = {}));\n// ------------------------------------------------------------------\n// Default Parse Pipeline\n// ------------------------------------------------------------------\n// prettier-ignore\nexport const ParseDefault = [\n 'Clone',\n 'Clean',\n 'Default',\n 'Convert',\n 'Assert',\n 'Decode'\n];\n// ------------------------------------------------------------------\n// ParseValue\n// ------------------------------------------------------------------\nfunction ParseValue(operations, type, references, value) {\n return operations.reduce((value, operationKey) => {\n const operation = ParseRegistry.Get(operationKey);\n if (IsUndefined(operation))\n throw new ParseError(`Unable to find Parse operation '${operationKey}'`);\n return operation(type, references, value);\n }, value);\n}\n/** Parses a value */\nexport function Parse(...args) {\n // prettier-ignore\n const [operations, schema, references, value] = (args.length === 4 ? [args[0], args[1], args[2], args[3]] :\n args.length === 3 ? IsArray(args[0]) ? [args[0], args[1], [], args[2]] : [ParseDefault, args[0], args[1], args[2]] :\n args.length === 2 ? [ParseDefault, args[0], [], args[1]] :\n (() => { throw new ParseError('Invalid Arguments'); })());\n return ParseValue(operations, schema, references, value);\n}\n","export { Errors, ValueErrorIterator } from '../../errors/index.mjs';\nexport { Assert } from '../assert/index.mjs';\nexport { Cast } from '../cast/index.mjs';\nexport { Check } from '../check/index.mjs';\nexport { Clean } from '../clean/index.mjs';\nexport { Clone } from '../clone/index.mjs';\nexport { Convert } from '../convert/index.mjs';\nexport { Create } from '../create/index.mjs';\nexport { Decode } from '../decode/index.mjs';\nexport { Default } from '../default/index.mjs';\nexport { Diff, Patch, Edit } from '../delta/index.mjs';\nexport { Encode } from '../encode/index.mjs';\nexport { Equal } from '../equal/index.mjs';\nexport { Hash } from '../hash/index.mjs';\nexport { Mutate } from '../mutate/index.mjs';\nexport { Parse } from '../parse/index.mjs';\n","import { TransformEncode, TransformDecode, HasTransform, TransformDecodeCheckError, TransformEncodeCheckError } from '../value/transform/index.mjs';\nimport { Errors } from '../errors/index.mjs';\nimport { TypeSystemPolicy } from '../system/index.mjs';\nimport { TypeBoxError } from '../type/error/index.mjs';\nimport { Deref } from '../value/deref/index.mjs';\nimport { Hash } from '../value/hash/index.mjs';\nimport { Kind } from '../type/symbols/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../type/registry/index.mjs';\nimport { KeyOfPattern } from '../type/keyof/index.mjs';\nimport { ExtendsUndefinedCheck } from '../type/extends/extends-undefined.mjs';\nimport { Never } from '../type/never/index.mjs';\nimport { Ref } from '../type/ref/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsString, IsNumber, IsBigInt } from '../value/guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsSchema } from '../type/guard/type.mjs';\n// ------------------------------------------------------------------\n// TypeCheck\n// ------------------------------------------------------------------\nexport class TypeCheck {\n constructor(schema, references, checkFunc, code) {\n this.schema = schema;\n this.references = references;\n this.checkFunc = checkFunc;\n this.code = code;\n this.hasTransform = HasTransform(schema, references);\n }\n /** Returns the generated assertion code used to validate this type. */\n Code() {\n return this.code;\n }\n /** Returns the schema type used to validate */\n Schema() {\n return this.schema;\n }\n /** Returns reference types used to validate */\n References() {\n return this.references;\n }\n /** Returns an iterator for each error in this value. */\n Errors(value) {\n return Errors(this.schema, this.references, value);\n }\n /** Returns true if the value matches the compiled type. */\n Check(value) {\n return this.checkFunc(value);\n }\n /** Decodes a value or throws if error */\n Decode(value) {\n if (!this.checkFunc(value))\n throw new TransformDecodeCheckError(this.schema, value, this.Errors(value).First());\n return (this.hasTransform ? TransformDecode(this.schema, this.references, value) : value);\n }\n /** Encodes a value or throws if error */\n Encode(value) {\n const encoded = this.hasTransform ? TransformEncode(this.schema, this.references, value) : value;\n if (!this.checkFunc(encoded))\n throw new TransformEncodeCheckError(this.schema, value, this.Errors(value).First());\n return encoded;\n }\n}\n// ------------------------------------------------------------------\n// Character\n// ------------------------------------------------------------------\nvar Character;\n(function (Character) {\n function DollarSign(code) {\n return code === 36;\n }\n Character.DollarSign = DollarSign;\n function IsUnderscore(code) {\n return code === 95;\n }\n Character.IsUnderscore = IsUnderscore;\n function IsAlpha(code) {\n return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);\n }\n Character.IsAlpha = IsAlpha;\n function IsNumeric(code) {\n return code >= 48 && code <= 57;\n }\n Character.IsNumeric = IsNumeric;\n})(Character || (Character = {}));\n// ------------------------------------------------------------------\n// MemberExpression\n// ------------------------------------------------------------------\nvar MemberExpression;\n(function (MemberExpression) {\n function IsFirstCharacterNumeric(value) {\n if (value.length === 0)\n return false;\n return Character.IsNumeric(value.charCodeAt(0));\n }\n function IsAccessor(value) {\n if (IsFirstCharacterNumeric(value))\n return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n const check = Character.IsAlpha(code) || Character.IsNumeric(code) || Character.DollarSign(code) || Character.IsUnderscore(code);\n if (!check)\n return false;\n }\n return true;\n }\n function EscapeHyphen(key) {\n return key.replace(/'/g, \"\\\\'\");\n }\n function Encode(object, key) {\n return IsAccessor(key) ? `${object}.${key}` : `${object}['${EscapeHyphen(key)}']`;\n }\n MemberExpression.Encode = Encode;\n})(MemberExpression || (MemberExpression = {}));\n// ------------------------------------------------------------------\n// Identifier\n// ------------------------------------------------------------------\nvar Identifier;\n(function (Identifier) {\n function Encode($id) {\n const buffer = [];\n for (let i = 0; i < $id.length; i++) {\n const code = $id.charCodeAt(i);\n if (Character.IsNumeric(code) || Character.IsAlpha(code)) {\n buffer.push($id.charAt(i));\n }\n else {\n buffer.push(`_${code}_`);\n }\n }\n return buffer.join('').replace(/__/g, '_');\n }\n Identifier.Encode = Encode;\n})(Identifier || (Identifier = {}));\n// ------------------------------------------------------------------\n// LiteralString\n// ------------------------------------------------------------------\nvar LiteralString;\n(function (LiteralString) {\n function Escape(content) {\n return content.replace(/'/g, \"\\\\'\");\n }\n LiteralString.Escape = Escape;\n})(LiteralString || (LiteralString = {}));\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class TypeCompilerUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super('Unknown type');\n this.schema = schema;\n }\n}\nexport class TypeCompilerTypeGuardError extends TypeBoxError {\n constructor(schema) {\n super('Preflight validation check failed to guard for the given schema');\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// Policy\n// ------------------------------------------------------------------\nexport var Policy;\n(function (Policy) {\n function IsExactOptionalProperty(value, key, expression) {\n return TypeSystemPolicy.ExactOptionalPropertyTypes ? `('${key}' in ${value} ? ${expression} : true)` : `(${MemberExpression.Encode(value, key)} !== undefined ? ${expression} : true)`;\n }\n Policy.IsExactOptionalProperty = IsExactOptionalProperty;\n function IsObjectLike(value) {\n return !TypeSystemPolicy.AllowArrayObject ? `(typeof ${value} === 'object' && ${value} !== null && !Array.isArray(${value}))` : `(typeof ${value} === 'object' && ${value} !== null)`;\n }\n Policy.IsObjectLike = IsObjectLike;\n function IsRecordLike(value) {\n return !TypeSystemPolicy.AllowArrayObject\n ? `(typeof ${value} === 'object' && ${value} !== null && !Array.isArray(${value}) && !(${value} instanceof Date) && !(${value} instanceof Uint8Array))`\n : `(typeof ${value} === 'object' && ${value} !== null && !(${value} instanceof Date) && !(${value} instanceof Uint8Array))`;\n }\n Policy.IsRecordLike = IsRecordLike;\n function IsNumberLike(value) {\n return TypeSystemPolicy.AllowNaN ? `typeof ${value} === 'number'` : `Number.isFinite(${value})`;\n }\n Policy.IsNumberLike = IsNumberLike;\n function IsVoidLike(value) {\n return TypeSystemPolicy.AllowNullVoid ? `(${value} === undefined || ${value} === null)` : `${value} === undefined`;\n }\n Policy.IsVoidLike = IsVoidLike;\n})(Policy || (Policy = {}));\n/** Compiles Types for Runtime Type Checking */\nexport var TypeCompiler;\n(function (TypeCompiler) {\n // ----------------------------------------------------------------\n // Guards\n // ----------------------------------------------------------------\n function IsAnyOrUnknown(schema) {\n return schema[Kind] === 'Any' || schema[Kind] === 'Unknown';\n }\n // ----------------------------------------------------------------\n // Types\n // ----------------------------------------------------------------\n function* FromAny(schema, references, value) {\n yield 'true';\n }\n function* FromArgument(schema, references, value) {\n yield 'true';\n }\n function* FromArray(schema, references, value) {\n yield `Array.isArray(${value})`;\n const [parameter, accumulator] = [CreateParameter('value', 'any'), CreateParameter('acc', 'number')];\n if (IsNumber(schema.maxItems))\n yield `${value}.length <= ${schema.maxItems}`;\n if (IsNumber(schema.minItems))\n yield `${value}.length >= ${schema.minItems}`;\n const elementExpression = CreateExpression(schema.items, references, 'value');\n // yield `${value}.every((${parameter}) => ${elementExpression})` // issue: 1519\n yield `((array) => { for(const ${parameter} of array) if(!(${elementExpression})) { return false }; return true; })(${value})`;\n if (IsSchema(schema.contains) || IsNumber(schema.minContains) || IsNumber(schema.maxContains)) {\n const containsSchema = IsSchema(schema.contains) ? schema.contains : Never();\n const checkExpression = CreateExpression(containsSchema, references, 'value');\n const checkMinContains = IsNumber(schema.minContains) ? [`(count >= ${schema.minContains})`] : [];\n const checkMaxContains = IsNumber(schema.maxContains) ? [`(count <= ${schema.maxContains})`] : [];\n const checkCount = `const count = value.reduce((${accumulator}, ${parameter}) => ${checkExpression} ? acc + 1 : acc, 0)`;\n const check = [`(count > 0)`, ...checkMinContains, ...checkMaxContains].join(' && ');\n yield `((${parameter}) => { ${checkCount}; return ${check}})(${value})`;\n }\n if (schema.uniqueItems === true) {\n const check = `const hashed = hash(element); if(set.has(hashed)) { return false } else { set.add(hashed) } } return true`;\n const block = `const set = new Set(); for(const element of value) { ${check} }`;\n yield `((${parameter}) => { ${block} )(${value})`;\n }\n }\n function* FromAsyncIterator(schema, references, value) {\n yield `(typeof value === 'object' && Symbol.asyncIterator in ${value})`;\n }\n function* FromBigInt(schema, references, value) {\n yield `(typeof ${value} === 'bigint')`;\n if (IsBigInt(schema.exclusiveMaximum))\n yield `${value} < BigInt(${schema.exclusiveMaximum})`;\n if (IsBigInt(schema.exclusiveMinimum))\n yield `${value} > BigInt(${schema.exclusiveMinimum})`;\n if (IsBigInt(schema.maximum))\n yield `${value} <= BigInt(${schema.maximum})`;\n if (IsBigInt(schema.minimum))\n yield `${value} >= BigInt(${schema.minimum})`;\n if (IsBigInt(schema.multipleOf))\n yield `(${value} % BigInt(${schema.multipleOf})) === 0`;\n }\n function* FromBoolean(schema, references, value) {\n yield `(typeof ${value} === 'boolean')`;\n }\n function* FromConstructor(schema, references, value) {\n yield* Visit(schema.returns, references, `${value}.prototype`);\n }\n function* FromDate(schema, references, value) {\n yield `(${value} instanceof Date) && Number.isFinite(${value}.getTime())`;\n if (IsNumber(schema.exclusiveMaximumTimestamp))\n yield `${value}.getTime() < ${schema.exclusiveMaximumTimestamp}`;\n if (IsNumber(schema.exclusiveMinimumTimestamp))\n yield `${value}.getTime() > ${schema.exclusiveMinimumTimestamp}`;\n if (IsNumber(schema.maximumTimestamp))\n yield `${value}.getTime() <= ${schema.maximumTimestamp}`;\n if (IsNumber(schema.minimumTimestamp))\n yield `${value}.getTime() >= ${schema.minimumTimestamp}`;\n if (IsNumber(schema.multipleOfTimestamp))\n yield `(${value}.getTime() % ${schema.multipleOfTimestamp}) === 0`;\n }\n function* FromFunction(schema, references, value) {\n yield `(typeof ${value} === 'function')`;\n }\n function* FromImport(schema, references, value) {\n const members = globalThis.Object.getOwnPropertyNames(schema.$defs).reduce((result, key) => {\n return [...result, schema.$defs[key]];\n }, []);\n yield* Visit(Ref(schema.$ref), [...references, ...members], value);\n }\n function* FromInteger(schema, references, value) {\n yield `Number.isInteger(${value})`;\n if (IsNumber(schema.exclusiveMaximum))\n yield `${value} < ${schema.exclusiveMaximum}`;\n if (IsNumber(schema.exclusiveMinimum))\n yield `${value} > ${schema.exclusiveMinimum}`;\n if (IsNumber(schema.maximum))\n yield `${value} <= ${schema.maximum}`;\n if (IsNumber(schema.minimum))\n yield `${value} >= ${schema.minimum}`;\n if (IsNumber(schema.multipleOf))\n yield `(${value} % ${schema.multipleOf}) === 0`;\n }\n function* FromIntersect(schema, references, value) {\n const check1 = schema.allOf.map((schema) => CreateExpression(schema, references, value)).join(' && ');\n if (schema.unevaluatedProperties === false) {\n const keyCheck = CreateVariable(`${new RegExp(KeyOfPattern(schema))};`);\n const check2 = `Object.getOwnPropertyNames(${value}).every(key => ${keyCheck}.test(key))`;\n yield `(${check1} && ${check2})`;\n }\n else if (IsSchema(schema.unevaluatedProperties)) {\n const keyCheck = CreateVariable(`${new RegExp(KeyOfPattern(schema))};`);\n const check2 = `Object.getOwnPropertyNames(${value}).every(key => ${keyCheck}.test(key) || ${CreateExpression(schema.unevaluatedProperties, references, `${value}[key]`)})`;\n yield `(${check1} && ${check2})`;\n }\n else {\n yield `(${check1})`;\n }\n }\n function* FromIterator(schema, references, value) {\n yield `(typeof value === 'object' && Symbol.iterator in ${value})`;\n }\n function* FromLiteral(schema, references, value) {\n if (typeof schema.const === 'number' || typeof schema.const === 'boolean') {\n yield `(${value} === ${schema.const})`;\n }\n else {\n yield `(${value} === '${LiteralString.Escape(schema.const)}')`;\n }\n }\n function* FromNever(schema, references, value) {\n yield `false`;\n }\n function* FromNot(schema, references, value) {\n const expression = CreateExpression(schema.not, references, value);\n yield `(!${expression})`;\n }\n function* FromNull(schema, references, value) {\n yield `(${value} === null)`;\n }\n function* FromNumber(schema, references, value) {\n yield Policy.IsNumberLike(value);\n if (IsNumber(schema.exclusiveMaximum))\n yield `${value} < ${schema.exclusiveMaximum}`;\n if (IsNumber(schema.exclusiveMinimum))\n yield `${value} > ${schema.exclusiveMinimum}`;\n if (IsNumber(schema.maximum))\n yield `${value} <= ${schema.maximum}`;\n if (IsNumber(schema.minimum))\n yield `${value} >= ${schema.minimum}`;\n if (IsNumber(schema.multipleOf))\n yield `(${value} % ${schema.multipleOf}) === 0`;\n }\n function* FromObject(schema, references, value) {\n yield Policy.IsObjectLike(value);\n if (IsNumber(schema.minProperties))\n yield `Object.getOwnPropertyNames(${value}).length >= ${schema.minProperties}`;\n if (IsNumber(schema.maxProperties))\n yield `Object.getOwnPropertyNames(${value}).length <= ${schema.maxProperties}`;\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n for (const knownKey of knownKeys) {\n const memberExpression = MemberExpression.Encode(value, knownKey);\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n yield* Visit(property, references, memberExpression);\n if (ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property))\n yield `('${knownKey}' in ${value})`;\n }\n else {\n const expression = CreateExpression(property, references, memberExpression);\n yield Policy.IsExactOptionalProperty(value, knownKey, expression);\n }\n }\n if (schema.additionalProperties === false) {\n if (schema.required && schema.required.length === knownKeys.length) {\n yield `Object.getOwnPropertyNames(${value}).length === ${knownKeys.length}`;\n }\n else {\n const keys = `[${knownKeys.map((key) => `'${key}'`).join(', ')}]`;\n yield `Object.getOwnPropertyNames(${value}).every(key => ${keys}.includes(key))`;\n }\n }\n if (typeof schema.additionalProperties === 'object') {\n const expression = CreateExpression(schema.additionalProperties, references, `${value}[key]`);\n const keys = `[${knownKeys.map((key) => `'${key}'`).join(', ')}]`;\n yield `(Object.getOwnPropertyNames(${value}).every(key => ${keys}.includes(key) || ${expression}))`;\n }\n }\n function* FromPromise(schema, references, value) {\n yield `${value} instanceof Promise`;\n }\n function* FromRecord(schema, references, value) {\n yield Policy.IsRecordLike(value);\n if (IsNumber(schema.minProperties))\n yield `Object.getOwnPropertyNames(${value}).length >= ${schema.minProperties}`;\n if (IsNumber(schema.maxProperties))\n yield `Object.getOwnPropertyNames(${value}).length <= ${schema.maxProperties}`;\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const variable = CreateVariable(`${new RegExp(patternKey)}`);\n const check1 = CreateExpression(patternSchema, references, 'value');\n const check2 = IsSchema(schema.additionalProperties) ? CreateExpression(schema.additionalProperties, references, value) : schema.additionalProperties === false ? 'false' : 'true';\n const expression = `(${variable}.test(key) ? ${check1} : ${check2})`;\n yield `(Object.entries(${value}).every(([key, value]) => ${expression}))`;\n }\n function* FromRef(schema, references, value) {\n const target = Deref(schema, references);\n // Reference: If we have seen this reference before we can just yield and return the function call.\n // If this isn't the case we defer to visit to generate and set the function for subsequent passes.\n if (state.functions.has(schema.$ref))\n return yield `${CreateFunctionName(schema.$ref)}(${value})`;\n yield* Visit(target, references, value);\n }\n function* FromRegExp(schema, references, value) {\n const variable = CreateVariable(`${new RegExp(schema.source, schema.flags)};`);\n yield `(typeof ${value} === 'string')`;\n if (IsNumber(schema.maxLength))\n yield `${value}.length <= ${schema.maxLength}`;\n if (IsNumber(schema.minLength))\n yield `${value}.length >= ${schema.minLength}`;\n yield `${variable}.test(${value})`;\n }\n function* FromString(schema, references, value) {\n yield `(typeof ${value} === 'string')`;\n if (IsNumber(schema.maxLength))\n yield `${value}.length <= ${schema.maxLength}`;\n if (IsNumber(schema.minLength))\n yield `${value}.length >= ${schema.minLength}`;\n if (schema.pattern !== undefined) {\n const variable = CreateVariable(`${new RegExp(schema.pattern)};`);\n yield `${variable}.test(${value})`;\n }\n if (schema.format !== undefined) {\n yield `format('${schema.format}', ${value})`;\n }\n }\n function* FromSymbol(schema, references, value) {\n yield `(typeof ${value} === 'symbol')`;\n }\n function* FromTemplateLiteral(schema, references, value) {\n yield `(typeof ${value} === 'string')`;\n const variable = CreateVariable(`${new RegExp(schema.pattern)};`);\n yield `${variable}.test(${value})`;\n }\n function* FromThis(schema, references, value) {\n // Note: This types are assured to be hoisted prior to this call. Just yield the function.\n yield `${CreateFunctionName(schema.$ref)}(${value})`;\n }\n function* FromTuple(schema, references, value) {\n yield `Array.isArray(${value})`;\n if (schema.items === undefined)\n return yield `${value}.length === 0`;\n yield `(${value}.length === ${schema.maxItems})`;\n for (let i = 0; i < schema.items.length; i++) {\n const expression = CreateExpression(schema.items[i], references, `${value}[${i}]`);\n yield `${expression}`;\n }\n }\n function* FromUndefined(schema, references, value) {\n yield `${value} === undefined`;\n }\n function* FromUnion(schema, references, value) {\n const expressions = schema.anyOf.map((schema) => CreateExpression(schema, references, value));\n yield `(${expressions.join(' || ')})`;\n }\n function* FromUint8Array(schema, references, value) {\n yield `${value} instanceof Uint8Array`;\n if (IsNumber(schema.maxByteLength))\n yield `(${value}.length <= ${schema.maxByteLength})`;\n if (IsNumber(schema.minByteLength))\n yield `(${value}.length >= ${schema.minByteLength})`;\n }\n function* FromUnknown(schema, references, value) {\n yield 'true';\n }\n function* FromVoid(schema, references, value) {\n yield Policy.IsVoidLike(value);\n }\n function* FromKind(schema, references, value) {\n const instance = state.instances.size;\n state.instances.set(instance, schema);\n yield `kind('${schema[Kind]}', ${instance}, ${value})`;\n }\n function* Visit(schema, references, value, useHoisting = true) {\n const references_ = IsString(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n // --------------------------------------------------------------\n // Hoisting\n // --------------------------------------------------------------\n if (useHoisting && IsString(schema.$id)) {\n const functionName = CreateFunctionName(schema.$id);\n if (state.functions.has(functionName)) {\n return yield `${functionName}(${value})`;\n }\n else {\n // Note: In the case of cyclic types, we need to create a 'functions' record\n // to prevent infinitely re-visiting the CreateFunction. Subsequent attempts\n // to visit will be caught by the above condition.\n state.functions.set(functionName, '<deferred>');\n const functionCode = CreateFunction(functionName, schema, references, 'value', false);\n state.functions.set(functionName, functionCode);\n return yield `${functionName}(${value})`;\n }\n }\n switch (schema_[Kind]) {\n case 'Any':\n return yield* FromAny(schema_, references_, value);\n case 'Argument':\n return yield* FromArgument(schema_, references_, value);\n case 'Array':\n return yield* FromArray(schema_, references_, value);\n case 'AsyncIterator':\n return yield* FromAsyncIterator(schema_, references_, value);\n case 'BigInt':\n return yield* FromBigInt(schema_, references_, value);\n case 'Boolean':\n return yield* FromBoolean(schema_, references_, value);\n case 'Constructor':\n return yield* FromConstructor(schema_, references_, value);\n case 'Date':\n return yield* FromDate(schema_, references_, value);\n case 'Function':\n return yield* FromFunction(schema_, references_, value);\n case 'Import':\n return yield* FromImport(schema_, references_, value);\n case 'Integer':\n return yield* FromInteger(schema_, references_, value);\n case 'Intersect':\n return yield* FromIntersect(schema_, references_, value);\n case 'Iterator':\n return yield* FromIterator(schema_, references_, value);\n case 'Literal':\n return yield* FromLiteral(schema_, references_, value);\n case 'Never':\n return yield* FromNever(schema_, references_, value);\n case 'Not':\n return yield* FromNot(schema_, references_, value);\n case 'Null':\n return yield* FromNull(schema_, references_, value);\n case 'Number':\n return yield* FromNumber(schema_, references_, value);\n case 'Object':\n return yield* FromObject(schema_, references_, value);\n case 'Promise':\n return yield* FromPromise(schema_, references_, value);\n case 'Record':\n return yield* FromRecord(schema_, references_, value);\n case 'Ref':\n return yield* FromRef(schema_, references_, value);\n case 'RegExp':\n return yield* FromRegExp(schema_, references_, value);\n case 'String':\n return yield* FromString(schema_, references_, value);\n case 'Symbol':\n return yield* FromSymbol(schema_, references_, value);\n case 'TemplateLiteral':\n return yield* FromTemplateLiteral(schema_, references_, value);\n case 'This':\n return yield* FromThis(schema_, references_, value);\n case 'Tuple':\n return yield* FromTuple(schema_, references_, value);\n case 'Undefined':\n return yield* FromUndefined(schema_, references_, value);\n case 'Union':\n return yield* FromUnion(schema_, references_, value);\n case 'Uint8Array':\n return yield* FromUint8Array(schema_, references_, value);\n case 'Unknown':\n return yield* FromUnknown(schema_, references_, value);\n case 'Void':\n return yield* FromVoid(schema_, references_, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new TypeCompilerUnknownTypeError(schema);\n return yield* FromKind(schema_, references_, value);\n }\n }\n // ----------------------------------------------------------------\n // Compiler State\n // ----------------------------------------------------------------\n // prettier-ignore\n const state = {\n language: 'javascript', // target language\n functions: new Map(), // local functions\n variables: new Map(), // local variables\n instances: new Map() // exterior kind instances\n };\n // ----------------------------------------------------------------\n // Compiler Factory\n // ----------------------------------------------------------------\n function CreateExpression(schema, references, value, useHoisting = true) {\n return `(${[...Visit(schema, references, value, useHoisting)].join(' && ')})`;\n }\n function CreateFunctionName($id) {\n return `check_${Identifier.Encode($id)}`;\n }\n function CreateVariable(expression) {\n const variableName = `local_${state.variables.size}`;\n state.variables.set(variableName, `const ${variableName} = ${expression}`);\n return variableName;\n }\n function CreateFunction(name, schema, references, value, useHoisting = true) {\n const [newline, pad] = ['\\n', (length) => ''.padStart(length, ' ')];\n const parameter = CreateParameter('value', 'any');\n const returns = CreateReturns('boolean');\n const expression = [...Visit(schema, references, value, useHoisting)].map((expression) => `${pad(4)}${expression}`).join(` &&${newline}`);\n return `function ${name}(${parameter})${returns} {${newline}${pad(2)}return (${newline}${expression}${newline}${pad(2)})\\n}`;\n }\n function CreateParameter(name, type) {\n const annotation = state.language === 'typescript' ? `: ${type}` : '';\n return `${name}${annotation}`;\n }\n function CreateReturns(type) {\n return state.language === 'typescript' ? `: ${type}` : '';\n }\n // ----------------------------------------------------------------\n // Compile\n // ----------------------------------------------------------------\n function Build(schema, references, options) {\n const functionCode = CreateFunction('check', schema, references, 'value'); // will populate functions and variables\n const parameter = CreateParameter('value', 'any');\n const returns = CreateReturns('boolean');\n const functions = [...state.functions.values()];\n const variables = [...state.variables.values()];\n // prettier-ignore\n const checkFunction = IsString(schema.$id) // ensure top level schemas with $id's are hoisted\n ? `return function check(${parameter})${returns} {\\n return ${CreateFunctionName(schema.$id)}(value)\\n}`\n : `return ${functionCode}`;\n return [...variables, ...functions, checkFunction].join('\\n');\n }\n /** Generates the code used to assert this type and returns it as a string */\n function Code(...args) {\n const defaults = { language: 'javascript' };\n // prettier-ignore\n const [schema, references, options] = (args.length === 2 && IsArray(args[1]) ? [args[0], args[1], defaults] :\n args.length === 2 && !IsArray(args[1]) ? [args[0], [], args[1]] :\n args.length === 3 ? [args[0], args[1], args[2]] :\n args.length === 1 ? [args[0], [], defaults] :\n [null, [], defaults]);\n // compiler-reset\n state.language = options.language;\n state.variables.clear();\n state.functions.clear();\n state.instances.clear();\n if (!IsSchema(schema))\n throw new TypeCompilerTypeGuardError(schema);\n for (const schema of references)\n if (!IsSchema(schema))\n throw new TypeCompilerTypeGuardError(schema);\n return Build(schema, references, options);\n }\n TypeCompiler.Code = Code;\n /** Compiles a TypeBox type for optimal runtime type checking. Types must be valid TypeBox types of TSchema */\n function Compile(schema, references = []) {\n const generatedCode = Code(schema, references, { language: 'javascript' });\n const compiledFunction = globalThis.Function('kind', 'format', 'hash', generatedCode);\n const instances = new Map(state.instances);\n function typeRegistryFunction(kind, instance, value) {\n if (!TypeRegistry.Has(kind) || !instances.has(instance))\n return false;\n const checkFunc = TypeRegistry.Get(kind);\n const schema = instances.get(instance);\n return checkFunc(schema, value);\n }\n function formatRegistryFunction(format, value) {\n if (!FormatRegistry.Has(format))\n return false;\n const checkFunc = FormatRegistry.Get(format);\n return checkFunc(value);\n }\n function hashFunction(value) {\n return Hash(value);\n }\n const checkFunction = compiledFunction(typeRegistryFunction, formatRegistryFunction, hashFunction);\n return new TypeCheck(schema, references, checkFunction, generatedCode);\n }\n TypeCompiler.Compile = Compile;\n})(TypeCompiler || (TypeCompiler = {}));\n","const isBun = typeof Bun < \"u\", isDeno = typeof Deno < \"u\";\nfunction isCloudflareWorker() {\n try {\n if (\n // @ts-ignore\n typeof caches < \"u\" && // @ts-ignore\n typeof caches.default < \"u\" || typeof WebSocketPair < \"u\"\n ) return !0;\n } catch {\n return !1;\n }\n return !1;\n}\nexport {\n isBun,\n isCloudflareWorker,\n isDeno\n};\n","import { isBun } from \"./utils.mjs\";\nconst mime = {\n aac: \"audio/aac\",\n abw: \"application/x-abiword\",\n ai: \"application/postscript\",\n arc: \"application/octet-stream\",\n avi: \"video/x-msvideo\",\n azw: \"application/vnd.amazon.ebook\",\n bin: \"application/octet-stream\",\n bz: \"application/x-bzip\",\n bz2: \"application/x-bzip2\",\n csh: \"application/x-csh\",\n css: \"text/css\",\n csv: \"text/csv\",\n doc: \"application/msword\",\n dll: \"application/octet-stream\",\n eot: \"application/vnd.ms-fontobject\",\n epub: \"application/epub+zip\",\n gif: \"image/gif\",\n htm: \"text/html\",\n html: \"text/html\",\n ico: \"image/x-icon\",\n ics: \"text/calendar\",\n jar: \"application/java-archive\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n js: \"application/javascript\",\n json: \"application/json\",\n mid: \"audio/midi\",\n midi: \"audio/midi\",\n mp2: \"audio/mpeg\",\n mp3: \"audio/mpeg\",\n mp4: \"video/mp4\",\n mpa: \"video/mpeg\",\n mpe: \"video/mpeg\",\n mpeg: \"video/mpeg\",\n mpkg: \"application/vnd.apple.installer+xml\",\n odp: \"application/vnd.oasis.opendocument.presentation\",\n ods: \"application/vnd.oasis.opendocument.spreadsheet\",\n odt: \"application/vnd.oasis.opendocument.text\",\n oga: \"audio/ogg\",\n ogv: \"video/ogg\",\n ogx: \"application/ogg\",\n otf: \"font/otf\",\n png: \"image/png\",\n pdf: \"application/pdf\",\n ppt: \"application/vnd.ms-powerpoint\",\n rar: \"application/x-rar-compressed\",\n rtf: \"application/rtf\",\n sh: \"application/x-sh\",\n svg: \"image/svg+xml\",\n swf: \"application/x-shockwave-flash\",\n tar: \"application/x-tar\",\n tif: \"image/tiff\",\n tiff: \"image/tiff\",\n ts: \"application/typescript\",\n ttf: \"font/ttf\",\n txt: \"text/plain\",\n vsd: \"application/vnd.visio\",\n wav: \"audio/x-wav\",\n weba: \"audio/webm\",\n webm: \"video/webm\",\n webp: \"image/webp\",\n woff: \"font/woff\",\n woff2: \"font/woff2\",\n xhtml: \"application/xhtml+xml\",\n xls: \"application/vnd.ms-excel\",\n xlsx: \"application/vnd.ms-excel\",\n xlsx_OLD: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n xml: \"application/xml\",\n xul: \"application/vnd.mozilla.xul+xml\",\n zip: \"application/zip\",\n \"3gp\": \"video/3gpp\",\n \"3gp_DOES_NOT_CONTAIN_VIDEO\": \"audio/3gpp\",\n \"3gp2\": \"video/3gpp2\",\n \"3gp2_DOES_NOT_CONTAIN_VIDEO\": \"audio/3gpp2\",\n \"7z\": \"application/x-7z-compressed\"\n}, getFileExtension = (path) => {\n const index = path.lastIndexOf(\".\");\n return index === -1 ? \"\" : path.slice(index + 1);\n}, file = (path) => new ElysiaFile(path);\nlet createReadStream, stat;\nclass ElysiaFile {\n constructor(path) {\n this.path = path;\n if (isBun) this.value = Bun.file(path);\n else {\n if (!createReadStream || !stat) {\n if (typeof window < \"u\") {\n console.warn(\"Browser environment does not support file\");\n return;\n }\n const warnMissing = (name) => console.warn(\n new Error(\n `[elysia] \\`file\\` require \\`fs${name ? \".\" + name : \"\"}\\` ${name?.includes(\".\") ? \"module \" : \"\"}which is not available in this environment`\n )\n );\n if (typeof process > \"u\" || typeof process.getBuiltinModule != \"function\") {\n warnMissing();\n return;\n }\n const fs = process.getBuiltinModule(\"fs\");\n if (!fs) {\n warnMissing();\n return;\n }\n if (typeof fs.createReadStream != \"function\") {\n warnMissing();\n return;\n }\n if (typeof fs.promises?.stat != \"function\") {\n warnMissing();\n return;\n }\n createReadStream = fs.createReadStream, stat = fs.promises.stat;\n }\n this.value = createReadStream(path), this.stats = stat(path);\n }\n }\n get type() {\n return (\n // @ts-ignore\n mime[getFileExtension(this.path)] || \"application/octet-stream\"\n );\n }\n get length() {\n return isBun ? this.value.size : this.stats?.then((x) => x.size) ?? 0;\n }\n}\nexport {\n ElysiaFile,\n file,\n getFileExtension,\n mime\n};\n","import { ElysiaFile } from \"./universal/file.mjs\";\nimport { isBun, isCloudflareWorker } from \"./universal/utils.mjs\";\nconst replaceUrlPath = (url, pathname) => {\n const pathStartIndex = url.indexOf(\"/\", 11), queryIndex = url.indexOf(\"?\", pathStartIndex);\n return queryIndex === -1 ? `${url.slice(0, pathStartIndex)}${pathname.charCodeAt(0) === 47 ? \"\" : \"/\"}${pathname}` : `${url.slice(0, pathStartIndex)}${pathname.charCodeAt(0) === 47 ? \"\" : \"/\"}${pathname}${url.slice(queryIndex)}`;\n}, isClass = (v) => typeof v == \"function\" && /^\\s*class\\s+/.test(v.toString()) || // Handle Object.create(null)\nv.toString && // Handle import * as Sentry from '@sentry/bun'\n// This also handle [object Date], [object Array]\n// and FFI value like [object Prisma]\nv.toString().startsWith(\"[object \") && v.toString() !== \"[object Object]\" || // If object prototype is not pure, then probably a class-like object\nisNotEmpty(Object.getPrototypeOf(v)), isObject = (item) => item && typeof item == \"object\" && !Array.isArray(item), mergeDeep = (target, source, options) => {\n const skipKeys = options?.skipKeys, override = options?.override ?? !0, mergeArray = options?.mergeArray ?? !1, seen = options?.seen ?? /* @__PURE__ */ new WeakSet();\n if (!isObject(target) || !isObject(source) || seen.has(source)) return target;\n seen.add(source);\n for (const [key, value] of Object.entries(source))\n if (!(skipKeys?.includes(key) || [\"__proto__\", \"constructor\", \"prototype\"].includes(key))) {\n if (mergeArray && Array.isArray(value)) {\n target[key] = Array.isArray(\n target[key]\n ) ? [...target[key], ...value] : target[key] = value;\n continue;\n }\n if (!isObject(value) || !(key in target) || isClass(value)) {\n if ((override || !(key in target)) && !Object.isFrozen(target))\n try {\n target[key] = value;\n } catch {\n }\n continue;\n }\n if (!Object.isFrozen(target[key]))\n try {\n target[key] = mergeDeep(\n target[key],\n value,\n { skipKeys, override, mergeArray, seen }\n );\n } catch {\n }\n }\n return seen.delete(source), target;\n}, mergeCookie = (a, b) => {\n const v = mergeDeep(Object.assign({}, a), b, {\n skipKeys: [\"properties\"],\n mergeArray: !1\n });\n return v.properties && delete v.properties, v;\n}, mergeObjectArray = (a, b) => {\n if (!b) return a;\n const array = [], checksums = [];\n if (a) {\n Array.isArray(a) || (a = [a]);\n for (const item of a)\n array.push(item), item.checksum && checksums.push(item.checksum);\n }\n if (b) {\n Array.isArray(b) || (b = [b]);\n for (const item of b)\n checksums.includes(item.checksum) || array.push(item);\n }\n return array;\n}, primitiveHooks = [\n \"start\",\n \"request\",\n \"parse\",\n \"transform\",\n \"resolve\",\n \"beforeHandle\",\n \"afterHandle\",\n \"mapResponse\",\n \"afterResponse\",\n \"trace\",\n \"error\",\n \"stop\",\n \"body\",\n \"headers\",\n \"params\",\n \"query\",\n \"response\",\n \"type\",\n \"detail\"\n], primitiveHookMap = primitiveHooks.reduce(\n (acc, x) => (acc[x] = !0, acc),\n {}\n), isRecordNumber = (x) => typeof x == \"object\" && Object.keys(x).every((x2) => !isNaN(+x2)), mergeResponse = (a, b) => isRecordNumber(a) && isRecordNumber(b) ? Object.assign({}, a, b) : a && !isRecordNumber(a) && isRecordNumber(b) ? Object.assign({ 200: a }, b) : b ?? a, mergeSchemaValidator = (a, b) => !a && !b ? {\n body: void 0,\n headers: void 0,\n params: void 0,\n query: void 0,\n cookie: void 0,\n response: void 0\n} : {\n body: b?.body ?? a?.body,\n headers: b?.headers ?? a?.headers,\n params: b?.params ?? a?.params,\n query: b?.query ?? a?.query,\n cookie: b?.cookie ?? a?.cookie,\n // @ts-ignore ? This order is correct - SaltyAom\n response: mergeResponse(\n // @ts-ignore\n a?.response,\n // @ts-ignore\n b?.response\n )\n}, mergeHook = (a, b) => {\n if (!b) return a ?? {};\n if (!a) return b ?? {};\n if (!Object.values(b).find((x) => x != null))\n return { ...a };\n const hook = {\n ...a,\n ...b,\n // Merge local hook first\n // @ts-ignore\n body: b.body ?? a.body,\n // @ts-ignore\n headers: b.headers ?? a.headers,\n // @ts-ignore\n params: b.params ?? a.params,\n // @ts-ignore\n query: b.query ?? a.query,\n // @ts-ignore\n cookie: b.cookie ?? a.cookie,\n // ? This order is correct - SaltyAom\n response: mergeResponse(\n // @ts-ignore\n a.response,\n // @ts-ignore\n b.response\n ),\n type: a.type || b.type,\n detail: mergeDeep(\n // @ts-ignore\n b.detail ?? {},\n // @ts-ignore\n a.detail ?? {}\n ),\n parse: mergeObjectArray(a.parse, b.parse),\n transform: mergeObjectArray(a.transform, b.transform),\n beforeHandle: mergeObjectArray(\n mergeObjectArray(\n // @ts-ignore\n fnToContainer(a.resolve, \"resolve\"),\n a.beforeHandle\n ),\n mergeObjectArray(\n fnToContainer(b.resolve, \"resolve\"),\n b.beforeHandle\n )\n ),\n afterHandle: mergeObjectArray(a.afterHandle, b.afterHandle),\n mapResponse: mergeObjectArray(a.mapResponse, b.mapResponse),\n afterResponse: mergeObjectArray(\n a.afterResponse,\n b.afterResponse\n ),\n trace: mergeObjectArray(a.trace, b.trace),\n error: mergeObjectArray(a.error, b.error),\n // @ts-ignore\n standaloneSchema: (\n // @ts-ignore\n a.standaloneSchema || b.standaloneSchema ? (\n // @ts-ignore\n a.standaloneSchema && !b.standaloneSchema ? (\n // @ts-ignore\n a.standaloneSchema\n ) : (\n // @ts-ignore\n b.standaloneSchema && !a.standaloneSchema ? b.standaloneSchema : [\n // @ts-ignore\n ...a.standaloneSchema ?? [],\n ...b.standaloneSchema ?? []\n ]\n )\n ) : void 0\n )\n };\n return hook.resolve && delete hook.resolve, hook;\n}, lifeCycleToArray = (a) => {\n a.parse && !Array.isArray(a.parse) && (a.parse = [a.parse]), a.transform && !Array.isArray(a.transform) && (a.transform = [a.transform]), a.afterHandle && !Array.isArray(a.afterHandle) && (a.afterHandle = [a.afterHandle]), a.mapResponse && !Array.isArray(a.mapResponse) && (a.mapResponse = [a.mapResponse]), a.afterResponse && !Array.isArray(a.afterResponse) && (a.afterResponse = [a.afterResponse]), a.trace && !Array.isArray(a.trace) && (a.trace = [a.trace]), a.error && !Array.isArray(a.error) && (a.error = [a.error]);\n let beforeHandle = [];\n return a.resolve && (beforeHandle = fnToContainer(\n // @ts-expect-error\n Array.isArray(a.resolve) ? a.resolve : [a.resolve],\n \"resolve\"\n ), delete a.resolve), a.beforeHandle && (beforeHandle.length ? beforeHandle = beforeHandle.concat(\n Array.isArray(a.beforeHandle) ? a.beforeHandle : [a.beforeHandle]\n ) : beforeHandle = Array.isArray(a.beforeHandle) ? a.beforeHandle : [a.beforeHandle]), beforeHandle.length && (a.beforeHandle = beforeHandle), a;\n}, hasHeaderShorthand = isBun ? \"toJSON\" in new Headers() : !1, hasSetImmediate = typeof setImmediate == \"function\", checksum = (s) => {\n let h = 9;\n for (let i = 0; i < s.length; ) h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9);\n return h = h ^ h >>> 9;\n}, injectChecksum = (checksum2, x) => {\n if (!x) return;\n if (!Array.isArray(x)) {\n const fn = x;\n return checksum2 && !fn.checksum && (fn.checksum = checksum2), fn.scope === \"scoped\" && (fn.scope = \"local\"), fn;\n }\n const fns = [...x];\n for (const fn of fns)\n checksum2 && !fn.checksum && (fn.checksum = checksum2), fn.scope === \"scoped\" && (fn.scope = \"local\");\n return fns;\n}, mergeLifeCycle = (a, b, checksum2) => ({\n start: mergeObjectArray(\n a.start,\n injectChecksum(checksum2, b?.start)\n ),\n request: mergeObjectArray(\n a.request,\n injectChecksum(checksum2, b?.request)\n ),\n parse: mergeObjectArray(\n a.parse,\n injectChecksum(checksum2, b?.parse)\n ),\n transform: mergeObjectArray(\n a.transform,\n injectChecksum(checksum2, b?.transform)\n ),\n beforeHandle: mergeObjectArray(\n mergeObjectArray(\n // @ts-ignore\n fnToContainer(a.resolve, \"resolve\"),\n a.beforeHandle\n ),\n injectChecksum(\n checksum2,\n mergeObjectArray(\n fnToContainer(b?.resolve, \"resolve\"),\n b?.beforeHandle\n )\n )\n ),\n afterHandle: mergeObjectArray(\n a.afterHandle,\n injectChecksum(checksum2, b?.afterHandle)\n ),\n mapResponse: mergeObjectArray(\n a.mapResponse,\n injectChecksum(checksum2, b?.mapResponse)\n ),\n afterResponse: mergeObjectArray(\n a.afterResponse,\n injectChecksum(checksum2, b?.afterResponse)\n ),\n // Already merged on Elysia._use, also logic is more complicated, can't directly merge\n trace: mergeObjectArray(\n a.trace,\n injectChecksum(checksum2, b?.trace)\n ),\n error: mergeObjectArray(\n a.error,\n injectChecksum(checksum2, b?.error)\n ),\n stop: mergeObjectArray(\n a.stop,\n injectChecksum(checksum2, b?.stop)\n )\n}), asHookType = (fn, inject, { skipIfHasType = !1 }) => {\n if (!fn) return fn;\n if (!Array.isArray(fn))\n return skipIfHasType ? fn.scope ??= inject : fn.scope = inject, fn;\n for (const x of fn)\n skipIfHasType ? x.scope ??= inject : x.scope = inject;\n return fn;\n}, filterGlobal = (fn) => {\n if (!fn) return fn;\n if (!Array.isArray(fn))\n switch (fn.scope) {\n case \"global\":\n case \"scoped\":\n return { ...fn };\n default:\n return { fn };\n }\n const array = [];\n for (const x of fn)\n switch (x.scope) {\n case \"global\":\n case \"scoped\":\n array.push({\n ...x\n });\n break;\n }\n return array;\n}, filterGlobalHook = (hook) => ({\n // rest is validator\n ...hook,\n type: hook?.type,\n detail: hook?.detail,\n parse: filterGlobal(hook?.parse),\n transform: filterGlobal(hook?.transform),\n beforeHandle: filterGlobal(hook?.beforeHandle),\n afterHandle: filterGlobal(hook?.afterHandle),\n mapResponse: filterGlobal(hook?.mapResponse),\n afterResponse: filterGlobal(hook?.afterResponse),\n error: filterGlobal(hook?.error),\n trace: filterGlobal(hook?.trace)\n}), StatusMap = {\n Continue: 100,\n \"Switching Protocols\": 101,\n Processing: 102,\n \"Early Hints\": 103,\n OK: 200,\n Created: 201,\n Accepted: 202,\n \"Non-Authoritative Information\": 203,\n \"No Content\": 204,\n \"Reset Content\": 205,\n \"Partial Content\": 206,\n \"Multi-Status\": 207,\n \"Already Reported\": 208,\n \"Multiple Choices\": 300,\n \"Moved Permanently\": 301,\n Found: 302,\n \"See Other\": 303,\n \"Not Modified\": 304,\n \"Temporary Redirect\": 307,\n \"Permanent Redirect\": 308,\n \"Bad Request\": 400,\n Unauthorized: 401,\n \"Payment Required\": 402,\n Forbidden: 403,\n \"Not Found\": 404,\n \"Method Not Allowed\": 405,\n \"Not Acceptable\": 406,\n \"Proxy Authentication Required\": 407,\n \"Request Timeout\": 408,\n Conflict: 409,\n Gone: 410,\n \"Length Required\": 411,\n \"Precondition Failed\": 412,\n \"Payload Too Large\": 413,\n \"URI Too Long\": 414,\n \"Unsupported Media Type\": 415,\n \"Range Not Satisfiable\": 416,\n \"Expectation Failed\": 417,\n \"I'm a teapot\": 418,\n \"Enhance Your Calm\": 420,\n \"Misdirected Request\": 421,\n \"Unprocessable Content\": 422,\n Locked: 423,\n \"Failed Dependency\": 424,\n \"Too Early\": 425,\n \"Upgrade Required\": 426,\n \"Precondition Required\": 428,\n \"Too Many Requests\": 429,\n \"Request Header Fields Too Large\": 431,\n \"Unavailable For Legal Reasons\": 451,\n \"Internal Server Error\": 500,\n \"Not Implemented\": 501,\n \"Bad Gateway\": 502,\n \"Service Unavailable\": 503,\n \"Gateway Timeout\": 504,\n \"HTTP Version Not Supported\": 505,\n \"Variant Also Negotiates\": 506,\n \"Insufficient Storage\": 507,\n \"Loop Detected\": 508,\n \"Not Extended\": 510,\n \"Network Authentication Required\": 511\n}, InvertedStatusMap = Object.fromEntries(\n Object.entries(StatusMap).map(([k, v]) => [v, k])\n);\nfunction removeTrailingEquals(digest) {\n let trimmedDigest = digest;\n for (; trimmedDigest.endsWith(\"=\"); )\n trimmedDigest = trimmedDigest.slice(0, -1);\n return trimmedDigest;\n}\nconst encoder = new TextEncoder(), signCookie = async (val, secret) => {\n if (typeof val == \"object\" ? val = JSON.stringify(val) : typeof val != \"string\" && (val = val + \"\"), secret == null)\n throw new TypeError(\"Secret key must be provided\");\n const secretKey = await crypto.subtle.importKey(\n \"raw\",\n encoder.encode(secret),\n { name: \"HMAC\", hash: \"SHA-256\" },\n !1,\n [\"sign\"]\n ), hmacBuffer = await crypto.subtle.sign(\n \"HMAC\",\n secretKey,\n encoder.encode(val)\n );\n return val + \".\" + removeTrailingEquals(Buffer.from(hmacBuffer).toString(\"base64\"));\n}, constantTimeEqual = typeof crypto?.timingSafeEqual == \"function\" ? (a, b) => {\n const ab = Buffer.from(a, \"utf8\"), bb = Buffer.from(b, \"utf8\");\n return ab.length !== bb.length ? !1 : crypto.timingSafeEqual(ab, bb);\n} : (a, b) => a === b, unsignCookie = async (input, secret) => {\n if (typeof input != \"string\")\n throw new TypeError(\"Signed cookie string must be provided.\");\n const dot = input.lastIndexOf(\".\");\n if (dot === -1)\n return secret === null ? input : !1;\n const tentativeValue = input.slice(0, dot), expectedInput = await signCookie(tentativeValue, secret);\n return constantTimeEqual(expectedInput, input) ? tentativeValue : !1;\n}, insertStandaloneValidator = (hook, name, value) => {\n if (!hook.standaloneValidator?.length || !Array.isArray(hook.standaloneValidator)) {\n hook.standaloneValidator = [\n {\n [name]: value\n }\n ];\n return;\n }\n const last = hook.standaloneValidator[hook.standaloneValidator.length - 1];\n name in last ? hook.standaloneValidator.push({\n [name]: value\n }) : last[name] = value;\n}, parseNumericString = (message) => {\n if (typeof message == \"number\") return message;\n if (message.length < 16) {\n if (message.trim().length === 0) return null;\n const length = Number(message);\n return Number.isNaN(length) ? null : length;\n }\n if (message.length === 16) {\n if (message.trim().length === 0) return null;\n const number = Number(message);\n return Number.isNaN(number) || number.toString() !== message ? null : number;\n }\n return null;\n}, isNumericString = (message) => parseNumericString(message) !== null;\nclass PromiseGroup {\n constructor(onError = console.error, onFinally = () => {\n }) {\n this.onError = onError;\n this.onFinally = onFinally;\n this.root = null;\n this.promises = [];\n }\n /**\n * The number of promises still being awaited.\n */\n get size() {\n return this.promises.length;\n }\n /**\n * Add a promise to the group.\n * @returns The promise that was added.\n */\n add(promise) {\n return this.promises.push(promise), this.root ||= this.drain(), this.promises.length === 1 && this.then(this.onFinally), promise;\n }\n async drain() {\n for (; this.promises.length > 0; ) {\n try {\n await this.promises[0];\n } catch (error) {\n this.onError(error);\n }\n this.promises.shift();\n }\n this.root = null;\n }\n // Allow the group to be awaited.\n then(onfulfilled, onrejected) {\n return (this.root ?? Promise.resolve()).then(onfulfilled, onrejected);\n }\n}\nconst fnToContainer = (fn, subType) => {\n if (!fn) return fn;\n if (!Array.isArray(fn)) {\n if (typeof fn == \"function\" || typeof fn == \"string\")\n return subType ? { fn, subType } : { fn };\n if (\"fn\" in fn) return fn;\n }\n const fns = [];\n for (const x of fn)\n typeof x == \"function\" || typeof x == \"string\" ? fns.push(subType ? { fn: x, subType } : { fn: x }) : \"fn\" in x && fns.push(x);\n return fns;\n}, localHookToLifeCycleStore = (a) => (a.start && (a.start = fnToContainer(a.start)), a.request && (a.request = fnToContainer(a.request)), a.parse && (a.parse = fnToContainer(a.parse)), a.transform && (a.transform = fnToContainer(a.transform)), a.beforeHandle && (a.beforeHandle = fnToContainer(a.beforeHandle)), a.afterHandle && (a.afterHandle = fnToContainer(a.afterHandle)), a.mapResponse && (a.mapResponse = fnToContainer(a.mapResponse)), a.afterResponse && (a.afterResponse = fnToContainer(a.afterResponse)), a.trace && (a.trace = fnToContainer(a.trace)), a.error && (a.error = fnToContainer(a.error)), a.stop && (a.stop = fnToContainer(a.stop)), a), lifeCycleToFn = (a) => {\n const lifecycle = /* @__PURE__ */ Object.create(null);\n return a.start?.map && (lifecycle.start = a.start.map((x) => x.fn)), a.request?.map && (lifecycle.request = a.request.map((x) => x.fn)), a.parse?.map && (lifecycle.parse = a.parse.map((x) => x.fn)), a.transform?.map && (lifecycle.transform = a.transform.map((x) => x.fn)), a.beforeHandle?.map && (lifecycle.beforeHandle = a.beforeHandle.map((x) => x.fn)), a.afterHandle?.map && (lifecycle.afterHandle = a.afterHandle.map((x) => x.fn)), a.mapResponse?.map && (lifecycle.mapResponse = a.mapResponse.map((x) => x.fn)), a.afterResponse?.map && (lifecycle.afterResponse = a.afterResponse.map((x) => x.fn)), a.error?.map && (lifecycle.error = a.error.map((x) => x.fn)), a.stop?.map && (lifecycle.stop = a.stop.map((x) => x.fn)), a.trace?.map ? lifecycle.trace = a.trace.map((x) => x.fn) : lifecycle.trace = [], lifecycle;\n}, cloneInference = (inference) => ({\n body: inference.body,\n cookie: inference.cookie,\n headers: inference.headers,\n query: inference.query,\n set: inference.set,\n server: inference.server,\n path: inference.path,\n route: inference.route,\n url: inference.url\n}), redirect = (url, status = 302) => Response.redirect(url, status), ELYSIA_FORM_DATA = Symbol(\"ElysiaFormData\"), ELYSIA_REQUEST_ID = Symbol(\"ElysiaRequestId\"), form = (items) => {\n const formData = new FormData();\n if (formData[ELYSIA_FORM_DATA] = {}, items)\n for (const [key, value] of Object.entries(items)) {\n if (Array.isArray(value)) {\n formData[ELYSIA_FORM_DATA][key] = [];\n for (const v of value)\n value instanceof File ? formData.append(key, value, value.name) : value instanceof ElysiaFile ? formData.append(key, value.value, value.value?.name) : formData.append(key, value), formData[ELYSIA_FORM_DATA][key].push(value);\n continue;\n }\n value instanceof File ? formData.append(key, value, value.name) : value instanceof ElysiaFile ? formData.append(key, value.value, value.value?.name) : formData.append(key, value), formData[ELYSIA_FORM_DATA][key] = value;\n }\n return formData;\n}, randomId = typeof crypto > \"u\" || isCloudflareWorker() ? () => {\n let result = \"\";\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n for (let i = 0; i < 16; i++)\n result += characters.charAt(\n // 62 is characters.length\n Math.floor(Math.random() * 62)\n );\n return result;\n} : () => {\n const uuid = crypto.randomUUID();\n return uuid.slice(0, 8) + uuid.slice(24, 32);\n}, deduplicateChecksum = (array) => {\n if (!array.length) return [];\n const hashes = [];\n for (let i = 0; i < array.length; i++) {\n const item = array[i];\n item.checksum && (hashes.includes(item.checksum) && (array.splice(i, 1), i--), hashes.push(item.checksum));\n }\n return array;\n}, promoteEvent = (events, as = \"scoped\") => {\n if (events) {\n if (as === \"scoped\") {\n for (const event of events)\n \"scope\" in event && event.scope === \"local\" && (event.scope = \"scoped\");\n return;\n }\n for (const event of events) \"scope\" in event && (event.scope = \"global\");\n }\n}, getLoosePath = (path) => path.charCodeAt(path.length - 1) === 47 ? path.slice(0, path.length - 1) : path + \"/\", isNotEmpty = (obj) => {\n if (!obj) return !1;\n for (const _ in obj) return !0;\n return !1;\n}, encodePath = (path, { dynamic = !1 } = {}) => {\n let encoded = encodeURIComponent(path).replace(/%2F/g, \"/\");\n return dynamic && (encoded = encoded.replace(/%3A/g, \":\").replace(/%3F/g, \"?\")), encoded;\n}, supportPerMethodInlineHandler = !!(typeof Bun > \"u\" || Bun.semver?.satisfies?.(Bun.version, \">=1.2.14\")), sse = (_payload) => {\n if (_payload instanceof ReadableStream)\n return _payload.sse = !0, _payload;\n const payload = typeof _payload == \"string\" ? { data: _payload } : _payload;\n return payload.sse = !0, payload.toSSE = () => {\n let payloadString = \"\";\n return payload.id !== void 0 && payload.id !== null && (payloadString += `id: ${payload.id}\n`), payload.event && (payloadString += `event: ${payload.event}\n`), payload.retry !== void 0 && (payloadString += `retry: ${payload.retry}\n`), payload.data === null ? payloadString += `data: null\n` : typeof payload.data == \"string\" ? payloadString += `data: ${payload.data}\n` : typeof payload.data == \"object\" && (payloadString += `data: ${JSON.stringify(payload.data)}\n`), payloadString && (payloadString += `\n`), payloadString;\n }, payload;\n};\nasync function getResponseLength(response) {\n if (response.bodyUsed || !response.body) return 0;\n let length = 0;\n const reader = response.body.getReader();\n for (; ; ) {\n const { done, value } = await reader.read();\n if (done) break;\n length += value.byteLength;\n }\n return length;\n}\nconst emptySchema = {\n headers: !0,\n cookie: !0,\n query: !0,\n params: !0,\n body: !0,\n response: !0\n};\nfunction deepClone(source, weak = /* @__PURE__ */ new WeakMap()) {\n if (source === null || typeof source != \"object\" || typeof source == \"function\")\n return source;\n if (weak.has(source)) return weak.get(source);\n if (Array.isArray(source)) {\n const copy = new Array(source.length);\n weak.set(source, copy);\n for (let i = 0; i < source.length; i++)\n copy[i] = deepClone(source[i], weak);\n return copy;\n }\n if (typeof source == \"object\") {\n const keys = Object.keys(source).concat(\n Object.getOwnPropertySymbols(source)\n ), cloned = {};\n weak.set(source, cloned);\n for (const key of keys)\n cloned[key] = deepClone(source[key], weak);\n return cloned;\n }\n return source;\n}\nexport {\n ELYSIA_FORM_DATA,\n ELYSIA_REQUEST_ID,\n InvertedStatusMap,\n PromiseGroup,\n StatusMap,\n asHookType,\n checksum,\n cloneInference,\n deduplicateChecksum,\n deepClone,\n emptySchema,\n encodePath,\n filterGlobalHook,\n fnToContainer,\n form,\n getLoosePath,\n getResponseLength,\n hasHeaderShorthand,\n hasSetImmediate,\n injectChecksum,\n insertStandaloneValidator,\n isClass,\n isNotEmpty,\n isNumericString,\n lifeCycleToArray,\n lifeCycleToFn,\n localHookToLifeCycleStore,\n mergeCookie,\n mergeDeep,\n mergeHook,\n mergeLifeCycle,\n mergeObjectArray,\n mergeResponse,\n mergeSchemaValidator,\n primitiveHooks,\n promoteEvent,\n randomId,\n redirect,\n replaceUrlPath,\n signCookie,\n sse,\n supportPerMethodInlineHandler,\n unsignCookie\n};\n","import { Value } from \"@sinclair/typebox/value\";\nimport { StatusMap, InvertedStatusMap } from \"./utils.mjs\";\nconst env = typeof Bun < \"u\" ? Bun.env : typeof process < \"u\" ? process?.env : void 0, ERROR_CODE = Symbol(\"ElysiaErrorCode\"), isProduction = (env?.NODE_ENV ?? env?.ENV) === \"production\", emptyHttpStatus = {\n 101: void 0,\n 204: void 0,\n 205: void 0,\n 304: void 0,\n 307: void 0,\n 308: void 0\n};\nclass ElysiaCustomStatusResponse {\n constructor(code, response) {\n const res = response ?? (code in InvertedStatusMap ? (\n // @ts-expect-error Always correct\n InvertedStatusMap[code]\n ) : code);\n this.code = StatusMap[code] ?? code, code in emptyHttpStatus ? this.response = void 0 : this.response = res;\n }\n}\nconst ElysiaStatus = ElysiaCustomStatusResponse, status = (code, response) => new ElysiaCustomStatusResponse(code, response);\nclass InternalServerError extends Error {\n constructor(message) {\n super(message ?? \"INTERNAL_SERVER_ERROR\");\n this.code = \"INTERNAL_SERVER_ERROR\";\n this.status = 500;\n }\n}\nclass NotFoundError extends Error {\n constructor(message) {\n super(message ?? \"NOT_FOUND\");\n this.code = \"NOT_FOUND\";\n this.status = 404;\n }\n}\nclass ParseError extends Error {\n constructor(cause) {\n super(\"Bad Request\", {\n cause\n });\n this.code = \"PARSE\";\n this.status = 400;\n }\n}\nclass InvalidCookieSignature extends Error {\n constructor(key, message) {\n super(message ?? `\"${key}\" has invalid cookie signature`);\n this.key = key;\n this.code = \"INVALID_COOKIE_SIGNATURE\";\n this.status = 400;\n }\n}\nconst mapValueError = (error) => {\n if (!error) return error;\n let { message, path, value, type } = error;\n Array.isArray(path) && (path = path[0]);\n const property = typeof path == \"string\" ? path.slice(1).replaceAll(\"/\", \".\") : \"unknown\", isRoot = path === \"\";\n switch (type) {\n case 42:\n return {\n ...error,\n summary: isRoot ? \"Value should not be provided\" : `Property '${property}' should not be provided`\n };\n case 45:\n return {\n ...error,\n summary: isRoot ? \"Value is missing\" : `Property '${property}' is missing`\n };\n case 50:\n const quoteIndex = message.indexOf(\"'\"), format = message.slice(\n quoteIndex + 1,\n message.indexOf(\"'\", quoteIndex + 1)\n );\n return {\n ...error,\n summary: isRoot ? \"Value should be an email\" : `Property '${property}' should be ${format}`\n };\n case 54:\n return {\n ...error,\n summary: `${message.slice(0, 9).trim()} property '${property}' to be ${message.slice(8).trim()} but found: ${value}`\n };\n case 62:\n const union = error.schema.anyOf.map((x) => `'${x?.format ?? x.type}'`).join(\", \");\n return {\n ...error,\n summary: isRoot ? `Value should be one of ${union}` : `Property '${property}' should be one of: ${union}`\n };\n default:\n return { summary: message, ...error };\n }\n};\nclass InvalidFileType extends Error {\n constructor(property, expected, message = `\"${property}\" has invalid file type`) {\n super(message);\n this.property = property;\n this.expected = expected;\n this.message = message;\n this.code = \"INVALID_FILE_TYPE\";\n this.status = 422;\n Object.setPrototypeOf(this, InvalidFileType.prototype);\n }\n toResponse(headers) {\n return isProduction ? new Response(\n JSON.stringify({\n type: \"validation\",\n on: \"body\"\n }),\n {\n status: 422,\n headers: {\n ...headers,\n \"content-type\": \"application/json\"\n }\n }\n ) : new Response(\n JSON.stringify({\n type: \"validation\",\n on: \"body\",\n summary: \"Invalid file type\",\n message: this.message,\n property: this.property,\n expected: this.expected\n }),\n {\n status: 422,\n headers: {\n ...headers,\n \"content-type\": \"application/json\"\n }\n }\n );\n }\n}\nclass ValidationError extends Error {\n constructor(type, validator, value, allowUnsafeValidationDetails = !1, errors) {\n let message = \"\", error, expected, customError;\n if (\n // @ts-ignore\n validator?.provider === \"standard\" || \"~standard\" in validator || // @ts-ignore\n validator.schema && \"~standard\" in validator.schema\n ) {\n const standard = (\n // @ts-ignore\n (\"~standard\" in validator ? validator : validator.schema)[\"~standard\"]\n );\n error = (errors ?? standard.validate(value).issues)?.[0], isProduction && !allowUnsafeValidationDetails ? message = JSON.stringify({\n type: \"validation\",\n on: type,\n found: value\n }) : message = JSON.stringify(\n {\n type: \"validation\",\n on: type,\n property: error.path?.[0] || \"root\",\n message: error?.message,\n summary: error?.problem,\n expected,\n found: value,\n errors\n },\n null,\n 2\n ), customError = error?.message;\n } else {\n value && typeof value == \"object\" && value instanceof ElysiaCustomStatusResponse && (value = value.response), error = errors?.First() ?? (\"Errors\" in validator ? validator.Errors(value).First() : Value.Errors(validator, value).First());\n const accessor = error?.path || \"root\", schema = validator?.schema ?? validator;\n if (!isProduction && !allowUnsafeValidationDetails)\n try {\n expected = Value.Create(schema);\n } catch (error2) {\n expected = {\n type: \"Could not create expected value\",\n // @ts-expect-error\n message: error2?.message,\n error: error2\n };\n }\n customError = error?.schema?.message || error?.schema?.error !== void 0 ? typeof error.schema.error == \"function\" ? error.schema.error(\n isProduction && !allowUnsafeValidationDetails ? {\n type: \"validation\",\n on: type,\n found: value\n } : {\n type: \"validation\",\n on: type,\n value,\n property: accessor,\n message: error?.message,\n summary: mapValueError(error)?.summary,\n found: value,\n expected,\n errors: \"Errors\" in validator ? [\n ...validator.Errors(\n value\n )\n ].map(mapValueError) : [\n ...Value.Errors(\n validator,\n value\n )\n ].map(mapValueError)\n },\n validator\n ) : error.schema.error : void 0, customError !== void 0 ? message = typeof customError == \"object\" ? JSON.stringify(customError) : customError + \"\" : isProduction && !allowUnsafeValidationDetails ? message = JSON.stringify({\n type: \"validation\",\n on: type,\n found: value\n }) : message = JSON.stringify(\n {\n type: \"validation\",\n on: type,\n property: accessor,\n message: error?.message,\n summary: mapValueError(error)?.summary,\n expected,\n found: value,\n errors: \"Errors\" in validator ? [...validator.Errors(value)].map(\n mapValueError\n ) : [...Value.Errors(validator, value)].map(\n mapValueError\n )\n },\n null,\n 2\n );\n }\n super(message);\n this.type = type;\n this.validator = validator;\n this.value = value;\n this.allowUnsafeValidationDetails = allowUnsafeValidationDetails;\n this.code = \"VALIDATION\";\n this.status = 422;\n this.valueError = error, this.expected = expected, this.customError = customError, Object.setPrototypeOf(this, ValidationError.prototype);\n }\n /**\n * Alias of `valueError`\n */\n get messageValue() {\n return this.valueError;\n }\n get all() {\n return (\n // @ts-ignore\n this.validator?.provider === \"standard\" || \"~standard\" in this.validator || // @ts-ignore\n \"schema\" in this.validator && // @ts-ignore\n this.validator.schema && // @ts-ignore\n \"~standard\" in this.validator.schema ? /* @ts-ignore */ (\"~standard\" in this.validator ? this.validator : (\n // @ts-ignore\n this.validator.schema\n ))[\"~standard\"].validate(this.value).issues?.map((issue) => ({\n summary: issue.message,\n path: issue.path?.join(\".\") || \"root\",\n message: issue.message,\n value: this.value\n })) || [] : \"Errors\" in this.validator ? [...this.validator.Errors(this.value)].filter((x) => x).map((x) => mapValueError(x)) : (\n // @ts-ignore\n [...Value.Errors(this.validator, this.value)].map(mapValueError)\n )\n );\n }\n static simplifyModel(validator) {\n const model = \"schema\" in validator ? validator.schema : validator;\n try {\n return Value.Create(model);\n } catch {\n return model;\n }\n }\n get model() {\n return \"~standard\" in this.validator ? this.validator : ValidationError.simplifyModel(this.validator);\n }\n toResponse(headers) {\n return new Response(this.message, {\n status: 400,\n headers: {\n ...headers,\n \"content-type\": \"application/json\"\n }\n });\n }\n /**\n * Utility function to inherit add custom error and keep the original Validation error\n *\n * @since 1.3.14\n *\n * @example\n * ```ts\n * new Elysia()\n *\t\t.onError(({ error, code }) => {\n *\t\t\tif (code === 'VALIDATION') return error.detail(error.message)\n *\t\t})\n *\t\t.post('/', () => 'Hello World!', {\n *\t\t\tbody: t.Object({\n *\t\t\t\tx: t.Number({\n *\t\t\t\t\terror: 'x must be a number'\n *\t\t\t\t})\n *\t\t\t})\n *\t\t})\n * ```\n */\n detail(message, allowUnsafeValidatorDetails = this.allowUnsafeValidationDetails) {\n if (!this.customError) return this.message;\n const value = this.value, expected = this.expected, errors = this.all;\n return isProduction && !allowUnsafeValidatorDetails ? {\n type: \"validation\",\n on: this.type,\n found: value,\n message\n } : {\n type: \"validation\",\n on: this.type,\n property: this.valueError?.path || \"root\",\n message,\n summary: mapValueError(this.valueError)?.summary,\n found: value,\n expected,\n errors\n };\n }\n}\nexport {\n ERROR_CODE,\n ElysiaCustomStatusResponse,\n ElysiaStatus,\n InternalServerError,\n InvalidCookieSignature,\n InvalidFileType,\n NotFoundError,\n ParseError,\n ValidationError,\n isProduction,\n mapValueError,\n status\n};\n","import {\n Kind,\n TypeRegistry,\n Unsafe\n} from \"@sinclair/typebox\";\nimport { Value } from \"@sinclair/typebox/value\";\nimport { TypeCompiler } from \"@sinclair/typebox/compiler\";\nimport { ElysiaFile } from \"../universal/file.mjs\";\nimport { InvalidFileType, ValidationError } from \"../error.mjs\";\nconst tryParse = (v, schema) => {\n try {\n return JSON.parse(v);\n } catch {\n throw new ValidationError(\"property\", schema, v);\n }\n};\nfunction createType(kind, func) {\n return TypeRegistry.Has(kind) || TypeRegistry.Set(kind, func), (options = {}) => Unsafe({ ...options, [Kind]: kind });\n}\nconst compile = (schema) => {\n try {\n const compiler = TypeCompiler.Compile(schema);\n return compiler.Create = () => Value.Create(schema), compiler.Error = (v) => (\n // @ts-ignore\n new ValidationError(\"property\", schema, v, compiler.Errors(v))\n ), compiler;\n } catch {\n return {\n Check: (v) => Value.Check(schema, v),\n CheckThrow: (v) => {\n if (!Value.Check(schema, v))\n throw new ValidationError(\n \"property\",\n schema,\n v,\n // @ts-ignore\n Value.Errors(schema, v)\n );\n },\n Decode: (v) => Value.Decode(schema, v),\n Create: () => Value.Create(schema),\n Error: (v) => new ValidationError(\n \"property\",\n schema,\n v,\n // @ts-ignore\n Value.Errors(schema, v)\n )\n };\n }\n}, parseFileUnit = (size) => {\n if (typeof size == \"string\")\n switch (size.slice(-1)) {\n case \"k\":\n return +size.slice(0, size.length - 1) * 1024;\n case \"m\":\n return +size.slice(0, size.length - 1) * 1048576;\n default:\n return +size;\n }\n return size;\n}, checkFileExtension = (type, extension) => type.startsWith(extension) ? !0 : extension.charCodeAt(extension.length - 1) === 42 && extension.charCodeAt(extension.length - 2) === 47 && type.startsWith(extension.slice(0, -1));\nlet _fileTypeFromBlobWarn = !1;\nconst warnIfFileTypeIsNotInstalled = () => {\n _fileTypeFromBlobWarn || (console.warn(\n \"[Elysia] Attempt to validate file type without 'file-type'. This may lead to security risks. We recommend installing 'file-type' to properly validate file extension.\"\n ), _fileTypeFromBlobWarn = !0);\n}, loadFileType = async () => import(\"file-type\").then((x) => (_fileTypeFromBlob = x.fileTypeFromBlob, _fileTypeFromBlob)).catch(warnIfFileTypeIsNotInstalled);\nlet _fileTypeFromBlob;\nconst fileTypeFromBlob = (file) => _fileTypeFromBlob ? _fileTypeFromBlob(file) : loadFileType().then((mod) => {\n if (mod) return mod(file);\n}), fileType = async (file, extension, name = file?.name ?? \"\") => {\n if (Array.isArray(file))\n return await Promise.all(file.map((f) => fileType(f, extension, name))), !0;\n if (!file) return !1;\n const result = await fileTypeFromBlob(file);\n if (!result) throw new InvalidFileType(name, extension);\n if (typeof extension == \"string\" && !checkFileExtension(result.mime, extension))\n throw new InvalidFileType(name, extension);\n for (let i = 0; i < extension.length; i++)\n if (checkFileExtension(result.mime, extension[i])) return !0;\n throw new InvalidFileType(name, extension);\n}, validateFile = (options, value) => {\n if (value instanceof ElysiaFile) return !0;\n if (!(value instanceof Blob) || options.minSize && value.size < parseFileUnit(options.minSize) || options.maxSize && value.size > parseFileUnit(options.maxSize))\n return !1;\n if (options.extension) {\n if (typeof options.extension == \"string\")\n return checkFileExtension(value.type, options.extension);\n for (let i = 0; i < options.extension.length; i++)\n if (checkFileExtension(value.type, options.extension[i]))\n return !0;\n return !1;\n }\n return !0;\n}, validationDetail = (message) => (error) => ({\n ...error,\n message\n});\nexport {\n checkFileExtension,\n compile,\n createType,\n fileType,\n fileTypeFromBlob,\n loadFileType,\n parseFileUnit,\n tryParse,\n validateFile,\n validationDetail\n};\n","import { FormatRegistry } from \"@sinclair/typebox\";\nconst fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: getTime(!0),\n \"date-time\": getDateTime(!0),\n \"iso-time\": getTime(!1),\n \"iso-date-time\": getDateTime(!1),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:[^\\s:@]+(?::[^\\s@]*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: !0,\n // unchecked string payload\n binary: !0\n};\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/, DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n const matches = DATE.exec(str);\n if (!matches) return !1;\n const year = +matches[1], month = +matches[2], day = +matches[3];\n return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i;\nfunction getTime(strictTimeZone) {\n return function(str) {\n const matches = TIME.exec(str);\n if (!matches) return !1;\n const hr = +matches[1], min = +matches[2], sec = +matches[3], tz = matches[4], tzSign = matches[5] === \"-\" ? -1 : 1, tzH = +(matches[6] || 0), tzM = +(matches[7] || 0);\n if (tzH > 23 || tzM > 59 || strictTimeZone && !tz) return !1;\n if (hr <= 23 && min <= 59 && sec < 60) return !0;\n const utcMin = min - tzM * tzSign, utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n };\n}\nconst parseDateTimeEmptySpace = (str) => str.charCodeAt(str.length - 6) === 32 ? str.slice(0, -6) + \"+\" + str.slice(-5) : str, DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction getDateTime(strictTimeZone) {\n const time = getTime(strictTimeZone);\n return function(str) {\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]);\n };\n}\nconst NOT_URI_FRAGMENT = /\\/|:/, URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n return BYTE.lastIndex = 0, BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31), MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return !0;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return !1;\n try {\n return new RegExp(str), !0;\n } catch {\n return !1;\n }\n}\n/**\n * @license\n *\n * MIT License\n *\n * Copyright (c) 2020 Evgeny Poberezkin\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nconst isISO8601 = /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/, isFormalDate = /(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s\\d{2}\\s\\d{4}\\s\\d{2}:\\d{2}:\\d{2}\\sGMT(?:\\+|-)\\d{4}\\s\\([^)]+\\)/, isShortenDate = /^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\\s-](?:0?[1-9]|1[0-2])[/\\s-](?:19|20)\\d{2})|(?:(?:19|20)\\d{2}[/\\s-](?:0?[1-9]|1[0-2])[/\\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\\s[AP]M)?)?$/, _validateDate = fullFormats.date, _validateDateTime = fullFormats[\"date-time\"];\nFormatRegistry.Has(\"date\") || FormatRegistry.Set(\"date\", (value) => {\n const temp = parseDateTimeEmptySpace(value).replace(/\"/g, \"\");\n if (isISO8601.test(temp) || isFormalDate.test(temp) || isShortenDate.test(temp) || _validateDate(temp)) {\n const date2 = new Date(temp);\n if (!Number.isNaN(date2.getTime())) return !0;\n }\n return !1;\n}), FormatRegistry.Has(\"date-time\") || FormatRegistry.Set(\"date-time\", (value) => {\n const temp = value.replace(/\"/g, \"\");\n if (isISO8601.test(temp) || isFormalDate.test(temp) || isShortenDate.test(temp) || _validateDateTime(temp)) {\n const date2 = new Date(temp);\n if (!Number.isNaN(date2.getTime())) return !0;\n }\n return !1;\n}), Object.entries(fullFormats).forEach((formatEntry) => {\n const [formatName, formatValue] = formatEntry;\n FormatRegistry.Has(formatName) || (formatValue instanceof RegExp ? FormatRegistry.Set(formatName, (value) => formatValue.test(value)) : typeof formatValue == \"function\" && FormatRegistry.Set(formatName, formatValue));\n}), FormatRegistry.Has(\"numeric\") || FormatRegistry.Set(\"numeric\", (value) => !!value && !isNaN(+value)), FormatRegistry.Has(\"integer\") || FormatRegistry.Set(\n \"integer\",\n (value) => !!value && Number.isInteger(+value)\n), FormatRegistry.Has(\"boolean\") || FormatRegistry.Set(\n \"boolean\",\n (value) => value === \"true\" || value === \"false\"\n), FormatRegistry.Has(\"ObjectString\") || FormatRegistry.Set(\"ObjectString\", (value) => {\n let start = value.charCodeAt(0);\n if ((start === 9 || start === 10 || start === 32) && (start = value.trimStart().charCodeAt(0)), start !== 123 && start !== 91) return !1;\n try {\n return JSON.parse(value), !0;\n } catch {\n return !1;\n }\n}), FormatRegistry.Has(\"ArrayString\") || FormatRegistry.Set(\"ArrayString\", (value) => {\n let start = value.charCodeAt(0);\n if ((start === 9 || start === 10 || start === 32) && (start = value.trimStart().charCodeAt(0)), start !== 123 && start !== 91) return !1;\n try {\n return JSON.parse(value), !0;\n } catch {\n return !1;\n }\n});\nexport {\n fullFormats,\n parseDateTimeEmptySpace\n};\n","import { Type, Kind } from \"@sinclair/typebox\";\nimport {\n compile,\n createType,\n loadFileType,\n tryParse,\n validateFile\n} from \"./utils.mjs\";\nimport { ELYSIA_FORM_DATA, form } from \"../utils.mjs\";\nimport { ValidationError } from \"../error.mjs\";\nimport { parseDateTimeEmptySpace } from \"./format.mjs\";\nconst t = Object.assign({}, Type);\ncreateType(\n \"UnionEnum\",\n (schema, value) => (typeof value == \"number\" || typeof value == \"string\" || value === null) && schema.enum.includes(value)\n), createType(\n \"ArrayBuffer\",\n (schema, value) => value instanceof ArrayBuffer\n);\nconst internalFiles = createType(\n \"Files\",\n (options, value) => {\n if (options.minItems && options.minItems > 1 && !Array.isArray(value))\n return !1;\n if (!Array.isArray(value)) return validateFile(options, value);\n if (options.minItems && value.length < options.minItems || options.maxItems && value.length > options.maxItems) return !1;\n for (let i = 0; i < value.length; i++)\n if (!validateFile(options, value[i])) return !1;\n return !0;\n }\n), internalFormData = createType(\n \"ElysiaForm\",\n ({ compiler, ...schema }, value) => {\n if (!(value instanceof FormData)) return !1;\n if (compiler) {\n if (!(ELYSIA_FORM_DATA in value))\n throw new ValidationError(\"property\", schema, value);\n if (!compiler.Check(value[ELYSIA_FORM_DATA]))\n throw compiler.Error(value[ELYSIA_FORM_DATA]);\n }\n return !0;\n }\n), ElysiaType = {\n // @ts-ignore\n String: (property) => Type.String(property),\n Numeric: (property) => {\n const schema = Type.Number(property), compiler = compile(schema);\n return t.Transform(\n t.Union(\n [\n t.String({\n format: \"numeric\",\n default: 0\n }),\n t.Number(property)\n ],\n property\n )\n ).Decode((value) => {\n const number = +value;\n if (isNaN(number)) return value;\n if (property && !compiler.Check(number))\n throw compiler.Error(number);\n return number;\n }).Encode((value) => value);\n },\n NumericEnum(item, property) {\n const schema = Type.Enum(item, property), compiler = compile(schema);\n return t.Transform(\n t.Union([t.String({ format: \"numeric\" }), t.Number()], property)\n ).Decode((value) => {\n const number = +value;\n if (isNaN(number) || !compiler.Check(number)) throw compiler.Error(number);\n return number;\n }).Encode((value) => value);\n },\n Integer: (property) => {\n const schema = Type.Integer(property), compiler = compile(schema);\n return t.Transform(\n t.Union(\n [\n t.String({\n format: \"integer\",\n default: 0\n }),\n Type.Integer(property)\n ],\n property\n )\n ).Decode((value) => {\n const number = +value;\n if (!compiler.Check(number)) throw compiler.Error(number);\n return number;\n }).Encode((value) => value);\n },\n Date: (property) => {\n const schema = Type.Date(property), compiler = compile(schema), _default = property?.default ? new Date(property.default) : void 0;\n return t.Transform(\n t.Union(\n [\n Type.Date(property),\n t.String({\n format: \"date-time\",\n default: _default?.toISOString()\n }),\n t.String({\n format: \"date\",\n default: _default?.toISOString()\n }),\n t.Number({ default: _default?.getTime() })\n ],\n property\n )\n ).Decode((value) => {\n if (typeof value == \"number\") {\n const date2 = new Date(value);\n if (!compiler.Check(date2)) throw compiler.Error(date2);\n return date2;\n }\n if (value instanceof Date) return value;\n const date = new Date(parseDateTimeEmptySpace(value));\n if (!date || isNaN(date.getTime()))\n throw new ValidationError(\"property\", schema, date);\n if (!compiler.Check(date)) throw compiler.Error(date);\n return date;\n }).Encode((value) => {\n if (value instanceof Date) return value.toISOString();\n if (typeof value == \"string\") {\n const parsed = new Date(parseDateTimeEmptySpace(value));\n if (isNaN(parsed.getTime()))\n throw new ValidationError(\"property\", schema, value);\n return parsed.toISOString();\n }\n if (!compiler.Check(value)) throw compiler.Error(value);\n return value;\n });\n },\n BooleanString: (property) => {\n const schema = Type.Boolean(property), compiler = compile(schema);\n return t.Transform(\n t.Union(\n [\n t.Boolean(property),\n t.String({\n format: \"boolean\",\n default: !1\n })\n ],\n property\n )\n ).Decode((value) => {\n if (typeof value == \"string\") return value === \"true\";\n if (value !== void 0 && !compiler.Check(value))\n throw compiler.Error(value);\n return value;\n }).Encode((value) => value);\n },\n ObjectString: (properties, options) => {\n const schema = t.Object(properties, options), compiler = compile(schema);\n return t.Transform(\n t.Union(\n [\n t.String({\n format: \"ObjectString\",\n default: options?.default\n }),\n schema\n ],\n {\n elysiaMeta: \"ObjectString\"\n }\n )\n ).Decode((value) => {\n if (typeof value == \"string\") {\n if (value.charCodeAt(0) !== 123)\n throw new ValidationError(\"property\", schema, value);\n if (!compiler.Check(value = tryParse(value, schema)))\n throw compiler.Error(value);\n return compiler.Decode(value);\n }\n return value;\n }).Encode((value) => {\n let original;\n if (typeof value == \"string\" && (value = tryParse(original = value, schema)), !compiler.Check(value)) throw compiler.Error(value);\n return original ?? JSON.stringify(value);\n });\n },\n ArrayString: (children = t.String(), options) => {\n const schema = t.Array(children, options), compiler = compile(schema), decode = (value, isProperty = !1) => {\n if (value.charCodeAt(0) === 91) {\n if (!compiler.Check(value = tryParse(value, schema)))\n throw compiler.Error(value);\n return compiler.Decode(value);\n }\n if (isProperty) return value;\n throw new ValidationError(\"property\", schema, value);\n };\n return t.Transform(\n t.Union(\n [\n t.String({\n format: \"ArrayString\",\n default: options?.default\n }),\n schema\n ],\n {\n elysiaMeta: \"ArrayString\"\n }\n )\n ).Decode((value) => {\n if (Array.isArray(value)) {\n let values = [];\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (typeof v == \"string\") {\n const t2 = decode(v, !0);\n Array.isArray(t2) ? values = values.concat(t2) : values.push(t2);\n continue;\n }\n values.push(v);\n }\n return values;\n }\n return typeof value == \"string\" ? decode(value) : value;\n }).Encode((value) => {\n let original;\n if (typeof value == \"string\" && (value = tryParse(original = value, schema)), !compiler.Check(value))\n throw new ValidationError(\"property\", schema, value);\n return original ?? JSON.stringify(value);\n });\n },\n ArrayQuery: (children = t.String(), options) => {\n const schema = t.Array(children, options), compiler = compile(schema), decode = (value) => value.indexOf(\",\") !== -1 ? compiler.Decode(value.split(\",\")) : compiler.Decode([value]);\n return t.Transform(\n t.Union(\n [\n t.String({\n default: options?.default\n }),\n schema\n ],\n {\n elysiaMeta: \"ArrayQuery\"\n }\n )\n ).Decode((value) => {\n if (Array.isArray(value)) {\n let values = [];\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (typeof v == \"string\") {\n const t2 = decode(v);\n Array.isArray(t2) ? values = values.concat(t2) : values.push(t2);\n continue;\n }\n values.push(v);\n }\n return values;\n }\n return typeof value == \"string\" ? decode(value) : value;\n }).Encode((value) => {\n let original;\n if (typeof value == \"string\" && (value = tryParse(original = value, schema)), !compiler.Check(value))\n throw new ValidationError(\"property\", schema, value);\n return original ?? JSON.stringify(value);\n });\n },\n File: createType(\n \"File\",\n validateFile\n ),\n Files: (options = {}) => t.Transform(internalFiles(options)).Decode((value) => Array.isArray(value) ? value : [value]).Encode((value) => value),\n Nullable: (schema, options) => t.Union([schema, t.Null()], {\n ...options,\n nullable: !0\n }),\n /**\n * Allow Optional, Nullable and Undefined\n */\n MaybeEmpty: (schema, options) => t.Union([schema, t.Null(), t.Undefined()], options),\n Cookie: (properties, {\n domain,\n expires,\n httpOnly,\n maxAge,\n path,\n priority,\n sameSite,\n secure,\n secrets,\n sign,\n ...options\n } = {}) => {\n const v = t.Object(properties, options);\n return v.config = {\n domain,\n expires,\n httpOnly,\n maxAge,\n path,\n priority,\n sameSite,\n secure,\n secrets,\n sign\n }, v;\n },\n UnionEnum: (values, options = {}) => {\n const type = values.every((value) => typeof value == \"string\") ? { type: \"string\" } : values.every((value) => typeof value == \"number\") ? { type: \"number\" } : values.every((value) => value === null) ? { type: \"null\" } : {};\n if (values.some((x) => typeof x == \"object\" && x !== null))\n throw new Error(\"This type does not support objects or arrays\");\n return {\n // default is need for generating error message\n default: values[0],\n ...options,\n [Kind]: \"UnionEnum\",\n ...type,\n enum: values\n };\n },\n NoValidate: (v, enabled = !0) => (v.noValidate = enabled, v),\n Form: (v, options = {}) => {\n const schema = t.Object(v, {\n default: form({}),\n ...options\n }), compiler = compile(schema);\n return t.Union([\n schema,\n // @ts-expect-error\n internalFormData({\n compiler\n })\n ]);\n },\n ArrayBuffer(options = {}) {\n return {\n // default is need for generating error message\n default: [1, 2, 3],\n ...options,\n [Kind]: \"ArrayBuffer\"\n };\n },\n Uint8Array: (options) => {\n const schema = Type.Uint8Array(options), compiler = compile(schema);\n return t.Transform(t.Union([t.ArrayBuffer(), Type.Uint8Array(options)])).Decode((value) => {\n if (value instanceof ArrayBuffer) {\n if (!compiler.Check(value = new Uint8Array(value)))\n throw compiler.Error(value);\n return value;\n }\n return value;\n }).Encode((value) => value);\n }\n};\nt.BooleanString = ElysiaType.BooleanString, t.ObjectString = ElysiaType.ObjectString, t.ArrayString = ElysiaType.ArrayString, t.ArrayQuery = ElysiaType.ArrayQuery, t.Numeric = ElysiaType.Numeric, t.NumericEnum = ElysiaType.NumericEnum, t.Integer = ElysiaType.Integer, t.File = (arg) => (arg?.type && loadFileType(), ElysiaType.File({\n default: \"File\",\n ...arg,\n extension: arg?.type,\n type: \"string\",\n format: \"binary\"\n})), t.Files = (arg) => (arg?.type && loadFileType(), ElysiaType.Files({\n ...arg,\n elysiaMeta: \"Files\",\n default: \"Files\",\n extension: arg?.type,\n type: \"array\",\n items: {\n ...arg,\n default: \"Files\",\n type: \"string\",\n format: \"binary\"\n }\n})), t.Nullable = ElysiaType.Nullable, t.MaybeEmpty = ElysiaType.MaybeEmpty, t.Cookie = ElysiaType.Cookie, t.Date = ElysiaType.Date, t.UnionEnum = ElysiaType.UnionEnum, t.NoValidate = ElysiaType.NoValidate, t.Form = ElysiaType.Form, t.ArrayBuffer = ElysiaType.ArrayBuffer, t.Uint8Array = ElysiaType.Uint8Array;\nimport {\n TypeSystemPolicy,\n TypeSystem,\n TypeSystemDuplicateFormat,\n TypeSystemDuplicateTypeKind\n} from \"@sinclair/typebox/system\";\nimport { TypeRegistry, FormatRegistry } from \"@sinclair/typebox\";\nimport { TypeCompiler, TypeCheck } from \"@sinclair/typebox/compiler\";\nexport {\n ElysiaType,\n FormatRegistry,\n TypeCheck,\n TypeCompiler,\n TypeRegistry,\n TypeSystem,\n TypeSystemDuplicateFormat,\n TypeSystemDuplicateTypeKind,\n TypeSystemPolicy,\n t\n};\n","import { checksum } from \"./utils.mjs\";\nimport { isBun, isCloudflareWorker } from \"./universal/utils.mjs\";\nconst separateFunction = (code) => {\n code.startsWith(\"async\") && (code = code.slice(5)), code = code.trimStart();\n let index = -1;\n if (code.charCodeAt(0) === 40 && (index = code.indexOf(\"=>\", code.indexOf(\")\")), index !== -1)) {\n let bracketEndIndex = index;\n for (; bracketEndIndex > 0 && code.charCodeAt(--bracketEndIndex) !== 41; )\n ;\n let body = code.slice(index + 2);\n return body.charCodeAt(0) === 32 && (body = body.trimStart()), [\n code.slice(1, bracketEndIndex),\n body,\n {\n isArrowReturn: body.charCodeAt(0) !== 123\n }\n ];\n }\n if (/^(\\w+)=>/g.test(code) && (index = code.indexOf(\"=>\"), index !== -1)) {\n let body = code.slice(index + 2);\n return body.charCodeAt(0) === 32 && (body = body.trimStart()), [\n code.slice(0, index),\n body,\n {\n isArrowReturn: body.charCodeAt(0) !== 123\n }\n ];\n }\n if (code.startsWith(\"function\")) {\n index = code.indexOf(\"(\");\n const end = code.indexOf(\")\");\n return [\n code.slice(index + 1, end),\n code.slice(end + 2),\n {\n isArrowReturn: !1\n }\n ];\n }\n const start = code.indexOf(\"(\");\n if (start !== -1) {\n const sep = code.indexOf(`\n`, 2), parameter = code.slice(0, sep), end = parameter.lastIndexOf(\")\") + 1, body = code.slice(sep + 1);\n return [\n parameter.slice(start, end),\n \"{\" + body,\n {\n isArrowReturn: !1\n }\n ];\n }\n const x = code.split(`\n`, 2);\n return [x[0], x[1], { isArrowReturn: !1 }];\n}, bracketPairRange = (parameter) => {\n const start = parameter.indexOf(\"{\");\n if (start === -1) return [-1, 0];\n let end = start + 1, deep = 1;\n for (; end < parameter.length; end++) {\n const char = parameter.charCodeAt(end);\n if (char === 123 ? deep++ : char === 125 && deep--, deep === 0) break;\n }\n return deep !== 0 ? [0, parameter.length] : [start, end + 1];\n}, bracketPairRangeReverse = (parameter) => {\n const end = parameter.lastIndexOf(\"}\");\n if (end === -1) return [-1, 0];\n let start = end - 1, deep = 1;\n for (; start >= 0; start--) {\n const char = parameter.charCodeAt(start);\n if (char === 125 ? deep++ : char === 123 && deep--, deep === 0) break;\n }\n return deep !== 0 ? [-1, 0] : [start, end + 1];\n}, removeColonAlias = (parameter) => {\n for (; ; ) {\n const start = parameter.indexOf(\":\");\n if (start === -1) break;\n let end = parameter.indexOf(\",\", start);\n end === -1 && (end = parameter.indexOf(\"}\", start) - 1), end === -2 && (end = parameter.length), parameter = parameter.slice(0, start) + parameter.slice(end);\n }\n return parameter;\n}, retrieveRootparameters = (parameter) => {\n let hasParenthesis = !1;\n parameter.charCodeAt(0) === 40 && (parameter = parameter.slice(1, -1)), parameter.charCodeAt(0) === 123 && (hasParenthesis = !0, parameter = parameter.slice(1, -1)), parameter = parameter.replace(/( |\\t|\\n)/g, \"\").trim();\n let parameters = [];\n for (; ; ) {\n let [start, end] = bracketPairRange(parameter);\n if (start === -1) break;\n parameters.push(parameter.slice(0, start - 1)), parameter.charCodeAt(end) === 44 && end++, parameter = parameter.slice(end);\n }\n parameter = removeColonAlias(parameter), parameter && (parameters = parameters.concat(parameter.split(\",\")));\n const parameterMap = /* @__PURE__ */ Object.create(null);\n for (const p of parameters) {\n if (p.indexOf(\",\") === -1) {\n parameterMap[p] = !0;\n continue;\n }\n for (const q of p.split(\",\")) parameterMap[q.trim()] = !0;\n }\n return {\n hasParenthesis,\n parameters: parameterMap\n };\n}, findParameterReference = (parameter, inference) => {\n const { parameters, hasParenthesis } = retrieveRootparameters(parameter);\n return parameters.query && (inference.query = !0), parameters.headers && (inference.headers = !0), parameters.body && (inference.body = !0), parameters.cookie && (inference.cookie = !0), parameters.set && (inference.set = !0), parameters.server && (inference.server = !0), parameters.route && (inference.route = !0), parameters.url && (inference.url = !0), parameters.path && (inference.path = !0), hasParenthesis ? `{ ${Object.keys(parameters).join(\", \")} }` : Object.keys(parameters).join(\", \");\n}, findEndIndex = (type, content, index) => {\n const regex = new RegExp(\n `${type.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}[\\\\n\\\\t,; ]`\n );\n index !== void 0 && (regex.lastIndex = index);\n const match = regex.exec(content);\n return match ? match.index : -1;\n}, findEndQueryBracketIndex = (type, content, index) => {\n const bracketEndIndex = content.indexOf(type + \"]\", index), singleQuoteIndex = content.indexOf(type + \"'\", index), doubleQuoteIndex = content.indexOf(type + '\"', index);\n return [bracketEndIndex, singleQuoteIndex, doubleQuoteIndex].filter((i) => i > 0).sort((a, b) => a - b)[0] || -1;\n}, findAlias = (type, body, depth = 0) => {\n if (depth > 5) return [];\n const aliases = [];\n let content = body;\n for (; ; ) {\n let index = findEndIndex(\" = \" + type, content);\n if (index === -1 && (index = findEndIndex(\"=\" + type, content)), index === -1) {\n let lastIndex = content.indexOf(\" = \" + type);\n if (lastIndex === -1 && (lastIndex = content.indexOf(\"=\" + type)), lastIndex + 3 + type.length !== content.length) break;\n index = lastIndex;\n }\n const part = content.slice(0, index), lastPart = part.lastIndexOf(\" \");\n let variable = part.slice(lastPart !== -1 ? lastPart + 1 : -1);\n if (variable === \"}\") {\n const [start, end] = bracketPairRangeReverse(part);\n aliases.push(removeColonAlias(content.slice(start, end))), content = content.slice(index + 3 + type.length);\n continue;\n }\n for (; variable.charCodeAt(0) === 44; ) variable = variable.slice(1);\n for (; variable.charCodeAt(0) === 9; ) variable = variable.slice(1);\n variable.includes(\"(\") || aliases.push(variable), content = content.slice(index + 3 + type.length);\n }\n for (const alias of aliases) {\n if (alias.charCodeAt(0) === 123) continue;\n const deepAlias = findAlias(alias, body);\n deepAlias.length > 0 && aliases.push(...deepAlias);\n }\n return aliases;\n}, extractMainParameter = (parameter) => {\n if (!parameter) return;\n if (parameter.charCodeAt(0) !== 123) return parameter;\n if (parameter = parameter.slice(2, -2), !parameter.includes(\",\"))\n return parameter.indexOf(\"...\") !== -1 ? parameter.slice(parameter.indexOf(\"...\") + 3) : void 0;\n const spreadIndex = parameter.indexOf(\"...\");\n if (spreadIndex !== -1)\n return parameter.slice(spreadIndex + 3).trimEnd();\n}, inferBodyReference = (code, aliases, inference) => {\n const access = (type, alias) => new RegExp(\n `${alias}\\\\.(${type})|${alias}\\\\[\"${type}\"\\\\]|${alias}\\\\['${type}'\\\\]`\n ).test(code);\n for (const alias of aliases)\n if (alias) {\n if (alias.charCodeAt(0) === 123) {\n const parameters = retrieveRootparameters(alias).parameters;\n parameters.query && (inference.query = !0), parameters.headers && (inference.headers = !0), parameters.body && (inference.body = !0), parameters.cookie && (inference.cookie = !0), parameters.set && (inference.set = !0), parameters.server && (inference.server = !0), parameters.url && (inference.url = !0), parameters.route && (inference.route = !0), parameters.path && (inference.path = !0);\n continue;\n }\n if (!inference.query && (access(\"query\", alias) || code.includes(\"return \" + alias) || code.includes(\"return \" + alias + \".query\")) && (inference.query = !0), !inference.headers && access(\"headers\", alias) && (inference.headers = !0), !inference.body && access(\"body\", alias) && (inference.body = !0), !inference.cookie && access(\"cookie\", alias) && (inference.cookie = !0), !inference.set && access(\"set\", alias) && (inference.set = !0), !inference.server && access(\"server\", alias) && (inference.server = !0), !inference.route && access(\"route\", alias) && (inference.route = !0), !inference.url && access(\"url\", alias) && (inference.url = !0), !inference.path && access(\"path\", alias) && (inference.path = !0), inference.query && inference.headers && inference.body && inference.cookie && inference.set && inference.server && inference.route && inference.url && inference.path)\n break;\n }\n return aliases;\n}, removeDefaultParameter = (parameter) => {\n for (; ; ) {\n const index = parameter.indexOf(\"=\");\n if (index === -1) break;\n const commaIndex = parameter.indexOf(\",\", index), bracketIndex = parameter.indexOf(\"}\", index), end = [commaIndex, bracketIndex].filter((i) => i > 0).sort((a, b) => a - b)[0] || -1;\n if (end === -1) {\n parameter = parameter.slice(0, index);\n break;\n }\n parameter = parameter.slice(0, index) + parameter.slice(end);\n }\n return parameter.split(\",\").map((i) => i.trim()).join(\", \");\n}, isContextPassToFunction = (context, body, inference) => {\n try {\n const captureFunction = new RegExp(\n `\\\\w\\\\((?:.*?)?${context}(?:.*?)?\\\\)`,\n \"gs\"\n ), exactParameter = new RegExp(`${context}(,|\\\\))`, \"gs\"), length = body.length;\n let fn;\n for (fn = captureFunction.exec(body) + \"\"; captureFunction.lastIndex !== 0 && captureFunction.lastIndex < length + (fn ? fn.length : 0); ) {\n if (fn && exactParameter.test(fn))\n return inference.query = !0, inference.headers = !0, inference.body = !0, inference.cookie = !0, inference.set = !0, inference.server = !0, inference.url = !0, inference.route = !0, inference.path = !0, !0;\n fn = captureFunction.exec(body) + \"\";\n }\n const nextChar = body.charCodeAt(captureFunction.lastIndex);\n return nextChar === 41 || nextChar === 44 ? (inference.query = !0, inference.headers = !0, inference.body = !0, inference.cookie = !0, inference.set = !0, inference.server = !0, inference.url = !0, inference.route = !0, inference.path = !0, !0) : !1;\n } catch {\n return console.log(\n \"[Sucrose] warning: unexpected isContextPassToFunction error, you may continue development as usual but please report the following to maintainers:\"\n ), console.log(\"--- body ---\"), console.log(body), console.log(\"--- context ---\"), console.log(context), !0;\n }\n};\nlet pendingGC, caches = {};\nconst clearSucroseCache = (delay) => {\n delay === null || isCloudflareWorker() || (delay === void 0 && (delay = 4 * 60 * 1e3 + 55 * 1e3), pendingGC && clearTimeout(pendingGC), pendingGC = setTimeout(() => {\n caches = {}, pendingGC = void 0, isBun && Bun.gc(!1);\n }, delay), pendingGC.unref?.());\n}, mergeInference = (a, b) => ({\n body: a.body || b.body,\n cookie: a.cookie || b.cookie,\n headers: a.headers || b.headers,\n query: a.query || b.query,\n set: a.set || b.set,\n server: a.server || b.server,\n url: a.url || b.url,\n route: a.route || b.route,\n path: a.path || b.path\n}), sucrose = (lifeCycle, inference = {\n query: !1,\n headers: !1,\n body: !1,\n cookie: !1,\n set: !1,\n server: !1,\n url: !1,\n route: !1,\n path: !1\n}, settings = {}) => {\n const events = [];\n lifeCycle.request?.length && events.push(...lifeCycle.request), lifeCycle.beforeHandle?.length && events.push(...lifeCycle.beforeHandle), lifeCycle.parse?.length && events.push(...lifeCycle.parse), lifeCycle.error?.length && events.push(...lifeCycle.error), lifeCycle.transform?.length && events.push(...lifeCycle.transform), lifeCycle.afterHandle?.length && events.push(...lifeCycle.afterHandle), lifeCycle.mapResponse?.length && events.push(...lifeCycle.mapResponse), lifeCycle.afterResponse?.length && events.push(...lifeCycle.afterResponse), lifeCycle.handler && typeof lifeCycle.handler == \"function\" && events.push(lifeCycle.handler);\n for (let i = 0; i < events.length; i++) {\n const e = events[i];\n if (!e) continue;\n const event = typeof e == \"object\" ? e.fn : e;\n if (typeof event != \"function\") continue;\n const content = event.toString(), key = checksum(content), cachedInference = caches[key];\n if (cachedInference) {\n inference = mergeInference(inference, cachedInference);\n continue;\n }\n clearSucroseCache(settings.gcTime);\n const fnInference = {\n query: !1,\n headers: !1,\n body: !1,\n cookie: !1,\n set: !1,\n server: !1,\n url: !1,\n route: !1,\n path: !1\n }, [parameter, body] = separateFunction(content), rootParameters = findParameterReference(parameter, fnInference), mainParameter = extractMainParameter(rootParameters);\n if (mainParameter) {\n const aliases = findAlias(mainParameter, body.slice(1, -1));\n aliases.splice(0, -1, mainParameter);\n let code = body;\n code.charCodeAt(0) === 123 && code.charCodeAt(body.length - 1) === 125 && (code = code.slice(1, -1).trim()), isContextPassToFunction(mainParameter, code, fnInference) || inferBodyReference(code, aliases, fnInference), !fnInference.query && code.includes(\"return \" + mainParameter + \".query\") && (fnInference.query = !0);\n }\n if (caches[key] || (caches[key] = fnInference), inference = mergeInference(inference, fnInference), inference.query && inference.headers && inference.body && inference.cookie && inference.set && inference.server && inference.url && inference.route && inference.path)\n break;\n }\n return inference;\n};\nexport {\n bracketPairRange,\n bracketPairRangeReverse,\n clearSucroseCache,\n extractMainParameter,\n findAlias,\n findParameterReference,\n inferBodyReference,\n isContextPassToFunction,\n mergeInference,\n removeColonAlias,\n removeDefaultParameter,\n retrieveRootparameters,\n separateFunction,\n sucrose\n};\n","import { parse, serialize } from \"cookie\";\nimport decode from \"fast-decode-uri-component\";\nimport { isNotEmpty, unsignCookie } from \"./utils.mjs\";\nimport { InvalidCookieSignature } from \"./error.mjs\";\nconst hashString = (str) => {\n let hash = 2166136261;\n const len = str.length;\n for (let i = 0; i < len; i++)\n hash ^= str.charCodeAt(i), hash = Math.imul(hash, 16777619);\n return hash >>> 0;\n};\nclass Cookie {\n constructor(name, jar, initial = /* @__PURE__ */ Object.create(null)) {\n this.name = name;\n this.jar = jar;\n this.initial = initial;\n }\n get cookie() {\n return this.jar[this.name] ?? this.initial;\n }\n set cookie(jar) {\n this.name in this.jar || (this.jar[this.name] = this.initial), this.jar[this.name] = jar, this.valueHash = void 0;\n }\n get setCookie() {\n return this.name in this.jar || (this.jar[this.name] = this.initial), this.jar[this.name];\n }\n set setCookie(jar) {\n this.cookie = jar;\n }\n get value() {\n return this.cookie.value;\n }\n set value(value) {\n const current = this.cookie.value;\n if (current !== value) {\n if (typeof current == \"object\" && current !== null && typeof value == \"object\" && value !== null)\n try {\n const valueStr = JSON.stringify(value), newHash = hashString(valueStr);\n if (this.valueHash !== void 0 && this.valueHash !== newHash)\n this.valueHash = newHash;\n else {\n if (JSON.stringify(current) === valueStr) {\n this.valueHash = newHash;\n return;\n }\n this.valueHash = newHash;\n }\n } catch {\n }\n this.name in this.jar || (this.jar[this.name] = { ...this.initial }), this.jar[this.name].value = value;\n }\n }\n get expires() {\n return this.cookie.expires;\n }\n set expires(expires) {\n this.setCookie.expires = expires;\n }\n get maxAge() {\n return this.cookie.maxAge;\n }\n set maxAge(maxAge) {\n this.setCookie.maxAge = maxAge;\n }\n get domain() {\n return this.cookie.domain;\n }\n set domain(domain) {\n this.setCookie.domain = domain;\n }\n get path() {\n return this.cookie.path;\n }\n set path(path) {\n this.setCookie.path = path;\n }\n get secure() {\n return this.cookie.secure;\n }\n set secure(secure) {\n this.setCookie.secure = secure;\n }\n get httpOnly() {\n return this.cookie.httpOnly;\n }\n set httpOnly(httpOnly) {\n this.setCookie.httpOnly = httpOnly;\n }\n get sameSite() {\n return this.cookie.sameSite;\n }\n set sameSite(sameSite) {\n this.setCookie.sameSite = sameSite;\n }\n get priority() {\n return this.cookie.priority;\n }\n set priority(priority) {\n this.setCookie.priority = priority;\n }\n get partitioned() {\n return this.cookie.partitioned;\n }\n set partitioned(partitioned) {\n this.setCookie.partitioned = partitioned;\n }\n get secrets() {\n return this.cookie.secrets;\n }\n set secrets(secrets) {\n this.setCookie.secrets = secrets;\n }\n update(config) {\n return this.setCookie = Object.assign(\n this.cookie,\n typeof config == \"function\" ? config(this.cookie) : config\n ), this;\n }\n set(config) {\n return this.setCookie = Object.assign(\n {\n ...this.initial,\n value: this.value\n },\n typeof config == \"function\" ? config(this.cookie) : config\n ), this;\n }\n remove() {\n if (this.value !== void 0)\n return this.set({\n expires: /* @__PURE__ */ new Date(0),\n maxAge: 0,\n value: \"\"\n }), this;\n }\n toString() {\n return typeof this.value == \"object\" ? JSON.stringify(this.value) : this.value?.toString() ?? \"\";\n }\n}\nconst createCookieJar = (set, store, initial) => (set.cookie || (set.cookie = /* @__PURE__ */ Object.create(null)), new Proxy(store, {\n get(_, key) {\n return key in store ? new Cookie(\n key,\n set.cookie,\n Object.assign({}, initial ?? {}, store[key])\n ) : new Cookie(\n key,\n set.cookie,\n Object.assign({}, initial)\n );\n }\n})), parseCookie = async (set, cookieString, {\n secrets,\n sign,\n ...initial\n} = /* @__PURE__ */ Object.create(null)) => {\n if (!cookieString) return createCookieJar(set, /* @__PURE__ */ Object.create(null), initial);\n const isStringKey = typeof secrets == \"string\";\n sign && sign !== !0 && !Array.isArray(sign) && (sign = [sign]);\n const jar = /* @__PURE__ */ Object.create(null), cookies = parse(cookieString);\n for (const [name, v] of Object.entries(cookies)) {\n if (v === void 0 || name === \"__proto__\" || name === \"constructor\" || name === \"prototype\")\n continue;\n let value = decode(v);\n if (sign === !0 || sign?.includes(name)) {\n if (!secrets)\n throw new Error(\"No secret is provided to cookie plugin\");\n if (isStringKey) {\n if (typeof value != \"string\")\n throw new InvalidCookieSignature(name);\n const temp = await unsignCookie(value, secrets);\n if (temp === !1) throw new InvalidCookieSignature(name);\n value = temp;\n } else {\n let decoded = !1;\n for (let i = 0; i < secrets.length; i++) {\n if (typeof value != \"string\")\n throw new InvalidCookieSignature(name);\n const temp = await unsignCookie(value, secrets[i]);\n if (temp !== !1) {\n decoded = !0, value = temp;\n break;\n }\n }\n if (!decoded) throw new InvalidCookieSignature(name);\n }\n }\n if (value) {\n const starts = value.charCodeAt(0), ends = value.charCodeAt(value.length - 1);\n if (starts === 123 && ends === 125 || starts === 91 && ends === 93)\n try {\n value = JSON.parse(value);\n } catch {\n }\n }\n jar[name] = /* @__PURE__ */ Object.create(null), jar[name].value = value;\n }\n return createCookieJar(set, jar, initial);\n}, serializeCookie = (cookies) => {\n if (!cookies || !isNotEmpty(cookies)) return;\n const set = [];\n for (const [key, property] of Object.entries(cookies)) {\n if (!key || !property) continue;\n const value = property.value;\n value != null && set.push(\n serialize(\n key,\n typeof value == \"object\" ? JSON.stringify(value) : value + \"\",\n property\n )\n );\n }\n if (set.length !== 0)\n return set.length === 1 ? set[0] : set;\n};\nexport {\n Cookie,\n createCookieJar,\n parseCookie,\n serializeCookie\n};\n","import { isBun } from \"./utils.mjs\";\nconst env = isBun ? Bun.env : typeof process < \"u\" && process?.env ? process.env : {};\nexport {\n env\n};\n","import { serializeCookie } from \"../cookies.mjs\";\nimport { hasHeaderShorthand, isNotEmpty, StatusMap } from \"../utils.mjs\";\nimport { env } from \"../universal/index.mjs\";\nimport { isBun } from \"../universal/utils.mjs\";\nconst handleFile = (response, set) => {\n if (!isBun && response instanceof Promise)\n return response.then((res) => handleFile(res, set));\n const size = response.size, immutable = set && (set.status === 206 || set.status === 304 || set.status === 412 || set.status === 416), defaultHeader = immutable ? {} : {\n \"accept-ranges\": \"bytes\",\n \"content-range\": size ? `bytes 0-${size - 1}/${size}` : void 0\n };\n if (!set && !size) return new Response(response);\n if (!set)\n return new Response(response, {\n headers: defaultHeader\n });\n if (set.headers instanceof Headers) {\n for (const key of Object.keys(defaultHeader))\n key in set.headers && set.headers.append(key, defaultHeader[key]);\n return immutable && (set.headers.delete(\"content-length\"), set.headers.delete(\"accept-ranges\")), new Response(response, set);\n }\n return isNotEmpty(set.headers) ? new Response(response, {\n status: set.status,\n headers: Object.assign(defaultHeader, set.headers)\n }) : new Response(response, {\n status: set.status,\n headers: defaultHeader\n });\n}, parseSetCookies = (headers, setCookie) => {\n if (!headers) return headers;\n headers.delete(\"set-cookie\");\n for (let i = 0; i < setCookie.length; i++) {\n const index = setCookie[i].indexOf(\"=\");\n headers.append(\n \"set-cookie\",\n `${setCookie[i].slice(0, index)}=${setCookie[i].slice(index + 1) || \"\"}`\n );\n }\n return headers;\n}, responseToSetHeaders = (response, set) => {\n if (set?.headers) {\n if (response)\n if (hasHeaderShorthand)\n Object.assign(set.headers, response.headers.toJSON());\n else\n for (const [key, value] of response.headers.entries())\n key in set.headers && (set.headers[key] = value);\n return set.status === 200 && (set.status = response.status), set.headers[\"content-encoding\"] && delete set.headers[\"content-encoding\"], set;\n }\n if (!response)\n return {\n headers: {},\n status: set?.status ?? 200\n };\n if (hasHeaderShorthand)\n return set = {\n headers: response.headers.toJSON(),\n status: set?.status ?? 200\n }, set.headers[\"content-encoding\"] && delete set.headers[\"content-encoding\"], set;\n set = {\n headers: {},\n status: set?.status ?? 200\n };\n for (const [key, value] of response.headers.entries())\n key !== \"content-encoding\" && key in set.headers && (set.headers[key] = value);\n return set;\n}, allowRapidStream = env.ELYSIA_RAPID_STREAM === \"true\", createStreamHandler = ({ mapResponse, mapCompactResponse }) => async (generator, set, request, skipFormat) => {\n let init = generator.next?.();\n if (set && handleSet(set), init instanceof Promise && (init = await init), init?.value instanceof ReadableStream)\n generator = init.value;\n else if (init && (typeof init?.done > \"u\" || init?.done))\n return set ? mapResponse(init.value, set, request) : mapCompactResponse(init.value, request);\n const isSSE = !skipFormat && // @ts-ignore First SSE result is wrapped with sse()\n (init?.value?.sse ?? // @ts-ignore ReadableStream is wrapped with sse()\n generator?.sse ?? // User explicitly set content-type to SSE\n set?.headers[\"content-type\"]?.startsWith(\"text/event-stream\")), format = isSSE ? (data) => `data: ${data}\n\n` : (data) => data, contentType = isSSE ? \"text/event-stream\" : init?.value && typeof init?.value == \"object\" ? \"application/json\" : \"text/plain\";\n set?.headers ? (set.headers[\"transfer-encoding\"] || (set.headers[\"transfer-encoding\"] = \"chunked\"), set.headers[\"content-type\"] || (set.headers[\"content-type\"] = contentType), set.headers[\"cache-control\"] || (set.headers[\"cache-control\"] = \"no-cache\")) : set = {\n status: 200,\n headers: {\n \"content-type\": contentType,\n \"transfer-encoding\": \"chunked\",\n \"cache-control\": \"no-cache\",\n connection: \"keep-alive\"\n }\n };\n const isBrowser = request?.headers.has(\"Origin\");\n return new Response(\n new ReadableStream({\n async start(controller) {\n let end = !1;\n if (request?.signal?.addEventListener(\"abort\", () => {\n end = !0;\n try {\n controller.close();\n } catch {\n }\n }), !(!init || init.value instanceof ReadableStream)) {\n if (init.value !== void 0 && init.value !== null)\n if (init.value.toSSE)\n controller.enqueue(init.value.toSSE());\n else if (typeof init.value == \"object\")\n try {\n controller.enqueue(\n format(JSON.stringify(init.value))\n );\n } catch {\n controller.enqueue(\n format(init.value.toString())\n );\n }\n else controller.enqueue(format(init.value.toString()));\n }\n try {\n for await (const chunk of generator) {\n if (end) break;\n if (chunk != null)\n if (chunk.toSSE)\n controller.enqueue(chunk.toSSE());\n else {\n if (typeof chunk == \"object\")\n try {\n controller.enqueue(\n format(JSON.stringify(chunk))\n );\n } catch {\n controller.enqueue(\n format(chunk.toString())\n );\n }\n else\n controller.enqueue(format(chunk.toString()));\n !allowRapidStream && isBrowser && !isSSE && await new Promise(\n (resolve) => setTimeout(() => resolve(), 0)\n );\n }\n }\n } catch (error) {\n console.warn(error);\n }\n try {\n controller.close();\n } catch {\n }\n }\n }),\n set\n );\n};\nasync function* streamResponse(response) {\n const body = response.body;\n if (!body) return;\n const reader = body.getReader(), decoder = new TextDecoder();\n try {\n for (; ; ) {\n const { done, value } = await reader.read();\n if (done) break;\n typeof value == \"string\" ? yield value : yield decoder.decode(value);\n }\n } finally {\n reader.releaseLock();\n }\n}\nconst handleSet = (set) => {\n if (typeof set.status == \"string\" && (set.status = StatusMap[set.status]), set.cookie && isNotEmpty(set.cookie)) {\n const cookie = serializeCookie(set.cookie);\n cookie && (set.headers[\"set-cookie\"] = cookie);\n }\n set.headers[\"set-cookie\"] && Array.isArray(set.headers[\"set-cookie\"]) && (set.headers = parseSetCookies(\n new Headers(set.headers),\n set.headers[\"set-cookie\"]\n ));\n};\nfunction mergeHeaders(responseHeaders, setHeaders) {\n const headers = new Headers(responseHeaders);\n if (setHeaders instanceof Headers)\n for (const key of setHeaders.keys())\n if (key === \"set-cookie\") {\n if (headers.has(\"set-cookie\")) continue;\n for (const cookie of setHeaders.getSetCookie())\n headers.append(\"set-cookie\", cookie);\n } else responseHeaders.has(key) || headers.set(key, setHeaders?.get(key) ?? \"\");\n else\n for (const key in setHeaders)\n key === \"set-cookie\" ? headers.append(key, setHeaders[key]) : responseHeaders.has(key) || headers.set(key, setHeaders[key]);\n return headers;\n}\nfunction mergeStatus(responseStatus, setStatus) {\n return typeof setStatus == \"string\" && (setStatus = StatusMap[setStatus]), responseStatus === 200 ? setStatus : responseStatus;\n}\nconst createResponseHandler = (handler) => {\n const handleStream = createStreamHandler(handler);\n return (response, set, request) => {\n const newResponse = new Response(response.body, {\n headers: mergeHeaders(response.headers, set.headers),\n status: mergeStatus(response.status, set.status)\n });\n return !newResponse.headers.has(\"content-length\") && newResponse.headers.get(\"transfer-encoding\") === \"chunked\" ? handleStream(\n streamResponse(newResponse),\n responseToSetHeaders(newResponse, set),\n request,\n !0\n // don't auto-format SSE for pre-formatted Response\n ) : newResponse;\n };\n};\nasync function tee(source, branches = 2) {\n const buffer = [];\n let done = !1, waiting = [];\n (async () => {\n for await (const value of source)\n buffer.push(value), waiting.forEach((w) => w.resolve()), waiting = [];\n done = !0, waiting.forEach((w) => w.resolve());\n })();\n async function* makeIterator() {\n let i = 0;\n for (; ; )\n if (i < buffer.length)\n yield buffer[i++];\n else {\n if (done)\n return;\n await new Promise((resolve) => waiting.push({ resolve }));\n }\n }\n return Array.from({ length: branches }, makeIterator);\n}\nexport {\n createResponseHandler,\n createStreamHandler,\n handleFile,\n handleSet,\n mergeHeaders,\n mergeStatus,\n parseSetCookies,\n responseToSetHeaders,\n streamResponse,\n tee\n};\n","import {\n createResponseHandler,\n createStreamHandler,\n handleFile,\n handleSet\n} from \"../utils.mjs\";\nimport { mime } from \"../../universal/file.mjs\";\nimport { isNotEmpty } from \"../../utils.mjs\";\nimport { Cookie } from \"../../cookies.mjs\";\nimport { ElysiaCustomStatusResponse } from \"../../error.mjs\";\nconst handleElysiaFile = (file, set = {\n headers: {}\n}) => {\n const path = file.path, contentType = mime[path.slice(path.lastIndexOf(\".\") + 1)];\n return contentType && (set.headers[\"content-type\"] = contentType), file.stats && set.status !== 206 && set.status !== 304 && set.status !== 412 && set.status !== 416 ? file.stats.then((stat) => {\n const size = stat.size;\n return size !== void 0 && (set.headers[\"content-range\"] = `bytes 0-${size - 1}/${size}`, set.headers[\"content-length\"] = size), handleFile(file.value, set);\n }) : handleFile(file.value, set);\n}, mapResponse = (response, set, request) => {\n if (isNotEmpty(set.headers) || set.status !== 200 || set.cookie)\n switch (handleSet(set), response?.constructor?.name) {\n case \"String\":\n return set.headers[\"content-type\"] = \"text/plain\", new Response(response, set);\n case \"Array\":\n case \"Object\":\n return set.headers[\"content-type\"] = \"application/json\", new Response(JSON.stringify(response), set);\n case \"ElysiaFile\":\n return handleElysiaFile(response, set);\n case \"File\":\n return handleFile(response, set);\n case \"Blob\":\n return handleFile(response, set);\n case \"ElysiaCustomStatusResponse\":\n return set.status = response.code, mapResponse(\n response.response,\n set,\n request\n );\n case void 0:\n return response ? new Response(JSON.stringify(response), set) : new Response(\"\", set);\n case \"Response\":\n return handleResponse(response, set, request);\n case \"Error\":\n return errorToResponse(response, set);\n case \"Promise\":\n return response.then(\n (x) => mapResponse(x, set, request)\n );\n case \"Function\":\n return mapResponse(response(), set, request);\n case \"Number\":\n case \"Boolean\":\n return new Response(\n response.toString(),\n set\n );\n case \"Cookie\":\n return response instanceof Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);\n case \"FormData\":\n return new Response(response, set);\n default:\n if (response instanceof Response)\n return handleResponse(response, set, request);\n if (response instanceof Promise)\n return response.then((x) => mapResponse(x, set));\n if (response instanceof Error)\n return errorToResponse(response, set);\n if (response instanceof ElysiaCustomStatusResponse)\n return set.status = response.code, mapResponse(\n response.response,\n set,\n request\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, set, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapResponse(x, set)\n );\n if (Array.isArray(response))\n return new Response(JSON.stringify(response), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (typeof response?.toResponse == \"function\")\n return mapResponse(response.toResponse(), set);\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return set.headers[\"Content-Type\"] || (set.headers[\"Content-Type\"] = \"application/json\"), new Response(\n JSON.stringify(response),\n set\n );\n }\n return new Response(response, set);\n }\n return (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream ? handleStream(response, set, request) : mapCompactResponse(response, request)\n );\n}, mapEarlyResponse = (response, set, request) => {\n if (response != null)\n if (isNotEmpty(set.headers) || set.status !== 200 || set.cookie)\n switch (handleSet(set), response?.constructor?.name) {\n case \"String\":\n return set.headers[\"content-type\"] = \"text/plain\", new Response(response, set);\n case \"Array\":\n case \"Object\":\n return set.headers[\"content-type\"] = \"application/json\", new Response(JSON.stringify(response), set);\n case \"ElysiaFile\":\n return handleElysiaFile(response, set);\n case \"File\":\n return handleFile(response, set);\n case \"Blob\":\n return handleFile(response, set);\n case \"ElysiaCustomStatusResponse\":\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n case void 0:\n return response ? new Response(JSON.stringify(response), set) : void 0;\n case \"Response\":\n return handleResponse(response, set, request);\n case \"Promise\":\n return response.then(\n (x) => mapEarlyResponse(x, set)\n );\n case \"Error\":\n return errorToResponse(response, set);\n case \"Function\":\n return mapEarlyResponse(response(), set);\n case \"Number\":\n case \"Boolean\":\n return new Response(\n response.toString(),\n set\n );\n case \"FormData\":\n return new Response(response);\n case \"Cookie\":\n return response instanceof Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);\n default:\n if (response instanceof Response)\n return handleResponse(response, set, request);\n if (response instanceof Promise)\n return response.then((x) => mapEarlyResponse(x, set));\n if (response instanceof Error)\n return errorToResponse(response, set);\n if (response instanceof ElysiaCustomStatusResponse)\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, set, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapEarlyResponse(x, set)\n );\n if (typeof response?.toResponse == \"function\")\n return mapEarlyResponse(response.toResponse(), set);\n if (Array.isArray(response))\n return new Response(JSON.stringify(response), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return set.headers[\"Content-Type\"] || (set.headers[\"Content-Type\"] = \"application/json\"), new Response(\n JSON.stringify(response),\n set\n );\n }\n return new Response(response, set);\n }\n else\n switch (response?.constructor?.name) {\n case \"String\":\n return set.headers[\"content-type\"] = \"text/plain\", new Response(response);\n case \"Array\":\n case \"Object\":\n return set.headers[\"content-type\"] = \"application/json\", new Response(JSON.stringify(response), set);\n case \"ElysiaFile\":\n return handleElysiaFile(response, set);\n case \"File\":\n return handleFile(response, set);\n case \"Blob\":\n return handleFile(response, set);\n case \"ElysiaCustomStatusResponse\":\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n case void 0:\n return response ? new Response(JSON.stringify(response), {\n headers: {\n \"content-type\": \"application/json\"\n }\n }) : new Response(\"\");\n case \"Response\":\n return response;\n case \"Promise\":\n return response.then((x) => {\n const r = mapEarlyResponse(x, set);\n if (r !== void 0) return r;\n });\n case \"Error\":\n return errorToResponse(response, set);\n case \"Function\":\n return mapCompactResponse(response(), request);\n case \"Number\":\n case \"Boolean\":\n return new Response(response.toString());\n case \"Cookie\":\n return response instanceof Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);\n case \"FormData\":\n return new Response(response);\n default:\n if (response instanceof Response) return response;\n if (response instanceof Promise)\n return response.then((x) => mapEarlyResponse(x, set));\n if (response instanceof Error)\n return errorToResponse(response, set);\n if (response instanceof ElysiaCustomStatusResponse)\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, set, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapEarlyResponse(x, set)\n );\n if (typeof response?.toResponse == \"function\")\n return mapEarlyResponse(response.toResponse(), set);\n if (Array.isArray(response))\n return new Response(JSON.stringify(response), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return set.headers[\"Content-Type\"] || (set.headers[\"Content-Type\"] = \"application/json\"), new Response(\n JSON.stringify(response),\n set\n );\n }\n return new Response(response);\n }\n}, mapCompactResponse = (response, request) => {\n switch (response?.constructor?.name) {\n case \"String\":\n return new Response(response, {\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n case \"Object\":\n case \"Array\":\n return new Response(JSON.stringify(response), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n case \"ElysiaFile\":\n return handleElysiaFile(response);\n case \"File\":\n return handleFile(response);\n case \"Blob\":\n return handleFile(response);\n case \"ElysiaCustomStatusResponse\":\n return mapResponse(\n response.response,\n {\n status: response.code,\n headers: {}\n }\n );\n case void 0:\n return response ? new Response(JSON.stringify(response), {\n headers: {\n \"content-type\": \"application/json\"\n }\n }) : new Response(\"\");\n case \"Response\":\n return response;\n case \"Error\":\n return errorToResponse(response);\n case \"Promise\":\n return response.then(\n (x) => mapCompactResponse(x, request)\n );\n // ? Maybe response or Blob\n case \"Function\":\n return mapCompactResponse(response(), request);\n case \"Number\":\n case \"Boolean\":\n return new Response(response.toString());\n case \"FormData\":\n return new Response(response);\n default:\n if (response instanceof Response) return response;\n if (response instanceof Promise)\n return response.then(\n (x) => mapCompactResponse(x, request)\n );\n if (response instanceof Error)\n return errorToResponse(response);\n if (response instanceof ElysiaCustomStatusResponse)\n return mapResponse(\n response.response,\n {\n status: response.code,\n headers: {}\n }\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, void 0, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapCompactResponse(x, request)\n );\n if (typeof response?.toResponse == \"function\")\n return mapCompactResponse(response.toResponse());\n if (Array.isArray(response))\n return new Response(JSON.stringify(response), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return new Response(JSON.stringify(response), {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n }\n return new Response(response);\n }\n}, errorToResponse = (error, set) => {\n if (typeof error?.toResponse == \"function\") {\n const raw = error.toResponse(), targetSet = set ?? { headers: {}, status: 200, redirect: \"\" }, apply = (resolved) => (resolved instanceof Response && (targetSet.status = resolved.status), mapResponse(resolved, targetSet));\n return typeof raw?.then == \"function\" ? raw.then(apply) : apply(raw);\n }\n return new Response(\n JSON.stringify({\n name: error?.name,\n message: error?.message,\n cause: error?.cause\n }),\n {\n status: set?.status !== 200 ? set?.status ?? 500 : 500,\n headers: set?.headers\n }\n );\n}, createStaticHandler = (handle, hooks, setHeaders = {}) => {\n if (typeof handle == \"function\") return;\n const response = mapResponse(handle, {\n headers: setHeaders\n });\n if (!hooks.parse?.length && !hooks.transform?.length && !hooks.beforeHandle?.length && !hooks.afterHandle?.length)\n return () => response.clone();\n}, handleResponse = createResponseHandler({\n mapResponse,\n mapCompactResponse\n}), handleStream = createStreamHandler({\n mapResponse,\n mapCompactResponse\n});\nexport {\n createStaticHandler,\n errorToResponse,\n mapCompactResponse,\n mapEarlyResponse,\n mapResponse\n};\n","import {\n mapResponse,\n mapEarlyResponse,\n mapCompactResponse,\n createStaticHandler\n} from \"./handler.mjs\";\nconst WebStandardAdapter = {\n name: \"web-standard\",\n isWebStandard: !0,\n handler: {\n mapResponse,\n mapEarlyResponse,\n mapCompactResponse,\n createStaticHandler\n },\n composeHandler: {\n mapResponseContext: \"c.request\",\n preferWebstandardHeaders: !0,\n // @ts-ignore Bun specific\n headers: `c.headers={}\nfor(const [k,v] of c.request.headers.entries())c.headers[k]=v\n`,\n parser: {\n json(isOptional) {\n return isOptional ? `try{c.body=await c.request.json()}catch{}\n` : `c.body=await c.request.json()\n`;\n },\n text() {\n return `c.body=await c.request.text()\n`;\n },\n urlencoded() {\n return `c.body=parseQuery(await c.request.text())\n`;\n },\n arrayBuffer() {\n return `c.body=await c.request.arrayBuffer()\n`;\n },\n formData(isOptional) {\n let fnLiteral = `\nc.body={}\n`;\n return isOptional ? fnLiteral += \"let form;try{form=await c.request.formData()}catch{}\" : fnLiteral += `const form=await c.request.formData()\n`, fnLiteral + `const dangerousKeys=new Set(['__proto__','constructor','prototype'])\nconst isDangerousKey=(k)=>{if(dangerousKeys.has(k))return true;const m=k.match(/^(.+)\\\\[(\\\\d+)\\\\]$/);return m?dangerousKeys.has(m[1]):false}\nconst parseArrayKey=(k)=>{const m=k.match(/^(.+)\\\\[(\\\\d+)\\\\]$/);return m?{name:m[1],index:parseInt(m[2],10)}:null}\nfor(const key of form.keys()){if(c.body[key])continue\nconst value=form.getAll(key)\nlet finalValue\nif(value.length===1){\nconst sv=value[0]\nif(typeof sv==='string'&&(sv.charCodeAt(0)===123||sv.charCodeAt(0)===91)){\ntry{\nconst p=JSON.parse(sv)\nif(p&&typeof p==='object')finalValue=p\n}catch{}\n}\nif(finalValue===undefined)finalValue=sv\n}else finalValue=value\nif(Array.isArray(finalValue)){\nconst stringValue=finalValue.find((entry)=>typeof entry==='string')\nconst files=typeof File==='undefined'?[]:finalValue.filter((entry)=>entry instanceof File)\nif(stringValue&&files.length&&stringValue.charCodeAt(0)===123){\ntry{\nconst parsed=JSON.parse(stringValue)\nif(parsed&&typeof parsed==='object'&&!Array.isArray(parsed)){\nif(!('file' in parsed)&&files.length===1)parsed.file=files[0]\nelse if(!('files' in parsed)&&files.length>1)parsed.files=files\nfinalValue=parsed\n}\n}catch{}\n}\n}\nif(key.includes('.')||key.includes('[')){const keys=key.split('.')\nconst lastKey=keys.pop()\nif(isDangerousKey(lastKey)||keys.some(isDangerousKey))continue\nlet current=c.body\nfor(const k of keys){const arrayInfo=parseArrayKey(k)\nif(arrayInfo){if(!Array.isArray(current[arrayInfo.name]))current[arrayInfo.name]=[]\nconst existing=current[arrayInfo.name][arrayInfo.index]\nconst isFile=typeof File!=='undefined'&&existing instanceof File\nif(!existing||typeof existing!=='object'||Array.isArray(existing)||isFile){\nlet parsed\nif(typeof existing==='string'&&existing.charCodeAt(0)===123){\ntry{parsed=JSON.parse(existing)\nif(!parsed||typeof parsed!=='object'||Array.isArray(parsed))parsed=undefined}catch{}\n}\ncurrent[arrayInfo.name][arrayInfo.index]=parsed||{}\n}\ncurrent=current[arrayInfo.name][arrayInfo.index]}else{if(!current[k]||typeof current[k]!=='object')current[k]={}\ncurrent=current[k]}}\nconst arrayInfo=parseArrayKey(lastKey)\nif(arrayInfo){if(!Array.isArray(current[arrayInfo.name]))current[arrayInfo.name]=[]\ncurrent[arrayInfo.name][arrayInfo.index]=finalValue}else{current[lastKey]=finalValue}}else c.body[key]=finalValue}`;\n }\n }\n },\n async stop(app, closeActiveConnections) {\n if (!app.server)\n throw new Error(\n \"Elysia isn't running. Call `app.listen` to start the server.\"\n );\n if (app.server && (await app.server.stop(closeActiveConnections), app.server = null, app.event.stop?.length))\n for (let i = 0; i < app.event.stop.length; i++)\n app.event.stop[i].fn(app);\n },\n composeGeneralHandler: {\n parameters: \"r\",\n createContext(app) {\n let decoratorsLiteral = \"\", fnLiteral = \"\";\n const defaultHeaders = app.setHeaders;\n for (const key of Object.keys(app.decorator))\n decoratorsLiteral += `,'${key}':decorator['${key}']`;\n const standardHostname = app.config.handler?.standardHostname ?? !0, hasTrace = !!app.event.trace?.length;\n return fnLiteral += `const u=r.url,s=u.indexOf('/',${standardHostname ? 11 : 7}),qi=u.indexOf('?',s+1),p=u.substring(s,qi===-1?undefined:qi)\n`, hasTrace && (fnLiteral += `const id=randomId()\n`), fnLiteral += \"const c={request:r,store,qi,path:p,url:u,redirect,status,set:{headers:\", fnLiteral += Object.keys(defaultHeaders ?? {}).length ? \"Object.assign({},app.setHeaders)\" : \"Object.create(null)\", fnLiteral += \",status:200}\", app.inference.server && (fnLiteral += \",get server(){return app.getServer()}\"), hasTrace && (fnLiteral += \",[ELYSIA_REQUEST_ID]:id\"), fnLiteral += decoratorsLiteral, fnLiteral += `}\n`, fnLiteral;\n },\n error404(hasEventHook, hasErrorHook, afterHandle = \"\") {\n let findDynamicRoute = \"if(route===null){\" + afterHandle + (hasErrorHook ? \"\" : \"c.set.status=404\") + `\nreturn `;\n return hasErrorHook ? findDynamicRoute += `app.handleError(c,notFound,false,${this.parameters})` : findDynamicRoute += hasEventHook ? \"c.response=c.responseValue=new Response(error404Message,{status:c.set.status===200?404:c.set.status,headers:c.set.headers})\" : \"c.response=c.responseValue=error404.clone()\", findDynamicRoute += \"}\", {\n declare: hasErrorHook ? \"\" : `const error404Message=notFound.message.toString()\nconst error404=new Response(error404Message,{status:404})\n`,\n code: findDynamicRoute\n };\n }\n },\n composeError: {\n mapResponseContext: \"\",\n validationError: \"set.headers['content-type']='application/json';return mapResponse(error.message,set)\",\n unknownError: \"set.status=error.status??set.status??500;return mapResponse(error.message,set)\"\n },\n listen() {\n return () => {\n throw new Error(\n \"WebStandard does not support listen, you might want to export default Elysia.fetch instead\"\n );\n };\n }\n};\nexport {\n WebStandardAdapter\n};\n","import {\n createResponseHandler,\n createStreamHandler,\n handleFile,\n handleSet\n} from \"../utils.mjs\";\nimport { isNotEmpty } from \"../../utils.mjs\";\nimport { Cookie } from \"../../cookies.mjs\";\nimport { ElysiaCustomStatusResponse } from \"../../error.mjs\";\nconst mapResponse = (response, set, request) => {\n if (isNotEmpty(set.headers) || set.status !== 200 || set.cookie)\n switch (handleSet(set), response?.constructor?.name) {\n case \"String\":\n return new Response(response, set);\n case \"Array\":\n case \"Object\":\n return Response.json(response, set);\n case \"ElysiaFile\":\n return handleFile(response.value, set);\n case \"File\":\n return handleFile(response, set);\n case \"Blob\":\n return handleFile(response, set);\n case \"ElysiaCustomStatusResponse\":\n return set.status = response.code, mapResponse(\n response.response,\n set,\n request\n );\n case void 0:\n return response ? Response.json(response, set) : new Response(\"\", set);\n case \"Response\":\n return handleResponse(response, set, request);\n case \"Error\":\n return errorToResponse(response, set);\n case \"Promise\":\n return response.then(\n (x) => mapResponse(x, set, request)\n );\n case \"Function\":\n return mapResponse(response(), set, request);\n case \"Number\":\n case \"Boolean\":\n return new Response(\n response.toString(),\n set\n );\n case \"Cookie\":\n return response instanceof Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);\n case \"FormData\":\n return new Response(response, set);\n default:\n if (response instanceof Response)\n return handleResponse(response, set, request);\n if (response instanceof Promise)\n return response.then((x) => mapResponse(x, set));\n if (response instanceof Error)\n return errorToResponse(response, set);\n if (response instanceof ElysiaCustomStatusResponse)\n return set.status = response.code, mapResponse(\n response.response,\n set,\n request\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, set, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapResponse(x, set)\n );\n if (Array.isArray(response))\n return Response.json(response);\n if (typeof response?.toResponse == \"function\")\n return mapResponse(response.toResponse(), set);\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return Response.json(response, set);\n }\n return new Response(response, set);\n }\n return (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream ? handleStream(response, set, request) : mapCompactResponse(response, request)\n );\n}, mapEarlyResponse = (response, set, request) => {\n if (response != null)\n if (isNotEmpty(set.headers) || set.status !== 200 || set.cookie)\n switch (handleSet(set), response?.constructor?.name) {\n case \"String\":\n return new Response(response, set);\n case \"Array\":\n case \"Object\":\n return Response.json(response, set);\n case \"ElysiaFile\":\n return handleFile(response.value, set);\n case \"File\":\n return handleFile(response, set);\n case \"Blob\":\n return handleFile(response, set);\n case \"ElysiaCustomStatusResponse\":\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n case void 0:\n return response ? Response.json(response, set) : void 0;\n case \"Response\":\n return handleResponse(response, set, request);\n case \"Promise\":\n return response.then(\n (x) => mapEarlyResponse(x, set)\n );\n case \"Error\":\n return errorToResponse(response, set);\n case \"Function\":\n return mapEarlyResponse(response(), set);\n case \"Number\":\n case \"Boolean\":\n return new Response(\n response.toString(),\n set\n );\n case \"FormData\":\n return new Response(response);\n case \"Cookie\":\n return response instanceof Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);\n default:\n if (response instanceof Response)\n return handleResponse(response, set, request);\n if (response instanceof Promise)\n return response.then((x) => mapEarlyResponse(x, set));\n if (response instanceof Error)\n return errorToResponse(response, set);\n if (response instanceof ElysiaCustomStatusResponse)\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, set, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapEarlyResponse(x, set)\n );\n if (typeof response?.toResponse == \"function\")\n return mapEarlyResponse(response.toResponse(), set);\n if (Array.isArray(response))\n return Response.json(response);\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return Response.json(response, set);\n }\n return new Response(response, set);\n }\n else\n switch (response?.constructor?.name) {\n case \"String\":\n return new Response(response);\n case \"Array\":\n case \"Object\":\n return Response.json(response, set);\n case \"ElysiaFile\":\n return handleFile(response.value, set);\n case \"File\":\n return handleFile(response, set);\n case \"Blob\":\n return handleFile(response, set);\n case \"ElysiaCustomStatusResponse\":\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n case void 0:\n return response ? Response.json(response) : new Response(\"\");\n case \"Response\":\n return response;\n case \"Promise\":\n return response.then((x) => {\n const r = mapEarlyResponse(x, set);\n if (r !== void 0) return r;\n });\n case \"Error\":\n return errorToResponse(response, set);\n case \"Function\":\n return mapCompactResponse(response(), request);\n case \"Number\":\n case \"Boolean\":\n return new Response(response.toString());\n case \"Cookie\":\n return response instanceof Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);\n case \"FormData\":\n return new Response(response);\n default:\n if (response instanceof Response) return response;\n if (response instanceof Promise)\n return response.then((x) => mapEarlyResponse(x, set));\n if (response instanceof Error)\n return errorToResponse(response, set);\n if (response instanceof ElysiaCustomStatusResponse)\n return set.status = response.code, mapEarlyResponse(\n response.response,\n set,\n request\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, set, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapEarlyResponse(x, set)\n );\n if (typeof response?.toResponse == \"function\")\n return mapEarlyResponse(response.toResponse(), set);\n if (Array.isArray(response))\n return Response.json(response);\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return Response.json(response, set);\n }\n return new Response(response);\n }\n}, mapCompactResponse = (response, request) => {\n switch (response?.constructor?.name) {\n case \"String\":\n return new Response(response);\n case \"Object\":\n case \"Array\":\n return Response.json(response);\n case \"ElysiaFile\":\n return handleFile(response.value);\n case \"File\":\n return handleFile(response);\n case \"Blob\":\n return handleFile(response);\n case \"ElysiaCustomStatusResponse\":\n return mapResponse(\n response.response,\n {\n status: response.code,\n headers: {}\n }\n );\n case void 0:\n return response ? Response.json(response) : new Response(\"\");\n case \"Response\":\n return response;\n case \"Error\":\n return errorToResponse(response);\n case \"Promise\":\n return response.then(\n (x) => mapCompactResponse(x, request)\n );\n // ? Maybe response or Blob\n case \"Function\":\n return mapCompactResponse(response(), request);\n case \"Number\":\n case \"Boolean\":\n return new Response(response.toString());\n case \"FormData\":\n return new Response(response);\n default:\n if (response instanceof Response) return response;\n if (response instanceof Promise)\n return response.then(\n (x) => mapCompactResponse(x, request)\n );\n if (response instanceof Error)\n return errorToResponse(response);\n if (response instanceof ElysiaCustomStatusResponse)\n return mapResponse(\n response.response,\n {\n status: response.code,\n headers: {}\n }\n );\n if (\n // @ts-expect-error\n typeof response?.next == \"function\" || response instanceof ReadableStream\n )\n return handleStream(response, void 0, request);\n if (typeof response?.then == \"function\")\n return response.then(\n (x) => mapCompactResponse(x, request)\n );\n if (typeof response?.toResponse == \"function\")\n return mapCompactResponse(response.toResponse());\n if (Array.isArray(response)) return Response.json(response);\n if (\"charCodeAt\" in response) {\n const code = response.charCodeAt(0);\n if (code === 123 || code === 91)\n return Response.json(response);\n }\n return new Response(response);\n }\n}, errorToResponse = (error, set) => {\n if (typeof error?.toResponse == \"function\") {\n const raw = error.toResponse(), targetSet = set ?? { headers: {}, status: 200, redirect: \"\" }, apply = (resolved) => (resolved instanceof Response && (targetSet.status = resolved.status), mapResponse(resolved, targetSet));\n return typeof raw?.then == \"function\" ? raw.then(apply) : apply(raw);\n }\n return Response.json(\n {\n name: error?.name,\n message: error?.message,\n cause: error?.cause\n },\n {\n status: set?.status !== 200 ? set?.status ?? 500 : 500,\n headers: set?.headers\n }\n );\n}, createStaticHandler = (handle, hooks, setHeaders = {}) => {\n if (typeof handle == \"function\") return;\n const response = mapResponse(handle, {\n headers: setHeaders\n });\n if (!hooks.parse?.length && !hooks.transform?.length && !hooks.beforeHandle?.length && !hooks.afterHandle?.length)\n return () => response.clone();\n}, handleResponse = createResponseHandler({\n mapResponse,\n mapCompactResponse\n}), handleStream = createStreamHandler({\n mapResponse,\n mapCompactResponse\n});\nexport {\n createStaticHandler,\n errorToResponse,\n mapCompactResponse,\n mapEarlyResponse,\n mapResponse\n};\n","import { Cookie } from \"./index.mjs\";\nimport { Value, TransformDecodeError } from \"@sinclair/typebox/value\";\nimport {\n Kind,\n TypeBoxError\n} from \"@sinclair/typebox\";\nimport decode from \"fast-decode-uri-component\";\nimport {\n parseQuery,\n parseQueryFromURL,\n parseQueryStandardSchema\n} from \"./parse-query.mjs\";\nimport {\n ELYSIA_REQUEST_ID,\n getLoosePath,\n hasSetImmediate,\n lifeCycleToFn,\n randomId,\n redirect,\n signCookie,\n isNotEmpty,\n encodePath,\n mergeCookie,\n getResponseLength\n} from \"./utils.mjs\";\nimport { isBun } from \"./universal/utils.mjs\";\nimport { ParseError, status } from \"./error.mjs\";\nimport {\n NotFoundError,\n ValidationError,\n ERROR_CODE,\n ElysiaCustomStatusResponse\n} from \"./error.mjs\";\nimport { ELYSIA_TRACE } from \"./trace.mjs\";\nimport {\n getSchemaProperties,\n getSchemaValidator,\n hasElysiaMeta,\n hasType,\n isUnion,\n unwrapImportSchema\n} from \"./schema.mjs\";\nimport { sucrose } from \"./sucrose.mjs\";\nimport { parseCookie } from \"./cookies.mjs\";\nimport { fileType } from \"./type-system/utils.mjs\";\nimport { tee } from \"./adapter/utils.mjs\";\nimport { coercePrimitiveRoot } from \"./replace-schema.mjs\";\nconst allocateIf = (value, condition) => condition ? value : \"\", defaultParsers = [\n \"json\",\n \"text\",\n \"urlencoded\",\n \"arrayBuffer\",\n \"formdata\",\n \"application/json\",\n // eslint-disable-next-line sonarjs/no-duplicate-string\n \"text/plain\",\n // eslint-disable-next-line sonarjs/no-duplicate-string\n \"application/x-www-form-urlencoded\",\n // eslint-disable-next-line sonarjs/no-duplicate-string\n \"application/octet-stream\",\n // eslint-disable-next-line sonarjs/no-duplicate-string\n \"multipart/form-data\"\n], createReport = ({\n context = \"c\",\n trace = [],\n addFn\n}) => {\n if (!trace.length)\n return () => ({\n resolveChild() {\n return () => {\n };\n },\n resolve() {\n }\n });\n for (let i = 0; i < trace.length; i++)\n addFn(\n `let report${i},reportChild${i},reportErr${i},reportErrChild${i};let trace${i}=${context}[ELYSIA_TRACE]?.[${i}]??trace[${i}](${context});\n`\n );\n return (event, {\n name,\n total = 0,\n alias\n } = {}) => {\n name || (name = \"anonymous\");\n const reporter = event === \"error\" ? \"reportErr\" : \"report\";\n for (let i = 0; i < trace.length; i++)\n addFn(\n `${alias ? \"const \" : \"\"}${alias ?? reporter}${i}=trace${i}.${event}({id,event:'${event}',name:'${name}',begin:performance.now(),total:${total}})\n`\n ), alias && addFn(`${reporter}${i}=${alias}${i}\n`);\n return {\n resolve() {\n for (let i = 0; i < trace.length; i++)\n addFn(`${alias ?? reporter}${i}.resolve()\n`);\n },\n resolveChild(name2) {\n for (let i = 0; i < trace.length; i++)\n addFn(\n `${reporter}Child${i}=${reporter}${i}.resolveChild?.shift()?.({id,event:'${event}',name:'${name2}',begin:performance.now()})\n`\n );\n return (binding) => {\n for (let i = 0; i < trace.length; i++)\n addFn(\n binding ? `if(${binding} instanceof Error){${reporter}Child${i}?.(${binding}) }else{${reporter}Child${i}?.()}` : `${reporter}Child${i}?.()\n`\n );\n };\n }\n };\n };\n}, composeCleaner = ({\n schema,\n name,\n type,\n typeAlias = type,\n normalize,\n ignoreTryCatch = !1\n}) => !normalize || !schema.Clean ? \"\" : normalize === !0 || normalize === \"exactMirror\" ? ignoreTryCatch ? `${name}=validator.${typeAlias}.Clean(${name})\n` : `try{${name}=validator.${typeAlias}.Clean(${name})\n}catch{}` : normalize === \"typebox\" ? `${name}=validator.${typeAlias}.Clean(${name})\n` : \"\", composeValidationFactory = ({\n injectResponse = \"\",\n normalize = !1,\n validator,\n encodeSchema = !1,\n isStaticResponse = !1,\n hasSanitize = !1,\n allowUnsafeValidationDetails = !1\n}) => ({\n validate: (type, value = `c.${type}`, error) => `c.set.status=422;throw new ValidationError('${type}',validator.${type},${value},${allowUnsafeValidationDetails}${error ? \",\" + error : \"\"})`,\n response: (name = \"r\") => {\n if (isStaticResponse || !validator.response) return \"\";\n let code = injectResponse + `\n`;\n code += `if(${name} instanceof ElysiaCustomStatusResponse){c.set.status=${name}.code\n${name}=${name}.response}if(${name} instanceof Response === false && typeof ${name}?.next !== 'function' && !(${name} instanceof ReadableStream))switch(c.set.status){`;\n for (const [status2, value] of Object.entries(validator.response)) {\n if (code += `\ncase ${status2}:\n`, value.provider === \"standard\") {\n code += `let vare${status2}=validator.response[${status2}].Check(${name})\nif(vare${status2} instanceof Promise)vare${status2}=await vare${status2}\nif(vare${status2}.issues)throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails},vare${status2}.issues)\n${name}=vare${status2}.value\nc.set.status=${status2}\nbreak\n`;\n continue;\n }\n let noValidate = value.schema?.noValidate === !0;\n if (!noValidate && value.schema?.$ref && value.schema?.$defs) {\n const refKey = value.schema.$ref, defKey = typeof refKey == \"string\" && refKey.includes(\"/\") ? refKey.split(\"/\").pop() : refKey;\n value.schema.$defs[defKey]?.noValidate === !0 && (noValidate = !0);\n }\n const appliedCleaner = noValidate || hasSanitize, clean = ({ ignoreTryCatch = !1 } = {}) => composeCleaner({\n name,\n schema: value,\n type: \"response\",\n typeAlias: `response[${status2}]`,\n normalize,\n ignoreTryCatch\n });\n appliedCleaner && (code += clean());\n const applyErrorCleaner = !appliedCleaner && normalize && !noValidate;\n encodeSchema && value.hasTransform && !noValidate ? (code += `try{${name}=validator.response[${status2}].Encode(${name})\n`, appliedCleaner || (code += clean({ ignoreTryCatch: !0 })), code += `c.set.status=${status2}}catch{` + (applyErrorCleaner ? `try{\n` + clean({ ignoreTryCatch: !0 }) + `${name}=validator.response[${status2}].Encode(${name})\n}catch{throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails})}` : `throw new ValidationError('response',validator.response[${status2}],${name}),${allowUnsafeValidationDetails}`) + \"}\") : (appliedCleaner || (code += clean()), noValidate || (code += `if(validator.response[${status2}].Check(${name})===false)throw new ValidationError('response',validator.response[${status2}],${name},${allowUnsafeValidationDetails})\nc.set.status=${status2}\n`)), code += `break\n`;\n }\n return code + \"}\";\n }\n}), isAsyncName = (v) => (v?.fn ?? v).constructor.name === \"AsyncFunction\", matchResponseClone = /=>\\s?response\\.clone\\(/, matchFnReturn = /(?:return|=>)\\s?\\S+\\(|a(?:sync|wait)/, isAsync = (v) => {\n const isObject = typeof v == \"object\";\n if (isObject && v.isAsync !== void 0) return v.isAsync;\n const fn = isObject ? v.fn : v;\n if (fn.constructor.name === \"AsyncFunction\" || fn.constructor.name === \"AsyncGeneratorFunction\")\n return !0;\n const literal = fn.toString();\n if (matchResponseClone.test(literal))\n return isObject && (v.isAsync = !1), !1;\n const result = matchFnReturn.test(literal);\n return isObject && (v.isAsync = result), result;\n}, hasReturn = (v) => {\n const isObject = typeof v == \"object\";\n if (isObject && v.hasReturn !== void 0) return v.hasReturn;\n const fnLiteral = isObject ? v.fn.toString() : v.toString(), parenthesisEnd = fnLiteral.indexOf(\")\"), arrowIndex = fnLiteral.indexOf(\"=>\", parenthesisEnd);\n if (arrowIndex !== -1) {\n let afterArrow = arrowIndex + 2, charCode;\n for (; afterArrow < fnLiteral.length && ((charCode = fnLiteral.charCodeAt(afterArrow)) === 32 || // space\n charCode === 9 || // tab\n charCode === 10 || // newline\n charCode === 13); )\n afterArrow++;\n if (afterArrow < fnLiteral.length && fnLiteral.charCodeAt(afterArrow) !== 123)\n return isObject && (v.hasReturn = !0), !0;\n }\n const result = fnLiteral.includes(\"return\");\n return isObject && (v.hasReturn = result), result;\n}, isGenerator = (v) => {\n const fn = v?.fn ?? v;\n return fn.constructor.name === \"AsyncGeneratorFunction\" || fn.constructor.name === \"GeneratorFunction\";\n}, coerceTransformDecodeError = (fnLiteral, type, allowUnsafeValidationDetails = !1, value = `c.${type}`) => `try{${fnLiteral}}catch(error){if(error.constructor.name === 'TransformDecodeError'){c.set.status=422\nthrow error.error ?? new ValidationError('${type}',validator.${type},${value},${allowUnsafeValidationDetails})}}`, setImmediateFn = hasSetImmediate ? \"setImmediate\" : \"Promise.resolve().then\", composeHandler = ({\n app,\n path,\n method,\n hooks,\n validator,\n handler,\n allowMeta = !1,\n inference\n}) => {\n const adapter = app[\"~adapter\"].composeHandler, adapterHandler = app[\"~adapter\"].handler, isHandleFn = typeof handler == \"function\";\n if (!isHandleFn) {\n handler = adapterHandler.mapResponse(handler, {\n // @ts-expect-error private property\n headers: app.setHeaders ?? {}\n });\n const isResponse = handler instanceof Response || // @ts-ignore If it's not instanceof Response, it might be a polyfill (only on Node)\n handler?.constructor?.name === \"Response\" && typeof handler?.clone == \"function\";\n if (hooks.parse?.length && hooks.transform?.length && hooks.beforeHandle?.length && hooks.afterHandle?.length)\n return isResponse ? Function(\n \"a\",\n `\"use strict\";\nreturn function(){return a.clone()}`\n )(handler) : Function(\n \"a\",\n `\"use strict\";\nreturn function(){return a}`\n )(handler);\n if (isResponse) {\n const response = handler;\n handler = () => response.clone();\n }\n }\n const handle = isHandleFn ? \"handler(c)\" : \"handler\", hasTrace = !!hooks.trace?.length;\n let fnLiteral = \"\";\n if (inference = sucrose(\n Object.assign({ handler }, hooks),\n inference,\n app.config.sucrose\n ), adapter.declare) {\n const literal = adapter.declare(inference);\n literal && (fnLiteral += literal);\n }\n inference.server && (fnLiteral += `Object.defineProperty(c,'server',{get:function(){return getServer()}})\n`), validator.createBody?.(), validator.createQuery?.(), validator.createHeaders?.(), validator.createParams?.(), validator.createCookie?.(), validator.createResponse?.();\n const hasValidation = !!validator.body || !!validator.headers || !!validator.params || !!validator.query || !!validator.cookie || !!validator.response, hasQuery = inference.query || !!validator.query, requestNoBody = hooks.parse?.length === 1 && // @ts-expect-error\n hooks.parse[0].fn === \"none\", hasBody = method !== \"\" && method !== \"GET\" && method !== \"HEAD\" && (inference.body || !!validator.body || !!hooks.parse?.length) && !requestNoBody, defaultHeaders = app.setHeaders, hasDefaultHeaders = defaultHeaders && !!Object.keys(defaultHeaders).length, hasHeaders = inference.headers || !!validator.headers || adapter.preferWebstandardHeaders !== !0 && inference.body, hasCookie = inference.cookie || !!validator.cookie, cookieMeta = validator.cookie?.config ? mergeCookie(validator?.cookie?.config, app.config.cookie) : app.config.cookie;\n let _encodeCookie = \"\";\n const encodeCookie = () => {\n if (_encodeCookie) return _encodeCookie;\n if (cookieMeta?.sign) {\n if (cookieMeta.secrets === \"\")\n throw new Error(\n `cookie secret can't be an empty string at (${method}) ${path}`,\n {\n cause: `(${method}) ${path}`\n }\n );\n if (!cookieMeta.secrets)\n throw new Error(\n `cookie secret must be defined (${method}) ${path}`,\n {\n cause: `(${method}) ${path}`\n }\n );\n const secret = cookieMeta.secrets ? typeof cookieMeta.secrets == \"string\" ? cookieMeta.secrets : cookieMeta.secrets[0] : void 0;\n if (_encodeCookie += `const _setCookie = c.set.cookie\nif(_setCookie){`, cookieMeta.sign === !0)\n _encodeCookie += `for(const [key, cookie] of Object.entries(_setCookie)){c.set.cookie[key].value=await signCookie(cookie.value,${secret ? JSON.stringify(secret) : \"undefined\"})}`;\n else {\n typeof cookieMeta.sign == \"string\" && (cookieMeta.sign = [cookieMeta.sign]);\n for (const name of cookieMeta.sign)\n _encodeCookie += `if(_setCookie[${JSON.stringify(name)}]?.value)c.set.cookie[${JSON.stringify(name)}].value=await signCookie(_setCookie[${JSON.stringify(name)}].value,${secret ? JSON.stringify(secret) : \"undefined\"})\n`;\n }\n _encodeCookie += `}\n`;\n }\n return _encodeCookie;\n }, normalize = app.config.normalize, encodeSchema = app.config.encodeSchema, allowUnsafeValidationDetails = app.config.allowUnsafeValidationDetails, validation = composeValidationFactory({\n normalize,\n validator,\n encodeSchema,\n isStaticResponse: handler instanceof Response,\n hasSanitize: !!app.config.sanitize,\n allowUnsafeValidationDetails\n });\n hasHeaders && (fnLiteral += adapter.headers), hasTrace && (fnLiteral += `const id=c[ELYSIA_REQUEST_ID]\n`);\n const report = createReport({\n trace: hooks.trace,\n addFn: (word) => {\n fnLiteral += word;\n }\n });\n if (fnLiteral += \"try{\", hasCookie) {\n const get = (name, defaultValue) => {\n const value = cookieMeta?.[name] ?? defaultValue;\n return value === void 0 ? \"\" : value ? typeof value == \"string\" ? `${name}:${JSON.stringify(value)},` : value instanceof Date ? `${name}: new Date(${value.getTime()}),` : `${name}:${value},` : typeof defaultValue == \"string\" ? `${name}:\"${defaultValue}\",` : `${name}:${defaultValue},`;\n }, options = cookieMeta ? `{secrets:${cookieMeta.secrets !== void 0 && cookieMeta.secrets !== null ? typeof cookieMeta.secrets == \"string\" ? JSON.stringify(cookieMeta.secrets) : \"[\" + cookieMeta.secrets.map((x) => JSON.stringify(x)).join(\",\") + \"]\" : \"undefined\"},sign:${cookieMeta.sign === !0 ? !0 : cookieMeta.sign !== void 0 ? typeof cookieMeta.sign == \"string\" ? JSON.stringify(cookieMeta.sign) : \"[\" + cookieMeta.sign.map((x) => JSON.stringify(x)).join(\",\") + \"]\" : \"undefined\"},` + get(\"domain\") + get(\"expires\") + get(\"httpOnly\") + get(\"maxAge\") + get(\"path\", \"/\") + get(\"priority\") + get(\"sameSite\") + get(\"secure\") + \"}\" : \"undefined\";\n hasHeaders ? fnLiteral += `\nc.cookie=await parseCookie(c.set,c.headers.cookie,${options})\n` : fnLiteral += `\nc.cookie=await parseCookie(c.set,c.request.headers.get('cookie'),${options})\n`;\n }\n if (hasQuery) {\n let arrayProperties = {}, objectProperties = {}, hasArrayProperty = !1, hasObjectProperty = !1;\n if (validator.query?.schema) {\n const schema = unwrapImportSchema(validator.query?.schema), properties = getSchemaProperties(schema);\n if (properties)\n for (const [key, value] of Object.entries(properties))\n hasElysiaMeta(\"ArrayQuery\", value) && (arrayProperties[key] = !0, hasArrayProperty = !0), hasElysiaMeta(\"ObjectString\", value) && (objectProperties[key] = !0, hasObjectProperty = !0);\n }\n fnLiteral += `if(c.qi===-1){c.query=Object.create(null)}else{c.query=parseQueryFromURL(c.url,c.qi+1${//\n hasArrayProperty ? \",\" + JSON.stringify(arrayProperties) : hasObjectProperty ? \",undefined\" : \"\"}${//\n hasObjectProperty ? \",\" + JSON.stringify(objectProperties) : \"\"})}`;\n }\n const isAsyncHandler = typeof handler == \"function\" && isAsync(handler), saveResponse = hasTrace || hooks.afterResponse?.length ? \"c.response=c.responseValue= \" : \"\", responseKeys = Object.keys(validator.response ?? {}), hasMultipleResponses = responseKeys.length > 1, hasSingle200 = responseKeys.length === 0 || responseKeys.length === 1 && responseKeys[0] === \"200\", maybeAsync = hasCookie || hasBody || isAsyncHandler || !!hooks.parse?.length || !!hooks.afterHandle?.some(isAsync) || !!hooks.beforeHandle?.some(isAsync) || !!hooks.transform?.some(isAsync) || !!hooks.mapResponse?.some(isAsync) || validator.body?.provider === \"standard\" || validator.headers?.provider === \"standard\" || validator.query?.provider === \"standard\" || validator.params?.provider === \"standard\" || validator.cookie?.provider === \"standard\" || Object.values(validator.response ?? {}).find(\n (x) => x.provider === \"standard\"\n ), maybeStream = (typeof handler == \"function\" ? isGenerator(handler) : !1) || !!hooks.beforeHandle?.some(isGenerator) || !!hooks.afterHandle?.some(isGenerator) || !!hooks.transform?.some(isGenerator), hasSet = inference.cookie || inference.set || hasHeaders || hasTrace || hasMultipleResponses || !hasSingle200 || isHandleFn && hasDefaultHeaders || maybeStream;\n let _afterResponse;\n const afterResponse = (hasStream = !0) => {\n if (_afterResponse !== void 0) return _afterResponse;\n if (!hooks.afterResponse?.length && !hasTrace) return \"\";\n let afterResponse2 = \"\";\n afterResponse2 += `\n${setImmediateFn}(async()=>{if(c.responseValue){if(c.responseValue instanceof ElysiaCustomStatusResponse) c.set.status=c.responseValue.code\n` + (hasStream ? `if(typeof afterHandlerStreamListener!=='undefined')for await(const v of afterHandlerStreamListener){}\n` : \"\") + `}\n`;\n const reporter = createReport({\n trace: hooks.trace,\n addFn: (word) => {\n afterResponse2 += word;\n }\n })(\"afterResponse\", {\n total: hooks.afterResponse?.length\n });\n if (hooks.afterResponse?.length && hooks.afterResponse)\n for (let i = 0; i < hooks.afterResponse.length; i++) {\n const endUnit = reporter.resolveChild(\n hooks.afterResponse[i].fn.name\n ), prefix = isAsync(hooks.afterResponse[i]) ? \"await \" : \"\";\n afterResponse2 += `\n${prefix}e.afterResponse[${i}](c)\n`, endUnit();\n }\n return reporter.resolve(), afterResponse2 += `})\n`, _afterResponse = afterResponse2;\n }, mapResponse = (r = \"r\") => {\n const after = afterResponse(), response = `${maybeStream && maybeAsync ? \"await \" : \"\"}${hasSet ? \"mapResponse\" : \"mapCompactResponse\"}(${saveResponse}${r}${hasSet ? \",c.set\" : \"\"}${mapResponseContext})\n`;\n return after ? `const _res=${response}` + after + \"return _res\" : `return ${response}`;\n }, mapResponseContext = maybeStream && adapter.mapResponseContext ? `,${adapter.mapResponseContext}` : \"\";\n (hasTrace || inference.route) && (fnLiteral += `c.route=\\`${path}\\`\n`), (hasTrace || hooks.afterResponse?.length) && (fnLiteral += `let afterHandlerStreamListener\n`);\n const parseReporter = report(\"parse\", {\n total: hooks.parse?.length\n });\n if (hasBody) {\n const hasBodyInference = !!hooks.parse?.length || inference.body || validator.body;\n adapter.parser.declare && (fnLiteral += adapter.parser.declare), fnLiteral += `\ntry{`;\n let parser = typeof hooks.parse == \"string\" ? hooks.parse : Array.isArray(hooks.parse) && hooks.parse.length === 1 ? typeof hooks.parse[0] == \"string\" ? hooks.parse[0] : typeof hooks.parse[0].fn == \"string\" ? hooks.parse[0].fn : void 0 : void 0;\n if (!parser && validator.body && !hooks.parse?.length) {\n const schema = validator.body.schema;\n schema && schema.anyOf && schema[Kind] === \"Union\" && schema.anyOf?.length === 2 && schema.anyOf?.find((x) => x[Kind] === \"ElysiaForm\") && (parser = \"formdata\");\n }\n if (parser && defaultParsers.includes(parser)) {\n const reporter = report(\"parse\", {\n total: hooks.parse?.length\n }), isOptionalBody = !!validator.body?.isOptional;\n switch (parser) {\n case \"json\":\n case \"application/json\":\n fnLiteral += adapter.parser.json(isOptionalBody);\n break;\n case \"text\":\n case \"text/plain\":\n fnLiteral += adapter.parser.text(isOptionalBody);\n break;\n case \"urlencoded\":\n case \"application/x-www-form-urlencoded\":\n fnLiteral += adapter.parser.urlencoded(isOptionalBody);\n break;\n case \"arrayBuffer\":\n case \"application/octet-stream\":\n fnLiteral += adapter.parser.arrayBuffer(isOptionalBody);\n break;\n case \"formdata\":\n case \"multipart/form-data\":\n fnLiteral += adapter.parser.formData(isOptionalBody);\n break;\n default:\n parser[0] in app[\"~parser\"] && (fnLiteral += hasHeaders ? \"let contentType = c.headers['content-type']\" : \"let contentType = c.request.headers.get('content-type')\", fnLiteral += `\nif(contentType){const index=contentType.indexOf(';')\nif(index!==-1)contentType=contentType.substring(0,index)}\nelse{contentType=''}c.contentType=contentType\nlet result=parser['${parser}'](c, contentType)\nif(result instanceof Promise)result=await result\nif(result instanceof ElysiaCustomStatusResponse)throw result\nif(result!==undefined)c.body=result\ndelete c.contentType\n`);\n break;\n }\n reporter.resolve();\n } else if (hasBodyInference) {\n fnLiteral += `\n`, fnLiteral += `let contentType\nif(c.request.body)`, fnLiteral += hasHeaders ? `contentType=c.headers['content-type']\n` : `contentType=c.request.headers.get('content-type')\n`;\n let hasDefaultParser = !1;\n if (hooks.parse?.length)\n fnLiteral += `if(contentType){\nconst index=contentType.indexOf(';')\n\nif(index!==-1)contentType=contentType.substring(0,index)}else{contentType=''}let used=false\nc.contentType=contentType\n`;\n else {\n hasDefaultParser = !0;\n const isOptionalBody = !!validator.body?.isOptional;\n fnLiteral += `if(contentType)switch(contentType.charCodeAt(12)){\ncase 106:` + adapter.parser.json(isOptionalBody) + `break\ncase 120:` + adapter.parser.urlencoded(isOptionalBody) + `break\ncase 111:` + adapter.parser.arrayBuffer(isOptionalBody) + `break\ncase 114:` + adapter.parser.formData(isOptionalBody) + `break\ndefault:if(contentType.charCodeAt(0)===116){` + adapter.parser.text(isOptionalBody) + `}break\n}`;\n }\n const reporter = report(\"parse\", {\n total: hooks.parse?.length\n });\n if (hooks.parse)\n for (let i = 0; i < hooks.parse.length; i++) {\n const name = `bo${i}`;\n if (i !== 0 && (fnLiteral += `\nif(!used){`), typeof hooks.parse[i].fn == \"string\") {\n const endUnit = reporter.resolveChild(\n hooks.parse[i].fn\n ), isOptionalBody = !!validator.body?.isOptional;\n switch (hooks.parse[i].fn) {\n case \"json\":\n case \"application/json\":\n hasDefaultParser = !0, fnLiteral += adapter.parser.json(isOptionalBody);\n break;\n case \"text\":\n case \"text/plain\":\n hasDefaultParser = !0, fnLiteral += adapter.parser.text(isOptionalBody);\n break;\n case \"urlencoded\":\n case \"application/x-www-form-urlencoded\":\n hasDefaultParser = !0, fnLiteral += adapter.parser.urlencoded(isOptionalBody);\n break;\n case \"arrayBuffer\":\n case \"application/octet-stream\":\n hasDefaultParser = !0, fnLiteral += adapter.parser.arrayBuffer(isOptionalBody);\n break;\n case \"formdata\":\n case \"multipart/form-data\":\n hasDefaultParser = !0, fnLiteral += adapter.parser.formData(isOptionalBody);\n break;\n default:\n fnLiteral += `let ${name}=parser['${hooks.parse[i].fn}'](c,contentType)\nif(${name} instanceof Promise)${name}=await ${name}\nif(${name}!==undefined){c.body=${name};used=true;}\n`;\n }\n endUnit();\n } else {\n const endUnit = reporter.resolveChild(\n hooks.parse[i].fn.name\n );\n fnLiteral += `let ${name}=e.parse[${i}]\n${name}=${name}(c,contentType)\nif(${name} instanceof Promise)${name}=await ${name}\nif(${name}!==undefined){c.body=${name};used=true}`, endUnit();\n }\n if (i !== 0 && (fnLiteral += \"}\"), hasDefaultParser) break;\n }\n if (reporter.resolve(), !hasDefaultParser) {\n const isOptionalBody = !!validator.body?.isOptional;\n hooks.parse?.length && (fnLiteral += `\nif(!used){\n`), fnLiteral += `switch(contentType){case 'application/json':\n` + adapter.parser.json(isOptionalBody) + `break\ncase 'text/plain':` + adapter.parser.text(isOptionalBody) + `break\ncase 'application/x-www-form-urlencoded':` + adapter.parser.urlencoded(isOptionalBody) + `break\ncase 'application/octet-stream':` + adapter.parser.arrayBuffer(isOptionalBody) + `break\ncase 'multipart/form-data':` + adapter.parser.formData(isOptionalBody) + `break\n`;\n for (const key of Object.keys(app[\"~parser\"]))\n fnLiteral += `case '${key}':let bo${key}=parser['${key}'](c,contentType)\nif(bo${key} instanceof Promise)bo${key}=await bo${key}\nif(bo${key} instanceof ElysiaCustomStatusResponse){` + mapResponse(`bo${key}`) + `}if(bo${key}!==undefined)c.body=bo${key}\nbreak\n`;\n hooks.parse?.length && (fnLiteral += \"}\"), fnLiteral += \"}\";\n }\n hooks.parse?.length && (fnLiteral += `\ndelete c.contentType`);\n }\n fnLiteral += \"}catch(error){throw new ParseError(error)}\";\n }\n if (parseReporter.resolve(), hooks?.transform || hasTrace) {\n const reporter = report(\"transform\", {\n total: hooks.transform?.length\n });\n if (hooks.transform?.length) {\n fnLiteral += `let transformed\n`;\n for (let i = 0; i < hooks.transform.length; i++) {\n const transform = hooks.transform[i], endUnit = reporter.resolveChild(transform.fn.name);\n fnLiteral += isAsync(transform) ? `transformed=await e.transform[${i}](c)\n` : `transformed=e.transform[${i}](c)\n`, transform.subType === \"mapDerive\" ? fnLiteral += \"if(transformed instanceof ElysiaCustomStatusResponse){\" + mapResponse(\"transformed\") + `}else{transformed.request=c.request\ntransformed.store=c.store\ntransformed.qi=c.qi\ntransformed.path=c.path\ntransformed.url=c.url\ntransformed.redirect=c.redirect\ntransformed.set=c.set\ntransformed.error=c.error\nc=transformed}` : fnLiteral += \"if(transformed instanceof ElysiaCustomStatusResponse){\" + mapResponse(\"transformed\") + `}else Object.assign(c,transformed)\n`, endUnit();\n }\n }\n reporter.resolve();\n }\n const fileUnions = [];\n if (validator) {\n if (validator.headers) {\n if (validator.headers.hasDefault)\n for (const [key, value] of Object.entries(\n Value.Default(\n // @ts-ignore\n validator.headers.schema,\n {}\n )\n )) {\n const parsed = typeof value == \"object\" ? JSON.stringify(value) : typeof value == \"string\" ? `'${value}'` : value;\n parsed !== void 0 && (fnLiteral += `c.headers['${key}']??=${parsed}\n`);\n }\n fnLiteral += composeCleaner({\n name: \"c.headers\",\n schema: validator.headers,\n type: \"headers\",\n normalize\n }), validator.headers.isOptional && (fnLiteral += \"if(isNotEmpty(c.headers)){\"), validator.headers?.provider === \"standard\" ? fnLiteral += `let vah=validator.headers.Check(c.headers)\nif(vah instanceof Promise)vah=await vah\nif(vah.issues){` + validation.validate(\"headers\", void 0, \"vah.issues\") + `}else{c.headers=vah.value}\n` : validator.headers?.schema?.noValidate !== !0 && (fnLiteral += \"if(validator.headers.Check(c.headers) === false){\" + validation.validate(\"headers\") + \"}\"), validator.headers.hasTransform && (fnLiteral += coerceTransformDecodeError(\n `c.headers=validator.headers.Decode(c.headers)\n`,\n \"headers\",\n allowUnsafeValidationDetails\n )), validator.headers.isOptional && (fnLiteral += \"}\");\n }\n if (validator.params) {\n if (validator.params.hasDefault)\n for (const [key, value] of Object.entries(\n Value.Default(\n // @ts-ignore\n validator.params.schema,\n {}\n )\n )) {\n const parsed = typeof value == \"object\" ? JSON.stringify(value) : typeof value == \"string\" ? `'${value}'` : value;\n parsed !== void 0 && (fnLiteral += `c.params['${key}']??=${parsed}\n`);\n }\n validator.params.provider === \"standard\" ? fnLiteral += `let vap=validator.params.Check(c.params)\nif(vap instanceof Promise)vap=await vap\nif(vap.issues){` + validation.validate(\"params\", void 0, \"vap.issues\") + `}else{c.params=vap.value}\n` : validator.params?.schema?.noValidate !== !0 && (fnLiteral += \"if(validator.params.Check(c.params)===false){\" + validation.validate(\"params\") + \"}\"), validator.params.hasTransform && (fnLiteral += coerceTransformDecodeError(\n `c.params=validator.params.Decode(c.params)\n`,\n \"params\",\n allowUnsafeValidationDetails\n ));\n }\n if (validator.query) {\n if (Kind in validator.query?.schema && validator.query.hasDefault)\n for (const [key, value] of Object.entries(\n Value.Default(\n // @ts-ignore\n validator.query.schema,\n {}\n )\n )) {\n const parsed = typeof value == \"object\" ? JSON.stringify(value) : typeof value == \"string\" ? `'${value}'` : value;\n parsed !== void 0 && (fnLiteral += `if(c.query['${key}']===undefined)c.query['${key}']=${parsed}\n`);\n }\n fnLiteral += composeCleaner({\n name: \"c.query\",\n schema: validator.query,\n type: \"query\",\n normalize\n }), validator.query.isOptional && (fnLiteral += \"if(isNotEmpty(c.query)){\"), validator.query.provider === \"standard\" ? fnLiteral += `let vaq=validator.query.Check(c.query)\nif(vaq instanceof Promise)vaq=await vaq\nif(vaq.issues){` + validation.validate(\"query\", void 0, \"vaq.issues\") + `}else{c.query=vaq.value}\n` : validator.query?.schema?.noValidate !== !0 && (fnLiteral += \"if(validator.query.Check(c.query)===false){\" + validation.validate(\"query\") + \"}\"), validator.query.hasTransform && (fnLiteral += coerceTransformDecodeError(\n `c.query=validator.query.Decode(c.query)\n`,\n \"query\",\n allowUnsafeValidationDetails\n ), fnLiteral += coerceTransformDecodeError(\n `c.query=validator.query.Decode(c.query)\n`,\n \"query\",\n allowUnsafeValidationDetails\n )), validator.query.isOptional && (fnLiteral += \"}\");\n }\n if (hasBody && validator.body) {\n (validator.body.hasTransform || validator.body.isOptional) && (fnLiteral += `const isNotEmptyObject=c.body&&(typeof c.body===\"object\"&&(isNotEmpty(c.body)||c.body instanceof ArrayBuffer))\n`);\n const hasUnion = isUnion(validator.body.schema);\n let hasNonUnionFileWithDefault = !1;\n if (validator.body.hasDefault) {\n let value = Value.Default(\n validator.body.schema,\n validator.body.schema.type === \"object\" || unwrapImportSchema(validator.body.schema)[Kind] === \"Object\" ? {} : void 0\n );\n const schema = unwrapImportSchema(validator.body.schema);\n if (!hasUnion && value && typeof value == \"object\" && (hasType(\"File\", schema) || hasType(\"Files\", schema))) {\n hasNonUnionFileWithDefault = !0;\n for (const [k, v] of Object.entries(value))\n (v === \"File\" || v === \"Files\") && delete value[k];\n isNotEmpty(value) || (value = void 0);\n }\n const parsed = typeof value == \"object\" ? JSON.stringify(value) : typeof value == \"string\" ? `'${value}'` : value;\n value != null && (Array.isArray(value) ? fnLiteral += `if(!c.body)c.body=${parsed}\n` : typeof value == \"object\" ? fnLiteral += `c.body=Object.assign(${parsed},c.body)\n` : fnLiteral += `c.body=${parsed}\n`), fnLiteral += composeCleaner({\n name: \"c.body\",\n schema: validator.body,\n type: \"body\",\n normalize\n }), validator.body.provider === \"standard\" ? fnLiteral += `let vab=validator.body.Check(c.body)\nif(vab instanceof Promise)vab=await vab\nif(vab.issues){` + validation.validate(\"body\", void 0, \"vab.issues\") + `}else{c.body=vab.value}\n` : validator.body?.schema?.noValidate !== !0 && (validator.body.isOptional ? fnLiteral += \"if(isNotEmptyObject&&validator.body.Check(c.body)===false){\" + validation.validate(\"body\") + \"}\" : fnLiteral += \"if(validator.body.Check(c.body)===false){\" + validation.validate(\"body\") + \"}\");\n } else\n fnLiteral += composeCleaner({\n name: \"c.body\",\n schema: validator.body,\n type: \"body\",\n normalize\n }), validator.body.provider === \"standard\" ? fnLiteral += `let vab=validator.body.Check(c.body)\nif(vab instanceof Promise)vab=await vab\nif(vab.issues){` + validation.validate(\"body\", void 0, \"vab.issues\") + `}else{c.body=vab.value}\n` : validator.body?.schema?.noValidate !== !0 && (validator.body.isOptional ? fnLiteral += \"if(isNotEmptyObject&&validator.body.Check(c.body)===false){\" + validation.validate(\"body\") + \"}\" : fnLiteral += \"if(validator.body.Check(c.body)===false){\" + validation.validate(\"body\") + \"}\");\n if (validator.body.hasTransform && (fnLiteral += coerceTransformDecodeError(\n `if(isNotEmptyObject)c.body=validator.body.Decode(c.body)\n`,\n \"body\",\n allowUnsafeValidationDetails\n )), hasUnion && validator.body.schema.anyOf?.length) {\n const iterator = Object.values(\n validator.body.schema.anyOf\n );\n for (let i = 0; i < iterator.length; i++) {\n const type = iterator[i];\n if (hasType(\"File\", type) || hasType(\"Files\", type)) {\n const candidate = getSchemaValidator(type, {\n // @ts-expect-error private property\n modules: app.definitions.typebox,\n dynamic: !app.config.aot,\n // @ts-expect-error private property\n models: app.definitions.type,\n normalize: app.config.normalize,\n additionalCoerce: coercePrimitiveRoot(),\n sanitize: () => app.config.sanitize\n });\n if (candidate) {\n const isFirst = fileUnions.length === 0, properties = getSchemaProperties(candidate.schema) ?? getSchemaProperties(type);\n if (!properties) continue;\n const iterator2 = Object.entries(properties);\n let validator2 = isFirst ? `\n` : \" else \";\n validator2 += `if(fileUnions[${fileUnions.length}].Check(c.body)){`;\n let validateFile = \"\", validatorLength = 0;\n for (let i2 = 0; i2 < iterator2.length; i2++) {\n const [k, v] = iterator2[i2];\n !v.extension || v[Kind] !== \"File\" && v[Kind] !== \"Files\" || (validatorLength && (validateFile += \",\"), validateFile += `fileType(c.body.${k},${JSON.stringify(v.extension)},'body.${k}')`, validatorLength++);\n }\n validateFile && (validatorLength === 1 ? validator2 += `await ${validateFile}\n` : validatorLength > 1 && (validator2 += `await Promise.all([${validateFile}])\n`), validator2 += \"}\", fnLiteral += validator2, fileUnions.push(candidate));\n }\n }\n }\n } else if (hasNonUnionFileWithDefault || !hasUnion && (hasType(\n \"File\",\n unwrapImportSchema(validator.body.schema)\n ) || hasType(\n \"Files\",\n unwrapImportSchema(validator.body.schema)\n ))) {\n let validateFile = \"\";\n const bodyProperties = getSchemaProperties(\n unwrapImportSchema(validator.body.schema)\n );\n let i = 0;\n if (bodyProperties)\n for (const [k, v] of Object.entries(bodyProperties))\n !v.extension || v[Kind] !== \"File\" && v[Kind] !== \"Files\" || (i && (validateFile += \",\"), validateFile += `fileType(c.body.${k},${JSON.stringify(v.extension)},'body.${k}')`, i++);\n i && (fnLiteral += `\n`), i === 1 ? fnLiteral += `await ${validateFile}\n` : i > 1 && (fnLiteral += `await Promise.all([${validateFile}])\n`);\n }\n }\n validator.cookie && (validator.cookie.config = mergeCookie(\n validator.cookie.config,\n validator.cookie?.config ?? {}\n ), fnLiteral += `let cookieValue={}\nfor(const [key,value] of Object.entries(c.cookie))cookieValue[key]=value.value\n`, validator.cookie.isOptional && (fnLiteral += \"if(isNotEmpty(c.cookie)){\"), validator.cookie.provider === \"standard\" ? (fnLiteral += `let vac=validator.cookie.Check(cookieValue)\nif(vac instanceof Promise)vac=await vac\nif(vac.issues){` + validation.validate(\"cookie\", void 0, \"vac.issues\") + `}else{cookieValue=vac.value}\n`, fnLiteral += `for(const k of Object.keys(cookieValue))c.cookie[k].value=cookieValue[k]\n`) : validator.body?.schema?.noValidate !== !0 && (fnLiteral += \"if(validator.cookie.Check(cookieValue)===false){\" + validation.validate(\"cookie\", \"cookieValue\") + \"}\", validator.cookie.hasTransform && (fnLiteral += coerceTransformDecodeError(\n \"for(const [key,value] of Object.entries(validator.cookie.Decode(cookieValue))){c.cookie[key].cookie.value = value}\",\n \"cookie\",\n allowUnsafeValidationDetails\n ))), validator.cookie.isOptional && (fnLiteral += \"}\"));\n }\n if (hooks?.beforeHandle || hasTrace) {\n const reporter = report(\"beforeHandle\", {\n total: hooks.beforeHandle?.length\n });\n let hasResolve = !1;\n if (hooks.beforeHandle?.length)\n for (let i = 0; i < hooks.beforeHandle.length; i++) {\n const beforeHandle = hooks.beforeHandle[i], endUnit = reporter.resolveChild(beforeHandle.fn.name), returning = hasReturn(beforeHandle);\n if (beforeHandle.subType === \"resolve\" || beforeHandle.subType === \"mapResolve\")\n hasResolve || (hasResolve = !0, fnLiteral += `\nlet resolved\n`), fnLiteral += isAsync(beforeHandle) ? `resolved=await e.beforeHandle[${i}](c);\n` : `resolved=e.beforeHandle[${i}](c);\n`, beforeHandle.subType === \"mapResolve\" ? fnLiteral += \"if(resolved instanceof ElysiaCustomStatusResponse){\" + mapResponse(\"resolved\") + `}else{resolved.request=c.request\nresolved.store=c.store\nresolved.qi=c.qi\nresolved.path=c.path\nresolved.url=c.url\nresolved.redirect=c.redirect\nresolved.set=c.set\nresolved.error=c.error\nc=resolved}` : fnLiteral += \"if(resolved instanceof ElysiaCustomStatusResponse){\" + mapResponse(\"resolved\") + `}else Object.assign(c, resolved)\n`, endUnit();\n else if (!returning)\n fnLiteral += isAsync(beforeHandle) ? `await e.beforeHandle[${i}](c)\n` : `e.beforeHandle[${i}](c)\n`, endUnit();\n else {\n if (fnLiteral += isAsync(beforeHandle) ? `be=await e.beforeHandle[${i}](c)\n` : `be=e.beforeHandle[${i}](c)\n`, endUnit(\"be\"), fnLiteral += \"if(be!==undefined){\", reporter.resolve(), hooks.afterHandle?.length || hasTrace) {\n report(\"handle\", {\n name: isHandleFn ? handler.name : void 0\n }).resolve();\n const reporter2 = report(\"afterHandle\", {\n total: hooks.afterHandle?.length\n });\n if (hooks.afterHandle?.length)\n for (let i2 = 0; i2 < hooks.afterHandle.length; i2++) {\n const hook = hooks.afterHandle[i2], returning2 = hasReturn(hook), endUnit2 = reporter2.resolveChild(\n hook.fn.name\n );\n fnLiteral += `c.response=c.responseValue=be\n`, returning2 ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i2}](c)\n` : `af=e.afterHandle[${i2}](c)\n`, fnLiteral += `if(af!==undefined) c.response=c.responseValue=be=af\n`) : fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i2}](c, be)\n` : `e.afterHandle[${i2}](c, be)\n`, endUnit2(\"af\");\n }\n reporter2.resolve();\n }\n validator.response && (fnLiteral += validation.response(\"be\"));\n const mapResponseReporter = report(\"mapResponse\", {\n total: hooks.mapResponse?.length\n });\n if (hooks.mapResponse?.length) {\n fnLiteral += `c.response=c.responseValue=be\n`;\n for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {\n const mapResponse2 = hooks.mapResponse[i2], endUnit2 = mapResponseReporter.resolveChild(\n mapResponse2.fn.name\n );\n fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse2) ? \"await \" : \"\"}e.mapResponse[${i2}](c)\nif(mr!==undefined)be=c.response=c.responseValue=mr}`, endUnit2();\n }\n }\n mapResponseReporter.resolve(), fnLiteral += afterResponse(), fnLiteral += encodeCookie(), fnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${mapResponseContext})}\n`;\n }\n }\n reporter.resolve();\n }\n function reportHandler(name) {\n const handleReporter = report(\"handle\", {\n name,\n alias: \"reportHandler\"\n });\n return () => {\n hasTrace && (fnLiteral += 'if(r&&(r[Symbol.iterator]||r[Symbol.asyncIterator])&&typeof r.next===\"function\"){' + (maybeAsync ? \"\" : \"(async()=>{\") + `const stream=await tee(r,3)\nr=stream[0]\n` + (hooks.afterHandle?.length ? `c.response=c.responseValue=r\n` : \"\") + `const listener=stream[1]\n` + (hasTrace || hooks.afterResponse?.length ? `afterHandlerStreamListener=stream[2]\n` : \"\") + `${setImmediateFn}(async ()=>{if(listener)for await(const v of listener){}\n`, handleReporter.resolve(), fnLiteral += \"})\" + (maybeAsync ? \"\" : \"})()\") + \"}else{\", handleReporter.resolve(), fnLiteral += `}\n`);\n };\n }\n if (hooks.afterHandle?.length || hasTrace) {\n const resolveHandler = reportHandler(\n isHandleFn ? handler.name : void 0\n );\n hooks.afterHandle?.length ? fnLiteral += isAsyncHandler ? `let r=c.response=c.responseValue=await ${handle}\n` : `let r=c.response=c.responseValue=${handle}\n` : fnLiteral += isAsyncHandler ? `let r=await ${handle}\n` : `let r=${handle}\n`, resolveHandler();\n const reporter = report(\"afterHandle\", {\n total: hooks.afterHandle?.length\n });\n if (hooks.afterHandle?.length)\n for (let i = 0; i < hooks.afterHandle.length; i++) {\n const hook = hooks.afterHandle[i], returning = hasReturn(hook), endUnit = reporter.resolveChild(hook.fn.name);\n returning ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i}](c)\n` : `af=e.afterHandle[${i}](c)\n`, endUnit(\"af\"), validator.response ? (fnLiteral += \"if(af!==undefined){\", reporter.resolve(), fnLiteral += validation.response(\"af\"), fnLiteral += \"c.response=c.responseValue=af}\") : (fnLiteral += \"if(af!==undefined){\", reporter.resolve(), fnLiteral += \"c.response=c.responseValue=af}\")) : (fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i}](c)\n` : `e.afterHandle[${i}](c)\n`, endUnit());\n }\n reporter.resolve(), hooks.afterHandle?.length && (fnLiteral += `r=c.response\n`), validator.response && (fnLiteral += validation.response()), fnLiteral += encodeCookie();\n const mapResponseReporter = report(\"mapResponse\", {\n total: hooks.mapResponse?.length\n });\n if (hooks.mapResponse?.length)\n for (let i = 0; i < hooks.mapResponse.length; i++) {\n const mapResponse2 = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(\n mapResponse2.fn.name\n );\n fnLiteral += `mr=${isAsyncName(mapResponse2) ? \"await \" : \"\"}e.mapResponse[${i}](c)\nif(mr!==undefined)r=c.response=c.responseValue=mr\n`, endUnit();\n }\n mapResponseReporter.resolve(), fnLiteral += mapResponse();\n } else {\n const resolveHandler = reportHandler(\n isHandleFn ? handler.name : void 0\n );\n if (validator.response || hooks.mapResponse?.length || hasTrace) {\n fnLiteral += isAsyncHandler ? `let r=await ${handle}\n` : `let r=${handle}\n`, resolveHandler(), validator.response && (fnLiteral += validation.response());\n const mapResponseReporter = report(\"mapResponse\", {\n total: hooks.mapResponse?.length\n });\n if (hooks.mapResponse?.length) {\n fnLiteral += `\nc.response=c.responseValue=r\n`;\n for (let i = 0; i < hooks.mapResponse.length; i++) {\n const mapResponse2 = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(\n mapResponse2.fn.name\n );\n fnLiteral += `\nif(mr===undefined){mr=${isAsyncName(mapResponse2) ? \"await \" : \"\"}e.mapResponse[${i}](c)\nif(mr!==undefined)r=c.response=c.responseValue=mr}\n`, endUnit();\n }\n }\n mapResponseReporter.resolve(), fnLiteral += encodeCookie(), handler instanceof Response ? (fnLiteral += afterResponse(), fnLiteral += inference.set ? `if(isNotEmpty(c.set.headers)||c.set.status!==200||c.set.redirect||c.set.cookie)return mapResponse(${saveResponse}${handle}.clone(),c.set${mapResponseContext})\nelse return ${handle}.clone()` : `return ${handle}.clone()`, fnLiteral += `\n`) : fnLiteral += mapResponse();\n } else if (hasCookie || hasTrace) {\n fnLiteral += isAsyncHandler ? `let r=await ${handle}\n` : `let r=${handle}\n`, resolveHandler();\n const mapResponseReporter = report(\"mapResponse\", {\n total: hooks.mapResponse?.length\n });\n if (hooks.mapResponse?.length) {\n fnLiteral += `c.response=c.responseValue= r\n`;\n for (let i = 0; i < hooks.mapResponse.length; i++) {\n const mapResponse2 = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(\n mapResponse2.fn.name\n );\n fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse2) ? \"await \" : \"\"}e.mapResponse[${i}](c)\nif(mr!==undefined)r=c.response=c.responseValue=mr}`, endUnit();\n }\n }\n mapResponseReporter.resolve(), fnLiteral += encodeCookie() + mapResponse();\n } else {\n resolveHandler();\n const handled = isAsyncHandler ? `await ${handle}` : handle;\n handler instanceof Response ? (fnLiteral += afterResponse(), fnLiteral += inference.set ? `if(isNotEmpty(c.set.headers)||c.set.status!==200||c.set.redirect||c.set.cookie)return mapResponse(${saveResponse}${handle}.clone(),c.set${mapResponseContext})\nelse return ${handle}.clone()\n` : `return ${handle}.clone()\n`) : fnLiteral += mapResponse(handled);\n }\n }\n if (fnLiteral += `\n}catch(error){`, !maybeAsync && hooks.error?.length && (fnLiteral += \"return(async()=>{\"), fnLiteral += `const set=c.set\nif(!set.status||set.status<300)set.status=error?.status||500\n`, hasCookie && (fnLiteral += encodeCookie()), hasTrace && hooks.trace)\n for (let i = 0; i < hooks.trace.length; i++)\n fnLiteral += `report${i}?.resolve(error);reportChild${i}?.(error)\n`;\n const errorReporter = report(\"error\", {\n total: hooks.error?.length\n });\n if (hooks.error?.length) {\n fnLiteral += `c.error=error\n`, hasValidation ? fnLiteral += `if(error instanceof TypeBoxError){c.code=\"VALIDATION\"\nc.set.status=422}else{c.code=error.code??error[ERROR_CODE]??\"UNKNOWN\"}` : fnLiteral += `c.code=error.code??error[ERROR_CODE]??\"UNKNOWN\"\n`, fnLiteral += `let er\n`, hooks.mapResponse?.length && (fnLiteral += `let mep\n`);\n for (let i = 0; i < hooks.error.length; i++) {\n const endUnit = errorReporter.resolveChild(hooks.error[i].fn.name);\n if (isAsync(hooks.error[i]) ? fnLiteral += `er=await e.error[${i}](c)\n` : fnLiteral += `er=e.error[${i}](c)\nif(er instanceof Promise)er=await er\n`, endUnit(), hooks.mapResponse?.length) {\n const mapResponseReporter = report(\"mapResponse\", {\n total: hooks.mapResponse?.length\n });\n for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {\n const mapResponse2 = hooks.mapResponse[i2], endUnit2 = mapResponseReporter.resolveChild(\n mapResponse2.fn.name\n );\n fnLiteral += `c.response=c.responseValue=er\nmep=e.mapResponse[${i2}](c)\nif(mep instanceof Promise)er=await er\nif(mep!==undefined)er=mep\n`, endUnit2();\n }\n mapResponseReporter.resolve();\n }\n if (fnLiteral += `er=mapEarlyResponse(er,set${mapResponseContext})\n`, fnLiteral += \"if(er){\", hasTrace && hooks.trace) {\n for (let i2 = 0; i2 < hooks.trace.length; i2++)\n fnLiteral += `report${i2}.resolve()\n`;\n errorReporter.resolve();\n }\n fnLiteral += afterResponse(!1), fnLiteral += \"return er}\";\n }\n }\n errorReporter.resolve(), fnLiteral += \"return handleError(c,error,true)\", !maybeAsync && hooks.error?.length && (fnLiteral += \"})()\"), fnLiteral += \"}\";\n const adapterVariables = adapter.inject ? Object.keys(adapter.inject).join(\",\") + \",\" : \"\";\n let init = \"const {handler,handleError,hooks:e, \" + allocateIf(\"validator,\", hasValidation) + \"mapResponse,mapCompactResponse,mapEarlyResponse,isNotEmpty,utils:{\" + allocateIf(\"parseQuery,\", hasBody) + allocateIf(\"parseQueryFromURL,\", hasQuery) + \"},error:{\" + allocateIf(\"ValidationError,\", hasValidation) + allocateIf(\"ParseError\", hasBody) + \"},fileType,schema,definitions,tee,ERROR_CODE,\" + allocateIf(\"parseCookie,\", hasCookie) + allocateIf(\"signCookie,\", hasCookie) + allocateIf(\"decodeURIComponent,\", hasQuery) + \"ElysiaCustomStatusResponse,\" + allocateIf(\"ELYSIA_TRACE,\", hasTrace) + allocateIf(\"ELYSIA_REQUEST_ID,\", hasTrace) + allocateIf(\"parser,\", hooks.parse?.length) + allocateIf(\"getServer,\", inference.server) + allocateIf(\"fileUnions,\", fileUnions.length) + adapterVariables + allocateIf(\"TypeBoxError\", hasValidation) + `}=hooks\nconst trace=e.trace\nreturn ${maybeAsync ? \"async \" : \"\"}function handle(c){`;\n hooks.beforeHandle?.length && (init += `let be\n`), hooks.afterHandle?.length && (init += `let af\n`), hooks.mapResponse?.length && (init += `let mr\n`), allowMeta && (init += `c.schema=schema\nc.defs=definitions\n`), fnLiteral = init + fnLiteral + \"}\", init = \"\";\n try {\n return Function(\n \"hooks\",\n `\"use strict\";\n` + fnLiteral\n )({\n handler,\n hooks: lifeCycleToFn(hooks),\n validator: hasValidation ? validator : void 0,\n // @ts-expect-error\n handleError: app.handleError,\n mapResponse: adapterHandler.mapResponse,\n mapCompactResponse: adapterHandler.mapCompactResponse,\n mapEarlyResponse: adapterHandler.mapEarlyResponse,\n isNotEmpty,\n utils: {\n parseQuery: hasBody ? parseQuery : void 0,\n parseQueryFromURL: hasQuery ? validator.query?.provider === \"standard\" ? parseQueryStandardSchema : parseQueryFromURL : void 0\n },\n error: {\n ValidationError: hasValidation ? ValidationError : void 0,\n ParseError: hasBody ? ParseError : void 0\n },\n fileType,\n schema: app.router.history,\n // @ts-expect-error\n definitions: app.definitions.type,\n tee,\n ERROR_CODE,\n parseCookie: hasCookie ? parseCookie : void 0,\n signCookie: hasCookie ? signCookie : void 0,\n Cookie: hasCookie ? Cookie : void 0,\n decodeURIComponent: hasQuery ? decode : void 0,\n ElysiaCustomStatusResponse,\n ELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : void 0,\n ELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : void 0,\n // @ts-expect-error private property\n getServer: inference.server ? () => app.getServer() : void 0,\n fileUnions: fileUnions.length ? fileUnions : void 0,\n TypeBoxError: hasValidation ? TypeBoxError : void 0,\n parser: app[\"~parser\"],\n ...adapter.inject\n });\n } catch (error) {\n const debugHooks = lifeCycleToFn(hooks);\n return console.log(\"[Composer] failed to generate optimized handler\"), console.log(\"---\"), console.log({\n handler: typeof handler == \"function\" ? handler.toString() : handler,\n instruction: fnLiteral,\n hooks: {\n ...debugHooks,\n // @ts-ignore\n transform: debugHooks?.transform?.map?.((x) => x.toString()),\n // @ts-ignore\n resolve: debugHooks?.resolve?.map?.((x) => x.toString()),\n // @ts-ignore\n beforeHandle: debugHooks?.beforeHandle?.map?.(\n (x) => x.toString()\n ),\n // @ts-ignore\n afterHandle: debugHooks?.afterHandle?.map?.(\n (x) => x.toString()\n ),\n // @ts-ignore\n mapResponse: debugHooks?.mapResponse?.map?.(\n (x) => x.toString()\n ),\n // @ts-ignore\n parse: debugHooks?.parse?.map?.((x) => x.toString()),\n // @ts-ignore\n error: debugHooks?.error?.map?.((x) => x.toString()),\n // @ts-ignore\n afterResponse: debugHooks?.afterResponse?.map?.(\n (x) => x.toString()\n ),\n // @ts-ignore\n stop: debugHooks?.stop?.map?.((x) => x.toString())\n },\n validator,\n // @ts-expect-error\n definitions: app.definitions.type,\n error\n }), console.log(\"---\"), typeof process?.exit == \"function\" && process.exit(1), () => new Response(\"Internal Server Error\", { status: 500 });\n }\n}, createOnRequestHandler = (app, addFn) => {\n let fnLiteral = \"\";\n const reporter = createReport({\n trace: app.event.trace,\n addFn: addFn ?? ((word) => {\n fnLiteral += word;\n })\n })(\"request\", {\n total: app.event.request?.length\n });\n if (app.event.request?.length) {\n fnLiteral += \"try{\";\n for (let i = 0; i < app.event.request.length; i++) {\n const hook = app.event.request[i], withReturn = hasReturn(hook), maybeAsync = isAsync(hook), endUnit = reporter.resolveChild(app.event.request[i].fn.name);\n withReturn ? (fnLiteral += `re=mapEarlyResponse(${maybeAsync ? \"await \" : \"\"}onRequest[${i}](c),c.set)\n`, endUnit(\"re\"), fnLiteral += `if(re!==undefined)return re\n`) : (fnLiteral += `${maybeAsync ? \"await \" : \"\"}onRequest[${i}](c)\n`, endUnit());\n }\n fnLiteral += \"}catch(error){return app.handleError(c,error,false)}\";\n }\n return reporter.resolve(), fnLiteral;\n}, createHoc = (app, fnName = \"map\") => {\n const hoc = app.extender.higherOrderFunctions;\n if (!hoc.length) return \"return \" + fnName;\n const adapter = app[\"~adapter\"].composeGeneralHandler;\n let handler = fnName;\n for (let i = 0; i < hoc.length; i++)\n handler = `hoc[${i}](${handler},${adapter.parameters})`;\n return `return function hocMap(${adapter.parameters}){return ${handler}(${adapter.parameters})}`;\n}, composeGeneralHandler = (app) => {\n const adapter = app[\"~adapter\"].composeGeneralHandler;\n app.router.http.build();\n const isWebstandard = app[\"~adapter\"].isWebStandard, hasTrace = app.event.trace?.length;\n let fnLiteral = \"\";\n const router = app.router;\n let findDynamicRoute = router.http.root.WS ? \"const route=router.find(r.method==='GET'&&r.headers.get('upgrade')==='websocket'?'WS':r.method,p)\" : \"const route=router.find(r.method,p)\";\n findDynamicRoute += router.http.root.ALL ? `??router.find('ALL',p)\n` : `\n`, isWebstandard && (findDynamicRoute += 'if(r.method===\"HEAD\"){const route=router.find(\"GET\",p);if(route){c.params=route.params;const _res=route.store.handler?route.store.handler(c):route.store.compile()(c);if(_res)return Promise.resolve(_res).then((_res)=>{if(!_res.headers)_res.headers=new Headers();return getResponseLength(_res).then((length)=>{_res.headers.set(\"content-length\", length);return new Response(null,{status:_res.status,statusText:_res.statusText,headers:_res.headers});})});}}');\n let afterResponse = `c.error=notFound\n`;\n if (app.event.afterResponse?.length && !app.event.error) {\n afterResponse = `\nc.error=notFound\n`;\n const prefix = app.event.afterResponse.some(isAsync) ? \"async\" : \"\";\n afterResponse += `\n${setImmediateFn}(${prefix}()=>{if(c.responseValue instanceof ElysiaCustomStatusResponse) c.set.status=c.responseValue.code\n`;\n for (let i = 0; i < app.event.afterResponse.length; i++) {\n const fn2 = app.event.afterResponse[i].fn;\n afterResponse += `\n${isAsyncName(fn2) ? \"await \" : \"\"}afterResponse[${i}](c)\n`;\n }\n afterResponse += `})\n`;\n }\n app.inference.query && (afterResponse += `\nif(c.qi===-1){c.query={}}else{c.query=parseQueryFromURL(c.url,c.qi+1)}`);\n const error404 = adapter.error404(\n !!app.event.request?.length,\n !!app.event.error?.length,\n afterResponse\n );\n findDynamicRoute += error404.code, findDynamicRoute += `\nc.params=route.params\nif(route.store.handler)return route.store.handler(c)\nreturn route.store.compile()(c)\n`;\n let switchMap = \"\";\n for (const [path, methods] of Object.entries(router.static)) {\n switchMap += `case'${path}':`, app.config.strictPath !== !0 && (switchMap += `case'${getLoosePath(path)}':`);\n const encoded = encodePath(path);\n path !== encoded && (switchMap += `case'${encoded}':`), switchMap += \"switch(r.method){\", (\"GET\" in methods || \"WS\" in methods) && (switchMap += \"case 'GET':\", \"WS\" in methods && (switchMap += `if(r.headers.get('upgrade')==='websocket')return ht[${methods.WS}].composed(c)\n`, \"GET\" in methods || (\"ALL\" in methods ? switchMap += `return ht[${methods.ALL}].composed(c)\n` : switchMap += `break map\n`)), \"GET\" in methods && (switchMap += `return ht[${methods.GET}].composed(c)\n`)), isWebstandard && (\"GET\" in methods || \"ALL\" in methods) && !(\"HEAD\" in methods) && (switchMap += `case 'HEAD':return Promise.resolve(ht[${methods.GET ?? methods.ALL}].composed(c)).then(_ht=>getResponseLength(_ht).then((length)=>{_ht.headers.set('content-length', length)\nreturn new Response(null,{status:_ht.status,statusText:_ht.statusText,headers:_ht.headers})\n}))\n`);\n for (const [method, index] of Object.entries(methods))\n method === \"ALL\" || method === \"GET\" || method === \"WS\" || (switchMap += `case '${method}':return ht[${index}].composed(c)\n`);\n \"ALL\" in methods ? switchMap += `default:return ht[${methods.ALL}].composed(c)\n` : switchMap += `default:break map\n`, switchMap += \"}\";\n }\n const maybeAsync = !!app.event.request?.some(isAsync), adapterVariables = adapter.inject ? Object.keys(adapter.inject).join(\",\") + \",\" : \"\";\n fnLiteral += `\nconst {app,mapEarlyResponse,NotFoundError,randomId,handleError,status,redirect,getResponseLength,ElysiaCustomStatusResponse,` + // @ts-ignore\n allocateIf(\"parseQueryFromURL,\", app.inference.query) + allocateIf(\"ELYSIA_TRACE,\", hasTrace) + allocateIf(\"ELYSIA_REQUEST_ID,\", hasTrace) + adapterVariables + `}=data\nconst store=app.singleton.store\nconst decorator=app.singleton.decorator\nconst staticRouter=app.router.static.http\nconst ht=app.router.history\nconst router=app.router.http\nconst trace=app.event.trace?.map(x=>typeof x==='function'?x:x.fn)??[]\nconst notFound=new NotFoundError()\nconst hoc=app.extender.higherOrderFunctions.map(x=>x.fn)\n`, app.event.request?.length && (fnLiteral += `const onRequest=app.event.request.map(x=>x.fn)\n`), app.event.afterResponse?.length && (fnLiteral += `const afterResponse=app.event.afterResponse.map(x=>x.fn)\n`), fnLiteral += error404.declare, app.event.trace?.length && (fnLiteral += \"const \" + app.event.trace.map((_, i) => `tr${i}=app.event.trace[${i}].fn`).join(\",\") + `\n`), fnLiteral += `${maybeAsync ? \"async \" : \"\"}function map(${adapter.parameters}){`, app.event.request?.length && (fnLiteral += `let re\n`), fnLiteral += adapter.createContext(app), app.event.trace?.length && (fnLiteral += \"c[ELYSIA_TRACE]=[\" + app.event.trace.map((_, i) => `tr${i}(c)`).join(\",\") + `]\n`), fnLiteral += createOnRequestHandler(app), switchMap && (fnLiteral += `\nmap: switch(p){\n` + switchMap + \"}\"), fnLiteral += findDynamicRoute + `}\n` + createHoc(app);\n const handleError = composeErrorHandler(app);\n app.handleError = handleError;\n const fn = Function(\n \"data\",\n `\"use strict\";\n` + fnLiteral\n )({\n app,\n mapEarlyResponse: app[\"~adapter\"].handler.mapEarlyResponse,\n NotFoundError,\n randomId,\n handleError,\n status,\n redirect,\n getResponseLength,\n ElysiaCustomStatusResponse,\n // @ts-ignore\n parseQueryFromURL: app.inference.query ? parseQueryFromURL : void 0,\n ELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : void 0,\n ELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : void 0,\n ...adapter.inject\n });\n return isBun && Bun.gc(!1), fn;\n}, composeErrorHandler = (app) => {\n const hooks = app.event;\n let fnLiteral = \"\";\n const adapter = app[\"~adapter\"].composeError, adapterVariables = adapter.inject ? Object.keys(adapter.inject).join(\",\") + \",\" : \"\", hasTrace = !!app.event.trace?.length;\n fnLiteral += \"const {mapResponse,ERROR_CODE,ElysiaCustomStatusResponse,ValidationError,TransformDecodeError,\" + allocateIf(\"onError,\", app.event.error) + allocateIf(\"afterResponse,\", app.event.afterResponse) + allocateIf(\"trace,\", app.event.trace) + allocateIf(\"onMapResponse,\", app.event.mapResponse) + allocateIf(\"ELYSIA_TRACE,\", hasTrace) + allocateIf(\"ELYSIA_REQUEST_ID,\", hasTrace) + adapterVariables + `}=inject\n`, fnLiteral += \"return async function(context,error,skipGlobal){\", fnLiteral += \"\", hasTrace && (fnLiteral += `const id=context[ELYSIA_REQUEST_ID]\n`);\n const report = createReport({\n context: \"context\",\n trace: hooks.trace,\n addFn: (word) => {\n fnLiteral += word;\n }\n }), afterResponse = () => {\n if (!hooks.afterResponse?.length && !hasTrace) return \"\";\n let afterResponse2 = \"\";\n const prefix = hooks.afterResponse?.some(isAsync) ? \"async\" : \"\";\n afterResponse2 += `\n${setImmediateFn}(${prefix}()=>{`;\n const reporter = createReport({\n context: \"context\",\n trace: hooks.trace,\n addFn: (word) => {\n afterResponse2 += word;\n }\n })(\"afterResponse\", {\n total: hooks.afterResponse?.length,\n name: \"context\"\n });\n if (hooks.afterResponse?.length && hooks.afterResponse)\n for (let i = 0; i < hooks.afterResponse.length; i++) {\n const fn = hooks.afterResponse[i].fn, endUnit = reporter.resolveChild(fn.name);\n afterResponse2 += `\n${isAsyncName(fn) ? \"await \" : \"\"}afterResponse[${i}](context)\n`, endUnit();\n }\n return reporter.resolve(), afterResponse2 += `})\n`, afterResponse2;\n };\n fnLiteral += `const set=context.set\nlet _r\nif(!context.code)context.code=error.code??error[ERROR_CODE]\nif(!(context.error instanceof Error))context.error=error\nif(error instanceof ElysiaCustomStatusResponse){set.status=error.status=error.code\nerror.message=error.response}`, adapter.declare && (fnLiteral += adapter.declare);\n const saveResponse = hasTrace || hooks.afterResponse?.length ? \"context.response = \" : \"\";\n if (fnLiteral += `if(typeof error?.toResponse==='function'&&!(error instanceof ValidationError)&&!(error instanceof TransformDecodeError)){try{let raw=error.toResponse()\nif(typeof raw?.then==='function')raw=await raw\nif(raw instanceof Response)set.status=raw.status\ncontext.response=context.responseValue=raw\n}catch(toResponseError){\n}\n}\n`, app.event.error)\n for (let i = 0; i < app.event.error.length; i++) {\n const handler = app.event.error[i], response = `${isAsync(handler) ? \"await \" : \"\"}onError[${i}](context)\n`;\n if (fnLiteral += \"if(skipGlobal!==true&&!context.response){\", hasReturn(handler)) {\n fnLiteral += `_r=${response}\nif(_r!==undefined){if(_r instanceof Response){` + afterResponse() + `return mapResponse(_r,set${adapter.mapResponseContext})}if(_r instanceof ElysiaCustomStatusResponse){error.status=error.code\nerror.message=error.response}if(set.status===200||!set.status)set.status=error.status\n`;\n const mapResponseReporter2 = report(\"mapResponse\", {\n total: hooks.mapResponse?.length,\n name: \"context\"\n });\n if (hooks.mapResponse?.length)\n for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {\n const mapResponse = hooks.mapResponse[i2], endUnit = mapResponseReporter2.resolveChild(\n mapResponse.fn.name\n );\n fnLiteral += `context.response=context.responseValue=_r\n_r=${isAsyncName(mapResponse) ? \"await \" : \"\"}onMapResponse[${i2}](context)\n`, endUnit();\n }\n mapResponseReporter2.resolve(), fnLiteral += afterResponse() + `return mapResponse(${saveResponse}_r,set${adapter.mapResponseContext})}`;\n } else fnLiteral += response;\n fnLiteral += \"}\";\n }\n fnLiteral += `if(error instanceof ValidationError||error instanceof TransformDecodeError){\nif(error.error)error=error.error\nset.status=error.status??422\n` + afterResponse() + adapter.validationError + `\n}\n`, fnLiteral += \"if(!context.response&&error instanceof Error){\" + afterResponse() + adapter.unknownError + `\n}`;\n const mapResponseReporter = report(\"mapResponse\", {\n total: hooks.mapResponse?.length,\n name: \"context\"\n });\n if (fnLiteral += `\nif(!context.response)context.response=context.responseValue=error.message??error\n`, hooks.mapResponse?.length) {\n fnLiteral += `let mr\n`;\n for (let i = 0; i < hooks.mapResponse.length; i++) {\n const mapResponse = hooks.mapResponse[i], endUnit = mapResponseReporter.resolveChild(\n mapResponse.fn.name\n );\n fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse) ? \"await \" : \"\"}onMapResponse[${i}](context)\nif(mr!==undefined)error=context.response=context.responseValue=mr}`, endUnit();\n }\n }\n mapResponseReporter.resolve(), fnLiteral += afterResponse() + `\nreturn mapResponse(${saveResponse}error,set${adapter.mapResponseContext})}`;\n const mapFn = (x) => typeof x == \"function\" ? x : x.fn;\n return Function(\n \"inject\",\n `\"use strict\";\n` + fnLiteral\n )({\n mapResponse: app[\"~adapter\"].handler.mapResponse,\n ERROR_CODE,\n ElysiaCustomStatusResponse,\n ValidationError,\n TransformDecodeError,\n onError: app.event.error?.map(mapFn),\n afterResponse: app.event.afterResponse?.map(mapFn),\n trace: app.event.trace?.map(mapFn),\n onMapResponse: app.event.mapResponse?.map(mapFn),\n ELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : void 0,\n ELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : void 0,\n ...adapter.inject\n });\n};\nexport {\n composeErrorHandler,\n composeGeneralHandler,\n composeHandler,\n createHoc,\n createOnRequestHandler,\n isAsync\n};\n","import decode from \"fast-decode-uri-component\";\nconst KEY_HAS_PLUS = 1, KEY_NEEDS_DECODE = 2, VALUE_HAS_PLUS = 4, VALUE_NEEDS_DECODE = 8;\nfunction parseQueryFromURL(input, startIndex = 0, array, object) {\n const result = /* @__PURE__ */ Object.create(null);\n let flags = 0;\n const inputLength = input.length;\n let startingIndex = startIndex - 1, equalityIndex = startingIndex;\n for (let i = 0; i < inputLength; i++)\n switch (input.charCodeAt(i)) {\n // '&'\n case 38:\n processKeyValuePair(input, i), startingIndex = i, equalityIndex = i, flags = 0;\n break;\n // '='\n case 61:\n equalityIndex <= startingIndex ? equalityIndex = i : flags |= VALUE_NEEDS_DECODE;\n break;\n // '+'\n case 43:\n equalityIndex > startingIndex ? flags |= VALUE_HAS_PLUS : flags |= KEY_HAS_PLUS;\n break;\n // '%'\n case 37:\n equalityIndex > startingIndex ? flags |= VALUE_NEEDS_DECODE : flags |= KEY_NEEDS_DECODE;\n break;\n }\n return startingIndex < inputLength && processKeyValuePair(input, inputLength), result;\n function processKeyValuePair(input2, endIndex) {\n const hasBothKeyValuePair = equalityIndex > startingIndex, effectiveEqualityIndex = hasBothKeyValuePair ? equalityIndex : endIndex, keySlice = input2.slice(startingIndex + 1, effectiveEqualityIndex);\n if (!hasBothKeyValuePair && keySlice.length === 0) return;\n let finalKey = keySlice;\n flags & KEY_HAS_PLUS && (finalKey = finalKey.replace(/\\+/g, \" \")), flags & KEY_NEEDS_DECODE && (finalKey = decode(finalKey) || finalKey);\n let finalValue = \"\";\n if (hasBothKeyValuePair) {\n let valueSlice = input2.slice(equalityIndex + 1, endIndex);\n flags & VALUE_HAS_PLUS && (valueSlice = valueSlice.replace(/\\+/g, \" \")), flags & VALUE_NEEDS_DECODE && (valueSlice = decode(valueSlice) || valueSlice), finalValue = valueSlice;\n }\n const currentValue = result[finalKey];\n array && array?.[finalKey] ? finalValue.charCodeAt(0) === 91 ? (object && object?.[finalKey] ? finalValue = JSON.parse(finalValue) : finalValue = finalValue.slice(1, -1).split(\",\"), currentValue === void 0 ? result[finalKey] = finalValue : Array.isArray(currentValue) ? currentValue.push(...finalValue) : (result[finalKey] = finalValue, result[finalKey].unshift(currentValue))) : currentValue === void 0 ? result[finalKey] = finalValue : Array.isArray(currentValue) ? currentValue.push(finalValue) : result[finalKey] = [currentValue, finalValue] : result[finalKey] = finalValue;\n }\n}\nfunction parseQueryStandardSchema(input, startIndex = 0) {\n const result = /* @__PURE__ */ Object.create(null);\n let flags = 0;\n const inputLength = input.length;\n let startingIndex = startIndex - 1, equalityIndex = startingIndex;\n for (let i = 0; i < inputLength; i++)\n switch (input.charCodeAt(i)) {\n // '&'\n case 38:\n processKeyValuePair(input, i), startingIndex = i, equalityIndex = i, flags = 0;\n break;\n // '='\n case 61:\n equalityIndex <= startingIndex ? equalityIndex = i : flags |= VALUE_NEEDS_DECODE;\n break;\n // '+'\n case 43:\n equalityIndex > startingIndex ? flags |= VALUE_HAS_PLUS : flags |= KEY_HAS_PLUS;\n break;\n // '%'\n case 37:\n equalityIndex > startingIndex ? flags |= VALUE_NEEDS_DECODE : flags |= KEY_NEEDS_DECODE;\n break;\n }\n return startingIndex < inputLength && processKeyValuePair(input, inputLength), result;\n function processKeyValuePair(input2, endIndex) {\n const hasBothKeyValuePair = equalityIndex > startingIndex, effectiveEqualityIndex = hasBothKeyValuePair ? equalityIndex : endIndex, keySlice = input2.slice(startingIndex + 1, effectiveEqualityIndex);\n if (!hasBothKeyValuePair && keySlice.length === 0) return;\n let finalKey = keySlice;\n flags & KEY_HAS_PLUS && (finalKey = finalKey.replace(/\\+/g, \" \")), flags & KEY_NEEDS_DECODE && (finalKey = decode(finalKey) || finalKey);\n let finalValue = \"\";\n if (hasBothKeyValuePair) {\n let valueSlice = input2.slice(equalityIndex + 1, endIndex);\n flags & VALUE_HAS_PLUS && (valueSlice = valueSlice.replace(/\\+/g, \" \")), flags & VALUE_NEEDS_DECODE && (valueSlice = decode(valueSlice) || valueSlice), finalValue = valueSlice;\n }\n const currentValue = result[finalKey];\n if (finalValue.charCodeAt(0) === 91 && finalValue.charCodeAt(finalValue.length - 1) === 93) {\n try {\n finalValue = JSON.parse(finalValue);\n } catch {\n }\n currentValue === void 0 ? result[finalKey] = finalValue : Array.isArray(currentValue) ? currentValue.push(finalValue) : result[finalKey] = [currentValue, finalValue];\n } else if (finalValue.charCodeAt(0) === 123 && finalValue.charCodeAt(finalValue.length - 1) === 125) {\n try {\n finalValue = JSON.parse(finalValue);\n } catch {\n }\n currentValue === void 0 ? result[finalKey] = finalValue : Array.isArray(currentValue) ? currentValue.push(finalValue) : result[finalKey] = [currentValue, finalValue];\n } else\n finalValue.includes(\",\") && (finalValue = finalValue.split(\",\")), currentValue === void 0 ? result[finalKey] = finalValue : Array.isArray(currentValue) ? currentValue.push(finalValue) : result[finalKey] = [currentValue, finalValue];\n }\n}\nfunction parseQuery(input) {\n const result = /* @__PURE__ */ Object.create(null);\n let flags = 0;\n const inputLength = input.length;\n let startingIndex = -1, equalityIndex = -1;\n for (let i = 0; i < inputLength; i++)\n switch (input.charCodeAt(i)) {\n // '&'\n case 38:\n processKeyValuePair(input, i), startingIndex = i, equalityIndex = i, flags = 0;\n break;\n // '='\n case 61:\n equalityIndex <= startingIndex ? equalityIndex = i : flags |= VALUE_NEEDS_DECODE;\n break;\n // '+'\n case 43:\n equalityIndex > startingIndex ? flags |= VALUE_HAS_PLUS : flags |= KEY_HAS_PLUS;\n break;\n // '%'\n case 37:\n equalityIndex > startingIndex ? flags |= VALUE_NEEDS_DECODE : flags |= KEY_NEEDS_DECODE;\n break;\n }\n return startingIndex < inputLength && processKeyValuePair(input, inputLength), result;\n function processKeyValuePair(input2, endIndex) {\n const hasBothKeyValuePair = equalityIndex > startingIndex, effectiveEqualityIndex = hasBothKeyValuePair ? equalityIndex : endIndex, keySlice = input2.slice(startingIndex + 1, effectiveEqualityIndex);\n if (!hasBothKeyValuePair && keySlice.length === 0) return;\n let finalKey = keySlice;\n flags & KEY_HAS_PLUS && (finalKey = finalKey.replace(/\\+/g, \" \")), flags & KEY_NEEDS_DECODE && (finalKey = decode(finalKey) || finalKey);\n let finalValue = \"\";\n if (hasBothKeyValuePair) {\n let valueSlice = input2.slice(equalityIndex + 1, endIndex);\n flags & VALUE_HAS_PLUS && (valueSlice = valueSlice.replace(/\\+/g, \" \")), flags & VALUE_NEEDS_DECODE && (valueSlice = decode(valueSlice) || valueSlice), finalValue = valueSlice;\n }\n const currentValue = result[finalKey];\n currentValue === void 0 ? result[finalKey] = finalValue : Array.isArray(currentValue) ? currentValue.push(finalValue) : result[finalKey] = [currentValue, finalValue];\n }\n}\nexport {\n parseQuery,\n parseQueryFromURL,\n parseQueryStandardSchema\n};\n","import { ELYSIA_REQUEST_ID } from \"./utils.mjs\";\nconst ELYSIA_TRACE = Symbol(\"ElysiaTrace\"), createProcess = () => {\n const { promise, resolve } = Promise.withResolvers(), { promise: end, resolve: resolveEnd } = Promise.withResolvers(), { promise: error, resolve: resolveError } = Promise.withResolvers(), callbacks = [], callbacksEnd = [];\n return [\n (callback) => (callback && callbacks.push(callback), promise),\n (process) => {\n const processes = [], resolvers = [];\n let groupError = null;\n for (let i = 0; i < (process.total ?? 0); i++) {\n const { promise: promise2, resolve: resolve2 } = Promise.withResolvers(), { promise: end2, resolve: resolveEnd2 } = Promise.withResolvers(), { promise: error2, resolve: resolveError2 } = Promise.withResolvers(), callbacks2 = [], callbacksEnd2 = [];\n processes.push((callback) => (callback && callbacks2.push(callback), promise2)), resolvers.push((process2) => {\n const result2 = {\n ...process2,\n end: end2,\n error: error2,\n index: i,\n onStop(callback) {\n return callback && callbacksEnd2.push(callback), end2;\n }\n };\n resolve2(result2);\n for (let i2 = 0; i2 < callbacks2.length; i2++)\n callbacks2[i2](result2);\n return (error3 = null) => {\n const end3 = performance.now();\n error3 && (groupError = error3);\n const detail = {\n end: end3,\n error: error3,\n get elapsed() {\n return end3 - process2.begin;\n }\n };\n for (let i2 = 0; i2 < callbacksEnd2.length; i2++)\n callbacksEnd2[i2](detail);\n resolveEnd2(end3), resolveError2(error3);\n };\n });\n }\n const result = {\n ...process,\n end,\n error,\n onEvent(callback) {\n for (let i = 0; i < processes.length; i++)\n processes[i](callback);\n },\n onStop(callback) {\n return callback && callbacksEnd.push(callback), end;\n }\n };\n resolve(result);\n for (let i = 0; i < callbacks.length; i++) callbacks[i](result);\n return {\n resolveChild: resolvers,\n resolve(error2 = null) {\n const end2 = performance.now();\n !error2 && groupError && (error2 = groupError);\n const detail = {\n end: end2,\n error: error2,\n get elapsed() {\n return end2 - process.begin;\n }\n };\n for (let i = 0; i < callbacksEnd.length; i++)\n callbacksEnd[i](detail);\n resolveEnd(end2), resolveError(error2);\n }\n };\n }\n ];\n}, createTracer = (traceListener) => (context) => {\n const [onRequest, resolveRequest] = createProcess(), [onParse, resolveParse] = createProcess(), [onTransform, resolveTransform] = createProcess(), [onBeforeHandle, resolveBeforeHandle] = createProcess(), [onHandle, resolveHandle] = createProcess(), [onAfterHandle, resolveAfterHandle] = createProcess(), [onError, resolveError] = createProcess(), [onMapResponse, resolveMapResponse] = createProcess(), [onAfterResponse, resolveAfterResponse] = createProcess();\n return traceListener({\n // @ts-ignore\n id: context[ELYSIA_REQUEST_ID],\n context,\n set: context.set,\n // @ts-ignore\n onRequest,\n // @ts-ignore\n onParse,\n // @ts-ignore\n onTransform,\n // @ts-ignore\n onBeforeHandle,\n // @ts-ignore\n onHandle,\n // @ts-ignore\n onAfterHandle,\n // @ts-ignore\n onMapResponse,\n // @ts-ignore\n onAfterResponse,\n // @ts-ignore\n onError,\n time: Date.now(),\n store: context.store\n }), {\n request: resolveRequest,\n parse: resolveParse,\n transform: resolveTransform,\n beforeHandle: resolveBeforeHandle,\n handle: resolveHandle,\n afterHandle: resolveAfterHandle,\n error: resolveError,\n mapResponse: resolveMapResponse,\n afterResponse: resolveAfterResponse\n };\n};\nexport {\n ELYSIA_TRACE,\n createTracer\n};\n","// src/index.ts\nimport { TypeCompiler } from \"@sinclair/typebox/compiler\";\nvar Kind = Symbol.for(\"TypeBox.Kind\");\nvar Hint = Symbol.for(\"TypeBox.Hint\");\nvar isSpecialProperty = (name) => /(\\ |-|\\t|\\n|\\.|\\[|\\]|\\{|\\})/.test(name) || !isNaN(+name[0]);\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 sanitize = (key, sanitize2 = 0, schema) => {\n if (schema.type !== \"string\" || schema.const || schema.trusted) return key;\n let hof = \"\";\n for (let i = sanitize2 - 1; i >= 0; i--) hof += `d.h${i}(`;\n return hof + key + \")\".repeat(sanitize2);\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 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 let v = `(()=>{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)}`;\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[ar${i}s[i]]${optionals[oi]}`;\n v += `;if(${target}===undefined)delete ${target}`;\n }\n instruction.optionalsInArray[i + 1] = [];\n }\n v += `}return ar${i}v})()`;\n return 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(\n property,\n i2,\n instruction.parentIsOptional || instruction.fromUnion\n ),\n instruction\n );\n }\n v += `];`;\n if (!isRoot) v += `return ar${i}v})()`;\n return v;\n};\nfunction deepClone(source, weak = /* @__PURE__ */ new WeakMap()) {\n if (source === null || typeof source !== \"object\" || typeof source === \"function\")\n return source;\n if (weak.has(source)) return weak.get(source);\n if (Array.isArray(source)) {\n const copy = new Array(source.length);\n weak.set(source, copy);\n for (let i = 0; i < source.length; i++)\n copy[i] = deepClone(source[i], weak);\n return copy;\n }\n if (typeof source === \"object\") {\n const keys = Object.keys(source).concat(\n Object.getOwnPropertySymbols(source)\n );\n const cloned = {};\n for (const key of keys)\n cloned[key] = deepClone(source[key], weak);\n return cloned;\n }\n return source;\n}\nvar handleUnion = (schemas, property, instruction) => {\n if (instruction.TypeCompiler === void 0) {\n if (!instruction.typeCompilerWanred) {\n console.warn(\n new Error(\n \"[exact-mirror] TypeBox's TypeCompiler is required to use Union\"\n )\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 const unwrapRef = (type) => {\n if (!(Kind in type) || !type.$ref) return type;\n if (type[Kind] === \"This\") {\n return deepClone(instruction.definitions[type.$ref]);\n } else if (type[Kind] === \"Ref\") {\n if (!instruction.modules)\n console.warn(\n new Error(\n \"[exact-mirror] modules is required when using nested cyclic reference\"\n )\n );\n else\n return instruction.modules.Import(\n type.$ref\n );\n }\n return type;\n };\n let cleanThenCheck = \"\";\n for (let i = 0; i < schemas.length; i++) {\n let type = unwrapRef(schemas[i]);\n if (Array.isArray(type.anyOf))\n for (let i2 = 0; i2 < type.anyOf.length; i2++)\n type.anyOf[i2] = unwrapRef(type.anyOf[i2]);\n else if (type.items) {\n if (Array.isArray(type.items))\n for (let i2 = 0; i2 < type.items.length; i2++)\n type.items[i2] = unwrapRef(type.items[i2]);\n else type.items = unwrapRef(type.items);\n }\n typeChecks.push(TypeCompiler.Compile(type));\n v += `if(d.unions[${ui}][${i}].Check(${property})){return ${mirror(\n type,\n property,\n {\n ...instruction,\n recursion: instruction.recursion + 1,\n parentIsOptional: true,\n fromUnion: true\n }\n )}}\n`;\n cleanThenCheck += (i ? \"\" : \"let \") + \"tmp=\" + mirror(type, property, {\n ...instruction,\n recursion: instruction.recursion + 1,\n parentIsOptional: true,\n fromUnion: true\n }) + `\nif(d.unions[${ui}][${i}].Check(tmp))return tmp\n`;\n }\n if (cleanThenCheck) v += cleanThenCheck;\n v += `return ${instruction.removeUnknownUnionType ? \"undefined\" : property}`;\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 ${sanitize(\"v\", instruction.sanitize?.length, schema)}`;\n if (instruction.recursion >= instruction.recursionLimit) return property;\n let v = \"\";\n if (schema.$id && Hint in schema)\n instruction.definitions[schema.$id] = schema;\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 = (\n // all fields are optional\n !schema.required || // field is explicitly required\n schema.required && !schema.required.includes(key) || Array.isArray(schema.properties[key].anyOf)\n );\n const name = joinProperty(\n property,\n key,\n // If parent is a union, any property could be undefined\n instruction.parentIsOptional || instruction.fromUnion\n );\n if (isOptional) {\n const index = instruction.array;\n if (property.startsWith(\"ar\")) {\n const dotIndex = name.indexOf(\".\");\n let refName;\n if (dotIndex >= 0) {\n refName = name.slice(dotIndex);\n } else {\n refName = name.slice(property.length);\n }\n if (refName.startsWith(\"?.\")) {\n if (refName.charAt(2) === \"[\") {\n refName = refName.slice(2);\n } else {\n refName = refName.slice(1);\n }\n }\n const array = instruction.optionalsInArray;\n if (array[index]) {\n array[index].push(refName);\n } else {\n array[index] = [refName];\n }\n } else {\n instruction.optionals.push(name);\n }\n }\n const child = schema.properties[key];\n if (i2 !== 0) v += \",\";\n v += `${encodeProperty(key)}:${isOptional ? `${name}===undefined?undefined:` : \"\"}${mirror(\n child,\n name,\n {\n ...instruction,\n recursion: instruction.recursion + 1,\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 break;\n } else if (isRoot && !Array.isArray(schema.items.anyOf))\n return \"return v\";\n else if (Kind in schema.items && schema.items.$ref && (schema.items[Kind] === \"Ref\" || schema.items[Kind] === \"This\"))\n v = mirror(\n deepClone(instruction.definitions[schema.items.$ref]),\n property,\n {\n ...instruction,\n parentIsOptional: true,\n recursion: instruction.recursion + 1\n }\n );\n else if (!Array.isArray(schema.items.anyOf)) {\n v = property;\n break;\n }\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 instruction.optionalsInArray[i + 1] = [];\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 = sanitize(property, instruction.sanitize?.length, schema);\n break;\n }\n if (!isRoot) return v;\n if (schema.type === \"array\") {\n v = `${v}const x=ar0v;`;\n } else {\n v = `const x=${v}\n`;\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 const shouldQuestion = prop.charCodeAt(0) !== 63 && schema.type !== \"array\";\n v += `)delete x${shouldQuestion ? prop.charCodeAt(0) === 91 ? \"?.\" : \"?\" : \"\"}${prop}\n`;\n }\n return `${v}return x`;\n};\nvar createMirror = (schema, {\n TypeCompiler: TypeCompiler2,\n modules,\n definitions,\n sanitize: sanitize2,\n recursionLimit = 8,\n removeUnknownUnionType = false\n} = {}) => {\n const unions = [];\n if (typeof sanitize2 === \"function\") sanitize2 = [sanitize2];\n const f = mirror(schema, \"v\", {\n optionals: [],\n optionalsInArray: [],\n array: 0,\n parentIsOptional: false,\n unions,\n unionKeys: {},\n TypeCompiler: TypeCompiler2,\n modules,\n // @ts-ignore private property\n definitions: definitions ?? modules?.$defs ?? {},\n sanitize: sanitize2,\n recursion: 0,\n recursionLimit,\n removeUnknownUnionType\n });\n if (!unions.length && !sanitize2?.length) return Function(\"v\", f);\n let hof;\n if (sanitize2?.length) {\n hof = {};\n for (let i = 0; i < sanitize2.length; i++) hof[`h${i}`] = sanitize2[i];\n }\n return Function(\n \"d\",\n `return function mirror(v){${f}}`\n )({\n unions,\n ...hof\n });\n};\nvar index_default = createMirror;\nexport {\n createMirror,\n deepClone,\n index_default as default,\n mergeObjectIntersection\n};\n","import { Kind } from \"@sinclair/typebox\";\nimport { t } from \"./type-system/index.mjs\";\nconst replaceSchemaTypeFromManyOptions = (schema, options) => {\n if (Array.isArray(options)) {\n let result = schema;\n for (const option of options)\n result = replaceSchemaTypeFromOption(result, option);\n return result;\n }\n return replaceSchemaTypeFromOption(schema, options);\n}, replaceSchemaTypeFromOption = (schema, option) => {\n if (option.rootOnly && option.excludeRoot)\n throw new Error(\"Can't set both rootOnly and excludeRoot\");\n if (option.rootOnly && option.onlyFirst)\n throw new Error(\"Can't set both rootOnly and onlyFirst\");\n if (option.rootOnly && option.untilObjectFound)\n throw new Error(\"Can't set both rootOnly and untilObjectFound\");\n const walk = ({ s, isRoot, treeLvl }) => {\n if (!s) return s;\n const skipRoot = isRoot && option.excludeRoot, fromKind = option.from[Kind];\n if (s.elysiaMeta)\n return option.from.elysiaMeta === s.elysiaMeta && !skipRoot ? option.to(s) : s;\n const shouldTransform = fromKind && s[Kind] === fromKind;\n if (!skipRoot && option.onlyFirst && s.type === option.onlyFirst || isRoot && option.rootOnly)\n return shouldTransform ? option.to(s) : s;\n if (!isRoot && option.untilObjectFound && s.type === \"object\")\n return s;\n const newWalkInput = { isRoot: !1, treeLvl: treeLvl + 1 }, withTransformedChildren = { ...s };\n if (s.oneOf && (withTransformedChildren.oneOf = s.oneOf.map(\n (x) => walk({ ...newWalkInput, s: x })\n )), s.anyOf && (withTransformedChildren.anyOf = s.anyOf.map(\n (x) => walk({ ...newWalkInput, s: x })\n )), s.allOf && (withTransformedChildren.allOf = s.allOf.map(\n (x) => walk({ ...newWalkInput, s: x })\n )), s.not && (withTransformedChildren.not = walk({ ...newWalkInput, s: s.not })), s.properties) {\n withTransformedChildren.properties = {};\n for (const [k, v] of Object.entries(s.properties))\n withTransformedChildren.properties[k] = walk({\n ...newWalkInput,\n s: v\n });\n }\n if (s.items) {\n const items = s.items;\n withTransformedChildren.items = Array.isArray(items) ? items.map((x) => walk({ ...newWalkInput, s: x })) : walk({ ...newWalkInput, s: items });\n }\n return !skipRoot && fromKind && withTransformedChildren[Kind] === fromKind ? option.to(withTransformedChildren) : withTransformedChildren;\n };\n return walk({ s: schema, isRoot: !0, treeLvl: 0 });\n}, revertObjAndArrStr = (schema) => {\n if (schema.elysiaMeta !== \"ObjectString\" && schema.elysiaMeta !== \"ArrayString\")\n return schema;\n const anyOf = schema.anyOf;\n return anyOf?.[1] ? anyOf[1] : schema;\n};\nlet _stringToStructureCoercions;\nconst stringToStructureCoercions = () => (_stringToStructureCoercions || (_stringToStructureCoercions = [\n {\n from: t.Object({}),\n to: (schema) => t.ObjectString(schema.properties || {}, schema),\n excludeRoot: !0\n },\n {\n from: t.Array(t.Any()),\n to: (schema) => t.ArrayString(schema.items || t.Any(), schema)\n }\n]), _stringToStructureCoercions);\nlet _queryCoercions;\nconst queryCoercions = () => (_queryCoercions || (_queryCoercions = [\n {\n from: t.Object({}),\n to: (schema) => t.ObjectString(schema.properties ?? {}, schema),\n excludeRoot: !0\n },\n {\n from: t.Array(t.Any()),\n to: (schema) => t.ArrayQuery(schema.items ?? t.Any(), schema)\n }\n]), _queryCoercions);\nlet _coercePrimitiveRoot;\nconst coercePrimitiveRoot = () => (_coercePrimitiveRoot || (_coercePrimitiveRoot = [\n {\n from: t.Number(),\n to: (schema) => t.Numeric(schema),\n rootOnly: !0\n },\n {\n from: t.Boolean(),\n to: (schema) => t.BooleanString(schema),\n rootOnly: !0\n }\n]), _coercePrimitiveRoot);\nlet _coerceFormData;\nconst coerceFormData = () => (_coerceFormData || (_coerceFormData = [\n {\n from: t.Object({}),\n to: (schema) => t.ObjectString(schema.properties ?? {}, schema),\n onlyFirst: \"object\",\n excludeRoot: !0\n },\n {\n from: t.Array(t.Any()),\n to: (schema) => t.ArrayString(schema.items ?? t.Any(), schema),\n onlyFirst: \"array\",\n excludeRoot: !0\n }\n]), _coerceFormData);\nexport {\n coerceFormData,\n coercePrimitiveRoot,\n queryCoercions,\n replaceSchemaTypeFromManyOptions,\n revertObjAndArrStr,\n stringToStructureCoercions\n};\n","import {\n Kind,\n OptionalKind,\n TransformKind\n} from \"@sinclair/typebox\";\nimport { Value } from \"@sinclair/typebox/value\";\nimport { TypeCompiler } from \"@sinclair/typebox/compiler\";\nimport {\n createMirror\n} from \"exact-mirror\";\nimport { t } from \"./type-system/index.mjs\";\nimport { mergeCookie, mergeDeep, randomId } from \"./utils.mjs\";\nimport { mapValueError } from \"./error.mjs\";\nimport {\n replaceSchemaTypeFromManyOptions,\n stringToStructureCoercions\n} from \"./replace-schema.mjs\";\nconst isOptional = (schema) => schema ? schema?.[Kind] === \"Import\" && schema.References ? schema.References().some(isOptional) : (schema.schema && (schema = schema.schema), !!schema && OptionalKind in schema) : !1, hasAdditionalProperties = (_schema) => {\n if (!_schema) return !1;\n const schema = _schema?.schema ?? _schema;\n if (schema[Kind] === \"Import\" && _schema.References)\n return _schema.References().some(hasAdditionalProperties);\n if (schema.anyOf) return schema.anyOf.some(hasAdditionalProperties);\n if (schema.someOf) return schema.someOf.some(hasAdditionalProperties);\n if (schema.allOf) return schema.allOf.some(hasAdditionalProperties);\n if (schema.not) return schema.not.some(hasAdditionalProperties);\n if (schema.type === \"object\") {\n const properties = schema.properties;\n if (\"additionalProperties\" in schema) return schema.additionalProperties;\n if (\"patternProperties\" in schema) return !1;\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n if (property.type === \"object\") {\n if (hasAdditionalProperties(property)) return !0;\n } else if (property.anyOf) {\n for (let i = 0; i < property.anyOf.length; i++)\n if (hasAdditionalProperties(property.anyOf[i])) return !0;\n }\n return property.additionalProperties;\n }\n return !1;\n }\n return schema.type === \"array\" && schema.items && !Array.isArray(schema.items) ? hasAdditionalProperties(schema.items) : !1;\n}, resolveSchema = (schema, models, modules) => {\n if (schema)\n return typeof schema != \"string\" ? schema : modules && schema in modules.$defs ? modules.Import(schema) : models?.[schema];\n}, hasType = (type, schema) => {\n if (!schema) return !1;\n if (Kind in schema && schema[Kind] === type) return !0;\n if (Kind in schema && schema[Kind] === \"Import\" && schema.$defs && schema.$ref) {\n const ref = schema.$ref.replace(\"#/$defs/\", \"\");\n if (schema.$defs[ref])\n return hasType(type, schema.$defs[ref]);\n }\n if (schema.anyOf) return schema.anyOf.some((s) => hasType(type, s));\n if (schema.oneOf) return schema.oneOf.some((s) => hasType(type, s));\n if (schema.allOf) return schema.allOf.some((s) => hasType(type, s));\n if (schema.type === \"array\" && schema.items)\n return type === \"Files\" && Kind in schema.items && schema.items[Kind] === \"File\" ? !0 : hasType(type, schema.items);\n if (schema.type === \"object\") {\n const properties = schema.properties;\n if (!properties) return !1;\n for (const key of Object.keys(properties))\n if (hasType(type, properties[key])) return !0;\n }\n return !1;\n}, hasElysiaMeta = (meta, _schema) => {\n if (!_schema) return !1;\n const schema = _schema?.schema ?? _schema;\n if (schema.elysiaMeta === meta) return !0;\n if (schema[Kind] === \"Import\" && _schema.References)\n return _schema.References().some((schema2) => hasElysiaMeta(meta, schema2));\n if (schema.anyOf)\n return schema.anyOf.some(\n (schema2) => hasElysiaMeta(meta, schema2)\n );\n if (schema.someOf)\n return schema.someOf.some(\n (schema2) => hasElysiaMeta(meta, schema2)\n );\n if (schema.allOf)\n return schema.allOf.some(\n (schema2) => hasElysiaMeta(meta, schema2)\n );\n if (schema.not)\n return schema.not.some((schema2) => hasElysiaMeta(meta, schema2));\n if (schema.type === \"object\") {\n const properties = schema.properties;\n if (!properties) return !1;\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n if (property.type === \"object\") {\n if (hasElysiaMeta(meta, property)) return !0;\n } else if (property.anyOf) {\n for (let i = 0; i < property.anyOf.length; i++)\n if (hasElysiaMeta(meta, property.anyOf[i])) return !0;\n }\n return schema.elysiaMeta === meta;\n }\n return !1;\n }\n return schema.type === \"array\" && schema.items && !Array.isArray(schema.items) ? hasElysiaMeta(meta, schema.items) : !1;\n}, hasProperty = (expectedProperty, _schema) => {\n if (!_schema) return !1;\n const schema = _schema.schema ?? _schema;\n if (schema[Kind] === \"Import\" && _schema.References)\n return _schema.References().some((schema2) => hasProperty(expectedProperty, schema2));\n if (schema.anyOf)\n return schema.anyOf.some(\n (s) => hasProperty(expectedProperty, s)\n );\n if (schema.allOf)\n return schema.allOf.some(\n (s) => hasProperty(expectedProperty, s)\n );\n if (schema.oneOf)\n return schema.oneOf.some(\n (s) => hasProperty(expectedProperty, s)\n );\n if (schema.type === \"object\") {\n const properties = schema.properties;\n if (!properties) return !1;\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n if (expectedProperty in property) return !0;\n if (property.type === \"object\") {\n if (hasProperty(expectedProperty, property)) return !0;\n } else if (property.anyOf) {\n for (let i = 0; i < property.anyOf.length; i++)\n if (hasProperty(expectedProperty, property.anyOf[i]))\n return !0;\n }\n }\n return !1;\n }\n return expectedProperty in schema;\n}, hasRef = (schema) => {\n if (!schema) return !1;\n if (schema.oneOf) {\n for (let i = 0; i < schema.oneOf.length; i++)\n if (hasRef(schema.oneOf[i])) return !0;\n }\n if (schema.anyOf) {\n for (let i = 0; i < schema.anyOf.length; i++)\n if (hasRef(schema.anyOf[i])) return !0;\n }\n if (schema.oneOf) {\n for (let i = 0; i < schema.oneOf.length; i++)\n if (hasRef(schema.oneOf[i])) return !0;\n }\n if (schema.allOf) {\n for (let i = 0; i < schema.allOf.length; i++)\n if (hasRef(schema.allOf[i])) return !0;\n }\n if (schema.not && hasRef(schema.not)) return !0;\n if (schema.type === \"object\" && schema.properties) {\n const properties = schema.properties;\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n if (hasRef(property) || property.type === \"array\" && property.items && hasRef(property.items))\n return !0;\n }\n }\n return schema.type === \"array\" && schema.items && hasRef(schema.items) ? !0 : schema[Kind] === \"Ref\" && \"$ref\" in schema;\n}, hasTransform = (schema) => {\n if (!schema) return !1;\n if (schema.$ref && schema.$defs && schema.$ref in schema.$defs && hasTransform(schema.$defs[schema.$ref]))\n return !0;\n if (schema.oneOf) {\n for (let i = 0; i < schema.oneOf.length; i++)\n if (hasTransform(schema.oneOf[i])) return !0;\n }\n if (schema.anyOf) {\n for (let i = 0; i < schema.anyOf.length; i++)\n if (hasTransform(schema.anyOf[i])) return !0;\n }\n if (schema.allOf) {\n for (let i = 0; i < schema.allOf.length; i++)\n if (hasTransform(schema.allOf[i])) return !0;\n }\n if (schema.not && hasTransform(schema.not)) return !0;\n if (schema.type === \"object\" && schema.properties) {\n const properties = schema.properties;\n for (const key of Object.keys(properties)) {\n const property = properties[key];\n if (hasTransform(property) || property.type === \"array\" && property.items && hasTransform(property.items))\n return !0;\n }\n }\n return schema.type === \"array\" && schema.items && hasTransform(schema.items) ? !0 : TransformKind in schema;\n}, createCleaner = (schema) => (value) => {\n if (typeof value == \"object\")\n try {\n return Value.Clean(schema, value);\n } catch {\n }\n return value;\n}, getSchemaValidator = (s, {\n models = {},\n dynamic = !1,\n modules,\n normalize = !1,\n additionalProperties = !1,\n forceAdditionalProperties = !1,\n coerce = !1,\n additionalCoerce = [],\n validators,\n sanitize\n} = {}) => {\n if (validators = validators?.filter((x) => x), !s) {\n if (!validators?.length) return;\n s = validators[0], validators = validators.slice(1);\n }\n let doesHaveRef;\n const replaceSchema = (schema2) => coerce ? replaceSchemaTypeFromManyOptions(schema2, [\n {\n from: t.Number(),\n to: (options) => t.Numeric(options),\n untilObjectFound: !0\n },\n {\n from: t.Boolean(),\n to: (options) => t.BooleanString(options),\n untilObjectFound: !0\n },\n ...Array.isArray(additionalCoerce) ? additionalCoerce : [additionalCoerce]\n ]) : replaceSchemaTypeFromManyOptions(schema2, additionalCoerce), mapSchema = (s2) => {\n if (s2 && typeof s2 != \"string\" && \"~standard\" in s2)\n return s2;\n if (!s2) return;\n let schema2;\n if (typeof s2 != \"string\") schema2 = s2;\n else if (schema2 = // @ts-expect-error private property\n modules && s2 in modules.$defs ? modules.Import(s2) : models[s2], !schema2) return;\n const hasAdditionalCoerce = Array.isArray(additionalCoerce) ? additionalCoerce.length > 0 : !!additionalCoerce;\n if (Kind in schema2)\n if (schema2[Kind] === \"Import\")\n hasRef(schema2.$defs[schema2.$ref]) || (schema2 = schema2.$defs[schema2.$ref] ?? models[schema2.$ref], (coerce || hasAdditionalCoerce) && (schema2 = replaceSchema(schema2), \"$id\" in schema2 && !schema2.$defs && (schema2.$id = `${schema2.$id}_coerced_${randomId()}`)));\n else if (hasRef(schema2)) {\n const id = randomId();\n schema2 = t.Module({\n // @ts-expect-error private property\n ...modules?.$defs,\n [id]: schema2\n }).Import(id);\n } else (coerce || hasAdditionalCoerce) && (schema2 = replaceSchema(schema2));\n return schema2;\n };\n let schema = mapSchema(s), _validators = validators;\n if (\"~standard\" in schema || validators?.length && validators.some(\n (x) => x && typeof x != \"string\" && \"~standard\" in x\n )) {\n let Check2 = function(value, validated = !1) {\n let v = validated ? value : mainCheck.validate(value);\n if (v instanceof Promise)\n return v.then((v2) => Check2(v2, !0));\n if (v.issues) return v;\n const values = [];\n return v && typeof v == \"object\" && values.push(v.value), runCheckers2(value, 0, values, v);\n }, runCheckers2 = function(value, startIndex, values, lastV) {\n for (let i = startIndex; i < checkers.length; i++) {\n let v = checkers[i].validate(value);\n if (v instanceof Promise)\n return v.then((resolved) => {\n if (resolved.issues) return resolved;\n const nextValues = [...values];\n return resolved && typeof resolved == \"object\" && nextValues.push(resolved.value), runCheckers2(value, i + 1, nextValues, resolved);\n });\n if (v.issues) return v;\n v && typeof v == \"object\" && values.push(v.value), lastV = v;\n }\n return mergeValues2(values, lastV);\n }, mergeValues2 = function(values, lastV) {\n if (!values.length) return { value: lastV };\n if (values.length === 1) return { value: values[0] };\n if (values.length === 2)\n return { value: mergeDeep(values[0], values[1]) };\n let newValue = mergeDeep(values[0], values[1]);\n for (let i = 2; i < values.length; i++)\n newValue = mergeDeep(newValue, values[i]);\n return { value: newValue };\n };\n var Check = Check2, runCheckers = runCheckers2, mergeValues = mergeValues2;\n const typeboxSubValidator = (schema2) => {\n let mirror;\n if (normalize === !0 || normalize === \"exactMirror\")\n try {\n mirror = createMirror(schema2, {\n TypeCompiler,\n sanitize: sanitize?.(),\n modules\n });\n } catch {\n console.warn(\n \"Failed to create exactMirror. Please report the following code to https://github.com/elysiajs/elysia/issues\"\n ), console.warn(schema2), mirror = createCleaner(schema2);\n }\n const vali = getSchemaValidator(schema2, {\n models,\n modules,\n dynamic,\n normalize,\n additionalProperties: !0,\n forceAdditionalProperties: !0,\n coerce,\n additionalCoerce\n });\n return vali.Decode = mirror, {\n // @ts-ignore\n validate: (v) => vali.Check(v) ? {\n value: mirror ? mirror(v) : v\n } : {\n issues: [...vali.Errors(v)]\n }\n };\n }, mainCheck = schema[\"~standard\"] ? schema[\"~standard\"] : typeboxSubValidator(schema);\n let checkers = [];\n if (validators?.length) {\n for (const validator2 of validators)\n if (validator2 && typeof validator2 != \"string\") {\n if (validator2?.[\"~standard\"]) {\n checkers.push(validator2[\"~standard\"]);\n continue;\n }\n if (Kind in validator2) {\n checkers.push(typeboxSubValidator(validator2));\n continue;\n }\n }\n }\n const validator = {\n provider: \"standard\",\n schema,\n references: \"\",\n checkFunc: () => {\n },\n code: \"\",\n // @ts-ignore\n Check: Check2,\n // @ts-ignore\n Errors: (value) => Check2(value)?.then?.((x) => x?.issues),\n Code: () => \"\",\n // @ts-ignore\n Decode: Check2,\n // @ts-ignore\n Encode: (value) => value,\n hasAdditionalProperties: !1,\n hasDefault: !1,\n isOptional: !1,\n hasTransform: !1,\n hasRef: !1\n };\n return validator.parse = (v) => {\n try {\n return validator.Decode(validator.Clean?.(v) ?? v);\n } catch {\n throw [...validator.Errors(v)].map(mapValueError);\n }\n }, validator.safeParse = (v) => {\n try {\n return {\n success: !0,\n data: validator.Decode(validator.Clean?.(v) ?? v),\n error: null\n };\n } catch {\n const errors = [...compiled.Errors(v)].map(mapValueError);\n return {\n success: !1,\n data: null,\n error: errors[0]?.summary,\n errors\n };\n }\n }, validator;\n } else if (validators?.length) {\n let hasAdditional = !1;\n const validators2 = _validators, { schema: mergedObjectSchema, notObjects } = mergeObjectSchemas([\n schema,\n ...validators2.map(mapSchema)\n ]);\n notObjects && (schema = t.Intersect([\n ...mergedObjectSchema ? [mergedObjectSchema] : [],\n ...notObjects.map((x) => {\n const schema2 = mapSchema(x);\n return schema2.type === \"object\" && \"additionalProperties\" in schema2 && (!hasAdditional && schema2.additionalProperties === !1 && (hasAdditional = !0), delete schema2.additionalProperties), schema2;\n })\n ]), schema.type === \"object\" && hasAdditional && (schema.additionalProperties = !1));\n } else\n schema.type === \"object\" && (!(\"additionalProperties\" in schema) || forceAdditionalProperties) ? schema.additionalProperties = additionalProperties : schema = replaceSchemaTypeFromManyOptions(schema, {\n onlyFirst: \"object\",\n from: t.Object({}),\n to(schema2) {\n return !schema2.properties || \"additionalProperties\" in schema2 ? schema2 : t.Object(schema2.properties, {\n ...schema2,\n additionalProperties: !1\n });\n }\n });\n if (dynamic)\n if (Kind in schema) {\n const validator = {\n provider: \"typebox\",\n schema,\n // @ts-ignore\n references: \"\",\n checkFunc: () => {\n },\n code: \"\",\n Check: (value) => Value.Check(schema, value),\n Errors: (value) => Value.Errors(schema, value),\n Code: () => \"\",\n Clean: createCleaner(schema),\n Decode: (value) => Value.Decode(schema, value),\n Encode: (value) => Value.Encode(schema, value),\n get hasAdditionalProperties() {\n return \"~hasAdditionalProperties\" in this ? this[\"~hasAdditionalProperties\"] : this[\"~hasAdditionalProperties\"] = hasAdditionalProperties(schema);\n },\n get hasDefault() {\n return \"~hasDefault\" in this ? this[\"~hasDefault\"] : this[\"~hasDefault\"] = hasProperty(\n \"default\",\n schema\n );\n },\n get isOptional() {\n return \"~isOptional\" in this ? this[\"~isOptional\"] : this[\"~isOptional\"] = isOptional(schema);\n },\n get hasTransform() {\n return \"~hasTransform\" in this ? this[\"~hasTransform\"] : this[\"~hasTransform\"] = hasTransform(schema);\n },\n \"~hasRef\": doesHaveRef,\n get hasRef() {\n return \"~hasRef\" in this ? this[\"~hasRef\"] : this[\"~hasRef\"] = hasTransform(schema);\n }\n };\n if (schema.config && (validator.config = schema.config, validator?.schema?.config && delete validator.schema.config), normalize && schema.additionalProperties === !1)\n if (normalize === !0 || normalize === \"exactMirror\")\n try {\n validator.Clean = createMirror(schema, {\n TypeCompiler,\n sanitize: sanitize?.(),\n modules\n });\n } catch {\n console.warn(\n \"Failed to create exactMirror. Please report the following code to https://github.com/elysiajs/elysia/issues\"\n ), console.warn(schema), validator.Clean = createCleaner(schema);\n }\n else validator.Clean = createCleaner(schema);\n return validator.parse = (v) => {\n try {\n return validator.Decode(validator.Clean?.(v) ?? v);\n } catch {\n throw [...validator.Errors(v)].map(mapValueError);\n }\n }, validator.safeParse = (v) => {\n try {\n return {\n success: !0,\n data: validator.Decode(validator.Clean?.(v) ?? v),\n error: null\n };\n } catch {\n const errors = [...compiled.Errors(v)].map(mapValueError);\n return {\n success: !1,\n data: null,\n error: errors[0]?.summary,\n errors\n };\n }\n }, validator;\n } else {\n const validator = {\n provider: \"standard\",\n schema,\n references: \"\",\n checkFunc: () => {\n },\n code: \"\",\n // @ts-ignore\n Check: (v) => schema[\"~standard\"].validate(v),\n // @ts-ignore\n Errors(value) {\n const response = schema[\"~standard\"].validate(value);\n if (response instanceof Promise)\n throw Error(\n \"Async validation is not supported in non-dynamic schema\"\n );\n return response.issues;\n },\n Code: () => \"\",\n // @ts-ignore\n Decode(value) {\n const response = schema[\"~standard\"].validate(value);\n if (response instanceof Promise)\n throw Error(\n \"Async validation is not supported in non-dynamic schema\"\n );\n return response;\n },\n // @ts-ignore\n Encode: (value) => value,\n hasAdditionalProperties: !1,\n hasDefault: !1,\n isOptional: !1,\n hasTransform: !1,\n hasRef: !1\n };\n return validator.parse = (v) => {\n try {\n return validator.Decode(validator.Clean?.(v) ?? v);\n } catch {\n throw [...validator.Errors(v)].map(mapValueError);\n }\n }, validator.safeParse = (v) => {\n try {\n return {\n success: !0,\n data: validator.Decode(validator.Clean?.(v) ?? v),\n error: null\n };\n } catch {\n const errors = [...compiled.Errors(v)].map(mapValueError);\n return {\n success: !1,\n data: null,\n error: errors[0]?.summary,\n errors\n };\n }\n }, validator;\n }\n let compiled;\n if (Kind in schema)\n if (compiled = TypeCompiler.Compile(\n schema,\n Object.values(models).filter((x) => Kind in x)\n ), compiled.provider = \"typebox\", schema.config && (compiled.config = schema.config, compiled?.schema?.config && delete compiled.schema.config), normalize === !0 || normalize === \"exactMirror\")\n try {\n compiled.Clean = createMirror(schema, {\n TypeCompiler,\n sanitize: sanitize?.(),\n modules\n });\n } catch {\n console.warn(\n \"Failed to create exactMirror. Please report the following code to https://github.com/elysiajs/elysia/issues\"\n ), console.dir(schema, {\n depth: null\n }), compiled.Clean = createCleaner(schema);\n }\n else normalize === \"typebox\" && (compiled.Clean = createCleaner(schema));\n else\n compiled = {\n provider: \"standard\",\n schema,\n references: \"\",\n checkFunc(value) {\n const response = schema[\"~standard\"].validate(value);\n if (response instanceof Promise)\n throw Error(\n \"Async validation is not supported in non-dynamic schema\"\n );\n return response;\n },\n code: \"\",\n // @ts-ignore\n Check: (v) => schema[\"~standard\"].validate(v),\n // @ts-ignore\n Errors(value) {\n const response = schema[\"~standard\"].validate(value);\n if (response instanceof Promise)\n throw Error(\n \"Async validation is not supported in non-dynamic schema\"\n );\n return response.issues;\n },\n Code: () => \"\",\n // @ts-ignore\n Decode(value) {\n const response = schema[\"~standard\"].validate(value);\n if (response instanceof Promise)\n throw Error(\n \"Async validation is not supported in non-dynamic schema\"\n );\n return response;\n },\n // @ts-ignore\n Encode: (value) => value,\n hasAdditionalProperties: !1,\n hasDefault: !1,\n isOptional: !1,\n hasTransform: !1,\n hasRef: !1\n };\n return compiled.parse = (v) => {\n try {\n return compiled.Decode(compiled.Clean?.(v) ?? v);\n } catch {\n throw [...compiled.Errors(v)].map(mapValueError);\n }\n }, compiled.safeParse = (v) => {\n try {\n return {\n success: !0,\n data: compiled.Decode(compiled.Clean?.(v) ?? v),\n error: null\n };\n } catch {\n const errors = [...compiled.Errors(v)].map(mapValueError);\n return {\n success: !1,\n data: null,\n error: errors[0]?.summary,\n errors\n };\n }\n }, Kind in schema && Object.assign(compiled, {\n get hasAdditionalProperties() {\n return \"~hasAdditionalProperties\" in this ? this[\"~hasAdditionalProperties\"] : this[\"~hasAdditionalProperties\"] = hasAdditionalProperties(compiled);\n },\n get hasDefault() {\n return \"~hasDefault\" in this ? this[\"~hasDefault\"] : this[\"~hasDefault\"] = hasProperty(\"default\", compiled);\n },\n get isOptional() {\n return \"~isOptional\" in this ? this[\"~isOptional\"] : this[\"~isOptional\"] = isOptional(compiled);\n },\n get hasTransform() {\n return \"~hasTransform\" in this ? this[\"~hasTransform\"] : this[\"~hasTransform\"] = hasTransform(schema);\n },\n get hasRef() {\n return \"~hasRef\" in this ? this[\"~hasRef\"] : this[\"~hasRef\"] = hasRef(schema);\n },\n \"~hasRef\": doesHaveRef\n }), compiled;\n}, isUnion = (schema) => schema[Kind] === \"Union\" || !schema.schema && !!schema.anyOf, getSchemaProperties = (schema) => {\n if (!schema) return;\n if (schema.properties) return schema.properties;\n const members = schema.allOf ?? schema.anyOf ?? schema.oneOf;\n if (members) {\n const result = {};\n for (const member of members) {\n const props = getSchemaProperties(member);\n props && Object.assign(result, props);\n }\n return Object.keys(result).length > 0 ? result : void 0;\n }\n}, mergeObjectSchemas = (schemas) => {\n if (schemas.length === 0)\n return {\n schema: void 0,\n notObjects: []\n };\n if (schemas.length === 1)\n return schemas[0].type === \"object\" ? {\n schema: schemas[0],\n notObjects: []\n } : {\n schema: void 0,\n notObjects: schemas\n };\n let newSchema;\n const notObjects = [];\n let additionalPropertiesIsTrue = !1, additionalPropertiesIsFalse = !1;\n for (const schema of schemas) {\n if (schema.type !== \"object\") {\n notObjects.push(schema);\n continue;\n }\n if (\"additionalProperties\" in schema && (schema.additionalProperties === !0 ? additionalPropertiesIsTrue = !0 : schema.additionalProperties === !1 && (additionalPropertiesIsFalse = !0)), !newSchema) {\n newSchema = schema;\n continue;\n }\n newSchema = {\n ...newSchema,\n ...schema,\n properties: {\n ...newSchema.properties,\n ...schema.properties\n },\n required: [\n ...newSchema?.required ?? [],\n ...schema.required ?? []\n ]\n };\n }\n return newSchema && (newSchema.required && (newSchema.required = [...new Set(newSchema.required)]), additionalPropertiesIsFalse ? newSchema.additionalProperties = !1 : additionalPropertiesIsTrue && (newSchema.additionalProperties = !0)), {\n schema: newSchema,\n notObjects\n };\n}, getResponseSchemaValidator = (s, {\n models = {},\n modules,\n dynamic = !1,\n normalize = !1,\n additionalProperties = !1,\n validators = [],\n sanitize\n}) => {\n if (validators = validators.filter((x) => x), !s) {\n if (!validators?.length) return;\n s = validators[0], validators = validators.slice(1);\n }\n let maybeSchemaOrRecord;\n if (typeof s != \"string\") maybeSchemaOrRecord = s;\n else if (maybeSchemaOrRecord = // @ts-expect-error private property\n modules && s in modules.$defs ? modules.Import(s) : models[s], !maybeSchemaOrRecord) return;\n if (!maybeSchemaOrRecord) return;\n if (Kind in maybeSchemaOrRecord || \"~standard\" in maybeSchemaOrRecord)\n return {\n 200: getSchemaValidator(\n maybeSchemaOrRecord,\n {\n modules,\n models,\n additionalProperties,\n dynamic,\n normalize,\n coerce: !1,\n additionalCoerce: [],\n validators: validators.map((x) => x[200]),\n sanitize\n }\n )\n };\n const record = {};\n return Object.keys(maybeSchemaOrRecord).forEach((status) => {\n if (isNaN(+status)) return;\n const maybeNameOrSchema = maybeSchemaOrRecord[+status];\n if (typeof maybeNameOrSchema == \"string\") {\n if (maybeNameOrSchema in models) {\n const schema = models[maybeNameOrSchema];\n if (!schema) return;\n record[+status] = Kind in schema || \"~standard\" in schema ? getSchemaValidator(schema, {\n modules,\n models,\n additionalProperties,\n dynamic,\n normalize,\n coerce: !1,\n additionalCoerce: [],\n validators: validators.map((x) => x[+status]),\n sanitize\n }) : schema;\n }\n return;\n }\n record[+status] = Kind in maybeNameOrSchema || \"~standard\" in maybeNameOrSchema ? getSchemaValidator(maybeNameOrSchema, {\n modules,\n models,\n additionalProperties,\n dynamic,\n normalize,\n coerce: !1,\n additionalCoerce: [],\n validators: validators.map((x) => x[+status]),\n sanitize\n }) : maybeNameOrSchema;\n }), record;\n}, getCookieValidator = ({\n validator,\n modules,\n defaultConfig = {},\n config,\n dynamic,\n normalize = !1,\n models,\n validators,\n sanitize\n}) => {\n let cookieValidator = (\n // @ts-ignore\n validator?.provider ? validator : (\n // @ts-ignore\n getSchemaValidator(validator, {\n modules,\n dynamic,\n models,\n normalize,\n additionalProperties: !0,\n coerce: !0,\n additionalCoerce: stringToStructureCoercions(),\n validators,\n sanitize\n })\n )\n );\n return cookieValidator ? cookieValidator.config = mergeCookie(cookieValidator.config, config) : (cookieValidator = getSchemaValidator(t.Cookie(t.Any()), {\n modules,\n dynamic,\n models,\n additionalProperties: !0,\n validators,\n sanitize\n }), cookieValidator.config = defaultConfig), cookieValidator;\n}, unwrapImportSchema = (schema) => schema && schema[Kind] === \"Import\" && schema.$defs[schema.$ref][Kind] === \"Object\" ? schema.$defs[schema.$ref] : schema;\nexport {\n getCookieValidator,\n getResponseSchemaValidator,\n getSchemaProperties,\n getSchemaValidator,\n hasAdditionalProperties,\n hasElysiaMeta,\n hasProperty,\n hasRef,\n hasTransform,\n hasType,\n isOptional,\n isUnion,\n mergeObjectSchemas,\n resolveSchema,\n unwrapImportSchema\n};\n","import { mapEarlyResponse } from \"./handler.mjs\";\nimport { sucrose } from \"../../sucrose.mjs\";\nimport { createHoc, createOnRequestHandler, isAsync } from \"../../compose.mjs\";\nimport { randomId, ELYSIA_REQUEST_ID, redirect, isNotEmpty } from \"../../utils.mjs\";\nimport { status } from \"../../error.mjs\";\nimport { ELYSIA_TRACE } from \"../../trace.mjs\";\nconst allocateIf = (value, condition) => condition ? value : \"\", createContext = (app, route, inference, isInline = !1) => {\n let fnLiteral = \"\";\n const defaultHeaders = app.setHeaders, hasTrace = !!app.event.trace?.length;\n hasTrace && (fnLiteral += `const id=randomId()\n`);\n const isDynamic = /[:*]/.test(route.path), getQi = `const u=request.url,s=u.indexOf('/',${app.config.handler?.standardHostname ?? !0 ? 11 : 7}),qi=u.indexOf('?',s+1)\n`, needsQuery = inference.query || !!route.hooks.query || !!route.hooks.standaloneValidator?.find(\n (x) => x.query\n ) || app.event.request?.length;\n needsQuery && (fnLiteral += getQi);\n const getPath = inference.path ? isDynamic ? \"get path(){\" + (needsQuery ? \"\" : getQi) + `if(qi===-1)return u.substring(s)\nreturn u.substring(s,qi)\n},` : `path:'${route.path}',` : \"\";\n fnLiteral += allocateIf(\"const c=\", !isInline) + \"{request,store,\" + allocateIf(\"qi,\", needsQuery) + allocateIf(\"params:request.params,\", isDynamic) + getPath + allocateIf(\n \"url:request.url,\",\n hasTrace || inference.url || needsQuery\n ) + \"redirect,status,set:{headers:\" + (isNotEmpty(defaultHeaders) ? \"Object.assign({},app.setHeaders)\" : \"Object.create(null)\") + \",status:200}\", inference.server && (fnLiteral += \",get server(){return app.getServer()}\"), hasTrace && (fnLiteral += \",[ELYSIA_REQUEST_ID]:id\");\n {\n let decoratorsLiteral = \"\";\n for (const key of Object.keys(app.singleton.decorator))\n decoratorsLiteral += `,'${key}':decorator['${key}']`;\n fnLiteral += decoratorsLiteral;\n }\n return fnLiteral += `}\n`, fnLiteral;\n}, createBunRouteHandler = (app, route) => {\n const hasTrace = !!app.event.trace?.length, hasHoc = !!app.extender.higherOrderFunctions.length;\n let inference = sucrose(\n route.hooks,\n // @ts-expect-error\n app.inference\n );\n inference = sucrose(\n {\n handler: route.handler\n },\n inference\n );\n let fnLiteral = \"const handler=data.handler,app=data.app,store=data.store,decorator=data.decorator,redirect=data.redirect,route=data.route,mapEarlyResponse=data.mapEarlyResponse,\" + allocateIf(\"randomId=data.randomId,\", hasTrace) + allocateIf(\"ELYSIA_REQUEST_ID=data.ELYSIA_REQUEST_ID,\", hasTrace) + allocateIf(\"ELYSIA_TRACE=data.ELYSIA_TRACE,\", hasTrace) + allocateIf(\"trace=data.trace,\", hasTrace) + allocateIf(\"hoc=data.hoc,\", hasHoc) + `status=data.status\n`;\n app.event.request?.length && (fnLiteral += `const onRequest=app.event.request.map(x=>x.fn)\n`), fnLiteral += `${app.event.request?.find(isAsync) ? \"async\" : \"\"} function map(request){`;\n const needsQuery = inference.query || !!route.hooks.query || !!route.hooks.standaloneValidator?.find(\n (x) => x.query\n );\n return hasTrace || needsQuery || app.event.request?.length ? (fnLiteral += createContext(app, route, inference), fnLiteral += createOnRequestHandler(app), fnLiteral += \"return handler(c)}\") : fnLiteral += `return handler(${createContext(app, route, inference, !0)})}`, fnLiteral += createHoc(app), Function(\n \"data\",\n fnLiteral\n )({\n app,\n handler: route.compile?.() ?? route.composed,\n redirect,\n status,\n // @ts-expect-error private property\n hoc: app.extender.higherOrderFunctions.map((x) => x.fn),\n store: app.store,\n decorator: app.decorator,\n route: route.path,\n randomId: hasTrace ? randomId : void 0,\n ELYSIA_TRACE: hasTrace ? ELYSIA_TRACE : void 0,\n ELYSIA_REQUEST_ID: hasTrace ? ELYSIA_REQUEST_ID : void 0,\n trace: hasTrace ? app.event.trace?.map((x) => x?.fn ?? x) : void 0,\n mapEarlyResponse\n });\n};\nexport {\n createBunRouteHandler\n};\n","import { isHTMLBundle } from \"./index.mjs\";\nimport { mapResponse } from \"./handler.mjs\";\nconst createNativeStaticHandler = (handle, hooks, set) => {\n if (typeof handle == \"function\" || handle instanceof Blob) return;\n if (isHTMLBundle(handle)) return () => handle;\n const response = mapResponse(\n handle instanceof Response ? handle.clone() : handle instanceof Promise ? handle.then((x) => x instanceof Response ? x.clone() : x) : handle,\n set ?? {\n headers: {}\n }\n );\n if (!hooks.parse?.length && !hooks.transform?.length && !hooks.beforeHandle?.length && !hooks.afterHandle?.length)\n return response instanceof Promise ? response.then((response2) => {\n if (response2)\n return response2.headers.has(\"content-type\") || response2.headers.append(\"content-type\", \"text/plain\"), response2.clone();\n }) : (response.headers.has(\"content-type\") || response.headers.append(\"content-type\", \"text/plain\"), () => response.clone());\n};\nexport {\n createNativeStaticHandler\n};\n","import { isNumericString } from \"../utils.mjs\";\nimport { ValidationError } from \"../error.mjs\";\nconst websocket = {\n open(ws) {\n ws.data.open?.(ws);\n },\n message(ws, message) {\n ws.data.message?.(ws, message);\n },\n drain(ws) {\n ws.data.drain?.(ws);\n },\n close(ws, code, reason) {\n ws.data.close?.(ws, code, reason);\n },\n ping(ws) {\n ws.data.ping?.(ws);\n },\n pong(ws) {\n ws.data.pong?.(ws);\n }\n};\nclass ElysiaWS {\n constructor(raw, data, body = void 0) {\n this.raw = raw;\n this.data = data;\n this.body = body;\n this.validator = raw.data?.validator, this.sendText = raw.sendText.bind(raw), this.sendBinary = raw.sendBinary.bind(raw), this.close = raw.close.bind(raw), this.terminate = raw.terminate.bind(raw), this.publishText = raw.publishText.bind(raw), this.publishBinary = raw.publishBinary.bind(raw), this.subscribe = raw.subscribe.bind(raw), this.unsubscribe = raw.unsubscribe.bind(raw), this.isSubscribed = raw.isSubscribed.bind(raw), this.cork = raw.cork.bind(raw), this.remoteAddress = raw.remoteAddress, this.binaryType = raw.binaryType, this.data = raw.data, this.subscriptions = raw.subscriptions, this.send = this.send.bind(this), this.ping = this.ping.bind(this), this.pong = this.pong.bind(this), this.publish = this.publish.bind(this);\n }\n /**\n * Sends a message to the client.\n *\n * @param data The data to send.\n * @param compress Should the data be compressed? If the client does not support compression, this is ignored.\n * @example\n * ws.send(\"Hello!\");\n * ws.send(\"Compress this.\", true);\n * ws.send(new Uint8Array([1, 2, 3, 4]));\n */\n send(data, compress) {\n return Buffer.isBuffer(data) ? this.raw.send(data, compress) : this.validator?.Check(data) === !1 ? this.raw.send(\n new ValidationError(\"message\", this.validator, data).message\n ) : (typeof data == \"object\" && (data = JSON.stringify(data)), this.raw.send(data, compress));\n }\n /**\n * Sends a ping.\n *\n * @param data The data to send\n */\n ping(data) {\n return Buffer.isBuffer(data) ? this.raw.ping(data) : this.validator?.Check(data) === !1 ? this.raw.send(\n new ValidationError(\"message\", this.validator, data).message\n ) : (typeof data == \"object\" && (data = JSON.stringify(data)), this.raw.ping(data));\n }\n /**\n * Sends a pong.\n *\n * @param data The data to send\n */\n pong(data) {\n return Buffer.isBuffer(data) ? this.raw.pong(data) : this.validator?.Check(data) === !1 ? this.raw.send(\n new ValidationError(\"message\", this.validator, data).message\n ) : (typeof data == \"object\" && (data = JSON.stringify(data)), this.raw.pong(data));\n }\n /**\n * Sends a message to subscribers of the topic.\n *\n * @param topic The topic name.\n * @param data The data to send.\n * @param compress Should the data be compressed? If the client does not support compression, this is ignored.\n * @example\n * ws.publish(\"chat\", \"Hello!\");\n * ws.publish(\"chat\", \"Compress this.\", true);\n * ws.publish(\"chat\", new Uint8Array([1, 2, 3, 4]));\n */\n publish(topic, data, compress) {\n return Buffer.isBuffer(data) ? this.raw.publish(\n topic,\n data,\n compress\n ) : this.validator?.Check(data) === !1 ? this.raw.send(\n new ValidationError(\"message\", this.validator, data).message\n ) : (typeof data == \"object\" && (data = JSON.stringify(data)), this.raw.publish(topic, data, compress));\n }\n get readyState() {\n return this.raw.readyState;\n }\n get id() {\n return this.data.id;\n }\n}\nconst createWSMessageParser = (parse) => {\n const parsers = typeof parse == \"function\" ? [parse] : parse;\n return async function(ws, message) {\n if (typeof message == \"string\") {\n const start = message?.charCodeAt(0);\n if (start === 34 || start === 47 || start === 91 || start === 123)\n try {\n message = JSON.parse(message);\n } catch {\n }\n else isNumericString(message) ? message = +message : message === \"true\" ? message = !0 : message === \"false\" ? message = !1 : message === \"null\" && (message = null);\n }\n if (parsers)\n for (let i = 0; i < parsers.length; i++) {\n let temp = parsers[i](ws, message);\n if (temp instanceof Promise && (temp = await temp), temp !== void 0) return temp;\n }\n return message;\n };\n}, createHandleWSResponse = (responseValidator) => {\n const handleWSResponse = (ws, data) => {\n if (data instanceof Promise)\n return data.then((data2) => handleWSResponse(ws, data2));\n if (Buffer.isBuffer(data)) return ws.send(data.toString());\n if (data === void 0) return;\n const validateResponse = responseValidator ? (\n // @ts-ignore\n responseValidator.provider === \"standard\" ? (data2) => (\n // @ts-ignore\n responseValidator.schema[\"~standard\"].validate(data2).issues\n ) : (data2) => responseValidator.Check(data2) === !1\n ) : void 0, send = (datum) => {\n if (validateResponse && validateResponse(datum) === !1)\n return ws.send(\n new ValidationError(\"message\", responseValidator, datum).message\n );\n if (typeof datum == \"object\") return ws.send(JSON.stringify(datum));\n ws.send(datum);\n };\n if (typeof data?.next != \"function\")\n return void send(data);\n const init = data.next();\n if (init instanceof Promise)\n return (async () => {\n const first = await init;\n if (validateResponse && validateResponse(first))\n return ws.send(\n new ValidationError(\n \"message\",\n responseValidator,\n first\n ).message\n );\n if (send(first.value), !first.done)\n for await (const datum of data) send(datum);\n })();\n if (send(init.value), !init.done) for (const datum of data) send(datum);\n };\n return handleWSResponse;\n};\nexport {\n ElysiaWS,\n createHandleWSResponse,\n createWSMessageParser,\n websocket\n};\n","import { WebStandardAdapter } from \"../web-standard/index.mjs\";\nimport { parseSetCookies } from \"../utils.mjs\";\nimport { createBunRouteHandler } from \"./compose.mjs\";\nimport { createNativeStaticHandler } from \"./handler-native.mjs\";\nimport { serializeCookie } from \"../../cookies.mjs\";\nimport { isProduction, status, ValidationError } from \"../../error.mjs\";\nimport { getSchemaValidator } from \"../../schema.mjs\";\nimport {\n hasHeaderShorthand,\n isNotEmpty,\n isNumericString,\n randomId,\n supportPerMethodInlineHandler\n} from \"../../utils.mjs\";\nimport {\n mapResponse,\n mapEarlyResponse,\n mapCompactResponse,\n createStaticHandler\n} from \"./handler.mjs\";\nimport {\n createHandleWSResponse,\n createWSMessageParser,\n ElysiaWS,\n websocket\n} from \"../../ws/index.mjs\";\nconst optionalParam = /:.+?\\?(?=\\/|$)/, getPossibleParams = (path) => {\n const match = optionalParam.exec(path);\n if (!match) return [path];\n const routes = [], head = path.slice(0, match.index), param = match[0].slice(0, -1), tail = path.slice(match.index + match[0].length);\n routes.push(head.slice(0, -1)), routes.push(head + param);\n for (const fragment of getPossibleParams(tail))\n fragment && (fragment.startsWith(\"/:\") || routes.push(head.slice(0, -1) + fragment), routes.push(head + param + fragment));\n return routes;\n}, isHTMLBundle = (handle) => typeof handle == \"object\" && handle !== null && (handle.toString() === \"[object HTMLBundle]\" || typeof handle.index == \"string\"), supportedMethods = {\n GET: !0,\n HEAD: !0,\n OPTIONS: !0,\n DELETE: !0,\n PATCH: !0,\n POST: !0,\n PUT: !0\n}, mapRoutes = (app) => {\n if (!app.config.aot || app.config.systemRouter === !1) return;\n const routes = {}, add = (route, handler) => {\n const path = encodeURI(route.path);\n routes[path] ? routes[path][route.method] || (routes[path][route.method] = handler) : routes[path] = {\n [route.method]: handler\n };\n }, tree = app.routeTree;\n for (const route of app.router.history) {\n if (typeof route.handler != \"function\") continue;\n const method = route.method;\n if (method === \"GET\" && `WS_${route.path}` in tree || method === \"WS\" || route.path.charCodeAt(route.path.length - 1) === 42 || !(method in supportedMethods))\n continue;\n if (method === \"ALL\") {\n `WS_${route.path}` in tree || (routes[route.path] = route.hooks?.config?.mount ? route.hooks.trace || app.event.trace || // @ts-expect-error private property\n app.extender.higherOrderFunctions ? createBunRouteHandler(app, route) : route.hooks.mount || route.handler : route.handler);\n continue;\n }\n let compiled;\n const handler = app.config.precompile ? createBunRouteHandler(app, route) : (request) => compiled ? compiled(request) : (compiled = createBunRouteHandler(app, route))(\n request\n );\n for (const path of getPossibleParams(route.path))\n add(\n {\n method,\n path\n },\n handler\n );\n }\n return routes;\n}, mergeRoutes = (r1, r2) => {\n if (!r2) return r1;\n for (const key of Object.keys(r2))\n if (r1[key] !== r2[key]) {\n if (!r1[key]) {\n r1[key] = r2[key];\n continue;\n }\n if (r1[key] && r2[key]) {\n if (typeof r1[key] == \"function\" || r1[key] instanceof Response) {\n r1[key] = r2[key];\n continue;\n }\n r1[key] = {\n ...r1[key],\n ...r2[key]\n };\n }\n }\n return r1;\n}, removeTrailingPath = (routes) => {\n for (const key of Object.keys(routes))\n key.charCodeAt(key.length - 1) === 47 && (routes[key.slice(0, -1)] = routes[key], delete routes[key]);\n return routes;\n}, BunAdapter = {\n ...WebStandardAdapter,\n name: \"bun\",\n handler: {\n mapResponse,\n mapEarlyResponse,\n mapCompactResponse,\n createStaticHandler,\n createNativeStaticHandler\n },\n composeHandler: {\n ...WebStandardAdapter.composeHandler,\n headers: hasHeaderShorthand ? `c.headers=c.request.headers.toJSON()\n` : `c.headers={}\nfor(const [k,v] of c.request.headers.entries())c.headers[k]=v\n`\n },\n listen(app) {\n return (options, callback) => {\n if (typeof Bun > \"u\")\n throw new Error(\n \".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 );\n if (app.compile(), typeof options == \"string\") {\n if (!isNumericString(options))\n throw new Error(\"Port must be a numeric value\");\n options = parseInt(options);\n }\n const createStaticRoute = (iterator, { withAsync = !1 } = {}) => {\n const staticRoutes = {}, ops = [];\n for (let [path, route] of Object.entries(iterator))\n if (path = encodeURI(path), supportPerMethodInlineHandler) {\n if (!route) continue;\n for (const [method, value] of Object.entries(route))\n if (!(!value || !(method in supportedMethods))) {\n if (value instanceof Promise) {\n withAsync && (staticRoutes[path] || (staticRoutes[path] = {}), ops.push(\n value.then((awaited) => {\n awaited instanceof Response && (staticRoutes[path][method] = awaited), isHTMLBundle(awaited) && (staticRoutes[path][method] = awaited);\n })\n ));\n continue;\n }\n !(value instanceof Response) && !isHTMLBundle(value) || (staticRoutes[path] || (staticRoutes[path] = {}), staticRoutes[path][method] = value);\n }\n } else {\n if (!route) continue;\n if (route instanceof Promise) {\n withAsync && (staticRoutes[path] || (staticRoutes[path] = {}), ops.push(\n route.then((awaited) => {\n awaited instanceof Response && (staticRoutes[path] = awaited);\n })\n ));\n continue;\n }\n if (!(route instanceof Response)) continue;\n staticRoutes[path] = route;\n }\n return withAsync ? Promise.all(ops).then(() => staticRoutes) : staticRoutes;\n }, routes = removeTrailingPath(\n mergeRoutes(\n mergeRoutes(\n createStaticRoute(app.router.response),\n mapRoutes(app)\n ),\n // @ts-ignore\n app.config.serve?.routes\n )\n ), serve = typeof options == \"object\" ? {\n development: !isProduction,\n reusePort: !0,\n idleTimeout: 30,\n ...app.config.serve || {},\n ...options || {},\n routes,\n websocket: {\n ...app.config.websocket || {},\n ...websocket || {},\n ...options.websocket || {}\n },\n fetch: app.fetch\n } : {\n development: !isProduction,\n reusePort: !0,\n idleTimeout: 30,\n ...app.config.serve || {},\n routes,\n websocket: {\n ...app.config.websocket || {},\n ...websocket || {}\n },\n port: options,\n fetch: app.fetch\n };\n if (app.server = Bun.serve(serve), app.event.start)\n for (let i = 0; i < app.event.start.length; i++)\n app.event.start[i].fn(app);\n callback && callback(app.server), process.on(\"beforeExit\", async () => {\n if (app.server && (await app.server.stop?.(), app.server = null, app.event.stop))\n for (let i = 0; i < app.event.stop.length; i++)\n app.event.stop[i].fn(app);\n }), app.promisedModules.then(async () => {\n app.config.aot, app.compile();\n const routes2 = removeTrailingPath(\n mergeRoutes(\n mergeRoutes(\n await createStaticRoute(app.router.response, {\n withAsync: !0\n }),\n mapRoutes(app)\n ),\n // @ts-ignore\n app.config.serve?.routes\n )\n );\n app.server?.reload({\n ...serve,\n fetch: app.fetch,\n // @ts-ignore\n routes: routes2\n }), Bun?.gc(!1);\n });\n };\n },\n async stop(app, closeActiveConnections) {\n if (app.server) {\n if (await app.server.stop(closeActiveConnections), app.server = null, app.event.stop?.length)\n for (let i = 0; i < app.event.stop.length; i++)\n app.event.stop[i].fn(app);\n } else\n console.log(\n \"Elysia isn't running. Call `app.listen` to start the server.\",\n new Error().stack\n );\n },\n ws(app, path, options) {\n const { parse, body, response, ...rest } = options, messageValidator = getSchemaValidator(body, {\n // @ts-expect-error private property\n modules: app.definitions.typebox,\n // @ts-expect-error private property\n models: app.definitions.type,\n normalize: app.config.normalize\n }), validateMessage = messageValidator ? messageValidator.provider === \"standard\" ? (data) => messageValidator.schema[\"~standard\"].validate(data).issues : (data) => messageValidator.Check(data) === !1 : void 0, responseValidator = getSchemaValidator(response, {\n // @ts-expect-error private property\n modules: app.definitions.typebox,\n // @ts-expect-error private property\n models: app.definitions.type,\n normalize: app.config.normalize\n });\n app.route(\n \"WS\",\n path,\n async (context) => {\n const server = context.server ?? app.server, { set, path: path2, qi, headers, query, params } = context;\n if (context.validator = responseValidator, options.upgrade)\n if (typeof options.upgrade == \"function\") {\n const temp = options.upgrade(context);\n temp instanceof Promise && await temp;\n } else options.upgrade && Object.assign(\n set.headers,\n options.upgrade\n );\n if (set.cookie && isNotEmpty(set.cookie)) {\n const cookie = serializeCookie(set.cookie);\n cookie && (set.headers[\"set-cookie\"] = cookie);\n }\n set.headers[\"set-cookie\"] && Array.isArray(set.headers[\"set-cookie\"]) && (set.headers = parseSetCookies(\n new Headers(set.headers),\n set.headers[\"set-cookie\"]\n ));\n const handleResponse = createHandleWSResponse(responseValidator), parseMessage = createWSMessageParser(parse);\n let _id;\n if (typeof options.beforeHandle == \"function\") {\n const result = options.beforeHandle(context);\n result instanceof Promise && await result;\n }\n const errorHandlers = [\n ...options.error ? Array.isArray(options.error) ? options.error : [options.error] : [],\n ...(app.event.error ?? []).map(\n (x) => typeof x == \"function\" ? x : x.fn\n )\n ].filter((x) => x), hasCustomErrorHandlers = errorHandlers.length > 0, handleErrors = hasCustomErrorHandlers ? async (ws, error) => {\n for (const handleError of errorHandlers) {\n let response2 = handleError(\n Object.assign(context, { error })\n );\n if (response2 instanceof Promise && (response2 = await response2), await handleResponse(ws, response2), response2) break;\n }\n } : () => {\n };\n if (!server?.upgrade(context.request, {\n headers: isNotEmpty(set.headers) ? set.headers : void 0,\n data: {\n ...context,\n get id() {\n return _id || (_id = randomId());\n },\n validator: responseValidator,\n ping(ws, data) {\n options.ping?.(ws, data);\n },\n pong(ws, data) {\n options.pong?.(ws, data);\n },\n open: async (ws) => {\n try {\n await handleResponse(\n ws,\n options.open?.(\n new ElysiaWS(ws, context)\n )\n );\n } catch (error) {\n handleErrors(ws, error);\n }\n },\n message: async (ws, _message) => {\n const message = await parseMessage(ws, _message);\n if (validateMessage && validateMessage(message)) {\n const validationError = new ValidationError(\n \"message\",\n messageValidator,\n message\n );\n return hasCustomErrorHandlers ? handleErrors(ws, validationError) : void ws.send(\n validationError.message\n );\n }\n try {\n await handleResponse(\n ws,\n options.message?.(\n new ElysiaWS(\n ws,\n context,\n message\n ),\n message\n )\n );\n } catch (error) {\n handleErrors(ws, error);\n }\n },\n drain: async (ws) => {\n try {\n await handleResponse(\n ws,\n options.drain?.(\n new ElysiaWS(ws, context)\n )\n );\n } catch (error) {\n handleErrors(ws, error);\n }\n },\n close: async (ws, code, reason) => {\n try {\n await handleResponse(\n ws,\n options.close?.(\n new ElysiaWS(ws, context),\n code,\n reason\n )\n );\n } catch (error) {\n handleErrors(ws, error);\n }\n }\n }\n }))\n return status(400, \"Expected a websocket connection\");\n },\n {\n ...rest,\n websocket: options\n }\n );\n }\n};\nexport {\n BunAdapter,\n isHTMLBundle,\n removeTrailingPath\n};\n","import { TransformDecodeError } from \"@sinclair/typebox/value\";\nimport { parseCookie } from \"./cookies.mjs\";\nimport {\n ElysiaCustomStatusResponse,\n NotFoundError,\n status,\n ValidationError\n} from \"./error.mjs\";\nimport { parseQuery } from \"./parse-query.mjs\";\nimport { getSchemaProperties } from \"./schema.mjs\";\nimport { hasSetImmediate, redirect, StatusMap, signCookie } from \"./utils.mjs\";\nconst ARRAY_INDEX_REGEX = /^(.+)\\[(\\d+)\\]$/, DANGEROUS_KEYS = /* @__PURE__ */ new Set([\"__proto__\", \"constructor\", \"prototype\"]), isDangerousKey = (key) => {\n if (DANGEROUS_KEYS.has(key)) return !0;\n const match = key.match(ARRAY_INDEX_REGEX);\n return match ? DANGEROUS_KEYS.has(match[1]) : !1;\n}, parseArrayKey = (key) => {\n const match = key.match(ARRAY_INDEX_REGEX);\n return match ? {\n name: match[1],\n index: parseInt(match[2], 10)\n } : null;\n}, parseObjectString = (entry) => {\n if (!(typeof entry != \"string\" || entry.charCodeAt(0) !== 123))\n try {\n const parsed = JSON.parse(entry);\n if (parsed && typeof parsed == \"object\" && !Array.isArray(parsed))\n return parsed;\n } catch {\n return;\n }\n}, setNestedValue = (obj, path, value) => {\n const keys = path.split(\".\"), lastKey = keys.pop();\n if (isDangerousKey(lastKey) || keys.some(isDangerousKey)) return;\n let current = obj;\n for (const key of keys) {\n const arrayInfo2 = parseArrayKey(key);\n if (arrayInfo2) {\n Array.isArray(current[arrayInfo2.name]) || (current[arrayInfo2.name] = []);\n const existing = current[arrayInfo2.name][arrayInfo2.index], isFile = typeof File < \"u\" && existing instanceof File;\n (!existing || typeof existing != \"object\" || Array.isArray(existing) || isFile) && (current[arrayInfo2.name][arrayInfo2.index] = parseObjectString(existing) ?? {}), current = current[arrayInfo2.name][arrayInfo2.index];\n } else\n (!current[key] || typeof current[key] != \"object\") && (current[key] = {}), current = current[key];\n }\n const arrayInfo = parseArrayKey(lastKey);\n arrayInfo ? (Array.isArray(current[arrayInfo.name]) || (current[arrayInfo.name] = []), current[arrayInfo.name][arrayInfo.index] = value) : current[lastKey] = value;\n}, normalizeFormValue = (value) => {\n if (value.length === 1) {\n const stringValue2 = value[0];\n if (typeof stringValue2 == \"string\" && (stringValue2.charCodeAt(0) === 123 || stringValue2.charCodeAt(0) === 91))\n try {\n const parsed2 = JSON.parse(stringValue2);\n if (parsed2 && typeof parsed2 == \"object\")\n return parsed2;\n } catch {\n }\n return value[0];\n }\n const stringValue = value.find(\n (entry) => typeof entry == \"string\"\n );\n if (!stringValue || typeof File > \"u\") return value;\n const files = value.filter((entry) => entry instanceof File);\n if (!files.length || stringValue.charCodeAt(0) !== 123) return value;\n let parsed;\n try {\n parsed = JSON.parse(stringValue);\n } catch {\n return value;\n }\n return typeof parsed != \"object\" || parsed === null ? value : (!(\"file\" in parsed) && files.length === 1 ? parsed.file = files[0] : !(\"files\" in parsed) && files.length > 1 && (parsed.files = files), parsed);\n}, injectDefaultValues = (typeChecker, obj) => {\n let schema = typeChecker.schema;\n if (!schema) return;\n schema.$defs?.[schema.$ref] && (schema = schema.$defs[schema.$ref]);\n const properties = getSchemaProperties(schema);\n if (properties)\n for (const [key, keySchema] of Object.entries(properties))\n obj[key] ??= keySchema.default;\n}, createDynamicHandler = (app) => {\n const { mapResponse, mapEarlyResponse } = app[\"~adapter\"].handler, defaultHeader = app.setHeaders;\n return async (request) => {\n const url = request.url, s = url.indexOf(\"/\", 11), qi = url.indexOf(\"?\", s + 1), path = qi === -1 ? url.substring(s) : url.substring(s, qi), set = {\n cookie: {},\n status: 200,\n headers: defaultHeader ? { ...defaultHeader } : {}\n }, context = Object.assign(\n {},\n // @ts-expect-error\n app.singleton.decorator,\n {\n set,\n // @ts-expect-error\n store: app.singleton.store,\n request,\n path,\n qi,\n error: status,\n status,\n redirect\n }\n );\n let hooks;\n try {\n if (app.event.request)\n for (let i = 0; i < app.event.request.length; i++) {\n const onRequest = app.event.request[i].fn;\n let response2 = onRequest(context);\n if (response2 instanceof Promise && (response2 = await response2), response2 = mapEarlyResponse(response2, set), response2) return context.response = response2;\n }\n const methodKey = request.method === \"GET\" && request.headers.get(\"upgrade\")?.toLowerCase() === \"websocket\" ? \"WS\" : request.method, handler = app.router.dynamic.find(request.method, path) ?? app.router.dynamic.find(methodKey, path) ?? app.router.dynamic.find(\"ALL\", path);\n if (!handler)\n throw context.query = qi === -1 ? {} : parseQuery(url.substring(qi + 1)), new NotFoundError();\n const { handle, validator, content, route } = handler.store;\n if (hooks = handler.store.hooks, hooks.config?.mount)\n return await hooks.config.mount(request);\n let body;\n if (request.method !== \"GET\" && request.method !== \"HEAD\")\n if (content)\n switch (content) {\n case \"application/json\":\n body = await request.json();\n break;\n case \"text/plain\":\n body = await request.text();\n break;\n case \"application/x-www-form-urlencoded\":\n body = parseQuery(await request.text());\n break;\n case \"application/octet-stream\":\n body = await request.arrayBuffer();\n break;\n case \"multipart/form-data\": {\n body = {};\n const form = await request.formData();\n for (const key of form.keys()) {\n if (body[key]) continue;\n const value = form.getAll(key), finalValue = normalizeFormValue(value);\n key.includes(\".\") || key.includes(\"[\") ? setNestedValue(body, key, finalValue) : body[key] = finalValue;\n }\n break;\n }\n }\n else {\n let contentType;\n if (request.body && (contentType = request.headers.get(\"content-type\")), contentType) {\n const index = contentType.indexOf(\";\");\n if (index !== -1 && (contentType = contentType.slice(0, index)), context.contentType = contentType, hooks.parse)\n for (let i = 0; i < hooks.parse.length; i++) {\n const hook = hooks.parse[i].fn;\n if (typeof hook == \"string\")\n switch (hook) {\n case \"json\":\n case \"application/json\":\n body = await request.json();\n break;\n case \"text\":\n case \"text/plain\":\n body = await request.text();\n break;\n case \"urlencoded\":\n case \"application/x-www-form-urlencoded\":\n body = parseQuery(\n await request.text()\n );\n break;\n case \"arrayBuffer\":\n case \"application/octet-stream\":\n body = await request.arrayBuffer();\n break;\n case \"formdata\":\n case \"multipart/form-data\": {\n body = {};\n const form = await request.formData();\n for (const key of form.keys()) {\n if (body[key]) continue;\n const value = form.getAll(key), finalValue = normalizeFormValue(value);\n key.includes(\".\") || key.includes(\"[\") ? setNestedValue(body, key, finalValue) : body[key] = finalValue;\n }\n break;\n }\n default: {\n const parser = app[\"~parser\"][hook];\n if (parser) {\n let temp = parser(\n context,\n contentType\n );\n if (temp instanceof Promise && (temp = await temp), temp) {\n body = temp;\n break;\n }\n }\n break;\n }\n }\n else {\n let temp = hook(context, contentType);\n if (temp instanceof Promise && (temp = await temp), temp) {\n body = temp;\n break;\n }\n }\n }\n if (delete context.contentType, body === void 0)\n switch (contentType) {\n case \"application/json\":\n body = await request.json();\n break;\n case \"text/plain\":\n body = await request.text();\n break;\n case \"application/x-www-form-urlencoded\":\n body = parseQuery(await request.text());\n break;\n case \"application/octet-stream\":\n body = await request.arrayBuffer();\n break;\n case \"multipart/form-data\": {\n body = {};\n const form = await request.formData();\n for (const key of form.keys()) {\n if (body[key]) continue;\n const value = form.getAll(key), finalValue = normalizeFormValue(value);\n key.includes(\".\") || key.includes(\"[\") ? setNestedValue(body, key, finalValue) : body[key] = finalValue;\n }\n break;\n }\n }\n }\n }\n context.route = route, context.body = body, context.params = handler?.params || void 0, context.query = qi === -1 ? {} : parseQuery(url.substring(qi + 1)), context.headers = {};\n for (const [key, value] of request.headers.entries())\n context.headers[key] = value;\n const cookieMeta = {\n domain: app.config.cookie?.domain ?? // @ts-expect-error\n validator?.cookie?.config.domain,\n expires: app.config.cookie?.expires ?? // @ts-expect-error\n validator?.cookie?.config.expires,\n httpOnly: app.config.cookie?.httpOnly ?? // @ts-expect-error\n validator?.cookie?.config.httpOnly,\n maxAge: app.config.cookie?.maxAge ?? // @ts-expect-error\n validator?.cookie?.config.maxAge,\n // @ts-expect-error\n path: app.config.cookie?.path ?? validator?.cookie?.config.path,\n priority: app.config.cookie?.priority ?? // @ts-expect-error\n validator?.cookie?.config.priority,\n partitioned: app.config.cookie?.partitioned ?? // @ts-expect-error\n validator?.cookie?.config.partitioned,\n sameSite: app.config.cookie?.sameSite ?? // @ts-expect-error\n validator?.cookie?.config.sameSite,\n secure: app.config.cookie?.secure ?? // @ts-expect-error\n validator?.cookie?.config.secure,\n secrets: app.config.cookie?.secrets ?? // @ts-expect-error\n validator?.cookie?.config.secrets,\n // @ts-expect-error\n sign: app.config.cookie?.sign ?? validator?.cookie?.config.sign\n }, cookieHeaderValue = request.headers.get(\"cookie\");\n context.cookie = await parseCookie(\n context.set,\n cookieHeaderValue,\n cookieMeta\n );\n const headerValidator = validator?.createHeaders?.();\n headerValidator && injectDefaultValues(headerValidator, context.headers);\n const paramsValidator = validator?.createParams?.();\n paramsValidator && injectDefaultValues(paramsValidator, context.params);\n const queryValidator = validator?.createQuery?.();\n if (queryValidator && injectDefaultValues(queryValidator, context.query), hooks.transform)\n for (let i = 0; i < hooks.transform.length; i++) {\n const hook = hooks.transform[i];\n let response2 = hook.fn(context);\n if (response2 instanceof Promise && (response2 = await response2), response2 instanceof ElysiaCustomStatusResponse) {\n const result = mapEarlyResponse(response2, context.set);\n if (result)\n return context.response = result;\n }\n hook.subType === \"derive\" && Object.assign(context, response2);\n }\n if (validator) {\n if (headerValidator) {\n const _header = structuredClone(context.headers);\n for (const [key, value] of request.headers)\n _header[key] = value;\n if (validator.headers.Check(_header) === !1)\n throw new ValidationError(\n \"header\",\n validator.headers,\n _header\n );\n } else validator.headers?.Decode && (context.headers = validator.headers.Decode(context.headers));\n if (paramsValidator?.Check(context.params) === !1)\n throw new ValidationError(\n \"params\",\n validator.params,\n context.params\n );\n if (validator.params?.Decode && (context.params = validator.params.Decode(context.params)), validator.query?.schema) {\n let schema = validator.query.schema;\n schema.$defs?.[schema.$ref] && (schema = schema.$defs[schema.$ref]);\n const properties = getSchemaProperties(schema);\n if (properties)\n for (const property of Object.keys(properties)) {\n const value = properties[property];\n (value.type === \"array\" || value.items?.type === \"string\") && typeof context.query[property] == \"string\" && context.query[property] && (context.query[property] = context.query[property].split(\",\"));\n }\n }\n if (queryValidator?.Check(context.query) === !1)\n throw new ValidationError(\n \"query\",\n validator.query,\n context.query\n );\n if (validator.query?.Decode && (context.query = validator.query.Decode(context.query)), validator.createCookie?.()) {\n let cookieValue = {};\n for (const [key, value] of Object.entries(context.cookie))\n cookieValue[key] = value.value;\n if (validator.cookie.Check(cookieValue) === !1)\n throw new ValidationError(\n \"cookie\",\n validator.cookie,\n cookieValue\n );\n validator.cookie?.Decode && (cookieValue = validator.cookie.Decode(\n cookieValue\n ));\n }\n if (validator.createBody?.()?.Check(body) === !1)\n throw new ValidationError(\"body\", validator.body, body);\n if (validator.body?.Decode) {\n let decoded = validator.body.Decode(body);\n decoded instanceof Promise && (decoded = await decoded), context.body = decoded?.value ?? decoded;\n }\n }\n if (hooks.beforeHandle)\n for (let i = 0; i < hooks.beforeHandle.length; i++) {\n const hook = hooks.beforeHandle[i];\n let response2 = hook.fn(context);\n if (response2 instanceof Promise && (response2 = await response2), response2 instanceof ElysiaCustomStatusResponse) {\n const result = mapEarlyResponse(response2, context.set);\n if (result)\n return context.response = result;\n }\n if (hook.subType === \"resolve\") {\n Object.assign(context, response2);\n continue;\n }\n if (response2 !== void 0) {\n if (context.response = response2, hooks.afterHandle)\n for (let i2 = 0; i2 < hooks.afterHandle.length; i2++) {\n let newResponse = hooks.afterHandle[i2].fn(\n context\n );\n newResponse instanceof Promise && (newResponse = await newResponse), newResponse && (response2 = newResponse);\n }\n const result = mapEarlyResponse(response2, context.set);\n if (result) return context.response = result;\n }\n }\n let response = typeof handle == \"function\" ? handle(context) : handle;\n if (response instanceof Promise && (response = await response), hooks.afterHandle?.length) {\n context.response = response;\n for (let i = 0; i < hooks.afterHandle.length; i++) {\n let response2 = hooks.afterHandle[i].fn(\n context\n );\n response2 instanceof Promise && (response2 = await response2);\n const isCustomStatuResponse = response2 instanceof ElysiaCustomStatusResponse, status2 = isCustomStatuResponse ? response2.code : set.status ? typeof set.status == \"string\" ? StatusMap[set.status] : set.status : 200;\n isCustomStatuResponse && (set.status = status2, response2 = response2.response);\n const responseValidator = validator?.createResponse?.()?.[status2];\n if (responseValidator?.Check(response2) === !1)\n if (responseValidator?.Clean)\n try {\n const temp = responseValidator.Clean(response2);\n if (responseValidator?.Check(temp) === !1)\n throw new ValidationError(\n \"response\",\n responseValidator,\n response2\n );\n response2 = temp;\n } catch (error) {\n throw error instanceof ValidationError ? error : new ValidationError(\n \"response\",\n responseValidator,\n response2\n );\n }\n else\n throw new ValidationError(\n \"response\",\n responseValidator,\n response2\n );\n if (responseValidator?.Encode && (context.response = response2 = responseValidator.Encode(response2)), responseValidator?.Clean)\n try {\n context.response = response2 = responseValidator.Clean(response2);\n } catch {\n }\n const result = mapEarlyResponse(response2, context.set);\n if (result !== void 0) return context.response = result;\n }\n } else {\n const isCustomStatuResponse = response instanceof ElysiaCustomStatusResponse, status2 = isCustomStatuResponse ? response.code : set.status ? typeof set.status == \"string\" ? StatusMap[set.status] : set.status : 200;\n isCustomStatuResponse && (set.status = status2, response = response.response);\n const responseValidator = validator?.createResponse?.()?.[status2];\n if (responseValidator?.Check(response) === !1)\n if (responseValidator?.Clean)\n try {\n const temp = responseValidator.Clean(response);\n if (responseValidator?.Check(temp) === !1)\n throw new ValidationError(\n \"response\",\n responseValidator,\n response\n );\n response = temp;\n } catch (error) {\n throw error instanceof ValidationError ? error : new ValidationError(\n \"response\",\n responseValidator,\n response\n );\n }\n else\n throw new ValidationError(\n \"response\",\n responseValidator,\n response\n );\n if (responseValidator?.Encode && (response = responseValidator.Encode(response)), responseValidator?.Clean)\n try {\n response = responseValidator.Clean(response);\n } catch {\n }\n }\n if (context.set.cookie && cookieMeta?.sign) {\n const secret = cookieMeta.secrets ? typeof cookieMeta.secrets == \"string\" ? cookieMeta.secrets : cookieMeta.secrets[0] : void 0;\n if (cookieMeta.sign === !0) {\n if (secret)\n for (const [key, cookie] of Object.entries(\n context.set.cookie\n ))\n context.set.cookie[key].value = await signCookie(\n cookie.value,\n secret\n );\n } else {\n const properties = getSchemaProperties(validator?.cookie?.schema);\n if (secret)\n for (const name of cookieMeta.sign)\n !properties || !(name in properties) || context.set.cookie[name]?.value && (context.set.cookie[name].value = await signCookie(\n context.set.cookie[name].value,\n secret\n ));\n }\n }\n return mapResponse(context.response = response, context.set);\n } catch (error) {\n const reportedError = error instanceof TransformDecodeError && error.error ? error.error : error;\n return app.handleError(context, reportedError);\n } finally {\n const afterResponses = hooks ? hooks.afterResponse : app.event.afterResponse;\n afterResponses && (hasSetImmediate ? setImmediate(async () => {\n for (const afterResponse of afterResponses)\n await afterResponse.fn(context);\n }) : Promise.resolve().then(async () => {\n for (const afterResponse of afterResponses)\n await afterResponse.fn(context);\n }));\n }\n };\n}, createDynamicErrorHandler = (app) => {\n const { mapResponse } = app[\"~adapter\"].handler;\n return async (context, error) => {\n const errorContext = Object.assign(context, { error, code: error.code });\n if (errorContext.set = context.set, // @ts-expect-error\n typeof error?.toResponse == \"function\" && !(error instanceof ValidationError) && !(error instanceof TransformDecodeError))\n try {\n let raw = error.toResponse();\n typeof raw?.then == \"function\" && (raw = await raw), raw instanceof Response && (context.set.status = raw.status), context.response = raw;\n } catch {\n }\n if (!context.response && app.event.error)\n for (let i = 0; i < app.event.error.length; i++) {\n let response = app.event.error[i].fn(errorContext);\n if (response instanceof Promise && (response = await response), response != null)\n return context.response = mapResponse(\n response,\n context.set\n );\n }\n if (context.response) {\n if (app.event.mapResponse)\n for (let i = 0; i < app.event.mapResponse.length; i++) {\n let response = app.event.mapResponse[i].fn(errorContext);\n response instanceof Promise && (response = await response), response != null && (context.response = response);\n }\n return mapResponse(context.response, context.set);\n }\n return context.set.status = error.status ?? 500, mapResponse(\n typeof error.cause == \"string\" ? error.cause : error.message,\n context.set\n );\n };\n};\nexport {\n createDynamicErrorHandler,\n createDynamicHandler\n};\n","import { Elysia } from 'elysia';\r\nimport { ICapsKit, CapsuleManifest } from '../../../../types';\r\n\r\nexport function createElysiaRouter(capskit: ICapsKit, traitHandlers: Record<string, Function> = {}) {\r\n const app = new Elysia();\r\n\r\n // @ts-ignore - Accessing internal manifests for registration\r\n const manifests: CapsuleManifest[] = (capskit as any).getManifests();\r\n\r\n manifests.forEach(manifest => {\r\n if (manifest.routes) {\r\n manifest.routes.forEach(route => {\r\n const handler = async ({ body, params, query, set }: { body: any, params: any, query: any, set: any }) => {\r\n try {\r\n const result = await capskit.call(`${manifest.name}.${route.action}`, {\r\n body,\r\n params,\r\n query\r\n });\r\n return result;\r\n } catch (error: any) {\r\n set.status = 500;\r\n return { error: error.message };\r\n }\r\n };\r\n\r\n const path = route.path;\r\n let config: any = {};\r\n if (route.traits) {\r\n const beforeHandle: any[] = [];\r\n for (const [traitName, traitValue] of Object.entries(route.traits)) {\r\n if (traitHandlers[traitName]) {\r\n beforeHandle.push(async (c: any) => traitHandlers[traitName](traitValue, c));\r\n } else {\r\n console.warn(`[HTTP Elysia] No handler provided for trait \"${traitName}\" on route ${route.method} ${path}`);\r\n }\r\n }\r\n if (beforeHandle.length > 0) {\r\n config.beforeHandle = beforeHandle;\r\n }\r\n }\r\n\r\n switch (route.method) {\r\n case 'GET': app.get(path, handler, config); break;\r\n case 'POST': app.post(path, handler, config); break;\r\n case 'PUT': app.put(path, handler, config); break;\r\n case 'DELETE': app.delete(path, handler, config); break;\r\n case 'PATCH': app.patch(path, handler, config); break;\r\n }\r\n });\r\n }\r\n });\r\n\r\n return app;\r\n}\r\n","import { ActionHandler } from '../../../../types';\nimport { createElysiaRouter } from '../adapters/elysia';\n\nexport const buildRouter: ActionHandler = async (payload, context) => {\n const { adapter = 'elysia', traitHandlers = {} } = payload?.body || payload || {};\n const capskit = context.deps.capskit;\n \n if (adapter === 'elysia') {\n const app = createElysiaRouter(capskit, traitHandlers);\n return { router: app };\n }\n\n throw new Error(`Unsupported HTTP adapter: ${adapter}`);\n};\n","import { CapsuleManifest } from '../../types';\r\nimport { buildRouter } from './src/actions/buildRouter';\r\n\r\nexport const service: CapsuleManifest = {\r\n name: 'http',\r\n requires: ['capskit'],\r\n actions: {\r\n buildRouter: {\r\n handler: buildRouter,\r\n description: 'Returns an Elysia Router containing all platform capabilities mapped to HTTP'\r\n }\r\n }\r\n};\r\n","import { ActionHandler } from '../../../../types';\r\n\r\nexport const sum: ActionHandler = async (payload, context) => {\r\n const { a, b } = payload?.body || payload;\r\n \r\n if (typeof a !== 'number' || typeof b !== 'number') {\r\n throw new Error('Inputs \"a\" and \"b\" must be numbers.');\r\n }\r\n\r\n const result = a + b;\r\n context.emit('calculator.calculated', { a, b, result });\r\n\r\n return { result };\r\n};\r\n","import { CapsuleManifest } from '../../types';\r\nimport { sum } from './src/actions/sum';\r\n\r\nexport const service: CapsuleManifest = {\r\n name: 'capskit-calculator',\r\n actions: {\r\n sum: {\r\n handler: sum,\r\n description: 'Sums two numbers provided in the payload',\r\n pre: [\r\n async (payload) => {\r\n console.log(`[capskit-calculator] 🔹 Pre-hook triggered for payload:`, payload);\r\n }\r\n ],\r\n post: [\r\n async (payload, result) => {\r\n console.log(`[capskit-calculator] 🔸 Post-hook triggered. Calculated result:`, result);\r\n }\r\n ]\r\n }\r\n },\r\n routes: [\r\n {\r\n method: 'POST',\r\n path: '/calculate/sum',\r\n action: 'sum',\r\n traits: {\r\n auth: 'admin'\r\n }\r\n }\r\n ],\r\n events: {\r\n publishes: ['calculator.calculated']\r\n }\r\n};\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,cAAc;AAClB,QAAI,YAAY;AAAA;AAAA,MAEd;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG;AAAA,MAC7C;AAAA,MAAG;AAAA,MAAG;AAAA,MAAG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A,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAEO,IAAM,YAAY;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AA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K;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,KAAK;AAA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","names":["decodeURIComponent","uri","byte","resolve","stat","fromStream","stat","init_lib","StringType","init_lib","parse","env","debug","useColors","debug","init_lib","init_lib","initDebug","StringType","init_lib","StringType","sum","init_lib","init_core","init_lib","fileType","StringType","FileTypeParser","path","init_core","fromStream","resolve","parseCookie","decode","endIdx","eqIdx","date","path","path","value","IsAsyncIterator","IsObject","IsIterator","IsDate","IsUint8Array","HasPropertyKey","IsObject","IsArray","IsUndefined","IsNull","IsBoolean","IsNumber","IsBigInt","IsString","IsFunction","IsSymbol","TypeSystemPolicy","isObject","IsObject","IsArray","IsNumber","IsUndefined","value","IsArray","IsAsyncIterator","IsBigInt","IsBoolean","IsDate","IsFunction","IsInteger","IsIterator","IsNull","IsNumber","IsObject","IsPromise","IsRegExp","IsString","IsSymbol","IsUndefined","IsUint8Array","IsArray","IsBoolean","IsBigInt","IsAsyncIterator","IsDate","IsFunction","IsInteger","IsIterator","IsNull","IsNumber","IsObject","IsPromise","IsAny","IsArgument","IsArray","IsAsyncIterator","IsBigInt","IsBoolean","IsComputed","IsConstructor","IsDate","IsFunction","IsInteger","IsIntersect","IsIterator","IsKind","IsKindOf","IsLiteral","IsLiteralValue","IsMappedKey","IsMappedResult","IsNever","IsNot","IsNull","IsNumber","IsObject","IsOptional","IsPromise","IsReadonly","IsRecord","IsRef","IsRegExp","IsSchema","IsString","IsSymbol","IsTemplateLiteral","IsThis","IsTransform","IsTuple","IsUint8Array","IsUndefined","IsUnion","IsUnknown","IsUnsafe","IsVoid","IsSchema","IsReadonly","IsOptional","IsAny","IsKindOf","IsArgument","IsArray","IsAsyncIterator","IsBigInt","IsBoolean","IsComputed","IsConstructor","IsDate","IsFunction","IsInteger","IsIntersect","IsTransform","IsIterator","IsLiteral","IsLiteralValue","IsMappedKey","IsMappedResult","IsNever","IsNot","IsNull","IsNumber","IsObject","IsPromise","IsRecord","IsRef","IsRegExp","IsString","IsSymbol","IsTemplateLiteral","IsThis","IsTuple","IsUndefined","IsUnion","IsUint8Array","IsUnknown","IsUnsafe","IsVoid","IsKind","Set","type_exports","Clear","Delete","Entries","Get","Has","Set","map","Array","Function","isOptional","range","pattern","Boolean","BigInt","Number","String","Boolean","Number","BigInt","String","Visit","schema","IsNumber","IsInteger","IsBigInt","IsString","IsBoolean","FromUnion","IsNumber","IsInteger","FromUnion","IsArray","IsObject","Object","Promise","FromProperties","FromMappedResult","FromMappedResult","FromRest","FromProperties","IsFunction","Function","IsAsyncIterator","IsIterator","IsObject","Object","IsArray","Array","IsPromise","Promise","map","FromProperties","FromMappedResult","IsObject","RemoveOptionalFromType","RemoveOptionalFromRest","FromIntersect","FromRest","FromUnion","IsPromise","FromRest","FromIntersect","FromUnion","FromTuple","FromArray","FromProperties","IsArray","IsObject","FromComputed","FromRef","Number","FromProperties","FromMappedResult","Object","Date","Symbol","Uint8Array","FromArray","FromProperties","Uint8Array","Date","Object","Function","Symbol","BigInt","ExtendsResult","FromArray","Visit","FromIntersect","FromLiteral","Number","Function","FromPromise","String","FromTemplateLiteral","FromTuple","FromUnion","FromProperties","FromMappedResult","FromMappedKey","Intersect","schema","Union","FromProperties","FromMappedResult","FromProperties","FromMappedResult","Object","IsBoolean","IsInteger","IsNumber","IsRegExp","IsString","RecordKey","String","Number","RecordValue","FromConstructor","FromFunction","FromIntersect","FromUnion","FromTuple","FromArray","FromAsyncIterator","FromIterator","FromPromise","FromObject","FromProperties","Object","FromRecord","RecordKey","RecordValue","FromProperty","isOptional","IsFunction","IsArray","IsAsyncIterator","IsIterator","IsPromise","IsObject","FromTemplateLiteral","FromRest","FromProperties","FromMappedResult","FromIntersect","FromUnion","FromProperty","FromProperties","FromObject","Object","result","IsObject","FromPropertyKey","FromPropertyKeys","FromMappedKey","FromProperties","FromMappedResult","FromIntersect","FromUnion","FromProperties","FromObject","Type","Object","UnionFromPropertyKeys","result","IsObject","FromPropertyKey","FromPropertyKeys","FromMappedKey","FromComputed","FromRef","FromProperties","FromObject","Object","FromRest","IsObject","IsBigInt","IsBoolean","IsInteger","IsNull","IsNumber","IsString","IsSymbol","IsUndefined","FromProperties","FromMappedResult","FromComputed","FromRef","FromProperties","FromObject","Object","FromRest","IsObject","IsBigInt","IsBoolean","IsInteger","IsNull","IsNumber","IsString","IsSymbol","IsUndefined","FromProperties","FromMappedResult","FromType","FromComputed","FromArray","Array","FromAsyncIterator","FromConstructor","FromTypes","FromFunction","Function","FromIntersect","FromIterator","FromObject","Object","FromRecord","RecordValue","FromTuple","FromUnion","IsArray","IsAsyncIterator","IsFunction","IsIterator","IsObject","Not","IsFunction","RegExp","IsFunction","decode","Encode","Decode","type_exports","Array","BigInt","Boolean","Date","Function","Not","Number","Object","Promise","RegExp","String","Symbol","Uint8Array","type_exports","import_fast_decode_uri_component","target","IsString","ByteMarker","ArrayType","Visit","byte","DateType","ObjectType","Uint8ArrayType","IsArray","IsBoolean","IsBigInt","IsDate","IsNull","IsNumber","IsObject","IsString","IsSymbol","IsUint8Array","IsUndefined","FromAny","FromArgument","FromArray","IsArray","Visit","IsNumber","value","FromAsyncIterator","IsAsyncIterator","FromBigInt","IsBigInt","FromBoolean","IsBoolean","FromConstructor","FromDate","IsDate","FromFunction","IsFunction","FromInteger","FromIntersect","schema","FromIterator","IsIterator","FromLiteral","FromNever","FromNot","FromNull","IsNull","FromNumber","FromObject","FromPromise","FromRecord","regex","FromRef","FromRegExp","FromString","IsString","FromSymbol","IsSymbol","FromTemplateLiteral","FromTuple","FromUndefined","IsUndefined","FromUnion","FromUint8Array","IsUint8Array","FromUnknown","FromVoid","type_exports","ValueErrorType","IsDefined","path","FromAny","FromArgument","FromArray","IsArray","Visit","value","IsNumber","FromAsyncIterator","IsAsyncIterator","FromBigInt","IsBigInt","FromBoolean","IsBoolean","FromConstructor","FromDate","IsDate","FromFunction","IsFunction","FromImport","FromInteger","FromIntersect","FromIterator","IsIterator","FromLiteral","FromNever","FromNot","FromNull","IsNull","FromNumber","FromObject","FromPromise","FromRecord","regex","FromRef","FromRegExp","IsString","FromString","FromSymbol","IsSymbol","FromTemplateLiteral","FromThis","FromTuple","FromUndefined","IsUndefined","FromUnion","FromUint8Array","IsUint8Array","FromUnknown","FromVoid","FromKind","type_exports","_AssertError_Iterator","FromObject","Clone","FromArray","FromDate","FromValue","IsArray","IsDate","IsObject","IsFunction","Clone","FromAny","HasPropertyKey","FromArgument","FromArray","Visit","FromAsyncIterator","FromBigInt","FromBoolean","FromConstructor","FromDate","FromFunction","FromImport","FromInteger","FromIntersect","schema","FromIterator","FromLiteral","FromNever","FromNot","FromNull","FromNumber","FromObject","FromPromise","FromRecord","FromRef","FromRegExp","FromString","FromSymbol","FromTemplateLiteral","FromThis","FromTuple","FromUndefined","FromUnion","FromUint8Array","FromUnknown","FromVoid","FromKind","type_exports","Create","IsNull","schema","Clone","Create","FromArray","IsArray","IsNumber","value","Visit","FromConstructor","FromImport","IsObject","FromIntersect","FromNever","FromObject","FromRecord","FromRef","FromThis","FromTuple","FromUnion","IsString","FromArray","IsArray","value","Visit","FromImport","FromIntersect","schema","Clone","IsObject","FromObject","HasPropertyKey","FromRecord","FromRef","FromThis","FromTuple","IsUndefined","FromUnion","IsString","IsString","IsBigInt","IsBoolean","IsNumber","value","IsSymbol","IsDate","Default","FromArray","IsArray","Visit","FromBigInt","FromBoolean","FromDate","FromImport","FromInteger","FromIntersect","schema","FromLiteral","FromNull","FromNumber","FromObject","IsObject","HasPropertyKey","FromRecord","FromRef","FromString","FromSymbol","FromThis","FromTuple","IsUndefined","FromUndefined","FromUnion","Clone","path","Default","FromArray","IsArray","value","Visit","FromIntersect","IsObject","FromImport","FromNot","FromObject","HasPropertyKey","IsUndefined","FromRecord","FromRef","FromThis","FromTuple","schema","FromUnion","path","Default","FromArray","IsArray","value","Visit","FromImport","FromIntersect","IsObject","FromNot","FromObject","HasPropertyKey","IsUndefined","FromRecord","FromRef","FromThis","FromTuple","schema","FromUnion","FromArray","Visit","FromAsyncIterator","FromConstructor","schema","FromFunction","FromIntersect","FromImport","FromIterator","FromNot","FromObject","FromPromise","FromRecord","FromRef","FromThis","FromTuple","IsUndefined","FromUnion","HasPropertyKey","IsFunction","Clone","IsUndefined","IsObject","FromArray","IsArray","Visit","FromDate","IsDate","FromImport","FromIntersect","schema","FromObject","FromRecord","FromRef","FromThis","FromTuple","FromUnion","Default","Delete","Get","Has","Set","path","Escape","Set","Delete","Has","Get","ObjectType","IsObject","DateType","IsDate","ArrayType","IsArray","Object","String","Delete","path","ObjectType","HasPropertyKey","Visit","ArrayType","IsArray","TypedArrayType","ValueType","Clone","IsStandardObject","IsObject","IsArray","ObjectType","path","Clone","Visit","ArrayType","TypedArrayType","ValueType","ParseRegistry","Clone","Default","Delete","Set","Get","value","IsUndefined","IsArray","value_exports","Clone","Create","Default","Character","MemberExpression","Encode","Identifier","LiteralString","Escape","Policy","TypeCompiler","IsAnyOrUnknown","FromAny","FromArgument","FromArray","IsNumber","IsSchema","FromAsyncIterator","FromBigInt","IsBigInt","FromBoolean","FromConstructor","Visit","FromDate","FromFunction","FromImport","FromInteger","FromIntersect","schema","FromIterator","FromLiteral","FromNever","FromNot","FromNull","FromNumber","FromObject","FromPromise","FromRecord","FromRef","FromRegExp","FromString","FromSymbol","FromTemplateLiteral","FromThis","FromTuple","FromUndefined","FromUnion","FromUint8Array","FromUnknown","FromVoid","FromKind","IsString","type_exports","expression","IsArray","path","path","fs","status","path","ParseError","path","value_exports","type_exports","value_exports","fileTypeFromBlob","file","date2","date","decode","path","regex","caches","path","decode","env","env","mapResponse","mapCompactResponse","resolve","handleStream","file","path","stat","isOptional","mapResponse","handleResponse","errorToResponse","handleStream","mapCompactResponse","mapEarlyResponse","createStaticHandler","import_fast_decode_uri_component","import_fast_decode_uri_component","decode","resolve","process","resolve2","process2","Kind","Hint","isOptional","value_exports","sanitize","Check2","Check","mirror","status","isObject","path","mapResponse","value_exports","validateFile","mapResponse2","ParseError","decode","allocateIf","mapEarlyResponse","mapResponse","parse","path","mapResponse","mapEarlyResponse","mapCompactResponse","createStaticHandler","parse","path2","handleResponse","path","mapResponse","mapEarlyResponse","form","_Elysia","fastDecodeURIComponent","env","path","sanitize","path2","compile","resolve","path","service","service","service"]}