livekit-client 2.20.1 → 2.20.2

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 (74) 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 +33 -7
  4. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  5. package/dist/livekit-client.esm.mjs +589 -163
  6. package/dist/livekit-client.esm.mjs.map +1 -1
  7. package/dist/livekit-client.fm.worker.js +1 -1
  8. package/dist/livekit-client.fm.worker.js.map +1 -1
  9. package/dist/livekit-client.fm.worker.mjs +33 -7
  10. package/dist/livekit-client.fm.worker.mjs.map +1 -1
  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/logger.d.ts +3 -1
  15. package/dist/src/logger.d.ts.map +1 -1
  16. package/dist/src/room/PCTransport.d.ts +2 -0
  17. package/dist/src/room/PCTransport.d.ts.map +1 -1
  18. package/dist/src/room/PCTransportManager.d.ts +1 -0
  19. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  20. package/dist/src/room/RTCEngine.d.ts +45 -4
  21. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  22. package/dist/src/room/RegionUrlProvider.d.ts.map +1 -1
  23. package/dist/src/room/Room.d.ts.map +1 -1
  24. package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts +7 -0
  25. package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts.map +1 -1
  26. package/dist/src/room/data-track/outgoing/OutgoingDataTrackManager.d.ts.map +1 -1
  27. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  28. package/dist/src/room/participant/Participant.d.ts.map +1 -1
  29. package/dist/src/room/participant/publishUtils.d.ts +7 -0
  30. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  31. package/dist/src/room/track/LocalAudioTrack.d.ts +1 -0
  32. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  33. package/dist/src/room/track/Track.d.ts.map +1 -1
  34. package/dist/src/room/track/options.d.ts +11 -1
  35. package/dist/src/room/track/options.d.ts.map +1 -1
  36. package/dist/src/test/signalToken.d.ts +26 -0
  37. package/dist/src/test/signalToken.d.ts.map +1 -0
  38. package/dist/src/utils/dataPacketBuffer.d.ts +18 -0
  39. package/dist/src/utils/dataPacketBuffer.d.ts.map +1 -1
  40. package/dist/ts4.2/logger.d.ts +3 -1
  41. package/dist/ts4.2/room/PCTransport.d.ts +2 -0
  42. package/dist/ts4.2/room/PCTransportManager.d.ts +1 -0
  43. package/dist/ts4.2/room/RTCEngine.d.ts +45 -4
  44. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +7 -0
  45. package/dist/ts4.2/room/participant/publishUtils.d.ts +7 -0
  46. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +1 -0
  47. package/dist/ts4.2/room/track/options.d.ts +11 -1
  48. package/dist/ts4.2/test/signalToken.d.ts +26 -0
  49. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +18 -0
  50. package/package.json +7 -3
  51. package/src/api/SignalClient.e2e.test.ts +264 -0
  52. package/src/api/SignalClient.ts +34 -2
  53. package/src/logger.ts +2 -0
  54. package/src/room/PCTransport.ts +66 -31
  55. package/src/room/PCTransportManager.ts +10 -6
  56. package/src/room/RTCEngine.test.ts +275 -2
  57. package/src/room/RTCEngine.ts +276 -71
  58. package/src/room/RegionUrlProvider.ts +4 -2
  59. package/src/room/Room.ts +7 -1
  60. package/src/room/data-track/incoming/IncomingDataTrackManager.test.ts +303 -0
  61. package/src/room/data-track/incoming/IncomingDataTrackManager.ts +70 -8
  62. package/src/room/data-track/outgoing/OutgoingDataTrackManager.ts +2 -0
  63. package/src/room/errors.ts +4 -4
  64. package/src/room/participant/LocalParticipant.ts +16 -6
  65. package/src/room/participant/Participant.ts +5 -0
  66. package/src/room/participant/publishUtils.ts +14 -11
  67. package/src/room/track/LocalAudioTrack.ts +16 -0
  68. package/src/room/track/Track.ts +10 -6
  69. package/src/room/track/options.ts +11 -1
  70. package/src/test/signalServerSetup.ts +151 -0
  71. package/src/test/signalToken.ts +59 -0
  72. package/src/test/vitest-context.d.ts +10 -0
  73. package/src/utils/dataPacketBuffer.test.ts +100 -0
  74. package/src/utils/dataPacketBuffer.ts +46 -1
@@ -379,6 +379,8 @@ var LoggerNames;
379
379
  LoggerNames["PCTransport"] = "livekit-pc-transport";
380
380
  LoggerNames["E2EE"] = "lk-e2ee";
381
381
  LoggerNames["DataTracks"] = "livekit-data-tracks";
382
+ LoggerNames["Region"] = "livekit-region";
383
+ LoggerNames["ICE"] = "livekit-ice";
382
384
  })(LoggerNames || (LoggerNames = {}));
