blit-react 0.1.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.
- package/dist/BlitTerminal.d.ts +21 -0
- package/dist/BlitTerminal.d.ts.map +1 -0
- package/dist/BlitTerminal.js +910 -0
- package/dist/BlitTerminal.js.map +1 -0
- package/dist/hooks/useBlitConnection.d.ts +35 -0
- package/dist/hooks/useBlitConnection.d.ts.map +1 -0
- package/dist/hooks/useBlitConnection.js +183 -0
- package/dist/hooks/useBlitConnection.js.map +1 -0
- package/dist/hooks/useBlitTerminal.d.ts +40 -0
- package/dist/hooks/useBlitTerminal.d.ts.map +1 -0
- package/dist/hooks/useBlitTerminal.js +72 -0
- package/dist/hooks/useBlitTerminal.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/transports/websocket.d.ts +41 -0
- package/dist/transports/websocket.d.ts.map +1 -0
- package/dist/transports/websocket.js +131 -0
- package/dist/transports/websocket.js.map +1 -0
- package/dist/types.d.ts +63 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlitTerminal.js","sourceRoot":"","sources":["../src/BlitTerminal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { BlitTransport, ConnectionStatus } from '../types';
|
|
2
|
+
export interface ServerMessage {
|
|
3
|
+
type: number;
|
|
4
|
+
ptyId: number;
|
|
5
|
+
/** Raw payload after the 3-byte header (only for S2C_UPDATE). */
|
|
6
|
+
payload?: Uint8Array;
|
|
7
|
+
/** Decoded title string (only for S2C_TITLE). */
|
|
8
|
+
title?: string;
|
|
9
|
+
/** List of PTY IDs (only for S2C_LIST). */
|
|
10
|
+
ptyIds?: number[];
|
|
11
|
+
}
|
|
12
|
+
export interface BlitConnectionCallbacks {
|
|
13
|
+
onUpdate?: (ptyId: number, payload: Uint8Array) => void;
|
|
14
|
+
onCreated?: (ptyId: number) => void;
|
|
15
|
+
onClosed?: (ptyId: number) => void;
|
|
16
|
+
onList?: (ptyIds: number[]) => void;
|
|
17
|
+
onTitle?: (ptyId: number, title: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Hook that manages a blit transport connection, parsing server messages
|
|
21
|
+
* and providing helper functions for sending client messages.
|
|
22
|
+
*/
|
|
23
|
+
export declare function useBlitConnection(transport: BlitTransport, callbacks: BlitConnectionCallbacks): {
|
|
24
|
+
status: ConnectionStatus;
|
|
25
|
+
sendAck: () => void;
|
|
26
|
+
sendInput: (ptyId: number, data: Uint8Array) => void;
|
|
27
|
+
sendResize: (ptyId: number, rows: number, cols: number) => void;
|
|
28
|
+
sendScroll: (ptyId: number, offset: number) => void;
|
|
29
|
+
sendCreate: (rows: number, cols: number, command?: string) => void;
|
|
30
|
+
sendFocus: (ptyId: number) => void;
|
|
31
|
+
sendClose: (ptyId: number) => void;
|
|
32
|
+
sendSubscribe: (ptyId: number) => void;
|
|
33
|
+
sendUnsubscribe: (ptyId: number) => void;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=useBlitConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useBlitConnection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoBhE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,uBAAuB;;;uBA+FxB,MAAM,QAAQ,UAAU;wBAYxB,MAAM,QAAQ,MAAM,QAAQ,MAAM;wBAelC,MAAM,UAAU,MAAM;uBAevB,MAAM,QAAQ,MAAM,YAAY,MAAM;uBAkBrC,MAAM;uBAWN,MAAM;2BAWN,MAAM;6BAWN,MAAM;EAsBjB"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useSyncExternalStore } from 'react';
|
|
2
|
+
import { S2C_UPDATE, S2C_CREATED, S2C_CLOSED, S2C_LIST, S2C_TITLE, C2S_ACK, C2S_SUBSCRIBE, C2S_UNSUBSCRIBE, C2S_CREATE, C2S_CLOSE, C2S_FOCUS, C2S_RESIZE, C2S_INPUT, C2S_SCROLL, } from '../types';
|
|
3
|
+
const textDecoder = new TextDecoder();
|
|
4
|
+
/**
|
|
5
|
+
* Hook that manages a blit transport connection, parsing server messages
|
|
6
|
+
* and providing helper functions for sending client messages.
|
|
7
|
+
*/
|
|
8
|
+
export function useBlitConnection(transport, callbacks) {
|
|
9
|
+
const callbacksRef = useRef(callbacks);
|
|
10
|
+
callbacksRef.current = callbacks;
|
|
11
|
+
// Status tracking via useSyncExternalStore for tear-free reads.
|
|
12
|
+
const statusRef = useRef(transport.status);
|
|
13
|
+
const listenersRef = useRef(new Set());
|
|
14
|
+
const subscribe = useCallback((listener) => {
|
|
15
|
+
listenersRef.current.add(listener);
|
|
16
|
+
return () => {
|
|
17
|
+
listenersRef.current.delete(listener);
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
const getSnapshot = useCallback(() => statusRef.current, []);
|
|
21
|
+
const status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const prevOnMessage = transport.onmessage;
|
|
24
|
+
const prevOnStatus = transport.onstatuschange;
|
|
25
|
+
transport.onstatuschange = (newStatus) => {
|
|
26
|
+
statusRef.current = newStatus;
|
|
27
|
+
for (const listener of listenersRef.current)
|
|
28
|
+
listener();
|
|
29
|
+
};
|
|
30
|
+
// Sync in case status changed before we attached.
|
|
31
|
+
if (statusRef.current !== transport.status) {
|
|
32
|
+
statusRef.current = transport.status;
|
|
33
|
+
for (const listener of listenersRef.current)
|
|
34
|
+
listener();
|
|
35
|
+
}
|
|
36
|
+
transport.onmessage = (data) => {
|
|
37
|
+
const bytes = new Uint8Array(data);
|
|
38
|
+
if (bytes.length === 0)
|
|
39
|
+
return;
|
|
40
|
+
const type = bytes[0];
|
|
41
|
+
switch (type) {
|
|
42
|
+
case S2C_UPDATE: {
|
|
43
|
+
if (bytes.length < 3)
|
|
44
|
+
break;
|
|
45
|
+
const ptyId = bytes[1] | (bytes[2] << 8);
|
|
46
|
+
const payload = bytes.subarray(3);
|
|
47
|
+
callbacksRef.current.onUpdate?.(ptyId, payload);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case S2C_CREATED: {
|
|
51
|
+
if (bytes.length < 3)
|
|
52
|
+
break;
|
|
53
|
+
const ptyId = bytes[1] | (bytes[2] << 8);
|
|
54
|
+
callbacksRef.current.onCreated?.(ptyId);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case S2C_CLOSED: {
|
|
58
|
+
if (bytes.length < 3)
|
|
59
|
+
break;
|
|
60
|
+
const ptyId = bytes[1] | (bytes[2] << 8);
|
|
61
|
+
callbacksRef.current.onClosed?.(ptyId);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case S2C_LIST: {
|
|
65
|
+
if (bytes.length < 3)
|
|
66
|
+
break;
|
|
67
|
+
const count = bytes[1] | (bytes[2] << 8);
|
|
68
|
+
const ids = [];
|
|
69
|
+
for (let i = 0; i < count; i++) {
|
|
70
|
+
const off = 3 + i * 2;
|
|
71
|
+
if (off + 1 < bytes.length) {
|
|
72
|
+
ids.push(bytes[off] | (bytes[off + 1] << 8));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
callbacksRef.current.onList?.(ids);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case S2C_TITLE: {
|
|
79
|
+
if (bytes.length < 3)
|
|
80
|
+
break;
|
|
81
|
+
const ptyId = bytes[1] | (bytes[2] << 8);
|
|
82
|
+
const title = textDecoder.decode(bytes.subarray(3));
|
|
83
|
+
callbacksRef.current.onTitle?.(ptyId, title);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return () => {
|
|
89
|
+
transport.onmessage = prevOnMessage;
|
|
90
|
+
transport.onstatuschange = prevOnStatus;
|
|
91
|
+
};
|
|
92
|
+
}, [transport]);
|
|
93
|
+
// --- Client message helpers ---
|
|
94
|
+
const sendAck = useCallback(() => {
|
|
95
|
+
transport.send(new Uint8Array([C2S_ACK]));
|
|
96
|
+
}, [transport]);
|
|
97
|
+
const sendInput = useCallback((ptyId, data) => {
|
|
98
|
+
const msg = new Uint8Array(3 + data.length);
|
|
99
|
+
msg[0] = C2S_INPUT;
|
|
100
|
+
msg[1] = ptyId & 0xff;
|
|
101
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
102
|
+
msg.set(data, 3);
|
|
103
|
+
transport.send(msg);
|
|
104
|
+
}, [transport]);
|
|
105
|
+
const sendResize = useCallback((ptyId, rows, cols) => {
|
|
106
|
+
const msg = new Uint8Array(7);
|
|
107
|
+
msg[0] = C2S_RESIZE;
|
|
108
|
+
msg[1] = ptyId & 0xff;
|
|
109
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
110
|
+
msg[3] = rows & 0xff;
|
|
111
|
+
msg[4] = (rows >> 8) & 0xff;
|
|
112
|
+
msg[5] = cols & 0xff;
|
|
113
|
+
msg[6] = (cols >> 8) & 0xff;
|
|
114
|
+
transport.send(msg);
|
|
115
|
+
}, [transport]);
|
|
116
|
+
const sendScroll = useCallback((ptyId, offset) => {
|
|
117
|
+
const msg = new Uint8Array(7);
|
|
118
|
+
msg[0] = C2S_SCROLL;
|
|
119
|
+
msg[1] = ptyId & 0xff;
|
|
120
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
121
|
+
msg[3] = offset & 0xff;
|
|
122
|
+
msg[4] = (offset >> 8) & 0xff;
|
|
123
|
+
msg[5] = (offset >> 16) & 0xff;
|
|
124
|
+
msg[6] = (offset >> 24) & 0xff;
|
|
125
|
+
transport.send(msg);
|
|
126
|
+
}, [transport]);
|
|
127
|
+
const sendCreate = useCallback((rows, cols, command) => {
|
|
128
|
+
const encoder = new TextEncoder();
|
|
129
|
+
const commandBytes = command?.trim()
|
|
130
|
+
? encoder.encode(command.trim())
|
|
131
|
+
: null;
|
|
132
|
+
const msg = new Uint8Array(5 + (commandBytes ? commandBytes.length : 0));
|
|
133
|
+
msg[0] = C2S_CREATE;
|
|
134
|
+
msg[1] = rows & 0xff;
|
|
135
|
+
msg[2] = (rows >> 8) & 0xff;
|
|
136
|
+
msg[3] = cols & 0xff;
|
|
137
|
+
msg[4] = (cols >> 8) & 0xff;
|
|
138
|
+
if (commandBytes)
|
|
139
|
+
msg.set(commandBytes, 5);
|
|
140
|
+
transport.send(msg);
|
|
141
|
+
}, [transport]);
|
|
142
|
+
const sendFocus = useCallback((ptyId) => {
|
|
143
|
+
const msg = new Uint8Array(3);
|
|
144
|
+
msg[0] = C2S_FOCUS;
|
|
145
|
+
msg[1] = ptyId & 0xff;
|
|
146
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
147
|
+
transport.send(msg);
|
|
148
|
+
}, [transport]);
|
|
149
|
+
const sendClose = useCallback((ptyId) => {
|
|
150
|
+
const msg = new Uint8Array(3);
|
|
151
|
+
msg[0] = C2S_CLOSE;
|
|
152
|
+
msg[1] = ptyId & 0xff;
|
|
153
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
154
|
+
transport.send(msg);
|
|
155
|
+
}, [transport]);
|
|
156
|
+
const sendSubscribe = useCallback((ptyId) => {
|
|
157
|
+
const msg = new Uint8Array(3);
|
|
158
|
+
msg[0] = C2S_SUBSCRIBE;
|
|
159
|
+
msg[1] = ptyId & 0xff;
|
|
160
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
161
|
+
transport.send(msg);
|
|
162
|
+
}, [transport]);
|
|
163
|
+
const sendUnsubscribe = useCallback((ptyId) => {
|
|
164
|
+
const msg = new Uint8Array(3);
|
|
165
|
+
msg[0] = C2S_UNSUBSCRIBE;
|
|
166
|
+
msg[1] = ptyId & 0xff;
|
|
167
|
+
msg[2] = (ptyId >> 8) & 0xff;
|
|
168
|
+
transport.send(msg);
|
|
169
|
+
}, [transport]);
|
|
170
|
+
return {
|
|
171
|
+
status,
|
|
172
|
+
sendAck,
|
|
173
|
+
sendInput,
|
|
174
|
+
sendResize,
|
|
175
|
+
sendScroll,
|
|
176
|
+
sendCreate,
|
|
177
|
+
sendFocus,
|
|
178
|
+
sendClose,
|
|
179
|
+
sendSubscribe,
|
|
180
|
+
sendUnsubscribe,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=useBlitConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitConnection.js","sourceRoot":"","sources":["../../src/hooks/useBlitConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Terminal } from 'blit-browser';
|
|
2
|
+
export interface CellMetrics {
|
|
3
|
+
/** CSS pixel width. */
|
|
4
|
+
w: number;
|
|
5
|
+
/** CSS pixel height. */
|
|
6
|
+
h: number;
|
|
7
|
+
/** Device pixel width (integer). */
|
|
8
|
+
pw: number;
|
|
9
|
+
/** Device pixel height (integer). */
|
|
10
|
+
ph: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Measure the dimensions of a single monospace cell by rendering 'M'
|
|
14
|
+
* into a hidden span, then snapping to device pixel boundaries.
|
|
15
|
+
*/
|
|
16
|
+
export declare function measureCell(fontFamily: string, fontSize: number): CellMetrics;
|
|
17
|
+
export interface UseBlitTerminalOptions {
|
|
18
|
+
fontFamily?: string;
|
|
19
|
+
fontSize?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Hook managing a WASM Terminal instance, cell measurement, and
|
|
23
|
+
* grid dimension computation for a given container size.
|
|
24
|
+
*/
|
|
25
|
+
export declare function useBlitTerminal(options?: UseBlitTerminalOptions): {
|
|
26
|
+
cell: CellMetrics;
|
|
27
|
+
dimensions: {
|
|
28
|
+
rows: number;
|
|
29
|
+
cols: number;
|
|
30
|
+
};
|
|
31
|
+
terminal: Terminal | null;
|
|
32
|
+
terminalRef: import("react").MutableRefObject<Terminal | null>;
|
|
33
|
+
computeSize: (containerWidth: number, containerHeight: number) => {
|
|
34
|
+
rows: number;
|
|
35
|
+
cols: number;
|
|
36
|
+
};
|
|
37
|
+
createTerminal: (TerminalClass: typeof Terminal, rows: number, cols: number) => Terminal;
|
|
38
|
+
destroyTerminal: () => void;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=useBlitTerminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitTerminal.d.ts","sourceRoot":"","sources":["../../src/hooks/useBlitTerminal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAY7E;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB;;;cAQT,MAAM;cAAQ,MAAM;;;;kCAgBtD,MAAM,mBAAmB,MAAM;;;;oCAUhC,OAAO,QAAQ,QAAQ,MAAM,QAAQ,MAAM;;EA4B9D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
const DEFAULT_FONT = '"PragmataPro Liga", "PragmataPro", ui-monospace, monospace';
|
|
3
|
+
/**
|
|
4
|
+
* Measure the dimensions of a single monospace cell by rendering 'M'
|
|
5
|
+
* into a hidden span, then snapping to device pixel boundaries.
|
|
6
|
+
*/
|
|
7
|
+
export function measureCell(fontFamily, fontSize) {
|
|
8
|
+
const span = document.createElement('span');
|
|
9
|
+
span.style.cssText = `font: ${fontSize}px ${fontFamily}; position: absolute; visibility: hidden; white-space: pre;`;
|
|
10
|
+
span.textContent = 'M';
|
|
11
|
+
document.body.appendChild(span);
|
|
12
|
+
const rect = span.getBoundingClientRect();
|
|
13
|
+
document.body.removeChild(span);
|
|
14
|
+
const dpr = window.devicePixelRatio || 1;
|
|
15
|
+
const pw = Math.round(rect.width * dpr);
|
|
16
|
+
const ph = Math.round(rect.height * dpr);
|
|
17
|
+
return { w: pw / dpr, h: ph / dpr, pw, ph };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Hook managing a WASM Terminal instance, cell measurement, and
|
|
21
|
+
* grid dimension computation for a given container size.
|
|
22
|
+
*/
|
|
23
|
+
export function useBlitTerminal(options) {
|
|
24
|
+
const fontFamily = options?.fontFamily ?? DEFAULT_FONT;
|
|
25
|
+
const fontSize = options?.fontSize ?? 13;
|
|
26
|
+
const [cell, setCell] = useState(() => measureCell(fontFamily, fontSize));
|
|
27
|
+
const terminalRef = useRef(null);
|
|
28
|
+
const [dimensions, setDimensions] = useState({
|
|
29
|
+
rows: 24,
|
|
30
|
+
cols: 80,
|
|
31
|
+
});
|
|
32
|
+
// Re-measure when font changes.
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const newCell = measureCell(fontFamily, fontSize);
|
|
35
|
+
setCell(newCell);
|
|
36
|
+
if (terminalRef.current) {
|
|
37
|
+
terminalRef.current.set_cell_size(newCell.pw, newCell.ph);
|
|
38
|
+
terminalRef.current.set_font_family(fontFamily);
|
|
39
|
+
}
|
|
40
|
+
}, [fontFamily, fontSize]);
|
|
41
|
+
const computeSize = useCallback((containerWidth, containerHeight) => {
|
|
42
|
+
const cols = Math.max(1, Math.floor(containerWidth / cell.w));
|
|
43
|
+
const rows = Math.max(1, Math.floor(containerHeight / cell.h));
|
|
44
|
+
setDimensions({ rows, cols });
|
|
45
|
+
return { rows, cols };
|
|
46
|
+
}, [cell]);
|
|
47
|
+
const createTerminal = useCallback((TerminalClass, rows, cols) => {
|
|
48
|
+
if (terminalRef.current) {
|
|
49
|
+
terminalRef.current.free();
|
|
50
|
+
}
|
|
51
|
+
const t = new TerminalClass(rows, cols, cell.pw, cell.ph);
|
|
52
|
+
t.set_font_family(fontFamily);
|
|
53
|
+
terminalRef.current = t;
|
|
54
|
+
return t;
|
|
55
|
+
}, [cell, fontFamily]);
|
|
56
|
+
const destroyTerminal = useCallback(() => {
|
|
57
|
+
if (terminalRef.current) {
|
|
58
|
+
terminalRef.current.free();
|
|
59
|
+
terminalRef.current = null;
|
|
60
|
+
}
|
|
61
|
+
}, []);
|
|
62
|
+
return {
|
|
63
|
+
cell,
|
|
64
|
+
dimensions,
|
|
65
|
+
terminal: terminalRef.current,
|
|
66
|
+
terminalRef,
|
|
67
|
+
computeSize,
|
|
68
|
+
createTerminal,
|
|
69
|
+
destroyTerminal,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=useBlitTerminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitTerminal.js","sourceRoot":"","sources":["../../src/hooks/useBlitTerminal.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { BlitTerminal } from './BlitTerminal';
|
|
2
|
+
export type { BlitTerminalHandle } from './BlitTerminal';
|
|
3
|
+
export { useBlitConnection } from './hooks/useBlitConnection';
|
|
4
|
+
export type { BlitConnectionCallbacks } from './hooks/useBlitConnection';
|
|
5
|
+
export { useBlitTerminal, measureCell } from './hooks/useBlitTerminal';
|
|
6
|
+
export type { CellMetrics, UseBlitTerminalOptions } from './hooks/useBlitTerminal';
|
|
7
|
+
export { WebSocketTransport } from './transports/websocket';
|
|
8
|
+
export type { WebSocketTransportOptions } from './transports/websocket';
|
|
9
|
+
export type { BlitTransport, BlitTerminalProps, ConnectionStatus, } from './types';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { BlitTerminal } from './BlitTerminal';
|
|
2
|
+
export { useBlitConnection } from './hooks/useBlitConnection';
|
|
3
|
+
export { useBlitTerminal, measureCell } from './hooks/useBlitTerminal';
|
|
4
|
+
export { WebSocketTransport } from './transports/websocket';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BlitTransport, ConnectionStatus } from '../types';
|
|
2
|
+
export interface WebSocketTransportOptions {
|
|
3
|
+
/** Enable automatic reconnection on disconnect. Default: true. */
|
|
4
|
+
reconnect?: boolean;
|
|
5
|
+
/** Initial reconnect delay in ms. Default: 500. */
|
|
6
|
+
reconnectDelay?: number;
|
|
7
|
+
/** Maximum reconnect delay in ms. Default: 10000. */
|
|
8
|
+
maxReconnectDelay?: number;
|
|
9
|
+
/** Backoff multiplier for reconnect delay. Default: 1.5. */
|
|
10
|
+
reconnectBackoff?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* WebSocket-based transport for the blit protocol.
|
|
14
|
+
*
|
|
15
|
+
* Handles connection, passphrase authentication, binary message framing,
|
|
16
|
+
* and optional reconnection with exponential backoff.
|
|
17
|
+
*/
|
|
18
|
+
export declare class WebSocketTransport implements BlitTransport {
|
|
19
|
+
private ws;
|
|
20
|
+
private _status;
|
|
21
|
+
private reconnectTimer;
|
|
22
|
+
private currentDelay;
|
|
23
|
+
private disposed;
|
|
24
|
+
onmessage: ((data: ArrayBuffer) => void) | null;
|
|
25
|
+
onstatuschange: ((status: ConnectionStatus) => void) | null;
|
|
26
|
+
private readonly url;
|
|
27
|
+
private readonly passphrase;
|
|
28
|
+
private readonly reconnect;
|
|
29
|
+
private readonly initialDelay;
|
|
30
|
+
private readonly maxDelay;
|
|
31
|
+
private readonly backoff;
|
|
32
|
+
constructor(url: string, passphrase: string, options?: WebSocketTransportOptions);
|
|
33
|
+
get status(): ConnectionStatus;
|
|
34
|
+
send(data: Uint8Array): void;
|
|
35
|
+
close(): void;
|
|
36
|
+
private setStatus;
|
|
37
|
+
private clearReconnectTimer;
|
|
38
|
+
private scheduleReconnect;
|
|
39
|
+
private connect;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/transports/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAS;IAEzB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACvD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB;IAWhF,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM5B,KAAK,IAAI,IAAI;IAcb,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,OAAO;CA+DhB"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket-based transport for the blit protocol.
|
|
3
|
+
*
|
|
4
|
+
* Handles connection, passphrase authentication, binary message framing,
|
|
5
|
+
* and optional reconnection with exponential backoff.
|
|
6
|
+
*/
|
|
7
|
+
export class WebSocketTransport {
|
|
8
|
+
constructor(url, passphrase, options) {
|
|
9
|
+
this.ws = null;
|
|
10
|
+
this._status = 'disconnected';
|
|
11
|
+
this.reconnectTimer = null;
|
|
12
|
+
this.disposed = false;
|
|
13
|
+
this.onmessage = null;
|
|
14
|
+
this.onstatuschange = null;
|
|
15
|
+
this.url = url;
|
|
16
|
+
this.passphrase = passphrase;
|
|
17
|
+
this.reconnect = options?.reconnect ?? true;
|
|
18
|
+
this.initialDelay = options?.reconnectDelay ?? 500;
|
|
19
|
+
this.maxDelay = options?.maxReconnectDelay ?? 10000;
|
|
20
|
+
this.backoff = options?.reconnectBackoff ?? 1.5;
|
|
21
|
+
this.currentDelay = this.initialDelay;
|
|
22
|
+
this.connect();
|
|
23
|
+
}
|
|
24
|
+
get status() {
|
|
25
|
+
return this._status;
|
|
26
|
+
}
|
|
27
|
+
send(data) {
|
|
28
|
+
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
29
|
+
this.ws.send(data);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
close() {
|
|
33
|
+
this.disposed = true;
|
|
34
|
+
this.clearReconnectTimer();
|
|
35
|
+
if (this.ws) {
|
|
36
|
+
this.ws.onclose = null;
|
|
37
|
+
this.ws.onerror = null;
|
|
38
|
+
this.ws.onmessage = null;
|
|
39
|
+
this.ws.onopen = null;
|
|
40
|
+
this.ws.close();
|
|
41
|
+
this.ws = null;
|
|
42
|
+
}
|
|
43
|
+
this.setStatus('disconnected');
|
|
44
|
+
}
|
|
45
|
+
setStatus(status) {
|
|
46
|
+
if (this._status === status)
|
|
47
|
+
return;
|
|
48
|
+
this._status = status;
|
|
49
|
+
this.onstatuschange?.(status);
|
|
50
|
+
}
|
|
51
|
+
clearReconnectTimer() {
|
|
52
|
+
if (this.reconnectTimer !== null) {
|
|
53
|
+
clearTimeout(this.reconnectTimer);
|
|
54
|
+
this.reconnectTimer = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
scheduleReconnect() {
|
|
58
|
+
if (this.disposed || !this.reconnect)
|
|
59
|
+
return;
|
|
60
|
+
this.clearReconnectTimer();
|
|
61
|
+
this.reconnectTimer = setTimeout(() => {
|
|
62
|
+
this.reconnectTimer = null;
|
|
63
|
+
if (!this.disposed) {
|
|
64
|
+
this.connect();
|
|
65
|
+
}
|
|
66
|
+
}, this.currentDelay);
|
|
67
|
+
this.currentDelay = Math.min(this.currentDelay * this.backoff, this.maxDelay);
|
|
68
|
+
}
|
|
69
|
+
connect() {
|
|
70
|
+
if (this.disposed)
|
|
71
|
+
return;
|
|
72
|
+
this.setStatus('connecting');
|
|
73
|
+
const socket = new WebSocket(this.url);
|
|
74
|
+
socket.binaryType = 'arraybuffer';
|
|
75
|
+
if (this.ws && this.ws !== socket) {
|
|
76
|
+
try {
|
|
77
|
+
this.ws.onclose = null;
|
|
78
|
+
this.ws.close();
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Ignore close errors on stale socket.
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.ws = socket;
|
|
85
|
+
let authenticated = false;
|
|
86
|
+
socket.onopen = () => {
|
|
87
|
+
if (this.ws !== socket || this.disposed)
|
|
88
|
+
return;
|
|
89
|
+
this.setStatus('authenticating');
|
|
90
|
+
socket.send(this.passphrase);
|
|
91
|
+
};
|
|
92
|
+
socket.onmessage = (e) => {
|
|
93
|
+
if (this.ws !== socket || this.disposed)
|
|
94
|
+
return;
|
|
95
|
+
if (typeof e.data === 'string') {
|
|
96
|
+
if (e.data === 'ok') {
|
|
97
|
+
authenticated = true;
|
|
98
|
+
this.currentDelay = this.initialDelay;
|
|
99
|
+
this.setStatus('connected');
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// Authentication failed — do not reconnect.
|
|
103
|
+
this.setStatus('error');
|
|
104
|
+
socket.close();
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (authenticated && e.data instanceof ArrayBuffer) {
|
|
109
|
+
this.onmessage?.(e.data);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
socket.onerror = () => {
|
|
113
|
+
if (this.ws !== socket || this.disposed)
|
|
114
|
+
return;
|
|
115
|
+
if (!authenticated) {
|
|
116
|
+
this.setStatus('error');
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
socket.onclose = () => {
|
|
120
|
+
if (this.ws !== socket || this.disposed)
|
|
121
|
+
return;
|
|
122
|
+
this.ws = null;
|
|
123
|
+
const wasConnected = authenticated;
|
|
124
|
+
this.setStatus('disconnected');
|
|
125
|
+
if (wasConnected) {
|
|
126
|
+
this.scheduleReconnect();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=websocket.js.map
|