livekit-client 2.17.3 → 2.18.1

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 (183) 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 +8 -7
  4. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  5. package/dist/livekit-client.esm.mjs +7823 -5772
  6. package/dist/livekit-client.esm.mjs.map +1 -1
  7. package/dist/livekit-client.umd.js +1 -1
  8. package/dist/livekit-client.umd.js.map +1 -1
  9. package/dist/src/api/SignalClient.d.ts +12 -4
  10. package/dist/src/api/SignalClient.d.ts.map +1 -1
  11. package/dist/src/e2ee/constants.d.ts.map +1 -1
  12. package/dist/src/e2ee/types.d.ts +6 -0
  13. package/dist/src/e2ee/types.d.ts.map +1 -1
  14. package/dist/src/e2ee/utils.d.ts +2 -1
  15. package/dist/src/e2ee/utils.d.ts.map +1 -1
  16. package/dist/src/e2ee/worker/DataCryptor.d.ts.map +1 -1
  17. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  18. package/dist/src/index.d.ts +5 -4
  19. package/dist/src/index.d.ts.map +1 -1
  20. package/dist/src/room/PCTransport.d.ts +5 -0
  21. package/dist/src/room/PCTransport.d.ts.map +1 -1
  22. package/dist/src/room/PCTransportManager.d.ts +1 -1
  23. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  24. package/dist/src/room/RTCEngine.d.ts +27 -9
  25. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  26. package/dist/src/room/Room.d.ts +13 -3
  27. package/dist/src/room/Room.d.ts.map +1 -1
  28. package/dist/src/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts.map +1 -1
  29. package/dist/src/room/data-track/LocalDataTrack.d.ts +48 -0
  30. package/dist/src/room/data-track/LocalDataTrack.d.ts.map +1 -0
  31. package/dist/src/room/data-track/RemoteDataTrack.d.ts +46 -0
  32. package/dist/src/room/data-track/RemoteDataTrack.d.ts.map +1 -0
  33. package/dist/src/room/data-track/depacketizer.d.ts +6 -6
  34. package/dist/src/room/data-track/depacketizer.d.ts.map +1 -1
  35. package/dist/src/room/data-track/frame.d.ts +14 -0
  36. package/dist/src/room/data-track/frame.d.ts.map +1 -1
  37. package/dist/src/room/data-track/handle.d.ts +2 -2
  38. package/dist/src/room/data-track/handle.d.ts.map +1 -1
  39. package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts +104 -0
  40. package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts.map +1 -0
  41. package/dist/src/room/data-track/incoming/errors.d.ts +24 -0
  42. package/dist/src/room/data-track/incoming/errors.d.ts.map +1 -0
  43. package/dist/src/room/data-track/incoming/pipeline.d.ts +38 -0
  44. package/dist/src/room/data-track/incoming/pipeline.d.ts.map +1 -0
  45. package/dist/src/room/data-track/incoming/types.d.ts +20 -0
  46. package/dist/src/room/data-track/incoming/types.d.ts.map +1 -0
  47. package/dist/src/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +63 -28
  48. package/dist/src/room/data-track/outgoing/OutgoingDataTrackManager.d.ts.map +1 -1
  49. package/dist/src/room/data-track/outgoing/errors.d.ts +20 -10
  50. package/dist/src/room/data-track/outgoing/errors.d.ts.map +1 -1
  51. package/dist/src/room/data-track/outgoing/pipeline.d.ts +9 -8
  52. package/dist/src/room/data-track/outgoing/pipeline.d.ts.map +1 -1
  53. package/dist/src/room/data-track/outgoing/types.d.ts +16 -7
  54. package/dist/src/room/data-track/outgoing/types.d.ts.map +1 -1
  55. package/dist/src/room/data-track/packet/errors.d.ts +2 -4
  56. package/dist/src/room/data-track/packet/errors.d.ts.map +1 -1
  57. package/dist/src/room/data-track/packet/extensions.d.ts +4 -4
  58. package/dist/src/room/data-track/packet/extensions.d.ts.map +1 -1
  59. package/dist/src/room/data-track/packet/index.d.ts +5 -5
  60. package/dist/src/room/data-track/packet/index.d.ts.map +1 -1
  61. package/dist/src/room/data-track/packet/serializable.d.ts +4 -4
  62. package/dist/src/room/data-track/packet/serializable.d.ts.map +1 -1
  63. package/dist/src/room/data-track/packetizer.d.ts +6 -6
  64. package/dist/src/room/data-track/packetizer.d.ts.map +1 -1
  65. package/dist/src/room/data-track/track-interfaces.d.ts +23 -0
  66. package/dist/src/room/data-track/track-interfaces.d.ts.map +1 -0
  67. package/dist/src/room/data-track/types.d.ts +15 -0
  68. package/dist/src/room/data-track/types.d.ts.map +1 -0
  69. package/dist/src/room/events.d.ts +24 -3
  70. package/dist/src/room/events.d.ts.map +1 -1
  71. package/dist/src/room/participant/LocalParticipant.d.ts +11 -1
  72. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  73. package/dist/src/room/participant/RemoteParticipant.d.ts +14 -1
  74. package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
  75. package/dist/src/room/token-source/TokenSource.d.ts +1 -1
  76. package/dist/src/room/token-source/TokenSource.d.ts.map +1 -1
  77. package/dist/src/room/token-source/types.d.ts +1 -0
  78. package/dist/src/room/token-source/types.d.ts.map +1 -1
  79. package/dist/src/room/utils.d.ts +2 -1
  80. package/dist/src/room/utils.d.ts.map +1 -1
  81. package/dist/src/utils/abort-signal-polyfill.d.ts +13 -0
  82. package/dist/src/utils/abort-signal-polyfill.d.ts.map +1 -0
  83. package/dist/src/utils/deferrable-map.d.ts +32 -0
  84. package/dist/src/utils/deferrable-map.d.ts.map +1 -0
  85. package/dist/src/utils/subscribeToEvents.d.ts +3 -0
  86. package/dist/src/utils/subscribeToEvents.d.ts.map +1 -1
  87. package/dist/ts4.2/api/SignalClient.d.ts +12 -4
  88. package/dist/ts4.2/e2ee/types.d.ts +6 -0
  89. package/dist/ts4.2/e2ee/utils.d.ts +2 -1
  90. package/dist/ts4.2/index.d.ts +5 -4
  91. package/dist/ts4.2/room/PCTransport.d.ts +5 -0
  92. package/dist/ts4.2/room/PCTransportManager.d.ts +1 -1
  93. package/dist/ts4.2/room/RTCEngine.d.ts +27 -9
  94. package/dist/ts4.2/room/Room.d.ts +13 -3
  95. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +48 -0
  96. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +46 -0
  97. package/dist/ts4.2/room/data-track/depacketizer.d.ts +6 -6
  98. package/dist/ts4.2/room/data-track/frame.d.ts +14 -0
  99. package/dist/ts4.2/room/data-track/handle.d.ts +2 -2
  100. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +110 -0
  101. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -0
  102. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +38 -0
  103. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -0
  104. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +63 -29
  105. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +20 -10
  106. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +9 -8
  107. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +16 -7
  108. package/dist/ts4.2/room/data-track/packet/errors.d.ts +2 -4
  109. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +4 -4
  110. package/dist/ts4.2/room/data-track/packet/index.d.ts +5 -6
  111. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +4 -4
  112. package/dist/ts4.2/room/data-track/packetizer.d.ts +6 -6
  113. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -0
  114. package/dist/ts4.2/room/data-track/types.d.ts +15 -0
  115. package/dist/ts4.2/room/events.d.ts +24 -3
  116. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +11 -1
  117. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +14 -1
  118. package/dist/ts4.2/room/token-source/TokenSource.d.ts +1 -1
  119. package/dist/ts4.2/room/token-source/types.d.ts +1 -0
  120. package/dist/ts4.2/room/utils.d.ts +2 -1
  121. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -0
  122. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -0
  123. package/dist/ts4.2/utils/subscribeToEvents.d.ts +3 -0
  124. package/package.json +4 -2
  125. package/src/api/SignalClient.test.ts +9 -4
  126. package/src/api/SignalClient.ts +116 -9
  127. package/src/e2ee/constants.ts +1 -0
  128. package/src/e2ee/types.ts +6 -0
  129. package/src/e2ee/utils.ts +4 -3
  130. package/src/e2ee/worker/DataCryptor.ts +1 -4
  131. package/src/e2ee/worker/FrameCryptor.ts +1 -4
  132. package/src/e2ee/worker/ParticipantKeyHandler.ts +1 -1
  133. package/src/index.ts +6 -4
  134. package/src/room/PCTransport.ts +41 -1
  135. package/src/room/PCTransportManager.ts +1 -1
  136. package/src/room/RTCEngine.ts +274 -112
  137. package/src/room/Room.ts +152 -15
  138. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +9 -9
  139. package/src/room/data-track/LocalDataTrack.ts +126 -0
  140. package/src/room/data-track/RemoteDataTrack.ts +80 -0
  141. package/src/room/data-track/depacketizer.ts +23 -26
  142. package/src/room/data-track/frame.ts +28 -2
  143. package/src/room/data-track/handle.ts +2 -8
  144. package/src/room/data-track/incoming/IncomingDataTrackManager.test.ts +555 -0
  145. package/src/room/data-track/incoming/IncomingDataTrackManager.ts +589 -0
  146. package/src/room/data-track/incoming/errors.ts +57 -0
  147. package/src/room/data-track/incoming/pipeline.ts +121 -0
  148. package/src/room/data-track/incoming/types.ts +22 -0
  149. package/src/room/data-track/outgoing/OutgoingDataTrackManager.test.ts +240 -27
  150. package/src/room/data-track/outgoing/OutgoingDataTrackManager.ts +165 -84
  151. package/src/room/data-track/outgoing/errors.ts +40 -11
  152. package/src/room/data-track/outgoing/pipeline.ts +25 -23
  153. package/src/room/data-track/outgoing/types.ts +14 -6
  154. package/src/room/data-track/packet/errors.ts +2 -14
  155. package/src/room/data-track/packet/extensions.ts +21 -26
  156. package/src/room/data-track/packet/index.test.ts +22 -33
  157. package/src/room/data-track/packet/index.ts +4 -6
  158. package/src/room/data-track/packet/serializable.ts +4 -4
  159. package/src/room/data-track/packetizer.test.ts +2 -2
  160. package/src/room/data-track/packetizer.ts +7 -10
  161. package/src/room/data-track/track-interfaces.ts +53 -0
  162. package/src/room/data-track/types.ts +31 -0
  163. package/src/room/events.ts +26 -1
  164. package/src/room/participant/LocalParticipant.ts +57 -6
  165. package/src/room/participant/RemoteParticipant.ts +26 -1
  166. package/src/room/token-source/TokenSource.ts +8 -2
  167. package/src/room/token-source/types.ts +4 -0
  168. package/src/room/utils.ts +5 -1
  169. package/src/utils/abort-signal-polyfill.ts +63 -0
  170. package/src/utils/deferrable-map.ts +109 -0
  171. package/src/utils/subscribeToEvents.ts +18 -1
  172. package/dist/src/room/data-track/e2ee.d.ts +0 -12
  173. package/dist/src/room/data-track/e2ee.d.ts.map +0 -1
  174. package/dist/src/room/data-track/track.d.ts +0 -30
  175. package/dist/src/room/data-track/track.d.ts.map +0 -1
  176. package/dist/src/utils/throws.d.ts +0 -36
  177. package/dist/src/utils/throws.d.ts.map +0 -1
  178. package/dist/ts4.2/room/data-track/e2ee.d.ts +0 -12
  179. package/dist/ts4.2/room/data-track/track.d.ts +0 -30
  180. package/dist/ts4.2/utils/throws.d.ts +0 -39
  181. package/src/room/data-track/e2ee.ts +0 -14
  182. package/src/room/data-track/track.ts +0 -50
  183. package/src/utils/throws.ts +0 -42
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Implementation of AbortSignal.any
3
+ * Creates a signal that will be aborted when any of the given signals is aborted.
4
+ * @link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any
5
+ */
6
+ export declare function abortSignalAny(signals: Array<AbortSignal>): AbortSignal;
7
+ /**
8
+ * Implementation of AbortSignal.timeout
9
+ * Creates a signal that will be aborted after the specified timeout.
10
+ * @link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/timeout
11
+ */
12
+ export declare function abortSignalTimeout(ms: number): AbortSignal;
13
+ //# sourceMappingURL=abort-signal-polyfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort-signal-polyfill.d.ts","sourceRoot":"","sources":["../../../src/utils/abort-signal-polyfill.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,WAAW,CA0CvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAQ1D"}
@@ -0,0 +1,32 @@
1
+ import { type Throws } from '@livekit/throws-transformer/throws';
2
+ /** An error which is thrown if a {@link DeferrableMap#getDeferred} call is aborted midway
3
+ * through. */
4
+ export declare class DeferrableMapAbortError extends DOMException {
5
+ reason: unknown;
6
+ constructor(message: string, reason?: unknown);
7
+ }
8
+ /**
9
+ * A Map-like container keyed by unique strings that supports the ability to wait
10
+ * for future keys to show up in the map.
11
+ *
12
+ * @example
13
+ * // An already existing key:
14
+ * const value = map.get("key");
15
+ * // Wait for a key which will be added soon:
16
+ * const value = await map.getDeferred("key");
17
+ */
18
+ export declare class DeferrableMap<K, V> extends Map<K, V> {
19
+ private pending;
20
+ set(key: K, value: V): this;
21
+ get [Symbol.toStringTag](): string;
22
+ /**
23
+ * Returns the value for `key` immediately if it exists, otherwise returns a
24
+ * promise that resolves once `set(key, value)` is called.
25
+ *
26
+ * If an `AbortSignal` is provided and it is aborted before the key appears,
27
+ * the returned promise rejects with an {@link DeferrableMapAbortError}.
28
+ */
29
+ getDeferred(key: K): Promise<V>;
30
+ getDeferred(key: K, signal: AbortSignal): Promise<Throws<V, DeferrableMapAbortError>>;
31
+ }
32
+ //# sourceMappingURL=deferrable-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferrable-map.d.ts","sourceRoot":"","sources":["../../../src/utils/deferrable-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAGjE;cACc;AACd,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,MAAM,EAAE,OAAO,CAAC;gBAEJ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;CAI9C;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,OAAO,CAAgE;IAE/E,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAiB3B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAC/B,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;CAoDtF"}
@@ -6,6 +6,9 @@ export declare function subscribeToEvents<Callbacks extends EventMap, EventNames
6
6
  /** Listen for the next occurrance of an event to be emitted, or return the last event that was
7
7
  * buffered (but hasn't been processed yet). */
