commanderclaw 1.1.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/plugin/client.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/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/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/async-iterator/async-iterator.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/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/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/deref/deref.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/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/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/not/not.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/parameters/parameters.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/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/readonly-optional/readonly-optional.mjs","../../node_modules/@sinclair/typebox/build/esm/type/record/record.mjs","../../node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs","../../node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs","../../node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.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/rest/rest.mjs","../../node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs","../../node_modules/@sinclair/typebox/build/esm/type/strict/strict.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/plugin/tools/nodes.ts","../../src/plugin/tools/task.ts","../../src/plugin/tools/status.ts","../../src/plugin/tools/command.ts","../../src/plugin/index.ts"],"sourcesContent":["/**\n * WebSocket client for CommanderClaw server\n * Cross-platform: works in both Node.js and browser/Electron environments\n */\n\nimport type {\n Message,\n HelloPayload,\n HelloAckPayload,\n PeerInfo,\n CreateTaskInput,\n Task,\n TaskUpdatePayload,\n ClientEventType,\n ClientEvent,\n} from \"./types\";\n\ntype WebSocketLike = {\n send: (data: string) => void;\n close: () => void;\n readyState: number;\n};\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nfunction createWebSocket(\n url: string,\n handlers: {\n onOpen: () => void;\n onMessage: (data: string) => void;\n onError: (error: Error) => void;\n onClose: () => void;\n }\n): WebSocketLike {\n if (typeof WebSocket !== \"undefined\") {\n const ws = new WebSocket(url);\n ws.onopen = () => handlers.onOpen();\n ws.onmessage = (event) => handlers.onMessage(event.data as string);\n ws.onerror = () => handlers.onError(new Error(\"WebSocket error\"));\n ws.onclose = () => handlers.onClose();\n return ws as unknown as WebSocketLike;\n }\n\n const WS = require(\"ws\");\n const ws = new WS(url);\n ws.on(\"open\", handlers.onOpen);\n ws.on(\"message\", (data: Buffer) => handlers.onMessage(data.toString()));\n ws.on(\"error\", (error: Error) => handlers.onError(error));\n ws.on(\"close\", handlers.onClose);\n return ws;\n}\n\nexport interface ClientOptions {\n url: string;\n token?: string;\n name: string;\n capabilities: string[];\n reconnect?: {\n enabled: boolean;\n maxAttempts: number;\n delayMs: number;\n };\n}\n\nexport class CommanderClawClient {\n private ws: WebSocketLike | null = null;\n private options: ClientOptions;\n private nodeId: string | null = null;\n private peers: PeerInfo[] = [];\n private commanderId: string | null = null;\n private connected = false;\n private reconnectAttempts = 0;\n private messageHandlers: Map<string, (msg: Message) => void> = new Map();\n private eventHandlers: Map<ClientEventType, ((event: ClientEvent) => void)[]> = new Map();\n private heartbeatInterval: ReturnType<typeof setInterval> | null = null;\n private connectionPromise: {\n resolve: () => void;\n reject: (error: Error) => void;\n } | null = null;\n\n constructor(options: ClientOptions) {\n this.options = options;\n }\n\n async connect(): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n this.connectionPromise = { resolve, reject };\n\n this.ws = createWebSocket(this.options.url, {\n onOpen: () => {\n const payload: HelloPayload = {\n id: this.options.name,\n name: this.options.name,\n capabilities: this.options.capabilities,\n token: this.options.token,\n };\n this.send(\"HELLO\", payload);\n },\n onMessage: (data: string) => {\n try {\n const msg: Message = JSON.parse(data);\n this.handleMessage(msg);\n } catch (error) {\n console.error(\"Failed to parse message:\", error);\n }\n },\n onError: (error: Error) => {\n if (this.connectionPromise) {\n this.connectionPromise.reject(error);\n this.connectionPromise = null;\n }\n this.emit(\"error\", { type: \"error\", data: error });\n },\n onClose: () => {\n this.handleDisconnect();\n },\n });\n } catch (error) {\n reject(error);\n }\n });\n }\n\n private handleMessage(msg: Message): void {\n console.log(`[CommanderClawClient] handleMessage: type=${msg.type}, from=${msg.from}`);\n\n switch (msg.type) {\n case \"HELLO_ACK\": {\n const payload = msg.payload as HelloAckPayload;\n console.log(`[CommanderClawClient] HELLO_ACK received, error=${payload.error}, nodeId=${payload.nodeId}`);\n\n if (payload.error) {\n if (this.connectionPromise) {\n this.connectionPromise.reject(new Error(payload.error));\n this.connectionPromise = null;\n }\n return;\n }\n\n this.nodeId = payload.nodeId;\n this.peers = payload.peers || [];\n this.commanderId = payload.commanderId || null;\n this.connected = true;\n this.reconnectAttempts = 0;\n\n console.log(`[CommanderClawClient] Connected as node ${this.nodeId}, commander=${this.commanderId}, peers=${this.peers.length}`);\n\n this.startHeartbeat();\n this.emit(\"connected\", { type: \"connected\", data: { nodeId: this.nodeId } });\n\n if (this.connectionPromise) {\n this.connectionPromise.resolve();\n this.connectionPromise = null;\n }\n break;\n }\n\n case \"HEARTBEAT_ACK\":\n console.log(`[CommanderClawClient] HEARTBEAT_ACK received`);\n break;\n\n case \"PEER_UPDATE\": {\n const payload = msg.payload as { event: string; node: PeerInfo };\n console.log(`[CommanderClawClient] PEER_UPDATE: event=${payload.event}, node=${payload.node?.id}`);\n this.updatePeers(payload.event, payload.node);\n this.emit(\"peer_update\", { type: \"peer_update\", data: payload });\n break;\n }\n\n case \"TASK_ASSIGN\": {\n console.log(`[CommanderClawClient] TASK_ASSIGN received`, msg.payload);\n const handler = this.messageHandlers.get(\"TASK_ASSIGN\");\n if (handler) handler(msg);\n this.emit(\"task_assign\", { type: \"task_assign\", data: msg.payload });\n break;\n }\n\n case \"COMMANDER_APPOINT\": {\n const payload = msg.payload as { commanderId: string };\n console.log(`[CommanderClawClient] COMMANDER_APPOINT: commanderId=${payload.commanderId}`);\n this.commanderId = payload.commanderId;\n this.emit(\"commander_change\", { type: \"commander_change\", data: payload });\n break;\n }\n\n case \"CHAT\": {\n console.log(`[CommanderClawClient] CHAT received`, {\n from: msg.from,\n to: (msg as any).to,\n msgType: (msg as any).msgType,\n payload: msg.payload,\n });\n this.emit(\"chat\", { type: \"chat\", data: msg });\n break;\n }\n\n default: {\n console.log(`[CommanderClawClient] Unknown message type: ${msg.type}`);\n const handler = this.messageHandlers.get(msg.type);\n if (handler) handler(msg);\n }\n }\n }\n\n private updatePeers(event: string, node: PeerInfo): void {\n switch (event) {\n case \"join\":\n this.peers.push(node);\n break;\n case \"leave\":\n this.peers = this.peers.filter((p) => p.id !== node.id);\n if (this.commanderId === node.id) {\n this.commanderId = null;\n }\n break;\n case \"update\":\n const idx = this.peers.findIndex((p) => p.id === node.id);\n if (idx >= 0) {\n this.peers[idx] = node;\n }\n break;\n }\n }\n\n private handleDisconnect(): void {\n this.connected = false;\n this.nodeId = null;\n if (this.heartbeatInterval) {\n clearInterval(this.heartbeatInterval);\n this.heartbeatInterval = null;\n }\n this.emit(\"disconnected\", { type: \"disconnected\", data: {} });\n this.attemptReconnect();\n }\n\n private startHeartbeat(): void {\n this.heartbeatInterval = setInterval(() => {\n if (this.connected && this.ws) {\n this.send(\"HEARTBEAT\", { status: \"online\", load: 0 });\n }\n }, 5000);\n }\n\n private attemptReconnect(): void {\n const reconnect = this.options.reconnect;\n if (!reconnect?.enabled) return;\n if (this.reconnectAttempts >= reconnect.maxAttempts) {\n console.error(\"Max reconnect attempts reached\");\n return;\n }\n\n this.reconnectAttempts++;\n console.log(`Reconnecting... attempt ${this.reconnectAttempts}/${reconnect.maxAttempts}`);\n\n setTimeout(() => {\n this.connect().catch((error) => {\n console.error(\"Reconnect failed:\", error);\n });\n }, reconnect.delayMs);\n }\n\n async disconnect(): Promise<void> {\n if (this.ws) {\n this.send(\"BYE\", { reason: \"disconnect\" });\n this.ws.close();\n this.ws = null;\n }\n this.connected = false;\n if (this.heartbeatInterval) {\n clearInterval(this.heartbeatInterval);\n this.heartbeatInterval = null;\n }\n }\n\n send(type: string, payload?: unknown): void {\n if (!this.ws) {\n console.error(`[CommanderClawClient] send: WebSocket not connected, cannot send ${type}`);\n return;\n }\n\n const msg: Message = {\n type,\n id: crypto.randomUUID(),\n from: this.nodeId || \"unknown\",\n payload,\n timestamp: Date.now(),\n };\n\n console.log(`[CommanderClawClient] send: type=${type}, from=${msg.from}`, payload);\n\n this.ws.send(JSON.stringify(msg));\n }\n\n on(event: ClientEventType, handler: (event: ClientEvent) => void): void {\n const handlers = this.eventHandlers.get(event) || [];\n handlers.push(handler);\n this.eventHandlers.set(event, handlers);\n }\n\n off(event: ClientEventType, handler: (event: ClientEvent) => void): void {\n const handlers = this.eventHandlers.get(event) || [];\n const idx = handlers.indexOf(handler);\n if (idx >= 0) {\n handlers.splice(idx, 1);\n }\n }\n\n private emit(event: ClientEventType, data: ClientEvent): void {\n const handlers = this.eventHandlers.get(event) || [];\n for (const handler of handlers) {\n try {\n handler(data);\n } catch (error) {\n console.error(`Error in event handler for ${event}:`, error);\n }\n }\n }\n\n onMessage(type: string, handler: (msg: Message) => void): void {\n this.messageHandlers.set(type, handler);\n }\n\n isConnected(): boolean {\n return this.connected;\n }\n\n getNodeId(): string | null {\n return this.nodeId;\n }\n\n getPeers(): PeerInfo[] {\n return [...this.peers];\n }\n\n getCommanderId(): string | null {\n return this.commanderId;\n }\n\n private getHttpUrl(): string {\n return this.options.url.replace(\"ws://\", \"http://\").replace(\"wss://\", \"https://\").replace(/\\/ws$/, \"\");\n }\n\n private async fetchApi<T>(path: string, options: RequestInit = {}): Promise<T> {\n const url = `${this.getHttpUrl()}${path}`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...(options.headers as Record<string, string>),\n };\n\n if (this.options.token) {\n headers[\"Authorization\"] = `Bearer ${this.options.token}`;\n }\n\n const response = await fetch(url, {\n ...options,\n headers,\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`API error: ${response.status} ${error}`);\n }\n\n return response.json() as T;\n }\n\n async listNodes(): Promise<PeerInfo[]> {\n const data = await this.fetchApi<{ nodes: PeerInfo[] }>(\"/api/nodes\");\n return data.nodes || [];\n }\n\n async getStatus(): Promise<{ status: string; nodes: number }> {\n return this.fetchApi(\"/api/health\");\n }\n\n async createTask(input: CreateTaskInput): Promise<Task> {\n return this.fetchApi(\"/api/tasks\", {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n }\n\n async listTasks(): Promise<Task[]> {\n const data = await this.fetchApi<{ tasks: Task[] }>(\"/api/tasks\");\n return data.tasks || [];\n }\n\n async getTask(taskId: string): Promise<Task> {\n return this.fetchApi(`/api/tasks/${taskId}`);\n }\n\n async abortTask(taskId: string, reason?: string): Promise<{ status: string }> {\n return this.fetchApi(`/api/tasks/${taskId}/abort`, {\n method: \"POST\",\n body: JSON.stringify({ reason }),\n });\n }\n\n async pauseTask(taskId: string): Promise<{ status: string }> {\n return this.fetchApi(`/api/tasks/${taskId}/pause`, {\n method: \"POST\",\n });\n }\n\n async resumeTask(taskId: string): Promise<{ status: string }> {\n return this.fetchApi(`/api/tasks/${taskId}/resume`, {\n method: \"POST\",\n });\n }\n\n async appointCommander(nodeId: string): Promise<{ status: string; commanderId: string }> {\n return this.fetchApi(\"/api/commander\", {\n method: \"POST\",\n body: JSON.stringify({ nodeId }),\n });\n }\n\n sendTaskUpdate(payload: TaskUpdatePayload): void {\n this.send(\"TASK_UPDATE\", payload);\n }\n\n sendTaskResult(payload: TaskUpdatePayload & { output?: unknown; error?: string; duration: number }): void {\n this.send(\"TASK_RESULT\", payload);\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 { ...Clone(schema), ...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","/** 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 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 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 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 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 IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(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 'Any',\n 'Array',\n 'AsyncIterator',\n 'BigInt',\n 'Boolean',\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 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 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 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 IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(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","/** 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 } from '../symbols/index.mjs';\n/** `[Json]` Creates an Any type */\nexport function Any(options = {}) {\n return { ...options, [Kind]: 'Any' };\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Array type */\nexport function Array(schema, options = {}) {\n return {\n ...options,\n [Kind]: 'Array',\n type: 'array',\n items: CloneType(schema),\n };\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\n/** `[JavaScript]` Creates a AsyncIterator type */\nexport function AsyncIterator(items, options = {}) {\n return {\n ...options,\n [Kind]: 'AsyncIterator',\n type: 'AsyncIterator',\n items: CloneType(items),\n };\n}\n","function DiscardKey(value, key) {\n const { [key]: _, ...rest } = value;\n return rest;\n}\nexport function Discard(value, keys) {\n return keys.reduce((acc, key) => DiscardKey(acc, key), value);\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Never type */\nexport function Never(options = {}) {\n return {\n ...options,\n [Kind]: 'Never',\n not: {},\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n// prettier-ignore\nexport function MappedResult(properties) {\n return {\n [Kind]: 'MappedResult',\n properties\n };\n}\n","import { CloneType, CloneRest } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Constructor type */\nexport function Constructor(parameters, returns, options) {\n return {\n ...options,\n [Kind]: 'Constructor',\n type: 'Constructor',\n parameters: CloneRest(parameters),\n returns: CloneType(returns),\n };\n}\n","import { CloneType, CloneRest } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Function type */\nexport function Function(parameters, returns, options) {\n return {\n ...options,\n [Kind]: 'Function',\n type: 'Function',\n parameters: CloneRest(parameters),\n returns: CloneType(returns),\n };\n}\n","import { CloneRest } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\nexport function UnionCreate(T, options) {\n return { ...options, [Kind]: 'Union', anyOf: CloneRest(T) };\n}\n","import { OptionalKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.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(T) {\n return T.some(L => IsOptional(L));\n}\n// prettier-ignore\nfunction RemoveOptionalFromRest(T) {\n return T.map(L => IsOptional(L) ? RemoveOptionalFromType(L) : L);\n}\n// prettier-ignore\nfunction RemoveOptionalFromType(T) {\n return (Discard(T, [OptionalKind]));\n}\n// prettier-ignore\nfunction ResolveUnion(T, options) {\n return (IsUnionOptional(T)\n ? Optional(UnionCreate(RemoveOptionalFromRest(T), options))\n : UnionCreate(RemoveOptionalFromRest(T), options));\n}\n/** `[Json]` Creates an evaluated Union type */\nexport function UnionEvaluated(T, options = {}) {\n // prettier-ignore\n return (T.length === 0 ? Never(options) :\n T.length === 1 ? CloneType(T[0], options) :\n ResolveUnion(T, options));\n}\n","import { Never } from '../never/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\nimport { UnionCreate } from './union-create.mjs';\n/** `[Json]` Creates a Union type */\nexport function Union(T, options = {}) {\n // prettier-ignore\n return (T.length === 0 ? Never(options) :\n T.length === 1 ? CloneType(T[0], options) :\n UnionCreate(T, 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 { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Literal type */\nexport function Literal(value, options = {}) {\n return {\n ...options,\n [Kind]: 'Literal',\n const: value,\n type: typeof value,\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Boolean type */\nexport function Boolean(options = {}) {\n return {\n ...options,\n [Kind]: 'Boolean',\n type: 'boolean',\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a BigInt type */\nexport function BigInt(options = {}) {\n return {\n ...options,\n [Kind]: 'BigInt',\n type: 'bigint',\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Number type */\nexport function Number(options = {}) {\n return {\n ...options,\n [Kind]: 'Number',\n type: 'number',\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a String type */\nexport function String(options = {}) {\n return { ...options, [Kind]: 'String', type: 'string' };\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 { 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 { ...options, [Kind]: 'TemplateLiteral', type: 'string', pattern };\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(T) {\n const R = TemplateLiteralGenerate(T);\n return R.map(S => S.toString());\n}\n// prettier-ignore\nfunction FromUnion(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...IndexPropertyKeys(L));\n return Acc;\n}\n// prettier-ignore\nfunction FromLiteral(T) {\n return ([T.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(T) {\n return [...new Set((IsTemplateLiteral(T) ? FromTemplateLiteral(T) :\n IsUnion(T) ? FromUnion(T.anyOf) :\n IsLiteral(T) ? FromLiteral(T.const) :\n IsNumber(T) ? ['[number]'] :\n IsInteger(T) ? ['[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(T, P, options) {\n const Acc = {};\n for (const K2 of Object.getOwnPropertyNames(P)) {\n Acc[K2] = Index(T, IndexPropertyKeys(P[K2]), options);\n }\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(T, R, options) {\n return FromProperties(T, R.properties, options);\n}\n// prettier-ignore\nexport function IndexFromMappedResult(T, R, options) {\n const P = FromMappedResult(T, R, options);\n return MappedResult(P);\n}\n","import { Never } from '../never/index.mjs';\nimport { IntersectEvaluated } from '../intersect/index.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { CloneType } from '../clone/type.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 } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(T, K) {\n return T.map(L => IndexFromPropertyKey(L, K));\n}\n// prettier-ignore\nfunction FromIntersectRest(T) {\n return T.filter(L => !IsNever(L));\n}\n// prettier-ignore\nfunction FromIntersect(T, K) {\n return (IntersectEvaluated(FromIntersectRest(FromRest(T, K))));\n}\n// prettier-ignore\nfunction FromUnionRest(T) {\n return (T.some(L => IsNever(L))\n ? []\n : T);\n}\n// prettier-ignore\nfunction FromUnion(T, K) {\n return (UnionEvaluated(FromUnionRest(FromRest(T, K))));\n}\n// prettier-ignore\nfunction FromTuple(T, K) {\n return (K in T ? T[K] :\n K === '[number]' ? UnionEvaluated(T) :\n Never());\n}\n// prettier-ignore\nfunction FromArray(T, K) {\n return (K === '[number]'\n ? T\n : Never());\n}\n// prettier-ignore\nfunction FromProperty(T, K) {\n return (K in T ? T[K] : Never());\n}\n// prettier-ignore\nexport function IndexFromPropertyKey(T, K) {\n return (IsIntersect(T) ? FromIntersect(T.allOf, K) :\n IsUnion(T) ? FromUnion(T.anyOf, K) :\n IsTuple(T) ? FromTuple(T.items ?? [], K) :\n IsArray(T) ? FromArray(T.items, K) :\n IsObject(T) ? FromProperty(T.properties, K) :\n Never());\n}\n// prettier-ignore\nexport function IndexFromPropertyKeys(T, K) {\n return K.map(L => IndexFromPropertyKey(T, L));\n}\n// prettier-ignore\nfunction FromSchema(T, K) {\n return (UnionEvaluated(IndexFromPropertyKeys(T, K)));\n}\n/** `[Json]` Returns an Indexed property type for the given keys */\nexport function Index(T, K, options = {}) {\n // prettier-ignore\n return (IsMappedResult(K) ? CloneType(IndexFromMappedResult(T, K, options)) :\n IsMappedKey(K) ? CloneType(IndexFromMappedKey(T, K, options)) :\n IsSchema(K) ? CloneType(FromSchema(T, IndexPropertyKeys(K)), options) :\n CloneType(FromSchema(T, K), options));\n}\n","import { Index } from './indexed.mjs';\nimport { MappedResult } from '../mapped/index.mjs';\n// prettier-ignore\nfunction MappedIndexPropertyKey(T, K, options) {\n return { [K]: Index(T, [K], options) };\n}\n// prettier-ignore\nfunction MappedIndexPropertyKeys(T, K, options) {\n return K.reduce((Acc, L) => {\n return { ...Acc, ...MappedIndexPropertyKey(T, L, options) };\n }, {});\n}\n// prettier-ignore\nfunction MappedIndexProperties(T, K, options) {\n return MappedIndexPropertyKeys(T, K.keys, options);\n}\n// prettier-ignore\nexport function IndexFromMappedKey(T, K, options) {\n const P = MappedIndexProperties(T, K, options);\n return MappedResult(P);\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates an Iterator type */\nexport function Iterator(items, options = {}) {\n return {\n ...options,\n [Kind]: 'Iterator',\n type: 'Iterator',\n items: CloneType(items),\n };\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional, IsSchema } from '../guard/kind.mjs';\n/** `[Json]` Creates an Object type */\nfunction _Object(properties, options = {}) {\n const propertyKeys = globalThis.Object.getOwnPropertyNames(properties);\n const optionalKeys = propertyKeys.filter((key) => IsOptional(properties[key]));\n const requiredKeys = propertyKeys.filter((name) => !optionalKeys.includes(name));\n const clonedAdditionalProperties = IsSchema(options.additionalProperties) ? { additionalProperties: CloneType(options.additionalProperties) } : {};\n const clonedProperties = {};\n for (const key of propertyKeys)\n clonedProperties[key] = CloneType(properties[key]);\n return (requiredKeys.length > 0\n ? { ...options, ...clonedAdditionalProperties, [Kind]: 'Object', type: 'object', properties: clonedProperties, required: requiredKeys }\n : { ...options, ...clonedAdditionalProperties, [Kind]: 'Object', type: 'object', properties: clonedProperties });\n}\n/** `[Json]` Creates an Object type */\nexport const Object = _Object;\n","import { CloneType } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Promise type */\nexport function Promise(item, options = {}) {\n return {\n ...options,\n [Kind]: 'Promise',\n type: 'Promise',\n item: CloneType(item),\n };\n}\n","import { ReadonlyKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.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 Discard(CloneType(schema), [ReadonlyKind]);\n}\nfunction AddReadonly(schema) {\n return { ...CloneType(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 { CloneRest } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Tuple type */\nexport function Tuple(items, options = {}) {\n // return TupleResolver.Resolve(T)\n const [additionalItems, minItems, maxItems] = [false, items.length, items.length];\n // prettier-ignore\n return (items.length > 0 ?\n { ...options, [Kind]: 'Tuple', type: 'array', items: CloneRest(items), additionalItems, minItems, maxItems } :\n { ...options, [Kind]: 'Tuple', type: 'array', minItems, maxItems });\n}\n","import { Kind, OptionalKind, ReadonlyKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\nimport { Discard } from '../discard/index.mjs';\n// evaluation types\nimport { Array } from '../array/index.mjs';\nimport { AsyncIterator } from '../async-iterator/index.mjs';\nimport { Constructor } from '../constructor/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Iterator } from '../iterator/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Promise } from '../promise/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Union } from '../union/index.mjs';\n// operator\nimport { SetIncludes } from '../sets/index.mjs';\n// mapping types\nimport { MappedResult } from './mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsAsyncIterator, IsConstructor, IsFunction, IsIntersect, IsIterator, IsReadonly, IsMappedResult, IsMappedKey, IsObject, IsOptional, IsPromise, IsSchema, IsTuple, IsUnion } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromMappedResult(K, P) {\n return (K in P\n ? FromSchemaType(K, P[K])\n : MappedResult(P));\n}\n// prettier-ignore\nfunction MappedKeyToKnownMappedResultProperties(K) {\n return { [K]: Literal(K) };\n}\n// prettier-ignore\nfunction MappedKeyToUnknownMappedResultProperties(P) {\n const Acc = {};\n for (const L of P)\n Acc[L] = Literal(L);\n return Acc;\n}\n// prettier-ignore\nfunction MappedKeyToMappedResultProperties(K, P) {\n return (SetIncludes(P, K)\n ? MappedKeyToKnownMappedResultProperties(K)\n : MappedKeyToUnknownMappedResultProperties(P));\n}\n// prettier-ignore\nfunction FromMappedKey(K, P) {\n const R = MappedKeyToMappedResultProperties(K, P);\n return FromMappedResult(K, R);\n}\n// prettier-ignore\nfunction FromRest(K, T) {\n return T.map(L => FromSchemaType(K, L));\n}\n// prettier-ignore\nfunction FromProperties(K, T) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(T))\n Acc[K2] = FromSchemaType(K, T[K2]);\n return Acc;\n}\n// prettier-ignore\nfunction FromSchemaType(K, T) {\n 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)) :\n IsFunction(T) ? FunctionType(FromRest(K, T.parameters), FromSchemaType(K, T.returns)) :\n IsAsyncIterator(T) ? AsyncIterator(FromSchemaType(K, T.items)) :\n IsIterator(T) ? Iterator(FromSchemaType(K, T.items)) :\n IsIntersect(T) ? Intersect(FromRest(K, T.allOf)) :\n IsUnion(T) ? Union(FromRest(K, T.anyOf)) :\n IsTuple(T) ? Tuple(FromRest(K, T.items ?? [])) :\n IsObject(T) ? Object(FromProperties(K, T.properties)) :\n IsArray(T) ? Array(FromSchemaType(K, T.items)) :\n IsPromise(T) ? Promise(FromSchemaType(K, T.item)) :\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 CloneType(Object(R), options);\n}\n","import { OptionalKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.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 Discard(CloneType(schema), [OptionalKind]);\n}\nfunction AddOptional(schema) {\n return { ...CloneType(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 { Kind } from '../symbols/index.mjs';\nimport { CloneType, CloneRest } from '../clone/type.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: CloneType(options.unevaluatedProperties) }\n : {};\n return ((options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects\n ? { ...options, ...clonedUnevaluatedProperties, [Kind]: 'Intersect', type: 'object', allOf: CloneRest(T) }\n : { ...options, ...clonedUnevaluatedProperties, [Kind]: 'Intersect', allOf: CloneRest(T) }));\n}\n","import { OptionalKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/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(T) {\n return T.every(L => IsOptional(L));\n}\n// prettier-ignore\nfunction RemoveOptionalFromType(T) {\n return (Discard(T, [OptionalKind]));\n}\n// prettier-ignore\nfunction RemoveOptionalFromRest(T) {\n return T.map(L => IsOptional(L) ? RemoveOptionalFromType(L) : L);\n}\n// prettier-ignore\nfunction ResolveIntersect(T, options) {\n return (IsIntersectOptional(T)\n ? Optional(IntersectCreate(RemoveOptionalFromRest(T), options))\n : IntersectCreate(RemoveOptionalFromRest(T), options));\n}\n/** `[Json]` Creates an evaluated Intersect type */\nexport function IntersectEvaluated(T, options = {}) {\n if (T.length === 0)\n return Never(options);\n if (T.length === 1)\n return CloneType(T[0], options);\n if (T.some((schema) => IsTransform(schema)))\n throw new Error('Cannot intersect transform types');\n return ResolveIntersect(T, options);\n}\n","import { CloneType } from '../clone/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(T, options = {}) {\n if (T.length === 0)\n return Never(options);\n if (T.length === 1)\n return CloneType(T[0], options);\n if (T.some((schema) => IsTransform(schema)))\n throw new Error('Cannot intersect transform types');\n return IntersectCreate(T, options);\n}\n","import { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsPromise } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(T) {\n return T.map(L => AwaitedResolve(L));\n}\n// prettier-ignore\nfunction FromIntersect(T) {\n return Intersect(FromRest(T));\n}\n// prettier-ignore\nfunction FromUnion(T) {\n return Union(FromRest(T));\n}\n// prettier-ignore\nfunction FromPromise(T) {\n return AwaitedResolve(T);\n}\n// ----------------------------------------------------------------\n// AwaitedResolve\n// ----------------------------------------------------------------\n// prettier-ignore\nfunction AwaitedResolve(T) {\n return (IsIntersect(T) ? FromIntersect(T.allOf) :\n IsUnion(T) ? FromUnion(T.anyOf) :\n IsPromise(T) ? FromPromise(T.item) :\n T);\n}\n/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */\nexport function Awaited(T, options = {}) {\n return CloneType(AwaitedResolve(T), 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(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(KeyOfPropertyKeys(L));\n return Acc;\n}\n// prettier-ignore\nfunction FromIntersect(T) {\n const C = FromRest(T);\n const R = SetUnionMany(C);\n return R;\n}\n// prettier-ignore\nfunction FromUnion(T) {\n const C = FromRest(T);\n const R = SetIntersectMany(C);\n return R;\n}\n// prettier-ignore\nfunction FromTuple(T) {\n return T.map((_, I) => I.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(T) {\n return (IsIntersect(T) ? FromIntersect(T.allOf) :\n IsUnion(T) ? FromUnion(T.anyOf) :\n IsTuple(T) ? FromTuple(T.items ?? []) :\n IsArray(T) ? FromArray(T.items) :\n IsObject(T) ? FromProperties(T.properties) :\n IsRecord(T) ? FromPatternProperties(T.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 { Literal } from '../literal/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { KeyOfPropertyKeys } from './keyof-property-keys.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\nimport { KeyOfFromMappedResult } from './keyof-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult } from '../guard/kind.mjs';\n// prettier-ignore\nexport function KeyOfPropertyKeysToRest(T) {\n return T.map(L => L === '[number]' ? Number() : Literal(L));\n}\n/** `[Json]` Creates a KeyOf type */\nexport function KeyOf(T, options = {}) {\n if (IsMappedResult(T)) {\n return KeyOfFromMappedResult(T, options);\n }\n else {\n const K = KeyOfPropertyKeys(T);\n const S = KeyOfPropertyKeysToRest(K);\n const U = UnionEvaluated(S);\n return CloneType(U, options);\n }\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { KeyOf } from './keyof.mjs';\n// prettier-ignore\nfunction FromProperties(K, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(K))\n Acc[K2] = KeyOf(K[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 KeyOfFromMappedResult(R, options) {\n const P = FromMappedResult(R, options);\n return MappedResult(P);\n}\n","import { IntersectEvaluated } from '../intersect/index.mjs';\nimport { IndexFromPropertyKeys } from '../indexed/index.mjs';\nimport { KeyOfPropertyKeys } from '../keyof/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { SetDistinct } from '../sets/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsNever } from '../guard/kind.mjs';\n// prettier-ignore\nfunction CompositeKeys(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...KeyOfPropertyKeys(L));\n return SetDistinct(Acc);\n}\n// prettier-ignore\nfunction FilterNever(T) {\n return T.filter(L => !IsNever(L));\n}\n// prettier-ignore\nfunction CompositeProperty(T, K) {\n const Acc = [];\n for (const L of T)\n Acc.push(...IndexFromPropertyKeys(L, [K]));\n return FilterNever(Acc);\n}\n// prettier-ignore\nfunction CompositeProperties(T, K) {\n const Acc = {};\n for (const L of K) {\n Acc[L] = IntersectEvaluated(CompositeProperty(T, L));\n }\n return Acc;\n}\n// prettier-ignore\nexport function Composite(T, options = {}) {\n const K = CompositeKeys(T);\n const P = CompositeProperties(T, K);\n const R = Object(P, options);\n return R;\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Date type */\nexport function Date(options = {}) {\n return {\n ...options,\n [Kind]: 'Date',\n type: 'Date',\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Null type */\nexport function Null(options = {}) {\n return {\n ...options,\n [Kind]: 'Null',\n type: 'null',\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Symbol type */\nexport function Symbol(options) {\n return { ...options, [Kind]: 'Symbol', type: 'symbol' };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Undefined type */\nexport function Undefined(options = {}) {\n return { ...options, [Kind]: 'Undefined', type: 'undefined' };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Uint8Array type */\nexport function Uint8Array(options = {}) {\n return { ...options, [Kind]: 'Uint8Array', type: 'Uint8Array' };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Unknown type */\nexport function Unknown(options = {}) {\n return {\n ...options,\n [Kind]: 'Unknown',\n };\n}\n","import { Any } from '../any/index.mjs';\nimport { BigInt } from '../bigint/index.mjs';\nimport { Date } from '../date/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Null } from '../null/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Symbol } from '../symbol/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Undefined } from '../undefined/index.mjs';\nimport { Uint8Array } from '../uint8array/index.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { CloneType } from '../clone/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 CloneType(FromValue(T, true), options);\n}\n","import { Tuple } from '../tuple/index.mjs';\nimport { CloneRest } from '../clone/type.mjs';\n/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */\nexport function ConstructorParameters(schema, options = {}) {\n return Tuple(CloneRest(schema.parameters), { ...options });\n}\n","import { CloneType, CloneRest } from '../clone/type.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { IsUndefined } from '../guard/value.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsConstructor, IsFunction, IsIntersect, IsUnion, IsTuple, IsArray, IsObject, IsPromise, IsAsyncIterator, IsIterator, IsRef } from '../guard/kind.mjs';\nfunction FromRest(schema, references) {\n return schema.map((schema) => Deref(schema, references));\n}\n// prettier-ignore\nfunction FromProperties(properties, references) {\n const Acc = {};\n for (const K of globalThis.Object.getOwnPropertyNames(properties)) {\n Acc[K] = Deref(properties[K], references);\n }\n return Acc;\n}\n// prettier-ignore\nfunction FromConstructor(schema, references) {\n schema.parameters = FromRest(schema.parameters, references);\n schema.returns = Deref(schema.returns, references);\n return schema;\n}\n// prettier-ignore\nfunction FromFunction(schema, references) {\n schema.parameters = FromRest(schema.parameters, references);\n schema.returns = Deref(schema.returns, references);\n return schema;\n}\n// prettier-ignore\nfunction FromIntersect(schema, references) {\n schema.allOf = FromRest(schema.allOf, references);\n return schema;\n}\n// prettier-ignore\nfunction FromUnion(schema, references) {\n schema.anyOf = FromRest(schema.anyOf, references);\n return schema;\n}\n// prettier-ignore\nfunction FromTuple(schema, references) {\n if (IsUndefined(schema.items))\n return schema;\n schema.items = FromRest(schema.items, references);\n return schema;\n}\n// prettier-ignore\nfunction FromArray(schema, references) {\n schema.items = Deref(schema.items, references);\n return schema;\n}\n// prettier-ignore\nfunction FromObject(schema, references) {\n schema.properties = FromProperties(schema.properties, references);\n return schema;\n}\n// prettier-ignore\nfunction FromPromise(schema, references) {\n schema.item = Deref(schema.item, references);\n return schema;\n}\n// prettier-ignore\nfunction FromAsyncIterator(schema, references) {\n schema.items = Deref(schema.items, references);\n return schema;\n}\n// prettier-ignore\nfunction FromIterator(schema, references) {\n schema.items = Deref(schema.items, references);\n return schema;\n}\n// prettier-ignore\nfunction FromRef(schema, references) {\n const target = references.find(remote => remote.$id === schema.$ref);\n if (target === undefined)\n throw Error(`Unable to dereference schema with $id ${schema.$ref}`);\n const discard = Discard(target, ['$id']);\n return Deref(discard, references);\n}\n// prettier-ignore\nfunction DerefResolve(schema, references) {\n return (IsConstructor(schema) ? FromConstructor(schema, references) :\n IsFunction(schema) ? FromFunction(schema, references) :\n IsIntersect(schema) ? FromIntersect(schema, references) :\n IsUnion(schema) ? FromUnion(schema, references) :\n IsTuple(schema) ? FromTuple(schema, references) :\n IsArray(schema) ? FromArray(schema, references) :\n IsObject(schema) ? FromObject(schema, references) :\n IsPromise(schema) ? FromPromise(schema, references) :\n IsAsyncIterator(schema) ? FromAsyncIterator(schema, references) :\n IsIterator(schema) ? FromIterator(schema, references) :\n IsRef(schema) ? FromRef(schema, references) :\n schema);\n}\n// ------------------------------------------------------------------\n// TDeref\n// ------------------------------------------------------------------\n/** `[Json]` Creates a dereferenced type */\nexport function Deref(schema, references) {\n return DerefResolve(CloneType(schema), CloneRest(references));\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';\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, 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 { Union } from '../union/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from './extends-check.mjs';\nimport { CloneType } from '../clone/type.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) ? CloneType(ExtendsFromMappedKey(L, R, T, F, options)) :\n CloneType(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';\n// prettier-ignore\nfunction FromPropertyKey(K, U, L, R, options) {\n return {\n [K]: Extends(Literal(K), U, L, R, 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 { 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 { Union } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from '../extends/index.mjs';\nimport { CloneType } from '../clone/type.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 CloneType(ExcludeFromTemplateLiteral(L, R), options);\n if (IsMappedResult(L))\n return CloneType(ExcludeFromMappedResult(L, R), options);\n // prettier-ignore\n return CloneType(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 { Union } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from '../extends/index.mjs';\nimport { CloneType } from '../clone/type.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 CloneType(ExtractFromTemplateLiteral(L, R), options);\n if (IsMappedResult(L))\n return CloneType(ExtractFromMappedResult(L, R), options);\n // prettier-ignore\n return CloneType(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 { CloneType } from '../clone/type.mjs';\n/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */\nexport function InstanceType(schema, options = {}) {\n return CloneType(schema.returns, options);\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Integer type */\nexport function Integer(options = {}) {\n return {\n ...options,\n [Kind]: 'Integer',\n type: 'integer',\n };\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Intrinsic } from './intrinsic.mjs';\nimport { Literal } from '../literal/index.mjs';\n// prettier-ignore\nfunction MappedIntrinsicPropertyKey(K, M, options) {\n return {\n [K]: Intrinsic(Literal(K), M, options)\n };\n}\n// prettier-ignore\nfunction MappedIntrinsicPropertyKeys(K, M, options) {\n return K.reduce((Acc, L) => {\n return { ...Acc, ...MappedIntrinsicPropertyKey(L, M, options) };\n }, {});\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 { 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, schema) :\n IsUnion(schema) ? Union(FromRest(schema.anyOf, mode), options) :\n IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) :\n schema);\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 { CloneType } from '../clone/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Not type */\nexport function Not(schema, options) {\n return {\n ...options,\n [Kind]: 'Not',\n not: CloneType(schema),\n };\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Omit } from './omit.mjs';\n// prettier-ignore\nfunction FromProperties(P, K, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Omit(P[K2], K, options);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, K, options) {\n return FromProperties(R.properties, K, options);\n}\n// prettier-ignore\nexport function OmitFromMappedResult(R, K, options) {\n const P = FromMappedResult(R, K, options);\n return MappedResult(P);\n}\n","import { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { TransformKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\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 } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromIntersect(T, K) {\n return T.map((T) => OmitResolve(T, K));\n}\n// prettier-ignore\nfunction FromUnion(T, K) {\n return T.map((T) => OmitResolve(T, K));\n}\n// ------------------------------------------------------------------\n// FromProperty\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromProperty(T, K) {\n const { [K]: _, ...R } = T;\n return R;\n}\n// prettier-ignore\nfunction FromProperties(T, K) {\n return K.reduce((T, K2) => FromProperty(T, K2), T);\n}\n// ------------------------------------------------------------------\n// OmitResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction OmitResolve(T, K) {\n return (IsIntersect(T) ? Intersect(FromIntersect(T.allOf, K)) :\n IsUnion(T) ? Union(FromUnion(T.anyOf, K)) :\n IsObject(T) ? Object(FromProperties(T.properties, K)) :\n Object({}));\n}\nexport function Omit(T, K, options = {}) {\n // mapped\n if (IsMappedKey(K))\n return OmitFromMappedKey(T, K, options);\n if (IsMappedResult(T))\n return OmitFromMappedResult(T, K, options);\n // non-mapped\n const I = IsSchema(K) ? IndexPropertyKeys(K) : K;\n const D = Discard(T, [TransformKind, '$id', 'required']);\n const R = CloneType(OmitResolve(T, I), options);\n return { ...D, ...R };\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Omit } from './omit.mjs';\n// prettier-ignore\nfunction FromPropertyKey(T, K, options) {\n return {\n [K]: Omit(T, [K], options)\n };\n}\n// prettier-ignore\nfunction FromPropertyKeys(T, K, options) {\n return K.reduce((Acc, LK) => {\n return { ...Acc, ...FromPropertyKey(T, LK, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(T, K, options) {\n return FromPropertyKeys(T, K.keys, options);\n}\n// prettier-ignore\nexport function OmitFromMappedKey(T, K, options) {\n const P = FromMappedKey(T, K, options);\n return MappedResult(P);\n}\n","import { Tuple } from '../tuple/index.mjs';\nimport { CloneRest } from '../clone/type.mjs';\n/** `[JavaScript]` Extracts the Parameters from the given Function type */\nexport function Parameters(schema, options = {}) {\n return Tuple(CloneRest(schema.parameters), { ...options });\n}\n","import { Optional } from '../optional/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { TransformKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\nimport { PartialFromMappedResult } from './partial-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsIntersect, IsUnion, IsObject } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(T) {\n return T.map(L => PartialResolve(L));\n}\n// prettier-ignore\nfunction FromProperties(T) {\n const Acc = {};\n for (const K of globalThis.Object.getOwnPropertyNames(T))\n Acc[K] = Optional(T[K]);\n return Acc;\n}\n// ------------------------------------------------------------------\n// PartialResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction PartialResolve(T) {\n return (IsIntersect(T) ? Intersect(FromRest(T.allOf)) :\n IsUnion(T) ? Union(FromRest(T.anyOf)) :\n IsObject(T) ? Object(FromProperties(T.properties)) :\n Object({}));\n}\n/** `[Json]` Constructs a type where all properties are optional */\nexport function Partial(T, options = {}) {\n if (IsMappedResult(T))\n return PartialFromMappedResult(T, options);\n const D = Discard(T, [TransformKind, '$id', 'required']);\n const R = CloneType(PartialResolve(T), options);\n return { ...D, ...R };\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Partial } from './partial.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], 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 { MappedResult } from '../mapped/index.mjs';\nimport { Pick } from './pick.mjs';\n// prettier-ignore\nfunction FromProperties(P, K, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Pick(P[K2], K, options);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, K, options) {\n return FromProperties(R.properties, K, options);\n}\n// prettier-ignore\nexport function PickFromMappedResult(R, K, options) {\n const P = FromMappedResult(R, K, options);\n return MappedResult(P);\n}\n","import { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { TransformKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\nimport { PickFromMappedKey } from './pick-from-mapped-key.mjs';\nimport { PickFromMappedResult } from './pick-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsMappedResult, IsIntersect, IsUnion, IsObject, IsSchema } from '../guard/kind.mjs';\nfunction FromIntersect(T, K) {\n return T.map((T) => PickResolve(T, K));\n}\n// prettier-ignore\nfunction FromUnion(T, K) {\n return T.map((T) => PickResolve(T, K));\n}\n// prettier-ignore\nfunction FromProperties(T, K) {\n const Acc = {};\n for (const K2 of K)\n if (K2 in T)\n Acc[K2] = T[K2];\n return Acc;\n}\n// ------------------------------------------------------------------\n// PickResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction PickResolve(T, K) {\n return (IsIntersect(T) ? Intersect(FromIntersect(T.allOf, K)) :\n IsUnion(T) ? Union(FromUnion(T.anyOf, K)) :\n IsObject(T) ? Object(FromProperties(T.properties, K)) :\n Object({}));\n}\nexport function Pick(T, K, options = {}) {\n // mapped\n if (IsMappedKey(K))\n return PickFromMappedKey(T, K, options);\n if (IsMappedResult(T))\n return PickFromMappedResult(T, K, options);\n // non-mapped\n const I = IsSchema(K) ? IndexPropertyKeys(K) : K;\n const D = Discard(T, [TransformKind, '$id', 'required']);\n const R = CloneType(PickResolve(T, I), options);\n return { ...D, ...R };\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Pick } from './pick.mjs';\n// prettier-ignore\nfunction FromPropertyKey(T, K, options) {\n return {\n [K]: Pick(T, [K], options)\n };\n}\n// prettier-ignore\nfunction FromPropertyKeys(T, K, options) {\n return K.reduce((Acc, LK) => {\n return { ...Acc, ...FromPropertyKey(T, LK, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(T, K, options) {\n return FromPropertyKeys(T, K.keys, options);\n}\n// prettier-ignore\nexport function PickFromMappedKey(T, K, options) {\n const P = FromMappedKey(T, K, options);\n return MappedResult(P);\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 { Object } from '../object/index.mjs';\nimport { Never } from '../never/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';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsUndefined } from '../guard/value.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsInteger, IsLiteral, IsAny, IsNever, IsNumber, IsString, IsRegExp, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// RecordCreateFromPattern\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordCreateFromPattern(pattern, T, options) {\n return {\n ...options,\n [Kind]: 'Record',\n type: 'object',\n patternProperties: { [pattern]: CloneType(T) }\n };\n}\n// ------------------------------------------------------------------\n// RecordCreateFromKeys\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordCreateFromKeys(K, T, options) {\n const Acc = {};\n for (const K2 of K)\n Acc[K2] = CloneType(T);\n return Object(Acc, { ...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(K, T, options) {\n return RecordCreateFromKeys(IndexPropertyKeys(Union(K)), T, options);\n}\n// prettier-ignore\nfunction FromLiteralKey(K, T, options) {\n return RecordCreateFromKeys([K.toString()], T, options);\n}\n// prettier-ignore\nfunction FromRegExpKey(K, T, options) {\n return RecordCreateFromPattern(K.source, T, options);\n}\n// prettier-ignore\nfunction FromStringKey(K, T, options) {\n const pattern = IsUndefined(K.pattern) ? PatternStringExact : K.pattern;\n return RecordCreateFromPattern(pattern, T, options);\n}\n// prettier-ignore\nfunction FromAnyKey(K, T, options) {\n return RecordCreateFromPattern(PatternStringExact, T, options);\n}\n// prettier-ignore\nfunction FromNeverKey(K, T, options) {\n return RecordCreateFromPattern(PatternNeverExact, T, options);\n}\n// prettier-ignore\nfunction FromIntegerKey(_, T, options) {\n return RecordCreateFromPattern(PatternNumberExact, T, options);\n}\n// prettier-ignore\nfunction FromNumberKey(_, T, options) {\n return RecordCreateFromPattern(PatternNumberExact, T, options);\n}\n// ------------------------------------------------------------------\n// TRecordOrObject\n// ------------------------------------------------------------------\n/** `[Json]` Creates a Record type */\nexport function Record(K, T, options = {}) {\n // prettier-ignore\n return (IsUnion(K) ? FromUnionKey(K.anyOf, T, options) :\n IsTemplateLiteral(K) ? FromTemplateLiteralKey(K, T, options) :\n IsLiteral(K) ? FromLiteralKey(K.const, T, options) :\n IsInteger(K) ? FromIntegerKey(K, T, options) :\n IsNumber(K) ? FromNumberKey(K, T, options) :\n IsRegExp(K) ? FromRegExpKey(K, T, options) :\n IsString(K) ? FromStringKey(K, T, options) :\n IsAny(K) ? FromAnyKey(K, T, options) :\n IsNever(K) ? FromNeverKey(K, T, options) :\n Never(options));\n}\n","import { CloneType } from '../clone/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 = callback({ [Kind]: 'This', $ref: `${options.$id}` });\n thisType.$id = options.$id;\n // prettier-ignore\n return CloneType({ ...options, [Hint]: 'Recursive', ...thisType });\n}\n","import { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsString, IsUndefined } from '../guard/value.mjs';\n/** `[Json]` Creates a Ref type. */\nexport function Ref(unresolved, options = {}) {\n if (IsString(unresolved))\n return { ...options, [Kind]: 'Ref', $ref: unresolved };\n if (IsUndefined(unresolved.$id))\n throw new Error('Reference target type must specify an $id');\n return {\n ...options,\n [Kind]: 'Ref',\n $ref: unresolved.$id,\n };\n}\n","import { 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 { ...options, [Kind]: 'RegExp', type: 'RegExp', source: expr.source, flags: expr.flags };\n}\n","import { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { OptionalKind, TransformKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { RequiredFromMappedResult } from './required-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsIntersect, IsUnion, IsObject } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(T) {\n return T.map(L => RequiredResolve(L));\n}\n// prettier-ignore\nfunction FromProperties(T) {\n const Acc = {};\n for (const K of globalThis.Object.getOwnPropertyNames(T))\n Acc[K] = Discard(T[K], [OptionalKind]);\n return Acc;\n}\n// ------------------------------------------------------------------\n// RequiredResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RequiredResolve(T) {\n return (IsIntersect(T) ? Intersect(FromRest(T.allOf)) :\n IsUnion(T) ? Union(FromRest(T.anyOf)) :\n IsObject(T) ? Object(FromProperties(T.properties)) :\n Object({}));\n}\n/** `[Json]` Constructs a type where all properties are required */\nexport function Required(T, options = {}) {\n if (IsMappedResult(T)) {\n return RequiredFromMappedResult(T, options);\n }\n else {\n const D = Discard(T, [TransformKind, '$id', 'required']);\n const R = CloneType(RequiredResolve(T), options);\n return { ...D, ...R };\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 { CloneRest } from '../clone/type.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsTuple } from '../guard/kind.mjs';\n// prettier-ignore\nfunction RestResolve(T) {\n return (IsIntersect(T) ? CloneRest(T.allOf) :\n IsUnion(T) ? CloneRest(T.anyOf) :\n IsTuple(T) ? CloneRest(T.items ?? []) :\n []);\n}\n/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */\nexport function Rest(T) {\n return CloneRest(RestResolve(T));\n}\n","import { CloneType } from '../clone/type.mjs';\n/** `[JavaScript]` Extracts the ReturnType from the given Function type */\nexport function ReturnType(schema, options = {}) {\n return CloneType(schema.returns, options);\n}\n","/** `[Json]` Omits compositing symbols from this schema. */\nexport function Strict(schema) {\n return JSON.parse(JSON.stringify(schema));\n}\n","import { TransformKind } from '../symbols/index.mjs';\nimport { CloneType } from '../clone/type.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 const schema = CloneType(this.schema);\n return (IsTransform(schema) ? this.EncodeTransform(encode, schema) : this.EncodeSchema(encode, schema));\n }\n}\n/** `[Json]` Creates a Transform type */\nexport function Transform(schema) {\n return new TransformDecodeBuilder(schema);\n}\n","import { 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 {\n ...options,\n [Kind]: options[Kind] ?? 'Unsafe',\n };\n}\n","import { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Void type */\nexport function Void(options = {}) {\n return {\n ...options,\n [Kind]: 'Void',\n type: 'void',\n };\n}\n","// ------------------------------------------------------------------\n// Type: Module\n// ------------------------------------------------------------------\nexport { Any } from '../any/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 { Deref } from '../deref/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 { 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 { 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 { Strict } from '../strict/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","/**\n * commanderclaw_nodes tool\n */\n\nimport { Type } from \"@sinclair/typebox\";\nimport type { CommanderClawClient } from \"../client\";\nimport type { ToolDefinition } from \"../types\";\n\nexport function createNodesTool(getClient: () => CommanderClawClient | null): ToolDefinition {\n return {\n name: \"commanderclaw_nodes\",\n description:\n \"List all nodes connected to the CommanderClaw cluster. Use this to see available nodes, their status, roles, and capabilities.\",\n parameters: Type.Object({}),\n async execute() {\n const client = getClient();\n if (!client?.isConnected()) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"Not connected to CommanderClaw server. Check plugin configuration.\",\n },\n ],\n };\n }\n\n try {\n const nodes = await client.listNodes();\n const currentNode = client.getNodeId();\n const commanderId = client.getCommanderId();\n\n let text = `## CommanderClaw Cluster Nodes\\n\\n`;\n text += `**Total nodes:** ${nodes.length}\\n`;\n text += `**Commander:** ${commanderId || \"None elected\"}\\n`;\n text += `**Current node:** ${currentNode || \"Unknown\"}\\n\\n`;\n\n if (nodes.length === 0) {\n text += \"No nodes connected to the cluster.\\n\";\n } else {\n for (const node of nodes) {\n const isCommander = node.id === commanderId;\n const isCurrent = node.id === currentNode;\n const marker = isCurrent ? \" (you)\" : \"\";\n const roleMarker = isCommander ? \" 👑 Commander\" : \"\";\n\n text += `### ${node.name || node.id}${marker}${roleMarker}\\n`;\n text += `- **Status:** ${node.status}\\n`;\n text += `- **Role:** ${node.role}\\n`;\n text += `- **Load:** ${node.load}\\n`;\n if (node.capabilities?.length) {\n text += `- **Capabilities:** ${node.capabilities.join(\", \")}\\n`;\n }\n text += \"\\n\";\n }\n }\n\n return { content: [{ type: \"text\" as const, text }] };\n } catch (error) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Failed to list nodes: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n };\n }\n },\n };\n}","/**\n * commanderclaw_task tool\n */\n\nimport { Type } from \"@sinclair/typebox\";\nimport type { CommanderClawClient } from \"../client\";\nimport type { ToolDefinition, Task } from \"../types\";\n\nexport function createTaskTool(getClient: () => CommanderClawClient | null): ToolDefinition {\n return {\n name: \"commanderclaw_task\",\n description: `Create, query, or manage tasks on the CommanderClaw cluster.\n\nActions:\n- create: Create a new task with a name and optional description, priority, input, and target node\n- list: List all tasks in the cluster\n- get: Get details of a specific task by ID\n- abort: Abort a running task\n- pause: Pause a running task\n- resume: Resume a paused task\n\nUse this to coordinate work across multiple AI agents in the cluster.`,\n parameters: Type.Object({\n action: Type.Union([\n Type.Literal(\"create\"),\n Type.Literal(\"list\"),\n Type.Literal(\"get\"),\n Type.Literal(\"abort\"),\n Type.Literal(\"pause\"),\n Type.Literal(\"resume\"),\n ]),\n // Create parameters\n name: Type.Optional(Type.String()),\n description: Type.Optional(Type.String()),\n priority: Type.Optional(\n Type.Union([\n Type.Literal(\"low\"),\n Type.Literal(\"normal\"),\n Type.Literal(\"high\"),\n Type.Literal(\"critical\"),\n ])\n ),\n input: Type.Optional(Type.Any()),\n targetNodeId: Type.Optional(Type.String()),\n maxRounds: Type.Optional(Type.Number()),\n // Get/Abort/Pause/Resume parameters\n taskId: Type.Optional(Type.String()),\n reason: Type.Optional(Type.String()),\n }),\n async execute(_id: string, params: Record<string, unknown>) {\n const client = getClient();\n if (!client?.isConnected()) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"Not connected to CommanderClaw server. Check plugin configuration.\",\n },\n ],\n };\n }\n\n try {\n switch (params.action) {\n case \"create\": {\n if (!params.name || typeof params.name !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'name' is required for create action\" },\n ],\n };\n }\n const task = await client.createTask({\n name: params.name,\n description: params.description as string | undefined,\n priority: params.priority as \"low\" | \"normal\" | \"high\" | \"critical\" | undefined,\n input: params.input,\n targetNodeId: params.targetNodeId as string | undefined,\n maxRounds: params.maxRounds as number | undefined,\n });\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Task created successfully:\\n\\`\\`\\`json\\n${JSON.stringify(task, null, 2)}\\n\\`\\`\\``,\n },\n ],\n };\n }\n\n case \"list\": {\n const tasks = await client.listTasks();\n if (tasks.length === 0) {\n return {\n content: [{ type: \"text\" as const, text: \"No tasks in the cluster.\" }],\n };\n }\n\n let text = `## Tasks (${tasks.length})\\n\\n`;\n for (const task of tasks) {\n text += formatTaskSummary(task);\n }\n return { content: [{ type: \"text\" as const, text }] };\n }\n\n case \"get\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for get action\" },\n ],\n };\n }\n const task = await client.getTask(params.taskId);\n return {\n content: [\n {\n type: \"text\" as const,\n text: formatTaskDetail(task),\n },\n ],\n };\n }\n\n case \"abort\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for abort action\" },\n ],\n };\n }\n await client.abortTask(params.taskId, params.reason as string | undefined);\n return {\n content: [\n { type: \"text\" as const, text: `Task ${params.taskId} has been aborted.` },\n ],\n };\n }\n\n case \"pause\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for pause action\" },\n ],\n };\n }\n await client.pauseTask(params.taskId);\n return {\n content: [\n { type: \"text\" as const, text: `Task ${params.taskId} has been paused.` },\n ],\n };\n }\n\n case \"resume\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for resume action\" },\n ],\n };\n }\n await client.resumeTask(params.taskId);\n return {\n content: [\n { type: \"text\" as const, text: `Task ${params.taskId} has been resumed.` },\n ],\n };\n }\n\n default:\n return {\n content: [\n { type: \"text\" as const, text: `Unknown action: ${params.action}` },\n ],\n };\n }\n } catch (error) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Failed to execute task action: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n };\n }\n },\n };\n}\n\nfunction formatTaskSummary(task: Task): string {\n const statusEmoji = {\n pending: \"⏳\",\n assigned: \"📋\",\n running: \"▶️\",\n paused: \"⏸️\",\n completed: \"✅\",\n failed: \"❌\",\n aborted: \"🚫\",\n }[task.status] || \"❓\";\n\n let text = `### ${task.name} (${task.id})\\n`;\n text += `- **Status:** ${statusEmoji} ${task.status}\\n`;\n text += `- **Priority:** ${task.priority}\\n`;\n text += `- **Progress:** ${task.progress}%\\n`;\n if (task.assignees?.length) {\n text += `- **Assignees:** ${task.assignees.join(\", \")}\\n`;\n }\n text += \"\\n\";\n return text;\n}\n\nfunction formatTaskDetail(task: Task): string {\n let text = `## Task: ${task.name}\\n\\n`;\n text += `**ID:** ${task.id}\\n`;\n text += `**Status:** ${task.status}\\n`;\n text += `**Priority:** ${task.priority}\\n`;\n text += `**Progress:** ${task.progress}%\\n`;\n text += `**Rounds:** ${task.rounds}/${task.maxRounds}\\n\\n`;\n\n if (task.description) {\n text += `**Description:**\\n${task.description}\\n\\n`;\n }\n\n if (task.creatorId) {\n text += `**Creator:** ${task.creatorId}\\n`;\n }\n if (task.commanderId) {\n text += `**Commander:** ${task.commanderId}\\n`;\n }\n if (task.assignees?.length) {\n text += `**Assignees:** ${task.assignees.join(\", \")}\\n`;\n }\n\n text += `\\n**Created:** ${task.createdAt}\\n`;\n text += `**Updated:** ${task.updatedAt}\\n`;\n\n if (task.input) {\n text += `\\n**Input:**\\n\\`\\`\\`json\\n${JSON.stringify(task.input, null, 2)}\\n\\`\\`\\`\\n`;\n }\n\n if (task.output) {\n text += `\\n**Output:**\\n\\`\\`\\`json\\n${JSON.stringify(task.output, null, 2)}\\n\\`\\`\\`\\n`;\n }\n\n if (task.error) {\n text += `\\n**Error:** ${task.error}\\n`;\n }\n\n return text;\n}","/**\n * commanderclaw_status tool\n */\n\nimport { Type } from \"@sinclair/typebox\";\nimport type { CommanderClawClient } from \"../client\";\nimport type { ToolDefinition } from \"../types\";\n\nexport function createStatusTool(getClient: () => CommanderClawClient | null): ToolDefinition {\n return {\n name: \"commanderclaw_status\",\n description:\n \"Get the current status of the CommanderClaw cluster connection and cluster health. Use this to verify connectivity and check overall cluster status.\",\n parameters: Type.Object({}),\n async execute() {\n const client = getClient();\n\n if (!client) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"CommanderClaw plugin not initialized. Check plugin configuration.\",\n },\n ],\n };\n }\n\n const connected = client.isConnected();\n const nodeId = client.getNodeId();\n const commanderId = client.getCommanderId();\n const peers = client.getPeers();\n\n let text = `## CommanderClaw Status\\n\\n`;\n text += `**Connection:** ${connected ? \"✅ Connected\" : \"❌ Disconnected\"}\\n`;\n text += `**Node ID:** ${nodeId || \"Not registered\"}\\n`;\n text += `**Commander:** ${commanderId || \"None elected\"}\\n`;\n text += `**Peers:** ${peers.length}\\n\\n`;\n\n if (connected) {\n try {\n const health = await client.getStatus();\n text += `### Cluster Health\\n`;\n text += `- **Status:** ${health.status}\\n`;\n text += `- **Total nodes:** ${health.nodes}\\n`;\n } catch (error) {\n text += `**Health check failed:** ${error instanceof Error ? error.message : String(error)}\\n`;\n }\n } else {\n text += `### Troubleshooting\\n`;\n text += `- Check if the CommanderClaw server is running\\n`;\n text += `- Verify the server URL in plugin configuration\\n`;\n text += `- Check if the authentication token is correct\\n`;\n }\n\n return { content: [{ type: \"text\" as const, text }] };\n },\n };\n}","/**\n * commanderclaw_command tool\n */\n\nimport { Type } from \"@sinclair/typebox\";\nimport type { CommanderClawClient } from \"../client\";\nimport type { ToolDefinition } from \"../types\";\n\nexport function createCommandTool(getClient: () => CommanderClawClient | null): ToolDefinition {\n return {\n name: \"commanderclaw_command\",\n description: `Send King commands to the CommanderClaw cluster.\n\nCommands:\n- appoint: Appoint a specific node as the Commander\n- abort: Abort a task (alias for commanderclaw_task with action=abort)\n- pause: Pause a running task\n- resume: Resume a paused task\n\nNote: Some commands may require King-level permissions.`,\n parameters: Type.Object({\n command: Type.Union([\n Type.Literal(\"appoint\"),\n Type.Literal(\"abort\"),\n Type.Literal(\"pause\"),\n Type.Literal(\"resume\"),\n ]),\n nodeId: Type.Optional(Type.String()),\n taskId: Type.Optional(Type.String()),\n reason: Type.Optional(Type.String()),\n }),\n async execute(_id: string, params: Record<string, unknown>) {\n const client = getClient();\n if (!client?.isConnected()) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"Not connected to CommanderClaw server. Check plugin configuration.\",\n },\n ],\n };\n }\n\n try {\n switch (params.command) {\n case \"appoint\": {\n if (!params.nodeId || typeof params.nodeId !== \"string\") {\n return {\n content: [\n {\n type: \"text\" as const,\n text: \"Error: 'nodeId' is required for appoint command. Use commanderclaw_nodes to list available nodes.\",\n },\n ],\n };\n }\n const result = await client.appointCommander(params.nodeId);\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Commander appointed successfully.\\n- **New Commander:** ${result.commanderId}`,\n },\n ],\n };\n }\n\n case \"abort\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for abort command\" },\n ],\n };\n }\n await client.abortTask(params.taskId, params.reason as string | undefined);\n return {\n content: [\n { type: \"text\" as const, text: `Task ${params.taskId} has been aborted.` },\n ],\n };\n }\n\n case \"pause\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for pause command\" },\n ],\n };\n }\n await client.pauseTask(params.taskId);\n return {\n content: [\n { type: \"text\" as const, text: `Task ${params.taskId} has been paused.` },\n ],\n };\n }\n\n case \"resume\": {\n if (!params.taskId || typeof params.taskId !== \"string\") {\n return {\n content: [\n { type: \"text\" as const, text: \"Error: 'taskId' is required for resume command\" },\n ],\n };\n }\n await client.resumeTask(params.taskId);\n return {\n content: [\n { type: \"text\" as const, text: `Task ${params.taskId} has been resumed.` },\n ],\n };\n }\n\n default:\n return {\n content: [\n { type: \"text\" as const, text: `Unknown command: ${params.command}` },\n ],\n };\n }\n } catch (error) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: `Failed to execute command: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n };\n }\n },\n };\n}","/**\n * CommanderClaw Channel Plugin for OpenClaw\n *\n * This plugin connects OpenClaw to a CommanderClaw coordination server,\n * enabling multi-agent task coordination with message bridging.\n */\n\nimport { CommanderClawClient } from \"./client\";\nimport { createNodesTool } from \"./tools/nodes\";\nimport { createTaskTool } from \"./tools/task\";\nimport { createStatusTool } from \"./tools/status\";\nimport { createCommandTool } from \"./tools/command\";\nimport { createPluginRuntimeStore, emptyPluginConfigSchema } from \"openclaw/plugin-sdk\";\n\nconst CHANNEL_ID = \"commanderclaw\";\n\ninterface PluginRuntime {\n channel: {\n routing: {\n resolveAgentRoute: (params: {\n cfg: unknown;\n channel: string;\n accountId: string;\n peer: { kind: string; id: string };\n }) => { sessionKey: string };\n };\n reply: {\n finalizeInboundContext: (ctx: Record<string, unknown>) => Record<string, unknown>;\n dispatchReplyWithBufferedBlockDispatcher: (params: {\n ctx: Record<string, unknown>;\n cfg: unknown;\n dispatcherOptions: {\n deliver: (payload: { text: string }, info: { kind: string }) => Promise<void>;\n onError: (err: Error, info: { kind: string }) => void;\n };\n }) => Promise<void>;\n };\n };\n config: {\n loadConfig: () => Promise<unknown>;\n };\n}\n\nconst { setRuntime, getRuntime } = createPluginRuntimeStore<PluginRuntime>(\n \"CommanderClaw runtime not initialized\"\n);\n\nlet client: CommanderClawClient | null = null;\nlet pluginConfig: any = null;\nlet currentLog: any = null;\n\nconst DEFAULT_CONFIG = {\n deviceName: \"OpenClaw Agent\",\n autoConnect: true,\n reconnect: {\n enabled: true,\n maxAttempts: 10,\n delayMs: 5000,\n },\n};\n\nasync function handleChatMessage(msg: {\n from: string;\n to?: string;\n payload?: { content: string };\n msgType?: string;\n}) {\n const log = currentLog;\n if (!log) return;\n\n log.info(\"handleChatMessage: starting\", {\n from: msg.from,\n to: msg.to,\n msgType: msg.msgType,\n });\n\n const rt = getRuntime();\n \n if (!rt || !rt.channel) {\n log.error(\"handleChatMessage: runtime or channel not initialized\");\n return;\n }\n\n if (!client) {\n log.error(\"handleChatMessage: client not initialized\");\n return;\n }\n \n if (!pluginConfig) {\n log.error(\"handleChatMessage: pluginConfig not initialized\");\n return;\n }\n\n const content = msg.payload?.content;\n if (!content) {\n log.warn(\"handleChatMessage: no content\");\n return;\n }\n\n log.info(\"handleChatMessage: processing\", {\n from: msg.from,\n contentLength: content.length,\n });\n\n try {\n const nodeId = client.getNodeId() || \"unknown\";\n \n const route = rt.channel.routing.resolveAgentRoute({\n cfg: pluginConfig,\n channel: CHANNEL_ID,\n accountId: \"default\",\n peer: {\n kind: \"direct\",\n id: msg.from,\n },\n });\n\n const ctxPayload = rt.channel.reply.finalizeInboundContext({\n Body: content,\n RawBody: content,\n CommandBody: content,\n MessageSid: `cc-${Date.now()}`,\n From: `${CHANNEL_ID}:${msg.from}`,\n To: `${CHANNEL_ID}:${nodeId}`,\n SenderId: msg.from,\n SessionKey: route.sessionKey,\n AccountId: \"default\",\n ChatType: \"direct\",\n ConversationLabel: `user:${msg.from}`,\n Timestamp: Date.now(),\n Provider: CHANNEL_ID,\n Surface: CHANNEL_ID,\n OriginatingChannel: CHANNEL_ID,\n OriginatingTo: `${CHANNEL_ID}:${nodeId}`,\n CommandAuthorized: true,\n });\n\n const currentCfg = await rt.config.loadConfig();\n\n let accumulatedText = \"\";\n\n await rt.channel.reply.dispatchReplyWithBufferedBlockDispatcher({\n ctx: ctxPayload,\n cfg: currentCfg,\n dispatcherOptions: {\n deliver: async (payload: { text: string }, info: { kind: string }) => {\n accumulatedText = payload.text;\n \n if (info.kind === \"final\") {\n log.info(\"handleChatMessage: sending response\", {\n textLength: accumulatedText.length,\n });\n \n client?.send(\"CHAT\", {\n content: accumulatedText,\n });\n }\n },\n onError: (err: Error, info: { kind: string }) => {\n log.error(\"handleChatMessage: LLM error\", {\n kind: info.kind,\n error: err.message,\n });\n },\n },\n });\n\n log.info(\"handleChatMessage: completed\");\n } catch (err) {\n log.error(\"handleChatMessage: failed\", {\n error: err instanceof Error ? err.message : String(err),\n stack: err instanceof Error ? err.stack : undefined,\n });\n }\n}\n\nfunction initializeClient(config: any, log: any) {\n if (!config.autoConnect) {\n log.info(\"CommanderClaw auto-connect disabled\");\n return;\n }\n\n client = new CommanderClawClient({\n url: config.serverUrl,\n token: config.token,\n name: config.deviceName || \"OpenClaw Agent\",\n capabilities: [\"ai-agent\", \"task-execution\"],\n reconnect: config.reconnect,\n });\n\n client.on(\"connected\", (event: any) => {\n log.info(\"Connected to CommanderClaw server\", {\n nodeId: event.data?.nodeId,\n });\n });\n\n client.on(\"disconnected\", () => {\n log.warn(\"Disconnected from CommanderClaw server\");\n });\n\n client.on(\"error\", (event: any) => {\n log.error(\"CommanderClaw connection error\", {\n error: String(event.data),\n });\n });\n\n client.on(\"chat\", (event: any) => {\n handleChatMessage(event.data);\n });\n\n client.connect().catch((error: Error) => {\n log.error(\"Failed to connect to CommanderClaw server\", {\n error: error.message,\n });\n });\n\n log.info(\"CommanderClaw client initialized\", {\n url: config.serverUrl,\n name: config.deviceName,\n });\n}\n\nconst commanderclawPlugin = {\n id: CHANNEL_ID,\n\n meta: {\n id: CHANNEL_ID,\n label: \"CommanderClaw\",\n selectionLabel: \"CommanderClaw\",\n detailLabel: \"CommanderClaw Multi-Agent Coordination\",\n docsPath: \"/channels/commanderclaw\",\n blurb: \"Connect to CommanderClaw coordination server\",\n order: 100,\n },\n\n capabilities: {\n chatTypes: [\"direct\" as const],\n media: false,\n threads: false,\n reactions: false,\n edit: false,\n unsend: false,\n reply: false,\n effects: false,\n blockStreaming: false,\n },\n\n reload: { configPrefixes: [`channels.${CHANNEL_ID}`] },\n\n config: {\n listAccountIds: (_cfg: any) => [\"default\"],\n resolveAccount: (cfg: any) => ({\n accountId: \"default\",\n enabled: cfg?.channels?.[CHANNEL_ID]?.enabled ?? true,\n serverUrl: cfg?.channels?.[CHANNEL_ID]?.serverUrl,\n token: cfg?.channels?.[CHANNEL_ID]?.token,\n deviceName: cfg?.channels?.[CHANNEL_ID]?.deviceName,\n autoConnect: cfg?.channels?.[CHANNEL_ID]?.autoConnect,\n reconnect: cfg?.channels?.[CHANNEL_ID]?.reconnect,\n }),\n defaultAccountId: () => \"default\",\n setAccountEnabled: ({ cfg, enabled }: any) => ({\n ...cfg,\n channels: {\n ...cfg?.channels,\n [CHANNEL_ID]: {\n ...cfg?.channels?.[CHANNEL_ID],\n enabled,\n },\n },\n }),\n },\n\n security: {\n resolveDmPolicy: () => ({\n policy: \"open\",\n allowFrom: [],\n policyPath: `channels.${CHANNEL_ID}.dmPolicy`,\n allowFromPath: `channels.${CHANNEL_ID}.`,\n }),\n collectWarnings: () => [],\n },\n\n messaging: {\n normalizeTarget: (target: string) => target?.trim() || undefined,\n targetResolver: {\n looksLikeId: (id: string) => id?.length > 10,\n hint: \"<nodeId>\",\n },\n },\n\n directory: {\n self: async () => null,\n listPeers: async () => [],\n listGroups: async () => [],\n },\n\n outbound: {\n deliveryMode: \"gateway\" as const,\n textChunkLimit: 4000,\n\n sendText: async ({ to, text }: any) => {\n if (!client) {\n throw new Error(\"CommanderClaw client not initialized\");\n }\n \n client.send(\"CHAT\", { content: text, to });\n \n return { channel: CHANNEL_ID, messageId: `cc-${Date.now()}`, chatId: to };\n },\n },\n\n gateway: {\n startAccount: async (ctx: any) => {\n const { cfg, log } = ctx;\n \n currentLog = log;\n pluginConfig = cfg;\n \n const channelCfg = cfg?.channels?.[CHANNEL_ID] || {};\n const config = {\n ...DEFAULT_CONFIG,\n ...channelCfg,\n };\n\n if (!config.serverUrl) {\n log?.warn?.(\"CommanderClaw: serverUrl not configured\");\n return;\n }\n\n log?.info?.(`Starting CommanderClaw channel (server: ${config.serverUrl})`);\n\n initializeClient(config, log);\n\n return new Promise(() => {});\n },\n\n stopAccount: async (ctx: any) => {\n ctx.log?.info?.(\"CommanderClaw account stopped\");\n if (client) {\n client.disconnect();\n client = null;\n }\n },\n },\n};\n\nconst plugin = {\n id: \"commanderclaw\",\n name: \"CommanderClaw\",\n description: \"Connect to CommanderClaw coordination server\",\n configSchema: emptyPluginConfigSchema(),\n register(api: any) {\n setRuntime(api.runtime);\n api.registerChannel({ plugin: commanderclawPlugin });\n api.registerTool(createNodesTool(() => client));\n api.registerTool(createTaskTool(() => client));\n api.registerTool(createStatusTool(() => client));\n api.registerTool(createCommandTool(() => client));\n },\n};\n\nexport default plugin;"],"names":["IsAsyncIterator","IsObject","IsArray","IsUint8Array","IsBigInt","IsBoolean","IsDate","IsFunction","IsIterator","IsNull","IsNumber","IsRegExp","IsString","IsSymbol","IsUndefined","Visit","ValueGuard.IsArray","ValueGuard.IsDate","ValueGuard.IsUint8Array","ValueGuard.IsRegExp","ValueGuard.IsObject","IsOptional","IsAny","IsKindOf","IsConstructor","IsInteger","IsIntersect","IsLiteral","IsMappedKey","IsMappedResult","IsNever","IsNot","IsPromise","IsRecord","IsRef","IsTemplateLiteral","IsThis","IsTransform","IsTuple","IsUnion","IsUnknown","IsUnsafe","IsVoid","IsKind","ValueGuard.IsString","IsSchema","ValueGuard.IsUndefined","ValueGuard.IsBigInt","ValueGuard.IsNumber","ValueGuard.IsBoolean","Array","RemoveOptionalFromRest","RemoveOptionalFromType","String","FromUnion","FromTemplateLiteral","FromLiteral","FromProperties","FromMappedResult","FromRest","FromIntersect","FromTuple","FromArray","FromProperty","Object","Promise","FromMappedKey","FunctionType","FromPromise","Date","Symbol","Uint8Array","FromConstructor","FromFunction","FromObject","FromAsyncIterator","FromIterator","TypeGuard.IsNever","TypeGuard.IsIntersect","TypeGuard.IsUnion","TypeGuard.IsUnknown","TypeGuard.IsAny","TypeGuard.IsObject","TypeGuard.IsArray","TypeGuard.IsAsyncIterator","TypeGuard.IsRecord","TypeGuard.IsBigInt","TypeGuard.IsLiteralBoolean","TypeGuard.IsBoolean","TypeGuard.IsConstructor","TypeGuard.IsDate","TypeGuard.IsFunction","TypeGuard.IsLiteral","TypeGuard.IsNumber","TypeGuard.IsInteger","TypeGuard.IsIterator","TypeGuard.IsString","TypeGuard.IsNot","TypeGuard.IsNull","TypeGuard.IsLiteralNumber","TypeGuard.IsUndefined","TypeGuard.IsOptional","TypeGuard.IsLiteralString","TypeGuard.IsSymbol","TypeGuard.IsUint8Array","TypeGuard.IsPromise","TypeGuard.IsRegExp","TypeGuard.IsTemplateLiteral","TypeGuard.IsTuple","TypeGuard.IsVoid","FromPropertyKey","FromPropertyKeys","RegExp","createPluginRuntimeStore","emptyPluginConfigSchema"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106]}