livekit-client 2.17.2 → 2.18.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 (188) hide show
  1. package/README.md +7 -5
  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 +20 -14
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +295 -193
  7. package/dist/livekit-client.esm.mjs.map +1 -1
  8. package/dist/livekit-client.umd.js +1 -1
  9. package/dist/livekit-client.umd.js.map +1 -1
  10. package/dist/src/e2ee/E2eeManager.d.ts +2 -0
  11. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  12. package/dist/src/e2ee/KeyProvider.d.ts +2 -0
  13. package/dist/src/e2ee/KeyProvider.d.ts.map +1 -1
  14. package/dist/src/e2ee/events.d.ts +1 -1
  15. package/dist/src/e2ee/events.d.ts.map +1 -1
  16. package/dist/src/e2ee/types.d.ts +1 -0
  17. package/dist/src/e2ee/types.d.ts.map +1 -1
  18. package/dist/src/e2ee/worker/ParticipantKeyHandler.d.ts +2 -2
  19. package/dist/src/e2ee/worker/ParticipantKeyHandler.d.ts.map +1 -1
  20. package/dist/src/index.d.ts +2 -2
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/room/PCTransport.d.ts +1 -4
  23. package/dist/src/room/PCTransport.d.ts.map +1 -1
  24. package/dist/src/room/RTCEngine.d.ts +3 -1
  25. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  26. package/dist/src/room/Room.d.ts.map +1 -1
  27. package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
  28. package/dist/src/room/data-stream/incoming/StreamReader.d.ts +2 -4
  29. package/dist/src/room/data-stream/incoming/StreamReader.d.ts.map +1 -1
  30. package/dist/src/room/data-track/LocalDataTrack.d.ts +25 -0
  31. package/dist/src/room/data-track/LocalDataTrack.d.ts.map +1 -0
  32. package/dist/src/room/data-track/RemoteDataTrack.d.ts +46 -0
  33. package/dist/src/room/data-track/RemoteDataTrack.d.ts.map +1 -0
  34. package/dist/src/room/data-track/depacketizer.d.ts +4 -4
  35. package/dist/src/room/data-track/depacketizer.d.ts.map +1 -1
  36. package/dist/src/room/data-track/e2ee.d.ts +12 -0
  37. package/dist/src/room/data-track/e2ee.d.ts.map +1 -0
  38. package/dist/src/room/data-track/handle.d.ts +7 -8
  39. package/dist/src/room/data-track/handle.d.ts.map +1 -1
  40. package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts +96 -0
  41. package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts.map +1 -0
  42. package/dist/src/room/data-track/incoming/errors.d.ts +24 -0
  43. package/dist/src/room/data-track/incoming/errors.d.ts.map +1 -0
  44. package/dist/src/room/data-track/incoming/pipeline.d.ts +37 -0
  45. package/dist/src/room/data-track/incoming/pipeline.d.ts.map +1 -0
  46. package/dist/src/room/data-track/incoming/types.d.ts +20 -0
  47. package/dist/src/room/data-track/incoming/types.d.ts.map +1 -0
  48. package/dist/src/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +77 -0
  49. package/dist/src/room/data-track/outgoing/OutgoingDataTrackManager.d.ts.map +1 -0
  50. package/dist/src/room/data-track/outgoing/errors.d.ts +64 -0
  51. package/dist/src/room/data-track/outgoing/errors.d.ts.map +1 -0
  52. package/dist/src/room/data-track/outgoing/pipeline.d.ts +22 -0
  53. package/dist/src/room/data-track/outgoing/pipeline.d.ts.map +1 -0
  54. package/dist/src/room/data-track/outgoing/types.d.ts +30 -0
  55. package/dist/src/room/data-track/outgoing/types.d.ts.map +1 -0
  56. package/dist/src/room/data-track/packet/errors.d.ts +2 -4
  57. package/dist/src/room/data-track/packet/errors.d.ts.map +1 -1
  58. package/dist/src/room/data-track/packet/extensions.d.ts +4 -4
  59. package/dist/src/room/data-track/packet/extensions.d.ts.map +1 -1
  60. package/dist/src/room/data-track/packet/index.d.ts +5 -5
  61. package/dist/src/room/data-track/packet/index.d.ts.map +1 -1
  62. package/dist/src/room/data-track/packet/serializable.d.ts +4 -4
  63. package/dist/src/room/data-track/packet/serializable.d.ts.map +1 -1
  64. package/dist/src/room/data-track/packetizer.d.ts +4 -4
  65. package/dist/src/room/data-track/packetizer.d.ts.map +1 -1
  66. package/dist/src/room/data-track/track-interfaces.d.ts +23 -0
  67. package/dist/src/room/data-track/track-interfaces.d.ts.map +1 -0
  68. package/dist/src/room/data-track/types.d.ts +10 -0
  69. package/dist/src/room/data-track/types.d.ts.map +1 -0
  70. package/dist/src/room/debounce.d.ts +11 -0
  71. package/dist/src/room/debounce.d.ts.map +1 -0
  72. package/dist/src/room/events.d.ts +1 -1
  73. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  74. package/dist/src/room/participant/RemoteParticipant.d.ts +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/track/LocalAudioTrack.d.ts +1 -1
  80. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  81. package/dist/src/room/track/LocalTrack.d.ts +1 -1
  82. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  83. package/dist/src/room/types.d.ts +0 -2
  84. package/dist/src/room/types.d.ts.map +1 -1
  85. package/dist/src/room/utils.d.ts +6 -1
  86. package/dist/src/room/utils.d.ts.map +1 -1
  87. package/dist/src/utils/abort-signal-polyfill.d.ts +13 -0
  88. package/dist/src/utils/abort-signal-polyfill.d.ts.map +1 -0
  89. package/dist/src/utils/subscribeToEvents.d.ts +15 -0
  90. package/dist/src/utils/subscribeToEvents.d.ts.map +1 -0
  91. package/dist/ts4.2/e2ee/E2eeManager.d.ts +2 -0
  92. package/dist/ts4.2/e2ee/KeyProvider.d.ts +2 -0
  93. package/dist/ts4.2/e2ee/events.d.ts +1 -1
  94. package/dist/ts4.2/e2ee/types.d.ts +1 -0
  95. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +2 -2
  96. package/dist/ts4.2/index.d.ts +2 -2
  97. package/dist/ts4.2/room/PCTransport.d.ts +1 -6
  98. package/dist/ts4.2/room/RTCEngine.d.ts +3 -1
  99. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +2 -4
  100. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +25 -0
  101. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +46 -0
  102. package/dist/ts4.2/room/data-track/depacketizer.d.ts +4 -4
  103. package/dist/ts4.2/room/data-track/e2ee.d.ts +12 -0
  104. package/dist/ts4.2/room/data-track/handle.d.ts +7 -8
  105. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +99 -0
  106. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -0
  107. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +37 -0
  108. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -0
  109. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +77 -0
  110. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +64 -0
  111. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +22 -0
  112. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +30 -0
  113. package/dist/ts4.2/room/data-track/packet/errors.d.ts +2 -4
  114. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +4 -4
  115. package/dist/ts4.2/room/data-track/packet/index.d.ts +5 -6
  116. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +4 -4
  117. package/dist/ts4.2/room/data-track/packetizer.d.ts +4 -4
  118. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -0
  119. package/dist/ts4.2/room/data-track/types.d.ts +10 -0
  120. package/dist/ts4.2/room/debounce.d.ts +11 -0
  121. package/dist/ts4.2/room/events.d.ts +1 -1
  122. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +1 -1
  123. package/dist/ts4.2/room/token-source/TokenSource.d.ts +1 -1
  124. package/dist/ts4.2/room/token-source/types.d.ts +1 -0
  125. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +1 -1
  126. package/dist/ts4.2/room/track/LocalTrack.d.ts +1 -1
  127. package/dist/ts4.2/room/types.d.ts +0 -2
  128. package/dist/ts4.2/room/utils.d.ts +6 -1
  129. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -0
  130. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -0
  131. package/package.json +7 -6
  132. package/src/e2ee/E2eeManager.ts +9 -5
  133. package/src/e2ee/KeyProvider.ts +10 -1
  134. package/src/e2ee/events.ts +1 -1
  135. package/src/e2ee/types.ts +1 -0
  136. package/src/e2ee/worker/ParticipantKeyHandler.ts +7 -4
  137. package/src/e2ee/worker/e2ee.worker.ts +20 -10
  138. package/src/index.ts +2 -2
  139. package/src/room/PCTransport.ts +1 -1
  140. package/src/room/RTCEngine.ts +8 -1
  141. package/src/room/Room.ts +13 -7
  142. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +5 -25
  143. package/src/room/data-stream/incoming/StreamReader.ts +56 -73
  144. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +2 -2
  145. package/src/room/data-track/LocalDataTrack.ts +53 -0
  146. package/src/room/data-track/RemoteDataTrack.ts +82 -0
  147. package/src/room/data-track/depacketizer.test.ts +1 -1
  148. package/src/room/data-track/depacketizer.ts +5 -17
  149. package/src/room/data-track/e2ee.ts +15 -0
  150. package/src/room/data-track/frame.ts +1 -1
  151. package/src/room/data-track/handle.test.ts +1 -1
  152. package/src/room/data-track/handle.ts +10 -21
  153. package/src/room/data-track/incoming/IncomingDataTrackManager.test.ts +570 -0
  154. package/src/room/data-track/incoming/IncomingDataTrackManager.ts +537 -0
  155. package/src/room/data-track/incoming/errors.ts +57 -0
  156. package/src/room/data-track/incoming/pipeline.ts +116 -0
  157. package/src/room/data-track/incoming/types.ts +22 -0
  158. package/src/room/data-track/outgoing/OutgoingDataTrackManager.test.ts +412 -0
  159. package/src/room/data-track/outgoing/OutgoingDataTrackManager.ts +308 -0
  160. package/src/room/data-track/outgoing/errors.ts +157 -0
  161. package/src/room/data-track/outgoing/pipeline.ts +72 -0
  162. package/src/room/data-track/outgoing/types.ts +36 -0
  163. package/src/room/data-track/packet/errors.ts +2 -14
  164. package/src/room/data-track/packet/extensions.ts +4 -4
  165. package/src/room/data-track/packet/index.ts +6 -8
  166. package/src/room/data-track/packet/serializable.ts +4 -4
  167. package/src/room/data-track/packetizer.test.ts +3 -3
  168. package/src/room/data-track/packetizer.ts +9 -8
  169. package/src/room/data-track/track-interfaces.ts +53 -0
  170. package/src/room/data-track/types.ts +11 -0
  171. package/src/room/debounce.ts +115 -0
  172. package/src/room/events.ts +1 -1
  173. package/src/room/participant/LocalParticipant.ts +2 -0
  174. package/src/room/participant/RemoteParticipant.ts +1 -1
  175. package/src/room/token-source/TokenSource.ts +8 -2
  176. package/src/room/token-source/types.ts +4 -0
  177. package/src/room/track/LocalAudioTrack.ts +6 -3
  178. package/src/room/track/LocalTrack.ts +10 -5
  179. package/src/room/track/LocalVideoTrack.ts +1 -1
  180. package/src/room/track/RemoteVideoTrack.ts +1 -1
  181. package/src/room/types.ts +0 -2
  182. package/src/room/utils.ts +7 -2
  183. package/src/utils/abort-signal-polyfill.ts +63 -0
  184. package/src/utils/subscribeToEvents.ts +80 -0
  185. package/dist/src/utils/throws.d.ts +0 -36
  186. package/dist/src/utils/throws.d.ts.map +0 -1
  187. package/dist/ts4.2/utils/throws.d.ts +0 -39
  188. package/src/utils/throws.ts +0 -42
