livekit-client 2.19.2 → 2.20.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 (123) hide show
  1. package/dist/livekit-client.e2ee.worker.js +1 -1
  2. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  3. package/dist/livekit-client.e2ee.worker.mjs +23 -23
  4. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  5. package/dist/livekit-client.esm.mjs +179 -111
  6. package/dist/livekit-client.esm.mjs.map +1 -1
  7. package/dist/livekit-client.fm.worker.js +2 -0
  8. package/dist/{livekit-client.pt.worker.js.map → livekit-client.fm.worker.js.map} +1 -1
  9. package/dist/{livekit-client.pt.worker.mjs → livekit-client.fm.worker.mjs} +4 -4
  10. package/dist/livekit-client.fm.worker.mjs.map +1 -0
  11. package/dist/livekit-client.umd.js +1 -1
  12. package/dist/livekit-client.umd.js.map +1 -1
  13. package/dist/src/api/SignalClient.d.ts.map +1 -1
  14. package/dist/src/e2ee/E2eeManager.d.ts +1 -1
  15. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  16. package/dist/src/e2ee/types.d.ts +5 -5
  17. package/dist/src/e2ee/types.d.ts.map +1 -1
  18. package/dist/src/e2ee/worker/FrameCryptor.d.ts +8 -8
  19. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  20. package/dist/src/{packetTrailer/PacketTrailerManager.d.ts → frameMetadata/FrameMetadataManager.d.ts} +8 -4
  21. package/dist/src/{packetTrailer/PacketTrailerManager.d.ts.map → frameMetadata/FrameMetadataManager.d.ts.map} +1 -1
  22. package/dist/src/{packetTrailer/packetTrailer.d.ts → frameMetadata/frameMetadata.d.ts} +7 -7
  23. package/dist/src/frameMetadata/frameMetadata.d.ts.map +1 -0
  24. package/dist/src/{packetTrailer → frameMetadata}/types.d.ts +10 -6
  25. package/dist/src/frameMetadata/types.d.ts.map +1 -0
  26. package/dist/src/frameMetadata/utils.d.ts +9 -0
  27. package/dist/src/{packetTrailer → frameMetadata}/utils.d.ts.map +1 -1
  28. package/dist/src/frameMetadata/worker/frameMetadata.worker.d.ts +2 -0
  29. package/dist/src/frameMetadata/worker/frameMetadata.worker.d.ts.map +1 -0
  30. package/dist/src/index.d.ts +10 -2
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/options.d.ts +8 -4
  33. package/dist/src/options.d.ts.map +1 -1
  34. package/dist/src/room/PCTransport.d.ts +1 -0
  35. package/dist/src/room/PCTransport.d.ts.map +1 -1
  36. package/dist/src/room/PCTransportManager.d.ts +1 -0
  37. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  38. package/dist/src/room/RTCEngine.d.ts +3 -1
  39. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  40. package/dist/src/room/Room.d.ts +2 -2
  41. package/dist/src/room/Room.d.ts.map +1 -1
  42. package/dist/src/room/participant/LocalParticipant.d.ts +2 -2
  43. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  44. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  45. package/dist/src/room/token-source/TokenSource.d.ts.map +1 -1
  46. package/dist/src/room/token-source/types.d.ts +1 -0
  47. package/dist/src/room/token-source/types.d.ts.map +1 -1
  48. package/dist/src/room/token-source/utils.d.ts.map +1 -1
  49. package/dist/src/room/track/FrameMetadataExtractor.d.ts +19 -0
  50. package/dist/src/room/track/FrameMetadataExtractor.d.ts.map +1 -0
  51. package/dist/src/room/track/RemoteVideoTrack.d.ts +7 -7
  52. package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -1
  53. package/dist/src/room/track/options.d.ts +17 -5
  54. package/dist/src/room/track/options.d.ts.map +1 -1
  55. package/dist/ts4.2/e2ee/E2eeManager.d.ts +1 -1
  56. package/dist/ts4.2/e2ee/types.d.ts +5 -5
  57. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +8 -8
  58. package/dist/ts4.2/{packetTrailer/PacketTrailerManager.d.ts → frameMetadata/FrameMetadataManager.d.ts} +8 -4
  59. package/dist/ts4.2/{packetTrailer/packetTrailer.d.ts → frameMetadata/frameMetadata.d.ts} +7 -7
  60. package/dist/ts4.2/{packetTrailer → frameMetadata}/types.d.ts +10 -6
  61. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -0
  62. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -0
  63. package/dist/ts4.2/index.d.ts +9 -3
  64. package/dist/ts4.2/options.d.ts +8 -4
  65. package/dist/ts4.2/room/PCTransport.d.ts +1 -0
  66. package/dist/ts4.2/room/PCTransportManager.d.ts +1 -0
  67. package/dist/ts4.2/room/RTCEngine.d.ts +3 -1
  68. package/dist/ts4.2/room/Room.d.ts +2 -2
  69. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +2 -2
  70. package/dist/ts4.2/room/token-source/types.d.ts +1 -0
  71. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -0
  72. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +7 -7
  73. package/dist/ts4.2/room/track/options.d.ts +17 -5
  74. package/package.json +23 -18
  75. package/src/api/SignalClient.test.ts +4 -4
  76. package/src/api/SignalClient.ts +7 -3
  77. package/src/api/WebSocketStream.test.ts +7 -7
  78. package/src/e2ee/E2eeManager.ts +13 -11
  79. package/src/e2ee/types.ts +5 -5
  80. package/src/e2ee/worker/FrameCryptor.test.ts +5 -5
  81. package/src/e2ee/worker/FrameCryptor.ts +27 -23
  82. package/src/e2ee/worker/e2ee.worker.ts +5 -5
  83. package/src/e2ee/worker/tsconfig.json +4 -1
  84. package/src/{packetTrailer/PacketTrailerManager.test.ts → frameMetadata/FrameMetadataManager.test.ts} +10 -8
  85. package/src/{packetTrailer/PacketTrailerManager.ts → frameMetadata/FrameMetadataManager.ts} +21 -15
  86. package/src/{packetTrailer/packetTrailer.test.ts → frameMetadata/frameMetadata.test.ts} +1 -1
  87. package/src/{packetTrailer/packetTrailer.ts → frameMetadata/frameMetadata.ts} +9 -9
  88. package/src/{packetTrailer → frameMetadata}/types.ts +12 -6
  89. package/src/{packetTrailer → frameMetadata}/utils.test.ts +19 -19
  90. package/src/{packetTrailer → frameMetadata}/utils.ts +11 -11
  91. package/src/{packetTrailer/worker/packetTrailer.worker.ts → frameMetadata/worker/frameMetadata.worker.ts} +5 -5
  92. package/src/{packetTrailer → frameMetadata}/worker/tsconfig.json +4 -1
  93. package/src/index.ts +13 -2
  94. package/src/options.ts +9 -4
  95. package/src/room/PCTransport.ts +4 -0
  96. package/src/room/PCTransportManager.ts +4 -0
  97. package/src/room/RTCEngine.test.ts +143 -9
  98. package/src/room/RTCEngine.ts +111 -31
  99. package/src/room/Room.ts +10 -10
  100. package/src/room/participant/LocalParticipant.test.ts +19 -19
  101. package/src/room/participant/LocalParticipant.ts +21 -16
  102. package/src/room/participant/publishUtils.test.ts +6 -0
  103. package/src/room/participant/publishUtils.ts +4 -1
  104. package/src/room/rpc/client/RpcClientManager.ts +1 -1
  105. package/src/room/rpc/server/RpcServerManager.ts +1 -1
  106. package/src/room/token-source/TokenSource.ts +9 -23
  107. package/src/room/token-source/types.ts +1 -0
  108. package/src/room/token-source/utils.ts +1 -0
  109. package/src/room/track/{PacketTrailerExtractor.ts → FrameMetadataExtractor.ts} +8 -8
  110. package/src/room/track/RemoteVideoTrack.ts +7 -11
  111. package/src/room/track/options.ts +19 -5
  112. package/dist/livekit-client.pt.worker.js +0 -2
  113. package/dist/livekit-client.pt.worker.mjs.map +0 -1
  114. package/dist/src/packetTrailer/packetTrailer.d.ts.map +0 -1
  115. package/dist/src/packetTrailer/types.d.ts.map +0 -1
  116. package/dist/src/packetTrailer/utils.d.ts +0 -9
  117. package/dist/src/packetTrailer/worker/packetTrailer.worker.d.ts +0 -2
  118. package/dist/src/packetTrailer/worker/packetTrailer.worker.d.ts.map +0 -1
  119. package/dist/src/room/track/PacketTrailerExtractor.d.ts +0 -19
  120. package/dist/src/room/track/PacketTrailerExtractor.d.ts.map +0 -1
  121. package/dist/ts4.2/packetTrailer/utils.d.ts +0 -9
  122. package/dist/ts4.2/packetTrailer/worker/packetTrailer.worker.d.ts +0 -2
  123. package/dist/ts4.2/room/track/PacketTrailerExtractor.d.ts +0 -19
