@blit-sh/core 0.19.0 → 0.21.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.
Files changed (58) hide show
  1. package/dist/BlitConnection.d.ts +16 -2
  2. package/dist/BlitConnection.d.ts.map +1 -1
  3. package/dist/BlitConnection.js +183 -8
  4. package/dist/BlitConnection.js.map +1 -1
  5. package/dist/BlitSurfaceCanvas.d.ts +122 -0
  6. package/dist/BlitSurfaceCanvas.d.ts.map +1 -0
  7. package/dist/BlitSurfaceCanvas.js +582 -0
  8. package/dist/BlitSurfaceCanvas.js.map +1 -0
  9. package/dist/BlitTerminalSurface.d.ts +12 -0
  10. package/dist/BlitTerminalSurface.d.ts.map +1 -1
  11. package/dist/BlitTerminalSurface.js +51 -1
  12. package/dist/BlitTerminalSurface.js.map +1 -1
  13. package/dist/BlitWorkspace.d.ts +2 -0
  14. package/dist/BlitWorkspace.d.ts.map +1 -1
  15. package/dist/BlitWorkspace.js +27 -0
  16. package/dist/BlitWorkspace.js.map +1 -1
  17. package/dist/SurfaceStore.d.ts +69 -0
  18. package/dist/SurfaceStore.d.ts.map +1 -0
  19. package/dist/SurfaceStore.js +494 -0
  20. package/dist/SurfaceStore.js.map +1 -0
  21. package/dist/TerminalStore.d.ts.map +1 -1
  22. package/dist/TerminalStore.js +4 -1
  23. package/dist/TerminalStore.js.map +1 -1
  24. package/dist/bsp/index.d.ts +1 -1
  25. package/dist/bsp/index.d.ts.map +1 -1
  26. package/dist/bsp/index.js +1 -1
  27. package/dist/bsp/index.js.map +1 -1
  28. package/dist/bsp/layout.d.ts +9 -1
  29. package/dist/bsp/layout.d.ts.map +1 -1
  30. package/dist/bsp/layout.js +36 -4
  31. package/dist/bsp/layout.js.map +1 -1
  32. package/dist/gl-renderer.d.ts +6 -0
  33. package/dist/gl-renderer.d.ts.map +1 -1
  34. package/dist/gl-renderer.js +132 -0
  35. package/dist/gl-renderer.js.map +1 -1
  36. package/dist/index.d.ts +7 -2
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/keyboard.d.ts +6 -0
  41. package/dist/keyboard.d.ts.map +1 -1
  42. package/dist/keyboard.js +25 -0
  43. package/dist/keyboard.js.map +1 -1
  44. package/dist/protocol.d.ts +19 -0
  45. package/dist/protocol.d.ts.map +1 -1
  46. package/dist/protocol.js +124 -1
  47. package/dist/protocol.js.map +1 -1
  48. package/dist/transports/webrtc-share.d.ts.map +1 -1
  49. package/dist/transports/webrtc-share.js +209 -62
  50. package/dist/transports/webrtc-share.js.map +1 -1
  51. package/dist/transports/webtransport.d.ts.map +1 -1
  52. package/dist/transports/webtransport.js +3 -1
  53. package/dist/transports/webtransport.js.map +1 -1
  54. package/dist/types.d.ts +41 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/types.js +29 -0
  57. package/dist/types.js.map +1 -1
  58. package/package.json +1 -1
@@ -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
- private readonly transport;
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;AAkCjB,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIrE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,YAAY,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA8BF,qBAAa,cAAc;IACzB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgC;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IACzE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGzB;IAEJ,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,wEAAwE;IACxE,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,EACV,EAAE,EACF,SAAS,EACT,IAAI,EACJ,WAAkB,GACnB,EAAE,2BAA2B;IAuC9B,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAK9C;IAEF,OAAO,KAAK,cAAc,GAMzB;IAED,OAAO,CAAC,wBAAwB;IAIhC,WAAW,QAAO,sBAAsB,CAAkB;IAE1D,OAAO,IAAI,IAAI;IAKf,SAAS,IAAI,IAAI;IAIjB,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAcf,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI;IAW3D,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI;IAKpD,aAAa,CACX,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAKvC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IA8BxE,SAAS,CACP,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IA+BlB,iBAAiB,IAAI,OAAO;IAItB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAY1C,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,SAAK,GAAG,IAAI;IAYpD,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IA6B/C,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAYvD,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrE,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAI5C,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI;IAsBxD,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI;IA8B7D,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYzD,SAAS,CACP,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAcD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBxD,OAAO,CAAC,KAAK;IAIb,WAAW,CAAC,SAAS,EAAE,SAAS;IAKhC,8DAA8D;IAC9D,WAAW,IAAI,MAAM;IAIrB,oFAAoF;IACpF,WAAW,CACT,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,IAAI;IAUP,iEAAiE;IACjE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAWtD,OAAO,CAAC,WAAW;IAenB,iBAAiB,IAAI,MAAM;IAI3B,qBAAqB,IAAI,MAAM;IAI/B,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAK5C,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKlC,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKnC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKlC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKhC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAKvC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQxE,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAK3C,iBAAiB;;;;IAGjB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAGzC,WAAW;;;;IAGX,UAAU;IAGV,iBAAiB,IAAI,IAAI;IAGzB,eAAe,IAAI,IAAI;IAGvB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9B,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG5B,UAAU,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI;IAIpC,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAIzC,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,aAAa,CAgHnB;IAEF,OAAO,CAAC,kBAAkB,CAoDxB;IAEF,OAAO,CAAC,iBAAiB;IA6EzB,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,uBAAuB;CAMhC"}
1
+ {"version":3,"file":"BlitConnection.d.ts","sourceRoot":"","sources":["../src/BlitConnection.ts"],"names":[],"mappings":"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"}
@@ -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 this.store.getDebugStats(session?.ptyId ?? null);
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.snapshot.focusedSessionId &&
676
- this.sessionsById.get(this.snapshot.focusedSessionId)?.state !== "closed"
677
- ? this.snapshot.focusedSessionId
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
- if (nextFocus && nextFocus !== previousFocus) {
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"}