@opentui/core 0.4.5 → 0.5.0

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.
Files changed (43) hide show
  1. package/README.md +4 -4
  2. package/Renderable.d.ts +3 -0
  3. package/audio.d.ts +202 -1
  4. package/buffer.d.ts +3 -0
  5. package/{chunk-bun-t2myhmwd.js → chunk-bun-ctxxvhwz.js} +1181 -147
  6. package/chunk-bun-ctxxvhwz.js.map +62 -0
  7. package/{chunk-bun-tkm837n2.js → chunk-bun-v3e63tzw.js} +147 -37
  8. package/chunk-bun-v3e63tzw.js.map +32 -0
  9. package/{chunk-node-51kpf0mz.js → chunk-node-1j69hr31.js} +147 -37
  10. package/chunk-node-1j69hr31.js.map +32 -0
  11. package/{chunk-node-q0cwyvm9.js → chunk-node-savhj5rp.js} +1181 -147
  12. package/chunk-node-savhj5rp.js.map +61 -0
  13. package/image.d.ts +105 -0
  14. package/index.bun.js +2131 -89
  15. package/index.bun.js.map +6 -4
  16. package/index.d.ts +1 -0
  17. package/index.node.js +2131 -89
  18. package/index.node.js.map +7 -3
  19. package/lib/env.d.ts +1 -0
  20. package/lib/stdin-parser.d.ts +5 -0
  21. package/node-assets.js +5 -2
  22. package/node-assets.js.map +3 -3
  23. package/package.json +10 -10
  24. package/parser.worker.js +5 -2
  25. package/parser.worker.js.map +3 -3
  26. package/platform/ffi.d.ts +2 -0
  27. package/renderables/Image.d.ts +44 -0
  28. package/renderables/index.d.ts +1 -0
  29. package/renderer.d.ts +14 -0
  30. package/testing.bun.js +4 -3
  31. package/testing.bun.js.map +3 -3
  32. package/testing.js +4 -3
  33. package/testing.js.map +3 -3
  34. package/text-buffer-view.d.ts +2 -5
  35. package/types.d.ts +8 -0
  36. package/yoga.bun.js +1 -1
  37. package/yoga.js +1 -1
  38. package/zig-structs.d.ts +45 -24
  39. package/zig.d.ts +70 -7
  40. package/chunk-bun-t2myhmwd.js.map +0 -62
  41. package/chunk-bun-tkm837n2.js.map +0 -32
  42. package/chunk-node-51kpf0mz.js.map +0 -32
  43. package/chunk-node-q0cwyvm9.js.map +0 -61
package/platform/ffi.d.ts CHANGED
@@ -118,8 +118,10 @@ export declare const POINTER_NEGATIVE = "Pointer must be non-negative";
118
118
  export declare const POINTER_OFFSET_NEGATIVE = "Pointer offset must be non-negative";
119
119
  export declare const POINTER_OFFSET_UNSAFE = "Pointer offset must be a safe integer";
120
120
  export declare const POINTER_UNSAFE = "Pointer exceeds safe integer range";
121
+ export declare const usesBunFFI: boolean;
121
122
  export declare function toPointer(value: PointerInput): Pointer;
122
123
  export declare function ffiBool(value: boolean): 0 | 1;
124
+ export declare function trimNodeFFIOutputBytes(buffer: Uint8Array, length: number): Uint8Array;
123
125
  export declare function createBunBackend(bun: BunFfiBackend): FfiBackend;
124
126
  export declare function createNodeBackend(nodeFfi: NodeFfiBackend): FfiBackend;
125
127
  export declare const dlopen: <Fns extends Record<string, FFIFunction>>(path: string | URL, symbols: Fns) => Library<Fns>;
@@ -0,0 +1,44 @@
1
+ import { Renderable, type RenderableOptions } from "../Renderable.js";
2
+ import { NativeImage, type ImageSource } from "../image.js";
3
+ import type { OptimizedBuffer } from "../buffer.js";
4
+ import type { ImageRenderProtocol, RenderContext, TerminalCapabilities } from "../types.js";
5
+ export type ImageFit = "fit" | "cover" | "fill";
6
+ export interface ImageRenderableOptions extends RenderableOptions<ImageRenderable> {
7
+ source?: ImageSource;
8
+ fit?: ImageFit;
9
+ protocol?: ImageRenderProtocol;
10
+ onLoad?: (image: NativeImage) => void;
11
+ onError?: (error: unknown) => void;
12
+ }
13
+ export declare function resolveImageRenderProtocol(requested: ImageRenderProtocol, capabilities: TerminalCapabilities | null, hasResolution: boolean): Exclude<ImageRenderProtocol, "auto">;
14
+ export declare class ImageRenderable extends Renderable {
15
+ private _source;
16
+ private _image;
17
+ private _loadError;
18
+ private _loadController;
19
+ onLoad?: (image: NativeImage) => void;
20
+ onError?: (error: unknown) => void;
21
+ private _fit;
22
+ private _protocol;
23
+ loadPromise: Promise<void> | null;
24
+ constructor(ctx: RenderContext, options: ImageRenderableOptions);
25
+ get source(): ImageSource | undefined;
26
+ set source(source: ImageSource | undefined);
27
+ get image(): NativeImage | null;
28
+ get fit(): ImageFit;
29
+ set fit(value: ImageFit | null | undefined);
30
+ get protocol(): ImageRenderProtocol;
31
+ set protocol(value: ImageRenderProtocol | null | undefined);
32
+ get effectiveProtocol(): Exclude<ImageRenderProtocol, "auto">;
33
+ get cellAspectRatio(): number;
34
+ getFittedSize(targetWidth: number, targetHeight: number, cellAspectRatio?: number, sourceWidth?: number, sourceHeight?: number): {
35
+ width: number;
36
+ height: number;
37
+ };
38
+ get loading(): boolean;
39
+ get loadError(): unknown;
40
+ render(buffer: OptimizedBuffer, deltaTime: number): void;
41
+ protected renderSelf(buffer: OptimizedBuffer): void;
42
+ private load;
43
+ protected destroySelf(): void;
44
+ }
@@ -8,6 +8,7 @@ export * from "./Diff.js";
8
8
  export * from "./EditBufferRenderable.js";
9
9
  export * from "./FrameBuffer.js";
10
10
  export * from "./Input.js";
11
+ export * from "./Image.js";
11
12
  export * from "./LineNumberRenderable.js";
12
13
  export * from "./Markdown.js";
13
14
  export * from "./ScrollBar.js";
