@opentui/core 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/{chunk-bun-26r5c5w5.js → chunk-bun-1n307cze.js} +7 -6
- package/{chunk-bun-26r5c5w5.js.map → chunk-bun-1n307cze.js.map} +4 -4
- package/{chunk-bun-t68f2fmr.js → chunk-bun-gvv8cwwz.js} +14 -4
- package/{chunk-bun-t68f2fmr.js.map → chunk-bun-gvv8cwwz.js.map} +4 -4
- package/{chunk-node-aj3n20gq.js → chunk-node-crchpns1.js} +7 -6
- package/{chunk-node-aj3n20gq.js.map → chunk-node-crchpns1.js.map} +4 -4
- package/{chunk-node-kq7as74d.js → chunk-node-tq0x9mbj.js} +14 -4
- package/{chunk-node-kq7as74d.js.map → chunk-node-tq0x9mbj.js.map} +4 -4
- package/index.bun.js +30 -6
- package/index.bun.js.map +3 -3
- package/index.node.js +30 -6
- package/index.node.js.map +3 -3
- package/package.json +9 -9
- package/testing.bun.js +2 -2
- package/testing.js +2 -2
- package/utils.d.ts +2 -1
- package/yoga.bun.js +1 -1
- package/yoga.js +1 -1
- package/zig.d.ts +1 -1
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"import { statSync } from \"node:fs\"\nimport { isAbsolute, join } from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\n\nimport { registerEnvVar } from \"../lib/env.js\"\n\ntype AssetFallback = string | URL | (() => string | URL)\n\nregisterEnvVar({\n name: \"OTUI_ASSET_ROOT\",\n description: \"Absolute directory containing relocatable OpenTUI runtime assets\",\n type: \"string\",\n default: \"\",\n})\n\nexport function resolveAssetPath(key: string, fallback?: AssetFallback): string {\n validateAssetKey(key)\n\n const configuredPath = resolveAssetRootPath(key)\n if (configuredPath !== undefined) {\n return configuredPath\n }\n\n if (fallback === undefined) {\n throw new Error(`OpenTUI asset ${JSON.stringify(key)} has no package-relative fallback`)\n }\n\n const value = typeof fallback === \"function\" ? fallback() : fallback\n return value instanceof URL ? fileURLToPath(value) : value\n}\n\nexport function resolveAssetRootPath(key: string): string | undefined {\n validateAssetKey(key)\n\n const root = process.env.OTUI_ASSET_ROOT\n if (!root) {\n return undefined\n }\n\n if (!isAbsolute(root)) {\n throw new Error(`OTUI_ASSET_ROOT must be an absolute directory, got ${JSON.stringify(root)}`)\n }\n\n const assetPath = join(root, key)\n let isFile = false\n try {\n isFile = statSync(assetPath).isFile()\n } catch {}\n if (!isFile) {\n throw new Error(`Missing OpenTUI asset ${JSON.stringify(key)} at ${JSON.stringify(assetPath)}`)\n }\n return assetPath\n}\n\nexport function validateAssetKey(key: string): void {\n if (key.length === 0 || isAbsolute(key) || key.includes(\"\\\\\") || key.split(\"/\").includes(\"..\")) {\n throw new Error(`Invalid OpenTUI asset key: ${JSON.stringify(key)}`)\n }\n}\n",
|
|
14
14
|
"const singletonCacheSymbol = Symbol.for(\"@opentui/core/singleton\")\n\n/**\n * Ensures a value is initialized once per process,\n * persists across Bun hot reloads, and is type-safe.\n */\nexport function singleton<T>(key: string, factory: () => T): T {\n // @ts-expect-error this symbol is only used in this file and is not part of the public API\n const bag = (globalThis[singletonCacheSymbol] ??= {})\n if (!(key in bag)) {\n bag[key] = factory()\n }\n return bag[key] as T\n}\n\nexport function getSingleton<T>(key: string): T | undefined {\n // @ts-expect-error this symbol is only used in this file and is not part of the public API\n const bag = globalThis[singletonCacheSymbol]\n return bag?.[key] as T | undefined\n}\n\nexport function destroySingleton(key: string): void {\n // @ts-expect-error this symbol is only used in this file and is not part of the public API\n const bag = globalThis[singletonCacheSymbol]\n if (bag && key in bag) {\n delete bag[key]\n }\n}\n\nexport function hasSingleton(key: string): boolean {\n // @ts-expect-error this symbol is only used in this file and is not part of the public API\n const bag = globalThis[singletonCacheSymbol]\n return bag && key in bag\n}\n",
|
|
15
15
|
"import { singleton } from \"./singleton.js\"\n\n/**\n * Environment variable registry\n *\n * Usage:\n * ```ts\n * import { registerEnvVar, env } from \"./lib/env.ts\";\n *\n * // Register environment variables\n * registerEnvVar({\n * name: \"DEBUG\",\n * description: \"Enable debug logging\",\n * type: \"boolean\",\n * default: false\n * });\n *\n * registerEnvVar({\n * name: \"PORT\",\n * description: \"Server port number\",\n * type: \"number\",\n * default: 3000\n * });\n *\n * // Access environment variables\n * if (env.DEBUG) {\n * console.log(\"Debug mode enabled\");\n * }\n *\n * const port = env.PORT; // number\n * ```\n */\n\nexport interface EnvVarConfig {\n name: string\n description: string\n default?: string | boolean | number\n required?: boolean\n type?: \"string\" | \"boolean\" | \"number\"\n}\n\nexport const envRegistry: Record<string, EnvVarConfig> = singleton(\"env-registry\", () => ({}))\n\nexport function registerEnvVar(config: EnvVarConfig): void {\n const existing = envRegistry[config.name]\n if (existing) {\n if (\n existing.description !== config.description ||\n existing.type !== config.type ||\n existing.default !== config.default ||\n existing.required !== config.required\n ) {\n throw new Error(\n `Environment variable \"${config.name}\" is already registered with different configuration. ` +\n `Existing: ${JSON.stringify(existing)}, New: ${JSON.stringify(config)}`,\n )\n }\n return\n }\n envRegistry[config.name] = config\n}\n\nfunction normalizeBoolean(value: string): boolean {\n const lowerValue = value.toLowerCase()\n return [\"true\", \"1\", \"on\", \"yes\"].includes(lowerValue)\n}\n\nfunction parseEnvValue(config: EnvVarConfig): string | boolean | number | undefined {\n const envValue = process.env[config.name]\n\n if (envValue === undefined && config.default !== undefined) {\n return config.default\n }\n\n if (envValue === undefined && config.required === false) {\n return undefined\n }\n\n if (envValue === undefined) {\n throw new Error(`Required environment variable ${config.name} is not set. ${config.description}`)\n }\n\n switch (config.type) {\n case \"boolean\":\n return typeof envValue === \"boolean\" ? envValue : normalizeBoolean(envValue)\n case \"number\":\n const numValue = Number(envValue)\n if (isNaN(numValue)) {\n throw new Error(`Environment variable ${config.name} must be a valid number, got: ${envValue}`)\n }\n return numValue\n case \"string\":\n default:\n return envValue\n }\n}\n\nclass EnvStore {\n private parsedValues: Map<string, string | boolean | number | undefined> = new Map()\n\n get(key: string): any {\n if (this.parsedValues.has(key)) {\n return this.parsedValues.get(key)!\n }\n\n if (!(key in envRegistry)) {\n throw new Error(`Environment variable ${key} is not registered.`)\n }\n\n try {\n const value = parseEnvValue(envRegistry[key])\n this.parsedValues.set(key, value)\n return value\n } catch (error) {\n throw new Error(`Failed to parse env var ${key}: ${error instanceof Error ? error.message : String(error)}`)\n }\n }\n\n has(key: string): boolean {\n return key in envRegistry\n }\n\n clearCache(): void {\n this.parsedValues.clear()\n }\n}\n\nconst envStore = singleton(\"env-store\", () => new EnvStore())\n\nexport function clearEnvCache(): void {\n envStore.clearCache()\n}\n\nexport function generateEnvMarkdown(): string {\n const configs = Object.values(envRegistry)\n\n if (configs.length === 0) {\n return \"# Environment Variables\\n\\nNo environment variables registered.\\n\"\n }\n\n let markdown = \"# Environment Variables\\n\\n\"\n\n for (const config of configs) {\n markdown += `## ${config.name}\\n\\n`\n markdown += `${config.description}\\n\\n`\n\n markdown += `**Type:** \\`${config.type || \"string\"}\\` \\n`\n\n if (config.default !== undefined) {\n const defaultValue = typeof config.default === \"string\" ? `\"${config.default}\"` : String(config.default)\n markdown += `**Default:** \\`${defaultValue}\\`\\n`\n } else if (config.required === false) {\n markdown += \"**Default:** *unset*\\n\"\n } else {\n markdown += \"**Default:** *Required*\\n\"\n }\n\n markdown += \"\\n\"\n }\n\n return markdown\n}\n\nexport function generateEnvColored(): string {\n const configs = Object.values(envRegistry)\n\n if (configs.length === 0) {\n return \"\\x1b[1;36mEnvironment Variables\\x1b[0m\\n\\nNo environment variables registered.\\n\"\n }\n\n let output = \"\\x1b[1;36mEnvironment Variables\\x1b[0m\\n\\n\"\n\n for (const config of configs) {\n output += `\\x1b[1;33m${config.name}\\x1b[0m\\n`\n output += `${config.description}\\n`\n output += `\\x1b[32mType:\\x1b[0m \\x1b[36m${config.type || \"string\"}\\x1b[0m\\n`\n\n if (config.default !== undefined) {\n const defaultValue = typeof config.default === \"string\" ? `\"${config.default}\"` : String(config.default)\n output += `\\x1b[32mDefault:\\x1b[0m \\x1b[35m${defaultValue}\\x1b[0m\\n`\n } else if (config.required === false) {\n output += \"\\x1b[32mDefault:\\x1b[0m \\x1b[35munset\\x1b[0m\\n\"\n } else {\n output += `\\x1b[32mDefault:\\x1b[0m \\x1b[31mRequired\\x1b[0m\\n`\n }\n\n output += \"\\n\"\n }\n\n return output\n}\n\nexport const env = new Proxy({} as Record<string, any>, {\n get(target, prop: string) {\n if (typeof prop !== \"string\") {\n return undefined\n }\n return envStore.get(prop)\n },\n\n has(target, prop: string) {\n return envStore.has(prop)\n },\n\n ownKeys() {\n return Object.keys(envRegistry)\n },\n\n getOwnPropertyDescriptor(target, prop: string) {\n if (envStore.has(prop)) {\n return {\n enumerable: true,\n configurable: true,\n get: () => envStore.get(prop),\n }\n }\n return undefined\n },\n})\n",
|
|
16
|
-
"import {\n dlopen,\n ffiBool,\n trimNodeFFIOutputBytes,\n toArrayBuffer,\n ptr,\n toPointer,\n type FFICallbackInstance,\n type Pointer,\n usesBunFFI,\n} from \"./platform/ffi.js\"\nimport { writeFile } from \"./platform/runtime.js\"\nimport { existsSync, writeFileSync } from \"fs\"\nimport { EventEmitter } from \"events\"\nimport {\n type CursorStyle,\n type CursorStyleOptions,\n type TargetChannel,\n type DebugOverlayCorner,\n type WidthMethod,\n type TerminalCapabilities,\n type Highlight,\n type LineInfo,\n type MousePointerStyle,\n type ImageRenderProtocol,\n} from \"./types.js\"\nexport type {\n LineInfo,\n AllocatorStats,\n AudioStreamCreateOptions,\n BuildOptions,\n NativeAudioCaptureStats,\n NativeAudioStreamStats,\n NativeRenderStats,\n}\n\nimport { RGBA } from \"./lib/RGBA.js\"\nimport { OptimizedBuffer } from \"./buffer.js\"\nimport { TextBuffer } from \"./text-buffer.js\"\nimport { env, registerEnvVar } from \"./lib/env.js\"\nimport {\n StyledChunkStruct,\n HighlightStruct,\n LogicalCursorStruct,\n VisualCursorStruct,\n TerminalCapabilitiesStruct,\n EncodedCharStruct,\n LineInfoStruct,\n MeasureResultStruct,\n CursorStateStruct,\n CursorStyleOptionsStruct,\n GridDrawOptionsStruct,\n NativeSpanFeedOptionsStruct,\n NativeSpanFeedStatsStruct,\n ReserveInfoStruct,\n AudioCreateOptionsStruct,\n AudioStartOptionsStruct,\n AudioVoiceOptionsStruct,\n AudioStreamCreateOptionsStruct,\n AudioStreamStatsStruct,\n AudioCaptureStatsStruct,\n NativeAudioStreamCloseReason as NativeAudioStreamCloseReasonValue,\n NativeAudioStreamFormat as NativeAudioStreamFormatValue,\n NativeAudioStreamState as NativeAudioStreamStateValue,\n AudioStatsStruct,\n BuildOptionsStruct,\n AllocatorStatsStruct,\n NativeRenderStatsStruct,\n NativeImageInfoStruct,\n ImageDrawOptionsStruct,\n} from \"./zig-structs.js\"\nimport type {\n NativeSpanFeedOptions,\n NativeSpanFeedStats,\n ReserveInfo,\n AudioCreateOptions,\n AudioStartOptions,\n AudioVoiceOptions,\n AudioStreamCreateOptions,\n NativeAudioStreamCloseReason as NativeAudioStreamCloseReasonType,\n NativeAudioStreamFormat as NativeAudioStreamFormatType,\n NativeAudioStreamState as NativeAudioStreamStateType,\n NativeAudioStreamStats,\n NativeAudioCaptureStats,\n AudioStats,\n BuildOptions,\n AllocatorStats,\n NativeRenderStats,\n NativeImageInfo,\n} from \"./zig-structs.js\"\nexport const NativeAudioStreamState = NativeAudioStreamStateValue\nexport type NativeAudioStreamState = NativeAudioStreamStateType\nexport const NativeAudioStreamCloseReason = NativeAudioStreamCloseReasonValue\nexport type NativeAudioStreamCloseReason = NativeAudioStreamCloseReasonType\nexport const NativeAudioStreamFormat = NativeAudioStreamFormatValue\nexport type NativeAudioStreamFormat = NativeAudioStreamFormatType\nimport { isBunfsPath } from \"./lib/bunfs.js\"\nimport { resolveNativeLibraryPath } from \"#opentui/runtime-assets\"\nimport { allocStruct } from \"bun-ffi-structs\"\n\nregisterEnvVar({\n name: \"OPENTUI_LIBC\",\n description: \"Select Linux native libc package. Supported values: glibc, musl.\",\n type: \"string\",\n default: \"\",\n})\n\nexport type NativeHandle<T extends string> = Pointer & { readonly __nativeHandle: T }\nexport type RendererHandle = NativeHandle<\"renderer\">\nexport type OptimizedBufferHandle = NativeHandle<\"optimized_buffer\">\nexport type TextBufferHandle = NativeHandle<\"text_buffer\">\nexport type TextBufferViewHandle = NativeHandle<\"text_buffer_view\">\nexport type EditBufferHandle = NativeHandle<\"edit_buffer\">\nexport type EditorViewHandle = NativeHandle<\"editor_view\">\nexport type SyntaxStyleHandle = NativeHandle<\"syntax_style\">\nexport type EventSinkHandle = NativeHandle<\"event_sink\">\nexport type AudioEngineHandle = NativeHandle<\"audio_engine\">\nexport type NativeRenderableHandle = NativeHandle<\"native_renderable\">\nexport type ImageHandle = NativeHandle<\"image\">\nexport type ClipboardServiceHandle = number & { readonly __nativeHandle: \"clipboard_service\" }\nexport type ClipboardOperationHandle = number & { readonly __nativeHandle: \"clipboard_operation\" }\n\nexport enum NativeClipboardOperationStatus {\n Pending = 0,\n Read = 1,\n Empty = 2,\n Written = 3,\n Cleared = 4,\n Unsupported = 5,\n Cancelled = 6,\n TimedOut = 7,\n LimitExceeded = 8,\n Failed = 9,\n InvalidHandle = 10,\n}\n\nexport enum NativeClipboardStartStatus {\n Ok = 0,\n InvalidService = 1,\n ShuttingDown = 2,\n LimitExceeded = 3,\n InvalidArgument = 4,\n OutOfMemory = 5,\n}\n\nexport enum NativeClipboardCancelStatus {\n Requested = 0,\n AlreadyTerminal = 1,\n InvalidHandle = 2,\n}\n\nexport enum NativeClipboardCopyStatus {\n Ok = 0,\n BufferTooSmall = 1,\n InvalidHandle = 2,\n InvalidState = 3,\n InvalidArgument = 4,\n}\n\nexport enum NativeClipboardDestroyStatus {\n Destroyed = 0,\n NotReady = 1,\n InvalidHandle = 2,\n}\n\nexport enum NativeClipboardShutdownStatus {\n Pending = 0,\n Ready = 1,\n InvalidHandle = 2,\n}\nlet targetLibPath: string | undefined\nlet targetLibError: Error | undefined\n\ntry {\n targetLibPath = await resolveNativeLibraryPath()\n if (isBunfsPath(targetLibPath)) {\n targetLibPath = targetLibPath.replace(\"../\", \"\")\n }\n if (!existsSync(targetLibPath)) {\n throw new Error(`OpenTUI native library does not exist at ${JSON.stringify(targetLibPath)}`)\n }\n} catch (error) {\n targetLibError = error instanceof Error ? error : new Error(String(error))\n}\n\nregisterEnvVar({\n name: \"OTUI_DEBUG_FFI\",\n description: \"Enable debug logging for the FFI bindings.\",\n type: \"boolean\",\n default: false,\n})\n\nregisterEnvVar({\n name: \"OTUI_TRACE_FFI\",\n description: \"Enable tracing for the FFI bindings.\",\n type: \"boolean\",\n default: false,\n})\n\n// Env vars used in terminal.zig\nregisterEnvVar({\n name: \"OPENTUI_FORCE_WCWIDTH\",\n description: \"Use wcwidth for character width calculations when the variable is present\",\n type: \"string\",\n required: false,\n})\nregisterEnvVar({\n name: \"OPENTUI_FORCE_UNICODE\",\n description: \"Force Mode 2026 Unicode support when the variable is present\",\n type: \"string\",\n required: false,\n})\nregisterEnvVar({\n name: \"OPENTUI_GRAPHICS\",\n description: \"Control Kitty and Sixel graphics detection with the exact value true, 1, false, or 0\",\n type: \"string\",\n required: false,\n})\nregisterEnvVar({\n name: \"OPENTUI_IMAGE_PROTOCOL\",\n description: \"Override image rendering protocol: auto, kitty, sixel, or blocks\",\n type: \"string\",\n default: \"auto\",\n})\nregisterEnvVar({\n name: \"OPENTUI_FORCE_NOZWJ\",\n description: \"Use no_zwj width mode when the variable is present\",\n type: \"string\",\n required: false,\n})\n\n// Cursor & mouse pointer style mappings (avoid recreation on each call)\nconst CURSOR_STYLE_TO_ID = { block: 0, line: 1, underline: 2, default: 3 } as const\nconst CURSOR_ID_TO_STYLE = [\"block\", \"line\", \"underline\", \"default\"] as const\nconst MOUSE_STYLE_TO_ID = { default: 0, pointer: 1, text: 2, crosshair: 3, move: 4, \"not-allowed\": 5 } as const\nconst MAX_FFI_U32 = 0xffff_ffff\n// Global singleton state for FFI tracing to prevent duplicate exit handlers\nlet globalTraceSymbols: Record<string, number[]> | null = null\nlet globalFFILogPath: string | null = null\nlet exitHandlerRegistered = false\n\nfunction toNumber(value: number | bigint): number {\n return typeof value === \"bigint\" ? Number(value) : value\n}\n\nfunction toSafeByteCount(value: number | bigint, label: string): number {\n if (typeof value !== \"bigint\") {\n return value\n }\n\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new RangeError(`${label} exceeds JavaScript safe integer range`)\n }\n\n return Number(value)\n}\n\nfunction toSafeFFIU32Length(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || value < 0 || value > MAX_FFI_U32) {\n throw new RangeError(`${label} exceeds native u32 length limit`)\n }\n\n return value\n}\n\nfunction isFFIU32(value: number): boolean {\n return Number.isInteger(value) && value >= 0 && value <= MAX_FFI_U32\n}\n\nfunction ptrOrNull(value: ArrayBufferView): Pointer | null {\n return value.byteLength === 0 ? null : ptr(value)\n}\n\nfunction rgbaPtr(value: RGBA): Pointer {\n return ptr(value.buffer)\n}\n\nfunction optionalRgbaPtr(value: RGBA | null | undefined): Pointer | null {\n return value ? rgbaPtr(value) : null\n}\n\nfunction getOpenTUILib(libPath?: string) {\n const resolvedLibPath = libPath || targetLibPath\n if (!resolvedLibPath) {\n throw (\n targetLibError ??\n new Error(`OpenTUI is not supported on the current platform: ${process.platform}-${process.arch}`)\n )\n }\n\n const rawSymbols = dlopen(resolvedLibPath, {\n // Logging\n setLogCallback: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n // Event bus\n createEventSink: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n destroyEventSink: {\n args: [\"u32\"],\n returns: \"void\",\n },\n createNativeRenderable: {\n args: [],\n returns: \"u32\",\n },\n destroyNativeRenderable: {\n args: [\"u32\"],\n returns: \"void\",\n },\n nativeRenderableAttachYogaNode: {\n args: [\"u32\", \"ptr\"],\n returns: \"bool\",\n },\n nativeRenderableSetMeasureTarget: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"bool\",\n },\n // Renderer management\n createRenderer: {\n args: [\"u32\", \"u32\", \"u8\", \"u8\", \"ptr\"],\n returns: \"u32\",\n },\n setTerminalEnvVar: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n destroyRenderer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n setUseThread: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n setClearOnShutdown: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n setBackgroundColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n setRenderOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n resetSplitScrollback: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n syncSplitScrollback: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n getSplitOutputOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n setPendingSplitFooterTransition: {\n args: [\"u32\", \"u8\", \"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n clearPendingSplitFooterTransition: {\n args: [\"u32\"],\n returns: \"void\",\n },\n updateStats: {\n args: [\"u32\", \"f64\", \"u32\", \"f64\"],\n returns: \"void\",\n },\n updateMemoryStats: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n getRenderStats: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n render: {\n args: [\"u32\", \"bool\"],\n returns: \"u8\",\n },\n repaintSplitFooter: {\n args: [\"u32\", \"u32\", \"bool\"],\n returns: \"u64\",\n },\n // Single FFI entrypoint for split commit append. beginFrame/finalizeFrame let\n // native code decide whether this call is a standalone commit or part of a\n // larger batched frame envelope.\n commitSplitFooterSnapshot: {\n args: [\"u32\", \"u32\", \"u32\", \"bool\", \"bool\", \"u32\", \"bool\", \"bool\", \"bool\"],\n returns: \"u64\",\n },\n getNextBuffer: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n getCurrentBuffer: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n rendererSetPaletteState: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n queryPixelResolution: {\n args: [\"u32\"],\n returns: \"void\",\n },\n queryThemeColors: {\n args: [\"u32\"],\n returns: \"void\",\n },\n\n createOptimizedBuffer: {\n args: [\"u32\", \"u32\", \"bool\", \"u8\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n destroyOptimizedBuffer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n\n drawFrameBuffer: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n getBufferWidth: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n getBufferHeight: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n bufferClear: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n bufferGetCharPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetFgPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetBgPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetAttributesPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetRespectAlpha: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n bufferSetRespectAlpha: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n bufferGetId: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n bufferGetRealCharSize: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n bufferWriteResolvedChars: {\n args: [\"u32\", \"ptr\", \"u32\", \"bool\"],\n returns: \"u32\",\n },\n\n bufferDrawText: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferSetCellWithAlphaBlending: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferSetCell: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferFillRect: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"void\",\n },\n bufferColorMatrix: {\n args: [\"u32\", \"ptr\", \"ptr\", \"u32\", \"f32\", \"u8\"],\n returns: \"void\",\n },\n bufferColorMatrixUniform: {\n args: [\"u32\", \"ptr\", \"f32\", \"u8\"],\n returns: \"void\",\n },\n bufferResize: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n\n // Link API\n linkAlloc: {\n args: [\"ptr\", \"u32\"],\n returns: \"u32\",\n },\n linkGetUrl: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n attributesWithLink: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n attributesGetLinkId: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n\n resizeRenderer: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n\n // Cursor functions (now renderer-scoped)\n setCursorPosition: {\n args: [\"u32\", \"i32\", \"i32\", \"bool\"],\n returns: \"void\",\n },\n setCursorColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n getCursorState: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n // Cursor and mouse pointer style (combined)\n setCursorStyleOptions: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n // Debug overlay\n setDebugOverlay: {\n args: [\"u32\", \"bool\", \"u8\"],\n returns: \"void\",\n },\n\n // Terminal control\n clearTerminal: {\n args: [\"u32\"],\n returns: \"void\",\n },\n setTerminalTitle: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n copyToClipboardOSC52: {\n args: [\"u32\", \"u8\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n clearClipboardOSC52: {\n args: [\"u32\", \"u8\"],\n returns: \"bool\",\n },\n clipboardServiceCreate: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n clipboardServiceBeginShutdown: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardServicePollShutdown: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardServiceDestroy: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardServiceDrain: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardReadOperationStart: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardWriteOperationStart: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardClearOperationStart: {\n args: [\"u32\", \"u8\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationPoll: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardOperationCancel: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardOperationResultMimeLength: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultMimeCopy: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u8\",\n },\n clipboardOperationResultDataLength: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultDataCopy: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u8\",\n },\n clipboardOperationResultErrorCode: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultDiagnosticLength: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultDiagnosticCopy: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u8\",\n },\n clipboardOperationDestroy: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n triggerNotification: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n\n bufferDrawSuperSampleBuffer: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"u32\", \"u8\", \"u32\"],\n returns: \"void\",\n },\n bufferDrawImage: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n bufferDrawPackedBuffer: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n bufferDrawGrayscaleBuffer: {\n args: [\"u32\", \"i32\", \"i32\", \"ptr\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n bufferDrawGrayscaleBufferSupersampled: {\n args: [\"u32\", \"i32\", \"i32\", \"ptr\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n bufferDrawGrid: {\n args: [\"u32\", \"ptr\", \"ptr\", \"ptr\", \"ptr\", \"u32\", \"ptr\", \"u32\", \"ptr\"],\n returns: \"void\",\n },\n bufferDrawBox: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"ptr\", \"u32\", \"ptr\", \"ptr\", \"ptr\", \"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferPushScissorRect: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n bufferPopScissorRect: {\n args: [\"u32\"],\n returns: \"void\",\n },\n bufferClearScissorRects: {\n args: [\"u32\"],\n returns: \"void\",\n },\n bufferPushOpacity: {\n args: [\"u32\", \"f32\"],\n returns: \"void\",\n },\n bufferPopOpacity: {\n args: [\"u32\"],\n returns: \"void\",\n },\n bufferGetCurrentOpacity: {\n args: [\"u32\"],\n returns: \"f32\",\n },\n bufferClearOpacity: {\n args: [\"u32\"],\n returns: \"void\",\n },\n\n addToHitGrid: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n clearCurrentHitGrid: {\n args: [\"u32\"],\n returns: \"void\",\n },\n hitGridPushScissorRect: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n hitGridPopScissorRect: {\n args: [\"u32\"],\n returns: \"void\",\n },\n hitGridClearScissorRects: {\n args: [\"u32\"],\n returns: \"void\",\n },\n addToCurrentHitGridClipped: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n checkHit: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n getHitGridDirty: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n dumpHitGrid: {\n args: [\"u32\"],\n returns: \"void\",\n },\n dumpBuffers: {\n args: [\"u32\", \"i64\"],\n returns: \"void\",\n },\n dumpOutputBuffer: {\n args: [\"u32\", \"i64\"],\n returns: \"void\",\n },\n restoreTerminalModes: {\n args: [\"u32\"],\n returns: \"void\",\n },\n enableMouse: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n disableMouse: {\n args: [\"u32\"],\n returns: \"void\",\n },\n enableKittyKeyboard: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n disableKittyKeyboard: {\n args: [\"u32\"],\n returns: \"void\",\n },\n setKittyKeyboardFlags: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n getKittyKeyboardFlags: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n setupTerminal: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n suspendRenderer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n resumeRenderer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n writeOut: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n // TextBuffer functions\n createTextBuffer: {\n args: [\"u8\"],\n returns: \"u32\",\n },\n destroyTextBuffer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferGetLength: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferGetByteSize: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n\n textBufferReset: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferClear: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferSetDefaultFg: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferSetDefaultBg: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferSetDefaultAttributes: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferResetDefaults: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferGetTabWidth: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n textBufferSetTabWidth: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferRegisterMemBuffer: {\n args: [\"u32\", \"ptr\", \"u32\", \"bool\"],\n returns: \"u16\",\n },\n textBufferReplaceMemBuffer: {\n args: [\"u32\", \"u8\", \"ptr\", \"u32\", \"bool\"],\n returns: \"bool\",\n },\n textBufferClearMemRegistry: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferSetTextFromMem: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferAppend: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n textBufferAppendFromMemId: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferLoadFile: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n textBufferSetStyledText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n textBufferGetLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferGetPlainText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferAddHighlightByCharRange: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferAddHighlight: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferRemoveHighlightsByRef: {\n args: [\"u32\", \"u16\"],\n returns: \"void\",\n },\n textBufferClearLineHighlights: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferClearAllHighlights: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferSetSyntaxStyle: {\n args: [\"u32\", \"u32\"],\n returns: \"bool\",\n },\n textBufferGetLineHighlightsPtr: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"ptr\",\n },\n textBufferFreeLineHighlights: {\n args: [\"ptr\", \"u32\"],\n returns: \"void\",\n },\n textBufferGetHighlightCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferGetTextRange: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferGetTextRangeByCoords: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n\n // TextBufferView functions\n createTextBufferView: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n destroyTextBufferView: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferViewSetSelection: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewResetSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferViewGetSelectionInfo: {\n args: [\"u32\"],\n returns: \"u64\",\n },\n textBufferViewSetLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\"],\n returns: \"bool\",\n },\n textBufferViewUpdateSelection: {\n args: [\"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewUpdateLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\"],\n returns: \"bool\",\n },\n textBufferViewResetLocalSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferViewSetWrapWidth: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetWrapMode: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferViewSetFirstLineOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetViewportSize: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetViewport: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewGetVirtualLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferViewGetLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewGetLogicalLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewGetSelectedText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferViewGetPlainText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferViewSetTabIndicator: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetTabIndicatorColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewSetTruncate: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n textBufferViewMeasureForDimensions: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"bool\",\n },\n bufferDrawTextBufferView: {\n args: [\"u32\", \"u32\", \"i32\", \"i32\"],\n returns: \"void\",\n },\n bufferDrawEditorView: {\n args: [\"u32\", \"u32\", \"i32\", \"i32\"],\n returns: \"void\",\n },\n\n // EditorView functions\n createEditorView: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n destroyEditorView: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewSetViewportSize: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editorViewSetViewport: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"bool\"],\n returns: \"void\",\n },\n editorViewGetViewport: {\n args: [\"u32\", \"ptr\", \"ptr\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewSetScrollMargin: {\n args: [\"u32\", \"f32\"],\n returns: \"void\",\n },\n editorViewSetWrapMode: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n editorViewGetVirtualLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editorViewGetTotalVirtualLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editorViewGetTextBufferView: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editorViewGetLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetLogicalLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n // EditBuffer functions\n createEditBuffer: {\n args: [\"u8\", \"u32\"],\n returns: \"u32\",\n },\n destroyEditBuffer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferSetText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetTextFromMem: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n editBufferReplaceText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferReplaceTextFromMem: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n editBufferGetText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferInsertChar: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferInsertText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferDeleteChar: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferDeleteCharBackward: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferDeleteRange: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferNewLine: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferDeleteLine: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorLeft: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorRight: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorUp: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorDown: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferGotoLine: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetCursor: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetCursorToLineCol: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetCursorByOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferGetCursorPosition: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferGetId: {\n args: [\"u32\"],\n returns: \"u16\",\n },\n editBufferGetTextBuffer: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editBufferDebugLogRope: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferUndo: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferRedo: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferCanUndo: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n editBufferCanRedo: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n editBufferClearHistory: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferClear: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferGetNextWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferGetPrevWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferGetEOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferOffsetToPosition: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"bool\",\n },\n editBufferPositionToOffset: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n editBufferGetLineStartOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n editBufferGetTextRange: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferGetTextRangeByCoords: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n\n // EditorView selection and editing methods\n editorViewSetSelection: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewResetSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewGetSelection: {\n args: [\"u32\"],\n returns: \"u64\",\n },\n editorViewSetLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\", \"bool\", \"bool\"],\n returns: \"bool\",\n },\n editorViewUpdateSelection: {\n args: [\"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewUpdateLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\", \"bool\", \"bool\"],\n returns: \"bool\",\n },\n editorViewResetLocalSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewGetSelectedTextBytes: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editorViewGetCursor: {\n args: [\"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n\n // EditorView VisualCursor methods\n editorViewGetVisualCursor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n editorViewMoveUpVisual: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewMoveDownVisual: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewDeleteSelectedText: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewSetCursorByOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editorViewGetNextWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetPrevWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetEOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetVisualSOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetVisualEOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewSetPlaceholderStyledText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editorViewSetTabIndicator: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editorViewSetTabIndicatorColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n getArenaAllocatedBytes: {\n args: [],\n returns: \"u64\",\n },\n getBuildOptions: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n getAllocatorStats: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n\n // SyntaxStyle functions\n createSyntaxStyle: {\n args: [],\n returns: \"u32\",\n },\n destroySyntaxStyle: {\n args: [\"u32\"],\n returns: \"void\",\n },\n syntaxStyleRegister: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n syntaxStyleResolveByName: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n syntaxStyleGetStyleCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n\n imageInfo: { args: [\"ptr\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageRetainIccCache: { args: [], returns: \"void\" },\n imageReleaseIccCache: { args: [], returns: \"void\" },\n imageTestFailIccProfileCopyAllocationOnce: { args: [], returns: \"void\" },\n imageDecode: { args: [\"ptr\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageCreateFromRgba: { args: [\"ptr\", \"u64\", \"u32\", \"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageDestroy: { args: [\"u32\"], returns: \"void\" },\n imageRetain: { args: [\"u32\", \"ptr\"], returns: \"u32\" },\n imageGetInfo: { args: [\"u32\", \"ptr\"], returns: \"u32\" },\n imageMaterialize: { args: [\"u32\"], returns: \"u32\" },\n imageEnsureEncodedPng: { args: [\"u32\"], returns: \"u32\" },\n imageGetPixelsPtr: { args: [\"u32\"], returns: \"ptr\" },\n imageClone: { args: [\"u32\", \"ptr\"], returns: \"u32\" },\n imageCopyPixels: { args: [\"u32\", \"ptr\", \"u64\", \"u32\", \"u8\"], returns: \"u32\" },\n imageResize: { args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageExtract: { args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageExtend: { args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\"], returns: \"u32\" },\n imageTransform: { args: [\"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageComposite: { args: [\"u32\", \"u32\", \"i32\", \"i32\", \"u32\", \"u8\", \"ptr\"], returns: \"u32\" },\n\n // Terminal capability functions\n getTerminalCapabilities: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n processCapabilityResponse: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n // Unicode encoding API\n encodeUnicode: {\n args: [\"ptr\", \"u32\", \"ptr\", \"ptr\", \"u8\"],\n returns: \"bool\",\n },\n freeUnicode: {\n args: [\"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferDrawChar: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n // Yoga layout\n yogaConfigCreate: {\n args: [],\n returns: \"ptr\",\n },\n yogaConfigFree: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaConfigSetUseWebDefaults: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaConfigGetUseWebDefaults: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaConfigSetPointScaleFactor: {\n args: [\"ptr\", \"f32\"],\n returns: \"void\",\n },\n yogaConfigGetPointScaleFactor: {\n args: [\"ptr\"],\n returns: \"f32\",\n },\n yogaConfigSetErrata: {\n args: [\"ptr\", \"u32\"],\n returns: \"void\",\n },\n yogaConfigGetErrata: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n yogaConfigSetExperimentalFeatureEnabled: {\n args: [\"ptr\", \"u32\", \"bool\"],\n returns: \"void\",\n },\n yogaConfigIsExperimentalFeatureEnabled: {\n args: [\"ptr\", \"u32\"],\n returns: \"bool\",\n },\n yogaNodeCreate: {\n args: [],\n returns: \"ptr\",\n },\n yogaNodeCreateForOpenTUI: {\n args: [],\n returns: \"ptr\",\n },\n yogaNodeCreateWithConfig: {\n args: [\"ptr\"],\n returns: \"ptr\",\n },\n yogaNodeFree: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeFreeRecursive: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeReset: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeCopyStyle: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n yogaNodeInsertChild: {\n args: [\"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n yogaNodeRemoveChild: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n yogaNodeRemoveAllChildren: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeGetChild: {\n args: [\"ptr\", \"u32\"],\n returns: \"ptr\",\n },\n yogaNodeGetChildCount: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n yogaNodeGetParent: {\n args: [\"ptr\"],\n returns: \"ptr\",\n },\n yogaNodeCalculateLayout: {\n args: [\"ptr\", \"f32\", \"f32\", \"u32\"],\n returns: \"void\",\n },\n yogaNodeIsDirty: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeMarkDirty: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeGetHasNewLayout: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeSetHasNewLayout: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeSetIsReferenceBaseline: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeIsReferenceBaseline: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeSetAlwaysFormsContainingBlock: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeGetAlwaysFormsContainingBlock: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeGetComputedLayout: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n yogaNodeLayoutGetEdge: {\n args: [\"ptr\", \"u32\", \"u32\"],\n returns: \"f32\",\n },\n yogaNodeStyleSetEnum: {\n args: [\"ptr\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetEnum: {\n args: [\"ptr\", \"u32\"],\n returns: \"u32\",\n },\n yogaNodeStyleSetFloat: {\n args: [\"ptr\", \"u32\", \"f32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetFloat: {\n args: [\"ptr\", \"u32\"],\n returns: \"f32\",\n },\n yogaNodeStyleSetBorder: {\n args: [\"ptr\", \"u32\", \"f32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetBorder: {\n args: [\"ptr\", \"u32\"],\n returns: \"f32\",\n },\n yogaNodeStyleSetValue: {\n args: [\"ptr\", \"u32\", \"u32\", \"u32\", \"f32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetValue: {\n args: [\"ptr\", \"u32\", \"u32\"],\n returns: \"u64\",\n },\n yogaNodeSetMeasureFunc: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeUnsetMeasureFunc: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeHasMeasureFunc: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeSetDirtiedFunc: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeUnsetDirtiedFunc: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaStoreMeasureResult: {\n args: [\"f32\", \"f32\"],\n returns: \"void\",\n },\n yogaSetMeasureCallback: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaSetDirtiedCallback: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n\n // Audio\n createAudioEngine: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n destroyAudioEngine: {\n args: [\"u32\"],\n returns: \"void\",\n },\n audioRefreshPlaybackDevices: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioGetPlaybackDeviceCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n audioGetPlaybackDeviceName: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n audioIsPlaybackDeviceDefault: {\n args: [\"u32\", \"u32\"],\n returns: \"bool\",\n },\n audioSelectPlaybackDevice: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioClearPlaybackDeviceSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n audioRefreshCaptureDevices: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioGetCaptureDeviceCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n audioGetCaptureDeviceName: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n audioIsCaptureDeviceDefault: {\n args: [\"u32\", \"u32\"],\n returns: \"bool\",\n },\n audioSelectCaptureDevice: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioClearCaptureDeviceSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n audioStartCapture: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioStopCapture: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioIsCaptureRunning: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n audioReadCapture: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioGetCaptureStats: {\n args: [\"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioStart: {\n args: [\"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioStartMixer: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioStop: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioCreateStream: {\n args: [\"u32\", \"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n audioWriteStream: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"i32\",\n },\n audioEndStream: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioRestartStream: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioSetStreamVolume: {\n args: [\"u32\", \"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioSetStreamPan: {\n args: [\"u32\", \"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioSetStreamGroup: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioGetStreamStats: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioCloseStream: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioLoad: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioUnload: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioPlay: {\n args: [\"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n audioStopVoice: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioSetVoiceGroup: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioCreateGroup: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioSetGroupVolume: {\n args: [\"u32\", \"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioSetMasterVolume: {\n args: [\"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioMixToBuffer: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\"],\n returns: \"i32\",\n },\n audioEnableTap: {\n args: [\"u32\", \"bool\", \"u32\"],\n returns: \"i32\",\n },\n audioReadTap: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\", \"ptr\"],\n returns: \"i32\",\n },\n audioGetStats: {\n args: [\"u32\", \"ptr\"],\n returns: \"i32\",\n },\n\n // NativeSpanFeed\n createNativeSpanFeed: {\n args: [\"ptr\"],\n returns: \"ptr\",\n },\n attachNativeSpanFeed: {\n args: [\"ptr\"],\n returns: \"i32\",\n },\n destroyNativeSpanFeed: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n streamWrite: {\n args: [\"ptr\", \"ptr\", \"u32\"],\n returns: \"i32\",\n },\n streamCommit: {\n args: [\"ptr\"],\n returns: \"i32\",\n },\n streamDrainSpans: {\n args: [\"ptr\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n streamClose: {\n args: [\"ptr\"],\n returns: \"i32\",\n },\n streamReserve: {\n args: [\"ptr\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n streamCommitReserved: {\n args: [\"ptr\", \"u32\"],\n returns: \"i32\",\n },\n streamSetOptions: {\n args: [\"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n streamGetStats: {\n args: [\"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n streamSetCallback: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n })\n\n if (env.OTUI_DEBUG_FFI || env.OTUI_TRACE_FFI) {\n return {\n ...rawSymbols,\n symbols: convertToDebugSymbols(rawSymbols.symbols),\n }\n }\n\n return rawSymbols\n}\n\nfunction convertToDebugSymbols<T extends Record<string, any>>(symbols: T): T {\n // Initialize global state on first call\n if (!globalTraceSymbols) {\n globalTraceSymbols = {}\n }\n\n // Initialize global debug log path on first call\n if (env.OTUI_DEBUG_FFI && !globalFFILogPath) {\n const now = new Date()\n const timestamp = now.toISOString().replace(/[:.]/g, \"-\").replace(/T/, \"_\").split(\"Z\")[0]\n globalFFILogPath = `ffi_otui_debug_${timestamp}.log`\n }\n\n const debugSymbols: Record<string, any> = {}\n let hasTracing = false\n\n Object.entries(symbols).forEach(([key, value]) => {\n debugSymbols[key] = value\n })\n\n if (env.OTUI_DEBUG_FFI && globalFFILogPath) {\n const logPath = globalFFILogPath\n const writeSync = (msg: string) => {\n writeFileSync(logPath, msg + \"\\n\", { flag: \"a\" })\n }\n\n Object.entries(symbols).forEach(([key, value]) => {\n if (typeof value === \"function\") {\n debugSymbols[key] = (...args: any[]) => {\n writeSync(`${key}(${args.map((arg) => String(arg)).join(\", \")})`)\n const result = value(...args)\n writeSync(`${key} returned: ${String(result)}`)\n return result\n }\n }\n })\n }\n\n if (env.OTUI_TRACE_FFI) {\n hasTracing = true\n Object.entries(symbols).forEach(([key, value]) => {\n if (typeof value === \"function\") {\n // Initialize trace array for this symbol if not exists\n if (!globalTraceSymbols![key]) {\n globalTraceSymbols![key] = []\n }\n\n const originalFunc = debugSymbols[key]\n debugSymbols[key] = (...args: any[]) => {\n const start = performance.now()\n const result = originalFunc(...args)\n const end = performance.now()\n globalTraceSymbols![key].push(end - start)\n return result\n }\n }\n })\n }\n\n // Register exit handler only once\n if ((env.OTUI_DEBUG_FFI || env.OTUI_TRACE_FFI) && !exitHandlerRegistered) {\n exitHandlerRegistered = true\n\n process.on(\"exit\", () => {\n if (globalTraceSymbols) {\n const allStats: Array<{\n name: string\n count: number\n total: number\n average: number\n min: number\n max: number\n median: number\n p90: number\n p99: number\n }> = []\n\n for (const [key, timings] of Object.entries(globalTraceSymbols)) {\n if (!Array.isArray(timings) || timings.length === 0) {\n continue\n }\n\n const sortedTimings = [...timings].sort((a, b) => a - b)\n const count = sortedTimings.length\n\n const total = sortedTimings.reduce((acc, t) => acc + t, 0)\n const average = total / count\n const min = sortedTimings[0]\n const max = sortedTimings[count - 1]\n\n const medianIndex = Math.floor(count / 2)\n const p90Index = Math.floor(count * 0.9)\n const p99Index = Math.floor(count * 0.99)\n\n const median = sortedTimings[medianIndex]\n const p90 = sortedTimings[Math.min(p90Index, count - 1)]\n const p99 = sortedTimings[Math.min(p99Index, count - 1)]\n\n allStats.push({\n name: key,\n count,\n total,\n average,\n min,\n max,\n median,\n p90,\n p99,\n })\n }\n\n allStats.sort((a, b) => b.total - a.total)\n\n const lines: string[] = []\n lines.push(\"\\n--- OpenTUI FFI Call Performance ---\")\n lines.push(\"Sorted by total time spent (descending)\")\n lines.push(\n \"-------------------------------------------------------------------------------------------------------------------------\",\n )\n\n if (allStats.length === 0) {\n lines.push(\"No trace data collected or all symbols had zero calls.\")\n } else {\n const nameHeader = \"Symbol\"\n const callsHeader = \"Calls\"\n const totalHeader = \"Total (ms)\"\n const avgHeader = \"Avg (ms)\"\n const minHeader = \"Min (ms)\"\n const maxHeader = \"Max (ms)\"\n const medHeader = \"Med (ms)\"\n const p90Header = \"P90 (ms)\"\n const p99Header = \"P99 (ms)\"\n\n const nameWidth = Math.max(nameHeader.length, ...allStats.map((s) => s.name.length))\n const countWidth = Math.max(callsHeader.length, ...allStats.map((s) => String(s.count).length))\n const totalWidth = Math.max(totalHeader.length, ...allStats.map((s) => s.total.toFixed(2).length))\n const avgWidth = Math.max(avgHeader.length, ...allStats.map((s) => s.average.toFixed(2).length))\n const statWidthMin = Math.max(minHeader.length, ...allStats.map((s) => s.min.toFixed(2).length))\n const statWidthMax = Math.max(maxHeader.length, ...allStats.map((s) => s.max.toFixed(2).length))\n const medianWidth = Math.max(medHeader.length, ...allStats.map((s) => s.median.toFixed(2).length))\n const p90Width = Math.max(p90Header.length, ...allStats.map((s) => s.p90.toFixed(2).length))\n const p99Width = Math.max(p99Header.length, ...allStats.map((s) => s.p99.toFixed(2).length))\n\n lines.push(\n `${nameHeader.padEnd(nameWidth)} | ` +\n `${callsHeader.padStart(countWidth)} | ` +\n `${totalHeader.padStart(totalWidth)} | ` +\n `${avgHeader.padStart(avgWidth)} | ` +\n `${minHeader.padStart(statWidthMin)} | ` +\n `${maxHeader.padStart(statWidthMax)} | ` +\n `${medHeader.padStart(medianWidth)} | ` +\n `${p90Header.padStart(p90Width)} | ` +\n `${p99Header.padStart(p99Width)}`,\n )\n lines.push(\n `${\"-\".repeat(nameWidth)}-+-${\"-\".repeat(countWidth)}-+-${\"-\".repeat(totalWidth)}-+-${\"-\".repeat(avgWidth)}-+-${\"-\".repeat(statWidthMin)}-+-${\"-\".repeat(statWidthMax)}-+-${\"-\".repeat(medianWidth)}-+-${\"-\".repeat(p90Width)}-+-${\"-\".repeat(p99Width)}`,\n )\n\n allStats.forEach((stat) => {\n lines.push(\n `${stat.name.padEnd(nameWidth)} | ` +\n `${String(stat.count).padStart(countWidth)} | ` +\n `${stat.total.toFixed(2).padStart(totalWidth)} | ` +\n `${stat.average.toFixed(2).padStart(avgWidth)} | ` +\n `${stat.min.toFixed(2).padStart(statWidthMin)} | ` +\n `${stat.max.toFixed(2).padStart(statWidthMax)} | ` +\n `${stat.median.toFixed(2).padStart(medianWidth)} | ` +\n `${stat.p90.toFixed(2).padStart(p90Width)} | ` +\n `${stat.p99.toFixed(2).padStart(p99Width)}`,\n )\n })\n }\n lines.push(\n \"-------------------------------------------------------------------------------------------------------------------------\",\n )\n\n const output = lines.join(\"\\n\")\n console.log(output)\n\n try {\n const now = new Date()\n const timestamp = now.toISOString().replace(/[:.]/g, \"-\").replace(/T/, \"_\").split(\"Z\")[0]\n const traceFilePath = `ffi_otui_trace_${timestamp}.log`\n void writeFile(traceFilePath, output).catch((error) => {\n console.error(\"Failed to write FFI trace file:\", error)\n })\n } catch (e) {\n console.error(\"Failed to write FFI trace file:\", e)\n }\n }\n })\n }\n\n return debugSymbols as T\n}\n\n// Log levels matching Zig's LogLevel enum\nexport enum LogLevel {\n Error = 0,\n Warn = 1,\n Info = 2,\n Debug = 3,\n}\n\n/**\n * VisualCursor represents a cursor position with both visual and logical coordinates.\n * Visual coordinates (visualRow, visualCol) are VIEWPORT-RELATIVE.\n * This means visualRow=0 is the first visible line in the viewport, not the first line in the document.\n * Logical coordinates (logicalRow, logicalCol) are document-absolute.\n */\nexport interface VisualCursor {\n visualRow: number // Viewport-relative row (0 = top of viewport)\n visualCol: number // Viewport-relative column (0 = left edge of viewport when not wrapping)\n logicalRow: number // Document-absolute row\n logicalCol: number // Document-absolute column\n offset: number // Global display-width offset from buffer start\n}\n\nexport interface LogicalCursor {\n row: number\n col: number\n offset: number\n}\n\nexport interface MeasureResult {\n lineCount: number\n widthColsMax: number\n}\n\nexport interface CursorState {\n x: number\n y: number\n visible: boolean\n style: CursorStyle\n blinking: boolean\n color: RGBA\n}\n\nexport type NativeSpanFeedEventHandler = (eventId: number, arg0: Pointer, arg1: number | bigint) => void\n\nexport type NativeBufferedOutput = \"stdout\" | \"memory\"\n\nexport interface NativeRendererCreateOptions {\n remote?: boolean\n feedPtr?: Pointer | null\n bufferedOutput?: NativeBufferedOutput\n}\n\nexport interface NativeRenderOperationResult {\n renderOffset: number\n status: number\n}\n\nexport interface NativeYogaLayout {\n left: number\n top: number\n right: number\n bottom: number\n width: number\n height: number\n}\n\nexport type NativeYogaMeasureCallback = (\n node: Pointer | null,\n width: number,\n widthMode: number,\n height: number,\n heightMode: number,\n) => void\n\nexport type NativeYogaDirtiedCallback = (node: Pointer | null) => void\n\nexport const NativeMeasureTargetKind = {\n None: 0,\n TextBufferView: 1,\n EditorView: 2,\n} as const\n\nexport type NativeMeasureTargetKind = (typeof NativeMeasureTargetKind)[keyof typeof NativeMeasureTargetKind]\n\nexport type NativeMeasureTargetHandle = TextBufferViewHandle | EditorViewHandle\n\nexport interface AudioEngineLib {\n createAudioEngine: (options?: AudioCreateOptions | null) => AudioEngineHandle | null\n destroyAudioEngine: (engine: AudioEngineHandle) => void\n audioRefreshPlaybackDevices: (engine: AudioEngineHandle) => number\n audioGetPlaybackDeviceCount: (engine: AudioEngineHandle) => number\n audioGetPlaybackDeviceName: (engine: AudioEngineHandle, index: number) => string\n audioIsPlaybackDeviceDefault: (engine: AudioEngineHandle, index: number) => boolean\n audioSelectPlaybackDevice: (engine: AudioEngineHandle, index: number) => number\n audioClearPlaybackDeviceSelection: (engine: AudioEngineHandle) => void\n audioRefreshCaptureDevices: (engine: AudioEngineHandle) => number\n audioGetCaptureDeviceCount: (engine: AudioEngineHandle) => number\n audioGetCaptureDeviceName: (engine: AudioEngineHandle, index: number) => string\n audioIsCaptureDeviceDefault: (engine: AudioEngineHandle, index: number) => boolean\n audioSelectCaptureDevice: (engine: AudioEngineHandle, index: number) => number\n audioClearCaptureDeviceSelection: (engine: AudioEngineHandle) => void\n audioStartCapture: (\n engine: AudioEngineHandle,\n options: AudioStartOptions | undefined,\n channels: number,\n capacityFrames: number,\n ) => number\n audioStopCapture: (engine: AudioEngineHandle) => number\n audioIsCaptureRunning: (engine: AudioEngineHandle) => boolean\n audioReadCapture: (\n engine: AudioEngineHandle,\n outBuffer: Float32Array,\n frameCount: number,\n ) => { status: number; framesRead: number }\n audioGetCaptureStats: (engine: AudioEngineHandle) => { status: number; stats: NativeAudioCaptureStats | null }\n audioStart: (engine: AudioEngineHandle, options?: AudioStartOptions | null) => number\n audioStartMixer: (engine: AudioEngineHandle) => number\n audioStop: (engine: AudioEngineHandle) => number\n audioCreateStream: (\n engine: AudioEngineHandle,\n options: AudioStreamCreateOptions,\n ) => { status: number; streamId: number | null }\n audioWriteStream: (engine: AudioEngineHandle, streamId: number, data: Uint8Array) => number\n audioEndStream: (engine: AudioEngineHandle, streamId: number) => number\n audioRestartStream: (engine: AudioEngineHandle, streamId: number) => number\n audioSetStreamVolume: (engine: AudioEngineHandle, streamId: number, volume: number) => number\n audioSetStreamPan: (engine: AudioEngineHandle, streamId: number, pan: number) => number\n audioSetStreamGroup: (engine: AudioEngineHandle, streamId: number, groupId: number) => number\n audioGetStreamStats: (engine: AudioEngineHandle, streamId: number) => NativeAudioStreamStats | null\n audioCloseStream: (\n engine: AudioEngineHandle,\n streamId: number,\n reason: NativeAudioStreamCloseReason,\n ) => { status: number; stats: NativeAudioStreamStats | null }\n audioLoad: (engine: AudioEngineHandle, data: Uint8Array) => { status: number; soundId: number | null }\n audioUnload: (engine: AudioEngineHandle, soundId: number) => number\n audioPlay: (\n engine: AudioEngineHandle,\n soundId: number,\n options?: AudioVoiceOptions,\n ) => { status: number; voiceId: number | null }\n audioStopVoice: (engine: AudioEngineHandle, voiceId: number) => number\n audioSetVoiceGroup: (engine: AudioEngineHandle, voiceId: number, groupId: number) => number\n audioCreateGroup: (engine: AudioEngineHandle, name: string) => { status: number; groupId: number | null }\n audioSetGroupVolume: (engine: AudioEngineHandle, groupId: number, volume: number) => number\n audioSetMasterVolume: (engine: AudioEngineHandle, volume: number) => number\n audioMixToBuffer: (engine: AudioEngineHandle, outBuffer: Float32Array, frameCount: number, channels: number) => number\n audioEnableTap: (engine: AudioEngineHandle, enabled: boolean, capacityFrames: number) => number\n audioReadTap: (\n engine: AudioEngineHandle,\n outBuffer: Float32Array,\n frameCount: number,\n channels: number,\n ) => { status: number; framesRead: number }\n audioGetStats: (engine: AudioEngineHandle) => AudioStats | null\n}\n\nexport interface RenderLib extends AudioEngineLib {\n createRenderer: (width: number, height: number, options?: NativeRendererCreateOptions) => RendererHandle | null\n setTerminalEnvVar: (renderer: RendererHandle, key: string, value: string) => boolean\n destroyRenderer: (renderer: RendererHandle) => void\n setUseThread: (renderer: RendererHandle, useThread: boolean) => void\n setClearOnShutdown: (renderer: RendererHandle, clear: boolean) => void\n setBackgroundColor: (renderer: RendererHandle, color: RGBA) => void\n setRenderOffset: (renderer: RendererHandle, offset: number) => void\n resetSplitScrollback: (renderer: RendererHandle, seedRows: number, pinnedRenderOffset: number) => number\n syncSplitScrollback: (renderer: RendererHandle, pinnedRenderOffset: number) => number\n getSplitOutputOffset: (renderer: RendererHandle, surfaceOffset: number) => number\n setPendingSplitFooterTransition: (\n renderer: RendererHandle,\n mode: number,\n sourceTopLine: number,\n sourceHeight: number,\n targetTopLine: number,\n targetHeight: number,\n scrollLines: number,\n ) => void\n clearPendingSplitFooterTransition: (renderer: RendererHandle) => void\n updateStats: (renderer: RendererHandle, time: number, fps: number, frameCallbackTime: number) => void\n updateMemoryStats: (renderer: RendererHandle, heapUsed: number, heapTotal: number, arrayBuffers: number) => void\n getRenderStats: (renderer: RendererHandle) => NativeRenderStats\n render: (renderer: RendererHandle, force: boolean) => number\n repaintSplitFooter: (\n renderer: RendererHandle,\n pinnedRenderOffset: number,\n force: boolean,\n ) => NativeRenderOperationResult\n commitSplitFooterSnapshot: (\n renderer: RendererHandle,\n snapshot: OptimizedBuffer,\n rowColumns: number,\n startOnNewLine: boolean,\n trailingNewline: boolean,\n pinnedRenderOffset: number,\n force: boolean,\n // beginFrame/finalizeFrame mark commit boundaries when one JS flush contains\n // multiple stdout snapshots. Defaults preserve old one-call behavior.\n beginFrame?: boolean,\n finalizeFrame?: boolean,\n ) => NativeRenderOperationResult\n getNextBuffer: (renderer: RendererHandle) => OptimizedBuffer\n getCurrentBuffer: (renderer: RendererHandle) => OptimizedBuffer\n rendererSetPaletteState: (\n renderer: RendererHandle,\n palette: readonly RGBA[],\n defaultForeground: RGBA,\n defaultBackground: RGBA,\n paletteEpoch: number,\n ) => void\n createOptimizedBuffer: (\n width: number,\n height: number,\n widthMethod: WidthMethod,\n respectAlpha?: boolean,\n id?: string,\n ) => OptimizedBuffer\n destroyOptimizedBuffer: (bufferPtr: OptimizedBufferHandle) => void\n drawFrameBuffer: (\n targetBufferPtr: OptimizedBufferHandle,\n destX: number,\n destY: number,\n bufferPtr: OptimizedBufferHandle,\n sourceX?: number,\n sourceY?: number,\n sourceWidth?: number,\n sourceHeight?: number,\n ) => void\n getBufferWidth: (buffer: OptimizedBufferHandle) => number\n getBufferHeight: (buffer: OptimizedBufferHandle) => number\n bufferClear: (buffer: OptimizedBufferHandle, color: RGBA) => void\n bufferGetCharPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetFgPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetBgPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetAttributesPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetRespectAlpha: (buffer: OptimizedBufferHandle) => boolean\n bufferSetRespectAlpha: (buffer: OptimizedBufferHandle, respectAlpha: boolean) => void\n bufferGetId: (buffer: OptimizedBufferHandle) => string\n bufferGetRealCharSize: (buffer: OptimizedBufferHandle) => number\n bufferWriteResolvedChars: (buffer: OptimizedBufferHandle, outputBuffer: Uint8Array, addLineBreaks: boolean) => number\n bufferDrawText: (\n buffer: OptimizedBufferHandle,\n text: string,\n x: number,\n y: number,\n color: RGBA,\n bgColor?: RGBA,\n attributes?: number,\n ) => void\n bufferSetCellWithAlphaBlending: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) => void\n bufferSetCell: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) => void\n bufferFillRect: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n color: RGBA,\n ) => void\n bufferColorMatrix: (\n buffer: OptimizedBufferHandle,\n matrixPtr: Pointer,\n cellMaskPtr: Pointer,\n cellMaskCount: number,\n strength: number,\n target: TargetChannel,\n ) => void\n bufferColorMatrixUniform: (\n buffer: OptimizedBufferHandle,\n matrixPtr: Pointer,\n strength: number,\n target: TargetChannel,\n ) => void\n bufferDrawSuperSampleBuffer: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n pixelDataPtr: Pointer,\n pixelDataLength: number,\n format: \"bgra8unorm\" | \"rgba8unorm\",\n alignedBytesPerRow: number,\n ) => void\n bufferDrawImage: (\n buffer: OptimizedBufferHandle,\n image: ImageHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n pixelWidth: number,\n pixelHeight: number,\n sourceX: number,\n sourceY: number,\n sourceWidth: number,\n sourceHeight: number,\n protocol: ImageRenderProtocol,\n ) => boolean\n bufferDrawPackedBuffer: (\n buffer: OptimizedBufferHandle,\n dataPtr: Pointer,\n dataLen: number,\n posX: number,\n posY: number,\n terminalWidthCells: number,\n terminalHeightCells: number,\n ) => void\n bufferDrawGrayscaleBuffer: (\n buffer: OptimizedBufferHandle,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ) => void\n bufferDrawGrayscaleBufferSupersampled: (\n buffer: OptimizedBufferHandle,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ) => void\n bufferDrawGrid: (\n buffer: OptimizedBufferHandle,\n borderChars: Uint32Array,\n borderFg: RGBA,\n borderBg: RGBA,\n columnOffsets: Int32Array,\n columnCount: number,\n rowOffsets: Int32Array,\n rowCount: number,\n options: { drawInner: boolean; drawOuter: boolean },\n ) => void\n bufferDrawBox: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n borderChars: Uint32Array,\n packedOptions: number,\n borderColor: RGBA,\n backgroundColor: RGBA,\n titleColor: RGBA,\n title: string | null,\n bottomTitle: string | null,\n ) => void\n bufferResize: (buffer: OptimizedBufferHandle, width: number, height: number) => void\n resizeRenderer: (renderer: RendererHandle, width: number, height: number) => void\n setCursorPosition: (renderer: RendererHandle, x: number, y: number, visible: boolean) => void\n setCursorColor: (renderer: RendererHandle, color: RGBA) => void\n getCursorState: (renderer: RendererHandle) => CursorState\n setCursorStyleOptions: (renderer: RendererHandle, options: CursorStyleOptions) => void\n setDebugOverlay: (renderer: RendererHandle, enabled: boolean, corner: DebugOverlayCorner) => void\n clearTerminal: (renderer: RendererHandle) => void\n setTerminalTitle: (renderer: RendererHandle, title: string) => void\n copyToClipboardOSC52: (renderer: RendererHandle, target: number, textUtf8: Uint8Array) => boolean\n clearClipboardOSC52: (renderer: RendererHandle, target: number) => boolean\n clipboardServiceCreate: (\n maxConcurrentOperations: number,\n maxProviderTransfers: number,\n waylandSeat?: string,\n ) => ClipboardServiceHandle | null\n clipboardServiceBeginShutdown: (service: ClipboardServiceHandle) => NativeClipboardShutdownStatus\n clipboardServicePollShutdown: (service: ClipboardServiceHandle) => NativeClipboardShutdownStatus\n clipboardServiceDestroy: (service: ClipboardServiceHandle) => NativeClipboardDestroyStatus\n clipboardServiceDrain: (service: ClipboardServiceHandle) => number\n clipboardReadOperationStart: (\n service: ClipboardServiceHandle,\n request: Uint8Array,\n selection: number,\n maxBytes: number,\n maxImagePixels: number,\n maxConversionBytes: number,\n timeoutMs: number,\n ) => { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null }\n clipboardWriteOperationStart: (\n service: ClipboardServiceHandle,\n textUtf8: Uint8Array,\n selection: number,\n timeoutMs: number,\n ) => { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null }\n clipboardClearOperationStart: (\n service: ClipboardServiceHandle,\n selection: number,\n timeoutMs: number,\n ) => { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null }\n clipboardOperationPoll: (operation: ClipboardOperationHandle) => NativeClipboardOperationStatus\n clipboardOperationCancel: (operation: ClipboardOperationHandle) => NativeClipboardCancelStatus\n clipboardOperationResultMimeLength: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n length: number\n }\n clipboardOperationResultMimeCopy: (\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ) => NativeClipboardCopyStatus\n clipboardOperationResultDataLength: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n length: number\n }\n clipboardOperationResultDataCopy: (\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ) => NativeClipboardCopyStatus\n clipboardOperationResultErrorCode: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n errorCode: number\n }\n clipboardOperationResultDiagnosticLength: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n length: number\n }\n clipboardOperationResultDiagnosticCopy: (\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ) => NativeClipboardCopyStatus\n clipboardOperationDestroy: (operation: ClipboardOperationHandle) => NativeClipboardDestroyStatus\n triggerNotification: (renderer: RendererHandle, message: string, title?: string) => boolean\n addToHitGrid: (renderer: RendererHandle, x: number, y: number, width: number, height: number, id: number) => void\n clearCurrentHitGrid: (renderer: RendererHandle) => void\n hitGridPushScissorRect: (renderer: RendererHandle, x: number, y: number, width: number, height: number) => void\n hitGridPopScissorRect: (renderer: RendererHandle) => void\n hitGridClearScissorRects: (renderer: RendererHandle) => void\n addToCurrentHitGridClipped: (\n renderer: RendererHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n id: number,\n ) => void\n checkHit: (renderer: RendererHandle, x: number, y: number) => number\n getHitGridDirty: (renderer: RendererHandle) => boolean\n dumpHitGrid: (renderer: RendererHandle) => void\n dumpBuffers: (renderer: RendererHandle, timestamp?: number) => void\n dumpOutputBuffer: (renderer: RendererHandle, timestamp?: number) => void\n restoreTerminalModes: (renderer: RendererHandle) => void\n enableMouse: (renderer: RendererHandle, enableMovement: boolean) => void\n disableMouse: (renderer: RendererHandle) => void\n enableKittyKeyboard: (renderer: RendererHandle, flags: number) => void\n disableKittyKeyboard: (renderer: RendererHandle) => void\n setKittyKeyboardFlags: (renderer: RendererHandle, flags: number) => void\n getKittyKeyboardFlags: (renderer: RendererHandle) => number\n setupTerminal: (renderer: RendererHandle, useAlternateScreen: boolean) => void\n suspendRenderer: (renderer: RendererHandle) => void\n resumeRenderer: (renderer: RendererHandle) => void\n queryPixelResolution: (renderer: RendererHandle) => void\n queryThemeColors: (renderer: RendererHandle) => void\n writeOut: (renderer: RendererHandle, data: string | Uint8Array) => void\n\n // Yoga layout methods\n yogaConfigCreate: () => Pointer\n yogaConfigFree: (config: Pointer) => void\n yogaConfigSetUseWebDefaults: (config: Pointer, enabled: boolean) => void\n yogaConfigGetUseWebDefaults: (config: Pointer) => boolean\n yogaConfigSetPointScaleFactor: (config: Pointer, pointScaleFactor: number) => void\n yogaConfigGetPointScaleFactor: (config: Pointer) => number\n yogaConfigSetErrata: (config: Pointer, errata: number) => void\n yogaConfigGetErrata: (config: Pointer) => number\n yogaConfigSetExperimentalFeatureEnabled: (config: Pointer, feature: number, enabled: boolean) => void\n yogaConfigIsExperimentalFeatureEnabled: (config: Pointer, feature: number) => boolean\n yogaNodeCreate: () => Pointer\n yogaNodeCreateForOpenTUI: () => Pointer\n yogaNodeCreateWithConfig: (config: Pointer) => Pointer\n yogaNodeFree: (node: Pointer) => void\n yogaNodeFreeRecursive: (node: Pointer) => void\n yogaNodeReset: (node: Pointer) => void\n yogaNodeCopyStyle: (dstNode: Pointer, srcNode: Pointer) => void\n yogaNodeInsertChild: (node: Pointer, child: Pointer, index: number) => void\n yogaNodeRemoveChild: (node: Pointer, child: Pointer) => void\n yogaNodeRemoveAllChildren: (node: Pointer) => void\n yogaNodeGetChild: (node: Pointer, index: number) => Pointer | null\n yogaNodeGetChildCount: (node: Pointer) => number\n yogaNodeGetParent: (node: Pointer) => Pointer | null\n yogaNodeCalculateLayout: (node: Pointer, width: number, height: number, direction: number) => void\n yogaNodeIsDirty: (node: Pointer) => boolean\n yogaNodeMarkDirty: (node: Pointer) => void\n yogaNodeGetHasNewLayout: (node: Pointer) => boolean\n yogaNodeSetHasNewLayout: (node: Pointer, hasNewLayout: boolean) => void\n yogaNodeSetIsReferenceBaseline: (node: Pointer, isReferenceBaseline: boolean) => void\n yogaNodeIsReferenceBaseline: (node: Pointer) => boolean\n yogaNodeSetAlwaysFormsContainingBlock: (node: Pointer, alwaysFormsContainingBlock: boolean) => void\n yogaNodeGetAlwaysFormsContainingBlock: (node: Pointer) => boolean\n yogaNodeGetComputedLayout: (node: Pointer) => NativeYogaLayout\n yogaNodeLayoutGetEdge: (node: Pointer, kind: number, edge: number) => number\n yogaNodeStyleSetEnum: (node: Pointer, kind: number, value: number) => void\n yogaNodeStyleGetEnum: (node: Pointer, kind: number) => number\n yogaNodeStyleSetFloat: (node: Pointer, kind: number, value: number) => void\n yogaNodeStyleGetFloat: (node: Pointer, kind: number) => number\n yogaNodeStyleSetBorder: (node: Pointer, edge: number, border: number) => void\n yogaNodeStyleGetBorder: (node: Pointer, edge: number) => number\n yogaNodeStyleSetValue: (node: Pointer, kind: number, edgeOrGutter: number, unit: number, value: number) => void\n yogaNodeStyleGetValue: (node: Pointer, kind: number, edgeOrGutter: number) => number | bigint\n yogaNodeSetMeasureFunc: (node: Pointer, enabled: boolean) => void\n yogaNodeUnsetMeasureFunc: (node: Pointer) => void\n yogaNodeHasMeasureFunc: (node: Pointer) => boolean\n yogaNodeSetDirtiedFunc: (node: Pointer, enabled: boolean) => void\n yogaNodeUnsetDirtiedFunc: (node: Pointer) => void\n yogaStoreMeasureResult: (width: number, height: number) => void\n yogaSetMeasureCallback: (callback: Pointer | null) => void\n yogaSetDirtiedCallback: (callback: Pointer | null) => void\n createYogaMeasureCallback: (callback: NativeYogaMeasureCallback) => FFICallbackInstance\n createYogaDirtiedCallback: (callback: NativeYogaDirtiedCallback) => FFICallbackInstance\n\n // TextBuffer methods\n createTextBuffer: (widthMethod: WidthMethod) => TextBuffer\n destroyTextBuffer: (buffer: TextBufferHandle) => void\n textBufferGetLength: (buffer: TextBufferHandle) => number\n textBufferGetByteSize: (buffer: TextBufferHandle) => number\n\n textBufferReset: (buffer: TextBufferHandle) => void\n textBufferClear: (buffer: TextBufferHandle) => void\n textBufferRegisterMemBuffer: (buffer: TextBufferHandle, bytes: Uint8Array, owned?: boolean) => number\n textBufferReplaceMemBuffer: (buffer: TextBufferHandle, memId: number, bytes: Uint8Array, owned?: boolean) => boolean\n textBufferClearMemRegistry: (buffer: TextBufferHandle) => void\n textBufferSetTextFromMem: (buffer: TextBufferHandle, memId: number) => void\n textBufferAppend: (buffer: TextBufferHandle, bytes: Uint8Array) => void\n textBufferAppendFromMemId: (buffer: TextBufferHandle, memId: number) => void\n textBufferLoadFile: (buffer: TextBufferHandle, path: string) => boolean\n textBufferSetStyledText: (\n buffer: TextBufferHandle,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number; link?: { url: string } }>,\n ) => void\n textBufferSetDefaultFg: (buffer: TextBufferHandle, fg: RGBA | null) => void\n textBufferSetDefaultBg: (buffer: TextBufferHandle, bg: RGBA | null) => void\n textBufferSetDefaultAttributes: (buffer: TextBufferHandle, attributes: number | null) => void\n textBufferResetDefaults: (buffer: TextBufferHandle) => void\n textBufferGetTabWidth: (buffer: TextBufferHandle) => number\n textBufferSetTabWidth: (buffer: TextBufferHandle, width: number) => void\n textBufferGetLineCount: (buffer: TextBufferHandle) => number\n getPlainTextBytes: (buffer: TextBufferHandle, maxLength: number) => Uint8Array | null\n textBufferGetTextRange: (\n buffer: TextBufferHandle,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ) => Uint8Array | null\n textBufferGetTextRangeByCoords: (\n buffer: TextBufferHandle,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ) => Uint8Array | null\n\n // TextBufferView methods\n createTextBufferView: (textBuffer: TextBufferHandle) => TextBufferViewHandle\n destroyTextBufferView: (view: TextBufferViewHandle) => void\n textBufferViewSetSelection: (\n view: TextBufferViewHandle,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => void\n textBufferViewResetSelection: (view: TextBufferViewHandle) => void\n textBufferViewGetSelection: (view: TextBufferViewHandle) => { start: number; end: number } | null\n textBufferViewSetLocalSelection: (\n view: TextBufferViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => boolean\n textBufferViewUpdateSelection: (\n view: TextBufferViewHandle,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => void\n textBufferViewUpdateLocalSelection: (\n view: TextBufferViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => boolean\n textBufferViewResetLocalSelection: (view: TextBufferViewHandle) => void\n textBufferViewSetWrapWidth: (view: TextBufferViewHandle, width: number) => void\n textBufferViewSetWrapMode: (view: TextBufferViewHandle, mode: \"none\" | \"char\" | \"word\") => void\n textBufferViewSetFirstLineOffset: (view: TextBufferViewHandle, offset: number) => void\n textBufferViewSetViewportSize: (view: TextBufferViewHandle, width: number, height: number) => void\n textBufferViewSetViewport: (view: TextBufferViewHandle, x: number, y: number, width: number, height: number) => void\n textBufferViewGetLineInfo: (view: TextBufferViewHandle) => LineInfo\n textBufferViewGetLogicalLineInfo: (view: TextBufferViewHandle) => LineInfo\n textBufferViewGetSelectedTextBytes: (view: TextBufferViewHandle, maxLength: number) => Uint8Array | null\n textBufferViewGetPlainTextBytes: (view: TextBufferViewHandle, maxLength: number) => Uint8Array | null\n textBufferViewSetTabIndicator: (view: TextBufferViewHandle, indicator: number) => void\n textBufferViewSetTabIndicatorColor: (view: TextBufferViewHandle, color: RGBA) => void\n textBufferViewSetTruncate: (view: TextBufferViewHandle, truncate: boolean) => void\n textBufferViewMeasureForDimensions: (\n view: TextBufferViewHandle,\n width: number,\n height: number,\n ) => MeasureResult | null\n textBufferViewGetVirtualLineCount: (view: TextBufferViewHandle) => number\n\n readonly encoder: TextEncoder\n readonly decoder: TextDecoder\n bufferDrawTextBufferView: (buffer: OptimizedBufferHandle, view: TextBufferViewHandle, x: number, y: number) => void\n bufferDrawEditorView: (buffer: OptimizedBufferHandle, view: EditorViewHandle, x: number, y: number) => void\n\n // EditBuffer methods\n createEditBuffer: (widthMethod: WidthMethod) => EditBufferHandle\n destroyEditBuffer: (buffer: EditBufferHandle) => void\n editBufferSetText: (buffer: EditBufferHandle, textBytes: Uint8Array) => void\n editBufferSetTextFromMem: (buffer: EditBufferHandle, memId: number) => void\n editBufferReplaceText: (buffer: EditBufferHandle, textBytes: Uint8Array) => void\n editBufferReplaceTextFromMem: (buffer: EditBufferHandle, memId: number) => void\n editBufferGetText: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null\n editBufferInsertChar: (buffer: EditBufferHandle, char: string) => void\n editBufferInsertText: (buffer: EditBufferHandle, text: string) => void\n editBufferDeleteChar: (buffer: EditBufferHandle) => void\n editBufferDeleteCharBackward: (buffer: EditBufferHandle) => void\n editBufferDeleteRange: (\n buffer: EditBufferHandle,\n startLine: number,\n startCol: number,\n endLine: number,\n endCol: number,\n ) => void\n editBufferNewLine: (buffer: EditBufferHandle) => void\n editBufferDeleteLine: (buffer: EditBufferHandle) => void\n editBufferMoveCursorLeft: (buffer: EditBufferHandle) => void\n editBufferMoveCursorRight: (buffer: EditBufferHandle) => void\n editBufferMoveCursorUp: (buffer: EditBufferHandle) => void\n editBufferMoveCursorDown: (buffer: EditBufferHandle) => void\n editBufferGotoLine: (buffer: EditBufferHandle, line: number) => void\n editBufferSetCursor: (buffer: EditBufferHandle, line: number, col: number) => void\n editBufferSetCursorToLineCol: (buffer: EditBufferHandle, line: number, col: number) => void\n editBufferSetCursorByOffset: (buffer: EditBufferHandle, offset: number) => void\n editBufferGetCursorPosition: (buffer: EditBufferHandle) => LogicalCursor\n editBufferGetId: (buffer: EditBufferHandle) => number\n editBufferGetTextBuffer: (buffer: EditBufferHandle) => TextBufferHandle\n editBufferDebugLogRope: (buffer: EditBufferHandle) => void\n editBufferUndo: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null\n editBufferRedo: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null\n editBufferCanUndo: (buffer: EditBufferHandle) => boolean\n editBufferCanRedo: (buffer: EditBufferHandle) => boolean\n editBufferClearHistory: (buffer: EditBufferHandle) => void\n editBufferClear: (buffer: EditBufferHandle) => void\n editBufferGetNextWordBoundary: (buffer: EditBufferHandle) => { row: number; col: number; offset: number }\n editBufferGetPrevWordBoundary: (buffer: EditBufferHandle) => { row: number; col: number; offset: number }\n editBufferGetEOL: (buffer: EditBufferHandle) => { row: number; col: number; offset: number }\n editBufferOffsetToPosition: (\n buffer: EditBufferHandle,\n offset: number,\n ) => { row: number; col: number; offset: number } | null\n editBufferPositionToOffset: (buffer: EditBufferHandle, row: number, col: number) => number\n editBufferGetLineStartOffset: (buffer: EditBufferHandle, row: number) => number\n editBufferGetTextRange: (\n buffer: EditBufferHandle,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ) => Uint8Array | null\n editBufferGetTextRangeByCoords: (\n buffer: EditBufferHandle,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ) => Uint8Array | null\n\n // EditorView methods\n createEditorView: (editBufferPtr: EditBufferHandle, viewportWidth: number, viewportHeight: number) => EditorViewHandle\n destroyEditorView: (view: EditorViewHandle) => void\n editorViewSetViewportSize: (view: EditorViewHandle, width: number, height: number) => void\n editorViewSetViewport: (\n view: EditorViewHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n moveCursor: boolean,\n ) => void\n editorViewGetViewport: (view: EditorViewHandle) => { offsetY: number; offsetX: number; height: number; width: number }\n editorViewSetScrollMargin: (view: EditorViewHandle, margin: number) => void\n editorViewSetWrapMode: (view: EditorViewHandle, mode: \"none\" | \"char\" | \"word\") => void\n editorViewGetVirtualLineCount: (view: EditorViewHandle) => number\n editorViewGetTotalVirtualLineCount: (view: EditorViewHandle) => number\n editorViewGetTextBufferView: (view: EditorViewHandle) => TextBufferViewHandle\n editorViewSetSelection: (\n view: EditorViewHandle,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => void\n editorViewResetSelection: (view: EditorViewHandle) => void\n editorViewGetSelection: (view: EditorViewHandle) => { start: number; end: number } | null\n editorViewSetLocalSelection: (\n view: EditorViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ) => boolean\n\n editorViewUpdateSelection: (view: EditorViewHandle, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void\n editorViewUpdateLocalSelection: (\n view: EditorViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ) => boolean\n\n editorViewResetLocalSelection: (view: EditorViewHandle) => void\n editorViewGetSelectedTextBytes: (view: EditorViewHandle, maxLength: number) => Uint8Array | null\n editorViewGetCursor: (view: EditorViewHandle) => { row: number; col: number }\n editorViewGetText: (view: EditorViewHandle, maxLength: number) => Uint8Array | null\n editorViewGetVisualCursor: (view: EditorViewHandle) => VisualCursor\n editorViewMoveUpVisual: (view: EditorViewHandle) => void\n editorViewMoveDownVisual: (view: EditorViewHandle) => void\n editorViewDeleteSelectedText: (view: EditorViewHandle) => void\n editorViewSetCursorByOffset: (view: EditorViewHandle, offset: number) => void\n editorViewGetNextWordBoundary: (view: EditorViewHandle) => VisualCursor\n editorViewGetPrevWordBoundary: (view: EditorViewHandle) => VisualCursor\n editorViewGetEOL: (view: EditorViewHandle) => VisualCursor\n editorViewGetVisualSOL: (view: EditorViewHandle) => VisualCursor\n editorViewGetVisualEOL: (view: EditorViewHandle) => VisualCursor\n editorViewGetLineInfo: (view: EditorViewHandle) => LineInfo\n editorViewGetLogicalLineInfo: (view: EditorViewHandle) => LineInfo\n editorViewSetPlaceholderStyledText: (\n view: EditorViewHandle,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number }>,\n ) => void\n editorViewSetTabIndicator: (view: EditorViewHandle, indicator: number) => void\n editorViewSetTabIndicatorColor: (view: EditorViewHandle, color: RGBA) => void\n\n bufferPushScissorRect: (buffer: OptimizedBufferHandle, x: number, y: number, width: number, height: number) => void\n bufferPopScissorRect: (buffer: OptimizedBufferHandle) => void\n bufferClearScissorRects: (buffer: OptimizedBufferHandle) => void\n bufferPushOpacity: (buffer: OptimizedBufferHandle, opacity: number) => void\n bufferPopOpacity: (buffer: OptimizedBufferHandle) => void\n bufferGetCurrentOpacity: (buffer: OptimizedBufferHandle) => number\n bufferClearOpacity: (buffer: OptimizedBufferHandle) => void\n textBufferAddHighlightByCharRange: (buffer: TextBufferHandle, highlight: Highlight) => void\n textBufferAddHighlight: (buffer: TextBufferHandle, lineIdx: number, highlight: Highlight) => void\n textBufferRemoveHighlightsByRef: (buffer: TextBufferHandle, hlRef: number) => void\n textBufferClearLineHighlights: (buffer: TextBufferHandle, lineIdx: number) => void\n textBufferClearAllHighlights: (buffer: TextBufferHandle) => void\n textBufferSetSyntaxStyle: (buffer: TextBufferHandle, style: SyntaxStyleHandle | null) => boolean\n textBufferGetLineHighlights: (buffer: TextBufferHandle, lineIdx: number) => Array<Highlight>\n textBufferGetHighlightCount: (buffer: TextBufferHandle) => number\n\n getArenaAllocatedBytes: () => number\n getBuildOptions: () => BuildOptions\n getAllocatorStats: () => AllocatorStats\n\n createSyntaxStyle: () => SyntaxStyleHandle\n destroySyntaxStyle: (style: SyntaxStyleHandle) => void\n syntaxStyleRegister: (\n style: SyntaxStyleHandle,\n name: string,\n fg: RGBA | null,\n bg: RGBA | null,\n attributes: number,\n ) => number\n syntaxStyleResolveByName: (style: SyntaxStyleHandle, name: string) => number | null\n syntaxStyleGetStyleCount: (style: SyntaxStyleHandle) => number\n\n imageInfo: (data: Uint8Array) => { status: number; info: NativeImageInfo }\n imageRetainIccCache: () => void\n imageReleaseIccCache: () => void\n imageTestFailIccProfileCopyAllocationOnce: () => void\n imageDecode: (data: Uint8Array) => { status: number; handle: ImageHandle | null }\n imageCreateFromRgba: (\n pixels: Uint8Array,\n width: number,\n height: number,\n stride: number,\n ) => { status: number; handle: ImageHandle | null }\n imageDestroy: (image: ImageHandle) => void\n imageRetain: (image: ImageHandle) => { status: number; handle: ImageHandle | null }\n imageGetInfo: (image: ImageHandle) => { status: number; info: NativeImageInfo }\n imageMaterialize: (image: ImageHandle) => number\n imageEnsureEncodedPng: (image: ImageHandle) => number\n imageGetPixelsPtr: (image: ImageHandle) => Pointer | null\n imageClone: (image: ImageHandle) => { status: number; handle: ImageHandle | null }\n imageCopyPixels: (image: ImageHandle, destination: Uint8Array, stride: number, bgra: boolean) => number\n imageResize: (\n image: ImageHandle,\n width: number,\n height: number,\n filter: number,\n ) => { status: number; handle: ImageHandle | null }\n imageExtract: (\n image: ImageHandle,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => { status: number; handle: ImageHandle | null }\n imageExtend: (\n image: ImageHandle,\n top: number,\n right: number,\n bottom: number,\n left: number,\n background: Uint8Array,\n ) => { status: number; handle: ImageHandle | null }\n imageTransform: (image: ImageHandle, operation: number) => { status: number; handle: ImageHandle | null }\n imageComposite: (\n base: ImageHandle,\n overlay: ImageHandle,\n left: number,\n top: number,\n blend: number,\n opacity: number,\n ) => { status: number; handle: ImageHandle | null }\n\n getTerminalCapabilities: (renderer: RendererHandle) => TerminalCapabilities\n processCapabilityResponse: (renderer: RendererHandle, response: string) => void\n\n encodeUnicode: (\n text: string,\n widthMethod: WidthMethod,\n ) => { ptr: Pointer; data: Array<{ width: number; char: number }> } | null\n freeUnicode: (encoded: { ptr: Pointer; data: Array<{ width: number; char: number }> }) => void\n bufferDrawChar: (\n buffer: OptimizedBufferHandle,\n char: number,\n x: number,\n y: number,\n fg: RGBA,\n bg: RGBA,\n attributes?: number,\n ) => void\n\n registerNativeSpanFeedStream: (stream: Pointer, handler: NativeSpanFeedEventHandler) => void\n unregisterNativeSpanFeedStream: (stream: Pointer) => void\n createNativeSpanFeed: (options?: NativeSpanFeedOptions | null) => Pointer\n attachNativeSpanFeed: (stream: Pointer) => number\n destroyNativeSpanFeed: (stream: Pointer) => void\n streamWrite: (stream: Pointer, data: Uint8Array | string) => number\n streamCommit: (stream: Pointer) => number\n streamDrainSpans: (stream: Pointer, outBuffer: Uint8Array, maxSpans: number) => number\n streamClose: (stream: Pointer) => number\n streamSetOptions: (stream: Pointer, options: NativeSpanFeedOptions) => number\n streamGetStats: (stream: Pointer) => NativeSpanFeedStats | null\n streamReserve: (stream: Pointer, minLen: number) => { status: number; info: ReserveInfo | null }\n streamCommitReserved: (stream: Pointer, length: number) => number\n createNativeRenderable: () => NativeRenderableHandle\n destroyNativeRenderable: (handle: NativeRenderableHandle) => void\n nativeRenderableAttachYogaNode: (handle: NativeRenderableHandle, node: Pointer) => boolean\n nativeRenderableSetMeasureTarget: (\n handle: NativeRenderableHandle,\n kind: NativeMeasureTargetKind,\n target: NativeMeasureTargetHandle | 0,\n ) => boolean\n onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void\n onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void\n offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void\n onAnyNativeEvent: (handler: (name: string, data: ArrayBuffer) => void) => void\n}\n\nclass FFIRenderLib implements RenderLib {\n private opentui: ReturnType<typeof getOpenTUILib>\n private iccCacheClient = false\n // Layout reads are synchronous and non-reentrant. Retain one backing buffer so\n // Node does not allocate and resolve a new output pointer for every node.\n private readonly yogaLayout = new Float32Array(6)\n private readonly yogaLayoutPtr = ptr(this.yogaLayout)\n private readonly ffiStructStorage = {\n logicalCursor: {\n ...allocStruct(LogicalCursorStruct),\n result: { row: 0, col: 0, offset: 0 } as LogicalCursor,\n },\n visualCursor: {\n ...allocStruct(VisualCursorStruct),\n result: {\n visualRow: 0,\n visualCol: 0,\n logicalRow: 0,\n logicalCol: 0,\n offset: 0,\n } as VisualCursor,\n },\n measureResult: {\n ...allocStruct(MeasureResultStruct),\n result: { lineCount: 0, widthColsMax: 0 } as MeasureResult,\n },\n audioStreamStats: {\n ...allocStruct(AudioStreamStatsStruct),\n result: {\n bytesReceived: 0n,\n framesDecoded: 0n,\n framesPlayed: 0n,\n state: 0,\n sampleRate: 0,\n channels: 0,\n bufferedFrames: 0,\n capacityFrames: 0,\n underruns: 0,\n errorCode: 0,\n readyGeneration: 0,\n } as NativeAudioStreamStats,\n },\n imageDrawOptions: allocStruct(ImageDrawOptionsStruct),\n gridDrawOptions: allocStruct(GridDrawOptionsStruct),\n }\n private disposed = false\n private clipboardServices = new Set<ClipboardServiceHandle>()\n public readonly encoder: TextEncoder = new TextEncoder()\n public readonly decoder: TextDecoder = new TextDecoder()\n private logCallbackWrapper: FFICallbackInstance | null = null\n private eventCallbackWrapper: FFICallbackInstance | null = null\n private eventSinkPtr: EventSinkHandle | null = null\n private _nativeEvents: EventEmitter = new EventEmitter()\n private _anyEventHandlers: Array<(name: string, data: ArrayBuffer) => void> = []\n private nativeSpanFeedCallbackWrapper: FFICallbackInstance | null = null\n private nativeSpanFeedHandlers = new Map<Pointer, NativeSpanFeedEventHandler>()\n\n public createNativeRenderable(): NativeRenderableHandle {\n const handle = this.opentui.symbols.createNativeRenderable() as NativeRenderableHandle\n if (!handle) throw new Error(\"Failed to create native renderable\")\n return handle\n }\n\n public destroyNativeRenderable(handle: NativeRenderableHandle): void {\n this.opentui.symbols.destroyNativeRenderable(handle)\n }\n\n public nativeRenderableAttachYogaNode(handle: NativeRenderableHandle, node: Pointer): boolean {\n // Node's FFI returns bools as 0/1 numbers; normalize so the interface stays truthful.\n return Boolean(this.opentui.symbols.nativeRenderableAttachYogaNode(handle, node))\n }\n\n public nativeRenderableSetMeasureTarget(\n handle: NativeRenderableHandle,\n kind: NativeMeasureTargetKind,\n target: NativeMeasureTargetHandle | 0,\n ): boolean {\n return Boolean(this.opentui.symbols.nativeRenderableSetMeasureTarget(handle, kind, target))\n }\n\n constructor(libPath?: string) {\n this.opentui = getOpenTUILib(libPath)\n this.imageRetainIccCache()\n this.iccCacheClient = true\n try {\n this.setupLogging()\n this.setupEventBus()\n } catch (error) {\n this.dispose()\n throw error\n }\n }\n\n private setupLogging() {\n if (this.logCallbackWrapper) {\n return\n }\n\n const logCallback = this.opentui.createCallback(\n (level: number, msgPtr: Pointer, msgLen: number) => {\n try {\n if (msgLen === 0 || !msgPtr) {\n return\n }\n\n const msgBuffer = toArrayBuffer(msgPtr, 0, msgLen)\n const msgBytes = new Uint8Array(msgBuffer)\n const message = this.decoder.decode(msgBytes)\n\n switch (level) {\n case LogLevel.Error:\n console.error(message)\n break\n case LogLevel.Warn:\n console.warn(message)\n break\n case LogLevel.Info:\n console.info(message)\n break\n case LogLevel.Debug:\n console.debug(message)\n break\n default:\n console.log(message)\n }\n } catch (error) {\n console.error(\"Error in Zig log callback:\", error)\n }\n },\n {\n args: [\"u8\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n )\n\n this.logCallbackWrapper = logCallback\n\n if (!logCallback.ptr) {\n throw new Error(\"Failed to create log callback\")\n }\n\n this.setLogCallback(logCallback.ptr)\n }\n\n private setLogCallback(callbackPtr: Pointer | null) {\n this.opentui.symbols.setLogCallback(callbackPtr)\n }\n\n public dispose(): void {\n if (this.disposed) return\n if (this.clipboardServices.size > 0) {\n throw new Error(\"Cannot dispose OpenTUI native library while clipboard services are active\")\n }\n this.disposed = true\n try {\n if (this.eventSinkPtr) {\n this.opentui.symbols.destroyEventSink(this.eventSinkPtr)\n this.eventSinkPtr = null\n }\n\n this.yogaSetMeasureCallback(null)\n this.yogaSetDirtiedCallback(null)\n this.setLogCallback(null)\n } finally {\n try {\n if (this.iccCacheClient) {\n this.iccCacheClient = false\n this.imageReleaseIccCache()\n }\n } finally {\n try {\n this.opentui.close()\n } finally {\n this.eventCallbackWrapper = null\n this.logCallbackWrapper = null\n this.nativeSpanFeedCallbackWrapper = null\n this.nativeSpanFeedHandlers.clear()\n }\n }\n }\n }\n\n private setupEventBus() {\n if (this.eventCallbackWrapper) {\n return\n }\n\n const eventCallback = this.opentui.createCallback(\n (namePtr: Pointer, nameLen: number, dataPtr: Pointer, dataLen: number) => {\n try {\n if (nameLen === 0 || !namePtr) {\n return\n }\n\n const eventName = this.decoder.decode(toArrayBuffer(namePtr, 0, nameLen))\n const eventData = dataLen > 0 && dataPtr ? toArrayBuffer(dataPtr, 0, dataLen).slice(0) : new ArrayBuffer(0)\n\n queueMicrotask(() => {\n this._nativeEvents.emit(eventName, eventData)\n\n for (const handler of this._anyEventHandlers) {\n handler(eventName, eventData)\n }\n })\n } catch (error) {\n console.error(\"Error in native event callback:\", error)\n }\n },\n {\n args: [\"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n )\n\n this.eventCallbackWrapper = eventCallback\n\n if (!eventCallback.ptr) {\n throw new Error(\"Failed to create event callback\")\n }\n\n this.eventSinkPtr = this.opentui.symbols.createEventSink(eventCallback.ptr)\n if (!this.eventSinkPtr) {\n eventCallback.close()\n this.eventCallbackWrapper = null\n throw new Error(\"Failed to create native event sink\")\n }\n }\n\n private ensureNativeSpanFeedCallback(): FFICallbackInstance {\n if (this.nativeSpanFeedCallbackWrapper) {\n return this.nativeSpanFeedCallbackWrapper\n }\n\n const callback = this.opentui.createCallback(\n (streamPtr: Pointer, eventId: number, arg0: Pointer, arg1: number | bigint) => {\n const handler = this.nativeSpanFeedHandlers.get(streamPtr)\n if (handler) {\n handler(eventId, arg0, arg1)\n }\n },\n {\n args: [\"ptr\", \"u32\", \"ptr\", \"u64\"],\n returns: \"void\",\n },\n )\n\n this.nativeSpanFeedCallbackWrapper = callback\n\n if (!callback.ptr) {\n throw new Error(\"Failed to create native span feed callback\")\n }\n\n return callback\n }\n\n public createRenderer(width: number, height: number, options: NativeRendererCreateOptions = {}) {\n const bufferedOutputKind = options.bufferedOutput === \"memory\" ? 1 : 0\n const remoteMode = options.remote === undefined ? 0 : options.remote ? 2 : 1\n // `feedPtr` is an internal wiring detail: non-null selects the feed backend\n // used for custom Writable output. When null, `bufferedOutput` selects the\n // buffered stdout or memory backend.\n const feedPtr = options.feedPtr ?? null\n const renderer = this.opentui.symbols.createRenderer(\n width,\n height,\n bufferedOutputKind,\n remoteMode,\n feedPtr,\n ) as RendererHandle\n return renderer ? renderer : null\n }\n\n public setTerminalEnvVar(renderer: Pointer, key: string, value: string): boolean {\n const keyBytes = this.encoder.encode(key)\n const valueBytes = this.encoder.encode(value)\n return this.opentui.symbols.setTerminalEnvVar(\n renderer,\n ptrOrNull(keyBytes),\n keyBytes.byteLength,\n ptrOrNull(valueBytes),\n valueBytes.byteLength,\n )\n }\n\n public destroyRenderer(renderer: Pointer): void {\n this.opentui.symbols.destroyRenderer(renderer)\n }\n\n public setUseThread(renderer: Pointer, useThread: boolean) {\n this.opentui.symbols.setUseThread(renderer, ffiBool(useThread))\n }\n\n public setClearOnShutdown(renderer: Pointer, clear: boolean) {\n this.opentui.symbols.setClearOnShutdown(renderer, ffiBool(clear))\n }\n\n public setBackgroundColor(renderer: Pointer, color: RGBA) {\n this.opentui.symbols.setBackgroundColor(renderer, rgbaPtr(color))\n }\n\n public setRenderOffset(renderer: Pointer, offset: number) {\n this.opentui.symbols.setRenderOffset(renderer, offset)\n }\n\n public resetSplitScrollback(renderer: Pointer, seedRows: number, pinnedRenderOffset: number): number {\n return this.opentui.symbols.resetSplitScrollback(renderer, seedRows, pinnedRenderOffset)\n }\n\n public syncSplitScrollback(renderer: Pointer, pinnedRenderOffset: number): number {\n return this.opentui.symbols.syncSplitScrollback(renderer, pinnedRenderOffset)\n }\n\n public getSplitOutputOffset(renderer: Pointer, surfaceOffset: number): number {\n return this.opentui.symbols.getSplitOutputOffset(renderer, surfaceOffset)\n }\n\n public setPendingSplitFooterTransition(\n renderer: Pointer,\n mode: number,\n sourceTopLine: number,\n sourceHeight: number,\n targetTopLine: number,\n targetHeight: number,\n scrollLines: number,\n ): void {\n this.opentui.symbols.setPendingSplitFooterTransition(\n renderer,\n mode,\n sourceTopLine,\n sourceHeight,\n targetTopLine,\n targetHeight,\n scrollLines,\n )\n }\n\n public clearPendingSplitFooterTransition(renderer: Pointer): void {\n this.opentui.symbols.clearPendingSplitFooterTransition(renderer)\n }\n\n public updateStats(renderer: Pointer, time: number, fps: number, frameCallbackTime: number) {\n this.opentui.symbols.updateStats(renderer, time, fps, frameCallbackTime)\n }\n\n public updateMemoryStats(renderer: Pointer, heapUsed: number, heapTotal: number, arrayBuffers: number) {\n this.opentui.symbols.updateMemoryStats(renderer, heapUsed, heapTotal, arrayBuffers)\n }\n\n public getRenderStats(renderer: Pointer): NativeRenderStats {\n const statsBuffer = new ArrayBuffer(NativeRenderStatsStruct.size)\n this.opentui.symbols.getRenderStats(renderer, ptr(statsBuffer))\n const stats = NativeRenderStatsStruct.unpack(statsBuffer)\n\n return {\n nativeLastFrameTime: stats.lastFrameTime,\n nativeAverageFrameTime: stats.averageFrameTime,\n nativeFrameCount: toNumber(stats.frameCount),\n cellsUpdated: stats.cellsUpdated,\n averageCellsUpdated: stats.averageCellsUpdated,\n nativeRenderTime: stats.renderTimeValid ? stats.renderTime : undefined,\n nativeStdoutWriteTime: stats.stdoutWriteTimeValid ? stats.stdoutWriteTime : undefined,\n }\n }\n\n public getNextBuffer(renderer: Pointer): OptimizedBuffer {\n const bufferPtr = this.opentui.symbols.getNextBuffer(renderer)\n if (!bufferPtr) {\n throw new Error(\"Failed to get next buffer\")\n }\n\n const width = this.opentui.symbols.getBufferWidth(bufferPtr)\n const height = this.opentui.symbols.getBufferHeight(bufferPtr)\n\n return new OptimizedBuffer(this, bufferPtr, width, height, { id: \"next buffer\", widthMethod: \"unicode\" })\n }\n\n public getCurrentBuffer(renderer: Pointer): OptimizedBuffer {\n const bufferPtr = this.opentui.symbols.getCurrentBuffer(renderer)\n if (!bufferPtr) {\n throw new Error(\"Failed to get current buffer\")\n }\n\n const width = this.opentui.symbols.getBufferWidth(bufferPtr)\n const height = this.opentui.symbols.getBufferHeight(bufferPtr)\n\n return new OptimizedBuffer(this, bufferPtr, width, height, { id: \"current buffer\", widthMethod: \"unicode\" })\n }\n\n public rendererSetPaletteState(\n renderer: Pointer,\n palette: readonly RGBA[],\n defaultForeground: RGBA,\n defaultBackground: RGBA,\n paletteEpoch: number,\n ): void {\n const paletteBuffer = new Uint16Array(palette.length * 4)\n\n for (let index = 0; index < palette.length; index++) {\n paletteBuffer.set(palette[index].buffer, index * 4)\n }\n\n this.opentui.symbols.rendererSetPaletteState(\n renderer,\n ptr(paletteBuffer),\n palette.length,\n rgbaPtr(defaultForeground),\n rgbaPtr(defaultBackground),\n paletteEpoch >>> 0,\n )\n }\n\n public bufferGetCharPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetCharPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get char pointer\")\n }\n return ptr\n }\n\n public bufferGetFgPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetFgPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get fg pointer\")\n }\n return ptr\n }\n\n public bufferGetBgPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetBgPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get bg pointer\")\n }\n return ptr\n }\n\n public bufferGetAttributesPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetAttributesPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get attributes pointer\")\n }\n return ptr\n }\n\n public bufferGetRespectAlpha(buffer: Pointer): boolean {\n return this.opentui.symbols.bufferGetRespectAlpha(buffer)\n }\n\n public bufferSetRespectAlpha(buffer: Pointer, respectAlpha: boolean): void {\n this.opentui.symbols.bufferSetRespectAlpha(buffer, ffiBool(respectAlpha))\n }\n\n public bufferGetId(buffer: Pointer): string {\n const maxLen = 256\n const outBuffer = new Uint8Array(maxLen)\n const actualLen = this.opentui.symbols.bufferGetId(buffer, ptr(outBuffer), maxLen)\n return this.decoder.decode(outBuffer.slice(0, actualLen))\n }\n\n public bufferGetRealCharSize(buffer: Pointer): number {\n return this.opentui.symbols.bufferGetRealCharSize(buffer)\n }\n\n public bufferWriteResolvedChars(buffer: Pointer, outputBuffer: Uint8Array, addLineBreaks: boolean): number {\n return this.opentui.symbols.bufferWriteResolvedChars(\n buffer,\n ptrOrNull(outputBuffer),\n outputBuffer.byteLength,\n ffiBool(addLineBreaks),\n )\n }\n\n public getBufferWidth(buffer: Pointer): number {\n return this.opentui.symbols.getBufferWidth(buffer)\n }\n\n public getBufferHeight(buffer: Pointer): number {\n return this.opentui.symbols.getBufferHeight(buffer)\n }\n\n public bufferClear(buffer: Pointer, color: RGBA) {\n this.opentui.symbols.bufferClear(buffer, rgbaPtr(color))\n }\n\n public bufferDrawText(\n buffer: Pointer,\n text: string,\n x: number,\n y: number,\n color: RGBA,\n bgColor?: RGBA,\n attributes?: number,\n ) {\n const textBytes = this.encoder.encode(text)\n const bg = optionalRgbaPtr(bgColor)\n const fg = rgbaPtr(color)\n\n this.opentui.symbols.bufferDrawText(\n buffer,\n ptrOrNull(textBytes),\n textBytes.byteLength,\n x,\n y,\n fg,\n bg,\n attributes ?? 0,\n )\n }\n\n public bufferSetCellWithAlphaBlending(\n buffer: Pointer,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) {\n const charPtr = char.codePointAt(0) ?? \" \".codePointAt(0)!\n const bg = rgbaPtr(bgColor)\n const fg = rgbaPtr(color)\n\n this.opentui.symbols.bufferSetCellWithAlphaBlending(buffer, x, y, charPtr, fg, bg, attributes ?? 0)\n }\n\n public bufferSetCell(\n buffer: Pointer,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) {\n const charPtr = char.codePointAt(0) ?? \" \".codePointAt(0)!\n const bg = rgbaPtr(bgColor)\n const fg = rgbaPtr(color)\n\n this.opentui.symbols.bufferSetCell(buffer, x, y, charPtr, fg, bg, attributes ?? 0)\n }\n\n public bufferFillRect(buffer: Pointer, x: number, y: number, width: number, height: number, color: RGBA) {\n const bg = rgbaPtr(color)\n this.opentui.symbols.bufferFillRect(buffer, x, y, width, height, bg)\n }\n\n public bufferColorMatrix(\n buffer: Pointer,\n matrixPtr: Pointer,\n cellMaskPtr: Pointer,\n cellMaskCount: number,\n strength: number,\n target: TargetChannel,\n ): void {\n this.opentui.symbols.bufferColorMatrix(buffer, matrixPtr, cellMaskPtr, cellMaskCount, strength, target)\n }\n\n public bufferColorMatrixUniform(buffer: Pointer, matrixPtr: Pointer, strength: number, target: TargetChannel): void {\n this.opentui.symbols.bufferColorMatrixUniform(buffer, matrixPtr, strength, target)\n }\n\n public bufferDrawSuperSampleBuffer(\n buffer: Pointer,\n x: number,\n y: number,\n pixelDataPtr: Pointer,\n pixelDataLength: number,\n format: \"bgra8unorm\" | \"rgba8unorm\",\n alignedBytesPerRow: number,\n ): void {\n const formatId = format === \"bgra8unorm\" ? 0 : 1\n this.opentui.symbols.bufferDrawSuperSampleBuffer(\n buffer,\n x,\n y,\n pixelDataPtr,\n pixelDataLength,\n formatId,\n alignedBytesPerRow,\n )\n }\n\n public bufferDrawImage(\n buffer: OptimizedBufferHandle,\n image: ImageHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n pixelWidth: number,\n pixelHeight: number,\n sourceX: number,\n sourceY: number,\n sourceWidth: number,\n sourceHeight: number,\n protocol: ImageRenderProtocol,\n ): boolean {\n const protocolId = { auto: 0, kitty: 1, sixel: 2, blocks: 3 }[protocol]\n const storage = this.ffiStructStorage.imageDrawOptions\n ImageDrawOptionsStruct.packInto(\n {\n x,\n y,\n width,\n height,\n pixelWidth,\n pixelHeight,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n protocol: protocolId,\n },\n storage.view,\n 0,\n )\n return Boolean(this.opentui.symbols.bufferDrawImage(buffer, image, storage.buffer))\n }\n\n public bufferDrawPackedBuffer(\n buffer: Pointer,\n dataPtr: Pointer,\n dataLen: number,\n posX: number,\n posY: number,\n terminalWidthCells: number,\n terminalHeightCells: number,\n ): void {\n this.opentui.symbols.bufferDrawPackedBuffer(\n buffer,\n dataPtr,\n dataLen,\n posX,\n posY,\n terminalWidthCells,\n terminalHeightCells,\n )\n }\n\n public bufferDrawGrayscaleBuffer(\n buffer: Pointer,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ): void {\n this.opentui.symbols.bufferDrawGrayscaleBuffer(\n buffer,\n posX,\n posY,\n intensitiesPtr,\n srcWidth,\n srcHeight,\n optionalRgbaPtr(fg),\n optionalRgbaPtr(bg),\n )\n }\n\n public bufferDrawGrayscaleBufferSupersampled(\n buffer: Pointer,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ): void {\n this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(\n buffer,\n posX,\n posY,\n intensitiesPtr,\n srcWidth,\n srcHeight,\n optionalRgbaPtr(fg),\n optionalRgbaPtr(bg),\n )\n }\n\n public bufferDrawGrid(\n buffer: Pointer,\n borderChars: Uint32Array,\n borderFg: RGBA,\n borderBg: RGBA,\n columnOffsets: Int32Array,\n columnCount: number,\n rowOffsets: Int32Array,\n rowCount: number,\n options: { drawInner: boolean; drawOuter: boolean },\n ): void {\n GridDrawOptionsStruct.packInto(\n { drawInner: options.drawInner, drawOuter: options.drawOuter },\n this.ffiStructStorage.gridDrawOptions.view,\n 0,\n )\n\n this.opentui.symbols.bufferDrawGrid(\n buffer,\n ptr(borderChars),\n rgbaPtr(borderFg),\n rgbaPtr(borderBg),\n ptr(columnOffsets),\n columnCount,\n ptr(rowOffsets),\n rowCount,\n this.ffiStructStorage.gridDrawOptions.buffer,\n )\n }\n\n public bufferDrawBox(\n buffer: Pointer,\n x: number,\n y: number,\n width: number,\n height: number,\n borderChars: Uint32Array,\n packedOptions: number,\n borderColor: RGBA,\n backgroundColor: RGBA,\n titleColor: RGBA,\n title: string | null,\n bottomTitle: string | null,\n ): void {\n const titleBytes = title ? this.encoder.encode(title) : null\n const titleLen = titleBytes?.byteLength ?? 0\n const titlePtr = titleBytes ? ptr(titleBytes) : null\n\n const bottomTitleBytes = bottomTitle ? this.encoder.encode(bottomTitle) : null\n const bottomTitleLen = bottomTitleBytes?.byteLength ?? 0\n const bottomTitlePtr = bottomTitleBytes ? ptr(bottomTitleBytes) : null\n\n this.opentui.symbols.bufferDrawBox(\n buffer,\n x,\n y,\n width,\n height,\n ptr(borderChars),\n packedOptions,\n rgbaPtr(borderColor),\n rgbaPtr(backgroundColor),\n rgbaPtr(titleColor),\n titlePtr,\n titleLen,\n bottomTitlePtr,\n bottomTitleLen,\n )\n }\n\n public bufferResize(buffer: Pointer, width: number, height: number): void {\n this.opentui.symbols.bufferResize(buffer, width, height)\n }\n\n // Link API\n public linkAlloc(url: string): number {\n const urlBytes = this.encoder.encode(url)\n return this.opentui.symbols.linkAlloc(ptrOrNull(urlBytes), urlBytes.byteLength)\n }\n\n public linkGetUrl(linkId: number, maxLen: number = 512): string {\n const outBuffer = new Uint8Array(maxLen)\n const actualLen = this.opentui.symbols.linkGetUrl(linkId, ptrOrNull(outBuffer), maxLen)\n return this.decoder.decode(outBuffer.slice(0, actualLen))\n }\n\n public attributesWithLink(baseAttributes: number, linkId: number): number {\n return this.opentui.symbols.attributesWithLink(baseAttributes, linkId)\n }\n\n public attributesGetLinkId(attributes: number): number {\n return this.opentui.symbols.attributesGetLinkId(attributes)\n }\n\n public resizeRenderer(renderer: Pointer, width: number, height: number) {\n this.opentui.symbols.resizeRenderer(renderer, width, height)\n }\n\n public setCursorPosition(renderer: Pointer, x: number, y: number, visible: boolean) {\n this.opentui.symbols.setCursorPosition(renderer, x, y, ffiBool(visible))\n }\n\n public setCursorColor(renderer: Pointer, color: RGBA) {\n this.opentui.symbols.setCursorColor(renderer, rgbaPtr(color))\n }\n\n public getCursorState(renderer: Pointer): CursorState {\n const cursorBuffer = new ArrayBuffer(CursorStateStruct.size)\n this.opentui.symbols.getCursorState(renderer, ptr(cursorBuffer))\n const struct = CursorStateStruct.unpack(cursorBuffer)\n\n return {\n x: struct.x,\n y: struct.y,\n visible: struct.visible,\n style: CURSOR_ID_TO_STYLE[struct.style] ?? \"block\",\n blinking: struct.blinking,\n color: RGBA.fromValues(struct.r, struct.g, struct.b, struct.a),\n }\n }\n\n public setCursorStyleOptions(renderer: Pointer, options: CursorStyleOptions): void {\n const style = options.style != null ? CURSOR_STYLE_TO_ID[options.style] : 255\n const blinking = options.blinking != null ? (options.blinking ? 1 : 0) : 255\n const cursor = options.cursor != null ? MOUSE_STYLE_TO_ID[options.cursor] : 255\n\n const buffer = CursorStyleOptionsStruct.pack({ style, blinking, color: options.color, cursor })\n this.opentui.symbols.setCursorStyleOptions(renderer, buffer)\n }\n\n public render(renderer: Pointer, force: boolean): number {\n return this.opentui.symbols.render(renderer, ffiBool(force))\n }\n\n private unpackRenderOperationResult(value: number | bigint): NativeRenderOperationResult {\n const packed = typeof value === \"bigint\" ? value : BigInt(value)\n return {\n renderOffset: Number(packed & 0xffffffffn),\n status: Number((packed >> 32n) & 0xffn),\n }\n }\n\n public repaintSplitFooter(\n renderer: Pointer,\n pinnedRenderOffset: number,\n force: boolean,\n ): NativeRenderOperationResult {\n return this.unpackRenderOperationResult(\n this.opentui.symbols.repaintSplitFooter(renderer, pinnedRenderOffset, ffiBool(force)),\n )\n }\n\n public commitSplitFooterSnapshot(\n renderer: Pointer,\n snapshot: OptimizedBuffer,\n rowColumns: number,\n startOnNewLine: boolean,\n trailingNewline: boolean,\n pinnedRenderOffset: number,\n force: boolean,\n beginFrame: boolean = true,\n finalizeFrame: boolean = true,\n ): NativeRenderOperationResult {\n return this.unpackRenderOperationResult(\n this.opentui.symbols.commitSplitFooterSnapshot(\n renderer,\n snapshot.ptr,\n rowColumns,\n ffiBool(startOnNewLine),\n ffiBool(trailingNewline),\n pinnedRenderOffset,\n ffiBool(force),\n ffiBool(beginFrame),\n ffiBool(finalizeFrame),\n ),\n )\n }\n\n public createOptimizedBuffer(\n width: number,\n height: number,\n widthMethod: WidthMethod,\n respectAlpha: boolean = false,\n id?: string,\n ): OptimizedBuffer {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n console.error(new Error(`Invalid dimensions for OptimizedBuffer: ${width}x${height}`).stack)\n }\n\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n const idToUse = id || \"unnamed buffer\"\n const idBytes = this.encoder.encode(idToUse)\n const bufferPtr = this.opentui.symbols.createOptimizedBuffer(\n width,\n height,\n ffiBool(respectAlpha),\n widthMethodCode,\n ptr(idBytes),\n idBytes.byteLength,\n )\n if (!bufferPtr) {\n throw new Error(`Failed to create optimized buffer: ${width}x${height}`)\n }\n\n return new OptimizedBuffer(this, bufferPtr, width, height, { respectAlpha, id, widthMethod })\n }\n\n public destroyOptimizedBuffer(bufferPtr: Pointer) {\n this.opentui.symbols.destroyOptimizedBuffer(bufferPtr)\n }\n\n public drawFrameBuffer(\n targetBufferPtr: Pointer,\n destX: number,\n destY: number,\n bufferPtr: Pointer,\n sourceX?: number,\n sourceY?: number,\n sourceWidth?: number,\n sourceHeight?: number,\n ) {\n const srcX = sourceX ?? 0\n const srcY = sourceY ?? 0\n const srcWidth = sourceWidth ?? 0\n const srcHeight = sourceHeight ?? 0\n this.opentui.symbols.drawFrameBuffer(targetBufferPtr, destX, destY, bufferPtr, srcX, srcY, srcWidth, srcHeight)\n }\n\n public setDebugOverlay(renderer: Pointer, enabled: boolean, corner: DebugOverlayCorner) {\n this.opentui.symbols.setDebugOverlay(renderer, ffiBool(enabled), corner)\n }\n\n public clearTerminal(renderer: Pointer) {\n this.opentui.symbols.clearTerminal(renderer)\n }\n\n public setTerminalTitle(renderer: Pointer, title: string) {\n const titleBytes = this.encoder.encode(title)\n this.opentui.symbols.setTerminalTitle(renderer, ptrOrNull(titleBytes), titleBytes.byteLength)\n }\n\n public copyToClipboardOSC52(renderer: Pointer, target: number, textUtf8: Uint8Array): boolean {\n if (textUtf8.byteLength > 0xffffffff) return false\n return Boolean(\n this.opentui.symbols.copyToClipboardOSC52(renderer, target, ptrOrNull(textUtf8), textUtf8.byteLength),\n )\n }\n\n public clearClipboardOSC52(renderer: Pointer, target: number): boolean {\n return Boolean(this.opentui.symbols.clearClipboardOSC52(renderer, target))\n }\n\n public clipboardServiceCreate(\n maxConcurrentOperations: number,\n maxProviderTransfers: number,\n waylandSeat?: string,\n ): ClipboardServiceHandle | null {\n const seat = waylandSeat === undefined ? null : this.encoder.encode(waylandSeat)\n const handle = this.opentui.symbols.clipboardServiceCreate(\n toSafeFFIU32Length(maxConcurrentOperations, \"clipboard operation limit\"),\n toSafeFFIU32Length(maxProviderTransfers, \"clipboard provider transfer limit\"),\n seat,\n seat?.byteLength ?? 0,\n )\n if (handle === 0) return null\n const service = handle as ClipboardServiceHandle\n this.clipboardServices.add(service)\n return service\n }\n\n public clipboardServiceBeginShutdown(service: ClipboardServiceHandle): NativeClipboardShutdownStatus {\n if (!this.clipboardServices.has(service)) return NativeClipboardShutdownStatus.InvalidHandle\n return this.opentui.symbols.clipboardServiceBeginShutdown(service)\n }\n\n public clipboardServicePollShutdown(service: ClipboardServiceHandle): NativeClipboardShutdownStatus {\n if (!this.clipboardServices.has(service)) return NativeClipboardShutdownStatus.InvalidHandle\n return this.opentui.symbols.clipboardServicePollShutdown(service)\n }\n\n public clipboardServiceDestroy(service: ClipboardServiceHandle): NativeClipboardDestroyStatus {\n if (!this.clipboardServices.has(service)) return NativeClipboardDestroyStatus.InvalidHandle\n const status = this.opentui.symbols.clipboardServiceDestroy(service)\n if (status === NativeClipboardDestroyStatus.Destroyed) this.clipboardServices.delete(service)\n return status\n }\n\n public clipboardServiceDrain(service: ClipboardServiceHandle): number {\n if (!this.clipboardServices.has(service)) return 2\n return this.opentui.symbols.clipboardServiceDrain(service)\n }\n\n private clipboardStartResult(\n status: NativeClipboardStartStatus,\n output: Uint32Array,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n return {\n status,\n operation: output[0] === 0 ? null : (output[0] as ClipboardOperationHandle),\n }\n }\n\n public clipboardReadOperationStart(\n service: ClipboardServiceHandle,\n request: Uint8Array,\n selection: number,\n maxBytes: number,\n maxImagePixels: number,\n maxConversionBytes: number,\n timeoutMs: number,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardReadOperationStart(\n service,\n request,\n toSafeFFIU32Length(request.byteLength, \"clipboard read request\"),\n selection,\n toSafeFFIU32Length(maxBytes, \"clipboard read byte limit\"),\n toSafeFFIU32Length(maxImagePixels, \"clipboard image pixel limit\"),\n toSafeFFIU32Length(maxConversionBytes, \"clipboard conversion byte limit\"),\n toSafeFFIU32Length(timeoutMs, \"clipboard read timeout\"),\n output,\n )\n return this.clipboardStartResult(status, output)\n }\n\n public clipboardWriteOperationStart(\n service: ClipboardServiceHandle,\n textUtf8: Uint8Array,\n selection: number,\n timeoutMs: number,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardWriteOperationStart(\n service,\n textUtf8,\n toSafeFFIU32Length(textUtf8.byteLength, \"clipboard write text\"),\n selection,\n toSafeFFIU32Length(timeoutMs, \"clipboard write timeout\"),\n output,\n )\n return this.clipboardStartResult(status, output)\n }\n\n public clipboardClearOperationStart(\n service: ClipboardServiceHandle,\n selection: number,\n timeoutMs: number,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardClearOperationStart(\n service,\n selection,\n toSafeFFIU32Length(timeoutMs, \"clipboard clear timeout\"),\n output,\n )\n return this.clipboardStartResult(status, output)\n }\n\n public clipboardOperationPoll(operation: ClipboardOperationHandle): NativeClipboardOperationStatus {\n return this.opentui.symbols.clipboardOperationPoll(operation)\n }\n\n public clipboardOperationCancel(operation: ClipboardOperationHandle): NativeClipboardCancelStatus {\n return this.opentui.symbols.clipboardOperationCancel(operation)\n }\n\n private clipboardResultLength(\n symbol: (operation: ClipboardOperationHandle, output: Uint32Array) => number,\n operation: ClipboardOperationHandle,\n ): { status: NativeClipboardCopyStatus; length: number } {\n const output = new Uint32Array(1)\n const status = symbol(operation, output)\n return { status, length: output[0] }\n }\n\n public clipboardOperationResultMimeLength(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n length: number\n } {\n return this.clipboardResultLength(this.opentui.symbols.clipboardOperationResultMimeLength, operation)\n }\n\n public clipboardOperationResultMimeCopy(\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ): NativeClipboardCopyStatus {\n return this.opentui.symbols.clipboardOperationResultMimeCopy(\n operation,\n output.byteLength === 0 ? null : output,\n toSafeFFIU32Length(output.byteLength, \"clipboard MIME output\"),\n )\n }\n\n public clipboardOperationResultDataLength(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n length: number\n } {\n return this.clipboardResultLength(this.opentui.symbols.clipboardOperationResultDataLength, operation)\n }\n\n public clipboardOperationResultDataCopy(\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ): NativeClipboardCopyStatus {\n return this.opentui.symbols.clipboardOperationResultDataCopy(\n operation,\n output.byteLength === 0 ? null : output,\n toSafeFFIU32Length(output.byteLength, \"clipboard data output\"),\n )\n }\n\n public clipboardOperationResultErrorCode(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n errorCode: number\n } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardOperationResultErrorCode(operation, output)\n return { status, errorCode: output[0] }\n }\n\n public clipboardOperationResultDiagnosticLength(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n length: number\n } {\n return this.clipboardResultLength(this.opentui.symbols.clipboardOperationResultDiagnosticLength, operation)\n }\n\n public clipboardOperationResultDiagnosticCopy(\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ): NativeClipboardCopyStatus {\n return this.opentui.symbols.clipboardOperationResultDiagnosticCopy(\n operation,\n output.byteLength === 0 ? null : output,\n toSafeFFIU32Length(output.byteLength, \"clipboard diagnostic output\"),\n )\n }\n\n public clipboardOperationDestroy(operation: ClipboardOperationHandle): NativeClipboardDestroyStatus {\n return this.opentui.symbols.clipboardOperationDestroy(operation)\n }\n\n public triggerNotification(renderer: Pointer, message: string, title?: string): boolean {\n const messageBytes = this.encoder.encode(message)\n const titleBytes = title === undefined ? null : this.encoder.encode(title)\n return Boolean(\n this.opentui.symbols.triggerNotification(\n renderer,\n messageBytes,\n messageBytes.length,\n titleBytes,\n titleBytes?.length ?? 0,\n ),\n )\n }\n\n public addToHitGrid(renderer: Pointer, x: number, y: number, width: number, height: number, id: number) {\n this.opentui.symbols.addToHitGrid(renderer, x, y, width, height, id)\n }\n\n public clearCurrentHitGrid(renderer: Pointer) {\n this.opentui.symbols.clearCurrentHitGrid(renderer)\n }\n\n public hitGridPushScissorRect(renderer: Pointer, x: number, y: number, width: number, height: number) {\n this.opentui.symbols.hitGridPushScissorRect(renderer, x, y, width, height)\n }\n\n public hitGridPopScissorRect(renderer: Pointer) {\n this.opentui.symbols.hitGridPopScissorRect(renderer)\n }\n\n public hitGridClearScissorRects(renderer: Pointer) {\n this.opentui.symbols.hitGridClearScissorRects(renderer)\n }\n\n public addToCurrentHitGridClipped(\n renderer: Pointer,\n x: number,\n y: number,\n width: number,\n height: number,\n id: number,\n ) {\n this.opentui.symbols.addToCurrentHitGridClipped(renderer, x, y, width, height, id)\n }\n\n public checkHit(renderer: Pointer, x: number, y: number): number {\n return this.opentui.symbols.checkHit(renderer, x, y)\n }\n\n public getHitGridDirty(renderer: Pointer): boolean {\n return this.opentui.symbols.getHitGridDirty(renderer)\n }\n\n public dumpHitGrid(renderer: Pointer): void {\n this.opentui.symbols.dumpHitGrid(renderer)\n }\n\n public dumpBuffers(renderer: Pointer, timestamp?: number): void {\n const ts = BigInt(timestamp ?? Date.now())\n this.opentui.symbols.dumpBuffers(renderer, ts)\n }\n\n public dumpOutputBuffer(renderer: Pointer, timestamp?: number): void {\n const ts = BigInt(timestamp ?? Date.now())\n this.opentui.symbols.dumpOutputBuffer(renderer, ts)\n }\n\n public restoreTerminalModes(renderer: Pointer): void {\n this.opentui.symbols.restoreTerminalModes(renderer)\n }\n\n public enableMouse(renderer: Pointer, enableMovement: boolean): void {\n this.opentui.symbols.enableMouse(renderer, ffiBool(enableMovement))\n }\n\n public disableMouse(renderer: Pointer): void {\n this.opentui.symbols.disableMouse(renderer)\n }\n\n public enableKittyKeyboard(renderer: Pointer, flags: number): void {\n this.opentui.symbols.enableKittyKeyboard(renderer, flags)\n }\n\n public disableKittyKeyboard(renderer: Pointer): void {\n this.opentui.symbols.disableKittyKeyboard(renderer)\n }\n\n public setKittyKeyboardFlags(renderer: Pointer, flags: number): void {\n this.opentui.symbols.setKittyKeyboardFlags(renderer, flags)\n }\n\n public getKittyKeyboardFlags(renderer: Pointer): number {\n return this.opentui.symbols.getKittyKeyboardFlags(renderer)\n }\n\n public setupTerminal(renderer: Pointer, useAlternateScreen: boolean): void {\n this.opentui.symbols.setupTerminal(renderer, ffiBool(useAlternateScreen))\n }\n\n public suspendRenderer(renderer: Pointer): void {\n this.opentui.symbols.suspendRenderer(renderer)\n }\n\n public resumeRenderer(renderer: Pointer): void {\n this.opentui.symbols.resumeRenderer(renderer)\n }\n\n public queryPixelResolution(renderer: Pointer): void {\n this.opentui.symbols.queryPixelResolution(renderer)\n }\n\n public queryThemeColors(renderer: Pointer): void {\n this.opentui.symbols.queryThemeColors(renderer)\n }\n\n /**\n * Write data to stdout, synchronizing with the render thread if necessary.\n * This should be used for ALL stdout writes to avoid race conditions when\n * the render thread is active.\n */\n public writeOut(renderer: Pointer, data: string | Uint8Array): void {\n const bytes = typeof data === \"string\" ? new TextEncoder().encode(data) : data\n if (bytes.length === 0) return\n this.opentui.symbols.writeOut(renderer, ptrOrNull(bytes), bytes.byteLength)\n }\n\n public yogaConfigCreate(): Pointer {\n const config = this.opentui.symbols.yogaConfigCreate()\n if (!config) throw new Error(\"Failed to create Yoga config\")\n return config\n }\n\n public yogaConfigFree(config: Pointer): void {\n this.opentui.symbols.yogaConfigFree(config)\n }\n\n public yogaConfigSetUseWebDefaults(config: Pointer, enabled: boolean): void {\n this.opentui.symbols.yogaConfigSetUseWebDefaults(config, ffiBool(enabled))\n }\n\n public yogaConfigGetUseWebDefaults(config: Pointer): boolean {\n return this.opentui.symbols.yogaConfigGetUseWebDefaults(config)\n }\n\n public yogaConfigSetPointScaleFactor(config: Pointer, pointScaleFactor: number): void {\n this.opentui.symbols.yogaConfigSetPointScaleFactor(config, pointScaleFactor)\n }\n\n public yogaConfigGetPointScaleFactor(config: Pointer): number {\n return this.opentui.symbols.yogaConfigGetPointScaleFactor(config)\n }\n\n public yogaConfigSetErrata(config: Pointer, errata: number): void {\n this.opentui.symbols.yogaConfigSetErrata(config, errata)\n }\n\n public yogaConfigGetErrata(config: Pointer): number {\n return this.opentui.symbols.yogaConfigGetErrata(config)\n }\n\n public yogaConfigSetExperimentalFeatureEnabled(config: Pointer, feature: number, enabled: boolean): void {\n this.opentui.symbols.yogaConfigSetExperimentalFeatureEnabled(config, feature, ffiBool(enabled))\n }\n\n public yogaConfigIsExperimentalFeatureEnabled(config: Pointer, feature: number): boolean {\n return this.opentui.symbols.yogaConfigIsExperimentalFeatureEnabled(config, feature)\n }\n\n public yogaNodeCreate(): Pointer {\n const node = this.opentui.symbols.yogaNodeCreate()\n if (!node) throw new Error(\"Failed to create Yoga node\")\n return node\n }\n\n public yogaNodeCreateForOpenTUI(): Pointer {\n const node = this.opentui.symbols.yogaNodeCreateForOpenTUI()\n if (!node) throw new Error(\"Failed to create OpenTUI Yoga node\")\n return node\n }\n\n public yogaNodeCreateWithConfig(config: Pointer): Pointer {\n const node = this.opentui.symbols.yogaNodeCreateWithConfig(config)\n if (!node) throw new Error(\"Failed to create Yoga node\")\n return node\n }\n\n public yogaNodeFree(node: Pointer): void {\n this.opentui.symbols.yogaNodeFree(node)\n }\n\n public yogaNodeFreeRecursive(node: Pointer): void {\n this.opentui.symbols.yogaNodeFreeRecursive(node)\n }\n\n public yogaNodeReset(node: Pointer): void {\n this.opentui.symbols.yogaNodeReset(node)\n }\n\n public yogaNodeCopyStyle(dstNode: Pointer, srcNode: Pointer): void {\n this.opentui.symbols.yogaNodeCopyStyle(dstNode, srcNode)\n }\n\n public yogaNodeInsertChild(node: Pointer, child: Pointer, index: number): void {\n this.opentui.symbols.yogaNodeInsertChild(node, child, index)\n }\n\n public yogaNodeRemoveChild(node: Pointer, child: Pointer): void {\n this.opentui.symbols.yogaNodeRemoveChild(node, child)\n }\n\n public yogaNodeRemoveAllChildren(node: Pointer): void {\n this.opentui.symbols.yogaNodeRemoveAllChildren(node)\n }\n\n public yogaNodeGetChild(node: Pointer, index: number): Pointer | null {\n return this.opentui.symbols.yogaNodeGetChild(node, index) || null\n }\n\n public yogaNodeGetChildCount(node: Pointer): number {\n return this.opentui.symbols.yogaNodeGetChildCount(node)\n }\n\n public yogaNodeGetParent(node: Pointer): Pointer | null {\n return this.opentui.symbols.yogaNodeGetParent(node) || null\n }\n\n public yogaNodeCalculateLayout(node: Pointer, width: number, height: number, direction: number): void {\n this.opentui.symbols.yogaNodeCalculateLayout(node, width, height, direction)\n }\n\n public yogaNodeIsDirty(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeIsDirty(node)\n }\n\n public yogaNodeMarkDirty(node: Pointer): void {\n this.opentui.symbols.yogaNodeMarkDirty(node)\n }\n\n public yogaNodeGetHasNewLayout(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeGetHasNewLayout(node)\n }\n\n public yogaNodeSetHasNewLayout(node: Pointer, hasNewLayout: boolean): void {\n this.opentui.symbols.yogaNodeSetHasNewLayout(node, ffiBool(hasNewLayout))\n }\n\n public yogaNodeSetIsReferenceBaseline(node: Pointer, isReferenceBaseline: boolean): void {\n this.opentui.symbols.yogaNodeSetIsReferenceBaseline(node, ffiBool(isReferenceBaseline))\n }\n\n public yogaNodeIsReferenceBaseline(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeIsReferenceBaseline(node)\n }\n\n public yogaNodeSetAlwaysFormsContainingBlock(node: Pointer, alwaysFormsContainingBlock: boolean): void {\n this.opentui.symbols.yogaNodeSetAlwaysFormsContainingBlock(node, ffiBool(alwaysFormsContainingBlock))\n }\n\n public yogaNodeGetAlwaysFormsContainingBlock(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeGetAlwaysFormsContainingBlock(node)\n }\n\n public yogaNodeGetComputedLayout(node: Pointer): NativeYogaLayout {\n const layout = this.yogaLayout\n this.opentui.symbols.yogaNodeGetComputedLayout(node, this.yogaLayoutPtr)\n return {\n left: layout[0]!,\n top: layout[1]!,\n right: layout[2]!,\n bottom: layout[3]!,\n width: layout[4]!,\n height: layout[5]!,\n }\n }\n\n public yogaNodeLayoutGetEdge(node: Pointer, kind: number, edge: number): number {\n return this.opentui.symbols.yogaNodeLayoutGetEdge(node, kind, edge)\n }\n\n public yogaNodeStyleSetEnum(node: Pointer, kind: number, value: number): void {\n this.opentui.symbols.yogaNodeStyleSetEnum(node, kind, value)\n }\n\n public yogaNodeStyleGetEnum(node: Pointer, kind: number): number {\n return this.opentui.symbols.yogaNodeStyleGetEnum(node, kind)\n }\n\n public yogaNodeStyleSetFloat(node: Pointer, kind: number, value: number): void {\n this.opentui.symbols.yogaNodeStyleSetFloat(node, kind, value)\n }\n\n public yogaNodeStyleGetFloat(node: Pointer, kind: number): number {\n return this.opentui.symbols.yogaNodeStyleGetFloat(node, kind)\n }\n\n public yogaNodeStyleSetBorder(node: Pointer, edge: number, border: number): void {\n this.opentui.symbols.yogaNodeStyleSetBorder(node, edge, border)\n }\n\n public yogaNodeStyleGetBorder(node: Pointer, edge: number): number {\n return this.opentui.symbols.yogaNodeStyleGetBorder(node, edge)\n }\n\n public yogaNodeStyleSetValue(node: Pointer, kind: number, edgeOrGutter: number, unit: number, value: number): void {\n this.opentui.symbols.yogaNodeStyleSetValue(node, kind, edgeOrGutter, unit, value)\n }\n\n public yogaNodeStyleGetValue(node: Pointer, kind: number, edgeOrGutter: number): number | bigint {\n return this.opentui.symbols.yogaNodeStyleGetValue(node, kind, edgeOrGutter)\n }\n\n public yogaNodeSetMeasureFunc(node: Pointer, enabled: boolean): void {\n this.opentui.symbols.yogaNodeSetMeasureFunc(node, ffiBool(enabled))\n }\n\n public yogaNodeUnsetMeasureFunc(node: Pointer): void {\n this.opentui.symbols.yogaNodeUnsetMeasureFunc(node)\n }\n\n public yogaNodeHasMeasureFunc(node: Pointer): boolean {\n // Node's FFI returns bools as 0/1 numbers; normalize so the interface stays truthful.\n return Boolean(this.opentui.symbols.yogaNodeHasMeasureFunc(node))\n }\n\n public yogaNodeSetDirtiedFunc(node: Pointer, enabled: boolean): void {\n this.opentui.symbols.yogaNodeSetDirtiedFunc(node, ffiBool(enabled))\n }\n\n public yogaNodeUnsetDirtiedFunc(node: Pointer): void {\n this.opentui.symbols.yogaNodeUnsetDirtiedFunc(node)\n }\n\n public yogaStoreMeasureResult(width: number, height: number): void {\n this.opentui.symbols.yogaStoreMeasureResult(width, height)\n }\n\n public yogaSetMeasureCallback(callback: Pointer | null): void {\n this.opentui.symbols.yogaSetMeasureCallback(callback)\n }\n\n public yogaSetDirtiedCallback(callback: Pointer | null): void {\n this.opentui.symbols.yogaSetDirtiedCallback(callback)\n }\n\n public createYogaMeasureCallback(callback: NativeYogaMeasureCallback): FFICallbackInstance {\n return this.opentui.createCallback(callback, {\n args: [\"ptr\", \"f32\", \"u32\", \"f32\", \"u32\"],\n returns: \"void\",\n })\n }\n\n public createYogaDirtiedCallback(callback: NativeYogaDirtiedCallback): FFICallbackInstance {\n return this.opentui.createCallback(callback, {\n args: [\"ptr\"],\n returns: \"void\",\n })\n }\n\n // TextBuffer methods\n public createTextBuffer(widthMethod: WidthMethod): TextBuffer {\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n const bufferPtr = this.opentui.symbols.createTextBuffer(widthMethodCode)\n if (!bufferPtr) {\n throw new Error(`Failed to create TextBuffer`)\n }\n\n return new TextBuffer(this, bufferPtr)\n }\n\n public destroyTextBuffer(buffer: Pointer): void {\n this.opentui.symbols.destroyTextBuffer(buffer)\n }\n\n public textBufferGetLength(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetLength(buffer)\n }\n\n public textBufferGetByteSize(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetByteSize(buffer)\n }\n\n public textBufferReset(buffer: Pointer): void {\n this.opentui.symbols.textBufferReset(buffer)\n }\n\n public textBufferClear(buffer: Pointer): void {\n this.opentui.symbols.textBufferClear(buffer)\n }\n\n public textBufferSetDefaultFg(buffer: Pointer, fg: RGBA | null): void {\n const fgPtr = optionalRgbaPtr(fg)\n this.opentui.symbols.textBufferSetDefaultFg(buffer, fgPtr)\n }\n\n public textBufferSetDefaultBg(buffer: Pointer, bg: RGBA | null): void {\n const bgPtr = optionalRgbaPtr(bg)\n this.opentui.symbols.textBufferSetDefaultBg(buffer, bgPtr)\n }\n\n public textBufferSetDefaultAttributes(buffer: Pointer, attributes: number | null): void {\n const attrValue = attributes === null ? null : new Uint32Array([attributes])\n this.opentui.symbols.textBufferSetDefaultAttributes(buffer, attrValue ? ptr(attrValue) : null)\n }\n\n public textBufferResetDefaults(buffer: Pointer): void {\n this.opentui.symbols.textBufferResetDefaults(buffer)\n }\n\n public textBufferGetTabWidth(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetTabWidth(buffer)\n }\n\n public textBufferSetTabWidth(buffer: Pointer, width: number): void {\n this.opentui.symbols.textBufferSetTabWidth(buffer, width)\n }\n\n public textBufferRegisterMemBuffer(buffer: Pointer, bytes: Uint8Array, owned: boolean = false): number {\n const result = this.opentui.symbols.textBufferRegisterMemBuffer(\n buffer,\n ptrOrNull(bytes),\n bytes.byteLength,\n ffiBool(owned),\n )\n if (result === 0xffff) {\n throw new Error(\"Failed to register memory buffer\")\n }\n return result\n }\n\n public textBufferReplaceMemBuffer(\n buffer: Pointer,\n memId: number,\n bytes: Uint8Array,\n owned: boolean = false,\n ): boolean {\n return this.opentui.symbols.textBufferReplaceMemBuffer(\n buffer,\n memId,\n ptrOrNull(bytes),\n bytes.byteLength,\n ffiBool(owned),\n )\n }\n\n public textBufferClearMemRegistry(buffer: Pointer): void {\n this.opentui.symbols.textBufferClearMemRegistry(buffer)\n }\n\n public textBufferSetTextFromMem(buffer: Pointer, memId: number): void {\n this.opentui.symbols.textBufferSetTextFromMem(buffer, memId)\n }\n\n public textBufferAppend(buffer: Pointer, bytes: Uint8Array): void {\n this.opentui.symbols.textBufferAppend(buffer, ptrOrNull(bytes), bytes.byteLength)\n }\n\n public textBufferAppendFromMemId(buffer: Pointer, memId: number): void {\n this.opentui.symbols.textBufferAppendFromMemId(buffer, memId)\n }\n\n public textBufferLoadFile(buffer: Pointer, path: string): boolean {\n const pathBytes = this.encoder.encode(path)\n return this.opentui.symbols.textBufferLoadFile(buffer, ptrOrNull(pathBytes), pathBytes.byteLength)\n }\n\n public textBufferSetStyledText(\n buffer: Pointer,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number; link?: { url: string } }>,\n ): void {\n if (chunks.length === 0) {\n this.textBufferClear(buffer)\n return\n }\n\n const chunksBuffer = StyledChunkStruct.packList(chunks)\n this.opentui.symbols.textBufferSetStyledText(buffer, chunksBuffer, chunks.length)\n }\n\n public textBufferGetLineCount(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetLineCount(buffer)\n }\n\n private textBufferGetPlainText(buffer: Pointer, outPtr: Pointer | null, maxLen: number): number {\n return this.opentui.symbols.textBufferGetPlainText(buffer, outPtr, maxLen)\n }\n\n public getPlainTextBytes(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.textBufferGetPlainText(buffer, ptrOrNull(outBuffer), maxLength)\n\n if (actualLen === 0) {\n return null\n }\n\n return outBuffer.slice(0, actualLen)\n }\n\n public textBufferGetTextRange(\n buffer: Pointer,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.opentui.symbols.textBufferGetTextRange(\n buffer,\n startOffset,\n endOffset,\n ptrOrNull(outBuffer),\n maxLength,\n )\n\n const len = actualLen\n\n if (len === 0) {\n return null\n }\n\n return outBuffer.slice(0, len)\n }\n\n public textBufferGetTextRangeByCoords(\n buffer: Pointer,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.opentui.symbols.textBufferGetTextRangeByCoords(\n buffer,\n startRow,\n startCol,\n endRow,\n endCol,\n ptrOrNull(outBuffer),\n maxLength,\n )\n\n const len = actualLen\n\n if (len === 0) {\n return null\n }\n\n return usesBunFFI ? outBuffer.slice(0, len) : trimNodeFFIOutputBytes(outBuffer, len)\n }\n\n // TextBufferView methods\n public createTextBufferView(textBuffer: TextBufferHandle): TextBufferViewHandle {\n const viewPtr = this.opentui.symbols.createTextBufferView(textBuffer) as TextBufferViewHandle\n if (!viewPtr) {\n throw new Error(\"Failed to create TextBufferView\")\n }\n return viewPtr\n }\n\n public destroyTextBufferView(view: Pointer): void {\n this.opentui.symbols.destroyTextBufferView(view)\n }\n\n public textBufferViewSetSelection(\n view: Pointer,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.textBufferViewSetSelection(view, start, end, bg, fg)\n }\n\n public textBufferViewResetSelection(view: Pointer): void {\n this.opentui.symbols.textBufferViewResetSelection(view)\n }\n\n public textBufferViewGetSelection(view: Pointer): { start: number; end: number } | null {\n const packedInfo = this.textBufferViewGetSelectionInfo(view)\n\n // Check for no selection marker (0xFFFFFFFF_FFFFFFFF)\n if (packedInfo === 0xffff_ffff_ffff_ffffn) {\n return null\n }\n\n const start = Number(packedInfo >> 32n)\n const end = Number(packedInfo & 0xffff_ffffn)\n\n return { start, end }\n }\n\n private textBufferViewGetSelectionInfo(view: Pointer): bigint {\n return this.opentui.symbols.textBufferViewGetSelectionInfo(view)\n }\n\n public textBufferViewSetLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(this.opentui.symbols.textBufferViewSetLocalSelection(view, anchorX, anchorY, focusX, focusY, bg, fg))\n }\n\n public textBufferViewUpdateSelection(view: Pointer, end: number, bgColor: RGBA | null, fgColor: RGBA | null): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.textBufferViewUpdateSelection(view, end, bg, fg)\n }\n\n public textBufferViewUpdateLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(\n this.opentui.symbols.textBufferViewUpdateLocalSelection(view, anchorX, anchorY, focusX, focusY, bg, fg),\n )\n }\n\n public textBufferViewResetLocalSelection(view: Pointer): void {\n this.opentui.symbols.textBufferViewResetLocalSelection(view)\n }\n\n public textBufferViewSetWrapWidth(view: Pointer, width: number): void {\n this.opentui.symbols.textBufferViewSetWrapWidth(view, width)\n }\n\n public textBufferViewSetWrapMode(view: Pointer, mode: \"none\" | \"char\" | \"word\"): void {\n const modeValue = mode === \"none\" ? 0 : mode === \"char\" ? 1 : 2\n this.opentui.symbols.textBufferViewSetWrapMode(view, modeValue)\n }\n\n public textBufferViewSetFirstLineOffset(view: Pointer, offset: number): void {\n this.opentui.symbols.textBufferViewSetFirstLineOffset(view, offset)\n }\n\n public textBufferViewSetViewportSize(view: Pointer, width: number, height: number): void {\n this.opentui.symbols.textBufferViewSetViewportSize(view, width, height)\n }\n\n public textBufferViewSetViewport(view: Pointer, x: number, y: number, width: number, height: number): void {\n this.opentui.symbols.textBufferViewSetViewport(view, x, y, width, height)\n }\n\n public textBufferViewGetLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.textBufferViewGetLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n public textBufferViewGetLogicalLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.textBufferViewGetLogicalLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n public textBufferViewGetVirtualLineCount(view: Pointer): number {\n return this.opentui.symbols.textBufferViewGetVirtualLineCount(view)\n }\n\n private textBufferViewGetLineInfoDirect(view: Pointer, outPtr: Pointer): void {\n this.opentui.symbols.textBufferViewGetLineInfoDirect(view, outPtr)\n }\n\n private textBufferViewGetLogicalLineInfoDirect(view: Pointer, outPtr: Pointer): void {\n this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(view, outPtr)\n }\n\n private textBufferViewGetSelectedText(view: Pointer, outPtr: Pointer | null, maxLen: number): number {\n return this.opentui.symbols.textBufferViewGetSelectedText(view, outPtr, maxLen)\n }\n\n private textBufferViewGetPlainText(view: Pointer, outPtr: Pointer | null, maxLen: number): number {\n return this.opentui.symbols.textBufferViewGetPlainText(view, outPtr, maxLen)\n }\n\n public textBufferViewGetSelectedTextBytes(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.textBufferViewGetSelectedText(view, ptrOrNull(outBuffer), maxLength)\n\n if (actualLen === 0) {\n return null\n }\n\n return outBuffer.slice(0, actualLen)\n }\n\n public textBufferViewGetPlainTextBytes(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.textBufferViewGetPlainText(view, ptrOrNull(outBuffer), maxLength)\n\n if (actualLen === 0) {\n return null\n }\n\n return outBuffer.slice(0, actualLen)\n }\n\n public textBufferViewSetTabIndicator(view: Pointer, indicator: number): void {\n this.opentui.symbols.textBufferViewSetTabIndicator(view, indicator)\n }\n\n public textBufferViewSetTabIndicatorColor(view: Pointer, color: RGBA): void {\n this.opentui.symbols.textBufferViewSetTabIndicatorColor(view, rgbaPtr(color))\n }\n\n public textBufferViewSetTruncate(view: Pointer, truncate: boolean): void {\n this.opentui.symbols.textBufferViewSetTruncate(view, ffiBool(truncate))\n }\n\n public textBufferViewMeasureForDimensions(view: Pointer, width: number, height: number): MeasureResult | null {\n const storage = this.ffiStructStorage.measureResult\n const success = this.opentui.symbols.textBufferViewMeasureForDimensions(view, width, height, storage.buffer)\n if (!success) return null\n const result = MeasureResultStruct.unpackInto(storage.view, storage.result)\n return { lineCount: result.lineCount, widthColsMax: result.widthColsMax }\n }\n\n public textBufferAddHighlightByCharRange(buffer: Pointer, highlight: Highlight): void {\n const packedHighlight = HighlightStruct.pack(highlight)\n this.opentui.symbols.textBufferAddHighlightByCharRange(buffer, ptr(packedHighlight))\n }\n\n public textBufferAddHighlight(buffer: Pointer, lineIdx: number, highlight: Highlight): void {\n const packedHighlight = HighlightStruct.pack(highlight)\n this.opentui.symbols.textBufferAddHighlight(buffer, lineIdx, ptr(packedHighlight))\n }\n\n public textBufferRemoveHighlightsByRef(buffer: Pointer, hlRef: number): void {\n this.opentui.symbols.textBufferRemoveHighlightsByRef(buffer, hlRef)\n }\n\n public textBufferClearLineHighlights(buffer: Pointer, lineIdx: number): void {\n this.opentui.symbols.textBufferClearLineHighlights(buffer, lineIdx)\n }\n\n public textBufferClearAllHighlights(buffer: Pointer): void {\n this.opentui.symbols.textBufferClearAllHighlights(buffer)\n }\n\n public textBufferSetSyntaxStyle(buffer: Pointer, style: Pointer | null): boolean {\n return this.opentui.symbols.textBufferSetSyntaxStyle(buffer, style ?? 0)\n }\n\n public textBufferGetLineHighlights(buffer: Pointer, lineIdx: number): Array<Highlight> {\n const outCountBuf = new Uint32Array(1)\n\n const nativePtr = this.opentui.symbols.textBufferGetLineHighlightsPtr(buffer, lineIdx, ptr(outCountBuf))\n if (!nativePtr) return []\n\n const count = outCountBuf[0]\n const byteLen = count * HighlightStruct.size\n const raw = toArrayBuffer(nativePtr, 0, byteLen)\n const results = HighlightStruct.unpackList(raw, count)\n\n this.opentui.symbols.textBufferFreeLineHighlights(nativePtr, count)\n\n return results\n }\n\n public textBufferGetHighlightCount(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetHighlightCount(buffer)\n }\n\n public getArenaAllocatedBytes(): number {\n const result = this.opentui.symbols.getArenaAllocatedBytes()\n return toSafeByteCount(result, \"Arena allocated bytes\")\n }\n\n public getBuildOptions(): BuildOptions {\n const optionsBuffer = new ArrayBuffer(BuildOptionsStruct.size)\n this.opentui.symbols.getBuildOptions(ptr(optionsBuffer))\n const options = BuildOptionsStruct.unpack(optionsBuffer)\n\n return {\n gpaSafeStats: !!options.gpaSafeStats,\n gpaMemoryLimitTracking: !!options.gpaMemoryLimitTracking,\n }\n }\n\n public getAllocatorStats(): AllocatorStats {\n const statsBuffer = new ArrayBuffer(AllocatorStatsStruct.size)\n this.opentui.symbols.getAllocatorStats(ptr(statsBuffer))\n const stats = AllocatorStatsStruct.unpack(statsBuffer)\n\n return {\n totalRequestedBytes: toNumber(stats.totalRequestedBytes),\n activeAllocations: toNumber(stats.activeAllocations),\n smallAllocations: toNumber(stats.smallAllocations),\n largeAllocations: toNumber(stats.largeAllocations),\n requestedBytesValid: !!stats.requestedBytesValid,\n }\n }\n\n public bufferDrawTextBufferView(buffer: Pointer, view: Pointer, x: number, y: number): void {\n this.opentui.symbols.bufferDrawTextBufferView(buffer, view, x, y)\n }\n\n public bufferDrawEditorView(buffer: Pointer, view: Pointer, x: number, y: number): void {\n this.opentui.symbols.bufferDrawEditorView(buffer, view, x, y)\n }\n\n // EditorView methods\n public createEditorView(\n editBufferPtr: EditBufferHandle,\n viewportWidth: number,\n viewportHeight: number,\n ): EditorViewHandle {\n const viewPtr = this.opentui.symbols.createEditorView(\n editBufferPtr,\n viewportWidth,\n viewportHeight,\n ) as EditorViewHandle\n if (!viewPtr) {\n throw new Error(\"Failed to create EditorView\")\n }\n return viewPtr\n }\n\n public destroyEditorView(view: Pointer): void {\n this.opentui.symbols.destroyEditorView(view)\n }\n\n public editorViewSetViewportSize(view: Pointer, width: number, height: number): void {\n this.opentui.symbols.editorViewSetViewportSize(view, width, height)\n }\n\n public editorViewSetViewport(\n view: Pointer,\n x: number,\n y: number,\n width: number,\n height: number,\n moveCursor: boolean,\n ): void {\n this.opentui.symbols.editorViewSetViewport(view, x, y, width, height, ffiBool(moveCursor))\n }\n\n public editorViewGetViewport(view: Pointer): { offsetY: number; offsetX: number; height: number; width: number } {\n const x = new Uint32Array(1)\n const y = new Uint32Array(1)\n const width = new Uint32Array(1)\n const height = new Uint32Array(1)\n\n this.opentui.symbols.editorViewGetViewport(view, ptr(x), ptr(y), ptr(width), ptr(height))\n\n return {\n offsetX: x[0],\n offsetY: y[0],\n width: width[0],\n height: height[0],\n }\n }\n\n public editorViewSetScrollMargin(view: Pointer, margin: number): void {\n this.opentui.symbols.editorViewSetScrollMargin(view, margin)\n }\n\n public editorViewSetWrapMode(view: Pointer, mode: \"none\" | \"char\" | \"word\"): void {\n const modeValue = mode === \"none\" ? 0 : mode === \"char\" ? 1 : 2\n this.opentui.symbols.editorViewSetWrapMode(view, modeValue)\n }\n\n public editorViewGetVirtualLineCount(view: Pointer): number {\n return this.opentui.symbols.editorViewGetVirtualLineCount(view)\n }\n\n public editorViewGetTotalVirtualLineCount(view: Pointer): number {\n return this.opentui.symbols.editorViewGetTotalVirtualLineCount(view)\n }\n\n public editorViewGetTextBufferView(view: EditorViewHandle): TextBufferViewHandle {\n const result = this.opentui.symbols.editorViewGetTextBufferView(view) as TextBufferViewHandle\n if (!result) {\n throw new Error(\"Failed to get TextBufferView from EditorView\")\n }\n return result\n }\n\n public editorViewGetLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.opentui.symbols.editorViewGetLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n public editorViewGetLogicalLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.opentui.symbols.editorViewGetLogicalLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n // EditBuffer implementations\n public createEditBuffer(widthMethod: WidthMethod): EditBufferHandle {\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n const bufferPtr = this.opentui.symbols.createEditBuffer(widthMethodCode, this.eventSinkPtr ?? 0) as EditBufferHandle\n if (!bufferPtr) {\n throw new Error(\"Failed to create EditBuffer\")\n }\n return bufferPtr\n }\n\n public destroyEditBuffer(buffer: Pointer): void {\n this.opentui.symbols.destroyEditBuffer(buffer)\n }\n\n public editBufferSetText(buffer: Pointer, textBytes: Uint8Array): void {\n this.opentui.symbols.editBufferSetText(buffer, ptrOrNull(textBytes), textBytes.byteLength)\n }\n\n public editBufferSetTextFromMem(buffer: Pointer, memId: number): void {\n this.opentui.symbols.editBufferSetTextFromMem(buffer, memId)\n }\n\n public editBufferReplaceText(buffer: Pointer, textBytes: Uint8Array): void {\n this.opentui.symbols.editBufferReplaceText(buffer, ptrOrNull(textBytes), textBytes.byteLength)\n }\n\n public editBufferReplaceTextFromMem(buffer: Pointer, memId: number): void {\n this.opentui.symbols.editBufferReplaceTextFromMem(buffer, memId)\n }\n\n public editBufferGetText(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferGetText(buffer, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferInsertChar(buffer: Pointer, char: string): void {\n const charBytes = this.encoder.encode(char)\n this.opentui.symbols.editBufferInsertChar(buffer, ptrOrNull(charBytes), charBytes.byteLength)\n }\n\n public editBufferInsertText(buffer: Pointer, text: string): void {\n const textBytes = this.encoder.encode(text)\n this.opentui.symbols.editBufferInsertText(buffer, ptrOrNull(textBytes), textBytes.byteLength)\n }\n\n public editBufferDeleteChar(buffer: Pointer): void {\n this.opentui.symbols.editBufferDeleteChar(buffer)\n }\n\n public editBufferDeleteCharBackward(buffer: Pointer): void {\n this.opentui.symbols.editBufferDeleteCharBackward(buffer)\n }\n\n public editBufferDeleteRange(\n buffer: Pointer,\n startLine: number,\n startCol: number,\n endLine: number,\n endCol: number,\n ): void {\n this.opentui.symbols.editBufferDeleteRange(buffer, startLine, startCol, endLine, endCol)\n }\n\n public editBufferNewLine(buffer: Pointer): void {\n this.opentui.symbols.editBufferNewLine(buffer)\n }\n\n public editBufferDeleteLine(buffer: Pointer): void {\n this.opentui.symbols.editBufferDeleteLine(buffer)\n }\n\n public editBufferMoveCursorLeft(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorLeft(buffer)\n }\n\n public editBufferMoveCursorRight(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorRight(buffer)\n }\n\n public editBufferMoveCursorUp(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorUp(buffer)\n }\n\n public editBufferMoveCursorDown(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorDown(buffer)\n }\n\n public editBufferGotoLine(buffer: Pointer, line: number): void {\n this.opentui.symbols.editBufferGotoLine(buffer, line)\n }\n\n public editBufferSetCursor(buffer: Pointer, line: number, byteOffset: number): void {\n this.opentui.symbols.editBufferSetCursor(buffer, line, byteOffset)\n }\n\n public editBufferSetCursorToLineCol(buffer: Pointer, line: number, col: number): void {\n this.opentui.symbols.editBufferSetCursorToLineCol(buffer, line, col)\n }\n\n public editBufferSetCursorByOffset(buffer: Pointer, offset: number): void {\n this.opentui.symbols.editBufferSetCursorByOffset(buffer, offset)\n }\n\n public editBufferGetCursorPosition(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetCursorPosition(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferGetId(buffer: Pointer): number {\n return this.opentui.symbols.editBufferGetId(buffer)\n }\n\n public editBufferGetTextBuffer(buffer: EditBufferHandle): TextBufferHandle {\n const result = this.opentui.symbols.editBufferGetTextBuffer(buffer) as TextBufferHandle\n if (!result) {\n throw new Error(\"Failed to get TextBuffer from EditBuffer\")\n }\n return result\n }\n\n public editBufferDebugLogRope(buffer: Pointer): void {\n this.opentui.symbols.editBufferDebugLogRope(buffer)\n }\n\n public editBufferUndo(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferUndo(buffer, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferRedo(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferRedo(buffer, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferCanUndo(buffer: Pointer): boolean {\n return Boolean(this.opentui.symbols.editBufferCanUndo(buffer))\n }\n\n public editBufferCanRedo(buffer: Pointer): boolean {\n return Boolean(this.opentui.symbols.editBufferCanRedo(buffer))\n }\n\n public editBufferClearHistory(buffer: Pointer): void {\n this.opentui.symbols.editBufferClearHistory(buffer)\n }\n\n public editBufferClear(buffer: Pointer): void {\n this.opentui.symbols.editBufferClear(buffer)\n }\n\n public editBufferGetNextWordBoundary(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetNextWordBoundary(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferGetPrevWordBoundary(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetPrevWordBoundary(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferGetEOL(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetEOL(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferOffsetToPosition(buffer: Pointer, offset: number): LogicalCursor | null {\n const storage = this.ffiStructStorage.logicalCursor\n const success = this.opentui.symbols.editBufferOffsetToPosition(buffer, offset, storage.buffer)\n if (!success) return null\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferPositionToOffset(buffer: Pointer, row: number, col: number): number {\n return this.opentui.symbols.editBufferPositionToOffset(buffer, row, col)\n }\n\n public editBufferGetLineStartOffset(buffer: Pointer, row: number): number {\n return this.opentui.symbols.editBufferGetLineStartOffset(buffer, row)\n }\n\n public editBufferGetTextRange(\n buffer: Pointer,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferGetTextRange(\n buffer,\n startOffset,\n endOffset,\n ptrOrNull(outBuffer),\n maxLength,\n )\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferGetTextRangeByCoords(\n buffer: Pointer,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferGetTextRangeByCoords(\n buffer,\n startRow,\n startCol,\n endRow,\n endCol,\n ptrOrNull(outBuffer),\n maxLength,\n )\n const len = actualLen\n if (len === 0) return null\n return usesBunFFI ? outBuffer.slice(0, len) : trimNodeFFIOutputBytes(outBuffer, len)\n }\n\n // EditorView selection and editing implementations\n public editorViewSetSelection(\n view: Pointer,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.editorViewSetSelection(view, start, end, bg, fg)\n }\n\n public editorViewResetSelection(view: Pointer): void {\n this.opentui.symbols.editorViewResetSelection(view)\n }\n\n public editorViewGetSelection(view: Pointer): { start: number; end: number } | null {\n const packedInfo = this.opentui.symbols.editorViewGetSelection(view)\n if (packedInfo === 0xffff_ffff_ffff_ffffn) {\n return null\n }\n const start = Number(packedInfo >> 32n)\n const end = Number(packedInfo & 0xffff_ffffn)\n return { start, end }\n }\n\n public editorViewSetLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(\n this.opentui.symbols.editorViewSetLocalSelection(\n view,\n anchorX,\n anchorY,\n focusX,\n focusY,\n bg,\n fg,\n ffiBool(updateCursor),\n ffiBool(followCursor),\n ),\n )\n }\n\n public editorViewUpdateSelection(view: Pointer, end: number, bgColor: RGBA | null, fgColor: RGBA | null): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.editorViewUpdateSelection(view, end, bg, fg)\n }\n\n public editorViewUpdateLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(\n this.opentui.symbols.editorViewUpdateLocalSelection(\n view,\n anchorX,\n anchorY,\n focusX,\n focusY,\n bg,\n fg,\n ffiBool(updateCursor),\n ffiBool(followCursor),\n ),\n )\n }\n\n public editorViewResetLocalSelection(view: Pointer): void {\n this.opentui.symbols.editorViewResetLocalSelection(view)\n }\n\n public editorViewGetSelectedTextBytes(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editorViewGetSelectedTextBytes(view, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editorViewGetCursor(view: Pointer): { row: number; col: number } {\n const row = new Uint32Array(1)\n const col = new Uint32Array(1)\n this.opentui.symbols.editorViewGetCursor(view, ptr(row), ptr(col))\n return { row: row[0], col: col[0] }\n }\n\n public editorViewGetText(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editorViewGetText(view, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editorViewGetVisualCursor(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetVisualCursor(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewMoveUpVisual(view: Pointer): void {\n this.opentui.symbols.editorViewMoveUpVisual(view)\n }\n\n public editorViewMoveDownVisual(view: Pointer): void {\n this.opentui.symbols.editorViewMoveDownVisual(view)\n }\n\n public editorViewDeleteSelectedText(view: Pointer): void {\n this.opentui.symbols.editorViewDeleteSelectedText(view)\n }\n\n public editorViewSetCursorByOffset(view: Pointer, offset: number): void {\n this.opentui.symbols.editorViewSetCursorByOffset(view, offset)\n }\n\n public editorViewGetNextWordBoundary(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetNextWordBoundary(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetPrevWordBoundary(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetPrevWordBoundary(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetEOL(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetEOL(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetVisualSOL(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetVisualSOL(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetVisualEOL(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetVisualEOL(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public bufferPushScissorRect(buffer: Pointer, x: number, y: number, width: number, height: number): void {\n this.opentui.symbols.bufferPushScissorRect(buffer, x, y, width, height)\n }\n\n public bufferPopScissorRect(buffer: Pointer): void {\n this.opentui.symbols.bufferPopScissorRect(buffer)\n }\n\n public bufferClearScissorRects(buffer: Pointer): void {\n this.opentui.symbols.bufferClearScissorRects(buffer)\n }\n\n public bufferPushOpacity(buffer: Pointer, opacity: number): void {\n this.opentui.symbols.bufferPushOpacity(buffer, opacity)\n }\n\n public bufferPopOpacity(buffer: Pointer): void {\n this.opentui.symbols.bufferPopOpacity(buffer)\n }\n\n public bufferGetCurrentOpacity(buffer: Pointer): number {\n return this.opentui.symbols.bufferGetCurrentOpacity(buffer)\n }\n\n public bufferClearOpacity(buffer: Pointer): void {\n this.opentui.symbols.bufferClearOpacity(buffer)\n }\n\n public getTerminalCapabilities(renderer: Pointer): TerminalCapabilities {\n const capsBuffer = new ArrayBuffer(TerminalCapabilitiesStruct.size)\n this.opentui.symbols.getTerminalCapabilities(renderer, ptr(capsBuffer))\n\n const caps = TerminalCapabilitiesStruct.unpack(capsBuffer)\n\n return {\n kitty_keyboard: caps.kitty_keyboard,\n kitty_graphics: caps.kitty_graphics,\n rgb: caps.rgb,\n ansi256: caps.ansi256,\n unicode: caps.unicode,\n sgr_pixels: caps.sgr_pixels,\n color_scheme_updates: caps.color_scheme_updates,\n explicit_width: caps.explicit_width,\n scaled_text: caps.scaled_text,\n sixel: caps.sixel,\n focus_tracking: caps.focus_tracking,\n sync: caps.sync,\n bracketed_paste: caps.bracketed_paste,\n hyperlinks: caps.hyperlinks,\n osc52: caps.osc52,\n osc52_support: caps.osc52_support,\n notifications: caps.notifications,\n explicit_cursor_positioning: caps.explicit_cursor_positioning,\n remote: caps.remote,\n multiplexer: caps.multiplexer,\n image_protocol: caps.image_protocol,\n terminal: {\n name: caps.term_name ?? \"\",\n version: caps.term_version ?? \"\",\n from_xtversion: caps.term_from_xtversion,\n },\n }\n }\n\n public processCapabilityResponse(renderer: Pointer, response: string): void {\n const responseBytes = this.encoder.encode(response)\n this.opentui.symbols.processCapabilityResponse(renderer, ptrOrNull(responseBytes), responseBytes.byteLength)\n }\n\n public encodeUnicode(\n text: string,\n widthMethod: WidthMethod,\n ): { ptr: Pointer; data: Array<{ width: number; char: number }> } | null {\n const textBytes = this.encoder.encode(text)\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n\n const outPtrBuffer = new ArrayBuffer(8) // Pointer-sized out slot\n const outLenBuffer = new ArrayBuffer(8) // Native length out slot\n\n const success = this.opentui.symbols.encodeUnicode(\n ptrOrNull(textBytes),\n textBytes.byteLength,\n ptr(outPtrBuffer),\n ptr(outLenBuffer),\n widthMethodCode,\n )\n\n if (!success) {\n return null\n }\n\n const outPtrView = new BigUint64Array(outPtrBuffer)\n const outLenView = new BigUint64Array(outLenBuffer)\n\n const resultLen = Number(outLenView[0])\n\n if (resultLen === 0) {\n return { ptr: 0 as Pointer, data: [] }\n }\n\n const resultPtr = toPointer(outPtrView[0])\n\n // Convert pointer to ArrayBuffer and use EncodedCharStruct to unpack the list\n const byteLen = resultLen * EncodedCharStruct.size\n const raw = toArrayBuffer(resultPtr, 0, byteLen)\n const data = EncodedCharStruct.unpackList(raw, resultLen)\n\n return { ptr: resultPtr, data }\n }\n\n public freeUnicode(encoded: { ptr: Pointer; data: Array<{ width: number; char: number }> }): void {\n this.opentui.symbols.freeUnicode(encoded.ptr, encoded.data.length)\n }\n\n public bufferDrawChar(\n buffer: Pointer,\n char: number,\n x: number,\n y: number,\n fg: RGBA,\n bg: RGBA,\n attributes: number = 0,\n ): void {\n this.opentui.symbols.bufferDrawChar(buffer, char, x, y, rgbaPtr(fg), rgbaPtr(bg), attributes)\n }\n\n public createAudioEngine(options?: AudioCreateOptions | null): AudioEngineHandle | null {\n const optionsBuffer = options == null ? null : AudioCreateOptionsStruct.pack(options)\n const engineHandle = this.opentui.symbols.createAudioEngine(\n optionsBuffer ? ptr(optionsBuffer) : null,\n ) as AudioEngineHandle\n return engineHandle ? engineHandle : null\n }\n\n public destroyAudioEngine(engine: AudioEngineHandle): void {\n this.opentui.symbols.destroyAudioEngine(engine)\n }\n\n public audioRefreshPlaybackDevices(engine: Pointer): number {\n return this.opentui.symbols.audioRefreshPlaybackDevices(engine)\n }\n\n public audioGetPlaybackDeviceCount(engine: Pointer): number {\n return this.opentui.symbols.audioGetPlaybackDeviceCount(engine)\n }\n\n public audioGetPlaybackDeviceName(engine: Pointer, index: number): string {\n const outBuffer = new Uint8Array(512)\n const bytesWritten = toNumber(\n this.opentui.symbols.audioGetPlaybackDeviceName(engine, index, ptr(outBuffer), outBuffer.length),\n )\n const safeBytesWritten = Math.max(0, Math.min(outBuffer.length, bytesWritten))\n return this.decoder.decode(outBuffer.subarray(0, safeBytesWritten))\n }\n\n public audioIsPlaybackDeviceDefault(engine: Pointer, index: number): boolean {\n return this.opentui.symbols.audioIsPlaybackDeviceDefault(engine, index)\n }\n\n public audioSelectPlaybackDevice(engine: Pointer, index: number): number {\n return this.opentui.symbols.audioSelectPlaybackDevice(engine, index)\n }\n\n public audioClearPlaybackDeviceSelection(engine: Pointer): void {\n this.opentui.symbols.audioClearPlaybackDeviceSelection(engine)\n }\n\n public audioRefreshCaptureDevices(engine: AudioEngineHandle): number {\n return this.opentui.symbols.audioRefreshCaptureDevices(engine)\n }\n\n public audioGetCaptureDeviceCount(engine: AudioEngineHandle): number {\n return this.opentui.symbols.audioGetCaptureDeviceCount(engine)\n }\n\n public audioGetCaptureDeviceName(engine: AudioEngineHandle, index: number): string {\n const outBuffer = new Uint8Array(512)\n const bytesWritten = toNumber(\n this.opentui.symbols.audioGetCaptureDeviceName(engine, index, outBuffer, outBuffer.length),\n )\n const safeBytesWritten = Math.max(0, Math.min(outBuffer.length, bytesWritten))\n return this.decoder.decode(outBuffer.subarray(0, safeBytesWritten))\n }\n\n public audioIsCaptureDeviceDefault(engine: AudioEngineHandle, index: number): boolean {\n return Boolean(this.opentui.symbols.audioIsCaptureDeviceDefault(engine, index))\n }\n\n public audioSelectCaptureDevice(engine: AudioEngineHandle, index: number): number {\n return this.opentui.symbols.audioSelectCaptureDevice(engine, index)\n }\n\n public audioClearCaptureDeviceSelection(engine: AudioEngineHandle): void {\n this.opentui.symbols.audioClearCaptureDeviceSelection(engine)\n }\n\n public audioStartCapture(\n engine: AudioEngineHandle,\n options: AudioStartOptions | undefined,\n channels: number,\n capacityFrames: number,\n ): number {\n let optionsBuffer: ArrayBuffer\n try {\n const noFixedSizedCallback = options?.noFixedSizedCallback\n optionsBuffer = AudioStartOptionsStruct.pack(options ?? {})\n if (noFixedSizedCallback === undefined) {\n const field = AudioStartOptionsStruct.layoutByName.get(\"noFixedSizedCallback\")\n if (!field) return -1\n new DataView(optionsBuffer).setUint8(field.offset, 1)\n }\n } catch {\n return -1\n }\n return this.opentui.symbols.audioStartCapture(engine, optionsBuffer, channels, capacityFrames)\n }\n\n public audioStopCapture(engine: AudioEngineHandle): number {\n return this.opentui.symbols.audioStopCapture(engine)\n }\n\n public audioIsCaptureRunning(engine: AudioEngineHandle): boolean {\n return Boolean(this.opentui.symbols.audioIsCaptureRunning(engine))\n }\n\n public audioReadCapture(\n engine: AudioEngineHandle,\n outBuffer: Float32Array,\n frameCount: number,\n ): { status: number; framesRead: number } {\n const outFramesReadBuffer = new ArrayBuffer(4)\n const sampleCapacity = toSafeFFIU32Length(outBuffer.length, \"Audio capture output sample capacity\")\n const status = this.opentui.symbols.audioReadCapture(\n engine,\n outBuffer,\n sampleCapacity,\n frameCount,\n outFramesReadBuffer,\n )\n if (status !== 0) return { status, framesRead: 0 }\n return { status, framesRead: new Uint32Array(outFramesReadBuffer)[0] ?? 0 }\n }\n\n public audioGetCaptureStats(engine: AudioEngineHandle): { status: number; stats: NativeAudioCaptureStats | null } {\n const statsBuffer = new ArrayBuffer(AudioCaptureStatsStruct.size)\n const status = this.opentui.symbols.audioGetCaptureStats(engine, statsBuffer)\n if (status !== 0) return { status, stats: null }\n const stats = AudioCaptureStatsStruct.unpack(statsBuffer)\n return {\n status,\n stats: {\n framesReceived: typeof stats.framesReceived === \"bigint\" ? stats.framesReceived : BigInt(stats.framesReceived),\n framesRead: typeof stats.framesRead === \"bigint\" ? stats.framesRead : BigInt(stats.framesRead),\n framesDropped: typeof stats.framesDropped === \"bigint\" ? stats.framesDropped : BigInt(stats.framesDropped),\n sampleRate: stats.sampleRate,\n channels: stats.channels,\n bufferedFrames: stats.bufferedFrames,\n capacityFrames: stats.capacityFrames,\n },\n }\n }\n\n public audioStart(engine: Pointer, options?: AudioStartOptions | null): number {\n let optionsBuffer: ArrayBuffer | null\n try {\n optionsBuffer = options == null ? null : AudioStartOptionsStruct.pack(options)\n } catch {\n return -1\n }\n return this.opentui.symbols.audioStart(engine, optionsBuffer ? ptr(optionsBuffer) : null)\n }\n\n public audioStartMixer(engine: Pointer): number {\n return this.opentui.symbols.audioStartMixer(engine)\n }\n\n public audioStop(engine: Pointer): number {\n return this.opentui.symbols.audioStop(engine)\n }\n\n public audioCreateStream(\n engine: AudioEngineHandle,\n options: AudioStreamCreateOptions,\n ): { status: number; streamId: number | null } {\n if (\n !isFFIU32(options.groupId) ||\n (options.format !== NativeAudioStreamFormat.Mp3 && options.format !== NativeAudioStreamFormat.Flac)\n ) {\n return { status: -1, streamId: null }\n }\n const optionsBuffer = AudioStreamCreateOptionsStruct.pack(options)\n const outBuffer = new ArrayBuffer(4)\n const status = this.opentui.symbols.audioCreateStream(engine, optionsBuffer, outBuffer)\n if (status !== 0) return { status, streamId: null }\n return { status, streamId: new Uint32Array(outBuffer)[0] ?? null }\n }\n\n public audioWriteStream(engine: AudioEngineHandle, streamId: number, data: Uint8Array): number {\n const dataLength = toSafeFFIU32Length(data.byteLength, \"Audio stream data length\")\n return this.opentui.symbols.audioWriteStream(engine, streamId, dataLength === 0 ? null : data, dataLength)\n }\n\n public audioEndStream(engine: AudioEngineHandle, streamId: number): number {\n return this.opentui.symbols.audioEndStream(engine, streamId)\n }\n\n public audioRestartStream(engine: AudioEngineHandle, streamId: number): number {\n return this.opentui.symbols.audioRestartStream(engine, streamId)\n }\n\n public audioSetStreamVolume(engine: AudioEngineHandle, streamId: number, volume: number): number {\n return this.opentui.symbols.audioSetStreamVolume(engine, streamId, volume)\n }\n\n public audioSetStreamPan(engine: AudioEngineHandle, streamId: number, pan: number): number {\n return this.opentui.symbols.audioSetStreamPan(engine, streamId, pan)\n }\n\n public audioSetStreamGroup(engine: AudioEngineHandle, streamId: number, groupId: number): number {\n if (!isFFIU32(groupId)) return -1\n return this.opentui.symbols.audioSetStreamGroup(engine, streamId, groupId)\n }\n\n public audioGetStreamStats(engine: AudioEngineHandle, streamId: number): NativeAudioStreamStats | null {\n const storage = this.ffiStructStorage.audioStreamStats\n const status = this.opentui.symbols.audioGetStreamStats(engine, streamId, storage.buffer)\n if (status !== 0) return null\n const stats = AudioStreamStatsStruct.unpackInto(storage.view, storage.result) as NativeAudioStreamStats\n return { ...stats }\n }\n\n public audioCloseStream(\n engine: AudioEngineHandle,\n streamId: number,\n reason: NativeAudioStreamCloseReason,\n ): { status: number; stats: NativeAudioStreamStats | null } {\n const storage = this.ffiStructStorage.audioStreamStats\n const status = this.opentui.symbols.audioCloseStream(engine, streamId, reason, storage.buffer)\n if (status !== 0) return { status, stats: null }\n const stats = AudioStreamStatsStruct.unpackInto(storage.view, storage.result) as NativeAudioStreamStats\n return { status, stats: { ...stats } }\n }\n\n public audioLoad(engine: Pointer, data: Uint8Array): { status: number; soundId: number | null } {\n const outBuffer = new ArrayBuffer(4)\n const dataLength = toSafeFFIU32Length(data.byteLength, \"Audio data length\")\n const status = this.opentui.symbols.audioLoad(engine, ptr(data), dataLength, ptr(outBuffer))\n if (status !== 0) {\n return { status, soundId: null }\n }\n const view = new Uint32Array(outBuffer)\n return { status, soundId: view[0] }\n }\n\n public audioUnload(engine: Pointer, soundId: number): number {\n return this.opentui.symbols.audioUnload(engine, soundId)\n }\n\n public audioPlay(\n engine: Pointer,\n soundId: number,\n options?: AudioVoiceOptions,\n ): { status: number; voiceId: number | null } {\n if (options?.groupId !== undefined && !isFFIU32(options.groupId)) return { status: -1, voiceId: null }\n const outBuffer = new ArrayBuffer(4)\n const optionsBuffer = options ? AudioVoiceOptionsStruct.pack(options) : null\n const status = this.opentui.symbols.audioPlay(\n engine,\n soundId,\n optionsBuffer ? ptr(optionsBuffer) : null,\n ptr(outBuffer),\n )\n if (status !== 0) {\n return { status, voiceId: null }\n }\n const view = new Uint32Array(outBuffer)\n return { status, voiceId: view[0] }\n }\n\n public audioStopVoice(engine: Pointer, voiceId: number): number {\n return this.opentui.symbols.audioStopVoice(engine, voiceId)\n }\n\n public audioSetVoiceGroup(engine: Pointer, voiceId: number, groupId: number): number {\n if (!isFFIU32(groupId)) return -1\n return this.opentui.symbols.audioSetVoiceGroup(engine, voiceId, groupId)\n }\n\n public audioCreateGroup(engine: Pointer, name: string): { status: number; groupId: number | null } {\n const outBuffer = new ArrayBuffer(4)\n const nameBytes = this.encoder.encode(name)\n const nameLength = toSafeFFIU32Length(nameBytes.byteLength, \"Audio group name length\")\n const status = this.opentui.symbols.audioCreateGroup(engine, ptr(nameBytes), nameLength, ptr(outBuffer))\n if (status !== 0) {\n return { status, groupId: null }\n }\n const view = new Uint32Array(outBuffer)\n return { status, groupId: view[0] }\n }\n\n public audioSetGroupVolume(engine: Pointer, groupId: number, volume: number): number {\n return this.opentui.symbols.audioSetGroupVolume(engine, groupId, volume)\n }\n\n public audioSetMasterVolume(engine: Pointer, volume: number): number {\n return this.opentui.symbols.audioSetMasterVolume(engine, volume)\n }\n\n public audioMixToBuffer(engine: Pointer, outBuffer: Float32Array, frameCount: number, channels: number): number {\n return this.opentui.symbols.audioMixToBuffer(engine, ptr(outBuffer), frameCount, channels)\n }\n\n public audioEnableTap(engine: Pointer, enabled: boolean, capacityFrames: number): number {\n return this.opentui.symbols.audioEnableTap(engine, ffiBool(enabled), capacityFrames)\n }\n\n public audioReadTap(\n engine: Pointer,\n outBuffer: Float32Array,\n frameCount: number,\n channels: number,\n ): { status: number; framesRead: number } {\n const outFramesReadBuffer = new ArrayBuffer(4)\n const status = this.opentui.symbols.audioReadTap(\n engine,\n ptr(outBuffer),\n frameCount,\n channels,\n ptr(outFramesReadBuffer),\n )\n if (status !== 0) {\n return { status, framesRead: 0 }\n }\n const view = new Uint32Array(outFramesReadBuffer)\n return { status, framesRead: view[0] ?? 0 }\n }\n\n public audioGetStats(engine: Pointer): AudioStats | null {\n const statsBuffer = new ArrayBuffer(AudioStatsStruct.size)\n const status = this.opentui.symbols.audioGetStats(engine, ptr(statsBuffer))\n if (status !== 0) {\n return null\n }\n const stats = AudioStatsStruct.unpack(statsBuffer)\n return {\n soundsLoaded: stats.soundsLoaded,\n voicesActive: stats.voicesActive,\n framesMixed: typeof stats.framesMixed === \"bigint\" ? stats.framesMixed : BigInt(stats.framesMixed),\n lockMisses: stats.lockMisses,\n lastPeak: stats.lastPeak,\n lastRms: stats.lastRms,\n }\n }\n\n public registerNativeSpanFeedStream(stream: Pointer, handler: NativeSpanFeedEventHandler): void {\n const callback = this.ensureNativeSpanFeedCallback()\n this.nativeSpanFeedHandlers.set(stream, handler)\n this.opentui.symbols.streamSetCallback(stream, callback.ptr)\n }\n\n public unregisterNativeSpanFeedStream(stream: Pointer): void {\n this.opentui.symbols.streamSetCallback(stream, null)\n this.nativeSpanFeedHandlers.delete(stream)\n }\n\n public createNativeSpanFeed(options?: NativeSpanFeedOptions | null): Pointer {\n const optionsBuffer = options == null ? null : NativeSpanFeedOptionsStruct.pack(options)\n const streamPtr = this.opentui.symbols.createNativeSpanFeed(optionsBuffer ? ptr(optionsBuffer) : null)\n if (!streamPtr) {\n throw new Error(\"Failed to create stream\")\n }\n return streamPtr\n }\n\n public attachNativeSpanFeed(stream: Pointer): number {\n return this.opentui.symbols.attachNativeSpanFeed(stream)\n }\n\n public destroyNativeSpanFeed(stream: Pointer): void {\n this.opentui.symbols.destroyNativeSpanFeed(stream)\n this.nativeSpanFeedHandlers.delete(stream)\n }\n\n public streamWrite(stream: Pointer, data: Uint8Array | string): number {\n const bytes = typeof data === \"string\" ? this.encoder.encode(data) : data\n return this.opentui.symbols.streamWrite(stream, ptrOrNull(bytes), bytes.byteLength)\n }\n\n public streamCommit(stream: Pointer): number {\n return this.opentui.symbols.streamCommit(stream)\n }\n\n public streamDrainSpans(stream: Pointer, outBuffer: Uint8Array, maxSpans: number): number {\n const count = this.opentui.symbols.streamDrainSpans(stream, ptr(outBuffer), maxSpans)\n return toNumber(count)\n }\n\n public streamClose(stream: Pointer): number {\n return this.opentui.symbols.streamClose(stream)\n }\n\n public streamSetOptions(stream: Pointer, options: NativeSpanFeedOptions): number {\n const optionsBuffer = NativeSpanFeedOptionsStruct.pack(options)\n return this.opentui.symbols.streamSetOptions(stream, ptr(optionsBuffer))\n }\n\n public streamGetStats(stream: Pointer): NativeSpanFeedStats | null {\n const statsBuffer = new ArrayBuffer(NativeSpanFeedStatsStruct.size)\n const status = this.opentui.symbols.streamGetStats(stream, ptr(statsBuffer))\n if (status !== 0) {\n return null\n }\n const stats = NativeSpanFeedStatsStruct.unpack(statsBuffer)\n return {\n bytesWritten: typeof stats.bytesWritten === \"bigint\" ? stats.bytesWritten : BigInt(stats.bytesWritten),\n spansCommitted: typeof stats.spansCommitted === \"bigint\" ? stats.spansCommitted : BigInt(stats.spansCommitted),\n chunks: stats.chunks,\n pendingSpans: stats.pendingSpans,\n }\n }\n\n public streamReserve(stream: Pointer, minLen: number): { status: number; info: ReserveInfo | null } {\n const reserveBuffer = new ArrayBuffer(ReserveInfoStruct.size)\n const status = this.opentui.symbols.streamReserve(stream, minLen, ptr(reserveBuffer))\n if (status !== 0) {\n return { status, info: null }\n }\n return { status, info: ReserveInfoStruct.unpack(reserveBuffer) }\n }\n\n public streamCommitReserved(stream: Pointer, length: number): number {\n return this.opentui.symbols.streamCommitReserved(stream, length)\n }\n\n public createSyntaxStyle(): SyntaxStyleHandle {\n const styleHandle = this.opentui.symbols.createSyntaxStyle() as SyntaxStyleHandle\n if (!styleHandle) {\n throw new Error(\"Failed to create SyntaxStyle\")\n }\n return styleHandle\n }\n\n public destroySyntaxStyle(style: SyntaxStyleHandle): void {\n this.opentui.symbols.destroySyntaxStyle(style)\n }\n\n public syntaxStyleRegister(\n style: SyntaxStyleHandle,\n name: string,\n fg: RGBA | null,\n bg: RGBA | null,\n attributes: number,\n ): number {\n const nameBytes = this.encoder.encode(name)\n const fgPtr = optionalRgbaPtr(fg)\n const bgPtr = optionalRgbaPtr(bg)\n return this.opentui.symbols.syntaxStyleRegister(\n style,\n ptrOrNull(nameBytes),\n nameBytes.byteLength,\n fgPtr,\n bgPtr,\n attributes,\n )\n }\n\n public syntaxStyleResolveByName(style: SyntaxStyleHandle, name: string): number | null {\n const nameBytes = this.encoder.encode(name)\n const id = this.opentui.symbols.syntaxStyleResolveByName(style, ptrOrNull(nameBytes), nameBytes.byteLength)\n return id === 0 ? null : id\n }\n\n public syntaxStyleGetStyleCount(style: SyntaxStyleHandle): number {\n return this.opentui.symbols.syntaxStyleGetStyleCount(style)\n }\n\n private imageHandleResult(status: number, output: Uint32Array): { status: number; handle: ImageHandle | null } {\n return { status, handle: status === 0 && output[0] !== 0 ? (output[0] as ImageHandle) : null }\n }\n\n public imageInfo(data: Uint8Array): { status: number; info: NativeImageInfo } {\n const length = toSafeFFIU32Length(data.byteLength, \"image data\")\n const output = new ArrayBuffer(NativeImageInfoStruct.size)\n const status = this.opentui.symbols.imageInfo(data.byteLength === 0 ? null : data, length, output)\n return { status, info: NativeImageInfoStruct.unpack(output) }\n }\n\n public imageDecode(data: Uint8Array): { status: number; handle: ImageHandle | null } {\n const length = toSafeFFIU32Length(data.byteLength, \"image data\")\n const output = new Uint32Array(1)\n return this.imageHandleResult(\n this.opentui.symbols.imageDecode(data.byteLength === 0 ? null : data, length, output),\n output,\n )\n }\n\n public imageCreateFromRgba(\n pixels: Uint8Array,\n width: number,\n height: number,\n stride: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.imageCreateFromRgba(\n pixels.byteLength === 0 ? null : pixels,\n BigInt(pixels.byteLength),\n width,\n height,\n stride,\n output,\n )\n return this.imageHandleResult(status, output)\n }\n\n public imageDestroy(image: ImageHandle): void {\n this.opentui.symbols.imageDestroy(image)\n }\n\n public imageRetain(image: ImageHandle): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageRetain(image, output), output)\n }\n\n public imageRetainIccCache(): void {\n this.opentui.symbols.imageRetainIccCache()\n }\n\n public imageReleaseIccCache(): void {\n this.opentui.symbols.imageReleaseIccCache()\n }\n\n public imageTestFailIccProfileCopyAllocationOnce(): void {\n this.opentui.symbols.imageTestFailIccProfileCopyAllocationOnce()\n }\n\n public imageGetInfo(image: ImageHandle): { status: number; info: NativeImageInfo } {\n const output = new ArrayBuffer(NativeImageInfoStruct.size)\n const status = this.opentui.symbols.imageGetInfo(image, output)\n return { status, info: NativeImageInfoStruct.unpack(output) }\n }\n\n public imageGetPixelsPtr(image: ImageHandle): Pointer | null {\n const pointer = this.opentui.symbols.imageGetPixelsPtr(image)\n return pointer === null || pointer === 0 || pointer === 0n ? null : pointer\n }\n\n public imageMaterialize(image: ImageHandle): number {\n return this.opentui.symbols.imageMaterialize(image)\n }\n\n public imageEnsureEncodedPng(image: ImageHandle): number {\n return this.opentui.symbols.imageEnsureEncodedPng(image)\n }\n\n public imageClone(image: ImageHandle): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageClone(image, output), output)\n }\n\n public imageCopyPixels(image: ImageHandle, destination: Uint8Array, stride: number, bgra: boolean): number {\n return this.opentui.symbols.imageCopyPixels(\n image,\n destination.byteLength === 0 ? null : destination,\n BigInt(destination.byteLength),\n stride,\n bgra ? 1 : 0,\n )\n }\n\n public imageResize(\n image: ImageHandle,\n width: number,\n height: number,\n filter: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageResize(image, width, height, filter, output), output)\n }\n\n public imageExtract(\n image: ImageHandle,\n left: number,\n top: number,\n width: number,\n height: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageExtract(image, left, top, width, height, output), output)\n }\n\n public imageExtend(\n image: ImageHandle,\n top: number,\n right: number,\n bottom: number,\n left: number,\n background: Uint8Array,\n ): { status: number; handle: ImageHandle | null } {\n if (!(background instanceof Uint8Array) || background.byteLength !== 4) return { status: 7, handle: null }\n const output = new Uint32Array(1)\n return this.imageHandleResult(\n this.opentui.symbols.imageExtend(image, top, right, bottom, left, background, output),\n output,\n )\n }\n\n public imageTransform(image: ImageHandle, operation: number): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageTransform(image, operation, output), output)\n }\n\n public imageComposite(\n base: ImageHandle,\n overlay: ImageHandle,\n left: number,\n top: number,\n blend: number,\n opacity: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(\n this.opentui.symbols.imageComposite(base, overlay, left, top, blend, opacity, output),\n output,\n )\n }\n\n public editorViewSetPlaceholderStyledText(\n view: EditorViewHandle,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number }>,\n ): void {\n const nonEmptyChunks = chunks.filter((c) => c.text.length > 0)\n if (nonEmptyChunks.length === 0) {\n this.opentui.symbols.editorViewSetPlaceholderStyledText(view, null, 0)\n return\n }\n\n const chunksBuffer = StyledChunkStruct.packList(nonEmptyChunks)\n this.opentui.symbols.editorViewSetPlaceholderStyledText(view, chunksBuffer, nonEmptyChunks.length)\n }\n\n public editorViewSetTabIndicator(view: EditorViewHandle, indicator: number): void {\n this.opentui.symbols.editorViewSetTabIndicator(view, indicator)\n }\n\n public editorViewSetTabIndicatorColor(view: EditorViewHandle, color: RGBA): void {\n this.opentui.symbols.editorViewSetTabIndicatorColor(view, rgbaPtr(color))\n }\n\n public onNativeEvent(name: string, handler: (data: ArrayBuffer) => void): void {\n this._nativeEvents.on(name, handler)\n }\n\n public onceNativeEvent(name: string, handler: (data: ArrayBuffer) => void): void {\n this._nativeEvents.once(name, handler)\n }\n\n public offNativeEvent(name: string, handler: (data: ArrayBuffer) => void): void {\n this._nativeEvents.off(name, handler)\n }\n\n public onAnyNativeEvent(handler: (name: string, data: ArrayBuffer) => void): void {\n this._anyEventHandlers.push(handler)\n }\n}\n\nlet opentuiLibPath: string | undefined\nlet opentuiLib: RenderLib | undefined\nlet renderLibResolved = false\n\nexport function setRenderLibPath(libPath: string) {\n if (opentuiLibPath !== libPath) {\n if (renderLibResolved) {\n throw new Error(\"setRenderLibPath() must be called before resolveRenderLib()\")\n }\n if (opentuiLib instanceof FFIRenderLib) {\n opentuiLib.dispose()\n }\n opentuiLibPath = libPath\n opentuiLib = undefined\n }\n}\n\nexport function resolveRenderLib(): RenderLib {\n if (!opentuiLib) {\n try {\n opentuiLib = new FFIRenderLib(opentuiLibPath)\n } catch (error) {\n throw new Error(\n `Failed to initialize OpenTUI render library: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n )\n }\n }\n renderLibResolved = true\n return opentuiLib\n}\n\n// Try eager loading\ntry {\n opentuiLib = new FFIRenderLib(opentuiLibPath)\n} catch (error) {}\n",
|
|
16
|
+
"import {\n dlopen,\n ffiBool,\n trimNodeFFIOutputBytes,\n toArrayBuffer,\n ptr,\n toPointer,\n type FFICallbackInstance,\n type Pointer,\n usesBunFFI,\n} from \"./platform/ffi.js\"\nimport { writeFile } from \"./platform/runtime.js\"\nimport { existsSync, writeFileSync } from \"fs\"\nimport { EventEmitter } from \"events\"\nimport {\n type CursorStyle,\n type CursorStyleOptions,\n type TargetChannel,\n type DebugOverlayCorner,\n type WidthMethod,\n type TerminalCapabilities,\n type Highlight,\n type LineInfo,\n type MousePointerStyle,\n type ImageRenderProtocol,\n} from \"./types.js\"\nexport type {\n LineInfo,\n AllocatorStats,\n AudioStreamCreateOptions,\n BuildOptions,\n NativeAudioCaptureStats,\n NativeAudioStreamStats,\n NativeRenderStats,\n}\n\nimport { RGBA } from \"./lib/RGBA.js\"\nimport { OptimizedBuffer } from \"./buffer.js\"\nimport { TextBuffer } from \"./text-buffer.js\"\nimport { env, registerEnvVar } from \"./lib/env.js\"\nimport {\n StyledChunkStruct,\n HighlightStruct,\n LogicalCursorStruct,\n VisualCursorStruct,\n TerminalCapabilitiesStruct,\n EncodedCharStruct,\n LineInfoStruct,\n MeasureResultStruct,\n CursorStateStruct,\n CursorStyleOptionsStruct,\n GridDrawOptionsStruct,\n NativeSpanFeedOptionsStruct,\n NativeSpanFeedStatsStruct,\n ReserveInfoStruct,\n AudioCreateOptionsStruct,\n AudioStartOptionsStruct,\n AudioVoiceOptionsStruct,\n AudioStreamCreateOptionsStruct,\n AudioStreamStatsStruct,\n AudioCaptureStatsStruct,\n NativeAudioStreamCloseReason as NativeAudioStreamCloseReasonValue,\n NativeAudioStreamFormat as NativeAudioStreamFormatValue,\n NativeAudioStreamState as NativeAudioStreamStateValue,\n AudioStatsStruct,\n BuildOptionsStruct,\n AllocatorStatsStruct,\n NativeRenderStatsStruct,\n NativeImageInfoStruct,\n ImageDrawOptionsStruct,\n} from \"./zig-structs.js\"\nimport type {\n NativeSpanFeedOptions,\n NativeSpanFeedStats,\n ReserveInfo,\n AudioCreateOptions,\n AudioStartOptions,\n AudioVoiceOptions,\n AudioStreamCreateOptions,\n NativeAudioStreamCloseReason as NativeAudioStreamCloseReasonType,\n NativeAudioStreamFormat as NativeAudioStreamFormatType,\n NativeAudioStreamState as NativeAudioStreamStateType,\n NativeAudioStreamStats,\n NativeAudioCaptureStats,\n AudioStats,\n BuildOptions,\n AllocatorStats,\n NativeRenderStats,\n NativeImageInfo,\n} from \"./zig-structs.js\"\nexport const NativeAudioStreamState = NativeAudioStreamStateValue\nexport type NativeAudioStreamState = NativeAudioStreamStateType\nexport const NativeAudioStreamCloseReason = NativeAudioStreamCloseReasonValue\nexport type NativeAudioStreamCloseReason = NativeAudioStreamCloseReasonType\nexport const NativeAudioStreamFormat = NativeAudioStreamFormatValue\nexport type NativeAudioStreamFormat = NativeAudioStreamFormatType\nimport { isBunfsPath } from \"./lib/bunfs.js\"\nimport { resolveNativeLibraryPath } from \"#opentui/runtime-assets\"\nimport { allocStruct } from \"bun-ffi-structs\"\n\nregisterEnvVar({\n name: \"OPENTUI_LIBC\",\n description: \"Select Linux native libc package. Supported values: glibc, musl.\",\n type: \"string\",\n default: \"\",\n})\n\nexport type NativeHandle<T extends string> = Pointer & { readonly __nativeHandle: T }\nexport type RendererHandle = NativeHandle<\"renderer\">\nexport type OptimizedBufferHandle = NativeHandle<\"optimized_buffer\">\nexport type TextBufferHandle = NativeHandle<\"text_buffer\">\nexport type TextBufferViewHandle = NativeHandle<\"text_buffer_view\">\nexport type EditBufferHandle = NativeHandle<\"edit_buffer\">\nexport type EditorViewHandle = NativeHandle<\"editor_view\">\nexport type SyntaxStyleHandle = NativeHandle<\"syntax_style\">\nexport type EventSinkHandle = NativeHandle<\"event_sink\">\nexport type AudioEngineHandle = NativeHandle<\"audio_engine\">\nexport type NativeRenderableHandle = NativeHandle<\"native_renderable\">\nexport type ImageHandle = NativeHandle<\"image\">\nexport type ClipboardServiceHandle = number & { readonly __nativeHandle: \"clipboard_service\" }\nexport type ClipboardOperationHandle = number & { readonly __nativeHandle: \"clipboard_operation\" }\n\nexport enum NativeClipboardOperationStatus {\n Pending = 0,\n Read = 1,\n Empty = 2,\n Written = 3,\n Cleared = 4,\n Unsupported = 5,\n Cancelled = 6,\n TimedOut = 7,\n LimitExceeded = 8,\n Failed = 9,\n InvalidHandle = 10,\n}\n\nexport enum NativeClipboardStartStatus {\n Ok = 0,\n InvalidService = 1,\n ShuttingDown = 2,\n LimitExceeded = 3,\n InvalidArgument = 4,\n OutOfMemory = 5,\n}\n\nexport enum NativeClipboardCancelStatus {\n Requested = 0,\n AlreadyTerminal = 1,\n InvalidHandle = 2,\n}\n\nexport enum NativeClipboardCopyStatus {\n Ok = 0,\n BufferTooSmall = 1,\n InvalidHandle = 2,\n InvalidState = 3,\n InvalidArgument = 4,\n}\n\nexport enum NativeClipboardDestroyStatus {\n Destroyed = 0,\n NotReady = 1,\n InvalidHandle = 2,\n}\n\nexport enum NativeClipboardShutdownStatus {\n Pending = 0,\n Ready = 1,\n InvalidHandle = 2,\n}\nlet targetLibPath: string | undefined\nlet targetLibError: Error | undefined\n\ntry {\n targetLibPath = await resolveNativeLibraryPath()\n if (isBunfsPath(targetLibPath)) {\n targetLibPath = targetLibPath.replace(\"../\", \"\")\n }\n if (!existsSync(targetLibPath)) {\n throw new Error(`OpenTUI native library does not exist at ${JSON.stringify(targetLibPath)}`)\n }\n} catch (error) {\n targetLibError = error instanceof Error ? error : new Error(String(error))\n}\n\nregisterEnvVar({\n name: \"OTUI_DEBUG_FFI\",\n description: \"Enable debug logging for the FFI bindings.\",\n type: \"boolean\",\n default: false,\n})\n\nregisterEnvVar({\n name: \"OTUI_TRACE_FFI\",\n description: \"Enable tracing for the FFI bindings.\",\n type: \"boolean\",\n default: false,\n})\n\n// Env vars used in terminal.zig\nregisterEnvVar({\n name: \"OPENTUI_FORCE_WCWIDTH\",\n description: \"Use wcwidth for character width calculations when the variable is present\",\n type: \"string\",\n required: false,\n})\nregisterEnvVar({\n name: \"OPENTUI_FORCE_UNICODE\",\n description: \"Force Mode 2026 Unicode support when the variable is present\",\n type: \"string\",\n required: false,\n})\nregisterEnvVar({\n name: \"OPENTUI_GRAPHICS\",\n description: \"Control Kitty and Sixel graphics detection with the exact value true, 1, false, or 0\",\n type: \"string\",\n required: false,\n})\nregisterEnvVar({\n name: \"OPENTUI_IMAGE_PROTOCOL\",\n description: \"Override image rendering protocol: auto, kitty, sixel, or blocks\",\n type: \"string\",\n default: \"auto\",\n})\nregisterEnvVar({\n name: \"OPENTUI_FORCE_NOZWJ\",\n description: \"Use no_zwj width mode when the variable is present\",\n type: \"string\",\n required: false,\n})\n\n// Cursor & mouse pointer style mappings (avoid recreation on each call)\nconst CURSOR_STYLE_TO_ID = { block: 0, line: 1, underline: 2, default: 3 } as const\nconst CURSOR_ID_TO_STYLE = [\"block\", \"line\", \"underline\", \"default\"] as const\nconst MOUSE_STYLE_TO_ID = { default: 0, pointer: 1, text: 2, crosshair: 3, move: 4, \"not-allowed\": 5 } as const\nconst MAX_FFI_U32 = 0xffff_ffff\n// Global singleton state for FFI tracing to prevent duplicate exit handlers\nlet globalTraceSymbols: Record<string, number[]> | null = null\nlet globalFFILogPath: string | null = null\nlet exitHandlerRegistered = false\n\nfunction toNumber(value: number | bigint): number {\n return typeof value === \"bigint\" ? Number(value) : value\n}\n\nfunction toSafeByteCount(value: number | bigint, label: string): number {\n if (typeof value !== \"bigint\") {\n return value\n }\n\n if (value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new RangeError(`${label} exceeds JavaScript safe integer range`)\n }\n\n return Number(value)\n}\n\nfunction toSafeFFIU32Length(value: number, label: string): number {\n if (!Number.isSafeInteger(value) || value < 0 || value > MAX_FFI_U32) {\n throw new RangeError(`${label} exceeds native u32 length limit`)\n }\n\n return value\n}\n\nfunction isFFIU32(value: number): boolean {\n return Number.isInteger(value) && value >= 0 && value <= MAX_FFI_U32\n}\n\nfunction ptrOrNull(value: ArrayBufferView): Pointer | null {\n return value.byteLength === 0 ? null : ptr(value)\n}\n\nfunction rgbaPtr(value: RGBA): Pointer {\n return ptr(value.buffer)\n}\n\nfunction optionalRgbaPtr(value: RGBA | null | undefined): Pointer | null {\n return value ? rgbaPtr(value) : null\n}\n\nfunction getOpenTUILib(libPath?: string) {\n const resolvedLibPath = libPath || targetLibPath\n if (!resolvedLibPath) {\n throw (\n targetLibError ??\n new Error(`OpenTUI is not supported on the current platform: ${process.platform}-${process.arch}`)\n )\n }\n\n const rawSymbols = dlopen(resolvedLibPath, {\n // Logging\n setLogCallback: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n // Event bus\n createEventSink: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n destroyEventSink: {\n args: [\"u32\"],\n returns: \"void\",\n },\n createNativeRenderable: {\n args: [],\n returns: \"u32\",\n },\n destroyNativeRenderable: {\n args: [\"u32\"],\n returns: \"void\",\n },\n nativeRenderableAttachYogaNode: {\n args: [\"u32\", \"ptr\"],\n returns: \"bool\",\n },\n nativeRenderableSetMeasureTarget: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"bool\",\n },\n // Renderer management\n createRenderer: {\n args: [\"u32\", \"u32\", \"u8\", \"u8\", \"ptr\"],\n returns: \"u32\",\n },\n setTerminalEnvVar: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n destroyRenderer: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n setUseThread: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n setClearOnShutdown: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n setBackgroundColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n setRenderOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n resetSplitScrollback: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n syncSplitScrollback: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n getSplitOutputOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n setPendingSplitFooterTransition: {\n args: [\"u32\", \"u8\", \"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n clearPendingSplitFooterTransition: {\n args: [\"u32\"],\n returns: \"void\",\n },\n updateStats: {\n args: [\"u32\", \"f64\", \"u32\", \"f64\"],\n returns: \"void\",\n },\n updateMemoryStats: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n getRenderStats: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n render: {\n args: [\"u32\", \"bool\"],\n returns: \"u8\",\n },\n repaintSplitFooter: {\n args: [\"u32\", \"u32\", \"bool\"],\n returns: \"u64\",\n },\n // Single FFI entrypoint for split commit append. beginFrame/finalizeFrame let\n // native code decide whether this call is a standalone commit or part of a\n // larger batched frame envelope.\n commitSplitFooterSnapshot: {\n args: [\"u32\", \"u32\", \"u32\", \"bool\", \"bool\", \"u32\", \"bool\", \"bool\", \"bool\"],\n returns: \"u64\",\n },\n getNextBuffer: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n getCurrentBuffer: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n rendererSetPaletteState: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n queryPixelResolution: {\n args: [\"u32\"],\n returns: \"void\",\n },\n queryThemeColors: {\n args: [\"u32\"],\n returns: \"void\",\n },\n\n createOptimizedBuffer: {\n args: [\"u32\", \"u32\", \"bool\", \"u8\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n destroyOptimizedBuffer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n\n drawFrameBuffer: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n getBufferWidth: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n getBufferHeight: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n bufferClear: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n bufferGetCharPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetFgPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetBgPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetAttributesPtr: {\n args: [\"u32\"],\n returns: \"ptr\",\n },\n bufferGetRespectAlpha: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n bufferSetRespectAlpha: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n bufferGetId: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n bufferGetRealCharSize: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n bufferWriteResolvedChars: {\n args: [\"u32\", \"ptr\", \"u32\", \"bool\"],\n returns: \"u32\",\n },\n\n bufferDrawText: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferSetCellWithAlphaBlending: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferSetCell: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferFillRect: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"void\",\n },\n bufferColorMatrix: {\n args: [\"u32\", \"ptr\", \"ptr\", \"u32\", \"f32\", \"u8\"],\n returns: \"void\",\n },\n bufferColorMatrixUniform: {\n args: [\"u32\", \"ptr\", \"f32\", \"u8\"],\n returns: \"void\",\n },\n bufferResize: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n\n // Link API\n linkAlloc: {\n args: [\"ptr\", \"u32\"],\n returns: \"u32\",\n },\n linkGetUrl: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n attributesWithLink: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n attributesGetLinkId: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n\n resizeRenderer: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n\n // Cursor functions (now renderer-scoped)\n setCursorPosition: {\n args: [\"u32\", \"i32\", \"i32\", \"bool\"],\n returns: \"void\",\n },\n setCursorColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n getCursorState: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n // Cursor and mouse pointer style (combined)\n setCursorStyleOptions: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n // Debug overlay\n setDebugOverlay: {\n args: [\"u32\", \"bool\", \"u8\"],\n returns: \"void\",\n },\n\n // Terminal control\n clearTerminal: {\n args: [\"u32\"],\n returns: \"void\",\n },\n setTerminalTitle: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n copyToClipboardOSC52: {\n args: [\"u32\", \"u8\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n clearClipboardOSC52: {\n args: [\"u32\", \"u8\"],\n returns: \"bool\",\n },\n clipboardServiceCreate: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n clipboardServiceBeginShutdown: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardServicePollShutdown: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardServiceDestroy: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardServiceDrain: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardReadOperationStart: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardWriteOperationStart: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardClearOperationStart: {\n args: [\"u32\", \"u8\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationPoll: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardOperationCancel: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n clipboardOperationResultMimeLength: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultMimeCopy: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u8\",\n },\n clipboardOperationResultDataLength: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultDataCopy: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u8\",\n },\n clipboardOperationResultErrorCode: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultDiagnosticLength: {\n args: [\"u32\", \"ptr\"],\n returns: \"u8\",\n },\n clipboardOperationResultDiagnosticCopy: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u8\",\n },\n clipboardOperationDestroy: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n triggerNotification: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n\n bufferDrawSuperSampleBuffer: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"u32\", \"u8\", \"u32\"],\n returns: \"void\",\n },\n bufferDrawImage: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"u8\",\n },\n bufferDrawPackedBuffer: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n bufferDrawGrayscaleBuffer: {\n args: [\"u32\", \"i32\", \"i32\", \"ptr\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n bufferDrawGrayscaleBufferSupersampled: {\n args: [\"u32\", \"i32\", \"i32\", \"ptr\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n bufferDrawGrid: {\n args: [\"u32\", \"ptr\", \"ptr\", \"ptr\", \"ptr\", \"u32\", \"ptr\", \"u32\", \"ptr\"],\n returns: \"void\",\n },\n bufferDrawBox: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"ptr\", \"u32\", \"ptr\", \"ptr\", \"ptr\", \"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferPushScissorRect: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n bufferPopScissorRect: {\n args: [\"u32\"],\n returns: \"void\",\n },\n bufferClearScissorRects: {\n args: [\"u32\"],\n returns: \"void\",\n },\n bufferPushOpacity: {\n args: [\"u32\", \"f32\"],\n returns: \"void\",\n },\n bufferPopOpacity: {\n args: [\"u32\"],\n returns: \"void\",\n },\n bufferGetCurrentOpacity: {\n args: [\"u32\"],\n returns: \"f32\",\n },\n bufferClearOpacity: {\n args: [\"u32\"],\n returns: \"void\",\n },\n\n addToHitGrid: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n clearCurrentHitGrid: {\n args: [\"u32\"],\n returns: \"void\",\n },\n hitGridPushScissorRect: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n hitGridPopScissorRect: {\n args: [\"u32\"],\n returns: \"void\",\n },\n hitGridClearScissorRects: {\n args: [\"u32\"],\n returns: \"void\",\n },\n addToCurrentHitGridClipped: {\n args: [\"u32\", \"i32\", \"i32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n checkHit: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n getHitGridDirty: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n dumpHitGrid: {\n args: [\"u32\"],\n returns: \"void\",\n },\n dumpBuffers: {\n args: [\"u32\", \"i64\"],\n returns: \"void\",\n },\n dumpOutputBuffer: {\n args: [\"u32\", \"i64\"],\n returns: \"void\",\n },\n restoreTerminalModes: {\n args: [\"u32\"],\n returns: \"void\",\n },\n enableMouse: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n disableMouse: {\n args: [\"u32\"],\n returns: \"void\",\n },\n enableKittyKeyboard: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n disableKittyKeyboard: {\n args: [\"u32\"],\n returns: \"void\",\n },\n setKittyKeyboardFlags: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n getKittyKeyboardFlags: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n setupTerminal: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n suspendRenderer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n resumeRenderer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n writeOut: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n // TextBuffer functions\n createTextBuffer: {\n args: [\"u8\"],\n returns: \"u32\",\n },\n destroyTextBuffer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferGetLength: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferGetByteSize: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n\n textBufferReset: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferClear: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferSetDefaultFg: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferSetDefaultBg: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferSetDefaultAttributes: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferResetDefaults: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferGetTabWidth: {\n args: [\"u32\"],\n returns: \"u8\",\n },\n textBufferSetTabWidth: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferRegisterMemBuffer: {\n args: [\"u32\", \"ptr\", \"u32\", \"bool\"],\n returns: \"u16\",\n },\n textBufferReplaceMemBuffer: {\n args: [\"u32\", \"u8\", \"ptr\", \"u32\", \"bool\"],\n returns: \"bool\",\n },\n textBufferClearMemRegistry: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferSetTextFromMem: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferAppend: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n textBufferAppendFromMemId: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferLoadFile: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"bool\",\n },\n textBufferSetStyledText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n textBufferGetLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferGetPlainText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferAddHighlightByCharRange: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferAddHighlight: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferRemoveHighlightsByRef: {\n args: [\"u32\", \"u16\"],\n returns: \"void\",\n },\n textBufferClearLineHighlights: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferClearAllHighlights: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferSetSyntaxStyle: {\n args: [\"u32\", \"u32\"],\n returns: \"bool\",\n },\n textBufferGetLineHighlightsPtr: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"ptr\",\n },\n textBufferFreeLineHighlights: {\n args: [\"ptr\", \"u32\"],\n returns: \"void\",\n },\n textBufferGetHighlightCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferGetTextRange: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferGetTextRangeByCoords: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n\n // TextBufferView functions\n createTextBufferView: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n destroyTextBufferView: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferViewSetSelection: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewResetSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferViewGetSelectionInfo: {\n args: [\"u32\"],\n returns: \"u64\",\n },\n textBufferViewSetLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\"],\n returns: \"bool\",\n },\n textBufferViewUpdateSelection: {\n args: [\"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewUpdateLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\"],\n returns: \"bool\",\n },\n textBufferViewResetLocalSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n textBufferViewSetWrapWidth: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetWrapMode: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n textBufferViewSetFirstLineOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetViewportSize: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetViewport: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewGetVirtualLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n textBufferViewGetLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewGetLogicalLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewGetSelectedText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferViewGetPlainText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n textBufferViewSetTabIndicator: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n textBufferViewSetTabIndicatorColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n textBufferViewSetTruncate: {\n args: [\"u32\", \"bool\"],\n returns: \"void\",\n },\n textBufferViewMeasureForDimensions: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"bool\",\n },\n bufferDrawTextBufferView: {\n args: [\"u32\", \"u32\", \"i32\", \"i32\"],\n returns: \"void\",\n },\n bufferDrawEditorView: {\n args: [\"u32\", \"u32\", \"i32\", \"i32\"],\n returns: \"void\",\n },\n\n // EditorView functions\n createEditorView: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n destroyEditorView: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewSetViewportSize: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editorViewSetViewport: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"bool\"],\n returns: \"void\",\n },\n editorViewGetViewport: {\n args: [\"u32\", \"ptr\", \"ptr\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewSetScrollMargin: {\n args: [\"u32\", \"f32\"],\n returns: \"void\",\n },\n editorViewSetWrapMode: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n editorViewGetVirtualLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editorViewGetTotalVirtualLineCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editorViewGetTextBufferView: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editorViewGetLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetLogicalLineInfoDirect: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n // EditBuffer functions\n createEditBuffer: {\n args: [\"u8\", \"u32\"],\n returns: \"u32\",\n },\n destroyEditBuffer: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferSetText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetTextFromMem: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n editBufferReplaceText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferReplaceTextFromMem: {\n args: [\"u32\", \"u8\"],\n returns: \"void\",\n },\n editBufferGetText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferInsertChar: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferInsertText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editBufferDeleteChar: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferDeleteCharBackward: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferDeleteRange: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferNewLine: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferDeleteLine: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorLeft: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorRight: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorUp: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferMoveCursorDown: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferGotoLine: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetCursor: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetCursorToLineCol: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferSetCursorByOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editBufferGetCursorPosition: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferGetId: {\n args: [\"u32\"],\n returns: \"u16\",\n },\n editBufferGetTextBuffer: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n editBufferDebugLogRope: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferUndo: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferRedo: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferCanUndo: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n editBufferCanRedo: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n editBufferClearHistory: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferClear: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editBufferGetNextWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferGetPrevWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferGetEOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editBufferOffsetToPosition: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"bool\",\n },\n editBufferPositionToOffset: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"u32\",\n },\n editBufferGetLineStartOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"u32\",\n },\n editBufferGetTextRange: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editBufferGetTextRangeByCoords: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n\n // EditorView selection and editing methods\n editorViewSetSelection: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewResetSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewGetSelection: {\n args: [\"u32\"],\n returns: \"u64\",\n },\n editorViewSetLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\", \"bool\", \"bool\"],\n returns: \"bool\",\n },\n editorViewUpdateSelection: {\n args: [\"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewUpdateLocalSelection: {\n args: [\"u32\", \"i32\", \"i32\", \"i32\", \"i32\", \"ptr\", \"ptr\", \"bool\", \"bool\"],\n returns: \"bool\",\n },\n editorViewResetLocalSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewGetSelectedTextBytes: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n editorViewGetCursor: {\n args: [\"u32\", \"ptr\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n\n // EditorView VisualCursor methods\n editorViewGetVisualCursor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n editorViewMoveUpVisual: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewMoveDownVisual: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewDeleteSelectedText: {\n args: [\"u32\"],\n returns: \"void\",\n },\n editorViewSetCursorByOffset: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editorViewGetNextWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetPrevWordBoundary: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetEOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetVisualSOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewGetVisualEOL: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n editorViewSetPlaceholderStyledText: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n editorViewSetTabIndicator: {\n args: [\"u32\", \"u32\"],\n returns: \"void\",\n },\n editorViewSetTabIndicatorColor: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n\n getArenaAllocatedBytes: {\n args: [],\n returns: \"u64\",\n },\n getBuildOptions: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n getAllocatorStats: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n\n // SyntaxStyle functions\n createSyntaxStyle: {\n args: [],\n returns: \"u32\",\n },\n destroySyntaxStyle: {\n args: [\"u32\"],\n returns: \"void\",\n },\n syntaxStyleRegister: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n syntaxStyleResolveByName: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n syntaxStyleGetStyleCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n\n imageInfo: { args: [\"ptr\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageRetainIccCache: { args: [], returns: \"void\" },\n imageReleaseIccCache: { args: [], returns: \"void\" },\n imageTestFailIccProfileCopyAllocationOnce: { args: [], returns: \"void\" },\n imageDecode: { args: [\"ptr\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageCreateFromRgba: { args: [\"ptr\", \"u64\", \"u32\", \"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageDestroy: { args: [\"u32\"], returns: \"void\" },\n imageRetain: { args: [\"u32\", \"ptr\"], returns: \"u32\" },\n imageGetInfo: { args: [\"u32\", \"ptr\"], returns: \"u32\" },\n imageMaterialize: { args: [\"u32\"], returns: \"u32\" },\n imageEnsureEncodedPng: { args: [\"u32\"], returns: \"u32\" },\n imageGetPixelsPtr: { args: [\"u32\"], returns: \"ptr\" },\n imageClone: { args: [\"u32\", \"ptr\"], returns: \"u32\" },\n imageCopyPixels: { args: [\"u32\", \"ptr\", \"u64\", \"u32\", \"u8\"], returns: \"u32\" },\n imageResize: { args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageExtract: { args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageExtend: { args: [\"u32\", \"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\"], returns: \"u32\" },\n imageTransform: { args: [\"u32\", \"u32\", \"ptr\"], returns: \"u32\" },\n imageComposite: { args: [\"u32\", \"u32\", \"i32\", \"i32\", \"u32\", \"u8\", \"ptr\"], returns: \"u32\" },\n\n // Terminal capability functions\n getTerminalCapabilities: {\n args: [\"u32\", \"ptr\"],\n returns: \"void\",\n },\n processCapabilityResponse: {\n args: [\"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n // Unicode encoding API\n encodeUnicode: {\n args: [\"ptr\", \"u32\", \"ptr\", \"ptr\", \"u8\"],\n returns: \"bool\",\n },\n freeUnicode: {\n args: [\"ptr\", \"u32\"],\n returns: \"void\",\n },\n bufferDrawChar: {\n args: [\"u32\", \"u32\", \"u32\", \"u32\", \"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n\n // Yoga layout\n yogaConfigCreate: {\n args: [],\n returns: \"ptr\",\n },\n yogaConfigFree: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaConfigSetUseWebDefaults: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaConfigGetUseWebDefaults: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaConfigSetPointScaleFactor: {\n args: [\"ptr\", \"f32\"],\n returns: \"void\",\n },\n yogaConfigGetPointScaleFactor: {\n args: [\"ptr\"],\n returns: \"f32\",\n },\n yogaConfigSetErrata: {\n args: [\"ptr\", \"u32\"],\n returns: \"void\",\n },\n yogaConfigGetErrata: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n yogaConfigSetExperimentalFeatureEnabled: {\n args: [\"ptr\", \"u32\", \"bool\"],\n returns: \"void\",\n },\n yogaConfigIsExperimentalFeatureEnabled: {\n args: [\"ptr\", \"u32\"],\n returns: \"bool\",\n },\n yogaNodeCreate: {\n args: [],\n returns: \"ptr\",\n },\n yogaNodeCreateForOpenTUI: {\n args: [],\n returns: \"ptr\",\n },\n yogaNodeCreateWithConfig: {\n args: [\"ptr\"],\n returns: \"ptr\",\n },\n yogaNodeFree: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeFreeRecursive: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeReset: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeCopyStyle: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n yogaNodeInsertChild: {\n args: [\"ptr\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n yogaNodeRemoveChild: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n yogaNodeRemoveAllChildren: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeGetChild: {\n args: [\"ptr\", \"u32\"],\n returns: \"ptr\",\n },\n yogaNodeGetChildCount: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n yogaNodeGetParent: {\n args: [\"ptr\"],\n returns: \"ptr\",\n },\n yogaNodeCalculateLayout: {\n args: [\"ptr\", \"f32\", \"f32\", \"u32\"],\n returns: \"void\",\n },\n yogaNodeIsDirty: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeMarkDirty: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeGetHasNewLayout: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeSetHasNewLayout: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeSetIsReferenceBaseline: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeIsReferenceBaseline: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeSetAlwaysFormsContainingBlock: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeGetAlwaysFormsContainingBlock: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeGetComputedLayout: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n yogaNodeLayoutGetEdge: {\n args: [\"ptr\", \"u32\", \"u32\"],\n returns: \"f32\",\n },\n yogaNodeStyleSetEnum: {\n args: [\"ptr\", \"u32\", \"u32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetEnum: {\n args: [\"ptr\", \"u32\"],\n returns: \"u32\",\n },\n yogaNodeStyleSetFloat: {\n args: [\"ptr\", \"u32\", \"f32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetFloat: {\n args: [\"ptr\", \"u32\"],\n returns: \"f32\",\n },\n yogaNodeStyleSetBorder: {\n args: [\"ptr\", \"u32\", \"f32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetBorder: {\n args: [\"ptr\", \"u32\"],\n returns: \"f32\",\n },\n yogaNodeStyleSetValue: {\n args: [\"ptr\", \"u32\", \"u32\", \"u32\", \"f32\"],\n returns: \"void\",\n },\n yogaNodeStyleGetValue: {\n args: [\"ptr\", \"u32\", \"u32\"],\n returns: \"u64\",\n },\n yogaNodeSetMeasureFunc: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeUnsetMeasureFunc: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaNodeHasMeasureFunc: {\n args: [\"ptr\"],\n returns: \"bool\",\n },\n yogaNodeSetDirtiedFunc: {\n args: [\"ptr\", \"bool\"],\n returns: \"void\",\n },\n yogaNodeUnsetDirtiedFunc: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaStoreMeasureResult: {\n args: [\"f32\", \"f32\"],\n returns: \"void\",\n },\n yogaSetMeasureCallback: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n yogaSetDirtiedCallback: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n\n // Audio\n createAudioEngine: {\n args: [\"ptr\"],\n returns: \"u32\",\n },\n destroyAudioEngine: {\n args: [\"u32\"],\n returns: \"void\",\n },\n audioRefreshPlaybackDevices: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioGetPlaybackDeviceCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n audioGetPlaybackDeviceName: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n audioIsPlaybackDeviceDefault: {\n args: [\"u32\", \"u32\"],\n returns: \"bool\",\n },\n audioSelectPlaybackDevice: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioClearPlaybackDeviceSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n audioRefreshCaptureDevices: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioGetCaptureDeviceCount: {\n args: [\"u32\"],\n returns: \"u32\",\n },\n audioGetCaptureDeviceName: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n audioIsCaptureDeviceDefault: {\n args: [\"u32\", \"u32\"],\n returns: \"bool\",\n },\n audioSelectCaptureDevice: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioClearCaptureDeviceSelection: {\n args: [\"u32\"],\n returns: \"void\",\n },\n audioStartCapture: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioStopCapture: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioIsCaptureRunning: {\n args: [\"u32\"],\n returns: \"bool\",\n },\n audioReadCapture: {\n args: [\"u32\", \"ptr\", \"u32\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioGetCaptureStats: {\n args: [\"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioStart: {\n args: [\"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioStartMixer: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioStop: {\n args: [\"u32\"],\n returns: \"i32\",\n },\n audioCreateStream: {\n args: [\"u32\", \"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n audioWriteStream: {\n args: [\"u32\", \"u32\", \"ptr\", \"u32\"],\n returns: \"i32\",\n },\n audioEndStream: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioRestartStream: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioSetStreamVolume: {\n args: [\"u32\", \"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioSetStreamPan: {\n args: [\"u32\", \"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioSetStreamGroup: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioGetStreamStats: {\n args: [\"u32\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioCloseStream: {\n args: [\"u32\", \"u32\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioLoad: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioUnload: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioPlay: {\n args: [\"u32\", \"u32\", \"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n audioStopVoice: {\n args: [\"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioSetVoiceGroup: {\n args: [\"u32\", \"u32\", \"u32\"],\n returns: \"i32\",\n },\n audioCreateGroup: {\n args: [\"u32\", \"ptr\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n audioSetGroupVolume: {\n args: [\"u32\", \"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioSetMasterVolume: {\n args: [\"u32\", \"f32\"],\n returns: \"i32\",\n },\n audioMixToBuffer: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\"],\n returns: \"i32\",\n },\n audioEnableTap: {\n args: [\"u32\", \"bool\", \"u32\"],\n returns: \"i32\",\n },\n audioReadTap: {\n args: [\"u32\", \"ptr\", \"u32\", \"u8\", \"ptr\"],\n returns: \"i32\",\n },\n audioGetStats: {\n args: [\"u32\", \"ptr\"],\n returns: \"i32\",\n },\n\n // NativeSpanFeed\n createNativeSpanFeed: {\n args: [\"ptr\"],\n returns: \"ptr\",\n },\n attachNativeSpanFeed: {\n args: [\"ptr\"],\n returns: \"i32\",\n },\n destroyNativeSpanFeed: {\n args: [\"ptr\"],\n returns: \"void\",\n },\n streamWrite: {\n args: [\"ptr\", \"ptr\", \"u32\"],\n returns: \"i32\",\n },\n streamCommit: {\n args: [\"ptr\"],\n returns: \"i32\",\n },\n streamDrainSpans: {\n args: [\"ptr\", \"ptr\", \"u32\"],\n returns: \"u32\",\n },\n streamClose: {\n args: [\"ptr\"],\n returns: \"i32\",\n },\n streamReserve: {\n args: [\"ptr\", \"u32\", \"ptr\"],\n returns: \"i32\",\n },\n streamCommitReserved: {\n args: [\"ptr\", \"u32\"],\n returns: \"i32\",\n },\n streamSetOptions: {\n args: [\"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n streamGetStats: {\n args: [\"ptr\", \"ptr\"],\n returns: \"i32\",\n },\n streamSetCallback: {\n args: [\"ptr\", \"ptr\"],\n returns: \"void\",\n },\n })\n\n if (env.OTUI_DEBUG_FFI || env.OTUI_TRACE_FFI) {\n return {\n ...rawSymbols,\n symbols: convertToDebugSymbols(rawSymbols.symbols),\n }\n }\n\n return rawSymbols\n}\n\nfunction convertToDebugSymbols<T extends Record<string, any>>(symbols: T): T {\n // Initialize global state on first call\n if (!globalTraceSymbols) {\n globalTraceSymbols = {}\n }\n\n // Initialize global debug log path on first call\n if (env.OTUI_DEBUG_FFI && !globalFFILogPath) {\n const now = new Date()\n const timestamp = now.toISOString().replace(/[:.]/g, \"-\").replace(/T/, \"_\").split(\"Z\")[0]\n globalFFILogPath = `ffi_otui_debug_${timestamp}.log`\n }\n\n const debugSymbols: Record<string, any> = {}\n let hasTracing = false\n\n Object.entries(symbols).forEach(([key, value]) => {\n debugSymbols[key] = value\n })\n\n if (env.OTUI_DEBUG_FFI && globalFFILogPath) {\n const logPath = globalFFILogPath\n const writeSync = (msg: string) => {\n writeFileSync(logPath, msg + \"\\n\", { flag: \"a\" })\n }\n\n Object.entries(symbols).forEach(([key, value]) => {\n if (typeof value === \"function\") {\n debugSymbols[key] = (...args: any[]) => {\n writeSync(`${key}(${args.map((arg) => String(arg)).join(\", \")})`)\n const result = value(...args)\n writeSync(`${key} returned: ${String(result)}`)\n return result\n }\n }\n })\n }\n\n if (env.OTUI_TRACE_FFI) {\n hasTracing = true\n Object.entries(symbols).forEach(([key, value]) => {\n if (typeof value === \"function\") {\n // Initialize trace array for this symbol if not exists\n if (!globalTraceSymbols![key]) {\n globalTraceSymbols![key] = []\n }\n\n const originalFunc = debugSymbols[key]\n debugSymbols[key] = (...args: any[]) => {\n const start = performance.now()\n const result = originalFunc(...args)\n const end = performance.now()\n globalTraceSymbols![key].push(end - start)\n return result\n }\n }\n })\n }\n\n // Register exit handler only once\n if ((env.OTUI_DEBUG_FFI || env.OTUI_TRACE_FFI) && !exitHandlerRegistered) {\n exitHandlerRegistered = true\n\n process.on(\"exit\", () => {\n if (globalTraceSymbols) {\n const allStats: Array<{\n name: string\n count: number\n total: number\n average: number\n min: number\n max: number\n median: number\n p90: number\n p99: number\n }> = []\n\n for (const [key, timings] of Object.entries(globalTraceSymbols)) {\n if (!Array.isArray(timings) || timings.length === 0) {\n continue\n }\n\n const sortedTimings = [...timings].sort((a, b) => a - b)\n const count = sortedTimings.length\n\n const total = sortedTimings.reduce((acc, t) => acc + t, 0)\n const average = total / count\n const min = sortedTimings[0]\n const max = sortedTimings[count - 1]\n\n const medianIndex = Math.floor(count / 2)\n const p90Index = Math.floor(count * 0.9)\n const p99Index = Math.floor(count * 0.99)\n\n const median = sortedTimings[medianIndex]\n const p90 = sortedTimings[Math.min(p90Index, count - 1)]\n const p99 = sortedTimings[Math.min(p99Index, count - 1)]\n\n allStats.push({\n name: key,\n count,\n total,\n average,\n min,\n max,\n median,\n p90,\n p99,\n })\n }\n\n allStats.sort((a, b) => b.total - a.total)\n\n const lines: string[] = []\n lines.push(\"\\n--- OpenTUI FFI Call Performance ---\")\n lines.push(\"Sorted by total time spent (descending)\")\n lines.push(\n \"-------------------------------------------------------------------------------------------------------------------------\",\n )\n\n if (allStats.length === 0) {\n lines.push(\"No trace data collected or all symbols had zero calls.\")\n } else {\n const nameHeader = \"Symbol\"\n const callsHeader = \"Calls\"\n const totalHeader = \"Total (ms)\"\n const avgHeader = \"Avg (ms)\"\n const minHeader = \"Min (ms)\"\n const maxHeader = \"Max (ms)\"\n const medHeader = \"Med (ms)\"\n const p90Header = \"P90 (ms)\"\n const p99Header = \"P99 (ms)\"\n\n const nameWidth = Math.max(nameHeader.length, ...allStats.map((s) => s.name.length))\n const countWidth = Math.max(callsHeader.length, ...allStats.map((s) => String(s.count).length))\n const totalWidth = Math.max(totalHeader.length, ...allStats.map((s) => s.total.toFixed(2).length))\n const avgWidth = Math.max(avgHeader.length, ...allStats.map((s) => s.average.toFixed(2).length))\n const statWidthMin = Math.max(minHeader.length, ...allStats.map((s) => s.min.toFixed(2).length))\n const statWidthMax = Math.max(maxHeader.length, ...allStats.map((s) => s.max.toFixed(2).length))\n const medianWidth = Math.max(medHeader.length, ...allStats.map((s) => s.median.toFixed(2).length))\n const p90Width = Math.max(p90Header.length, ...allStats.map((s) => s.p90.toFixed(2).length))\n const p99Width = Math.max(p99Header.length, ...allStats.map((s) => s.p99.toFixed(2).length))\n\n lines.push(\n `${nameHeader.padEnd(nameWidth)} | ` +\n `${callsHeader.padStart(countWidth)} | ` +\n `${totalHeader.padStart(totalWidth)} | ` +\n `${avgHeader.padStart(avgWidth)} | ` +\n `${minHeader.padStart(statWidthMin)} | ` +\n `${maxHeader.padStart(statWidthMax)} | ` +\n `${medHeader.padStart(medianWidth)} | ` +\n `${p90Header.padStart(p90Width)} | ` +\n `${p99Header.padStart(p99Width)}`,\n )\n lines.push(\n `${\"-\".repeat(nameWidth)}-+-${\"-\".repeat(countWidth)}-+-${\"-\".repeat(totalWidth)}-+-${\"-\".repeat(avgWidth)}-+-${\"-\".repeat(statWidthMin)}-+-${\"-\".repeat(statWidthMax)}-+-${\"-\".repeat(medianWidth)}-+-${\"-\".repeat(p90Width)}-+-${\"-\".repeat(p99Width)}`,\n )\n\n allStats.forEach((stat) => {\n lines.push(\n `${stat.name.padEnd(nameWidth)} | ` +\n `${String(stat.count).padStart(countWidth)} | ` +\n `${stat.total.toFixed(2).padStart(totalWidth)} | ` +\n `${stat.average.toFixed(2).padStart(avgWidth)} | ` +\n `${stat.min.toFixed(2).padStart(statWidthMin)} | ` +\n `${stat.max.toFixed(2).padStart(statWidthMax)} | ` +\n `${stat.median.toFixed(2).padStart(medianWidth)} | ` +\n `${stat.p90.toFixed(2).padStart(p90Width)} | ` +\n `${stat.p99.toFixed(2).padStart(p99Width)}`,\n )\n })\n }\n lines.push(\n \"-------------------------------------------------------------------------------------------------------------------------\",\n )\n\n const output = lines.join(\"\\n\")\n console.log(output)\n\n try {\n const now = new Date()\n const timestamp = now.toISOString().replace(/[:.]/g, \"-\").replace(/T/, \"_\").split(\"Z\")[0]\n const traceFilePath = `ffi_otui_trace_${timestamp}.log`\n void writeFile(traceFilePath, output).catch((error) => {\n console.error(\"Failed to write FFI trace file:\", error)\n })\n } catch (e) {\n console.error(\"Failed to write FFI trace file:\", e)\n }\n }\n })\n }\n\n return debugSymbols as T\n}\n\n// Log levels matching Zig's LogLevel enum\nexport enum LogLevel {\n Error = 0,\n Warn = 1,\n Info = 2,\n Debug = 3,\n}\n\n/**\n * VisualCursor represents a cursor position with both visual and logical coordinates.\n * Visual coordinates (visualRow, visualCol) are VIEWPORT-RELATIVE.\n * This means visualRow=0 is the first visible line in the viewport, not the first line in the document.\n * Logical coordinates (logicalRow, logicalCol) are document-absolute.\n */\nexport interface VisualCursor {\n visualRow: number // Viewport-relative row (0 = top of viewport)\n visualCol: number // Viewport-relative column (0 = left edge of viewport when not wrapping)\n logicalRow: number // Document-absolute row\n logicalCol: number // Document-absolute column\n offset: number // Global display-width offset from buffer start\n}\n\nexport interface LogicalCursor {\n row: number\n col: number\n offset: number\n}\n\nexport interface MeasureResult {\n lineCount: number\n widthColsMax: number\n}\n\nexport interface CursorState {\n x: number\n y: number\n visible: boolean\n style: CursorStyle\n blinking: boolean\n color: RGBA\n}\n\nexport type NativeSpanFeedEventHandler = (eventId: number, arg0: Pointer, arg1: number | bigint) => void\n\nexport type NativeBufferedOutput = \"stdout\" | \"memory\"\n\nexport interface NativeRendererCreateOptions {\n remote?: boolean\n feedPtr?: Pointer | null\n bufferedOutput?: NativeBufferedOutput\n}\n\nexport interface NativeRenderOperationResult {\n renderOffset: number\n status: number\n}\n\nexport interface NativeYogaLayout {\n left: number\n top: number\n right: number\n bottom: number\n width: number\n height: number\n}\n\nexport type NativeYogaMeasureCallback = (\n node: Pointer | null,\n width: number,\n widthMode: number,\n height: number,\n heightMode: number,\n) => void\n\nexport type NativeYogaDirtiedCallback = (node: Pointer | null) => void\n\nexport const NativeMeasureTargetKind = {\n None: 0,\n TextBufferView: 1,\n EditorView: 2,\n} as const\n\nexport type NativeMeasureTargetKind = (typeof NativeMeasureTargetKind)[keyof typeof NativeMeasureTargetKind]\n\nexport type NativeMeasureTargetHandle = TextBufferViewHandle | EditorViewHandle\n\nexport interface AudioEngineLib {\n createAudioEngine: (options?: AudioCreateOptions | null) => AudioEngineHandle | null\n destroyAudioEngine: (engine: AudioEngineHandle) => void\n audioRefreshPlaybackDevices: (engine: AudioEngineHandle) => number\n audioGetPlaybackDeviceCount: (engine: AudioEngineHandle) => number\n audioGetPlaybackDeviceName: (engine: AudioEngineHandle, index: number) => string\n audioIsPlaybackDeviceDefault: (engine: AudioEngineHandle, index: number) => boolean\n audioSelectPlaybackDevice: (engine: AudioEngineHandle, index: number) => number\n audioClearPlaybackDeviceSelection: (engine: AudioEngineHandle) => void\n audioRefreshCaptureDevices: (engine: AudioEngineHandle) => number\n audioGetCaptureDeviceCount: (engine: AudioEngineHandle) => number\n audioGetCaptureDeviceName: (engine: AudioEngineHandle, index: number) => string\n audioIsCaptureDeviceDefault: (engine: AudioEngineHandle, index: number) => boolean\n audioSelectCaptureDevice: (engine: AudioEngineHandle, index: number) => number\n audioClearCaptureDeviceSelection: (engine: AudioEngineHandle) => void\n audioStartCapture: (\n engine: AudioEngineHandle,\n options: AudioStartOptions | undefined,\n channels: number,\n capacityFrames: number,\n ) => number\n audioStopCapture: (engine: AudioEngineHandle) => number\n audioIsCaptureRunning: (engine: AudioEngineHandle) => boolean\n audioReadCapture: (\n engine: AudioEngineHandle,\n outBuffer: Float32Array,\n frameCount: number,\n ) => { status: number; framesRead: number }\n audioGetCaptureStats: (engine: AudioEngineHandle) => { status: number; stats: NativeAudioCaptureStats | null }\n audioStart: (engine: AudioEngineHandle, options?: AudioStartOptions | null) => number\n audioStartMixer: (engine: AudioEngineHandle) => number\n audioStop: (engine: AudioEngineHandle) => number\n audioCreateStream: (\n engine: AudioEngineHandle,\n options: AudioStreamCreateOptions,\n ) => { status: number; streamId: number | null }\n audioWriteStream: (engine: AudioEngineHandle, streamId: number, data: Uint8Array) => number\n audioEndStream: (engine: AudioEngineHandle, streamId: number) => number\n audioRestartStream: (engine: AudioEngineHandle, streamId: number) => number\n audioSetStreamVolume: (engine: AudioEngineHandle, streamId: number, volume: number) => number\n audioSetStreamPan: (engine: AudioEngineHandle, streamId: number, pan: number) => number\n audioSetStreamGroup: (engine: AudioEngineHandle, streamId: number, groupId: number) => number\n audioGetStreamStats: (engine: AudioEngineHandle, streamId: number) => NativeAudioStreamStats | null\n audioCloseStream: (\n engine: AudioEngineHandle,\n streamId: number,\n reason: NativeAudioStreamCloseReason,\n ) => { status: number; stats: NativeAudioStreamStats | null }\n audioLoad: (engine: AudioEngineHandle, data: Uint8Array) => { status: number; soundId: number | null }\n audioUnload: (engine: AudioEngineHandle, soundId: number) => number\n audioPlay: (\n engine: AudioEngineHandle,\n soundId: number,\n options?: AudioVoiceOptions,\n ) => { status: number; voiceId: number | null }\n audioStopVoice: (engine: AudioEngineHandle, voiceId: number) => number\n audioSetVoiceGroup: (engine: AudioEngineHandle, voiceId: number, groupId: number) => number\n audioCreateGroup: (engine: AudioEngineHandle, name: string) => { status: number; groupId: number | null }\n audioSetGroupVolume: (engine: AudioEngineHandle, groupId: number, volume: number) => number\n audioSetMasterVolume: (engine: AudioEngineHandle, volume: number) => number\n audioMixToBuffer: (engine: AudioEngineHandle, outBuffer: Float32Array, frameCount: number, channels: number) => number\n audioEnableTap: (engine: AudioEngineHandle, enabled: boolean, capacityFrames: number) => number\n audioReadTap: (\n engine: AudioEngineHandle,\n outBuffer: Float32Array,\n frameCount: number,\n channels: number,\n ) => { status: number; framesRead: number }\n audioGetStats: (engine: AudioEngineHandle) => AudioStats | null\n}\n\nexport interface RenderLib extends AudioEngineLib {\n createRenderer: (width: number, height: number, options?: NativeRendererCreateOptions) => RendererHandle | null\n setTerminalEnvVar: (renderer: RendererHandle, key: string, value: string) => boolean\n destroyRenderer: (renderer: RendererHandle, flushInput?: boolean) => void\n setUseThread: (renderer: RendererHandle, useThread: boolean) => void\n setClearOnShutdown: (renderer: RendererHandle, clear: boolean) => void\n setBackgroundColor: (renderer: RendererHandle, color: RGBA) => void\n setRenderOffset: (renderer: RendererHandle, offset: number) => void\n resetSplitScrollback: (renderer: RendererHandle, seedRows: number, pinnedRenderOffset: number) => number\n syncSplitScrollback: (renderer: RendererHandle, pinnedRenderOffset: number) => number\n getSplitOutputOffset: (renderer: RendererHandle, surfaceOffset: number) => number\n setPendingSplitFooterTransition: (\n renderer: RendererHandle,\n mode: number,\n sourceTopLine: number,\n sourceHeight: number,\n targetTopLine: number,\n targetHeight: number,\n scrollLines: number,\n ) => void\n clearPendingSplitFooterTransition: (renderer: RendererHandle) => void\n updateStats: (renderer: RendererHandle, time: number, fps: number, frameCallbackTime: number) => void\n updateMemoryStats: (renderer: RendererHandle, heapUsed: number, heapTotal: number, arrayBuffers: number) => void\n getRenderStats: (renderer: RendererHandle) => NativeRenderStats\n render: (renderer: RendererHandle, force: boolean) => number\n repaintSplitFooter: (\n renderer: RendererHandle,\n pinnedRenderOffset: number,\n force: boolean,\n ) => NativeRenderOperationResult\n commitSplitFooterSnapshot: (\n renderer: RendererHandle,\n snapshot: OptimizedBuffer,\n rowColumns: number,\n startOnNewLine: boolean,\n trailingNewline: boolean,\n pinnedRenderOffset: number,\n force: boolean,\n // beginFrame/finalizeFrame mark commit boundaries when one JS flush contains\n // multiple stdout snapshots. Defaults preserve old one-call behavior.\n beginFrame?: boolean,\n finalizeFrame?: boolean,\n ) => NativeRenderOperationResult\n getNextBuffer: (renderer: RendererHandle) => OptimizedBuffer\n getCurrentBuffer: (renderer: RendererHandle) => OptimizedBuffer\n rendererSetPaletteState: (\n renderer: RendererHandle,\n palette: readonly RGBA[],\n defaultForeground: RGBA,\n defaultBackground: RGBA,\n paletteEpoch: number,\n ) => void\n createOptimizedBuffer: (\n width: number,\n height: number,\n widthMethod: WidthMethod,\n respectAlpha?: boolean,\n id?: string,\n ) => OptimizedBuffer\n destroyOptimizedBuffer: (bufferPtr: OptimizedBufferHandle) => void\n drawFrameBuffer: (\n targetBufferPtr: OptimizedBufferHandle,\n destX: number,\n destY: number,\n bufferPtr: OptimizedBufferHandle,\n sourceX?: number,\n sourceY?: number,\n sourceWidth?: number,\n sourceHeight?: number,\n ) => void\n getBufferWidth: (buffer: OptimizedBufferHandle) => number\n getBufferHeight: (buffer: OptimizedBufferHandle) => number\n bufferClear: (buffer: OptimizedBufferHandle, color: RGBA) => void\n bufferGetCharPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetFgPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetBgPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetAttributesPtr: (buffer: OptimizedBufferHandle) => Pointer\n bufferGetRespectAlpha: (buffer: OptimizedBufferHandle) => boolean\n bufferSetRespectAlpha: (buffer: OptimizedBufferHandle, respectAlpha: boolean) => void\n bufferGetId: (buffer: OptimizedBufferHandle) => string\n bufferGetRealCharSize: (buffer: OptimizedBufferHandle) => number\n bufferWriteResolvedChars: (buffer: OptimizedBufferHandle, outputBuffer: Uint8Array, addLineBreaks: boolean) => number\n bufferDrawText: (\n buffer: OptimizedBufferHandle,\n text: string,\n x: number,\n y: number,\n color: RGBA,\n bgColor?: RGBA,\n attributes?: number,\n ) => void\n bufferSetCellWithAlphaBlending: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) => void\n bufferSetCell: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) => void\n bufferFillRect: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n color: RGBA,\n ) => void\n bufferColorMatrix: (\n buffer: OptimizedBufferHandle,\n matrixPtr: Pointer,\n cellMaskPtr: Pointer,\n cellMaskCount: number,\n strength: number,\n target: TargetChannel,\n ) => void\n bufferColorMatrixUniform: (\n buffer: OptimizedBufferHandle,\n matrixPtr: Pointer,\n strength: number,\n target: TargetChannel,\n ) => void\n bufferDrawSuperSampleBuffer: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n pixelDataPtr: Pointer,\n pixelDataLength: number,\n format: \"bgra8unorm\" | \"rgba8unorm\",\n alignedBytesPerRow: number,\n ) => void\n bufferDrawImage: (\n buffer: OptimizedBufferHandle,\n image: ImageHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n pixelWidth: number,\n pixelHeight: number,\n sourceX: number,\n sourceY: number,\n sourceWidth: number,\n sourceHeight: number,\n protocol: ImageRenderProtocol,\n ) => boolean\n bufferDrawPackedBuffer: (\n buffer: OptimizedBufferHandle,\n dataPtr: Pointer,\n dataLen: number,\n posX: number,\n posY: number,\n terminalWidthCells: number,\n terminalHeightCells: number,\n ) => void\n bufferDrawGrayscaleBuffer: (\n buffer: OptimizedBufferHandle,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ) => void\n bufferDrawGrayscaleBufferSupersampled: (\n buffer: OptimizedBufferHandle,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ) => void\n bufferDrawGrid: (\n buffer: OptimizedBufferHandle,\n borderChars: Uint32Array,\n borderFg: RGBA,\n borderBg: RGBA,\n columnOffsets: Int32Array,\n columnCount: number,\n rowOffsets: Int32Array,\n rowCount: number,\n options: { drawInner: boolean; drawOuter: boolean },\n ) => void\n bufferDrawBox: (\n buffer: OptimizedBufferHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n borderChars: Uint32Array,\n packedOptions: number,\n borderColor: RGBA,\n backgroundColor: RGBA,\n titleColor: RGBA,\n title: string | null,\n bottomTitle: string | null,\n ) => void\n bufferResize: (buffer: OptimizedBufferHandle, width: number, height: number) => void\n resizeRenderer: (renderer: RendererHandle, width: number, height: number) => void\n setCursorPosition: (renderer: RendererHandle, x: number, y: number, visible: boolean) => void\n setCursorColor: (renderer: RendererHandle, color: RGBA) => void\n getCursorState: (renderer: RendererHandle) => CursorState\n setCursorStyleOptions: (renderer: RendererHandle, options: CursorStyleOptions) => void\n setDebugOverlay: (renderer: RendererHandle, enabled: boolean, corner: DebugOverlayCorner) => void\n clearTerminal: (renderer: RendererHandle) => void\n setTerminalTitle: (renderer: RendererHandle, title: string) => void\n copyToClipboardOSC52: (renderer: RendererHandle, target: number, textUtf8: Uint8Array) => boolean\n clearClipboardOSC52: (renderer: RendererHandle, target: number) => boolean\n clipboardServiceCreate: (\n maxConcurrentOperations: number,\n maxProviderTransfers: number,\n waylandSeat?: string,\n ) => ClipboardServiceHandle | null\n clipboardServiceBeginShutdown: (service: ClipboardServiceHandle) => NativeClipboardShutdownStatus\n clipboardServicePollShutdown: (service: ClipboardServiceHandle) => NativeClipboardShutdownStatus\n clipboardServiceDestroy: (service: ClipboardServiceHandle) => NativeClipboardDestroyStatus\n clipboardServiceDrain: (service: ClipboardServiceHandle) => number\n clipboardReadOperationStart: (\n service: ClipboardServiceHandle,\n request: Uint8Array,\n selection: number,\n maxBytes: number,\n maxImagePixels: number,\n maxConversionBytes: number,\n timeoutMs: number,\n ) => { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null }\n clipboardWriteOperationStart: (\n service: ClipboardServiceHandle,\n textUtf8: Uint8Array,\n selection: number,\n timeoutMs: number,\n ) => { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null }\n clipboardClearOperationStart: (\n service: ClipboardServiceHandle,\n selection: number,\n timeoutMs: number,\n ) => { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null }\n clipboardOperationPoll: (operation: ClipboardOperationHandle) => NativeClipboardOperationStatus\n clipboardOperationCancel: (operation: ClipboardOperationHandle) => NativeClipboardCancelStatus\n clipboardOperationResultMimeLength: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n length: number\n }\n clipboardOperationResultMimeCopy: (\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ) => NativeClipboardCopyStatus\n clipboardOperationResultDataLength: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n length: number\n }\n clipboardOperationResultDataCopy: (\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ) => NativeClipboardCopyStatus\n clipboardOperationResultErrorCode: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n errorCode: number\n }\n clipboardOperationResultDiagnosticLength: (operation: ClipboardOperationHandle) => {\n status: NativeClipboardCopyStatus\n length: number\n }\n clipboardOperationResultDiagnosticCopy: (\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ) => NativeClipboardCopyStatus\n clipboardOperationDestroy: (operation: ClipboardOperationHandle) => NativeClipboardDestroyStatus\n triggerNotification: (renderer: RendererHandle, message: string, title?: string) => boolean\n addToHitGrid: (renderer: RendererHandle, x: number, y: number, width: number, height: number, id: number) => void\n clearCurrentHitGrid: (renderer: RendererHandle) => void\n hitGridPushScissorRect: (renderer: RendererHandle, x: number, y: number, width: number, height: number) => void\n hitGridPopScissorRect: (renderer: RendererHandle) => void\n hitGridClearScissorRects: (renderer: RendererHandle) => void\n addToCurrentHitGridClipped: (\n renderer: RendererHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n id: number,\n ) => void\n checkHit: (renderer: RendererHandle, x: number, y: number) => number\n getHitGridDirty: (renderer: RendererHandle) => boolean\n dumpHitGrid: (renderer: RendererHandle) => void\n dumpBuffers: (renderer: RendererHandle, timestamp?: number) => void\n dumpOutputBuffer: (renderer: RendererHandle, timestamp?: number) => void\n restoreTerminalModes: (renderer: RendererHandle) => void\n enableMouse: (renderer: RendererHandle, enableMovement: boolean) => void\n disableMouse: (renderer: RendererHandle) => void\n enableKittyKeyboard: (renderer: RendererHandle, flags: number) => void\n disableKittyKeyboard: (renderer: RendererHandle) => void\n setKittyKeyboardFlags: (renderer: RendererHandle, flags: number) => void\n getKittyKeyboardFlags: (renderer: RendererHandle) => number\n setupTerminal: (renderer: RendererHandle, useAlternateScreen: boolean) => void\n suspendRenderer: (renderer: RendererHandle) => void\n resumeRenderer: (renderer: RendererHandle) => void\n queryPixelResolution: (renderer: RendererHandle) => void\n queryThemeColors: (renderer: RendererHandle) => void\n writeOut: (renderer: RendererHandle, data: string | Uint8Array) => void\n\n // Yoga layout methods\n yogaConfigCreate: () => Pointer\n yogaConfigFree: (config: Pointer) => void\n yogaConfigSetUseWebDefaults: (config: Pointer, enabled: boolean) => void\n yogaConfigGetUseWebDefaults: (config: Pointer) => boolean\n yogaConfigSetPointScaleFactor: (config: Pointer, pointScaleFactor: number) => void\n yogaConfigGetPointScaleFactor: (config: Pointer) => number\n yogaConfigSetErrata: (config: Pointer, errata: number) => void\n yogaConfigGetErrata: (config: Pointer) => number\n yogaConfigSetExperimentalFeatureEnabled: (config: Pointer, feature: number, enabled: boolean) => void\n yogaConfigIsExperimentalFeatureEnabled: (config: Pointer, feature: number) => boolean\n yogaNodeCreate: () => Pointer\n yogaNodeCreateForOpenTUI: () => Pointer\n yogaNodeCreateWithConfig: (config: Pointer) => Pointer\n yogaNodeFree: (node: Pointer) => void\n yogaNodeFreeRecursive: (node: Pointer) => void\n yogaNodeReset: (node: Pointer) => void\n yogaNodeCopyStyle: (dstNode: Pointer, srcNode: Pointer) => void\n yogaNodeInsertChild: (node: Pointer, child: Pointer, index: number) => void\n yogaNodeRemoveChild: (node: Pointer, child: Pointer) => void\n yogaNodeRemoveAllChildren: (node: Pointer) => void\n yogaNodeGetChild: (node: Pointer, index: number) => Pointer | null\n yogaNodeGetChildCount: (node: Pointer) => number\n yogaNodeGetParent: (node: Pointer) => Pointer | null\n yogaNodeCalculateLayout: (node: Pointer, width: number, height: number, direction: number) => void\n yogaNodeIsDirty: (node: Pointer) => boolean\n yogaNodeMarkDirty: (node: Pointer) => void\n yogaNodeGetHasNewLayout: (node: Pointer) => boolean\n yogaNodeSetHasNewLayout: (node: Pointer, hasNewLayout: boolean) => void\n yogaNodeSetIsReferenceBaseline: (node: Pointer, isReferenceBaseline: boolean) => void\n yogaNodeIsReferenceBaseline: (node: Pointer) => boolean\n yogaNodeSetAlwaysFormsContainingBlock: (node: Pointer, alwaysFormsContainingBlock: boolean) => void\n yogaNodeGetAlwaysFormsContainingBlock: (node: Pointer) => boolean\n yogaNodeGetComputedLayout: (node: Pointer) => NativeYogaLayout\n yogaNodeLayoutGetEdge: (node: Pointer, kind: number, edge: number) => number\n yogaNodeStyleSetEnum: (node: Pointer, kind: number, value: number) => void\n yogaNodeStyleGetEnum: (node: Pointer, kind: number) => number\n yogaNodeStyleSetFloat: (node: Pointer, kind: number, value: number) => void\n yogaNodeStyleGetFloat: (node: Pointer, kind: number) => number\n yogaNodeStyleSetBorder: (node: Pointer, edge: number, border: number) => void\n yogaNodeStyleGetBorder: (node: Pointer, edge: number) => number\n yogaNodeStyleSetValue: (node: Pointer, kind: number, edgeOrGutter: number, unit: number, value: number) => void\n yogaNodeStyleGetValue: (node: Pointer, kind: number, edgeOrGutter: number) => number | bigint\n yogaNodeSetMeasureFunc: (node: Pointer, enabled: boolean) => void\n yogaNodeUnsetMeasureFunc: (node: Pointer) => void\n yogaNodeHasMeasureFunc: (node: Pointer) => boolean\n yogaNodeSetDirtiedFunc: (node: Pointer, enabled: boolean) => void\n yogaNodeUnsetDirtiedFunc: (node: Pointer) => void\n yogaStoreMeasureResult: (width: number, height: number) => void\n yogaSetMeasureCallback: (callback: Pointer | null) => void\n yogaSetDirtiedCallback: (callback: Pointer | null) => void\n createYogaMeasureCallback: (callback: NativeYogaMeasureCallback) => FFICallbackInstance\n createYogaDirtiedCallback: (callback: NativeYogaDirtiedCallback) => FFICallbackInstance\n\n // TextBuffer methods\n createTextBuffer: (widthMethod: WidthMethod) => TextBuffer\n destroyTextBuffer: (buffer: TextBufferHandle) => void\n textBufferGetLength: (buffer: TextBufferHandle) => number\n textBufferGetByteSize: (buffer: TextBufferHandle) => number\n\n textBufferReset: (buffer: TextBufferHandle) => void\n textBufferClear: (buffer: TextBufferHandle) => void\n textBufferRegisterMemBuffer: (buffer: TextBufferHandle, bytes: Uint8Array, owned?: boolean) => number\n textBufferReplaceMemBuffer: (buffer: TextBufferHandle, memId: number, bytes: Uint8Array, owned?: boolean) => boolean\n textBufferClearMemRegistry: (buffer: TextBufferHandle) => void\n textBufferSetTextFromMem: (buffer: TextBufferHandle, memId: number) => void\n textBufferAppend: (buffer: TextBufferHandle, bytes: Uint8Array) => void\n textBufferAppendFromMemId: (buffer: TextBufferHandle, memId: number) => void\n textBufferLoadFile: (buffer: TextBufferHandle, path: string) => boolean\n textBufferSetStyledText: (\n buffer: TextBufferHandle,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number; link?: { url: string } }>,\n ) => void\n textBufferSetDefaultFg: (buffer: TextBufferHandle, fg: RGBA | null) => void\n textBufferSetDefaultBg: (buffer: TextBufferHandle, bg: RGBA | null) => void\n textBufferSetDefaultAttributes: (buffer: TextBufferHandle, attributes: number | null) => void\n textBufferResetDefaults: (buffer: TextBufferHandle) => void\n textBufferGetTabWidth: (buffer: TextBufferHandle) => number\n textBufferSetTabWidth: (buffer: TextBufferHandle, width: number) => void\n textBufferGetLineCount: (buffer: TextBufferHandle) => number\n getPlainTextBytes: (buffer: TextBufferHandle, maxLength: number) => Uint8Array | null\n textBufferGetTextRange: (\n buffer: TextBufferHandle,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ) => Uint8Array | null\n textBufferGetTextRangeByCoords: (\n buffer: TextBufferHandle,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ) => Uint8Array | null\n\n // TextBufferView methods\n createTextBufferView: (textBuffer: TextBufferHandle) => TextBufferViewHandle\n destroyTextBufferView: (view: TextBufferViewHandle) => void\n textBufferViewSetSelection: (\n view: TextBufferViewHandle,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => void\n textBufferViewResetSelection: (view: TextBufferViewHandle) => void\n textBufferViewGetSelection: (view: TextBufferViewHandle) => { start: number; end: number } | null\n textBufferViewSetLocalSelection: (\n view: TextBufferViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => boolean\n textBufferViewUpdateSelection: (\n view: TextBufferViewHandle,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => void\n textBufferViewUpdateLocalSelection: (\n view: TextBufferViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => boolean\n textBufferViewResetLocalSelection: (view: TextBufferViewHandle) => void\n textBufferViewSetWrapWidth: (view: TextBufferViewHandle, width: number) => void\n textBufferViewSetWrapMode: (view: TextBufferViewHandle, mode: \"none\" | \"char\" | \"word\") => void\n textBufferViewSetFirstLineOffset: (view: TextBufferViewHandle, offset: number) => void\n textBufferViewSetViewportSize: (view: TextBufferViewHandle, width: number, height: number) => void\n textBufferViewSetViewport: (view: TextBufferViewHandle, x: number, y: number, width: number, height: number) => void\n textBufferViewGetLineInfo: (view: TextBufferViewHandle) => LineInfo\n textBufferViewGetLogicalLineInfo: (view: TextBufferViewHandle) => LineInfo\n textBufferViewGetSelectedTextBytes: (view: TextBufferViewHandle, maxLength: number) => Uint8Array | null\n textBufferViewGetPlainTextBytes: (view: TextBufferViewHandle, maxLength: number) => Uint8Array | null\n textBufferViewSetTabIndicator: (view: TextBufferViewHandle, indicator: number) => void\n textBufferViewSetTabIndicatorColor: (view: TextBufferViewHandle, color: RGBA) => void\n textBufferViewSetTruncate: (view: TextBufferViewHandle, truncate: boolean) => void\n textBufferViewMeasureForDimensions: (\n view: TextBufferViewHandle,\n width: number,\n height: number,\n ) => MeasureResult | null\n textBufferViewGetVirtualLineCount: (view: TextBufferViewHandle) => number\n\n readonly encoder: TextEncoder\n readonly decoder: TextDecoder\n bufferDrawTextBufferView: (buffer: OptimizedBufferHandle, view: TextBufferViewHandle, x: number, y: number) => void\n bufferDrawEditorView: (buffer: OptimizedBufferHandle, view: EditorViewHandle, x: number, y: number) => void\n\n // EditBuffer methods\n createEditBuffer: (widthMethod: WidthMethod) => EditBufferHandle\n destroyEditBuffer: (buffer: EditBufferHandle) => void\n editBufferSetText: (buffer: EditBufferHandle, textBytes: Uint8Array) => void\n editBufferSetTextFromMem: (buffer: EditBufferHandle, memId: number) => void\n editBufferReplaceText: (buffer: EditBufferHandle, textBytes: Uint8Array) => void\n editBufferReplaceTextFromMem: (buffer: EditBufferHandle, memId: number) => void\n editBufferGetText: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null\n editBufferInsertChar: (buffer: EditBufferHandle, char: string) => void\n editBufferInsertText: (buffer: EditBufferHandle, text: string) => void\n editBufferDeleteChar: (buffer: EditBufferHandle) => void\n editBufferDeleteCharBackward: (buffer: EditBufferHandle) => void\n editBufferDeleteRange: (\n buffer: EditBufferHandle,\n startLine: number,\n startCol: number,\n endLine: number,\n endCol: number,\n ) => void\n editBufferNewLine: (buffer: EditBufferHandle) => void\n editBufferDeleteLine: (buffer: EditBufferHandle) => void\n editBufferMoveCursorLeft: (buffer: EditBufferHandle) => void\n editBufferMoveCursorRight: (buffer: EditBufferHandle) => void\n editBufferMoveCursorUp: (buffer: EditBufferHandle) => void\n editBufferMoveCursorDown: (buffer: EditBufferHandle) => void\n editBufferGotoLine: (buffer: EditBufferHandle, line: number) => void\n editBufferSetCursor: (buffer: EditBufferHandle, line: number, col: number) => void\n editBufferSetCursorToLineCol: (buffer: EditBufferHandle, line: number, col: number) => void\n editBufferSetCursorByOffset: (buffer: EditBufferHandle, offset: number) => void\n editBufferGetCursorPosition: (buffer: EditBufferHandle) => LogicalCursor\n editBufferGetId: (buffer: EditBufferHandle) => number\n editBufferGetTextBuffer: (buffer: EditBufferHandle) => TextBufferHandle\n editBufferDebugLogRope: (buffer: EditBufferHandle) => void\n editBufferUndo: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null\n editBufferRedo: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null\n editBufferCanUndo: (buffer: EditBufferHandle) => boolean\n editBufferCanRedo: (buffer: EditBufferHandle) => boolean\n editBufferClearHistory: (buffer: EditBufferHandle) => void\n editBufferClear: (buffer: EditBufferHandle) => void\n editBufferGetNextWordBoundary: (buffer: EditBufferHandle) => { row: number; col: number; offset: number }\n editBufferGetPrevWordBoundary: (buffer: EditBufferHandle) => { row: number; col: number; offset: number }\n editBufferGetEOL: (buffer: EditBufferHandle) => { row: number; col: number; offset: number }\n editBufferOffsetToPosition: (\n buffer: EditBufferHandle,\n offset: number,\n ) => { row: number; col: number; offset: number } | null\n editBufferPositionToOffset: (buffer: EditBufferHandle, row: number, col: number) => number\n editBufferGetLineStartOffset: (buffer: EditBufferHandle, row: number) => number\n editBufferGetTextRange: (\n buffer: EditBufferHandle,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ) => Uint8Array | null\n editBufferGetTextRangeByCoords: (\n buffer: EditBufferHandle,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ) => Uint8Array | null\n\n // EditorView methods\n createEditorView: (editBufferPtr: EditBufferHandle, viewportWidth: number, viewportHeight: number) => EditorViewHandle\n destroyEditorView: (view: EditorViewHandle) => void\n editorViewSetViewportSize: (view: EditorViewHandle, width: number, height: number) => void\n editorViewSetViewport: (\n view: EditorViewHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n moveCursor: boolean,\n ) => void\n editorViewGetViewport: (view: EditorViewHandle) => { offsetY: number; offsetX: number; height: number; width: number }\n editorViewSetScrollMargin: (view: EditorViewHandle, margin: number) => void\n editorViewSetWrapMode: (view: EditorViewHandle, mode: \"none\" | \"char\" | \"word\") => void\n editorViewGetVirtualLineCount: (view: EditorViewHandle) => number\n editorViewGetTotalVirtualLineCount: (view: EditorViewHandle) => number\n editorViewGetTextBufferView: (view: EditorViewHandle) => TextBufferViewHandle\n editorViewSetSelection: (\n view: EditorViewHandle,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ) => void\n editorViewResetSelection: (view: EditorViewHandle) => void\n editorViewGetSelection: (view: EditorViewHandle) => { start: number; end: number } | null\n editorViewSetLocalSelection: (\n view: EditorViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ) => boolean\n\n editorViewUpdateSelection: (view: EditorViewHandle, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void\n editorViewUpdateLocalSelection: (\n view: EditorViewHandle,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ) => boolean\n\n editorViewResetLocalSelection: (view: EditorViewHandle) => void\n editorViewGetSelectedTextBytes: (view: EditorViewHandle, maxLength: number) => Uint8Array | null\n editorViewGetCursor: (view: EditorViewHandle) => { row: number; col: number }\n editorViewGetText: (view: EditorViewHandle, maxLength: number) => Uint8Array | null\n editorViewGetVisualCursor: (view: EditorViewHandle) => VisualCursor\n editorViewMoveUpVisual: (view: EditorViewHandle) => void\n editorViewMoveDownVisual: (view: EditorViewHandle) => void\n editorViewDeleteSelectedText: (view: EditorViewHandle) => void\n editorViewSetCursorByOffset: (view: EditorViewHandle, offset: number) => void\n editorViewGetNextWordBoundary: (view: EditorViewHandle) => VisualCursor\n editorViewGetPrevWordBoundary: (view: EditorViewHandle) => VisualCursor\n editorViewGetEOL: (view: EditorViewHandle) => VisualCursor\n editorViewGetVisualSOL: (view: EditorViewHandle) => VisualCursor\n editorViewGetVisualEOL: (view: EditorViewHandle) => VisualCursor\n editorViewGetLineInfo: (view: EditorViewHandle) => LineInfo\n editorViewGetLogicalLineInfo: (view: EditorViewHandle) => LineInfo\n editorViewSetPlaceholderStyledText: (\n view: EditorViewHandle,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number }>,\n ) => void\n editorViewSetTabIndicator: (view: EditorViewHandle, indicator: number) => void\n editorViewSetTabIndicatorColor: (view: EditorViewHandle, color: RGBA) => void\n\n bufferPushScissorRect: (buffer: OptimizedBufferHandle, x: number, y: number, width: number, height: number) => void\n bufferPopScissorRect: (buffer: OptimizedBufferHandle) => void\n bufferClearScissorRects: (buffer: OptimizedBufferHandle) => void\n bufferPushOpacity: (buffer: OptimizedBufferHandle, opacity: number) => void\n bufferPopOpacity: (buffer: OptimizedBufferHandle) => void\n bufferGetCurrentOpacity: (buffer: OptimizedBufferHandle) => number\n bufferClearOpacity: (buffer: OptimizedBufferHandle) => void\n textBufferAddHighlightByCharRange: (buffer: TextBufferHandle, highlight: Highlight) => void\n textBufferAddHighlight: (buffer: TextBufferHandle, lineIdx: number, highlight: Highlight) => void\n textBufferRemoveHighlightsByRef: (buffer: TextBufferHandle, hlRef: number) => void\n textBufferClearLineHighlights: (buffer: TextBufferHandle, lineIdx: number) => void\n textBufferClearAllHighlights: (buffer: TextBufferHandle) => void\n textBufferSetSyntaxStyle: (buffer: TextBufferHandle, style: SyntaxStyleHandle | null) => boolean\n textBufferGetLineHighlights: (buffer: TextBufferHandle, lineIdx: number) => Array<Highlight>\n textBufferGetHighlightCount: (buffer: TextBufferHandle) => number\n\n getArenaAllocatedBytes: () => number\n getBuildOptions: () => BuildOptions\n getAllocatorStats: () => AllocatorStats\n\n createSyntaxStyle: () => SyntaxStyleHandle\n destroySyntaxStyle: (style: SyntaxStyleHandle) => void\n syntaxStyleRegister: (\n style: SyntaxStyleHandle,\n name: string,\n fg: RGBA | null,\n bg: RGBA | null,\n attributes: number,\n ) => number\n syntaxStyleResolveByName: (style: SyntaxStyleHandle, name: string) => number | null\n syntaxStyleGetStyleCount: (style: SyntaxStyleHandle) => number\n\n imageInfo: (data: Uint8Array) => { status: number; info: NativeImageInfo }\n imageRetainIccCache: () => void\n imageReleaseIccCache: () => void\n imageTestFailIccProfileCopyAllocationOnce: () => void\n imageDecode: (data: Uint8Array) => { status: number; handle: ImageHandle | null }\n imageCreateFromRgba: (\n pixels: Uint8Array,\n width: number,\n height: number,\n stride: number,\n ) => { status: number; handle: ImageHandle | null }\n imageDestroy: (image: ImageHandle) => void\n imageRetain: (image: ImageHandle) => { status: number; handle: ImageHandle | null }\n imageGetInfo: (image: ImageHandle) => { status: number; info: NativeImageInfo }\n imageMaterialize: (image: ImageHandle) => number\n imageEnsureEncodedPng: (image: ImageHandle) => number\n imageGetPixelsPtr: (image: ImageHandle) => Pointer | null\n imageClone: (image: ImageHandle) => { status: number; handle: ImageHandle | null }\n imageCopyPixels: (image: ImageHandle, destination: Uint8Array, stride: number, bgra: boolean) => number\n imageResize: (\n image: ImageHandle,\n width: number,\n height: number,\n filter: number,\n ) => { status: number; handle: ImageHandle | null }\n imageExtract: (\n image: ImageHandle,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => { status: number; handle: ImageHandle | null }\n imageExtend: (\n image: ImageHandle,\n top: number,\n right: number,\n bottom: number,\n left: number,\n background: Uint8Array,\n ) => { status: number; handle: ImageHandle | null }\n imageTransform: (image: ImageHandle, operation: number) => { status: number; handle: ImageHandle | null }\n imageComposite: (\n base: ImageHandle,\n overlay: ImageHandle,\n left: number,\n top: number,\n blend: number,\n opacity: number,\n ) => { status: number; handle: ImageHandle | null }\n\n getTerminalCapabilities: (renderer: RendererHandle) => TerminalCapabilities\n processCapabilityResponse: (renderer: RendererHandle, response: string) => void\n\n encodeUnicode: (\n text: string,\n widthMethod: WidthMethod,\n ) => { ptr: Pointer; data: Array<{ width: number; char: number }> } | null\n freeUnicode: (encoded: { ptr: Pointer; data: Array<{ width: number; char: number }> }) => void\n bufferDrawChar: (\n buffer: OptimizedBufferHandle,\n char: number,\n x: number,\n y: number,\n fg: RGBA,\n bg: RGBA,\n attributes?: number,\n ) => void\n\n registerNativeSpanFeedStream: (stream: Pointer, handler: NativeSpanFeedEventHandler) => void\n unregisterNativeSpanFeedStream: (stream: Pointer) => void\n createNativeSpanFeed: (options?: NativeSpanFeedOptions | null) => Pointer\n attachNativeSpanFeed: (stream: Pointer) => number\n destroyNativeSpanFeed: (stream: Pointer) => void\n streamWrite: (stream: Pointer, data: Uint8Array | string) => number\n streamCommit: (stream: Pointer) => number\n streamDrainSpans: (stream: Pointer, outBuffer: Uint8Array, maxSpans: number) => number\n streamClose: (stream: Pointer) => number\n streamSetOptions: (stream: Pointer, options: NativeSpanFeedOptions) => number\n streamGetStats: (stream: Pointer) => NativeSpanFeedStats | null\n streamReserve: (stream: Pointer, minLen: number) => { status: number; info: ReserveInfo | null }\n streamCommitReserved: (stream: Pointer, length: number) => number\n createNativeRenderable: () => NativeRenderableHandle\n destroyNativeRenderable: (handle: NativeRenderableHandle) => void\n nativeRenderableAttachYogaNode: (handle: NativeRenderableHandle, node: Pointer) => boolean\n nativeRenderableSetMeasureTarget: (\n handle: NativeRenderableHandle,\n kind: NativeMeasureTargetKind,\n target: NativeMeasureTargetHandle | 0,\n ) => boolean\n onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void\n onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void\n offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void\n onAnyNativeEvent: (handler: (name: string, data: ArrayBuffer) => void) => void\n}\n\nclass FFIRenderLib implements RenderLib {\n private opentui: ReturnType<typeof getOpenTUILib>\n private iccCacheClient = false\n // Layout reads are synchronous and non-reentrant. Retain one backing buffer so\n // Node does not allocate and resolve a new output pointer for every node.\n private readonly yogaLayout = new Float32Array(6)\n private readonly yogaLayoutPtr = ptr(this.yogaLayout)\n private readonly ffiStructStorage = {\n logicalCursor: {\n ...allocStruct(LogicalCursorStruct),\n result: { row: 0, col: 0, offset: 0 } as LogicalCursor,\n },\n visualCursor: {\n ...allocStruct(VisualCursorStruct),\n result: {\n visualRow: 0,\n visualCol: 0,\n logicalRow: 0,\n logicalCol: 0,\n offset: 0,\n } as VisualCursor,\n },\n measureResult: {\n ...allocStruct(MeasureResultStruct),\n result: { lineCount: 0, widthColsMax: 0 } as MeasureResult,\n },\n audioStreamStats: {\n ...allocStruct(AudioStreamStatsStruct),\n result: {\n bytesReceived: 0n,\n framesDecoded: 0n,\n framesPlayed: 0n,\n state: 0,\n sampleRate: 0,\n channels: 0,\n bufferedFrames: 0,\n capacityFrames: 0,\n underruns: 0,\n errorCode: 0,\n readyGeneration: 0,\n } as NativeAudioStreamStats,\n },\n imageDrawOptions: allocStruct(ImageDrawOptionsStruct),\n gridDrawOptions: allocStruct(GridDrawOptionsStruct),\n }\n private disposed = false\n private clipboardServices = new Set<ClipboardServiceHandle>()\n public readonly encoder: TextEncoder = new TextEncoder()\n public readonly decoder: TextDecoder = new TextDecoder()\n private logCallbackWrapper: FFICallbackInstance | null = null\n private eventCallbackWrapper: FFICallbackInstance | null = null\n private eventSinkPtr: EventSinkHandle | null = null\n private _nativeEvents: EventEmitter = new EventEmitter()\n private _anyEventHandlers: Array<(name: string, data: ArrayBuffer) => void> = []\n private nativeSpanFeedCallbackWrapper: FFICallbackInstance | null = null\n private nativeSpanFeedHandlers = new Map<Pointer, NativeSpanFeedEventHandler>()\n\n public createNativeRenderable(): NativeRenderableHandle {\n const handle = this.opentui.symbols.createNativeRenderable() as NativeRenderableHandle\n if (!handle) throw new Error(\"Failed to create native renderable\")\n return handle\n }\n\n public destroyNativeRenderable(handle: NativeRenderableHandle): void {\n this.opentui.symbols.destroyNativeRenderable(handle)\n }\n\n public nativeRenderableAttachYogaNode(handle: NativeRenderableHandle, node: Pointer): boolean {\n // Node's FFI returns bools as 0/1 numbers; normalize so the interface stays truthful.\n return Boolean(this.opentui.symbols.nativeRenderableAttachYogaNode(handle, node))\n }\n\n public nativeRenderableSetMeasureTarget(\n handle: NativeRenderableHandle,\n kind: NativeMeasureTargetKind,\n target: NativeMeasureTargetHandle | 0,\n ): boolean {\n return Boolean(this.opentui.symbols.nativeRenderableSetMeasureTarget(handle, kind, target))\n }\n\n constructor(libPath?: string) {\n this.opentui = getOpenTUILib(libPath)\n this.imageRetainIccCache()\n this.iccCacheClient = true\n try {\n this.setupLogging()\n this.setupEventBus()\n } catch (error) {\n this.dispose()\n throw error\n }\n }\n\n private setupLogging() {\n if (this.logCallbackWrapper) {\n return\n }\n\n const logCallback = this.opentui.createCallback(\n (level: number, msgPtr: Pointer, msgLen: number) => {\n try {\n if (msgLen === 0 || !msgPtr) {\n return\n }\n\n const msgBuffer = toArrayBuffer(msgPtr, 0, msgLen)\n const msgBytes = new Uint8Array(msgBuffer)\n const message = this.decoder.decode(msgBytes)\n\n switch (level) {\n case LogLevel.Error:\n console.error(message)\n break\n case LogLevel.Warn:\n console.warn(message)\n break\n case LogLevel.Info:\n console.info(message)\n break\n case LogLevel.Debug:\n console.debug(message)\n break\n default:\n console.log(message)\n }\n } catch (error) {\n console.error(\"Error in Zig log callback:\", error)\n }\n },\n {\n args: [\"u8\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n )\n\n this.logCallbackWrapper = logCallback\n\n if (!logCallback.ptr) {\n throw new Error(\"Failed to create log callback\")\n }\n\n this.setLogCallback(logCallback.ptr)\n }\n\n private setLogCallback(callbackPtr: Pointer | null) {\n this.opentui.symbols.setLogCallback(callbackPtr)\n }\n\n public dispose(): void {\n if (this.disposed) return\n if (this.clipboardServices.size > 0) {\n throw new Error(\"Cannot dispose OpenTUI native library while clipboard services are active\")\n }\n this.disposed = true\n try {\n if (this.eventSinkPtr) {\n this.opentui.symbols.destroyEventSink(this.eventSinkPtr)\n this.eventSinkPtr = null\n }\n\n this.yogaSetMeasureCallback(null)\n this.yogaSetDirtiedCallback(null)\n this.setLogCallback(null)\n } finally {\n try {\n if (this.iccCacheClient) {\n this.iccCacheClient = false\n this.imageReleaseIccCache()\n }\n } finally {\n try {\n this.opentui.close()\n } finally {\n this.eventCallbackWrapper = null\n this.logCallbackWrapper = null\n this.nativeSpanFeedCallbackWrapper = null\n this.nativeSpanFeedHandlers.clear()\n }\n }\n }\n }\n\n private setupEventBus() {\n if (this.eventCallbackWrapper) {\n return\n }\n\n const eventCallback = this.opentui.createCallback(\n (namePtr: Pointer, nameLen: number, dataPtr: Pointer, dataLen: number) => {\n try {\n if (nameLen === 0 || !namePtr) {\n return\n }\n\n const eventName = this.decoder.decode(toArrayBuffer(namePtr, 0, nameLen))\n const eventData = dataLen > 0 && dataPtr ? toArrayBuffer(dataPtr, 0, dataLen).slice(0) : new ArrayBuffer(0)\n\n queueMicrotask(() => {\n this._nativeEvents.emit(eventName, eventData)\n\n for (const handler of this._anyEventHandlers) {\n handler(eventName, eventData)\n }\n })\n } catch (error) {\n console.error(\"Error in native event callback:\", error)\n }\n },\n {\n args: [\"ptr\", \"u32\", \"ptr\", \"u32\"],\n returns: \"void\",\n },\n )\n\n this.eventCallbackWrapper = eventCallback\n\n if (!eventCallback.ptr) {\n throw new Error(\"Failed to create event callback\")\n }\n\n this.eventSinkPtr = this.opentui.symbols.createEventSink(eventCallback.ptr)\n if (!this.eventSinkPtr) {\n eventCallback.close()\n this.eventCallbackWrapper = null\n throw new Error(\"Failed to create native event sink\")\n }\n }\n\n private ensureNativeSpanFeedCallback(): FFICallbackInstance {\n if (this.nativeSpanFeedCallbackWrapper) {\n return this.nativeSpanFeedCallbackWrapper\n }\n\n const callback = this.opentui.createCallback(\n (streamPtr: Pointer, eventId: number, arg0: Pointer, arg1: number | bigint) => {\n const handler = this.nativeSpanFeedHandlers.get(streamPtr)\n if (handler) {\n handler(eventId, arg0, arg1)\n }\n },\n {\n args: [\"ptr\", \"u32\", \"ptr\", \"u64\"],\n returns: \"void\",\n },\n )\n\n this.nativeSpanFeedCallbackWrapper = callback\n\n if (!callback.ptr) {\n throw new Error(\"Failed to create native span feed callback\")\n }\n\n return callback\n }\n\n public createRenderer(width: number, height: number, options: NativeRendererCreateOptions = {}) {\n const bufferedOutputKind = options.bufferedOutput === \"memory\" ? 1 : 0\n const remoteMode = options.remote === undefined ? 0 : options.remote ? 2 : 1\n // `feedPtr` is an internal wiring detail: non-null selects the feed backend\n // used for custom Writable output. When null, `bufferedOutput` selects the\n // buffered stdout or memory backend.\n const feedPtr = options.feedPtr ?? null\n const renderer = this.opentui.symbols.createRenderer(\n width,\n height,\n bufferedOutputKind,\n remoteMode,\n feedPtr,\n ) as RendererHandle\n return renderer ? renderer : null\n }\n\n public setTerminalEnvVar(renderer: Pointer, key: string, value: string): boolean {\n const keyBytes = this.encoder.encode(key)\n const valueBytes = this.encoder.encode(value)\n return this.opentui.symbols.setTerminalEnvVar(\n renderer,\n ptrOrNull(keyBytes),\n keyBytes.byteLength,\n ptrOrNull(valueBytes),\n valueBytes.byteLength,\n )\n }\n\n public destroyRenderer(renderer: Pointer, flushInput: boolean = false): void {\n this.opentui.symbols.destroyRenderer(renderer, ffiBool(flushInput))\n }\n\n public setUseThread(renderer: Pointer, useThread: boolean) {\n this.opentui.symbols.setUseThread(renderer, ffiBool(useThread))\n }\n\n public setClearOnShutdown(renderer: Pointer, clear: boolean) {\n this.opentui.symbols.setClearOnShutdown(renderer, ffiBool(clear))\n }\n\n public setBackgroundColor(renderer: Pointer, color: RGBA) {\n this.opentui.symbols.setBackgroundColor(renderer, rgbaPtr(color))\n }\n\n public setRenderOffset(renderer: Pointer, offset: number) {\n this.opentui.symbols.setRenderOffset(renderer, offset)\n }\n\n public resetSplitScrollback(renderer: Pointer, seedRows: number, pinnedRenderOffset: number): number {\n return this.opentui.symbols.resetSplitScrollback(renderer, seedRows, pinnedRenderOffset)\n }\n\n public syncSplitScrollback(renderer: Pointer, pinnedRenderOffset: number): number {\n return this.opentui.symbols.syncSplitScrollback(renderer, pinnedRenderOffset)\n }\n\n public getSplitOutputOffset(renderer: Pointer, surfaceOffset: number): number {\n return this.opentui.symbols.getSplitOutputOffset(renderer, surfaceOffset)\n }\n\n public setPendingSplitFooterTransition(\n renderer: Pointer,\n mode: number,\n sourceTopLine: number,\n sourceHeight: number,\n targetTopLine: number,\n targetHeight: number,\n scrollLines: number,\n ): void {\n this.opentui.symbols.setPendingSplitFooterTransition(\n renderer,\n mode,\n sourceTopLine,\n sourceHeight,\n targetTopLine,\n targetHeight,\n scrollLines,\n )\n }\n\n public clearPendingSplitFooterTransition(renderer: Pointer): void {\n this.opentui.symbols.clearPendingSplitFooterTransition(renderer)\n }\n\n public updateStats(renderer: Pointer, time: number, fps: number, frameCallbackTime: number) {\n this.opentui.symbols.updateStats(renderer, time, fps, frameCallbackTime)\n }\n\n public updateMemoryStats(renderer: Pointer, heapUsed: number, heapTotal: number, arrayBuffers: number) {\n this.opentui.symbols.updateMemoryStats(renderer, heapUsed, heapTotal, arrayBuffers)\n }\n\n public getRenderStats(renderer: Pointer): NativeRenderStats {\n const statsBuffer = new ArrayBuffer(NativeRenderStatsStruct.size)\n this.opentui.symbols.getRenderStats(renderer, ptr(statsBuffer))\n const stats = NativeRenderStatsStruct.unpack(statsBuffer)\n\n return {\n nativeLastFrameTime: stats.lastFrameTime,\n nativeAverageFrameTime: stats.averageFrameTime,\n nativeFrameCount: toNumber(stats.frameCount),\n cellsUpdated: stats.cellsUpdated,\n averageCellsUpdated: stats.averageCellsUpdated,\n nativeRenderTime: stats.renderTimeValid ? stats.renderTime : undefined,\n nativeStdoutWriteTime: stats.stdoutWriteTimeValid ? stats.stdoutWriteTime : undefined,\n }\n }\n\n public getNextBuffer(renderer: Pointer): OptimizedBuffer {\n const bufferPtr = this.opentui.symbols.getNextBuffer(renderer)\n if (!bufferPtr) {\n throw new Error(\"Failed to get next buffer\")\n }\n\n const width = this.opentui.symbols.getBufferWidth(bufferPtr)\n const height = this.opentui.symbols.getBufferHeight(bufferPtr)\n\n return new OptimizedBuffer(this, bufferPtr, width, height, { id: \"next buffer\", widthMethod: \"unicode\" })\n }\n\n public getCurrentBuffer(renderer: Pointer): OptimizedBuffer {\n const bufferPtr = this.opentui.symbols.getCurrentBuffer(renderer)\n if (!bufferPtr) {\n throw new Error(\"Failed to get current buffer\")\n }\n\n const width = this.opentui.symbols.getBufferWidth(bufferPtr)\n const height = this.opentui.symbols.getBufferHeight(bufferPtr)\n\n return new OptimizedBuffer(this, bufferPtr, width, height, { id: \"current buffer\", widthMethod: \"unicode\" })\n }\n\n public rendererSetPaletteState(\n renderer: Pointer,\n palette: readonly RGBA[],\n defaultForeground: RGBA,\n defaultBackground: RGBA,\n paletteEpoch: number,\n ): void {\n const paletteBuffer = new Uint16Array(palette.length * 4)\n\n for (let index = 0; index < palette.length; index++) {\n paletteBuffer.set(palette[index].buffer, index * 4)\n }\n\n this.opentui.symbols.rendererSetPaletteState(\n renderer,\n ptr(paletteBuffer),\n palette.length,\n rgbaPtr(defaultForeground),\n rgbaPtr(defaultBackground),\n paletteEpoch >>> 0,\n )\n }\n\n public bufferGetCharPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetCharPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get char pointer\")\n }\n return ptr\n }\n\n public bufferGetFgPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetFgPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get fg pointer\")\n }\n return ptr\n }\n\n public bufferGetBgPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetBgPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get bg pointer\")\n }\n return ptr\n }\n\n public bufferGetAttributesPtr(buffer: Pointer): Pointer {\n const ptr = this.opentui.symbols.bufferGetAttributesPtr(buffer)\n if (!ptr) {\n throw new Error(\"Failed to get attributes pointer\")\n }\n return ptr\n }\n\n public bufferGetRespectAlpha(buffer: Pointer): boolean {\n return this.opentui.symbols.bufferGetRespectAlpha(buffer)\n }\n\n public bufferSetRespectAlpha(buffer: Pointer, respectAlpha: boolean): void {\n this.opentui.symbols.bufferSetRespectAlpha(buffer, ffiBool(respectAlpha))\n }\n\n public bufferGetId(buffer: Pointer): string {\n const maxLen = 256\n const outBuffer = new Uint8Array(maxLen)\n const actualLen = this.opentui.symbols.bufferGetId(buffer, ptr(outBuffer), maxLen)\n return this.decoder.decode(outBuffer.slice(0, actualLen))\n }\n\n public bufferGetRealCharSize(buffer: Pointer): number {\n return this.opentui.symbols.bufferGetRealCharSize(buffer)\n }\n\n public bufferWriteResolvedChars(buffer: Pointer, outputBuffer: Uint8Array, addLineBreaks: boolean): number {\n return this.opentui.symbols.bufferWriteResolvedChars(\n buffer,\n ptrOrNull(outputBuffer),\n outputBuffer.byteLength,\n ffiBool(addLineBreaks),\n )\n }\n\n public getBufferWidth(buffer: Pointer): number {\n return this.opentui.symbols.getBufferWidth(buffer)\n }\n\n public getBufferHeight(buffer: Pointer): number {\n return this.opentui.symbols.getBufferHeight(buffer)\n }\n\n public bufferClear(buffer: Pointer, color: RGBA) {\n this.opentui.symbols.bufferClear(buffer, rgbaPtr(color))\n }\n\n public bufferDrawText(\n buffer: Pointer,\n text: string,\n x: number,\n y: number,\n color: RGBA,\n bgColor?: RGBA,\n attributes?: number,\n ) {\n const textBytes = this.encoder.encode(text)\n const bg = optionalRgbaPtr(bgColor)\n const fg = rgbaPtr(color)\n\n this.opentui.symbols.bufferDrawText(\n buffer,\n ptrOrNull(textBytes),\n textBytes.byteLength,\n x,\n y,\n fg,\n bg,\n attributes ?? 0,\n )\n }\n\n public bufferSetCellWithAlphaBlending(\n buffer: Pointer,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) {\n const charPtr = char.codePointAt(0) ?? \" \".codePointAt(0)!\n const bg = rgbaPtr(bgColor)\n const fg = rgbaPtr(color)\n\n this.opentui.symbols.bufferSetCellWithAlphaBlending(buffer, x, y, charPtr, fg, bg, attributes ?? 0)\n }\n\n public bufferSetCell(\n buffer: Pointer,\n x: number,\n y: number,\n char: string,\n color: RGBA,\n bgColor: RGBA,\n attributes?: number,\n ) {\n const charPtr = char.codePointAt(0) ?? \" \".codePointAt(0)!\n const bg = rgbaPtr(bgColor)\n const fg = rgbaPtr(color)\n\n this.opentui.symbols.bufferSetCell(buffer, x, y, charPtr, fg, bg, attributes ?? 0)\n }\n\n public bufferFillRect(buffer: Pointer, x: number, y: number, width: number, height: number, color: RGBA) {\n const bg = rgbaPtr(color)\n this.opentui.symbols.bufferFillRect(buffer, x, y, width, height, bg)\n }\n\n public bufferColorMatrix(\n buffer: Pointer,\n matrixPtr: Pointer,\n cellMaskPtr: Pointer,\n cellMaskCount: number,\n strength: number,\n target: TargetChannel,\n ): void {\n this.opentui.symbols.bufferColorMatrix(buffer, matrixPtr, cellMaskPtr, cellMaskCount, strength, target)\n }\n\n public bufferColorMatrixUniform(buffer: Pointer, matrixPtr: Pointer, strength: number, target: TargetChannel): void {\n this.opentui.symbols.bufferColorMatrixUniform(buffer, matrixPtr, strength, target)\n }\n\n public bufferDrawSuperSampleBuffer(\n buffer: Pointer,\n x: number,\n y: number,\n pixelDataPtr: Pointer,\n pixelDataLength: number,\n format: \"bgra8unorm\" | \"rgba8unorm\",\n alignedBytesPerRow: number,\n ): void {\n const formatId = format === \"bgra8unorm\" ? 0 : 1\n this.opentui.symbols.bufferDrawSuperSampleBuffer(\n buffer,\n x,\n y,\n pixelDataPtr,\n pixelDataLength,\n formatId,\n alignedBytesPerRow,\n )\n }\n\n public bufferDrawImage(\n buffer: OptimizedBufferHandle,\n image: ImageHandle,\n x: number,\n y: number,\n width: number,\n height: number,\n pixelWidth: number,\n pixelHeight: number,\n sourceX: number,\n sourceY: number,\n sourceWidth: number,\n sourceHeight: number,\n protocol: ImageRenderProtocol,\n ): boolean {\n const protocolId = { auto: 0, kitty: 1, sixel: 2, blocks: 3 }[protocol]\n const storage = this.ffiStructStorage.imageDrawOptions\n ImageDrawOptionsStruct.packInto(\n {\n x,\n y,\n width,\n height,\n pixelWidth,\n pixelHeight,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n protocol: protocolId,\n },\n storage.view,\n 0,\n )\n return Boolean(this.opentui.symbols.bufferDrawImage(buffer, image, storage.buffer))\n }\n\n public bufferDrawPackedBuffer(\n buffer: Pointer,\n dataPtr: Pointer,\n dataLen: number,\n posX: number,\n posY: number,\n terminalWidthCells: number,\n terminalHeightCells: number,\n ): void {\n this.opentui.symbols.bufferDrawPackedBuffer(\n buffer,\n dataPtr,\n dataLen,\n posX,\n posY,\n terminalWidthCells,\n terminalHeightCells,\n )\n }\n\n public bufferDrawGrayscaleBuffer(\n buffer: Pointer,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ): void {\n this.opentui.symbols.bufferDrawGrayscaleBuffer(\n buffer,\n posX,\n posY,\n intensitiesPtr,\n srcWidth,\n srcHeight,\n optionalRgbaPtr(fg),\n optionalRgbaPtr(bg),\n )\n }\n\n public bufferDrawGrayscaleBufferSupersampled(\n buffer: Pointer,\n posX: number,\n posY: number,\n intensitiesPtr: Pointer,\n srcWidth: number,\n srcHeight: number,\n fg: RGBA | null,\n bg: RGBA | null,\n ): void {\n this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(\n buffer,\n posX,\n posY,\n intensitiesPtr,\n srcWidth,\n srcHeight,\n optionalRgbaPtr(fg),\n optionalRgbaPtr(bg),\n )\n }\n\n public bufferDrawGrid(\n buffer: Pointer,\n borderChars: Uint32Array,\n borderFg: RGBA,\n borderBg: RGBA,\n columnOffsets: Int32Array,\n columnCount: number,\n rowOffsets: Int32Array,\n rowCount: number,\n options: { drawInner: boolean; drawOuter: boolean },\n ): void {\n GridDrawOptionsStruct.packInto(\n { drawInner: options.drawInner, drawOuter: options.drawOuter },\n this.ffiStructStorage.gridDrawOptions.view,\n 0,\n )\n\n this.opentui.symbols.bufferDrawGrid(\n buffer,\n ptr(borderChars),\n rgbaPtr(borderFg),\n rgbaPtr(borderBg),\n ptr(columnOffsets),\n columnCount,\n ptr(rowOffsets),\n rowCount,\n this.ffiStructStorage.gridDrawOptions.buffer,\n )\n }\n\n public bufferDrawBox(\n buffer: Pointer,\n x: number,\n y: number,\n width: number,\n height: number,\n borderChars: Uint32Array,\n packedOptions: number,\n borderColor: RGBA,\n backgroundColor: RGBA,\n titleColor: RGBA,\n title: string | null,\n bottomTitle: string | null,\n ): void {\n const titleBytes = title ? this.encoder.encode(title) : null\n const titleLen = titleBytes?.byteLength ?? 0\n const titlePtr = titleBytes ? ptr(titleBytes) : null\n\n const bottomTitleBytes = bottomTitle ? this.encoder.encode(bottomTitle) : null\n const bottomTitleLen = bottomTitleBytes?.byteLength ?? 0\n const bottomTitlePtr = bottomTitleBytes ? ptr(bottomTitleBytes) : null\n\n this.opentui.symbols.bufferDrawBox(\n buffer,\n x,\n y,\n width,\n height,\n ptr(borderChars),\n packedOptions,\n rgbaPtr(borderColor),\n rgbaPtr(backgroundColor),\n rgbaPtr(titleColor),\n titlePtr,\n titleLen,\n bottomTitlePtr,\n bottomTitleLen,\n )\n }\n\n public bufferResize(buffer: Pointer, width: number, height: number): void {\n this.opentui.symbols.bufferResize(buffer, width, height)\n }\n\n // Link API\n public linkAlloc(url: string): number {\n const urlBytes = this.encoder.encode(url)\n return this.opentui.symbols.linkAlloc(ptrOrNull(urlBytes), urlBytes.byteLength)\n }\n\n public linkGetUrl(linkId: number, maxLen: number = 512): string {\n const outBuffer = new Uint8Array(maxLen)\n const actualLen = this.opentui.symbols.linkGetUrl(linkId, ptrOrNull(outBuffer), maxLen)\n return this.decoder.decode(outBuffer.slice(0, actualLen))\n }\n\n public attributesWithLink(baseAttributes: number, linkId: number): number {\n return this.opentui.symbols.attributesWithLink(baseAttributes, linkId)\n }\n\n public attributesGetLinkId(attributes: number): number {\n return this.opentui.symbols.attributesGetLinkId(attributes)\n }\n\n public resizeRenderer(renderer: Pointer, width: number, height: number) {\n this.opentui.symbols.resizeRenderer(renderer, width, height)\n }\n\n public setCursorPosition(renderer: Pointer, x: number, y: number, visible: boolean) {\n this.opentui.symbols.setCursorPosition(renderer, x, y, ffiBool(visible))\n }\n\n public setCursorColor(renderer: Pointer, color: RGBA) {\n this.opentui.symbols.setCursorColor(renderer, rgbaPtr(color))\n }\n\n public getCursorState(renderer: Pointer): CursorState {\n const cursorBuffer = new ArrayBuffer(CursorStateStruct.size)\n this.opentui.symbols.getCursorState(renderer, ptr(cursorBuffer))\n const struct = CursorStateStruct.unpack(cursorBuffer)\n\n return {\n x: struct.x,\n y: struct.y,\n visible: struct.visible,\n style: CURSOR_ID_TO_STYLE[struct.style] ?? \"block\",\n blinking: struct.blinking,\n color: RGBA.fromValues(struct.r, struct.g, struct.b, struct.a),\n }\n }\n\n public setCursorStyleOptions(renderer: Pointer, options: CursorStyleOptions): void {\n const style = options.style != null ? CURSOR_STYLE_TO_ID[options.style] : 255\n const blinking = options.blinking != null ? (options.blinking ? 1 : 0) : 255\n const cursor = options.cursor != null ? MOUSE_STYLE_TO_ID[options.cursor] : 255\n\n const buffer = CursorStyleOptionsStruct.pack({ style, blinking, color: options.color, cursor })\n this.opentui.symbols.setCursorStyleOptions(renderer, buffer)\n }\n\n public render(renderer: Pointer, force: boolean): number {\n return this.opentui.symbols.render(renderer, ffiBool(force))\n }\n\n private unpackRenderOperationResult(value: number | bigint): NativeRenderOperationResult {\n const packed = typeof value === \"bigint\" ? value : BigInt(value)\n return {\n renderOffset: Number(packed & 0xffffffffn),\n status: Number((packed >> 32n) & 0xffn),\n }\n }\n\n public repaintSplitFooter(\n renderer: Pointer,\n pinnedRenderOffset: number,\n force: boolean,\n ): NativeRenderOperationResult {\n return this.unpackRenderOperationResult(\n this.opentui.symbols.repaintSplitFooter(renderer, pinnedRenderOffset, ffiBool(force)),\n )\n }\n\n public commitSplitFooterSnapshot(\n renderer: Pointer,\n snapshot: OptimizedBuffer,\n rowColumns: number,\n startOnNewLine: boolean,\n trailingNewline: boolean,\n pinnedRenderOffset: number,\n force: boolean,\n beginFrame: boolean = true,\n finalizeFrame: boolean = true,\n ): NativeRenderOperationResult {\n return this.unpackRenderOperationResult(\n this.opentui.symbols.commitSplitFooterSnapshot(\n renderer,\n snapshot.ptr,\n rowColumns,\n ffiBool(startOnNewLine),\n ffiBool(trailingNewline),\n pinnedRenderOffset,\n ffiBool(force),\n ffiBool(beginFrame),\n ffiBool(finalizeFrame),\n ),\n )\n }\n\n public createOptimizedBuffer(\n width: number,\n height: number,\n widthMethod: WidthMethod,\n respectAlpha: boolean = false,\n id?: string,\n ): OptimizedBuffer {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n console.error(new Error(`Invalid dimensions for OptimizedBuffer: ${width}x${height}`).stack)\n }\n\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n const idToUse = id || \"unnamed buffer\"\n const idBytes = this.encoder.encode(idToUse)\n const bufferPtr = this.opentui.symbols.createOptimizedBuffer(\n width,\n height,\n ffiBool(respectAlpha),\n widthMethodCode,\n ptr(idBytes),\n idBytes.byteLength,\n )\n if (!bufferPtr) {\n throw new Error(`Failed to create optimized buffer: ${width}x${height}`)\n }\n\n return new OptimizedBuffer(this, bufferPtr, width, height, { respectAlpha, id, widthMethod })\n }\n\n public destroyOptimizedBuffer(bufferPtr: Pointer) {\n this.opentui.symbols.destroyOptimizedBuffer(bufferPtr)\n }\n\n public drawFrameBuffer(\n targetBufferPtr: Pointer,\n destX: number,\n destY: number,\n bufferPtr: Pointer,\n sourceX?: number,\n sourceY?: number,\n sourceWidth?: number,\n sourceHeight?: number,\n ) {\n const srcX = sourceX ?? 0\n const srcY = sourceY ?? 0\n const srcWidth = sourceWidth ?? 0\n const srcHeight = sourceHeight ?? 0\n this.opentui.symbols.drawFrameBuffer(targetBufferPtr, destX, destY, bufferPtr, srcX, srcY, srcWidth, srcHeight)\n }\n\n public setDebugOverlay(renderer: Pointer, enabled: boolean, corner: DebugOverlayCorner) {\n this.opentui.symbols.setDebugOverlay(renderer, ffiBool(enabled), corner)\n }\n\n public clearTerminal(renderer: Pointer) {\n this.opentui.symbols.clearTerminal(renderer)\n }\n\n public setTerminalTitle(renderer: Pointer, title: string) {\n const titleBytes = this.encoder.encode(title)\n this.opentui.symbols.setTerminalTitle(renderer, ptrOrNull(titleBytes), titleBytes.byteLength)\n }\n\n public copyToClipboardOSC52(renderer: Pointer, target: number, textUtf8: Uint8Array): boolean {\n if (textUtf8.byteLength > 0xffffffff) return false\n return Boolean(\n this.opentui.symbols.copyToClipboardOSC52(renderer, target, ptrOrNull(textUtf8), textUtf8.byteLength),\n )\n }\n\n public clearClipboardOSC52(renderer: Pointer, target: number): boolean {\n return Boolean(this.opentui.symbols.clearClipboardOSC52(renderer, target))\n }\n\n public clipboardServiceCreate(\n maxConcurrentOperations: number,\n maxProviderTransfers: number,\n waylandSeat?: string,\n ): ClipboardServiceHandle | null {\n const seat = waylandSeat === undefined ? null : this.encoder.encode(waylandSeat)\n const handle = this.opentui.symbols.clipboardServiceCreate(\n toSafeFFIU32Length(maxConcurrentOperations, \"clipboard operation limit\"),\n toSafeFFIU32Length(maxProviderTransfers, \"clipboard provider transfer limit\"),\n seat,\n seat?.byteLength ?? 0,\n )\n if (handle === 0) return null\n const service = handle as ClipboardServiceHandle\n this.clipboardServices.add(service)\n return service\n }\n\n public clipboardServiceBeginShutdown(service: ClipboardServiceHandle): NativeClipboardShutdownStatus {\n if (!this.clipboardServices.has(service)) return NativeClipboardShutdownStatus.InvalidHandle\n return this.opentui.symbols.clipboardServiceBeginShutdown(service)\n }\n\n public clipboardServicePollShutdown(service: ClipboardServiceHandle): NativeClipboardShutdownStatus {\n if (!this.clipboardServices.has(service)) return NativeClipboardShutdownStatus.InvalidHandle\n return this.opentui.symbols.clipboardServicePollShutdown(service)\n }\n\n public clipboardServiceDestroy(service: ClipboardServiceHandle): NativeClipboardDestroyStatus {\n if (!this.clipboardServices.has(service)) return NativeClipboardDestroyStatus.InvalidHandle\n const status = this.opentui.symbols.clipboardServiceDestroy(service)\n if (status === NativeClipboardDestroyStatus.Destroyed) this.clipboardServices.delete(service)\n return status\n }\n\n public clipboardServiceDrain(service: ClipboardServiceHandle): number {\n if (!this.clipboardServices.has(service)) return 2\n return this.opentui.symbols.clipboardServiceDrain(service)\n }\n\n private clipboardStartResult(\n status: NativeClipboardStartStatus,\n output: Uint32Array,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n return {\n status,\n operation: output[0] === 0 ? null : (output[0] as ClipboardOperationHandle),\n }\n }\n\n public clipboardReadOperationStart(\n service: ClipboardServiceHandle,\n request: Uint8Array,\n selection: number,\n maxBytes: number,\n maxImagePixels: number,\n maxConversionBytes: number,\n timeoutMs: number,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardReadOperationStart(\n service,\n request,\n toSafeFFIU32Length(request.byteLength, \"clipboard read request\"),\n selection,\n toSafeFFIU32Length(maxBytes, \"clipboard read byte limit\"),\n toSafeFFIU32Length(maxImagePixels, \"clipboard image pixel limit\"),\n toSafeFFIU32Length(maxConversionBytes, \"clipboard conversion byte limit\"),\n toSafeFFIU32Length(timeoutMs, \"clipboard read timeout\"),\n output,\n )\n return this.clipboardStartResult(status, output)\n }\n\n public clipboardWriteOperationStart(\n service: ClipboardServiceHandle,\n textUtf8: Uint8Array,\n selection: number,\n timeoutMs: number,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardWriteOperationStart(\n service,\n textUtf8,\n toSafeFFIU32Length(textUtf8.byteLength, \"clipboard write text\"),\n selection,\n toSafeFFIU32Length(timeoutMs, \"clipboard write timeout\"),\n output,\n )\n return this.clipboardStartResult(status, output)\n }\n\n public clipboardClearOperationStart(\n service: ClipboardServiceHandle,\n selection: number,\n timeoutMs: number,\n ): { status: NativeClipboardStartStatus; operation: ClipboardOperationHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardClearOperationStart(\n service,\n selection,\n toSafeFFIU32Length(timeoutMs, \"clipboard clear timeout\"),\n output,\n )\n return this.clipboardStartResult(status, output)\n }\n\n public clipboardOperationPoll(operation: ClipboardOperationHandle): NativeClipboardOperationStatus {\n return this.opentui.symbols.clipboardOperationPoll(operation)\n }\n\n public clipboardOperationCancel(operation: ClipboardOperationHandle): NativeClipboardCancelStatus {\n return this.opentui.symbols.clipboardOperationCancel(operation)\n }\n\n private clipboardResultLength(\n symbol: (operation: ClipboardOperationHandle, output: Uint32Array) => number,\n operation: ClipboardOperationHandle,\n ): { status: NativeClipboardCopyStatus; length: number } {\n const output = new Uint32Array(1)\n const status = symbol(operation, output)\n return { status, length: output[0] }\n }\n\n public clipboardOperationResultMimeLength(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n length: number\n } {\n return this.clipboardResultLength(this.opentui.symbols.clipboardOperationResultMimeLength, operation)\n }\n\n public clipboardOperationResultMimeCopy(\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ): NativeClipboardCopyStatus {\n return this.opentui.symbols.clipboardOperationResultMimeCopy(\n operation,\n output.byteLength === 0 ? null : output,\n toSafeFFIU32Length(output.byteLength, \"clipboard MIME output\"),\n )\n }\n\n public clipboardOperationResultDataLength(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n length: number\n } {\n return this.clipboardResultLength(this.opentui.symbols.clipboardOperationResultDataLength, operation)\n }\n\n public clipboardOperationResultDataCopy(\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ): NativeClipboardCopyStatus {\n return this.opentui.symbols.clipboardOperationResultDataCopy(\n operation,\n output.byteLength === 0 ? null : output,\n toSafeFFIU32Length(output.byteLength, \"clipboard data output\"),\n )\n }\n\n public clipboardOperationResultErrorCode(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n errorCode: number\n } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.clipboardOperationResultErrorCode(operation, output)\n return { status, errorCode: output[0] }\n }\n\n public clipboardOperationResultDiagnosticLength(operation: ClipboardOperationHandle): {\n status: NativeClipboardCopyStatus\n length: number\n } {\n return this.clipboardResultLength(this.opentui.symbols.clipboardOperationResultDiagnosticLength, operation)\n }\n\n public clipboardOperationResultDiagnosticCopy(\n operation: ClipboardOperationHandle,\n output: Uint8Array,\n ): NativeClipboardCopyStatus {\n return this.opentui.symbols.clipboardOperationResultDiagnosticCopy(\n operation,\n output.byteLength === 0 ? null : output,\n toSafeFFIU32Length(output.byteLength, \"clipboard diagnostic output\"),\n )\n }\n\n public clipboardOperationDestroy(operation: ClipboardOperationHandle): NativeClipboardDestroyStatus {\n return this.opentui.symbols.clipboardOperationDestroy(operation)\n }\n\n public triggerNotification(renderer: Pointer, message: string, title?: string): boolean {\n const messageBytes = this.encoder.encode(message)\n const titleBytes = title === undefined ? null : this.encoder.encode(title)\n return Boolean(\n this.opentui.symbols.triggerNotification(\n renderer,\n messageBytes,\n messageBytes.length,\n titleBytes,\n titleBytes?.length ?? 0,\n ),\n )\n }\n\n public addToHitGrid(renderer: Pointer, x: number, y: number, width: number, height: number, id: number) {\n this.opentui.symbols.addToHitGrid(renderer, x, y, width, height, id)\n }\n\n public clearCurrentHitGrid(renderer: Pointer) {\n this.opentui.symbols.clearCurrentHitGrid(renderer)\n }\n\n public hitGridPushScissorRect(renderer: Pointer, x: number, y: number, width: number, height: number) {\n this.opentui.symbols.hitGridPushScissorRect(renderer, x, y, width, height)\n }\n\n public hitGridPopScissorRect(renderer: Pointer) {\n this.opentui.symbols.hitGridPopScissorRect(renderer)\n }\n\n public hitGridClearScissorRects(renderer: Pointer) {\n this.opentui.symbols.hitGridClearScissorRects(renderer)\n }\n\n public addToCurrentHitGridClipped(\n renderer: Pointer,\n x: number,\n y: number,\n width: number,\n height: number,\n id: number,\n ) {\n this.opentui.symbols.addToCurrentHitGridClipped(renderer, x, y, width, height, id)\n }\n\n public checkHit(renderer: Pointer, x: number, y: number): number {\n return this.opentui.symbols.checkHit(renderer, x, y)\n }\n\n public getHitGridDirty(renderer: Pointer): boolean {\n return this.opentui.symbols.getHitGridDirty(renderer)\n }\n\n public dumpHitGrid(renderer: Pointer): void {\n this.opentui.symbols.dumpHitGrid(renderer)\n }\n\n public dumpBuffers(renderer: Pointer, timestamp?: number): void {\n const ts = BigInt(timestamp ?? Date.now())\n this.opentui.symbols.dumpBuffers(renderer, ts)\n }\n\n public dumpOutputBuffer(renderer: Pointer, timestamp?: number): void {\n const ts = BigInt(timestamp ?? Date.now())\n this.opentui.symbols.dumpOutputBuffer(renderer, ts)\n }\n\n public restoreTerminalModes(renderer: Pointer): void {\n this.opentui.symbols.restoreTerminalModes(renderer)\n }\n\n public enableMouse(renderer: Pointer, enableMovement: boolean): void {\n this.opentui.symbols.enableMouse(renderer, ffiBool(enableMovement))\n }\n\n public disableMouse(renderer: Pointer): void {\n this.opentui.symbols.disableMouse(renderer)\n }\n\n public enableKittyKeyboard(renderer: Pointer, flags: number): void {\n this.opentui.symbols.enableKittyKeyboard(renderer, flags)\n }\n\n public disableKittyKeyboard(renderer: Pointer): void {\n this.opentui.symbols.disableKittyKeyboard(renderer)\n }\n\n public setKittyKeyboardFlags(renderer: Pointer, flags: number): void {\n this.opentui.symbols.setKittyKeyboardFlags(renderer, flags)\n }\n\n public getKittyKeyboardFlags(renderer: Pointer): number {\n return this.opentui.symbols.getKittyKeyboardFlags(renderer)\n }\n\n public setupTerminal(renderer: Pointer, useAlternateScreen: boolean): void {\n this.opentui.symbols.setupTerminal(renderer, ffiBool(useAlternateScreen))\n }\n\n public suspendRenderer(renderer: Pointer): void {\n this.opentui.symbols.suspendRenderer(renderer)\n }\n\n public resumeRenderer(renderer: Pointer): void {\n this.opentui.symbols.resumeRenderer(renderer)\n }\n\n public queryPixelResolution(renderer: Pointer): void {\n this.opentui.symbols.queryPixelResolution(renderer)\n }\n\n public queryThemeColors(renderer: Pointer): void {\n this.opentui.symbols.queryThemeColors(renderer)\n }\n\n /**\n * Write data to stdout, synchronizing with the render thread if necessary.\n * This should be used for ALL stdout writes to avoid race conditions when\n * the render thread is active.\n */\n public writeOut(renderer: Pointer, data: string | Uint8Array): void {\n const bytes = typeof data === \"string\" ? new TextEncoder().encode(data) : data\n if (bytes.length === 0) return\n this.opentui.symbols.writeOut(renderer, ptrOrNull(bytes), bytes.byteLength)\n }\n\n public yogaConfigCreate(): Pointer {\n const config = this.opentui.symbols.yogaConfigCreate()\n if (!config) throw new Error(\"Failed to create Yoga config\")\n return config\n }\n\n public yogaConfigFree(config: Pointer): void {\n this.opentui.symbols.yogaConfigFree(config)\n }\n\n public yogaConfigSetUseWebDefaults(config: Pointer, enabled: boolean): void {\n this.opentui.symbols.yogaConfigSetUseWebDefaults(config, ffiBool(enabled))\n }\n\n public yogaConfigGetUseWebDefaults(config: Pointer): boolean {\n return this.opentui.symbols.yogaConfigGetUseWebDefaults(config)\n }\n\n public yogaConfigSetPointScaleFactor(config: Pointer, pointScaleFactor: number): void {\n this.opentui.symbols.yogaConfigSetPointScaleFactor(config, pointScaleFactor)\n }\n\n public yogaConfigGetPointScaleFactor(config: Pointer): number {\n return this.opentui.symbols.yogaConfigGetPointScaleFactor(config)\n }\n\n public yogaConfigSetErrata(config: Pointer, errata: number): void {\n this.opentui.symbols.yogaConfigSetErrata(config, errata)\n }\n\n public yogaConfigGetErrata(config: Pointer): number {\n return this.opentui.symbols.yogaConfigGetErrata(config)\n }\n\n public yogaConfigSetExperimentalFeatureEnabled(config: Pointer, feature: number, enabled: boolean): void {\n this.opentui.symbols.yogaConfigSetExperimentalFeatureEnabled(config, feature, ffiBool(enabled))\n }\n\n public yogaConfigIsExperimentalFeatureEnabled(config: Pointer, feature: number): boolean {\n return this.opentui.symbols.yogaConfigIsExperimentalFeatureEnabled(config, feature)\n }\n\n public yogaNodeCreate(): Pointer {\n const node = this.opentui.symbols.yogaNodeCreate()\n if (!node) throw new Error(\"Failed to create Yoga node\")\n return node\n }\n\n public yogaNodeCreateForOpenTUI(): Pointer {\n const node = this.opentui.symbols.yogaNodeCreateForOpenTUI()\n if (!node) throw new Error(\"Failed to create OpenTUI Yoga node\")\n return node\n }\n\n public yogaNodeCreateWithConfig(config: Pointer): Pointer {\n const node = this.opentui.symbols.yogaNodeCreateWithConfig(config)\n if (!node) throw new Error(\"Failed to create Yoga node\")\n return node\n }\n\n public yogaNodeFree(node: Pointer): void {\n this.opentui.symbols.yogaNodeFree(node)\n }\n\n public yogaNodeFreeRecursive(node: Pointer): void {\n this.opentui.symbols.yogaNodeFreeRecursive(node)\n }\n\n public yogaNodeReset(node: Pointer): void {\n this.opentui.symbols.yogaNodeReset(node)\n }\n\n public yogaNodeCopyStyle(dstNode: Pointer, srcNode: Pointer): void {\n this.opentui.symbols.yogaNodeCopyStyle(dstNode, srcNode)\n }\n\n public yogaNodeInsertChild(node: Pointer, child: Pointer, index: number): void {\n this.opentui.symbols.yogaNodeInsertChild(node, child, index)\n }\n\n public yogaNodeRemoveChild(node: Pointer, child: Pointer): void {\n this.opentui.symbols.yogaNodeRemoveChild(node, child)\n }\n\n public yogaNodeRemoveAllChildren(node: Pointer): void {\n this.opentui.symbols.yogaNodeRemoveAllChildren(node)\n }\n\n public yogaNodeGetChild(node: Pointer, index: number): Pointer | null {\n return this.opentui.symbols.yogaNodeGetChild(node, index) || null\n }\n\n public yogaNodeGetChildCount(node: Pointer): number {\n return this.opentui.symbols.yogaNodeGetChildCount(node)\n }\n\n public yogaNodeGetParent(node: Pointer): Pointer | null {\n return this.opentui.symbols.yogaNodeGetParent(node) || null\n }\n\n public yogaNodeCalculateLayout(node: Pointer, width: number, height: number, direction: number): void {\n this.opentui.symbols.yogaNodeCalculateLayout(node, width, height, direction)\n }\n\n public yogaNodeIsDirty(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeIsDirty(node)\n }\n\n public yogaNodeMarkDirty(node: Pointer): void {\n this.opentui.symbols.yogaNodeMarkDirty(node)\n }\n\n public yogaNodeGetHasNewLayout(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeGetHasNewLayout(node)\n }\n\n public yogaNodeSetHasNewLayout(node: Pointer, hasNewLayout: boolean): void {\n this.opentui.symbols.yogaNodeSetHasNewLayout(node, ffiBool(hasNewLayout))\n }\n\n public yogaNodeSetIsReferenceBaseline(node: Pointer, isReferenceBaseline: boolean): void {\n this.opentui.symbols.yogaNodeSetIsReferenceBaseline(node, ffiBool(isReferenceBaseline))\n }\n\n public yogaNodeIsReferenceBaseline(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeIsReferenceBaseline(node)\n }\n\n public yogaNodeSetAlwaysFormsContainingBlock(node: Pointer, alwaysFormsContainingBlock: boolean): void {\n this.opentui.symbols.yogaNodeSetAlwaysFormsContainingBlock(node, ffiBool(alwaysFormsContainingBlock))\n }\n\n public yogaNodeGetAlwaysFormsContainingBlock(node: Pointer): boolean {\n return this.opentui.symbols.yogaNodeGetAlwaysFormsContainingBlock(node)\n }\n\n public yogaNodeGetComputedLayout(node: Pointer): NativeYogaLayout {\n const layout = this.yogaLayout\n this.opentui.symbols.yogaNodeGetComputedLayout(node, this.yogaLayoutPtr)\n return {\n left: layout[0]!,\n top: layout[1]!,\n right: layout[2]!,\n bottom: layout[3]!,\n width: layout[4]!,\n height: layout[5]!,\n }\n }\n\n public yogaNodeLayoutGetEdge(node: Pointer, kind: number, edge: number): number {\n return this.opentui.symbols.yogaNodeLayoutGetEdge(node, kind, edge)\n }\n\n public yogaNodeStyleSetEnum(node: Pointer, kind: number, value: number): void {\n this.opentui.symbols.yogaNodeStyleSetEnum(node, kind, value)\n }\n\n public yogaNodeStyleGetEnum(node: Pointer, kind: number): number {\n return this.opentui.symbols.yogaNodeStyleGetEnum(node, kind)\n }\n\n public yogaNodeStyleSetFloat(node: Pointer, kind: number, value: number): void {\n this.opentui.symbols.yogaNodeStyleSetFloat(node, kind, value)\n }\n\n public yogaNodeStyleGetFloat(node: Pointer, kind: number): number {\n return this.opentui.symbols.yogaNodeStyleGetFloat(node, kind)\n }\n\n public yogaNodeStyleSetBorder(node: Pointer, edge: number, border: number): void {\n this.opentui.symbols.yogaNodeStyleSetBorder(node, edge, border)\n }\n\n public yogaNodeStyleGetBorder(node: Pointer, edge: number): number {\n return this.opentui.symbols.yogaNodeStyleGetBorder(node, edge)\n }\n\n public yogaNodeStyleSetValue(node: Pointer, kind: number, edgeOrGutter: number, unit: number, value: number): void {\n this.opentui.symbols.yogaNodeStyleSetValue(node, kind, edgeOrGutter, unit, value)\n }\n\n public yogaNodeStyleGetValue(node: Pointer, kind: number, edgeOrGutter: number): number | bigint {\n return this.opentui.symbols.yogaNodeStyleGetValue(node, kind, edgeOrGutter)\n }\n\n public yogaNodeSetMeasureFunc(node: Pointer, enabled: boolean): void {\n this.opentui.symbols.yogaNodeSetMeasureFunc(node, ffiBool(enabled))\n }\n\n public yogaNodeUnsetMeasureFunc(node: Pointer): void {\n this.opentui.symbols.yogaNodeUnsetMeasureFunc(node)\n }\n\n public yogaNodeHasMeasureFunc(node: Pointer): boolean {\n // Node's FFI returns bools as 0/1 numbers; normalize so the interface stays truthful.\n return Boolean(this.opentui.symbols.yogaNodeHasMeasureFunc(node))\n }\n\n public yogaNodeSetDirtiedFunc(node: Pointer, enabled: boolean): void {\n this.opentui.symbols.yogaNodeSetDirtiedFunc(node, ffiBool(enabled))\n }\n\n public yogaNodeUnsetDirtiedFunc(node: Pointer): void {\n this.opentui.symbols.yogaNodeUnsetDirtiedFunc(node)\n }\n\n public yogaStoreMeasureResult(width: number, height: number): void {\n this.opentui.symbols.yogaStoreMeasureResult(width, height)\n }\n\n public yogaSetMeasureCallback(callback: Pointer | null): void {\n this.opentui.symbols.yogaSetMeasureCallback(callback)\n }\n\n public yogaSetDirtiedCallback(callback: Pointer | null): void {\n this.opentui.symbols.yogaSetDirtiedCallback(callback)\n }\n\n public createYogaMeasureCallback(callback: NativeYogaMeasureCallback): FFICallbackInstance {\n return this.opentui.createCallback(callback, {\n args: [\"ptr\", \"f32\", \"u32\", \"f32\", \"u32\"],\n returns: \"void\",\n })\n }\n\n public createYogaDirtiedCallback(callback: NativeYogaDirtiedCallback): FFICallbackInstance {\n return this.opentui.createCallback(callback, {\n args: [\"ptr\"],\n returns: \"void\",\n })\n }\n\n // TextBuffer methods\n public createTextBuffer(widthMethod: WidthMethod): TextBuffer {\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n const bufferPtr = this.opentui.symbols.createTextBuffer(widthMethodCode)\n if (!bufferPtr) {\n throw new Error(`Failed to create TextBuffer`)\n }\n\n return new TextBuffer(this, bufferPtr)\n }\n\n public destroyTextBuffer(buffer: Pointer): void {\n this.opentui.symbols.destroyTextBuffer(buffer)\n }\n\n public textBufferGetLength(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetLength(buffer)\n }\n\n public textBufferGetByteSize(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetByteSize(buffer)\n }\n\n public textBufferReset(buffer: Pointer): void {\n this.opentui.symbols.textBufferReset(buffer)\n }\n\n public textBufferClear(buffer: Pointer): void {\n this.opentui.symbols.textBufferClear(buffer)\n }\n\n public textBufferSetDefaultFg(buffer: Pointer, fg: RGBA | null): void {\n const fgPtr = optionalRgbaPtr(fg)\n this.opentui.symbols.textBufferSetDefaultFg(buffer, fgPtr)\n }\n\n public textBufferSetDefaultBg(buffer: Pointer, bg: RGBA | null): void {\n const bgPtr = optionalRgbaPtr(bg)\n this.opentui.symbols.textBufferSetDefaultBg(buffer, bgPtr)\n }\n\n public textBufferSetDefaultAttributes(buffer: Pointer, attributes: number | null): void {\n const attrValue = attributes === null ? null : new Uint32Array([attributes])\n this.opentui.symbols.textBufferSetDefaultAttributes(buffer, attrValue ? ptr(attrValue) : null)\n }\n\n public textBufferResetDefaults(buffer: Pointer): void {\n this.opentui.symbols.textBufferResetDefaults(buffer)\n }\n\n public textBufferGetTabWidth(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetTabWidth(buffer)\n }\n\n public textBufferSetTabWidth(buffer: Pointer, width: number): void {\n this.opentui.symbols.textBufferSetTabWidth(buffer, width)\n }\n\n public textBufferRegisterMemBuffer(buffer: Pointer, bytes: Uint8Array, owned: boolean = false): number {\n const result = this.opentui.symbols.textBufferRegisterMemBuffer(\n buffer,\n ptrOrNull(bytes),\n bytes.byteLength,\n ffiBool(owned),\n )\n if (result === 0xffff) {\n throw new Error(\"Failed to register memory buffer\")\n }\n return result\n }\n\n public textBufferReplaceMemBuffer(\n buffer: Pointer,\n memId: number,\n bytes: Uint8Array,\n owned: boolean = false,\n ): boolean {\n return this.opentui.symbols.textBufferReplaceMemBuffer(\n buffer,\n memId,\n ptrOrNull(bytes),\n bytes.byteLength,\n ffiBool(owned),\n )\n }\n\n public textBufferClearMemRegistry(buffer: Pointer): void {\n this.opentui.symbols.textBufferClearMemRegistry(buffer)\n }\n\n public textBufferSetTextFromMem(buffer: Pointer, memId: number): void {\n this.opentui.symbols.textBufferSetTextFromMem(buffer, memId)\n }\n\n public textBufferAppend(buffer: Pointer, bytes: Uint8Array): void {\n this.opentui.symbols.textBufferAppend(buffer, ptrOrNull(bytes), bytes.byteLength)\n }\n\n public textBufferAppendFromMemId(buffer: Pointer, memId: number): void {\n this.opentui.symbols.textBufferAppendFromMemId(buffer, memId)\n }\n\n public textBufferLoadFile(buffer: Pointer, path: string): boolean {\n const pathBytes = this.encoder.encode(path)\n return this.opentui.symbols.textBufferLoadFile(buffer, ptrOrNull(pathBytes), pathBytes.byteLength)\n }\n\n public textBufferSetStyledText(\n buffer: Pointer,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number; link?: { url: string } }>,\n ): void {\n if (chunks.length === 0) {\n this.textBufferClear(buffer)\n return\n }\n\n const chunksBuffer = StyledChunkStruct.packList(chunks)\n this.opentui.symbols.textBufferSetStyledText(buffer, chunksBuffer, chunks.length)\n }\n\n public textBufferGetLineCount(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetLineCount(buffer)\n }\n\n private textBufferGetPlainText(buffer: Pointer, outPtr: Pointer | null, maxLen: number): number {\n return this.opentui.symbols.textBufferGetPlainText(buffer, outPtr, maxLen)\n }\n\n public getPlainTextBytes(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.textBufferGetPlainText(buffer, ptrOrNull(outBuffer), maxLength)\n\n if (actualLen === 0) {\n return null\n }\n\n return outBuffer.slice(0, actualLen)\n }\n\n public textBufferGetTextRange(\n buffer: Pointer,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.opentui.symbols.textBufferGetTextRange(\n buffer,\n startOffset,\n endOffset,\n ptrOrNull(outBuffer),\n maxLength,\n )\n\n const len = actualLen\n\n if (len === 0) {\n return null\n }\n\n return outBuffer.slice(0, len)\n }\n\n public textBufferGetTextRangeByCoords(\n buffer: Pointer,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.opentui.symbols.textBufferGetTextRangeByCoords(\n buffer,\n startRow,\n startCol,\n endRow,\n endCol,\n ptrOrNull(outBuffer),\n maxLength,\n )\n\n const len = actualLen\n\n if (len === 0) {\n return null\n }\n\n return usesBunFFI ? outBuffer.slice(0, len) : trimNodeFFIOutputBytes(outBuffer, len)\n }\n\n // TextBufferView methods\n public createTextBufferView(textBuffer: TextBufferHandle): TextBufferViewHandle {\n const viewPtr = this.opentui.symbols.createTextBufferView(textBuffer) as TextBufferViewHandle\n if (!viewPtr) {\n throw new Error(\"Failed to create TextBufferView\")\n }\n return viewPtr\n }\n\n public destroyTextBufferView(view: Pointer): void {\n this.opentui.symbols.destroyTextBufferView(view)\n }\n\n public textBufferViewSetSelection(\n view: Pointer,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.textBufferViewSetSelection(view, start, end, bg, fg)\n }\n\n public textBufferViewResetSelection(view: Pointer): void {\n this.opentui.symbols.textBufferViewResetSelection(view)\n }\n\n public textBufferViewGetSelection(view: Pointer): { start: number; end: number } | null {\n const packedInfo = this.textBufferViewGetSelectionInfo(view)\n\n // Check for no selection marker (0xFFFFFFFF_FFFFFFFF)\n if (packedInfo === 0xffff_ffff_ffff_ffffn) {\n return null\n }\n\n const start = Number(packedInfo >> 32n)\n const end = Number(packedInfo & 0xffff_ffffn)\n\n return { start, end }\n }\n\n private textBufferViewGetSelectionInfo(view: Pointer): bigint {\n return this.opentui.symbols.textBufferViewGetSelectionInfo(view)\n }\n\n public textBufferViewSetLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(this.opentui.symbols.textBufferViewSetLocalSelection(view, anchorX, anchorY, focusX, focusY, bg, fg))\n }\n\n public textBufferViewUpdateSelection(view: Pointer, end: number, bgColor: RGBA | null, fgColor: RGBA | null): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.textBufferViewUpdateSelection(view, end, bg, fg)\n }\n\n public textBufferViewUpdateLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(\n this.opentui.symbols.textBufferViewUpdateLocalSelection(view, anchorX, anchorY, focusX, focusY, bg, fg),\n )\n }\n\n public textBufferViewResetLocalSelection(view: Pointer): void {\n this.opentui.symbols.textBufferViewResetLocalSelection(view)\n }\n\n public textBufferViewSetWrapWidth(view: Pointer, width: number): void {\n this.opentui.symbols.textBufferViewSetWrapWidth(view, width)\n }\n\n public textBufferViewSetWrapMode(view: Pointer, mode: \"none\" | \"char\" | \"word\"): void {\n const modeValue = mode === \"none\" ? 0 : mode === \"char\" ? 1 : 2\n this.opentui.symbols.textBufferViewSetWrapMode(view, modeValue)\n }\n\n public textBufferViewSetFirstLineOffset(view: Pointer, offset: number): void {\n this.opentui.symbols.textBufferViewSetFirstLineOffset(view, offset)\n }\n\n public textBufferViewSetViewportSize(view: Pointer, width: number, height: number): void {\n this.opentui.symbols.textBufferViewSetViewportSize(view, width, height)\n }\n\n public textBufferViewSetViewport(view: Pointer, x: number, y: number, width: number, height: number): void {\n this.opentui.symbols.textBufferViewSetViewport(view, x, y, width, height)\n }\n\n public textBufferViewGetLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.textBufferViewGetLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n public textBufferViewGetLogicalLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.textBufferViewGetLogicalLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n public textBufferViewGetVirtualLineCount(view: Pointer): number {\n return this.opentui.symbols.textBufferViewGetVirtualLineCount(view)\n }\n\n private textBufferViewGetLineInfoDirect(view: Pointer, outPtr: Pointer): void {\n this.opentui.symbols.textBufferViewGetLineInfoDirect(view, outPtr)\n }\n\n private textBufferViewGetLogicalLineInfoDirect(view: Pointer, outPtr: Pointer): void {\n this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(view, outPtr)\n }\n\n private textBufferViewGetSelectedText(view: Pointer, outPtr: Pointer | null, maxLen: number): number {\n return this.opentui.symbols.textBufferViewGetSelectedText(view, outPtr, maxLen)\n }\n\n private textBufferViewGetPlainText(view: Pointer, outPtr: Pointer | null, maxLen: number): number {\n return this.opentui.symbols.textBufferViewGetPlainText(view, outPtr, maxLen)\n }\n\n public textBufferViewGetSelectedTextBytes(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.textBufferViewGetSelectedText(view, ptrOrNull(outBuffer), maxLength)\n\n if (actualLen === 0) {\n return null\n }\n\n return outBuffer.slice(0, actualLen)\n }\n\n public textBufferViewGetPlainTextBytes(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n\n const actualLen = this.textBufferViewGetPlainText(view, ptrOrNull(outBuffer), maxLength)\n\n if (actualLen === 0) {\n return null\n }\n\n return outBuffer.slice(0, actualLen)\n }\n\n public textBufferViewSetTabIndicator(view: Pointer, indicator: number): void {\n this.opentui.symbols.textBufferViewSetTabIndicator(view, indicator)\n }\n\n public textBufferViewSetTabIndicatorColor(view: Pointer, color: RGBA): void {\n this.opentui.symbols.textBufferViewSetTabIndicatorColor(view, rgbaPtr(color))\n }\n\n public textBufferViewSetTruncate(view: Pointer, truncate: boolean): void {\n this.opentui.symbols.textBufferViewSetTruncate(view, ffiBool(truncate))\n }\n\n public textBufferViewMeasureForDimensions(view: Pointer, width: number, height: number): MeasureResult | null {\n const storage = this.ffiStructStorage.measureResult\n const success = this.opentui.symbols.textBufferViewMeasureForDimensions(view, width, height, storage.buffer)\n if (!success) return null\n const result = MeasureResultStruct.unpackInto(storage.view, storage.result)\n return { lineCount: result.lineCount, widthColsMax: result.widthColsMax }\n }\n\n public textBufferAddHighlightByCharRange(buffer: Pointer, highlight: Highlight): void {\n const packedHighlight = HighlightStruct.pack(highlight)\n this.opentui.symbols.textBufferAddHighlightByCharRange(buffer, ptr(packedHighlight))\n }\n\n public textBufferAddHighlight(buffer: Pointer, lineIdx: number, highlight: Highlight): void {\n const packedHighlight = HighlightStruct.pack(highlight)\n this.opentui.symbols.textBufferAddHighlight(buffer, lineIdx, ptr(packedHighlight))\n }\n\n public textBufferRemoveHighlightsByRef(buffer: Pointer, hlRef: number): void {\n this.opentui.symbols.textBufferRemoveHighlightsByRef(buffer, hlRef)\n }\n\n public textBufferClearLineHighlights(buffer: Pointer, lineIdx: number): void {\n this.opentui.symbols.textBufferClearLineHighlights(buffer, lineIdx)\n }\n\n public textBufferClearAllHighlights(buffer: Pointer): void {\n this.opentui.symbols.textBufferClearAllHighlights(buffer)\n }\n\n public textBufferSetSyntaxStyle(buffer: Pointer, style: Pointer | null): boolean {\n return this.opentui.symbols.textBufferSetSyntaxStyle(buffer, style ?? 0)\n }\n\n public textBufferGetLineHighlights(buffer: Pointer, lineIdx: number): Array<Highlight> {\n const outCountBuf = new Uint32Array(1)\n\n const nativePtr = this.opentui.symbols.textBufferGetLineHighlightsPtr(buffer, lineIdx, ptr(outCountBuf))\n if (!nativePtr) return []\n\n const count = outCountBuf[0]\n const byteLen = count * HighlightStruct.size\n const raw = toArrayBuffer(nativePtr, 0, byteLen)\n const results = HighlightStruct.unpackList(raw, count)\n\n this.opentui.symbols.textBufferFreeLineHighlights(nativePtr, count)\n\n return results\n }\n\n public textBufferGetHighlightCount(buffer: Pointer): number {\n return this.opentui.symbols.textBufferGetHighlightCount(buffer)\n }\n\n public getArenaAllocatedBytes(): number {\n const result = this.opentui.symbols.getArenaAllocatedBytes()\n return toSafeByteCount(result, \"Arena allocated bytes\")\n }\n\n public getBuildOptions(): BuildOptions {\n const optionsBuffer = new ArrayBuffer(BuildOptionsStruct.size)\n this.opentui.symbols.getBuildOptions(ptr(optionsBuffer))\n const options = BuildOptionsStruct.unpack(optionsBuffer)\n\n return {\n gpaSafeStats: !!options.gpaSafeStats,\n gpaMemoryLimitTracking: !!options.gpaMemoryLimitTracking,\n }\n }\n\n public getAllocatorStats(): AllocatorStats {\n const statsBuffer = new ArrayBuffer(AllocatorStatsStruct.size)\n this.opentui.symbols.getAllocatorStats(ptr(statsBuffer))\n const stats = AllocatorStatsStruct.unpack(statsBuffer)\n\n return {\n totalRequestedBytes: toNumber(stats.totalRequestedBytes),\n activeAllocations: toNumber(stats.activeAllocations),\n smallAllocations: toNumber(stats.smallAllocations),\n largeAllocations: toNumber(stats.largeAllocations),\n requestedBytesValid: !!stats.requestedBytesValid,\n }\n }\n\n public bufferDrawTextBufferView(buffer: Pointer, view: Pointer, x: number, y: number): void {\n this.opentui.symbols.bufferDrawTextBufferView(buffer, view, x, y)\n }\n\n public bufferDrawEditorView(buffer: Pointer, view: Pointer, x: number, y: number): void {\n this.opentui.symbols.bufferDrawEditorView(buffer, view, x, y)\n }\n\n // EditorView methods\n public createEditorView(\n editBufferPtr: EditBufferHandle,\n viewportWidth: number,\n viewportHeight: number,\n ): EditorViewHandle {\n const viewPtr = this.opentui.symbols.createEditorView(\n editBufferPtr,\n viewportWidth,\n viewportHeight,\n ) as EditorViewHandle\n if (!viewPtr) {\n throw new Error(\"Failed to create EditorView\")\n }\n return viewPtr\n }\n\n public destroyEditorView(view: Pointer): void {\n this.opentui.symbols.destroyEditorView(view)\n }\n\n public editorViewSetViewportSize(view: Pointer, width: number, height: number): void {\n this.opentui.symbols.editorViewSetViewportSize(view, width, height)\n }\n\n public editorViewSetViewport(\n view: Pointer,\n x: number,\n y: number,\n width: number,\n height: number,\n moveCursor: boolean,\n ): void {\n this.opentui.symbols.editorViewSetViewport(view, x, y, width, height, ffiBool(moveCursor))\n }\n\n public editorViewGetViewport(view: Pointer): { offsetY: number; offsetX: number; height: number; width: number } {\n const x = new Uint32Array(1)\n const y = new Uint32Array(1)\n const width = new Uint32Array(1)\n const height = new Uint32Array(1)\n\n this.opentui.symbols.editorViewGetViewport(view, ptr(x), ptr(y), ptr(width), ptr(height))\n\n return {\n offsetX: x[0],\n offsetY: y[0],\n width: width[0],\n height: height[0],\n }\n }\n\n public editorViewSetScrollMargin(view: Pointer, margin: number): void {\n this.opentui.symbols.editorViewSetScrollMargin(view, margin)\n }\n\n public editorViewSetWrapMode(view: Pointer, mode: \"none\" | \"char\" | \"word\"): void {\n const modeValue = mode === \"none\" ? 0 : mode === \"char\" ? 1 : 2\n this.opentui.symbols.editorViewSetWrapMode(view, modeValue)\n }\n\n public editorViewGetVirtualLineCount(view: Pointer): number {\n return this.opentui.symbols.editorViewGetVirtualLineCount(view)\n }\n\n public editorViewGetTotalVirtualLineCount(view: Pointer): number {\n return this.opentui.symbols.editorViewGetTotalVirtualLineCount(view)\n }\n\n public editorViewGetTextBufferView(view: EditorViewHandle): TextBufferViewHandle {\n const result = this.opentui.symbols.editorViewGetTextBufferView(view) as TextBufferViewHandle\n if (!result) {\n throw new Error(\"Failed to get TextBufferView from EditorView\")\n }\n return result\n }\n\n public editorViewGetLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.opentui.symbols.editorViewGetLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n public editorViewGetLogicalLineInfo(view: Pointer): LineInfo {\n const outBuffer = new ArrayBuffer(LineInfoStruct.size)\n this.opentui.symbols.editorViewGetLogicalLineInfoDirect(view, ptr(outBuffer))\n const struct = LineInfoStruct.unpack(outBuffer)\n\n const lineStartCols = struct.startCols as number[]\n const lineWidthCols = struct.widthCols as number[]\n const lineWidthColsMax = struct.widthColsMax\n\n return {\n lineStartCols,\n lineWidthCols,\n lineWidthColsMax,\n lineSources: struct.sources as number[],\n lineWraps: struct.wraps as number[],\n }\n }\n\n // EditBuffer implementations\n public createEditBuffer(widthMethod: WidthMethod): EditBufferHandle {\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n const bufferPtr = this.opentui.symbols.createEditBuffer(widthMethodCode, this.eventSinkPtr ?? 0) as EditBufferHandle\n if (!bufferPtr) {\n throw new Error(\"Failed to create EditBuffer\")\n }\n return bufferPtr\n }\n\n public destroyEditBuffer(buffer: Pointer): void {\n this.opentui.symbols.destroyEditBuffer(buffer)\n }\n\n public editBufferSetText(buffer: Pointer, textBytes: Uint8Array): void {\n this.opentui.symbols.editBufferSetText(buffer, ptrOrNull(textBytes), textBytes.byteLength)\n }\n\n public editBufferSetTextFromMem(buffer: Pointer, memId: number): void {\n this.opentui.symbols.editBufferSetTextFromMem(buffer, memId)\n }\n\n public editBufferReplaceText(buffer: Pointer, textBytes: Uint8Array): void {\n this.opentui.symbols.editBufferReplaceText(buffer, ptrOrNull(textBytes), textBytes.byteLength)\n }\n\n public editBufferReplaceTextFromMem(buffer: Pointer, memId: number): void {\n this.opentui.symbols.editBufferReplaceTextFromMem(buffer, memId)\n }\n\n public editBufferGetText(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferGetText(buffer, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferInsertChar(buffer: Pointer, char: string): void {\n const charBytes = this.encoder.encode(char)\n this.opentui.symbols.editBufferInsertChar(buffer, ptrOrNull(charBytes), charBytes.byteLength)\n }\n\n public editBufferInsertText(buffer: Pointer, text: string): void {\n const textBytes = this.encoder.encode(text)\n this.opentui.symbols.editBufferInsertText(buffer, ptrOrNull(textBytes), textBytes.byteLength)\n }\n\n public editBufferDeleteChar(buffer: Pointer): void {\n this.opentui.symbols.editBufferDeleteChar(buffer)\n }\n\n public editBufferDeleteCharBackward(buffer: Pointer): void {\n this.opentui.symbols.editBufferDeleteCharBackward(buffer)\n }\n\n public editBufferDeleteRange(\n buffer: Pointer,\n startLine: number,\n startCol: number,\n endLine: number,\n endCol: number,\n ): void {\n this.opentui.symbols.editBufferDeleteRange(buffer, startLine, startCol, endLine, endCol)\n }\n\n public editBufferNewLine(buffer: Pointer): void {\n this.opentui.symbols.editBufferNewLine(buffer)\n }\n\n public editBufferDeleteLine(buffer: Pointer): void {\n this.opentui.symbols.editBufferDeleteLine(buffer)\n }\n\n public editBufferMoveCursorLeft(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorLeft(buffer)\n }\n\n public editBufferMoveCursorRight(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorRight(buffer)\n }\n\n public editBufferMoveCursorUp(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorUp(buffer)\n }\n\n public editBufferMoveCursorDown(buffer: Pointer): void {\n this.opentui.symbols.editBufferMoveCursorDown(buffer)\n }\n\n public editBufferGotoLine(buffer: Pointer, line: number): void {\n this.opentui.symbols.editBufferGotoLine(buffer, line)\n }\n\n public editBufferSetCursor(buffer: Pointer, line: number, byteOffset: number): void {\n this.opentui.symbols.editBufferSetCursor(buffer, line, byteOffset)\n }\n\n public editBufferSetCursorToLineCol(buffer: Pointer, line: number, col: number): void {\n this.opentui.symbols.editBufferSetCursorToLineCol(buffer, line, col)\n }\n\n public editBufferSetCursorByOffset(buffer: Pointer, offset: number): void {\n this.opentui.symbols.editBufferSetCursorByOffset(buffer, offset)\n }\n\n public editBufferGetCursorPosition(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetCursorPosition(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferGetId(buffer: Pointer): number {\n return this.opentui.symbols.editBufferGetId(buffer)\n }\n\n public editBufferGetTextBuffer(buffer: EditBufferHandle): TextBufferHandle {\n const result = this.opentui.symbols.editBufferGetTextBuffer(buffer) as TextBufferHandle\n if (!result) {\n throw new Error(\"Failed to get TextBuffer from EditBuffer\")\n }\n return result\n }\n\n public editBufferDebugLogRope(buffer: Pointer): void {\n this.opentui.symbols.editBufferDebugLogRope(buffer)\n }\n\n public editBufferUndo(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferUndo(buffer, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferRedo(buffer: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferRedo(buffer, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferCanUndo(buffer: Pointer): boolean {\n return Boolean(this.opentui.symbols.editBufferCanUndo(buffer))\n }\n\n public editBufferCanRedo(buffer: Pointer): boolean {\n return Boolean(this.opentui.symbols.editBufferCanRedo(buffer))\n }\n\n public editBufferClearHistory(buffer: Pointer): void {\n this.opentui.symbols.editBufferClearHistory(buffer)\n }\n\n public editBufferClear(buffer: Pointer): void {\n this.opentui.symbols.editBufferClear(buffer)\n }\n\n public editBufferGetNextWordBoundary(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetNextWordBoundary(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferGetPrevWordBoundary(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetPrevWordBoundary(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferGetEOL(buffer: Pointer): LogicalCursor {\n const storage = this.ffiStructStorage.logicalCursor\n this.opentui.symbols.editBufferGetEOL(buffer, storage.buffer)\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferOffsetToPosition(buffer: Pointer, offset: number): LogicalCursor | null {\n const storage = this.ffiStructStorage.logicalCursor\n const success = this.opentui.symbols.editBufferOffsetToPosition(buffer, offset, storage.buffer)\n if (!success) return null\n const cursor = LogicalCursorStruct.unpackInto(storage.view, storage.result)\n return { row: cursor.row, col: cursor.col, offset: cursor.offset }\n }\n\n public editBufferPositionToOffset(buffer: Pointer, row: number, col: number): number {\n return this.opentui.symbols.editBufferPositionToOffset(buffer, row, col)\n }\n\n public editBufferGetLineStartOffset(buffer: Pointer, row: number): number {\n return this.opentui.symbols.editBufferGetLineStartOffset(buffer, row)\n }\n\n public editBufferGetTextRange(\n buffer: Pointer,\n startOffset: number,\n endOffset: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferGetTextRange(\n buffer,\n startOffset,\n endOffset,\n ptrOrNull(outBuffer),\n maxLength,\n )\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editBufferGetTextRangeByCoords(\n buffer: Pointer,\n startRow: number,\n startCol: number,\n endRow: number,\n endCol: number,\n maxLength: number,\n ): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editBufferGetTextRangeByCoords(\n buffer,\n startRow,\n startCol,\n endRow,\n endCol,\n ptrOrNull(outBuffer),\n maxLength,\n )\n const len = actualLen\n if (len === 0) return null\n return usesBunFFI ? outBuffer.slice(0, len) : trimNodeFFIOutputBytes(outBuffer, len)\n }\n\n // EditorView selection and editing implementations\n public editorViewSetSelection(\n view: Pointer,\n start: number,\n end: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n ): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.editorViewSetSelection(view, start, end, bg, fg)\n }\n\n public editorViewResetSelection(view: Pointer): void {\n this.opentui.symbols.editorViewResetSelection(view)\n }\n\n public editorViewGetSelection(view: Pointer): { start: number; end: number } | null {\n const packedInfo = this.opentui.symbols.editorViewGetSelection(view)\n if (packedInfo === 0xffff_ffff_ffff_ffffn) {\n return null\n }\n const start = Number(packedInfo >> 32n)\n const end = Number(packedInfo & 0xffff_ffffn)\n return { start, end }\n }\n\n public editorViewSetLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(\n this.opentui.symbols.editorViewSetLocalSelection(\n view,\n anchorX,\n anchorY,\n focusX,\n focusY,\n bg,\n fg,\n ffiBool(updateCursor),\n ffiBool(followCursor),\n ),\n )\n }\n\n public editorViewUpdateSelection(view: Pointer, end: number, bgColor: RGBA | null, fgColor: RGBA | null): void {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n this.opentui.symbols.editorViewUpdateSelection(view, end, bg, fg)\n }\n\n public editorViewUpdateLocalSelection(\n view: Pointer,\n anchorX: number,\n anchorY: number,\n focusX: number,\n focusY: number,\n bgColor: RGBA | null,\n fgColor: RGBA | null,\n updateCursor: boolean,\n followCursor: boolean,\n ): boolean {\n const bg = optionalRgbaPtr(bgColor)\n const fg = optionalRgbaPtr(fgColor)\n return Boolean(\n this.opentui.symbols.editorViewUpdateLocalSelection(\n view,\n anchorX,\n anchorY,\n focusX,\n focusY,\n bg,\n fg,\n ffiBool(updateCursor),\n ffiBool(followCursor),\n ),\n )\n }\n\n public editorViewResetLocalSelection(view: Pointer): void {\n this.opentui.symbols.editorViewResetLocalSelection(view)\n }\n\n public editorViewGetSelectedTextBytes(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editorViewGetSelectedTextBytes(view, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editorViewGetCursor(view: Pointer): { row: number; col: number } {\n const row = new Uint32Array(1)\n const col = new Uint32Array(1)\n this.opentui.symbols.editorViewGetCursor(view, ptr(row), ptr(col))\n return { row: row[0], col: col[0] }\n }\n\n public editorViewGetText(view: Pointer, maxLength: number): Uint8Array | null {\n const outBuffer = new Uint8Array(maxLength)\n const actualLen = this.opentui.symbols.editorViewGetText(view, ptrOrNull(outBuffer), maxLength)\n const len = actualLen\n if (len === 0) return null\n return outBuffer.slice(0, len)\n }\n\n public editorViewGetVisualCursor(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetVisualCursor(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewMoveUpVisual(view: Pointer): void {\n this.opentui.symbols.editorViewMoveUpVisual(view)\n }\n\n public editorViewMoveDownVisual(view: Pointer): void {\n this.opentui.symbols.editorViewMoveDownVisual(view)\n }\n\n public editorViewDeleteSelectedText(view: Pointer): void {\n this.opentui.symbols.editorViewDeleteSelectedText(view)\n }\n\n public editorViewSetCursorByOffset(view: Pointer, offset: number): void {\n this.opentui.symbols.editorViewSetCursorByOffset(view, offset)\n }\n\n public editorViewGetNextWordBoundary(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetNextWordBoundary(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetPrevWordBoundary(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetPrevWordBoundary(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetEOL(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetEOL(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetVisualSOL(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetVisualSOL(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public editorViewGetVisualEOL(view: Pointer): VisualCursor {\n const storage = this.ffiStructStorage.visualCursor\n this.opentui.symbols.editorViewGetVisualEOL(view, storage.buffer)\n const cursor = VisualCursorStruct.unpackInto(storage.view, storage.result)\n return { ...cursor }\n }\n\n public bufferPushScissorRect(buffer: Pointer, x: number, y: number, width: number, height: number): void {\n this.opentui.symbols.bufferPushScissorRect(buffer, x, y, width, height)\n }\n\n public bufferPopScissorRect(buffer: Pointer): void {\n this.opentui.symbols.bufferPopScissorRect(buffer)\n }\n\n public bufferClearScissorRects(buffer: Pointer): void {\n this.opentui.symbols.bufferClearScissorRects(buffer)\n }\n\n public bufferPushOpacity(buffer: Pointer, opacity: number): void {\n this.opentui.symbols.bufferPushOpacity(buffer, opacity)\n }\n\n public bufferPopOpacity(buffer: Pointer): void {\n this.opentui.symbols.bufferPopOpacity(buffer)\n }\n\n public bufferGetCurrentOpacity(buffer: Pointer): number {\n return this.opentui.symbols.bufferGetCurrentOpacity(buffer)\n }\n\n public bufferClearOpacity(buffer: Pointer): void {\n this.opentui.symbols.bufferClearOpacity(buffer)\n }\n\n public getTerminalCapabilities(renderer: Pointer): TerminalCapabilities {\n const capsBuffer = new ArrayBuffer(TerminalCapabilitiesStruct.size)\n this.opentui.symbols.getTerminalCapabilities(renderer, ptr(capsBuffer))\n\n const caps = TerminalCapabilitiesStruct.unpack(capsBuffer)\n\n return {\n kitty_keyboard: caps.kitty_keyboard,\n kitty_graphics: caps.kitty_graphics,\n rgb: caps.rgb,\n ansi256: caps.ansi256,\n unicode: caps.unicode,\n sgr_pixels: caps.sgr_pixels,\n color_scheme_updates: caps.color_scheme_updates,\n explicit_width: caps.explicit_width,\n scaled_text: caps.scaled_text,\n sixel: caps.sixel,\n focus_tracking: caps.focus_tracking,\n sync: caps.sync,\n bracketed_paste: caps.bracketed_paste,\n hyperlinks: caps.hyperlinks,\n osc52: caps.osc52,\n osc52_support: caps.osc52_support,\n notifications: caps.notifications,\n explicit_cursor_positioning: caps.explicit_cursor_positioning,\n remote: caps.remote,\n multiplexer: caps.multiplexer,\n image_protocol: caps.image_protocol,\n terminal: {\n name: caps.term_name ?? \"\",\n version: caps.term_version ?? \"\",\n from_xtversion: caps.term_from_xtversion,\n },\n }\n }\n\n public processCapabilityResponse(renderer: Pointer, response: string): void {\n const responseBytes = this.encoder.encode(response)\n this.opentui.symbols.processCapabilityResponse(renderer, ptrOrNull(responseBytes), responseBytes.byteLength)\n }\n\n public encodeUnicode(\n text: string,\n widthMethod: WidthMethod,\n ): { ptr: Pointer; data: Array<{ width: number; char: number }> } | null {\n const textBytes = this.encoder.encode(text)\n const widthMethodCode = widthMethod === \"wcwidth\" ? 0 : 1\n\n const outPtrBuffer = new ArrayBuffer(8) // Pointer-sized out slot\n const outLenBuffer = new ArrayBuffer(8) // Native length out slot\n\n const success = this.opentui.symbols.encodeUnicode(\n ptrOrNull(textBytes),\n textBytes.byteLength,\n ptr(outPtrBuffer),\n ptr(outLenBuffer),\n widthMethodCode,\n )\n\n if (!success) {\n return null\n }\n\n const outPtrView = new BigUint64Array(outPtrBuffer)\n const outLenView = new BigUint64Array(outLenBuffer)\n\n const resultLen = Number(outLenView[0])\n\n if (resultLen === 0) {\n return { ptr: 0 as Pointer, data: [] }\n }\n\n const resultPtr = toPointer(outPtrView[0])\n\n // Convert pointer to ArrayBuffer and use EncodedCharStruct to unpack the list\n const byteLen = resultLen * EncodedCharStruct.size\n const raw = toArrayBuffer(resultPtr, 0, byteLen)\n const data = EncodedCharStruct.unpackList(raw, resultLen)\n\n return { ptr: resultPtr, data }\n }\n\n public freeUnicode(encoded: { ptr: Pointer; data: Array<{ width: number; char: number }> }): void {\n this.opentui.symbols.freeUnicode(encoded.ptr, encoded.data.length)\n }\n\n public bufferDrawChar(\n buffer: Pointer,\n char: number,\n x: number,\n y: number,\n fg: RGBA,\n bg: RGBA,\n attributes: number = 0,\n ): void {\n this.opentui.symbols.bufferDrawChar(buffer, char, x, y, rgbaPtr(fg), rgbaPtr(bg), attributes)\n }\n\n public createAudioEngine(options?: AudioCreateOptions | null): AudioEngineHandle | null {\n const optionsBuffer = options == null ? null : AudioCreateOptionsStruct.pack(options)\n const engineHandle = this.opentui.symbols.createAudioEngine(\n optionsBuffer ? ptr(optionsBuffer) : null,\n ) as AudioEngineHandle\n return engineHandle ? engineHandle : null\n }\n\n public destroyAudioEngine(engine: AudioEngineHandle): void {\n this.opentui.symbols.destroyAudioEngine(engine)\n }\n\n public audioRefreshPlaybackDevices(engine: Pointer): number {\n return this.opentui.symbols.audioRefreshPlaybackDevices(engine)\n }\n\n public audioGetPlaybackDeviceCount(engine: Pointer): number {\n return this.opentui.symbols.audioGetPlaybackDeviceCount(engine)\n }\n\n public audioGetPlaybackDeviceName(engine: Pointer, index: number): string {\n const outBuffer = new Uint8Array(512)\n const bytesWritten = toNumber(\n this.opentui.symbols.audioGetPlaybackDeviceName(engine, index, ptr(outBuffer), outBuffer.length),\n )\n const safeBytesWritten = Math.max(0, Math.min(outBuffer.length, bytesWritten))\n return this.decoder.decode(outBuffer.subarray(0, safeBytesWritten))\n }\n\n public audioIsPlaybackDeviceDefault(engine: Pointer, index: number): boolean {\n return this.opentui.symbols.audioIsPlaybackDeviceDefault(engine, index)\n }\n\n public audioSelectPlaybackDevice(engine: Pointer, index: number): number {\n return this.opentui.symbols.audioSelectPlaybackDevice(engine, index)\n }\n\n public audioClearPlaybackDeviceSelection(engine: Pointer): void {\n this.opentui.symbols.audioClearPlaybackDeviceSelection(engine)\n }\n\n public audioRefreshCaptureDevices(engine: AudioEngineHandle): number {\n return this.opentui.symbols.audioRefreshCaptureDevices(engine)\n }\n\n public audioGetCaptureDeviceCount(engine: AudioEngineHandle): number {\n return this.opentui.symbols.audioGetCaptureDeviceCount(engine)\n }\n\n public audioGetCaptureDeviceName(engine: AudioEngineHandle, index: number): string {\n const outBuffer = new Uint8Array(512)\n const bytesWritten = toNumber(\n this.opentui.symbols.audioGetCaptureDeviceName(engine, index, outBuffer, outBuffer.length),\n )\n const safeBytesWritten = Math.max(0, Math.min(outBuffer.length, bytesWritten))\n return this.decoder.decode(outBuffer.subarray(0, safeBytesWritten))\n }\n\n public audioIsCaptureDeviceDefault(engine: AudioEngineHandle, index: number): boolean {\n return Boolean(this.opentui.symbols.audioIsCaptureDeviceDefault(engine, index))\n }\n\n public audioSelectCaptureDevice(engine: AudioEngineHandle, index: number): number {\n return this.opentui.symbols.audioSelectCaptureDevice(engine, index)\n }\n\n public audioClearCaptureDeviceSelection(engine: AudioEngineHandle): void {\n this.opentui.symbols.audioClearCaptureDeviceSelection(engine)\n }\n\n public audioStartCapture(\n engine: AudioEngineHandle,\n options: AudioStartOptions | undefined,\n channels: number,\n capacityFrames: number,\n ): number {\n let optionsBuffer: ArrayBuffer\n try {\n const noFixedSizedCallback = options?.noFixedSizedCallback\n optionsBuffer = AudioStartOptionsStruct.pack(options ?? {})\n if (noFixedSizedCallback === undefined) {\n const field = AudioStartOptionsStruct.layoutByName.get(\"noFixedSizedCallback\")\n if (!field) return -1\n new DataView(optionsBuffer).setUint8(field.offset, 1)\n }\n } catch {\n return -1\n }\n return this.opentui.symbols.audioStartCapture(engine, optionsBuffer, channels, capacityFrames)\n }\n\n public audioStopCapture(engine: AudioEngineHandle): number {\n return this.opentui.symbols.audioStopCapture(engine)\n }\n\n public audioIsCaptureRunning(engine: AudioEngineHandle): boolean {\n return Boolean(this.opentui.symbols.audioIsCaptureRunning(engine))\n }\n\n public audioReadCapture(\n engine: AudioEngineHandle,\n outBuffer: Float32Array,\n frameCount: number,\n ): { status: number; framesRead: number } {\n const outFramesReadBuffer = new ArrayBuffer(4)\n const sampleCapacity = toSafeFFIU32Length(outBuffer.length, \"Audio capture output sample capacity\")\n const status = this.opentui.symbols.audioReadCapture(\n engine,\n outBuffer,\n sampleCapacity,\n frameCount,\n outFramesReadBuffer,\n )\n if (status !== 0) return { status, framesRead: 0 }\n return { status, framesRead: new Uint32Array(outFramesReadBuffer)[0] ?? 0 }\n }\n\n public audioGetCaptureStats(engine: AudioEngineHandle): { status: number; stats: NativeAudioCaptureStats | null } {\n const statsBuffer = new ArrayBuffer(AudioCaptureStatsStruct.size)\n const status = this.opentui.symbols.audioGetCaptureStats(engine, statsBuffer)\n if (status !== 0) return { status, stats: null }\n const stats = AudioCaptureStatsStruct.unpack(statsBuffer)\n return {\n status,\n stats: {\n framesReceived: typeof stats.framesReceived === \"bigint\" ? stats.framesReceived : BigInt(stats.framesReceived),\n framesRead: typeof stats.framesRead === \"bigint\" ? stats.framesRead : BigInt(stats.framesRead),\n framesDropped: typeof stats.framesDropped === \"bigint\" ? stats.framesDropped : BigInt(stats.framesDropped),\n sampleRate: stats.sampleRate,\n channels: stats.channels,\n bufferedFrames: stats.bufferedFrames,\n capacityFrames: stats.capacityFrames,\n },\n }\n }\n\n public audioStart(engine: Pointer, options?: AudioStartOptions | null): number {\n let optionsBuffer: ArrayBuffer | null\n try {\n optionsBuffer = options == null ? null : AudioStartOptionsStruct.pack(options)\n } catch {\n return -1\n }\n return this.opentui.symbols.audioStart(engine, optionsBuffer ? ptr(optionsBuffer) : null)\n }\n\n public audioStartMixer(engine: Pointer): number {\n return this.opentui.symbols.audioStartMixer(engine)\n }\n\n public audioStop(engine: Pointer): number {\n return this.opentui.symbols.audioStop(engine)\n }\n\n public audioCreateStream(\n engine: AudioEngineHandle,\n options: AudioStreamCreateOptions,\n ): { status: number; streamId: number | null } {\n if (\n !isFFIU32(options.groupId) ||\n (options.format !== NativeAudioStreamFormat.Mp3 && options.format !== NativeAudioStreamFormat.Flac)\n ) {\n return { status: -1, streamId: null }\n }\n const optionsBuffer = AudioStreamCreateOptionsStruct.pack(options)\n const outBuffer = new ArrayBuffer(4)\n const status = this.opentui.symbols.audioCreateStream(engine, optionsBuffer, outBuffer)\n if (status !== 0) return { status, streamId: null }\n return { status, streamId: new Uint32Array(outBuffer)[0] ?? null }\n }\n\n public audioWriteStream(engine: AudioEngineHandle, streamId: number, data: Uint8Array): number {\n const dataLength = toSafeFFIU32Length(data.byteLength, \"Audio stream data length\")\n return this.opentui.symbols.audioWriteStream(engine, streamId, dataLength === 0 ? null : data, dataLength)\n }\n\n public audioEndStream(engine: AudioEngineHandle, streamId: number): number {\n return this.opentui.symbols.audioEndStream(engine, streamId)\n }\n\n public audioRestartStream(engine: AudioEngineHandle, streamId: number): number {\n return this.opentui.symbols.audioRestartStream(engine, streamId)\n }\n\n public audioSetStreamVolume(engine: AudioEngineHandle, streamId: number, volume: number): number {\n return this.opentui.symbols.audioSetStreamVolume(engine, streamId, volume)\n }\n\n public audioSetStreamPan(engine: AudioEngineHandle, streamId: number, pan: number): number {\n return this.opentui.symbols.audioSetStreamPan(engine, streamId, pan)\n }\n\n public audioSetStreamGroup(engine: AudioEngineHandle, streamId: number, groupId: number): number {\n if (!isFFIU32(groupId)) return -1\n return this.opentui.symbols.audioSetStreamGroup(engine, streamId, groupId)\n }\n\n public audioGetStreamStats(engine: AudioEngineHandle, streamId: number): NativeAudioStreamStats | null {\n const storage = this.ffiStructStorage.audioStreamStats\n const status = this.opentui.symbols.audioGetStreamStats(engine, streamId, storage.buffer)\n if (status !== 0) return null\n const stats = AudioStreamStatsStruct.unpackInto(storage.view, storage.result) as NativeAudioStreamStats\n return { ...stats }\n }\n\n public audioCloseStream(\n engine: AudioEngineHandle,\n streamId: number,\n reason: NativeAudioStreamCloseReason,\n ): { status: number; stats: NativeAudioStreamStats | null } {\n const storage = this.ffiStructStorage.audioStreamStats\n const status = this.opentui.symbols.audioCloseStream(engine, streamId, reason, storage.buffer)\n if (status !== 0) return { status, stats: null }\n const stats = AudioStreamStatsStruct.unpackInto(storage.view, storage.result) as NativeAudioStreamStats\n return { status, stats: { ...stats } }\n }\n\n public audioLoad(engine: Pointer, data: Uint8Array): { status: number; soundId: number | null } {\n const outBuffer = new ArrayBuffer(4)\n const dataLength = toSafeFFIU32Length(data.byteLength, \"Audio data length\")\n const status = this.opentui.symbols.audioLoad(engine, ptr(data), dataLength, ptr(outBuffer))\n if (status !== 0) {\n return { status, soundId: null }\n }\n const view = new Uint32Array(outBuffer)\n return { status, soundId: view[0] }\n }\n\n public audioUnload(engine: Pointer, soundId: number): number {\n return this.opentui.symbols.audioUnload(engine, soundId)\n }\n\n public audioPlay(\n engine: Pointer,\n soundId: number,\n options?: AudioVoiceOptions,\n ): { status: number; voiceId: number | null } {\n if (options?.groupId !== undefined && !isFFIU32(options.groupId)) return { status: -1, voiceId: null }\n const outBuffer = new ArrayBuffer(4)\n const optionsBuffer = options ? AudioVoiceOptionsStruct.pack(options) : null\n const status = this.opentui.symbols.audioPlay(\n engine,\n soundId,\n optionsBuffer ? ptr(optionsBuffer) : null,\n ptr(outBuffer),\n )\n if (status !== 0) {\n return { status, voiceId: null }\n }\n const view = new Uint32Array(outBuffer)\n return { status, voiceId: view[0] }\n }\n\n public audioStopVoice(engine: Pointer, voiceId: number): number {\n return this.opentui.symbols.audioStopVoice(engine, voiceId)\n }\n\n public audioSetVoiceGroup(engine: Pointer, voiceId: number, groupId: number): number {\n if (!isFFIU32(groupId)) return -1\n return this.opentui.symbols.audioSetVoiceGroup(engine, voiceId, groupId)\n }\n\n public audioCreateGroup(engine: Pointer, name: string): { status: number; groupId: number | null } {\n const outBuffer = new ArrayBuffer(4)\n const nameBytes = this.encoder.encode(name)\n const nameLength = toSafeFFIU32Length(nameBytes.byteLength, \"Audio group name length\")\n const status = this.opentui.symbols.audioCreateGroup(engine, ptr(nameBytes), nameLength, ptr(outBuffer))\n if (status !== 0) {\n return { status, groupId: null }\n }\n const view = new Uint32Array(outBuffer)\n return { status, groupId: view[0] }\n }\n\n public audioSetGroupVolume(engine: Pointer, groupId: number, volume: number): number {\n return this.opentui.symbols.audioSetGroupVolume(engine, groupId, volume)\n }\n\n public audioSetMasterVolume(engine: Pointer, volume: number): number {\n return this.opentui.symbols.audioSetMasterVolume(engine, volume)\n }\n\n public audioMixToBuffer(engine: Pointer, outBuffer: Float32Array, frameCount: number, channels: number): number {\n return this.opentui.symbols.audioMixToBuffer(engine, ptr(outBuffer), frameCount, channels)\n }\n\n public audioEnableTap(engine: Pointer, enabled: boolean, capacityFrames: number): number {\n return this.opentui.symbols.audioEnableTap(engine, ffiBool(enabled), capacityFrames)\n }\n\n public audioReadTap(\n engine: Pointer,\n outBuffer: Float32Array,\n frameCount: number,\n channels: number,\n ): { status: number; framesRead: number } {\n const outFramesReadBuffer = new ArrayBuffer(4)\n const status = this.opentui.symbols.audioReadTap(\n engine,\n ptr(outBuffer),\n frameCount,\n channels,\n ptr(outFramesReadBuffer),\n )\n if (status !== 0) {\n return { status, framesRead: 0 }\n }\n const view = new Uint32Array(outFramesReadBuffer)\n return { status, framesRead: view[0] ?? 0 }\n }\n\n public audioGetStats(engine: Pointer): AudioStats | null {\n const statsBuffer = new ArrayBuffer(AudioStatsStruct.size)\n const status = this.opentui.symbols.audioGetStats(engine, ptr(statsBuffer))\n if (status !== 0) {\n return null\n }\n const stats = AudioStatsStruct.unpack(statsBuffer)\n return {\n soundsLoaded: stats.soundsLoaded,\n voicesActive: stats.voicesActive,\n framesMixed: typeof stats.framesMixed === \"bigint\" ? stats.framesMixed : BigInt(stats.framesMixed),\n lockMisses: stats.lockMisses,\n lastPeak: stats.lastPeak,\n lastRms: stats.lastRms,\n }\n }\n\n public registerNativeSpanFeedStream(stream: Pointer, handler: NativeSpanFeedEventHandler): void {\n const callback = this.ensureNativeSpanFeedCallback()\n this.nativeSpanFeedHandlers.set(stream, handler)\n this.opentui.symbols.streamSetCallback(stream, callback.ptr)\n }\n\n public unregisterNativeSpanFeedStream(stream: Pointer): void {\n this.opentui.symbols.streamSetCallback(stream, null)\n this.nativeSpanFeedHandlers.delete(stream)\n }\n\n public createNativeSpanFeed(options?: NativeSpanFeedOptions | null): Pointer {\n const optionsBuffer = options == null ? null : NativeSpanFeedOptionsStruct.pack(options)\n const streamPtr = this.opentui.symbols.createNativeSpanFeed(optionsBuffer ? ptr(optionsBuffer) : null)\n if (!streamPtr) {\n throw new Error(\"Failed to create stream\")\n }\n return streamPtr\n }\n\n public attachNativeSpanFeed(stream: Pointer): number {\n return this.opentui.symbols.attachNativeSpanFeed(stream)\n }\n\n public destroyNativeSpanFeed(stream: Pointer): void {\n this.opentui.symbols.destroyNativeSpanFeed(stream)\n this.nativeSpanFeedHandlers.delete(stream)\n }\n\n public streamWrite(stream: Pointer, data: Uint8Array | string): number {\n const bytes = typeof data === \"string\" ? this.encoder.encode(data) : data\n return this.opentui.symbols.streamWrite(stream, ptrOrNull(bytes), bytes.byteLength)\n }\n\n public streamCommit(stream: Pointer): number {\n return this.opentui.symbols.streamCommit(stream)\n }\n\n public streamDrainSpans(stream: Pointer, outBuffer: Uint8Array, maxSpans: number): number {\n const count = this.opentui.symbols.streamDrainSpans(stream, ptr(outBuffer), maxSpans)\n return toNumber(count)\n }\n\n public streamClose(stream: Pointer): number {\n return this.opentui.symbols.streamClose(stream)\n }\n\n public streamSetOptions(stream: Pointer, options: NativeSpanFeedOptions): number {\n const optionsBuffer = NativeSpanFeedOptionsStruct.pack(options)\n return this.opentui.symbols.streamSetOptions(stream, ptr(optionsBuffer))\n }\n\n public streamGetStats(stream: Pointer): NativeSpanFeedStats | null {\n const statsBuffer = new ArrayBuffer(NativeSpanFeedStatsStruct.size)\n const status = this.opentui.symbols.streamGetStats(stream, ptr(statsBuffer))\n if (status !== 0) {\n return null\n }\n const stats = NativeSpanFeedStatsStruct.unpack(statsBuffer)\n return {\n bytesWritten: typeof stats.bytesWritten === \"bigint\" ? stats.bytesWritten : BigInt(stats.bytesWritten),\n spansCommitted: typeof stats.spansCommitted === \"bigint\" ? stats.spansCommitted : BigInt(stats.spansCommitted),\n chunks: stats.chunks,\n pendingSpans: stats.pendingSpans,\n }\n }\n\n public streamReserve(stream: Pointer, minLen: number): { status: number; info: ReserveInfo | null } {\n const reserveBuffer = new ArrayBuffer(ReserveInfoStruct.size)\n const status = this.opentui.symbols.streamReserve(stream, minLen, ptr(reserveBuffer))\n if (status !== 0) {\n return { status, info: null }\n }\n return { status, info: ReserveInfoStruct.unpack(reserveBuffer) }\n }\n\n public streamCommitReserved(stream: Pointer, length: number): number {\n return this.opentui.symbols.streamCommitReserved(stream, length)\n }\n\n public createSyntaxStyle(): SyntaxStyleHandle {\n const styleHandle = this.opentui.symbols.createSyntaxStyle() as SyntaxStyleHandle\n if (!styleHandle) {\n throw new Error(\"Failed to create SyntaxStyle\")\n }\n return styleHandle\n }\n\n public destroySyntaxStyle(style: SyntaxStyleHandle): void {\n this.opentui.symbols.destroySyntaxStyle(style)\n }\n\n public syntaxStyleRegister(\n style: SyntaxStyleHandle,\n name: string,\n fg: RGBA | null,\n bg: RGBA | null,\n attributes: number,\n ): number {\n const nameBytes = this.encoder.encode(name)\n const fgPtr = optionalRgbaPtr(fg)\n const bgPtr = optionalRgbaPtr(bg)\n return this.opentui.symbols.syntaxStyleRegister(\n style,\n ptrOrNull(nameBytes),\n nameBytes.byteLength,\n fgPtr,\n bgPtr,\n attributes,\n )\n }\n\n public syntaxStyleResolveByName(style: SyntaxStyleHandle, name: string): number | null {\n const nameBytes = this.encoder.encode(name)\n const id = this.opentui.symbols.syntaxStyleResolveByName(style, ptrOrNull(nameBytes), nameBytes.byteLength)\n return id === 0 ? null : id\n }\n\n public syntaxStyleGetStyleCount(style: SyntaxStyleHandle): number {\n return this.opentui.symbols.syntaxStyleGetStyleCount(style)\n }\n\n private imageHandleResult(status: number, output: Uint32Array): { status: number; handle: ImageHandle | null } {\n return { status, handle: status === 0 && output[0] !== 0 ? (output[0] as ImageHandle) : null }\n }\n\n public imageInfo(data: Uint8Array): { status: number; info: NativeImageInfo } {\n const length = toSafeFFIU32Length(data.byteLength, \"image data\")\n const output = new ArrayBuffer(NativeImageInfoStruct.size)\n const status = this.opentui.symbols.imageInfo(data.byteLength === 0 ? null : data, length, output)\n return { status, info: NativeImageInfoStruct.unpack(output) }\n }\n\n public imageDecode(data: Uint8Array): { status: number; handle: ImageHandle | null } {\n const length = toSafeFFIU32Length(data.byteLength, \"image data\")\n const output = new Uint32Array(1)\n return this.imageHandleResult(\n this.opentui.symbols.imageDecode(data.byteLength === 0 ? null : data, length, output),\n output,\n )\n }\n\n public imageCreateFromRgba(\n pixels: Uint8Array,\n width: number,\n height: number,\n stride: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n const status = this.opentui.symbols.imageCreateFromRgba(\n pixels.byteLength === 0 ? null : pixels,\n BigInt(pixels.byteLength),\n width,\n height,\n stride,\n output,\n )\n return this.imageHandleResult(status, output)\n }\n\n public imageDestroy(image: ImageHandle): void {\n this.opentui.symbols.imageDestroy(image)\n }\n\n public imageRetain(image: ImageHandle): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageRetain(image, output), output)\n }\n\n public imageRetainIccCache(): void {\n this.opentui.symbols.imageRetainIccCache()\n }\n\n public imageReleaseIccCache(): void {\n this.opentui.symbols.imageReleaseIccCache()\n }\n\n public imageTestFailIccProfileCopyAllocationOnce(): void {\n this.opentui.symbols.imageTestFailIccProfileCopyAllocationOnce()\n }\n\n public imageGetInfo(image: ImageHandle): { status: number; info: NativeImageInfo } {\n const output = new ArrayBuffer(NativeImageInfoStruct.size)\n const status = this.opentui.symbols.imageGetInfo(image, output)\n return { status, info: NativeImageInfoStruct.unpack(output) }\n }\n\n public imageGetPixelsPtr(image: ImageHandle): Pointer | null {\n const pointer = this.opentui.symbols.imageGetPixelsPtr(image)\n return pointer === null || pointer === 0 || pointer === 0n ? null : pointer\n }\n\n public imageMaterialize(image: ImageHandle): number {\n return this.opentui.symbols.imageMaterialize(image)\n }\n\n public imageEnsureEncodedPng(image: ImageHandle): number {\n return this.opentui.symbols.imageEnsureEncodedPng(image)\n }\n\n public imageClone(image: ImageHandle): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageClone(image, output), output)\n }\n\n public imageCopyPixels(image: ImageHandle, destination: Uint8Array, stride: number, bgra: boolean): number {\n return this.opentui.symbols.imageCopyPixels(\n image,\n destination.byteLength === 0 ? null : destination,\n BigInt(destination.byteLength),\n stride,\n bgra ? 1 : 0,\n )\n }\n\n public imageResize(\n image: ImageHandle,\n width: number,\n height: number,\n filter: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageResize(image, width, height, filter, output), output)\n }\n\n public imageExtract(\n image: ImageHandle,\n left: number,\n top: number,\n width: number,\n height: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageExtract(image, left, top, width, height, output), output)\n }\n\n public imageExtend(\n image: ImageHandle,\n top: number,\n right: number,\n bottom: number,\n left: number,\n background: Uint8Array,\n ): { status: number; handle: ImageHandle | null } {\n if (!(background instanceof Uint8Array) || background.byteLength !== 4) return { status: 7, handle: null }\n const output = new Uint32Array(1)\n return this.imageHandleResult(\n this.opentui.symbols.imageExtend(image, top, right, bottom, left, background, output),\n output,\n )\n }\n\n public imageTransform(image: ImageHandle, operation: number): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(this.opentui.symbols.imageTransform(image, operation, output), output)\n }\n\n public imageComposite(\n base: ImageHandle,\n overlay: ImageHandle,\n left: number,\n top: number,\n blend: number,\n opacity: number,\n ): { status: number; handle: ImageHandle | null } {\n const output = new Uint32Array(1)\n return this.imageHandleResult(\n this.opentui.symbols.imageComposite(base, overlay, left, top, blend, opacity, output),\n output,\n )\n }\n\n public editorViewSetPlaceholderStyledText(\n view: EditorViewHandle,\n chunks: Array<{ text: string; fg?: RGBA | null; bg?: RGBA | null; attributes?: number }>,\n ): void {\n const nonEmptyChunks = chunks.filter((c) => c.text.length > 0)\n if (nonEmptyChunks.length === 0) {\n this.opentui.symbols.editorViewSetPlaceholderStyledText(view, null, 0)\n return\n }\n\n const chunksBuffer = StyledChunkStruct.packList(nonEmptyChunks)\n this.opentui.symbols.editorViewSetPlaceholderStyledText(view, chunksBuffer, nonEmptyChunks.length)\n }\n\n public editorViewSetTabIndicator(view: EditorViewHandle, indicator: number): void {\n this.opentui.symbols.editorViewSetTabIndicator(view, indicator)\n }\n\n public editorViewSetTabIndicatorColor(view: EditorViewHandle, color: RGBA): void {\n this.opentui.symbols.editorViewSetTabIndicatorColor(view, rgbaPtr(color))\n }\n\n public onNativeEvent(name: string, handler: (data: ArrayBuffer) => void): void {\n this._nativeEvents.on(name, handler)\n }\n\n public onceNativeEvent(name: string, handler: (data: ArrayBuffer) => void): void {\n this._nativeEvents.once(name, handler)\n }\n\n public offNativeEvent(name: string, handler: (data: ArrayBuffer) => void): void {\n this._nativeEvents.off(name, handler)\n }\n\n public onAnyNativeEvent(handler: (name: string, data: ArrayBuffer) => void): void {\n this._anyEventHandlers.push(handler)\n }\n}\n\nlet opentuiLibPath: string | undefined\nlet opentuiLib: RenderLib | undefined\nlet renderLibResolved = false\n\nexport function setRenderLibPath(libPath: string) {\n if (opentuiLibPath !== libPath) {\n if (renderLibResolved) {\n throw new Error(\"setRenderLibPath() must be called before resolveRenderLib()\")\n }\n if (opentuiLib instanceof FFIRenderLib) {\n opentuiLib.dispose()\n }\n opentuiLibPath = libPath\n opentuiLib = undefined\n }\n}\n\nexport function resolveRenderLib(): RenderLib {\n if (!opentuiLib) {\n try {\n opentuiLib = new FFIRenderLib(opentuiLibPath)\n } catch (error) {\n throw new Error(\n `Failed to initialize OpenTUI render library: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n )\n }\n }\n renderLibResolved = true\n return opentuiLib\n}\n\n// Try eager loading\ntry {\n opentuiLib = new FFIRenderLib(opentuiLibPath)\n} catch (error) {}\n",
|
|
17
17
|
"export type RGBTriplet = readonly [number, number, number]\nexport type ColorIntent = \"rgb\" | \"indexed\" | \"default\"\nexport type ColorInput = string | RGBA\n\nexport const DEFAULT_FOREGROUND_RGB: RGBTriplet = [255, 255, 255]\nexport const DEFAULT_BACKGROUND_RGB: RGBTriplet = [0, 0, 0]\n\nconst INTENT_RGB = 0\nconst INTENT_INDEXED = 1\nconst INTENT_DEFAULT = 2\n\nconst ANSI16_RGB: readonly RGBTriplet[] = [\n [0x00, 0x00, 0x00],\n [0x80, 0x00, 0x00],\n [0x00, 0x80, 0x00],\n [0x80, 0x80, 0x00],\n [0x00, 0x00, 0x80],\n [0x80, 0x00, 0x80],\n [0x00, 0x80, 0x80],\n [0xc0, 0xc0, 0xc0],\n [0x80, 0x80, 0x80],\n [0xff, 0x00, 0x00],\n [0x00, 0xff, 0x00],\n [0xff, 0xff, 0x00],\n [0x00, 0x00, 0xff],\n [0xff, 0x00, 0xff],\n [0x00, 0xff, 0xff],\n [0xff, 0xff, 0xff],\n]\n\nconst ANSI_256_CUBE_LEVELS = [0, 95, 135, 175, 215, 255] as const\n\nexport interface NormalizedColorValue {\n rgba: RGBA\n}\n\nfunction packMeta(intent: number, slot = 0): number {\n return ((slot & 0xff) | ((intent & 0xff) << 8)) >>> 0\n}\n\nfunction toU8(value: number): number {\n return Math.round(Math.max(0, Math.min(1, Number.isFinite(value) ? value : 0)) * 255)\n}\n\nfunction toByte(value: number): number {\n return Math.round(Math.max(0, Math.min(255, Number.isFinite(value) ? value : 0)))\n}\n\nfunction packRGBA8(r: number, g: number, b: number, a: number, meta: number): Uint16Array {\n return new Uint16Array([\n (toByte(r) & 0xff) | (((meta >>> 0) & 0xff) << 8),\n (toByte(g) & 0xff) | (((meta >>> 8) & 0xff) << 8),\n (toByte(b) & 0xff) | (((meta >>> 16) & 0xff) << 8),\n (toByte(a) & 0xff) | (((meta >>> 24) & 0xff) << 8),\n ])\n}\n\nfunction rgbaForAnsi256Index(index: number): RGBA {\n const [r, g, b] = ansi256IndexToRgb(index)\n return RGBA.fromInts(r, g, b)\n}\n\nexport function normalizeIndexedColorIndex(index: number): number {\n if (!Number.isInteger(index) || index < 0 || index > 255) {\n throw new RangeError(`Indexed color must be an integer in the range 0..255, got ${index}`)\n }\n\n return index\n}\n\nexport function ansi256IndexToRgb(index: number): RGBTriplet {\n const normalizedIndex = normalizeIndexedColorIndex(index)\n\n if (normalizedIndex < ANSI16_RGB.length) {\n return ANSI16_RGB[normalizedIndex]\n }\n\n if (normalizedIndex < 232) {\n const cubeIndex = normalizedIndex - 16\n const r = Math.floor(cubeIndex / 36)\n const g = Math.floor(cubeIndex / 6) % 6\n const b = cubeIndex % 6\n return [ANSI_256_CUBE_LEVELS[r], ANSI_256_CUBE_LEVELS[g], ANSI_256_CUBE_LEVELS[b]]\n }\n\n const value = 8 + (normalizedIndex - 232) * 10\n return [value, value, value]\n}\n\nexport class RGBA {\n buffer: Uint16Array\n\n constructor(buffer: Uint16Array) {\n this.buffer = new Uint16Array(4)\n this.buffer.set(buffer.subarray(0, 4))\n }\n\n static fromArray(array: Uint16Array): RGBA {\n return new RGBA(array)\n }\n\n static fromValues(r: number, g: number, b: number, a: number = 1): RGBA {\n return new RGBA(packRGBA8(toU8(r), toU8(g), toU8(b), toU8(a), packMeta(INTENT_RGB)))\n }\n\n static clone(rgba: RGBA): RGBA {\n return new RGBA(rgba.buffer)\n }\n\n static fromInts(r: number, g: number, b: number, a: number = 255): RGBA {\n return new RGBA(packRGBA8(r, g, b, a, packMeta(INTENT_RGB)))\n }\n\n static fromHex(hex: string): RGBA {\n return hexToRgb(hex)\n }\n\n static fromIndex(index: number, snapshot?: ColorInput): RGBA {\n const normalized = normalizeIndexedColorIndex(index)\n const rgba = snapshot ? parseColor(snapshot) : rgbaForAnsi256Index(normalized)\n const [r, g, b, a] = rgba.toInts()\n return new RGBA(packRGBA8(r, g, b, a, packMeta(INTENT_INDEXED, normalized)))\n }\n\n static defaultForeground(snapshot?: ColorInput): RGBA {\n const rgba = snapshot ? parseColor(snapshot) : RGBA.fromInts(...DEFAULT_FOREGROUND_RGB)\n const [r, g, b, a] = rgba.toInts()\n return new RGBA(packRGBA8(r, g, b, a, packMeta(INTENT_DEFAULT)))\n }\n\n static defaultBackground(snapshot?: ColorInput): RGBA {\n const rgba = snapshot ? parseColor(snapshot) : RGBA.fromInts(...DEFAULT_BACKGROUND_RGB)\n const [r, g, b, a] = rgba.toInts()\n return new RGBA(packRGBA8(r, g, b, a, packMeta(INTENT_DEFAULT)))\n }\n\n toInts(): [number, number, number, number] {\n return [this.buffer[0] & 0xff, this.buffer[1] & 0xff, this.buffer[2] & 0xff, this.buffer[3] & 0xff]\n }\n\n get r(): number {\n return (this.buffer[0] & 0xff) / 255\n }\n\n set r(value: number) {\n this.buffer[0] = (this.buffer[0] & 0xff00) | toU8(value)\n }\n\n get g(): number {\n return (this.buffer[1] & 0xff) / 255\n }\n\n set g(value: number) {\n this.buffer[1] = (this.buffer[1] & 0xff00) | toU8(value)\n }\n\n get b(): number {\n return (this.buffer[2] & 0xff) / 255\n }\n\n set b(value: number) {\n this.buffer[2] = (this.buffer[2] & 0xff00) | toU8(value)\n }\n\n get a(): number {\n return (this.buffer[3] & 0xff) / 255\n }\n\n set a(value: number) {\n this.buffer[3] = (this.buffer[3] & 0xff00) | toU8(value)\n }\n\n get meta(): number {\n return (\n ((this.buffer[0] >>> 8) |\n ((this.buffer[1] >>> 8) << 8) |\n ((this.buffer[2] >>> 8) << 16) |\n ((this.buffer[3] >>> 8) << 24)) >>>\n 0\n )\n }\n\n get intent(): ColorIntent {\n switch ((this.meta >>> 8) & 0xff) {\n case INTENT_INDEXED:\n return \"indexed\"\n case INTENT_DEFAULT:\n return \"default\"\n default:\n return \"rgb\"\n }\n }\n\n get slot(): number {\n return this.meta & 0xff\n }\n\n map<R>(fn: (value: number) => R): [R, R, R, R] {\n return [fn(this.r), fn(this.g), fn(this.b), fn(this.a)]\n }\n\n toString(): string {\n return `rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`\n }\n\n equals(other?: RGBA): boolean {\n if (!other) return false\n return (\n this.buffer[0] === other.buffer[0] &&\n this.buffer[1] === other.buffer[1] &&\n this.buffer[2] === other.buffer[2] &&\n this.buffer[3] === other.buffer[3]\n )\n }\n}\n\nexport function normalizeColorValue(value: ColorInput | null | undefined): NormalizedColorValue | null {\n if (value == null) return null\n return { rgba: parseColor(value) }\n}\n\nexport function hexToRgb(hex: string): RGBA {\n hex = hex.replace(/^#/, \"\")\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n } else if (hex.length === 4) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3]\n }\n\n if (!/^[0-9A-Fa-f]{6}$/.test(hex) && !/^[0-9A-Fa-f]{8}$/.test(hex)) {\n console.warn(`Invalid hex color: ${hex}, defaulting to magenta`)\n return RGBA.fromValues(1, 0, 1, 1)\n }\n\n const r = parseInt(hex.substring(0, 2), 16)\n const g = parseInt(hex.substring(2, 4), 16)\n const b = parseInt(hex.substring(4, 6), 16)\n const a = hex.length === 8 ? parseInt(hex.substring(6, 8), 16) : 255\n\n return RGBA.fromInts(r, g, b, a)\n}\n\nexport function rgbToHex(rgb: RGBA): string {\n const [r, g, b, a] = rgb.toInts()\n const components = a === 255 ? [r, g, b] : [r, g, b, a]\n return \"#\" + components.map((x) => x.toString(16).padStart(2, \"0\")).join(\"\")\n}\n\nexport function hsvToRgb(h: number, s: number, v: number): RGBA {\n let r = 0,\n g = 0,\n b = 0\n\n const i = Math.floor(h / 60) % 6\n const f = h / 60 - Math.floor(h / 60)\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n\n switch (i) {\n case 0:\n r = v\n g = t\n b = p\n break\n case 1:\n r = q\n g = v\n b = p\n break\n case 2:\n r = p\n g = v\n b = t\n break\n case 3:\n r = p\n g = q\n b = v\n break\n case 4:\n r = t\n g = p\n b = v\n break\n case 5:\n r = v\n g = p\n b = q\n break\n }\n\n return RGBA.fromValues(r, g, b, 1)\n}\n\nconst CSS_COLOR_NAMES: Record<string, string> = {\n black: \"#000000\",\n white: \"#FFFFFF\",\n red: \"#FF0000\",\n green: \"#008000\",\n blue: \"#0000FF\",\n yellow: \"#FFFF00\",\n cyan: \"#00FFFF\",\n magenta: \"#FF00FF\",\n silver: \"#C0C0C0\",\n gray: \"#808080\",\n grey: \"#808080\",\n maroon: \"#800000\",\n olive: \"#808000\",\n lime: \"#00FF00\",\n aqua: \"#00FFFF\",\n teal: \"#008080\",\n navy: \"#000080\",\n fuchsia: \"#FF00FF\",\n purple: \"#800080\",\n orange: \"#FFA500\",\n brightblack: \"#666666\",\n brightred: \"#FF6666\",\n brightgreen: \"#66FF66\",\n brightblue: \"#6666FF\",\n brightyellow: \"#FFFF66\",\n brightcyan: \"#66FFFF\",\n brightmagenta: \"#FF66FF\",\n brightwhite: \"#FFFFFF\",\n}\n\nexport function parseColor(color: ColorInput): RGBA {\n if (typeof color === \"string\") {\n const lowerColor = color.toLowerCase()\n\n if (lowerColor === \"transparent\") {\n return RGBA.fromValues(0, 0, 0, 0)\n }\n\n if (CSS_COLOR_NAMES[lowerColor]) {\n return hexToRgb(CSS_COLOR_NAMES[lowerColor])\n }\n\n return hexToRgb(color)\n }\n return color\n}\n",
|
|
18
18
|
"import type { ColorInput } from \"./RGBA.js\"\n\nexport interface BorderCharacters {\n topLeft: string\n topRight: string\n bottomLeft: string\n bottomRight: string\n horizontal: string\n vertical: string\n topT: string\n bottomT: string\n leftT: string\n rightT: string\n cross: string\n}\n\nexport type BorderStyle = \"single\" | \"double\" | \"rounded\" | \"heavy\"\nexport type BorderSides = \"top\" | \"right\" | \"bottom\" | \"left\"\n\nconst VALID_BORDER_STYLES: readonly BorderStyle[] = [\"single\", \"double\", \"rounded\", \"heavy\"] as const\n\nexport function isValidBorderStyle(value: unknown): value is BorderStyle {\n return typeof value === \"string\" && VALID_BORDER_STYLES.includes(value as BorderStyle)\n}\n\nexport function parseBorderStyle(value: unknown, fallback: BorderStyle = \"single\"): BorderStyle {\n if (isValidBorderStyle(value)) {\n return value\n }\n\n if (value !== undefined && value !== null) {\n console.warn(\n `Invalid borderStyle \"${value}\", falling back to \"${fallback}\". Valid values are: ${VALID_BORDER_STYLES.join(\", \")}`,\n )\n }\n return fallback\n}\n\nexport const BorderChars: Record<BorderStyle, BorderCharacters> = {\n single: {\n topLeft: \"┌\",\n topRight: \"┐\",\n bottomLeft: \"└\",\n bottomRight: \"┘\",\n horizontal: \"─\",\n vertical: \"│\",\n topT: \"┬\",\n bottomT: \"┴\",\n leftT: \"├\",\n rightT: \"┤\",\n cross: \"┼\",\n },\n double: {\n topLeft: \"╔\",\n topRight: \"╗\",\n bottomLeft: \"╚\",\n bottomRight: \"╝\",\n horizontal: \"═\",\n vertical: \"║\",\n topT: \"╦\",\n bottomT: \"╩\",\n leftT: \"╠\",\n rightT: \"╣\",\n cross: \"╬\",\n },\n rounded: {\n topLeft: \"╭\",\n topRight: \"╮\",\n bottomLeft: \"╰\",\n bottomRight: \"╯\",\n horizontal: \"─\",\n vertical: \"│\",\n topT: \"┬\",\n bottomT: \"┴\",\n leftT: \"├\",\n rightT: \"┤\",\n cross: \"┼\",\n },\n heavy: {\n topLeft: \"┏\",\n topRight: \"┓\",\n bottomLeft: \"┗\",\n bottomRight: \"┛\",\n horizontal: \"━\",\n vertical: \"┃\",\n topT: \"┳\",\n bottomT: \"┻\",\n leftT: \"┣\",\n rightT: \"┫\",\n cross: \"╋\",\n },\n}\n\nexport interface BorderConfig {\n borderStyle: BorderStyle\n border: boolean | BorderSides[]\n borderColor?: ColorInput\n customBorderChars?: BorderCharacters\n}\n\nexport interface BoxDrawOptions {\n x: number\n y: number\n width: number\n height: number\n borderStyle: BorderStyle\n border: boolean | BorderSides[]\n borderColor: ColorInput\n customBorderChars?: BorderCharacters\n backgroundColor: ColorInput\n shouldFill?: boolean\n title?: string\n titleAlignment?: \"left\" | \"center\" | \"right\"\n bottomTitle?: string\n bottomTitleAlignment?: \"left\" | \"center\" | \"right\"\n}\n\nexport interface BorderSidesConfig {\n top: boolean\n right: boolean\n bottom: boolean\n left: boolean\n}\n\nexport function getBorderFromSides(sides: BorderSidesConfig): boolean | BorderSides[] {\n const result: BorderSides[] = []\n if (sides.top) result.push(\"top\")\n if (sides.right) result.push(\"right\")\n if (sides.bottom) result.push(\"bottom\")\n if (sides.left) result.push(\"left\")\n return result.length > 0 ? result : false\n}\n\nexport function getBorderSides(border: boolean | BorderSides[]): BorderSidesConfig {\n return border === true\n ? { top: true, right: true, bottom: true, left: true }\n : Array.isArray(border)\n ? {\n top: border.includes(\"top\"),\n right: border.includes(\"right\"),\n bottom: border.includes(\"bottom\"),\n left: border.includes(\"left\"),\n }\n : { top: false, right: false, bottom: false, left: false }\n}\n\n// Convert BorderCharacters to Uint32Array for passing to Zig\nexport function borderCharsToArray(chars: BorderCharacters): Uint32Array {\n const array = new Uint32Array(11)\n array[0] = chars.topLeft.codePointAt(0)!\n array[1] = chars.topRight.codePointAt(0)!\n array[2] = chars.bottomLeft.codePointAt(0)!\n array[3] = chars.bottomRight.codePointAt(0)!\n array[4] = chars.horizontal.codePointAt(0)!\n array[5] = chars.vertical.codePointAt(0)!\n array[6] = chars.topT.codePointAt(0)!\n array[7] = chars.bottomT.codePointAt(0)!\n array[8] = chars.leftT.codePointAt(0)!\n array[9] = chars.rightT.codePointAt(0)!\n array[10] = chars.cross.codePointAt(0)!\n return array\n}\n\n// Pre-converted border character arrays for performance\nexport const BorderCharArrays: Record<BorderStyle, Uint32Array> = {\n single: borderCharsToArray(BorderChars.single),\n double: borderCharsToArray(BorderChars.double),\n rounded: borderCharsToArray(BorderChars.rounded),\n heavy: borderCharsToArray(BorderChars.heavy),\n}\n",
|
|
19
19
|
"import { EventEmitter } from \"events\"\nimport { type KeyEventType, type ParsedKey } from \"./parse.keypress.js\"\nimport type { PasteMetadata } from \"./paste.js\"\n\nexport class KeyEvent implements ParsedKey {\n name: string\n ctrl: boolean\n meta: boolean\n shift: boolean\n option: boolean\n sequence: string\n number: boolean\n raw: string\n eventType: KeyEventType\n source: \"raw\" | \"kitty\"\n code?: string\n super?: boolean\n hyper?: boolean\n capsLock?: boolean\n numLock?: boolean\n baseCode?: number\n repeated?: boolean\n\n private _defaultPrevented: boolean = false\n private _propagationStopped: boolean = false\n\n constructor(key: ParsedKey) {\n this.name = key.name\n this.ctrl = key.ctrl\n this.meta = key.meta\n this.shift = key.shift\n this.option = key.option\n this.sequence = key.sequence\n this.number = key.number\n this.raw = key.raw\n this.eventType = key.eventType\n this.source = key.source\n this.code = key.code\n this.super = key.super\n this.hyper = key.hyper\n this.capsLock = key.capsLock\n this.numLock = key.numLock\n this.baseCode = key.baseCode\n this.repeated = key.repeated\n }\n\n get defaultPrevented(): boolean {\n return this._defaultPrevented\n }\n\n get propagationStopped(): boolean {\n return this._propagationStopped\n }\n\n preventDefault(): void {\n this._defaultPrevented = true\n }\n\n stopPropagation(): void {\n this._propagationStopped = true\n }\n}\n\nexport class PasteEvent {\n type = \"paste\" as const\n bytes: Uint8Array\n metadata?: PasteMetadata\n private _defaultPrevented: boolean = false\n private _propagationStopped: boolean = false\n\n constructor(bytes: Uint8Array, metadata?: PasteMetadata) {\n this.bytes = bytes\n this.metadata = metadata\n }\n\n get defaultPrevented(): boolean {\n return this._defaultPrevented\n }\n\n get propagationStopped(): boolean {\n return this._propagationStopped\n }\n\n preventDefault(): void {\n this._defaultPrevented = true\n }\n\n stopPropagation(): void {\n this._propagationStopped = true\n }\n}\n\nexport type KeyHandlerEventMap = {\n keypress: [KeyEvent]\n keyrelease: [KeyEvent]\n paste: [PasteEvent]\n}\n\nexport class KeyHandler extends EventEmitter<KeyHandlerEventMap> {\n public processParsedKey(parsedKey: ParsedKey): boolean {\n try {\n switch (parsedKey.eventType) {\n case \"press\":\n this.emit(\"keypress\", new KeyEvent(parsedKey))\n break\n case \"release\":\n this.emit(\"keyrelease\", new KeyEvent(parsedKey))\n break\n default:\n this.emit(\"keypress\", new KeyEvent(parsedKey))\n break\n }\n } catch (error) {\n console.error(`[KeyHandler] Error processing parsed key:`, error)\n return true\n }\n\n return true\n }\n\n public processPaste(bytes: Uint8Array, metadata?: PasteMetadata): void {\n try {\n this.emit(\"paste\", new PasteEvent(bytes, metadata))\n } catch (error) {\n console.error(`[KeyHandler] Error processing paste:`, error)\n }\n }\n}\n\n/**\n * This class is used internally by the renderer to ensure global handlers\n * can preventDefault before renderable handlers process events.\n */\nexport class InternalKeyHandler extends KeyHandler {\n private renderableHandlers: Map<keyof KeyHandlerEventMap, Set<Function>> = new Map()\n\n public emit<K extends keyof KeyHandlerEventMap>(event: K, ...args: KeyHandlerEventMap[K]): boolean {\n return this.emitWithPriority(event, ...args)\n }\n\n private emitWithPriority<K extends keyof KeyHandlerEventMap>(event: K, ...args: KeyHandlerEventMap[K]): boolean {\n let hasGlobalListeners = false\n\n // Check if we should emit to global handlers\n // Global handlers are emitted using the parent EventEmitter which calls all listeners\n // We need to manually iterate to check for stopPropagation between handlers\n const globalListeners = this.listeners(event as any)\n if (globalListeners.length > 0) {\n hasGlobalListeners = true\n\n for (const listener of globalListeners) {\n try {\n listener(...args)\n } catch (error) {\n console.error(`[KeyHandler] Error in global ${event} handler:`, error)\n }\n\n // Check if propagation was stopped after this handler\n if (event === \"keypress\" || event === \"keyrelease\" || event === \"paste\") {\n const keyEvent = args[0]\n if (keyEvent.propagationStopped) {\n return hasGlobalListeners\n }\n }\n }\n }\n\n const renderableSet = this.renderableHandlers.get(event)\n // Snapshot the handler list so listeners added during dispatch (e.g., via focus changes)\n // do not receive the in-flight key event.\n const renderableHandlers = renderableSet && renderableSet.size > 0 ? [...renderableSet] : []\n let hasRenderableListeners = false\n\n if (renderableSet && renderableSet.size > 0) {\n hasRenderableListeners = true\n\n if (event === \"keypress\" || event === \"keyrelease\" || event === \"paste\") {\n const keyEvent = args[0]\n if (keyEvent.defaultPrevented) return hasGlobalListeners || hasRenderableListeners\n if (keyEvent.propagationStopped) return hasGlobalListeners || hasRenderableListeners\n }\n\n for (const handler of renderableHandlers) {\n try {\n handler(...args)\n } catch (error) {\n console.error(`[KeyHandler] Error in renderable ${event} handler:`, error)\n }\n\n // Check if propagation was stopped after this handler\n if (event === \"keypress\" || event === \"keyrelease\" || event === \"paste\") {\n const keyEvent = args[0]\n if (keyEvent.propagationStopped) {\n return hasGlobalListeners || hasRenderableListeners\n }\n }\n }\n }\n\n return hasGlobalListeners || hasRenderableListeners\n }\n\n public onInternal<K extends keyof KeyHandlerEventMap>(\n event: K,\n handler: (...args: KeyHandlerEventMap[K]) => void,\n ): void {\n if (!this.renderableHandlers.has(event)) {\n this.renderableHandlers.set(event, new Set())\n }\n this.renderableHandlers.get(event)!.add(handler)\n }\n\n public offInternal<K extends keyof KeyHandlerEventMap>(\n event: K,\n handler: (...args: KeyHandlerEventMap[K]) => void,\n ): void {\n const handlers = this.renderableHandlers.get(event)\n if (handlers) {\n handlers.delete(handler)\n }\n }\n}\n",
|
|
20
20
|
"import { OptimizedBuffer } from \"../buffer.js\"\nimport { parseColor, RGBA, type ColorInput } from \"./RGBA.js\"\nimport block from \"./fonts/block.json\" with { type: \"json\" }\nimport shade from \"./fonts/shade.json\" with { type: \"json\" }\nimport slick from \"./fonts/slick.json\" with { type: \"json\" }\nimport tiny from \"./fonts/tiny.json\" with { type: \"json\" }\nimport huge from \"./fonts/huge.json\" with { type: \"json\" }\nimport grid from \"./fonts/grid.json\" with { type: \"json\" }\nimport pallet from \"./fonts/pallet.json\" with { type: \"json\" }\n\n/*\n * Renders ASCII fonts to a buffer.\n * Font definitions plugged from cfonts - https://github.com/dominikwilkowski/cfonts\n */\n\nexport type ASCIIFontName = \"tiny\" | \"block\" | \"shade\" | \"slick\" | \"huge\" | \"grid\" | \"pallet\"\n\nexport const fonts = {\n tiny,\n block,\n shade,\n slick,\n huge,\n grid,\n pallet,\n}\n\ntype FontSegment = {\n text: string\n colorIndex: number\n}\n\ntype FontDefinition = {\n name: string\n lines: number\n letterspace_size: number\n letterspace: string[]\n colors?: number\n chars: Record<string, string[]>\n}\n\ntype ParsedFontDefinition = {\n name: string\n lines: number\n letterspace_size: number\n letterspace: string[]\n colors: number\n chars: Record<string, FontSegment[][]>\n}\n\nconst parsedFonts: Record<string, ParsedFontDefinition> = {}\n\nfunction parseColorTags(text: string): FontSegment[] {\n const segments: FontSegment[] = []\n let currentIndex = 0\n\n const colorTagRegex = /<c(\\d+)>(.*?)<\\/c\\d+>/g\n let lastIndex = 0\n let match\n\n while ((match = colorTagRegex.exec(text)) !== null) {\n if (match.index > lastIndex) {\n const plainText = text.slice(lastIndex, match.index)\n if (plainText) {\n segments.push({ text: plainText, colorIndex: 0 })\n }\n }\n\n const colorIndex = parseInt(match[1]) - 1\n const taggedText = match[2]\n segments.push({ text: taggedText, colorIndex: Math.max(0, colorIndex) })\n\n lastIndex = match.index + match[0].length\n }\n\n if (lastIndex < text.length) {\n const remainingText = text.slice(lastIndex)\n if (remainingText) {\n segments.push({ text: remainingText, colorIndex: 0 })\n }\n }\n\n return segments\n}\n\nfunction getParsedFont(fontKey: keyof typeof fonts): ParsedFontDefinition {\n if (!parsedFonts[fontKey]) {\n const fontDef = fonts[fontKey] as FontDefinition\n const parsedChars: Record<string, FontSegment[][]> = {}\n\n for (const [char, lines] of Object.entries(fontDef.chars)) {\n parsedChars[char] = lines.map((line) => parseColorTags(line))\n }\n\n parsedFonts[fontKey] = {\n ...fontDef,\n colors: fontDef.colors || 1,\n chars: parsedChars,\n }\n }\n\n return parsedFonts[fontKey]\n}\n\nexport function measureText({ text, font = \"tiny\" }: { text: string; font?: keyof typeof fonts }): {\n width: number\n height: number\n} {\n const fontDef = getParsedFont(font)\n if (!fontDef) {\n console.warn(`Font '${font}' not found`)\n return { width: 0, height: 0 }\n }\n\n let currentX = 0\n\n for (let i = 0; i < text.length; i++) {\n const char = text[i].toUpperCase()\n const charDef = fontDef.chars[char]\n\n if (!charDef) {\n const spaceChar = fontDef.chars[\" \"]\n if (spaceChar && spaceChar[0]) {\n let spaceWidth = 0\n for (const segment of spaceChar[0]) {\n spaceWidth += segment.text.length\n }\n currentX += spaceWidth\n } else {\n currentX += 1\n }\n continue\n }\n\n let charWidth = 0\n if (charDef[0]) {\n for (const segment of charDef[0]) {\n charWidth += segment.text.length\n }\n }\n\n currentX += charWidth\n\n if (i < text.length - 1) {\n currentX += fontDef.letterspace_size\n }\n }\n\n return {\n width: currentX,\n height: fontDef.lines,\n }\n}\n\nexport function getCharacterPositions(text: string, font: keyof typeof fonts = \"tiny\"): number[] {\n const fontDef = getParsedFont(font)\n if (!fontDef) {\n return [0]\n }\n\n const positions: number[] = [0]\n let currentX = 0\n\n for (let i = 0; i < text.length; i++) {\n const char = text[i].toUpperCase()\n const charDef = fontDef.chars[char]\n\n let charWidth = 0\n if (!charDef) {\n const spaceChar = fontDef.chars[\" \"]\n if (spaceChar && spaceChar[0]) {\n for (const segment of spaceChar[0]) {\n charWidth += segment.text.length\n }\n } else {\n charWidth = 1\n }\n } else if (charDef[0]) {\n for (const segment of charDef[0]) {\n charWidth += segment.text.length\n }\n }\n\n currentX += charWidth\n\n if (i < text.length - 1) {\n currentX += fontDef.letterspace_size\n }\n\n positions.push(currentX)\n }\n\n return positions\n}\n\nexport function coordinateToCharacterIndex(x: number, text: string, font: keyof typeof fonts = \"tiny\"): number {\n const positions = getCharacterPositions(text, font)\n\n if (x < 0) {\n return 0\n }\n\n for (let i = 0; i < positions.length - 1; i++) {\n const currentPos = positions[i]\n const nextPos = positions[i + 1]\n\n if (x >= currentPos && x < nextPos) {\n const charMidpoint = currentPos + (nextPos - currentPos) / 2\n return x < charMidpoint ? i : i + 1\n }\n }\n\n if (positions.length > 0 && x >= positions[positions.length - 1]) {\n return text.length\n }\n\n return 0\n}\n\nexport function renderFontToFrameBuffer(\n buffer: OptimizedBuffer,\n {\n text,\n x = 0,\n y = 0,\n color = [RGBA.fromInts(255, 255, 255, 255)],\n backgroundColor = RGBA.fromInts(0, 0, 0, 255),\n font = \"tiny\",\n }: {\n text: string\n x?: number\n y?: number\n color?: ColorInput | ColorInput[]\n backgroundColor?: ColorInput\n font?: keyof typeof fonts\n },\n): { width: number; height: number } {\n const width = buffer.width\n const height = buffer.height\n\n const fontDef = getParsedFont(font)\n if (!fontDef) {\n console.warn(`Font '${font}' not found`)\n return { width: 0, height: 0 }\n }\n\n const colors = Array.isArray(color) ? color : [color]\n\n if (y < 0 || y + fontDef.lines > height) {\n return { width: 0, height: fontDef.lines }\n }\n\n let currentX = x\n const startX = x\n\n for (let i = 0; i < text.length; i++) {\n const char = text[i].toUpperCase()\n const charDef = fontDef.chars[char]\n\n if (!charDef) {\n const spaceChar = fontDef.chars[\" \"]\n if (spaceChar && spaceChar[0]) {\n let spaceWidth = 0\n for (const segment of spaceChar[0]) {\n spaceWidth += segment.text.length\n }\n currentX += spaceWidth\n } else {\n currentX += 1\n }\n continue\n }\n\n let charWidth = 0\n if (charDef[0]) {\n for (const segment of charDef[0]) {\n charWidth += segment.text.length\n }\n }\n\n if (currentX >= width) break\n if (currentX + charWidth < 0) {\n currentX += charWidth + fontDef.letterspace_size\n continue\n }\n\n for (let lineIdx = 0; lineIdx < fontDef.lines && lineIdx < charDef.length; lineIdx++) {\n const segments = charDef[lineIdx]\n const renderY = y + lineIdx\n\n if (renderY >= 0 && renderY < height) {\n let segmentX = currentX\n\n for (const segment of segments) {\n const segmentColor = colors[segment.colorIndex] || colors[0]\n\n for (let charIdx = 0; charIdx < segment.text.length; charIdx++) {\n const renderX = segmentX + charIdx\n\n if (renderX >= 0 && renderX < width) {\n const fontChar = segment.text[charIdx]\n if (fontChar !== \" \") {\n buffer.setCellWithAlphaBlending(\n renderX,\n renderY,\n fontChar,\n parseColor(segmentColor),\n parseColor(backgroundColor),\n )\n }\n }\n }\n\n segmentX += segment.text.length\n }\n }\n }\n\n currentX += charWidth\n\n if (i < text.length - 1) {\n currentX += fontDef.letterspace_size\n }\n }\n\n return {\n width: currentX - startX,\n height: fontDef.lines,\n }\n}\n",
|
|
21
21
|
"import type { RGBA } from \"./lib/RGBA.js\"\nimport type { EventEmitter } from \"events\"\nimport type { Selection } from \"./lib/selection.js\"\nimport type { Renderable } from \"./Renderable.js\"\nimport type { InternalKeyHandler, KeyHandler } from \"./lib/KeyHandler.js\"\nimport type { EditBufferRenderable } from \"./renderables/EditBufferRenderable.js\"\n\nexport const TextAttributes = {\n NONE: 0,\n BOLD: 1 << 0, // 1\n DIM: 1 << 1, // 2\n ITALIC: 1 << 2, // 4\n UNDERLINE: 1 << 3, // 8\n BLINK: 1 << 4, // 16\n INVERSE: 1 << 5, // 32\n HIDDEN: 1 << 6, // 64\n STRIKETHROUGH: 1 << 7, // 128\n}\n\n// Constants for attribute bit packing\nexport const ATTRIBUTE_BASE_BITS = 8\nexport const ATTRIBUTE_BASE_MASK = 0xff\n\n/**\n * Extract the base 8 bits of attributes from a u32 attribute value.\n * Currently we only use the first 8 bits for standard text attributes.\n */\nexport function getBaseAttributes(attr: number): number {\n return attr & ATTRIBUTE_BASE_MASK\n}\n\nexport type ThemeMode = \"dark\" | \"light\"\n\nexport type CursorStyle = \"block\" | \"line\" | \"underline\" | \"default\"\n\nexport type MousePointerStyle = \"default\" | \"pointer\" | \"text\" | \"crosshair\" | \"move\" | \"not-allowed\"\n\nexport interface CursorStyleOptions {\n style?: CursorStyle\n blinking?: boolean\n color?: RGBA\n cursor?: MousePointerStyle\n}\n\nexport enum DebugOverlayCorner {\n topLeft = 0,\n topRight = 1,\n bottomLeft = 2,\n bottomRight = 3,\n}\n\nexport enum TargetChannel {\n FG = 1,\n BG = 2,\n Both = 3,\n}\n\nexport type WidthMethod = \"wcwidth\" | \"unicode\"\nexport type TerminalMultiplexer = \"none\" | \"tmux\" | \"zellij\" | \"screen\" | \"unknown\"\nexport type TerminalCapabilityState = \"unknown\" | \"supported\" | \"unsupported\"\nexport type ImageRenderProtocol = \"auto\" | \"kitty\" | \"sixel\" | \"blocks\"\n\nexport interface TerminalInfo {\n name: string\n version: string\n from_xtversion: boolean\n}\n\nexport interface TerminalCapabilities {\n kitty_keyboard: boolean\n kitty_graphics: boolean\n rgb: boolean\n ansi256: boolean\n unicode: WidthMethod\n sgr_pixels: boolean\n color_scheme_updates: boolean\n explicit_width: boolean\n scaled_text: boolean\n sixel: boolean\n focus_tracking: boolean\n sync: boolean\n bracketed_paste: boolean\n hyperlinks: boolean\n osc52: boolean\n osc52_support: TerminalCapabilityState\n notifications: boolean\n explicit_cursor_positioning: boolean\n remote: boolean\n multiplexer: TerminalMultiplexer\n image_protocol?: ImageRenderProtocol\n terminal: TerminalInfo\n}\n\nexport interface RendererEvents {\n resize: (width: number, height: number) => void\n key: (data: Buffer) => void\n \"memory:snapshot\": (snapshot: { heapUsed: number; heapTotal: number; arrayBuffers: number }) => void\n capabilities: (capabilities: TerminalCapabilities) => void\n selection: (selection: Selection) => void\n focused_renderable: (current: Renderable | null, previous: Renderable | null) => void\n focused_editor: (current: EditBufferRenderable | null, previous: EditBufferRenderable | null) => void\n \"debugOverlay:toggle\": (enabled: boolean) => void\n theme_mode: (mode: ThemeMode) => void\n}\n\nexport interface RenderContext extends EventEmitter {\n addToHitGrid: (x: number, y: number, width: number, height: number, id: number) => void\n pushHitGridScissorRect: (x: number, y: number, width: number, height: number) => void\n popHitGridScissorRect: () => void\n clearHitGridScissorRects: () => void\n width: number\n height: number\n terminalWidth?: number\n terminalHeight?: number\n resolution?: { width: number; height: number } | null\n /** Monotonic, bumped once per `loop()` iteration. Lets renderables dedupe per-frame work. */\n frameId: number\n requestRender: () => void\n setCursorPosition: (x: number, y: number, visible: boolean) => void\n setCursorStyle: (options: CursorStyleOptions) => void\n setCursorColor: (color: RGBA) => void\n setMousePointer: (shape: MousePointerStyle) => void\n widthMethod: WidthMethod\n capabilities: TerminalCapabilities | null\n requestLive: () => void\n dropLive: () => void\n hasSelection: boolean\n getSelection: () => Selection | null\n requestSelectionUpdate: () => void\n currentFocusedRenderable: Renderable | null\n currentFocusedEditor: EditBufferRenderable | null\n focusRenderable: (renderable: Renderable) => void\n blurRenderable: (renderable: Renderable) => void\n claimFirstLineOffset?: (renderable?: Renderable) => number\n registerLifecyclePass: (renderable: Renderable) => void\n unregisterLifecyclePass: (renderable: Renderable) => void\n getLifecyclePasses: () => Set<Renderable>\n keyInput: KeyHandler\n _internalKeyInput: InternalKeyHandler\n clearSelection: () => void\n startSelection: (renderable: Renderable, x: number, y: number) => void\n updateSelection: (\n currentRenderable: Renderable | undefined,\n x: number,\n y: number,\n options?: { finishDragging?: boolean },\n ) => void\n}\n\nexport type Timeout = ReturnType<typeof setTimeout> | undefined\n\nexport interface ViewportBounds {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport interface Highlight {\n start: number\n end: number\n styleId: number\n priority?: number | null\n hlRef?: number | null\n}\n\nexport interface LineInfo {\n /** Display-column offset for each visual line start. */\n lineStartCols: number[]\n /** Display-column width for each visual line. */\n lineWidthCols: number[]\n /** Maximum display-column width across the reported lines. */\n lineWidthColsMax: number\n /** Source logical line index for each visual line. */\n lineSources: number[]\n /** Wrap index within each source logical line. */\n lineWraps: number[]\n}\n\nexport interface LineInfoProvider {\n get lineInfo(): LineInfo\n get lineCount(): number\n get virtualLineCount(): number\n get scrollY(): number\n}\n\nexport interface CapturedSpan {\n text: string\n fg: RGBA\n bg: RGBA\n attributes: number\n width: number\n}\n\nexport interface CapturedLine {\n spans: CapturedSpan[]\n}\n\nexport interface CapturedFrame {\n cols: number\n rows: number\n cursor: [number, number]\n lines: CapturedLine[]\n}\n",
|
|
22
|
-
"import { TextAttributes } from \"./types.js\"\nimport { Renderable } from \"./Renderable.js\"\n\nexport function createTextAttributes({\n bold = false,\n italic = false,\n underline = false,\n dim = false,\n blink = false,\n inverse = false,\n hidden = false,\n strikethrough = false,\n}: {\n bold?: boolean\n italic?: boolean\n underline?: boolean\n dim?: boolean\n blink?: boolean\n inverse?: boolean\n hidden?: boolean\n strikethrough?: boolean\n} = {}): number {\n let attributes = TextAttributes.NONE\n\n if (bold) attributes |= TextAttributes.BOLD\n if (italic) attributes |= TextAttributes.ITALIC\n if (underline) attributes |= TextAttributes.UNDERLINE\n if (dim) attributes |= TextAttributes.DIM\n if (blink) attributes |= TextAttributes.BLINK\n if (inverse) attributes |= TextAttributes.INVERSE\n if (hidden) attributes |= TextAttributes.HIDDEN\n if (strikethrough) attributes |= TextAttributes.STRIKETHROUGH\n\n return attributes\n}\n\n// Link attribute helpers (bits 8-31 encode link_id)\nconst ATTRIBUTE_BASE_MASK = 0xff\nconst LINK_ID_SHIFT = 8\nconst LINK_ID_PAYLOAD_MASK = 0xffffff\n\nexport function attributesWithLink(baseAttributes: number, linkId: number): number {\n const base = baseAttributes & ATTRIBUTE_BASE_MASK\n const linkBits = (linkId & LINK_ID_PAYLOAD_MASK) << LINK_ID_SHIFT\n return base | linkBits\n}\n\nexport function getLinkId(attributes: number): number {\n return (attributes >>> LINK_ID_SHIFT) & LINK_ID_PAYLOAD_MASK\n}\n\n// For debugging purposes\nexport function visualizeRenderableTree(renderable: Renderable, maxDepth: number = 10): void {\n function buildTreeLines(\n node: Renderable,\n prefix: string = \"\",\n parentPrefix: string = \"\",\n isLastChild: boolean = true,\n depth: number = 0,\n ): string[] {\n if (depth >= maxDepth) {\n return [`${prefix}${node.id} ... (max depth reached)`]\n }\n\n const lines: string[] = []\n const children = node.getChildren()\n\n // Add current node\n lines.push(`${prefix}${node.id}`)\n\n if (children.length > 0) {\n const lastChildIndex = children.length - 1\n\n children.forEach((child, index) => {\n const childIsLast = index === lastChildIndex\n const connector = childIsLast ? \"└── \" : \"├── \"\n const childPrefix = parentPrefix + (isLastChild ? \" \" : \"│ \")\n const childLines = buildTreeLines(child, childPrefix + connector, childPrefix, childIsLast, depth + 1)\n lines.push(...childLines)\n })\n }\n\n return lines\n }\n\n const treeLines = buildTreeLines(renderable)\n console.log(\"Renderable Tree:\\n\" + treeLines.join(\"\\n\"))\n}\n",
|
|
22
|
+
"import { TextAttributes } from \"./types.js\"\nimport { Renderable } from \"./Renderable.js\"\n\nexport function createTextAttributes({\n bold = false,\n italic = false,\n underline = false,\n dim = false,\n blink = false,\n inverse = false,\n reverse = false,\n hidden = false,\n strikethrough = false,\n}: {\n bold?: boolean\n italic?: boolean\n underline?: boolean\n dim?: boolean\n blink?: boolean\n inverse?: boolean\n reverse?: boolean\n hidden?: boolean\n strikethrough?: boolean\n} = {}): number {\n let attributes = TextAttributes.NONE\n\n if (bold) attributes |= TextAttributes.BOLD\n if (italic) attributes |= TextAttributes.ITALIC\n if (underline) attributes |= TextAttributes.UNDERLINE\n if (dim) attributes |= TextAttributes.DIM\n if (blink) attributes |= TextAttributes.BLINK\n if (inverse || reverse) attributes |= TextAttributes.INVERSE\n if (hidden) attributes |= TextAttributes.HIDDEN\n if (strikethrough) attributes |= TextAttributes.STRIKETHROUGH\n\n return attributes\n}\n\n// Link attribute helpers (bits 8-31 encode link_id)\nconst ATTRIBUTE_BASE_MASK = 0xff\nconst LINK_ID_SHIFT = 8\nconst LINK_ID_PAYLOAD_MASK = 0xffffff\n\nexport function attributesWithLink(baseAttributes: number, linkId: number): number {\n const base = baseAttributes & ATTRIBUTE_BASE_MASK\n const linkBits = (linkId & LINK_ID_PAYLOAD_MASK) << LINK_ID_SHIFT\n return base | linkBits\n}\n\nexport function getLinkId(attributes: number): number {\n return (attributes >>> LINK_ID_SHIFT) & LINK_ID_PAYLOAD_MASK\n}\n\n// For debugging purposes\nexport function visualizeRenderableTree(renderable: Renderable, maxDepth: number = 10): void {\n function buildTreeLines(\n node: Renderable,\n prefix: string = \"\",\n parentPrefix: string = \"\",\n isLastChild: boolean = true,\n depth: number = 0,\n ): string[] {\n if (depth >= maxDepth) {\n return [`${prefix}${node.id} ... (max depth reached)`]\n }\n\n const lines: string[] = []\n const children = node.getChildren()\n\n // Add current node\n lines.push(`${prefix}${node.id}`)\n\n if (children.length > 0) {\n const lastChildIndex = children.length - 1\n\n children.forEach((child, index) => {\n const childIsLast = index === lastChildIndex\n const connector = childIsLast ? \"└── \" : \"├── \"\n const childPrefix = parentPrefix + (isLastChild ? \" \" : \"│ \")\n const childLines = buildTreeLines(child, childPrefix + connector, childPrefix, childIsLast, depth + 1)\n lines.push(...childLines)\n })\n }\n\n return lines\n }\n\n const treeLines = buildTreeLines(renderable)\n console.log(\"Renderable Tree:\\n\" + treeLines.join(\"\\n\"))\n}\n",
|
|
23
23
|
"import type { TextRenderable } from \"../renderables/Text.js\"\nimport type { TextBuffer, TextChunk } from \"../text-buffer.js\"\nimport { createTextAttributes } from \"../utils.js\"\nimport { parseColor, type ColorInput } from \"./RGBA.js\"\n\nconst BrandedStyledText: unique symbol = Symbol.for(\"@opentui/core/StyledText\")\n\nexport type Color = ColorInput\n\nexport interface StyleAttrs {\n fg?: Color\n bg?: Color\n bold?: boolean\n italic?: boolean\n underline?: boolean\n strikethrough?: boolean\n dim?: boolean\n reverse?: boolean\n blink?: boolean\n}\n\nexport function isStyledText(obj: any): obj is StyledText {\n return obj && obj[BrandedStyledText]\n}\n\nexport class StyledText {\n [BrandedStyledText] = true\n\n public chunks: TextChunk[]\n\n constructor(chunks: TextChunk[]) {\n this.chunks = chunks\n }\n}\n\nexport function stringToStyledText(content: string): StyledText {\n const chunk = {\n __isChunk: true as const,\n text: content,\n }\n return new StyledText([chunk])\n}\n\nexport type StylableInput = string | number | boolean | TextChunk\n\nfunction applyStyle(input: StylableInput, style: StyleAttrs): TextChunk {\n if (typeof input === \"object\" && \"__isChunk\" in input) {\n const existingChunk = input as TextChunk\n\n const fg = style.fg ? parseColor(style.fg) : existingChunk.fg\n const bg = style.bg ? parseColor(style.bg) : existingChunk.bg\n\n const newAttrs = createTextAttributes(style)\n const mergedAttrs = existingChunk.attributes ? existingChunk.attributes | newAttrs : newAttrs\n\n return {\n __isChunk: true,\n text: existingChunk.text,\n fg,\n bg,\n attributes: mergedAttrs,\n link: existingChunk.link,\n }\n } else {\n const plainTextStr = String(input)\n const fg = style.fg ? parseColor(style.fg) : undefined\n const bg = style.bg ? parseColor(style.bg) : undefined\n const attributes = createTextAttributes(style)\n\n return {\n __isChunk: true,\n text: plainTextStr,\n fg,\n bg,\n attributes,\n }\n }\n}\n\n// Color functions\nexport const black = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"black\" })\nexport const red = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"red\" })\nexport const green = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"green\" })\nexport const yellow = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"yellow\" })\nexport const blue = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"blue\" })\nexport const magenta = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"magenta\" })\nexport const cyan = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"cyan\" })\nexport const white = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"white\" })\n\n// Bright color functions\nexport const brightBlack = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightBlack\" })\nexport const brightRed = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightRed\" })\nexport const brightGreen = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightGreen\" })\nexport const brightYellow = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightYellow\" })\nexport const brightBlue = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightBlue\" })\nexport const brightMagenta = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightMagenta\" })\nexport const brightCyan = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightCyan\" })\nexport const brightWhite = (input: StylableInput): TextChunk => applyStyle(input, { fg: \"brightWhite\" })\n\n// Background color functions\nexport const bgBlack = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"black\" })\nexport const bgRed = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"red\" })\nexport const bgGreen = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"green\" })\nexport const bgYellow = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"yellow\" })\nexport const bgBlue = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"blue\" })\nexport const bgMagenta = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"magenta\" })\nexport const bgCyan = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"cyan\" })\nexport const bgWhite = (input: StylableInput): TextChunk => applyStyle(input, { bg: \"white\" })\n\n// Style functions\nexport const bold = (input: StylableInput): TextChunk => applyStyle(input, { bold: true })\nexport const italic = (input: StylableInput): TextChunk => applyStyle(input, { italic: true })\nexport const underline = (input: StylableInput): TextChunk => applyStyle(input, { underline: true })\nexport const strikethrough = (input: StylableInput): TextChunk => applyStyle(input, { strikethrough: true })\nexport const dim = (input: StylableInput): TextChunk => applyStyle(input, { dim: true })\nexport const reverse = (input: StylableInput): TextChunk => applyStyle(input, { reverse: true })\nexport const blink = (input: StylableInput): TextChunk => applyStyle(input, { blink: true })\n\n// Custom color functions\nexport const fg =\n (color: Color) =>\n (input: StylableInput): TextChunk =>\n applyStyle(input, { fg: color })\nexport const bg =\n (color: Color) =>\n (input: StylableInput): TextChunk =>\n applyStyle(input, { bg: color })\n\nexport const link =\n (url: string) =>\n (input: StylableInput): TextChunk => {\n const chunk =\n typeof input === \"object\" && \"__isChunk\" in input\n ? (input as TextChunk)\n : {\n __isChunk: true as const,\n text: String(input),\n }\n\n return {\n ...chunk,\n link: { url },\n }\n }\n\n/**\n * Template literal handler for styled text (non-cached version).\n * Returns a StyledText object containing chunks of text with optional styles.\n */\nexport function t(strings: TemplateStringsArray, ...values: StylableInput[]): StyledText {\n const chunks: TextChunk[] = []\n\n for (let i = 0; i < strings.length; i++) {\n const raw = strings[i]\n\n if (raw) {\n chunks.push({\n __isChunk: true,\n text: raw,\n attributes: 0,\n })\n }\n\n const val = values[i]\n if (typeof val === \"object\" && \"__isChunk\" in val) {\n chunks.push(val as TextChunk)\n } else if (val !== undefined) {\n const plainTextStr = String(val)\n chunks.push({\n __isChunk: true,\n text: plainTextStr,\n attributes: 0,\n })\n }\n }\n\n return new StyledText(chunks)\n}\n",
|
|
24
24
|
"import type { TextChunk } from \"../text-buffer.js\"\nimport { StyledText } from \"./styled-text.js\"\nimport { SyntaxStyle } from \"../syntax-style.js\"\n\nexport interface HASTText {\n type: \"text\"\n value: string\n}\n\nexport interface HASTElement {\n type: \"element\"\n tagName: string\n properties?: {\n className?: string\n }\n children: HASTNode[]\n}\n\nexport type HASTNode = HASTText | HASTElement\n\nexport type { StyleDefinition } from \"../syntax-style.js\"\n\nfunction hastToTextChunks(node: HASTNode, syntaxStyle: SyntaxStyle, parentStyles: string[] = []): TextChunk[] {\n const chunks: TextChunk[] = []\n\n if (node.type === \"text\") {\n const stylesToMerge = parentStyles.length > 0 ? parentStyles : [\"default\"]\n const mergedStyle = syntaxStyle.mergeStyles(...stylesToMerge)\n\n chunks.push({\n __isChunk: true,\n text: node.value,\n fg: mergedStyle.fg,\n bg: mergedStyle.bg,\n attributes: mergedStyle.attributes,\n })\n } else if (node.type === \"element\") {\n let currentStyles = [...parentStyles]\n\n if (node.properties?.className) {\n const classes = node.properties.className.split(\" \")\n\n for (const cls of classes) {\n currentStyles.push(cls)\n }\n }\n\n for (const child of node.children) {\n chunks.push(...hastToTextChunks(child, syntaxStyle, currentStyles))\n }\n }\n\n return chunks\n}\n\nexport function hastToStyledText(hast: HASTNode, syntaxStyle: SyntaxStyle): StyledText {\n const chunks = hastToTextChunks(hast, syntaxStyle)\n return new StyledText(chunks)\n}\n",
|
|
25
25
|
"export type TimerHandle = ReturnType<typeof globalThis.setTimeout> | number\n\nexport interface Clock {\n now(): number\n setTimeout(fn: () => void, delayMs: number): TimerHandle\n clearTimeout(handle: TimerHandle): void\n setInterval(fn: () => void, delayMs: number): TimerHandle\n clearInterval(handle: TimerHandle): void\n}\n\nexport class SystemClock implements Clock {\n public now(): number {\n if (!globalThis.performance || typeof globalThis.performance.now !== \"function\") {\n throw new Error(\"SystemClock requires globalThis.performance.now()\")\n }\n\n return globalThis.performance.now()\n }\n\n public setTimeout(fn: () => void, delayMs: number): TimerHandle {\n return globalThis.setTimeout(fn, delayMs)\n }\n\n public clearTimeout(handle: TimerHandle): void {\n globalThis.clearTimeout(handle as ReturnType<typeof globalThis.setTimeout>)\n }\n\n public setInterval(fn: () => void, delayMs: number): TimerHandle {\n return globalThis.setInterval(fn, delayMs)\n }\n\n public clearInterval(handle: TimerHandle): void {\n globalThis.clearInterval(handle as ReturnType<typeof globalThis.setTimeout>)\n }\n}\n",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"import { defineStruct, defineEnum } from \"bun-ffi-structs\"\nimport { toArrayBuffer, type Pointer } from \"./platform/ffi.js\"\nimport { RGBA, normalizeColorValue } from \"./lib/RGBA.js\"\n\n// Returns the owning Uint16Array so bun-ffi-structs serializes the address and\n// retains the color buffer with the packed struct (requires bun-ffi-structs >= 0.2.4).\n// Returning a raw pointer here would leave the color memory ownerless.\nconst rgbaPackTransform = (rgba?: RGBA) => rgba?.buffer ?? null\nconst rgbaUnpackTransform = (ptr?: Pointer) =>\n ptr ? RGBA.fromArray(new Uint16Array(toArrayBuffer(ptr, 0, 8))) : undefined\n\ntype StyledChunkInput = {\n text: string\n fg?: RGBA | null\n bg?: RGBA | null\n attributes?: number | null\n link?: { url: string } | string | null\n}\n\nexport const StyledChunkStruct = defineStruct(\n [\n [\"text\", \"char*\"],\n [\"text_len\", \"u64\", { lengthOf: \"text\" }],\n [\n \"fg\",\n \"pointer\",\n {\n optional: true,\n packTransform: rgbaPackTransform,\n unpackTransform: rgbaUnpackTransform,\n },\n ],\n [\n \"bg\",\n \"pointer\",\n {\n optional: true,\n packTransform: rgbaPackTransform,\n unpackTransform: rgbaUnpackTransform,\n },\n ],\n [\"attributes\", \"u32\", { default: 0 }],\n [\"link\", \"char*\", { default: \"\" }],\n [\"link_len\", \"u64\", { lengthOf: \"link\" }],\n ],\n {\n mapValue: (chunk: StyledChunkInput): StyledChunkInput => {\n const normalizedFg = normalizeColorValue(chunk.fg ?? null)\n const normalizedBg = normalizeColorValue(chunk.bg ?? null)\n\n if (!chunk.link || typeof chunk.link === \"string\") {\n return {\n ...chunk,\n fg: normalizedFg?.rgba ?? null,\n bg: normalizedBg?.rgba ?? null,\n }\n }\n\n return {\n ...chunk,\n fg: normalizedFg?.rgba ?? null,\n bg: normalizedBg?.rgba ?? null,\n link: chunk.link.url,\n }\n },\n },\n)\n\nexport const HighlightStruct = defineStruct([\n [\"start\", \"u32\"],\n [\"end\", \"u32\"],\n [\"styleId\", \"u32\"],\n [\"priority\", \"u8\", { default: 0 }],\n [\"hlRef\", \"u16\", { default: 0 }],\n])\n\nexport const LogicalCursorStruct = defineStruct([\n [\"row\", \"u32\"],\n [\"col\", \"u32\"],\n [\"offset\", \"u32\"],\n])\n\nexport const VisualCursorStruct = defineStruct([\n [\"visualRow\", \"u32\"],\n [\"visualCol\", \"u32\"],\n [\"logicalRow\", \"u32\"],\n [\"logicalCol\", \"u32\"],\n [\"offset\", \"u32\"],\n])\n\nconst UnicodeMethodEnum = defineEnum({ wcwidth: 0, unicode: 1 }, \"u8\")\nconst TerminalMultiplexerEnum = defineEnum({ none: 0, tmux: 1, zellij: 2, screen: 3, unknown: 4 }, \"u8\")\nconst Osc52SupportEnum = defineEnum({ unknown: 0, supported: 1, unsupported: 2 }, \"u8\")\nconst ImageProtocolEnum = defineEnum({ auto: 0, kitty: 1, sixel: 2, blocks: 3 }, \"u8\")\n\nexport const TerminalCapabilitiesStruct = defineStruct([\n [\"kitty_keyboard\", \"bool_u8\"],\n [\"kitty_graphics\", \"bool_u8\"],\n [\"rgb\", \"bool_u8\"],\n [\"ansi256\", \"bool_u8\"],\n [\"unicode\", UnicodeMethodEnum],\n [\"sgr_pixels\", \"bool_u8\"],\n [\"color_scheme_updates\", \"bool_u8\"],\n [\"explicit_width\", \"bool_u8\"],\n [\"scaled_text\", \"bool_u8\"],\n [\"sixel\", \"bool_u8\"],\n [\"focus_tracking\", \"bool_u8\"],\n [\"sync\", \"bool_u8\"],\n [\"bracketed_paste\", \"bool_u8\"],\n [\"hyperlinks\", \"bool_u8\"],\n [\"osc52\", \"bool_u8\"],\n [\"notifications\", \"bool_u8\"],\n [\"explicit_cursor_positioning\", \"bool_u8\"],\n [\"remote\", \"bool_u8\"],\n [\"multiplexer\", TerminalMultiplexerEnum],\n [\"image_protocol\", ImageProtocolEnum],\n [\"term_name\", \"char*\"],\n [\"term_name_len\", \"u64\", { lengthOf: \"term_name\" }],\n [\"term_version\", \"char*\"],\n [\"term_version_len\", \"u64\", { lengthOf: \"term_version\" }],\n [\"term_from_xtversion\", \"bool_u8\"],\n [\"osc52_support\", Osc52SupportEnum],\n])\n\nexport const EncodedCharStruct = defineStruct([\n [\"width\", \"u8\"],\n [\"char\", \"u32\"],\n])\n\nexport interface NativeImageInfo {\n width: number\n height: number\n sourceWidth: number\n sourceHeight: number\n format: number\n colorStatus: number\n orientation: number\n hasAlpha: number\n}\n\nexport const NativeImageInfoStruct = defineStruct([\n [\"width\", \"u32\"],\n [\"height\", \"u32\"],\n [\"sourceWidth\", \"u32\"],\n [\"sourceHeight\", \"u32\"],\n [\"format\", \"u32\"],\n [\"colorStatus\", \"u32\"],\n [\"orientation\", \"u32\"],\n [\"hasAlpha\", \"u32\"],\n])\n\nexport const ImageDrawOptionsStruct = defineStruct([\n [\"x\", \"i32\"],\n [\"y\", \"i32\"],\n [\"width\", \"u32\"],\n [\"height\", \"u32\"],\n [\"pixelWidth\", \"u32\"],\n [\"pixelHeight\", \"u32\"],\n [\"sourceX\", \"u32\"],\n [\"sourceY\", \"u32\"],\n [\"sourceWidth\", \"u32\"],\n [\"sourceHeight\", \"u32\"],\n [\"protocol\", \"u32\"],\n])\n\nexport const LineInfoStruct = defineStruct([\n [\"startCols\", [\"u32\"]],\n [\"startColsLen\", \"u32\", { lengthOf: \"startCols\" }],\n [\"widthCols\", [\"u32\"]],\n [\"widthColsLen\", \"u32\", { lengthOf: \"widthCols\" }],\n [\"sources\", [\"u32\"]],\n [\"sourcesLen\", \"u32\", { lengthOf: \"sources\" }],\n [\"wraps\", [\"u32\"]],\n [\"wrapsLen\", \"u32\", { lengthOf: \"wraps\" }],\n [\"widthColsMax\", \"u32\"],\n])\n\nexport const MeasureResultStruct = defineStruct([\n [\"lineCount\", \"u32\"],\n [\"widthColsMax\", \"u32\"],\n])\n\nexport const CursorStateStruct = defineStruct([\n [\"x\", \"u32\"],\n [\"y\", \"u32\"],\n [\"visible\", \"bool_u8\"],\n [\"style\", \"u8\"],\n [\"blinking\", \"bool_u8\"],\n [\"r\", \"f32\"],\n [\"g\", \"f32\"],\n [\"b\", \"f32\"],\n [\"a\", \"f32\"],\n])\n\nexport const CursorStyleOptionsStruct = defineStruct([\n [\"style\", \"u8\", { default: 255 }],\n [\"blinking\", \"u8\", { default: 255 }],\n [\n \"color\",\n \"pointer\",\n {\n optional: true,\n packTransform: rgbaPackTransform,\n unpackTransform: rgbaUnpackTransform,\n },\n ],\n [\"cursor\", \"u8\", { default: 255 }],\n])\n\nexport const GridDrawOptionsStruct = defineStruct([\n [\"drawInner\", \"bool_u8\", { default: true }],\n [\"drawOuter\", \"bool_u8\", { default: true }],\n])\n\nexport type BuildOptions = {\n gpaSafeStats: boolean\n gpaMemoryLimitTracking: boolean\n}\n\nexport const BuildOptionsStruct = defineStruct([\n [\"gpaSafeStats\", \"bool_u8\"],\n [\"gpaMemoryLimitTracking\", \"bool_u8\"],\n])\n\nexport type AllocatorStats = {\n totalRequestedBytes: number\n activeAllocations: number\n smallAllocations: number\n largeAllocations: number\n requestedBytesValid: boolean\n}\n\nexport const AllocatorStatsStruct = defineStruct([\n [\"totalRequestedBytes\", \"u64\"],\n [\"activeAllocations\", \"u64\"],\n [\"smallAllocations\", \"u64\"],\n [\"largeAllocations\", \"u64\"],\n [\"requestedBytesValid\", \"bool_u8\"],\n])\n\nexport type NativeRenderStats = {\n nativeLastFrameTime: number\n nativeAverageFrameTime: number\n nativeFrameCount: number\n cellsUpdated: number\n averageCellsUpdated: number\n nativeRenderTime?: number\n nativeStdoutWriteTime?: number\n}\n\nexport const NativeRenderStatsStruct = defineStruct([\n [\"lastFrameTime\", \"f64\"],\n [\"averageFrameTime\", \"f64\"],\n [\"renderTime\", \"f64\"],\n [\"stdoutWriteTime\", \"f64\"],\n [\"frameCount\", \"u64\"],\n [\"cellsUpdated\", \"u32\"],\n [\"averageCellsUpdated\", \"u32\"],\n [\"renderTimeValid\", \"bool_u8\"],\n [\"stdoutWriteTimeValid\", \"bool_u8\"],\n])\n\nexport type GrowthPolicy = \"grow\" | \"block\"\n\nexport type NativeSpanFeedOptions = {\n chunkSize?: number\n initialChunks?: number\n maxBytes?: bigint\n growthPolicy?: GrowthPolicy\n autoCommitOnFull?: boolean\n spanQueueCapacity?: number\n}\n\nexport type NativeSpanFeedStats = {\n bytesWritten: bigint\n spansCommitted: bigint\n chunks: number\n pendingSpans: number\n}\n\nexport type SpanInfo = {\n chunkPtr: Pointer\n offset: number\n len: number\n chunkIndex: number\n}\n\nexport type ReserveInfo = {\n ptr: Pointer\n len: number\n}\n\nconst GrowthPolicyEnum = defineEnum({ grow: 0, block: 1 }, \"u8\")\n\nexport const NativeSpanFeedOptionsStruct = defineStruct([\n [\"chunkSize\", \"u32\", { default: 64 * 1024 }],\n [\"initialChunks\", \"u32\", { default: 2 }],\n [\"maxBytes\", \"u64\", { default: 0n }],\n [\"growthPolicy\", GrowthPolicyEnum, { default: \"grow\" }],\n [\"autoCommitOnFull\", \"bool_u8\", { default: true }],\n [\"spanQueueCapacity\", \"u32\", { default: 0 }],\n])\n\nexport const NativeSpanFeedStatsStruct = defineStruct([\n [\"bytesWritten\", \"u64\"],\n [\"spansCommitted\", \"u64\"],\n [\"chunks\", \"u32\"],\n [\"pendingSpans\", \"u32\"],\n])\n\nexport const SpanInfoStruct = defineStruct(\n [\n [\"chunkPtr\", \"pointer\"],\n [\"offset\", \"u32\"],\n [\"len\", \"u32\"],\n [\"chunkIndex\", \"u32\"],\n [\"reserved\", \"u32\", { default: 0 }],\n ],\n {\n reduceValue: (value: { chunkPtr: Pointer; offset: number; len: number; chunkIndex: number }) => ({\n chunkPtr: value.chunkPtr as Pointer,\n offset: value.offset,\n len: value.len,\n chunkIndex: value.chunkIndex,\n }),\n },\n)\n\nexport const ReserveInfoStruct = defineStruct(\n [\n [\"ptr\", \"pointer\"],\n [\"len\", \"u32\"],\n [\"reserved\", \"u32\", { default: 0 }],\n ],\n {\n reduceValue: (value: { ptr: Pointer; len: number }) => ({\n ptr: value.ptr as Pointer,\n len: value.len,\n }),\n },\n)\n\nexport type AudioCreateOptions = {\n sampleRate?: number\n playbackChannels?: number\n}\n\nexport type AudioStartOptions = {\n periodSizeInFrames?: number\n periodSizeInMilliseconds?: number\n periods?: number\n performanceProfile?: number\n shareMode?: number\n noPreSilencedOutputBuffer?: boolean\n noClip?: boolean\n noDisableDenormals?: boolean\n noFixedSizedCallback?: boolean\n wasapiNoAutoConvertSrc?: boolean\n wasapiNoDefaultQualitySrc?: boolean\n alsaNoMMap?: boolean\n alsaNoAutoFormat?: boolean\n alsaNoAutoChannels?: boolean\n alsaNoAutoResample?: boolean\n}\n\nexport type AudioVoiceOptions = {\n volume?: number\n pan?: number\n loop?: boolean\n groupId?: number\n}\n\nexport const NativeAudioStreamFormat = {\n Mp3: 1,\n Flac: 2,\n} as const\n\nexport type NativeAudioStreamFormat = (typeof NativeAudioStreamFormat)[keyof typeof NativeAudioStreamFormat]\n\nexport type AudioStreamCreateOptions = {\n capacityMs: number\n startupMs: number\n resumeMs: number\n volume: number\n pan: number\n groupId: number\n maxProbeBytes: number\n format: NativeAudioStreamFormat\n}\n\nexport type NativeAudioStreamStats = {\n bytesReceived: bigint\n framesDecoded: bigint\n framesPlayed: bigint\n state: number\n sampleRate: number\n channels: number\n bufferedFrames: number\n capacityFrames: number\n underruns: number\n errorCode: number\n readyGeneration: number\n}\n\nexport const NativeAudioStreamState = {\n Initializing: 0,\n Buffering: 1,\n Playing: 2,\n Ended: 3,\n Failed: 4,\n Cancelled: 5,\n Reconnecting: 6,\n} as const\n\nexport type NativeAudioStreamState = (typeof NativeAudioStreamState)[keyof typeof NativeAudioStreamState]\n\nexport const NativeAudioStreamStateNames = [\n \"initializing\",\n \"buffering\",\n \"playing\",\n \"ended\",\n \"errored\",\n \"disposed\",\n \"reconnecting\",\n] as const\n\nexport const NativeAudioStreamCloseReason = {\n PreserveNativeTerminal: 0,\n TransportError: 1,\n Disposed: 2,\n} as const\n\nexport type NativeAudioStreamCloseReason =\n (typeof NativeAudioStreamCloseReason)[keyof typeof NativeAudioStreamCloseReason]\n\nexport type AudioStats = {\n soundsLoaded: number\n voicesActive: number\n framesMixed: bigint\n lockMisses: number\n lastPeak: number\n lastRms: number\n}\n\nexport type NativeAudioCaptureStats = {\n framesReceived: bigint\n framesRead: bigint\n framesDropped: bigint\n sampleRate: number\n channels: number\n bufferedFrames: number\n capacityFrames: number\n}\n\nexport const AudioCreateOptionsStruct = defineStruct([\n [\"sampleRate\", \"u32\", { default: 48_000 }],\n [\"playbackChannels\", \"u32\", { default: 2 }],\n])\n\nexport const AudioStartOptionsStruct = defineStruct([\n [\"periodSizeInFrames\", \"u32\", { default: 0 }],\n [\"periodSizeInMilliseconds\", \"u32\", { default: 0 }],\n [\"periods\", \"u32\", { default: 0 }],\n [\"performanceProfile\", \"u8\", { default: 0 }],\n [\"shareMode\", \"u8\", { default: 0 }],\n [\"noPreSilencedOutputBuffer\", \"bool_u8\", { default: false }],\n [\"noClip\", \"bool_u8\", { default: false }],\n [\"noDisableDenormals\", \"bool_u8\", { default: false }],\n [\"noFixedSizedCallback\", \"bool_u8\", { default: false }],\n [\"wasapiNoAutoConvertSrc\", \"bool_u8\", { default: false }],\n [\"wasapiNoDefaultQualitySrc\", \"bool_u8\", { default: false }],\n [\"alsaNoMMap\", \"bool_u8\", { default: false }],\n [\"alsaNoAutoFormat\", \"bool_u8\", { default: false }],\n [\"alsaNoAutoChannels\", \"bool_u8\", { default: false }],\n [\"alsaNoAutoResample\", \"bool_u8\", { default: false }],\n])\n\nexport const AudioVoiceOptionsStruct = defineStruct([\n [\"volume\", \"f32\", { default: 1 }],\n [\"pan\", \"f32\", { default: 0 }],\n [\"loop\", \"bool_u8\", { default: false }],\n [\"groupId\", \"u32\", { default: 0 }],\n])\n\nexport const AudioStreamCreateOptionsStruct = defineStruct([\n [\"capacityMs\", \"u32\"],\n [\"startupMs\", \"u32\"],\n [\"resumeMs\", \"u32\"],\n [\"volume\", \"f32\"],\n [\"pan\", \"f32\"],\n [\"groupId\", \"u32\"],\n // Keep additions at the end so newer JS preserves the previous native prefix during local rebuilds.\n [\"maxProbeBytes\", \"u32\"],\n [\"format\", \"u32\"],\n])\n\nexport const AudioStreamStatsStruct = defineStruct([\n [\"bytesReceived\", \"u64\"],\n [\"framesDecoded\", \"u64\"],\n [\"framesPlayed\", \"u64\"],\n [\"state\", \"u32\"],\n [\"sampleRate\", \"u32\"],\n [\"channels\", \"u32\"],\n [\"bufferedFrames\", \"u32\"],\n [\"capacityFrames\", \"u32\"],\n [\"underruns\", \"u32\"],\n [\"errorCode\", \"i32\"],\n [\"readyGeneration\", \"u32\"],\n])\n\nexport const AudioCaptureStatsStruct = defineStruct([\n [\"framesReceived\", \"u64\"],\n [\"framesRead\", \"u64\"],\n [\"framesDropped\", \"u64\"],\n [\"sampleRate\", \"u32\"],\n [\"channels\", \"u32\"],\n [\"bufferedFrames\", \"u32\"],\n [\"capacityFrames\", \"u32\"],\n])\n\nexport const AudioStatsStruct = defineStruct([\n [\"soundsLoaded\", \"u32\"],\n [\"voicesActive\", \"u32\"],\n [\"framesMixed\", \"u64\"],\n [\"lockMisses\", \"u32\"],\n [\"lastPeak\", \"f32\"],\n [\"lastRms\", \"f32\"],\n])\n",
|
|
59
59
|
"import {\n resolveRenderLib,\n type NativeYogaDirtiedCallback,\n type NativeYogaMeasureCallback,\n type RenderLib,\n} from \"./zig.js\"\nimport type { FFICallbackInstance, Pointer } from \"./platform/ffi.js\"\n\nexport enum Align {\n Auto = 0,\n FlexStart = 1,\n Center = 2,\n FlexEnd = 3,\n Stretch = 4,\n Baseline = 5,\n SpaceBetween = 6,\n SpaceAround = 7,\n SpaceEvenly = 8,\n}\n\nexport enum BoxSizing {\n BorderBox = 0,\n ContentBox = 1,\n}\n\nexport enum Dimension {\n Width = 0,\n Height = 1,\n}\n\nexport enum Direction {\n Inherit = 0,\n LTR = 1,\n RTL = 2,\n}\n\nexport enum Display {\n Flex = 0,\n None = 1,\n Contents = 2,\n}\n\nexport enum Edge {\n Left = 0,\n Top = 1,\n Right = 2,\n Bottom = 3,\n Start = 4,\n End = 5,\n Horizontal = 6,\n Vertical = 7,\n All = 8,\n}\n\nexport enum Errata {\n None = 0,\n StretchFlexBasis = 1,\n AbsolutePositionWithoutInsetsExcludesPadding = 2,\n AbsolutePercentAgainstInnerSize = 4,\n All = 2147483647,\n Classic = 2147483646,\n}\n\nexport enum ExperimentalFeature {\n WebFlexBasis = 0,\n}\n\nexport enum FlexDirection {\n Column = 0,\n ColumnReverse = 1,\n Row = 2,\n RowReverse = 3,\n}\n\nexport enum Gutter {\n Column = 0,\n Row = 1,\n All = 2,\n}\n\nexport enum Justify {\n FlexStart = 0,\n Center = 1,\n FlexEnd = 2,\n SpaceBetween = 3,\n SpaceAround = 4,\n SpaceEvenly = 5,\n}\n\nexport enum LogLevel {\n Error = 0,\n Warn = 1,\n Info = 2,\n Debug = 3,\n Verbose = 4,\n Fatal = 5,\n}\n\nexport enum MeasureMode {\n Undefined = 0,\n Exactly = 1,\n AtMost = 2,\n}\n\nexport enum NodeType {\n Default = 0,\n Text = 1,\n}\n\nexport enum Overflow {\n Visible = 0,\n Hidden = 1,\n Scroll = 2,\n}\n\nexport enum PositionType {\n Static = 0,\n Relative = 1,\n Absolute = 2,\n}\n\nexport enum Unit {\n Undefined = 0,\n Point = 1,\n Percent = 2,\n Auto = 3,\n}\n\nexport enum Wrap {\n NoWrap = 0,\n Wrap = 1,\n WrapReverse = 2,\n}\n\nexport const ALIGN_AUTO = Align.Auto\nexport const ALIGN_FLEX_START = Align.FlexStart\nexport const ALIGN_CENTER = Align.Center\nexport const ALIGN_FLEX_END = Align.FlexEnd\nexport const ALIGN_STRETCH = Align.Stretch\nexport const ALIGN_BASELINE = Align.Baseline\nexport const ALIGN_SPACE_BETWEEN = Align.SpaceBetween\nexport const ALIGN_SPACE_AROUND = Align.SpaceAround\nexport const ALIGN_SPACE_EVENLY = Align.SpaceEvenly\n\nexport const BOX_SIZING_BORDER_BOX = BoxSizing.BorderBox\nexport const BOX_SIZING_CONTENT_BOX = BoxSizing.ContentBox\n\nexport const DIMENSION_WIDTH = Dimension.Width\nexport const DIMENSION_HEIGHT = Dimension.Height\n\nexport const DIRECTION_INHERIT = Direction.Inherit\nexport const DIRECTION_LTR = Direction.LTR\nexport const DIRECTION_RTL = Direction.RTL\n\nexport const DISPLAY_FLEX = Display.Flex\nexport const DISPLAY_NONE = Display.None\nexport const DISPLAY_CONTENTS = Display.Contents\n\nexport const EDGE_LEFT = Edge.Left\nexport const EDGE_TOP = Edge.Top\nexport const EDGE_RIGHT = Edge.Right\nexport const EDGE_BOTTOM = Edge.Bottom\nexport const EDGE_START = Edge.Start\nexport const EDGE_END = Edge.End\nexport const EDGE_HORIZONTAL = Edge.Horizontal\nexport const EDGE_VERTICAL = Edge.Vertical\nexport const EDGE_ALL = Edge.All\n\nexport const ERRATA_NONE = Errata.None\nexport const ERRATA_STRETCH_FLEX_BASIS = Errata.StretchFlexBasis\nexport const ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING =\n Errata.AbsolutePositionWithoutInsetsExcludesPadding\nexport const ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE = Errata.AbsolutePercentAgainstInnerSize\nexport const ERRATA_ALL = Errata.All\nexport const ERRATA_CLASSIC = Errata.Classic\n\nexport const EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS = ExperimentalFeature.WebFlexBasis\n\nexport const FLEX_DIRECTION_COLUMN = FlexDirection.Column\nexport const FLEX_DIRECTION_COLUMN_REVERSE = FlexDirection.ColumnReverse\nexport const FLEX_DIRECTION_ROW = FlexDirection.Row\nexport const FLEX_DIRECTION_ROW_REVERSE = FlexDirection.RowReverse\n\nexport const GUTTER_COLUMN = Gutter.Column\nexport const GUTTER_ROW = Gutter.Row\nexport const GUTTER_ALL = Gutter.All\n\nexport const JUSTIFY_FLEX_START = Justify.FlexStart\nexport const JUSTIFY_CENTER = Justify.Center\nexport const JUSTIFY_FLEX_END = Justify.FlexEnd\nexport const JUSTIFY_SPACE_BETWEEN = Justify.SpaceBetween\nexport const JUSTIFY_SPACE_AROUND = Justify.SpaceAround\nexport const JUSTIFY_SPACE_EVENLY = Justify.SpaceEvenly\n\nexport const LOG_LEVEL_ERROR = LogLevel.Error\nexport const LOG_LEVEL_WARN = LogLevel.Warn\nexport const LOG_LEVEL_INFO = LogLevel.Info\nexport const LOG_LEVEL_DEBUG = LogLevel.Debug\nexport const LOG_LEVEL_VERBOSE = LogLevel.Verbose\nexport const LOG_LEVEL_FATAL = LogLevel.Fatal\n\nexport const MEASURE_MODE_UNDEFINED = MeasureMode.Undefined\nexport const MEASURE_MODE_EXACTLY = MeasureMode.Exactly\nexport const MEASURE_MODE_AT_MOST = MeasureMode.AtMost\n\nexport const NODE_TYPE_DEFAULT = NodeType.Default\nexport const NODE_TYPE_TEXT = NodeType.Text\n\nexport const OVERFLOW_VISIBLE = Overflow.Visible\nexport const OVERFLOW_HIDDEN = Overflow.Hidden\nexport const OVERFLOW_SCROLL = Overflow.Scroll\n\nexport const POSITION_TYPE_STATIC = PositionType.Static\nexport const POSITION_TYPE_RELATIVE = PositionType.Relative\nexport const POSITION_TYPE_ABSOLUTE = PositionType.Absolute\n\nexport const UNIT_UNDEFINED = Unit.Undefined\nexport const UNIT_POINT = Unit.Point\nexport const UNIT_PERCENT = Unit.Percent\nexport const UNIT_AUTO = Unit.Auto\n\nexport const WRAP_NO_WRAP = Wrap.NoWrap\nexport const WRAP_WRAP = Wrap.Wrap\nexport const WRAP_WRAP_REVERSE = Wrap.WrapReverse\n\nexport interface Layout {\n left: number\n right: number\n top: number\n bottom: number\n width: number\n height: number\n}\n\nexport interface Size {\n width: number\n height: number\n}\n\nexport interface Value {\n unit: Unit\n value: number\n}\n\nexport type MeasureFunction = (width: number, widthMode: MeasureMode, height: number, heightMode: MeasureMode) => Size\nexport type DirtiedFunction = (node: Node) => void\n\ntype ValueInput = number | \"auto\" | `${number}%` | Value | undefined\ntype ValueInputNoAuto = number | `${number}%` | Value | undefined\n\nconst YogaEnumKind = {\n Direction: 0,\n FlexDirection: 1,\n JustifyContent: 2,\n AlignContent: 3,\n AlignItems: 4,\n AlignSelf: 5,\n PositionType: 6,\n FlexWrap: 7,\n Overflow: 8,\n Display: 9,\n BoxSizing: 10,\n} as const\n\nconst YogaFloatKind = {\n Flex: 0,\n FlexGrow: 1,\n FlexShrink: 2,\n AspectRatio: 3,\n} as const\n\nconst YogaValueKind = {\n Width: 0,\n Height: 1,\n MinWidth: 2,\n MinHeight: 3,\n MaxWidth: 4,\n MaxHeight: 5,\n FlexBasis: 6,\n Margin: 7,\n Padding: 8,\n Position: 9,\n Gap: 10,\n} as const\n\nconst YogaEdgeLayoutKind = {\n Margin: 0,\n Padding: 1,\n Border: 2,\n} as const\n\nconst UNDEFINED_VALUE: Value = { unit: Unit.Undefined, value: NaN }\n\nconst nodeRegistry = new Map<Pointer, Node>()\n// JS-measured Yoga nodes share one native callback per loaded library. Yoga passes\n// the node pointer back to JS, and these registries route to the per-node handler.\n// This keeps Node.setMeasureFunc()/setDirtiedFunc() while avoiding one JSCallback\n// allocation per measured node.\nconst measureRegistry = new Map<Pointer, MeasureFunction>()\nconst dirtiedRegistry = new Map<Pointer, { node: Node; callback: DirtiedFunction }>()\nlet measureCallback: FFICallbackInstance | null = null\nlet measureCallbackLib: RenderLib | null = null\nlet dirtiedCallback: FFICallbackInstance | null = null\nlet dirtiedCallbackLib: RenderLib | null = null\n\nfunction lib(): RenderLib {\n return resolveRenderLib()\n}\n\nfunction ensureMeasureCallback(): void {\n const renderLib = lib()\n if (measureCallback?.ptr && measureCallbackLib === renderLib) return\n\n const callback: NativeYogaMeasureCallback = (node, width, widthMode, height, heightMode) => {\n const measureFunc = node ? measureRegistry.get(node) : undefined\n const result = measureFunc?.(width, widthMode as MeasureMode, height, heightMode as MeasureMode)\n renderLib.yogaStoreMeasureResult(result?.width ?? NaN, result?.height ?? NaN)\n }\n\n measureCallback = renderLib.createYogaMeasureCallback(callback)\n if (!measureCallback.ptr) {\n measureCallback.close()\n measureCallback = null\n throw new Error(\"Failed to create Yoga measure callback\")\n }\n\n renderLib.yogaSetMeasureCallback(measureCallback.ptr)\n measureCallbackLib = renderLib\n}\n\nfunction ensureDirtiedCallback(): void {\n const renderLib = lib()\n if (dirtiedCallback?.ptr && dirtiedCallbackLib === renderLib) return\n\n const callback: NativeYogaDirtiedCallback = (node) => {\n if (!node) return\n const registration = dirtiedRegistry.get(node)\n if (registration) registration.callback(registration.node)\n }\n\n dirtiedCallback = renderLib.createYogaDirtiedCallback(callback)\n if (!dirtiedCallback.ptr) {\n dirtiedCallback.close()\n dirtiedCallback = null\n throw new Error(\"Failed to create Yoga dirtied callback\")\n }\n\n renderLib.yogaSetDirtiedCallback(dirtiedCallback.ptr)\n dirtiedCallbackLib = renderLib\n}\n\nfunction isValueObject(value: unknown): value is Value {\n return typeof value === \"object\" && value !== null && \"unit\" in value && \"value\" in value\n}\n\nfunction parseValue(value: ValueInput): Value {\n if (isValueObject(value)) {\n return value\n }\n if (value === undefined) {\n return UNDEFINED_VALUE\n }\n if (value === \"auto\") {\n return { unit: Unit.Auto, value: NaN }\n }\n if (typeof value === \"string\") {\n if (!value.endsWith(\"%\")) {\n throw new Error(`Invalid Yoga value: ${value}`)\n }\n const numberValue = Number.parseFloat(value)\n if (Number.isNaN(numberValue)) {\n throw new Error(`Invalid Yoga percentage value: ${value}`)\n }\n return { unit: Unit.Percent, value: numberValue }\n }\n return { unit: Unit.Point, value }\n}\n\nfunction unpackValue(packedValue: number | bigint): Value {\n const packed = typeof packedValue === \"bigint\" ? packedValue : BigInt(packedValue)\n const unit = Number(packed & 0xffffffffn) as Unit\n const valueBits = Number((packed >> 32n) & 0xffffffffn)\n const buffer = new ArrayBuffer(4)\n const view = new DataView(buffer)\n view.setUint32(0, valueBits, true)\n return { unit, value: view.getFloat32(0, true) }\n}\n\nfunction normalizeLayoutInput(value: number | \"auto\" | undefined): number {\n return value === undefined || value === \"auto\" ? NaN : value\n}\n\nexport class Config {\n readonly ptr: Pointer\n private freed = false\n\n private constructor(ptr: Pointer) {\n this.ptr = ptr\n }\n\n static create(): Config {\n return new Config(lib().yogaConfigCreate())\n }\n\n static destroy(config: Config): void {\n config.free()\n }\n\n free(): void {\n if (this.freed) return\n this.freed = true\n lib().yogaConfigFree(this.ptr)\n }\n\n setUseWebDefaults(useWebDefaults: boolean): void {\n if (this.freed) return\n lib().yogaConfigSetUseWebDefaults(this.ptr, useWebDefaults)\n }\n\n useWebDefaults(): boolean {\n if (this.freed) return false\n return lib().yogaConfigGetUseWebDefaults(this.ptr)\n }\n\n setPointScaleFactor(pointScaleFactor: number): void {\n if (this.freed) return\n lib().yogaConfigSetPointScaleFactor(this.ptr, pointScaleFactor)\n }\n\n getPointScaleFactor(): number {\n if (this.freed) return 0\n return lib().yogaConfigGetPointScaleFactor(this.ptr)\n }\n\n setErrata(errata: Errata): void {\n if (this.freed) return\n lib().yogaConfigSetErrata(this.ptr, errata)\n }\n\n getErrata(): Errata {\n if (this.freed) return Errata.None\n return lib().yogaConfigGetErrata(this.ptr) as Errata\n }\n\n setExperimentalFeatureEnabled(feature: ExperimentalFeature, enabled: boolean): void {\n if (this.freed) return\n lib().yogaConfigSetExperimentalFeatureEnabled(this.ptr, feature, enabled)\n }\n\n isExperimentalFeatureEnabled(feature: ExperimentalFeature): boolean {\n if (this.freed) return false\n return lib().yogaConfigIsExperimentalFeatureEnabled(this.ptr, feature)\n }\n}\n\nexport class Node {\n readonly ptr: Pointer\n private freed = false\n\n private constructor(ptr: Pointer) {\n this.ptr = ptr\n nodeRegistry.set(ptr, this)\n }\n\n static create(config?: Config): Node {\n return Node.fromPointer(config ? lib().yogaNodeCreateWithConfig(config.ptr) : lib().yogaNodeCreate())\n }\n\n static createForOpenTUI(): Node {\n return Node.fromPointer(lib().yogaNodeCreateForOpenTUI())\n }\n\n static createDefault(): Node {\n return Node.create()\n }\n\n static createWithConfig(config: Config): Node {\n return Node.create(config)\n }\n\n static destroy(node: Node): void {\n node.free()\n }\n\n private static fromPointer(ptr: Pointer): Node {\n const existing = nodeRegistry.get(ptr)\n if (existing) return existing\n return new Node(ptr)\n }\n\n isFreed(): boolean {\n return this.freed\n }\n\n free(): void {\n if (this.freed) return\n this.unsetMeasureFunc()\n this.unsetDirtiedFunc()\n lib().yogaNodeFree(this.ptr)\n this.markFreed()\n }\n\n freeRecursive(): void {\n if (this.freed) return\n const nodes = this.collectSubtree([])\n for (const node of nodes) {\n node.unregisterCallbacks()\n }\n lib().yogaNodeFreeRecursive(this.ptr)\n for (const node of nodes) {\n node.markFreed()\n }\n }\n\n reset(): void {\n if (this.freed) return\n this.unsetMeasureFunc()\n this.unsetDirtiedFunc()\n lib().yogaNodeReset(this.ptr)\n }\n\n copyStyle(node: Node): void {\n if (this.freed) return\n lib().yogaNodeCopyStyle(this.ptr, node.ptr)\n }\n\n insertChild(child: Node, index: number): void {\n if (this.freed) return\n lib().yogaNodeInsertChild(this.ptr, child.ptr, index)\n }\n\n removeChild(child: Node): void {\n if (this.freed) return\n lib().yogaNodeRemoveChild(this.ptr, child.ptr)\n }\n\n removeAllChildren(): void {\n if (this.freed) return\n lib().yogaNodeRemoveAllChildren(this.ptr)\n }\n\n getChild(index: number): Node | null {\n if (this.freed) return null\n const child = lib().yogaNodeGetChild(this.ptr, index)\n return child ? Node.fromPointer(child) : null\n }\n\n getChildCount(): number {\n if (this.freed) return 0\n return lib().yogaNodeGetChildCount(this.ptr)\n }\n\n getParent(): Node | null {\n if (this.freed) return null\n const parent = lib().yogaNodeGetParent(this.ptr)\n return parent ? Node.fromPointer(parent) : null\n }\n\n calculateLayout(width?: number | \"auto\", height?: number | \"auto\", direction: Direction = Direction.LTR): void {\n if (this.freed) return\n lib().yogaNodeCalculateLayout(this.ptr, normalizeLayoutInput(width), normalizeLayoutInput(height), direction)\n }\n\n hasNewLayout(): boolean {\n if (this.freed) return false\n return lib().yogaNodeGetHasNewLayout(this.ptr)\n }\n\n markLayoutSeen(): void {\n if (this.freed) return\n lib().yogaNodeSetHasNewLayout(this.ptr, false)\n }\n\n markDirty(): void {\n if (this.freed) return\n lib().yogaNodeMarkDirty(this.ptr)\n }\n\n isDirty(): boolean {\n if (this.freed) return true\n return lib().yogaNodeIsDirty(this.ptr)\n }\n\n getComputedLayout(): Layout {\n if (this.freed) return { left: 0, top: 0, right: 0, bottom: 0, width: 0, height: 0 }\n return lib().yogaNodeGetComputedLayout(this.ptr)\n }\n\n getComputedLeft(): number {\n return this.getComputedLayout().left\n }\n\n getComputedTop(): number {\n return this.getComputedLayout().top\n }\n\n getComputedRight(): number {\n return this.getComputedLayout().right\n }\n\n getComputedBottom(): number {\n return this.getComputedLayout().bottom\n }\n\n getComputedWidth(): number {\n return this.getComputedLayout().width\n }\n\n getComputedHeight(): number {\n return this.getComputedLayout().height\n }\n\n getComputedMargin(edge: Edge): number {\n if (this.freed) return 0\n return lib().yogaNodeLayoutGetEdge(this.ptr, YogaEdgeLayoutKind.Margin, edge)\n }\n\n getComputedPadding(edge: Edge): number {\n if (this.freed) return 0\n return lib().yogaNodeLayoutGetEdge(this.ptr, YogaEdgeLayoutKind.Padding, edge)\n }\n\n getComputedBorder(edge: Edge): number {\n if (this.freed) return 0\n return lib().yogaNodeLayoutGetEdge(this.ptr, YogaEdgeLayoutKind.Border, edge)\n }\n\n setDirection(direction: Direction): void {\n this.setEnum(YogaEnumKind.Direction, direction)\n }\n\n getDirection(): Direction {\n return this.getEnum(YogaEnumKind.Direction, Direction.Inherit) as Direction\n }\n\n setFlexDirection(flexDirection: FlexDirection): void {\n this.setEnum(YogaEnumKind.FlexDirection, flexDirection)\n }\n\n getFlexDirection(): FlexDirection {\n return this.getEnum(YogaEnumKind.FlexDirection, FlexDirection.Column) as FlexDirection\n }\n\n setJustifyContent(justifyContent: Justify): void {\n this.setEnum(YogaEnumKind.JustifyContent, justifyContent)\n }\n\n getJustifyContent(): Justify {\n return this.getEnum(YogaEnumKind.JustifyContent, Justify.FlexStart) as Justify\n }\n\n setAlignContent(alignContent: Align): void {\n this.setEnum(YogaEnumKind.AlignContent, alignContent)\n }\n\n getAlignContent(): Align {\n return this.getEnum(YogaEnumKind.AlignContent, Align.FlexStart) as Align\n }\n\n setAlignItems(alignItems: Align): void {\n this.setEnum(YogaEnumKind.AlignItems, alignItems)\n }\n\n getAlignItems(): Align {\n return this.getEnum(YogaEnumKind.AlignItems, Align.Stretch) as Align\n }\n\n setAlignSelf(alignSelf: Align): void {\n this.setEnum(YogaEnumKind.AlignSelf, alignSelf)\n }\n\n getAlignSelf(): Align {\n return this.getEnum(YogaEnumKind.AlignSelf, Align.Auto) as Align\n }\n\n setPositionType(positionType: PositionType): void {\n this.setEnum(YogaEnumKind.PositionType, positionType)\n }\n\n getPositionType(): PositionType {\n return this.getEnum(YogaEnumKind.PositionType, PositionType.Relative) as PositionType\n }\n\n setFlexWrap(flexWrap: Wrap): void {\n this.setEnum(YogaEnumKind.FlexWrap, flexWrap)\n }\n\n getFlexWrap(): Wrap {\n return this.getEnum(YogaEnumKind.FlexWrap, Wrap.NoWrap) as Wrap\n }\n\n setOverflow(overflow: Overflow): void {\n this.setEnum(YogaEnumKind.Overflow, overflow)\n }\n\n getOverflow(): Overflow {\n return this.getEnum(YogaEnumKind.Overflow, Overflow.Visible) as Overflow\n }\n\n setDisplay(display: Display): void {\n this.setEnum(YogaEnumKind.Display, display)\n }\n\n getDisplay(): Display {\n return this.getEnum(YogaEnumKind.Display, Display.Flex) as Display\n }\n\n setBoxSizing(boxSizing: BoxSizing): void {\n this.setEnum(YogaEnumKind.BoxSizing, boxSizing)\n }\n\n getBoxSizing(): BoxSizing {\n return this.getEnum(YogaEnumKind.BoxSizing, BoxSizing.BorderBox) as BoxSizing\n }\n\n setFlex(flex: number | undefined): void {\n this.setFloat(YogaFloatKind.Flex, flex)\n }\n\n getFlex(): number {\n return this.getFloat(YogaFloatKind.Flex)\n }\n\n setFlexGrow(flexGrow: number | undefined): void {\n this.setFloat(YogaFloatKind.FlexGrow, flexGrow)\n }\n\n getFlexGrow(): number {\n return this.getFloat(YogaFloatKind.FlexGrow)\n }\n\n setFlexShrink(flexShrink: number | undefined): void {\n this.setFloat(YogaFloatKind.FlexShrink, flexShrink)\n }\n\n getFlexShrink(): number {\n return this.getFloat(YogaFloatKind.FlexShrink)\n }\n\n setAspectRatio(aspectRatio: number | undefined): void {\n this.setFloat(YogaFloatKind.AspectRatio, aspectRatio)\n }\n\n getAspectRatio(): number {\n return this.getFloat(YogaFloatKind.AspectRatio)\n }\n\n setFlexBasis(flexBasis: ValueInput): void {\n this.setValue(YogaValueKind.FlexBasis, 0, flexBasis)\n }\n\n setFlexBasisPercent(flexBasis: number | undefined): void {\n this.setValue(\n YogaValueKind.FlexBasis,\n 0,\n flexBasis === undefined ? undefined : { unit: Unit.Percent, value: flexBasis },\n )\n }\n\n setFlexBasisAuto(): void {\n this.setValue(YogaValueKind.FlexBasis, 0, \"auto\")\n }\n\n getFlexBasis(): Value {\n return this.getValue(YogaValueKind.FlexBasis, 0)\n }\n\n setWidth(width: ValueInput): void {\n this.setValue(YogaValueKind.Width, 0, width)\n }\n\n setWidthPercent(width: number | undefined): void {\n this.setValue(YogaValueKind.Width, 0, width === undefined ? undefined : { unit: Unit.Percent, value: width })\n }\n\n setWidthAuto(): void {\n this.setValue(YogaValueKind.Width, 0, \"auto\")\n }\n\n getWidth(): Value {\n return this.getValue(YogaValueKind.Width, 0)\n }\n\n setHeight(height: ValueInput): void {\n this.setValue(YogaValueKind.Height, 0, height)\n }\n\n setHeightPercent(height: number | undefined): void {\n this.setValue(YogaValueKind.Height, 0, height === undefined ? undefined : { unit: Unit.Percent, value: height })\n }\n\n setHeightAuto(): void {\n this.setValue(YogaValueKind.Height, 0, \"auto\")\n }\n\n getHeight(): Value {\n return this.getValue(YogaValueKind.Height, 0)\n }\n\n setMinWidth(minWidth: ValueInputNoAuto): void {\n this.setValue(YogaValueKind.MinWidth, 0, minWidth)\n }\n\n setMinWidthPercent(minWidth: number | undefined): void {\n this.setValue(\n YogaValueKind.MinWidth,\n 0,\n minWidth === undefined ? undefined : { unit: Unit.Percent, value: minWidth },\n )\n }\n\n getMinWidth(): Value {\n return this.getValue(YogaValueKind.MinWidth, 0)\n }\n\n setMinHeight(minHeight: ValueInputNoAuto): void {\n this.setValue(YogaValueKind.MinHeight, 0, minHeight)\n }\n\n setMinHeightPercent(minHeight: number | undefined): void {\n this.setValue(\n YogaValueKind.MinHeight,\n 0,\n minHeight === undefined ? undefined : { unit: Unit.Percent, value: minHeight },\n )\n }\n\n getMinHeight(): Value {\n return this.getValue(YogaValueKind.MinHeight, 0)\n }\n\n setMaxWidth(maxWidth: ValueInputNoAuto): void {\n this.setValue(YogaValueKind.MaxWidth, 0, maxWidth)\n }\n\n setMaxWidthPercent(maxWidth: number | undefined): void {\n this.setValue(\n YogaValueKind.MaxWidth,\n 0,\n maxWidth === undefined ? undefined : { unit: Unit.Percent, value: maxWidth },\n )\n }\n\n getMaxWidth(): Value {\n return this.getValue(YogaValueKind.MaxWidth, 0)\n }\n\n setMaxHeight(maxHeight: ValueInputNoAuto): void {\n this.setValue(YogaValueKind.MaxHeight, 0, maxHeight)\n }\n\n setMaxHeightPercent(maxHeight: number | undefined): void {\n this.setValue(\n YogaValueKind.MaxHeight,\n 0,\n maxHeight === undefined ? undefined : { unit: Unit.Percent, value: maxHeight },\n )\n }\n\n getMaxHeight(): Value {\n return this.getValue(YogaValueKind.MaxHeight, 0)\n }\n\n setMargin(edge: Edge, margin: ValueInput): void {\n this.setValue(YogaValueKind.Margin, edge, margin)\n }\n\n setMarginPercent(edge: Edge, margin: number | undefined): void {\n this.setValue(YogaValueKind.Margin, edge, margin === undefined ? undefined : { unit: Unit.Percent, value: margin })\n }\n\n setMarginAuto(edge: Edge): void {\n this.setValue(YogaValueKind.Margin, edge, \"auto\")\n }\n\n getMargin(edge: Edge): Value {\n return this.getValue(YogaValueKind.Margin, edge)\n }\n\n setPadding(edge: Edge, padding: ValueInputNoAuto): void {\n this.setValue(YogaValueKind.Padding, edge, padding)\n }\n\n setPaddingPercent(edge: Edge, padding: number | undefined): void {\n this.setValue(\n YogaValueKind.Padding,\n edge,\n padding === undefined ? undefined : { unit: Unit.Percent, value: padding },\n )\n }\n\n getPadding(edge: Edge): Value {\n return this.getValue(YogaValueKind.Padding, edge)\n }\n\n setPosition(edge: Edge, position: ValueInput): void {\n this.setValue(YogaValueKind.Position, edge, position)\n }\n\n setPositionPercent(edge: Edge, position: number | undefined): void {\n this.setValue(\n YogaValueKind.Position,\n edge,\n position === undefined ? undefined : { unit: Unit.Percent, value: position },\n )\n }\n\n setPositionAuto(edge: Edge): void {\n this.setValue(YogaValueKind.Position, edge, \"auto\")\n }\n\n getPosition(edge: Edge): Value {\n return this.getValue(YogaValueKind.Position, edge)\n }\n\n setGap(gutter: Gutter, gap: ValueInputNoAuto): void {\n this.setValue(YogaValueKind.Gap, gutter, gap)\n }\n\n setGapPercent(gutter: Gutter, gap: number | undefined): void {\n this.setValue(YogaValueKind.Gap, gutter, gap === undefined ? undefined : { unit: Unit.Percent, value: gap })\n }\n\n getGap(gutter: Gutter): Value {\n return this.getValue(YogaValueKind.Gap, gutter)\n }\n\n setBorder(edge: Edge, border: number | undefined): void {\n if (this.freed) return\n lib().yogaNodeStyleSetBorder(this.ptr, edge, border ?? NaN)\n }\n\n getBorder(edge: Edge): number {\n if (this.freed) return NaN\n return lib().yogaNodeStyleGetBorder(this.ptr, edge)\n }\n\n setIsReferenceBaseline(isReferenceBaseline: boolean): void {\n if (this.freed) return\n lib().yogaNodeSetIsReferenceBaseline(this.ptr, isReferenceBaseline)\n }\n\n isReferenceBaseline(): boolean {\n if (this.freed) return false\n return lib().yogaNodeIsReferenceBaseline(this.ptr)\n }\n\n setAlwaysFormsContainingBlock(alwaysFormsContainingBlock: boolean): void {\n if (this.freed) return\n lib().yogaNodeSetAlwaysFormsContainingBlock(this.ptr, alwaysFormsContainingBlock)\n }\n\n getAlwaysFormsContainingBlock(): boolean {\n if (this.freed) return false\n return lib().yogaNodeGetAlwaysFormsContainingBlock(this.ptr)\n }\n\n // A Yoga node has a single measure slot, shared with native-backed measurement\n // (NativeRenderable). Setting a JS measure func on a node that has a native\n // measure target replaces the native one, and vice versa.\n setMeasureFunc(measureFunc: MeasureFunction | null): void {\n if (this.freed) return\n this.unsetMeasureFunc()\n\n if (!measureFunc) return\n\n ensureMeasureCallback()\n measureRegistry.set(this.ptr, measureFunc)\n lib().yogaNodeSetMeasureFunc(this.ptr, true)\n }\n\n unsetMeasureFunc(): void {\n if (this.freed) return\n lib().yogaNodeUnsetMeasureFunc(this.ptr)\n measureRegistry.delete(this.ptr)\n }\n\n hasMeasureFunc(): boolean {\n if (this.freed) return false\n return lib().yogaNodeHasMeasureFunc(this.ptr)\n }\n\n setDirtiedFunc(dirtiedFunc: DirtiedFunction | null): void {\n if (this.freed) return\n this.unsetDirtiedFunc()\n\n if (!dirtiedFunc) return\n\n ensureDirtiedCallback()\n dirtiedRegistry.set(this.ptr, { node: this, callback: dirtiedFunc })\n lib().yogaNodeSetDirtiedFunc(this.ptr, true)\n }\n\n unsetDirtiedFunc(): void {\n if (this.freed) return\n lib().yogaNodeUnsetDirtiedFunc(this.ptr)\n dirtiedRegistry.delete(this.ptr)\n }\n\n private setEnum(kind: number, value: number): void {\n if (this.freed) return\n lib().yogaNodeStyleSetEnum(this.ptr, kind, value)\n }\n\n private getEnum(kind: number, fallback: number): number {\n if (this.freed) return fallback\n return lib().yogaNodeStyleGetEnum(this.ptr, kind)\n }\n\n private setFloat(kind: number, value: number | undefined): void {\n if (this.freed) return\n lib().yogaNodeStyleSetFloat(this.ptr, kind, value ?? NaN)\n }\n\n private getFloat(kind: number): number {\n if (this.freed) return NaN\n return lib().yogaNodeStyleGetFloat(this.ptr, kind)\n }\n\n private setValue(kind: number, edgeOrGutter: number, valueInput: ValueInput): void {\n if (this.freed) return\n const value = parseValue(valueInput)\n lib().yogaNodeStyleSetValue(this.ptr, kind, edgeOrGutter, value.unit, value.value)\n }\n\n private getValue(kind: number, edgeOrGutter: number): Value {\n if (this.freed) return UNDEFINED_VALUE\n return unpackValue(lib().yogaNodeStyleGetValue(this.ptr, kind, edgeOrGutter))\n }\n\n private collectSubtree(nodes: Node[]): Node[] {\n for (let index = 0; index < this.getChildCount(); index++) {\n this.getChild(index)?.collectSubtree(nodes)\n }\n nodes.push(this)\n return nodes\n }\n\n private unregisterCallbacks(): void {\n measureRegistry.delete(this.ptr)\n dirtiedRegistry.delete(this.ptr)\n }\n\n private markFreed(): void {\n this.unregisterCallbacks()\n this.freed = true\n nodeRegistry.delete(this.ptr)\n }\n}\n\nconst Yoga = {\n Config,\n Node,\n Align,\n BoxSizing,\n Dimension,\n Direction,\n Display,\n Edge,\n Errata,\n ExperimentalFeature,\n FlexDirection,\n Gutter,\n Justify,\n LogLevel,\n MeasureMode,\n NodeType,\n Overflow,\n PositionType,\n Unit,\n Wrap,\n ALIGN_AUTO,\n ALIGN_FLEX_START,\n ALIGN_CENTER,\n ALIGN_FLEX_END,\n ALIGN_STRETCH,\n ALIGN_BASELINE,\n ALIGN_SPACE_BETWEEN,\n ALIGN_SPACE_AROUND,\n ALIGN_SPACE_EVENLY,\n BOX_SIZING_BORDER_BOX,\n BOX_SIZING_CONTENT_BOX,\n DIMENSION_WIDTH,\n DIMENSION_HEIGHT,\n DIRECTION_INHERIT,\n DIRECTION_LTR,\n DIRECTION_RTL,\n DISPLAY_FLEX,\n DISPLAY_NONE,\n DISPLAY_CONTENTS,\n EDGE_LEFT,\n EDGE_TOP,\n EDGE_RIGHT,\n EDGE_BOTTOM,\n EDGE_START,\n EDGE_END,\n EDGE_HORIZONTAL,\n EDGE_VERTICAL,\n EDGE_ALL,\n ERRATA_NONE,\n ERRATA_STRETCH_FLEX_BASIS,\n ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING,\n ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE,\n ERRATA_ALL,\n ERRATA_CLASSIC,\n EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS,\n FLEX_DIRECTION_COLUMN,\n FLEX_DIRECTION_COLUMN_REVERSE,\n FLEX_DIRECTION_ROW,\n FLEX_DIRECTION_ROW_REVERSE,\n GUTTER_COLUMN,\n GUTTER_ROW,\n GUTTER_ALL,\n JUSTIFY_FLEX_START,\n JUSTIFY_CENTER,\n JUSTIFY_FLEX_END,\n JUSTIFY_SPACE_BETWEEN,\n JUSTIFY_SPACE_AROUND,\n JUSTIFY_SPACE_EVENLY,\n LOG_LEVEL_ERROR,\n LOG_LEVEL_WARN,\n LOG_LEVEL_INFO,\n LOG_LEVEL_DEBUG,\n LOG_LEVEL_VERBOSE,\n LOG_LEVEL_FATAL,\n MEASURE_MODE_UNDEFINED,\n MEASURE_MODE_EXACTLY,\n MEASURE_MODE_AT_MOST,\n NODE_TYPE_DEFAULT,\n NODE_TYPE_TEXT,\n OVERFLOW_VISIBLE,\n OVERFLOW_HIDDEN,\n OVERFLOW_SCROLL,\n POSITION_TYPE_STATIC,\n POSITION_TYPE_RELATIVE,\n POSITION_TYPE_ABSOLUTE,\n UNIT_UNDEFINED,\n UNIT_POINT,\n UNIT_PERCENT,\n UNIT_AUTO,\n WRAP_NO_WRAP,\n WRAP_WRAP,\n WRAP_WRAP_REVERSE,\n}\n\nexport default Yoga\n"
|
|
60
60
|
],
|
|
61
|
-
"mappings": "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,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,WACrB,KAAK,WAAY,KAAK;AAAA;AAG3B,SAAS,WAAW,CAAC,GAAG;AAAA,EACvB,OAAO,MAAM,SACT,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK;AAAA;AAGzB,SAAS,MAAM,CAAC,GAAG;AAAA,EAClB,OAAO,KAAK,QAAU,KAAK,QACvB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAW,KAAK,SACrB,KAAK,SAAW,KAAK,SACrB,KAAK,SAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,U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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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CP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AACT;AA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AAK,oBAAoB;AAAA,IACzB,KAAK,QAAQ;AAAA,IACb,aAAa,OAAO,KAAK,GAAG;AAAA;AAEhC;AAEA,IAAM,OAAO;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAe;",
|
|
62
|
-
"debugId": "
|
|
61
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAwBO,IAAM,UAAU;AAAA,EACrB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,SAAS;AAAA,EACT,KAAK;AAAA,EACL,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,SAAS;AAAA,EACT,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AACV;AAyFO,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AACxB,IAAM,iBAAiB;AACvB,IAAM,2BACX;AACK,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAC9B,IAAM,iBACX;AACK,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAC/B,IAAM,mBAAmB;AACzB,IAAM,0BAA0B;AAChC,IAAM,wBAAwB;AAC9B,IAAM,iBAAiB;AAC9B,IAAM,wBAAwB,OAAO,yBAAyB,YAAY,WAAW,YAAY,GAAG;AAEpG,SAAS,aAAa,CAAC,OAAsC;AAAA,EAC3D,IAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,yBAAyB;AAAA,IAAM,OAAO;AAAA,EACzF,IAAI;AAAA,IACF,sBAAsB,KAAK,KAAK;AAAA,IAChC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAIX,SAAS,WAAW,CAAC,OAAwB;AAAA,EAC3C,MAAM,IAAI,MAAM,iBAAiB,EAAE,MAAM,CAAC;AAAA;AAI5C,SAAS,wBAAwB,CAAC,OAA6B;AAAA,EAC7D,OAAO;AAAA,IACL,MAAM,GAAG;AAAA,MACP,OAAO,YAAY,KAAK;AAAA;AAAA,IAE1B,GAAG,GAAG;AAAA,MACJ,OAAO,YAAY,KAAK;AAAA;AAAA,IAE1B,QAAQ;AAAA,IACR,aAAa,GAAG;AAAA,MACd,OAAO,YAAY,KAAK;AAAA;AAAA,EAE5B;AAAA;AAGF,IAAM,QACJ,OAAO,YAAY,eACnB,OAAO,QAAQ,aAAa,YAC5B,QAAQ,aAAa,QACrB,OAAO,QAAQ,SAAS,QAAQ;AAC3B,IAAM,aAAa;AAE1B,IAAM,gBAAgB,cAAc,YAAY,GAAG;AACnD,IAAM,UAAU,YAAY;AAE5B,SAAS,WAAW,GAAe;AAAA,EAGjC,IAAI,OAAO;AAAA,IACT,OAAO,iBAAiB,cAAc,SAAS,CAAkB;AAAA,EACnE;AAAA,EAEA,IAAI;AAAA,IACF,MAAM,UAAU,cAAc,UAAU;AAAA,IACxC,OAAO,kBAAkB,QAAQ,WAAW,OAAO;AAAA,IACnD,OAAO,OAAO;AAAA,IACd,OAAO,yBAAyB,KAAK;AAAA;AAAA;AAMlC,SAAS,SAAS,CAAC,OAA8B;AAAA,EACtD,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,IACtC,OAAO,oBAAoB,KAAK;AAAA,EAClC;AAAA,EAEA,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AAAA,IACvC,OAAO,oBAAoB,KAAK;AAAA,EAClC;AAAA,EAEA,OAAO;AAAA;AAGF,SAAS,OAAO,CAAC,OAAuB;AAAA,EAC7C,OAAO,QAAQ,IAAI;AAAA;AAGd,SAAS,sBAAsB,CAAC,QAAoB,QAA4B;AAAA,EACrF,IAAI,WAAW,OAAO;AAAA,IAAY,OAAO;AAAA,EACzC,OAAO,IAAI,WAAY,OAAO,OAAuB,sBAAsB,MAAM,CAAC;AAAA;AAKpF,SAAS,mBAAmB,CAAC,SAAyB;AAAA,EACpD,IAAI,UAAU,IAAI;AAAA,IAChB,MAAM,IAAI,MAAM,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,UAAU,OAAO,OAAO,gBAAgB,GAAG;AAAA,IAC7C,MAAM,IAAI,MAAM,cAAc;AAAA,EAChC;AAAA,EAEA,OAAO,OAAO,OAAO;AAAA;AAGvB,SAAS,mBAAmB,CAAC,SAAyB;AAAA,EACpD,IAAI,UAAU,GAAG;AAAA,IACf,MAAM,IAAI,MAAM,gBAAgB;AAAA,EAClC;AAAA,EAEA,IAAI,CAAC,OAAO,cAAc,OAAO,GAAG;AAAA,IAClC,MAAM,IAAI,MAAM,cAAc;AAAA,EAChC;AAAA,EAEA,OAAO,OAAO,OAAO;AAAA;AAMvB,SAAS,qBAAqB,CAAC,KAA0B,WAA0D;AAAA,EACjH,IAAI,MAAM,IAAI;AAAA,EACd,IAAI,SAAS;AAAA,EAEb,MAAM,WAAgC;AAAA,QAChC,GAAG,GAAG;AAAA,MACR,OAAO;AAAA;AAAA,QAEL,UAAU,GAAG;AAAA,MACf,OAAO,IAAI;AAAA;AAAA,IAEb,KAAK,GAAG;AAAA,MACN,IAAI,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,MAEA,SAAS;AAAA,MACT,UAAU,OAAO,QAAQ;AAAA,MACzB,IAAI;AAAA,QACF,IAAI,MAAM;AAAA,gBACV;AAAA,QAGA,MAAM;AAAA;AAAA;AAAA,EAGZ;AAAA,EAEA,UAAU,IAAI,QAAQ;AAAA,EAEtB,OAAO;AAAA;AAGT,SAAS,uBAAgE,CACvE,aACsC;AAAA,EAGtC,OAAO,OAAO,YACZ,OAAO,QAAQ,WAAW,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC,MAAM,uBAAuB,UAAU,CAAC,CAAC,CACpG;AAAA;AAGF,SAAS,sBAAsB,CAAC,YAAyC;AAAA,EACvE,OAAO;AAAA,IACL,MAAM,WAAW;AAAA,IACjB,SAAS,WAAW;AAAA,IACpB,KAAK,WAAW,OAAO,OAAO,YAAY,aAAa,WAAW,GAAG;AAAA,IACrE,YAAY,WAAW;AAAA,EACzB;AAAA;AAIF,SAAS,YAAY,CAAC,SAA8B;AAAA,EAClD,OAAO,OAAO,YAAY,WAAW,oBAAoB,OAAO,IAAI;AAAA;AAI/D,SAAS,gBAAgB,CAAC,KAAgC;AAAA,EAC/D,OAAO;AAAA,IACL,MAAM,CAAC,MAAM,SAAS;AAAA,MACpB,IAAI,SAAS,MAAM;AAAA,QACjB,MAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAAA,MAEA,MAAM,UAAU,IAAI,OAAO,MAAM,wBAAwB,OAAO,CAAC;AAAA,MACjE,MAAM,YAAY,IAAI;AAAA,MACtB,IAAI,SAAS;AAAA,MAEb,OAAO;AAAA,QACL,SAAS,QAAQ;AAAA,QACjB,cAAc,CAAC,UAAU,YAAY;AAAA,UACnC,IAAI,QAAQ;AAAA,YAGV,MAAM,IAAI,MAAM,cAAc;AAAA,UAChC;AAAA,UAKA,MAAM,MAAM,IAAI,IAAI,WAAW,UAAU,uBAAuB,UAAU,CAAC;AAAA,UAE3E,OAAO,sBAAsB,KAAK,SAAS;AAAA;AAAA,QAE7C,KAAK,GAAG;AAAA,UACN,IAAI,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,UAEA,SAAS;AAAA,UAET,IAAI;AAAA,YAGF,QAAQ,MAAM;AAAA,oBACd;AAAA,YAGA,WAAW,YAAY,CAAC,GAAG,SAAS,GAAG;AAAA,cACrC,SAAS,MAAM;AAAA,YACjB;AAAA;AAAA;AAAA,MAGN;AAAA;AAAA,IAEF,KAAK,IAAI;AAAA,IACT,QAAQ,IAAI;AAAA,IACZ,aAAa,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAGrC,OAAO,IAAI,cAAc,aAAa,OAAO,GAAG,QAAQ,MAAM;AAAA;AAAA,EAElE;AAAA;AAIK,SAAS,iBAAiB,CAAC,SAAqC;AAAA,EACrE,OAAO;AAAA,IACL,MAAM,CAAC,MAAM,SAAS;AAAA,MACpB,QAAQ,KAAK,cAAc,QAAQ,OAAO,kBAAkB,IAAI,GAAG,yBAAyB,OAAO,CAAC;AAAA,MACpG,MAAM,YAAY,IAAI;AAAA,MACtB,IAAI,SAAS;AAAA,MACb,IAAI,gBAAgB;AAAA,MAEpB,OAAO;AAAA,QACL,SAAS,gBAAgB,WAAW,OAAO;AAAA,QAC3C,cAAc,CAAC,UAAU,YAAY;AAAA,UACnC,IAAI,QAAQ;AAAA,YACV,MAAM,IAAI,MAAM,cAAc;AAAA,UAChC;AAAA,UAEA,IAAI,WAAW,YAAY;AAAA,YACzB,MAAM,IAAI,MAAM,wBAAwB;AAAA,UAC1C;AAAA,UAEA,MAAM,kBAAkB,IAAI,iBAAiB,wBAAwB,UAAU,GAAG,QAAQ;AAAA,UAC1F,MAAM,MAA2B;AAAA,YAC/B,KAAK;AAAA,YACL,YAAY;AAAA,YACZ,KAAK,GAAG;AAAA,cACN,IAAI,CAAC,eAAe;AAAA,gBAClB,IAAI,mBAAmB,eAAe;AAAA,cACxC;AAAA;AAAA,UAEJ;AAAA,UAEA,OAAO,sBAAsB,KAAK,SAAS;AAAA;AAAA,QAE7C,KAAK,GAAG;AAAA,UACN,IAAI,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,UAEA,SAAS;AAAA,UAET,IAAI;AAAA,YACF,gBAAgB;AAAA,YAChB,IAAI,MAAM;AAAA,oBACV;AAAA,YACA,WAAW,YAAY,CAAC,GAAG,SAAS,GAAG;AAAA,cACrC,SAAS,MAAM;AAAA,YACjB;AAAA;AAAA;AAAA,MAGN;AAAA;AAAA,IAEF,GAAG,CAAC,OAAO;AAAA,MACT,OAAO,oBAAoB,SAAS,KAAK;AAAA;AAAA,IAE3C,QAAQ,QAAQ;AAAA,IAChB,aAAa,CAAC,SAAS,QAAQ,QAAQ;AAAA,MACrC,OAAO,QAAQ,cAAc,gBAAgB,OAAO,IAAI,oBAAoB,MAAM,GAAG,QAAQ,KAAK;AAAA;AAAA,EAEtG;AAAA;AAGF,SAAS,iBAAiB,CAAC,MAA0C;AAAA,EACnE,OAAO,gBAAgB,MAAM,cAAc,IAAI,IAAI;AAAA;AAGrD,SAAS,wBAAiE,CACxE,aACiC;AAAA,EACjC,OAAO,OAAO,YACZ,OAAO,QAAQ,WAAW,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC,MAAM,wBAAwB,UAAU,CAAC,CAAC,CACrG;AAAA;AAGF,SAAS,eAAwD,CAC/D,WACA,aAC+C;AAAA,EAC/C,OAAO,OAAO,YACZ,OAAO,QAAQ,SAAS,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,MAAM,eAAe,IAAI,YAAY,KAAK,CAAC,CAAC,CAC7F;AAAA;AAGF,SAAS,cAAc,CAAC,IAA6B,YAAkD;AAAA,EACrG,MAAM,qBAAqB,WAAW,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,UAC/D,0BAA0B,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAC/C;AAAA,EAEA,IAAI,kBAAkB,WAAW,GAAG;AAAA,IAClC,OAAO;AAAA,EACT;AAAA,EAGA,IAAI,WAAW,MAAM,WAAW,KAAK,kBAAkB,UAAU,GAAG;AAAA,IAClE,OAAO,gBAAgB,IAAI,iBAAiB;AAAA,EAC9C;AAAA,EAEA,IAAI,WAAW,MAAM,WAAW,GAAG;AAAA,IACjC,OAAO,gBAAgB,IAAI,iBAAiB;AAAA,EAC9C;AAAA,EAEA,MAAM,cAAc,IAAI,IAAI,iBAAiB;AAAA,EAC7C,MAAM,YAAY,CAAC,OAAgB,UACjC,YAAY,IAAI,KAAK,IAAI,0BAA0B,KAAK,IAAI;AAAA,EAE9D,QAAQ,WAAW,MAAM;AAAA,SAClB;AAAA,MACH,OAAO,QAAS,CAAC,MAAe;AAAA,QAC9B,IAAI,UAAU,WAAW;AAAA,UAAG,OAAO,QAAQ,MAAM,IAAI,WAAW,SAAS;AAAA,QACzE,OAAO,GAAG,UAAU,MAAM,CAAC,CAAC;AAAA;AAAA,SAE3B;AAAA,MACH,OAAO,QAAS,CAAC,MAAe,MAAe;AAAA,QAC7C,IAAI,UAAU,WAAW;AAAA,UAAG,OAAO,QAAQ,MAAM,IAAI,WAAW,SAAS;AAAA,QACzE,OAAO,GAAG,UAAU,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,CAAC;AAAA;AAAA,SAE/C;AAAA,MACH,OAAO,QAAS,CAAC,MAAe,MAAe,MAAe;AAAA,QAC5D,IAAI,UAAU,WAAW;AAAA,UAAG,OAAO,QAAQ,MAAM,IAAI,WAAW,SAAS;AAAA,QACzE,OAAO,GAAG,UAAU,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,CAAC;AAAA;AAAA;AAAA,EAI1E,OAAO,IAAI,SAAgB;AAAA,IACzB,MAAM,iBAAiB,KAAK,MAAM;AAAA,IAElC,WAAW,SAAS,mBAAmB;AAAA,MACrC,eAAe,SAAS,sBAAsB,eAAe,MAAM;AAAA,IACrE;AAAA,IAEA,OAAO,GAAG,GAAG,cAAc;AAAA;AAAA;AAI/B,SAAS,eAAe,CAAC,IAA6B,mBAAsD;AAAA,EAC1G,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,YAAY,CAAC,OAAgB,YAAsB,UAAU,0BAA0B,KAAK,IAAI;AAAA,EAEtG,OAAO,QAAS,CACd,MACA,MACA,MACA,MACA,MACA,MACA,MACA;AAAA,IACA,IAAI,UAAU,WAAW;AAAA,MAAG,OAAO,QAAQ,MAAM,IAAI,WAAW,SAAS;AAAA,IACzE,OAAO,GACL,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,CAC1B;AAAA;AAAA;AAIJ,SAAS,eAAe,CAAC,IAA6B,mBAAsD;AAAA,EAC1G,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,WAAW,kBAAkB,SAAS,CAAC;AAAA,EAC7C,MAAM,YAAY,CAAC,OAAgB,YAAsB,UAAU,0BAA0B,KAAK,IAAI;AAAA,EAEtG,OAAO,QAAS,CACd,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA;AAAA,IACA,IAAI,UAAU,WAAW;AAAA,MAAG,OAAO,QAAQ,MAAM,IAAI,WAAW,SAAS;AAAA,IACzE,OAAO,GACL,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,GACxB,UAAU,MAAM,QAAQ,CAC1B;AAAA;AAAA;AAIJ,SAAS,yBAAyB,CAAC,OAAwD;AAAA,EACzF,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,OAAO,SAAS,KAAK,QAAQ,sBAAsB,KAAK;AAAA,EAC1D;AAAA,EAEA,IAAI,YAAY,OAAO,KAAK,KAAK,MAAM,aAAa,KAAK,MAAM,kBAAkB,aAAa;AAAA,IAC5F,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,iBAAiB,eAAe,MAAM,aAAa,GAAG;AAAA,IACxD,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,sBAAsB,KAAK;AAAA;AAGpC,SAAS,yBAAyB,CAAC,MAAgC;AAAA,EACjE,OAAO,SAAS,QAAQ,OAAO,SAAS,QAAQ,WAAW,SAAS,QAAQ,YAAY,SAAS,QAAQ;AAAA;AAG3G,SAAS,qBAAqB,CAAC,OAAwD;AAAA,EACrF,IAAI,SAAS,MAAM;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAAA,IAC1D,OAAO,gBAAgB,KAAgB;AAAA,EACzC;AAAA,EAEA,IAAI,YAAY,OAAO,KAAK,GAAG;AAAA,IAC7B,IAAI,CAAC,cAAc,MAAM,MAAM,GAAG;AAAA,MAChC,MAAM,IAAI,UAAU,cAAc;AAAA,IACpC;AAAA,IAEA,IAAI,MAAM,eAAe,GAAG;AAAA,MAC1B,OAAO;AAAA,IACT;AAAA,IAEA,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,cAAc,KAAK,GAAG;AAAA,IACxB,IAAI,MAAM,eAAe,GAAG;AAAA,MAC1B,OAAO;AAAA,IACT;AAAA,IAEA,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,UAAU,qBAAqB;AAAA;AAG3C,SAAS,mBAAmB,CAAC,SAAyB,OAA8B;AAAA,EAClF,IAAI,YAAY,OAAO,KAAK,GAAG;AAAA,IAC7B,IAAI,CAAC,cAAc,MAAM,MAAM,GAAG;AAAA,MAChC,MAAM,IAAI,UAAU,cAAc;AAAA,IACpC;AAAA,IAEA,OAAO,QAAQ,cAAc,MAAM,MAAM,IAAI,OAAO,MAAM,UAAU;AAAA,EACtE;AAAA,EAEA,IAAI,cAAc,KAAK,GAAG;AAAA,IACxB,OAAO,QAAQ,cAAc,KAAK;AAAA,EACpC;AAAA,EAEA,MAAM,IAAI,UAAU,cAAc;AAAA;AAGpC,SAAS,mBAAmB,CAAC,QAAoC;AAAA,EAC/D,IAAI,UAAU,MAAM;AAAA,IAClB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,SAAS,GAAG;AAAA,IACd,MAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAAA,EAEA,IAAI,CAAC,OAAO,cAAc,MAAM,GAAG;AAAA,IACjC,MAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAAA,EAEA,OAAO,OAAO,MAAM;AAAA;AAGtB,SAAS,uBAAuB,CAAC,YAA0C;AAAA,EACzE,IAAI,WAAW,OAAO,MAAM;AAAA,IAC1B,MAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAAA,EAEA,OAAO;AAAA,IACL,YAAY,WAAW,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,cAAc,MAAM,WAAW,CAAC;AAAA,IACjF,QAAQ,cAAc,WAAW,WAAW,QAAQ,MAAM,QAAQ;AAAA,EACpE;AAAA;AAGF,SAAS,aAAa,CAAC,MAAuB,UAA0C;AAAA,EACtF,QAAQ;AAAA,SACD,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,MACX,OAAO;AAAA,SACJ,QAAQ;AAAA,MAaX,IAAI,aAAa,UAAU;AAAA,QACzB,MAAM,IAAI,MAAM,kBAAkB;AAAA,MACpC;AAAA,MAEA,OAAO;AAAA,SACJ,QAAQ;AAAA,SACR,QAAQ;AAAA,MAGX,OAAO;AAAA,SACJ,QAAQ;AAAA,MAGX,MAAM,IAAI,MAAM,sBAAsB;AAAA,SACnC,QAAQ;AAAA,SACR,QAAQ;AAAA,MAEX,MAAM,IAAI,MAAM,qBAAqB;AAAA,SAClC,QAAQ;AAAA,MACX,OAAO;AAAA;AAAA,MAEP,OAAO,uBAAuB,IAAI;AAAA;AAAA;AAIxC,SAAS,sBAAsB,CAAC,MAAoB;AAAA,EAClD,MAAM,IAAI,MAAM,qCAAqC,OAAO,IAAI,GAAG;AAAA;AAGrE,SAAS,eAAe,CAAC,SAA0B;AAAA,EACjD,IAAI,OAAO,YAAY,UAAU;AAAA,IAC/B,IAAI,UAAU,IAAI;AAAA,MAChB,MAAM,IAAI,MAAM,gBAAgB;AAAA,IAClC;AAAA,IAEA,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,oBAAoB,OAAO;AAAA;AAG7B,IAAM,SAAS,QAAQ;AACvB,IAAM,MAAM,QAAQ;AACpB,IAAM,SAAS,QAAQ;AACvB,IAAM,gBAAgB,QAAQ;;;AC/wBrC;AACA,6BAAgB;AAChB,gCAAkB;AAClB,0BAAS;;;ACHT,SAAwB,SAAS,GAAE,YAAY,UAAS,CAAC,GAAG;AAAA,EAE3D,MAAM,KAAK;AAAA,EAGX,MAAM,MAAM,0BAA0B;AAAA,EAGtC,MAAM,MAAM;AAAA,EAEZ,MAAM,UAAU,GAAG,OAAO;AAAA,EAE1B,OAAO,IAAI,OAAO,SAAS,YAAY,YAAY,GAAG;AAAA;;;ACVvD,IAAM,QAAQ,UAAU;AAExB,SAAwB,SAAS,CAAC,QAAQ;AAAA,EACzC,IAAI,OAAO,WAAW,UAAU;AAAA,IAC/B,MAAM,IAAI,UAAU,gCAAgC,OAAO,UAAU;AAAA,EACtE;AAAA,EAKA,OAAO,OAAO,QAAQ,OAAO,EAAE;AAAA;;;ACVhC,SAAS,WAAW,CAAC,GAAG;AAAA,EACvB,OAAO,MAAM,OACT,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,KAAK,OAAQ,KAAK,OAClB,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,MAAM,QACN,KAAK,QAAS,KAAK,QACnB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,WACrB,KAAK,WAAY,KAAK;AAAA;AAG3B,SAAS,WAAW,CAAC,GAAG;AAAA,EACvB,OAAO,MAAM,SACT,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK;AAAA;AAGzB,SAAS,MAAM,CAAC,GAAG;AAAA,EAClB,OAAO,KAAK,QAAU,KAAK,QACvB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAW,KAAK,SACrB,KAAK,SAAW,KAAK,SACrB,KAAK,SAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK;AAAA;;;ACxW1B,SAAS,QAAQ,CAAC,WAAW;AAAA,EAC5B,IAAI,CAAC,OAAO,cAAc,SAAS,GAAG;AAAA,IACrC,MAAM,IAAI,UAAU,gCAAgC,OAAO,cAAc;AAAA,EAC1E;AAAA;AASM,SAAS,cAAc,CAAC,aAAY,kBAAkB,UAAS,CAAC,GAAG;AAAA,EACzE,SAAS,SAAS;AAAA,EAElB,IACC,YAAY,SAAS,KAClB,OAAO,SAAS,KACf,mBAAmB,YAAY,SAAS,GAC3C;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;;;ACzBR,IAAe,4BAAM;AAAA,EAEpB,OAAO;AAAA;;;ACER,IAAM,YAAY,IAAI,KAAK;AAE3B,IAAM,iCAAiC;AAEvC,SAAwB,WAAW,CAAC,QAAQ,UAAU,CAAC,GAAG;AAAA,EACzD,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AAAA,IACtD,OAAO;AAAA,EACR;AAAA,EAEA;AAAA,IACC,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,MACpB;AAAA,EAEJ,IAAI,CAAC,sBAAsB;AAAA,IAC1B,SAAS,UAAU,MAAM;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAO,WAAW,GAAG;AAAA,IACxB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,QAAQ;AAAA,EACZ,MAAM,wBAAwB,EAAC,iBAAiB,CAAC,kBAAiB;AAAA,EAElE,aAAY,SAAS,eAAc,UAAU,QAAQ,MAAM,GAAG;AAAA,IAC7D,MAAM,YAAY,UAAU,YAAY,CAAC;AAAA,IAGzC,IAAI,aAAa,MAAS,aAAa,OAAQ,aAAa,KAAO;AAAA,MAClE;AAAA,IACD;AAAA,IAGA,IACE,aAAa,QAAW,aAAa,QACnC,cAAc,OAChB;AAAA,MACD;AAAA,IACD;AAAA,IAGA,IACE,aAAa,OAAU,aAAa,OACjC,aAAa,QAAW,aAAa,QACrC,aAAa,QAAW,aAAa,QACrC,aAAa,QAAW,aAAa,QACrC,aAAa,SAAW,aAAa,OACxC;AAAA,MACD;AAAA,IACD;AAAA,IAGA,IAAI,aAAa,SAAW,aAAa,OAAS;AAAA,MACjD;AAAA,IACD;AAAA,IAGA,IAAI,aAAa,SAAW,aAAa,OAAS;AAAA,MACjD;AAAA,IACD;AAAA,IAGA,IAAI,+BAA+B,KAAK,SAAS,GAAG;AAAA,MACnD;AAAA,IACD;AAAA,IAGA,IAAI,oBAAW,EAAE,KAAK,SAAS,GAAG;AAAA,MACjC,SAAS;AAAA,MACT;AAAA,IACD;AAAA,IAEA,SAAS,eAAe,WAAW,qBAAqB;AAAA,EACzD;AAAA,EAEA,OAAO;AAAA;;;AChFR;AACA;AACA,0BAAS;;;ACFT,IAAM,uBAAuB,OAAO,IAAI,yBAAyB;AAM1D,SAAS,SAAY,CAAC,KAAa,SAAqB;AAAA,EAE7D,MAAM,MAAO,WAAW,0BAA0B,CAAC;AAAA,EACnD,IAAI,EAAE,OAAO,MAAM;AAAA,IACjB,IAAI,OAAO,QAAQ;AAAA,EACrB;AAAA,EACA,OAAO,IAAI;AAAA;AAGN,SAAS,YAAe,CAAC,KAA4B;AAAA,EAE1D,MAAM,MAAM,WAAW;AAAA,EACvB,OAAO,MAAM;AAAA;AAGR,SAAS,gBAAgB,CAAC,KAAmB;AAAA,EAElD,MAAM,MAAM,WAAW;AAAA,EACvB,IAAI,OAAO,OAAO,KAAK;AAAA,IACrB,OAAO,IAAI;AAAA,EACb;AAAA;;;ACeK,IAAM,cAA4C,UAAU,gBAAgB,OAAO,CAAC,EAAE;AAEtF,SAAS,cAAc,CAAC,QAA4B;AAAA,EACzD,MAAM,WAAW,YAAY,OAAO;AAAA,EACpC,IAAI,UAAU;AAAA,IACZ,IACE,SAAS,gBAAgB,OAAO,eAChC,SAAS,SAAS,OAAO,QACzB,SAAS,YAAY,OAAO,WAC5B,SAAS,aAAa,OAAO,UAC7B;AAAA,MACA,MAAM,IAAI,MACR,yBAAyB,OAAO,+DAC9B,aAAa,KAAK,UAAU,QAAQ,WAAW,KAAK,UAAU,MAAM,GACxE;AAAA,IACF;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY,OAAO,QAAQ;AAAA;AAG7B,SAAS,gBAAgB,CAAC,OAAwB;AAAA,EAChD,MAAM,aAAa,MAAM,YAAY;AAAA,EACrC,OAAO,CAAC,QAAQ,KAAK,MAAM,KAAK,EAAE,SAAS,UAAU;AAAA;AAGvD,SAAS,aAAa,CAAC,QAA6D;AAAA,EAClF,MAAM,WAAW,QAAQ,IAAI,OAAO;AAAA,EAEpC,IAAI,aAAa,aAAa,OAAO,YAAY,WAAW;AAAA,IAC1D,OAAO,OAAO;AAAA,EAChB;AAAA,EAEA,IAAI,aAAa,aAAa,OAAO,aAAa,OAAO;AAAA,IACvD;AAAA,EACF;AAAA,EAEA,IAAI,aAAa,WAAW;AAAA,IAC1B,MAAM,IAAI,MAAM,iCAAiC,OAAO,oBAAoB,OAAO,aAAa;AAAA,EAClG;AAAA,EAEA,QAAQ,OAAO;AAAA,SACR;AAAA,MACH,OAAO,OAAO,aAAa,YAAY,WAAW,iBAAiB,QAAQ;AAAA,SACxE;AAAA,MACH,MAAM,WAAW,OAAO,QAAQ;AAAA,MAChC,IAAI,MAAM,QAAQ,GAAG;AAAA,QACnB,MAAM,IAAI,MAAM,wBAAwB,OAAO,qCAAqC,UAAU;AAAA,MAChG;AAAA,MACA,OAAO;AAAA,SACJ;AAAA;AAAA,MAEH,OAAO;AAAA;AAAA;AAAA;AAIb,MAAM,SAAS;AAAA,EACL,eAAmE,IAAI;AAAA,EAE/E,GAAG,CAAC,KAAkB;AAAA,IACpB,IAAI,KAAK,aAAa,IAAI,GAAG,GAAG;AAAA,MAC9B,OAAO,KAAK,aAAa,IAAI,GAAG;AAAA,IAClC;AAAA,IAEA,IAAI,EAAE,OAAO,cAAc;AAAA,MACzB,MAAM,IAAI,MAAM,wBAAwB,wBAAwB;AAAA,IAClE;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,QAAQ,cAAc,YAAY,IAAI;AAAA,MAC5C,KAAK,aAAa,IAAI,KAAK,KAAK;AAAA,MAChC,OAAO;AAAA,MACP,OAAO,OAAO;AAAA,MACd,MAAM,IAAI,MAAM,2BAA2B,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;AAAA;AAAA;AAAA,EAI/G,GAAG,CAAC,KAAsB;AAAA,IACxB,OAAO,OAAO;AAAA;AAAA,EAGhB,UAAU,GAAS;AAAA,IACjB,KAAK,aAAa,MAAM;AAAA;AAE5B;AAEA,IAAM,WAAW,UAAU,aAAa,MAAM,IAAI,QAAU;AAErD,SAAS,aAAa,GAAS;AAAA,EACpC,SAAS,WAAW;AAAA;AAGf,SAAS,mBAAmB,GAAW;AAAA,EAC5C,MAAM,UAAU,OAAO,OAAO,WAAW;AAAA,EAEzC,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB,OAAO;AAAA;AAAA;AAAA;AAAA,EACT;AAAA,EAEA,IAAI,WAAW;AAAA;AAAA;AAAA,EAEf,WAAW,UAAU,SAAS;AAAA,IAC5B,YAAY,MAAM,OAAO;AAAA;AAAA;AAAA,IACzB,YAAY,GAAG,OAAO;AAAA;AAAA;AAAA,IAEtB,YAAY,eAAe,OAAO,QAAQ;AAAA;AAAA,IAE1C,IAAI,OAAO,YAAY,WAAW;AAAA,MAChC,MAAM,eAAe,OAAO,OAAO,YAAY,WAAW,IAAI,OAAO,aAAa,OAAO,OAAO,OAAO;AAAA,MACvG,YAAY,kBAAkB;AAAA;AAAA,IAChC,EAAO,SAAI,OAAO,aAAa,OAAO;AAAA,MACpC,YAAY;AAAA;AAAA,IACd,EAAO;AAAA,MACL,YAAY;AAAA;AAAA;AAAA,IAGd,YAAY;AAAA;AAAA,EACd;AAAA,EAEA,OAAO;AAAA;AAGF,SAAS,kBAAkB,GAAW;AAAA,EAC3C,MAAM,UAAU,OAAO,OAAO,WAAW;AAAA,EAEzC,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB,OAAO;AAAA;AAAA;AAAA;AAAA,EACT;AAAA,EAEA,IAAI,SAAS;AAAA;AAAA;AAAA,EAEb,WAAW,UAAU,SAAS;AAAA,IAC5B,UAAU,aAAa,OAAO;AAAA;AAAA,IAC9B,UAAU,GAAG,OAAO;AAAA;AAAA,IACpB,UAAU,gCAAgC,OAAO,QAAQ;AAAA;AAAA,IAEzD,IAAI,OAAO,YAAY,WAAW;AAAA,MAChC,MAAM,eAAe,OAAO,OAAO,YAAY,WAAW,IAAI,OAAO,aAAa,OAAO,OAAO,OAAO;AAAA,MACvG,UAAU,mCAAmC;AAAA;AAAA,IAC/C,EAAO,SAAI,OAAO,aAAa,OAAO;AAAA,MACpC,UAAU;AAAA;AAAA,IACZ,EAAO;AAAA,MACL,UAAU;AAAA;AAAA;AAAA,IAGZ,UAAU;AAAA;AAAA,EACZ;AAAA,EAEA,OAAO;AAAA;AAGF,IAAM,MAAM,IAAI,MAAM,CAAC,GAA0B;AAAA,EACtD,GAAG,CAAC,QAAQ,MAAc;AAAA,IACxB,IAAI,OAAO,SAAS,UAAU;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,OAAO,SAAS,IAAI,IAAI;AAAA;AAAA,EAG1B,GAAG,CAAC,QAAQ,MAAc;AAAA,IACxB,OAAO,SAAS,IAAI,IAAI;AAAA;AAAA,EAG1B,OAAO,GAAG;AAAA,IACR,OAAO,OAAO,KAAK,WAAW;AAAA;AAAA,EAGhC,wBAAwB,CAAC,QAAQ,MAAc;AAAA,IAC7C,IAAI,SAAS,IAAI,IAAI,GAAG;AAAA,MACtB,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,KAAK,MAAM,SAAS,IAAI,IAAI;AAAA,MAC9B;AAAA,IACF;AAAA,IACA;AAAA;AAEJ,CAAC;;;AFlND,eAAe;AAAA,EACb,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AACX,CAAC;AAEM,SAAS,gBAAgB,CAAC,KAAa,UAAkC;AAAA,EAC9E,iBAAiB,GAAG;AAAA,EAEpB,MAAM,iBAAiB,qBAAqB,GAAG;AAAA,EAC/C,IAAI,mBAAmB,WAAW;AAAA,IAChC,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,aAAa,WAAW;AAAA,IAC1B,MAAM,IAAI,MAAM,iBAAiB,KAAK,UAAU,GAAG,oCAAoC;AAAA,EACzF;AAAA,EAEA,MAAM,QAAQ,OAAO,aAAa,aAAa,SAAS,IAAI;AAAA,EAC5D,OAAO,iBAAiB,MAAM,eAAc,KAAK,IAAI;AAAA;AAGhD,SAAS,oBAAoB,CAAC,KAAiC;AAAA,EACpE,iBAAiB,GAAG;AAAA,EAEpB,MAAM,OAAO,QAAQ,IAAI;AAAA,EACzB,IAAI,CAAC,MAAM;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,CAAC,WAAW,IAAI,GAAG;AAAA,IACrB,MAAM,IAAI,MAAM,sDAAsD,KAAK,UAAU,IAAI,GAAG;AAAA,EAC9F;AAAA,EAEA,MAAM,YAAY,KAAK,MAAM,GAAG;AAAA,EAChC,IAAI,SAAS;AAAA,EACb,IAAI;AAAA,IACF,SAAS,SAAS,SAAS,EAAE,OAAO;AAAA,IACpC,MAAM;AAAA,EACR,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,MAAM,yBAAyB,KAAK,UAAU,GAAG,QAAQ,KAAK,UAAU,SAAS,GAAG;AAAA,EAChG;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,gBAAgB,CAAC,KAAmB;AAAA,EAClD,IAAI,IAAI,WAAW,KAAK,WAAW,GAAG,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,MAAM,GAAG,EAAE,SAAS,IAAI,GAAG;AAAA,IAC9F,MAAM,IAAI,MAAM,8BAA8B,KAAK,UAAU,GAAG,GAAG;AAAA,EACrE;AAAA;;;APtBF,IAAM,eAAe,IAAI;AACzB,IAAM,MAAO,WAA6B;AAEnC,IAAM,QAAoD,KAAK,SAAS;AACxE,IAAM,eAAwC,KAAK,eAAe;AAClE,IAAM,YAAsC,KAAK,aAAa;AAC9D,IAAM,YAIU,KAAK,SAAS;AAGrC,eAAsB,sBAAsB,CAC1C,KACA,iBACA,cACA,SACA,UAAyC,CAAC,GACzB;AAAA,EACjB,IAAI,QAAQ,gBAAgB,MAAM;AAAA,IAChC,MAAM,iBAAiB,qBAAqB,GAAG;AAAA,IAC/C,IAAI,mBAAmB,WAAW;AAAA,MAChC,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,CAAC,KAAK;AAAA,IACR,MAAM,OAAO,wBAAwB,cAAc,OAAO;AAAA,IAC1D,IAAI,WAAW,IAAI,GAAG;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IAEA,OAAQ,MAAM,oBAAoB,iBAAiB,SAAS,QAAQ,2BAA2B,KAAK,KAAM;AAAA,EAC5G;AAAA,EAIA,MAAM,UAAU,MAAM,gBAAgB,GAAG;AAAA,EACzC,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,OAAO,wBAAwB,cAAc,OAAO;AAAA,EACtD;AAAA,EAEA,OAAO,wBAAwB,QAAQ,OAAO;AAAA;AAGhD,SAAS,uBAAuB,CAAC,cAAgC,SAAyB;AAAA,EACxF,MAAM,OAAO,OAAO,iBAAiB,aAAa,aAAa,IAAI;AAAA,EACnE,OAAO,eAAc,gBAAgB,MAAM,OAAO,IAAI,IAAI,MAAM,OAAO,CAAC;AAAA;AAG1E,SAAS,uBAAuB,CAAC,YAAoB,SAAyB;AAAA,EAC5E,IAAI,WAAW,WAAW,OAAO,GAAG;AAAA,IAClC,OAAO,eAAc,UAAU;AAAA,EACjC;AAAA,EAEA,IAAI,YAAW,UAAU,GAAG;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,QAAQ,eAAc,OAAO,CAAC,GAAG,UAAU;AAAA;AAG5D,eAAe,mBAAmB,CAChC,iBACA,SACA,yBAC6B;AAAA,EAC7B,MAAM,YAAY,8BAA8B,eAAe;AAAA,EAC/D,IAAI,CAAC,WAAW;AAAA,IACd,IAAI,CAAC,yBAAyB;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,IAAI;AAAA,MACF,OAAO,yBAAyB,MAAM,gBAAgB,GAAG,SAAS,OAAO;AAAA,MACzE,MAAM;AAAA,MACN;AAAA;AAAA,EAEJ;AAAA,EAEA,IAAI;AAAA,IACF,MAAM,YAAY,IAAI,IAAI,WAAW,OAAO;AAAA,IAC5C,MAAM,SAAU,MAAa,iBAAU;AAAA,IACvC,OAAO,wBAAwB,OAAO,SAAS,UAAU,IAAI;AAAA,IAC7D,MAAM;AAAA,IACN;AAAA;AAAA;AAIJ,SAAS,6BAA6B,CAAC,iBAAsE;AAAA,EAC3G,MAAM,QAAQ,OAAO,eAAe,EAAE,MAAM,iCAAiC;AAAA,EAC7E,OAAO,QAAQ;AAAA;AAGjB,SAAS,aAAa,CAAC,UAAwC;AAAA,EAC7D,MAAM,KAAK,oBAAoB,OAAO,SAAS,QAAQ,IAAI,KAAK,IAAI,IAAI;AAAA,EACxE,OAAO,IAAI,QAAQ,CAAC,aAAY,WAAW,UAAS,EAAE,CAAC;AAAA;AAGzD,eAAe,iBAAiB,CAC9B,aACA,MACA,SACiB;AAAA,EACjB,MAAM,kBAAkB,uBAAuB,MAAM,eAAc,WAAW,IAAI;AAAA,EAElF,IAAI,SAAS,YAAY;AAAA,IACvB,MAAM,MAAM,QAAQ,eAAe,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAC3D;AAAA,EAEA,MAAM,QACJ,OAAO,SAAS,WAAW,aAAa,OAAO,IAAI,IAAI,IAAI,WAAW,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA,EAErH,MAAM,cAAc,iBAAiB,OAAO,EAAE,MAAM,SAAS,KAAK,CAAC;AAAA,EAEnE,OAAO,MAAM;AAAA;;;AU1If,uBAAS;AACT,yBAAS;;;ACTF,IAAM,yBAAqC,CAAC,KAAK,KAAK,GAAG;AACzD,IAAM,yBAAqC,CAAC,GAAG,GAAG,CAAC;AAE1D,IAAM,aAAa;AACnB,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AAEvB,IAAM,aAAoC;AAAA,EACxC,CAAC,GAAM,GAAM,CAAI;AAAA,EACjB,CAAC,KAAM,GAAM,CAAI;AAAA,EACjB,CAAC,GAAM,KAAM,CAAI;AAAA,EACjB,CAAC,KAAM,KAAM,CAAI;AAAA,EACjB,CAAC,GAAM,GAAM,GAAI;AAAA,EACjB,CAAC,KAAM,GAAM,GAAI;AAAA,EACjB,CAAC,GAAM,KAAM,GAAI;AAAA,EACjB,CAAC,KAAM,KAAM,GAAI;AAAA,EACjB,CAAC,KAAM,KAAM,GAAI;AAAA,EACjB,CAAC,KAAM,GAAM,CAAI;AAAA,EACjB,CAAC,GAAM,KAAM,CAAI;AAAA,EACjB,CAAC,KAAM,KAAM,CAAI;AAAA,EACjB,CAAC,GAAM,GAAM,GAAI;AAAA,EACjB,CAAC,KAAM,GAAM,GAAI;AAAA,EACjB,CAAC,GAAM,KAAM,GAAI;AAAA,EACjB,CAAC,KAAM,KAAM,GAAI;AACnB;AAEA,IAAM,uBAAuB,CAAC,GAAG,IAAI,KAAK,KAAK,KAAK,GAAG;AAMvD,SAAS,QAAQ,CAAC,QAAgB,OAAO,GAAW;AAAA,EAClD,QAAS,OAAO,OAAU,SAAS,QAAS,OAAQ;AAAA;AAGtD,SAAS,IAAI,CAAC,OAAuB;AAAA,EACnC,OAAO,KAAK,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,OAAO,SAAS,KAAK,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG;AAAA;AAGtF,SAAS,MAAM,CAAC,OAAuB;AAAA,EACrC,OAAO,KAAK,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,SAAS,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;AAAA;AAGlF,SAAS,SAAS,CAAC,GAAW,GAAW,GAAW,GAAW,MAA2B;AAAA,EACxF,OAAO,IAAI,YAAY;AAAA,IACpB,OAAO,CAAC,IAAI,OAAW,SAAS,IAAK,QAAS;AAAA,IAC9C,OAAO,CAAC,IAAI,OAAW,SAAS,IAAK,QAAS;AAAA,IAC9C,OAAO,CAAC,IAAI,OAAW,SAAS,KAAM,QAAS;AAAA,IAC/C,OAAO,CAAC,IAAI,OAAW,SAAS,KAAM,QAAS;AAAA,EAClD,CAAC;AAAA;AAGH,SAAS,mBAAmB,CAAC,OAAqB;AAAA,EAChD,OAAO,GAAG,GAAG,KAAK,kBAAkB,KAAK;AAAA,EACzC,OAAO,KAAK,SAAS,GAAG,GAAG,CAAC;AAAA;AAGvB,SAAS,0BAA0B,CAAC,OAAuB;AAAA,EAChE,IAAI,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,KAAK,QAAQ,KAAK;AAAA,IACxD,MAAM,IAAI,WAAW,6DAA6D,OAAO;AAAA,EAC3F;AAAA,EAEA,OAAO;AAAA;AAGF,SAAS,iBAAiB,CAAC,OAA2B;AAAA,EAC3D,MAAM,kBAAkB,2BAA2B,KAAK;AAAA,EAExD,IAAI,kBAAkB,WAAW,QAAQ;AAAA,IACvC,OAAO,WAAW;AAAA,EACpB;AAAA,EAEA,IAAI,kBAAkB,KAAK;AAAA,IACzB,MAAM,YAAY,kBAAkB;AAAA,IACpC,MAAM,IAAI,KAAK,MAAM,YAAY,EAAE;AAAA,IACnC,MAAM,IAAI,KAAK,MAAM,YAAY,CAAC,IAAI;AAAA,IACtC,MAAM,IAAI,YAAY;AAAA,IACtB,OAAO,CAAC,qBAAqB,IAAI,qBAAqB,IAAI,qBAAqB,EAAE;AAAA,EACnF;AAAA,EAEA,MAAM,QAAQ,KAAK,kBAAkB,OAAO;AAAA,EAC5C,OAAO,CAAC,OAAO,OAAO,KAAK;AAAA;AAAA;AAGtB,MAAM,KAAK;AAAA,EAChB;AAAA,EAEA,WAAW,CAAC,QAAqB;AAAA,IAC/B,KAAK,SAAS,IAAI,YAAY,CAAC;AAAA,IAC/B,KAAK,OAAO,IAAI,OAAO,SAAS,GAAG,CAAC,CAAC;AAAA;AAAA,SAGhC,SAAS,CAAC,OAA0B;AAAA,IACzC,OAAO,IAAI,KAAK,KAAK;AAAA;AAAA,SAGhB,UAAU,CAAC,GAAW,GAAW,GAAW,IAAY,GAAS;AAAA,IACtE,OAAO,IAAI,KAAK,UAAU,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,UAAU,CAAC,CAAC;AAAA;AAAA,SAG9E,KAAK,CAAC,MAAkB;AAAA,IAC7B,OAAO,IAAI,KAAK,KAAK,MAAM;AAAA;AAAA,SAGtB,QAAQ,CAAC,GAAW,GAAW,GAAW,IAAY,KAAW;AAAA,IACtE,OAAO,IAAI,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,SAAS,UAAU,CAAC,CAAC;AAAA;AAAA,SAGtD,OAAO,CAAC,KAAmB;AAAA,IAChC,OAAO,SAAS,GAAG;AAAA;AAAA,SAGd,SAAS,CAAC,OAAe,UAA6B;AAAA,IAC3D,MAAM,aAAa,2BAA2B,KAAK;AAAA,IACnD,MAAM,OAAO,WAAW,WAAW,QAAQ,IAAI,oBAAoB,UAAU;AAAA,IAC7E,OAAO,GAAG,GAAG,GAAG,KAAK,KAAK,OAAO;AAAA,IACjC,OAAO,IAAI,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,SAAS,gBAAgB,UAAU,CAAC,CAAC;AAAA;AAAA,SAGtE,iBAAiB,CAAC,UAA6B;AAAA,IACpD,MAAM,OAAO,WAAW,WAAW,QAAQ,IAAI,KAAK,SAAS,GAAG,sBAAsB;AAAA,IACtF,OAAO,GAAG,GAAG,GAAG,KAAK,KAAK,OAAO;AAAA,IACjC,OAAO,IAAI,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,SAAS,cAAc,CAAC,CAAC;AAAA;AAAA,SAG1D,iBAAiB,CAAC,UAA6B;AAAA,IACpD,MAAM,OAAO,WAAW,WAAW,QAAQ,IAAI,KAAK,SAAS,GAAG,sBAAsB;AAAA,IACtF,OAAO,GAAG,GAAG,GAAG,KAAK,KAAK,OAAO;AAAA,IACjC,OAAO,IAAI,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,SAAS,cAAc,CAAC,CAAC;AAAA;AAAA,EAGjE,MAAM,GAAqC;AAAA,IACzC,OAAO,CAAC,KAAK,OAAO,KAAK,KAAM,KAAK,OAAO,KAAK,KAAM,KAAK,OAAO,KAAK,KAAM,KAAK,OAAO,KAAK,GAAI;AAAA;AAAA,MAGhG,CAAC,GAAW;AAAA,IACd,QAAQ,KAAK,OAAO,KAAK,OAAQ;AAAA;AAAA,MAG/B,CAAC,CAAC,OAAe;AAAA,IACnB,KAAK,OAAO,KAAM,KAAK,OAAO,KAAK,QAAU,KAAK,KAAK;AAAA;AAAA,MAGrD,CAAC,GAAW;AAAA,IACd,QAAQ,KAAK,OAAO,KAAK,OAAQ;AAAA;AAAA,MAG/B,CAAC,CAAC,OAAe;AAAA,IACnB,KAAK,OAAO,KAAM,KAAK,OAAO,KAAK,QAAU,KAAK,KAAK;AAAA;AAAA,MAGrD,CAAC,GAAW;AAAA,IACd,QAAQ,KAAK,OAAO,KAAK,OAAQ;AAAA;AAAA,MAG/B,CAAC,CAAC,OAAe;AAAA,IACnB,KAAK,OAAO,KAAM,KAAK,OAAO,KAAK,QAAU,KAAK,KAAK;AAAA;AAAA,MAGrD,CAAC,GAAW;AAAA,IACd,QAAQ,KAAK,OAAO,KAAK,OAAQ;AAAA;AAAA,MAG/B,CAAC,CAAC,OAAe;AAAA,IACnB,KAAK,OAAO,KAAM,KAAK,OAAO,KAAK,QAAU,KAAK,KAAK;AAAA;AAAA,MAGrD,IAAI,GAAW;AAAA,IACjB,QACI,KAAK,OAAO,OAAO,IACjB,KAAK,OAAO,OAAO,KAAM,IACzB,KAAK,OAAO,OAAO,KAAM,KACzB,KAAK,OAAO,OAAO,KAAM,QAC7B;AAAA;AAAA,MAIA,MAAM,GAAgB;AAAA,IACxB,QAAS,KAAK,SAAS,IAAK;AAAA,WACrB;AAAA,QACH,OAAO;AAAA,WACJ;AAAA,QACH,OAAO;AAAA;AAAA,QAEP,OAAO;AAAA;AAAA;AAAA,MAIT,IAAI,GAAW;AAAA,IACjB,OAAO,KAAK,OAAO;AAAA;AAAA,EAGrB,GAAM,CAAC,IAAwC;AAAA,IAC7C,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAAA;AAAA,EAGxD,QAAQ,GAAW;AAAA,IACjB,OAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,EAAE,QAAQ,CAAC;AAAA;AAAA,EAGnG,MAAM,CAAC,OAAuB;AAAA,IAC5B,IAAI,CAAC;AAAA,MAAO,OAAO;AAAA,IACnB,OACE,KAAK,OAAO,OAAO,MAAM,OAAO,MAChC,KAAK,OAAO,OAAO,MAAM,OAAO,MAChC,KAAK,OAAO,OAAO,MAAM,OAAO,MAChC,KAAK,OAAO,OAAO,MAAM,OAAO;AAAA;AAGtC;AAEO,SAAS,mBAAmB,CAAC,OAAmE;AAAA,EACrG,IAAI,SAAS;AAAA,IAAM,OAAO;AAAA,EAC1B,OAAO,EAAE,MAAM,WAAW,KAAK,EAAE;AAAA;AAG5B,SAAS,QAAQ,CAAC,KAAmB;AAAA,EAC1C,MAAM,IAAI,QAAQ,MAAM,EAAE;AAAA,EAE1B,IAAI,IAAI,WAAW,GAAG;AAAA,IACpB,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AAAA,EACzD,EAAO,SAAI,IAAI,WAAW,GAAG;AAAA,IAC3B,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AAAA,EAC3E;AAAA,EAEA,IAAI,CAAC,mBAAmB,KAAK,GAAG,KAAK,CAAC,mBAAmB,KAAK,GAAG,GAAG;AAAA,IAClE,QAAQ,KAAK,sBAAsB,4BAA4B;AAAA,IAC/D,OAAO,KAAK,WAAW,GAAG,GAAG,GAAG,CAAC;AAAA,EACnC;AAAA,EAEA,MAAM,IAAI,SAAS,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE;AAAA,EAC1C,MAAM,IAAI,SAAS,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE;AAAA,EAC1C,MAAM,IAAI,SAAS,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE;AAAA,EAC1C,MAAM,IAAI,IAAI,WAAW,IAAI,SAAS,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE,IAAI;AAAA,EAEjE,OAAO,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;AAAA;AAG1B,SAAS,QAAQ,CAAC,KAAmB;AAAA,EAC1C,OAAO,GAAG,GAAG,GAAG,KAAK,IAAI,OAAO;AAAA,EAChC,MAAM,aAAa,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,EACtD,OAAO,MAAM,WAAW,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA;AAGtE,SAAS,QAAQ,CAAC,GAAW,GAAW,GAAiB;AAAA,EAC9D,IAAI,IAAI,GACN,IAAI,GACJ,IAAI;AAAA,EAEN,MAAM,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI;AAAA,EAC/B,MAAM,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,EAAE;AAAA,EACpC,MAAM,IAAI,KAAK,IAAI;AAAA,EACnB,MAAM,IAAI,KAAK,IAAI,IAAI;AAAA,EACvB,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK;AAAA,EAE7B,QAAQ;AAAA,SACD;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,SACG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,SACG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,SACG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,SACG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,SACG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA;AAAA,EAGJ,OAAO,KAAK,WAAW,GAAG,GAAG,GAAG,CAAC;AAAA;AAGnC,IAAM,kBAA0C;AAAA,EAC9C,OAAO;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,WAAW;AAAA,EACX,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AACf;AAEO,SAAS,UAAU,CAAC,OAAyB;AAAA,EAClD,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,MAAM,aAAa,MAAM,YAAY;AAAA,IAErC,IAAI,eAAe,eAAe;AAAA,MAChC,OAAO,KAAK,WAAW,GAAG,GAAG,GAAG,CAAC;AAAA,IACnC;AAAA,IAEA,IAAI,gBAAgB,aAAa;AAAA,MAC/B,OAAO,SAAS,gBAAgB,WAAW;AAAA,IAC7C;AAAA,IAEA,OAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EACA,OAAO;AAAA;;;AClUT,IAAM,sBAA8C,CAAC,UAAU,UAAU,WAAW,OAAO;AAEpF,SAAS,kBAAkB,CAAC,OAAsC;AAAA,EACvE,OAAO,OAAO,UAAU,YAAY,oBAAoB,SAAS,KAAoB;AAAA;AAGhF,SAAS,gBAAgB,CAAC,OAAgB,WAAwB,UAAuB;AAAA,EAC9F,IAAI,mBAAmB,KAAK,GAAG;AAAA,IAC7B,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,IACzC,QAAQ,KACN,wBAAwB,4BAA4B,gCAAgC,oBAAoB,KAAK,IAAI,GACnH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,cAAqD;AAAA,EAChE,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAiCO,SAAS,kBAAkB,CAAC,OAAmD;AAAA,EACpF,MAAM,SAAwB,CAAC;AAAA,EAC/B,IAAI,MAAM;AAAA,IAAK,OAAO,KAAK,KAAK;AAAA,EAChC,IAAI,MAAM;AAAA,IAAO,OAAO,KAAK,OAAO;AAAA,EACpC,IAAI,MAAM;AAAA,IAAQ,OAAO,KAAK,QAAQ;AAAA,EACtC,IAAI,MAAM;AAAA,IAAM,OAAO,KAAK,MAAM;AAAA,EAClC,OAAO,OAAO,SAAS,IAAI,SAAS;AAAA;AAG/B,SAAS,cAAc,CAAC,QAAoD;AAAA,EACjF,OAAO,WAAW,OACd,EAAE,KAAK,MAAM,OAAO,MAAM,QAAQ,MAAM,MAAM,KAAK,IACnD,MAAM,QAAQ,MAAM,IAClB;AAAA,IACE,KAAK,OAAO,SAAS,KAAK;AAAA,IAC1B,OAAO,OAAO,SAAS,OAAO;AAAA,IAC9B,QAAQ,OAAO,SAAS,QAAQ;AAAA,IAChC,MAAM,OAAO,SAAS,MAAM;AAAA,EAC9B,IACA,EAAE,KAAK,OAAO,OAAO,OAAO,QAAQ,OAAO,MAAM,MAAM;AAAA;AAIxD,SAAS,kBAAkB,CAAC,OAAsC;AAAA,EACvE,MAAM,QAAQ,IAAI,YAAY,EAAE;AAAA,EAChC,MAAM,KAAK,MAAM,QAAQ,YAAY,CAAC;AAAA,EACtC,MAAM,KAAK,MAAM,SAAS,YAAY,CAAC;AAAA,EACvC,MAAM,KAAK,MAAM,WAAW,YAAY,CAAC;AAAA,EACzC,MAAM,KAAK,MAAM,YAAY,YAAY,CAAC;AAAA,EAC1C,MAAM,KAAK,MAAM,WAAW,YAAY,CAAC;AAAA,EACzC,MAAM,KAAK,MAAM,SAAS,YAAY,CAAC;AAAA,EACvC,MAAM,KAAK,MAAM,KAAK,YAAY,CAAC;AAAA,EACnC,MAAM,KAAK,MAAM,QAAQ,YAAY,CAAC;AAAA,EACtC,MAAM,KAAK,MAAM,MAAM,YAAY,CAAC;AAAA,EACpC,MAAM,KAAK,MAAM,OAAO,YAAY,CAAC;AAAA,EACrC,MAAM,MAAM,MAAM,MAAM,YAAY,CAAC;AAAA,EACrC,OAAO;AAAA;AAIF,IAAM,mBAAqD;AAAA,EAChE,QAAQ,mBAAmB,YAAY,MAAM;AAAA,EAC7C,QAAQ,mBAAmB,YAAY,MAAM;AAAA,EAC7C,SAAS,mBAAmB,YAAY,OAAO;AAAA,EAC/C,OAAO,mBAAmB,YAAY,KAAK;AAC7C;;ACzKA;AAAA;AAIO,MAAM,SAA8B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEQ,oBAA6B;AAAA,EAC7B,sBAA+B;AAAA,EAEvC,WAAW,CAAC,KAAgB;AAAA,IAC1B,KAAK,OAAO,IAAI;AAAA,IAChB,KAAK,OAAO,IAAI;AAAA,IAChB,KAAK,OAAO,IAAI;AAAA,IAChB,KAAK,QAAQ,IAAI;AAAA,IACjB,KAAK,SAAS,IAAI;AAAA,IAClB,KAAK,WAAW,IAAI;AAAA,IACpB,KAAK,SAAS,IAAI;AAAA,IAClB,KAAK,MAAM,IAAI;AAAA,IACf,KAAK,YAAY,IAAI;AAAA,IACrB,KAAK,SAAS,IAAI;AAAA,IAClB,KAAK,OAAO,IAAI;AAAA,IAChB,KAAK,QAAQ,IAAI;AAAA,IACjB,KAAK,QAAQ,IAAI;AAAA,IACjB,KAAK,WAAW,IAAI;AAAA,IACpB,KAAK,UAAU,IAAI;AAAA,IACnB,KAAK,WAAW,IAAI;AAAA,IACpB,KAAK,WAAW,IAAI;AAAA;AAAA,MAGlB,gBAAgB,GAAY;AAAA,IAC9B,OAAO,KAAK;AAAA;AAAA,MAGV,kBAAkB,GAAY;AAAA,IAChC,OAAO,KAAK;AAAA;AAAA,EAGd,cAAc,GAAS;AAAA,IACrB,KAAK,oBAAoB;AAAA;AAAA,EAG3B,eAAe,GAAS;AAAA,IACtB,KAAK,sBAAsB;AAAA;AAE/B;AAAA;AAEO,MAAM,WAAW;AAAA,EACtB,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACQ,oBAA6B;AAAA,EAC7B,sBAA+B;AAAA,EAEvC,WAAW,CAAC,OAAmB,UAA0B;AAAA,IACvD,KAAK,QAAQ;AAAA,IACb,KAAK,WAAW;AAAA;AAAA,MAGd,gBAAgB,GAAY;AAAA,IAC9B,OAAO,KAAK;AAAA;AAAA,MAGV,kBAAkB,GAAY;AAAA,IAChC,OAAO,KAAK;AAAA;AAAA,EAGd,cAAc,GAAS;AAAA,IACrB,KAAK,oBAAoB;AAAA;AAAA,EAG3B,eAAe,GAAS;AAAA,IACtB,KAAK,sBAAsB;AAAA;AAE/B;AAAA;AAQO,MAAM,mBAAmB,aAAiC;AAAA,EACxD,gBAAgB,CAAC,WAA+B;AAAA,IACrD,IAAI;AAAA,MACF,QAAQ,UAAU;AAAA,aACX;AAAA,UACH,KAAK,KAAK,YAAY,IAAI,SAAS,SAAS,CAAC;AAAA,UAC7C;AAAA,aACG;AAAA,UACH,KAAK,KAAK,cAAc,IAAI,SAAS,SAAS,CAAC;AAAA,UAC/C;AAAA;AAAA,UAEA,KAAK,KAAK,YAAY,IAAI,SAAS,SAAS,CAAC;AAAA,UAC7C;AAAA;AAAA,MAEJ,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,6CAA6C,KAAK;AAAA,MAChE,OAAO;AAAA;AAAA,IAGT,OAAO;AAAA;AAAA,EAGF,YAAY,CAAC,OAAmB,UAAgC;AAAA,IACrE,IAAI;AAAA,MACF,KAAK,KAAK,SAAS,IAAI,WAAW,OAAO,QAAQ,CAAC;AAAA,MAClD,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,wCAAwC,KAAK;AAAA;AAAA;AAGjE;AAAA;AAMO,MAAM,2BAA2B,WAAW;AAAA,EACzC,qBAAmE,IAAI;AAAA,EAExE,IAAwC,CAAC,UAAa,MAAsC;AAAA,IACjG,OAAO,KAAK,iBAAiB,OAAO,GAAG,IAAI;AAAA;AAAA,EAGrC,gBAAoD,CAAC,UAAa,MAAsC;AAAA,IAC9G,IAAI,qBAAqB;AAAA,IAKzB,MAAM,kBAAkB,KAAK,UAAU,KAAY;AAAA,IACnD,IAAI,gBAAgB,SAAS,GAAG;AAAA,MAC9B,qBAAqB;AAAA,MAErB,WAAW,YAAY,iBAAiB;AAAA,QACtC,IAAI;AAAA,UACF,SAAS,GAAG,IAAI;AAAA,UAChB,OAAO,OAAO;AAAA,UACd,QAAQ,MAAM,gCAAgC,kBAAkB,KAAK;AAAA;AAAA,QAIvE,IAAI,UAAU,cAAc,UAAU,gBAAgB,UAAU,SAAS;AAAA,UACvE,MAAM,WAAW,KAAK;AAAA,UACtB,IAAI,SAAS,oBAAoB;AAAA,YAC/B,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,gBAAgB,KAAK,mBAAmB,IAAI,KAAK;AAAA,IAGvD,MAAM,qBAAqB,iBAAiB,cAAc,OAAO,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC;AAAA,IAC3F,IAAI,yBAAyB;AAAA,IAE7B,IAAI,iBAAiB,cAAc,OAAO,GAAG;AAAA,MAC3C,yBAAyB;AAAA,MAEzB,IAAI,UAAU,cAAc,UAAU,gBAAgB,UAAU,SAAS;AAAA,QACvE,MAAM,WAAW,KAAK;AAAA,QACtB,IAAI,SAAS;AAAA,UAAkB,OAAO,sBAAsB;AAAA,QAC5D,IAAI,SAAS;AAAA,UAAoB,OAAO,sBAAsB;AAAA,MAChE;AAAA,MAEA,WAAW,WAAW,oBAAoB;AAAA,QACxC,IAAI;AAAA,UACF,QAAQ,GAAG,IAAI;AAAA,UACf,OAAO,OAAO;AAAA,UACd,QAAQ,MAAM,oCAAoC,kBAAkB,KAAK;AAAA;AAAA,QAI3E,IAAI,UAAU,cAAc,UAAU,gBAAgB,UAAU,SAAS;AAAA,UACvE,MAAM,WAAW,KAAK;AAAA,UACtB,IAAI,SAAS,oBAAoB;AAAA,YAC/B,OAAO,sBAAsB;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,OAAO,sBAAsB;AAAA;AAAA,EAGxB,UAA8C,CACnD,OACA,SACM;AAAA,IACN,IAAI,CAAC,KAAK,mBAAmB,IAAI,KAAK,GAAG;AAAA,MACvC,KAAK,mBAAmB,IAAI,OAAO,IAAI,GAAK;AAAA,IAC9C;AAAA,IACA,KAAK,mBAAmB,IAAI,KAAK,EAAG,IAAI,OAAO;AAAA;AAAA,EAG1C,WAA+C,CACpD,OACA,SACM;AAAA,IACN,MAAM,WAAW,KAAK,mBAAmB,IAAI,KAAK;AAAA,IAClD,IAAI,UAAU;AAAA,MACZ,SAAS,OAAO,OAAO;AAAA,IACzB;AAAA;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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AA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAGP,OAAO;AA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",
|
|
62
|
+
"debugId": "8AC4CFB5CFC8941664756E2164756E21",
|
|
63
63
|
"names": []
|
|
64
64
|
}
|