@blit-sh/core 0.19.0 → 0.20.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/BlitConnection.d.ts +16 -2
- package/dist/BlitConnection.d.ts.map +1 -1
- package/dist/BlitConnection.js +183 -8
- package/dist/BlitConnection.js.map +1 -1
- package/dist/BlitSurfaceCanvas.d.ts +122 -0
- package/dist/BlitSurfaceCanvas.d.ts.map +1 -0
- package/dist/BlitSurfaceCanvas.js +582 -0
- package/dist/BlitSurfaceCanvas.js.map +1 -0
- package/dist/BlitTerminalSurface.d.ts +12 -0
- package/dist/BlitTerminalSurface.d.ts.map +1 -1
- package/dist/BlitTerminalSurface.js +51 -1
- package/dist/BlitTerminalSurface.js.map +1 -1
- package/dist/BlitWorkspace.d.ts +2 -0
- package/dist/BlitWorkspace.d.ts.map +1 -1
- package/dist/BlitWorkspace.js +27 -0
- package/dist/BlitWorkspace.js.map +1 -1
- package/dist/SurfaceStore.d.ts +69 -0
- package/dist/SurfaceStore.d.ts.map +1 -0
- package/dist/SurfaceStore.js +494 -0
- package/dist/SurfaceStore.js.map +1 -0
- package/dist/TerminalStore.d.ts.map +1 -1
- package/dist/TerminalStore.js +4 -1
- package/dist/TerminalStore.js.map +1 -1
- package/dist/bsp/index.d.ts +1 -1
- package/dist/bsp/index.d.ts.map +1 -1
- package/dist/bsp/index.js +1 -1
- package/dist/bsp/index.js.map +1 -1
- package/dist/bsp/layout.d.ts +9 -1
- package/dist/bsp/layout.d.ts.map +1 -1
- package/dist/bsp/layout.js +36 -4
- package/dist/bsp/layout.js.map +1 -1
- package/dist/gl-renderer.d.ts +6 -0
- package/dist/gl-renderer.d.ts.map +1 -1
- package/dist/gl-renderer.js +132 -0
- package/dist/gl-renderer.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/keyboard.d.ts +6 -0
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +25 -0
- package/dist/keyboard.js.map +1 -1
- package/dist/protocol.d.ts +19 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +124 -1
- package/dist/protocol.js.map +1 -1
- package/dist/transports/webrtc-share.d.ts.map +1 -1
- package/dist/transports/webrtc-share.js +162 -61
- package/dist/transports/webrtc-share.js.map +1 -1
- package/dist/transports/webtransport.d.ts.map +1 -1
- package/dist/transports/webtransport.js +3 -1
- package/dist/transports/webtransport.js.map +1 -1
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +29 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/BlitConnection.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BlitConnectionSnapshot, BlitSearchResult, BlitSession, BlitTransport, ConnectionId, SessionId, TerminalPalette } from "./types";
|
|
2
|
+
import { SurfaceStore } from "./SurfaceStore";
|
|
2
3
|
import { TerminalStore, type BlitWasmModule } from "./TerminalStore";
|
|
3
4
|
export declare const SEARCH_SOURCE_TITLE = 0;
|
|
4
5
|
export declare const SEARCH_SOURCE_VISIBLE = 1;
|
|
@@ -26,8 +27,9 @@ type ResizeSessionOptions = {
|
|
|
26
27
|
};
|
|
27
28
|
export declare class BlitConnection {
|
|
28
29
|
readonly id: ConnectionId;
|
|
29
|
-
|
|
30
|
+
readonly transport: BlitTransport;
|
|
30
31
|
private readonly store;
|
|
32
|
+
readonly surfaceStore: SurfaceStore;
|
|
31
33
|
private readonly listeners;
|
|
32
34
|
private readonly sessionsById;
|
|
33
35
|
private readonly currentSessionIdByPtyId;
|
|
@@ -61,7 +63,9 @@ export declare class BlitConnection {
|
|
|
61
63
|
dispose(): void;
|
|
62
64
|
setVisibleSessionIds(sessionIds: Iterable<SessionId>): void;
|
|
63
65
|
getSession(sessionId: SessionId): BlitSession | null;
|
|
64
|
-
getDebugStats(sessionId: SessionId | null): ReturnType<TerminalStore["getDebugStats"]
|
|
66
|
+
getDebugStats(sessionId: SessionId | null): ReturnType<TerminalStore["getDebugStats"]> & {
|
|
67
|
+
surfaces: ReturnType<import("./SurfaceStore").SurfaceStore["getDebugStats"]>;
|
|
68
|
+
};
|
|
65
69
|
createSession(options: CreateSessionOptions): Promise<BlitSession>;
|
|
66
70
|
copyRange(sessionId: SessionId, startTail: number, startCol: number, endTail: number, endCol: number): Promise<string>;
|
|
67
71
|
supportsCopyRange(): boolean;
|
|
@@ -111,6 +115,16 @@ export declare class BlitConnection {
|
|
|
111
115
|
setFontFamily(f: string): void;
|
|
112
116
|
setFontSize(s: number): void;
|
|
113
117
|
setPalette(p: TerminalPalette): void;
|
|
118
|
+
sendSurfaceInput(sessionId: number, surfaceId: number, keycode: number, pressed: boolean): void;
|
|
119
|
+
sendSurfacePointer(sessionId: number, surfaceId: number, type: number, button: number, x: number, y: number): void;
|
|
120
|
+
sendSurfaceAxis(sessionId: number, surfaceId: number, axis: number, valueX100: number): void;
|
|
121
|
+
sendSurfaceResize(sessionId: number, surfaceId: number, width: number, height: number, scale120?: number, codecSupport?: number): void;
|
|
122
|
+
sendSurfaceFocus(sessionId: number, surfaceId: number): void;
|
|
123
|
+
sendSurfaceClose(sessionId: number, surfaceId: number): void;
|
|
124
|
+
private surfaceSubRefCounts;
|
|
125
|
+
sendSurfaceSubscribe(sessionId: number, surfaceId: number): void;
|
|
126
|
+
sendSurfaceUnsubscribe(sessionId: number, surfaceId: number): void;
|
|
127
|
+
sendClipboard(sessionId: number, surfaceId: number, mimeType: string, data: Uint8Array): void;
|
|
114
128
|
isReady(): boolean;
|
|
115
129
|
onReady(listener: () => void): () => void;
|
|
116
130
|
private emit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlitConnection.d.ts","sourceRoot":"","sources":["../src/BlitConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EAEZ,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BlitConnection.d.ts","sourceRoot":"","sources":["../src/BlitConnection.ts"],"names":[],"mappings":"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"}
|
package/dist/BlitConnection.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { FEATURE_COPY_RANGE, FEATURE_CREATE_NONCE, FEATURE_RESIZE_BATCH, FEATURE_RESTART, PROTOCOL_VERSION, S2C_CLOSED, S2C_CREATED, S2C_CREATED_N, S2C_EXITED, S2C_HELLO, S2C_LIST, S2C_SEARCH_RESULTS, S2C_TEXT, S2C_TITLE, S2C_UPDATE, } from "./types";
|
|
2
|
-
import { buildCloseMessage, buildClearResizeBatchMessage, buildClearResizeMessage, buildCopyRangeMessage, buildCreate2Message, buildFocusMessage, buildInputMessage, buildMouseMessage, buildResizeBatchMessage, buildResizeMessage, buildKillMessage, buildRestartMessage, buildScrollMessage, buildSearchMessage, } from "./protocol";
|
|
1
|
+
import { FEATURE_COMPOSITOR, FEATURE_COPY_RANGE, FEATURE_CREATE_NONCE, FEATURE_RESIZE_BATCH, FEATURE_RESTART, PROTOCOL_VERSION, S2C_CLIPBOARD_MSG, S2C_CLOSED, S2C_CREATED, S2C_CREATED_N, S2C_EXITED, S2C_HELLO, S2C_LIST, S2C_SEARCH_RESULTS, S2C_SURFACE_APP_ID, S2C_SURFACE_CREATED, S2C_SURFACE_DESTROYED, S2C_SURFACE_FRAME, S2C_SURFACE_RESIZED, S2C_SURFACE_TITLE, S2C_TEXT, S2C_TITLE, S2C_UPDATE, } from "./types";
|
|
2
|
+
import { buildCloseMessage, buildClearResizeBatchMessage, buildClearResizeMessage, buildCopyRangeMessage, buildCreate2Message, buildFocusMessage, buildInputMessage, buildMouseMessage, buildResizeBatchMessage, buildResizeMessage, buildKillMessage, buildRestartMessage, buildScrollMessage, buildSearchMessage, buildSurfaceInputMessage, buildSurfacePointerMessage, buildSurfaceAxisMessage, buildSurfaceResizeMessage, buildSurfaceFocusMessage, buildSurfaceCloseMessage, buildSurfaceSubscribeMessage, buildSurfaceUnsubscribeMessage, buildSurfaceAckMessage, buildClipboardMessage, } from "./protocol";
|
|
3
|
+
import { SurfaceStore } from "./SurfaceStore";
|
|
3
4
|
import { TerminalStore } from "./TerminalStore";
|
|
4
5
|
const textDecoder = new TextDecoder();
|
|
5
6
|
export const SEARCH_SOURCE_TITLE = 0;
|
|
@@ -21,6 +22,7 @@ function toPublicSession(s) {
|
|
|
21
22
|
}
|
|
22
23
|
export class BlitConnection {
|
|
23
24
|
constructor({ id, transport, wasm, autoConnect = true, }) {
|
|
25
|
+
this.surfaceStore = new SurfaceStore();
|
|
24
26
|
this.listeners = new Set();
|
|
25
27
|
this.sessionsById = new Map();
|
|
26
28
|
this.currentSessionIdByPtyId = new Map();
|
|
@@ -49,6 +51,7 @@ export class BlitConnection {
|
|
|
49
51
|
};
|
|
50
52
|
};
|
|
51
53
|
this.getSnapshot = () => this.snapshot;
|
|
54
|
+
this.surfaceSubRefCounts = new Map();
|
|
52
55
|
this.handleMessage = (data) => {
|
|
53
56
|
const bytes = new Uint8Array(data);
|
|
54
57
|
if (bytes.length === 0)
|
|
@@ -146,10 +149,118 @@ export class BlitConnection {
|
|
|
146
149
|
...this.snapshot,
|
|
147
150
|
supportsRestart: (features & FEATURE_RESTART) !== 0,
|
|
148
151
|
supportsCopyRange: (features & FEATURE_COPY_RANGE) !== 0,
|
|
152
|
+
supportsCompositor: (features & FEATURE_COMPOSITOR) !== 0,
|
|
149
153
|
};
|
|
150
154
|
this.emit();
|
|
151
155
|
return;
|
|
152
156
|
}
|
|
157
|
+
case S2C_SURFACE_CREATED: {
|
|
158
|
+
try {
|
|
159
|
+
if (bytes.length < 13)
|
|
160
|
+
return;
|
|
161
|
+
const view = new DataView(data);
|
|
162
|
+
const sessionId = view.getUint16(1, true);
|
|
163
|
+
const surfaceId = view.getUint16(3, true);
|
|
164
|
+
const parentId = view.getUint16(5, true);
|
|
165
|
+
const width = view.getUint16(7, true);
|
|
166
|
+
const height = view.getUint16(9, true);
|
|
167
|
+
const titleLen = view.getUint16(11, true);
|
|
168
|
+
const title = textDecoder.decode(bytes.subarray(13, 13 + titleLen));
|
|
169
|
+
let appId = "";
|
|
170
|
+
const appIdOffset = 13 + titleLen;
|
|
171
|
+
if (bytes.length >= appIdOffset + 2) {
|
|
172
|
+
const appIdLen = view.getUint16(appIdOffset, true);
|
|
173
|
+
appId = textDecoder.decode(bytes.subarray(appIdOffset + 2, appIdOffset + 2 + appIdLen));
|
|
174
|
+
}
|
|
175
|
+
this.surfaceStore.handleSurfaceCreated(sessionId, surfaceId, parentId, width, height, title, appId);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// Surface errors must never block terminal message processing.
|
|
179
|
+
}
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
case S2C_SURFACE_DESTROYED: {
|
|
183
|
+
try {
|
|
184
|
+
if (bytes.length < 5)
|
|
185
|
+
return;
|
|
186
|
+
const surfaceId = bytes[3] | (bytes[4] << 8);
|
|
187
|
+
this.surfaceStore.handleSurfaceDestroyed(surfaceId);
|
|
188
|
+
}
|
|
189
|
+
catch { }
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
case S2C_SURFACE_FRAME: {
|
|
193
|
+
try {
|
|
194
|
+
if (bytes.length < 14)
|
|
195
|
+
return;
|
|
196
|
+
const view = new DataView(data);
|
|
197
|
+
const surfaceId = view.getUint16(3, true);
|
|
198
|
+
const timestamp = view.getUint32(5, true);
|
|
199
|
+
const flags = bytes[9];
|
|
200
|
+
const width = view.getUint16(10, true);
|
|
201
|
+
const height = view.getUint16(12, true);
|
|
202
|
+
this.surfaceStore.handleSurfaceFrame(surfaceId, timestamp, flags, width, height, bytes.subarray(14));
|
|
203
|
+
this.transport.send(buildSurfaceAckMessage(surfaceId));
|
|
204
|
+
}
|
|
205
|
+
catch { }
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
case S2C_SURFACE_TITLE: {
|
|
209
|
+
try {
|
|
210
|
+
if (bytes.length < 5)
|
|
211
|
+
return;
|
|
212
|
+
const surfaceId = bytes[3] | (bytes[4] << 8);
|
|
213
|
+
const title = textDecoder.decode(bytes.subarray(5));
|
|
214
|
+
this.surfaceStore.handleSurfaceTitle(surfaceId, title);
|
|
215
|
+
}
|
|
216
|
+
catch { }
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
case S2C_SURFACE_APP_ID: {
|
|
220
|
+
try {
|
|
221
|
+
if (bytes.length < 5)
|
|
222
|
+
return;
|
|
223
|
+
const surfaceId = bytes[3] | (bytes[4] << 8);
|
|
224
|
+
const appId = textDecoder.decode(bytes.subarray(5));
|
|
225
|
+
this.surfaceStore.handleSurfaceAppId(surfaceId, appId);
|
|
226
|
+
}
|
|
227
|
+
catch { }
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
case S2C_SURFACE_RESIZED: {
|
|
231
|
+
try {
|
|
232
|
+
if (bytes.length < 9)
|
|
233
|
+
return;
|
|
234
|
+
const view = new DataView(data);
|
|
235
|
+
const surfaceId = view.getUint16(3, true);
|
|
236
|
+
const width = view.getUint16(5, true);
|
|
237
|
+
const height = view.getUint16(7, true);
|
|
238
|
+
this.surfaceStore.handleSurfaceResized(surfaceId, width, height);
|
|
239
|
+
}
|
|
240
|
+
catch { }
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
case S2C_CLIPBOARD_MSG: {
|
|
244
|
+
try {
|
|
245
|
+
if (bytes.length < 11)
|
|
246
|
+
return;
|
|
247
|
+
const view = new DataView(data);
|
|
248
|
+
const mimeLen = view.getUint16(5, true);
|
|
249
|
+
if (bytes.length < 7 + mimeLen + 4)
|
|
250
|
+
return;
|
|
251
|
+
const mimeType = textDecoder.decode(bytes.subarray(7, 7 + mimeLen));
|
|
252
|
+
const dataLen = view.getUint32(7 + mimeLen, true);
|
|
253
|
+
const dataStart = 11 + mimeLen;
|
|
254
|
+
if (bytes.length < dataStart + dataLen)
|
|
255
|
+
return;
|
|
256
|
+
if (mimeType.startsWith("text/") || mimeType === "UTF8_STRING") {
|
|
257
|
+
const text = textDecoder.decode(bytes.subarray(dataStart, dataStart + dataLen));
|
|
258
|
+
navigator.clipboard.writeText(text).catch(() => { });
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch { }
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
153
264
|
case S2C_TEXT: {
|
|
154
265
|
if (bytes.length < 13)
|
|
155
266
|
return;
|
|
@@ -205,6 +316,7 @@ export class BlitConnection {
|
|
|
205
316
|
this.rejectPendingSearches(connectionError(`Transport ${status}`));
|
|
206
317
|
this.rejectPendingReads(connectionError(`Transport ${status}`));
|
|
207
318
|
this.resolveAllPendingCloses();
|
|
319
|
+
this.surfaceStore.destroy();
|
|
208
320
|
}
|
|
209
321
|
this.emit();
|
|
210
322
|
};
|
|
@@ -224,6 +336,7 @@ export class BlitConnection {
|
|
|
224
336
|
ready: false,
|
|
225
337
|
supportsRestart: false,
|
|
226
338
|
supportsCopyRange: false,
|
|
339
|
+
supportsCompositor: false,
|
|
227
340
|
retryCount: 0,
|
|
228
341
|
error: null,
|
|
229
342
|
sessions: [],
|
|
@@ -271,6 +384,7 @@ export class BlitConnection {
|
|
|
271
384
|
this.rejectPendingReads(connectionError("Connection disposed"));
|
|
272
385
|
this.resolveAllPendingCloses();
|
|
273
386
|
this.store.destroy();
|
|
387
|
+
this.surfaceStore.destroy();
|
|
274
388
|
}
|
|
275
389
|
setVisibleSessionIds(sessionIds) {
|
|
276
390
|
const desired = new Set();
|
|
@@ -288,7 +402,10 @@ export class BlitConnection {
|
|
|
288
402
|
}
|
|
289
403
|
getDebugStats(sessionId) {
|
|
290
404
|
const session = sessionId ? this.sessionsById.get(sessionId) : null;
|
|
291
|
-
return
|
|
405
|
+
return {
|
|
406
|
+
...this.store.getDebugStats(session?.ptyId ?? null),
|
|
407
|
+
surfaces: this.surfaceStore.getDebugStats(),
|
|
408
|
+
};
|
|
292
409
|
}
|
|
293
410
|
async createSession(options) {
|
|
294
411
|
if (this.transport.status !== "connected") {
|
|
@@ -615,6 +732,61 @@ export class BlitConnection {
|
|
|
615
732
|
setPalette(p) {
|
|
616
733
|
this.store.setPalette(p);
|
|
617
734
|
}
|
|
735
|
+
sendSurfaceInput(sessionId, surfaceId, keycode, pressed) {
|
|
736
|
+
if (this.transport.status !== "connected")
|
|
737
|
+
return;
|
|
738
|
+
this.transport.send(buildSurfaceInputMessage(sessionId, surfaceId, keycode, pressed));
|
|
739
|
+
}
|
|
740
|
+
sendSurfacePointer(sessionId, surfaceId, type, button, x, y) {
|
|
741
|
+
if (this.transport.status !== "connected")
|
|
742
|
+
return;
|
|
743
|
+
this.transport.send(buildSurfacePointerMessage(sessionId, surfaceId, type, button, x, y));
|
|
744
|
+
}
|
|
745
|
+
sendSurfaceAxis(sessionId, surfaceId, axis, valueX100) {
|
|
746
|
+
if (this.transport.status !== "connected")
|
|
747
|
+
return;
|
|
748
|
+
this.transport.send(buildSurfaceAxisMessage(sessionId, surfaceId, axis, valueX100));
|
|
749
|
+
}
|
|
750
|
+
sendSurfaceResize(sessionId, surfaceId, width, height, scale120 = 0, codecSupport = 0) {
|
|
751
|
+
if (this.transport.status !== "connected")
|
|
752
|
+
return;
|
|
753
|
+
this.transport.send(buildSurfaceResizeMessage(sessionId, surfaceId, width, height, scale120, codecSupport));
|
|
754
|
+
}
|
|
755
|
+
sendSurfaceFocus(sessionId, surfaceId) {
|
|
756
|
+
if (this.transport.status !== "connected")
|
|
757
|
+
return;
|
|
758
|
+
this.transport.send(buildSurfaceFocusMessage(sessionId, surfaceId));
|
|
759
|
+
}
|
|
760
|
+
sendSurfaceClose(sessionId, surfaceId) {
|
|
761
|
+
if (this.transport.status !== "connected")
|
|
762
|
+
return;
|
|
763
|
+
this.transport.send(buildSurfaceCloseMessage(sessionId, surfaceId));
|
|
764
|
+
}
|
|
765
|
+
sendSurfaceSubscribe(sessionId, surfaceId) {
|
|
766
|
+
const prev = this.surfaceSubRefCounts.get(surfaceId) ?? 0;
|
|
767
|
+
this.surfaceSubRefCounts.set(surfaceId, prev + 1);
|
|
768
|
+
if (prev === 0 && this.transport.status === "connected") {
|
|
769
|
+
this.transport.send(buildSurfaceSubscribeMessage(sessionId, surfaceId));
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
sendSurfaceUnsubscribe(sessionId, surfaceId) {
|
|
773
|
+
const prev = this.surfaceSubRefCounts.get(surfaceId) ?? 0;
|
|
774
|
+
const next = Math.max(0, prev - 1);
|
|
775
|
+
if (next === 0) {
|
|
776
|
+
this.surfaceSubRefCounts.delete(surfaceId);
|
|
777
|
+
if (this.transport.status === "connected") {
|
|
778
|
+
this.transport.send(buildSurfaceUnsubscribeMessage(sessionId, surfaceId));
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
else {
|
|
782
|
+
this.surfaceSubRefCounts.set(surfaceId, next);
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
sendClipboard(sessionId, surfaceId, mimeType, data) {
|
|
786
|
+
if (this.transport.status !== "connected")
|
|
787
|
+
return;
|
|
788
|
+
this.transport.send(buildClipboardMessage(sessionId, surfaceId, mimeType, data));
|
|
789
|
+
}
|
|
618
790
|
isReady() {
|
|
619
791
|
return this.store.isReady();
|
|
620
792
|
}
|
|
@@ -672,10 +844,9 @@ export class BlitConnection {
|
|
|
672
844
|
});
|
|
673
845
|
}
|
|
674
846
|
const previousFocus = this.snapshot.focusedSessionId;
|
|
675
|
-
const nextFocus = this.
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
: null;
|
|
847
|
+
const nextFocus = previousFocus && this.sessionsById.get(previousFocus)?.state !== "closed"
|
|
848
|
+
? previousFocus
|
|
849
|
+
: this.firstLiveSessionId();
|
|
679
850
|
this.snapshot = {
|
|
680
851
|
...this.snapshot,
|
|
681
852
|
ready: true,
|
|
@@ -683,7 +854,11 @@ export class BlitConnection {
|
|
|
683
854
|
};
|
|
684
855
|
this.store.setLead(nextFocus ? (this.sessionsById.get(nextFocus)?.ptyId ?? null) : null);
|
|
685
856
|
this.emit();
|
|
686
|
-
|
|
857
|
+
// Always re-send focus to the server. After a reconnection the server
|
|
858
|
+
// has a fresh ClientState with lead=None and needs to be told which
|
|
859
|
+
// session this client is focused on, even if the focus didn't change
|
|
860
|
+
// from the client's perspective.
|
|
861
|
+
if (nextFocus) {
|
|
687
862
|
const session = this.sessionsById.get(nextFocus);
|
|
688
863
|
if (session && this.transport.status === "connected") {
|
|
689
864
|
this.transport.send(buildFocusMessage(session.ptyId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlitConnection.js","sourceRoot":"","sources":["../src/BlitConnection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BlitConnection.js","sourceRoot":"","sources":["../src/BlitConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { ConnectionId, BlitSurface } from "./types";
|
|
2
|
+
import type { BlitWorkspace } from "./BlitWorkspace";
|
|
3
|
+
/**
|
|
4
|
+
* Probe which video codecs the browser can decode via WebCodecs and return
|
|
5
|
+
* a bitmask of CODEC_SUPPORT_* flags. Result is cached after first call.
|
|
6
|
+
*/
|
|
7
|
+
export declare function detectCodecSupport(): Promise<number>;
|
|
8
|
+
/** Return the cached codec support, or 0 if not yet probed. */
|
|
9
|
+
export declare function getCodecSupport(): number;
|
|
10
|
+
export interface BlitSurfaceCanvasOptions {
|
|
11
|
+
workspace: BlitWorkspace;
|
|
12
|
+
connectionId: ConnectionId;
|
|
13
|
+
surfaceId: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Framework-agnostic surface canvas. Manages a `<canvas>` element that renders
|
|
17
|
+
* decoded video frames from a Wayland-like surface, and forwards
|
|
18
|
+
* pointer / keyboard / wheel input back to the server.
|
|
19
|
+
*
|
|
20
|
+
* Framework bindings (React, Solid, etc.) attach this to a container element
|
|
21
|
+
* and forward option changes via setters.
|
|
22
|
+
*/
|
|
23
|
+
export declare class BlitSurfaceCanvas {
|
|
24
|
+
private _workspace;
|
|
25
|
+
private _connectionId;
|
|
26
|
+
private _surfaceId;
|
|
27
|
+
private container;
|
|
28
|
+
private canvas;
|
|
29
|
+
private ctx;
|
|
30
|
+
private surface;
|
|
31
|
+
private disposed;
|
|
32
|
+
/** Track which mouse buttons are currently pressed so we can send synthetic
|
|
33
|
+
* pointer-up events on dispose — preventing a dangling compositor grab. */
|
|
34
|
+
private pressedButtons;
|
|
35
|
+
/** Track which keyboard keys are currently pressed (evdev keycodes) so we
|
|
36
|
+
* can release them when focus leaves or the canvas is disposed — preventing
|
|
37
|
+
* stuck modifiers and runaway key-repeat in the compositor. */
|
|
38
|
+
private pressedKeys;
|
|
39
|
+
/**
|
|
40
|
+
* When non-null the canvas internal resolution is controlled externally
|
|
41
|
+
* (by the framework binding's ResizeObserver) and frames are drawn
|
|
42
|
+
* scaled to fill the canvas rather than the canvas being resized to
|
|
43
|
+
* match each frame.
|
|
44
|
+
*/
|
|
45
|
+
private _displaySize;
|
|
46
|
+
private unsubFrame;
|
|
47
|
+
private unsubChange;
|
|
48
|
+
private boundMouseDown;
|
|
49
|
+
private boundMouseUp;
|
|
50
|
+
private boundMouseMove;
|
|
51
|
+
private boundWheel;
|
|
52
|
+
private boundKeyDown;
|
|
53
|
+
private boundKeyUp;
|
|
54
|
+
private boundFocus;
|
|
55
|
+
private boundBlur;
|
|
56
|
+
private boundContextMenu;
|
|
57
|
+
constructor(options: BlitSurfaceCanvasOptions);
|
|
58
|
+
get surfaceInfo(): BlitSurface | undefined;
|
|
59
|
+
get canvasElement(): HTMLCanvasElement | null;
|
|
60
|
+
attach(container: HTMLElement): void;
|
|
61
|
+
dispose(): void;
|
|
62
|
+
setConnectionId(connectionId: ConnectionId): void;
|
|
63
|
+
setSurfaceId(surfaceId: number): void;
|
|
64
|
+
/**
|
|
65
|
+
* Request the server to resize the surface to the given pixel dimensions.
|
|
66
|
+
* The server will respond with a SURFACE_RESIZED message that updates the
|
|
67
|
+
* surface metadata and canvas size via the normal onChange path.
|
|
68
|
+
*/
|
|
69
|
+
requestResize(width: number, height: number, scale120?: number, codecSupport?: number): void;
|
|
70
|
+
/**
|
|
71
|
+
* Set the display (canvas backing-buffer) size in physical pixels.
|
|
72
|
+
* When set, the canvas resolution is pinned to these dimensions and frames
|
|
73
|
+
* are drawn scaled to fill rather than the canvas being resized to match
|
|
74
|
+
* each incoming frame. Call with `null` to revert to frame-tracking mode.
|
|
75
|
+
*
|
|
76
|
+
* This should be called by the framework binding's ResizeObserver so the
|
|
77
|
+
* canvas is immediately at the correct resolution — no CSS scaling needed.
|
|
78
|
+
*/
|
|
79
|
+
setDisplaySize(width: number | null, height?: number): void;
|
|
80
|
+
private getConn;
|
|
81
|
+
private subscribe;
|
|
82
|
+
/** Copy the shared backing canvas onto our visible canvas. */
|
|
83
|
+
private blitFromStore;
|
|
84
|
+
private resubscribe;
|
|
85
|
+
private serverUnsubscribe;
|
|
86
|
+
private attachEvents;
|
|
87
|
+
private detachEvents;
|
|
88
|
+
private handleMouse;
|
|
89
|
+
/** Send synthetic pointer-up for any buttons still held. Prevents the
|
|
90
|
+
* compositor's implicit pointer grab from outliving this canvas. */
|
|
91
|
+
private releaseAllButtons;
|
|
92
|
+
private handleWheel;
|
|
93
|
+
private handleKey;
|
|
94
|
+
/** Send synthetic key-up for every key still held. Prevents stuck
|
|
95
|
+
* modifiers and runaway key-repeat when focus leaves the canvas. */
|
|
96
|
+
private releaseAllKeys;
|
|
97
|
+
private handleBlur;
|
|
98
|
+
/**
|
|
99
|
+
* Ensure the compositor's CapsLock state matches the browser before the
|
|
100
|
+
* current key event is forwarded.
|
|
101
|
+
*
|
|
102
|
+
* The browser's `getModifierState("CapsLock")` always reflects the OS
|
|
103
|
+
* state, but the compositor only sees key events forwarded through
|
|
104
|
+
* `handleKey`. If CapsLock was toggled while the surface was unfocused,
|
|
105
|
+
* the compositor's XKB state drifts. We detect the mismatch and inject
|
|
106
|
+
* a synthetic CapsLock press+release to bring it back in sync.
|
|
107
|
+
*
|
|
108
|
+
* For a regular key (not CapsLock itself) the rule is simple: if the
|
|
109
|
+
* browser and compositor disagree, inject a toggle.
|
|
110
|
+
*
|
|
111
|
+
* When the key IS CapsLock, `getModifierState` already shows the
|
|
112
|
+
* *post-toggle* value. The compositor will also toggle when it receives
|
|
113
|
+
* our forwarded keydown. For the end state to match we need the
|
|
114
|
+
* compositor's *pre-toggle* state to be the opposite of the browser's
|
|
115
|
+
* post-toggle value, i.e. `compositorCaps === !browserCaps`. If that
|
|
116
|
+
* doesn't hold we inject an extra toggle first so the real key lands
|
|
117
|
+
* correctly.
|
|
118
|
+
*/
|
|
119
|
+
private syncCapsLock;
|
|
120
|
+
private handleFocus;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=BlitSurfaceCanvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlitSurfaceCanvas.d.ts","sourceRoot":"","sources":["../src/BlitSurfaceCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAMzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWrD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CA4B1D;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,IAAI,MAAM,CAExC;AA+GD,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,aAAa,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,GAAG,CAAyC;IAEpD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAS;IAEzB;gFAC4E;IAC5E,OAAO,CAAC,cAAc,CAAqB;IAE3C;;oEAEgE;IAChE,OAAO,CAAC,WAAW,CAAqB;IAExC;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAkD;IAGtE,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,WAAW,CAA6B;IAGhD,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,gBAAgB,CAAqC;gBAEjD,OAAO,EAAE,wBAAwB;IAU7C,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED,IAAI,aAAa,IAAI,iBAAiB,GAAG,IAAI,CAE5C;IAED,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA+BpC,OAAO,IAAI,IAAI;IAmBf,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAMjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC;;;;OAIG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAU,EACpB,YAAY,GAAE,MAAU,GACvB,IAAI;IAgBP;;;;;;;;OAQG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IA6B3D,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,SAAS;IAuCjB,8DAA8D;IAC9D,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,WAAW;IAwBnB;yEACqE;IACrE,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAoCjB;yEACqE;IACrE,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,UAAU;IAIlB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,WAAW;CAKpB"}
|