@@ -2186,9 +2186,12 @@ class ParticipantKeyHandler extends eventsExports.EventEmitter {
2186
2186
  return __awaiter(this, arguments, void 0, function (material) {
2187
2187
  var _this = this;
2188
2188
  let keyIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
2189
+ let updateCurrentKeyIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
2189
2190
  return function* () {
2190
- yield _this.setKeyFromMaterial(material, keyIndex);
2191
- _this.resetKeyStatus(keyIndex);
2191
+ yield _this.setKeyFromMaterial(material, keyIndex, null, updateCurrentKeyIndex);
2192
+ if (updateCurrentKeyIndex) {
2193
+ _this.resetKeyStatus(keyIndex);
2194
+ }
2192
2195
  }();
2193
2196
  });
2194
2197
  }
@@ -2202,6 +2205,7 @@ class ParticipantKeyHandler extends eventsExports.EventEmitter {
2202
2205
  return __awaiter(this, arguments, void 0, function (material, keyIndex) {
2203
2206
  var _this2 = this;
2204
2207
  let ratchetedResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2208
+ let updateCurrentKeyIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
2205
2209
  return function* () {
2206
2210
  const keySet = yield deriveKeys(material, _this2.keyProviderOptions.ratchetSalt);
2207
2211
  const newIndex = keyIndex >= 0 ? keyIndex % _this2.cryptoKeyRing.length : _this2.currentKeyIndex;
@@ -2211,7 +2215,7 @@ class ParticipantKeyHandler extends eventsExports.EventEmitter {
2211
2215
  ratchetSalt: _this2.keyProviderOptions.ratchetSalt
2212
2216
  });
2213
2217
  _this2.setKeySet(keySet, newIndex, ratchetedResult);
2214
- if (newIndex >= 0) _this2.currentKeyIndex = newIndex;
2218
+ if (newIndex >= 0 && updateCurrentKeyIndex) _this2.currentKeyIndex = newIndex;
2215
2219
  }();
2216
2220
  });
