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.
@@ -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":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAqBtC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAwB,EACxB,SAAkC;IAElC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;IAEjC,gEAAgE;IAChE,MAAM,SAAS,GAAG,MAAM,CAAmB,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,GAAG,EAAc,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,QAAoB,EAAE,EAAE;QACrD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAC;QAE9C,SAAS,CAAC,cAAc,GAAG,CAAC,SAA2B,EAAE,EAAE;YACzD,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC;YAC9B,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,OAAO;gBAAE,QAAQ,EAAE,CAAC;QAC1D,CAAC,CAAC;QACF,kDAAkD;QAClD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC3C,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,OAAO;gBAAE,QAAQ,EAAE,CAAC;QAC1D,CAAC;QAED,SAAS,CAAC,SAAS,GAAG,CAAC,IAAiB,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAClC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM;gBACR,CAAC;gBACD,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM;gBACR,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,MAAM,GAAG,GAAa,EAAE,CAAC;oBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACtB,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;4BAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC/C,CAAC;oBACH,CAAC;oBACD,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;oBACnC,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC7C,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,SAAS,GAAG,aAAa,CAAC;YACpC,SAAS,CAAC,cAAc,GAAG,YAAY,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,iCAAiC;IAEjC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,KAAa,EAAE,IAAgB,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAAa,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;QACvB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAY,EAAE,IAAY,EAAE,OAAgB,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE;YAClC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,IAAI,YAAY;YAAE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;QACvB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,SAAS;QACT,aAAa;QACb,eAAe;KAChB,CAAC;AACJ,CAAC"}
@@ -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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"}
@@ -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