package/renderer.d.ts CHANGED
@@ -72,6 +72,10 @@ export interface CliRendererStats extends NativeRenderStats {
72
72
  export interface CliRendererFrameEvent {
73
73
  frameId: number;
74
74
  }
75
+ export interface CliRendererErrorEvent {
76
+ error: Error;
77
+ renderable: Renderable | undefined;
78
+ }
75
79
  export interface RendererSchedulerState {
76
80
  isRunning: boolean;
77
81
  isRendering: boolean;
@@ -150,6 +154,7 @@ export declare class MouseEvent {
150
154
  };
151
155
  readonly scroll?: ScrollInfo;
152
156
  readonly target: Renderable | null;
157
+ readonly currentTarget: Renderable | null;
153
158
  readonly isDragging?: boolean;
154
159
  private _propagationStopped;
155
160
  private _defaultPrevented;
@@ -162,6 +167,10 @@ export declare class MouseEvent {
162
167
  stopPropagation(): void;
163
168
  preventDefault(): void;
164
169
  }
170
+ export interface CliRendererHandlerErrorEvent {
171
+ error: unknown;
172
+ event: MouseEvent;
173
+ }
165
174
  export declare enum MouseButton {
166
175
  LEFT = 0,
167
176
  MIDDLE = 1,
@@ -178,6 +187,8 @@ export declare function createCliRenderer(config?: CliRendererConfig): Promise<C
178
187
  export declare enum CliRenderEvents {
179
188
  RESIZE = "resize",
180
189
  FRAME = "frame",
190
+ RENDER_ERROR = "render:error",
191
+ HANDLER_ERROR = "handler:error",
181
192
  EXTERNAL_OUTPUT = "external_output",
182
193
  FOCUS = "focus",
183
194
  BLUR = "blur",
@@ -232,6 +243,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
232
243
  private postProcessFns;
233
244
  private backgroundColor;
234
245
  private waitingForPixelResolution;
246
+ private pixelResolutionRequeryPending;
235
247
  private readonly clock;
236
248
  private rendering;
237
249
  private renderingNative;
@@ -323,6 +335,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
323
335
  private idleResolvers;
324
336
  private _debugInputs;
325
337
  private _debugModeEnabled;
338
+ private readonly stdinLogPath;
326
339
  private handleError;
327
340
  private dumpOutputCache;
328
341
  private exitHandler;
@@ -483,6 +496,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
483
496
  private handleStdinParserFailure;
484
497
  private setupInput;
485
498
  private dispatchMouseEvent;
499
+ private sendMouseEvent;
486
500
  private processSingleMouseEvent;
487
501
  /**
488
502
  * Recheck hover state after hit grid changes.
package/testing.bun.js CHANGED
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  ANSI,
4
4
  CliRenderer
5
- } from "./chunk-bun-tkm837n2.js";
5
+ } from "./chunk-bun-v3e63tzw.js";
6
6
  import {
7
7
  SystemClock,
8
8
  TreeSitterClient
9
- } from "./chunk-bun-t2myhmwd.js";
9
+ } from "./chunk-bun-ctxxvhwz.js";
10
10
 
11
11
  // src/testing/mock-keys.ts
12
12
  import { Buffer as Buffer2 } from "buffer";
@@ -798,6 +798,7 @@ function createTerminalCapabilities(overrides = {}) {
798
798
  explicit_cursor_positioning: false,
799
799
  remote: false,
800
800
  multiplexer: "none",
801
+ image_protocol: "auto",
801
802
  ...overrides,
802
803
  terminal: {
803
804
  name: "",
@@ -1001,5 +1002,5 @@ export {
1001
1002
  KeyCodes
1002
1003
  };
1003
1004
 
1004
- //# debugId=0357928BEE71C0AA64756E2164756E21
1005
+ //# debugId=4A66EEF4E0EE595664756E2164756E21
1005
1006
  //# sourceMappingURL=testing.bun.js.map
@@ -7,12 +7,12 @@
7
7
  "import { Readable, Writable } from \"stream\"\n\nexport class TestWriteStream extends Writable {\n public readonly isTTY = true\n public readonly columns: number\n public readonly rows: number\n\n constructor(columns = 80, rows = 24) {\n super()\n this.columns = columns\n this.rows = rows\n }\n\n override _write(_chunk: any, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n callback()\n }\n\n getColorDepth(): number {\n return 24\n }\n}\n\nexport type TestStdout = TestWriteStream & NodeJS.WriteStream\n\nexport function createTestStdin(): NodeJS.ReadStream {\n return new Readable({ read() {} }) as NodeJS.ReadStream\n}\n\nexport function createTestStdout(columns = 80, rows = 24): NodeJS.WriteStream {\n return new TestWriteStream(columns, rows) as TestStdout\n}\n",
8
8
  "import {\n CliRenderer,\n CliRenderEvents,\n type CliRendererConfig,\n type CliRendererExternalOutputEvent,\n type CliRendererFrameEvent,\n} from \"../renderer.js\"\nimport type { NativeSpanFeed } from \"../NativeSpanFeed.js\"\nimport type { NativeRenderStats } from \"../zig.js\"\nimport { createMockKeys } from \"./mock-keys.js\"\nimport { createMockMouse } from \"./mock-mouse.js\"\nimport { createTestStdin, createTestStdout } from \"./test-streams.js\"\nimport type { CapturedFrame } from \"../types.js\"\n\nexport interface TestRendererOptions extends CliRendererConfig {\n width?: number\n height?: number\n kittyKeyboard?: boolean\n otherModifiersMode?: boolean\n}\nexport type TestRenderer = CliRenderer\nexport type MockInput = ReturnType<typeof createMockKeys>\nexport type MockMouse = ReturnType<typeof createMockMouse>\n\ntype RendererFeedAccess = {\n _feed?: NativeSpanFeed | null\n}\n\nexport interface TestFlushOptions {\n maxPasses?: number\n}\n\nexport interface TestVisualIdleOptions {\n quietFrames?: number\n maxFrames?: number\n}\n\nexport interface TestWaitForOptions {\n maxPasses?: number\n}\n\nexport interface TestExternalOutputCommit {\n text: string\n rows: string[]\n width: number\n height: number\n rowColumns: number\n startOnNewLine: boolean\n trailingNewline: boolean\n}\n\nexport interface TestExternalOutput {\n take(): TestExternalOutputCommit[]\n takeText(): string\n clear(): void\n}\n\nexport interface TestRendererSetup {\n renderer: TestRenderer\n mockInput: MockInput\n mockMouse: MockMouse\n renderOnce: () => Promise<void>\n flush: (options?: TestFlushOptions) => Promise<void>\n waitFor: (predicate: () => boolean | Promise<boolean>, options?: TestWaitForOptions) => Promise<void>\n waitForFrame: (\n predicate: (frame: string) => boolean | Promise<boolean>,\n options?: TestWaitForOptions,\n ) => Promise<string>\n waitForVisualIdle: (options?: TestVisualIdleOptions) => Promise<void>\n externalOutput: TestExternalOutput\n getNativeStats: () => NativeRenderStats\n captureCharFrame: () => string\n captureSpans: () => CapturedFrame\n resize: (width: number, height: number) => void\n}\n\nconst decoder = new TextDecoder()\nconst DEFAULT_MAX_PASSES = 20\nconst DEFAULT_MAX_VISUAL_IDLE_FRAMES = 20\nconst DEFAULT_QUIET_FRAMES = 1\n\nasync function drainImmediateWork(): Promise<void> {\n await Promise.resolve()\n await new Promise<void>((resolve) => process.nextTick(resolve))\n await Promise.resolve()\n}\n\nfunction normalizePositiveInteger(value: number | undefined, fallback: number): number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n return fallback\n }\n\n return Math.floor(value)\n}\n\nfunction createWaitError(renderer: TestRenderer, message: string, frame?: string): Error {\n const stats = renderer.getStats()\n const scheduler = renderer.getSchedulerState()\n const details = [\n message,\n `frameId: ${renderer.frameId}`,\n `nativeFrameCount: ${stats.nativeFrameCount}`,\n `cellsUpdated: ${stats.cellsUpdated}`,\n `isRunning: ${scheduler.isRunning}`,\n `isRendering: ${scheduler.isRendering}`,\n `hasScheduledRender: ${scheduler.hasScheduledRender}`,\n ]\n\n if (frame !== undefined) {\n details.push(`lastFrame:\\n${frame}`)\n }\n\n return new Error(details.join(\"\\n\"))\n}\n\nclass TestExternalOutputRecorder implements TestExternalOutput {\n private commits: TestExternalOutputCommit[] = []\n\n constructor(renderer: TestRenderer) {\n renderer.on(CliRenderEvents.EXTERNAL_OUTPUT, this.record)\n renderer.once(CliRenderEvents.DESTROY, () => {\n renderer.off(CliRenderEvents.EXTERNAL_OUTPUT, this.record)\n })\n }\n\n private record = (event: CliRendererExternalOutputEvent): void => {\n const raw = decoder.decode(event.snapshot.getRealCharBytes(false))\n const rows = Array.from({ length: event.snapshot.height }, (_, index) =>\n raw.slice(index * event.snapshot.width, (index + 1) * event.snapshot.width).trimEnd(),\n )\n\n this.commits.push({\n text: rows.join(\"\\n\"),\n rows,\n width: event.snapshot.width,\n height: event.snapshot.height,\n rowColumns: event.rowColumns,\n startOnNewLine: event.startOnNewLine,\n trailingNewline: event.trailingNewline,\n })\n }\n\n public take(): TestExternalOutputCommit[] {\n const commits = this.commits\n this.commits = []\n return commits\n }\n\n public takeText(): string {\n return this.take()\n .flatMap((commit) => commit.rows)\n .join(\"\\n\")\n }\n\n public clear(): void {\n this.commits = []\n }\n}\n\nfunction waitForNextFrameOrIdle(renderer: TestRenderer): Promise<CliRendererFrameEvent | null> {\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve) => {\n let settled = false\n\n const cleanup = () => {\n renderer.off(CliRenderEvents.FRAME, onFrame)\n renderer.off(CliRenderEvents.DESTROY, onDestroy)\n }\n\n const finish = (event: CliRendererFrameEvent | null) => {\n if (settled) return\n settled = true\n cleanup()\n resolve(event)\n }\n\n const onFrame = (event: CliRendererFrameEvent) => {\n finish(event)\n }\n\n const onDestroy = () => {\n finish(null)\n }\n\n renderer.on(CliRenderEvents.FRAME, onFrame)\n renderer.once(CliRenderEvents.DESTROY, onDestroy)\n\n if (!scheduler.isRunning) {\n renderer.idle().then(() => finish(null))\n }\n })\n}\n\nexport async function createTestRenderer(options: TestRendererOptions): Promise<TestRendererSetup> {\n // Convert legacy kittyKeyboard boolean to new format\n const useKittyKeyboard = options.kittyKeyboard ? { events: true } : options.useKittyKeyboard\n\n const renderer = await setupTestRenderer({\n ...options,\n useKittyKeyboard,\n screenMode: options.screenMode ?? \"main-screen\",\n footerHeight: options.footerHeight ?? 12,\n consoleMode: options.consoleMode ?? \"disabled\",\n externalOutputMode: options.externalOutputMode ?? \"passthrough\",\n })\n const externalOutput = new TestExternalOutputRecorder(renderer)\n\n const mockInput = createMockKeys(renderer, {\n kittyKeyboard: options.kittyKeyboard,\n otherModifiersMode: options.otherModifiersMode,\n })\n const mockMouse = createMockMouse(renderer)\n\n const renderOnce = async () => {\n const feed = (renderer as unknown as RendererFeedAccess)._feed\n if (feed?.isBackpressured()) {\n await feed.idle()\n }\n //@ts-expect-error - this is a test renderer\n await renderer.loop()\n }\n\n const captureCharFrame = () => {\n const currentBuffer = renderer.currentRenderBuffer\n const frameBytes = currentBuffer.getRealCharBytes(true)\n return decoder.decode(frameBytes)\n }\n\n const waitForVisualIdle = async (waitOptions: TestVisualIdleOptions = {}): Promise<void> => {\n const maxFrames = normalizePositiveInteger(waitOptions.maxFrames, DEFAULT_MAX_VISUAL_IDLE_FRAMES)\n const quietFrames = normalizePositiveInteger(waitOptions.quietFrames, DEFAULT_QUIET_FRAMES)\n let consecutiveQuietFrames = 0\n\n for (let frame = 0; frame < maxFrames; frame++) {\n await drainImmediateWork()\n\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return\n }\n\n const event = await waitForNextFrameOrIdle(renderer)\n if (!event) {\n return\n }\n\n if (renderer.getNativeStats().cellsUpdated === 0) {\n consecutiveQuietFrames++\n if (consecutiveQuietFrames >= quietFrames) {\n return\n }\n } else {\n consecutiveQuietFrames = 0\n }\n }\n\n await drainImmediateWork()\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return\n }\n\n throw createWaitError(renderer, `Timed out waiting for visual idle after ${maxFrames} frames`)\n }\n\n const flush = async (flushOptions: TestFlushOptions = {}): Promise<void> => {\n await waitForVisualIdle({ maxFrames: normalizePositiveInteger(flushOptions.maxPasses, DEFAULT_MAX_PASSES) })\n }\n\n const waitFor = async (\n predicate: () => boolean | Promise<boolean>,\n waitOptions: TestWaitForOptions = {},\n ): Promise<void> => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES)\n\n for (let pass = 0; pass <= maxPasses; pass++) {\n await drainImmediateWork()\n if (await predicate()) {\n return\n }\n\n if (pass === maxPasses) {\n break\n }\n\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break\n }\n\n await waitForNextFrameOrIdle(renderer)\n }\n\n throw createWaitError(renderer, `Timed out waiting for predicate after ${maxPasses} passes`)\n }\n\n const waitForFrame = async (\n predicate: (frame: string) => boolean | Promise<boolean>,\n waitOptions: TestWaitForOptions = {},\n ): Promise<string> => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES)\n let frame = captureCharFrame()\n\n for (let pass = 0; pass <= maxPasses; pass++) {\n await drainImmediateWork()\n frame = captureCharFrame()\n if (await predicate(frame)) {\n return frame\n }\n\n if (pass === maxPasses) {\n break\n }\n\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break\n }\n\n await waitForNextFrameOrIdle(renderer)\n }\n\n frame = captureCharFrame()\n throw createWaitError(renderer, `Timed out waiting for frame predicate after ${maxPasses} passes`, frame)\n }\n\n return {\n renderer,\n mockInput,\n mockMouse,\n renderOnce,\n flush,\n waitFor,\n waitForFrame,\n waitForVisualIdle,\n externalOutput,\n getNativeStats: () => renderer.getNativeStats(),\n captureCharFrame,\n captureSpans: () => {\n const currentBuffer = renderer.currentRenderBuffer\n const lines = currentBuffer.getSpanLines()\n const cursorState = renderer.getCursorState()\n return {\n cols: currentBuffer.width,\n rows: currentBuffer.height,\n cursor: [cursorState.x, cursorState.y] as [number, number],\n lines,\n }\n },\n resize: (width: number, height: number) => {\n //@ts-expect-error - this is a test renderer\n renderer.processResize(width, height)\n },\n }\n}\n\nasync function setupTestRenderer(config: TestRendererOptions) {\n const stdin = config.stdin || createTestStdin()\n const width = config.width || config.stdout?.columns || process.stdout.columns || 80\n const height = config.height || config.stdout?.rows || process.stdout.rows || 24\n const stdout = config.stdout || createTestStdout(width, height)\n\n // Direct construction skips setupTerminal(); native bytes are routed to an\n // explicit memory destination so tests do not depend on process stdout or feed\n // backpressure behavior. CliRenderer still owns native renderer creation and\n // applies the same useThread defaults as production construction.\n return new CliRenderer(stdin, stdout, width, height, {\n ...config,\n bufferedOutput: config.bufferedOutput ?? \"memory\",\n })\n}\n",
9
9
  "import { TreeSitterClient } from \"../lib/tree-sitter/index.js\"\nimport { SystemClock, type Clock, type TimerHandle } from \"../lib/clock.js\"\nimport type { SimpleHighlight } from \"../lib/tree-sitter/types.js\"\n\nexport class MockTreeSitterClient extends TreeSitterClient {\n private _highlightPromises: Array<{\n promise: Promise<{ highlights?: SimpleHighlight[]; warning?: string; error?: string }>\n resolve: (result: { highlights?: SimpleHighlight[]; warning?: string; error?: string }) => void\n timeout?: TimerHandle\n }> = []\n private _mockResult: { highlights?: SimpleHighlight[]; warning?: string; error?: string } = { highlights: [] }\n private _autoResolveTimeout?: number\n private readonly _clock: Clock\n\n constructor(options?: { autoResolveTimeout?: number; clock?: Clock }) {\n super({ dataPath: \"/tmp/mock\" }, { autoStartWorker: false })\n this._autoResolveTimeout = options?.autoResolveTimeout\n this._clock = options?.clock ?? new SystemClock()\n }\n\n override async destroy(): Promise<void> {\n this.resolveAllHighlightOnce()\n await super.destroy()\n }\n\n async highlightOnce(\n content: string,\n filetype: string,\n ): Promise<{ highlights?: SimpleHighlight[]; warning?: string; error?: string }> {\n const { promise, resolve } = Promise.withResolvers<{\n highlights?: SimpleHighlight[]\n warning?: string\n error?: string\n }>()\n\n let timeout: TimerHandle | undefined\n\n if (this._autoResolveTimeout !== undefined) {\n timeout = this._clock.setTimeout(() => {\n const index = this._highlightPromises.findIndex((p) => p.promise === promise)\n if (index !== -1) {\n resolve(this._mockResult)\n this._highlightPromises.splice(index, 1)\n }\n }, this._autoResolveTimeout)\n }\n\n this._highlightPromises.push({ promise, resolve, timeout })\n\n return promise\n }\n\n setMockResult(result: { highlights?: SimpleHighlight[]; warning?: string; error?: string }) {\n this._mockResult = result\n }\n\n resolveHighlightOnce(index: number = 0) {\n if (index >= 0 && index < this._highlightPromises.length) {\n const item = this._highlightPromises[index]\n if (item.timeout) {\n this._clock.clearTimeout(item.timeout)\n }\n item.resolve(this._mockResult)\n this._highlightPromises.splice(index, 1)\n }\n }\n\n resolveAllHighlightOnce() {\n for (const { resolve, timeout } of this._highlightPromises) {\n if (timeout) {\n this._clock.clearTimeout(timeout)\n }\n resolve(this._mockResult)\n }\n this._highlightPromises = []\n }\n\n isHighlighting(): boolean {\n return this._highlightPromises.length > 0\n }\n}\n",
10
- "import type { CliRenderer } from \"../renderer.js\"\nimport type { TerminalCapabilities, TerminalInfo } from \"../types.js\"\n\nexport interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, \"terminal\">> {\n terminal?: Partial<TerminalInfo>\n}\n\nexport function createTerminalCapabilities(overrides: TerminalCapabilitiesOverrides = {}): TerminalCapabilities {\n return {\n kitty_keyboard: false,\n kitty_graphics: false,\n rgb: false,\n ansi256: false,\n unicode: \"unicode\",\n sgr_pixels: false,\n color_scheme_updates: false,\n explicit_width: false,\n scaled_text: false,\n sixel: false,\n focus_tracking: false,\n sync: false,\n bracketed_paste: false,\n hyperlinks: false,\n osc52: false,\n osc52_support: \"unknown\",\n notifications: false,\n explicit_cursor_positioning: false,\n remote: false,\n multiplexer: \"none\",\n ...overrides,\n terminal: {\n name: \"\",\n version: \"\",\n from_xtversion: false,\n ...overrides.terminal,\n },\n }\n}\n\nexport function setRendererCapabilities(\n renderer: CliRenderer,\n overrides: TerminalCapabilitiesOverrides = {},\n): TerminalCapabilities {\n const capabilities = createTerminalCapabilities(overrides)\n ;(renderer as unknown as { _capabilities: TerminalCapabilities })._capabilities = capabilities\n return capabilities\n}\n",
10
+ "import type { CliRenderer } from \"../renderer.js\"\nimport type { TerminalCapabilities, TerminalInfo } from \"../types.js\"\n\nexport interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, \"terminal\">> {\n terminal?: Partial<TerminalInfo>\n}\n\nexport function createTerminalCapabilities(overrides: TerminalCapabilitiesOverrides = {}): TerminalCapabilities {\n return {\n kitty_keyboard: false,\n kitty_graphics: false,\n rgb: false,\n ansi256: false,\n unicode: \"unicode\",\n sgr_pixels: false,\n color_scheme_updates: false,\n explicit_width: false,\n scaled_text: false,\n sixel: false,\n focus_tracking: false,\n sync: false,\n bracketed_paste: false,\n hyperlinks: false,\n osc52: false,\n osc52_support: \"unknown\",\n notifications: false,\n explicit_cursor_positioning: false,\n remote: false,\n multiplexer: \"none\",\n image_protocol: \"auto\",\n ...overrides,\n terminal: {\n name: \"\",\n version: \"\",\n from_xtversion: false,\n ...overrides.terminal,\n },\n }\n}\n\nexport function setRendererCapabilities(\n renderer: CliRenderer,\n overrides: TerminalCapabilitiesOverrides = {},\n): TerminalCapabilities {\n const capabilities = createTerminalCapabilities(overrides)\n ;(renderer as unknown as { _capabilities: TerminalCapabilities })._capabilities = capabilities\n return capabilities\n}\n",
11
11
  "export function createSpy() {\n const calls: any[][] = []\n const spy = (...args: any[]) => {\n calls.push(args)\n }\n spy.calls = calls\n spy.callCount = () => calls.length\n spy.calledWith = (...expected: any[]) => {\n return calls.some((call) => JSON.stringify(call) === JSON.stringify(expected))\n }\n spy.reset = () => (calls.length = 0)\n return spy\n}\n",
12
12
  "import type { Clock, TimerHandle } from \"../lib/clock.js\"\n\ninterface ScheduledTimer {\n id: number\n fireAt: number\n order: number\n delayMs: number\n repeat: boolean\n fn: () => void\n}\n\nfunction compareTimers(left: ScheduledTimer, right: ScheduledTimer): number {\n if (left.fireAt !== right.fireAt) {\n return left.fireAt - right.fireAt\n }\n\n return left.order - right.order\n}\n\nexport class ManualClock implements Clock {\n private time = 0\n private nextId = 1\n private nextOrder = 0\n private readonly timers = new Map<number, ScheduledTimer>()\n\n public now(): number {\n return this.time\n }\n\n public setTime(time: number): void {\n const targetTime = Math.floor(time)\n\n if (targetTime >= this.time) {\n this.advance(targetTime - this.time)\n return\n }\n\n this.time = targetTime\n }\n\n public setTimeout(fn: () => void, delayMs: number): TimerHandle {\n return this.schedule(fn, delayMs, false)\n }\n\n public clearTimeout(handle: TimerHandle): void {\n this.timers.delete(Number(handle))\n }\n\n public setInterval(fn: () => void, delayMs: number): TimerHandle {\n return this.schedule(fn, delayMs, true)\n }\n\n public clearInterval(handle: TimerHandle): void {\n this.clearTimeout(handle)\n }\n\n public advance(delayMs: number): void {\n const targetTime = this.time + Math.max(0, Math.floor(delayMs))\n\n while (true) {\n const nextTimer = this.peekNextTimer()\n if (!nextTimer || nextTimer.fireAt > targetTime) {\n break\n }\n\n this.timers.delete(nextTimer.id)\n this.time = nextTimer.fireAt\n nextTimer.fn()\n\n if (nextTimer.repeat && !this.timers.has(nextTimer.id)) {\n this.timers.set(nextTimer.id, {\n ...nextTimer,\n fireAt: this.time + nextTimer.delayMs,\n order: this.nextOrder++,\n })\n }\n }\n\n this.time = targetTime\n }\n\n public runAll(): void {\n while (true) {\n const nextTimer = this.peekNextTimer()\n if (!nextTimer) {\n return\n }\n\n this.advance(nextTimer.fireAt - this.time)\n }\n }\n\n private schedule(fn: () => void, delayMs: number, repeat: boolean): number {\n const id = this.nextId++\n const normalizedDelay = Math.max(0, Math.floor(delayMs))\n this.timers.set(id, {\n id,\n fireAt: this.time + normalizedDelay,\n order: this.nextOrder++,\n delayMs: normalizedDelay,\n repeat,\n fn,\n })\n return id\n }\n\n private peekNextTimer(): ScheduledTimer | null {\n let nextTimer: ScheduledTimer | null = null\n for (const timer of this.timers.values()) {\n if (!nextTimer || compareTimers(timer, nextTimer) < 0) {\n nextTimer = timer\n }\n }\n\n return nextTimer\n }\n}\n",
13
13
  "import type { TestRenderer } from \"./test-renderer.js\"\nimport { CliRenderEvents } from \"../renderer.js\"\n\nexport interface RecordBuffersOptions {\n fg?: boolean\n bg?: boolean\n attributes?: boolean\n}\n\nexport interface RecordedBuffers {\n fg?: Uint16Array\n bg?: Uint16Array\n attributes?: Uint8Array\n}\n\nexport interface RecordedFrame {\n frame: string\n timestamp: number\n frameNumber: number\n buffers?: RecordedBuffers\n}\n\nexport interface TestRecorderOptions {\n recordBuffers?: RecordBuffersOptions\n now?: () => number\n}\n\n/**\n * TestRecorder records frames from a TestRenderer by listening to rendered frame events.\n * It captures the character frame after each native render pass.\n */\nexport class TestRecorder {\n private renderer: TestRenderer\n private frames: RecordedFrame[] = []\n private recording: boolean = false\n private frameNumber: number = 0\n private startTime: number = 0\n private decoder = new TextDecoder()\n private recordBuffers: RecordBuffersOptions\n private now: () => number\n private readonly onFrame = () => {\n if (!this.recording) return\n this.captureFrame()\n }\n\n constructor(renderer: TestRenderer, options?: TestRecorderOptions) {\n this.renderer = renderer\n this.recordBuffers = options?.recordBuffers || {}\n this.now = options?.now ?? (() => performance.now())\n }\n\n /**\n * Start recording frames.\n */\n public rec(): void {\n if (this.recording) {\n return\n }\n\n this.recording = true\n this.frames = []\n this.frameNumber = 0\n this.startTime = this.now()\n this.renderer.on(CliRenderEvents.FRAME, this.onFrame)\n }\n\n /**\n * Stop recording frames.\n */\n public stop(): void {\n if (!this.recording) {\n return\n }\n\n this.recording = false\n this.renderer.off(CliRenderEvents.FRAME, this.onFrame)\n }\n\n /**\n * Get the recorded frames.\n */\n public get recordedFrames(): RecordedFrame[] {\n return [...this.frames]\n }\n\n /**\n * Clear all recorded frames.\n */\n public clear(): void {\n this.frames = []\n this.frameNumber = 0\n }\n\n /**\n * Check if currently recording.\n */\n public get isRecording(): boolean {\n return this.recording\n }\n\n /**\n * Capture the current frame from the renderer's buffer.\n */\n private captureFrame(): void {\n const currentBuffer = this.renderer.currentRenderBuffer\n const frameBytes = currentBuffer.getRealCharBytes(true)\n const frame = this.decoder.decode(frameBytes)\n\n const recordedFrame: RecordedFrame = {\n frame,\n timestamp: this.now() - this.startTime,\n frameNumber: this.frameNumber++,\n }\n\n // Optionally record buffer data from currentRenderBuffer\n if (this.recordBuffers.fg || this.recordBuffers.bg || this.recordBuffers.attributes) {\n const buffers = currentBuffer.buffers\n recordedFrame.buffers = {}\n\n if (this.recordBuffers.fg) {\n recordedFrame.buffers.fg = new Uint16Array(buffers.fg)\n }\n if (this.recordBuffers.bg) {\n recordedFrame.buffers.bg = new Uint16Array(buffers.bg)\n }\n if (this.recordBuffers.attributes) {\n recordedFrame.buffers.attributes = new Uint8Array(buffers.attributes)\n }\n }\n\n this.frames.push(recordedFrame)\n }\n}\n"
14
14
  ],
15
- "mappings": "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",
16
- "debugId": "0357928BEE71C0AA64756E2164756E21",
15
+ "mappings": "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",
16
+ "debugId": "4A66EEF4E0EE595664756E2164756E21",
17
17
  "names": []
18
18
  }
package/testing.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ANSI,
3
3
  CliRenderer
4
- } from "./chunk-node-51kpf0mz.js";
4
+ } from "./chunk-node-1j69hr31.js";
5
5
  import {
6
6
  SystemClock,
7
7
  TreeSitterClient
8
- } from "./chunk-node-q0cwyvm9.js";
8
+ } from "./chunk-node-savhj5rp.js";
9
9
 
10
10
  // src/testing/mock-keys.ts
11
11
  import { Buffer as Buffer2 } from "node:buffer";
@@ -797,6 +797,7 @@ function createTerminalCapabilities(overrides = {}) {
797
797
  explicit_cursor_positioning: false,
798
798
  remote: false,
799
799
  multiplexer: "none",
800
+ image_protocol: "auto",
800
801
  ...overrides,
801
802
  terminal: {
802
803
  name: "",
@@ -1000,5 +1001,5 @@ export {
1000
1001
  KeyCodes
1001
1002
  };
1002
1003
 
1003
- //# debugId=08D19767EB8430A064756E2164756E21
1004
+ //# debugId=61BD210642FDD57D64756E2164756E21
1004
1005
  //# sourceMappingURL=testing.js.map
package/testing.js.map CHANGED
@@ -7,12 +7,12 @@
7
7
  "import { Readable, Writable } from \"stream\"\n\nexport class TestWriteStream extends Writable {\n public readonly isTTY = true\n public readonly columns: number\n public readonly rows: number\n\n constructor(columns = 80, rows = 24) {\n super()\n this.columns = columns\n this.rows = rows\n }\n\n override _write(_chunk: any, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n callback()\n }\n\n getColorDepth(): number {\n return 24\n }\n}\n\nexport type TestStdout = TestWriteStream & NodeJS.WriteStream\n\nexport function createTestStdin(): NodeJS.ReadStream {\n return new Readable({ read() {} }) as NodeJS.ReadStream\n}\n\nexport function createTestStdout(columns = 80, rows = 24): NodeJS.WriteStream {\n return new TestWriteStream(columns, rows) as TestStdout\n}\n",
8
8
  "import {\n CliRenderer,\n CliRenderEvents,\n type CliRendererConfig,\n type CliRendererExternalOutputEvent,\n type CliRendererFrameEvent,\n} from \"../renderer.js\"\nimport type { NativeSpanFeed } from \"../NativeSpanFeed.js\"\nimport type { NativeRenderStats } from \"../zig.js\"\nimport { createMockKeys } from \"./mock-keys.js\"\nimport { createMockMouse } from \"./mock-mouse.js\"\nimport { createTestStdin, createTestStdout } from \"./test-streams.js\"\nimport type { CapturedFrame } from \"../types.js\"\n\nexport interface TestRendererOptions extends CliRendererConfig {\n width?: number\n height?: number\n kittyKeyboard?: boolean\n otherModifiersMode?: boolean\n}\nexport type TestRenderer = CliRenderer\nexport type MockInput = ReturnType<typeof createMockKeys>\nexport type MockMouse = ReturnType<typeof createMockMouse>\n\ntype RendererFeedAccess = {\n _feed?: NativeSpanFeed | null\n}\n\nexport interface TestFlushOptions {\n maxPasses?: number\n}\n\nexport interface TestVisualIdleOptions {\n quietFrames?: number\n maxFrames?: number\n}\n\nexport interface TestWaitForOptions {\n maxPasses?: number\n}\n\nexport interface TestExternalOutputCommit {\n text: string\n rows: string[]\n width: number\n height: number\n rowColumns: number\n startOnNewLine: boolean\n trailingNewline: boolean\n}\n\nexport interface TestExternalOutput {\n take(): TestExternalOutputCommit[]\n takeText(): string\n clear(): void\n}\n\nexport interface TestRendererSetup {\n renderer: TestRenderer\n mockInput: MockInput\n mockMouse: MockMouse\n renderOnce: () => Promise<void>\n flush: (options?: TestFlushOptions) => Promise<void>\n waitFor: (predicate: () => boolean | Promise<boolean>, options?: TestWaitForOptions) => Promise<void>\n waitForFrame: (\n predicate: (frame: string) => boolean | Promise<boolean>,\n options?: TestWaitForOptions,\n ) => Promise<string>\n waitForVisualIdle: (options?: TestVisualIdleOptions) => Promise<void>\n externalOutput: TestExternalOutput\n getNativeStats: () => NativeRenderStats\n captureCharFrame: () => string\n captureSpans: () => CapturedFrame\n resize: (width: number, height: number) => void\n}\n\nconst decoder = new TextDecoder()\nconst DEFAULT_MAX_PASSES = 20\nconst DEFAULT_MAX_VISUAL_IDLE_FRAMES = 20\nconst DEFAULT_QUIET_FRAMES = 1\n\nasync function drainImmediateWork(): Promise<void> {\n await Promise.resolve()\n await new Promise<void>((resolve) => process.nextTick(resolve))\n await Promise.resolve()\n}\n\nfunction normalizePositiveInteger(value: number | undefined, fallback: number): number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) {\n return fallback\n }\n\n return Math.floor(value)\n}\n\nfunction createWaitError(renderer: TestRenderer, message: string, frame?: string): Error {\n const stats = renderer.getStats()\n const scheduler = renderer.getSchedulerState()\n const details = [\n message,\n `frameId: ${renderer.frameId}`,\n `nativeFrameCount: ${stats.nativeFrameCount}`,\n `cellsUpdated: ${stats.cellsUpdated}`,\n `isRunning: ${scheduler.isRunning}`,\n `isRendering: ${scheduler.isRendering}`,\n `hasScheduledRender: ${scheduler.hasScheduledRender}`,\n ]\n\n if (frame !== undefined) {\n details.push(`lastFrame:\\n${frame}`)\n }\n\n return new Error(details.join(\"\\n\"))\n}\n\nclass TestExternalOutputRecorder implements TestExternalOutput {\n private commits: TestExternalOutputCommit[] = []\n\n constructor(renderer: TestRenderer) {\n renderer.on(CliRenderEvents.EXTERNAL_OUTPUT, this.record)\n renderer.once(CliRenderEvents.DESTROY, () => {\n renderer.off(CliRenderEvents.EXTERNAL_OUTPUT, this.record)\n })\n }\n\n private record = (event: CliRendererExternalOutputEvent): void => {\n const raw = decoder.decode(event.snapshot.getRealCharBytes(false))\n const rows = Array.from({ length: event.snapshot.height }, (_, index) =>\n raw.slice(index * event.snapshot.width, (index + 1) * event.snapshot.width).trimEnd(),\n )\n\n this.commits.push({\n text: rows.join(\"\\n\"),\n rows,\n width: event.snapshot.width,\n height: event.snapshot.height,\n rowColumns: event.rowColumns,\n startOnNewLine: event.startOnNewLine,\n trailingNewline: event.trailingNewline,\n })\n }\n\n public take(): TestExternalOutputCommit[] {\n const commits = this.commits\n this.commits = []\n return commits\n }\n\n public takeText(): string {\n return this.take()\n .flatMap((commit) => commit.rows)\n .join(\"\\n\")\n }\n\n public clear(): void {\n this.commits = []\n }\n}\n\nfunction waitForNextFrameOrIdle(renderer: TestRenderer): Promise<CliRendererFrameEvent | null> {\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve) => {\n let settled = false\n\n const cleanup = () => {\n renderer.off(CliRenderEvents.FRAME, onFrame)\n renderer.off(CliRenderEvents.DESTROY, onDestroy)\n }\n\n const finish = (event: CliRendererFrameEvent | null) => {\n if (settled) return\n settled = true\n cleanup()\n resolve(event)\n }\n\n const onFrame = (event: CliRendererFrameEvent) => {\n finish(event)\n }\n\n const onDestroy = () => {\n finish(null)\n }\n\n renderer.on(CliRenderEvents.FRAME, onFrame)\n renderer.once(CliRenderEvents.DESTROY, onDestroy)\n\n if (!scheduler.isRunning) {\n renderer.idle().then(() => finish(null))\n }\n })\n}\n\nexport async function createTestRenderer(options: TestRendererOptions): Promise<TestRendererSetup> {\n // Convert legacy kittyKeyboard boolean to new format\n const useKittyKeyboard = options.kittyKeyboard ? { events: true } : options.useKittyKeyboard\n\n const renderer = await setupTestRenderer({\n ...options,\n useKittyKeyboard,\n screenMode: options.screenMode ?? \"main-screen\",\n footerHeight: options.footerHeight ?? 12,\n consoleMode: options.consoleMode ?? \"disabled\",\n externalOutputMode: options.externalOutputMode ?? \"passthrough\",\n })\n const externalOutput = new TestExternalOutputRecorder(renderer)\n\n const mockInput = createMockKeys(renderer, {\n kittyKeyboard: options.kittyKeyboard,\n otherModifiersMode: options.otherModifiersMode,\n })\n const mockMouse = createMockMouse(renderer)\n\n const renderOnce = async () => {\n const feed = (renderer as unknown as RendererFeedAccess)._feed\n if (feed?.isBackpressured()) {\n await feed.idle()\n }\n //@ts-expect-error - this is a test renderer\n await renderer.loop()\n }\n\n const captureCharFrame = () => {\n const currentBuffer = renderer.currentRenderBuffer\n const frameBytes = currentBuffer.getRealCharBytes(true)\n return decoder.decode(frameBytes)\n }\n\n const waitForVisualIdle = async (waitOptions: TestVisualIdleOptions = {}): Promise<void> => {\n const maxFrames = normalizePositiveInteger(waitOptions.maxFrames, DEFAULT_MAX_VISUAL_IDLE_FRAMES)\n const quietFrames = normalizePositiveInteger(waitOptions.quietFrames, DEFAULT_QUIET_FRAMES)\n let consecutiveQuietFrames = 0\n\n for (let frame = 0; frame < maxFrames; frame++) {\n await drainImmediateWork()\n\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return\n }\n\n const event = await waitForNextFrameOrIdle(renderer)\n if (!event) {\n return\n }\n\n if (renderer.getNativeStats().cellsUpdated === 0) {\n consecutiveQuietFrames++\n if (consecutiveQuietFrames >= quietFrames) {\n return\n }\n } else {\n consecutiveQuietFrames = 0\n }\n }\n\n await drainImmediateWork()\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n return\n }\n\n throw createWaitError(renderer, `Timed out waiting for visual idle after ${maxFrames} frames`)\n }\n\n const flush = async (flushOptions: TestFlushOptions = {}): Promise<void> => {\n await waitForVisualIdle({ maxFrames: normalizePositiveInteger(flushOptions.maxPasses, DEFAULT_MAX_PASSES) })\n }\n\n const waitFor = async (\n predicate: () => boolean | Promise<boolean>,\n waitOptions: TestWaitForOptions = {},\n ): Promise<void> => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES)\n\n for (let pass = 0; pass <= maxPasses; pass++) {\n await drainImmediateWork()\n if (await predicate()) {\n return\n }\n\n if (pass === maxPasses) {\n break\n }\n\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break\n }\n\n await waitForNextFrameOrIdle(renderer)\n }\n\n throw createWaitError(renderer, `Timed out waiting for predicate after ${maxPasses} passes`)\n }\n\n const waitForFrame = async (\n predicate: (frame: string) => boolean | Promise<boolean>,\n waitOptions: TestWaitForOptions = {},\n ): Promise<string> => {\n const maxPasses = normalizePositiveInteger(waitOptions.maxPasses, DEFAULT_MAX_PASSES)\n let frame = captureCharFrame()\n\n for (let pass = 0; pass <= maxPasses; pass++) {\n await drainImmediateWork()\n frame = captureCharFrame()\n if (await predicate(frame)) {\n return frame\n }\n\n if (pass === maxPasses) {\n break\n }\n\n const scheduler = renderer.getSchedulerState()\n if (!scheduler.isRunning && !scheduler.isRendering && !scheduler.hasScheduledRender) {\n break\n }\n\n await waitForNextFrameOrIdle(renderer)\n }\n\n frame = captureCharFrame()\n throw createWaitError(renderer, `Timed out waiting for frame predicate after ${maxPasses} passes`, frame)\n }\n\n return {\n renderer,\n mockInput,\n mockMouse,\n renderOnce,\n flush,\n waitFor,\n waitForFrame,\n waitForVisualIdle,\n externalOutput,\n getNativeStats: () => renderer.getNativeStats(),\n captureCharFrame,\n captureSpans: () => {\n const currentBuffer = renderer.currentRenderBuffer\n const lines = currentBuffer.getSpanLines()\n const cursorState = renderer.getCursorState()\n return {\n cols: currentBuffer.width,\n rows: currentBuffer.height,\n cursor: [cursorState.x, cursorState.y] as [number, number],\n lines,\n }\n },\n resize: (width: number, height: number) => {\n //@ts-expect-error - this is a test renderer\n renderer.processResize(width, height)\n },\n }\n}\n\nasync function setupTestRenderer(config: TestRendererOptions) {\n const stdin = config.stdin || createTestStdin()\n const width = config.width || config.stdout?.columns || process.stdout.columns || 80\n const height = config.height || config.stdout?.rows || process.stdout.rows || 24\n const stdout = config.stdout || createTestStdout(width, height)\n\n // Direct construction skips setupTerminal(); native bytes are routed to an\n // explicit memory destination so tests do not depend on process stdout or feed\n // backpressure behavior. CliRenderer still owns native renderer creation and\n // applies the same useThread defaults as production construction.\n return new CliRenderer(stdin, stdout, width, height, {\n ...config,\n bufferedOutput: config.bufferedOutput ?? \"memory\",\n })\n}\n",
9
9
  "import { TreeSitterClient } from \"../lib/tree-sitter/index.js\"\nimport { SystemClock, type Clock, type TimerHandle } from \"../lib/clock.js\"\nimport type { SimpleHighlight } from \"../lib/tree-sitter/types.js\"\n\nexport class MockTreeSitterClient extends TreeSitterClient {\n private _highlightPromises: Array<{\n promise: Promise<{ highlights?: SimpleHighlight[]; warning?: string; error?: string }>\n resolve: (result: { highlights?: SimpleHighlight[]; warning?: string; error?: string }) => void\n timeout?: TimerHandle\n }> = []\n private _mockResult: { highlights?: SimpleHighlight[]; warning?: string; error?: string } = { highlights: [] }\n private _autoResolveTimeout?: number\n private readonly _clock: Clock\n\n constructor(options?: { autoResolveTimeout?: number; clock?: Clock }) {\n super({ dataPath: \"/tmp/mock\" }, { autoStartWorker: false })\n this._autoResolveTimeout = options?.autoResolveTimeout\n this._clock = options?.clock ?? new SystemClock()\n }\n\n override async destroy(): Promise<void> {\n this.resolveAllHighlightOnce()\n await super.destroy()\n }\n\n async highlightOnce(\n content: string,\n filetype: string,\n ): Promise<{ highlights?: SimpleHighlight[]; warning?: string; error?: string }> {\n const { promise, resolve } = Promise.withResolvers<{\n highlights?: SimpleHighlight[]\n warning?: string\n error?: string\n }>()\n\n let timeout: TimerHandle | undefined\n\n if (this._autoResolveTimeout !== undefined) {\n timeout = this._clock.setTimeout(() => {\n const index = this._highlightPromises.findIndex((p) => p.promise === promise)\n if (index !== -1) {\n resolve(this._mockResult)\n this._highlightPromises.splice(index, 1)\n }\n }, this._autoResolveTimeout)\n }\n\n this._highlightPromises.push({ promise, resolve, timeout })\n\n return promise\n }\n\n setMockResult(result: { highlights?: SimpleHighlight[]; warning?: string; error?: string }) {\n this._mockResult = result\n }\n\n resolveHighlightOnce(index: number = 0) {\n if (index >= 0 && index < this._highlightPromises.length) {\n const item = this._highlightPromises[index]\n if (item.timeout) {\n this._clock.clearTimeout(item.timeout)\n }\n item.resolve(this._mockResult)\n this._highlightPromises.splice(index, 1)\n }\n }\n\n resolveAllHighlightOnce() {\n for (const { resolve, timeout } of this._highlightPromises) {\n if (timeout) {\n this._clock.clearTimeout(timeout)\n }\n resolve(this._mockResult)\n }\n this._highlightPromises = []\n }\n\n isHighlighting(): boolean {\n return this._highlightPromises.length > 0\n }\n}\n",
10
- "import type { CliRenderer } from \"../renderer.js\"\nimport type { TerminalCapabilities, TerminalInfo } from \"../types.js\"\n\nexport interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, \"terminal\">> {\n terminal?: Partial<TerminalInfo>\n}\n\nexport function createTerminalCapabilities(overrides: TerminalCapabilitiesOverrides = {}): TerminalCapabilities {\n return {\n kitty_keyboard: false,\n kitty_graphics: false,\n rgb: false,\n ansi256: false,\n unicode: \"unicode\",\n sgr_pixels: false,\n color_scheme_updates: false,\n explicit_width: false,\n scaled_text: false,\n sixel: false,\n focus_tracking: false,\n sync: false,\n bracketed_paste: false,\n hyperlinks: false,\n osc52: false,\n osc52_support: \"unknown\",\n notifications: false,\n explicit_cursor_positioning: false,\n remote: false,\n multiplexer: \"none\",\n ...overrides,\n terminal: {\n name: \"\",\n version: \"\",\n from_xtversion: false,\n ...overrides.terminal,\n },\n }\n}\n\nexport function setRendererCapabilities(\n renderer: CliRenderer,\n overrides: TerminalCapabilitiesOverrides = {},\n): TerminalCapabilities {\n const capabilities = createTerminalCapabilities(overrides)\n ;(renderer as unknown as { _capabilities: TerminalCapabilities })._capabilities = capabilities\n return capabilities\n}\n",
10
+ "import type { CliRenderer } from \"../renderer.js\"\nimport type { TerminalCapabilities, TerminalInfo } from \"../types.js\"\n\nexport interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, \"terminal\">> {\n terminal?: Partial<TerminalInfo>\n}\n\nexport function createTerminalCapabilities(overrides: TerminalCapabilitiesOverrides = {}): TerminalCapabilities {\n return {\n kitty_keyboard: false,\n kitty_graphics: false,\n rgb: false,\n ansi256: false,\n unicode: \"unicode\",\n sgr_pixels: false,\n color_scheme_updates: false,\n explicit_width: false,\n scaled_text: false,\n sixel: false,\n focus_tracking: false,\n sync: false,\n bracketed_paste: false,\n hyperlinks: false,\n osc52: false,\n osc52_support: \"unknown\",\n notifications: false,\n explicit_cursor_positioning: false,\n remote: false,\n multiplexer: \"none\",\n image_protocol: \"auto\",\n ...overrides,\n terminal: {\n name: \"\",\n version: \"\",\n from_xtversion: false,\n ...overrides.terminal,\n },\n }\n}\n\nexport function setRendererCapabilities(\n renderer: CliRenderer,\n overrides: TerminalCapabilitiesOverrides = {},\n): TerminalCapabilities {\n const capabilities = createTerminalCapabilities(overrides)\n ;(renderer as unknown as { _capabilities: TerminalCapabilities })._capabilities = capabilities\n return capabilities\n}\n",
11
11
  "export function createSpy() {\n const calls: any[][] = []\n const spy = (...args: any[]) => {\n calls.push(args)\n }\n spy.calls = calls\n spy.callCount = () => calls.length\n spy.calledWith = (...expected: any[]) => {\n return calls.some((call) => JSON.stringify(call) === JSON.stringify(expected))\n }\n spy.reset = () => (calls.length = 0)\n return spy\n}\n",
12
12
  "import type { Clock, TimerHandle } from \"../lib/clock.js\"\n\ninterface ScheduledTimer {\n id: number\n fireAt: number\n order: number\n delayMs: number\n repeat: boolean\n fn: () => void\n}\n\nfunction compareTimers(left: ScheduledTimer, right: ScheduledTimer): number {\n if (left.fireAt !== right.fireAt) {\n return left.fireAt - right.fireAt\n }\n\n return left.order - right.order\n}\n\nexport class ManualClock implements Clock {\n private time = 0\n private nextId = 1\n private nextOrder = 0\n private readonly timers = new Map<number, ScheduledTimer>()\n\n public now(): number {\n return this.time\n }\n\n public setTime(time: number): void {\n const targetTime = Math.floor(time)\n\n if (targetTime >= this.time) {\n this.advance(targetTime - this.time)\n return\n }\n\n this.time = targetTime\n }\n\n public setTimeout(fn: () => void, delayMs: number): TimerHandle {\n return this.schedule(fn, delayMs, false)\n }\n\n public clearTimeout(handle: TimerHandle): void {\n this.timers.delete(Number(handle))\n }\n\n public setInterval(fn: () => void, delayMs: number): TimerHandle {\n return this.schedule(fn, delayMs, true)\n }\n\n public clearInterval(handle: TimerHandle): void {\n this.clearTimeout(handle)\n }\n\n public advance(delayMs: number): void {\n const targetTime = this.time + Math.max(0, Math.floor(delayMs))\n\n while (true) {\n const nextTimer = this.peekNextTimer()\n if (!nextTimer || nextTimer.fireAt > targetTime) {\n break\n }\n\n this.timers.delete(nextTimer.id)\n this.time = nextTimer.fireAt\n nextTimer.fn()\n\n if (nextTimer.repeat && !this.timers.has(nextTimer.id)) {\n this.timers.set(nextTimer.id, {\n ...nextTimer,\n fireAt: this.time + nextTimer.delayMs,\n order: this.nextOrder++,\n })\n }\n }\n\n this.time = targetTime\n }\n\n public runAll(): void {\n while (true) {\n const nextTimer = this.peekNextTimer()\n if (!nextTimer) {\n return\n }\n\n this.advance(nextTimer.fireAt - this.time)\n }\n }\n\n private schedule(fn: () => void, delayMs: number, repeat: boolean): number {\n const id = this.nextId++\n const normalizedDelay = Math.max(0, Math.floor(delayMs))\n this.timers.set(id, {\n id,\n fireAt: this.time + normalizedDelay,\n order: this.nextOrder++,\n delayMs: normalizedDelay,\n repeat,\n fn,\n })\n return id\n }\n\n private peekNextTimer(): ScheduledTimer | null {\n let nextTimer: ScheduledTimer | null = null\n for (const timer of this.timers.values()) {\n if (!nextTimer || compareTimers(timer, nextTimer) < 0) {\n nextTimer = timer\n }\n }\n\n return nextTimer\n }\n}\n",
13
13
  "import type { TestRenderer } from \"./test-renderer.js\"\nimport { CliRenderEvents } from \"../renderer.js\"\n\nexport interface RecordBuffersOptions {\n fg?: boolean\n bg?: boolean\n attributes?: boolean\n}\n\nexport interface RecordedBuffers {\n fg?: Uint16Array\n bg?: Uint16Array\n attributes?: Uint8Array\n}\n\nexport interface RecordedFrame {\n frame: string\n timestamp: number\n frameNumber: number\n buffers?: RecordedBuffers\n}\n\nexport interface TestRecorderOptions {\n recordBuffers?: RecordBuffersOptions\n now?: () => number\n}\n\n/**\n * TestRecorder records frames from a TestRenderer by listening to rendered frame events.\n * It captures the character frame after each native render pass.\n */\nexport class TestRecorder {\n private renderer: TestRenderer\n private frames: RecordedFrame[] = []\n private recording: boolean = false\n private frameNumber: number = 0\n private startTime: number = 0\n private decoder = new TextDecoder()\n private recordBuffers: RecordBuffersOptions\n private now: () => number\n private readonly onFrame = () => {\n if (!this.recording) return\n this.captureFrame()\n }\n\n constructor(renderer: TestRenderer, options?: TestRecorderOptions) {\n this.renderer = renderer\n this.recordBuffers = options?.recordBuffers || {}\n this.now = options?.now ?? (() => performance.now())\n }\n\n /**\n * Start recording frames.\n */\n public rec(): void {\n if (this.recording) {\n return\n }\n\n this.recording = true\n this.frames = []\n this.frameNumber = 0\n this.startTime = this.now()\n this.renderer.on(CliRenderEvents.FRAME, this.onFrame)\n }\n\n /**\n * Stop recording frames.\n */\n public stop(): void {\n if (!this.recording) {\n return\n }\n\n this.recording = false\n this.renderer.off(CliRenderEvents.FRAME, this.onFrame)\n }\n\n /**\n * Get the recorded frames.\n */\n public get recordedFrames(): RecordedFrame[] {\n return [...this.frames]\n }\n\n /**\n * Clear all recorded frames.\n */\n public clear(): void {\n this.frames = []\n this.frameNumber = 0\n }\n\n /**\n * Check if currently recording.\n */\n public get isRecording(): boolean {\n return this.recording\n }\n\n /**\n * Capture the current frame from the renderer's buffer.\n */\n private captureFrame(): void {\n const currentBuffer = this.renderer.currentRenderBuffer\n const frameBytes = currentBuffer.getRealCharBytes(true)\n const frame = this.decoder.decode(frameBytes)\n\n const recordedFrame: RecordedFrame = {\n frame,\n timestamp: this.now() - this.startTime,\n frameNumber: this.frameNumber++,\n }\n\n // Optionally record buffer data from currentRenderBuffer\n if (this.recordBuffers.fg || this.recordBuffers.bg || this.recordBuffers.attributes) {\n const buffers = currentBuffer.buffers\n recordedFrame.buffers = {}\n\n if (this.recordBuffers.fg) {\n recordedFrame.buffers.fg = new Uint16Array(buffers.fg)\n }\n if (this.recordBuffers.bg) {\n recordedFrame.buffers.bg = new Uint16Array(buffers.bg)\n }\n if (this.recordBuffers.attributes) {\n recordedFrame.buffers.attributes = new Uint8Array(buffers.attributes)\n }\n }\n\n this.frames.push(recordedFrame)\n }\n}\n"
14
14
  ],
15
- "mappings": "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",
16
- "debugId": "08D19767EB8430A064756E2164756E21",
15
+ "mappings": "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",
16
+ "debugId": "61BD210642FDD57D64756E2164756E21",
17
17
  "names": []
18
18
  }
@@ -1,5 +1,5 @@
1
1
  import { RGBA } from "./lib/RGBA.js";
2
- import { type LineInfo, type RenderLib, type TextBufferViewHandle } from "./zig.js";
2
+ import { type LineInfo, type MeasureResult, type RenderLib, type TextBufferViewHandle } from "./zig.js";
3
3
  import type { TextBuffer } from "./text-buffer.js";
4
4
  export declare class TextBufferView {
5
5
  private lib;
@@ -33,10 +33,7 @@ export declare class TextBufferView {
33
33
  setTabIndicator(indicator: string | number): void;
34
34
  setTabIndicatorColor(color: RGBA): void;
35
35
  setTruncate(truncate: boolean): void;
36
- measureForDimensions(width: number, height: number): {
37
- lineCount: number;
38
- widthColsMax: number;
39
- } | null;
36
+ measureForDimensions(width: number, height: number): MeasureResult | null;
40
37
  getVirtualLineCount(): number;
41
38
  destroy(): void;
42
39
  }
package/types.d.ts CHANGED
@@ -45,6 +45,7 @@ export declare enum TargetChannel {
45
45
  export type WidthMethod = "wcwidth" | "unicode";
46
46
  export type TerminalMultiplexer = "none" | "tmux" | "zellij" | "screen" | "unknown";
47
47
  export type TerminalCapabilityState = "unknown" | "supported" | "unsupported";
48
+ export type ImageRenderProtocol = "auto" | "kitty" | "sixel" | "blocks";
48
49
  export interface TerminalInfo {
49
50
  name: string;
50
51
  version: string;
@@ -71,6 +72,7 @@ export interface TerminalCapabilities {
71
72
  explicit_cursor_positioning: boolean;
72
73
  remote: boolean;
73
74
  multiplexer: TerminalMultiplexer;
75
+ image_protocol?: ImageRenderProtocol;
74
76
  terminal: TerminalInfo;
75
77
  }
76
78
  export interface RendererEvents {
@@ -95,6 +97,12 @@ export interface RenderContext extends EventEmitter {
95
97
  clearHitGridScissorRects: () => void;
96
98
  width: number;
97
99
  height: number;
100
+ terminalWidth?: number;
101
+ terminalHeight?: number;
102
+ resolution?: {
103
+ width: number;
104
+ height: number;
105
+ } | null;
98
106
  /** Monotonic, bumped once per `loop()` iteration. Lets renderables dedupe per-frame work. */
99
107
  frameId: number;
100
108
  requestRender: () => void;
package/yoga.bun.js CHANGED
@@ -93,7 +93,7 @@ import {
93
93
  WRAP_WRAP_REVERSE,
94
94
  Wrap,
95
95
  yoga_default
96
- } from "./chunk-bun-t2myhmwd.js";
96
+ } from "./chunk-bun-ctxxvhwz.js";
97
97
  export {
98
98
  yoga_default as default,
99
99
  Wrap,
package/yoga.js CHANGED
@@ -92,7 +92,7 @@ import {
92
92
  WRAP_WRAP_REVERSE,
93
93
  Wrap,
94
94
  yoga_default
95
- } from "./chunk-node-q0cwyvm9.js";
95
+ } from "./chunk-node-savhj5rp.js";
96
96
  export {
97
97
  yoga_default as default,
98
98
  Wrap,