@caitdesk/client 0.3.2 → 0.4.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @caitdesk/client
2
2
 
3
- Official TypeScript client for the CaitDesk captioner API. Provides typed REST and WebSocket interfaces for third-party captioning applications.
3
+ Official TypeScript client for the CaitDesk API. Provides typed REST and WebSocket interfaces for third-party captioning and broadcast viewing applications.
4
4
 
5
5
  ## Install
6
6
 
@@ -10,12 +10,14 @@ npm install @caitdesk/client
10
10
 
11
11
  ## Quick Start
12
12
 
13
+ ### Captioner (sending captions)
14
+
13
15
  ```ts
14
16
  import { CaitDeskClient } from '@caitdesk/client';
15
17
 
16
18
  const client = new CaitDeskClient({
17
19
  apiUrl: 'https://api.caitdesk.com',
18
- apiKey: 'cait_sk_...',
20
+ apiKey: 'cait_sk_...', // needs captioner:stream + captioner:events scopes
19
21
  onStatusChange: (status) => console.log('Connection:', status),
20
22
  onSlotChange: (status) => console.log('Slot:', status),
21
23
  onCaptionAck: (ack) => console.log('Ack seq:', ack.seq),
@@ -33,16 +35,34 @@ await client.connect(events[0].id);
33
35
  client.append('Hello, world!');
34
36
  client.append(' More text.');
35
37
 
36
- // Control the event
37
- client.start(); // Start the event
38
- client.pause(); // Pause captions
39
- client.resume(); // Resume captions
40
- client.stop(); // End the event
41
-
42
38
  // Disconnect when done
43
39
  client.disconnect();
44
40
  ```
45
41
 
42
+ ### Viewer (receiving captions)
43
+
44
+ ```ts
45
+ import { CaitDeskClient } from '@caitdesk/client';
46
+
47
+ const client = new CaitDeskClient({
48
+ apiUrl: 'https://api.caitdesk.com',
49
+ apiKey: 'cait_sk_...', // needs broadcast:view scope
50
+ });
51
+
52
+ // Subscribe to an event's broadcast
53
+ await client.subscribe('event-id', {
54
+ onCaption: (text, seq) => console.log('Caption:', text),
55
+ onStatus: (status) => console.log('Event status:', status),
56
+ onViewerCount: (count) => console.log('Viewers:', count),
57
+ onError: (err) => console.error('Error:', err.message),
58
+ onEventEnded: (id) => console.log('Event ended:', id),
59
+ onStatusChange: (status) => console.log('Connection:', status),
60
+ });
61
+
62
+ // Later: disconnect
63
+ client.unsubscribe();
64
+ ```
65
+
46
66
  ### Custom Fetch (Tauri, etc.)
47
67
 
48
68
  ```ts
@@ -68,10 +88,11 @@ new CaitDeskClient(config: CaitDeskConfig)
68
88
 
69
89
  #### Properties
70
90
 
71
- | Property | Type | Description |
72
- | ------------ | ------------------ | ---------------------------------------- |
73
- | `status` | `ConnectionStatus` | Current WebSocket connection status |
74
- | `slotStatus` | `SlotStatus` | Current slot status (active or waiting) |
91
+ | Property | Type | Description |
92
+ | ----------------- | ------------------ | ---------------------------------------------- |
93
+ | `status` | `ConnectionStatus` | Current captioner WebSocket connection status |
94
+ | `slotStatus` | `SlotStatus` | Current slot status (active or waiting) |
95
+ | `broadcastStatus` | `ConnectionStatus` | Current broadcast WebSocket connection status |
75
96
 
76
97
  #### REST Methods
77
98
 
@@ -123,6 +144,31 @@ These methods require an active WebSocket connection (call `connect()` first). F
123
144
  client.releaseSlot(): void // Yield active slot to next waiting captioner
124
145
  ```
125
146
 
147
+ #### Broadcast Subscription (Viewer)
148
+
149
+ ```ts
150
+ client.subscribe(eventId: string, config: SubscribeConfig): Promise<void>
151
+ client.unsubscribe(): void
152
+ ```
153
+
154
+ `subscribe()` fetches a broadcast ticket and opens a WebSocket connection to receive captions in real-time. Requires the `broadcast:view` API key scope.
155
+
156
+ ```ts
157
+ await client.subscribe(eventId, {
158
+ onCaption: (text, seq) => console.log('Caption:', text),
159
+ onStatus: (status) => console.log('Event status:', status),
160
+ onViewerCount: (count) => console.log('Viewers:', count),
161
+ onError: (err) => console.error('Error:', err.message),
162
+ onEventEnded: (id) => console.log('Event ended:', id),
163
+ onStatusChange: (status) => console.log('Connection:', status),
164
+ });
165
+
166
+ // Later: disconnect from broadcast
167
+ client.unsubscribe();
168
+ ```
169
+
170
+ The captioner connection (`connect`/`disconnect`) and broadcast subscription (`subscribe`/`unsubscribe`) are fully independent and can run simultaneously.
171
+
126
172
  ### Configuration