@@ -5939,7 +5939,7 @@ function isWeb() {
5939
5939
  return typeof document !== 'undefined';
5940
5940
  }
5941
5941
 
5942
- function hasPacketTrailerPublishOptions(options) {
5942
+ function hasFrameMetadataPublishOptions(options) {
5943
5943
  return !!((options === null || options === void 0 ? void 0 : options.timestamp) || (options === null || options === void 0 ? void 0 : options.frameId));
5944
5944
  }
5945
5945
 
@@ -5977,7 +5977,7 @@ function appendPacketTrailer(data, userTimestamp, frameId) {
5977
5977
  return result;
5978
5978
  }
5979
5979
  function appendPacketTrailerToEncodedFrame(frame, options, frameId) {
5980
- if (!hasPacketTrailerPublishOptions(options) || frame.data.byteLength === 0) {
5980
+ if (!hasFrameMetadataPublishOptions(options) || frame.data.byteLength === 0) {
5981
5981
  return false;
5982
5982
  }
5983
5983
  const userTimestamp = (options === null || options === void 0 ? void 0 : options.timestamp) ? BigInt(Date.now()) * BigInt(1000) : BigInt(0);
@@ -6463,8 +6463,8 @@ class FrameCryptor extends BaseFrameCryptor {
6463
6463
  * When false, we skip the per-frame trailer extraction path entirely
6464
6464
  * on decode to avoid unnecessary work on tracks that don't use it.
6465
6465
  */
6466
- this.hasPacketTrailer = false;
6467
- this.packetTrailerFrameId = 0;
6466
+ this.hasFrameMetadata = false;
6467
+ this.frameMetadataFrameId = 0;
6468
6468
  /**
6469
6469
  * Throttling mechanism for decryption errors to prevent memory leaks
6470
6470
  */
@@ -6556,14 +6556,14 @@ class FrameCryptor extends BaseFrameCryptor {
6556
6556
  * trailer data. When false, {@link decodeFunction} skips the per-frame
6557
6557
  * trailer extraction branch entirely.
6558
6558
  */
6559
- setHasPacketTrailer(hasPacketTrailer) {
6560
- this.hasPacketTrailer = hasPacketTrailer;
6559
+ setHasFrameMetadata(hasFrameMetadata) {
6560
+ this.hasFrameMetadata = hasFrameMetadata;
6561
6561
  }
6562
- setPacketTrailer(packetTrailer) {
6563
- this.packetTrailer = packetTrailer;
6564
- this.packetTrailerFrameId = 0;
6562
+ setFrameMetadataOpts(frameMetadata) {
6563
+ this.frameMetadataOpts = frameMetadata;
6564
+ this.frameMetadataFrameId = 0;
6565
6565
  }
6566
- setupTransform(operation, readable, writable, trackId, isReuse, codec, packetTrailer) {
6566
+ setupTransform(operation, readable, writable, trackId, isReuse, codec, frameMetadata) {
6567
6567
  if (codec) {
6568
6568
  workerLogger.info('setting codec on cryptor to', {
6569
6569
  codec
@@ -6571,7 +6571,7 @@ class FrameCryptor extends BaseFrameCryptor {
6571
6571
  this.videoCodec = codec;
6572
6572
  }
6573
6573
  if (operation === 'encode') {
6574
- this.setPacketTrailer(packetTrailer);
6574
+ this.setFrameMetadataOpts(frameMetadata);
6575
6575
  }
6576
6576
  workerLogger.debug('Setting up frame cryptor transform', Object.assign({
6577
6577
  operation,
@@ -6712,7 +6712,7 @@ class FrameCryptor extends BaseFrameCryptor {
6712
6712
  return controller.enqueue(encodedFrame);
6713
6713
  }
6714
6714
  if (!this.isEnabled()) {
6715
- this.appendPacketTrailer(encodedFrame);
6715
+ this.appendFrameMetadata(encodedFrame);
6716
6716
  return controller.enqueue(encodedFrame);
6717
6717
  }
6718
6718
  const keySet = this.keys.getKeySet();
@@ -6755,7 +6755,7 @@ class FrameCryptor extends BaseFrameCryptor {
6755
6755
  newData.set(frameHeader);
6756
6756
  newData.set(newDataWithoutHeader, frameHeader.byteLength);
6757
6757
  encodedFrame.data = newData.buffer;
6758
- this.appendPacketTrailer(encodedFrame);
6758
+ this.appendFrameMetadata(encodedFrame);
6759
6759
  return controller.enqueue(encodedFrame);
6760
6760
  } catch (e) {
6761
6761
  // TODO: surface this to the app.
@@ -6767,15 +6767,15 @@ class FrameCryptor extends BaseFrameCryptor {
6767
6767
  }
6768
6768
  });
6769
6769
  }
6770
- appendPacketTrailer(encodedFrame) {
6770
+ appendFrameMetadata(encodedFrame) {
6771
6771
  var _a;
6772
- if (!hasPacketTrailerPublishOptions(this.packetTrailer) || !isVideoFrame(encodedFrame)) {
6772
+ if (!hasFrameMetadataPublishOptions(this.frameMetadataOpts) || !isVideoFrame(encodedFrame)) {
6773
6773
  return;
6774
6774
  }
6775
- if ((_a = this.packetTrailer) === null || _a === void 0 ? void 0 : _a.frameId) {
6776
- this.packetTrailerFrameId = this.packetTrailerFrameId === 0xffffffff ? 1 : this.packetTrailerFrameId + 1;
6775
+ if ((_a = this.frameMetadataOpts) === null || _a === void 0 ? void 0 : _a.frameId) {
6776
+ this.frameMetadataFrameId = this.frameMetadataFrameId === 0xffffffff ? 1 : this.frameMetadataFrameId + 1;
6777
6777
  }
6778
- appendPacketTrailerToEncodedFrame(encodedFrame, this.packetTrailer, this.packetTrailerFrameId);
6778
+ appendPacketTrailerToEncodedFrame(encodedFrame, this.frameMetadataOpts, this.frameMetadataFrameId);
6779
6779
  }
6780
6780
  /**
6781
6781
  * Function that will be injected in a stream and will decrypt the given encoded frames.
@@ -6785,7 +6785,7 @@ class FrameCryptor extends BaseFrameCryptor {
6785
6785
  */
6786
6786
  decodeFunction(encodedFrame, controller) {
6787
6787
  return __awaiter(this, void 0, void 0, function* () {
6788
- if (this.hasPacketTrailer && isVideoFrame(encodedFrame)) {
6788
+ if (this.hasFrameMetadata && isVideoFrame(encodedFrame)) {
6789
6789
  try {
6790
6790
  const ptResult = processPacketTrailer(encodedFrame, this.trackId);
6791
6791
  if (ptResult.data) {
@@ -7305,12 +7305,12 @@ onmessage = ev => {
7305
7305
  break;
7306
7306
  case 'decode':
7307
7307
  let cryptor = getTrackCryptor(data.participantIdentity, data.trackId);
7308
- cryptor.setHasPacketTrailer(data.hasPacketTrailer);
7308
+ cryptor.setHasFrameMetadata(data.hasPacketTrailer);
7309
7309
  cryptor.setupTransform(kind, data.readableStream, data.writableStream, data.trackId, data.isReuse, data.codec);
7310
7310
  break;
7311
7311
  case 'encode':
7312
7312
  let pubCryptor = getTrackCryptor(data.participantIdentity, data.trackId);
7313
- pubCryptor.setHasPacketTrailer(data.hasPacketTrailer);
7313
+ pubCryptor.setHasFrameMetadata(data.hasPacketTrailer);
7314
7314
  pubCryptor.setupTransform(kind, data.readableStream, data.writableStream, data.trackId, data.isReuse, data.codec, data.packetTrailer);
7315
7315
  break;
7316
7316
  case 'encryptDataRequest':
@@ -7376,7 +7376,7 @@ onmessage = ev => {
7376
7376
  case 'updateCodec':
7377
7377
  const trackCryptor = getTrackCryptor(data.participantIdentity, data.trackId);
7378
7378
  trackCryptor.setVideoCodec(data.codec);
7379
- trackCryptor.setHasPacketTrailer(data.hasPacketTrailer);
7379
+ trackCryptor.setHasFrameMetadata(data.hasPacketTrailer);
7380
7380
  workerLogger.info('updated codec', {
7381
7381
  participantIdentity: data.participantIdentity,
7382
7382
  trackId: data.trackId,
@@ -7548,7 +7548,7 @@ if (self.RTCTransformEvent) {
7548
7548
  hasPacketTrailer = options.hasPacketTrailer;
7549
7549
  messageQueue.run(() => __awaiter(void 0, void 0, void 0, function* () {
7550
7550
  const cryptor = getTrackCryptor(participantIdentity, trackId);
7551
- cryptor.setHasPacketTrailer(hasPacketTrailer);
7551
+ cryptor.setHasFrameMetadata(hasPacketTrailer);
7552
7552
  workerLogger.debug('onrtctransform setup', {
7553
7553
  participantIdentity,
7554
7554
  trackId,