8
8
  waitFor<EventPayload extends Parameters<Callbacks[EventName]>[0], EventName extends EventNames = EventNames>(eventName: EventName): Promise<EventPayload>;
9
+ /** Are there events of the given name which are waiting to be processed? Use this to assert
10
+ * that no unexpected events have been emitted. */
11
+ areThereBufferedEvents<EventPayload extends Parameters<Callbacks[EventName]>[0], EventName extends EventNames = EventNames>(eventName: EventName): boolean;
9
12
  /** Cleanup any lingering subscriptions. */
10
13
  unsubscribe: () => void;
11
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeToEvents.d.ts","sourceRoot":"","sources":["../../../src/utils/subscribeToEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AAGnD;6BAC6B;AAC7B,wBAAgB,iBAAiB,CAC/B,SAAS,SAAS,QAAQ,EAC1B,UAAU,SAAS,MAAM,SAAS,GAAG,MAAM,SAAS,EACpD,YAAY,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;IA2BvE;mDAC+C;YAE7C,YAAY,SAAS,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,SAAS,SAAS,UAAU,0BACjB,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAc9C,2CAA2C;;EAO9C"}
1
+ {"version":3,"file":"subscribeToEvents.d.ts","sourceRoot":"","sources":["../../../src/utils/subscribeToEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AAGnD;6BAC6B;AAC7B,wBAAgB,iBAAiB,CAC/B,SAAS,SAAS,QAAQ,EAC1B,UAAU,SAAS,MAAM,SAAS,GAAG,MAAM,SAAS,EACpD,YAAY,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;IA2BvE;mDAC+C;YAE7C,YAAY,SAAS,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,SAAS,SAAS,UAAU,0BACjB,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAkB9C;sDACkD;2BAEhD,YAAY,SAAS,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,SAAS,SAAS,UAAU,0BACjB,SAAS;IAQtB,2CAA2C;;EAO9C"}
@@ -1,4 +1,6 @@
1
- import { AddTrackRequest, AudioTrackFeature, ConnectionQualityUpdate, JoinResponse, LeaveRequest, MediaSectionsRequirement, ParticipantInfo, ReconnectReason, ReconnectResponse, RequestResponse, Room, RoomMovedResponse, SessionDescription, SignalRequest, SignalResponse, SignalTarget, SimulateScenario, SpeakerInfo, StreamStateUpdate, SubscribedQualityUpdate, SubscriptionPermissionUpdate, SubscriptionResponse, SyncState, TrackPermission, TrackPublishedResponse, TrackUnpublishedResponse, UpdateSubscription, UpdateTrackSettings, VideoLayer } from '@livekit/protocol';
1
+ import { AddTrackRequest, AudioTrackFeature, ConnectionQualityUpdate, DataTrackSubscriberHandles, JoinResponse, LeaveRequest, MediaSectionsRequirement, ParticipantInfo, PublishDataTrackResponse, ReconnectReason, ReconnectResponse, RequestResponse, Room, RoomMovedResponse, SessionDescription, SignalResponse, SignalTarget, SimulateScenario, SpeakerInfo, StreamStateUpdate, SubscribedQualityUpdate, SubscriptionPermissionUpdate, SubscriptionResponse, SyncState, TrackPermission, TrackPublishedResponse, TrackUnpublishedResponse, UnpublishDataTrackResponse, UpdateSubscription, UpdateTrackSettings, VideoLayer } from '@livekit/protocol';
2
+ import type { DataTrackHandle } from '../room/data-track/handle';
3
+ import type { DataTrackSid } from '../room/data-track/types';
2
4
  import type { LoggerOptions } from '../room/types';
3
5
  import { AsyncQueue } from '../utils/AsyncQueue';
4
6
  import { WebSocketStream } from './WebSocketStream';
@@ -17,7 +19,6 @@ export interface SignalOptions {
17
19
  e2eeEnabled: boolean;
18
20
  websocketTimeout: number;
19
21
  }
20
- type SignalMessage = SignalRequest['message'];
21
22
  export declare enum SignalConnectionState {
22
23
  CONNECTING = 0,
23
24
  CONNECTED = 1,
@@ -60,6 +61,10 @@ export declare class SignalClient {
60
61
  onLocalTrackSubscribed?: (trackSid: string) => void;
61
62
  onRoomMoved?: (res: RoomMovedResponse) => void;
62
63
  onMediaSectionsRequirement?: (requirement: MediaSectionsRequirement) => void;
64
+ onPublishDataTrackResponse?: (event: PublishDataTrackResponse) => void;
65
+ onUnPublishDataTrackResponse?: (event: UnpublishDataTrackResponse) => void;
66
+ onDataTrackSubscriberHandles?: (event: DataTrackSubscriberHandles) => void;
67
+ onJoined?: (event: JoinResponse) => void;
63
68
  connectOptions?: ConnectOpts;
64
69
  ws?: WebSocketStream;
65
70
  get currentState(): SignalConnectionState;
@@ -81,7 +86,7 @@ export declare class SignalClient {
81
86
  private useV0SignalPath;
82
87
  constructor(useJSON?: boolean, loggerOptions?: LoggerOptions);
83
88
  private get logContext();
84
- join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal, useV0Path?: boolean): Promise<JoinResponse>;
89
+ join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal, useV0Path?: boolean, publisherOffer?: SessionDescription): Promise<JoinResponse>;
85
90
  reconnect(url: string, token: string, sid?: string, reason?: ReconnectReason): Promise<ReconnectResponse | undefined>;
86
91
  private connect;
87
92
  startReadingLoop(signalReader: ReadableStreamDefaultReader<string | ArrayBuffer>, firstMessage?: SignalResponse): Promise<void>;
@@ -106,7 +111,10 @@ export declare class SignalClient {
106
111
  ]>;
107
112
  sendUpdateLocalAudioTrack(trackSid: string, features: AudioTrackFeature[]): Promise<void>;
108
113
  sendLeave(): Promise<void>;
109
- sendRequest(message: SignalMessage, fromQueue?: boolean): Promise<void>;
114
+ sendPublishDataTrackRequest(handle: DataTrackHandle, name: string, usesE2ee: boolean): Promise<void>;
115
+ sendUnPublishDataTrackRequest(handle: DataTrackHandle): Promise<void>;
116
+ sendUpdateDataSubscription(sid: DataTrackSid, subscribe: boolean): Promise<void>;
117
+ private sendRequest;
110
118
  private handleSignalResponse;
111
119
  setReconnected(): void;
112
120
  private handleOnClose;
@@ -147,6 +147,12 @@ export type KeyProviderOptions = {
147
147
  ratchetWindowSize: number;
148
148
  failureTolerance: number;
149
149
  keyringSize: number;
150
+ /**
151
+ * Size of the encryption key in bits.
152
+ * Defaults to 128. Note that 128 is currently the only value
153
+ * supported by non-web SDKs.
154
+ */
155
+ keySize: 128 | 256;
150
156
  };
151
157
  export type KeyInfo = {
152
158
  key: CryptoKey;
@@ -1,5 +1,6 @@
1
1
  import type { DataPacket } from '@livekit/protocol';
2
2
  import { EncryptedPacketPayload } from '@livekit/protocol';
3
+ import type { KeyProviderOptions } from './types';
3
4
  export declare function isE2EESupported(): boolean;
4
5
  export declare function isScriptTransformSupported(): boolean;
5
6
  export declare function isInsertableStreamSupported(): boolean;
@@ -13,7 +14,7 @@ export declare function createKeyMaterialFromBuffer(cryptoBuffer: ArrayBuffer):
13
14
  * Derives a set of keys from the master key.
14
15
  * See https://tools.ietf.org/html/draft-omara-sframe-00#section-4.3.1
15
16
  */
16
- export declare function deriveKeys(material: CryptoKey, salt: string): Promise<{
17
+ export declare function deriveKeys(material: CryptoKey, options: KeyProviderOptions): Promise<{
17
18
  material: CryptoKey;
18
19
  encryptionKey: CryptoKey;
19
20
  }>;
@@ -6,8 +6,8 @@ import type { ReconnectContext, ReconnectPolicy } from './room/ReconnectPolicy';
6
6
  import type Room, { RoomEventCallbacks } from './room/Room';
7
7
  import Room, { ConnectionState } from './room/Room';
8
8
  import * as attributes from './room/attribute-typings';
9
- import './room/data-track/depacketizer';
10
- import './room/data-track/outgoing/OutgoingDataTrackManager';
9
+ import LocalDataTrack from './room/data-track/LocalDataTrack';
10
+ import type RemoteDataTrack, { DataTrackSubscribeOptions } from './room/data-track/RemoteDataTrack';
11
11
  import LocalParticipant from './room/participant/LocalParticipant';
12
12
  import type Participant, { ParticipantEventCallbacks } from './room/participant/Participant';
13
13
  import Participant, { ConnectionQuality, ParticipantKind } from './room/participant/Participant';
@@ -53,10 +53,11 @@ export type { DataPublishOptions, SimulationScenario, TranscriptionSegment, Chat
53
53
  export * from './version';
54
54
  export {
55
55
  /** @internal */
56
- 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, };
57
- export type { AudioAnalyserOptions, ElementInfo, LiveKitReactNativeInfo, TextStreamInfo, ParticipantTrackPermission, AudioReceiverStats, AudioSenderStats, VideoReceiverStats, VideoSenderStats, ReconnectContext, ReconnectPolicy, RoomEventCallbacks, ParticipantEventCallbacks, PublicationEventCallbacks, };
56
+ 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, };
57
+ export type { AudioAnalyserOptions, ElementInfo, LiveKitReactNativeInfo, TextStreamInfo, ParticipantTrackPermission, AudioReceiverStats, AudioSenderStats, VideoReceiverStats, VideoSenderStats, ReconnectContext, ReconnectPolicy, RoomEventCallbacks, ParticipantEventCallbacks, PublicationEventCallbacks, DataTrackSubscribeOptions, };
58
58
  export type { DataTrackPacketHeader } from './room/data-track/packet';
59
59
  export { DataTrackPacket } from './room/data-track/packet';
60
60
  export type { DataTrackExtensions, DataTrackUserTimestampExtension, DataTrackE2eeExtension } from './room/data-track/packet/extensions';
61
+ export type { DataChannelKind } from './room/RTCEngine';
61
62
  export { LocalTrackRecorder } from './room/track/record';
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -22,6 +22,7 @@ export default class PCTransport extends EventEmitter {
22
22
  private ddExtID;
23
23
  private latestOfferId;
24
24
  private offerLock;
25
+ private pendingInitialOffer?;
25
26
  pendingCandidates: RTCIceCandidateInit[];
26
27
  restartingIce: boolean;
27
28
  renegotiate: boolean;
@@ -43,6 +44,10 @@ export default class PCTransport extends EventEmitter {
43
44
  addIceCandidate(candidate: RTCIceCandidateInit): Promise<void>;
44
45
  setRemoteDescription(sd: RTCSessionDescriptionInit, offerId: number): Promise<boolean>;
45
46
  negotiate: import("./debounce").DebouncedFunction<any[], (onError?: (e: Error) => void) => Promise<void>>;
47
+ createInitialOffer(): Promise<{
48
+ offer: RTCSessionDescriptionInit;
49
+ offerId: number;
50
+ } | undefined>;
46
51
  createAndSendOffer(options?: RTCOfferOptions): Promise<void>;
47
52
  createAndSetAnswer(): Promise<RTCSessionDescriptionInit>;
48
53
  createDataChannel(label: string, dataChannelDict: RTCDataChannelInit): RTCDataChannel;
@@ -31,7 +31,7 @@ export declare class PCTransportManager {
31
31
  private loggerOptions;
32
32
  private _mode;
33
33
  get mode(): PCMode;
34
- constructor(rtcConfig: RTCConfiguration, mode: PCMode, loggerOptions: LoggerOptions);
34
+ constructor(mode: PCMode, loggerOptions: LoggerOptions, rtcConfig?: RTCConfiguration);
35
35
  private get logContext();
36
36
  requirePublisher(require?: boolean): void;
37
37
  createAndSendPublisherOffer(options?: RTCOfferOptions): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import type { AddTrackRequest, ConnectionQualityUpdate, JoinResponse, StreamStateUpdate, SubscriptionPermissionUpdate, SubscriptionResponse } from '@livekit/protocol';
2
- import { DataPacket, DataPacket_Kind, DisconnectReason, Encryption_Type, ParticipantInfo, RequestResponse, Room as RoomModel, RoomMovedResponse, SpeakerInfo, SubscribedQualityUpdate, TrackInfo, TrackUnpublishedResponse, Transcription } from '@livekit/protocol';
2
+ import { DataPacket, DataTrackSubscriberHandles, DisconnectReason, Encryption_Type, ParticipantInfo, PublishDataTrackResponse, RequestResponse, Room as RoomModel, RoomMovedResponse, SpeakerInfo, SubscribedQualityUpdate, TrackInfo, TrackUnpublishedResponse, Transcription, UnpublishDataTrackResponse } from '@livekit/protocol';
3
3
  import type TypedEventEmitter from 'typed-emitter';
4
4
  import type { SignalOptions } from '../api/SignalClient';
5
5
  import { SignalClient } from '../api/SignalClient';
@@ -9,6 +9,7 @@ import TypedPromise from '../utils/TypedPromise';
9
9
  import PCTransport from './PCTransport';
10
10
  import { PCTransportManager } from './PCTransportManager';
11
11
  import type { RegionUrlProvider } from './RegionUrlProvider';
12
+ import { DataTrackInfo } from './data-track/types';
12
13
  import { UnexpectedConnectionState } from './errors';
13
14
  import { RpcError } from './rpc';
14
15
  import type LocalTrack from './track/LocalTrack';
@@ -18,6 +19,11 @@ import type { SimulcastTrackInfo } from './track/LocalVideoTrack';
18
19
  import type RemoteTrackPublication from './track/RemoteTrackPublication';
19
20
  import type { Track } from './track/Track';
20
21
  import type { TrackPublishOptions, VideoCodec } from './track/options';
22
+ export declare enum DataChannelKind {
23
+ RELIABLE = 0,
24
+ LOSSY = 1,
25
+ DATA_TRACK_LOSSY = 2
26
+ }
21
27
  declare const RTCEngine_base: new () => TypedEventEmitter<EngineEventCallbacks>;
22
28
  /** @internal */
23
29
  export default class RTCEngine extends RTCEngine_base {
@@ -38,15 +44,19 @@ export default class RTCEngine extends RTCEngine_base {
38
44
  /** @internal */
39
45
  e2eeManager: BaseE2EEManager | undefined;
40
46
  get isClosed(): boolean;
47
+ get isNewlyCreated(): boolean;
41
48
  get pendingReconnect(): boolean;
42
49
  private lossyDC?;
43
50
  private lossyDCSub?;
44
51
  private reliableDC?;
45
- private dcBufferStatus;
46
52
  private reliableDCSub?;
53
+ private dataTrackDC?;
54
+ private dataTrackDCSub?;
55
+ private dcBufferStatus;
47
56
  private subscriberPrimary;
48
57
  private pcState;
49
58
  private _isClosed;
59
+ private _isNewlyCreated;
50
60
  private pendingTrackResolvers;
51
61
  private url?;
52
62
  private token?;
@@ -85,7 +95,7 @@ export default class RTCEngine extends RTCEngine_base {
85
95
  room: string | undefined;
86
96
  roomID: string | undefined;
87
97
  participant: string | undefined;
88
- pID: string | undefined;
98
+ participantID: string | undefined;
89
99
  };
90
100
  join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal,
91
101
  /** setting this to true results in dual peer connection mode being used */
@@ -109,9 +119,11 @@ export default class RTCEngine extends RTCEngine_base {
109
119
  private configure;
110
120
  private setupSignalClientCallbacks;
111
121
  private makeRTCConfiguration;
122
+ private addMediaSections;
112
123
  private createDataChannels;
113
124
  private handleDataChannel;
114
125
  private handleDataMessage;
126
+ private handleDataTrackMessage;
115
127
  private handleDataError;
116
128
  private handleBufferedAmountLow;
117
129
  createSender(track: LocalTrack, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender>;
@@ -131,22 +143,23 @@ export default class RTCEngine extends RTCEngine_base {
131
143
  publishRpcResponse(destinationIdentity: string, requestId: string, payload: string | null, error: RpcError | null): Promise<void>;
132
144
  /** @internal */
133
145
  publishRpcAck(destinationIdentity: string, requestId: string): Promise<void>;
134
- sendDataPacket(packet: DataPacket, kind: DataPacket_Kind): Promise<void>;
146
+ sendDataPacket(packet: DataPacket, kind: DataChannelKind): Promise<void>;
147
+ sendLossyBytes(bytes: Uint8Array, kind: Exclude<DataChannelKind, DataChannelKind.RELIABLE>, bufferStatusLowBehavior?: 'drop' | 'wait'): Promise<void>;
135
148
  private resendReliableMessagesForResume;
136
149
  private updateAndEmitDCBufferStatus;
137
150
  private isBufferStatusLow;
138
- waitForBufferStatusLow(kind: DataPacket_Kind): TypedPromise<void, UnexpectedConnectionState>;
151
+ waitForBufferStatusLow(kind: DataChannelKind): TypedPromise<void, UnexpectedConnectionState>;
139
152
  /**
140
153
  * @internal
141
154
  */
142
- ensureDataTransportConnected(kind: DataPacket_Kind, subscriber?: boolean): Promise<void>;
155
+ ensureDataTransportConnected(kind: DataChannelKind, subscriber?: boolean): Promise<void>;
143
156
  private ensurePublisherConnected;
144
157
  verifyTransport(): boolean;
145
158
  /** @internal */
146
159
  negotiate(): Promise<void>;
147
- dataChannelForKind(kind: DataPacket_Kind, sub?: boolean): RTCDataChannel | undefined;
160
+ dataChannelForKind(kind: DataChannelKind, sub?: boolean): RTCDataChannel | undefined;
148
161
  /** @internal */
149
- sendSyncState(remoteTracks: RemoteTrackPublication[], localTracks: LocalTrackPublication[]): void;
162
+ sendSyncState(remoteTracks: RemoteTrackPublication[], localTracks: LocalTrackPublication[], localDataTrackInfos: Array<DataTrackInfo>): void;
150
163
  failNext(): void;
151
164
  private dataChannelsInfo;
152
165
  private clearReconnectTimeout;
@@ -175,7 +188,7 @@ export type EngineEventCallbacks = {
175
188
  /** @internal */
176
189
  trackSenderAdded: (track: Track, sender: RTCRtpSender) => void;
177
190
  rtpVideoMapUpdate: (rtpMap: Map<number, VideoCodec>) => void;
178
- dcBufferStatusChanged: (isLow: boolean, kind: DataPacket_Kind) => void;
191
+ dcBufferStatusChanged: (isLow: boolean, kind: DataChannelKind) => void;
179
192
  participantUpdate: (infos: ParticipantInfo[]) => void;
180
193
  roomUpdate: (room: RoomModel) => void;
181
194
  roomMoved: (room: RoomMovedResponse) => void;
@@ -191,6 +204,11 @@ export type EngineEventCallbacks = {
191
204
  offline: () => void;
192
205
  signalRequestResponse: (response: RequestResponse) => void;
193
206
  signalConnected: (joinResp: JoinResponse) => void;
207
+ publishDataTrackResponse: (event: PublishDataTrackResponse) => void;
208
+ unPublishDataTrackResponse: (event: UnpublishDataTrackResponse) => void;
209
+ dataTrackSubscriberHandles: (event: DataTrackSubscriberHandles) => void;
210
+ dataTrackPacketReceived: (packet: Uint8Array) => void;
211
+ joined: (joinResponse: JoinResponse) => void;
194
212
  };
195
213
  export {};
196
214
  //# sourceMappingURL=RTCEngine.d.ts.map
@@ -3,11 +3,14 @@ import 'webrtc-adapter';
3
3
  import type TypedEmitter from 'typed-emitter';
4
4
  import type { InternalRoomOptions, RoomConnectOptions, RoomOptions } from '../options';
5
5
  import TypedPromise from '../utils/TypedPromise';
6
- import RTCEngine from './RTCEngine';
6
+ import RTCEngine, { DataChannelKind } from './RTCEngine';
7
7
  import type { ByteStreamHandler, TextStreamHandler } from './data-stream/incoming/StreamReader';
8
+ import type LocalDataTrack from './data-track/LocalDataTrack';
9
+ import type RemoteDataTrack from './data-track/RemoteDataTrack';
10
+ import type { DataTrackSid } from './data-track/types';
8
11
  import { UnexpectedConnectionState } from './errors';
9
12
  import LocalParticipant from './participant/LocalParticipant';
10
- import type Participant from './participant/Participant';
13
+ import Participant from './participant/Participant';
11
14
  import type { ConnectionQuality } from './participant/Participant';
12
15
  import RemoteParticipant from './participant/RemoteParticipant';
13
16
  import type { RpcInvocationData } from './rpc';
@@ -78,6 +81,8 @@ declare class Room extends Room_base {
78
81
  private transcriptionReceivedTimes;
79
82
  private incomingDataStreamManager;
80
83
  private outgoingDataStreamManager;
84
+ private incomingDataTrackManager;
85
+ private outgoingDataTrackManager;
81
86
  private rpcHandlers;
82
87
  get hasE2EESetup(): boolean;
83
88
  /**
@@ -216,6 +221,7 @@ declare class Room extends Room_base {
216
221
  private recreateEngine;
217
222
  private onTrackAdded;
218
223
  private handleRestarting;
224
+ private handleRestarted;
219
225
  private handleSignalRestarted;
220
226
  private handleDisconnect;
221
227
  private handleParticipantUpdates;
@@ -323,11 +329,15 @@ export type RoomEventCallbacks = {
323
329
  recordingStatusChanged: (recording: boolean) => void;
324
330
  participantEncryptionStatusChanged: (encrypted: boolean, participant?: Participant) => void;
325
331
  encryptionError: (error: Error, participant?: Participant) => void;
326
- dcBufferStatusChanged: (isLow: boolean, kind: DataPacket_Kind) => void;
332
+ dcBufferStatusChanged: (isLow: boolean, kind: DataChannelKind) => void;
327
333
  activeDeviceChanged: (kind: MediaDeviceKind, deviceId: string) => void;
328
334
  chatMessage: (message: ChatMessage, participant?: RemoteParticipant | LocalParticipant) => void;
329
335
  localTrackSubscribed: (publication: LocalTrackPublication, participant: LocalParticipant) => void;
330
336
  metricsReceived: (metrics: MetricsBatch, participant?: Participant) => void;
331
337
  participantActive: (participant: Participant) => void;
338
+ dataTrackPublished: (track: RemoteDataTrack) => void;
339
+ dataTrackUnpublished: (sid: DataTrackSid) => void;
340
+ localDataTrackPublished: (track: LocalDataTrack) => void;
341
+ localDataTrackUnpublished: (sid: DataTrackSid) => void;
332
342
  };
333
343
  //# sourceMappingURL=Room.d.ts.map
@@ -0,0 +1,48 @@
1
+ import type { StructuredLogger } from '../../logger';
2
+ import type { DataTrackFrame } from './frame';
3
+ import type { DataTrackHandle } from './handle';
4
+ import type OutgoingDataTrackManager from './outgoing/OutgoingDataTrackManager';
5
+ import { DataTrackPushFrameError } from './outgoing/errors';
6
+ import type { DataTrackOptions } from './outgoing/types';
7
+ import type { IDataTrack, ILocalTrack } from './track-interfaces';
8
+ import type { DataTrackInfo } from './types';
9
+ export default class LocalDataTrack implements ILocalTrack, IDataTrack {
10
+ readonly trackSymbol: symbol;
11
+ readonly isLocal = true;
12
+ readonly typeSymbol: symbol;
13
+ protected options: DataTrackOptions;
14
+ /** Represents the currently active {@link DataTrackHandle} for the publication. */
15
+ protected handle: DataTrackHandle | null;
16
+ protected manager: OutgoingDataTrackManager;
17
+ protected log: StructuredLogger;
18
+ /** @internal */
19
+ constructor(options: DataTrackOptions, manager: OutgoingDataTrackManager);
20
+ /** @internal */
21
+ static withExplicitHandle(options: DataTrackOptions, manager: OutgoingDataTrackManager, handle: DataTrackHandle): LocalDataTrack;
22
+ /** Metrics about the data track publication. */
23
+ get info(): DataTrackInfo | undefined;
24
+ /** The raw descriptor from the manager containing the internal state for this local track. */
25
+ protected get descriptor(): import("./outgoing/OutgoingDataTrackManager").Descriptor | null;
26
+ /**
27
+ * Publish the track to the SFU. This must be done before calling {@link tryPush} for the first time.
28
+ * @internal
29
+ * */
30
+ publish(signal?: AbortSignal): Promise<void>;
31
+ isPublished(): this is {
32
+ info: DataTrackInfo;
33
+ };
34
+ /** Try pushing a frame to subscribers of the track.
35
+ *
36
+ * Pushing a frame can fail for several reasons:
37
+ *
38
+ * - The track has been unpublished by the local participant or SFU
39
+ * - The room is no longer connected
40
+ */
41
+ tryPush(frame: DataTrackFrame): Promise<import("@livekit/throws-transformer/throws").Throws<void, DataTrackPushFrameError<import("./outgoing/errors").DataTrackPushFrameErrorReason.TrackUnpublished> | DataTrackPushFrameError<import("./outgoing/errors").DataTrackPushFrameErrorReason.Dropped>>>;
42
+ /**
43
+ * Unpublish the track from the SFU. Once this is called, any further calls to {@link tryPush}
44
+ * will fail.
45
+ * */
46
+ unpublish(): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=LocalDataTrack.d.ts.map
@@ -0,0 +1,46 @@
1
+ import type Participant from '../participant/Participant';
2
+ import type { DataTrackFrame } from './frame';
3
+ import type IncomingDataTrackManager from './incoming/IncomingDataTrackManager';
4
+ import type { IDataTrack, IRemoteTrack } from './track-interfaces';
5
+ import type { DataTrackInfo } from './types';
6
+ type RemoteDataTrackOptions = {
7
+ publisherIdentity: Participant['identity'];
8
+ };
9
+ export type DataTrackSubscribeOptions = {
10
+ signal?: AbortSignal;
11
+ /** The number of {@link DataTrackFrame}s to hold in the ReadableStream before disgarding extra
12
+ * frames. Defaults to 16, but this may not be good enough for especially high frequency data. */
13
+ bufferSize?: number;
14
+ };
15
+ export default class RemoteDataTrack implements IRemoteTrack, IDataTrack {
16
+ readonly trackSymbol: symbol;
17
+ readonly isLocal = false;
18
+ readonly typeSymbol: symbol;
19
+ info: DataTrackInfo;
20
+ publisherIdentity: Participant['identity'];
21
+ protected manager: IncomingDataTrackManager;
22
+ /** @internal */
23
+ constructor(info: DataTrackInfo, manager: IncomingDataTrackManager, options: RemoteDataTrackOptions);
24
+ /** Subscribes to the data track to receive frames.
25
+ *
26
+ * # Returns
27
+ *
28
+ * A stream that yields {@link DataTrackFrame}s as they arrive.
29
+ *
30
+ * # Multiple Subscriptions
31
+ *
32
+ * An application may call `subscribe` more than once to process frames in
33
+ * multiple places. For example, one async task might plot values on a graph
34
+ * while another writes them to a file.
35
+ *
36
+ * Internally, only the first call to `subscribe` communicates with the SFU and
37
+ * allocates the resources required to receive frames. Additional subscriptions
38
+ * reuse the same underlying pipeline and do not trigger additional signaling.
39
+ *
40
+ * Note that newly created subscriptions only receive frames published after
41
+ * the initial subscription is established.
42
+ */
43
+ subscribe(options?: DataTrackSubscribeOptions): ReadableStream<DataTrackFrame>;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=RemoteDataTrack.d.ts.map
@@ -1,9 +1,9 @@
1
- import type { Throws } from '../../utils/throws';
1
+ import type { Throws } from '@livekit/throws-transformer/throws';
2
2
  import { LivekitReasonedError } from '../errors';
3
- import type { DataTrackFrame } from './frame';
3
+ import type { DataTrackFrameInternal } from './frame';
4
4
  import { DataTrackPacket } from './packet';
5
5
  /** An error indicating a frame was dropped. */
6
- export declare class DataTrackDepacketizerDropError<Reason extends DataTrackDepacketizerDropReason> extends LivekitReasonedError<Reason> {
6
+ export declare class DataTrackDepacketizerDropError<Reason extends DataTrackDepacketizerDropReason = DataTrackDepacketizerDropReason> extends LivekitReasonedError<Reason> {
7
7
  readonly name = "DataTrackDepacketizerDropError";
8
8
  reason: Reason;
9
9
  reasonName: string;
@@ -11,7 +11,7 @@ export declare class DataTrackDepacketizerDropError<Reason extends DataTrackDepa
11
11
  constructor(message: string, reason: Reason, frameNumber: number, options?: {
12
12
  cause?: unknown;
13
13
  });
14
- static interrupted(frameNumber: number): DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.Interrupted>;
14
+ static interrupted(frameNumber: number, newFrameNumber: number): DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.Interrupted>;
15
15
  static unknownFrame(frameNumber: number): DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.UnknownFrame>;
16
16
  static bufferFull(frameNumber: number): DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.BufferFull>;
17
17
  static incomplete(frameNumber: number, receivedPackets: number, expectedPackets: number): DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.Incomplete>;
@@ -35,9 +35,9 @@ export default class DataTrackDepacketizer {
35
35
  /** Should be repeatedly called with received {@link DataTrackPacket}s - intermediate calls
36
36
  * aggregate the packet's state internally, and return null.
37
37
  *
38
- * Once this method is called with the final packet to form a frame, a new {@link DataTrackFrame}
38
+ * Once this method is called with the final packet to form a frame, a new {@link DataTrackFrameInternal}
39
39
  * is returned.*/
40
- push(packet: DataTrackPacket, options?: PushOptions): Throws<DataTrackFrame | null, DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.Interrupted> | DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.BufferFull> | DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.UnknownFrame> | DataTrackDepacketizerDropError<DataTrackDepacketizerDropReason.Incomplete>>;
40
+ push(packet: DataTrackPacket, options?: PushOptions): Throws<DataTrackFrameInternal | null, DataTrackDepacketizerDropError>;
41
41
  reset(): void;
42
42
  private frameFromSingle;
43
43
  /** Begin assembling a new packet. */
@@ -1,7 +1,21 @@
1
1
  import { DataTrackExtensions } from './packet/extensions';
2
2
  /** A pair of payload bytes and packet extensions which can be fed into a {@link DataTrackPacketizer}. */
3
3
  export type DataTrackFrame = {
4
+ payload: Uint8Array;
5
+ userTimestamp?: bigint;
6
+ };
7
+ /** An internal representation o data track frame which contains all SFU metadata. */
8
+ export type DataTrackFrameInternal = {
4
9
  payload: Uint8Array;
5
10
  extensions: DataTrackExtensions;
6
11
  };
12
+ export declare const DataTrackFrameInternal: {
13
+ from(frame: DataTrackFrame): {
14
+ payload: Uint8Array<ArrayBufferLike>;
15
+ extensions: DataTrackExtensions;
16
+ };
17
+ /** Converts from a DataTrackFrameInternal -> DataTrackFrame. Some internal information is
18
+ * discarded like e2ee encrption extension data. */
19
+ lossyIntoFrame(frame: DataTrackFrameInternal): DataTrackFrame;
20
+ };
7
21
  //# sourceMappingURL=frame.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { Throws } from '../../utils/throws';
1
+ import type { Throws } from '@livekit/throws-transformer/throws';
2
2
  import { LivekitReasonedError } from '../errors';
3
3
  export declare enum DataTrackHandleErrorReason {
4
4
  Reserved = 0,
@@ -15,7 +15,7 @@ export declare class DataTrackHandleError<Reason extends DataTrackHandleErrorRea
15
15
  }
16
16
  export type DataTrackHandle = number;
17
17
  export declare const DataTrackHandle: {
18
- fromNumber(raw: number): Throws<DataTrackHandle, DataTrackHandleError<DataTrackHandleErrorReason.TooLarge> | DataTrackHandleError<DataTrackHandleErrorReason.Reserved>>;
18
+ fromNumber(raw: number): Throws<DataTrackHandle, DataTrackHandleError>;
19
19
  };
20
20
  /** Manage allocating new handles which don't conflict over the lifetime of the client. */
21
21
  export declare class DataTrackHandleAllocator {