@opentui/core 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,129 @@
1
1
  import type { RendererHandle, RenderLib } from "../zig.js";
2
+ export interface ClipboardRepresentation {
3
+ readonly mimeType: string;
4
+ readonly bytes: Uint8Array;
5
+ }
6
+ export type ClipboardSelection = "clipboard" | "primary";
7
+ export interface ClipboardReadOptions {
8
+ readonly preferredTypes: readonly [string, ...string[]];
9
+ readonly selection?: ClipboardSelection;
10
+ readonly signal?: AbortSignal;
11
+ }
12
+ export type ClipboardReadResult = {
13
+ readonly status: "read";
14
+ readonly representation: ClipboardRepresentation;
15
+ } | {
16
+ readonly status: "empty" | "unsupported" | "cancelled" | "timed-out" | "limit-exceeded";
17
+ } | {
18
+ readonly status: "failed";
19
+ readonly error: Error;
20
+ };
21
+ export interface HostClipboardReadOptions {
22
+ readonly preferredTypes: readonly [string, ...string[]];
23
+ readonly selection: ClipboardSelection;
24
+ readonly maxBytes: number;
25
+ readonly timeoutMs: number;
26
+ readonly signal: AbortSignal;
27
+ }
28
+ export interface HostClipboardWriteOptions {
29
+ readonly selection: ClipboardSelection;
30
+ readonly timeoutMs: number;
31
+ readonly signal: AbortSignal;
32
+ }
33
+ export type HostClipboardWriteResult = {
34
+ readonly status: "written" | "unsupported" | "cancelled" | "timed-out";
35
+ } | {
36
+ readonly status: "failed";
37
+ readonly error: Error;
38
+ };
39
+ export type HostClipboardClearResult = {
40
+ readonly status: "cleared" | "unsupported" | "cancelled" | "timed-out";
41
+ } | {
42
+ readonly status: "failed";
43
+ readonly error: Error;
44
+ };
45
+ export interface HostClipboardBackend {
46
+ read(options: HostClipboardReadOptions): Promise<ClipboardReadResult>;
47
+ writeText(text: string, options: HostClipboardWriteOptions): Promise<HostClipboardWriteResult>;
48
+ clear(options: HostClipboardWriteOptions): Promise<HostClipboardClearResult>;
49
+ dispose(): Promise<void>;
50
+ }
51
+ export type ClipboardWriteDestination = "terminal-only" | "host-only" | "best-available" | "all-available";
52
+ export interface ClipboardWriteOptions {
53
+ readonly destination: ClipboardWriteDestination;
54
+ readonly selection?: ClipboardSelection;
55
+ readonly allowRemoteHost?: boolean;
56
+ readonly signal?: AbortSignal;
57
+ }
58
+ export interface TerminalClipboardOperationResult {
59
+ readonly status: "attempted" | "local-failure" | "not-attempted";
60
+ readonly capability: "supported" | "unsupported" | "unknown";
61
+ }
62
+ export interface ClipboardWriteResult {
63
+ readonly host: HostClipboardWriteResult | {
64
+ readonly status: "not-attempted";
65
+ };
66
+ readonly terminal: TerminalClipboardOperationResult;
67
+ }
68
+ export interface ClipboardClearResult {
69
+ readonly host: HostClipboardClearResult | {
70
+ readonly status: "not-attempted";
71
+ };
72
+ readonly terminal: TerminalClipboardOperationResult;
73
+ }
74
+ export interface ClipboardService {
75
+ read(options: ClipboardReadOptions): Promise<ClipboardReadResult>;
76
+ writeText(text: string, options: ClipboardWriteOptions): Promise<ClipboardWriteResult>;
77
+ clear(options: ClipboardWriteOptions): Promise<ClipboardClearResult>;
78
+ dispose(): Promise<void>;
79
+ }
80
+ export interface HostClipboardOperationOptions {
81
+ readonly selection?: ClipboardSelection;
82
+ readonly signal?: AbortSignal;
83
+ }
84
+ export interface HostClipboardService {
85
+ readonly maxWriteBytes: number;
86
+ read(options: ClipboardReadOptions): Promise<ClipboardReadResult>;
87
+ writeText(text: string, options?: HostClipboardOperationOptions): Promise<HostClipboardWriteResult>;
88
+ clear(options?: HostClipboardOperationOptions): Promise<HostClipboardClearResult>;
89
+ dispose(): Promise<void>;
90
+ }
91
+ export interface HostClipboardOptions {
92
+ readonly timeoutMs?: number;
93
+ readonly maxReadBytes?: number;
94
+ readonly maxWriteBytes?: number;
95
+ readonly maxImagePixels?: number;
96
+ readonly maxConversionBytes?: number;
97
+ readonly maxConcurrentOperations?: number;
98
+ readonly maxProviderTransfers?: number;
99
+ readonly waylandSeat?: string;
100
+ }
101
+ export interface TerminalClipboardAdapter {
102
+ readonly remote: boolean;
103
+ writeText(text: string, selection: ClipboardSelection): TerminalClipboardOperationResult;
104
+ clear(selection: ClipboardSelection): TerminalClipboardOperationResult;
105
+ }
106
+ export interface ClipboardOptions {
107
+ readonly host: HostClipboardService;
108
+ readonly terminal: TerminalClipboardAdapter;
109
+ }
110
+ export declare const createHostClipboard: (options?: HostClipboardOptions) => HostClipboardService;
111
+ export declare const createClipboard: ({ host, terminal }: ClipboardOptions) => ClipboardService;
2
112
  export declare enum ClipboardTarget {
3
113
  Clipboard = 0,
4
114
  Primary = 1,
5
115
  Select = 2,
6
116
  Secondary = 3
7
117
  }
