livekit-client 2.22.3 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +35 -0
  2. package/dist/livekit-client.e2ee.worker.js +1 -1
  3. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  4. package/dist/livekit-client.e2ee.worker.mjs +71 -8
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +1746 -547
  7. package/dist/livekit-client.esm.mjs.map +1 -1
  8. package/dist/livekit-client.fm.worker.js +1 -1
  9. package/dist/livekit-client.fm.worker.js.map +1 -1
  10. package/dist/livekit-client.fm.worker.mjs +2 -1
  11. package/dist/livekit-client.fm.worker.mjs.map +1 -1
  12. package/dist/livekit-client.umd.js +1 -1
  13. package/dist/livekit-client.umd.js.map +1 -1
  14. package/dist/src/api/SignalClient.d.ts +4 -2
  15. package/dist/src/api/SignalClient.d.ts.map +1 -1
  16. package/dist/src/api/WebSocketStream.d.ts +1 -0
  17. package/dist/src/api/WebSocketStream.d.ts.map +1 -1
  18. package/dist/src/api/utils.d.ts +1 -1
  19. package/dist/src/api/utils.d.ts.map +1 -1
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  22. package/dist/src/e2ee/worker/naluUtils.d.ts +12 -1
  23. package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
  24. package/dist/src/index.d.ts +2 -2
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/options.d.ts +14 -0
  27. package/dist/src/options.d.ts.map +1 -1
  28. package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -1
  29. package/dist/src/room/PCTransport.d.ts +100 -7
  30. package/dist/src/room/PCTransport.d.ts.map +1 -1
  31. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  32. package/dist/src/room/RTCEngine.d.ts +16 -0
  33. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  34. package/dist/src/room/Room.d.ts +54 -1
  35. package/dist/src/room/Room.d.ts.map +1 -1
  36. package/dist/src/room/data-channel/DataChannelManager.d.ts +9 -8
  37. package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -1
  38. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +25 -12
  39. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -1
  40. package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -1
  41. package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -1
  42. package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
  43. package/dist/src/room/defaults.d.ts.map +1 -1
  44. package/dist/src/room/errors.d.ts +18 -0
  45. package/dist/src/room/errors.d.ts.map +1 -1
  46. package/dist/src/room/events.d.ts +3 -2
  47. package/dist/src/room/events.d.ts.map +1 -1
  48. package/dist/src/room/participant/LocalParticipant.d.ts +4 -0
  49. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  50. package/dist/src/room/participant/Participant.d.ts +1 -1
  51. package/dist/src/room/participant/Participant.d.ts.map +1 -1
  52. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  53. package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
  54. package/dist/src/room/rpc/utils.d.ts.map +1 -1
  55. package/dist/src/room/track/LocalAudioTrack.d.ts +24 -1
  56. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  57. package/dist/src/room/track/LocalTrack.d.ts +18 -0
  58. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  59. package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
  60. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  61. package/dist/src/room/track/RemoteAudioTrack.d.ts +6 -0
  62. package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
  63. package/dist/src/room/track/processor/types.d.ts +11 -0
  64. package/dist/src/room/track/processor/types.d.ts.map +1 -1
  65. package/dist/src/room/track/utils.d.ts +13 -0
  66. package/dist/src/room/track/utils.d.ts.map +1 -1
  67. package/dist/src/room/utils.d.ts +60 -1
  68. package/dist/src/room/utils.d.ts.map +1 -1
  69. package/dist/src/test/compressionStreamStubs.d.ts +12 -0
  70. package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
  71. package/dist/ts4.2/api/SignalClient.d.ts +187 -185
  72. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
  73. package/dist/ts4.2/api/WebSocketStream.d.ts +34 -33
  74. package/dist/ts4.2/api/utils.d.ts +9 -9
  75. package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
  76. package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
  77. package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
  78. package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
  79. package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
  80. package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
  81. package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
  82. package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
  83. package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
  84. package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
  85. package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -111
  86. package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
  87. package/dist/ts4.2/e2ee/constants.d.ts +21 -21
  88. package/dist/ts4.2/e2ee/errors.d.ts +12 -12
  89. package/dist/ts4.2/e2ee/events.d.ts +39 -39
  90. package/dist/ts4.2/e2ee/index.d.ts +6 -6
  91. package/dist/ts4.2/e2ee/types.d.ts +231 -231
  92. package/dist/ts4.2/e2ee/utils.d.ts +32 -32
  93. package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
  94. package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -21
  95. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -209
  96. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
  97. package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
  98. package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +39 -28
  99. package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
  100. package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
  101. package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
  102. package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
  103. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
  104. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
  105. package/dist/ts4.2/index.d.ts +76 -76
  106. package/dist/ts4.2/logger.d.ts +66 -66
  107. package/dist/ts4.2/options.d.ts +163 -149
  108. package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
  109. package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
  110. package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
  111. package/dist/ts4.2/room/PCTransport.d.ts +268 -175
  112. package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
  113. package/dist/ts4.2/room/RTCEngine.d.ts +277 -262
  114. package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
  115. package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
  116. package/dist/ts4.2/room/Room.d.ts +407 -365
  117. package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
  118. package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +63 -62
  119. package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +107 -95
  120. package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
  121. package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
  122. package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
  123. package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
  124. package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
  125. package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
  126. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
  127. package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
  128. package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
  129. package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
  130. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
  131. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
  132. package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
  133. package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
  134. package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
  135. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
  136. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
  137. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
  138. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
  139. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
  140. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
  141. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
  142. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
  143. package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
  144. package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
  145. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
  146. package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
  147. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
  148. package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
  149. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
  150. package/dist/ts4.2/room/data-track/types.d.ts +22 -22
  151. package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
  152. package/dist/ts4.2/room/debounce.d.ts +11 -11
  153. package/dist/ts4.2/room/defaults.d.ts +9 -9
  154. package/dist/ts4.2/room/errors.d.ts +180 -162
  155. package/dist/ts4.2/room/events.d.ts +638 -637
  156. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +291 -287
  157. package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
  158. package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
  159. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
  160. package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -53
  161. package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
  162. package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
  163. package/dist/ts4.2/room/rpc/index.d.ts +7 -7
  164. package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
  165. package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
  166. package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
  167. package/dist/ts4.2/room/stats.d.ts +71 -71
  168. package/dist/ts4.2/room/statsSummary.d.ts +13 -13
  169. package/dist/ts4.2/room/timers.d.ts +12 -12
  170. package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
  171. package/dist/ts4.2/room/token-source/types.d.ts +70 -70
  172. package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
  173. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
  174. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +62 -42
  175. package/dist/ts4.2/room/track/LocalTrack.d.ts +143 -125
  176. package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
  177. package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +109 -100
  178. package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +61 -55
  179. package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
  180. package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
  181. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
  182. package/dist/ts4.2/room/track/Track.d.ts +156 -166
  183. package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
  184. package/dist/ts4.2/room/track/create.d.ts +25 -25
  185. package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
  186. package/dist/ts4.2/room/track/options.d.ts +403 -403
  187. package/dist/ts4.2/room/track/processor/types.d.ts +42 -31
  188. package/dist/ts4.2/room/track/record.d.ts +13 -13
  189. package/dist/ts4.2/room/track/types.d.ts +28 -28
  190. package/dist/ts4.2/room/track/utils.d.ts +60 -47
  191. package/dist/ts4.2/room/types.d.ts +127 -127
  192. package/dist/ts4.2/room/utils.d.ts +273 -214
  193. package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
  194. package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
  195. package/dist/ts4.2/test/mocks.d.ts +12 -12
  196. package/dist/ts4.2/test/promiseState.d.ts +12 -12
  197. package/dist/ts4.2/test/signalToken.d.ts +26 -26
  198. package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
  199. package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
  200. package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
  201. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
  202. package/dist/ts4.2/utils/browserParser.d.ts +13 -13
  203. package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
  204. package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
  205. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
  206. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
  207. package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
  208. package/dist/ts4.2/utils/serializer.d.ts +48 -48
  209. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
  210. package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
  211. package/dist/ts4.2/version.d.ts +15 -15
  212. package/package.json +5 -4
  213. package/src/api/SignalClient.e2e.test.ts +1 -3
  214. package/src/api/SignalClient.test.ts +394 -10
  215. package/src/api/SignalClient.ts +132 -76
  216. package/src/api/WebSocketStream.test.ts +11 -0
  217. package/src/api/WebSocketStream.ts +22 -1
  218. package/src/api/utils.ts +1 -1
  219. package/src/e2ee/E2eeManager.test.ts +43 -0
  220. package/src/e2ee/E2eeManager.ts +6 -2
  221. package/src/e2ee/worker/FrameCryptor.test.ts +212 -90
  222. package/src/e2ee/worker/FrameCryptor.ts +21 -4
  223. package/src/e2ee/worker/naluUtils.test.ts +123 -0
  224. package/src/e2ee/worker/naluUtils.ts +57 -2
  225. package/src/index.ts +2 -0
  226. package/src/options.ts +16 -0
  227. package/src/room/DefaultReconnectPolicy.test.ts +58 -0
  228. package/src/room/DefaultReconnectPolicy.ts +14 -2
  229. package/src/room/PCTransport.test.ts +327 -9
  230. package/src/room/PCTransport.ts +339 -36
  231. package/src/room/PCTransportManager.ts +3 -1
  232. package/src/room/RTCEngine.test.ts +318 -2
  233. package/src/room/RTCEngine.ts +126 -12
  234. package/src/room/Room.test.ts +148 -6
  235. package/src/room/Room.ts +312 -80
  236. package/src/room/data-channel/DataChannelManager.test.ts +24 -7
  237. package/src/room/data-channel/DataChannelManager.ts +43 -38
  238. package/src/room/data-channel/FlowControlledDataChannel.test.ts +60 -18
  239. package/src/room/data-channel/FlowControlledDataChannel.ts +40 -22
  240. package/src/room/data-channel/LossyDataChannel.test.ts +38 -0
  241. package/src/room/data-channel/LossyDataChannel.ts +10 -1
  242. package/src/room/data-channel/ReliableDataChannel.test.ts +72 -0
  243. package/src/room/data-channel/ReliableDataChannel.ts +16 -5
  244. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +47 -20
  245. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +16 -5
  246. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
  247. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
  248. package/src/room/defaults.ts +1 -0
  249. package/src/room/errors.test.ts +36 -0
  250. package/src/room/errors.ts +27 -0
  251. package/src/room/events.ts +2 -1
  252. package/src/room/participant/LocalParticipant.test.ts +136 -1
  253. package/src/room/participant/LocalParticipant.ts +66 -17
  254. package/src/room/participant/Participant.ts +6 -3
  255. package/src/room/participant/publishUtils.ts +0 -19
  256. package/src/room/participant/restartOnDefaultAudioDevice.test.ts +177 -0
  257. package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
  258. package/src/room/rpc/client/RpcClientManager.ts +32 -15
  259. package/src/room/rpc/utils.test.ts +32 -0
  260. package/src/room/rpc/utils.ts +7 -0
  261. package/src/room/track/LocalAudioTrack.ts +101 -10
  262. package/src/room/track/LocalTrack.ts +87 -19
  263. package/src/room/track/LocalVideoTrack.ts +17 -3
  264. package/src/room/track/RemoteAudioTrack.ts +59 -14
  265. package/src/room/track/RemoteVideoTrack.test.ts +210 -0
  266. package/src/room/track/RemoteVideoTrack.ts +29 -3
  267. package/src/room/track/processor/types.ts +11 -0
  268. package/src/room/track/utils.test.ts +206 -2
  269. package/src/room/track/utils.ts +117 -5
  270. package/src/room/utils.test.ts +250 -0
  271. package/src/room/utils.ts +152 -19
  272. package/src/test/compressionStreamStubs.ts +53 -0
