@elpapi42/pi-fleet 0.1.0-beta.0 → 0.1.0-beta.10
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/CHANGELOG.md +162 -3
- package/README.md +170 -104
- package/bin/pifleet-runtime.mjs +1 -1
- package/dist/cli-meta.json +5464 -82
- package/dist/cli.mjs +3481 -253
- package/dist/cli.mjs.map +4 -4
- package/dist/installer-meta.json +87 -13
- package/dist/installer.mjs +555 -95
- package/dist/installer.mjs.map +4 -4
- package/dist/runtime-manifest.json +37 -43
- package/dist/runtime-meta.json +2976 -2868
- package/dist/runtime.mjs +6316 -5247
- package/dist/runtime.mjs.map +4 -4
- package/dist/sqlite-worker-meta.json +6 -6
- package/dist/sqlite-worker.mjs +95 -40
- package/dist/sqlite-worker.mjs.map +2 -2
- package/package.json +11 -5
package/dist/runtime.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/entry/runtime.ts", "../src/pi/process.ts", "../src/platform/runtime/process-tree.ts", "../src/pi/adapter.ts", "../src/pi/managed-target.ts", "../src/platform/shared/paths.ts", "../src/runtime/control-server.ts", "../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/registry/format.mjs", "../node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs", "../node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs", "../node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs", "../node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs", "../node_modules/@sinclair/typebox/build/esm/type/create/type.mjs", "../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs", "../node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs", "../node_modules/@sinclair/typebox/build/esm/type/error/error.mjs", "../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs", "../node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs", "../node_modules/@sinclair/typebox/build/esm/type/array/array.mjs", "../node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.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/computed/computed.mjs", "../node_modules/@sinclair/typebox/build/esm/type/never/never.mjs", "../node_modules/@sinclair/typebox/build/esm/type/guard/kind.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/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/patterns/patterns.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/sets/set.mjs", "../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs", "../node_modules/@sinclair/typebox/build/esm/type/ref/ref.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/extends/extends-undefined.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/type/any/any.mjs", "../node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs", "../node_modules/@sinclair/typebox/build/esm/type/guard/type.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/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/type/clone/type.mjs", "../node_modules/@sinclair/typebox/build/esm/type/argument/argument.mjs", "../node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.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/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/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/void/void.mjs", "../node_modules/@sinclair/typebox/build/esm/type/type/type.mjs", "../node_modules/@sinclair/typebox/build/esm/type/type/index.mjs", "../src/protocol/version.ts", "../src/protocol/envelope.ts", "../src/protocol/validation.ts", "../src/protocol/jsonl.ts", "../src/shared/runtime-limits.ts", "../src/shared/result.ts", "../src/runtime/fleet-service.ts", "../src/pi/session-selector.ts", "../src/pi/launch-profile.ts", "../src/runtime/agent-coordinator.ts", "../src/runtime/session-tail-subscription.ts", "../src/store/worker-store.ts"],
|
|
4
|
-
"sourcesContent": ["import { pathToFileURL } from \"node:url\";\n\nimport { RealPiLauncher } from \"../pi/adapter.js\";\nimport { resolveManagedPiTarget } from \"../pi/managed-target.js\";\nimport { resolveFleetPaths } from \"../platform/shared/paths.js\";\nimport { startControlServer } from \"../runtime/control-server.js\";\nimport { FleetService } from \"../runtime/fleet-service.js\";\nimport { runtimeLimitsFromEnv } from \"../shared/runtime-limits.js\";\nimport { WorkerFleetStore } from \"../store/worker-store.js\";\n\nexport async function runRuntime(): Promise<void> {\n const paths = resolveFleetPaths();\n const limits = runtimeLimitsFromEnv();\n let resolveService: (service: FleetService) => void;\n let rejectService: (error: unknown) => void;\n const serviceReady = new Promise<FleetService>((resolveReady, rejectReady) => {\n resolveService = resolveReady;\n rejectService = rejectReady;\n });\n const server = await startControlServer({\n socketPath: paths.socketPath,\n service: serviceReady,\n limits,\n });\n\n let store: WorkerFleetStore;\n let service: FleetService;\n try {\n store = new WorkerFleetStore(paths.databasePath);\n service = new FleetService(store, {\n launcher: new RealPiLauncher({\n ...resolveManagedPiTarget(),\n maxStdoutFrameBytes: limits.maxPiFrameBytes,\n }),\n limits,\n });\n await service.reconcile();\n resolveService!(service);\n } catch (error: unknown) {\n rejectService!(error);\n await server.close();\n throw error;\n }\n\n await new Promise<void>((resolveShutdown) => {\n let closing = false;\n const shutdown = () => {\n if (closing) return;\n closing = true;\n void server\n .close()\n .then(() => service.close())\n .then(() => store.close(true))\n .finally(resolveShutdown);\n };\n process.once(\"SIGTERM\", shutdown);\n process.once(\"SIGINT\", shutdown);\n });\n}\n\nif (process.argv[1] !== undefined && import.meta.url === pathToFileURL(process.argv[1]).href) {\n await runRuntime();\n}\n", "import { randomUUID } from \"node:crypto\";\nimport { once } from \"node:events\";\nimport { spawn, type ChildProcessWithoutNullStreams } from \"node:child_process\";\n\nimport { signalProcessTree, waitForProcessGroupExit } from \"../platform/runtime/process-tree.js\";\n\nconst DEFAULT_MAX_STDOUT_FRAME_BYTES = 8 * 1024 * 1024;\n\nexport class PiCleanupUncertainError extends Error {\n constructor(\n readonly pid: number,\n readonly startupError: unknown,\n readonly cleanupError: unknown,\n ) {\n super(`Pi process group ${String(pid)} could not be cleaned up after startup failed`);\n this.name = \"PiCleanupUncertainError\";\n }\n}\n\nexport interface PiState {\n readonly isStreaming: boolean;\n readonly isCompacting: boolean;\n readonly pendingMessageCount: number;\n readonly sessionFile?: string;\n readonly sessionId: string;\n}\n\nexport interface PiFrame {\n readonly id?: string;\n readonly type?: string;\n readonly command?: string;\n readonly success?: boolean;\n readonly error?: string;\n readonly data?: Record<string, unknown>;\n readonly [key: string]: unknown;\n}\n\nexport interface PiProcessStartOptions {\n readonly executable: string;\n readonly argvPrefix?: readonly string[];\n readonly piArgv: readonly string[];\n readonly cwd: string;\n readonly env?: NodeJS.ProcessEnv;\n readonly maxStdoutFrameBytes?: number;\n readonly onSpawn?: (pid: number) => Promise<void>;\n}\n\ninterface ResponseWaiter {\n readonly resolve: (frame: PiFrame) => void;\n readonly reject: (error: Error) => void;\n readonly timer: NodeJS.Timeout;\n}\n\nexport class PiProcess {\n readonly #child: ChildProcessWithoutNullStreams;\n readonly #responses = new Map<string, ResponseWaiter>();\n readonly #listeners = new Set<(frame: PiFrame) => void>();\n readonly #exitListeners = new Set<(error: Error | null) => void>();\n #stdoutBuffer = \"\";\n #stderr = \"\";\n #stopping = false;\n readonly #maxStdoutFrameBytes: number;\n\n private constructor(options: PiProcessStartOptions) {\n this.#maxStdoutFrameBytes = options.maxStdoutFrameBytes ?? DEFAULT_MAX_STDOUT_FRAME_BYTES;\n this.#child = spawn(\n options.executable,\n [...(options.argvPrefix ?? []), \"--mode\", \"rpc\", ...options.piArgv],\n {\n cwd: options.cwd,\n env: { ...process.env, ...options.env },\n detached: process.platform !== \"win32\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n },\n );\n this.#child.stdout.setEncoding(\"utf8\");\n this.#child.stderr.setEncoding(\"utf8\");\n this.#child.stdout.on(\"data\", (chunk: string) => this.#consumeStdout(chunk));\n this.#child.stderr.on(\"data\", (chunk: string) => {\n this.#stderr = `${this.#stderr}${chunk}`.slice(-65_536);\n });\n this.#child.once(\"exit\", (code, signal) => this.#handleExit(code, signal));\n this.#child.once(\"error\", (error) => this.#handleExit(null, null, error));\n }\n\n static async start(options: PiProcessStartOptions): Promise<PiProcess> {\n const process = new PiProcess(options);\n try {\n await options.onSpawn?.(process.pid);\n await process.getState();\n return process;\n } catch (error: unknown) {\n try {\n await process.stop();\n } catch (cleanupError: unknown) {\n throw new PiCleanupUncertainError(process.pid, error, cleanupError);\n }\n throw error;\n }\n }\n\n get pid(): number {\n if (this.#child.pid === undefined) throw new Error(\"Pi process has no PID\");\n return this.#child.pid;\n }\n\n get stderr(): string {\n return this.#stderr;\n }\n\n onFrame(listener: (frame: PiFrame) => void): () => void {\n this.#listeners.add(listener);\n return () => this.#listeners.delete(listener);\n }\n\n onExit(listener: (error: Error | null) => void): () => void {\n this.#exitListeners.add(listener);\n return () => this.#exitListeners.delete(listener);\n }\n\n async getState(): Promise<PiState> {\n const frame = await this.request({ type: \"get_state\" });\n return frame.data as unknown as PiState;\n }\n\n async prompt(message: string): Promise<void> {\n await this.request({ type: \"prompt\", message, streamingBehavior: \"steer\" });\n }\n\n async getLastAssistantText(): Promise<string | null> {\n const frame = await this.request({ type: \"get_last_assistant_text\" });\n return typeof frame.data?.text === \"string\" ? frame.data.text : null;\n }\n\n async request(command: Record<string, unknown>, timeoutMs = 15_000): Promise<PiFrame> {\n if (this.#child.exitCode !== null) throw new Error(\"Pi process is not running\");\n const id = randomUUID();\n const response = new Promise<PiFrame>((resolveResponse, rejectResponse) => {\n const timer = setTimeout(() => {\n this.#responses.delete(id);\n rejectResponse(new Error(`Pi RPC request timed out. stderr: ${this.#stderr}`));\n }, timeoutMs);\n this.#responses.set(id, { resolve: resolveResponse, reject: rejectResponse, timer });\n });\n await this.#write({ ...command, id });\n const frame = await response;\n if (frame.success !== true)\n throw new Error(frame.error ?? `Pi rejected ${String(command.type)}`);\n return frame;\n }\n\n async stop(): Promise<void> {\n if (this.#stopping) {\n if (!(await waitForProcessGroupExit(this.pid))) {\n throw new Error(`Pi process group ${String(this.pid)} is still running`);\n }\n return;\n }\n this.#stopping = true;\n if (this.#child.exitCode === null) this.#child.stdin.end();\n if (await waitForProcessGroupExit(this.pid, 500)) return;\n signalProcessTree(this.pid, \"SIGTERM\");\n if (await waitForProcessGroupExit(this.pid, 1_000)) return;\n signalProcessTree(this.pid, \"SIGKILL\");\n if (!(await waitForProcessGroupExit(this.pid, 1_000))) {\n throw new Error(`Pi process group ${String(this.pid)} did not exit after SIGKILL`);\n }\n }\n\n async #write(frame: PiFrame): Promise<void> {\n if (this.#child.stdin.write(`${JSON.stringify(frame)}\\n`)) return;\n await once(this.#child.stdin, \"drain\");\n }\n\n #consumeStdout(chunk: string): void {\n this.#stdoutBuffer += chunk;\n while (true) {\n const newline = this.#stdoutBuffer.indexOf(\"\\n\");\n if (newline < 0) {\n if (Buffer.byteLength(this.#stdoutBuffer) > this.#maxStdoutFrameBytes) {\n signalProcessTree(this.pid, \"SIGTERM\");\n }\n return;\n }\n if (Buffer.byteLength(this.#stdoutBuffer.slice(0, newline)) > this.#maxStdoutFrameBytes) {\n signalProcessTree(this.pid, \"SIGTERM\");\n return;\n }\n const line = this.#stdoutBuffer.slice(0, newline).replace(/\\r$/, \"\");\n this.#stdoutBuffer = this.#stdoutBuffer.slice(newline + 1);\n if (line.length === 0) continue;\n let frame: PiFrame;\n try {\n frame = JSON.parse(line) as PiFrame;\n } catch {\n this.#child.kill(\"SIGTERM\");\n return;\n }\n if (\n frame.type === \"extension_ui_request\" &&\n typeof frame.id === \"string\" &&\n [\"select\", \"confirm\", \"input\", \"editor\"].includes(String(frame.method))\n ) {\n void this.#write({ type: \"extension_ui_response\", id: frame.id, cancelled: true }).catch(\n () => undefined,\n );\n }\n if (frame.type === \"response\" && frame.id !== undefined) {\n const waiter = this.#responses.get(frame.id);\n if (waiter !== undefined) {\n clearTimeout(waiter.timer);\n this.#responses.delete(frame.id);\n waiter.resolve(frame);\n }\n }\n for (const listener of this.#listeners) listener(frame);\n }\n }\n\n #handleExit(code: number | null, signal: NodeJS.Signals | null, cause?: Error): void {\n const error =\n this.#stopping && (code === 0 || signal === \"SIGTERM\")\n ? null\n : (cause ??\n new Error(`Pi exited unexpectedly (code=${String(code)}, signal=${String(signal)})`));\n for (const waiter of this.#responses.values()) {\n clearTimeout(waiter.timer);\n waiter.reject(error ?? new Error(\"Pi stopped before responding\"));\n }\n this.#responses.clear();\n for (const listener of this.#exitListeners) listener(error);\n }\n}\n", "export function signalProcessTree(pid: number, signal: NodeJS.Signals): void {\n try {\n if (process.platform === \"win32\") process.kill(pid, signal);\n else process.kill(-pid, signal);\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code !== \"ESRCH\") throw error;\n }\n}\n\nexport function isProcessAlive(pid: number): boolean {\n return canSignal(pid);\n}\n\nexport function isProcessGroupAlive(processGroupId: number): boolean {\n if (process.platform === \"win32\") return isProcessAlive(processGroupId);\n return canSignal(-processGroupId);\n}\n\nexport async function waitForProcessExit(pid: number, timeoutMs = 1_000): Promise<boolean> {\n return waitUntilGone(() => isProcessAlive(pid), timeoutMs);\n}\n\nexport async function waitForProcessGroupExit(\n processGroupId: number,\n timeoutMs = 1_000,\n): Promise<boolean> {\n return waitUntilGone(() => isProcessGroupAlive(processGroupId), timeoutMs);\n}\n\nfunction canSignal(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch (error: unknown) {\n return (error as NodeJS.ErrnoException).code === \"EPERM\";\n }\n}\n\nasync function waitUntilGone(isAlive: () => boolean, timeoutMs: number): Promise<boolean> {\n const deadline = Date.now() + timeoutMs;\n while (Date.now() < deadline) {\n if (!isAlive()) return true;\n await new Promise((resolveDelay) => setTimeout(resolveDelay, 25));\n }\n return !isAlive();\n}\n", "import type { AgentLaunchProfile } from \"./launch-profile.js\";\nimport { PiProcess } from \"./process.js\";\n\nexport interface PiLauncher {\n readonly artifactId: string;\n start(\n profile: AgentLaunchProfile,\n restore: boolean,\n onSpawn?: (pid: number) => Promise<void>,\n ): Promise<PiProcess>;\n}\n\nexport interface RealPiLauncherOptions {\n readonly executable: string;\n readonly artifactId: string;\n readonly argvPrefix?: readonly string[];\n readonly env?: NodeJS.ProcessEnv;\n readonly onStart?: (pid: number) => void;\n readonly maxStdoutFrameBytes?: number;\n}\n\nexport class RealPiLauncher implements PiLauncher {\n readonly artifactId: string;\n\n constructor(private readonly options: RealPiLauncherOptions) {\n this.artifactId = options.artifactId;\n }\n\n async start(\n profile: AgentLaunchProfile,\n restore: boolean,\n onSpawn?: (pid: number) => Promise<void>,\n ): Promise<PiProcess> {\n const piArgv = restore ? profile.restorePiArgv : profile.userPiArgv;\n if (piArgv === null) throw new Error(\"Agent has no observed Pi session to restore\");\n const process = await PiProcess.start({\n executable: this.options.executable,\n ...(this.options.argvPrefix === undefined ? {} : { argvPrefix: this.options.argvPrefix }),\n piArgv,\n cwd: profile.cwd,\n ...(this.options.env === undefined ? {} : { env: this.options.env }),\n ...(this.options.maxStdoutFrameBytes === undefined\n ? {}\n : { maxStdoutFrameBytes: this.options.maxStdoutFrameBytes }),\n ...(onSpawn === undefined ? {} : { onSpawn }),\n });\n this.options.onStart?.(process.pid);\n return process;\n }\n}\n", "import { fileURLToPath } from \"node:url\";\n\nimport type { RealPiLauncherOptions } from \"./adapter.js\";\n\nexport function resolveManagedPiTarget(\n env: NodeJS.ProcessEnv = process.env,\n): RealPiLauncherOptions {\n const external = env.PIFLEET_PI_EXECUTABLE;\n if (external !== undefined) {\n return {\n executable: external,\n artifactId: env.PIFLEET_PI_ARTIFACT_ID ?? \"external-pi\",\n };\n }\n\n return {\n executable: process.execPath,\n argvPrefix: [fileURLToPath(import.meta.resolve(\"@earendil-works/pi-coding-agent/rpc-entry\"))],\n artifactId: \"@earendil-works/pi-coding-agent@0.80.10\",\n };\n}\n", "import { homedir, tmpdir } from \"node:os\";\nimport { join, resolve } from \"node:path\";\n\nexport interface FleetPaths {\n readonly runtimeRoot: string;\n readonly stateRoot: string;\n readonly socketPath: string;\n readonly databasePath: string;\n}\n\nexport function resolveApplicationRoot(env: NodeJS.ProcessEnv = process.env): string {\n return (\n env.PIFLEET_APPLICATION_ROOT ??\n (process.platform === \"darwin\"\n ? join(homedir(), \"Library\", \"Application Support\", \"Pi Fleet\", \"runtime\")\n : join(env.XDG_DATA_HOME ?? join(homedir(), \".local\", \"share\"), \"pi-fleet\"))\n );\n}\n\nexport function resolveFleetPaths(env: NodeJS.ProcessEnv = process.env): FleetPaths {\n const explicitRoot = env.PIFLEET_STATE_ROOT;\n if (explicitRoot !== undefined) {\n const root = resolve(explicitRoot);\n return {\n runtimeRoot: root,\n stateRoot: root,\n socketPath: join(root, \"control.sock\"),\n databasePath: join(root, \"fleet.sqlite\"),\n };\n }\n\n const runtimeRoot = join(\n env.XDG_RUNTIME_DIR ?? tmpdir(),\n `pifleet-${process.getuid?.() ?? \"user\"}`,\n );\n const stateRoot =\n process.platform === \"darwin\"\n ? join(homedir(), \"Library\", \"Application Support\", \"Pi Fleet\")\n : join(env.XDG_STATE_HOME ?? join(homedir(), \".local\", \"state\"), \"pi-fleet\");\n return {\n runtimeRoot,\n stateRoot,\n socketPath: join(runtimeRoot, \"control.sock\"),\n databasePath: join(stateRoot, \"fleet.sqlite\"),\n };\n}\n", "import { once } from \"node:events\";\nimport { chmod, lstat, mkdir, unlink } from \"node:fs/promises\";\nimport { createConnection, createServer, type Server, type Socket } from \"node:net\";\nimport { dirname } from \"node:path\";\n\nimport type {\n CreateInput,\n DestroyInput,\n FleetClientError,\n ReceiveInput,\n SendInput,\n StatusInput,\n} from \"../client/fleet-client.js\";\nimport { parseProtocolRequest } from \"../protocol/validation.js\";\nimport { readJsonLines, writeJsonLine } from \"../protocol/jsonl.js\";\nimport { MAX_PROTOCOL_FRAME_BYTES, PROTOCOL_VERSION } from \"../protocol/version.js\";\nimport { DEFAULT_RUNTIME_LIMITS, type RuntimeLimits } from \"../shared/runtime-limits.js\";\nimport { err, type Result } from \"../shared/result.js\";\nimport type { FleetService } from \"./fleet-service.js\";\n\nexport interface ControlServer {\n readonly socketPath: string;\n close(): Promise<void>;\n}\n\nexport async function startControlServer(options: {\n readonly socketPath: string;\n readonly service: FleetService | Promise<FleetService>;\n readonly limits?: Pick<RuntimeLimits, \"maxProtocolFrameBytes\">;\n}): Promise<ControlServer> {\n await mkdir(dirname(options.socketPath), { recursive: true, mode: 0o700 });\n await prepareSocketPath(options.socketPath);\n\n const service = Promise.resolve(options.service);\n const maxFrameBytes =\n options.limits?.maxProtocolFrameBytes ?? DEFAULT_RUNTIME_LIMITS.maxProtocolFrameBytes;\n const server = createServer((socket) => handleConnection(socket, service, maxFrameBytes));\n server.listen(options.socketPath);\n await new Promise<void>((resolveListen, rejectListen) => {\n server.once(\"listening\", resolveListen);\n server.once(\"error\", rejectListen);\n });\n await chmod(options.socketPath, 0o600);\n\n return {\n socketPath: options.socketPath,\n async close() {\n await closeServer(server);\n await unlink(options.socketPath).catch((error: NodeJS.ErrnoException) => {\n if (error.code !== \"ENOENT\") throw error;\n });\n },\n };\n}\n\nfunction handleConnection(\n socket: Socket,\n service: Promise<FleetService>,\n maxFrameBytes: number,\n): void {\n let handled = false;\n const abort = new AbortController();\n socket.once(\"close\", () => abort.abort());\n const stopReading = readJsonLines(\n socket,\n (value) => {\n if (handled) return;\n handled = true;\n stopReading();\n void service\n .then((readyService) => dispatch(value, readyService, socket, abort.signal, maxFrameBytes))\n .catch((error: unknown) => {\n if (socket.destroyed) return;\n const message = error instanceof Error ? error.message : \"Internal runtime error\";\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: requestIdFrom(value),\n ok: false,\n error: { code: \"invalid_request\", message },\n });\n socket.end();\n });\n },\n (error) => {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: \"unknown\",\n ok: false,\n error: { code: \"invalid_request\", message: error.message },\n });\n socket.end();\n },\n maxFrameBytes,\n );\n}\n\nasync function dispatch(\n value: unknown,\n service: FleetService,\n socket: Socket,\n connectionSignal: AbortSignal,\n maxFrameBytes: number,\n): Promise<void> {\n const request = parseProtocolRequest(value);\n const operationId = request.operation?.operationId;\n let result: Result<unknown, FleetClientError>;\n\n switch (request.method) {\n case \"agent.create\":\n result = await service.create(asCreateInput(request.params), requireOperation(operationId));\n break;\n case \"agent.send\":\n result = await service.send(asSendInput(request.params), requireOperation(operationId));\n break;\n case \"agent.receive\":\n result = await receiveWithTimeout(\n service,\n asNamedInput(request.params),\n numberParam(request.params, \"timeoutMs\"),\n connectionSignal,\n );\n break;\n case \"agent.status\":\n result = await service.status(asNamedInput(request.params));\n break;\n case \"agent.list\":\n result = await service.list();\n break;\n case \"agent.watch\": {\n const watch = await service.openWatch(asNamedInput(request.params), connectionSignal);\n if (!watch.ok) {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"error\",\n error: watch.error,\n });\n socket.end();\n return;\n }\n writeJsonLine(socket, { v: PROTOCOL_VERSION, requestId: request.requestId, stream: \"ready\" });\n try {\n const outgoingFrameLimit = Math.min(maxFrameBytes, MAX_PROTOCOL_FRAME_BYTES);\n const maxRawChunkBytes = Math.max(1, Math.floor((outgoingFrameLimit - 1024) * 0.75));\n for await (const chunk of watch.value) {\n for (let offset = 0; offset < chunk.length; offset += maxRawChunkBytes) {\n const part = chunk.subarray(offset, offset + maxRawChunkBytes);\n const writable = writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"chunk\",\n data: part.toString(\"base64\"),\n });\n if (!writable) await once(socket, \"drain\");\n }\n }\n if (!socket.destroyed) {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"end\",\n });\n socket.end();\n }\n } catch (error: unknown) {\n if (!socket.destroyed) {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"error\",\n error: {\n code: \"session_changed\",\n message: error instanceof Error ? error.message : \"Session watch failed.\",\n },\n });\n socket.end();\n }\n }\n return;\n }\n case \"agent.destroy\":\n result = await service.destroy(asNamedInput(request.params), requireOperation(operationId));\n break;\n }\n\n writeJsonLine(\n socket,\n result.ok\n ? { v: PROTOCOL_VERSION, requestId: request.requestId, ok: true, result: result.value }\n : { v: PROTOCOL_VERSION, requestId: request.requestId, ok: false, error: result.error },\n );\n socket.end();\n}\n\nfunction asCreateInput(params: Record<string, unknown>): CreateInput {\n const name = stringParam(params, \"name\");\n const cwd = stringParam(params, \"cwd\");\n const instructions = params.instructions;\n const piArgv = params.piArgv;\n if (instructions !== undefined && typeof instructions !== \"string\") {\n throw new Error(\"instructions must be a string\");\n }\n if (!Array.isArray(piArgv) || !piArgv.every((token) => typeof token === \"string\")) {\n throw new Error(\"piArgv must be an array of strings\");\n }\n return { name, cwd, piArgv, ...(instructions === undefined ? {} : { instructions }) };\n}\n\nfunction asSendInput(params: Record<string, unknown>): SendInput {\n return { name: stringParam(params, \"name\"), message: stringParam(params, \"message\") };\n}\n\nfunction asNamedInput(params: Record<string, unknown>): ReceiveInput & StatusInput & DestroyInput {\n return { name: stringParam(params, \"name\") };\n}\n\nasync function receiveWithTimeout(\n service: FleetService,\n input: ReceiveInput,\n timeoutMs: number | undefined,\n connectionSignal: AbortSignal,\n): Promise<Result<unknown, FleetClientError>> {\n const abort = new AbortController();\n const onConnectionAbort = () => abort.abort();\n connectionSignal.addEventListener(\"abort\", onConnectionAbort, { once: true });\n const timer = timeoutMs === undefined ? undefined : setTimeout(() => abort.abort(), timeoutMs);\n try {\n return await service.receive(input, abort.signal);\n } catch (error: unknown) {\n if (abort.signal.aborted) {\n return err({ code: \"timeout\", message: \"Agent did not become idle before timeout.\" });\n }\n throw error;\n } finally {\n if (timer !== undefined) clearTimeout(timer);\n connectionSignal.removeEventListener(\"abort\", onConnectionAbort);\n }\n}\n\nfunction numberParam(params: Record<string, unknown>, key: string): number | undefined {\n const value = params[key];\n if (value === undefined) return undefined;\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new Error(`${key} must be a non-negative number`);\n }\n return value;\n}\n\nfunction stringParam(params: Record<string, unknown>, key: string): string {\n const value = params[key];\n if (typeof value !== \"string\") throw new Error(`${key} must be a string`);\n return value;\n}\n\nfunction requireOperation(operationId: string | undefined): string {\n if (operationId === undefined) throw new Error(\"Mutation requires operation identity\");\n return operationId;\n}\n\nfunction requestIdFrom(value: unknown): string {\n if (typeof value !== \"object\" || value === null || !(\"requestId\" in value)) return \"unknown\";\n return typeof value.requestId === \"string\" ? value.requestId : \"unknown\";\n}\n\nasync function prepareSocketPath(socketPath: string): Promise<void> {\n const stats = await lstat(socketPath).catch((error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") return null;\n throw error;\n });\n if (stats === null) return;\n if (!stats.isSocket()) throw new Error(`Refusing to replace non-socket path ${socketPath}`);\n if (await canConnect(socketPath))\n throw new Error(`A Pi Fleet runtime already owns ${socketPath}`);\n await unlink(socketPath);\n}\n\nasync function canConnect(socketPath: string): Promise<boolean> {\n return new Promise((resolveConnect) => {\n const socket = createConnection(socketPath);\n const timer = setTimeout(() => {\n socket.destroy();\n resolveConnect(false);\n }, 200);\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n socket.destroy();\n resolveConnect(true);\n });\n socket.once(\"error\", () => {\n clearTimeout(timer);\n resolveConnect(false);\n });\n });\n}\n\nasync function closeServer(server: Server): Promise<void> {\n if (!server.listening) return;\n await new Promise<void>((resolveClose, rejectClose) => {\n server.close((error) => (error === undefined ? resolveClose() : rejectClose(error)));\n });\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", "/** 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", "// --------------------------------------------------------------------------\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 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 * 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 { 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", "/** 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 { 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", "/** The base Error type thrown for all TypeBox exceptions */\nexport class TypeBoxError extends Error {\n constructor(message) {\n super(message);\n }\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", "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 an Array type */\nexport function Array(items, options) {\n return CreateType({ [Kind]: 'Array', type: 'array', items }, options);\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/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/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", "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 * 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 { 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 { 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", "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", "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// ------------------------------------------------------------------\n// TypeScript 7: CommonJS TS2441\n//\n// TypeScript generates a CommonJS shim that patches local variables\n// via an unqualified reference to Object (e.g. the __esModule shim's\n// Object.defineProperty call). Other compiler tools have been\n// observed patching in the same way, but TypeScript 7 has correctly\n// begun flagging variables named Object in CommonJS, since they\n// conflict with the shim and can cause \"used before definition\"\n// errors. This is CommonJS-specific; no such shim exists for ESM.\n//\n// TypeBox works around this using a `var` declaration, which is\n// known to avoid use-before-definition errors. TypeBox 1.x employs\n// a similar strategy.\n// ------------------------------------------------------------------\n/** `[Json]` Creates an Object type */\n// @ts-ignore - error TS2441: Duplicate identifier 'Object'. Compiler reserves name 'Object' in top level scope of a module.\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", "/** 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 { 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 as _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 { 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 { 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 { 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 { 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 { 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 Unknown type */\nexport function Unknown(options) {\n return CreateType({ [Kind]: 'Unknown' }, options);\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", "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 { 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 as _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 { 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", "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 { 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 { IntersectEvaluated } from '../intersect/index.mjs';\nimport { IndexFromPropertyKeys } from '../indexed/index.mjs';\nimport { KeyOfPropertyKeys } from '../keyof/index.mjs';\nimport { Object as _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 { 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 as _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 { 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 as _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 as _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 as _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 as _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 as _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 as _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 as _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/** `[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", "export const PROTOCOL_VERSION = 1 as const;\nexport const MAX_PROTOCOL_FRAME_BYTES = 1024 * 1024;\n", "import { Type, type Static } from \"@sinclair/typebox\";\n\nimport { PROTOCOL_VERSION } from \"./version.js\";\n\nexport const OperationSchema = Type.Object(\n { operationId: Type.String({ minLength: 1 }), createdAt: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n);\n\nexport const RequestSchema = Type.Object(\n {\n v: Type.Literal(PROTOCOL_VERSION),\n requestId: Type.String({ minLength: 1 }),\n method: Type.Union([\n Type.Literal(\"agent.create\"),\n Type.Literal(\"agent.send\"),\n Type.Literal(\"agent.receive\"),\n Type.Literal(\"agent.status\"),\n Type.Literal(\"agent.list\"),\n Type.Literal(\"agent.watch\"),\n Type.Literal(\"agent.destroy\"),\n ]),\n params: Type.Record(Type.String(), Type.Unknown()),\n operation: Type.Optional(OperationSchema),\n },\n { additionalProperties: false },\n);\n\nexport type ProtocolRequest = Static<typeof RequestSchema>;\n\nexport interface ProtocolSuccess {\n readonly v: 1;\n readonly requestId: string;\n readonly ok: true;\n readonly result: unknown;\n}\n\nexport interface ProtocolFailure {\n readonly v: 1;\n readonly requestId: string;\n readonly ok: false;\n readonly error: {\n readonly code: string;\n readonly message: string;\n readonly details?: Record<string, unknown>;\n };\n}\n\nexport type ProtocolResponse = ProtocolSuccess | ProtocolFailure;\n\nexport type ProtocolStreamFrame =\n | { readonly v: 1; readonly requestId: string; readonly stream: \"ready\" }\n | { readonly v: 1; readonly requestId: string; readonly stream: \"chunk\"; readonly data: string }\n | { readonly v: 1; readonly requestId: string; readonly stream: \"end\" }\n | {\n readonly v: 1;\n readonly requestId: string;\n readonly stream: \"error\";\n readonly error: { readonly code: string; readonly message: string };\n };\n", "import { Value } from \"@sinclair/typebox/value\";\n\nimport { RequestSchema, type ProtocolRequest } from \"./envelope.js\";\n\nexport function parseProtocolRequest(value: unknown): ProtocolRequest {\n if (!Value.Check(RequestSchema, value)) {\n const first = Value.Errors(RequestSchema, value).First();\n throw new Error(\n first === undefined ? \"Invalid protocol request\" : `Invalid protocol request: ${first.path}`,\n );\n }\n return value;\n}\n", "import type { Socket } from \"node:net\";\n\nimport { MAX_PROTOCOL_FRAME_BYTES } from \"./version.js\";\n\nexport function readJsonLines(\n socket: Socket,\n onValue: (value: unknown) => void,\n onError: (error: Error) => void,\n maxFrameBytes = MAX_PROTOCOL_FRAME_BYTES,\n): () => void {\n let buffer = Buffer.alloc(0);\n const onData = (chunk: Buffer) => {\n buffer = Buffer.concat([buffer, chunk]);\n while (true) {\n const newline = buffer.indexOf(0x0a);\n if (newline < 0) {\n if (buffer.length > maxFrameBytes) {\n onError(new Error(\"Protocol frame exceeds maximum size\"));\n }\n return;\n }\n if (newline > maxFrameBytes) {\n onError(new Error(\"Protocol frame exceeds maximum size\"));\n return;\n }\n const line = buffer.subarray(0, newline).toString(\"utf8\").replace(/\\r$/, \"\");\n buffer = buffer.subarray(newline + 1);\n if (line.length === 0) continue;\n try {\n onValue(JSON.parse(line));\n } catch {\n onError(new Error(\"Malformed JSON protocol frame\"));\n return;\n }\n }\n };\n socket.on(\"data\", onData);\n return () => socket.off(\"data\", onData);\n}\n\nexport function writeJsonLine(socket: Socket, value: unknown): boolean {\n return socket.write(`${JSON.stringify(value)}\\n`);\n}\n", "const KIBIBYTE = 1024;\nconst MEBIBYTE = 1024 * KIBIBYTE;\n\nexport interface RuntimeLimits {\n readonly maxResidentProcesses: number;\n readonly maxMessageBytes: number;\n readonly maxProtocolFrameBytes: number;\n readonly maxPiFrameBytes: number;\n readonly maxSessionRecordBytes: number;\n readonly maxWatchers: number;\n}\n\nexport const DEFAULT_RUNTIME_LIMITS: RuntimeLimits = Object.freeze({\n maxResidentProcesses: 32,\n maxMessageBytes: 512 * KIBIBYTE,\n maxProtocolFrameBytes: MEBIBYTE,\n maxPiFrameBytes: 8 * MEBIBYTE,\n maxSessionRecordBytes: 8 * MEBIBYTE,\n maxWatchers: 128,\n});\n\nconst ENV_KEYS: Readonly<Record<keyof RuntimeLimits, string>> = {\n maxResidentProcesses: \"PIFLEET_MAX_RESIDENT_PROCESSES\",\n maxMessageBytes: \"PIFLEET_MAX_MESSAGE_BYTES\",\n maxProtocolFrameBytes: \"PIFLEET_MAX_PROTOCOL_FRAME_BYTES\",\n maxPiFrameBytes: \"PIFLEET_MAX_PI_FRAME_BYTES\",\n maxSessionRecordBytes: \"PIFLEET_MAX_SESSION_RECORD_BYTES\",\n maxWatchers: \"PIFLEET_MAX_WATCHERS\",\n};\n\nexport function runtimeLimitsFromEnv(env: NodeJS.ProcessEnv = process.env): RuntimeLimits {\n return {\n maxResidentProcesses: positiveInteger(env, \"maxResidentProcesses\"),\n maxMessageBytes: positiveInteger(env, \"maxMessageBytes\"),\n maxProtocolFrameBytes: positiveInteger(env, \"maxProtocolFrameBytes\"),\n maxPiFrameBytes: positiveInteger(env, \"maxPiFrameBytes\"),\n maxSessionRecordBytes: positiveInteger(env, \"maxSessionRecordBytes\"),\n maxWatchers: positiveInteger(env, \"maxWatchers\"),\n };\n}\n\nfunction positiveInteger(env: NodeJS.ProcessEnv, key: keyof RuntimeLimits): number {\n const variable = ENV_KEYS[key];\n const raw = env[variable];\n if (raw === undefined || raw.length === 0) return DEFAULT_RUNTIME_LIMITS[key];\n const value = Number(raw);\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new Error(`${variable} must be a positive integer`);\n }\n return value;\n}\n", "export type Result<Value, Error> =\n | { readonly ok: true; readonly value: Value }\n | { readonly ok: false; readonly error: Error };\n\nexport function ok<Value>(value: Value): Result<Value, never> {\n return { ok: true, value };\n}\n\nexport function err<Error>(error: Error): Result<never, Error> {\n return { ok: false, error };\n}\n", "import { randomUUID } from \"node:crypto\";\n\nimport type {\n CreateInput,\n CreateResult,\n DestroyInput,\n DestroyResult,\n FleetClientError,\n ListResult,\n ReceiveInput,\n ReceiveResult,\n SendInput,\n SendResult,\n StatusInput,\n StatusResult,\n} from \"../client/fleet-client.js\";\nimport type { PiLauncher } from \"../pi/adapter.js\";\nimport { createLaunchProfile, observeSession } from \"../pi/launch-profile.js\";\nimport { PiCleanupUncertainError, type PiProcess } from \"../pi/process.js\";\nimport { waitForProcessGroupExit } from \"../platform/runtime/process-tree.js\";\nimport { err, ok, type Result } from \"../shared/result.js\";\nimport { DEFAULT_RUNTIME_LIMITS, type RuntimeLimits } from \"../shared/runtime-limits.js\";\nimport type { FleetStore, StoredAgent } from \"../store/fleet-store.js\";\nimport { AgentCoordinator } from \"./agent-coordinator.js\";\nimport { SessionTailSubscription } from \"./session-tail-subscription.js\";\n\ninterface RecordedOperation {\n readonly method: \"create\" | \"send\" | \"destroy\";\n readonly fingerprint: string;\n readonly result: Result<unknown, FleetClientError>;\n}\n\nexport interface FleetServiceOptions {\n readonly launcher?: PiLauncher;\n readonly now?: () => string;\n readonly limits?: Partial<RuntimeLimits>;\n}\n\nexport class FleetService {\n readonly #operations = new Map<string, RecordedOperation>();\n readonly #inflightOperations = new Map<\n string,\n {\n readonly method: RecordedOperation[\"method\"];\n readonly fingerprint: string;\n readonly promise: Promise<Result<unknown, FleetClientError>>;\n }\n >();\n readonly #coordinators = new Map<string, AgentCoordinator>();\n readonly #watchers = new Map<string, Set<AbortController>>();\n readonly #processSlots = new Set<string>();\n readonly #sendLanes = new Map<string, Promise<void>>();\n readonly #launcher: PiLauncher | undefined;\n readonly #now: () => string;\n readonly #limits: RuntimeLimits;\n\n constructor(\n private readonly store: FleetStore,\n options: FleetServiceOptions | (() => string) = {},\n ) {\n this.#launcher = typeof options === \"function\" ? undefined : options.launcher;\n this.#now =\n typeof options === \"function\" ? options : (options.now ?? (() => new Date().toISOString()));\n this.#limits = {\n ...DEFAULT_RUNTIME_LIMITS,\n ...(typeof options === \"function\" ? {} : options.limits),\n };\n }\n\n create(input: CreateInput, operationId: string): Promise<Result<CreateResult, FleetClientError>> {\n return this.#runOperation(operationId, \"create\", input, () =>\n this.#createImpl(input, operationId),\n );\n }\n\n async #createImpl(\n input: CreateInput,\n operationId: string,\n ): Promise<Result<CreateResult, FleetClientError>> {\n const profile = createLaunchProfile({\n cwd: input.cwd,\n piArgv: input.piArgv,\n piArtifactId: this.#launcher?.artifactId ?? \"fake-pi\",\n });\n const replay = await this.#operation<CreateResult>(operationId, \"create\", input);\n if (replay !== null) return replay;\n if (\n input.instructions !== undefined &&\n Buffer.byteLength(input.instructions, \"utf8\") > this.#limits.maxMessageBytes\n ) {\n const result = err<FleetClientError>({\n code: \"invalid_arguments\",\n message: `Initial instructions exceed the ${String(this.#limits.maxMessageBytes)} byte limit.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n let agent: StoredAgent = {\n summary: {\n id: randomUUID(),\n name: input.name,\n state: this.#launcher === undefined ? \"idle\" : \"restoring\",\n process: { state: this.#launcher === undefined ? \"resident\" : \"starting\" },\n session: { path: null, id: null },\n },\n launch: profile,\n latestAssistantText: null,\n responseObservedAt: null,\n };\n if (!(await this.store.createAgent(agent))) {\n const result = err<FleetClientError>({\n code: \"name_taken\",\n message: `Agent ${input.name} already exists.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n await this.#recordOperationTarget(operationId, agent);\n\n if (this.#launcher !== undefined && this.#reserveProcessSlot(input.name) !== \"acquired\") {\n await this.store.deleteAgent(input.name);\n const result = err<FleetClientError>({\n code: \"capacity_exceeded\",\n message: `Pi Fleet has reached its ${String(this.#limits.maxResidentProcesses)} process limit.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n\n let incarnationId: string | null = null;\n try {\n if (this.#launcher !== undefined) {\n incarnationId = randomUUID();\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: null,\n state: \"starting\",\n });\n const process = await this.#launcher.start(profile, false, async (pid) => {\n await this.store.putIncarnation({\n incarnationId: incarnationId!,\n agentName: input.name,\n pid,\n state: \"starting\",\n });\n });\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: process.pid,\n state: \"live\",\n });\n const state = await process.getState();\n const observedProfile = observeSession(profile, {\n path: state.sessionFile ?? null,\n id: state.sessionId,\n });\n agent = {\n ...agent,\n launch: observedProfile,\n summary: {\n ...agent.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n session: { path: state.sessionFile ?? null, id: state.sessionId },\n },\n };\n await this.store.putAgent(agent);\n const coordinator = this.#attachCoordinator(agent, process, incarnationId);\n if (input.instructions !== undefined) {\n const acceptedAt = this.#now();\n const sendId = `${operationId}:initial`;\n const ordinal = await this.store.nextSendOrdinal(input.name);\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"pending\",\n acceptedAt,\n });\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"dispatching\",\n acceptedAt,\n });\n try {\n await this.#enqueueSend(input.name, () => coordinator.send(input.instructions!));\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"acknowledged\",\n acceptedAt,\n });\n } catch (error: unknown) {\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"uncertain\",\n acceptedAt,\n });\n agent = {\n ...coordinator.storedAgent,\n summary: {\n ...coordinator.storedAgent.summary,\n state: \"failed\",\n error: { code: \"delivery_uncertain\" },\n },\n };\n await this.store.putAgent(agent);\n throw error;\n }\n }\n agent = coordinator.storedAgent;\n }\n\n const result = ok<CreateResult>({\n schemaVersion: 1,\n type: \"agent.created\",\n agent: agent.summary,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n } catch (error: unknown) {\n const coordinator = this.#coordinators.get(input.name);\n const deliveryAmbiguous =\n (await this.store.getSend(`${operationId}:initial`))?.state === \"uncertain\";\n let cleanupUncertain = error instanceof PiCleanupUncertainError;\n if (coordinator !== undefined) {\n try {\n await coordinator.stop(\"runtime_shutdown\");\n } catch {\n cleanupUncertain = true;\n }\n }\n this.#coordinators.delete(input.name);\n if (cleanupUncertain) {\n agent = {\n ...agent,\n summary: {\n ...agent.summary,\n state: \"failed\",\n process: { state: \"cleanup_uncertain\" },\n error: { code: \"incarnation_cleanup_uncertain\" },\n },\n };\n await this.store.putAgent(agent);\n } else if (deliveryAmbiguous) {\n agent = {\n ...agent,\n summary: {\n ...agent.summary,\n state: \"failed\",\n process: { state: \"absent\" },\n error: { code: \"delivery_uncertain\" },\n },\n };\n await this.store.putAgent(agent);\n this.#releaseProcessSlot(input.name);\n } else {\n if (incarnationId !== null) {\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: error instanceof PiCleanupUncertainError ? error.pid : null,\n state: \"gone\",\n });\n }\n this.#releaseProcessSlot(input.name);\n await this.store.deleteAgent(input.name);\n }\n const code = cleanupUncertain\n ? \"incarnation_cleanup_uncertain\"\n : deliveryAmbiguous\n ? \"delivery_uncertain\"\n : \"pi_start_failed\";\n const result = err<FleetClientError>({\n code,\n message: error instanceof Error ? error.message : \"Pi failed to start.\",\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n }\n\n send(input: SendInput, operationId: string): Promise<Result<SendResult, FleetClientError>> {\n return this.#runOperation(operationId, \"send\", input, () => this.#sendImpl(input, operationId));\n }\n\n async #sendImpl(\n input: SendInput,\n operationId: string,\n ): Promise<Result<SendResult, FleetClientError>> {\n const replay = await this.#operation<SendResult>(operationId, \"send\", input);\n if (replay !== null) return replay;\n if (Buffer.byteLength(input.message, \"utf8\") > this.#limits.maxMessageBytes) {\n const result = err<FleetClientError>({\n code: \"invalid_arguments\",\n message: `Message exceeds the ${String(this.#limits.maxMessageBytes)} byte limit.`,\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n const agent = await this.store.getAgent(input.name);\n if (agent === null) return this.#rememberNotFound(operationId, \"send\", input);\n if (agent.summary.process.state === \"cleanup_uncertain\") {\n const result = err<FleetClientError>({\n code: \"incarnation_cleanup_uncertain\",\n message: `Fleet cannot prove the previous process for ${input.name} is gone.`,\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n\n const acceptedAt = this.#now();\n const result = await this.#enqueueSend(input.name, async () => {\n const ordinal = await this.store.nextSendOrdinal(input.name);\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"pending\",\n acceptedAt,\n });\n return this.#dispatchSend(input, operationId, acceptedAt, agent, ordinal);\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n\n async reconcile(): Promise<void> {\n const nonterminalSends = await this.store.listNonterminalSends();\n const activeSendAgents = new Set(nonterminalSends.map((send) => send.agentName));\n for (const incarnation of await this.store.listActiveIncarnations()) {\n if (incarnation.state !== \"cleanup_uncertain\") continue;\n this.#processSlots.add(incarnation.agentName);\n if (incarnation.pid === null || !(await waitForProcessGroupExit(incarnation.pid))) continue;\n await this.store.putIncarnation({ ...incarnation, state: \"gone\" });\n this.#releaseProcessSlot(incarnation.agentName);\n const agent = await this.store.getAgent(incarnation.agentName);\n if (agent?.summary.process.state !== \"cleanup_uncertain\") continue;\n const interrupted =\n activeSendAgents.has(incarnation.agentName) ||\n agent.summary.error?.code === \"runtime_interrupted\";\n await this.store.putAgent({\n ...agent,\n summary: {\n ...agent.summary,\n state: interrupted ? \"failed\" : \"idle\",\n process: { state: \"absent\" },\n error: interrupted ? { code: \"runtime_interrupted\" } : undefined,\n },\n });\n }\n\n for (const send of nonterminalSends) {\n const input = { name: send.agentName, message: send.message };\n if (send.state === \"dispatching\") {\n const result = err<FleetClientError>({\n code: \"delivery_uncertain\",\n message: `Delivery of ${send.sendId} was interrupted and will not be replayed.`,\n });\n await this.store.putSend({ ...send, state: \"uncertain\" });\n await this.#remember(send.sendId, \"send\", input, result);\n continue;\n }\n const agent = await this.store.getAgent(send.agentName);\n if (agent === null || agent.summary.process.state === \"cleanup_uncertain\") {\n const result = err<FleetClientError>({\n code: agent === null ? \"agent_not_found\" : \"incarnation_cleanup_uncertain\",\n message:\n agent === null\n ? `Agent ${send.agentName} was not found.`\n : `Fleet cannot prove the previous process for ${send.agentName} is gone.`,\n });\n await this.store.putSend({ ...send, state: \"failed\" });\n await this.#remember(send.sendId, \"send\", input, result);\n continue;\n }\n const result = await this.#enqueueSend(send.agentName, async () => {\n const ordinal = send.ordinal ?? (await this.store.nextSendOrdinal(send.agentName));\n return this.#dispatchSend(input, send.sendId, send.acceptedAt, agent, ordinal);\n });\n await this.#remember(send.sendId, \"send\", input, result);\n }\n\n for (const operation of await this.store.listPendingOperations()) {\n if (operation.method === \"send\") continue;\n const payload = JSON.parse(operation.fingerprint) as CreateInput | DestroyInput;\n if (operation.method === \"create\") {\n await this.create(payload as CreateInput, operation.operationId);\n } else {\n await this.destroy(payload as DestroyInput, operation.operationId);\n }\n }\n }\n\n async receive(\n input: ReceiveInput,\n signal?: AbortSignal,\n ): Promise<Result<ReceiveResult, FleetClientError>> {\n const coordinator = this.#coordinators.get(input.name);\n const agent =\n coordinator === undefined\n ? await this.store.getAgent(input.name)\n : await coordinator.waitForIdle(signal);\n if (agent === null) return this.#notFound(input.name);\n if (agent.latestAssistantText === null || agent.responseObservedAt === null) {\n return err({\n code: \"no_response\",\n message: `Agent ${input.name} has no assistant response.`,\n });\n }\n return ok({\n schemaVersion: 1,\n type: \"response\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n response: { text: agent.latestAssistantText, observedAt: agent.responseObservedAt },\n });\n }\n\n async status(input: StatusInput): Promise<Result<StatusResult, FleetClientError>> {\n const agent = await this.store.getAgent(input.name);\n return agent === null\n ? this.#notFound(input.name)\n : ok({ schemaVersion: 1, type: \"agent.status\", agent: agent.summary });\n }\n\n async list(): Promise<Result<ListResult, FleetClientError>> {\n const agents = await this.store.listAgents();\n return ok({\n schemaVersion: 1,\n type: \"agent.list\",\n agents: agents.map((agent) => agent.summary),\n });\n }\n\n async openWatch(\n input: { readonly name: string },\n connectionSignal: AbortSignal,\n ): Promise<Result<AsyncIterable<Buffer>, FleetClientError>> {\n const agent = await this.store.getAgent(input.name);\n if (agent === null) return this.#notFound(input.name);\n const sessionPath = agent.summary.session.path;\n if (sessionPath === null) {\n return err({\n code: \"session_unavailable\",\n message: `Agent ${input.name} has no session path.`,\n });\n }\n if (this.#watcherCount() >= this.#limits.maxWatchers) {\n return err({\n code: \"capacity_exceeded\",\n message: `Pi Fleet has reached its ${String(this.#limits.maxWatchers)} watcher limit.`,\n });\n }\n\n const abort = new AbortController();\n const onConnectionAbort = () => abort.abort();\n connectionSignal.addEventListener(\"abort\", onConnectionAbort, { once: true });\n const watchers = this.#watchers.get(input.name) ?? new Set<AbortController>();\n watchers.add(abort);\n this.#watchers.set(input.name, watchers);\n const subscription = new SessionTailSubscription(sessionPath, {\n signal: abort.signal,\n maxRecordBytes: this.#limits.maxSessionRecordBytes,\n });\n const cleanup = () => {\n connectionSignal.removeEventListener(\"abort\", onConnectionAbort);\n watchers.delete(abort);\n if (watchers.size === 0) this.#watchers.delete(input.name);\n };\n return ok(watchWithCleanup(subscription, cleanup));\n }\n\n destroy(\n input: DestroyInput,\n operationId: string,\n ): Promise<Result<DestroyResult, FleetClientError>> {\n return this.#runOperation(operationId, \"destroy\", input, () =>\n this.#destroyImpl(input, operationId),\n );\n }\n\n async #destroyImpl(\n input: DestroyInput,\n operationId: string,\n ): Promise<Result<DestroyResult, FleetClientError>> {\n const replay = await this.#operation<DestroyResult>(operationId, \"destroy\", input);\n if (replay !== null) return replay;\n const stored = await this.store.getAgent(input.name);\n if (stored?.summary.process.state === \"cleanup_uncertain\") {\n const result = err<FleetClientError>({\n code: \"destroy_incomplete\",\n message: `Fleet cannot destroy ${input.name} until its previous process is proven gone.`,\n });\n await this.#remember(operationId, \"destroy\", input, result);\n return result;\n }\n if (stored !== null) await this.#recordOperationTarget(operationId, stored);\n for (const watcher of this.#watchers.get(input.name) ?? []) watcher.abort();\n this.#watchers.delete(input.name);\n const coordinator = this.#coordinators.get(input.name);\n if (coordinator !== undefined) await coordinator.stop(\"destroy\");\n this.#coordinators.delete(input.name);\n const agent = await this.store.deleteAgent(input.name);\n if (agent === null) return this.#rememberNotFound(operationId, \"destroy\", input);\n const result = ok<DestroyResult>({\n schemaVersion: 1,\n type: \"agent.destroyed\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n });\n await this.#remember(operationId, \"destroy\", input, result);\n return result;\n }\n\n async releaseAgentProcess(name: string): Promise<void> {\n const coordinator = this.#coordinators.get(name);\n if (coordinator === undefined) return;\n await coordinator.stop(\"idle_release\");\n this.#coordinators.delete(name);\n }\n\n async close(): Promise<void> {\n for (const watchers of this.#watchers.values()) {\n for (const watcher of watchers) watcher.abort();\n }\n this.#watchers.clear();\n await Promise.all(\n [...this.#coordinators.values()].map((coordinator) => coordinator.stop(\"runtime_shutdown\")),\n );\n this.#coordinators.clear();\n }\n\n async #dispatchSend(\n input: SendInput,\n operationId: string,\n acceptedAt: string,\n initialAgent: StoredAgent,\n ordinal: number,\n ): Promise<Result<SendResult, FleetClientError>> {\n let agent = initialAgent;\n let incarnationId: string | null = null;\n try {\n let coordinator = this.#coordinators.get(input.name);\n if (this.#launcher !== undefined && coordinator === undefined) {\n const reservation = this.#reserveProcessSlot(input.name);\n if (reservation === \"existing\") {\n coordinator = await this.#waitForCoordinator(input.name);\n if (coordinator === undefined) {\n throw new Error(`Restoration of ${input.name} did not produce a live Pi process.`);\n }\n agent = coordinator.storedAgent;\n } else if (reservation === \"full\") {\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"failed\",\n acceptedAt,\n });\n return err({\n code: \"capacity_exceeded\",\n message: `Pi Fleet has reached its ${String(this.#limits.maxResidentProcesses)} process limit.`,\n });\n } else {\n agent = await this.#markRestoring(agent);\n incarnationId = randomUUID();\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: null,\n state: \"starting\",\n });\n const process = await this.#launcher.start(agent.launch, true, async (pid) => {\n await this.store.putIncarnation({\n incarnationId: incarnationId!,\n agentName: input.name,\n pid,\n state: \"starting\",\n });\n });\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: process.pid,\n state: \"live\",\n });\n const state = await process.getState();\n const profile = observeSession(agent.launch, {\n path: state.sessionFile ?? null,\n id: state.sessionId,\n });\n agent = {\n ...agent,\n launch: profile,\n summary: {\n ...agent.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n session: { path: state.sessionFile ?? null, id: state.sessionId },\n error: undefined,\n },\n };\n await this.store.putAgent(agent);\n coordinator = this.#attachCoordinator(agent, process, incarnationId);\n }\n }\n\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"dispatching\",\n acceptedAt,\n });\n if (coordinator === undefined) {\n await this.store.putAgent({\n ...agent,\n latestAssistantText: `Fake response to: ${input.message}`,\n responseObservedAt: acceptedAt,\n });\n } else {\n await coordinator.send(input.message);\n }\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"acknowledged\",\n acceptedAt,\n });\n return ok({\n schemaVersion: 1,\n type: \"message.accepted\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n acceptedAt,\n });\n } catch (error: unknown) {\n if (!this.#coordinators.has(input.name)) this.#releaseProcessSlot(input.name);\n if (incarnationId !== null && !this.#coordinators.has(input.name)) {\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: null,\n state: \"cleanup_uncertain\",\n });\n }\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"uncertain\",\n acceptedAt,\n });\n return err({\n code: \"delivery_uncertain\",\n message: error instanceof Error ? error.message : \"Pi delivery became uncertain.\",\n });\n }\n }\n\n async #markRestoring(agent: StoredAgent): Promise<StoredAgent> {\n const restoring: StoredAgent = {\n ...agent,\n summary: { ...agent.summary, state: \"restoring\", process: { state: \"starting\" } },\n };\n await this.store.putAgent(restoring);\n return restoring;\n }\n\n #attachCoordinator(\n agent: StoredAgent,\n process: PiProcess,\n incarnationId: string,\n ): AgentCoordinator {\n const coordinator = new AgentCoordinator(\n this.store,\n agent,\n process,\n incarnationId,\n this.#now,\n () => {\n if (this.#coordinators.get(agent.summary.name) === coordinator) {\n this.#coordinators.delete(agent.summary.name);\n this.#releaseProcessSlot(agent.summary.name);\n }\n },\n );\n this.#coordinators.set(agent.summary.name, coordinator);\n return coordinator;\n }\n\n #enqueueSend<T>(name: string, operation: () => Promise<T>): Promise<T> {\n const previous = this.#sendLanes.get(name) ?? Promise.resolve();\n const result = previous.then(operation, operation);\n const settled = result.then(\n () => undefined,\n () => undefined,\n );\n this.#sendLanes.set(name, settled);\n void settled.finally(() => {\n if (this.#sendLanes.get(name) === settled) this.#sendLanes.delete(name);\n });\n return result;\n }\n\n async #waitForCoordinator(\n name: string,\n timeoutMs = 15_000,\n ): Promise<AgentCoordinator | undefined> {\n const deadline = Date.now() + timeoutMs;\n while (Date.now() < deadline) {\n const coordinator = this.#coordinators.get(name);\n if (coordinator !== undefined) return coordinator;\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n return this.#coordinators.get(name);\n }\n\n #reserveProcessSlot(name: string): \"acquired\" | \"existing\" | \"full\" {\n if (this.#processSlots.has(name)) return \"existing\";\n if (this.#processSlots.size >= this.#limits.maxResidentProcesses) return \"full\";\n this.#processSlots.add(name);\n return \"acquired\";\n }\n\n #releaseProcessSlot(name: string): void {\n this.#processSlots.delete(name);\n }\n\n #watcherCount(): number {\n let count = 0;\n for (const watchers of this.#watchers.values()) count += watchers.size;\n return count;\n }\n\n #notFound<T>(name: string): Result<T, FleetClientError> {\n return err({ code: \"agent_not_found\", message: `Agent ${name} was not found.` });\n }\n\n async #rememberNotFound<T>(\n operationId: string,\n method: \"send\" | \"destroy\",\n payload: object,\n ): Promise<Result<T, FleetClientError>> {\n const result = this.#notFound<T>(String(\"name\" in payload ? payload.name : \"unknown\"));\n await this.#remember(operationId, method, payload, result);\n return result;\n }\n\n #runOperation<T>(\n operationId: string,\n method: RecordedOperation[\"method\"],\n payload: object,\n operation: () => Promise<Result<T, FleetClientError>>,\n ): Promise<Result<T, FleetClientError>> {\n const fingerprint = JSON.stringify(payload);\n const inflight = this.#inflightOperations.get(operationId);\n if (inflight !== undefined) {\n if (inflight.method !== method || inflight.fingerprint !== fingerprint) {\n return Promise.resolve(\n err({\n code: \"operation_conflict\",\n message: `Operation ${operationId} was already used with a different request.`,\n }),\n );\n }\n return inflight.promise as Promise<Result<T, FleetClientError>>;\n }\n const promise = operation();\n this.#inflightOperations.set(operationId, {\n method,\n fingerprint,\n promise: promise as Promise<Result<unknown, FleetClientError>>,\n });\n void promise.then(\n () => this.#inflightOperations.delete(operationId),\n () => this.#inflightOperations.delete(operationId),\n );\n return promise;\n }\n\n async #operation<T>(\n operationId: string,\n method: RecordedOperation[\"method\"],\n payload: object,\n ): Promise<Result<T, FleetClientError> | null> {\n const cached = this.#operations.get(operationId);\n const stored = cached === undefined ? await this.store.getOperation(operationId) : null;\n const recorded =\n cached ??\n (stored?.state === \"completed\" && stored.result !== null\n ? {\n method: stored.method,\n fingerprint: stored.fingerprint,\n result: stored.result as Result<unknown, FleetClientError>,\n }\n : undefined);\n if (recorded === undefined) {\n const fingerprint = JSON.stringify(payload);\n if (stored !== null) {\n if (stored.method !== method || stored.fingerprint !== fingerprint) {\n return err({\n code: \"operation_conflict\",\n message: `Operation ${operationId} was already used with a different request.`,\n });\n }\n const name = \"name\" in payload ? String(payload.name) : \"\";\n const agent = name.length === 0 ? null : await this.store.getAgent(name);\n if (method === \"create\") {\n if (agent === null) {\n await this.store.deleteOperation(operationId);\n } else if (agent.summary.state === \"idle\" || agent.summary.state === \"working\") {\n const result = ok<CreateResult>({\n schemaVersion: 1,\n type: \"agent.created\",\n agent: agent.summary,\n });\n await this.#remember(operationId, method, payload, result);\n return result as Result<T, FleetClientError>;\n } else if (agent.summary.state === \"failed\") {\n const result = err<FleetClientError>({\n code: agent.summary.error?.code ?? \"pi_start_failed\",\n message: `Creation of ${name} did not complete safely.`,\n });\n await this.#remember(operationId, method, payload, result);\n return result;\n } else {\n return err({\n code: \"operation_in_progress\",\n message: `Operation ${operationId} is still pending.`,\n });\n }\n } else if (method === \"destroy\") {\n if (agent === null && stored.targetAgent !== undefined) {\n const result = ok<DestroyResult>({\n schemaVersion: 1,\n type: \"agent.destroyed\",\n agent: stored.targetAgent,\n });\n await this.#remember(operationId, method, payload, result);\n return result as Result<T, FleetClientError>;\n }\n // Resume the singular destroy operation against the surviving agent.\n return null;\n } else {\n return err({\n code: \"operation_in_progress\",\n message: `Operation ${operationId} is still pending.`,\n });\n }\n }\n await this.store.putOperation({\n operationId,\n method,\n fingerprint,\n state: \"pending\",\n result: null,\n });\n return null;\n }\n if (recorded.method !== method || recorded.fingerprint !== JSON.stringify(payload)) {\n return err({\n code: \"operation_conflict\",\n message: `Operation ${operationId} was already used with a different request.`,\n });\n }\n return recorded.result as Result<T, FleetClientError>;\n }\n\n async #recordOperationTarget(operationId: string, agent: StoredAgent): Promise<void> {\n const operation = await this.store.getOperation(operationId);\n if (operation === null || operation.state !== \"pending\") return;\n await this.store.putOperation({\n ...operation,\n targetAgent: { id: agent.summary.id, name: agent.summary.name },\n });\n }\n\n async #remember<T>(\n operationId: string,\n method: RecordedOperation[\"method\"],\n payload: object,\n result: Result<T, FleetClientError>,\n ): Promise<void> {\n const fingerprint = JSON.stringify(payload);\n this.#operations.set(operationId, { method, fingerprint, result });\n await this.store.putOperation({\n operationId,\n method,\n fingerprint,\n state: \"completed\",\n result,\n });\n }\n}\n\nasync function* watchWithCleanup(\n subscription: AsyncIterable<Buffer>,\n cleanup: () => void,\n): AsyncIterable<Buffer> {\n try {\n yield* subscription;\n } finally {\n cleanup();\n }\n}\n", "export type NativeSessionSelector =\n | { readonly kind: \"none\" }\n | { readonly kind: \"session\"; readonly value: string }\n | { readonly kind: \"session-id\"; readonly value: string }\n | { readonly kind: \"fork\"; readonly value: string }\n | { readonly kind: \"continue\" }\n | { readonly kind: \"resume\" };\n\nexport interface ObservedSession {\n readonly path: string | null;\n readonly id: string;\n}\n\ninterface SelectorMatch {\n readonly selector: NativeSessionSelector;\n readonly start: number;\n readonly length: number;\n}\n\nconst VALUE_SELECTORS = new Map<string, \"session\" | \"session-id\" | \"fork\">([\n [\"--session\", \"session\"],\n [\"--session-id\", \"session-id\"],\n [\"--fork\", \"fork\"],\n]);\n\nconst BOOLEAN_SELECTORS = new Map<string, \"continue\" | \"resume\">([\n [\"--continue\", \"continue\"],\n [\"-c\", \"continue\"],\n [\"--resume\", \"resume\"],\n [\"-r\", \"resume\"],\n]);\n\nfunction findSelectorMatches(argv: readonly string[]): SelectorMatch[] {\n const matches: SelectorMatch[] = [];\n\n for (let index = 0; index < argv.length; index += 1) {\n const token = argv[index];\n if (token === undefined) continue;\n\n const valueKind = VALUE_SELECTORS.get(token);\n if (valueKind !== undefined) {\n const value = argv[index + 1];\n if (value === undefined) {\n throw new Error(`${token} requires a value`);\n }\n matches.push({ selector: { kind: valueKind, value }, start: index, length: 2 });\n index += 1;\n continue;\n }\n\n const booleanKind = BOOLEAN_SELECTORS.get(token);\n if (booleanKind !== undefined) {\n matches.push({ selector: { kind: booleanKind }, start: index, length: 1 });\n }\n }\n\n return matches;\n}\n\nexport function analyzeSessionSelector(argv: readonly string[]): NativeSessionSelector {\n const matches = findSelectorMatches(argv);\n if (matches.length === 0) return { kind: \"none\" };\n if (matches.length > 1) {\n throw new Error(\"Conflicting Pi session selectors are not supported\");\n }\n return matches[0]!.selector;\n}\n\nexport function deriveRestorePiArgv(\n userPiArgv: readonly string[],\n observedSession: ObservedSession,\n): readonly string[] {\n const matches = findSelectorMatches(userPiArgv);\n if (matches.length > 1) {\n throw new Error(\"Conflicting Pi session selectors are not supported\");\n }\n\n const selector = matches[0]?.selector ?? { kind: \"none\" as const };\n if (selector.kind === \"session\" || selector.kind === \"session-id\") {\n return [...userPiArgv];\n }\n\n if (observedSession.path === null) {\n throw new Error(\"Pi did not report the concrete session path required for restoration\");\n }\n\n const selectorMatch = matches[0];\n const retainedArgv = userPiArgv.filter((_token, index) => {\n if (selectorMatch === undefined) return true;\n return index < selectorMatch.start || index >= selectorMatch.start + selectorMatch.length;\n });\n\n return [...retainedArgv, \"--session\", observedSession.path];\n}\n", "import {\n analyzeSessionSelector,\n deriveRestorePiArgv,\n type NativeSessionSelector,\n type ObservedSession,\n} from \"./session-selector.js\";\n\nexport interface AgentLaunchProfile {\n readonly cwd: string;\n readonly userPiArgv: readonly string[];\n readonly selector: NativeSessionSelector;\n readonly observedSession: ObservedSession | null;\n readonly restorePiArgv: readonly string[] | null;\n readonly piArtifactId: string;\n}\n\nexport interface CreateLaunchProfileInput {\n readonly cwd: string;\n readonly piArgv: readonly string[];\n readonly piArtifactId: string;\n}\n\nexport function createLaunchProfile(input: CreateLaunchProfileInput): AgentLaunchProfile {\n validatePersistentRpcArgv(input.piArgv);\n return {\n cwd: input.cwd,\n userPiArgv: [...input.piArgv],\n selector: analyzeSessionSelector(input.piArgv),\n observedSession: null,\n restorePiArgv: null,\n piArtifactId: input.piArtifactId,\n };\n}\n\nconst PI_VALUE_OPTIONS = new Set([\n \"--provider\",\n \"--model\",\n \"--api-key\",\n \"--system-prompt\",\n \"--append-system-prompt\",\n \"--name\",\n \"-n\",\n \"--session\",\n \"--session-id\",\n \"--fork\",\n \"--session-dir\",\n \"--models\",\n \"--tools\",\n \"-t\",\n \"--exclude-tools\",\n \"-xt\",\n \"--thinking\",\n \"--export\",\n \"--extension\",\n \"-e\",\n \"--skill\",\n \"--prompt-template\",\n \"--theme\",\n]);\n\nconst PI_BOOLEAN_OPTIONS = new Set([\n \"--continue\",\n \"-c\",\n \"--help\",\n \"-h\",\n \"--version\",\n \"-v\",\n \"--no-tools\",\n \"-nt\",\n \"--no-builtin-tools\",\n \"-nbt\",\n \"--no-extensions\",\n \"-ne\",\n \"--no-skills\",\n \"-ns\",\n \"--no-prompt-templates\",\n \"-np\",\n \"--no-themes\",\n \"--no-context-files\",\n \"-nc\",\n \"--verbose\",\n \"--approve\",\n \"-a\",\n \"--no-approve\",\n \"-na\",\n \"--offline\",\n]);\n\nexport function validatePersistentRpcArgv(piArgv: readonly string[]): void {\n for (let index = 0; index < piArgv.length; index += 1) {\n const token = piArgv[index]!;\n if ([\"--mode\", \"--print\", \"-p\", \"--no-session\", \"--resume\", \"-r\"].includes(token)) {\n throw new Error(`${token} is incompatible with persistent headless Pi Fleet control`);\n }\n if (token === \"--\") {\n throw new Error(\n \"Pi positional prompt delivery after -- is incompatible with Fleet send ordering\",\n );\n }\n if (token.startsWith(\"@\")) {\n throw new Error(\"Pi @file prompt delivery is incompatible with Fleet-managed send ordering\");\n }\n if (PI_VALUE_OPTIONS.has(token)) {\n if (piArgv[index + 1] === undefined) throw new Error(`${token} requires a value`);\n index += 1;\n continue;\n }\n if (PI_BOOLEAN_OPTIONS.has(token) || token.includes(\"=\")) continue;\n if (token === \"--list-models\") {\n const next = piArgv[index + 1];\n if (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) index += 1;\n continue;\n }\n if (token.startsWith(\"--\")) {\n const next = piArgv[index + 1];\n if (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) index += 1;\n continue;\n }\n if (token.startsWith(\"-\")) continue;\n throw new Error(\n `Pi positional prompt ${JSON.stringify(token)} is incompatible with Fleet send ordering`,\n );\n }\n}\n\nexport function observeSession(\n profile: AgentLaunchProfile,\n session: ObservedSession,\n): AgentLaunchProfile {\n return {\n ...profile,\n observedSession: session,\n restorePiArgv: deriveRestorePiArgv(profile.userPiArgv, session),\n };\n}\n", "import type { PiProcess } from \"../pi/process.js\";\nimport { waitForProcessGroupExit } from \"../platform/runtime/process-tree.js\";\nimport type { FleetStore, StoredAgent } from \"../store/fleet-store.js\";\n\nexport type CoordinatorStopReason = \"destroy\" | \"runtime_shutdown\" | \"idle_release\";\n\ninterface IdleWaiter {\n readonly resolve: () => void;\n readonly reject: (error: Error) => void;\n readonly signal?: AbortSignal;\n readonly onAbort?: () => void;\n}\n\nexport class AgentCoordinator {\n readonly #idleWaiters = new Set<IdleWaiter>();\n #lane: Promise<void> = Promise.resolve();\n #stopReason: CoordinatorStopReason | null = null;\n #unsubscribeFrame: () => void;\n #unsubscribeExit: () => void;\n\n constructor(\n private readonly store: FleetStore,\n private agent: StoredAgent,\n readonly process: PiProcess,\n readonly incarnationId: string,\n private readonly now: () => string,\n private readonly onProcessExit: (error: Error | null) => void,\n ) {\n this.#unsubscribeFrame = process.onFrame((frame) => {\n if (frame.type === \"agent_start\") void this.#enqueue(() => this.#markWorking());\n if (frame.type === \"agent_settled\") void this.#enqueue(() => this.#markIdle());\n });\n this.#unsubscribeExit = process.onExit((error) => {\n void this.#enqueue(() => this.#handleProcessExit(error));\n });\n }\n\n get storedAgent(): StoredAgent {\n return this.agent;\n }\n\n send(message: string): Promise<void> {\n return this.#enqueue(() => this.process.prompt(message));\n }\n\n async waitForIdle(signal?: AbortSignal): Promise<StoredAgent> {\n let wait: Promise<void> | null = null;\n await this.#enqueue(async () => {\n if (signal?.aborted === true) throw new Error(\"Receive cancelled\");\n\n let resolveIdle!: () => void;\n let rejectIdle!: (error: Error) => void;\n wait = new Promise<void>((resolve, reject) => {\n resolveIdle = resolve;\n rejectIdle = reject;\n });\n const waiter: IdleWaiter = {\n resolve: resolveIdle,\n reject: rejectIdle,\n ...(signal === undefined ? {} : { signal }),\n };\n if (signal !== undefined) {\n const onAbort = () => {\n this.#idleWaiters.delete(waiter);\n rejectIdle(new Error(\"Receive cancelled\"));\n };\n (waiter as { onAbort?: () => void }).onAbort = onAbort;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n }\n this.#idleWaiters.add(waiter);\n\n const state = await this.process.getState();\n if (!state.isStreaming && state.pendingMessageCount === 0) {\n await this.#markIdle();\n }\n });\n if (wait !== null) await wait;\n await this.#lane;\n return this.agent;\n }\n\n async stop(reason: CoordinatorStopReason): Promise<void> {\n this.#stopReason = reason;\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"stopping\",\n });\n try {\n await this.process.stop();\n await this.#lane;\n } catch (error: unknown) {\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"failed\",\n process: { state: \"cleanup_uncertain\" },\n error: { code: \"incarnation_cleanup_uncertain\" },\n },\n };\n await this.store.putAgent(this.agent);\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"cleanup_uncertain\",\n });\n throw error;\n }\n }\n\n async #handleProcessExit(error: Error | null): Promise<void> {\n this.#unsubscribeFrame();\n this.#unsubscribeExit();\n if (this.#stopReason === null) {\n await this.process.stop().catch(() => undefined);\n }\n const groupGone = await waitForProcessGroupExit(this.process.pid);\n if (!groupGone) {\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"failed\",\n process: { state: \"cleanup_uncertain\" },\n error: { code: \"incarnation_cleanup_uncertain\" },\n },\n };\n await this.store.putAgent(this.agent);\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"cleanup_uncertain\",\n });\n this.#rejectIdleWaiters(new Error(\"Pi process cleanup is uncertain\"));\n this.onProcessExit(error ?? new Error(\"Pi process group is still alive\"));\n return;\n }\n\n const wasActive =\n this.agent.summary.state === \"working\" || this.agent.summary.state === \"restoring\";\n const destroyed = this.#stopReason === \"destroy\";\n const interrupted = error !== null || (wasActive && this.#stopReason !== \"destroy\");\n const state = destroyed ? \"destroying\" : interrupted ? \"failed\" : \"idle\";\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state,\n process: { state: \"absent\" },\n ...(interrupted ? { error: { code: \"runtime_interrupted\" } } : { error: undefined }),\n },\n };\n await this.store.putAgent(this.agent);\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"gone\",\n });\n if (interrupted || destroyed) {\n this.#rejectIdleWaiters(new Error(destroyed ? \"Agent destroyed\" : \"Pi work was interrupted\"));\n } else {\n this.#resolveIdleWaiters();\n }\n this.onProcessExit(error);\n }\n\n async #markWorking(): Promise<void> {\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"working\",\n process: { state: \"resident\" },\n error: undefined,\n },\n };\n await this.store.putAgent(this.agent);\n }\n\n async #markIdle(): Promise<void> {\n const latestAssistantText = await this.process.getLastAssistantText();\n this.agent = {\n ...this.agent,\n latestAssistantText,\n responseObservedAt: latestAssistantText === null ? this.agent.responseObservedAt : this.now(),\n summary: {\n ...this.agent.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n error: undefined,\n },\n };\n await this.store.putAgent(this.agent);\n this.#resolveIdleWaiters();\n }\n\n #resolveIdleWaiters(): void {\n for (const waiter of this.#idleWaiters) {\n if (waiter.signal !== undefined && waiter.onAbort !== undefined) {\n waiter.signal.removeEventListener(\"abort\", waiter.onAbort);\n }\n waiter.resolve();\n }\n this.#idleWaiters.clear();\n }\n\n #rejectIdleWaiters(error: Error): void {\n for (const waiter of this.#idleWaiters) {\n if (waiter.signal !== undefined && waiter.onAbort !== undefined) {\n waiter.signal.removeEventListener(\"abort\", waiter.onAbort);\n }\n waiter.reject(error);\n }\n this.#idleWaiters.clear();\n }\n\n #enqueue<T>(operation: () => Promise<T>): Promise<T> {\n const result = this.#lane.then(operation, operation);\n this.#lane = result.then(\n () => undefined,\n () => undefined,\n );\n return result;\n }\n}\n", "import { open, stat } from \"node:fs/promises\";\n\ninterface TailOptions {\n readonly signal?: AbortSignal;\n readonly pollMs?: number;\n readonly maxRecordBytes?: number;\n readonly readChunkBytes?: number;\n}\n\ninterface FileIdentity {\n readonly dev: number;\n readonly ino: number;\n}\n\ninterface TailState {\n readonly identity: FileIdentity | null;\n readonly appeared: boolean;\n readonly offset: number;\n readonly partial: Buffer;\n}\n\nexport class SessionTailSubscription implements AsyncIterable<Buffer> {\n readonly #initialState: Promise<TailState>;\n readonly #pollMs: number;\n readonly #maxRecordBytes: number;\n readonly #readChunkBytes: number;\n readonly #signal: AbortSignal | undefined;\n\n constructor(\n private readonly sessionPath: string,\n options: TailOptions = {},\n ) {\n this.#pollMs = options.pollMs ?? 50;\n this.#maxRecordBytes = options.maxRecordBytes ?? 1024 * 1024;\n this.#readChunkBytes = options.readChunkBytes ?? 64 * 1024;\n this.#signal = options.signal;\n this.#initialState = this.#establishBaseline();\n }\n\n async *[Symbol.asyncIterator](): AsyncIterator<Buffer> {\n let state = await this.#initialState;\n while (this.#signal?.aborted !== true) {\n const current = await stat(this.sessionPath).catch((error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") return null;\n throw error;\n });\n\n if (current === null) {\n if (state.appeared) throw new Error(\"Selected Pi session file disappeared or was replaced\");\n await delay(this.#pollMs, this.#signal);\n continue;\n }\n if (!current.isFile()) throw new Error(\"Selected Pi session path is not a regular file\");\n\n const identity = { dev: current.dev, ino: current.ino };\n if (state.identity !== null && !sameIdentity(state.identity, identity)) {\n throw new Error(\"Selected Pi session file was replaced\");\n }\n if (current.size < state.offset) throw new Error(\"Selected Pi session file was truncated\");\n\n if (!state.appeared) {\n state = { identity, appeared: true, offset: 0, partial: Buffer.alloc(0) };\n }\n if (current.size === state.offset) {\n await delay(this.#pollMs, this.#signal);\n continue;\n }\n\n let offset = state.offset;\n let partial = state.partial;\n const targetSize = current.size;\n while (offset < targetSize) {\n const length = Math.min(this.#readChunkBytes, targetSize - offset);\n const chunk = await readRange(this.sessionPath, offset, length);\n if (chunk.length === 0) break;\n offset += chunk.length;\n const combined = Buffer.concat([partial, chunk]);\n const completeRecords: Buffer[] = [];\n let recordStart = 0;\n while (true) {\n const newline = combined.indexOf(0x0a, recordStart);\n if (newline < 0) break;\n const record = combined.subarray(recordStart, newline + 1);\n if (record.length > this.#maxRecordBytes) {\n throw new Error(\"Pi session record exceeds the watch limit\");\n }\n completeRecords.push(Buffer.from(record));\n recordStart = newline + 1;\n }\n partial = Buffer.from(combined.subarray(recordStart));\n if (partial.length > this.#maxRecordBytes) {\n throw new Error(\"Pi session record exceeds the watch limit\");\n }\n if (completeRecords.length > 0) yield Buffer.concat(completeRecords);\n }\n state = { identity, appeared: true, offset, partial };\n }\n }\n\n async #establishBaseline(): Promise<TailState> {\n const current = await stat(this.sessionPath).catch((error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") return null;\n throw error;\n });\n if (current === null) {\n return { identity: null, appeared: false, offset: 0, partial: Buffer.alloc(0) };\n }\n if (!current.isFile()) throw new Error(\"Selected Pi session path is not a regular file\");\n\n const readStart = Math.max(0, current.size - this.#maxRecordBytes - 1);\n const tail = await readRange(this.sessionPath, readStart, current.size - readStart);\n const lastNewline = tail.lastIndexOf(0x0a);\n const partial = lastNewline < 0 ? tail : tail.subarray(lastNewline + 1);\n if (partial.length > this.#maxRecordBytes || (readStart > 0 && lastNewline < 0)) {\n throw new Error(\"Existing Pi session record exceeds the watch limit\");\n }\n return {\n identity: { dev: current.dev, ino: current.ino },\n appeared: true,\n offset: current.size,\n partial: Buffer.from(partial),\n };\n }\n}\n\nasync function readRange(path: string, position: number, length: number): Promise<Buffer> {\n const handle = await open(path, \"r\");\n try {\n const buffer = Buffer.alloc(length);\n let offset = 0;\n while (offset < length) {\n const result = await handle.read(buffer, offset, length - offset, position + offset);\n if (result.bytesRead === 0) break;\n offset += result.bytesRead;\n }\n return buffer.subarray(0, offset);\n } finally {\n await handle.close();\n }\n}\n\nfunction sameIdentity(left: FileIdentity, right: FileIdentity): boolean {\n return left.dev === right.dev && left.ino === right.ino;\n}\n\nasync function delay(milliseconds: number, signal?: AbortSignal): Promise<void> {\n if (signal?.aborted === true) return;\n await new Promise<void>((resolveDelay) => {\n const finish = () => {\n clearTimeout(timer);\n signal?.removeEventListener(\"abort\", finish);\n resolveDelay();\n };\n const timer = setTimeout(finish, milliseconds);\n signal?.addEventListener(\"abort\", finish, { once: true });\n });\n}\n", "import { randomUUID } from \"node:crypto\";\nimport { Worker } from \"node:worker_threads\";\n\nimport type {\n FleetStore,\n StoredAgent,\n StoredIncarnation,\n StoredOperation,\n StoredSend,\n} from \"./fleet-store.js\";\n\ninterface WorkerResponse {\n readonly id: string;\n readonly ok: boolean;\n readonly value?: unknown;\n readonly error?: string;\n}\n\nexport class WorkerFleetStore implements FleetStore {\n readonly #worker: Worker;\n readonly #pending = new Map<\n string,\n { readonly resolve: (value: unknown) => void; readonly reject: (error: Error) => void }\n >();\n #closed = false;\n\n constructor(path: string, workerUrl = new URL(\"./sqlite-worker.mjs\", import.meta.url)) {\n this.#worker = new Worker(workerUrl, { workerData: { path } });\n this.#worker.on(\"message\", (response: WorkerResponse) => {\n const pending = this.#pending.get(response.id);\n if (pending === undefined) return;\n this.#pending.delete(response.id);\n if (response.ok) pending.resolve(response.value);\n else pending.reject(new Error(response.error ?? \"SQLite worker failed\"));\n });\n this.#worker.on(\"error\", (error) => this.#rejectAll(error));\n this.#worker.on(\"exit\", (code) => {\n if (!this.#closed)\n this.#rejectAll(new Error(`SQLite worker exited unexpectedly with ${code}`));\n });\n }\n\n createAgent(agent: StoredAgent): Promise<boolean> {\n return this.#call(\"createAgent\", [agent]);\n }\n\n getAgent(name: string): Promise<StoredAgent | null> {\n return this.#call(\"getAgent\", [name]);\n }\n\n listAgents(): Promise<readonly StoredAgent[]> {\n return this.#call(\"listAgents\", []);\n }\n\n async putAgent(agent: StoredAgent): Promise<void> {\n await this.#call(\"putAgent\", [agent]);\n }\n\n getOperation(operationId: string): Promise<StoredOperation | null> {\n return this.#call(\"getOperation\", [operationId]);\n }\n\n async putOperation(operation: StoredOperation): Promise<void> {\n await this.#call(\"putOperation\", [operation]);\n }\n\n listPendingOperations(): Promise<readonly StoredOperation[]> {\n return this.#call(\"listPendingOperations\", []);\n }\n\n async deleteOperation(operationId: string): Promise<void> {\n await this.#call(\"deleteOperation\", [operationId]);\n }\n\n getSend(sendId: string): Promise<StoredSend | null> {\n return this.#call(\"getSend\", [sendId]);\n }\n\n nextSendOrdinal(agentName: string): Promise<number> {\n return this.#call(\"nextSendOrdinal\", [agentName]);\n }\n\n async putSend(send: StoredSend): Promise<void> {\n await this.#call(\"putSend\", [send]);\n }\n\n listNonterminalSends(): Promise<readonly StoredSend[]> {\n return this.#call(\"listNonterminalSends\", []);\n }\n\n async putIncarnation(incarnation: StoredIncarnation): Promise<void> {\n await this.#call(\"putIncarnation\", [incarnation]);\n }\n\n listActiveIncarnations(): Promise<readonly StoredIncarnation[]> {\n return this.#call(\"listActiveIncarnations\", []);\n }\n\n deleteAgent(name: string): Promise<StoredAgent | null> {\n return this.#call(\"deleteAgent\", [name]);\n }\n\n async close(cleanShutdown = true): Promise<void> {\n if (this.#closed) return;\n await this.#call(\"close\", [cleanShutdown]);\n this.#closed = true;\n await this.#worker.terminate();\n }\n\n #call<T>(method: string, args: readonly unknown[]): Promise<T> {\n if (this.#closed) return Promise.reject(new Error(\"Fleet store is closed\"));\n const id = randomUUID();\n const result = new Promise<T>((resolveCall, rejectCall) => {\n this.#pending.set(id, {\n resolve: (value) => resolveCall(value as T),\n reject: rejectCall,\n });\n });\n this.#worker.postMessage({ id, method, args });\n return result;\n }\n\n #rejectAll(error: Error): void {\n for (const pending of this.#pending.values()) pending.reject(error);\n this.#pending.clear();\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["process", "process", "once", "TypeSystemPolicy", "Set", "Clear", "Delete", "Entries", "Get", "Has", "Set", "map", "HasPropertyKey", "IsArray", "IsAsyncIterator", "IsBigInt", "IsBoolean", "IsDate", "IsFunction", "IsIterator", "IsNull", "IsNumber", "IsObject", "IsString", "IsSymbol", "IsUint8Array", "IsUndefined", "value", "IsArray", "IsDate", "IsUint8Array", "IsObject", "value", "IsArray", "IsDate", "IsUint8Array", "IsObject", "Array", "IsObject", "IsArray", "IsAsyncIterator", "IsBigInt", "IsBoolean", "IsDate", "IsFunction", "IsInteger", "IsIterator", "IsObject", "IsBoolean", "IsNumber", "IsString", "IsNull", "IsObject", "IsPromise", "IsRegExp", "IsString", "IsSymbol", "IsObject", "IsUndefined", "IsUint8Array", "IsArray", "IsBoolean", "IsBigInt", "IsAsyncIterator", "IsDate", "IsFunction", "IsInteger", "IsIterator", "IsNull", "IsNumber", "IsPromise", "IsObject", "RemoveOptionalFromRest", "RemoveOptionalFromType", "range", "pattern", "BigInt", "Number", "String", "Number", "BigInt", "String", "Visit", "schema", "IsNumber", "IsInteger", "IsBigInt", "IsString", "IsBoolean", "IsString", "FromUnion", "IsNumber", "IsInteger", "FromProperties", "FromMappedResult", "FromUnion", "IsArray", "IsObject", "Object", "Promise", "FromProperties", "FromMappedResult", "FromMappedResult", "FromRest", "FromProperties", "IsFunction", "IsAsyncIterator", "IsIterator", "IsObject", "Object", "IsArray", "Array", "IsPromise", "Promise", "map", "FromRest", "FromIntersect", "FromUnion", "FromTuple", "FromArray", "FromProperties", "IsArray", "IsObject", "Number", "FromProperties", "FromMappedResult", "Intersect", "schema", "Union", "target", "ByteMarker", "ArrayType", "Visit", "DateType", "ObjectType", "Uint8ArrayType", "type_exports", "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", "IsString", "IsSchema", "IsUndefined", "IsBigInt", "IsNumber", "IsBoolean", "IsReadonly", "IsObject", "IsOptional", "IsAny", "IsKindOf", "IsArgument", "IsArray", "IsAsyncIterator", "IsComputed", "IsConstructor", "IsDate", "IsFunction", "HasPropertyKey", "IsInteger", "IsIntersect", "IsTransform", "IsIterator", "IsLiteral", "IsLiteralValue", "IsMappedKey", "IsMappedResult", "IsNever", "IsNot", "IsNull", "IsPromise", "IsRecord", "IsRef", "IsRegExp", "IsSymbol", "IsTemplateLiteral", "IsThis", "IsTuple", "IsUnion", "IsUint8Array", "IsUnknown", "IsUnsafe", "IsVoid", "IsKind", "ExtendsResult", "type_exports", "FromArray", "Visit", "FromIntersect", "FromLiteral", "Number", "String", "FromTemplateLiteral", "FromTuple", "FromUnion", "FromProperties", "FromMappedResult", "FromMappedKey", "FromAny", "FromArray", "Visit", "value", "FromAsyncIterator", "FromBigInt", "FromBoolean", "FromConstructor", "FromDate", "FromFunction", "FromInteger", "FromIntersect", "schema", "FromIterator", "FromLiteral", "FromNever", "FromNot", "FromNull", "FromNumber", "FromObject", "FromPromise", "FromRecord", "FromRef", "FromRegExp", "FromString", "FromSymbol", "FromTemplateLiteral", "FromTuple", "FromUndefined", "FromUnion", "FromUint8Array", "FromUnknown", "FromVoid", "ValueErrorType", "IsDefined", "FromAny", "FromArgument", "FromArray", "Visit", "value", "FromAsyncIterator", "FromBigInt", "FromBoolean", "FromConstructor", "FromDate", "FromFunction", "FromImport", "FromInteger", "FromIntersect", "FromIterator", "FromLiteral", "FromNever", "FromNot", "FromNull", "FromNumber", "FromObject", "FromPromise", "FromRecord", "FromRef", "FromRegExp", "FromString", "FromSymbol", "FromTemplateLiteral", "FromThis", "FromTuple", "FromUndefined", "FromUnion", "FromUint8Array", "FromUnknown", "FromVoid", "FromKind", "_AssertError_Iterator", "FromObject", "Clone", "FromArray", "FromDate", "Clone", "FromAny", "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", "Create", "schema", "Clone", "Create", "FromArray", "value", "Visit", "FromConstructor", "FromImport", "FromIntersect", "FromNever", "FromObject", "FromRecord", "FromRef", "FromThis", "FromTuple", "FromUnion", "FromArray", "value", "Visit", "FromImport", "FromIntersect", "schema", "Clone", "FromObject", "FromRecord", "FromRef", "FromThis", "FromTuple", "FromUnion", "value", "Default", "FromArray", "Visit", "FromBigInt", "FromBoolean", "FromDate", "FromImport", "FromInteger", "FromIntersect", "schema", "FromLiteral", "FromNull", "FromNumber", "FromObject", "FromRecord", "FromRef", "FromString", "FromSymbol", "FromThis", "FromTuple", "FromUndefined", "FromUnion", "Clone", "Default", "FromArray", "value", "Visit", "FromIntersect", "FromImport", "FromNot", "FromObject", "IsUndefined", "FromRecord", "FromRef", "FromThis", "FromTuple", "schema", "FromUnion", "Default", "FromArray", "value", "Visit", "FromImport", "FromIntersect", "FromNot", "FromObject", "IsUndefined", "FromRecord", "FromRef", "FromThis", "FromTuple", "schema", "FromUnion", "FromArray", "Visit", "FromAsyncIterator", "FromConstructor", "schema", "FromFunction", "FromIntersect", "FromImport", "FromIterator", "FromNot", "FromObject", "FromPromise", "FromRecord", "FromRef", "FromThis", "FromTuple", "FromUnion", "Clone", "FromArray", "Visit", "FromDate", "FromImport", "FromIntersect", "schema", "FromObject", "FromRecord", "FromRef", "FromThis", "FromTuple", "FromUnion", "Default", "Delete", "Get", "Has", "Set", "Escape", "Set", "Delete", "Has", "Get", "ObjectType", "DateType", "ArrayType", "Object", "String", "Delete", "ObjectType", "Visit", "ArrayType", "TypedArrayType", "ValueType", "Clone", "IsStandardObject", "ObjectType", "Clone", "Visit", "ArrayType", "TypedArrayType", "ValueType", "ParseRegistry", "Clone", "Default", "Delete", "Set", "Get", "value", "value_exports", "Clone", "Create", "Default", "FromComputed", "FromRef", "FromIntersect", "FromRest", "FromUnion", "FromPromise", "IsPromise", "Object", "Date", "Symbol", "Uint8Array", "FromArray", "FromValue", "FromProperties", "IsAsyncIterator", "IsIterator", "IsArray", "IsUint8Array", "Uint8Array", "IsDate", "Date", "IsObject", "Object", "IsFunction", "IsUndefined", "IsNull", "IsSymbol", "Symbol", "IsBigInt", "BigInt", "IsNumber", "IsBoolean", "IsString", "IsUndefined", "FromProperties", "FromMappedResult", "FromProperties", "FromMappedResult", "Object", "IsUndefined", "IsBoolean", "IsInteger", "IsNumber", "IsRegExp", "IsString", "RecordKey", "String", "Number", "RecordValue", "FromConstructor", "FromFunction", "FromIntersect", "FromUnion", "FromTuple", "IsUndefined", "FromArray", "FromAsyncIterator", "FromIterator", "FromPromise", "FromObject", "FromProperties", "Object", "FromRecord", "RecordKey", "RecordValue", "FromArgument", "FromProperty", "IsFunction", "IsArray", "IsAsyncIterator", "IsIterator", "IsPromise", "IsObject", "FromTemplateLiteral", "FromRest", "FromProperties", "FromMappedResult", "FromIntersect", "FromUnion", "FromProperty", "FromProperties", "FromObject", "Object", "result", "IsObject", "IsArray", "FromPropertyKey", "FromPropertyKeys", "FromMappedKey", "FromProperties", "FromMappedResult", "FromIntersect", "FromUnion", "FromProperties", "FromObject", "Type", "Object", "UnionFromPropertyKeys", "result", "IsObject", "IsArray", "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", "FromIntersect", "FromIterator", "FromObject", "Object", "FromRecord", "RecordValue", "FromTuple", "FromUnion", "IsArray", "IsAsyncIterator", "IsFunction", "IsIterator", "IsObject", "Not", "IsFunction", "IsUndefined", "RegExp", "IsString", "IsFunction", "Encode", "Decode", "type_exports", "Array", "BigInt", "Date", "Not", "Number", "Object", "Promise", "RegExp", "String", "Symbol", "Uint8Array", "type_exports", "value_exports", "once", "randomUUID", "process", "resolve", "randomUUID", "process", "result", "resolve", "randomUUID"]
|
|
3
|
+
"sources": ["../src/entry/runtime.ts", "../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", "../src/protocol/pi-identity.ts", "../src/pi/external-installation.ts", "../src/pi/process.ts", "../src/platform/runtime/process-tree.ts", "../src/pi/adapter.ts", "../src/pi/external-target.ts", "../src/platform/shared/paths.ts", "../src/runtime/control-server.ts", "../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", "../src/protocol/version.ts", "../src/protocol/envelope.ts", "../src/protocol/validation.ts", "../src/protocol/jsonl.ts", "../src/shared/runtime-limits.ts", "../src/shared/result.ts", "../src/runtime/rpc-watch-hub.ts", "../src/runtime/fleet-service.ts", "../src/pi/session-selector.ts", "../src/pi/launch-profile.ts", "../src/runtime/agent-coordinator.ts", "../src/store/worker-store.ts"],
|
|
4
|
+
"sourcesContent": ["import { pathToFileURL } from \"node:url\";\n\nimport { createExternalPiTarget } from \"../pi/external-target.js\";\nimport { resolveFleetPaths } from \"../platform/shared/paths.js\";\nimport { startControlServer } from \"../runtime/control-server.js\";\nimport { FleetService } from \"../runtime/fleet-service.js\";\nimport { runtimeLimitsFromEnv } from \"../shared/runtime-limits.js\";\nimport { WorkerFleetStore } from \"../store/worker-store.js\";\n\nexport async function runRuntime(): Promise<void> {\n const paths = resolveFleetPaths();\n const limits = runtimeLimitsFromEnv();\n let resolveService: (service: FleetService) => void;\n let rejectService: (error: unknown) => void;\n const serviceReady = new Promise<FleetService>((resolveReady, rejectReady) => {\n resolveService = resolveReady;\n rejectService = rejectReady;\n });\n const server = await startControlServer({\n socketPath: paths.socketPath,\n service: serviceReady,\n limits,\n });\n\n let store: WorkerFleetStore;\n let service: FleetService;\n try {\n store = new WorkerFleetStore(paths.databasePath);\n const piTarget = await createExternalPiTarget(process.env, limits.maxPiFrameBytes);\n service = new FleetService(store, {\n launcher: piTarget.launcher,\n piIdentity: piTarget.identity,\n limits,\n });\n await service.reconcile();\n resolveService!(service);\n } catch (error: unknown) {\n rejectService!(error);\n await server.close();\n throw error;\n }\n\n await new Promise<void>((resolveShutdown) => {\n let closing = false;\n const shutdown = () => {\n if (closing) return;\n closing = true;\n const serviceClosing = service.close();\n const serverClosing = server.close();\n void Promise.allSettled([serviceClosing, serverClosing])\n .then(() => store.close(true))\n .finally(resolveShutdown);\n };\n process.once(\"SIGTERM\", shutdown);\n process.once(\"SIGINT\", shutdown);\n });\n}\n\nif (process.argv[1] !== undefined && import.meta.url === pathToFileURL(process.argv[1]).href) {\n await runRuntime();\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// ------------------------------------------------------------------\n// TypeScript 7: CommonJS TS2441\n//\n// TypeScript generates a CommonJS shim that patches local variables\n// via an unqualified reference to Object (e.g. the __esModule shim's\n// Object.defineProperty call). Other compiler tools have been\n// observed patching in the same way, but TypeScript 7 has correctly\n// begun flagging variables named Object in CommonJS, since they\n// conflict with the shim and can cause \"used before definition\"\n// errors. This is CommonJS-specific; no such shim exists for ESM.\n//\n// TypeBox works around this using a `var` declaration, which is\n// known to avoid use-before-definition errors. TypeBox 1.x employs\n// a similar strategy.\n// ------------------------------------------------------------------\n/** `[Json]` Creates an Object type */\n// @ts-ignore - error TS2441: Duplicate identifier 'Object'. Compiler reserves name 'Object' in top level scope of a module.\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 as _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 as _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 as _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 as _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 as _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 as _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 as _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 as _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 as _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 as _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", "import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const MANAGED_PI_ARTIFACT_ID = \"@earendil-works/pi-coding-agent@0.80.10\";\n\nexport const PiRuntimeIdentitySchema = Type.Union([\n Type.Object(\n {\n mode: Type.Literal(\"managed\"),\n artifactId: Type.String({ minLength: 1 }),\n },\n { additionalProperties: false },\n ),\n Type.Object(\n {\n mode: Type.Literal(\"external\"),\n selectedPath: Type.String({ minLength: 1 }),\n nodePath: Type.String({ minLength: 1 }),\n realPath: Type.String({ minLength: 1 }),\n version: Type.String({ minLength: 1 }),\n fingerprint: Type.String({ minLength: 1 }),\n },\n { additionalProperties: false },\n ),\n]);\n\nexport type PiRuntimeIdentity = Static<typeof PiRuntimeIdentitySchema>;\n\nexport const MANAGED_PI_RUNTIME_IDENTITY: PiRuntimeIdentity = Object.freeze({\n mode: \"managed\",\n artifactId: MANAGED_PI_ARTIFACT_ID,\n});\n\nexport function samePiRuntimeIdentity(left: PiRuntimeIdentity, right: PiRuntimeIdentity): boolean {\n if (left.mode !== right.mode) return false;\n if (left.mode === \"managed\" && right.mode === \"managed\") {\n return left.artifactId === right.artifactId;\n }\n if (left.mode === \"external\" && right.mode === \"external\") {\n return (\n left.selectedPath === right.selectedPath &&\n left.nodePath === right.nodePath &&\n left.realPath === right.realPath &&\n left.version === right.version &&\n left.fingerprint === right.fingerprint\n );\n }\n return false;\n}\n", "import { spawn } from \"node:child_process\";\nimport { createHash } from \"node:crypto\";\nimport { constants } from \"node:fs\";\nimport { createReadStream } from \"node:fs\";\nimport { access, realpath, stat } from \"node:fs/promises\";\nimport { delimiter, dirname, isAbsolute, join } from \"node:path\";\n\nconst VERSION_TIMEOUT_MS = 3_000;\nconst MAX_VERSION_OUTPUT_BYTES = 4 * 1024;\n\nexport type ExternalPiResolutionErrorCode =\n | \"invalid_arguments\"\n | \"pi_not_found\"\n | \"pi_not_executable\"\n | \"pi_version_unavailable\"\n | \"pi_installation_changed\";\n\nexport class ExternalPiResolutionError extends Error {\n constructor(\n readonly code: ExternalPiResolutionErrorCode,\n message: string,\n ) {\n super(message);\n this.name = \"ExternalPiResolutionError\";\n }\n}\n\nexport interface PiInstallation {\n readonly selectedPath: string;\n readonly realPath: string;\n readonly version: string;\n readonly nodePath: string;\n readonly fingerprint: string;\n}\n\nexport interface ExternalPiResolverOptions {\n readonly env?: NodeJS.ProcessEnv;\n readonly nodePath?: string;\n readonly versionCommand?: (executable: string) => Promise<string>;\n readonly versionTimeoutMs?: number;\n readonly maxVersionOutputBytes?: number;\n}\n\nexport async function resolveExternalPiInstallation(\n options: ExternalPiResolverOptions = {},\n): Promise<PiInstallation> {\n const env = options.env ?? process.env;\n const selectedPath = await resolveSelectedPath(env);\n const nodePath = options.nodePath ?? (await resolveNodePath(env));\n await inspectNode(nodePath);\n\n const executionEnv = externalPiExecutionEnvironment(env, selectedPath, nodePath);\n for (let attempt = 0; attempt < 2; attempt += 1) {\n const observation = await observeInstallation(selectedPath, executionEnv, options);\n if (observation !== null) {\n return {\n selectedPath,\n nodePath,\n ...observation,\n };\n }\n }\n\n throw new ExternalPiResolutionError(\n \"pi_installation_changed\",\n \"Pi changed while its installation was being observed.\",\n );\n}\n\nexport function externalPiExecutionEnvironment(\n env: NodeJS.ProcessEnv,\n selectedPath: string,\n nodePath: string,\n): NodeJS.ProcessEnv {\n return {\n ...env,\n PATH: [dirname(nodePath), dirname(selectedPath), env.PATH]\n .filter((value): value is string => value !== undefined && value.length > 0)\n .join(delimiter),\n };\n}\n\nasync function observeInstallation(\n selectedPath: string,\n env: NodeJS.ProcessEnv,\n options: ExternalPiResolverOptions,\n): Promise<Omit<PiInstallation, \"selectedPath\" | \"nodePath\"> | null> {\n const beforeRealPath = await inspectExecutable(selectedPath, \"Pi\");\n const beforeHash = await hashFile(beforeRealPath);\n const versionOutput = await (\n options.versionCommand ??\n ((executable: string) =>\n readVersion(executable, env, options.versionTimeoutMs, options.maxVersionOutputBytes))\n )(selectedPath);\n const version = parseVersion(versionOutput);\n const afterRealPath = await inspectExecutable(selectedPath, \"Pi\");\n const afterHash = await hashFile(afterRealPath);\n\n if (beforeRealPath !== afterRealPath || beforeHash !== afterHash) return null;\n\n return {\n realPath: afterRealPath,\n version,\n fingerprint: createHash(\"sha256\")\n .update(JSON.stringify([selectedPath, afterRealPath, version, afterHash]))\n .digest(\"hex\"),\n };\n}\n\nasync function resolveSelectedPath(env: NodeJS.ProcessEnv): Promise<string> {\n const explicit = env.PIFLEET_PI_EXECUTABLE;\n if (explicit !== undefined) {\n if (!isAbsolute(explicit)) {\n throw new ExternalPiResolutionError(\n \"invalid_arguments\",\n \"PIFLEET_PI_EXECUTABLE must be an absolute path.\",\n );\n }\n return explicit;\n }\n return resolvePathExecutable(env, \"pi\", \"Pi\", \"pi_not_found\");\n}\n\nasync function resolveNodePath(env: NodeJS.ProcessEnv): Promise<string> {\n return resolvePathExecutable(env, \"node\", \"Node\", \"pi_not_executable\");\n}\n\nasync function resolvePathExecutable(\n env: NodeJS.ProcessEnv,\n name: string,\n label: \"Pi\" | \"Node\",\n missingCode: \"pi_not_found\" | \"pi_not_executable\",\n): Promise<string> {\n const path = env.PATH;\n if (path === undefined || path.length === 0) {\n throw new ExternalPiResolutionError(missingCode, `${label} was not found on PATH.`);\n }\n for (const directory of path.split(delimiter)) {\n if (!isAbsolute(directory)) {\n throw new ExternalPiResolutionError(\n \"invalid_arguments\",\n `PATH entries used to select ${label} must be absolute paths.`,\n );\n }\n const candidate = join(directory, name);\n try {\n await inspectExecutable(candidate, label);\n return candidate;\n } catch (error: unknown) {\n if (\n !(error instanceof ExternalPiResolutionError) ||\n (error.code !== \"pi_not_executable\" && error.code !== \"pi_not_found\")\n ) {\n throw error;\n }\n }\n }\n throw new ExternalPiResolutionError(missingCode, `${label} was not found on PATH.`);\n}\n\nasync function inspectExecutable(path: string, label: \"Pi\" | \"Node\"): Promise<string> {\n try {\n const target = await realpath(path);\n const metadata = await stat(target);\n if (!metadata.isFile()) {\n throw new ExternalPiResolutionError(\"pi_not_executable\", `${label} is not a file: ${path}`);\n }\n await access(path, constants.X_OK);\n return target;\n } catch (error: unknown) {\n if (error instanceof ExternalPiResolutionError) throw error;\n if ((error as NodeJS.ErrnoException).code === \"ENOENT\") {\n throw new ExternalPiResolutionError(\"pi_not_found\", `${label} was not found: ${path}`);\n }\n throw new ExternalPiResolutionError(\"pi_not_executable\", `${label} is not executable: ${path}`);\n }\n}\n\nasync function inspectNode(nodePath: string): Promise<void> {\n if (!isAbsolute(nodePath)) {\n throw new ExternalPiResolutionError(\"invalid_arguments\", \"Node must be an absolute path.\");\n }\n try {\n await inspectExecutable(nodePath, \"Node\");\n } catch {\n throw new ExternalPiResolutionError(\"pi_not_executable\", `Node is not executable: ${nodePath}`);\n }\n}\n\nasync function hashFile(path: string): Promise<string> {\n const hash = createHash(\"sha256\");\n await new Promise<void>((resolveHash, rejectHash) => {\n const stream = createReadStream(path);\n stream.on(\"data\", (chunk: string | Buffer) => hash.update(chunk));\n stream.once(\"error\", rejectHash);\n stream.once(\"end\", resolveHash);\n });\n return hash.digest(\"hex\");\n}\n\nasync function readVersion(\n executable: string,\n env: NodeJS.ProcessEnv,\n timeoutMs = VERSION_TIMEOUT_MS,\n maxOutputBytes = MAX_VERSION_OUTPUT_BYTES,\n): Promise<string> {\n const child = spawn(executable, [\"--version\"], {\n detached: process.platform !== \"win32\",\n env,\n shell: false,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n const chunks: Buffer[] = [];\n let outputBytes = 0;\n let terminalError: ExternalPiResolutionError | null = null;\n let terminated = false;\n\n const terminate = () => {\n if (terminated) return;\n terminated = true;\n if (process.platform !== \"win32\" && child.pid !== undefined) {\n try {\n process.kill(-child.pid, \"SIGKILL\");\n return;\n } catch {\n // The group may have already exited; kill the direct child as a fallback.\n }\n }\n child.kill(\"SIGKILL\");\n };\n\n child.stdout.on(\"data\", (chunk: Buffer) => {\n if (terminalError !== null) return;\n outputBytes += chunk.byteLength;\n if (outputBytes > maxOutputBytes) {\n terminalError = new ExternalPiResolutionError(\n \"pi_version_unavailable\",\n \"Pi version output exceeded its limit.\",\n );\n terminate();\n return;\n }\n chunks.push(chunk);\n });\n child.stderr.resume();\n\n return new Promise((resolveVersion, rejectVersion) => {\n const timer = setTimeout(() => {\n terminalError = new ExternalPiResolutionError(\n \"pi_version_unavailable\",\n \"Pi version command timed out.\",\n );\n terminate();\n }, timeoutMs);\n child.once(\"error\", () => {\n terminalError ??= new ExternalPiResolutionError(\n \"pi_version_unavailable\",\n \"Pi version command failed.\",\n );\n });\n child.once(\"close\", (code) => {\n clearTimeout(timer);\n if (terminalError !== null) {\n rejectVersion(terminalError);\n return;\n }\n if (code !== 0) {\n rejectVersion(\n new ExternalPiResolutionError(\"pi_version_unavailable\", \"Pi version command failed.\"),\n );\n return;\n }\n try {\n resolveVersion(new TextDecoder(\"utf-8\", { fatal: true }).decode(Buffer.concat(chunks)));\n } catch {\n rejectVersion(\n new ExternalPiResolutionError(\n \"pi_version_unavailable\",\n \"Pi version command returned invalid UTF-8.\",\n ),\n );\n }\n });\n });\n}\n\nfunction parseVersion(output: string): string {\n const match = /^(?:pi\\s+)?(\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?)\\s*$/i.exec(output);\n if (match?.[1] === undefined) {\n throw new ExternalPiResolutionError(\n \"pi_version_unavailable\",\n \"Pi version command returned an invalid version.\",\n );\n }\n return match[1];\n}\n", "import { randomUUID } from \"node:crypto\";\nimport { once } from \"node:events\";\nimport { spawn, type ChildProcessWithoutNullStreams } from \"node:child_process\";\n\nimport { signalProcessTree, waitForProcessGroupExit } from \"../platform/runtime/process-tree.js\";\n\nconst DEFAULT_MAX_STDOUT_FRAME_BYTES = 8 * 1024 * 1024;\n\nexport class PiRpcRejectedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PiRpcRejectedError\";\n }\n}\n\nexport interface PiCompactionResult {\n readonly tokensBefore: number;\n readonly estimatedTokensAfter?: number;\n}\n\nexport class PiCompactionError extends Error {\n constructor(readonly code: \"nothing_to_compact\" | \"compaction_failed\") {\n super(code);\n this.name = \"PiCompactionError\";\n }\n}\n\nexport class PiCleanupUncertainError extends Error {\n constructor(\n readonly pid: number,\n readonly startupError: unknown,\n readonly cleanupError: unknown,\n ) {\n super(`Pi process group ${String(pid)} could not be cleaned up after startup failed`);\n this.name = \"PiCleanupUncertainError\";\n }\n}\n\nexport interface PiState {\n readonly isStreaming: boolean;\n readonly isCompacting: boolean;\n readonly pendingMessageCount: number;\n readonly sessionFile?: string;\n readonly sessionId: string;\n}\n\nexport interface PiFrame {\n readonly id?: string;\n readonly type?: string;\n readonly command?: string;\n readonly success?: boolean;\n readonly error?: string;\n readonly data?: Record<string, unknown>;\n readonly [key: string]: unknown;\n}\n\nexport interface PiProcessStartOptions {\n readonly executable: string;\n readonly argvPrefix?: readonly string[];\n readonly piArgv: readonly string[];\n readonly cwd: string;\n readonly env?: NodeJS.ProcessEnv;\n readonly maxStdoutFrameBytes?: number;\n readonly onSpawn?: (pid: number) => Promise<void>;\n readonly onStdoutBytes?: (bytes: Buffer) => void;\n}\n\ninterface ResponseWaiter {\n readonly resolve: (frame: PiFrame) => void;\n readonly reject: (error: Error) => void;\n readonly timer: NodeJS.Timeout;\n}\n\nexport class PiProcess {\n readonly #child: ChildProcessWithoutNullStreams;\n readonly #responses = new Map<string, ResponseWaiter>();\n readonly #listeners = new Set<(frame: PiFrame) => void>();\n readonly #exitListeners = new Set<(error: Error | null) => void>();\n #stdoutBuffer = Buffer.alloc(0);\n #stderr = \"\";\n #stopping = false;\n #handledExit = false;\n readonly #exitHandled: Promise<void>;\n #resolveExitHandled: () => void = () => undefined;\n readonly #maxStdoutFrameBytes: number;\n\n private constructor(options: PiProcessStartOptions) {\n this.#exitHandled = new Promise((resolve) => {\n this.#resolveExitHandled = resolve;\n });\n this.#maxStdoutFrameBytes = options.maxStdoutFrameBytes ?? DEFAULT_MAX_STDOUT_FRAME_BYTES;\n this.#child = spawn(\n options.executable,\n [...(options.argvPrefix ?? []), \"--mode\", \"rpc\", ...options.piArgv],\n {\n cwd: options.cwd,\n env: { ...process.env, ...options.env },\n detached: process.platform !== \"win32\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n },\n );\n this.#child.stderr.setEncoding(\"utf8\");\n this.#child.stdout.on(\"data\", (chunk: Buffer) => {\n options.onStdoutBytes?.(chunk);\n this.#consumeStdout(chunk);\n });\n this.#child.stderr.on(\"data\", (chunk: string) => {\n this.#stderr = `${this.#stderr}${chunk}`.slice(-65_536);\n });\n this.#child.once(\"exit\", (code, signal) => this.#handleExit(code, signal));\n this.#child.once(\"error\", (error) => this.#handleExit(null, null, error));\n }\n\n static async start(options: PiProcessStartOptions): Promise<PiProcess> {\n const process = new PiProcess(options);\n try {\n await options.onSpawn?.(process.pid);\n await process.getState();\n return process;\n } catch (error: unknown) {\n try {\n await process.stop();\n } catch (cleanupError: unknown) {\n throw new PiCleanupUncertainError(process.pid, error, cleanupError);\n }\n throw error;\n }\n }\n\n get pid(): number {\n if (this.#child.pid === undefined) throw new Error(\"Pi process has no PID\");\n return this.#child.pid;\n }\n\n get stderr(): string {\n return this.#stderr;\n }\n\n onFrame(listener: (frame: PiFrame) => void): () => void {\n this.#listeners.add(listener);\n return () => this.#listeners.delete(listener);\n }\n\n onExit(listener: (error: Error | null) => void): () => void {\n this.#exitListeners.add(listener);\n return () => this.#exitListeners.delete(listener);\n }\n\n async getState(): Promise<PiState> {\n const frame = await this.request({ type: \"get_state\" });\n return frame.data as unknown as PiState;\n }\n\n async prompt(message: string): Promise<void> {\n await this.request({ type: \"prompt\", message, streamingBehavior: \"steer\" });\n }\n\n async compact(): Promise<PiCompactionResult> {\n let frame: PiFrame;\n try {\n frame = await this.request({ type: \"compact\" });\n } catch (error: unknown) {\n if (!(error instanceof PiRpcRejectedError)) throw error;\n const code =\n error.message === \"Already compacted\" || error.message.startsWith(\"Nothing to compact\")\n ? \"nothing_to_compact\"\n : \"compaction_failed\";\n throw new PiCompactionError(code);\n }\n const tokensBefore = frame.data?.tokensBefore;\n const estimatedTokensAfter = frame.data?.estimatedTokensAfter;\n if (\n typeof tokensBefore !== \"number\" ||\n !Number.isFinite(tokensBefore) ||\n tokensBefore < 0 ||\n (estimatedTokensAfter !== undefined &&\n (typeof estimatedTokensAfter !== \"number\" ||\n !Number.isFinite(estimatedTokensAfter) ||\n estimatedTokensAfter < 0))\n ) {\n throw new Error(\"Pi returned an invalid compaction result\");\n }\n return {\n tokensBefore,\n ...(estimatedTokensAfter === undefined ? {} : { estimatedTokensAfter }),\n };\n }\n\n async getLastAssistantText(): Promise<string | null> {\n const frame = await this.request({ type: \"get_last_assistant_text\" });\n return typeof frame.data?.text === \"string\" ? frame.data.text : null;\n }\n\n async request(command: Record<string, unknown>, timeoutMs = 15_000): Promise<PiFrame> {\n if (this.#child.exitCode !== null) throw new Error(\"Pi process is not running\");\n const id = randomUUID();\n const response = new Promise<PiFrame>((resolveResponse, rejectResponse) => {\n const timer = setTimeout(() => {\n this.#responses.delete(id);\n rejectResponse(new Error(\"Pi RPC request timed out\"));\n }, timeoutMs);\n this.#responses.set(id, { resolve: resolveResponse, reject: rejectResponse, timer });\n });\n try {\n await this.#write({ ...command, id });\n } catch (error: unknown) {\n const waiter = this.#responses.get(id);\n if (waiter !== undefined) {\n clearTimeout(waiter.timer);\n this.#responses.delete(id);\n waiter.reject(error instanceof Error ? error : new Error(\"Pi RPC write failed\"));\n }\n }\n const frame = await response;\n if (frame.success !== true) {\n throw new PiRpcRejectedError(frame.error ?? `Pi rejected ${String(command.type)}`);\n }\n return frame;\n }\n\n async stop(): Promise<void> {\n if (this.#stopping) {\n if (!(await this.#waitForExit(1_000))) {\n throw new Error(`Pi process group ${String(this.pid)} is still running`);\n }\n return;\n }\n this.#stopping = true;\n if (this.#child.exitCode === null) this.#child.stdin.end();\n if (await this.#waitForExit(500)) return;\n signalProcessTree(this.pid, \"SIGTERM\");\n if (await this.#waitForExit(1_000)) return;\n signalProcessTree(this.pid, \"SIGKILL\");\n if (!(await this.#waitForExit(1_000))) {\n throw new Error(`Pi process group ${String(this.pid)} did not exit after SIGKILL`);\n }\n }\n\n async #waitForExit(timeoutMs: number): Promise<boolean> {\n if (!(await waitForProcessGroupExit(this.pid, timeoutMs))) return false;\n await this.#exitHandled;\n return true;\n }\n\n async #write(frame: PiFrame): Promise<void> {\n if (this.#child.stdin.write(`${JSON.stringify(frame)}\\n`)) return;\n await once(this.#child.stdin, \"drain\");\n }\n\n #consumeStdout(chunk: Buffer): void {\n this.#stdoutBuffer = Buffer.concat([this.#stdoutBuffer, chunk]);\n while (true) {\n const newline = this.#stdoutBuffer.indexOf(0x0a);\n if (newline < 0) {\n if (this.#stdoutBuffer.length > this.#maxStdoutFrameBytes) {\n signalProcessTree(this.pid, \"SIGTERM\");\n }\n return;\n }\n if (newline > this.#maxStdoutFrameBytes) {\n signalProcessTree(this.pid, \"SIGTERM\");\n return;\n }\n let lineBytes = this.#stdoutBuffer.subarray(0, newline);\n this.#stdoutBuffer = this.#stdoutBuffer.subarray(newline + 1);\n if (lineBytes.at(-1) === 0x0d) lineBytes = lineBytes.subarray(0, -1);\n if (lineBytes.length === 0) continue;\n let frame: PiFrame;\n try {\n const line = new TextDecoder(\"utf-8\", { fatal: true }).decode(lineBytes);\n frame = JSON.parse(line) as PiFrame;\n } catch {\n signalProcessTree(this.pid, \"SIGTERM\");\n return;\n }\n if (\n frame.type === \"extension_ui_request\" &&\n typeof frame.id === \"string\" &&\n [\"select\", \"confirm\", \"input\", \"editor\"].includes(String(frame.method))\n ) {\n void this.#write({ type: \"extension_ui_response\", id: frame.id, cancelled: true }).catch(\n () => undefined,\n );\n }\n if (frame.type === \"response\" && frame.id !== undefined) {\n const waiter = this.#responses.get(frame.id);\n if (waiter !== undefined) {\n clearTimeout(waiter.timer);\n this.#responses.delete(frame.id);\n waiter.resolve(frame);\n }\n }\n for (const listener of this.#listeners) listener(frame);\n }\n }\n\n #handleExit(code: number | null, signal: NodeJS.Signals | null, cause?: Error): void {\n if (this.#handledExit) return;\n this.#handledExit = true;\n const error =\n this.#stopping && (code === 0 || signal === \"SIGTERM\")\n ? null\n : (cause ??\n new Error(`Pi exited unexpectedly (code=${String(code)}, signal=${String(signal)})`));\n try {\n for (const waiter of this.#responses.values()) {\n clearTimeout(waiter.timer);\n waiter.reject(error ?? new Error(\"Pi stopped before responding\"));\n }\n this.#responses.clear();\n for (const listener of this.#exitListeners) listener(error);\n } finally {\n this.#resolveExitHandled();\n }\n }\n}\n", "import { readFileSync, readdirSync } from \"node:fs\";\n\nexport function signalProcessTree(pid: number, signal: NodeJS.Signals): void {\n try {\n if (process.platform === \"win32\") process.kill(pid, signal);\n else process.kill(-pid, signal);\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code !== \"ESRCH\") throw error;\n }\n}\n\nexport function isProcessAlive(pid: number): boolean {\n if (process.platform === \"linux\") {\n const record = readLinuxProcess(pid);\n if (record === null) return false;\n if (record !== undefined) return isRunningState(record.state);\n }\n return canSignal(pid);\n}\n\nexport function isProcessGroupAlive(processGroupId: number): boolean {\n if (process.platform === \"win32\") return isProcessAlive(processGroupId);\n if (process.platform === \"linux\") {\n try {\n for (const entry of readdirSync(\"/proc\")) {\n if (!/^\\d+$/.test(entry)) continue;\n const record = readLinuxProcess(Number(entry));\n if (\n record !== null &&\n record !== undefined &&\n record.processGroupId === processGroupId &&\n isRunningState(record.state)\n ) {\n return true;\n }\n }\n return false;\n } catch {\n // Fall back to the portable signal probe if procfs is unavailable.\n }\n }\n return canSignal(-processGroupId);\n}\n\nexport async function waitForProcessExit(pid: number, timeoutMs = 1_000): Promise<boolean> {\n return waitUntilGone(() => isProcessAlive(pid), timeoutMs);\n}\n\nexport async function waitForProcessGroupExit(\n processGroupId: number,\n timeoutMs = 1_000,\n): Promise<boolean> {\n return waitUntilGone(() => isProcessGroupAlive(processGroupId), timeoutMs);\n}\n\nfunction readLinuxProcess(\n pid: number,\n): { readonly state: string; readonly processGroupId: number } | null | undefined {\n try {\n const stat = readFileSync(`/proc/${String(pid)}/stat`, \"utf8\");\n const commandEnd = stat.lastIndexOf(\")\");\n if (commandEnd < 0) return undefined;\n const fields = stat\n .slice(commandEnd + 2)\n .trim()\n .split(/\\s+/);\n const state = fields[0];\n const processGroupId = Number(fields[2]);\n if (state === undefined || !Number.isSafeInteger(processGroupId)) return undefined;\n return { state, processGroupId };\n } catch (error: unknown) {\n if ((error as NodeJS.ErrnoException).code === \"ENOENT\") return null;\n return undefined;\n }\n}\n\nfunction isRunningState(state: string): boolean {\n return state !== \"Z\" && state !== \"X\";\n}\n\nfunction canSignal(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch (error: unknown) {\n return (error as NodeJS.ErrnoException).code === \"EPERM\";\n }\n}\n\nasync function waitUntilGone(isAlive: () => boolean, timeoutMs: number): Promise<boolean> {\n const deadline = Date.now() + timeoutMs;\n while (Date.now() < deadline) {\n if (!isAlive()) return true;\n await new Promise((resolveDelay) => setTimeout(resolveDelay, 25));\n }\n return !isAlive();\n}\n", "import type { AgentLaunchProfile } from \"./launch-profile.js\";\nimport { PiProcess } from \"./process.js\";\n\nexport type PiStdoutSink = (bytes: Buffer) => void;\n\nexport type PiExecutionUnavailableCode =\n | \"pi_not_found\"\n | \"pi_not_executable\"\n | \"pi_version_unavailable\"\n | \"pi_version_unsupported\"\n | \"pi_installation_changed\";\n\nexport class PiExecutionUnavailableError extends Error {\n constructor(readonly code: PiExecutionUnavailableCode) {\n super(code);\n this.name = \"PiExecutionUnavailableError\";\n }\n}\n\nexport interface PiLauncher {\n readonly artifactId: string;\n preflight?(): Promise<void>;\n start(\n profile: AgentLaunchProfile,\n restore: boolean,\n onSpawn?: (pid: number) => Promise<void>,\n onStdoutBytes?: PiStdoutSink,\n ): Promise<PiProcess>;\n}\n\nexport interface RealPiLauncherOptions {\n readonly executable: string;\n readonly artifactId: string;\n readonly argvPrefix?: readonly string[];\n readonly env?: NodeJS.ProcessEnv;\n readonly onStart?: (pid: number) => void;\n readonly maxStdoutFrameBytes?: number;\n readonly preflight?: () => Promise<void>;\n}\n\nexport class RealPiLauncher implements PiLauncher {\n readonly artifactId: string;\n\n constructor(private readonly options: RealPiLauncherOptions) {\n this.artifactId = options.artifactId;\n }\n\n preflight(): Promise<void> {\n return this.options.preflight?.() ?? Promise.resolve();\n }\n\n async start(\n profile: AgentLaunchProfile,\n restore: boolean,\n onSpawn?: (pid: number) => Promise<void>,\n onStdoutBytes?: PiStdoutSink,\n ): Promise<PiProcess> {\n const piArgv = restore ? profile.restorePiArgv : profile.userPiArgv;\n if (piArgv === null) throw new Error(\"Agent has no observed Pi session to restore\");\n const process = await PiProcess.start({\n executable: this.options.executable,\n ...(this.options.argvPrefix === undefined ? {} : { argvPrefix: this.options.argvPrefix }),\n piArgv,\n cwd: profile.cwd,\n ...(this.options.env === undefined ? {} : { env: this.options.env }),\n ...(this.options.maxStdoutFrameBytes === undefined\n ? {}\n : { maxStdoutFrameBytes: this.options.maxStdoutFrameBytes }),\n ...(onSpawn === undefined ? {} : { onSpawn }),\n ...(onStdoutBytes === undefined ? {} : { onStdoutBytes }),\n });\n this.options.onStart?.(process.pid);\n return process;\n }\n}\n", "import { type PiRuntimeIdentity, samePiRuntimeIdentity } from \"../protocol/pi-identity.js\";\nimport {\n ExternalPiResolutionError,\n externalPiExecutionEnvironment,\n resolveExternalPiInstallation,\n type PiInstallation,\n} from \"./external-installation.js\";\nimport { PiExecutionUnavailableError, RealPiLauncher, type PiLauncher } from \"./adapter.js\";\n\nexport interface ExternalPiTarget {\n readonly launcher: PiLauncher;\n readonly identity: PiRuntimeIdentity;\n}\n\nexport async function createExternalPiTarget(\n env: NodeJS.ProcessEnv,\n maxStdoutFrameBytes?: number,\n): Promise<ExternalPiTarget> {\n const selectedPath = env.PIFLEET_PI_EXECUTABLE;\n const nodePath = env.PIFLEET_PI_NODE;\n if (selectedPath === undefined || nodePath === undefined) {\n return unavailableTarget(\n selectedPath ?? \"<unconfigured>\",\n nodePath ?? \"<unconfigured>\",\n \"pi_not_found\",\n );\n }\n\n let initial: PiInstallation;\n try {\n initial = await resolveExternalPiInstallation({\n env: { ...env, PIFLEET_PI_EXECUTABLE: selectedPath },\n nodePath,\n });\n } catch (error: unknown) {\n return unavailableTarget(selectedPath, nodePath, resolutionCode(error));\n }\n const identity = installationIdentity(initial);\n const launcher = new RealPiLauncher({\n executable: initial.selectedPath,\n artifactId: \"external-pi\",\n env: externalPiExecutionEnvironment(env, initial.selectedPath, initial.nodePath),\n ...(maxStdoutFrameBytes === undefined ? {} : { maxStdoutFrameBytes }),\n preflight: async () => {\n let current: PiInstallation;\n try {\n current = await resolveExternalPiInstallation({\n env: { ...env, PIFLEET_PI_EXECUTABLE: selectedPath },\n nodePath,\n });\n } catch (error: unknown) {\n throw new PiExecutionUnavailableError(resolutionCode(error));\n }\n if (!samePiRuntimeIdentity(identity, installationIdentity(current))) {\n throw new PiExecutionUnavailableError(\"pi_installation_changed\");\n }\n },\n });\n return { launcher, identity };\n}\n\nexport function installationIdentity(installation: PiInstallation): PiRuntimeIdentity {\n return {\n mode: \"external\",\n selectedPath: installation.selectedPath,\n nodePath: installation.nodePath,\n realPath: installation.realPath,\n version: installation.version,\n fingerprint: installation.fingerprint,\n };\n}\n\nfunction unavailableTarget(\n selectedPath: string,\n nodePath: string,\n code: PiExecutionUnavailableError[\"code\"],\n): ExternalPiTarget {\n const launcher: PiLauncher = {\n artifactId: \"external-pi\",\n async preflight() {\n throw new PiExecutionUnavailableError(code);\n },\n async start() {\n throw new PiExecutionUnavailableError(code);\n },\n };\n return {\n launcher,\n identity: {\n mode: \"external\",\n selectedPath,\n nodePath,\n realPath: selectedPath,\n version: \"unavailable\",\n fingerprint: \"unavailable\",\n },\n };\n}\n\nfunction resolutionCode(error: unknown): PiExecutionUnavailableError[\"code\"] {\n if (error instanceof ExternalPiResolutionError) {\n if (error.code === \"invalid_arguments\") return \"pi_not_executable\";\n return error.code;\n }\n return \"pi_version_unavailable\";\n}\n", "import { homedir, tmpdir } from \"node:os\";\nimport { join, resolve } from \"node:path\";\n\nexport interface FleetPaths {\n readonly runtimeRoot: string;\n readonly stateRoot: string;\n readonly socketPath: string;\n readonly databasePath: string;\n}\n\nexport function resolveApplicationRoot(env: NodeJS.ProcessEnv = process.env): string {\n return (\n env.PIFLEET_APPLICATION_ROOT ??\n (process.platform === \"darwin\"\n ? join(homedir(), \"Library\", \"Application Support\", \"pi-fleet\", \"runtime\")\n : join(env.XDG_DATA_HOME ?? join(homedir(), \".local\", \"share\"), \"pi-fleet\"))\n );\n}\n\nexport function resolveFleetPaths(env: NodeJS.ProcessEnv = process.env): FleetPaths {\n const explicitRoot = env.PIFLEET_STATE_ROOT;\n if (explicitRoot !== undefined) {\n const root = resolve(explicitRoot);\n return {\n runtimeRoot: root,\n stateRoot: root,\n socketPath: join(root, \"control.sock\"),\n databasePath: join(root, \"fleet.sqlite\"),\n };\n }\n\n const runtimeRoot = join(\n env.XDG_RUNTIME_DIR ?? tmpdir(),\n `pifleet-${process.getuid?.() ?? \"user\"}`,\n );\n const stateRoot =\n process.platform === \"darwin\"\n ? join(homedir(), \"Library\", \"Application Support\", \"pi-fleet\")\n : join(env.XDG_STATE_HOME ?? join(homedir(), \".local\", \"state\"), \"pi-fleet\");\n return {\n runtimeRoot,\n stateRoot,\n socketPath: join(runtimeRoot, \"control.sock\"),\n databasePath: join(stateRoot, \"fleet.sqlite\"),\n };\n}\n", "import { once } from \"node:events\";\nimport { chmod, lstat, mkdir, unlink } from \"node:fs/promises\";\nimport { createConnection, createServer, type Server, type Socket } from \"node:net\";\nimport { dirname } from \"node:path\";\n\nimport type {\n CompactInput,\n CreateInput,\n DestroyInput,\n FleetClientError,\n ReceiveInput,\n SendInput,\n StatusInput,\n} from \"../client/fleet-client.js\";\nimport { parseProtocolRequest } from \"../protocol/validation.js\";\nimport { readJsonLines, writeJsonLine } from \"../protocol/jsonl.js\";\nimport type { PiRuntimeIdentity } from \"../protocol/pi-identity.js\";\nimport { MAX_PROTOCOL_FRAME_BYTES, PROTOCOL_VERSION } from \"../protocol/version.js\";\nimport { DEFAULT_RUNTIME_LIMITS, type RuntimeLimits } from \"../shared/runtime-limits.js\";\nimport { err, type Result } from \"../shared/result.js\";\nimport type { FleetService } from \"./fleet-service.js\";\nimport { RpcWatchError } from \"./rpc-watch-hub.js\";\n\nexport interface ControlServer {\n readonly socketPath: string;\n close(): Promise<void>;\n}\n\nexport async function startControlServer(options: {\n readonly socketPath: string;\n readonly service: FleetService | Promise<FleetService>;\n readonly limits?: Pick<RuntimeLimits, \"maxProtocolFrameBytes\">;\n}): Promise<ControlServer> {\n await mkdir(dirname(options.socketPath), { recursive: true, mode: 0o700 });\n await prepareSocketPath(options.socketPath);\n\n const service = Promise.resolve(options.service);\n const maxFrameBytes =\n options.limits?.maxProtocolFrameBytes ?? DEFAULT_RUNTIME_LIMITS.maxProtocolFrameBytes;\n const server = createServer((socket) => handleConnection(socket, service, maxFrameBytes));\n server.listen(options.socketPath);\n await new Promise<void>((resolveListen, rejectListen) => {\n server.once(\"listening\", resolveListen);\n server.once(\"error\", rejectListen);\n });\n await chmod(options.socketPath, 0o600);\n\n return {\n socketPath: options.socketPath,\n async close() {\n await closeServer(server);\n await unlink(options.socketPath).catch((error: NodeJS.ErrnoException) => {\n if (error.code !== \"ENOENT\") throw error;\n });\n },\n };\n}\n\nfunction handleConnection(\n socket: Socket,\n service: Promise<FleetService>,\n maxFrameBytes: number,\n): void {\n let handled = false;\n const abort = new AbortController();\n socket.once(\"close\", () => abort.abort());\n const stopReading = readJsonLines(\n socket,\n (value) => {\n if (handled) return;\n handled = true;\n stopReading();\n void service\n .then((readyService) => dispatch(value, readyService, socket, abort.signal, maxFrameBytes))\n .catch((error: unknown) => {\n if (socket.destroyed) return;\n const invalidRequest = error instanceof InvalidRequestError;\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: requestIdFrom(value),\n ok: false,\n error: invalidRequest\n ? { code: \"invalid_request\", message: error.message }\n : { code: \"internal_error\", message: \"pi-fleet encountered an internal error.\" },\n });\n socket.end();\n });\n },\n (error) => {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: \"unknown\",\n ok: false,\n error: { code: \"invalid_request\", message: error.message },\n });\n socket.end();\n },\n maxFrameBytes,\n );\n}\n\nasync function dispatch(\n value: unknown,\n service: FleetService,\n socket: Socket,\n connectionSignal: AbortSignal,\n maxFrameBytes: number,\n): Promise<void> {\n let request: ReturnType<typeof parseProtocolRequest>;\n try {\n request = parseProtocolRequest(value);\n } catch (error: unknown) {\n throw new InvalidRequestError(\n error instanceof Error ? error.message : \"Invalid protocol request\",\n );\n }\n const operationId = request.operation?.operationId;\n let result: Result<unknown, FleetClientError>;\n\n switch (request.method) {\n case \"agent.create\":\n result = await service.create(\n asCreateInput(request.params),\n requireOperation(operationId),\n requirePiIdentity(request.runtime?.pi),\n );\n break;\n case \"agent.send\":\n result = await service.send(\n asSendInput(request.params),\n requireOperation(operationId),\n requirePiIdentity(request.runtime?.pi),\n );\n break;\n case \"agent.receive\":\n result = await receiveWithTimeout(\n service,\n asNamedInput(request.params),\n numberParam(request.params, \"timeoutMs\"),\n connectionSignal,\n );\n break;\n case \"agent.status\":\n result = await service.status(asNamedInput(request.params));\n break;\n case \"agent.list\":\n result = await service.list();\n break;\n case \"agent.watch\": {\n const watch = await service.openWatch(asNamedInput(request.params), connectionSignal);\n if (!watch.ok) {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"error\",\n error: watch.error,\n });\n socket.end();\n return;\n }\n writeJsonLine(socket, { v: PROTOCOL_VERSION, requestId: request.requestId, stream: \"ready\" });\n try {\n const outgoingFrameLimit = Math.min(maxFrameBytes, MAX_PROTOCOL_FRAME_BYTES);\n const maxRawChunkBytes = Math.max(1, Math.floor((outgoingFrameLimit - 1024) * 0.75));\n for await (const chunk of watch.value) {\n for (let offset = 0; offset < chunk.length; offset += maxRawChunkBytes) {\n const part = chunk.subarray(offset, offset + maxRawChunkBytes);\n const writable = writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"chunk\",\n data: part.toString(\"base64\"),\n });\n if (!writable) await once(socket, \"drain\");\n }\n }\n if (!socket.destroyed) {\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"end\",\n });\n socket.end();\n }\n } catch (error: unknown) {\n if (!socket.destroyed) {\n const watchError =\n error instanceof RpcWatchError\n ? { code: error.code, message: error.message }\n : { code: \"internal_error\", message: \"Raw Pi RPC watch failed.\" };\n writeJsonLine(socket, {\n v: PROTOCOL_VERSION,\n requestId: request.requestId,\n stream: \"error\",\n error: watchError,\n });\n socket.end();\n }\n }\n return;\n }\n case \"agent.destroy\":\n result = await service.destroy(asNamedInput(request.params), requireOperation(operationId));\n break;\n case \"agent.compact\":\n result = await service.compact(\n asNamedInput(request.params),\n requireOperation(operationId),\n requirePiIdentity(request.runtime?.pi),\n );\n break;\n }\n\n writeJsonLine(\n socket,\n result.ok\n ? { v: PROTOCOL_VERSION, requestId: request.requestId, ok: true, result: result.value }\n : { v: PROTOCOL_VERSION, requestId: request.requestId, ok: false, error: result.error },\n );\n socket.end();\n}\n\nfunction asCreateInput(params: Record<string, unknown>): CreateInput {\n const name = stringParam(params, \"name\");\n const cwd = stringParam(params, \"cwd\");\n const instructions = params.instructions;\n const piArgv = params.piArgv;\n if (instructions !== undefined && typeof instructions !== \"string\") {\n throw new InvalidRequestError(\"instructions must be a string\");\n }\n if (!Array.isArray(piArgv) || !piArgv.every((token) => typeof token === \"string\")) {\n throw new InvalidRequestError(\"piArgv must be an array of strings\");\n }\n return { name, cwd, piArgv, ...(instructions === undefined ? {} : { instructions }) };\n}\n\nfunction asSendInput(params: Record<string, unknown>): SendInput {\n return { name: stringParam(params, \"name\"), message: stringParam(params, \"message\") };\n}\n\nfunction asNamedInput(\n params: Record<string, unknown>,\n): ReceiveInput & StatusInput & DestroyInput & CompactInput {\n return { name: stringParam(params, \"name\") };\n}\n\nasync function receiveWithTimeout(\n service: FleetService,\n input: ReceiveInput,\n timeoutMs: number | undefined,\n connectionSignal: AbortSignal,\n): Promise<Result<unknown, FleetClientError>> {\n const abort = new AbortController();\n let timedOut = false;\n const onConnectionAbort = () => abort.abort();\n connectionSignal.addEventListener(\"abort\", onConnectionAbort, { once: true });\n const timer =\n timeoutMs === undefined\n ? undefined\n : setTimeout(() => {\n timedOut = true;\n abort.abort();\n }, timeoutMs);\n try {\n return await service.receive(input, abort.signal);\n } catch (error: unknown) {\n if (timedOut) {\n return err({ code: \"timeout\", message: \"Agent did not become idle before timeout.\" });\n }\n throw error;\n } finally {\n if (timer !== undefined) clearTimeout(timer);\n connectionSignal.removeEventListener(\"abort\", onConnectionAbort);\n }\n}\n\nfunction numberParam(params: Record<string, unknown>, key: string): number | undefined {\n const value = params[key];\n if (value === undefined) return undefined;\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new InvalidRequestError(`${key} must be a non-negative number`);\n }\n return value;\n}\n\nfunction stringParam(params: Record<string, unknown>, key: string): string {\n const value = params[key];\n if (typeof value !== \"string\") throw new InvalidRequestError(`${key} must be a string`);\n return value;\n}\n\nfunction requireOperation(operationId: string | undefined): string {\n if (operationId === undefined)\n throw new InvalidRequestError(\"Mutation requires operation identity\");\n return operationId;\n}\n\nfunction requirePiIdentity(identity: PiRuntimeIdentity | undefined): PiRuntimeIdentity {\n if (identity === undefined)\n throw new InvalidRequestError(\"Mutation requires Pi runtime identity\");\n return identity;\n}\n\nclass InvalidRequestError extends Error {\n override readonly name = \"InvalidRequestError\";\n}\n\nfunction requestIdFrom(value: unknown): string {\n if (typeof value !== \"object\" || value === null || !(\"requestId\" in value)) return \"unknown\";\n return typeof value.requestId === \"string\" ? value.requestId : \"unknown\";\n}\n\nasync function prepareSocketPath(socketPath: string): Promise<void> {\n const stats = await lstat(socketPath).catch((error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") return null;\n throw error;\n });\n if (stats === null) return;\n if (!stats.isSocket()) throw new Error(`Refusing to replace non-socket path ${socketPath}`);\n if (await canConnect(socketPath))\n throw new Error(`A pi-fleet runtime already owns ${socketPath}`);\n await unlink(socketPath);\n}\n\nasync function canConnect(socketPath: string): Promise<boolean> {\n return new Promise((resolveConnect) => {\n const socket = createConnection(socketPath);\n const timer = setTimeout(() => {\n socket.destroy();\n resolveConnect(false);\n }, 200);\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n socket.destroy();\n resolveConnect(true);\n });\n socket.once(\"error\", () => {\n clearTimeout(timer);\n resolveConnect(false);\n });\n });\n}\n\nasync function closeServer(server: Server): Promise<void> {\n if (!server.listening) return;\n await new Promise<void>((resolveClose, rejectClose) => {\n server.close((error) => (error === undefined ? resolveClose() : rejectClose(error)));\n });\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 as _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", "export const PROTOCOL_VERSION = 2 as const;\nexport const MAX_PROTOCOL_FRAME_BYTES = 1024 * 1024;\n", "import { Type, type Static } from \"@sinclair/typebox\";\n\nimport { PiRuntimeIdentitySchema } from \"./pi-identity.js\";\nimport { PROTOCOL_VERSION } from \"./version.js\";\n\nexport const OperationSchema = Type.Object(\n { operationId: Type.String({ minLength: 1 }), createdAt: Type.String({ minLength: 1 }) },\n { additionalProperties: false },\n);\n\nexport const RequestSchema = Type.Object(\n {\n v: Type.Literal(PROTOCOL_VERSION),\n requestId: Type.String({ minLength: 1 }),\n method: Type.Union([\n Type.Literal(\"agent.create\"),\n Type.Literal(\"agent.send\"),\n Type.Literal(\"agent.receive\"),\n Type.Literal(\"agent.status\"),\n Type.Literal(\"agent.list\"),\n Type.Literal(\"agent.watch\"),\n Type.Literal(\"agent.destroy\"),\n Type.Literal(\"agent.compact\"),\n ]),\n params: Type.Record(Type.String(), Type.Unknown()),\n operation: Type.Optional(OperationSchema),\n runtime: Type.Optional(\n Type.Object({ pi: PiRuntimeIdentitySchema }, { additionalProperties: false }),\n ),\n },\n { additionalProperties: false },\n);\n\nexport type ProtocolRequest = Static<typeof RequestSchema>;\n\nexport interface ProtocolSuccess {\n readonly v: typeof PROTOCOL_VERSION;\n readonly requestId: string;\n readonly ok: true;\n readonly result: unknown;\n}\n\nexport interface ProtocolFailure {\n readonly v: typeof PROTOCOL_VERSION;\n readonly requestId: string;\n readonly ok: false;\n readonly error: {\n readonly code: string;\n readonly message: string;\n readonly details?: Record<string, unknown>;\n };\n}\n\nexport type ProtocolResponse = ProtocolSuccess | ProtocolFailure;\n\nexport type ProtocolStreamFrame =\n | { readonly v: typeof PROTOCOL_VERSION; readonly requestId: string; readonly stream: \"ready\" }\n | {\n readonly v: typeof PROTOCOL_VERSION;\n readonly requestId: string;\n readonly stream: \"chunk\";\n readonly data: string;\n }\n | { readonly v: typeof PROTOCOL_VERSION; readonly requestId: string; readonly stream: \"end\" }\n | {\n readonly v: typeof PROTOCOL_VERSION;\n readonly requestId: string;\n readonly stream: \"error\";\n readonly error: { readonly code: string; readonly message: string };\n };\n", "import { Value } from \"@sinclair/typebox/value\";\n\nimport { RequestSchema, type ProtocolRequest } from \"./envelope.js\";\n\nexport function parseProtocolRequest(value: unknown): ProtocolRequest {\n if (!Value.Check(RequestSchema, value)) {\n const first = Value.Errors(RequestSchema, value).First();\n throw new Error(\n first === undefined ? \"Invalid protocol request\" : `Invalid protocol request: ${first.path}`,\n );\n }\n return value;\n}\n", "import type { Socket } from \"node:net\";\n\nimport { MAX_PROTOCOL_FRAME_BYTES } from \"./version.js\";\n\nexport function readJsonLines(\n socket: Socket,\n onValue: (value: unknown) => void,\n onError: (error: Error) => void,\n maxFrameBytes = MAX_PROTOCOL_FRAME_BYTES,\n): () => void {\n let buffer = Buffer.alloc(0);\n const onData = (chunk: Buffer) => {\n buffer = Buffer.concat([buffer, chunk]);\n while (true) {\n const newline = buffer.indexOf(0x0a);\n if (newline < 0) {\n if (buffer.length > maxFrameBytes) {\n onError(new Error(\"Protocol frame exceeds maximum size\"));\n }\n return;\n }\n if (newline > maxFrameBytes) {\n onError(new Error(\"Protocol frame exceeds maximum size\"));\n return;\n }\n const line = buffer.subarray(0, newline).toString(\"utf8\").replace(/\\r$/, \"\");\n buffer = buffer.subarray(newline + 1);\n if (line.length === 0) continue;\n try {\n onValue(JSON.parse(line));\n } catch {\n onError(new Error(\"Malformed JSON protocol frame\"));\n return;\n }\n }\n };\n socket.on(\"data\", onData);\n return () => socket.off(\"data\", onData);\n}\n\nexport function writeJsonLine(socket: Socket, value: unknown): boolean {\n return socket.write(`${JSON.stringify(value)}\\n`);\n}\n", "const KIBIBYTE = 1024;\nconst MEBIBYTE = 1024 * KIBIBYTE;\n\nexport interface RuntimeLimits {\n readonly maxResidentProcesses: number;\n readonly maxMessageBytes: number;\n readonly maxProtocolFrameBytes: number;\n readonly maxPiFrameBytes: number;\n readonly maxWatchers: number;\n readonly maxWatchQueuedBytes: number;\n}\n\nexport const DEFAULT_RUNTIME_LIMITS: RuntimeLimits = Object.freeze({\n maxResidentProcesses: 32,\n maxMessageBytes: 512 * KIBIBYTE,\n maxProtocolFrameBytes: MEBIBYTE,\n maxPiFrameBytes: 8 * MEBIBYTE,\n maxWatchers: 128,\n maxWatchQueuedBytes: MEBIBYTE,\n});\n\nconst ENV_KEYS: Readonly<Record<keyof RuntimeLimits, string>> = {\n maxResidentProcesses: \"PIFLEET_MAX_RESIDENT_PROCESSES\",\n maxMessageBytes: \"PIFLEET_MAX_MESSAGE_BYTES\",\n maxProtocolFrameBytes: \"PIFLEET_MAX_PROTOCOL_FRAME_BYTES\",\n maxPiFrameBytes: \"PIFLEET_MAX_PI_FRAME_BYTES\",\n maxWatchers: \"PIFLEET_MAX_WATCHERS\",\n maxWatchQueuedBytes: \"PIFLEET_MAX_WATCH_QUEUED_BYTES\",\n};\n\nexport function runtimeLimitsFromEnv(env: NodeJS.ProcessEnv = process.env): RuntimeLimits {\n return {\n maxResidentProcesses: positiveInteger(env, \"maxResidentProcesses\"),\n maxMessageBytes: positiveInteger(env, \"maxMessageBytes\"),\n maxProtocolFrameBytes: positiveInteger(env, \"maxProtocolFrameBytes\"),\n maxPiFrameBytes: positiveInteger(env, \"maxPiFrameBytes\"),\n maxWatchers: positiveInteger(env, \"maxWatchers\"),\n maxWatchQueuedBytes: positiveInteger(env, \"maxWatchQueuedBytes\"),\n };\n}\n\nfunction positiveInteger(env: NodeJS.ProcessEnv, key: keyof RuntimeLimits): number {\n const variable = ENV_KEYS[key];\n const raw = env[variable];\n if (raw === undefined || raw.length === 0) return DEFAULT_RUNTIME_LIMITS[key];\n const value = Number(raw);\n if (!Number.isSafeInteger(value) || value <= 0) {\n throw new Error(`${variable} must be a positive integer`);\n }\n return value;\n}\n", "export type Result<Value, Error> =\n | { readonly ok: true; readonly value: Value }\n | { readonly ok: false; readonly error: Error };\n\nexport function ok<Value>(value: Value): Result<Value, never> {\n return { ok: true, value };\n}\n\nexport function err<Error>(error: Error): Result<never, Error> {\n return { ok: false, error };\n}\n", "export type RpcWatchErrorCode =\n | \"watcher_lagged\"\n | \"watcher_capacity_exceeded\"\n | \"pi_start_failed\"\n | \"runtime_interrupted\"\n | \"runtime_unavailable\";\n\nexport class RpcWatchError extends Error {\n constructor(\n readonly code: RpcWatchErrorCode,\n message: string = code,\n ) {\n super(message);\n this.name = \"RpcWatchError\";\n }\n}\n\ninterface WatchSubscription {\n readonly agentName: string;\n readonly signal: AbortSignal;\n readonly queue: Buffer[];\n readonly maxQueuedBytes: number;\n queuedBytes: number;\n incarnationId: string | null;\n ended: boolean;\n terminalError: RpcWatchError | null;\n wake: (() => void) | null;\n onAbort: () => void;\n}\n\nexport class RpcWatchHub {\n readonly #subscriptions = new Map<string, Set<WatchSubscription>>();\n readonly #activeIncarnations = new Map<string, string>();\n\n constructor(\n private readonly limits: { readonly maxWatchers: number; readonly maxQueuedBytes: number },\n ) {}\n\n subscribe(agentName: string, signal: AbortSignal): AsyncIterable<Buffer> {\n if (this.#count() >= this.limits.maxWatchers) {\n throw new RpcWatchError(\"watcher_capacity_exceeded\");\n }\n\n const subscription: WatchSubscription = {\n agentName,\n signal,\n queue: [],\n maxQueuedBytes: this.limits.maxQueuedBytes,\n queuedBytes: 0,\n incarnationId: this.#activeIncarnations.get(agentName) ?? null,\n ended: false,\n terminalError: null,\n wake: null,\n onAbort: () => this.#abort(subscription),\n };\n signal.addEventListener(\"abort\", subscription.onAbort, { once: true });\n if (signal.aborted) subscription.onAbort();\n else {\n const subscriptions = this.#subscriptions.get(agentName) ?? new Set<WatchSubscription>();\n subscriptions.add(subscription);\n this.#subscriptions.set(agentName, subscriptions);\n }\n\n return { [Symbol.asyncIterator]: () => this.#iterator(subscription) };\n }\n\n beginIncarnation(agentName: string, incarnationId: string): (bytes: Buffer) => void {\n this.#activeIncarnations.set(agentName, incarnationId);\n for (const subscription of this.#subscriptions.get(agentName) ?? []) {\n if (subscription.incarnationId === null && !subscription.ended) {\n subscription.incarnationId = incarnationId;\n }\n }\n return (bytes) => this.#publish(agentName, incarnationId, bytes);\n }\n\n endIncarnation(\n agentName: string,\n incarnationId: string,\n error: RpcWatchError | null = null,\n ): void {\n if (this.#activeIncarnations.get(agentName) === incarnationId) {\n this.#activeIncarnations.delete(agentName);\n }\n for (const subscription of [...(this.#subscriptions.get(agentName) ?? [])]) {\n if (subscription.incarnationId === incarnationId) this.#endAfterDrain(subscription, error);\n }\n }\n\n closeAgent(agentName: string, error: RpcWatchError | null = null): void {\n this.#activeIncarnations.delete(agentName);\n for (const subscription of [...(this.#subscriptions.get(agentName) ?? [])]) {\n this.#endAfterDrain(subscription, error);\n }\n }\n\n closeAll(error: RpcWatchError | null = null): void {\n for (const agentName of [...this.#subscriptions.keys()]) this.closeAgent(agentName, error);\n }\n\n #publish(agentName: string, incarnationId: string, bytes: Buffer): void {\n for (const subscription of [...(this.#subscriptions.get(agentName) ?? [])]) {\n if (subscription.incarnationId !== incarnationId || subscription.ended) continue;\n if (subscription.queuedBytes + bytes.byteLength > subscription.maxQueuedBytes) {\n this.#finish(subscription, new RpcWatchError(\"watcher_lagged\"));\n continue;\n }\n subscription.queue.push(Buffer.from(bytes));\n subscription.queuedBytes += bytes.byteLength;\n subscription.wake?.();\n subscription.wake = null;\n }\n }\n\n async *#iterator(subscription: WatchSubscription): AsyncGenerator<Buffer> {\n try {\n while (true) {\n while (subscription.queue.length > 0) {\n const bytes = subscription.queue.shift()!;\n subscription.queuedBytes -= bytes.byteLength;\n yield bytes;\n }\n if (subscription.terminalError !== null) throw subscription.terminalError;\n if (subscription.ended) return;\n await new Promise<void>((resolve) => {\n subscription.wake = resolve;\n });\n }\n } finally {\n this.#abort(subscription);\n }\n }\n\n #endAfterDrain(subscription: WatchSubscription, error: RpcWatchError | null = null): void {\n if (subscription.ended) return;\n subscription.ended = true;\n subscription.terminalError = error;\n subscription.wake?.();\n subscription.wake = null;\n }\n\n #finish(subscription: WatchSubscription, error: RpcWatchError | null = null): void {\n if (subscription.ended) return;\n subscription.ended = true;\n subscription.terminalError = error;\n subscription.wake?.();\n subscription.wake = null;\n }\n\n #abort(subscription: WatchSubscription): void {\n subscription.queue.length = 0;\n subscription.queuedBytes = 0;\n subscription.ended = true;\n subscription.terminalError = null;\n this.#remove(subscription);\n subscription.wake?.();\n subscription.wake = null;\n }\n\n #remove(subscription: WatchSubscription): void {\n subscription.signal.removeEventListener(\"abort\", subscription.onAbort);\n const subscriptions = this.#subscriptions.get(subscription.agentName);\n if (subscriptions === undefined) return;\n subscriptions.delete(subscription);\n if (subscriptions.size === 0) this.#subscriptions.delete(subscription.agentName);\n }\n\n #count(): number {\n let count = 0;\n for (const subscriptions of this.#subscriptions.values()) count += subscriptions.size;\n return count;\n }\n}\n", "import { randomUUID } from \"node:crypto\";\n\nimport type {\n CompactInput,\n CompactResult,\n CreateInput,\n CreateResult,\n DestroyInput,\n DestroyResult,\n FleetClientError,\n ListResult,\n ReceiveInput,\n ReceiveResult,\n SendInput,\n SendResult,\n StatusInput,\n StatusResult,\n} from \"../client/fleet-client.js\";\nimport { PiExecutionUnavailableError, type PiLauncher } from \"../pi/adapter.js\";\nimport { createLaunchProfile, observeSession } from \"../pi/launch-profile.js\";\nimport { PiCleanupUncertainError, PiCompactionError, type PiProcess } from \"../pi/process.js\";\nimport { waitForProcessGroupExit } from \"../platform/runtime/process-tree.js\";\nimport {\n MANAGED_PI_RUNTIME_IDENTITY,\n samePiRuntimeIdentity,\n type PiRuntimeIdentity,\n} from \"../protocol/pi-identity.js\";\nimport { err, ok, type Result } from \"../shared/result.js\";\nimport { DEFAULT_RUNTIME_LIMITS, type RuntimeLimits } from \"../shared/runtime-limits.js\";\nimport type { FleetStore, StoredAgent } from \"../store/fleet-store.js\";\nimport { AgentCoordinator } from \"./agent-coordinator.js\";\nimport { RpcWatchError, RpcWatchHub } from \"./rpc-watch-hub.js\";\n\ninterface RecordedOperation {\n readonly method: \"create\" | \"send\" | \"destroy\" | \"compact\";\n readonly fingerprint: string;\n readonly result: Result<unknown, FleetClientError>;\n}\n\nexport interface FleetServiceOptions {\n readonly launcher?: PiLauncher;\n readonly now?: () => string;\n readonly limits?: Partial<RuntimeLimits>;\n readonly piIdentity?: PiRuntimeIdentity;\n}\n\nexport class FleetService {\n readonly #operations = new Map<string, RecordedOperation>();\n readonly #inflightOperations = new Map<\n string,\n {\n readonly method: RecordedOperation[\"method\"];\n readonly fingerprint: string;\n readonly promise: Promise<Result<unknown, FleetClientError>>;\n }\n >();\n readonly #coordinators = new Map<string, AgentCoordinator>();\n readonly #processSlots = new Set<string>();\n readonly #agentLanes = new Map<string, Promise<void>>();\n readonly #sendLanes = new Map<string, Promise<void>>();\n readonly #compactingAgents = new Set<string>();\n readonly #destroyingAgents = new Set<string>();\n readonly #launcher: PiLauncher | undefined;\n readonly #now: () => string;\n readonly #limits: RuntimeLimits;\n readonly #watchHub: RpcWatchHub;\n readonly #piIdentity: PiRuntimeIdentity;\n #closing = false;\n\n constructor(\n private readonly store: FleetStore,\n options: FleetServiceOptions | (() => string) = {},\n ) {\n this.#launcher = typeof options === \"function\" ? undefined : options.launcher;\n this.#now =\n typeof options === \"function\" ? options : (options.now ?? (() => new Date().toISOString()));\n this.#piIdentity =\n typeof options === \"function\"\n ? MANAGED_PI_RUNTIME_IDENTITY\n : (options.piIdentity ?? MANAGED_PI_RUNTIME_IDENTITY);\n this.#limits = {\n ...DEFAULT_RUNTIME_LIMITS,\n ...(typeof options === \"function\" ? {} : options.limits),\n };\n this.#watchHub = new RpcWatchHub({\n maxWatchers: this.#limits.maxWatchers,\n maxQueuedBytes: this.#limits.maxWatchQueuedBytes,\n });\n }\n\n create(\n input: CreateInput,\n operationId: string,\n callerPiIdentity?: PiRuntimeIdentity,\n ): Promise<Result<CreateResult, FleetClientError>> {\n return this.#runOperation(operationId, \"create\", input, () =>\n this.#enqueueAgent(input.name, () => this.#createImpl(input, operationId, callerPiIdentity)),\n );\n }\n\n async #createImpl(\n input: CreateInput,\n operationId: string,\n callerPiIdentity?: PiRuntimeIdentity,\n ): Promise<Result<CreateResult, FleetClientError>> {\n const replay = await this.#operation<CreateResult>(operationId, \"create\", input);\n if (replay !== null) return replay;\n let profile: ReturnType<typeof createLaunchProfile>;\n try {\n profile = createLaunchProfile({\n cwd: input.cwd,\n piArgv: input.piArgv,\n });\n } catch (error: unknown) {\n const result = err<FleetClientError>({\n code: \"invalid_arguments\",\n message: error instanceof Error ? error.message : \"Invalid Pi startup arguments.\",\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n if (\n input.instructions !== undefined &&\n Buffer.byteLength(input.instructions, \"utf8\") > this.#limits.maxMessageBytes\n ) {\n const result = err<FleetClientError>({\n code: \"invalid_arguments\",\n message: `Initial instructions exceed the ${String(this.#limits.maxMessageBytes)} byte limit.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n if ((await this.store.getAgent(input.name)) !== null) {\n const result = err<FleetClientError>({\n code: \"name_taken\",\n message: `Agent ${input.name} already exists.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n const identityFailure = this.#piIdentityFailure(callerPiIdentity);\n if (identityFailure !== null) {\n const result = err<FleetClientError>(identityFailure);\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n const preflightFailure = await this.#piExecutionFailure();\n if (preflightFailure !== null) {\n const result = err<FleetClientError>(preflightFailure);\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n let agent: StoredAgent = {\n summary: {\n id: randomUUID(),\n name: input.name,\n state: this.#launcher === undefined ? \"idle\" : \"restoring\",\n process: { state: this.#launcher === undefined ? \"resident\" : \"starting\" },\n session: { path: null, id: null },\n },\n launch: profile,\n latestAssistantText: null,\n responseObservedAt: null,\n };\n if (!(await this.store.createAgent(agent))) {\n const result = err<FleetClientError>({\n code: \"name_taken\",\n message: `Agent ${input.name} already exists.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n await this.#recordOperationTarget(operationId, agent);\n\n if (this.#launcher !== undefined && this.#reserveProcessSlot(input.name) !== \"acquired\") {\n await this.store.deleteAgent(input.name);\n const result = err<FleetClientError>({\n code: \"capacity_exceeded\",\n message: `pi-fleet has reached its ${String(this.#limits.maxResidentProcesses)} process limit.`,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n\n let incarnationId: string | null = null;\n try {\n if (this.#launcher !== undefined) {\n incarnationId = randomUUID();\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: null,\n state: \"starting\",\n });\n const publishStdout = this.#watchHub.beginIncarnation(input.name, incarnationId);\n const process = await this.#launcher.start(\n profile,\n false,\n async (pid) => {\n await this.store.putIncarnation({\n incarnationId: incarnationId!,\n agentName: input.name,\n pid,\n state: \"starting\",\n });\n },\n publishStdout,\n );\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: process.pid,\n state: \"live\",\n });\n const state = await process.getState();\n const observedProfile = observeSession(profile, {\n path: state.sessionFile ?? null,\n id: state.sessionId,\n });\n agent = {\n ...agent,\n launch: observedProfile,\n summary: {\n ...agent.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n session: { path: state.sessionFile ?? null, id: state.sessionId },\n },\n };\n await this.store.putAgent(agent);\n const coordinator = this.#attachCoordinator(agent, process, incarnationId);\n if (input.instructions !== undefined) {\n const acceptedAt = this.#now();\n const sendId = `${operationId}:initial`;\n const ordinal = await this.store.nextSendOrdinal(input.name);\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"pending\",\n acceptedAt,\n });\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"dispatching\",\n acceptedAt,\n });\n try {\n await this.#enqueueSend(input.name, () => coordinator.send(input.instructions!));\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"acknowledged\",\n acceptedAt,\n });\n } catch (error: unknown) {\n await this.store.putSend({\n sendId,\n agentName: input.name,\n ordinal,\n message: input.instructions,\n state: \"uncertain\",\n acceptedAt,\n });\n agent = {\n ...coordinator.storedAgent,\n summary: {\n ...coordinator.storedAgent.summary,\n state: \"failed\",\n error: { code: \"delivery_uncertain\" },\n },\n };\n await this.store.putAgent(agent);\n throw error;\n }\n }\n agent = coordinator.storedAgent;\n }\n\n const result = ok<CreateResult>({\n schemaVersion: 1,\n type: \"agent.created\",\n agent: agent.summary,\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n } catch (error: unknown) {\n const coordinator = this.#coordinators.get(input.name);\n if (incarnationId !== null && coordinator === undefined) {\n this.#watchHub.endIncarnation(\n input.name,\n incarnationId,\n new RpcWatchError(\"pi_start_failed\", \"Pi failed to start\"),\n );\n }\n const deliveryAmbiguous =\n (await this.store.getSend(`${operationId}:initial`))?.state === \"uncertain\";\n let cleanupUncertain = error instanceof PiCleanupUncertainError;\n if (coordinator !== undefined) {\n try {\n await coordinator.stop(\"runtime_shutdown\");\n } catch {\n cleanupUncertain = true;\n }\n }\n this.#coordinators.delete(input.name);\n if (cleanupUncertain) {\n agent = {\n ...agent,\n summary: {\n ...agent.summary,\n state: \"failed\",\n process: { state: \"cleanup_uncertain\" },\n error: { code: \"incarnation_cleanup_uncertain\" },\n },\n };\n await this.store.putAgent(agent);\n } else if (deliveryAmbiguous) {\n agent = {\n ...agent,\n summary: {\n ...agent.summary,\n state: \"failed\",\n process: { state: \"absent\" },\n error: { code: \"delivery_uncertain\" },\n },\n };\n await this.store.putAgent(agent);\n this.#releaseProcessSlot(input.name);\n } else {\n if (incarnationId !== null) {\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: error instanceof PiCleanupUncertainError ? error.pid : null,\n state: \"gone\",\n });\n }\n this.#releaseProcessSlot(input.name);\n await this.store.deleteAgent(input.name);\n }\n const code = cleanupUncertain\n ? \"incarnation_cleanup_uncertain\"\n : deliveryAmbiguous\n ? \"delivery_uncertain\"\n : \"pi_start_failed\";\n const result = err<FleetClientError>({\n code,\n message:\n code === \"delivery_uncertain\"\n ? \"Pi may have accepted the initial instructions; pi-fleet will not replay them automatically.\"\n : code === \"incarnation_cleanup_uncertain\"\n ? \"pi-fleet could not prove the Pi process group was removed.\"\n : \"Pi failed to start.\",\n });\n await this.#remember(operationId, \"create\", input, result);\n return result;\n }\n }\n\n send(\n input: SendInput,\n operationId: string,\n callerPiIdentity?: PiRuntimeIdentity,\n ): Promise<Result<SendResult, FleetClientError>> {\n return this.#runOperation(operationId, \"send\", input, () =>\n this.#enqueueAgent(input.name, () => this.#sendImpl(input, operationId, callerPiIdentity)),\n );\n }\n\n async #sendImpl(\n input: SendInput,\n operationId: string,\n callerPiIdentity?: PiRuntimeIdentity,\n ): Promise<Result<SendResult, FleetClientError>> {\n const replay = await this.#operation<SendResult>(operationId, \"send\", input);\n if (replay !== null) return replay;\n if (this.#destroyingAgents.has(input.name)) {\n const result = err<FleetClientError>({\n code: \"agent_destroying\",\n message: `Agent ${input.name} is being destroyed.`,\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n if (Buffer.byteLength(input.message, \"utf8\") > this.#limits.maxMessageBytes) {\n const result = err<FleetClientError>({\n code: \"invalid_arguments\",\n message: `Message exceeds the ${String(this.#limits.maxMessageBytes)} byte limit.`,\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n const agent = await this.store.getAgent(input.name);\n if (agent === null) return this.#rememberNotFound(operationId, \"send\", input);\n if (agent.summary.process.state === \"cleanup_uncertain\") {\n const result = err<FleetClientError>({\n code: \"incarnation_cleanup_uncertain\",\n message: `pi-fleet cannot prove the previous process for ${input.name} is gone.`,\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n const identityFailure = this.#piIdentityFailure(callerPiIdentity);\n if (identityFailure !== null) {\n const result = err<FleetClientError>(identityFailure);\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n const preflightFailure = await this.#piExecutionFailure();\n if (preflightFailure !== null) {\n const result = err<FleetClientError>(preflightFailure);\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n\n const acceptedAt = this.#now();\n const result = await this.#enqueueSend(input.name, async () => {\n const ordinal = await this.store.nextSendOrdinal(input.name);\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"pending\",\n acceptedAt,\n });\n return this.#dispatchSend(input, operationId, acceptedAt, agent, ordinal);\n });\n await this.#remember(operationId, \"send\", input, result);\n return result;\n }\n\n compact(\n input: CompactInput,\n operationId: string,\n callerPiIdentity?: PiRuntimeIdentity,\n ): Promise<Result<CompactResult, FleetClientError>> {\n return this.#runOperation(operationId, \"compact\", input, () =>\n this.#enqueueAgent(input.name, () => this.#compactImpl(input, operationId, callerPiIdentity)),\n );\n }\n\n async #compactImpl(\n input: CompactInput,\n operationId: string,\n callerPiIdentity?: PiRuntimeIdentity,\n ): Promise<Result<CompactResult, FleetClientError>> {\n const replay = await this.#operation<CompactResult>(operationId, \"compact\", input);\n if (replay !== null) return replay;\n const requestedAt = this.#now();\n let agent = await this.store.getAgent(input.name);\n if (agent === null) {\n return this.#rememberCompactFailure(operationId, input, requestedAt, {\n code: \"agent_not_found\",\n message: `Agent ${input.name} was not found.`,\n });\n }\n await this.#recordOperationTarget(operationId, agent);\n if (agent.summary.process.state === \"cleanup_uncertain\") {\n return this.#rememberCompactFailure(operationId, input, requestedAt, {\n code: \"incarnation_cleanup_uncertain\",\n message: `pi-fleet cannot prove the previous process for ${input.name} is gone.`,\n });\n }\n if (agent.summary.state !== \"idle\") {\n return this.#rememberCompactFailure(operationId, input, requestedAt, {\n code: \"agent_busy\",\n message: `Agent ${input.name} must be idle before compaction.`,\n });\n }\n const identityFailure = this.#piIdentityFailure(callerPiIdentity);\n if (identityFailure !== null) {\n return this.#rememberCompactFailure(operationId, input, requestedAt, identityFailure);\n }\n const preflightFailure = await this.#piExecutionFailure();\n if (preflightFailure !== null) {\n return this.#rememberCompactFailure(operationId, input, requestedAt, preflightFailure);\n }\n\n await this.store.putCompact({\n compactId: operationId,\n agentName: input.name,\n state: \"pending\",\n requestedAt,\n });\n\n let coordinator: AgentCoordinator | undefined;\n try {\n coordinator = await this.#ensureResidentForCompact(agent);\n agent = coordinator?.storedAgent ?? agent;\n const nativeCompaction = coordinator !== undefined;\n if (nativeCompaction) this.#compactingAgents.add(input.name);\n let compaction: CompactResult[\"compaction\"];\n try {\n await this.store.putCompact({\n compactId: operationId,\n agentName: input.name,\n state: \"dispatching\",\n requestedAt,\n });\n if (coordinator === undefined && this.#launcher === undefined) {\n compaction = { tokensBefore: 0, estimatedTokensAfter: 0 };\n } else {\n if (coordinator === undefined) throw new Error(\"Pi is unavailable for compaction\");\n compaction = await coordinator.compact();\n }\n } finally {\n if (nativeCompaction) this.#compactingAgents.delete(input.name);\n }\n await this.store.putCompact({\n compactId: operationId,\n agentName: input.name,\n state: \"completed\",\n requestedAt,\n result: compaction,\n });\n const result = ok<CompactResult>({\n schemaVersion: 1,\n type: \"agent.compacted\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n compaction,\n });\n await this.#remember(operationId, \"compact\", input, result);\n return result;\n } catch (error: unknown) {\n const compact = await this.store.getCompact(operationId);\n if (compact?.state === \"completed\" && compact.result !== undefined) {\n const result = ok<CompactResult>({\n schemaVersion: 1,\n type: \"agent.compacted\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n compaction: compact.result,\n });\n await this.#remember(operationId, \"compact\", input, result);\n return result;\n }\n const message = error instanceof Error ? error.message : \"Pi compaction failed\";\n const busy = message === \"Agent is busy\";\n const preDispatch = compact?.state === \"pending\";\n const capacity = message === \"Process capacity exceeded\";\n const compactionError = error instanceof PiCompactionError ? error.code : null;\n const uncertain = !busy && !preDispatch && compactionError === null;\n if (uncertain && coordinator !== undefined && !this.#destroyingAgents.has(input.name)) {\n await coordinator.stop(\"runtime_shutdown\").catch(() => undefined);\n }\n const cleanupUncertain =\n (await this.store.getAgent(input.name))?.summary.process.state === \"cleanup_uncertain\";\n const failure: FleetClientError = {\n code: busy\n ? \"agent_busy\"\n : capacity\n ? \"capacity_exceeded\"\n : cleanupUncertain\n ? \"incarnation_cleanup_uncertain\"\n : preDispatch\n ? \"pi_start_failed\"\n : (compactionError ?? \"compaction_uncertain\"),\n message: busy\n ? `Agent ${input.name} must be idle before compaction.`\n : capacity\n ? `pi-fleet has reached its ${String(this.#limits.maxResidentProcesses)} process limit.`\n : cleanupUncertain\n ? `pi-fleet could not prove the failed Pi restoration for ${input.name} was removed.`\n : preDispatch\n ? `Pi failed to restore for ${input.name}; compaction was not dispatched.`\n : compactionError === \"nothing_to_compact\"\n ? `Agent ${input.name} has nothing to compact.`\n : compactionError === \"compaction_failed\"\n ? \"Pi compaction failed.\"\n : \"Pi may have started compaction; pi-fleet will not replay it automatically.\",\n };\n const result = err(failure);\n const terminalFailure = busy || preDispatch || compactionError !== null;\n await this.store.putCompact({\n compactId: operationId,\n agentName: input.name,\n state: terminalFailure ? \"failed\" : \"uncertain\",\n requestedAt,\n ...(terminalFailure ? { error: failure } : {}),\n });\n await this.#remember(operationId, \"compact\", input, result);\n return result;\n }\n }\n\n async #ensureResidentForCompact(agent: StoredAgent): Promise<AgentCoordinator | undefined> {\n let coordinator = this.#coordinators.get(agent.summary.name);\n if (coordinator !== undefined || this.#launcher === undefined) return coordinator;\n const reservation = this.#reserveProcessSlot(agent.summary.name);\n if (reservation === \"full\") {\n throw new Error(\"Process capacity exceeded\");\n }\n if (reservation === \"existing\") {\n coordinator = await this.#waitForCoordinator(agent.summary.name);\n if (coordinator === undefined)\n throw new Error(\"Pi restoration did not produce a live process\");\n return coordinator;\n }\n\n const restoring = await this.#markRestoring(agent);\n const incarnationId = randomUUID();\n let process: PiProcess | null = null;\n try {\n await this.store.putIncarnation({\n incarnationId,\n agentName: agent.summary.name,\n pid: null,\n state: \"starting\",\n });\n const publishStdout = this.#watchHub.beginIncarnation(agent.summary.name, incarnationId);\n process = await this.#launcher.start(\n restoring.launch,\n true,\n async (pid) => {\n await this.store.putIncarnation({\n incarnationId,\n agentName: agent.summary.name,\n pid,\n state: \"starting\",\n });\n },\n publishStdout,\n );\n await this.store.putIncarnation({\n incarnationId,\n agentName: agent.summary.name,\n pid: process.pid,\n state: \"live\",\n });\n const state = await process.getState();\n const restored: StoredAgent = {\n ...restoring,\n launch: observeSession(restoring.launch, {\n path: state.sessionFile ?? null,\n id: state.sessionId,\n }),\n summary: {\n ...restoring.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n session: { path: state.sessionFile ?? null, id: state.sessionId },\n error: undefined,\n },\n };\n await this.store.putAgent(restored);\n return this.#attachCoordinator(restored, process, incarnationId);\n } catch (error: unknown) {\n this.#watchHub.endIncarnation(\n agent.summary.name,\n incarnationId,\n new RpcWatchError(\"pi_start_failed\", \"Pi failed to start\"),\n );\n let cleanupUncertain = error instanceof PiCleanupUncertainError;\n let pid = error instanceof PiCleanupUncertainError ? error.pid : null;\n if (process !== null) {\n pid = process.pid;\n try {\n await process.stop();\n } catch {\n cleanupUncertain = true;\n }\n }\n await this.store.putAgent({\n ...restoring,\n summary: {\n ...restoring.summary,\n state: \"failed\",\n process: { state: cleanupUncertain ? \"cleanup_uncertain\" : \"absent\" },\n error: { code: cleanupUncertain ? \"incarnation_cleanup_uncertain\" : \"pi_start_failed\" },\n },\n });\n await this.store.putIncarnation({\n incarnationId,\n agentName: agent.summary.name,\n pid,\n state: cleanupUncertain ? \"cleanup_uncertain\" : \"gone\",\n });\n if (!cleanupUncertain) this.#releaseProcessSlot(agent.summary.name);\n throw error;\n }\n }\n\n async reconcile(): Promise<void> {\n const nonterminalCompacts = await this.store.listNonterminalCompacts();\n const nonterminalSends = await this.store.listNonterminalSends();\n const activeWorkAgents = new Set([\n ...nonterminalSends.map((send) => send.agentName),\n ...nonterminalCompacts\n .filter((compact) => compact.state === \"dispatching\")\n .map((compact) => compact.agentName),\n ]);\n for (const incarnation of await this.store.listActiveIncarnations()) {\n if (incarnation.state !== \"cleanup_uncertain\") continue;\n this.#processSlots.add(incarnation.agentName);\n if (incarnation.pid === null || !(await waitForProcessGroupExit(incarnation.pid))) continue;\n await this.store.putIncarnation({ ...incarnation, state: \"gone\" });\n this.#releaseProcessSlot(incarnation.agentName);\n const agent = await this.store.getAgent(incarnation.agentName);\n if (agent?.summary.process.state !== \"cleanup_uncertain\") continue;\n const interrupted =\n activeWorkAgents.has(incarnation.agentName) ||\n agent.summary.error?.code === \"runtime_interrupted\";\n await this.store.putAgent({\n ...agent,\n summary: {\n ...agent.summary,\n state: interrupted ? \"failed\" : \"idle\",\n process: { state: \"absent\" },\n error: interrupted ? { code: \"runtime_interrupted\" } : undefined,\n },\n });\n }\n\n const piExecutionFailure = await this.#piExecutionFailure();\n\n for (const compact of nonterminalCompacts) {\n const input = { name: compact.agentName };\n if (compact.state === \"dispatching\") {\n const result = err<FleetClientError>({\n code: \"compaction_uncertain\",\n message: \"Pi may have started compaction; pi-fleet will not replay it automatically.\",\n });\n await this.store.putCompact({ ...compact, state: \"uncertain\" });\n await this.#remember(compact.compactId, \"compact\", input, result);\n } else if (piExecutionFailure === null) {\n await this.compact(input, compact.compactId);\n }\n }\n\n for (const send of nonterminalSends) {\n const input = { name: send.agentName, message: send.message };\n if (send.state === \"dispatching\") {\n const result = err<FleetClientError>({\n code: \"delivery_uncertain\",\n message: `Delivery of ${send.sendId} was interrupted and will not be replayed.`,\n });\n await this.store.putSend({ ...send, state: \"uncertain\" });\n await this.#remember(send.sendId, \"send\", input, result);\n continue;\n }\n if (piExecutionFailure !== null) continue;\n const agent = await this.store.getAgent(send.agentName);\n if (agent === null || agent.summary.process.state === \"cleanup_uncertain\") {\n const result = err<FleetClientError>({\n code: agent === null ? \"agent_not_found\" : \"incarnation_cleanup_uncertain\",\n message:\n agent === null\n ? `Agent ${send.agentName} was not found.`\n : `pi-fleet cannot prove the previous process for ${send.agentName} is gone.`,\n });\n await this.store.putSend({ ...send, state: \"failed\" });\n await this.#remember(send.sendId, \"send\", input, result);\n continue;\n }\n const result = await this.#enqueueSend(send.agentName, async () => {\n const ordinal = send.ordinal ?? (await this.store.nextSendOrdinal(send.agentName));\n return this.#dispatchSend(input, send.sendId, send.acceptedAt, agent, ordinal);\n });\n await this.#remember(send.sendId, \"send\", input, result);\n }\n\n for (const operation of await this.store.listPendingOperations()) {\n if (operation.method === \"send\") continue;\n const payload = JSON.parse(operation.fingerprint) as CreateInput | DestroyInput;\n if (operation.method === \"create\") {\n if (piExecutionFailure === null)\n await this.create(payload as CreateInput, operation.operationId);\n } else if (operation.method === \"destroy\") {\n await this.destroy(payload as DestroyInput, operation.operationId);\n } else if (operation.method === \"compact\") {\n if (piExecutionFailure === null)\n await this.compact(payload as CompactInput, operation.operationId);\n }\n }\n }\n\n async receive(\n input: ReceiveInput,\n signal?: AbortSignal,\n ): Promise<Result<ReceiveResult, FleetClientError>> {\n const coordinator = this.#coordinators.get(input.name);\n let agent: StoredAgent | null;\n try {\n agent =\n coordinator === undefined\n ? await this.store.getAgent(input.name)\n : await coordinator.waitForIdle(signal);\n } catch (error: unknown) {\n if (signal?.aborted === true) throw error;\n if (error instanceof Error && error.message === \"Agent destroyed\") {\n return err({ code: \"agent_destroyed\", message: `Agent ${input.name} was destroyed.` });\n }\n if (error instanceof Error && error.message === \"Pi work was interrupted\") {\n return err({\n code: \"runtime_interrupted\",\n message: `Agent ${input.name} was interrupted before becoming idle.`,\n });\n }\n throw error;\n }\n if (agent === null) return this.#notFound(input.name);\n if (agent.summary.state === \"failed\") {\n const code = agent.summary.error?.code ?? \"agent_failed\";\n return err({\n code,\n message: `Agent ${input.name} is failed (${code}) and has no current successful response.`,\n });\n }\n if (agent.latestAssistantText === null || agent.responseObservedAt === null) {\n return err({\n code: \"no_response\",\n message: `Agent ${input.name} has no assistant response.`,\n });\n }\n return ok({\n schemaVersion: 1,\n type: \"response\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n response: { text: agent.latestAssistantText, observedAt: agent.responseObservedAt },\n });\n }\n\n async status(input: StatusInput): Promise<Result<StatusResult, FleetClientError>> {\n const agent = await this.store.getAgent(input.name);\n return agent === null\n ? this.#notFound(input.name)\n : ok({ schemaVersion: 1, type: \"agent.status\", agent: agent.summary });\n }\n\n async list(): Promise<Result<ListResult, FleetClientError>> {\n const agents = await this.store.listAgents();\n return ok({\n schemaVersion: 1,\n type: \"agent.list\",\n agents: agents.map((agent) => agent.summary),\n });\n }\n\n openWatch(\n input: { readonly name: string },\n connectionSignal: AbortSignal,\n ): Promise<Result<AsyncIterable<Buffer>, FleetClientError>> {\n if (this.#closing) return Promise.resolve(this.#runtimeUnavailable());\n if (this.#destroyingAgents.has(input.name))\n return Promise.resolve(this.#agentDestroying(input.name));\n return this.#enqueueAgent(input.name, async () => {\n if (this.#closing) return this.#runtimeUnavailable();\n if (this.#destroyingAgents.has(input.name)) return this.#agentDestroying(input.name);\n const agent = await this.store.getAgent(input.name);\n if (agent === null) return this.#notFound(input.name);\n try {\n return ok(this.#watchHub.subscribe(input.name, connectionSignal));\n } catch (error: unknown) {\n if (error instanceof RpcWatchError && error.code === \"watcher_capacity_exceeded\") {\n return err({\n code: \"capacity_exceeded\",\n message: `pi-fleet has reached its ${String(this.#limits.maxWatchers)} watcher limit.`,\n });\n }\n throw error;\n }\n });\n }\n\n destroy(\n input: DestroyInput,\n operationId: string,\n ): Promise<Result<DestroyResult, FleetClientError>> {\n return this.#runOperation(operationId, \"destroy\", input, async () => {\n this.#destroyingAgents.add(input.name);\n try {\n if (this.#compactingAgents.has(input.name)) {\n const replay = await this.#operation<DestroyResult>(operationId, \"destroy\", input);\n if (replay !== null) return replay;\n const agent = await this.store.getAgent(input.name);\n if (agent !== null) await this.#recordOperationTarget(operationId, agent);\n }\n if (this.#compactingAgents.has(input.name)) {\n await this.#coordinators\n .get(input.name)\n ?.stop(\"destroy\")\n .catch(() => undefined);\n }\n return await this.#enqueueAgent(input.name, () => this.#destroyImpl(input, operationId));\n } finally {\n this.#destroyingAgents.delete(input.name);\n }\n });\n }\n\n async #destroyImpl(\n input: DestroyInput,\n operationId: string,\n ): Promise<Result<DestroyResult, FleetClientError>> {\n const replay = await this.#operation<DestroyResult>(operationId, \"destroy\", input);\n if (replay !== null) return replay;\n const stored = await this.store.getAgent(input.name);\n if (stored?.summary.process.state === \"cleanup_uncertain\") {\n const result = err<FleetClientError>({\n code: \"destroy_incomplete\",\n message: `pi-fleet cannot destroy ${input.name} until its previous process is proven gone.`,\n });\n await this.#remember(operationId, \"destroy\", input, result);\n return result;\n }\n if (stored !== null) await this.#recordOperationTarget(operationId, stored);\n const coordinator = this.#coordinators.get(input.name);\n if (coordinator !== undefined) await coordinator.stop(\"destroy\");\n this.#coordinators.delete(input.name);\n this.#watchHub.closeAgent(input.name);\n const agent = await this.store.deleteAgent(input.name);\n if (agent === null) return this.#rememberNotFound(operationId, \"destroy\", input);\n const result = ok<DestroyResult>({\n schemaVersion: 1,\n type: \"agent.destroyed\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n });\n await this.#remember(operationId, \"destroy\", input, result);\n return result;\n }\n\n async releaseAgentProcess(name: string): Promise<void> {\n const coordinator = this.#coordinators.get(name);\n if (coordinator === undefined) return;\n await coordinator.stop(\"idle_release\");\n this.#coordinators.delete(name);\n }\n\n async close(): Promise<void> {\n this.#closing = true;\n const stops = await Promise.allSettled(\n [...this.#coordinators.values()].map((coordinator) => coordinator.stop(\"runtime_shutdown\")),\n );\n this.#coordinators.clear();\n this.#watchHub.closeAll(\n new RpcWatchError(\"runtime_unavailable\", \"pi-fleet runtime is shutting down\"),\n );\n const failure = stops.find(\n (result): result is PromiseRejectedResult => result.status === \"rejected\",\n );\n if (failure !== undefined) throw failure.reason;\n }\n\n async #dispatchSend(\n input: SendInput,\n operationId: string,\n acceptedAt: string,\n initialAgent: StoredAgent,\n ordinal: number,\n ): Promise<Result<SendResult, FleetClientError>> {\n let agent = initialAgent;\n let incarnationId: string | null = null;\n let startingProcess: PiProcess | null = null;\n let restoring = false;\n try {\n let coordinator = this.#coordinators.get(input.name);\n if (this.#launcher !== undefined && coordinator === undefined) {\n const reservation = this.#reserveProcessSlot(input.name);\n if (reservation === \"existing\") {\n coordinator = await this.#waitForCoordinator(input.name);\n if (coordinator === undefined) {\n throw new Error(`Restoration of ${input.name} did not produce a live Pi process.`);\n }\n agent = coordinator.storedAgent;\n } else if (reservation === \"full\") {\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"failed\",\n acceptedAt,\n });\n return err({\n code: \"capacity_exceeded\",\n message: `pi-fleet has reached its ${String(this.#limits.maxResidentProcesses)} process limit.`,\n });\n } else {\n restoring = true;\n agent = await this.#markRestoring(agent);\n incarnationId = randomUUID();\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: null,\n state: \"starting\",\n });\n const publishStdout = this.#watchHub.beginIncarnation(input.name, incarnationId);\n startingProcess = await this.#launcher.start(\n agent.launch,\n true,\n async (pid) => {\n await this.store.putIncarnation({\n incarnationId: incarnationId!,\n agentName: input.name,\n pid,\n state: \"starting\",\n });\n },\n publishStdout,\n );\n const process = startingProcess;\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: process.pid,\n state: \"live\",\n });\n const state = await process.getState();\n const profile = observeSession(agent.launch, {\n path: state.sessionFile ?? null,\n id: state.sessionId,\n });\n agent = {\n ...agent,\n launch: profile,\n summary: {\n ...agent.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n session: { path: state.sessionFile ?? null, id: state.sessionId },\n error: undefined,\n },\n };\n await this.store.putAgent(agent);\n coordinator = this.#attachCoordinator(agent, process, incarnationId);\n restoring = false;\n }\n }\n\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"dispatching\",\n acceptedAt,\n });\n if (coordinator === undefined) {\n await this.store.putAgent({\n ...agent,\n latestAssistantText: `Fake response to: ${input.message}`,\n responseObservedAt: acceptedAt,\n });\n } else {\n await coordinator.send(input.message);\n }\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"acknowledged\",\n acceptedAt,\n });\n return ok({\n schemaVersion: 1,\n type: \"message.accepted\",\n agent: { id: agent.summary.id, name: agent.summary.name },\n acceptedAt,\n });\n } catch (error: unknown) {\n if (restoring && incarnationId !== null) {\n let cleanupUncertain = error instanceof PiCleanupUncertainError;\n let cleanupPid = error instanceof PiCleanupUncertainError ? error.pid : null;\n if (startingProcess !== null) {\n cleanupPid = startingProcess.pid;\n try {\n await startingProcess.stop();\n } catch {\n cleanupUncertain = true;\n }\n }\n const code = cleanupUncertain ? \"incarnation_cleanup_uncertain\" : \"pi_start_failed\";\n this.#watchHub.endIncarnation(\n input.name,\n incarnationId,\n new RpcWatchError(\"pi_start_failed\", \"Pi failed to restore\"),\n );\n agent = {\n ...agent,\n summary: {\n ...agent.summary,\n state: \"failed\",\n process: { state: cleanupUncertain ? \"cleanup_uncertain\" : \"absent\" },\n error: { code },\n },\n };\n await this.store.putAgent(agent);\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: cleanupPid,\n state: cleanupUncertain ? \"cleanup_uncertain\" : \"gone\",\n });\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"failed\",\n acceptedAt,\n });\n if (!cleanupUncertain) this.#releaseProcessSlot(input.name);\n return err({\n code,\n message: cleanupUncertain\n ? `pi-fleet could not prove the failed Pi restoration for ${input.name} was removed.`\n : `Pi failed to restore for ${input.name}; the message was not dispatched.`,\n });\n }\n\n if (!this.#coordinators.has(input.name)) this.#releaseProcessSlot(input.name);\n if (incarnationId !== null && !this.#coordinators.has(input.name)) {\n await this.store.putIncarnation({\n incarnationId,\n agentName: input.name,\n pid: null,\n state: \"cleanup_uncertain\",\n });\n }\n await this.store.putSend({\n sendId: operationId,\n agentName: input.name,\n ordinal,\n message: input.message,\n state: \"uncertain\",\n acceptedAt,\n });\n return err({\n code: \"delivery_uncertain\",\n message: \"Pi may have accepted the message; pi-fleet will not replay it automatically.\",\n });\n }\n }\n\n async #markRestoring(agent: StoredAgent): Promise<StoredAgent> {\n const restoring: StoredAgent = {\n ...agent,\n summary: { ...agent.summary, state: \"restoring\", process: { state: \"starting\" } },\n };\n await this.store.putAgent(restoring);\n return restoring;\n }\n\n #attachCoordinator(\n agent: StoredAgent,\n process: PiProcess,\n incarnationId: string,\n ): AgentCoordinator {\n const coordinator = new AgentCoordinator(\n this.store,\n agent,\n process,\n incarnationId,\n this.#now,\n () => {\n const interrupted = coordinator.storedAgent.summary.state === \"failed\";\n this.#watchHub.endIncarnation(\n agent.summary.name,\n incarnationId,\n interrupted\n ? new RpcWatchError(\"runtime_interrupted\", \"Pi process was interrupted\")\n : null,\n );\n if (this.#coordinators.get(agent.summary.name) === coordinator) {\n this.#coordinators.delete(agent.summary.name);\n this.#releaseProcessSlot(agent.summary.name);\n }\n },\n );\n this.#coordinators.set(agent.summary.name, coordinator);\n return coordinator;\n }\n\n #enqueueAgent<T>(name: string, operation: () => Promise<T>): Promise<T> {\n return enqueueNamed(this.#agentLanes, name, operation);\n }\n\n #enqueueSend<T>(name: string, operation: () => Promise<T>): Promise<T> {\n const previous = this.#sendLanes.get(name) ?? Promise.resolve();\n const result = previous.then(operation, operation);\n const settled = result.then(\n () => undefined,\n () => undefined,\n );\n this.#sendLanes.set(name, settled);\n void settled.finally(() => {\n if (this.#sendLanes.get(name) === settled) this.#sendLanes.delete(name);\n });\n return result;\n }\n\n async #waitForCoordinator(\n name: string,\n timeoutMs = 15_000,\n ): Promise<AgentCoordinator | undefined> {\n const deadline = Date.now() + timeoutMs;\n while (Date.now() < deadline) {\n const coordinator = this.#coordinators.get(name);\n if (coordinator !== undefined) return coordinator;\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n return this.#coordinators.get(name);\n }\n\n #reserveProcessSlot(name: string): \"acquired\" | \"existing\" | \"full\" {\n if (this.#processSlots.has(name)) return \"existing\";\n if (this.#processSlots.size >= this.#limits.maxResidentProcesses) return \"full\";\n this.#processSlots.add(name);\n return \"acquired\";\n }\n\n #releaseProcessSlot(name: string): void {\n this.#processSlots.delete(name);\n }\n\n #agentDestroying<T>(name: string): Result<T, FleetClientError> {\n return err({ code: \"agent_destroying\", message: `Agent ${name} is being destroyed.` });\n }\n\n #notFound<T>(name: string): Result<T, FleetClientError> {\n return err({ code: \"agent_not_found\", message: `Agent ${name} was not found.` });\n }\n\n #runtimeUnavailable<T>(): Result<T, FleetClientError> {\n return err({ code: \"runtime_unavailable\", message: \"pi-fleet runtime is shutting down.\" });\n }\n\n async #rememberCompactFailure(\n operationId: string,\n input: CompactInput,\n requestedAt: string,\n failure: FleetClientError,\n ): Promise<Result<CompactResult, FleetClientError>> {\n await this.store.putCompact({\n compactId: operationId,\n agentName: input.name,\n state: \"failed\",\n requestedAt,\n error: failure,\n });\n const result: Result<CompactResult, FleetClientError> = err(failure);\n await this.#remember(operationId, \"compact\", input, result);\n return result;\n }\n\n #piIdentityFailure(callerIdentity: PiRuntimeIdentity | undefined): FleetClientError | null {\n if (callerIdentity === undefined || samePiRuntimeIdentity(callerIdentity, this.#piIdentity)) {\n return null;\n }\n return {\n code: \"pi_runtime_mismatch\",\n message:\n \"The running pi-fleet runtime uses a different Pi installation; repair or restart it.\",\n };\n }\n\n async #piExecutionFailure(): Promise<FleetClientError | null> {\n if (this.#launcher?.preflight === undefined) return null;\n try {\n await this.#launcher.preflight();\n return null;\n } catch (error: unknown) {\n if (!(error instanceof PiExecutionUnavailableError)) throw error;\n const messages: Record<PiExecutionUnavailableError[\"code\"], string> = {\n pi_not_found: \"The selected Pi executable was not found.\",\n pi_not_executable: \"The selected Pi executable cannot be executed.\",\n pi_version_unavailable: \"The selected Pi version could not be determined.\",\n pi_version_unsupported: \"The selected Pi version is not supported.\",\n pi_installation_changed: \"The selected Pi installation changed during validation.\",\n };\n return { code: error.code, message: messages[error.code] };\n }\n }\n\n async #rememberNotFound<T>(\n operationId: string,\n method: \"send\" | \"destroy\" | \"compact\",\n payload: object,\n ): Promise<Result<T, FleetClientError>> {\n const result = this.#notFound<T>(String(\"name\" in payload ? payload.name : \"unknown\"));\n await this.#remember(operationId, method, payload, result);\n return result;\n }\n\n #runOperation<T>(\n operationId: string,\n method: RecordedOperation[\"method\"],\n payload: object,\n operation: () => Promise<Result<T, FleetClientError>>,\n ): Promise<Result<T, FleetClientError>> {\n const fingerprint = JSON.stringify(payload);\n const inflight = this.#inflightOperations.get(operationId);\n if (inflight !== undefined) {\n if (inflight.method !== method || inflight.fingerprint !== fingerprint) {\n return Promise.resolve(\n err({\n code: \"operation_conflict\",\n message: `Operation ${operationId} was already used with a different request.`,\n }),\n );\n }\n return inflight.promise as Promise<Result<T, FleetClientError>>;\n }\n const promise = operation();\n this.#inflightOperations.set(operationId, {\n method,\n fingerprint,\n promise: promise as Promise<Result<unknown, FleetClientError>>,\n });\n void promise.then(\n () => this.#inflightOperations.delete(operationId),\n () => this.#inflightOperations.delete(operationId),\n );\n return promise;\n }\n\n async #operation<T>(\n operationId: string,\n method: RecordedOperation[\"method\"],\n payload: object,\n ): Promise<Result<T, FleetClientError> | null> {\n const cached = this.#operations.get(operationId);\n const stored = cached === undefined ? await this.store.getOperation(operationId) : null;\n const recorded =\n cached ??\n (stored?.state === \"completed\" && stored.result !== null\n ? {\n method: stored.method,\n fingerprint: stored.fingerprint,\n result: stored.result as Result<unknown, FleetClientError>,\n }\n : undefined);\n if (recorded === undefined) {\n const fingerprint = JSON.stringify(payload);\n if (stored !== null) {\n if (stored.method !== method || stored.fingerprint !== fingerprint) {\n return err({\n code: \"operation_conflict\",\n message: `Operation ${operationId} was already used with a different request.`,\n });\n }\n const name = \"name\" in payload ? String(payload.name) : \"\";\n const agent = name.length === 0 ? null : await this.store.getAgent(name);\n if (method === \"create\") {\n if (agent === null) {\n await this.store.deleteOperation(operationId);\n } else if (agent.summary.state === \"idle\" || agent.summary.state === \"working\") {\n const result = ok<CreateResult>({\n schemaVersion: 1,\n type: \"agent.created\",\n agent: agent.summary,\n });\n await this.#remember(operationId, method, payload, result);\n return result as Result<T, FleetClientError>;\n } else if (agent.summary.state === \"failed\") {\n const result = err<FleetClientError>({\n code: agent.summary.error?.code ?? \"pi_start_failed\",\n message: `Creation of ${name} did not complete safely.`,\n });\n await this.#remember(operationId, method, payload, result);\n return result;\n } else {\n return err({\n code: \"operation_in_progress\",\n message: `Operation ${operationId} is still pending.`,\n });\n }\n } else if (method === \"destroy\") {\n if (agent === null && stored.targetAgent !== undefined) {\n const result = ok<DestroyResult>({\n schemaVersion: 1,\n type: \"agent.destroyed\",\n agent: stored.targetAgent,\n });\n await this.#remember(operationId, method, payload, result);\n return result as Result<T, FleetClientError>;\n }\n // Resume the singular destroy operation against the surviving agent.\n return null;\n } else if (method === \"send\") {\n const send = await this.store.getSend(operationId);\n if (send === null) {\n // The operation exists but no send record was committed, so Pi could not have been\n // dispatched. Retrying from the beginning is safe.\n await this.store.deleteOperation(operationId);\n await this.store.putOperation({\n operationId,\n method,\n fingerprint,\n state: \"pending\",\n result: null,\n });\n return null;\n }\n return err({\n code: \"operation_in_progress\",\n message: `Operation ${operationId} is still pending.`,\n });\n } else {\n const compact = await this.store.getCompact(operationId);\n if (compact?.state === \"completed\" && compact.result !== undefined) {\n const target = stored.targetAgent;\n if (target === undefined) {\n return err({ code: \"state_corrupt\", message: \"Compaction target is missing.\" });\n }\n const result = ok<CompactResult>({\n schemaVersion: 1,\n type: \"agent.compacted\",\n agent: target,\n compaction: compact.result,\n });\n await this.#remember(operationId, method, payload, result);\n return result as Result<T, FleetClientError>;\n }\n if (compact?.state === \"failed\" && compact.error !== undefined) {\n const result = err<FleetClientError>(compact.error);\n await this.#remember(operationId, method, payload, result);\n return result;\n }\n if (compact?.state === \"dispatching\" || compact?.state === \"uncertain\") {\n const result = err<FleetClientError>({\n code: \"compaction_uncertain\",\n message: \"Pi may have started compaction; pi-fleet will not replay it automatically.\",\n });\n await this.#remember(operationId, method, payload, result);\n return result;\n }\n if (\n stored.targetAgent !== undefined &&\n (agent === null || agent.summary.id !== stored.targetAgent.id)\n ) {\n const result = err<FleetClientError>({\n code: \"agent_not_found\",\n message: `The agent targeted by operation ${operationId} no longer exists.`,\n });\n await this.#remember(operationId, method, payload, result);\n return result;\n }\n if (compact === null || compact.state === \"pending\") return null;\n return err({ code: \"state_corrupt\", message: \"Compaction state is incomplete.\" });\n }\n }\n await this.store.putOperation({\n operationId,\n method,\n fingerprint,\n state: \"pending\",\n result: null,\n });\n return null;\n }\n if (recorded.method !== method || recorded.fingerprint !== JSON.stringify(payload)) {\n return err({\n code: \"operation_conflict\",\n message: `Operation ${operationId} was already used with a different request.`,\n });\n }\n return recorded.result as Result<T, FleetClientError>;\n }\n\n async #recordOperationTarget(operationId: string, agent: StoredAgent): Promise<void> {\n const operation = await this.store.getOperation(operationId);\n if (operation === null || operation.state !== \"pending\") return;\n await this.store.putOperation({\n ...operation,\n targetAgent: { id: agent.summary.id, name: agent.summary.name },\n });\n }\n\n async #remember<T>(\n operationId: string,\n method: RecordedOperation[\"method\"],\n payload: object,\n result: Result<T, FleetClientError>,\n ): Promise<void> {\n const fingerprint = JSON.stringify(payload);\n this.#operations.set(operationId, { method, fingerprint, result });\n await this.store.putOperation({\n operationId,\n method,\n fingerprint,\n state: \"completed\",\n result,\n });\n }\n}\n\nfunction enqueueNamed<T>(\n lanes: Map<string, Promise<void>>,\n name: string,\n operation: () => Promise<T>,\n): Promise<T> {\n const previous = lanes.get(name) ?? Promise.resolve();\n const result = previous.then(operation, operation);\n const settled = result.then(\n () => undefined,\n () => undefined,\n );\n lanes.set(name, settled);\n void settled.finally(() => {\n if (lanes.get(name) === settled) lanes.delete(name);\n });\n return result;\n}\n", "export type NativeSessionSelector =\n | { readonly kind: \"none\" }\n | { readonly kind: \"session\"; readonly value: string }\n | { readonly kind: \"session-id\"; readonly value: string }\n | { readonly kind: \"fork\"; readonly value: string }\n | { readonly kind: \"continue\" }\n | { readonly kind: \"resume\" };\n\nexport interface ObservedSession {\n readonly path: string | null;\n readonly id: string;\n}\n\ninterface SelectorMatch {\n readonly selector: NativeSessionSelector;\n readonly start: number;\n readonly length: number;\n}\n\nconst VALUE_SELECTORS = new Map<string, \"session\" | \"session-id\" | \"fork\">([\n [\"--session\", \"session\"],\n [\"--session-id\", \"session-id\"],\n [\"--fork\", \"fork\"],\n]);\n\nconst BOOLEAN_SELECTORS = new Map<string, \"continue\" | \"resume\">([\n [\"--continue\", \"continue\"],\n [\"-c\", \"continue\"],\n [\"--resume\", \"resume\"],\n [\"-r\", \"resume\"],\n]);\n\nfunction findSelectorMatches(argv: readonly string[]): SelectorMatch[] {\n const matches: SelectorMatch[] = [];\n\n for (let index = 0; index < argv.length; index += 1) {\n const token = argv[index];\n if (token === undefined) continue;\n\n const valueKind = VALUE_SELECTORS.get(token);\n if (valueKind !== undefined) {\n const value = argv[index + 1];\n if (value === undefined) {\n throw new Error(`${token} requires a value`);\n }\n matches.push({ selector: { kind: valueKind, value }, start: index, length: 2 });\n index += 1;\n continue;\n }\n\n const booleanKind = BOOLEAN_SELECTORS.get(token);\n if (booleanKind !== undefined) {\n matches.push({ selector: { kind: booleanKind }, start: index, length: 1 });\n }\n }\n\n return matches;\n}\n\nexport function analyzeSessionSelector(argv: readonly string[]): NativeSessionSelector {\n const matches = findSelectorMatches(argv);\n if (matches.length === 0) return { kind: \"none\" };\n if (matches.length > 1) {\n throw new Error(\"Conflicting Pi session selectors are not supported\");\n }\n return matches[0]!.selector;\n}\n\nexport function deriveRestorePiArgv(\n userPiArgv: readonly string[],\n observedSession: ObservedSession,\n): readonly string[] {\n const matches = findSelectorMatches(userPiArgv);\n if (matches.length > 1) {\n throw new Error(\"Conflicting Pi session selectors are not supported\");\n }\n\n const selector = matches[0]?.selector ?? { kind: \"none\" as const };\n if (selector.kind === \"session\" || selector.kind === \"session-id\") {\n return [...userPiArgv];\n }\n\n if (observedSession.path === null) {\n throw new Error(\"Pi did not report the concrete session path required for restoration\");\n }\n\n const selectorMatch = matches[0];\n const retainedArgv = userPiArgv.filter((_token, index) => {\n if (selectorMatch === undefined) return true;\n return index < selectorMatch.start || index >= selectorMatch.start + selectorMatch.length;\n });\n\n return [...retainedArgv, \"--session\", observedSession.path];\n}\n", "import {\n analyzeSessionSelector,\n deriveRestorePiArgv,\n type NativeSessionSelector,\n type ObservedSession,\n} from \"./session-selector.js\";\n\nexport interface AgentLaunchProfile {\n readonly cwd: string;\n readonly userPiArgv: readonly string[];\n readonly selector: NativeSessionSelector;\n readonly observedSession: ObservedSession | null;\n readonly restorePiArgv: readonly string[] | null;\n}\n\nexport interface CreateLaunchProfileInput {\n readonly cwd: string;\n readonly piArgv: readonly string[];\n}\n\nexport function createLaunchProfile(input: CreateLaunchProfileInput): AgentLaunchProfile {\n validatePersistentRpcArgv(input.piArgv);\n return {\n cwd: input.cwd,\n userPiArgv: [...input.piArgv],\n selector: analyzeSessionSelector(input.piArgv),\n observedSession: null,\n restorePiArgv: null,\n };\n}\n\nconst PI_VALUE_OPTIONS = new Set([\n \"--provider\",\n \"--model\",\n \"--api-key\",\n \"--system-prompt\",\n \"--append-system-prompt\",\n \"--name\",\n \"-n\",\n \"--session\",\n \"--session-id\",\n \"--fork\",\n \"--session-dir\",\n \"--models\",\n \"--tools\",\n \"-t\",\n \"--exclude-tools\",\n \"-xt\",\n \"--thinking\",\n \"--export\",\n \"--extension\",\n \"-e\",\n \"--skill\",\n \"--prompt-template\",\n \"--theme\",\n]);\n\nconst PI_BOOLEAN_OPTIONS = new Set([\n \"--continue\",\n \"-c\",\n \"--help\",\n \"-h\",\n \"--version\",\n \"-v\",\n \"--no-tools\",\n \"-nt\",\n \"--no-builtin-tools\",\n \"-nbt\",\n \"--no-extensions\",\n \"-ne\",\n \"--no-skills\",\n \"-ns\",\n \"--no-prompt-templates\",\n \"-np\",\n \"--no-themes\",\n \"--no-context-files\",\n \"-nc\",\n \"--verbose\",\n \"--approve\",\n \"-a\",\n \"--no-approve\",\n \"-na\",\n \"--offline\",\n]);\n\nexport function validatePersistentRpcArgv(piArgv: readonly string[]): void {\n for (let index = 0; index < piArgv.length; index += 1) {\n const token = piArgv[index]!;\n if ([\"--mode\", \"--print\", \"-p\", \"--no-session\", \"--resume\", \"-r\"].includes(token)) {\n throw new Error(`${token} is incompatible with persistent headless pi-fleet control`);\n }\n if (token === \"--\") {\n throw new Error(\n \"Pi positional prompt delivery after -- is incompatible with pi-fleet send ordering\",\n );\n }\n if (token.startsWith(\"@\")) {\n throw new Error(\n \"Pi @file prompt delivery is incompatible with pi-fleet-managed send ordering\",\n );\n }\n if (PI_VALUE_OPTIONS.has(token)) {\n if (piArgv[index + 1] === undefined) throw new Error(`${token} requires a value`);\n index += 1;\n continue;\n }\n if (PI_BOOLEAN_OPTIONS.has(token) || token.includes(\"=\")) continue;\n if (token === \"--list-models\") {\n const next = piArgv[index + 1];\n if (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) index += 1;\n continue;\n }\n if (token.startsWith(\"--\")) {\n const next = piArgv[index + 1];\n if (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) index += 1;\n continue;\n }\n if (token.startsWith(\"-\")) continue;\n throw new Error(\n `Pi positional prompt ${JSON.stringify(token)} is incompatible with pi-fleet send ordering`,\n );\n }\n}\n\nexport function observeSession(\n profile: AgentLaunchProfile,\n session: ObservedSession,\n): AgentLaunchProfile {\n return {\n ...profile,\n observedSession: session,\n restorePiArgv: deriveRestorePiArgv(profile.userPiArgv, session),\n };\n}\n", "import { PiCompactionError, type PiCompactionResult, type PiProcess } from \"../pi/process.js\";\nimport { waitForProcessGroupExit } from \"../platform/runtime/process-tree.js\";\nimport type { FleetStore, StoredAgent } from \"../store/fleet-store.js\";\n\nexport type CoordinatorStopReason = \"destroy\" | \"runtime_shutdown\" | \"idle_release\";\n\ninterface IdleWaiter {\n readonly resolve: () => void;\n readonly reject: (error: Error) => void;\n readonly signal?: AbortSignal;\n readonly onAbort?: () => void;\n}\n\nexport class AgentCoordinator {\n readonly #idleWaiters = new Set<IdleWaiter>();\n #lane: Promise<void> = Promise.resolve();\n #stopReason: CoordinatorStopReason | null = null;\n #handlingFailure = false;\n #mayBeWorking = false;\n #unsubscribeFrame: () => void;\n #unsubscribeExit: () => void;\n\n constructor(\n private readonly store: FleetStore,\n private agent: StoredAgent,\n readonly process: PiProcess,\n readonly incarnationId: string,\n private readonly now: () => string,\n private readonly onProcessExit: (error: Error | null) => void,\n ) {\n this.#unsubscribeFrame = process.onFrame((frame) => {\n if (frame.type === \"agent_start\") this.#queueEvent(() => this.#markWorking());\n if (frame.type === \"agent_settled\") this.#queueEvent(() => this.#markIdle());\n });\n this.#unsubscribeExit = process.onExit((error) => {\n this.#queueEvent(() => this.#handleProcessExit(error));\n });\n }\n\n get storedAgent(): StoredAgent {\n return this.agent;\n }\n\n send(message: string): Promise<void> {\n return this.#enqueue(async () => {\n this.#mayBeWorking = true;\n try {\n await this.process.prompt(message);\n } catch (error: unknown) {\n this.#mayBeWorking = false;\n throw error;\n }\n });\n }\n\n compact(): Promise<PiCompactionResult> {\n return this.#enqueue(async () => {\n const state = await this.process.getState();\n if (\n this.#mayBeWorking ||\n this.agent.summary.state !== \"idle\" ||\n state.isStreaming ||\n state.isCompacting ||\n state.pendingMessageCount !== 0\n ) {\n throw new Error(\"Agent is busy\");\n }\n this.#mayBeWorking = true;\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"working\",\n process: { state: \"resident\" },\n error: undefined,\n },\n };\n await this.store.putAgent(this.agent);\n try {\n const result = await this.process.compact();\n await this.#markIdle();\n return result;\n } catch (error: unknown) {\n this.#mayBeWorking = false;\n if (error instanceof PiCompactionError) await this.#markIdle();\n throw error;\n }\n });\n }\n\n async waitForIdle(signal?: AbortSignal): Promise<StoredAgent> {\n let wait: Promise<void> | null = null;\n await this.#enqueue(async () => {\n if (!this.#mayBeWorking && this.agent.summary.state === \"idle\") return;\n if (signal?.aborted === true) throw new Error(\"Receive cancelled\");\n\n let resolveIdle!: () => void;\n let rejectIdle!: (error: Error) => void;\n const pending = new Promise<void>((resolve, reject) => {\n resolveIdle = resolve;\n rejectIdle = reject;\n });\n void pending.catch(() => undefined);\n wait = pending;\n const waiter: IdleWaiter = {\n resolve: resolveIdle,\n reject: rejectIdle,\n ...(signal === undefined ? {} : { signal }),\n };\n this.#idleWaiters.add(waiter);\n if (signal !== undefined) {\n const onAbort = () => {\n this.#idleWaiters.delete(waiter);\n rejectIdle(new Error(\"Receive cancelled\"));\n };\n (waiter as { onAbort?: () => void }).onAbort = onAbort;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n if (signal.aborted) onAbort();\n }\n if (!this.#idleWaiters.has(waiter)) return;\n\n const state = await this.process.getState();\n if (!state.isStreaming && !state.isCompacting && state.pendingMessageCount === 0) {\n await this.#markIdle();\n }\n });\n if (wait !== null) await wait;\n await this.#lane;\n return this.agent;\n }\n\n async stop(reason: CoordinatorStopReason): Promise<void> {\n this.#stopReason = reason;\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"stopping\",\n });\n try {\n await this.process.stop();\n await this.#lane;\n } catch (error: unknown) {\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"failed\",\n process: { state: \"cleanup_uncertain\" },\n error: { code: \"incarnation_cleanup_uncertain\" },\n },\n };\n await this.store.putAgent(this.agent);\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"cleanup_uncertain\",\n });\n throw error;\n }\n }\n\n async #handleProcessExit(error: Error | null): Promise<void> {\n this.#unsubscribeFrame();\n this.#unsubscribeExit();\n if (this.#stopReason === null) {\n await this.process.stop().catch(() => undefined);\n }\n const groupGone = await waitForProcessGroupExit(this.process.pid);\n if (!groupGone) {\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"failed\",\n process: { state: \"cleanup_uncertain\" },\n error: { code: \"incarnation_cleanup_uncertain\" },\n },\n };\n await this.store.putAgent(this.agent);\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"cleanup_uncertain\",\n });\n this.#rejectIdleWaiters(new Error(\"Pi process cleanup is uncertain\"));\n this.onProcessExit(error ?? new Error(\"Pi process group is still alive\"));\n return;\n }\n\n const wasActive =\n this.agent.summary.state === \"working\" || this.agent.summary.state === \"restoring\";\n const destroyed = this.#stopReason === \"destroy\";\n const interrupted =\n (error !== null && this.#stopReason === null) ||\n (wasActive && this.#stopReason !== \"destroy\");\n const state = destroyed ? \"destroying\" : interrupted ? \"failed\" : \"idle\";\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state,\n process: { state: \"absent\" },\n ...(interrupted ? { error: { code: \"runtime_interrupted\" } } : { error: undefined }),\n },\n };\n await this.store.putAgent(this.agent);\n await this.store.putIncarnation({\n incarnationId: this.incarnationId,\n agentName: this.agent.summary.name,\n pid: this.process.pid,\n state: \"gone\",\n });\n if (interrupted || destroyed) {\n this.#rejectIdleWaiters(new Error(destroyed ? \"Agent destroyed\" : \"Pi work was interrupted\"));\n } else {\n this.#resolveIdleWaiters();\n }\n this.onProcessExit(error);\n }\n\n async #markWorking(): Promise<void> {\n this.#mayBeWorking = true;\n this.agent = {\n ...this.agent,\n summary: {\n ...this.agent.summary,\n state: \"working\",\n process: { state: \"resident\" },\n error: undefined,\n },\n };\n await this.store.putAgent(this.agent);\n }\n\n async #markIdle(): Promise<void> {\n const latestAssistantText = await this.process.getLastAssistantText();\n this.#mayBeWorking = false;\n this.agent = {\n ...this.agent,\n latestAssistantText,\n responseObservedAt: latestAssistantText === null ? this.agent.responseObservedAt : this.now(),\n summary: {\n ...this.agent.summary,\n state: \"idle\",\n process: { state: \"resident\" },\n error: undefined,\n },\n };\n await this.store.putAgent(this.agent);\n this.#resolveIdleWaiters();\n }\n\n #resolveIdleWaiters(): void {\n for (const waiter of this.#idleWaiters) {\n if (waiter.signal !== undefined && waiter.onAbort !== undefined) {\n waiter.signal.removeEventListener(\"abort\", waiter.onAbort);\n }\n waiter.resolve();\n }\n this.#idleWaiters.clear();\n }\n\n #rejectIdleWaiters(error: Error): void {\n for (const waiter of this.#idleWaiters) {\n if (waiter.signal !== undefined && waiter.onAbort !== undefined) {\n waiter.signal.removeEventListener(\"abort\", waiter.onAbort);\n }\n waiter.reject(error);\n }\n this.#idleWaiters.clear();\n }\n\n #queueEvent(operation: () => Promise<void>): void {\n void this.#enqueue(operation).catch((error: unknown) => this.#handleEventFailure(error));\n }\n\n async #handleEventFailure(error: unknown): Promise<void> {\n if (this.#handlingFailure) return;\n this.#handlingFailure = true;\n const failure = error instanceof Error ? error : new Error(\"Agent coordinator failed\");\n this.#rejectIdleWaiters(failure);\n await this.process.stop().catch(() => undefined);\n this.onProcessExit(failure);\n }\n\n #enqueue<T>(operation: () => Promise<T>): Promise<T> {\n const result = this.#lane.then(operation, operation);\n this.#lane = result.then(\n () => undefined,\n () => undefined,\n );\n return result;\n }\n}\n", "import { randomUUID } from \"node:crypto\";\nimport { Worker } from \"node:worker_threads\";\n\nimport type {\n FleetStore,\n StoredAgent,\n StoredCompact,\n StoredIncarnation,\n StoredOperation,\n StoredSend,\n} from \"./fleet-store.js\";\n\ninterface WorkerResponse {\n readonly id: string;\n readonly ok: boolean;\n readonly value?: unknown;\n readonly error?: string;\n}\n\nexport class WorkerFleetStore implements FleetStore {\n readonly #worker: Worker;\n readonly #pending = new Map<\n string,\n { readonly resolve: (value: unknown) => void; readonly reject: (error: Error) => void }\n >();\n #closed = false;\n #failure: Error | null = null;\n\n constructor(path: string, workerUrl = new URL(\"./sqlite-worker.mjs\", import.meta.url)) {\n this.#worker = new Worker(workerUrl, { workerData: { path } });\n this.#worker.on(\"message\", (value: unknown) => {\n if (!isWorkerResponse(value)) {\n this.#fail(new Error(\"SQLite worker returned a malformed response\"));\n void this.#worker.terminate();\n return;\n }\n const pending = this.#pending.get(value.id);\n if (pending === undefined) return;\n this.#pending.delete(value.id);\n if (value.ok) pending.resolve(value.value);\n else pending.reject(new Error(value.error ?? \"SQLite worker failed\"));\n });\n this.#worker.on(\"error\", (error) => this.#fail(error));\n this.#worker.on(\"exit\", (code) => {\n if (!this.#closed) this.#fail(new Error(`SQLite worker exited unexpectedly with ${code}`));\n });\n }\n\n createAgent(agent: StoredAgent): Promise<boolean> {\n return this.#call(\"createAgent\", [agent]);\n }\n\n getAgent(name: string): Promise<StoredAgent | null> {\n return this.#call(\"getAgent\", [name]);\n }\n\n listAgents(): Promise<readonly StoredAgent[]> {\n return this.#call(\"listAgents\", []);\n }\n\n async putAgent(agent: StoredAgent): Promise<void> {\n await this.#call(\"putAgent\", [agent]);\n }\n\n getOperation(operationId: string): Promise<StoredOperation | null> {\n return this.#call(\"getOperation\", [operationId]);\n }\n\n async putOperation(operation: StoredOperation): Promise<void> {\n await this.#call(\"putOperation\", [operation]);\n }\n\n listPendingOperations(): Promise<readonly StoredOperation[]> {\n return this.#call(\"listPendingOperations\", []);\n }\n\n async deleteOperation(operationId: string): Promise<void> {\n await this.#call(\"deleteOperation\", [operationId]);\n }\n\n getSend(sendId: string): Promise<StoredSend | null> {\n return this.#call(\"getSend\", [sendId]);\n }\n\n nextSendOrdinal(agentName: string): Promise<number> {\n return this.#call(\"nextSendOrdinal\", [agentName]);\n }\n\n async putSend(send: StoredSend): Promise<void> {\n await this.#call(\"putSend\", [send]);\n }\n\n listNonterminalSends(): Promise<readonly StoredSend[]> {\n return this.#call(\"listNonterminalSends\", []);\n }\n\n getCompact(compactId: string): Promise<StoredCompact | null> {\n return this.#call(\"getCompact\", [compactId]);\n }\n\n async putCompact(compact: StoredCompact): Promise<void> {\n await this.#call(\"putCompact\", [compact]);\n }\n\n listNonterminalCompacts(): Promise<readonly StoredCompact[]> {\n return this.#call(\"listNonterminalCompacts\", []);\n }\n\n async putIncarnation(incarnation: StoredIncarnation): Promise<void> {\n await this.#call(\"putIncarnation\", [incarnation]);\n }\n\n listActiveIncarnations(): Promise<readonly StoredIncarnation[]> {\n return this.#call(\"listActiveIncarnations\", []);\n }\n\n deleteAgent(name: string): Promise<StoredAgent | null> {\n return this.#call(\"deleteAgent\", [name]);\n }\n\n async close(cleanShutdown = true): Promise<void> {\n if (this.#closed) return;\n if (this.#failure === null) await this.#call(\"close\", [cleanShutdown]);\n this.#closed = true;\n await this.#worker.terminate();\n }\n\n #call<T>(method: string, args: readonly unknown[]): Promise<T> {\n if (this.#closed) return Promise.reject(new Error(\"pi-fleet store is closed\"));\n if (this.#failure !== null) return Promise.reject(this.#failure);\n const id = randomUUID();\n const result = new Promise<T>((resolveCall, rejectCall) => {\n this.#pending.set(id, {\n resolve: (value) => resolveCall(value as T),\n reject: rejectCall,\n });\n });\n try {\n this.#worker.postMessage({ id, method, args });\n } catch (error: unknown) {\n const failure = error instanceof Error ? error : new Error(\"SQLite worker request failed\");\n this.#fail(failure);\n }\n return result;\n }\n\n #fail(error: Error): void {\n this.#failure ??= error;\n for (const pending of this.#pending.values()) pending.reject(this.#failure);\n this.#pending.clear();\n }\n}\n\nfunction isWorkerResponse(value: unknown): value is WorkerResponse {\n if (typeof value !== \"object\" || value === null) return false;\n const response = value as Partial<WorkerResponse>;\n return (\n typeof response.id === \"string\" &&\n typeof response.ok === \"boolean\" &&\n (response.error === undefined || typeof response.error === \"string\")\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["value", "IsAsyncIterator", "IsObject", "IsIterator", "IsDate", "IsUint8Array", "HasPropertyKey", "IsObject", "IsArray", "IsUndefined", "IsNull", "IsBoolean", "IsNumber", "IsBigInt", "IsString", "IsFunction", "IsSymbol", "TypeSystemPolicy", "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", "range", "pattern", "BigInt", "Number", "String", "Number", "BigInt", "String", "Visit", "schema", "IsNumber", "IsInteger", "IsBigInt", "IsString", "IsBoolean", "FromUnion", "IsNumber", "IsInteger", "FromUnion", "IsArray", "IsObject", "Object", "Promise", "FromProperties", "FromMappedResult", "FromMappedResult", "FromRest", "FromProperties", "IsFunction", "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", "Symbol", "BigInt", "ExtendsResult", "FromArray", "Visit", "FromIntersect", "FromLiteral", "Number", "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", "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", "FromIntersect", "FromIterator", "FromObject", "Object", "FromRecord", "RecordValue", "FromTuple", "FromUnion", "IsArray", "IsAsyncIterator", "IsFunction", "IsIterator", "IsObject", "Not", "IsFunction", "RegExp", "IsFunction", "Encode", "Decode", "type_exports", "Array", "BigInt", "Date", "Not", "Number", "Object", "Promise", "RegExp", "String", "Symbol", "Uint8Array", "type_exports", "spawn", "stat", "resolve", "spawn", "process", "process", "join", "join", "once", "dirname", "target", "IsString", "ByteMarker", "ArrayType", "Visit", "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", "FromRef", "FromRegExp", "FromString", "IsString", "FromSymbol", "IsSymbol", "FromTemplateLiteral", "FromTuple", "FromUndefined", "IsUndefined", "FromUnion", "FromUint8Array", "IsUint8Array", "FromUnknown", "FromVoid", "type_exports", "ValueErrorType", "IsDefined", "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", "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", "Default", "FromArray", "IsArray", "value", "Visit", "FromIntersect", "IsObject", "FromImport", "FromNot", "FromObject", "HasPropertyKey", "IsUndefined", "FromRecord", "FromRef", "FromThis", "FromTuple", "schema", "FromUnion", "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", "Escape", "Set", "Delete", "Has", "Get", "ObjectType", "IsObject", "DateType", "IsDate", "ArrayType", "IsArray", "Object", "String", "Delete", "ObjectType", "HasPropertyKey", "Visit", "ArrayType", "IsArray", "TypedArrayType", "ValueType", "Clone", "IsStandardObject", "IsObject", "IsArray", "ObjectType", "Clone", "Visit", "ArrayType", "TypedArrayType", "ValueType", "ParseRegistry", "Clone", "Default", "Delete", "Set", "Get", "value", "IsUndefined", "IsArray", "value_exports", "Clone", "Create", "Default", "value_exports", "resolve", "dirname", "once", "randomUUID", "process", "resolve", "randomUUID", "process", "result", "resolve", "randomUUID"]
|
|
7
7
|
}
|