@wterm/core 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-core.d.ts","sourceRoot":"","sources":["../src/worker-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ import { CELL_WORDS, CLUSTER_BIT, NO_RGB, } from "./worker-protocol.js";
2
+ const MAX_COLS = 1024;
3
+ const MAX_ROWS = 512;
4
+ const BLANK = { char: 32, fg: 256, bg: 256, flags: 0, width: 1 };
5
+ /**
6
+ * The built-in core running in a Web Worker. Parsing leaves the main thread,
7
+ * so many busy terminals can use more than one CPU core. Reads come from a
8
+ * mirror the worker refreshes after each batch of writes; effects of a write
9
+ * (cells, replies, titles, bells) arrive asynchronously through the update
10
+ * listener instead of before `writeString` returns.
11
+ */
12
+ export class WorkerCore {
13
+ static async load(options = {}) {
14
+ const worker = options.worker ??
15
+ new Worker(new URL("./core-worker.js", import.meta.url), {
16
+ type: "module",
17
+ });
18
+ const core = new WorkerCore(worker);
19
+ await new Promise((resolve, reject) => {
20
+ const onMessage = (event) => {
21
+ if (event.data.t === "ready")
22
+ resolve();
23
+ else if (event.data.t === "error")
24
+ reject(new Error(event.data.message));
25
+ else
26
+ return;
27
+ worker.removeEventListener("message", onMessage);
28
+ };
29
+ worker.addEventListener("message", onMessage);
30
+ // A worker that fails to load or throws before replying never posts.
31
+ worker.addEventListener("error", (event) => reject(new Error(event.message || "worker failed to start")), { once: true });
32
+ core.post({ t: "load", wasmUrl: options.wasmUrl });
33
+ });
34
+ worker.addEventListener("message", (event) => {
35
+ if (event.data.t === "update")
36
+ core.apply(event.data);
37
+ });
38
+ return core;
39
+ }
40
+ constructor(worker) {
41
+ this.cols = 0;
42
+ this.rows = 0;
43
+ this.grid = new Uint32Array(0);
44
+ this.gridClusters = new Map();
45
+ this.dirty = new Uint8Array(0);
46
+ this.cursor = { row: 0, col: 0, visible: true };
47
+ this.modes = {
48
+ cursorKeysApp: false,
49
+ bracketedPaste: false,
50
+ usingAltScreen: false,
51
+ mouseTracking: 0,
52
+ mouseSgr: false,
53
+ mouseEncoding: null,
54
+ focusEvents: false,
55
+ synchronizedOutput: false,
56
+ synchronizedOutputGeneration: 0,
57
+ kittyKeyboardFlags: 0,
58
+ };
59
+ this.title = null;
60
+ this.bells = 0;
61
+ this.responses = [];
62
+ this.resources = {};
63
+ this.scrollback = [];
64
+ this.scrollbackDiscarded = 0;
65
+ this.links = new Map();
66
+ this.listener = null;
67
+ this.worker = worker;
68
+ }
69
+ post(message, transfer = []) {
70
+ this.worker.postMessage(message, transfer);
71
+ }
72
+ /** Stops the worker; the core cannot be used afterwards. */
73
+ dispose() {
74
+ this.listener = null;
75
+ this.worker.terminate();
76
+ }
77
+ setUpdateListener(listener) {
78
+ this.listener = listener;
79
+ }
80
+ resizeMirror(cols, rows) {
81
+ if (cols === this.cols && rows === this.rows)
82
+ return;
83
+ this.cols = cols;
84
+ this.rows = rows;
85
+ this.grid = new Uint32Array(cols * rows * CELL_WORDS);
86
+ this.gridClusters.clear();
87
+ this.dirty = new Uint8Array(rows).fill(1);
88
+ }
89
+ apply(update) {
90
+ this.resizeMirror(update.cols, update.rows);
91
+ for (const [index, uri, id] of update.links)
92
+ this.links.set(index, {
93
+ linkUri: uri,
94
+ linkId: id,
95
+ linkKey: id ? `e\0${id}\0${uri}` : `b\0${index}`,
96
+ });
97
+ const rowWords = update.cols * CELL_WORDS;
98
+ for (let i = 0; i < update.dirtyRows.length; i++) {
99
+ const row = update.dirtyRows[i];
100
+ const src = update.cells.subarray(i * rowWords, (i + 1) * rowWords);
101
+ this.grid.set(src, row * rowWords);
102
+ for (let col = 0; col < update.cols; col++) {
103
+ const key = row * update.cols + col;
104
+ const char = src[col * CELL_WORDS];
105
+ if (char & CLUSTER_BIT)
106
+ this.gridClusters.set(key, update.clusters[char & ~CLUSTER_BIT]);
107
+ else
108
+ this.gridClusters.delete(key);
109
+ }
110
+ this.dirty[row] = 1;
111
+ }
112
+ const sb = update.scrollback;
113
+ if (sb.reset)
114
+ this.scrollback = [];
115
+ let o = 0;
116
+ for (const len of sb.lineLengths) {
117
+ const cells = sb.cells.slice(o, o + len * CELL_WORDS);
118
+ let clusters = null;
119
+ for (let col = 0; col < len; col++) {
120
+ const char = cells[col * CELL_WORDS];
121
+ if (char & CLUSTER_BIT)
122
+ (clusters ?? (clusters = new Map())).set(col, update.clusters[char & ~CLUSTER_BIT]);
123
+ }
124
+ this.scrollback.push({ cells, clusters });
125
+ o += len * CELL_WORDS;
126
+ }
127
+ if (this.scrollback.length > sb.count)
128
+ this.scrollback.splice(0, this.scrollback.length - sb.count);
129
+ this.scrollbackDiscarded = sb.discarded;
130
+ this.cursor = update.cursor;
131
+ this.modes = update.modes;
132
+ if (update.title !== null)
133
+ this.title = update.title;
134
+ this.bells += update.bells;
135
+ this.responses.push(...update.responses);
136
+ this.resources = update.resources;
137
+ this.listener?.();
138
+ }
139
+ unpack(cells, o, cluster) {
140
+ const char = cells[o];
141
+ const w1 = cells[o + 1];
142
+ const w2 = cells[o + 2];
143
+ const cell = {
144
+ char: char & CLUSTER_BIT ? (cluster?.codePointAt(0) ?? 32) : char,
145
+ fg: w1 & 0xffff,
146
+ bg: w1 >>> 16,
147
+ flags: w2 & 0xff,
148
+ width: (w2 >>> 8) & 0xff,
149
+ };
150
+ if (cluster !== undefined)
151
+ cell.chars = cluster;
152
+ if (cells[o + 3] !== NO_RGB)
153
+ cell.fgRgb = cells[o + 3];
154
+ if (cells[o + 4] !== NO_RGB)
155
+ cell.bgRgb = cells[o + 4];
156
+ const link = this.links.get(w2 >>> 16);
157
+ if (link)
158
+ Object.assign(cell, link);
159
+ return cell;
160
+ }
161
+ // -- TerminalCore --
162
+ init(cols, rows) {
163
+ this.links.clear();
164
+ this.scrollback = [];
165
+ this.title = null;
166
+ this.responses = [];
167
+ this.bells = 0;
168
+ this.resizeMirror(clamp(cols, MAX_COLS), clamp(rows, MAX_ROWS));
169
+ this.post({ t: "init", cols, rows });
170
+ }
171
+ resize(cols, rows) {
172
+ this.resizeMirror(clamp(cols, MAX_COLS), clamp(rows, MAX_ROWS));
173
+ this.post({ t: "resize", cols, rows });
174
+ }
175
+ writeString(str) {
176
+ this.post({ t: "write", data: str });
177
+ }
178
+ writeRaw(data) {
179
+ // Copy so the caller may reuse its buffer; the copy moves without cloning.
180
+ const copy = data.slice();
181
+ this.post({ t: "write", data: copy }, [copy.buffer]);
182
+ }
183
+ getCell(row, col) {
184
+ if (row >= this.rows || col >= this.cols)
185
+ return BLANK;
186
+ const key = row * this.cols + col;
187
+ return this.unpack(this.grid, key * CELL_WORDS, this.gridClusters.get(key));
188
+ }
189
+ isDirtyRow(row) {
190
+ return this.dirty[row] === 1;
191
+ }
192
+ clearDirty() {
193
+ this.dirty.fill(0);
194
+ }
195
+ getCols() {
196
+ return this.cols;
197
+ }
198
+ getRows() {
199
+ return this.rows;
200
+ }
201
+ getCursor() {
202
+ return this.cursor;
203
+ }
204
+ cursorKeysApp() {
205
+ return this.modes.cursorKeysApp;
206
+ }
207
+ bracketedPaste() {
208
+ return this.modes.bracketedPaste;
209
+ }
210
+ usingAltScreen() {
211
+ return this.modes.usingAltScreen;
212
+ }
213
+ mouseTracking() {
214
+ return this.modes.mouseTracking;
215
+ }
216
+ mouseSgr() {
217
+ return this.modes.mouseSgr;
218
+ }
219
+ mouseEncoding() {
220
+ return this.modes.mouseEncoding;
221
+ }
222
+ focusEvents() {
223
+ return this.modes.focusEvents;
224
+ }
225
+ synchronizedOutput() {
226
+ return this.modes.synchronizedOutput;
227
+ }
228
+ synchronizedOutputGeneration() {
229
+ return this.modes.synchronizedOutputGeneration;
230
+ }
231
+ kittyKeyboardFlags() {
232
+ return this.modes.kittyKeyboardFlags;
233
+ }
234
+ getTitle() {
235
+ const title = this.title;
236
+ this.title = null;
237
+ return title;
238
+ }
239
+ getBellCount() {
240
+ const bells = this.bells;
241
+ this.bells = 0;
242
+ return bells;
243
+ }
244
+ getResponse() {
245
+ return this.responses.shift() ?? null;
246
+ }
247
+ getResourceState() {
248
+ return this.resources;
249
+ }
250
+ getScrollbackCount() {
251
+ return this.scrollback.length;
252
+ }
253
+ getScrollbackDiscardedCount() {
254
+ return this.scrollbackDiscarded;
255
+ }
256
+ getScrollbackCell(offset, col) {
257
+ const line = this.scrollback[this.scrollback.length - 1 - offset];
258
+ if (!line || col * CELL_WORDS >= line.cells.length)
259
+ return BLANK;
260
+ return this.unpack(line.cells, col * CELL_WORDS, line.clusters?.get(col));
261
+ }
262
+ getScrollbackLineLen(offset) {
263
+ const line = this.scrollback[this.scrollback.length - 1 - offset];
264
+ return line ? line.cells.length / CELL_WORDS : 0;
265
+ }
266
+ /** Unsupported off the main thread; debug tooling sees no entries. */
267
+ getUnhandledSequences() {
268
+ return [];
269
+ }
270
+ }
271
+ function clamp(value, max) {
272
+ return Math.max(1, Math.min(max, Math.floor(value) || 1));
273
+ }
274
+ //# sourceMappingURL=worker-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-core.js","sourceRoot":"","sources":["../src/worker-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { CellData, CursorState, MouseEncoding, TerminalResourceState } from "./terminal-core.js";
2
+ /** 32-bit words per packed cell. */
3
+ export declare const CELL_WORDS = 5;
4
+ /** Marks an absent 24-bit color in a packed cell. */
5
+ export declare const NO_RGB = 4294967295;
6
+ /** Set in the char word when the low bits index the update's cluster table. */
7
+ export declare const CLUSTER_BIT = 2147483648;
8
+ export type ToWorker = {
9
+ t: "load";
10
+ wasmUrl?: string;
11
+ } | {
12
+ t: "init";
13
+ cols: number;
14
+ rows: number;
15
+ } | {
16
+ t: "write";
17
+ data: string | Uint8Array;
18
+ } | {
19
+ t: "resize";
20
+ cols: number;
21
+ rows: number;
22
+ };
23
+ export interface CoreModes {
24
+ cursorKeysApp: boolean;
25
+ bracketedPaste: boolean;
26
+ usingAltScreen: boolean;
27
+ mouseTracking: 0 | 1000 | 1002 | 1003;
28
+ mouseSgr: boolean;
29
+ mouseEncoding: MouseEncoding | null;
30
+ focusEvents: boolean;
31
+ synchronizedOutput: boolean;
32
+ synchronizedOutputGeneration: number;
33
+ kittyKeyboardFlags: number;
34
+ }
35
+ export interface CoreUpdate {
36
+ t: "update";
37
+ cols: number;
38
+ rows: number;
39
+ /** Packed cells for `dirtyRows`, in order, `cols * CELL_WORDS` words each. */
40
+ cells: Uint32Array;
41
+ dirtyRows: Uint16Array;
42
+ cursor: CursorState;
43
+ modes: CoreModes;
44
+ /** A changed title, or null when it did not change. */
45
+ title: string | null;
46
+ bells: number;
47
+ responses: string[];
48
+ resources: TerminalResourceState;
49
+ scrollback: {
50
+ count: number;
51
+ discarded: number;
52
+ /** Replace the mirror instead of appending, newest line last. */
53
+ reset: boolean;
54
+ /** Packed lines, oldest first; `lineLengths[i]` cells each. */
55
+ cells: Uint32Array;
56
+ lineLengths: Uint16Array;
57
+ };
58
+ /** Link table entries first referenced by this update. */
59
+ links: [index: number, uri: string, id: string | undefined][];
60
+ /** Grapheme clusters referenced through CLUSTER_BIT in this update. */
61
+ clusters: string[];
62
+ }
63
+ export type FromWorker = {
64
+ t: "ready";
65
+ } | {
66
+ t: "error";
67
+ message: string;
68
+ } | CoreUpdate;
69
+ /** Writes one cell into `out` at word offset `o`, returning its link index. */
70
+ export declare function packCell(cell: CellData & {
71
+ linkIndex?: number;
72
+ }, out: Uint32Array, o: number, clusters: string[]): void;
73
+ //# sourceMappingURL=worker-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-protocol.d.ts","sourceRoot":"","sources":["../src/worker-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,oCAAoC;AACpC,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,qDAAqD;AACrD,eAAO,MAAM,MAAM,aAAa,CAAC;AACjC,+EAA+E;AAC/E,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,MAAM,MAAM,QAAQ,GAChB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,GACzC;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,QAAQ,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,iEAAiE;QACjE,KAAK,EAAE,OAAO,CAAC;QACf,+DAA+D;QAC/D,KAAK,EAAE,WAAW,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;KAC1B,CAAC;IACF,0DAA0D;IAC1D,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC9D,uEAAuE;IACvE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GACpB;IAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC;AAEhE,+EAA+E;AAC/E,wBAAgB,QAAQ,CACtB,IAAI,EAAE,QAAQ,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EACvC,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAAE,GACjB,IAAI,CAYN"}
@@ -0,0 +1,21 @@
1
+ /** 32-bit words per packed cell. */
2
+ export const CELL_WORDS = 5;
3
+ /** Marks an absent 24-bit color in a packed cell. */
4
+ export const NO_RGB = 0xffffffff;
5
+ /** Set in the char word when the low bits index the update's cluster table. */
6
+ export const CLUSTER_BIT = 0x80000000;
7
+ /** Writes one cell into `out` at word offset `o`, returning its link index. */
8
+ export function packCell(cell, out, o, clusters) {
9
+ out[o] =
10
+ cell.chars !== undefined
11
+ ? (CLUSTER_BIT | (clusters.push(cell.chars) - 1)) >>> 0
12
+ : cell.char;
13
+ out[o + 1] = (cell.fg & 0xffff) | ((cell.bg & 0xffff) << 16);
14
+ out[o + 2] =
15
+ (cell.flags & 0xff) |
16
+ (((cell.width ?? 1) & 0xff) << 8) |
17
+ (((cell.linkIndex ?? 0) & 0xffff) << 16);
18
+ out[o + 3] = cell.fgRgb ?? NO_RGB;
19
+ out[o + 4] = cell.bgRgb ?? NO_RGB;
20
+ }
21
+ //# sourceMappingURL=worker-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-protocol.js","sourceRoot":"","sources":["../src/worker-protocol.ts"],"names":[],"mappings":"AAOA,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,qDAAqD;AACrD,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAqDtC,+EAA+E;AAC/E,MAAM,UAAU,QAAQ,CACtB,IAAuC,EACvC,GAAgB,EAChB,CAAS,EACT,QAAkB;IAElB,GAAG,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,KAAK,SAAS;YACtB,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAChB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACR,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wterm/core",
3
- "version": "0.5.6",
3
+ "version": "0.5.7",
4
4
  "description": "Headless terminal emulator core for the web — WASM bridge and WebSocket transport",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,6 +11,11 @@
11
11
  "import": "./dist/index.js",
12
12
  "default": "./dist/index.js"
13
13
  },
14
+ "./worker": {
15
+ "types": "./dist/worker-core.d.ts",
16
+ "import": "./dist/worker-core.js",
17
+ "default": "./dist/worker-core.js"
18
+ },
14
19
  "./wasm": "./wasm/wterm.wasm"
15
20
  },
16
21
  "files": [
package/wasm/wterm.wasm CHANGED
Binary file