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,66 +1,66 @@
1
- import * as log from 'loglevel';
2
- export declare enum LogLevel {
3
- trace = 0,
4
- debug = 1,
5
- info = 2,
6
- warn = 3,
7
- error = 4,
8
- silent = 5
9
- }
10
- export declare enum LoggerNames {
11
- Default = "livekit",
12
- Room = "livekit-room",
13
- TokenSource = "livekit-token-source",
14
- Participant = "livekit-participant",
15
- Track = "livekit-track",
16
- Publication = "livekit-track-publication",
17
- Engine = "livekit-engine",
18
- Signal = "livekit-signal",
19
- PCManager = "livekit-pc-manager",
20
- PCTransport = "livekit-pc-transport",
21
- E2EE = "lk-e2ee",
22
- DataTracks = "livekit-data-tracks",
23
- Region = "livekit-region",
24
- ICE = "livekit-ice",
25
- Stats = "livekit-stats"
26
- }
27
- type LogLevelString = keyof typeof LogLevel;
28
- export type StructuredLogger = log.Logger & {
29
- trace: (msg: string, context?: object) => void;
30
- debug: (msg: string, context?: object) => void;
31
- info: (msg: string, context?: object) => void;
32
- warn: (msg: string, context?: object) => void;
33
- error: (msg: string, context?: object) => void;
34
- setDefaultLevel: (level: log.LogLevelDesc) => void;
35
- setLevel: (level: log.LogLevelDesc) => void;
36
- getLevel: () => number;
37
- };
38
- export type ContextProvider = () => object | undefined;
39
- declare const _default: StructuredLogger;
40
- export default _default;
41
- /**
42
- * @internal
43
- *
44
- * Get a named logger. When `ctxFn` is supplied, every log call
45
- * automatically:
46
- * 1. prepends a `[key=value ...]` prefix derived from `ctxFn()` to the
47
- * message string, so identifiers are visible in browser devtools
48
- * without expanding the structured context object, and
49
- * 2. merges `ctxFn()` into the structured context passed to any
50
- * `setLogExtension` consumer, so ingestion pipelines continue to
51
- * receive the full metadata unchanged.
52
- */
53
- export declare function getLogger(name: string, ctxFn?: ContextProvider): StructuredLogger;
54
- export declare function setLogLevel(level: LogLevel | LogLevelString, loggerName?: LoggerNames): void;
55
- export type LogExtension = (level: LogLevel, msg: string, context?: object) => void;
56
- /**
57
- * use this to hook into the logging function to allow sending internal livekit logs to third party services
58
- * if set, the browser logs will lose their stacktrace information (see https://github.com/pimterry/loglevel#writing-plugins)
59
- */
60
- export declare function setLogExtension(extension: LogExtension, logger?: StructuredLogger): void;
61
- export declare const workerLogger: StructuredLogger;
62
- /** @internal Subscribe to workerLogger level changes (so E2EE workers can be kept in sync). */
63
- export declare function onWorkerLogLevelChanged(cb: (level: LogLevel) => void): () => void;
64
- /** @internal Test-only accessor: current number of workerLogger level listeners. */
65
- export declare function getWorkerLogLevelListenerCount(): number;
66
- //# sourceMappingURL=logger.d.ts.map
1
+ import * as log from 'loglevel';
2
+ export declare enum LogLevel {
3
+ trace = 0,
4
+ debug = 1,
5
+ info = 2,
6
+ warn = 3,
7
+ error = 4,
8
+ silent = 5
9
+ }
10
+ export declare enum LoggerNames {
11
+ Default = "livekit",
12
+ Room = "livekit-room",
13
+ TokenSource = "livekit-token-source",
14
+ Participant = "livekit-participant",
15
+ Track = "livekit-track",
16
+ Publication = "livekit-track-publication",
17
+ Engine = "livekit-engine",
18
+ Signal = "livekit-signal",
19
+ PCManager = "livekit-pc-manager",
20
+ PCTransport = "livekit-pc-transport",
21
+ E2EE = "lk-e2ee",
22
+ DataTracks = "livekit-data-tracks",
23
+ Region = "livekit-region",
24
+ ICE = "livekit-ice",
25
+ Stats = "livekit-stats"
26
+ }
27
+ type LogLevelString = keyof typeof LogLevel;
28
+ export type StructuredLogger = log.Logger & {
29
+ trace: (msg: string, context?: object) => void;
30
+ debug: (msg: string, context?: object) => void;
31
+ info: (msg: string, context?: object) => void;
32
+ warn: (msg: string, context?: object) => void;
33
+ error: (msg: string, context?: object) => void;
34
+ setDefaultLevel: (level: log.LogLevelDesc) => void;
35
+ setLevel: (level: log.LogLevelDesc) => void;
36
+ getLevel: () => number;
37
+ };
38
+ export type ContextProvider = () => object | undefined;
39
+ declare const _default: StructuredLogger;
40
+ export default _default;
41
+ /**
42
+ * @internal
43
+ *
44
+ * Get a named logger. When `ctxFn` is supplied, every log call
45
+ * automatically:
46
+ * 1. prepends a `[key=value ...]` prefix derived from `ctxFn()` to the
47
+ * message string, so identifiers are visible in browser devtools
48
+ * without expanding the structured context object, and
49
+ * 2. merges `ctxFn()` into the structured context passed to any
50
+ * `setLogExtension` consumer, so ingestion pipelines continue to
51
+ * receive the full metadata unchanged.
52
+ */
53
+ export declare function getLogger(name: string, ctxFn?: ContextProvider): StructuredLogger;
54
+ export declare function setLogLevel(level: LogLevel | LogLevelString, loggerName?: LoggerNames): void;
55
+ export type LogExtension = (level: LogLevel, msg: string, context?: object) => void;
56
+ /**
57
+ * use this to hook into the logging function to allow sending internal livekit logs to third party services
58
+ * if set, the browser logs will lose their stacktrace information (see https://github.com/pimterry/loglevel#writing-plugins)
59
+ */
60
+ export declare function setLogExtension(extension: LogExtension, logger?: StructuredLogger): void;
61
+ export declare const workerLogger: StructuredLogger;
62
+ /** @internal Subscribe to workerLogger level changes (so E2EE workers can be kept in sync). */
63
+ export declare function onWorkerLogLevelChanged(cb: (level: LogLevel) => void): () => void;
64
+ /** @internal Test-only accessor: current number of workerLogger level listeners. */
65
+ export declare function getWorkerLogLevelListenerCount(): number;
66
+ //# sourceMappingURL=logger.d.ts.map
@@ -1,149 +1,163 @@
1
- import type { E2EEOptions } from './e2ee/types';
2
- import type { FrameMetadataOptions } from './frameMetadata/FrameMetadataManager';
3
- import type { ReconnectPolicy } from './room/ReconnectPolicy';
4
- import type { AudioCaptureOptions, AudioOutputOptions, TrackPublishDefaults, VideoCaptureOptions } from './room/track/options';
5
- import type { AdaptiveStreamSettings } from './room/track/types';
6
- export interface WebAudioSettings {
7
- audioContext: AudioContext;
8
- }
9
- /**
10
- * @internal
11
- */
12
- export interface InternalRoomOptions {
13
- /**
14
- * AdaptiveStream lets LiveKit automatically manage quality of subscribed
15
- * video tracks to optimize for bandwidth and CPU.
16
- * When attached video elements are visible, it'll choose an appropriate
17
- * resolution based on the size of largest video element it's attached to.
18
- *
19
- * When none of the video elements are visible, it'll temporarily pause
20
- * the data flow until they are visible again.
21
- */
22
- adaptiveStream: AdaptiveStreamSettings | boolean;
23
- /**
24
- * enable Dynacast, off by default. With Dynacast dynamically pauses
25
- * video layers that are not being consumed by any subscribers, significantly
26
- * reducing publishing CPU and bandwidth usage.
27
- *
28
- * Dynacast will be enabled if SVC codecs (VP9/AV1) are used. Multi-codec simulcast
29
- * requires dynacast
30
- */
31
- dynacast: boolean;
32
- /**
33
- * default options to use when capturing user's audio
34
- */
35
- audioCaptureDefaults?: AudioCaptureOptions;
36
- /**
37
- * default options to use when capturing user's video
38
- */
39
- videoCaptureDefaults?: VideoCaptureOptions;
40
- /**
41
- * default options to use when publishing tracks
42
- */
43
- publishDefaults?: TrackPublishDefaults;
44
- /**
45
- * audio output for the room
46
- */
47
- audioOutput?: AudioOutputOptions;
48
- /**
49
- * should local tracks be stopped when they are unpublished. defaults to true
50
- * set this to false if you would prefer to clean up unpublished local tracks manually.
51
- */
52
- stopLocalTrackOnUnpublish: boolean;
53
- /**
54
- * policy to use when attempting to reconnect
55
- */
56
- reconnectPolicy: ReconnectPolicy;
57
- /**
58
- * specifies whether the sdk should automatically disconnect the room
59
- * on 'pagehide' and 'beforeunload' events
60
- */
61
- disconnectOnPageLeave: boolean;
62
- /**
63
- * @internal
64
- * experimental flag, introduce a delay before sending signaling messages
65
- */
66
- expSignalLatency?: number;
67
- /**
68
- * mix all audio tracks in web audio, helps to tackle some audio auto playback issues
69
- * allows for passing in your own AudioContext instance, too
70
- */
71
- webAudioMix: boolean | WebAudioSettings;
72
- /**
73
- * @deprecated Use `encryption` field instead.
74
- */
75
- e2ee?: E2EEOptions;
76
- /**
77
- * @experimental
78
- * Options for enabling end-to-end encryption.
79
- */
80
- encryption?: E2EEOptions;
81
- loggerName?: string;
82
- /**
83
- * @experimental
84
- * Options for enabling frame metadata on video tracks.
85
- * Frame metadata carries frame-level information such as user timestamps and frame IDs.
86
- */
87
- frameMetadata?: FrameMetadataOptions;
88
- /**
89
- * @deprecated Use {@link InternalRoomOptions.frameMetadata} instead.
90
- */
91
- packetTrailer?: FrameMetadataOptions;
92
- /**
93
- * will attempt to connect via single peer connection mode.
94
- * falls back to dual peer connection mode if not available.
95
- *
96
- * @default true
97
- */
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;
121
- }
122
- /**
123
- * Options for when creating a new room
124
- */
125
- export interface RoomOptions extends Partial<InternalRoomOptions> {
126
- }
127
- /**
128
- * @internal
129
- */
130
- export interface InternalRoomConnectOptions {
131
- /** autosubscribe to room tracks after joining, defaults to true */
132
- autoSubscribe: boolean;
133
- /** amount of time for PeerConnection to be established, defaults to 15s */
134
- peerConnectionTimeout: number;
135
- /**
136
- * use to override any RTCConfiguration options.
137
- */
138
- rtcConfig?: RTCConfiguration;
139
- /** specifies how often an initial join connection is allowed to retry (only applicable if server is not reachable) */
140
- maxRetries: number;
141
- /** amount of time for Websocket connection to be established, defaults to 15s */
142
- websocketTimeout: number;
143
- }
144
- /**
145
- * Options for Room.connect()
146
- */
147
- export interface RoomConnectOptions extends Partial<InternalRoomConnectOptions> {
148
- }
149
- //# sourceMappingURL=options.d.ts.map
1
+ import type { E2EEOptions } from './e2ee/types';
2
+ import type { FrameMetadataOptions } from './frameMetadata/FrameMetadataManager';
3
+ import type { ReconnectPolicy } from './room/ReconnectPolicy';
4
+ import type { AudioCaptureOptions, AudioOutputOptions, TrackPublishDefaults, VideoCaptureOptions } from './room/track/options';
5
+ import type { AdaptiveStreamSettings } from './room/track/types';
6
+ export interface WebAudioSettings {
7
+ audioContext: AudioContext;
8
+ }
9
+ /**
10
+ * @internal
11
+ */
12
+ export interface InternalRoomOptions {
13
+ /**
14
+ * AdaptiveStream lets LiveKit automatically manage quality of subscribed
15
+ * video tracks to optimize for bandwidth and CPU.
16
+ * When attached video elements are visible, it'll choose an appropriate
17
+ * resolution based on the size of largest video element it's attached to.
18
+ *
19
+ * When none of the video elements are visible, it'll temporarily pause
20
+ * the data flow until they are visible again.
21
+ */
22
+ adaptiveStream: AdaptiveStreamSettings | boolean;
23
+ /**
24
+ * enable Dynacast, off by default. With Dynacast dynamically pauses
25
+ * video layers that are not being consumed by any subscribers, significantly
26
+ * reducing publishing CPU and bandwidth usage.
27
+ *
28
+ * Dynacast will be enabled if SVC codecs (VP9/AV1) are used. Multi-codec simulcast
29
+ * requires dynacast
30
+ */
31
+ dynacast: boolean;
32
+ /**
33
+ * default options to use when capturing user's audio
34
+ */
35
+ audioCaptureDefaults?: AudioCaptureOptions;
36
+ /**
37
+ * default options to use when capturing user's video
38
+ */
39
+ videoCaptureDefaults?: VideoCaptureOptions;
40
+ /**
41
+ * default options to use when publishing tracks
42
+ */
43
+ publishDefaults?: TrackPublishDefaults;
44
+ /**
45
+ * audio output for the room
46
+ */
47
+ audioOutput?: AudioOutputOptions;
48
+ /**
49
+ * should local tracks be stopped when they are unpublished. defaults to true
50
+ * set this to false if you would prefer to clean up unpublished local tracks manually.
51
+ */
52
+ stopLocalTrackOnUnpublish: boolean;
53
+ /**
54
+ * policy to use when attempting to reconnect
55
+ */
56
+ reconnectPolicy: ReconnectPolicy;
57
+ /**
58
+ * specifies whether the sdk should automatically disconnect the room
59
+ * on 'pagehide' and 'beforeunload' events
60
+ */
61
+ disconnectOnPageLeave: boolean;
62
+ /**
63
+ * @internal
64
+ * experimental flag, introduce a delay before sending signaling messages
65
+ */
66
+ expSignalLatency?: number;
67
+ /**
68
+ * mix all audio tracks in web audio, helps to tackle some audio auto playback issues
69
+ * allows for passing in your own AudioContext instance, too
70
+ */
71
+ webAudioMix: boolean | WebAudioSettings;
72
+ /**
73
+ * @deprecated Use `encryption` field instead.
74
+ */
75
+ e2ee?: E2EEOptions;
76
+ /**
77
+ * @experimental
78
+ * Options for enabling end-to-end encryption.
79
+ */
80
+ encryption?: E2EEOptions;
81
+ loggerName?: string;
82
+ /**
83
+ * @experimental
84
+ * Options for enabling frame metadata on video tracks.
85
+ * Frame metadata carries frame-level information such as user timestamps and frame IDs.
86
+ */
87
+ frameMetadata?: FrameMetadataOptions;
88
+ /**
89
+ * @deprecated Use {@link InternalRoomOptions.frameMetadata} instead.
90
+ */
91
+ packetTrailer?: FrameMetadataOptions;
92
+ /**
93
+ * will attempt to connect via single peer connection mode.
94
+ * falls back to dual peer connection mode if not available.
95
+ *
96
+ * @default true
97
+ */
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;
121
+ }
122
+ /**
123
+ * Options for when creating a new room
124
+ */
125
+ export interface RoomOptions extends Partial<InternalRoomOptions> {
126
+ }
127
+ /**
128
+ * @internal
129
+ */
130
+ export interface InternalRoomConnectOptions {
131
+ /** autosubscribe to room tracks after joining, defaults to true */
132
+ autoSubscribe: boolean;
133
+ /** amount of time for PeerConnection to be established, defaults to 15s */
134
+ peerConnectionTimeout: number;
135
+ /**
136
+ * use to override any RTCConfiguration options.
137
+ */
138
+ rtcConfig?: RTCConfiguration;
139
+ /**
140
+ * when the server runs ICE lite, asks it to use a full ICE agent for this participant.
141
+ * this is a server-side setting that the server may ignore, defaults to false
142
+ */
143
+ disableIceLite: boolean;
144
+ /**
145
+ * whether the SFU may pause subscribed video tracks when this participant's downstream
146
+ * connection is congested, so that other tracks can continue to stream smoothly.
147
+ * paused tracks resume automatically when conditions allow, and `RoomEvent.TrackStreamStateChanged`
148
+ * fires on each transition.
149
+ * when left undefined, the server's default applies (the project setting on LiveKit Cloud,
150
+ * or `rtc.congestion_control.allow_pause` when self-hosting)
151
+ */
152
+ subscriberAllowPause?: boolean;
153
+ /** specifies how often an initial join connection is allowed to retry (only applicable if server is not reachable) */
154
+ maxRetries: number;
155
+ /** amount of time for Websocket connection to be established, defaults to 15s */
156
+ websocketTimeout: number;
157
+ }
158
+ /**
159
+ * Options for Room.connect()
160
+ */
161
+ export interface RoomConnectOptions extends Partial<InternalRoomConnectOptions> {
162
+ }
163
+ //# sourceMappingURL=options.d.ts.map
@@ -1,27 +1,27 @@
1
- /**
2
- * BackOffStrategy implements exponential backoff for connection failures.
3
- *
4
- * When severe connection failures occur (e.g., network issues, server unavailability),
5
- * this strategy introduces increasing delays between reconnection attempts to avoid
6
- * overwhelming the server and to give transient issues time to resolve.
7
- *
8
- * This strategy is only applied to LiveKit Cloud projects. It identifies
9
- * projects by extracting the project name from the connection URL and tracks failures
10
- * per project. Self-hosted deployments (URLs without a project identifier) are not
11
- * subject to backoff delays.
12
- *
13
- * The class is implemented as a singleton to maintain consistent backoff state across
14
- * the entire application lifecycle instead of room instance lifecycle.
15
- */
16
- export declare class BackOffStrategy {
17
- private static _instance;
18
- private failedConnectionAttempts;
19
- private backOffPromises;
20
- private constructor();
21
- static getInstance(): BackOffStrategy;
22
- addFailedConnectionAttempt(urlString: string): void;
23
- getBackOffPromise(urlString: string): Promise<void>;
24
- resetFailedConnectionAttempts(urlString: string): void;
25
- resetAll(): void;
26
- }
27
- //# sourceMappingURL=BackOffStrategy.d.ts.map
1
+ /**
2
+ * BackOffStrategy implements exponential backoff for connection failures.
3
+ *
4
+ * When severe connection failures occur (e.g., network issues, server unavailability),
5
+ * this strategy introduces increasing delays between reconnection attempts to avoid
6
+ * overwhelming the server and to give transient issues time to resolve.
7
+ *
8
+ * This strategy is only applied to LiveKit Cloud projects. It identifies
9
+ * projects by extracting the project name from the connection URL and tracks failures
10
+ * per project. Self-hosted deployments (URLs without a project identifier) are not
11
+ * subject to backoff delays.
12
+ *
13
+ * The class is implemented as a singleton to maintain consistent backoff state across
14
+ * the entire application lifecycle instead of room instance lifecycle.
15
+ */
16
+ export declare class BackOffStrategy {
17
+ private static _instance;
18
+ private failedConnectionAttempts;
19
+ private backOffPromises;
20
+ private constructor();
21
+ static getInstance(): BackOffStrategy;
22
+ addFailedConnectionAttempt(urlString: string): void;
23
+ getBackOffPromise(urlString: string): Promise<void>;
24
+ resetFailedConnectionAttempts(urlString: string): void;
25
+ resetAll(): void;
26
+ }
27
+ //# sourceMappingURL=BackOffStrategy.d.ts.map
@@ -1,8 +1,8 @@
1
- import type { ReconnectContext, ReconnectPolicy } from './ReconnectPolicy';
2
- declare class DefaultReconnectPolicy implements ReconnectPolicy {
3
- private readonly _retryDelays;
4
- constructor(retryDelays?: number[]);
5
- nextRetryDelayInMs(context: ReconnectContext): number | null;
6
- }
7
- export default DefaultReconnectPolicy;
8
- //# sourceMappingURL=DefaultReconnectPolicy.d.ts.map
1
+ import type { ReconnectContext, ReconnectPolicy } from './ReconnectPolicy';
2
+ declare class DefaultReconnectPolicy implements ReconnectPolicy {
3
+ private readonly _retryDelays;
4
+ constructor(retryDelays?: number[]);
5
+ nextRetryDelayInMs(context: ReconnectContext): number | null;
6
+ }
7
+ export default DefaultReconnectPolicy;
8
+ //# sourceMappingURL=DefaultReconnectPolicy.d.ts.map
@@ -1,12 +1,12 @@
1
- export default class DeviceManager {
2
- private static instance?;
3
- static mediaDeviceKinds: MediaDeviceKind[];
4
- static getInstance(): DeviceManager;
5
- static userMediaPromiseMap: Map<MediaDeviceKind, Promise<MediaStream>>;
6
- private _previousDevices;
7
- get previousDevices(): MediaDeviceInfo[];
8
- getDevices(kind?: MediaDeviceKind, requestPermissions?: boolean): Promise<MediaDeviceInfo[]>;
9
- normalizeDeviceId(kind: MediaDeviceKind, deviceId?: string, groupId?: string): Promise<string | undefined>;
10
- private hasDeviceInUse;
11
- }
12
- //# sourceMappingURL=DeviceManager.d.ts.map
1
+ export default class DeviceManager {
2
+ private static instance?;
3
+ static mediaDeviceKinds: MediaDeviceKind[];
4
+ static getInstance(): DeviceManager;
5
+ static userMediaPromiseMap: Map<MediaDeviceKind, Promise<MediaStream>>;
6
+ private _previousDevices;
7
+ get previousDevices(): MediaDeviceInfo[];
8
+ getDevices(kind?: MediaDeviceKind, requestPermissions?: boolean): Promise<MediaDeviceInfo[]>;
9
+ normalizeDeviceId(kind: MediaDeviceKind, deviceId?: string, groupId?: string): Promise<string | undefined>;
10
+ private hasDeviceInUse;
11
+ }
12
+ //# sourceMappingURL=DeviceManager.d.ts.map