118
+ export interface RendererClipboardBoundary {
119
+ readonly capabilities: {
120
+ readonly remote: boolean;
121
+ readonly osc52_support: "supported" | "unsupported" | "unknown";
122
+ } | null;
123
+ copyToClipboardOSC52(text: string, target?: ClipboardTarget): boolean;
124
+ clearClipboardOSC52(target?: ClipboardTarget): boolean;
125
+ }
126
+ export declare const createRendererClipboardAdapter: (renderer: RendererClipboardBoundary) => TerminalClipboardAdapter;
8
127
  export declare class Clipboard {
9
128
  private lib;
10
129
  private rendererPtr;
@@ -0,0 +1,22 @@
1
+ import type { HostClipboardBackend, HostClipboardOptions, HostClipboardService } from "./clipboard.js";
2
+ export declare const HOST_CLIPBOARD_MIME_PREFERENCE_COUNT_MAX = 64;
3
+ export declare const HOST_CLIPBOARD_MIME_ESSENCE_BYTES_MAX = 255;
4
+ export interface NormalizedHostClipboardOptions {
5
+ readonly timeoutMs: number;
6
+ readonly maxReadBytes: number;
7
+ readonly maxWriteBytes: number;
8
+ readonly maxImagePixels: number;
9
+ readonly maxConversionBytes: number;
10
+ readonly maxConcurrentOperations: number;
11
+ readonly maxProviderTransfers: number;
12
+ readonly waylandSeat?: string;
13
+ }
14
+ export type HostClipboardBackendFactory = (options: NormalizedHostClipboardOptions) => HostClipboardBackend;
15
+ export interface ActiveClipboardOperation {
16
+ readonly controller: AbortController;
17
+ readonly settled: Promise<void>;
18
+ settle(): void;
19
+ }
20
+ export declare const validateClipboardText: (text: string, maxWriteBytes: number) => void;
21
+ export declare const runTrackedOperation: <T>(active: Set<ActiveClipboardOperation>, callerSignal: AbortSignal | undefined, operation: (signal: AbortSignal) => Promise<T>) => Promise<T>;
22
+ export declare const createHostClipboardWithBackend: (options: HostClipboardOptions, createBackend: HostClipboardBackendFactory) => HostClipboardService;
@@ -0,0 +1,2 @@
1
+ import { type HostClipboardBackendFactory } from "./host-clipboard.internal.js";
2
+ export declare const createNativeHostClipboardBackend: HostClipboardBackendFactory;
@@ -142,6 +142,7 @@ export type TreeSitterWorkerResponse = {
142
142
  } | {
143
143
  type: "ERROR";
144
144
  bufferId?: number;
145
+ messageId?: string;
145
146
  error: string;
146
147
  } | {
147
148
  type: "WORKER_LOG";
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "index.node.js",
5
5
  "types": "index.d.ts",
6
6
  "type": "module",
7
- "version": "0.5.0",
7
+ "version": "0.5.2",
8
8
  "description": "OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -75,13 +75,13 @@
75
75
  "web-tree-sitter": "0.25.10"
76
76
  },
77
77
  "optionalDependencies": {
78
- "@opentui/core-darwin-x64": "0.5.0",
79
- "@opentui/core-darwin-arm64": "0.5.0",
80
- "@opentui/core-linux-x64": "0.5.0",
81
- "@opentui/core-linux-arm64": "0.5.0",
82
- "@opentui/core-win32-x64": "0.5.0",
83
- "@opentui/core-win32-arm64": "0.5.0",
84
- "@opentui/core-linux-x64-musl": "0.5.0",
85
- "@opentui/core-linux-arm64-musl": "0.5.0"
78
+ "@opentui/core-darwin-x64": "0.5.2",
79
+ "@opentui/core-darwin-arm64": "0.5.2",
80
+ "@opentui/core-linux-x64": "0.5.2",
81
+ "@opentui/core-linux-arm64": "0.5.2",
82
+ "@opentui/core-win32-x64": "0.5.2",
83
+ "@opentui/core-win32-arm64": "0.5.2",
84
+ "@opentui/core-linux-x64-musl": "0.5.2",
85
+ "@opentui/core-linux-arm64-musl": "0.5.2"
86
86
  }
87
87
  }
package/parser.worker.js CHANGED
@@ -4406,10 +4406,11 @@ function logMessage(type, ...args2) {
4406
4406
  data: args2
4407
4407
  });
4408
4408
  }
4409
- function postWorkerError(bufferId, error) {
4409
+ function postWorkerError(bufferId, messageId, error) {
4410
4410
  postWorkerMessage({
4411
4411
  type: "ERROR",
4412
4412
  bufferId,
4413
+ messageId,
4413
4414
  error: error instanceof Error ? error.stack || error.message : String(error)
4414
4415
  });
4415
4416
  }
@@ -4551,14 +4552,15 @@ if (isWorkerRuntime) {
4551
4552
  });
4552
4553
  }
4553
4554
  } catch (error) {
4555
+ const messageId = "messageId" in message ? message.messageId : undefined;
4554
4556
  if ("bufferId" in message) {
4555
- postWorkerError(message.bufferId, error);
4557
+ postWorkerError(message.bufferId, messageId, error);
4556
4558
  } else {
4557
- postWorkerError(undefined, error);
4559
+ postWorkerError(undefined, messageId, error);
4558
4560
  }
4559
4561
  }
4560
4562
  });
4561
4563
  }
4562
4564
 
4563
- //# debugId=E5F8B2FE3F70793464756E2164756E21
4565
+ //# debugId=E1AC0FF95C96198464756E2164756E21
4564
4566
  //# sourceMappingURL=parser.worker.js.map