livekit-client 2.22.0 → 2.22.2

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 (106) hide show
  1. package/dist/livekit-client.e2ee.worker.js +1 -1
  2. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  3. package/dist/livekit-client.e2ee.worker.mjs +364 -40
  4. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  5. package/dist/livekit-client.esm.mjs +1847 -179
  6. package/dist/livekit-client.esm.mjs.map +1 -1
  7. package/dist/livekit-client.fm.worker.js +1 -1
  8. package/dist/livekit-client.fm.worker.js.map +1 -1
  9. package/dist/livekit-client.fm.worker.mjs +187 -1
  10. package/dist/livekit-client.fm.worker.mjs.map +1 -1
  11. package/dist/livekit-client.umd.js +1 -1
  12. package/dist/livekit-client.umd.js.map +1 -1
  13. package/dist/src/api/SignalClient.d.ts +25 -1
  14. package/dist/src/api/SignalClient.d.ts.map +1 -1
  15. package/dist/src/api/SignalClientStateMachine.d.ts +85 -0
  16. package/dist/src/api/SignalClientStateMachine.d.ts.map +1 -0
  17. package/dist/src/api/WebSocketStream.d.ts.map +1 -1
  18. package/dist/src/api/utils.d.ts.map +1 -1
  19. package/dist/src/e2ee/E2eeManager.d.ts +7 -0
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/constants.d.ts +5 -0
  22. package/dist/src/e2ee/constants.d.ts.map +1 -1
  23. package/dist/src/e2ee/types.d.ts +9 -2
  24. package/dist/src/e2ee/types.d.ts.map +1 -1
  25. package/dist/src/e2ee/worker/FrameCryptor.d.ts +42 -1
  26. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  27. package/dist/src/index.d.ts +3 -2
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/logger.d.ts +2 -1
  30. package/dist/src/logger.d.ts.map +1 -1
  31. package/dist/src/options.d.ts +22 -0
  32. package/dist/src/options.d.ts.map +1 -1
  33. package/dist/src/room/PCTransport.d.ts +2 -1
  34. package/dist/src/room/PCTransport.d.ts.map +1 -1
  35. package/dist/src/room/PCTransportManager.d.ts +12 -0
  36. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  37. package/dist/src/room/RTCEngine.d.ts +7 -2
  38. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  39. package/dist/src/room/Room.d.ts +8 -1
  40. package/dist/src/room/Room.d.ts.map +1 -1
  41. package/dist/src/room/data-stream/incoming/StreamReader.d.ts +17 -17
  42. package/dist/src/room/data-stream/incoming/StreamReader.d.ts.map +1 -1
  43. package/dist/src/room/events.d.ts +1 -1
  44. package/dist/src/room/statsSummary.d.ts +13 -0
  45. package/dist/src/room/statsSummary.d.ts.map +1 -0
  46. package/dist/src/room/token-source/utils.d.ts.map +1 -1
  47. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  48. package/dist/src/room/track/Track.d.ts +10 -0
  49. package/dist/src/room/track/Track.d.ts.map +1 -1
  50. package/dist/src/utils/machineInspector.d.ts +54 -0
  51. package/dist/src/utils/machineInspector.d.ts.map +1 -0
  52. package/dist/ts4.2/api/SignalClient.d.ts +25 -1
  53. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -0
  54. package/dist/ts4.2/e2ee/E2eeManager.d.ts +7 -0
  55. package/dist/ts4.2/e2ee/constants.d.ts +5 -0
  56. package/dist/ts4.2/e2ee/types.d.ts +9 -2
  57. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +42 -1
  58. package/dist/ts4.2/index.d.ts +3 -2
  59. package/dist/ts4.2/logger.d.ts +2 -1
  60. package/dist/ts4.2/options.d.ts +22 -0
  61. package/dist/ts4.2/room/PCTransport.d.ts +2 -1
  62. package/dist/ts4.2/room/PCTransportManager.d.ts +12 -0
  63. package/dist/ts4.2/room/RTCEngine.d.ts +7 -2
  64. package/dist/ts4.2/room/Room.d.ts +8 -1
  65. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +17 -17
  66. package/dist/ts4.2/room/events.d.ts +1 -1
  67. package/dist/ts4.2/room/statsSummary.d.ts +13 -0
  68. package/dist/ts4.2/room/track/Track.d.ts +10 -0
  69. package/dist/ts4.2/utils/machineInspector.d.ts +54 -0
  70. package/package.json +7 -1
  71. package/src/api/SignalClient.test.ts +320 -8
  72. package/src/api/SignalClient.ts +261 -82
  73. package/src/api/SignalClientStateMachine.test.ts +472 -0
  74. package/src/api/SignalClientStateMachine.ts +180 -0
  75. package/src/api/WebSocketStream.ts +19 -3
  76. package/src/api/utils.test.ts +20 -1
  77. package/src/api/utils.ts +5 -0
  78. package/src/e2ee/E2eeManager.ts +38 -14
  79. package/src/e2ee/constants.ts +6 -0
  80. package/src/e2ee/subscriberBlackScreen.test.ts +544 -0
  81. package/src/e2ee/types.ts +9 -2
  82. package/src/e2ee/worker/FrameCryptor.race.test.ts +9 -26
  83. package/src/e2ee/worker/FrameCryptor.test.ts +0 -1
  84. package/src/e2ee/worker/FrameCryptor.ts +185 -52
  85. package/src/e2ee/worker/e2ee.worker.ts +38 -6
  86. package/src/index.ts +5 -0
  87. package/src/logger.ts +1 -0
  88. package/src/options.ts +24 -0
  89. package/src/room/PCTransport.ts +2 -1
  90. package/src/room/PCTransportManager.test.ts +35 -0
  91. package/src/room/PCTransportManager.ts +12 -4
  92. package/src/room/RTCEngine.ts +16 -7
  93. package/src/room/Room.ts +70 -5
  94. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +171 -0
  95. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +17 -18
  96. package/src/room/data-stream/incoming/StreamReader.ts +20 -50
  97. package/src/room/events.ts +1 -1
  98. package/src/room/statsSummary.ts +187 -0
  99. package/src/room/token-source/test-tokens.ts +20 -0
  100. package/src/room/token-source/utils.test.ts +27 -0
  101. package/src/room/token-source/utils.ts +12 -5
  102. package/src/room/track/LocalAudioTrack.ts +9 -3
  103. package/src/room/track/Track.ts +27 -0
  104. package/src/room/utils.test.ts +24 -1
  105. package/src/room/utils.ts +1 -1
  106. package/src/utils/machineInspector.ts +90 -0