383
385
  let livekitLogger = loglevelExports.getLogger(LoggerNames.Default);
384
386
  Object.values(LoggerNames).map(name => loglevelExports.getLogger(name));
@@ -398,9 +400,27 @@ livekitLogger.setDefaultLevel(LogLevel.info);
398
400
  function getLogger(name, ctxFn) {
399
401
  const logger = loglevelExports.getLogger(name);
400
402
  logger.setDefaultLevel(livekitLogger.getLevel());
401
- {
403
+ if (!ctxFn) {
402
404
  return logger;
403
405
  }
406
+ return wrapWithContext(logger, ctxFn);
407
+ }
408
+ function wrapWithContext(base, ctxFn) {
409
+ // Resolve the underlying method on every call so that later
410
+ // setLogExtension installations (which replace the base logger's
411
+ // methods via loglevel's methodFactory) are picked up.
412
+ const wrap = method => (msg, extra) => {
413
+ const ctx = ctxFn();
414
+ const merged = ctx || extra ? Object.assign(Object.assign({}, ctx), extra) : undefined;
415
+ base[method](msg, merged);
416
+ };
417
+ const proxy = Object.create(base);
418
+ proxy.trace = wrap('trace');
419
+ proxy.debug = wrap('debug');
420
+ proxy.info = wrap('info');
421
+ proxy.warn = wrap('warn');
422
+ proxy.error = wrap('error');
423
+ return proxy;
404
424
  }
405
425
  const workerLogger = loglevelExports.getLogger(LoggerNames.E2EE);
406
426
 
@@ -5566,6 +5586,9 @@ class Track extends eventsExports.EventEmitter {
5566
5586
  }
5567
5587
  /** @internal */
5568
5588
  setStreamState(value) {
5589
+ if (this._streamState !== value) {
5590
+ this.log.debug("stream state changed: ".concat(this._streamState, " -> ").concat(value));
5591
+ }
5569
5592
  this._streamState = value;
5570
5593
  }
5571
5594
  constructor(mediaTrack, kind) {
@@ -5590,8 +5613,8 @@ class Track extends eventsExports.EventEmitter {
5590
5613
  this.handleAppVisibilityChanged();
5591
5614
  }
5592
5615
  };
5593
- this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track);
5594
5616
  this.loggerContextCb = loggerOptions.loggerContextCb;
5617
+ this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track, () => this.logContext);
5595
5618
  this.setMaxListeners(100);
5596
5619
  this.kind = kind;
5597
5620
  this._mediaStreamTrack = mediaTrack;
@@ -5659,9 +5682,11 @@ class Track extends eventsExports.EventEmitter {
5659
5682
  this.emit(hasAudio ? TrackEvent.AudioPlaybackFailed : TrackEvent.VideoPlaybackFailed, e);
5660
5683
  } else if (e.name === 'AbortError') {
5661
5684
  // commonly triggered by another `play` request, only log for debugging purposes
5662
- livekitLogger.debug("".concat(hasAudio ? 'audio' : 'video', " playback aborted, likely due to new play request"));
5685
+ this.log.debug("".concat(hasAudio ? 'audio' : 'video', " playback aborted, likely due to new play request"));
5663
5686
  } else {
5664
- livekitLogger.warn("could not playback ".concat(hasAudio ? 'audio' : 'video'), e);
5687
+ this.log.warn("could not playback ".concat(hasAudio ? 'audio' : 'video'), {
5688
+ error: e
5689
+ });
5665
5690
  }
5666
5691
  // If audio playback isn't allowed make sure we still play back the video
5667
5692
  if (hasAudio && element && allMediaStreamTracks.some(tr => tr.kind === 'video') && e.name === 'NotAllowedError') {
@@ -5704,6 +5729,7 @@ class Track extends eventsExports.EventEmitter {
5704
5729
  }
5705
5730
  }
5706
5731
  stop() {
5732
+ this.log.debug('stopping track');
5707
5733
  this.stopMonitor();
5708
5734
  this._mediaStreamTrack.stop();
5709
5735
  }
@@ -5724,12 +5750,12 @@ class Track extends eventsExports.EventEmitter {
5724
5750
  }
5725
5751
  /** @internal */
5726
5752
  updateLoggerOptions(loggerOptions) {
5727
- if (loggerOptions.loggerName) {
5728
- this.log = getLogger(loggerOptions.loggerName);
5729
- }
5730
5753
  if (loggerOptions.loggerContextCb) {
5731
5754
  this.loggerContextCb = loggerOptions.loggerContextCb;
5732
5755
  }
5756
+ if (loggerOptions.loggerName) {
5757
+ this.log = getLogger(loggerOptions.loggerName, () => this.logContext);
5758
+ }
5733
5759
  }
5734
5760
  recycleElement(element) {
5735
5761
  if (element instanceof HTMLAudioElement) {