@@ -1,60 +1,60 @@
1
- export declare const U16_MAX_SIZE = 65535;
2
- export declare const U32_MAX_SIZE = 4294967295;
3
- /**
4
- * A number of fields withing the data tracks packet specification assume wrap around behavior when
5
- * an unsigned type is incremented beyond its max size (ie, the packet `sequence` field). This
6
- * wrapper type manually reimplements this wrap around behavior given javascript's lack of fixed
7
- * size integer types.
8
- */
9
- export declare class WrapAroundUnsignedInt<MaxSize extends number> {
10
- value: number;
11
- private maxSize;
12
- static u16(raw: number): WrapAroundUnsignedInt<65535>;
13
- static u32(raw: number): WrapAroundUnsignedInt<4294967295>;
14
- constructor(raw: number, maxSize: MaxSize);
15
- /** Manually clamp the given containing value according to the wrap around max size bounds. Use
16
- * this after out of bounds modification to the contained value by external code. */
17
- clamp(): void;
18
- clone(): WrapAroundUnsignedInt<MaxSize>;
19
- /** When called, maps the containing value to a new containing value. After mapping, the wrap
20
- * around external max size bounds are applied. Note that this is a mutative operation. */
21
- update(updateFn: (value: number) => number): void;
22
- /** Increments the given `n` to the inner value. Note that this is a mutative operation. */
23
- increment(n?: number): void;
24
- /** Decrements the given `n` from the inner value. Note that this is a mutative operation. */
25
- decrement(n?: number): void;
26
- getThenIncrement(): WrapAroundUnsignedInt<MaxSize>;
27
- /** Returns true if {@link this} is before the passed other {@link WrapAroundUnsignedInt}. */
28
- isBefore(other: WrapAroundUnsignedInt<MaxSize>): boolean;
29
- }
30
- export declare class DataTrackTimestamp<RateInHz extends number> {
31
- rateInHz: RateInHz;
32
- timestamp: WrapAroundUnsignedInt<typeof U32_MAX_SIZE>;
33
- static fromRtpTicks(rtpTicks: number): DataTrackTimestamp<90000>;
34
- /** Generates a timestamp initialized to a non cryptographically secure random value, so that
35
- * different streams are more difficult to correlate in packet capture. */
36
- static rtpRandom(): DataTrackTimestamp<90000>;
37
- private constructor();
38
- asTicks(): number;
39
- clone(): DataTrackTimestamp<RateInHz>;
40
- wrappingAdd(n: number): void;
41
- /** Returns true if {@link this} is before the passed other {@link DataTrackTimestamp}. */
42
- isBefore(other: DataTrackTimestamp<RateInHz>): boolean;
43
- }
44
- export declare class DataTrackClock<RateInHz extends number> {
45
- epoch: Date;
46
- base: DataTrackTimestamp<RateInHz>;
47
- previous: DataTrackTimestamp<RateInHz>;
48
- rateInHz: RateInHz;
49
- private constructor();
50
- static startingNow<RateInHz extends number>(base: DataTrackTimestamp<RateInHz>, rateInHz: RateInHz): DataTrackClock<RateInHz>;
51
- static startingAtTime<RateInHz extends number>(epoch: Date, base: DataTrackTimestamp<RateInHz>, rateInHz: RateInHz): DataTrackClock<RateInHz>;
52
- static rtpStartingNow(base: DataTrackTimestamp<90000>): DataTrackClock<90000>;
53
- static rtpStartingAtTime(epoch: Date, base: DataTrackTimestamp<90000>): DataTrackClock<90000>;
54
- now(): DataTrackTimestamp<RateInHz>;
55
- at(timestamp: Date): DataTrackTimestamp<RateInHz>;
56
- /** Convert a duration since the epoch into clock ticks. */
57
- static durationInMsToTicks(durationMilliseconds: number, rateInHz: number): number;
58
- }
59
- export declare function coerceToDataView<Input extends DataView | ArrayBuffer | Uint8Array>(input: Input): DataView;
60
- //# sourceMappingURL=utils.d.ts.map
1
+ export declare const U16_MAX_SIZE = 65535;
2
+ export declare const U32_MAX_SIZE = 4294967295;
3
+ /**
4
+ * A number of fields withing the data tracks packet specification assume wrap around behavior when
5
+ * an unsigned type is incremented beyond its max size (ie, the packet `sequence` field). This
6
+ * wrapper type manually reimplements this wrap around behavior given javascript's lack of fixed
7
+ * size integer types.
8
+ */
9
+ export declare class WrapAroundUnsignedInt<MaxSize extends number> {
10
+ value: number;
11
+ private maxSize;
12
+ static u16(raw: number): WrapAroundUnsignedInt<65535>;
13
+ static u32(raw: number): WrapAroundUnsignedInt<4294967295>;
14
+ constructor(raw: number, maxSize: MaxSize);
15
+ /** Manually clamp the given containing value according to the wrap around max size bounds. Use
16
+ * this after out of bounds modification to the contained value by external code. */
17
+ clamp(): void;
18
+ clone(): WrapAroundUnsignedInt<MaxSize>;
19
+ /** When called, maps the containing value to a new containing value. After mapping, the wrap
20
+ * around external max size bounds are applied. Note that this is a mutative operation. */
21
+ update(updateFn: (value: number) => number): void;
22
+ /** Increments the given `n` to the inner value. Note that this is a mutative operation. */
23
+ increment(n?: number): void;
24
+ /** Decrements the given `n` from the inner value. Note that this is a mutative operation. */
25
+ decrement(n?: number): void;
26
+ getThenIncrement(): WrapAroundUnsignedInt<MaxSize>;
27
+ /** Returns true if {@link this} is before the passed other {@link WrapAroundUnsignedInt}. */
28
+ isBefore(other: WrapAroundUnsignedInt<MaxSize>): boolean;
29
+ }
30
+ export declare class DataTrackTimestamp<RateInHz extends number> {
31
+ rateInHz: RateInHz;
32
+ timestamp: WrapAroundUnsignedInt<typeof U32_MAX_SIZE>;
33
+ static fromRtpTicks(rtpTicks: number): DataTrackTimestamp<90000>;
34
+ /** Generates a timestamp initialized to a non cryptographically secure random value, so that
35
+ * different streams are more difficult to correlate in packet capture. */
36
+ static rtpRandom(): DataTrackTimestamp<90000>;
37
+ private constructor();
38
+ asTicks(): number;
39
+ clone(): DataTrackTimestamp<RateInHz>;
40
+ wrappingAdd(n: number): void;
41
+ /** Returns true if {@link this} is before the passed other {@link DataTrackTimestamp}. */
42
+ isBefore(other: DataTrackTimestamp<RateInHz>): boolean;
43
+ }
44
+ export declare class DataTrackClock<RateInHz extends number> {
45
+ epoch: Date;
46
+ base: DataTrackTimestamp<RateInHz>;
47
+ previous: DataTrackTimestamp<RateInHz>;
48
+ rateInHz: RateInHz;
49
+ private constructor();
50
+ static startingNow<RateInHz extends number>(base: DataTrackTimestamp<RateInHz>, rateInHz: RateInHz): DataTrackClock<RateInHz>;
51
+ static startingAtTime<RateInHz extends number>(epoch: Date, base: DataTrackTimestamp<RateInHz>, rateInHz: RateInHz): DataTrackClock<RateInHz>;
52
+ static rtpStartingNow(base: DataTrackTimestamp<90000>): DataTrackClock<90000>;
53
+ static rtpStartingAtTime(epoch: Date, base: DataTrackTimestamp<90000>): DataTrackClock<90000>;
54
+ now(): DataTrackTimestamp<RateInHz>;
55
+ at(timestamp: Date): DataTrackTimestamp<RateInHz>;
56
+ /** Convert a duration since the epoch into clock ticks. */
57
+ static durationInMsToTicks(durationMilliseconds: number, rateInHz: number): number;
58
+ }
59
+ export declare function coerceToDataView<Input extends DataView | ArrayBuffer | Uint8Array>(input: Input): DataView;
60
+ //# sourceMappingURL=utils.d.ts.map
@@ -1,11 +1,11 @@
1
- export type Options<Result> = {
2
- isImmediate?: boolean;
3
- maxWait?: number;
4
- callback?: (data: Result) => void;
5
- };
6
- export interface DebouncedFunction<Args extends any[], F extends (...args: Args) => any> {
7
- (this: ThisParameterType<F>, ...args: Args & Parameters<F>): Promise<ReturnType<F>>;
8
- cancel: (reason?: any) => void;
9
- }
10
- export declare function debounce<Args extends any[], F extends (...args: Args) => any>(func: F, waitMilliseconds?: number, options?: Options<ReturnType<F>>): DebouncedFunction<Args, F>;
11
- //# sourceMappingURL=debounce.d.ts.map
1
+ export type Options<Result> = {
2
+ isImmediate?: boolean;
3
+ maxWait?: number;
4
+ callback?: (data: Result) => void;
5
+ };
6
+ export interface DebouncedFunction<Args extends any[], F extends (...args: Args) => any> {
7
+ (this: ThisParameterType<F>, ...args: Args & Parameters<F>): Promise<ReturnType<F>>;
8
+ cancel: (reason?: any) => void;
9
+ }
10
+ export declare function debounce<Args extends any[], F extends (...args: Args) => any>(func: F, waitMilliseconds?: number, options?: Options<ReturnType<F>>): DebouncedFunction<Args, F>;
11
+ //# sourceMappingURL=debounce.d.ts.map
@@ -1,9 +1,9 @@
1
- import type { InternalRoomConnectOptions, InternalRoomOptions } from '../options';
2
- import type { AudioCaptureOptions, TrackPublishDefaults, VideoCaptureOptions } from './track/options';
3
- export declare const defaultVideoCodec = "vp8";
4
- export declare const publishDefaults: TrackPublishDefaults;
5
- export declare const audioDefaults: AudioCaptureOptions;
6
- export declare const videoDefaults: VideoCaptureOptions;
7
- export declare const roomOptionDefaults: InternalRoomOptions;
8
- export declare const roomConnectOptionDefaults: InternalRoomConnectOptions;
9
- //# sourceMappingURL=defaults.d.ts.map
1
+ import type { InternalRoomConnectOptions, InternalRoomOptions } from '../options';
2
+ import type { AudioCaptureOptions, TrackPublishDefaults, VideoCaptureOptions } from './track/options';
3
+ export declare const defaultVideoCodec = "vp8";
4
+ export declare const publishDefaults: TrackPublishDefaults;
5
+ export declare const audioDefaults: AudioCaptureOptions;
6
+ export declare const videoDefaults: VideoCaptureOptions;
7
+ export declare const roomOptionDefaults: InternalRoomOptions;
8
+ export declare const roomConnectOptionDefaults: InternalRoomConnectOptions;
9
+ //# sourceMappingURL=defaults.d.ts.map
@@ -1,162 +1,180 @@
1
- import { DisconnectReason, RequestResponse_Reason } from '@livekit/protocol';
2
- /** Base error that all LiveKit specific custom errors inherit from. */
3
- export declare class LivekitError extends Error {
4
- code: number;
5
- cause?: unknown;
6
- constructor(code: number, message?: string, options?: {
7
- cause?: unknown;
8
- });
9
- }
10
- /**
11
- * LiveKit specific error type representing an error with an associated set of reasons.
12
- * Use this to represent an error with multiple different but contextually related variants.
13
- * */
14
- export declare abstract class LivekitReasonedError<Reason> extends LivekitError {
15
- abstract reason: Reason;
16
- abstract reasonName: string;
17
- }
18
- export declare class SimulatedError extends LivekitError {
19
- readonly name = "simulated";
20
- constructor(message?: string);
21
- }
22
- export declare enum ConnectionErrorReason {
23
- NotAllowed = 0,
24
- ServerUnreachable = 1,
25
- InternalError = 2,
26
- Cancelled = 3,
27
- LeaveRequest = 4,
28
- Timeout = 5,
29
- WebSocket = 6,
30
- ServiceNotFound = 7
31
- }
32
- type NotAllowed = {
33
- reason: ConnectionErrorReason.NotAllowed;
34
- status: number;
35
- context?: unknown;
36
- };
37
- type InternalError = {
38
- reason: ConnectionErrorReason.InternalError;
39
- status: never;
40
- context?: {
41
- status?: number;
42
- statusText?: string;
43
- };
44
- };
45
- type ConnectionTimeout = {
46
- reason: ConnectionErrorReason.Timeout;
47
- status: never;
48
- context: never;
49
- };
50
- type LeaveRequest = {
51
- reason: ConnectionErrorReason.LeaveRequest;
52
- status: never;
53
- context: DisconnectReason;
54
- };
55
- type Cancelled = {
56
- reason: ConnectionErrorReason.Cancelled;
57
- status: never;
58
- context: never;
59
- };
60
- type ServerUnreachable = {
61
- reason: ConnectionErrorReason.ServerUnreachable;
62
- status?: number;
63
- context?: never;
64
- };
65
- type WebSocket = {
66
- reason: ConnectionErrorReason.WebSocket;
67
- status?: number;
68
- context?: string;
69
- };
70
- type ServiceNotFound = {
71
- reason: ConnectionErrorReason.ServiceNotFound;
72
- status: never;
73
- context: string;
74
- };
75
- type ConnectionErrorVariants = NotAllowed | ConnectionTimeout | LeaveRequest | InternalError | Cancelled | ServerUnreachable | WebSocket | ServiceNotFound;
76
- export declare class ConnectionError<Variant extends ConnectionErrorVariants = ConnectionErrorVariants> extends LivekitReasonedError<Variant['reason']> {
77
- status?: Variant['status'];
78
- context: Variant['context'];
79
- reason: Variant['reason'];
80
- reasonName: string;
81
- readonly name = "ConnectionError";
82
- protected constructor(message: string, reason: Variant['reason'], status?: Variant['status'], context?: Variant['context']);
83
- static notAllowed(message: string, status: number, context?: unknown): ConnectionError<NotAllowed>;
84
- static timeout(message: string): ConnectionError<ConnectionTimeout>;
85
- static leaveRequest(message: string, context: DisconnectReason): ConnectionError<LeaveRequest>;
86
- static internal(message: string, context?: {
87
- status?: number;
88
- statusText?: string;
89
- }): ConnectionError<InternalError>;
90
- static cancelled(message: string): ConnectionError<Cancelled>;
91
- static serverUnreachable(message: string, status?: number): ConnectionError<ServerUnreachable>;
92
- static websocket(message: string, status?: number, reason?: string): ConnectionError<WebSocket>;
93
- static serviceNotFound(message: string, serviceName: 'v0-rtc'): ConnectionError<ServiceNotFound>;
94
- }
95
- export declare class DeviceUnsupportedError extends LivekitError {
96
- readonly name = "DeviceUnsupportedError";
97
- constructor(message?: string);
98
- }
99
- export declare class TrackInvalidError extends LivekitError {
100
- readonly name = "TrackInvalidError";
101
- constructor(message?: string);
102
- }
103
- export declare class UnsupportedServer extends LivekitError {
104
- readonly name = "UnsupportedServer";
105
- constructor(message?: string);
106
- }
107
- export declare class UnexpectedConnectionState extends LivekitError {
108
- readonly name = "UnexpectedConnectionState";
109
- constructor(message?: string);
110
- }
111
- export declare class NegotiationError extends LivekitError {
112
- readonly name = "NegotiationError";
113
- constructor(message?: string);
114
- }
115
- export declare class PublishDataError extends LivekitError {
116
- readonly name = "PublishDataError";
117
- constructor(message?: string);
118
- }
119
- export declare class PublishTrackError extends LivekitError {
120
- readonly name = "PublishTrackError";
121
- status: number;
122
- constructor(message: string, status: number);
123
- }
124
- export type RequestErrorReason = Exclude<RequestResponse_Reason, RequestResponse_Reason.OK> | 'TimeoutError';
125
- export declare class SignalRequestError extends LivekitReasonedError<RequestErrorReason> {
126
- readonly name = "SignalRequestError";
127
- reason: RequestErrorReason;
128
- reasonName: string;
129
- constructor(message: string, reason: RequestErrorReason);
130
- }
131
- export declare enum DataStreamErrorReason {
132
- AlreadyOpened = 0,
133
- AbnormalEnd = 1,
134
- DecodeFailed = 2,
135
- LengthExceeded = 3,
136
- Incomplete = 4,
137
- HandlerAlreadyRegistered = 7,
138
- EncryptionTypeMismatch = 8,
139
- HeaderTooLarge = 9,
140
- PayloadTooLarge = 10
141
- }
142
- export declare class DataStreamError extends LivekitReasonedError<DataStreamErrorReason> {
143
- readonly name = "DataStreamError";
144
- reason: DataStreamErrorReason;
145
- reasonName: string;
146
- constructor(message: string, reason: DataStreamErrorReason);
147
- }
148
- export declare class SignalReconnectError extends LivekitError {
149
- readonly name = "SignalReconnectError";
150
- constructor(message?: string);
151
- }
152
- export declare enum MediaDeviceFailure {
153
- PermissionDenied = "PermissionDenied",
154
- NotFound = "NotFound",
155
- DeviceInUse = "DeviceInUse",
156
- Other = "Other"
157
- }
158
- export declare namespace MediaDeviceFailure {
159
- function getFailure(error: any): MediaDeviceFailure | undefined;
160
- }
161
- export {};
162
- //# sourceMappingURL=errors.d.ts.map
1
+ import { DisconnectReason, RequestResponse_Reason } from '@livekit/protocol';
2
+ /** Base error that all LiveKit specific custom errors inherit from. */
3
+ export declare class LivekitError extends Error {
4
+ code: number;
5
+ cause?: unknown;
6
+ constructor(code: number, message?: string, options?: {
7
+ cause?: unknown;
8
+ });
9
+ }
10
+ /**
11
+ * LiveKit specific error type representing an error with an associated set of reasons.
12
+ * Use this to represent an error with multiple different but contextually related variants.
13
+ * */
14
+ export declare abstract class LivekitReasonedError<Reason> extends LivekitError {
15
+ abstract reason: Reason;
16
+ abstract reasonName: string;
17
+ }
18
+ export declare class SimulatedError extends LivekitError {
19
+ readonly name = "simulated";
20
+ constructor(message?: string);
21
+ }
22
+ export declare enum ConnectionErrorReason {
23
+ NotAllowed = 0,
24
+ ServerUnreachable = 1,
25
+ InternalError = 2,
26
+ Cancelled = 3,
27
+ LeaveRequest = 4,
28
+ Timeout = 5,
29
+ WebSocket = 6,
30
+ ServiceNotFound = 7
31
+ }
32
+ type NotAllowed = {
33
+ reason: ConnectionErrorReason.NotAllowed;
34
+ status: number;
35
+ context?: unknown;
36
+ };
37
+ type InternalError = {
38
+ reason: ConnectionErrorReason.InternalError;
39
+ status: never;
40
+ context?: {
41
+ status?: number;
42
+ statusText?: string;
43
+ };
44
+ };
45
+ type ConnectionTimeout = {
46
+ reason: ConnectionErrorReason.Timeout;
47
+ status: never;
48
+ context: never;
49
+ };
50
+ type LeaveRequest = {
51
+ reason: ConnectionErrorReason.LeaveRequest;
52
+ status: never;
53
+ context: DisconnectReason;
54
+ };
55
+ type Cancelled = {
56
+ reason: ConnectionErrorReason.Cancelled;
57
+ status: never;
58
+ context: never;
59
+ };
60
+ type ServerUnreachable = {
61
+ reason: ConnectionErrorReason.ServerUnreachable;
62
+ status?: number;
63
+ context?: never;
64
+ };
65
+ type WebSocket = {
66
+ reason: ConnectionErrorReason.WebSocket;
67
+ status?: number;
68
+ context?: string;
69
+ };
70
+ type ServiceNotFound = {
71
+ reason: ConnectionErrorReason.ServiceNotFound;
72
+ status: never;
73
+ context: string;
74
+ };
75
+ type ConnectionErrorVariants = NotAllowed | ConnectionTimeout | LeaveRequest | InternalError | Cancelled | ServerUnreachable | WebSocket | ServiceNotFound;
76
+ export declare class ConnectionError<Variant extends ConnectionErrorVariants = ConnectionErrorVariants> extends LivekitReasonedError<Variant['reason']> {
77
+ status?: Variant['status'];
78
+ context: Variant['context'];
79
+ reason: Variant['reason'];
80
+ reasonName: string;
81
+ readonly name = "ConnectionError";
82
+ protected constructor(message: string, reason: Variant['reason'], status?: Variant['status'], context?: Variant['context']);
83
+ static notAllowed(message: string, status: number, context?: unknown): ConnectionError<NotAllowed>;
84
+ static timeout(message: string): ConnectionError<ConnectionTimeout>;
85
+ static leaveRequest(message: string, context: DisconnectReason): ConnectionError<LeaveRequest>;
86
+ static internal(message: string, context?: {
87
+ status?: number;
88
+ statusText?: string;
89
+ }): ConnectionError<InternalError>;
90
+ static cancelled(message: string): ConnectionError<Cancelled>;
91
+ static serverUnreachable(message: string, status?: number): ConnectionError<ServerUnreachable>;
92
+ static websocket(message: string, status?: number, reason?: string): ConnectionError<WebSocket>;
93
+ static serviceNotFound(message: string, serviceName: 'v0-rtc'): ConnectionError<ServiceNotFound>;
94
+ }
95
+ /**
96
+ * Whether a failed connection attempt may be retried against a different LiveKit Cloud region.
97
+ *
98
+ * LiveKit Cloud signals project-level region pinning by returning 403 on the RTC paths when the
99
+ * project is not allowed in the region the client geo-routed to. `/settings/regions` is
100
+ * deliberately left reachable so the client can discover its allowed regions and connect there, so
101
+ * a 403 must not be treated as terminal.
102
+ *
103
+ * A 401 stays terminal: no other region will accept a token this one rejected. So does the 404
104
+ * "requested room does not exist" case, which is also reported as `NotAllowed`.
105
+ *
106
+ * We key on the status rather than the server's error message because that message is an
107
+ * unversioned human-readable string; matching it would let a copy edit break already-shipped
108
+ * clients. If a 403 really was a permissions failure rather than region pinning, every region
109
+ * attempt fails the same way and the original error still surfaces — at the cost of one extra
110
+ * region lookup.
111
+ */
112
+ export declare function canFailOverToAnotherRegion(error: ConnectionError): boolean;
113
+ export declare class DeviceUnsupportedError extends LivekitError {
114
+ readonly name = "DeviceUnsupportedError";
115
+ constructor(message?: string);
116
+ }
117
+ export declare class TrackInvalidError extends LivekitError {
118
+ readonly name = "TrackInvalidError";
119
+ constructor(message?: string);
120
+ }
121
+ export declare class UnsupportedServer extends LivekitError {
122
+ readonly name = "UnsupportedServer";
123
+ constructor(message?: string);
124
+ }
125
+ export declare class UnexpectedConnectionState extends LivekitError {
126
+ readonly name = "UnexpectedConnectionState";
127
+ constructor(message?: string);
128
+ }
129
+ export declare class NegotiationError extends LivekitError {
130
+ readonly name = "NegotiationError";
131
+ constructor(message?: string);
132
+ }
133
+ export declare class PublishDataError extends LivekitError {
134
+ readonly name = "PublishDataError";
135
+ constructor(message?: string);
136
+ }
137
+ export declare class PublishTrackError extends LivekitError {
138
+ readonly name = "PublishTrackError";
139
+ status: number;
140
+ constructor(message: string, status: number);
141
+ }
142
+ export type RequestErrorReason = Exclude<RequestResponse_Reason, RequestResponse_Reason.OK> | 'TimeoutError';
143
+ export declare class SignalRequestError extends LivekitReasonedError<RequestErrorReason> {
144
+ readonly name = "SignalRequestError";
145
+ reason: RequestErrorReason;
146
+ reasonName: string;
147
+ constructor(message: string, reason: RequestErrorReason);
148
+ }
149
+ export declare enum DataStreamErrorReason {
150
+ AlreadyOpened = 0,
151
+ AbnormalEnd = 1,
152
+ DecodeFailed = 2,
153
+ LengthExceeded = 3,
154
+ Incomplete = 4,
155
+ HandlerAlreadyRegistered = 7,
156
+ EncryptionTypeMismatch = 8,
157
+ HeaderTooLarge = 9,
158
+ PayloadTooLarge = 10
159
+ }
160
+ export declare class DataStreamError extends LivekitReasonedError<DataStreamErrorReason> {
161
+ readonly name = "DataStreamError";
162
+ reason: DataStreamErrorReason;
163
+ reasonName: string;
164
+ constructor(message: string, reason: DataStreamErrorReason);
165
+ }
166
+ export declare class SignalReconnectError extends LivekitError {
167
+ readonly name = "SignalReconnectError";
168
+ constructor(message?: string);
169
+ }
170
+ export declare enum MediaDeviceFailure {
171
+ PermissionDenied = "PermissionDenied",
172
+ NotFound = "NotFound",
173
+ DeviceInUse = "DeviceInUse",
174
+ Other = "Other"
175
+ }
176
+ export declare namespace MediaDeviceFailure {
177
+ function getFailure(error: any): MediaDeviceFailure | undefined;
178
+ }
179
+ export {};
180
+ //# sourceMappingURL=errors.d.ts.map