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
@@ -4377,6 +4377,8 @@ var LoggerNames;
4377
4377
  LoggerNames["PCTransport"] = "livekit-pc-transport";
4378
4378
  LoggerNames["E2EE"] = "lk-e2ee";
4379
4379
  LoggerNames["DataTracks"] = "livekit-data-tracks";
4380
+ LoggerNames["Region"] = "livekit-region";
4381
+ LoggerNames["ICE"] = "livekit-ice";
4380
4382
  })(LoggerNames || (LoggerNames = {}));
4381
4383
  let livekitLogger = loglevelExports.getLogger(LoggerNames.Default);
4382
4384
  Object.values(LoggerNames).map(name => loglevelExports.getLogger(name));
@@ -4396,9 +4398,27 @@ livekitLogger.setDefaultLevel(LogLevel.info);
4396
4398
  function getLogger(name, ctxFn) {
4397
4399
  const logger = loglevelExports.getLogger(name);
4398
4400
  logger.setDefaultLevel(livekitLogger.getLevel());
4399
- {
4401
+ if (!ctxFn) {
4400
4402
  return logger;
4401
4403
  }
4404
+ return wrapWithContext(logger, ctxFn);
4405
+ }
4406
+ function wrapWithContext(base, ctxFn) {
4407
+ // Resolve the underlying method on every call so that later
4408
+ // setLogExtension installations (which replace the base logger's
4409
+ // methods via loglevel's methodFactory) are picked up.
4410
+ const wrap = method => (msg, extra) => {
4411
+ const ctx = ctxFn();
4412
+ const merged = ctx || extra ? Object.assign(Object.assign({}, ctx), extra) : undefined;
4413
+ base[method](msg, merged);
4414
+ };
4415
+ const proxy = Object.create(base);
4416
+ proxy.trace = wrap('trace');
4417
+ proxy.debug = wrap('debug');
4418
+ proxy.info = wrap('info');
4419
+ proxy.warn = wrap('warn');
4420
+ proxy.error = wrap('error');
4421
+ return proxy;
4402
4422
  }
4403
4423
  loglevelExports.getLogger(LoggerNames.E2EE);
4404
4424
 
@@ -5195,6 +5215,9 @@ class Track extends eventsExports.EventEmitter {
5195
5215
  }
5196
5216
  /** @internal */
5197
5217
  setStreamState(value) {
5218
+ if (this._streamState !== value) {
5219
+ this.log.debug("stream state changed: ".concat(this._streamState, " -> ").concat(value));
5220
+ }
5198
5221
  this._streamState = value;
5199
5222
  }
5200
5223
  constructor(mediaTrack, kind) {
@@ -5219,8 +5242,8 @@ class Track extends eventsExports.EventEmitter {
5219
5242
  this.handleAppVisibilityChanged();
5220
5243
  }
5221
5244
  };
5222
- this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track);
5223
5245
  this.loggerContextCb = loggerOptions.loggerContextCb;
5246
+ this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track, () => this.logContext);
5224
5247
  this.setMaxListeners(100);
5225
5248
  this.kind = kind;
5226
5249
  this._mediaStreamTrack = mediaTrack;
@@ -5288,9 +5311,11 @@ class Track extends eventsExports.EventEmitter {
5288
5311
  this.emit(hasAudio ? TrackEvent.AudioPlaybackFailed : TrackEvent.VideoPlaybackFailed, e);
5289
5312
  } else if (e.name === 'AbortError') {
5290
5313
  // commonly triggered by another `play` request, only log for debugging purposes
5291
- livekitLogger.debug("".concat(hasAudio ? 'audio' : 'video', " playback aborted, likely due to new play request"));
5314
+ this.log.debug("".concat(hasAudio ? 'audio' : 'video', " playback aborted, likely due to new play request"));
5292
5315
  } else {
5293
- livekitLogger.warn("could not playback ".concat(hasAudio ? 'audio' : 'video'), e);
5316
+ this.log.warn("could not playback ".concat(hasAudio ? 'audio' : 'video'), {
5317
+ error: e
5318
+ });
5294
5319
  }
5295
5320
  // If audio playback isn't allowed make sure we still play back the video
5296
5321
  if (hasAudio && element && allMediaStreamTracks.some(tr => tr.kind === 'video') && e.name === 'NotAllowedError') {
@@ -5333,6 +5358,7 @@ class Track extends eventsExports.EventEmitter {
5333
5358
  }
5334
5359
  }
5335
5360
  stop() {
5361
+ this.log.debug('stopping track');
5336
5362
  this.stopMonitor();
5337
5363
  this._mediaStreamTrack.stop();
5338
5364
  }
@@ -5353,12 +5379,12 @@ class Track extends eventsExports.EventEmitter {
5353
5379
  }
5354
5380
  /** @internal */
5355
5381
  updateLoggerOptions(loggerOptions) {
5356
- if (loggerOptions.loggerName) {
5357
- this.log = getLogger(loggerOptions.loggerName);
5358
- }
5359
5382
  if (loggerOptions.loggerContextCb) {
5360
5383
  this.loggerContextCb = loggerOptions.loggerContextCb;
5361
5384
  }
5385
+ if (loggerOptions.loggerName) {
5386
+ this.log = getLogger(loggerOptions.loggerName, () => this.logContext);
5387
+ }
5362
5388
  }
5363
5389
  recycleElement(element) {
5364
5390
  if (element instanceof HTMLAudioElement) {