127
173
 
128
174
  ```ts
@@ -158,6 +204,8 @@ interface CaitDeskConfig {
158
204
 
159
205
  ### Types
160
206
 
207
+ #### Captioner types
208
+
161
209
  ```ts
162
210
  interface User { id: string; email: string; name: string | null }
163
211
  interface Event { id: string; organizationId: string; title: string; description: string | null; scheduledStart: string; scheduledEnd: string | null; status: string; clientName: string | null }
@@ -167,6 +215,28 @@ interface ServerError { type: 'error'; code: string; message: string; details?:
167
215
  interface SlotDetail { position?: number; activeSince?: string }
168
216
  ```
169
217
 
218
+ #### Broadcast types
219
+
220
+ ```ts
221
+ interface SubscribeConfig {
222
+ onCaption?: (text: string, seq: number) => void;
223
+ onStatus?: (status: string, detail?: { scheduledStart?: string }) => void;
224
+ onViewerCount?: (count: number) => void;
225
+ onError?: (error: ServerError) => void;
226
+ onEventEnded?: (eventId: string) => void;
227
+ onStatusChange?: (status: ConnectionStatus) => void;
228
+ }
229
+ ```
230
+
231
+ | Callback | When it fires |
232
+ | ---------------- | ------------------------------------------------------- |
233
+ | `onCaption` | New caption text received (full text state + seq) |
234
+ | `onStatus` | Event status changes (waiting/live/ended) |
235
+ | `onViewerCount` | Viewer count updates |
236
+ | `onError` | Server sends an error message |
237
+ | `onEventEnded` | The event has ended (server-initiated, closes connection) |
238
+ | `onStatusChange` | Broadcast WebSocket connection state changes |
239
+
170
240
  ### Constants
171
241
 
172
242
  ```ts
@@ -175,6 +245,19 @@ import { EVENT_STATUS, ERROR_CODE, RATE_LIMITS, CONNECTION_DEFAULTS } from '@cai
175
245
 
176
246
  - `EVENT_STATUS` — event status values (`DRAFT`, `SCHEDULED`, `LIVE`, `ENDED`, `ARCHIVED`, `CANCELLED`)
177
247
 
248
+ ## API Key Scopes
249
+
250
+ Your API key must have the appropriate scopes for the methods you use:
251
+
252
+ | Scope | Required for |
253
+ | -------------------- | ------------------------------------------------------ |
254
+ | `captioner:events` | `getEvents()` |
255
+ | `captioner:stream` | `connect()` (fetches stream ticket) |
256
+ | `captioner:control` | `startEvent()`, `stopEvent()` |
257
+ | `broadcast:view` | `subscribe()` (fetches broadcast ticket) |
258
+
259
+ `getMe()` requires any valid API key (no specific scope).
260
+
178
261
  ## Error Handling
179
262
 
180
263
  Errors are delivered via the `onError` callback. Some errors are terminal:
@@ -192,17 +275,18 @@ Terminal errors close the connection without reconnection.
192
275
 
193
276
  ## Reconnection
194
277
 
195
- The client reconnects automatically on unexpected disconnects using exponential backoff (1s initial, 30s max, 1.5x multiplier). During reconnection:
278
+ Both captioner and broadcast connections reconnect automatically on unexpected disconnects using exponential backoff (1s initial, 30s max, 1.5x multiplier). During reconnection:
196
279
 
197
280
  1. A fresh ticket is fetched via the REST API
198
281
  2. A new WebSocket connection is established
199
- 3. The slot system restores your position (same user ID = seamless takeover)
282
+ 3. **Captioner**: The slot system restores your position (same user ID = seamless takeover)
283
+ 4. **Broadcast**: Missed captions are replayed from the last received sequence number
200
284
 
201
285
  The client does **not** reconnect when:
202
- - You call `disconnect()`
286
+ - You call `disconnect()` / `unsubscribe()`
203
287
  - The event ends (`event_ended` message)
204
288
  - Authentication fails (close code `1008`)
205
- - The slot queue is full (close code `1013`)
289
+ - The slot queue is full (close code `1013`, captioner only)
206
290
 
207
291
  ## Slot System
208
292
 
package/dist/api.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { User, Event, Ticket } from './types';
1
+ import type { User, Event, Ticket, BroadcastTicket } from './types';
2
2
  export declare class ApiClient {
3
3
  private readonly baseUrl;
4
4
  private readonly apiKey;
@@ -14,6 +14,7 @@ export declare class ApiClient {
14
14
  stopEvent(eventId: string): Promise<{
15
15
  success: boolean;
16
16
  }>;
17
+ getBroadcastTicket(eventId: string): Promise<BroadcastTicket>;
17
18
  private request;
18
19
  }
19
20
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAanD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK;IAOxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAI7B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI1D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;YAIjD,OAAO;CA+BtB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAapE,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK;IAOxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAI7B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI1D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIzD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;YAIrD,OAAO;CA+BtB"}
package/dist/api.js CHANGED
@@ -25,6 +25,9 @@ export class ApiClient {
25
25
  async stopEvent(eventId) {
26
26
  return this.request('POST', `/api/v1/me/events/${eventId}/stop`);
27
27
  }
28
+ async getBroadcastTicket(eventId) {
29
+ return this.request('POST', `/api/v1/me/events/${eventId}/broadcast/ticket`);
30
+ }
28
31
  async request(method, path) {
29
32
  const controller = new AbortController();
30
33
  const timer = setTimeout(() => controller.abort(), this.timeoutMs);
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAclD,MAAM,OAAO,SAAS;IACH,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,KAAK,CAA0B;IAEhD,YAAY,OAAe,EAAE,MAAc,EAAE,OAAiC;QAC5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,OAAO,CAAO,KAAK,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAU,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAS,MAAM,EAAE,qBAAqB,OAAO,gBAAgB,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAuB,MAAM,EAAE,qBAAqB,OAAO,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAuB,MAAM,EAAE,qBAAqB,OAAO,OAAO,CAAC,CAAC;IACzF,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY;QACnD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC1D,MAAM;gBACN,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6C,CAAC;YAEjF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAwB,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,OAAQ,IAA8B,CAAC,IAAI,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAclD,MAAM,OAAO,SAAS;IACH,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,KAAK,CAA0B;IAEhD,YAAY,OAAe,EAAE,MAAc,EAAE,OAAiC;QAC5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,OAAO,CAAO,KAAK,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAU,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAS,MAAM,EAAE,qBAAqB,OAAO,gBAAgB,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAuB,MAAM,EAAE,qBAAqB,OAAO,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAuB,MAAM,EAAE,qBAAqB,OAAO,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,OAAO,IAAI,CAAC,OAAO,CAAkB,MAAM,EAAE,qBAAqB,OAAO,mBAAmB,CAAC,CAAC;IAChG,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY;QACnD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC1D,MAAM;gBACN,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6C,CAAC;YAEjF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAwB,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,OAAQ,IAA8B,CAAC,IAAI,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import type { ConnectionStatus, BroadcastTicket, SubscribeConfig } from './types';
2
+ export declare class BroadcastWsClient {
3
+ private ws;
4
+ private _status;
5
+ private reconnectDelay;
6
+ private reconnectTimer;
7
+ private heartbeatTimer;
8
+ private intentionalClose;
9
+ private broadcastUrl;
10
+ private eventId;
11
+ private ticket;
12
+ private lastSeq;
13
+ private pendingReplay;
14
+ private readonly config;
15
+ private readonly refreshTicket;
16
+ constructor(config: SubscribeConfig, refreshTicket: () => Promise<BroadcastTicket>);
17
+ get status(): ConnectionStatus;
18
+ connect(ticket: BroadcastTicket, eventId: string): void;
19
+ disconnect(): void;
20
+ private send;
21
+ private openSocket;
22
+ private handleMessage;
23
+ private handleClose;
24
+ private scheduleReconnect;
25
+ private clearReconnectTimer;
26
+ private startHeartbeat;
27
+ private stopHeartbeat;
28
+ private setStatus;
29
+ }
30
+ //# sourceMappingURL=broadcast-ws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast-ws.d.ts","sourceRoot":"","sources":["../src/broadcast-ws.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAGf,eAAe,EAChB,MAAM,SAAS,CAAC;AAUjB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;gBAEnD,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC;IAKlF,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQvD,UAAU,IAAI,IAAI;IAelB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,aAAa;IA0DrB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,183 @@
1
+ import { ERROR_CODE, CONNECTION_DEFAULTS, WS_CLOSE_CODE } from './constants';
2
+ /** Close codes that should not trigger reconnection */
3
+ const TERMINAL_CLOSE_CODES = new Set([
4
+ WS_CLOSE_CODE.AUTH_FAILED,
5
+ ]);
6
+ /** Heartbeat interval in ms */
7
+ const HEARTBEAT_INTERVAL_MS = 30_000;
8
+ export class BroadcastWsClient {
9
+ ws = null;
10
+ _status = 'disconnected';
11
+ reconnectDelay = CONNECTION_DEFAULTS.RECONNECT_DELAY_MS;
12
+ reconnectTimer = null;
13
+ heartbeatTimer = null;
14
+ intentionalClose = false;
15
+ broadcastUrl = '';
16
+ eventId = '';
17
+ ticket = '';
18
+ lastSeq = 0;
19
+ pendingReplay = false;
20
+ config;
21
+ refreshTicket;
22
+ constructor(config, refreshTicket) {
23
+ this.config = config;
24
+ this.refreshTicket = refreshTicket;
25
+ }
26
+ get status() {
27
+ return this._status;
28
+ }
29
+ connect(ticket, eventId) {
30
+ this.intentionalClose = false;
31
+ this.broadcastUrl = ticket.broadcastUrl;
32
+ this.ticket = ticket.ticket;
33
+ this.eventId = eventId;
34
+ this.openSocket();
35
+ }
36
+ disconnect() {
37
+ this.intentionalClose = true;
38
+ this.clearReconnectTimer();
39
+ this.stopHeartbeat();
40
+ if (this.ws) {
41
+ this.ws.close(1000);
42
+ this.ws = null;
43
+ }
44
+ this.setStatus('disconnected');
45
+ }
46
+ // -----------------------------------------------------------------------
47
+ // Private
48
+ // -----------------------------------------------------------------------
49
+ send(message) {
50
+ if (this.ws && this.ws.readyState === WebSocket.OPEN) {
51
+ this.ws.send(JSON.stringify(message));
52
+ }
53
+ }
54
+ openSocket() {
55
+ this.setStatus('connecting');
56
+ const base = this.broadcastUrl.replace(/\/+$/, '');
57
+ const url = new URL(`${base}/ws/${this.eventId}`);
58
+ url.searchParams.set('ticket', this.ticket);
59
+ this.ws = new WebSocket(url.toString());
60
+ this.ws.onopen = () => {
61
+ this.reconnectDelay = CONNECTION_DEFAULTS.RECONNECT_DELAY_MS;
62
+ this.setStatus('connected');
63
+ this.startHeartbeat();
64
+ };
65
+ this.ws.onmessage = (event) => {
66
+ this.handleMessage(event.data);
67
+ };
68
+ this.ws.onclose = (event) => {
69
+ this.handleClose(event);
70
+ };
71
+ this.ws.onerror = () => {
72
+ // The close event fires after error, which handles reconnection
73
+ };
74
+ }
75
+ handleMessage(data) {
76
+ let msg;
77
+ try {
78
+ msg = JSON.parse(data);
79
+ }
80
+ catch {
81
+ return;
82
+ }
83
+ switch (msg.type) {
84
+ case 'connected':
85
+ // Connection confirmed — request replay if reconnecting with missed captions
86
+ if (this.pendingReplay && this.lastSeq > 0) {
87
+ this.pendingReplay = false;
88
+ this.send({ type: 'reconnect', eventId: this.eventId, lastSeq: this.lastSeq });
89
+ }
90
+ break;
91
+ case 'caption': {
92
+ const caption = msg;
93
+ this.lastSeq = caption.seq;
94
+ this.config.onCaption?.(caption.text, caption.seq);
95
+ break;
96
+ }
97
+ case 'status': {
98
+ const status = msg;
99
+ const detail = status.scheduledStart ? { scheduledStart: status.scheduledStart } : undefined;
100
+ this.config.onStatus?.(status.status, detail);
101
+ break;
102
+ }
103
+ case 'viewers': {
104
+ const viewers = msg;
105
+ this.config.onViewerCount?.(viewers.count);
106
+ break;
107
+ }
108
+ case 'error':
109
+ this.config.onError?.(msg);
110
+ if (msg.code === ERROR_CODE.WS_AUTH_FAILED) {
111
+ this.intentionalClose = true;
112
+ }
113
+ break;
114
+ case 'event_ended': {
115
+ const ended = msg;
116
+ this.config.onEventEnded?.(ended.eventId);
117
+ this.intentionalClose = true;
118
+ break;
119
+ }
120
+ case 'pong':
121
+ case 'replay_complete':
122
+ // No-op: acknowledged by server
123
+ break;
124
+ }
125
+ }
126
+ handleClose(event) {
127
+ this.ws = null;
128
+ this.stopHeartbeat();
129
+ if (this.intentionalClose || TERMINAL_CLOSE_CODES.has(event.code)) {
130
+ this.setStatus('disconnected');
131
+ return;
132
+ }
133
+ // Attempt reconnection
134
+ this.setStatus('reconnecting');
135
+ this.scheduleReconnect();
136
+ }
137
+ scheduleReconnect() {
138
+ this.clearReconnectTimer();
139
+ this.reconnectTimer = setTimeout(async () => {
140
+ try {
141
+ const newTicket = await this.refreshTicket();
142
+ this.ticket = newTicket.ticket;
143
+ this.broadcastUrl = newTicket.broadcastUrl;
144
+ this.pendingReplay = this.lastSeq > 0;
145
+ this.openSocket();
146
+ }
147
+ catch {
148
+ this.config.onError?.({
149
+ type: 'error',
150
+ code: ERROR_CODE.NETWORK_ERROR,
151
+ message: 'Failed to refresh broadcast ticket',
152
+ });
153
+ this.reconnectDelay = Math.min(this.reconnectDelay * CONNECTION_DEFAULTS.RECONNECT_MULTIPLIER, CONNECTION_DEFAULTS.RECONNECT_DELAY_MAX_MS);
154
+ this.scheduleReconnect();
155
+ }
156
+ }, this.reconnectDelay);
157
+ }
158
+ clearReconnectTimer() {
159
+ if (this.reconnectTimer != null) {
160
+ clearTimeout(this.reconnectTimer);
161
+ this.reconnectTimer = null;
162
+ }
163
+ }
164
+ startHeartbeat() {
165
+ this.stopHeartbeat();
166
+ this.heartbeatTimer = setInterval(() => {
167
+ this.send({ type: 'ping' });
168
+ }, HEARTBEAT_INTERVAL_MS);
169
+ }
170
+ stopHeartbeat() {
171
+ if (this.heartbeatTimer != null) {
172
+ clearInterval(this.heartbeatTimer);
173
+ this.heartbeatTimer = null;
174
+ }
175
+ }
176
+ setStatus(status) {
177
+ if (this._status !== status) {
178
+ this._status = status;
179
+ this.config.onStatusChange?.(status);
180
+ }
181
+ }
182
+ }
183
+ //# sourceMappingURL=broadcast-ws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast-ws.js","sourceRoot":"","sources":["../src/broadcast-ws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS7E,uDAAuD;AACvD,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACxD,aAAa,CAAC,WAAW;CAC1B,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,MAAM,OAAO,iBAAiB;IACpB,EAAE,GAAqB,IAAI,CAAC;IAC5B,OAAO,GAAqB,cAAc,CAAC;IAC3C,cAAc,GAAW,mBAAmB,CAAC,kBAAkB,CAAC;IAChE,cAAc,GAAyC,IAAI,CAAC;IAC5D,cAAc,GAA0C,IAAI,CAAC;IAC7D,gBAAgB,GAAG,KAAK,CAAC;IACzB,YAAY,GAAG,EAAE,CAAC;IAClB,OAAO,GAAG,EAAE,CAAC;IACb,MAAM,GAAG,EAAE,CAAC;IACZ,OAAO,GAAG,CAAC,CAAC;IACZ,aAAa,GAAG,KAAK,CAAC;IACb,MAAM,CAAkB;IACxB,aAAa,CAAiC;IAE/D,YAAY,MAAuB,EAAE,aAA6C;QAChF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,MAAuB,EAAE,OAAe;QAC9C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,0EAA0E;IAC1E,UAAU;IACV,0EAA0E;IAElE,IAAI,CAAC,OAAe;QAC1B,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,gEAAgE;QAClE,CAAC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,IAAI,GAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,WAAW;gBACd,6EAA6E;gBAC7E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM;YAER,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG,GAA6C,CAAC;gBAC9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnD,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,GAA4C,CAAC;gBAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7F,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC9C,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG,GAA6C,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACR,CAAC;YAED,KAAK,OAAO;gBACV,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAkB,CAAC,CAAC;gBAC1C,IAAK,GAAmB,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE,CAAC;oBAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC/B,CAAC;gBACD,MAAM;YAER,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,KAAK,GAAG,GAAiD,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC;YACZ,KAAK,iBAAiB;gBACpB,gCAAgC;gBAChC,MAAM;QACV,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,gBAAgB,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;gBAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU,CAAC,aAAa;oBAC9B,OAAO,EAAE,oCAAoC;iBAC9C,CAAC,CAAC;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAC5B,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,oBAAoB,EAC9D,mBAAmB,CAAC,sBAAsB,CAC3C,CAAC;gBACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9B,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC5B,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,MAAwB;QACxC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
package/dist/client.d.ts CHANGED
@@ -1,14 +1,17 @@
1
- import type { CaitDeskConfig, User, Event, ConnectionStatus, SlotStatus } from './types';
1
+ import type { CaitDeskConfig, User, Event, ConnectionStatus, SlotStatus, SubscribeConfig } from './types';
2
2
  export declare class CaitDeskClient {
3
3
  private readonly api;
4
4
  private ws;
5
5
  private eventId;
6
+ private broadcastWs;
6
7
  private readonly config;
7
8
  constructor(config: CaitDeskConfig);
8
9
  /** Current WebSocket connection status */
9
10
  get status(): ConnectionStatus;
10
11
  /** Current slot status (active, waiting, or unknown) */
11
12
  get slotStatus(): SlotStatus;
13
+ /** Current broadcast WebSocket connection status */
14
+ get broadcastStatus(): ConnectionStatus;
12
15
  /** Get the authenticated user's info */
13
16
  getMe(): Promise<User>;
14
17
  /** List events assigned to the authenticated user as captioner */
@@ -41,6 +44,10 @@ export declare class CaitDeskClient {
41
44
  resume(): void;
42
45
  /** Release the active slot to the next waiting captioner */
43
46
  releaseSlot(): void;
47
+ /** Subscribe to an event's broadcast to receive captions in real-time */
48
+ subscribe(eventId: string, config: SubscribeConfig): Promise<void>;
49
+ /** Unsubscribe from the broadcast */
50
+ unsubscribe(): void;
44
51
  private sendControl;
45
52
  private requireConnection;
46
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,UAAU,EAEX,MAAM,SAAS,CAAC;AAIjB,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,cAAc;IAKlC,0CAA0C;IAC1C,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,wDAAwD;IACxD,IAAI,UAAU,IAAI,UAAU,CAE3B;IAMD,wCAAwC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,kEAAkE;IAC5D,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAInC,uEAAuE;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIhE,kEAAkE;IAC5D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ/D,8CAA8C;IACxC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C,4CAA4C;IAC5C,UAAU,IAAI,IAAI;IAUlB,gDAAgD;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ1B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3B,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYxB,2DAA2D;IAC3D,KAAK,IAAI,IAAI;IAIb,sDAAsD;IACtD,IAAI,IAAI,IAAI;IAIZ,4BAA4B;IAC5B,KAAK,IAAI,IAAI;IAIb,6BAA6B;IAC7B,MAAM,IAAI,IAAI;IAQd,4DAA4D;IAC5D,WAAW,IAAI,IAAI;IASnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;CAM1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,UAAU,EAEV,eAAe,EAChB,MAAM,SAAS,CAAC;AAIjB,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,cAAc;IAKlC,0CAA0C;IAC1C,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,wDAAwD;IACxD,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,oDAAoD;IACpD,IAAI,eAAe,IAAI,gBAAgB,CAEtC;IAMD,wCAAwC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,kEAAkE;IAC5D,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAInC,uEAAuE;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIhE,kEAAkE;IAC5D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ/D,8CAA8C;IACxC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C,4CAA4C;IAC5C,UAAU,IAAI,IAAI;IAUlB,gDAAgD;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ1B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3B,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYxB,2DAA2D;IAC3D,KAAK,IAAI,IAAI;IAIb,sDAAsD;IACtD,IAAI,IAAI,IAAI;IAIZ,4BAA4B;IAC5B,KAAK,IAAI,IAAI;IAIb,6BAA6B;IAC7B,MAAM,IAAI,IAAI;IAQd,4DAA4D;IAC5D,WAAW,IAAI,IAAI;IASnB,yEAAyE;IACnE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,qCAAqC;IACrC,WAAW,IAAI,IAAI;IASnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;CAM1B"}
package/dist/client.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import { CONTROL_ACTION, RATE_LIMITS } from './constants';
2
2
  import { ApiClient } from './api';
3
3
  import { WsClient } from './ws';
4
+ import { BroadcastWsClient } from './broadcast-ws';
4
5
  const noop = () => { };
5
6
  export class CaitDeskClient {
6
7
  api;
7
8
  ws = null;
8
9
  eventId = null;
10
+ broadcastWs = null;
9
11
  config;
10
12
  constructor(config) {
11
13
  this.config = config;
@@ -19,6 +21,10 @@ export class CaitDeskClient {
19
21
  get slotStatus() {
20
22
  return this.ws?.slotStatus ?? 'unknown';
21
23
  }
24
+ /** Current broadcast WebSocket connection status */
25
+ get broadcastStatus() {
26
+ return this.broadcastWs?.status ?? 'disconnected';
27
+ }
22
28
  // -----------------------------------------------------------------------
23
29
  // REST
24
30
  // -----------------------------------------------------------------------
@@ -119,6 +125,21 @@ export class CaitDeskClient {
119
125
  ws.releaseSlot();
120
126
  }
121
127
  // -----------------------------------------------------------------------
128
+ // Broadcast (viewer) subscription
129
+ // -----------------------------------------------------------------------
130
+ /** Subscribe to an event's broadcast to receive captions in real-time */
131
+ async subscribe(eventId, config) {
132
+ this.broadcastWs?.disconnect();
133
+ const ticket = await this.api.getBroadcastTicket(eventId);
134
+ this.broadcastWs = new BroadcastWsClient(config, () => this.api.getBroadcastTicket(eventId));
135
+ this.broadcastWs.connect(ticket, eventId);
136
+ }
137
+ /** Unsubscribe from the broadcast */
138
+ unsubscribe() {
139
+ this.broadcastWs?.disconnect();
140
+ this.broadcastWs = null;
141
+ }
142
+ // -----------------------------------------------------------------------
122
143
  // Private
123
144
  // -----------------------------------------------------------------------
124
145
  sendControl(action) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAWnD,MAAM,IAAI,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;AAE5B,MAAM,OAAO,cAAc;IACR,GAAG,CAAY;IACxB,EAAE,GAAoB,IAAI,CAAC;IAC3B,OAAO,GAAkB,IAAI,CAAC;IAC9B,WAAW,GAA6B,IAAI,CAAC;IACpC,MAAM,CAAiB;IAExC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,cAAc,CAAC;IAC3C,CAAC;IAED,wDAAwD;IACxD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,EAAE,EAAE,UAAU,IAAI,SAAS,CAAC;IAC1C,CAAC;IAED,oDAAoD;IACpD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,cAAc,CAAC;IACpD,CAAC;IAED,0EAA0E;IAC1E,OAAO;IACP,0EAA0E;IAE1E,wCAAwC;IACxC,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,0EAA0E;IAC1E,aAAa;IACb,0EAA0E;IAE1E,8CAA8C;IAC9C,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC;YACrB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI;YAClD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;YAC9C,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;YAC9C,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;YAC9C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI;YACpC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;YAC9C,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,IAAI;YAC9D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;SACjD,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,4CAA4C;IAC5C,UAAU;QACR,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,0EAA0E;IAC1E,WAAW;IACX,0EAA0E;IAE1E,gDAAgD;IAChD,MAAM,CAAC,IAAY;QACjB,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,uBAAuB,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,2DAA2D;IAC3D,MAAM,CAAC,KAAa;QAClB,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,KAAK,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,uBAAuB,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC,IAAY;QACf,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,uBAAuB,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,0EAA0E;IAC1E,gBAAgB;IAChB,0EAA0E;IAE1E,2DAA2D;IAC3D,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,sDAAsD;IACtD,IAAI;QACF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,4BAA4B;IAC5B,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,6BAA6B;IAC7B,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAE1E,4DAA4D;IAC5D,WAAW;QACT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,EAAE,CAAC,WAAW,EAAE,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,kCAAkC;IAClC,0EAA0E;IAE1E,yEAAyE;IACzE,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,MAAuB;QACtD,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE1D,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,qCAAqC;IACrC,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,UAAU;IACV,0EAA0E;IAElE,WAAW,CAAC,MAA0B;QAC5C,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { CaitDeskClient } from './client';
2
- export type { CaitDeskConfig, User, Event, Ticket, ConnectionStatus, SlotStatus, SlotDetail, CaptionAck, ControlAck, ServerError, ControlActionValue, ErrorCodeValue, } from './types';
2
+ export type { CaitDeskConfig, User, Event, Ticket, ConnectionStatus, SlotStatus, SlotDetail, CaptionAck, ControlAck, ServerError, ControlActionValue, ErrorCodeValue, BroadcastTicket, BroadcastCaptionMessage, BroadcastStatusMessage, BroadcastViewerCountMessage, BroadcastEventEndedMessage, BroadcastMessage, SubscribeConfig, } from './types';
3
3
  export { EVENT_STATUS, ERROR_CODE, RATE_LIMITS, CONNECTION_DEFAULTS, SESSION_ACTION, CONTROL_ACTION, WS_CLOSE_CODE, } from './constants';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,YAAY,EACV,cAAc,EACd,IAAI,EACJ,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,YAAY,EACV,cAAc,EACd,IAAI,EACJ,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAiB1C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAwB1C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC"}
package/dist/types.d.ts CHANGED
@@ -126,4 +126,49 @@ export type SessionMessage = SlotGrantedMessage | SlotOccupiedMessage | SlotRequ
126
126
  export type IncomingMessage = ConnectedMessage | CaptionAck | ControlAck | ServerError | EventEndedMessage | SessionMessage;
127
127
  export type ControlActionValue = (typeof CONTROL_ACTION)[keyof typeof CONTROL_ACTION];
128
128
  export type ErrorCodeValue = (typeof ERROR_CODE)[keyof typeof ERROR_CODE];
129
+ /** Response from the broadcast ticket API endpoint */
130
+ export interface BroadcastTicket {
131
+ ticket: string;
132
+ expiresIn: number;
133
+ broadcastUrl: string;
134
+ }
135
+ /** Caption message from broadcast service */
136
+ export interface BroadcastCaptionMessage {
137
+ type: 'caption';
138
+ eventId: string;
139
+ seq: number;
140
+ text: string;
141
+ }
142
+ /** Event status message from broadcast service */
143
+ export interface BroadcastStatusMessage {
144
+ type: 'status';
145
+ eventId: string;
146
+ status: string;
147
+ scheduledStart?: string;
148
+ }
149
+ /** Viewer count update from broadcast service */
150
+ export interface BroadcastViewerCountMessage {
151
+ type: 'viewers';
152
+ eventId: string;
153
+ count: number;
154
+ }
155
+ /** Event ended message from broadcast service */
156
+ export interface BroadcastEventEndedMessage {
157
+ type: 'event_ended';
158
+ eventId: string;
159
+ message: string;
160
+ }
161
+ /** All possible incoming broadcast messages */
162
+ export type BroadcastMessage = BroadcastCaptionMessage | BroadcastStatusMessage | BroadcastViewerCountMessage | BroadcastEventEndedMessage | ServerError;
163
+ /** Callback configuration for broadcast subscription */
164
+ export interface SubscribeConfig {
165
+ onCaption?: (text: string, seq: number) => void;
166
+ onStatus?: (status: string, detail?: {
167
+ scheduledStart?: string;
168
+ }) => void;
169
+ onViewerCount?: (count: number) => void;
170
+ onError?: (error: ServerError) => void;
171
+ onEventEnded?: (eventId: string) => void;
172
+ onStatusChange?: (status: ConnectionStatus) => void;
173
+ }
129
174
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9E,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjE,kEAAkE;IAClE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAMD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,cAAc,CAAC,YAAY,CAAC;CAC5C;AAED,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,aAAa,GACb,WAAW,GACX,cAAc,GACd,qBAAqB,CAAC;AAM1B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,cAAc,CAAC,YAAY,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,cAAc,CAAC,aAAa,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,cAAc,CAAC,cAAc,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,cAAc,CAAC,sBAAsB,CAAC;IACrD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,cAAc,CAAC;AAMnB,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AACtF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/ws.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EAEV,UAAU,EACV,UAAU,EACV,WAAW,EAEX,MAAM,EACP,MAAM,SAAS,CAAC;AAcjB,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAChE,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;gBAE3B,SAAS,EAAE,iBAAiB;IAIxC,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO7B,UAAU,IAAI,IAAI;IAWlB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM3B,WAAW,IAAI,IAAI;IAQnB,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,aAAa;CAOtB"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EAEV,UAAU,EACV,UAAU,EACV,WAAW,EAEX,MAAM,EACP,MAAM,SAAS,CAAC;AAcjB,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAChE,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;gBAE3B,SAAS,EAAE,iBAAiB;IAIxC,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO7B,UAAU,IAAI,IAAI;IAWlB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM3B,WAAW,IAAI,IAAI;IAQnB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,aAAa;CAOtB"}
package/dist/ws.js CHANGED
@@ -57,7 +57,8 @@ export class WsClient {
57
57
  // -----------------------------------------------------------------------
58
58
  openSocket() {
59
59
  this.setStatus('connecting');
60
- const url = new URL(this.gatewayUrl);
60
+ const base = this.gatewayUrl.replace(/\/+$/, '');
61
+ const url = new URL(`${base}/ws`);
61
62
  url.searchParams.set('ticket', this.ticket);
62
63
  this.ws = new WebSocket(url.toString());
63
64
  this.ws.onopen = () => {
package/dist/ws.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caitdesk/client",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "description": "Official TypeScript client for the CaitDesk captioner API",
6
6
  "exports": {