@@ -72,10 +72,12 @@ declare class Room extends Room_base {
72
72
  private frameMetadataManager;
73
73
  private e2eeStateMutex;
74
74
  private connectionReconcileInterval?;
75
+ private statsLogInterval?;
75
76
  private regionUrlProvider?;
76
77
  private regionUrl?;
77
78
  private isVideoPlaybackBlocked;
78
79
  private log;
80
+ private statsLog;
79
81
  private bufferedEvents;
80
82
  private isResuming;
81
83
  private pendingTrackAddedCallbacks;
@@ -276,6 +278,11 @@ declare class Room extends Room_base {
276
278
  private getRemoteParticipantCapabilities;
277
279
  private getAllRemoteParticipantIdentities;
278
280
  private registerRpcDataStreamHandler;
281
+ private setStatsLogging;
282
+ /**
283
+ * Dumps stats of both peer connections.
284
+ */
285
+ private logWebRTCStats;
279
286
  private registerConnectionReconcile;
280
287
  private clearConnectionReconcile;
281
288
  private setAndEmitConnectionState;
@@ -313,7 +320,7 @@ export type RoomEventCallbacks = {
313
320
  moved: (name: string) => void;
314
321
  mediaDevicesChanged: () => void;
315
322
  participantConnected: (participant: RemoteParticipant) => void;
316
- participantDisconnected: (participant: RemoteParticipant) => void;
323
+ participantDisconnected: (participant: RemoteParticipant, disconnectReason?: DisconnectReason) => void;
317
324
  trackPublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
318
325
  trackSubscribed: (track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
319
326
  trackSubscriptionFailed: (trackSid: string, participant: RemoteParticipant, reason?: SubscriptionError) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,19 @@ declare abstract class BaseStreamReader<T extends BaseStreamInfo> {
13
13
  /** @internal */
14
14
  protected validateBytesReceived(doneReceiving?: boolean): void;
15
15
  constructor(info: T, stream: ReadableStream<DataStream_Chunk>, totalByteSize?: number);
16
- protected abstract handleChunkReceived(chunk: DataStream_Chunk): void;
16
+ /**
17
+ * Counts a chunk's bytes against `totalByteSize` and reports progress. Chunk ordering and
18
+ * de-duplication happen upstream in the manager's `ensureOrderedChunks`, so every chunk reaching
19
+ * here is new and in order.
20
+ */
21
+ protected handleChunkReceived(chunk: DataStream_Chunk): void;
22
+ /**
23
+ * @param progress - progress of the stream between 0 and 1. Undefined for streams of unknown size
24
+ */
17
25
  onProgress?: (progress: number | undefined) => void;
18
26
  abstract readAll(opts?: BaseStreamReaderReadAllOpts): Promise<string | Array<Uint8Array>>;
19
27
  }
20
28
  export declare class ByteStreamReader extends BaseStreamReader<ByteStreamInfo> {
21
- protected handleChunkReceived(chunk: DataStream_Chunk): void;
22
- onProgress?: (progress: number | undefined) => void;
23
29
  signal?: AbortSignal;
24
30
  [Symbol.asyncIterator](): {
25
31
  next: () => Promise<IteratorResult<Uint8Array>>;
@@ -36,25 +42,19 @@ export declare class ByteStreamReader extends BaseStreamReader<ByteStreamInfo> {
36
42
  readAll(opts?: BaseStreamReaderReadAllOpts): Promise<Array<Uint8Array>>;
37
43
  }
38
44
  /**
39
- * A class to read chunks from a ReadableStream and provide them in a structured format.
45
+ * A class to read chunks from a ReadableStream and decode them as UTF-8 text.
46
+ *
47
+ * NOTE: chunk-level `version` (resending a chunk at an already-received `chunkIndex` to supersede
48
+ * it) is not supported. The reader used to rebuild the whole string from a per-index chunk map and
49
+ * yield it as `TextStreamChunk.collected`, which made superseding work; 5d4a6346 (#1410, text auto
50
+ * chunking) changed the iterator to yield each chunk's text as it arrives, and a streaming reader
51
+ * cannot retract text it has already handed to the consumer. No sender emits a versioned chunk.
40
52
  */
41
53
  export declare class TextStreamReader extends BaseStreamReader<TextStreamInfo> {
42
- private receivedChunks;
43
54
  signal?: AbortSignal;
44
- /**
45
- * A TextStreamReader instance can be used as an AsyncIterator that returns the entire string
46
- * that has been received up to the current point in time.
47
- */
48
- constructor(info: TextStreamInfo, stream: ReadableStream<DataStream_Chunk>, totalChunkCount?: number);
49
- protected handleChunkReceived(chunk: DataStream_Chunk): void;
50
- /**
51
- * @param progress - progress of the stream between 0 and 1. Undefined for streams of unknown size
52
- */
53
- onProgress?: (progress: number | undefined) => void;
54
55
  /**
55
56
  * Async iterator implementation to allow usage of `for await...of` syntax.
56
- * Yields structured chunks from the stream.
57
- *
57
+ * Yields each chunk's decoded text as it arrives - a delta, not the string accumulated so far.
58
58
  */
59
59
  [Symbol.asyncIterator](): {
60
60
  next: () => Promise<IteratorResult<string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"StreamReader.d.ts","sourceRoot":"","sources":["../../../../../src/room/data-stream/incoming/StreamReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StreamReader.d.ts","sourceRoot":"","sources":["../../../../../src/room/data-stream/incoming/StreamReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACxC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,uBAAe,gBAAgB,CAAC,CAAC,SAAS,cAAc;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEnD,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IAEnB,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC,IAAI,IAAI,MAEP;IAED,gBAAgB;IAChB,SAAS,CAAC,qBAAqB,CAAC,aAAa,GAAE,OAAe;gBAkBlD,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM;IAOrF;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB;IAUrD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;CAC1F;AAED,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,CAAC,MAAM,CAAC,aAAa,CAAC;oBAYF,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;kBAwCnC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;;IAOvD;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW;IAK7B,OAAO,CAAC,IAAI,GAAE,2BAAgC,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAQlF;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;OAGG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC;oBAcF,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;kBAqD/B,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;IAOnD;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW;IAK7B,OAAO,CAAC,IAAI,GAAE,2BAAgC,GAAG,OAAO,CAAC,MAAM,CAAC;CAQvE;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAClC,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAClC,IAAI,CAAC"}
@@ -70,7 +70,7 @@ export declare enum RoomEvent {
70
70
  * When a [[RemoteParticipant]] leaves *after* the local
71
71
  * participant has joined.
72
72
  *
73
- * args: ([[RemoteParticipant]])
73
+ * args: ([[RemoteParticipant]], [[DisconnectReason]] | undefined)
74
74
  */
75
75
  ParticipantDisconnected = "participantDisconnected",
76
76
  /**
@@ -0,0 +1,13 @@
1
+ /** one summarised stats entry; keys without a value are dropped */
2
+ type Summary = Record<string, unknown>;
3
+ /**
4
+ * Picks the interesting fields out of a `getStats()` report and groups them by
5
+ * RTP stream, so a stats dump can be read without unfolding the raw report.
6
+ */
7
+ export declare function summarizeStatsReport(report: RTCStatsReport): {
8
+ connection: Summary | undefined;
9
+ outbound: Summary[] | undefined;
10
+ inbound: Summary[] | undefined;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=statsSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsSummary.d.ts","sourceRoot":"","sources":["../../../src/room/statsSummary.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6CvC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc;;;;EAwI1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/room/token-source/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,OAAO,KAAK,EAA2B,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAK9F,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,WAejE;AAED,iHAAiH;AACjH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,gBAe/C;AAED,qFAAqF;AACrF,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,WA4B3B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/room/token-source/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,OAAO,KAAK,EAA2B,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAK9F,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,WAsBjE;AAED,iHAAiH;AACjH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,gBAe/C;AAED,qFAAqF;AACrF,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,WA4B3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalAudioTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalAudioTrack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG/E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACvE,gBAAgB;IAChB,UAAU,EAAE,OAAO,CAAS;IAE5B,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,OAAO,CAAC,yBAAyB,CAAS;IAE1C,SAAS,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAAC;IAE1F;;OAEG;IACH,IAAI,yBAAyB,YAE5B;IAED;;;;;OAKG;gBAED,UAAU,EAAE,gBAAgB,EAC5B,WAAW,CAAC,EAAE,qBAAqB,EACnC,iBAAiB,UAAO,EACxB,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,aAAa;IAOzB,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC;IAqB5B,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC;IA0B9B,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAW1C,gBAAgB,CACpB,WAAW,EAAE,IAAI,CACf,mBAAmB,EACnB,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAC/E,GACA,OAAO,CAAC,IAAI,CAAC;cAWA,OAAO,CACrB,WAAW,CAAC,EAAE,qBAAqB,EACnC,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,OAAO,IAAI,CAAC;IAOvB,YAAY;IAYZ,SAAS,CAAC,aAAa,sBAmBrB;IAEF,OAAO,CAAC,4BAA4B,CASlC;IAEF,OAAO,CAAC,6BAA6B,CASnC;IAEI,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAwCrF;;;OAGG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS;IAIhD,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAyBvD,eAAe;CAUtB"}
1
+ {"version":3,"file":"LocalAudioTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalAudioTrack.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG/E,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACvE,gBAAgB;IAChB,UAAU,EAAE,OAAO,CAAS;IAE5B,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,OAAO,CAAC,yBAAyB,CAAS;IAE1C,SAAS,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAAC;IAE1F;;OAEG;IACH,IAAI,yBAAyB,YAE5B;IAED;;;;;OAKG;gBAED,UAAU,EAAE,gBAAgB,EAC5B,WAAW,CAAC,EAAE,qBAAqB,EACnC,iBAAiB,UAAO,EACxB,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,aAAa;IAOzB,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC;IAqB5B,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC;IA0B9B,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAW1C,gBAAgB,CACpB,WAAW,EAAE,IAAI,CACf,mBAAmB,EACnB,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAC/E,GACA,OAAO,CAAC,IAAI,CAAC;cAWA,OAAO,CACrB,WAAW,CAAC,EAAE,qBAAqB,EACnC,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,OAAO,IAAI,CAAC;IAOvB,YAAY;IAYZ,SAAS,CAAC,aAAa,sBAmBrB;IAEF,OAAO,CAAC,4BAA4B,CASlC;IAEF,OAAO,CAAC,6BAA6B,CASnC;IAEI,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAwCrF;;;OAGG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS;IAIhD,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA+BvD,eAAe;CAUtB"}
@@ -42,6 +42,7 @@ export declare abstract class Track<TrackKind extends Track.Kind = Track.Kind> e
42
42
  protected timeSyncHandle: number | undefined;
43
43
  protected _currentBitrate: number;
44
44
  protected monitorInterval?: ReturnType<typeof setInterval>;
45
+ private finalStatsLogged;
45
46
  protected log: StructuredLogger;
46
47
  protected constructor(mediaTrack: MediaStreamTrack, kind: TrackKind, loggerOptions?: LoggerOptions);
47
48
  protected get logContext(): {
@@ -78,7 +79,16 @@ export declare abstract class Track<TrackKind extends Track.Kind = Track.Kind> e
78
79
  protected enable(): void;
79
80
  protected disable(): void;
80
81
  abstract startMonitor(signalClient?: SignalClient): void;
82
+ /**
83
+ * Raw stats of the sender or receiver this track is attached to.
84
+ */
85
+ abstract getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
81
86
  stopMonitor(): void;
87
+ /**
88
+ * Dumps the raw stats of the track as it ends, once: a track that stops
89
+ * between two of the room's stats dumps is gone by the time the next one runs.
90
+ */
91
+ private logFinalStats;
82
92
  /** @internal */
83
93
  updateLoggerOptions(loggerOptions: LoggerOptions): void;
84
94
  private recycleElement;
@@ -1 +1 @@
1
- {"version":3,"file":"Track.d.ts","sourceRoot":"","sources":["../../../../src/room/track/Track.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,WAAW,IAAI,gBAAgB,EAC/B,WAAW,EACX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAY,EAAe,KAAK,gBAAgB,EAAa,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,oBAAY,YAAY;IACtB,GAAG,IAAmB;IACtB,MAAM,IAAsB;IAC5B,IAAI,IAAoB;CACzB;0BAG0B,UAAU,iBAAiB,CAAC,mBAAmB,CAAC;AAF3E,8BAAsB,KAAK,CACzB,SAAS,SAAS,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CACzC,SAAQ,UAAkE;IAC1E,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,gBAAgB,EAAE,gBAAgB,EAAE,CAAM;IAE1C,OAAO,EAAE,OAAO,CAAS;IAEzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAErB,OAAO,CAAC,YAAY,CAA+C;IAEnE;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,IAAI,WAAW,IAAI,KAAK,CAAC,WAAW,CAEnC;IAED,gBAAgB;IAChB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW;IAOvC,gBAAgB;IAChB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IAE9C,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAS;IAE1C,OAAO,CAAC,iBAAiB,CAA4C;IAErE,OAAO,CAAC,eAAe,CAAmC;IAE1D,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7C,SAAS,CAAC,eAAe,EAAE,MAAM,CAAK;IAEtC,SAAS,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAO;IAEtC,SAAS,aACP,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,SAAS,EACf,aAAa,GAAE,aAAkB;IAanC,SAAS,KAAK,UAAU;;MAKvB;IAED,sCAAsC;IACtC,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,gBAAgB,qBAEnB;IAED,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC;IAEhC;;;;OAIG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,MAAM,IAAI,gBAAgB;IAE1B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IA0EnD;;OAEG;IACH,MAAM,IAAI,gBAAgB,EAAE;IAE5B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IAiCnD,IAAI;IAMJ,SAAS,CAAC,MAAM;IAIhB,SAAS,CAAC,OAAO;IAKjB,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;IAGxD,WAAW;IAUX,gBAAgB;IAChB,mBAAmB,CAAC,aAAa,EAAE,aAAa;IAShD,OAAO,CAAC,cAAc;IAgBtB,SAAS,CAAC,4BAA4B,aAcpC;cAEc,0BAA0B;IAe1C,SAAS,CAAC,wBAAwB;IASlC,SAAS,CAAC,2BAA2B;CAKtC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,QAuDjF;AAED,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,QAU7E;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,IAAI;QACd,KAAK,UAAU;QACf,KAAK,UAAU;QACf,OAAO,YAAY;KACpB;IACD,KAAY,GAAG,GAAG,MAAM,CAAC;IACzB,KAAY,MAAM;QAChB,MAAM,WAAW;QACjB,UAAU,eAAe;QACzB,WAAW,iBAAiB;QAC5B,gBAAgB,uBAAuB;QACvC,OAAO,YAAY;KACpB;IAED,KAAY,WAAW;QACrB,MAAM,WAAW;QACjB,MAAM,WAAW;QACjB,OAAO,YAAY;KACpB;IAED,UAAiB,UAAU;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB;IAED,gBAAgB;IAChB,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAU9C;IAED,gBAAgB;IAChB,SAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAS5D;IAED,gBAAgB;IAChB,SAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAapD;IAED,gBAAgB;IAChB,SAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAatD;IAED,gBAAgB;IAChB,SAAgB,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,GAAG,WAAW,CASrE;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3D,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5E,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,oBAAoB,EAAE,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC5E,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5F,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9E,uBAAuB,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACjE,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"Track.d.ts","sourceRoot":"","sources":["../../../../src/room/track/Track.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Opt-in registry that lets a development tool observe the state machines driving the connection
3
+ * layer.
4
+ *
5
+ * The machines are private to the objects that own them and, more importantly, do not outlive them:
6
+ * a full reconnect replaces the whole engine along with its `SignalClient`, so anything watching a
7
+ * single machine reference goes blind exactly when the interesting part starts. Machines therefore
8
+ * announce themselves here as they are constructed, and a subscriber sees the whole succession.
9
+ *
10
+ * Nothing is recorded until {@link enableMachineInspector} is called, which no shipping code does —
11
+ * with the registry off, announcing is a comparison and a return.
12
+ */
13
+ /**
14
+ * The slice of machina's `Fsm` surface an inspector needs. Structural rather than machina's own
15
+ * type so that any machine satisfies it regardless of its state and input unions.
16
+ */
17
+ export interface InspectableMachine {
18
+ readonly id: string;
19
+ readonly initialState: string;
20
+ readonly states: Record<string, Record<string, unknown>>;
21
+ readonly context?: unknown;
22
+ currentState(): string;
23
+ canHandle(input: string): boolean;
24
+ on(eventName: string, callback: (data: any) => void): {
25
+ off(): void;
26
+ };
27
+ }
28
+ export interface MachineAnnouncement {
29
+ /** What the machine drives, e.g. `signal`. Not unique: each new `SignalClient` announces one. */
30
+ label: string;
31
+ /** How many machines have been announced before this one, so successive instances are tellable apart. */
32
+ seq: number;
33
+ /**
34
+ * When the machine was constructed. Carried on the announcement because subscribers receive the
35
+ * recorded ones on subscribe, and stamping those at replay time would date them all to whenever
36
+ * the tool happened to open.
37
+ */
38
+ at: number;
39
+ machine: InspectableMachine;
40
+ }
41
+ /**
42
+ * Starts recording machine announcements. Call before the machines of interest are constructed —
43
+ * for the signal machine that means before the `Room` is created.
44
+ */
45
+ export declare function enableMachineInspector(): void;
46
+ export declare function isMachineInspectorEnabled(): boolean;
47
+ /** Announces a machine to whatever is watching. A no-op unless the inspector was enabled. */
48
+ export declare function announceMachine(label: string, machine: InspectableMachine): void;
49
+ /**
50
+ * Subscribes to machine announcements, replaying the ones already recorded so that a panel opened
51
+ * after connecting still sees the machine currently in charge. Returns an unsubscribe function.
52
+ */
53
+ export declare function onMachineAnnounced(callback: (announcement: MachineAnnouncement) => void): () => void;
54
+ //# sourceMappingURL=machineInspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machineInspector.d.ts","sourceRoot":"","sources":["../../../src/utils/machineInspector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,IAAI,MAAM,CAAC;IACvB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG;QAAE,GAAG,IAAI,IAAI,CAAA;KAAE,CAAC;CACvE;AAED,MAAM,WAAW,mBAAmB;IAClC,iGAAiG;IACjG,KAAK,EAAE,MAAM,CAAC;IACd,yGAAyG;IACzG,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AASD;;;GAGG;AACH,wBAAgB,sBAAsB,SAErC;AAED,wBAAgB,yBAAyB,YAExC;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,QAczE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,IAAI,cAQvF"}
@@ -70,6 +70,20 @@ export declare class SignalClient {
70
70
  ws?: WebSocketStream;
71
71
  get currentState(): SignalConnectionState;
72
72
  get isDisconnected(): boolean;
73
+ /** Runtime lifecycle state, finer grained than the public {@link currentState} projection. */
74
+ private get lifecycleState();
75
+ /** Id of the current connection attempt and of the transport it owns. */
76
+ private get attemptId();
77
+ /**
78
+ * Applies a lifecycle input and reports whether it moved the machine
79
+ */
80
+ private sendLifecycleInput;
81
+ /**
82
+ * Waits out a close that is already in flight. Establishing a session while one is tearing down
83
+ * would race it for the transport — the teardown can close the socket the new attempt just
84
+ * opened.
85
+ */
86
+ private settleInFlightClose;
73
87
  private get isEstablishingConnection();
74
88
  private getNextRequestId;
75
89
  private options?;
@@ -78,7 +92,7 @@ export declare class SignalClient {
78
92
  private pingIntervalDuration;
79
93
  private pingInterval;
80
94
  private closingLock;
81
- private state;
95
+ private machine;
82
96
  private connectionLock;
83
97
  private log;
84
98
  private loggerContextCb?;
@@ -94,6 +108,12 @@ export declare class SignalClient {
94
108
  /** @internal */
95
109
  resetCallbacks: () => void;
96
110
  close(updateState?: boolean, reason?: string): Promise<void>;
111
+ /**
112
+ * Releases the transport and everything tied to it, without touching the lifecycle state. Used
113
+ * both by {@link close} and by paths that replace the transport under a live lifecycle (a new
114
+ * attempt, or an unexpected close that leaves the client in `offline`).
115
+ */
116
+ private teardownTransport;
97
117
  sendOffer(offer: RTCSessionDescriptionInit, offerId: number): void;
98
118
  sendAnswer(answer: RTCSessionDescriptionInit, offerId: number): Promise<void>;
99
119
  sendIceCandidate(candidate: RTCIceCandidateInit, target: SignalTarget): Promise<void>;
@@ -118,6 +138,10 @@ export declare class SignalClient {
118
138
  private sendRequest;
119
139
  private handleSignalResponse;
120
140
  setReconnected(): void;
141
+ /**
142
+ * Handles a transport we lost without asking to. The client goes to `offline` rather than
143
+ * `closed`: whether this session gets resumed, restarted or given up on is the engine's call.
144
+ */
121
145
  private handleOnClose;
122
146
  private handleWSError;
123
147
  /**
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Runtime lifecycle states of the signal connection.
3
+ *
4
+ * `offline` is the resting state after the transport was lost without an explicit close: no
5
+ * attempt is in flight, but a resume is still legal. It is what makes retrying a failed resume
6
+ * expressible — `closed` is only reached by an explicit close or by a terminal attempt failure.
7
+ */
8
+ export type SignalLifecycleState = 'new' | 'connecting' | 'connected' | 'offline' | 'reconnecting' | 'disconnecting' | 'closed';
9
+ export interface SignalMachineContext {
10
+ /** Monotonic id of the current (re)connection attempt and of the transport it owns */
11
+ attemptId: number;
12
+ /** Error or reason that ended the last attempt, kept for diagnostics. */
13
+ lastError?: unknown;
14
+ /** Reason passed to the last close request. */
15
+ closeReason?: string;
16
+ }
17
+ export type SignalMachineInput =
18
+ /**
19
+ * Start an initial session, or restart from scratch (full reconnect).
20
+ *
21
+ * Establishing is legal exactly where no transport and no attempt are in play: `new`, `offline`
22
+ * and `closed`. `closed` is included because it means "no transport", not "session over" — a
23
+ * deliberate close and an unexpected loss leave the session equally resumable, and the engine
24
+ * recovers from both. Establishing over a live session, or over an attempt already in flight, is
25
+ * a caller error; `disconnecting` is waited out rather than refused.
26
+ */
27
+ {
28
+ type: 'connect';
29
+ }
30
+ /**
31
+ * Resume the existing session: legal wherever establishing is, minus `new` (nothing to resume
32
+ * yet), plus `connected` — the peer connection can be severed while signalling stays up.
33
+ */
34
+ | {
35
+ type: 'reconnect';
36
+ }
37
+ /**
38
+ * An attempt established its transport. Carries the attempt it belongs to: an attempt that a
39
+ * newer one has already superseded must not declare the session live.
40
+ */
41
+ | {
42
+ type: 'connectComplete';
43
+ attemptId: number;
44
+ } | {
45
+ type: 'connectFailed';
46
+ error?: unknown;
47
+ } | {
48
+ type: 'reconnectComplete';
49
+ attemptId: number;
50
+ }
51
+ /**
52
+ * A resume attempt ended. `recoverable` distinguishes "another resume may follow" (→ `offline`)
53
+ * from a terminal outcome such as a server leave or an expired token (→ `closed`).
54
+ */
55
+ | {
56
+ type: 'reconnectFailed';
57
+ error?: unknown;
58
+ recoverable: boolean;
59
+ }
60
+ /** The transport identified by `attemptId` was lost (unexpected ws close, ping timeout). */
61
+ | {
62
+ type: 'transportFailed';
63
+ attemptId: number;
64
+ reason: string;
65
+ } | {
66
+ type: 'close';
67
+ reason: string;
68
+ } | {
69
+ type: 'closeComplete';
70
+ };
71
+ /**
72
+ * Lifecycle model of the signal connection.
73
+ *
74
+ * The machine deliberately does not own connection attempts: `SignalClient` performs the
75
+ * asynchronous work and reports the outcome. It also does not decide *whether* to reconnect —
76
+ * that policy (backoff, resume vs. full reconnect, region failover, giving up) belongs to
77
+ * `RTCEngine`, so transport loss lands in `offline` rather than starting a reconnect on its own.
78
+ *
79
+ * Each client gets its own instance: the context is mutable and per-connection.
80
+ */
81
+ export declare function createSignalMachine(initialState?: SignalLifecycleState): import("machina").Fsm<SignalMachineContext, "new" | "connecting" | "connected" | "offline" | "reconnecting" | "disconnecting" | "closed", "connect" | "reconnect" | "connectComplete" | "connectFailed" | "reconnectComplete" | "reconnectFailed" | "transportFailed" | "close" | "closeComplete", never>;
82
+ export type SignalMachine = ReturnType<typeof createSignalMachine>;
83
+ /** All lifecycle states, derived from the machine itself so the two cannot drift. */
84
+ export declare const signalLifecycleStates: Array<SignalLifecycleState>;
85
+ //# sourceMappingURL=SignalClientStateMachine.d.ts.map
@@ -59,6 +59,13 @@ export declare class E2EEManager extends E2EEManager_base implements BaseE2EEMan
59
59
  private postEnable;
60
60
  private postRTPMap;
61
61
  private postSifTrailer;
62
+ /**
63
+ * Derive the participant's encryption state from one of its publications.
64
+ * Publications without trackInfo are skipped rather than thrown on: throwing
65
+ * inside the forEach above would leave every remaining participant without an
66
+ * encryption state, and a cryptor with unknown state can no longer decrypt.
67
+ */
68
+ private setParticipantCryptorEnabledForPublication;
62
69
  private setupE2EEReceiver;
63
70
  private setupE2EESender;
64
71
  /**
@@ -9,6 +9,11 @@ export declare const UNENCRYPTED_BYTES: {
9
9
  };
10
10
  export declare const IV_LENGTH = 12;
11
11
  export declare const E2EE_FLAG = "lk_e2ee";
12
+ /**
13
+ * trackId a receiver's/sender's encoded stream pipeline was last set up for.
14
+ * Needed to recover the right cryptor when a transceiver gets reused.
15
+ */
16
+ export declare const E2EE_TRACK_ID = "lk_e2ee_track_id";
12
17
  export declare const SALT = "LKFrameEncryptionKey";
13
18
  export declare const KEY_PROVIDER_DEFAULTS: KeyProviderOptions;
14
19
  export declare const MAX_SIF_COUNT = 100;
@@ -47,7 +47,6 @@ export interface EncodeMessage extends BaseMessage {
47
47
  writableStream: WritableStream;
48
48
  trackId: string;
49
49
  codec?: VideoCodec;
50
- isReuse: boolean;
51
50
  /**
52
51
  * Whether the published track advertises packet trailer features.
53
52
  * When false, the cryptor skips the per-frame trailer extraction path
@@ -72,7 +71,15 @@ export interface UpdateCodecMessage extends BaseMessage {
72
71
  data: {
73
72
  participantIdentity: string;
74
73
  trackId: string;
75
- codec: VideoCodec;
74
+ /** undefined for audio tracks */
75
+ codec?: VideoCodec;
76
+ /**
77
+ * trackId this receiver's pipeline was previously set up for, set when a
78
+ * transceiver gets reused for a new track. Lets the worker find the cryptor
79
+ * that still owns the (already transferred) encoded streams and re-point it,
80
+ * rather than creating a fresh cryptor with no pipeline at all.
81
+ */
82
+ previousTrackId?: string;
76
83
  hasPacketTrailer: boolean;
77
84
  };
78
85
  }
@@ -39,6 +39,17 @@ export declare class FrameCryptor extends BaseFrameCryptor {
39
39
  private sifTrailer;
40
40
  private detectedCodec?;
41
41
  private currentTransform?;
42
+ /**
43
+ * The encoded streams this cryptor was last set up with, retained beyond the
44
+ * lifetime of {@link currentTransform}.
45
+ *
46
+ * The main thread transfers a receiver's encoded streams to the worker once and
47
+ * cannot transfer them again (a transferred stream is locked), and
48
+ * `createEncodedStreams()` may only be called once per receiver. So when a
49
+ * transceiver is reused, or when a pipe dies underneath us, re-establishing the
50
+ * transform is only possible from here. See {@link ensureTransform}.
51
+ */
52
+ private retainedStreams?;
42
53
  /**
43
54
  * Whether the subscribed track advertises packet trailer features.
44
55
  * When false, we skip the per-frame trailer extraction path entirely
@@ -55,6 +66,9 @@ export declare class FrameCryptor extends BaseFrameCryptor {
55
66
  private readonly ERROR_THROTTLE_MS;
56
67
  private readonly MAX_ERRORS_PER_MINUTE;
57
68
  private readonly ERROR_WINDOW_MS;
69
+ private undecryptedTrackTimeout?;
70
+ /** grace period for a teardown or a resubscribe to land before we report a stalled track */
71
+ private readonly UNDECRYPTED_TRACK_GRACE_MS;
58
72
  /**
59
73
  * Tracks (participant, trackId, payloadType) tuples for which we've already logged a NALU
60
74
  * fallback, so a persistent bad state doesn't flood the console (Firefox doesn't filter debug).
@@ -78,6 +92,33 @@ export declare class FrameCryptor extends BaseFrameCryptor {
78
92
  isEnabled(): boolean | undefined;
79
93
  getParticipantIdentity(): string | undefined;
80
94
  getTrackId(): string | undefined;
95
+ /**
96
+ * Re-point this cryptor at a new trackId, keeping its (already transferred)
97
+ * encoded streams. Used when a transceiver is reused for a new track.
98
+ */
99
+ setTrackId(trackId: string): void;
100
+ hasActiveTransform(): boolean;
101
+ /**
102
+ * A track that is subscribed and known to be encrypted, but has no transform to
103
+ * decrypt it, will never produce a decodable frame again. That state used to be
104
+ * completely silent (a black tile and endless PLIs), so report it.
105
+ *
106
+ * Deferred, because on teardown the encoded streams routinely close before the
107
+ * 'removeTransform' message arrives -- checking immediately would cry wolf on
108
+ * every unsubscribe.
109
+ *
110
+ * Only meaningful while decoding: a sender's pipe closing on unpublish is
111
+ * routine and has no 'removeTransform' equivalent to quiet it down.
112
+ */
113
+ private scheduleUndecryptedTrackWatchdog;
114
+ /**
115
+ * Re-establish the transform if it is gone while we still own the encoded
116
+ * streams, e.g. after a pipe died on its own (the swallowed
117
+ * 'Destination stream closed') or when a reused transceiver never got a new
118
+ * pipeline. Without this the frames pile up in a readable nobody reads and the
119
+ * decoder starves, which shows up as a permanently black tile.
120
+ */
121
+ ensureTransform(): boolean;
81
122
  /**
82
123
  * Update the video codec used by the mediaStreamTrack
83
124
  * @param codec
@@ -95,7 +136,7 @@ export declare class FrameCryptor extends BaseFrameCryptor {
95
136
  */
96
137
  setHasFrameMetadata(hasFrameMetadata: boolean): void;
97
138
  setFrameMetadataOpts(frameMetadata?: FrameMetadataPublishOptions): void;
98
- setupTransform(operation: 'encode' | 'decode', readable: ReadableStream<RTCEncodedVideoFrame | RTCEncodedAudioFrame>, writable: WritableStream<RTCEncodedVideoFrame | RTCEncodedAudioFrame>, trackId: string, isReuse: boolean, codec?: VideoCodec, frameMetadata?: FrameMetadataPublishOptions): void;
139
+ setupTransform(operation: 'encode' | 'decode', readable: ReadableStream<RTCEncodedVideoFrame | RTCEncodedAudioFrame>, writable: WritableStream<RTCEncodedVideoFrame | RTCEncodedAudioFrame>, trackId: string, codec?: VideoCodec, frameMetadata?: FrameMetadataPublishOptions): boolean;
99
140
  setSifTrailer(trailer: NonSharedUint8Array): void;
100
141
  /**
101
142
  * Checks if we should emit an error based on throttling rules to prevent memory leaks
@@ -29,7 +29,7 @@ import type { PublicationEventCallbacks } from './room/track/TrackPublication';
29
29
  import { TrackPublication } from './room/track/TrackPublication';
30
30
  import type { LiveKitReactNativeInfo, TextStreamInfo } from './room/types';
31
31
  import type { AudioAnalyserOptions } from './room/utils';
32
- import { compareVersions, createAudioAnalyser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, isAudioCodec, isAudioTrack, isBrowserSupported, isLocalParticipant, isLocalTrack, isRemoteParticipant, isRemoteTrack, isVideoCodec, isVideoTrack, supportsAV1, supportsAdaptiveStream, supportsAudioOutputSelection, supportsDynacast, supportsVP9 } from './room/utils';
32
+ import { compareVersions, createAudioAnalyser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, isAudioCodec, isAudioTrack, isBrowserSupported, isLocalParticipant, isLocalTrack, isRemoteParticipant, isRemoteTrack, isSVCCodec, isVideoCodec, isVideoTrack, supportsAV1, supportsAdaptiveStream, supportsAudioOutputSelection, supportsDynacast, supportsH265, supportsVP9 } from './room/utils';
33
33
  import { getBrowser } from './utils/browserParser';
34
34
  export type { RpcInvocationData, PerformRpcParams } from './room/rpc';
35
35
  export { RpcError } from './room/rpc';
@@ -63,8 +63,9 @@ export type { DataPublishOptions, SimulationScenario, TranscriptionSegment, Chat
63
63
  export * from './version';
64
64
  export {
65
65
  /** @internal */
66
- attributes, ConnectionQuality, ConnectionState, CriticalTimers, DataPacket_Kind, Encryption_Type, DefaultReconnectPolicy, DisconnectReason, LocalAudioTrack, LocalParticipant, LocalTrack, LocalTrackPublication, LocalVideoTrack, LogLevel, LoggerNames, Participant, RemoteAudioTrack, RemoteParticipant, ParticipantKind, RemoteTrack, RemoteTrackPublication, RemoteVideoTrack, Room, SubscriptionError, TrackPublication, TrackType, compareVersions, createAudioAnalyser, getBrowser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, getLogger, isBrowserSupported, setLogExtension, setLogLevel, supportsAV1, supportsAdaptiveStream, supportsAudioOutputSelection, supportsDynacast, supportsVP9, Mutex, isAudioCodec, isAudioTrack, isLocalTrack, isRemoteTrack, isVideoCodec, isVideoTrack, isLocalParticipant, isRemoteParticipant, LocalDataTrack, RemoteDataTrack, };
66
+ attributes, ConnectionQuality, ConnectionState, CriticalTimers, DataPacket_Kind, Encryption_Type, DefaultReconnectPolicy, DisconnectReason, LocalAudioTrack, LocalParticipant, LocalTrack, LocalTrackPublication, LocalVideoTrack, LogLevel, LoggerNames, Participant, RemoteAudioTrack, RemoteParticipant, ParticipantKind, RemoteTrack, RemoteTrackPublication, RemoteVideoTrack, Room, SubscriptionError, TrackPublication, TrackType, compareVersions, createAudioAnalyser, getBrowser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, getLogger, isBrowserSupported, setLogExtension, setLogLevel, supportsAV1, supportsAdaptiveStream, supportsAudioOutputSelection, supportsDynacast, supportsH265, supportsVP9, Mutex, isAudioCodec, isAudioTrack, isLocalTrack, isRemoteTrack, isSVCCodec, isVideoCodec, isVideoTrack, isLocalParticipant, isRemoteParticipant, LocalDataTrack, RemoteDataTrack, };
67
67
  export type { AudioAnalyserOptions, ElementInfo, LiveKitReactNativeInfo, TextStreamInfo, ParticipantTrackPermission, AudioReceiverStats, AudioSenderStats, VideoReceiverStats, VideoSenderStats, ReconnectContext, ReconnectPolicy, RoomEventCallbacks, ParticipantEventCallbacks, PublicationEventCallbacks, DataTrackSubscribeOptions, RemoteDataTrackPipelineOptions, };
68
+ export type { DataTrackFrame } from './room/data-track/frame';
68
69
  export type { DataTrackPacketHeader } from './room/data-track/packet';
69
70
  export { DataTrackPacket } from './room/data-track/packet';
70
71
  export type { DataTrackExtensions, DataTrackUserTimestampExtension, DataTrackE2eeExtension } from './room/data-track/packet/extensions';
@@ -21,7 +21,8 @@ export declare enum LoggerNames {
21
21
  E2EE = "lk-e2ee",
22
22
  DataTracks = "livekit-data-tracks",
23
23
  Region = "livekit-region",
24
- ICE = "livekit-ice"
24
+ ICE = "livekit-ice",
25
+ Stats = "livekit-stats"
25
26
  }
26
27
  type LogLevelString = keyof typeof LogLevel;
27
28
  export type StructuredLogger = log.Logger & {
@@ -96,6 +96,28 @@ export interface InternalRoomOptions {
96
96
  * @default true
97
97
  */
98
98
  singlePeerConnection: boolean;
99
+ /**
100
+ * Options controlling data stream behavior for this room.
101
+ */
102
+ dataStream?: RoomDataStreamOptions;
103
+ }
104
+ /**
105
+ * Options controlling data stream behavior for a room.
106
+ */
107
+ export interface RoomDataStreamOptions {
108
+ /**
109
+ * Maximum size, in bytes, of the payload this client accepts from a single incoming data stream.
110
+ *
111
+ * A compressed stream can inflate to an arbitrarily large payload, so the decompressed output is
112
+ * bounded rather than trusting the size declared on the wire. An incoming stream that exceeds the
113
+ * cap fails with a `DataStreamErrorReason.PayloadTooLarge` error on the next read instead of
114
+ * buffering without bound.
115
+ *
116
+ * This is enforced on the receiving side only: raising it on a sender has no effect.
117
+ *
118
+ * @default 5_000_000_000 (5 GB)
119
+ */
120
+ maxPayloadByteLength?: number;
99
121
  }
100
122
  /**
101
123
  * Options for when creating a new room