@soulcraft/sdk 2.0.1 → 2.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/client/index.d.ts +5 -38
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -47
- package/dist/client/index.js.map +1 -1
- package/dist/client/namespace-proxy.d.ts +3 -4
- package/dist/client/namespace-proxy.d.ts.map +1 -1
- package/dist/client/namespace-proxy.js +3 -4
- package/dist/client/namespace-proxy.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/modules/hall/admin.d.ts +39 -0
- package/dist/modules/hall/admin.d.ts.map +1 -0
- package/dist/modules/hall/admin.js +115 -0
- package/dist/modules/hall/admin.js.map +1 -0
- package/dist/modules/hall/browser.d.ts +83 -27
- package/dist/modules/hall/browser.d.ts.map +1 -1
- package/dist/modules/hall/browser.js +238 -49
- package/dist/modules/hall/browser.js.map +1 -1
- package/dist/modules/hall/media.d.ts +164 -0
- package/dist/modules/hall/media.d.ts.map +1 -0
- package/dist/modules/hall/media.js +182 -0
- package/dist/modules/hall/media.js.map +1 -0
- package/dist/modules/hall/server.d.ts +119 -6
- package/dist/modules/hall/server.d.ts.map +1 -1
- package/dist/modules/hall/server.js +299 -9
- package/dist/modules/hall/server.js.map +1 -1
- package/dist/modules/hall/types.d.ts +705 -25
- package/dist/modules/hall/types.d.ts.map +1 -1
- package/dist/modules/hall/types.js +12 -7
- package/dist/modules/hall/types.js.map +1 -1
- package/dist/server/hall-handlers.d.ts +60 -14
- package/dist/server/hall-handlers.d.ts.map +1 -1
- package/dist/server/hall-handlers.js +61 -12
- package/dist/server/hall-handlers.js.map +1 -1
- package/dist/server/hono-router.d.ts +2 -9
- package/dist/server/hono-router.d.ts.map +1 -1
- package/dist/server/hono-router.js +2 -46
- package/dist/server/hono-router.js.map +1 -1
- package/dist/server/index.d.ts +4 -19
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +10 -29
- package/dist/server/index.js.map +1 -1
- package/dist/types.d.ts +2 -41
- package/dist/types.d.ts.map +1 -1
- package/docs/ADR-005-hall-integration.md +449 -0
- package/package.json +1 -1
- package/dist/client/create-client-sdk.d.ts +0 -113
- package/dist/client/create-client-sdk.d.ts.map +0 -1
- package/dist/client/create-client-sdk.js +0 -169
- package/dist/client/create-client-sdk.js.map +0 -1
- package/dist/modules/app-context/index.d.ts +0 -214
- package/dist/modules/app-context/index.d.ts.map +0 -1
- package/dist/modules/app-context/index.js +0 -569
- package/dist/modules/app-context/index.js.map +0 -1
- package/dist/modules/billing/firestore-provider.d.ts +0 -60
- package/dist/modules/billing/firestore-provider.d.ts.map +0 -1
- package/dist/modules/billing/firestore-provider.js +0 -315
- package/dist/modules/billing/firestore-provider.js.map +0 -1
- package/dist/modules/brainy/proxy.d.ts +0 -48
- package/dist/modules/brainy/proxy.d.ts.map +0 -1
- package/dist/modules/brainy/proxy.js +0 -95
- package/dist/modules/brainy/proxy.js.map +0 -1
- package/dist/server/create-sdk.d.ts +0 -74
- package/dist/server/create-sdk.d.ts.map +0 -1
- package/dist/server/create-sdk.js +0 -104
- package/dist/server/create-sdk.js.map +0 -1
- package/dist/server/from-license.d.ts +0 -252
- package/dist/server/from-license.d.ts.map +0 -1
- package/dist/server/from-license.js +0 -349
- package/dist/server/from-license.js.map +0 -1
- package/dist/server/handlers.d.ts +0 -312
- package/dist/server/handlers.d.ts.map +0 -1
- package/dist/server/handlers.js +0 -376
- package/dist/server/handlers.js.map +0 -1
- package/dist/server/postmessage-handler.d.ts +0 -152
- package/dist/server/postmessage-handler.d.ts.map +0 -1
- package/dist/server/postmessage-handler.js +0 -138
- package/dist/server/postmessage-handler.js.map +0 -1
- package/dist/transports/http.d.ts +0 -86
- package/dist/transports/http.d.ts.map +0 -1
- package/dist/transports/http.js +0 -137
- package/dist/transports/http.js.map +0 -1
- package/dist/transports/postmessage.d.ts +0 -159
- package/dist/transports/postmessage.d.ts.map +0 -1
- package/dist/transports/postmessage.js +0 -207
- package/dist/transports/postmessage.js.map +0 -1
- package/dist/transports/workshop.d.ts +0 -173
- package/dist/transports/workshop.d.ts.map +0 -1
- package/dist/transports/workshop.js +0 -307
- package/dist/transports/workshop.js.map +0 -1
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* `HallClient` maintains a single authenticated WebSocket connection from the product
|
|
6
6
|
* backend to `hall.soulcraft.com`. All room management (createRoom, closeRoom, session
|
|
7
|
-
* tokens, recording)
|
|
7
|
+
* tokens, recording), pub/sub (topics, presence), broadcast control (promote/demote),
|
|
8
|
+
* and media pipeline notifications go through this connection.
|
|
8
9
|
*
|
|
9
10
|
* This module is **server-only** — it uses WebSocket, reconnect timers, and the
|
|
10
11
|
* product shared secret, none of which should ever reach a browser bundle.
|
|
@@ -45,6 +46,13 @@ export class HallRoomImpl {
|
|
|
45
46
|
peerJoined: new Set(),
|
|
46
47
|
peerLeft: new Set(),
|
|
47
48
|
recordingManifest: new Set(),
|
|
49
|
+
peerPromoted: new Set(),
|
|
50
|
+
peerDemoted: new Set(),
|
|
51
|
+
viewerCount: new Set(),
|
|
52
|
+
screenShareThumbnail: new Set(),
|
|
53
|
+
chatHistory: new Set(),
|
|
54
|
+
mediaReady: new Set(),
|
|
55
|
+
mediaError: new Set(),
|
|
48
56
|
closed: new Set(),
|
|
49
57
|
};
|
|
50
58
|
constructor(roomId, sessionId) {
|
|
@@ -78,8 +86,9 @@ export class HallRoomImpl {
|
|
|
78
86
|
* Product-backend WebSocket client for the Hall real-time communication server.
|
|
79
87
|
*
|
|
80
88
|
* Create one instance per product process. Maintains a single authenticated control-plane
|
|
81
|
-
* WebSocket to `hall.soulcraft.com`. All room management
|
|
82
|
-
* this single connection — do not create multiple instances
|
|
89
|
+
* WebSocket to `hall.soulcraft.com`. All room management, pub/sub, broadcast control,
|
|
90
|
+
* and event routing goes through this single connection — do not create multiple instances
|
|
91
|
+
* per product.
|
|
83
92
|
*
|
|
84
93
|
* Auto-reconnects on unexpected disconnect (configurable via `reconnectDelayMs`).
|
|
85
94
|
* In-flight promises are rejected on disconnect; register `onReconnect` to re-create rooms.
|
|
@@ -98,8 +107,17 @@ export class HallClient {
|
|
|
98
107
|
#pendingCloseRoom = new Map();
|
|
99
108
|
#pendingSessionToken = new Map();
|
|
100
109
|
#pendingRoomList = [];
|
|
110
|
+
#pendingPubsubToken = [];
|
|
101
111
|
#disconnectListeners = new Set();
|
|
102
112
|
#reconnectListeners = new Set();
|
|
113
|
+
#tokenRevokedListeners = new Set();
|
|
114
|
+
#pubsubListeners = {
|
|
115
|
+
topicSubscribed: new Set(),
|
|
116
|
+
topicUnsubscribed: new Set(),
|
|
117
|
+
topicMessage: new Set(),
|
|
118
|
+
presenceUpdate: new Set(),
|
|
119
|
+
presenceSnapshot: new Set(),
|
|
120
|
+
};
|
|
103
121
|
/**
|
|
104
122
|
* @param options - Connection options: url, productName, secret, and optional reconnectDelayMs.
|
|
105
123
|
*/
|
|
@@ -158,7 +176,7 @@ export class HallClient {
|
|
|
158
176
|
* Create a new room on the Hall server.
|
|
159
177
|
*
|
|
160
178
|
* @param roomId - Unique room identifier (e.g. Brainy session entity ID).
|
|
161
|
-
* @param options - Room configuration: peer limit, transcription, recording, concept list.
|
|
179
|
+
* @param options - Room configuration: peer limit, transcription, recording, broadcast, concept list.
|
|
162
180
|
* @returns The HallRoom handle — register event listeners on it immediately.
|
|
163
181
|
* @throws {Error} If a room with the same ID already exists or the server returns an error.
|
|
164
182
|
*/
|
|
@@ -202,6 +220,7 @@ export class HallClient {
|
|
|
202
220
|
getRoom(roomId) {
|
|
203
221
|
return this.#rooms.get(roomId);
|
|
204
222
|
}
|
|
223
|
+
// ── Session tokens ─────────────────────────────────────────────────────────
|
|
205
224
|
/**
|
|
206
225
|
* Mint a short-lived HMAC session token for a browser peer.
|
|
207
226
|
* Pass `{ token, hallUrl }` to the browser — **never** the product secret.
|
|
@@ -209,16 +228,18 @@ export class HallClient {
|
|
|
209
228
|
* @param roomId - The room the browser peer will join.
|
|
210
229
|
* @param peerId - The peer's unique identifier (e.g. authenticated user ID).
|
|
211
230
|
* @param ttlSecs - Token lifetime in seconds (default: 300).
|
|
231
|
+
* @param role - Optional role hint: `"participant"`, `"viewer"`, or undefined (auto).
|
|
212
232
|
* @returns `{ token, expiresAt }` — send `token` and `this.url` to the browser.
|
|
213
233
|
*/
|
|
214
|
-
createSessionToken(roomId, peerId, ttlSecs) {
|
|
234
|
+
createSessionToken(roomId, peerId, ttlSecs, role) {
|
|
215
235
|
this.#requireConnected();
|
|
216
236
|
const key = `${roomId}:${peerId}`;
|
|
217
237
|
return new Promise((resolve, reject) => {
|
|
218
238
|
this.#pendingSessionToken.set(key, { resolve, reject });
|
|
219
|
-
this.#send({ t: 'createSessionToken', d: { roomId, peerId, ttlSecs } });
|
|
239
|
+
this.#send({ t: 'createSessionToken', d: { roomId, peerId, ttlSecs, role } });
|
|
220
240
|
});
|
|
221
241
|
}
|
|
242
|
+
// ── Recording ──────────────────────────────────────────────────────────────
|
|
222
243
|
/**
|
|
223
244
|
* Start per-track MKV recording for an active room.
|
|
224
245
|
* The room emits `recordingManifest` when `stopRecording` is called.
|
|
@@ -228,8 +249,6 @@ export class HallClient {
|
|
|
228
249
|
startRecording(roomId) {
|
|
229
250
|
this.#requireConnected();
|
|
230
251
|
return new Promise((resolve, _reject) => {
|
|
231
|
-
// Hall sends `recordingStarted` as an informational ack — errors arrive as
|
|
232
|
-
// t:'error' messages and are routed to #rejectFirstPending.
|
|
233
252
|
this.#send({ t: 'startRecording', d: { roomId } });
|
|
234
253
|
resolve();
|
|
235
254
|
});
|
|
@@ -247,6 +266,196 @@ export class HallClient {
|
|
|
247
266
|
resolve();
|
|
248
267
|
});
|
|
249
268
|
}
|
|
269
|
+
// ── Pub/Sub ────────────────────────────────────────────────────────────────
|
|
270
|
+
/**
|
|
271
|
+
* Subscribe to a pub/sub topic. Topics are product-scoped.
|
|
272
|
+
*
|
|
273
|
+
* @param topic - Topic name to subscribe to.
|
|
274
|
+
* @param metadata - Optional presence metadata visible to other subscribers.
|
|
275
|
+
*/
|
|
276
|
+
subscribeTopic(topic, metadata) {
|
|
277
|
+
this.#requireConnected();
|
|
278
|
+
this.#send({ t: 'subscribeTopic', d: { topic, metadata } });
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Unsubscribe from a pub/sub topic.
|
|
282
|
+
*
|
|
283
|
+
* @param topic - Topic name to unsubscribe from.
|
|
284
|
+
*/
|
|
285
|
+
unsubscribeTopic(topic) {
|
|
286
|
+
this.#requireConnected();
|
|
287
|
+
this.#send({ t: 'unsubscribeTopic', d: { topic } });
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Broadcast a message to all subscribers of a pub/sub topic.
|
|
291
|
+
*
|
|
292
|
+
* @param topic - Topic to broadcast to.
|
|
293
|
+
* @param payload - Arbitrary JSON payload delivered to all subscribers.
|
|
294
|
+
*/
|
|
295
|
+
broadcastTopic(topic, payload) {
|
|
296
|
+
this.#requireConnected();
|
|
297
|
+
this.#send({ t: 'broadcastTopic', d: { topic, payload } });
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Request a snapshot of all current subscribers on a topic.
|
|
301
|
+
*
|
|
302
|
+
* @param topic - Topic to query presence for.
|
|
303
|
+
*/
|
|
304
|
+
getPresence(topic) {
|
|
305
|
+
this.#requireConnected();
|
|
306
|
+
this.#send({ t: 'getPresence', d: { topic } });
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Register a listener for pub/sub events on the product connection.
|
|
310
|
+
*
|
|
311
|
+
* @param event - The pub/sub event name.
|
|
312
|
+
* @param listener - Callback invoked with the typed event payload.
|
|
313
|
+
*/
|
|
314
|
+
onPubsub(event, listener) {
|
|
315
|
+
;
|
|
316
|
+
this.#pubsubListeners[event].add(listener);
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Issue a browser pub/sub token.
|
|
320
|
+
*
|
|
321
|
+
* @param peerId - Peer ID the token is issued for.
|
|
322
|
+
* @param allowedTopics - Optional topic whitelist.
|
|
323
|
+
* @param ttlSecs - Token lifetime in seconds (default: 300).
|
|
324
|
+
* @returns `{ token, expiresAt }`.
|
|
325
|
+
*/
|
|
326
|
+
createPubsubToken(peerId, allowedTopics, ttlSecs) {
|
|
327
|
+
this.#requireConnected();
|
|
328
|
+
return new Promise((resolve, reject) => {
|
|
329
|
+
this.#pendingPubsubToken.push({ resolve, reject });
|
|
330
|
+
this.#send({ t: 'createPubsubToken', d: { peerId, allowedTopics, ttlSecs } });
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
// ── Broadcast control ──────────────────────────────────────────────────────
|
|
334
|
+
/**
|
|
335
|
+
* Promote a viewer to a full bidirectional participant.
|
|
336
|
+
*
|
|
337
|
+
* @param roomId - Room containing the peer.
|
|
338
|
+
* @param peerId - Peer ID to promote.
|
|
339
|
+
*/
|
|
340
|
+
promotePeer(roomId, peerId) {
|
|
341
|
+
this.#requireConnected();
|
|
342
|
+
this.#send({ t: 'promotePeer', d: { roomId, peerId } });
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Demote a participant to a receive-only viewer.
|
|
346
|
+
*
|
|
347
|
+
* @param roomId - Room containing the peer.
|
|
348
|
+
* @param peerId - Peer ID to demote.
|
|
349
|
+
*/
|
|
350
|
+
demotePeer(roomId, peerId) {
|
|
351
|
+
this.#requireConnected();
|
|
352
|
+
this.#send({ t: 'demotePeer', d: { roomId, peerId } });
|
|
353
|
+
}
|
|
354
|
+
// ── Screen sharing ─────────────────────────────────────────────────────────
|
|
355
|
+
/**
|
|
356
|
+
* Set the screen share simulcast strategy for a peer.
|
|
357
|
+
*
|
|
358
|
+
* @param roomId - Room containing the screensharing peer.
|
|
359
|
+
* @param peerId - Peer sharing their screen.
|
|
360
|
+
* @param mode - `"static"` (resolution) or `"motion"` (framerate).
|
|
361
|
+
*/
|
|
362
|
+
setScreenShareMode(roomId, peerId, mode) {
|
|
363
|
+
this.#requireConnected();
|
|
364
|
+
this.#send({ t: 'setScreenShareMode', d: { roomId, peerId, mode } });
|
|
365
|
+
}
|
|
366
|
+
// ── Chat history ───────────────────────────────────────────────────────────
|
|
367
|
+
/**
|
|
368
|
+
* Request historical chat messages for a room.
|
|
369
|
+
*
|
|
370
|
+
* @param roomId - Room to get chat history for.
|
|
371
|
+
* @param lastN - Maximum number of recent messages to return.
|
|
372
|
+
*/
|
|
373
|
+
getChatHistory(roomId, lastN) {
|
|
374
|
+
this.#requireConnected();
|
|
375
|
+
this.#send({ t: 'getChatHistory', d: { roomId, lastN } });
|
|
376
|
+
}
|
|
377
|
+
// ── Token revocation ──────────────────────────────────────────────────────
|
|
378
|
+
/**
|
|
379
|
+
* Revoke a session token. The token becomes invalid immediately.
|
|
380
|
+
*
|
|
381
|
+
* @param token - The session token string to revoke.
|
|
382
|
+
*/
|
|
383
|
+
revokeToken(token) {
|
|
384
|
+
this.#requireConnected();
|
|
385
|
+
this.#send({ t: 'revokeToken', d: { token } });
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Register a listener for token revocation confirmations.
|
|
389
|
+
*
|
|
390
|
+
* @param listener - Called with the token hash on confirmation.
|
|
391
|
+
*/
|
|
392
|
+
onTokenRevoked(listener) {
|
|
393
|
+
this.#tokenRevokedListeners.add(listener);
|
|
394
|
+
}
|
|
395
|
+
// ── WHIP ingestion ────────────────────────────────────────────────────────
|
|
396
|
+
/**
|
|
397
|
+
* Create a WHIP ingest session for an external publisher.
|
|
398
|
+
* Uses HTTP POST to `/whip/{roomId}` with the product secret.
|
|
399
|
+
*
|
|
400
|
+
* @param roomId - Room to publish into.
|
|
401
|
+
* @param sdpOffer - Raw SDP offer from the publisher.
|
|
402
|
+
* @returns WHIP session with resourceId and answerSdp.
|
|
403
|
+
*/
|
|
404
|
+
async createWhipSession(roomId, sdpOffer) {
|
|
405
|
+
const httpUrl = this.url.replace(/^ws/, 'http');
|
|
406
|
+
const res = await fetch(`${httpUrl}/whip/${encodeURIComponent(roomId)}`, {
|
|
407
|
+
method: 'POST',
|
|
408
|
+
headers: {
|
|
409
|
+
'Content-Type': 'application/sdp',
|
|
410
|
+
'Authorization': `Bearer ${this.#secret}`,
|
|
411
|
+
},
|
|
412
|
+
body: sdpOffer,
|
|
413
|
+
});
|
|
414
|
+
if (!res.ok) {
|
|
415
|
+
throw new Error(`WHIP offer failed: ${res.status} ${await res.text()}`);
|
|
416
|
+
}
|
|
417
|
+
const location = res.headers.get('Location') ?? '';
|
|
418
|
+
const resourceId = location.split('/').pop() ?? '';
|
|
419
|
+
const answerSdp = await res.text();
|
|
420
|
+
// Extract peer ID from the session (Hall generates whip-{uuid}).
|
|
421
|
+
const peerId = `whip-${resourceId}`;
|
|
422
|
+
return { resourceId, answerSdp, roomId, peerId };
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Send a trickle ICE candidate to an active WHIP session.
|
|
426
|
+
*
|
|
427
|
+
* @param roomId - Room the WHIP session belongs to.
|
|
428
|
+
* @param resourceId - Resource ID from createWhipSession.
|
|
429
|
+
* @param candidate - ICE candidate in trickle-ice-sdpfrag format.
|
|
430
|
+
*/
|
|
431
|
+
async addWhipIceCandidate(roomId, resourceId, candidate) {
|
|
432
|
+
const httpUrl = this.url.replace(/^ws/, 'http');
|
|
433
|
+
const res = await fetch(`${httpUrl}/whip/${encodeURIComponent(roomId)}/${encodeURIComponent(resourceId)}`, {
|
|
434
|
+
method: 'PATCH',
|
|
435
|
+
headers: {
|
|
436
|
+
'Content-Type': 'application/trickle-ice-sdpfrag',
|
|
437
|
+
},
|
|
438
|
+
body: candidate,
|
|
439
|
+
});
|
|
440
|
+
if (!res.ok) {
|
|
441
|
+
throw new Error(`WHIP ICE failed: ${res.status} ${await res.text()}`);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Tear down a WHIP session and remove the publisher peer.
|
|
446
|
+
*
|
|
447
|
+
* @param roomId - Room the WHIP session belongs to.
|
|
448
|
+
* @param resourceId - Resource ID from createWhipSession.
|
|
449
|
+
*/
|
|
450
|
+
async closeWhipSession(roomId, resourceId) {
|
|
451
|
+
const httpUrl = this.url.replace(/^ws/, 'http');
|
|
452
|
+
const res = await fetch(`${httpUrl}/whip/${encodeURIComponent(roomId)}/${encodeURIComponent(resourceId)}`, {
|
|
453
|
+
method: 'DELETE',
|
|
454
|
+
});
|
|
455
|
+
if (!res.ok) {
|
|
456
|
+
throw new Error(`WHIP delete failed: ${res.status} ${await res.text()}`);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
250
459
|
// ── Private: socket management ─────────────────────────────────────────────
|
|
251
460
|
#openSocket() {
|
|
252
461
|
const ws = new WebSocket(`${this.url}/ws/product`);
|
|
@@ -313,6 +522,17 @@ export class HallClient {
|
|
|
313
522
|
throw new Error('Hall: not authenticated — await hall.connect() first');
|
|
314
523
|
}
|
|
315
524
|
}
|
|
525
|
+
// ── Private: pub/sub event dispatch ────────────────────────────────────────
|
|
526
|
+
#dispatchPubsub(event, payload) {
|
|
527
|
+
for (const listener of this.#pubsubListeners[event]) {
|
|
528
|
+
try {
|
|
529
|
+
listener(payload);
|
|
530
|
+
}
|
|
531
|
+
catch (e) {
|
|
532
|
+
console.error(`[Hall] uncaught error in pubsub '${event}' listener:`, e);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
316
536
|
// ── Private: message routing ───────────────────────────────────────────────
|
|
317
537
|
#handleMessage(msg) {
|
|
318
538
|
switch (msg.t) {
|
|
@@ -367,6 +587,7 @@ export class HallClient {
|
|
|
367
587
|
console.warn(`[Hall] server error ${msg.d.code}: ${msg.d.message}`);
|
|
368
588
|
this.#rejectFirstPending(new Error(msg.d.message));
|
|
369
589
|
break;
|
|
590
|
+
// ── Room events ──────────────────────────────────────────────────────
|
|
370
591
|
case 'transcript':
|
|
371
592
|
this.#dispatchRoomEvent(msg.d.roomId, 'transcript', msg.d);
|
|
372
593
|
break;
|
|
@@ -388,6 +609,64 @@ export class HallClient {
|
|
|
388
609
|
case 'recordingManifest':
|
|
389
610
|
this.#dispatchRoomEvent(msg.d.roomId, 'recordingManifest', msg.d.manifest);
|
|
390
611
|
break;
|
|
612
|
+
case 'peerPromoted':
|
|
613
|
+
this.#dispatchRoomEvent(msg.d.roomId, 'peerPromoted', msg.d);
|
|
614
|
+
break;
|
|
615
|
+
case 'peerDemoted':
|
|
616
|
+
this.#dispatchRoomEvent(msg.d.roomId, 'peerDemoted', msg.d);
|
|
617
|
+
break;
|
|
618
|
+
case 'viewerCount':
|
|
619
|
+
this.#dispatchRoomEvent(msg.d.roomId, 'viewerCount', msg.d);
|
|
620
|
+
break;
|
|
621
|
+
case 'screenShareThumbnail':
|
|
622
|
+
this.#dispatchRoomEvent(msg.d.roomId, 'screenShareThumbnail', msg.d);
|
|
623
|
+
break;
|
|
624
|
+
case 'chatHistory':
|
|
625
|
+
this.#dispatchRoomEvent(msg.d.roomId, 'chatHistory', msg.d);
|
|
626
|
+
break;
|
|
627
|
+
case 'mediaReady':
|
|
628
|
+
// Media events are room-scoped — dispatch to all rooms (media is product-level).
|
|
629
|
+
// Products typically only have one active room per media upload, so this is fine.
|
|
630
|
+
for (const room of this.#rooms.values()) {
|
|
631
|
+
room._dispatch('mediaReady', msg.d);
|
|
632
|
+
}
|
|
633
|
+
break;
|
|
634
|
+
case 'mediaError':
|
|
635
|
+
for (const room of this.#rooms.values()) {
|
|
636
|
+
room._dispatch('mediaError', msg.d);
|
|
637
|
+
}
|
|
638
|
+
break;
|
|
639
|
+
// ── Pub/Sub events ───────────────────────────────────────────────────
|
|
640
|
+
case 'topicSubscribed':
|
|
641
|
+
this.#dispatchPubsub('topicSubscribed', msg.d);
|
|
642
|
+
break;
|
|
643
|
+
case 'topicUnsubscribed':
|
|
644
|
+
this.#dispatchPubsub('topicUnsubscribed', msg.d);
|
|
645
|
+
break;
|
|
646
|
+
case 'topicMessage':
|
|
647
|
+
this.#dispatchPubsub('topicMessage', msg.d);
|
|
648
|
+
break;
|
|
649
|
+
case 'presenceUpdate':
|
|
650
|
+
this.#dispatchPubsub('presenceUpdate', msg.d);
|
|
651
|
+
break;
|
|
652
|
+
case 'presenceSnapshot':
|
|
653
|
+
this.#dispatchPubsub('presenceSnapshot', msg.d);
|
|
654
|
+
break;
|
|
655
|
+
case 'pubsubToken': {
|
|
656
|
+
const pending = this.#pendingPubsubToken.shift();
|
|
657
|
+
pending?.resolve({ token: msg.d.token, expiresAt: msg.d.expiresAt });
|
|
658
|
+
break;
|
|
659
|
+
}
|
|
660
|
+
case 'tokenRevoked':
|
|
661
|
+
for (const listener of this.#tokenRevokedListeners) {
|
|
662
|
+
try {
|
|
663
|
+
listener(msg.d);
|
|
664
|
+
}
|
|
665
|
+
catch (e) {
|
|
666
|
+
console.error('[Hall] uncaught error in tokenRevoked listener:', e);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
break;
|
|
391
670
|
case 'recordingStarted':
|
|
392
671
|
case 'dataSent':
|
|
393
672
|
// Informational acks — no pending promise to resolve.
|
|
@@ -412,6 +691,8 @@ export class HallClient {
|
|
|
412
691
|
this.#pendingSessionToken.clear();
|
|
413
692
|
this.#pendingRoomList.forEach((p) => p.reject(err));
|
|
414
693
|
this.#pendingRoomList.length = 0;
|
|
694
|
+
this.#pendingPubsubToken.forEach((p) => p.reject(err));
|
|
695
|
+
this.#pendingPubsubToken.length = 0;
|
|
415
696
|
}
|
|
416
697
|
#rejectFirstPending(err) {
|
|
417
698
|
for (const [key, p] of this.#pendingCreateRoom) {
|
|
@@ -429,7 +710,16 @@ export class HallClient {
|
|
|
429
710
|
p.reject(err);
|
|
430
711
|
return;
|
|
431
712
|
}
|
|
432
|
-
this.#pendingRoomList.shift()
|
|
713
|
+
const listPending = this.#pendingRoomList.shift();
|
|
714
|
+
if (listPending) {
|
|
715
|
+
listPending.reject(err);
|
|
716
|
+
return;
|
|
717
|
+
}
|
|
718
|
+
const pubsubPending = this.#pendingPubsubToken.shift();
|
|
719
|
+
if (pubsubPending) {
|
|
720
|
+
pubsubPending.reject(err);
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
433
723
|
}
|
|
434
724
|
}
|
|
435
725
|
// ─── Factory ──────────────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"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"}
|