2217
2221
  }
@@ -2337,10 +2341,10 @@ onmessage = ev => {
2337
2341
  break;
2338
2342
  case 'setKey':
2339
2343
  if (useSharedKey) {
2340
- yield setSharedKey(data.key, data.keyIndex);
2344
+ yield setSharedKey(data.key, data.keyIndex, data.updateCurrentKeyIndex);
2341
2345
  } else if (data.participantIdentity) {
2342
2346
  workerLogger.info("set participant sender key ".concat(data.participantIdentity, " index ").concat(data.keyIndex));
2343
- yield getParticipantKeyHandler(data.participantIdentity).setKey(data.key, data.keyIndex);
2347
+ yield getParticipantKeyHandler(data.participantIdentity).setKey(data.key, data.keyIndex, data.updateCurrentKeyIndex);
2344
2348
  } else {
2345
2349
  workerLogger.error('no participant Id was provided and shared key usage is disabled');
2346
2350
  }
@@ -2468,12 +2472,12 @@ function setEncryptionEnabled(enable, participantIdentity) {
2468
2472
  });
2469
2473
  encryptionEnabledMap.set(participantIdentity, enable);
2470
2474
  }
2471
- function setSharedKey(key, index) {
2475
+ function setSharedKey(key, index, updateCurrentKeyIndex) {
2472
2476
  return __awaiter(this, void 0, void 0, function* () {
2473
2477
  workerLogger.info('set shared key', {
2474
2478
  index
2475
2479
  });
2476
- yield getSharedKeyHandler().setKey(key, index);
2480
+ yield getSharedKeyHandler().setKey(key, index, updateCurrentKeyIndex);
2477
2481
  });
2478
2482
  }
2479
2483
  function setupCryptorErrorEvents(cryptor) {
@@ -2508,23 +2512,25 @@ function handleSifTrailer(trailer) {
2508
2512
  // Operations using RTCRtpScriptTransform.
2509
2513
  // @ts-ignore
2510
2514
  if (self.RTCTransformEvent) {
2511
- workerLogger.debug('setup transform event');
2512
2515
  // @ts-ignore
2513
2516
  self.onrtctransform = event => {
2514
2517
  // @ts-ignore
2515
2518
  const transformer = event.transformer;
2516
- workerLogger.debug('transformer', transformer);
2517
2519
  const {
2518
2520
  kind,
2519
2521
  participantIdentity,
2520
2522
  trackId,
2521
2523
  codec
2522
2524
  } = transformer.options;
2523
- const cryptor = getTrackCryptor(participantIdentity, trackId);
2524
- workerLogger.debug('transform', {
2525
- codec
2526
- });
2527
- cryptor.setupTransform(kind, transformer.readable, transformer.writable, trackId, false, codec);
2525
+ messageQueue.run(() => __awaiter(void 0, void 0, void 0, function* () {
2526
+ const cryptor = getTrackCryptor(participantIdentity, trackId);
2527
+ workerLogger.debug('onrtctransform setup', {
2528
+ participantIdentity,
2529
+ trackId,
2530
+ codec
2531
+ });
2532
+ cryptor.setupTransform(kind, transformer.readable, transformer.writable, trackId, false, codec);
2533
+ }));
2528
2534
  };
2529
2535
  }
2530
2536
  //# sourceMappingURL=livekit-client.e2ee.worker.mjs.map