livekit-client 2.20.0 → 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.
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +41 -11
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +744 -178
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.fm.worker.js +1 -1
- package/dist/livekit-client.fm.worker.js.map +1 -1
- package/dist/livekit-client.fm.worker.mjs +41 -7
- package/dist/livekit-client.fm.worker.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts +1 -0
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/types.d.ts +1 -0
- package/dist/src/e2ee/types.d.ts.map +1 -1
- package/dist/src/e2ee/utils.d.ts +1 -0
- package/dist/src/e2ee/utils.d.ts.map +1 -1
- package/dist/src/e2ee/worker/DataCryptor.d.ts +1 -0
- package/dist/src/e2ee/worker/DataCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts +1 -0
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts +1 -0
- package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
- package/dist/src/e2ee/worker/sifPayload.d.ts +1 -0
- package/dist/src/e2ee/worker/sifPayload.d.ts.map +1 -1
- package/dist/src/frameMetadata/frameMetadata.d.ts +1 -0
- package/dist/src/frameMetadata/frameMetadata.d.ts.map +1 -1
- package/dist/src/frameMetadata/types.d.ts +1 -0
- package/dist/src/frameMetadata/types.d.ts.map +1 -1
- package/dist/src/logger.d.ts +3 -1
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +42 -1
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/PCTransportManager.d.ts +1 -0
- package/dist/src/room/PCTransportManager.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +46 -4
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/RegionUrlProvider.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +1 -0
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/data-track/depacketizer.d.ts.map +1 -1
- package/dist/src/room/data-track/frame.d.ts +1 -0
- package/dist/src/room/data-track/frame.d.ts.map +1 -1
- package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts +7 -0
- package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts.map +1 -1
- package/dist/src/room/data-track/outgoing/OutgoingDataTrackManager.d.ts.map +1 -1
- package/dist/src/room/data-track/outgoing/types.d.ts +1 -0
- package/dist/src/room/data-track/outgoing/types.d.ts.map +1 -1
- package/dist/src/room/data-track/packet/extensions.d.ts +1 -0
- package/dist/src/room/data-track/packet/extensions.d.ts.map +1 -1
- package/dist/src/room/data-track/packet/index.d.ts +1 -0
- package/dist/src/room/data-track/packet/index.d.ts.map +1 -1
- package/dist/src/room/data-track/packet/serializable.d.ts +1 -0
- package/dist/src/room/data-track/packet/serializable.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +1 -0
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts +1 -0
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/participant/publishUtils.d.ts +7 -0
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
- package/dist/src/room/track/LocalAudioTrack.d.ts +1 -0
- package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
- package/dist/src/room/track/Track.d.ts +1 -0
- package/dist/src/room/track/Track.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +11 -1
- package/dist/src/room/track/options.d.ts.map +1 -1
- package/dist/src/room/track/record.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +1 -0
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/test/signalToken.d.ts +26 -0
- package/dist/src/test/signalToken.d.ts.map +1 -0
- package/dist/src/type-polyfills/non-shared-typed-arrays.d.ts +2 -0
- package/dist/src/type-polyfills/non-shared-typed-arrays.d.ts.map +1 -0
- package/dist/src/utils/dataPacketBuffer.d.ts +19 -0
- package/dist/src/utils/dataPacketBuffer.d.ts.map +1 -1
- package/dist/ts4.2/e2ee/E2eeManager.d.ts +1 -0
- package/dist/ts4.2/e2ee/types.d.ts +1 -0
- package/dist/ts4.2/e2ee/utils.d.ts +1 -0
- package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +1 -0
- package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +1 -0
- package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +1 -0
- package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +1 -0
- package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +1 -0
- package/dist/ts4.2/frameMetadata/types.d.ts +1 -0
- package/dist/ts4.2/logger.d.ts +3 -1
- package/dist/ts4.2/room/PCTransport.d.ts +42 -1
- package/dist/ts4.2/room/PCTransportManager.d.ts +1 -0
- package/dist/ts4.2/room/RTCEngine.d.ts +46 -4
- package/dist/ts4.2/room/Room.d.ts +1 -0
- package/dist/ts4.2/room/data-track/frame.d.ts +1 -0
- package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +7 -0
- package/dist/ts4.2/room/data-track/outgoing/types.d.ts +1 -0
- package/dist/ts4.2/room/data-track/packet/extensions.d.ts +1 -0
- package/dist/ts4.2/room/data-track/packet/index.d.ts +1 -0
- package/dist/ts4.2/room/data-track/packet/serializable.d.ts +1 -0
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +1 -0
- package/dist/ts4.2/room/participant/Participant.d.ts +1 -0
- package/dist/ts4.2/room/participant/publishUtils.d.ts +7 -0
- package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +1 -0
- package/dist/ts4.2/room/track/Track.d.ts +1 -0
- package/dist/ts4.2/room/track/options.d.ts +11 -1
- package/dist/ts4.2/room/utils.d.ts +1 -0
- package/dist/ts4.2/test/signalToken.d.ts +26 -0
- package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -0
- package/dist/ts4.2/utils/dataPacketBuffer.d.ts +19 -0
- package/package.json +8 -4
- package/src/api/SignalClient.e2e.test.ts +264 -0
- package/src/api/SignalClient.ts +35 -2
- package/src/e2ee/E2eeManager.ts +3 -1
- package/src/e2ee/types.ts +1 -0
- package/src/e2ee/utils.ts +1 -0
- package/src/e2ee/worker/DataCryptor.ts +1 -0
- package/src/e2ee/worker/FrameCryptor.test.ts +1 -0
- package/src/e2ee/worker/FrameCryptor.ts +1 -0
- package/src/e2ee/worker/ParticipantKeyHandler.test.ts +1 -0
- package/src/e2ee/worker/e2ee.worker.ts +1 -0
- package/src/e2ee/worker/naluUtils.ts +1 -0
- package/src/e2ee/worker/sifPayload.ts +1 -0
- package/src/frameMetadata/frameMetadata.test.ts +83 -0
- package/src/frameMetadata/frameMetadata.ts +8 -0
- package/src/frameMetadata/types.ts +1 -0
- package/src/logger.ts +2 -0
- package/src/room/PCTransport.test.ts +150 -0
- package/src/room/PCTransport.ts +179 -31
- package/src/room/PCTransportManager.ts +10 -6
- package/src/room/RTCEngine.test.ts +275 -2
- package/src/room/RTCEngine.ts +277 -71
- package/src/room/RegionUrlProvider.ts +4 -2
- package/src/room/Room.ts +8 -1
- package/src/room/data-track/depacketizer.ts +1 -0
- package/src/room/data-track/frame.ts +1 -0
- package/src/room/data-track/incoming/IncomingDataTrackManager.test.ts +303 -0
- package/src/room/data-track/incoming/IncomingDataTrackManager.ts +70 -8
- package/src/room/data-track/outgoing/OutgoingDataTrackManager.ts +2 -0
- package/src/room/data-track/outgoing/types.ts +1 -0
- package/src/room/data-track/packet/extensions.ts +1 -0
- package/src/room/data-track/packet/index.ts +1 -0
- package/src/room/data-track/packet/serializable.ts +1 -0
- package/src/room/errors.ts +4 -4
- package/src/room/participant/LocalParticipant.ts +17 -6
- package/src/room/participant/Participant.ts +6 -0
- package/src/room/participant/publishUtils.ts +14 -11
- package/src/room/track/LocalAudioTrack.ts +16 -0
- package/src/room/track/Track.ts +11 -6
- package/src/room/track/options.ts +11 -1
- package/src/room/track/record.ts +1 -0
- package/src/room/utils.ts +1 -0
- package/src/test/signalServerSetup.ts +151 -0
- package/src/test/signalToken.ts +59 -0
- package/src/test/vitest-context.d.ts +10 -0
- package/src/type-polyfills/{non-shared-typed-arrays.d.ts → non-shared-typed-arrays.ts} +6 -1
- package/src/utils/dataPacketBuffer.test.ts +100 -0
- package/src/utils/dataPacketBuffer.ts +48 -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
|
-
|
|
5314
|
+
this.log.debug("".concat(hasAudio ? 'audio' : 'video', " playback aborted, likely due to new play request"));
|
|
5292
5315
|
} else {
|
|
5293
|
-
|
|
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) {
|
|
@@ -5575,6 +5601,7 @@ function hasFrameMetadataPublishOptions(options) {
|
|
|
5575
5601
|
const PACKET_TRAILER_MAGIC = Uint8Array.from(['L'.charCodeAt(0), 'K'.charCodeAt(0), 'T'.charCodeAt(0), 'S'.charCodeAt(0)]);
|
|
5576
5602
|
const PACKET_TRAILER_TIMESTAMP_TAG = 0x01;
|
|
5577
5603
|
const PACKET_TRAILER_FRAME_ID_TAG = 0x02;
|
|
5604
|
+
const PACKET_TRAILER_USER_DATA_TAG = 0x03;
|
|
5578
5605
|
const PACKET_TRAILER_ENVELOPE_SIZE = 5;
|
|
5579
5606
|
const TIMESTAMP_TLV_SIZE = 10;
|
|
5580
5607
|
const FRAME_ID_TLV_SIZE = 6;
|
|
@@ -5659,6 +5686,13 @@ function extractPacketTrailer(data) {
|
|
|
5659
5686
|
} else if (tag === PACKET_TRAILER_FRAME_ID_TAG && length === 4) {
|
|
5660
5687
|
metadata.frameId = readUint32Xor(bytes, offset, length);
|
|
5661
5688
|
foundAny = true;
|
|
5689
|
+
} else if (tag === PACKET_TRAILER_USER_DATA_TAG) {
|
|
5690
|
+
const userData = new Uint8Array(length);
|
|
5691
|
+
for (let index = 0; index < length; index += 1) {
|
|
5692
|
+
userData[index] = bytes[offset + index] ^ 0xff;
|
|
5693
|
+
}
|
|
5694
|
+
metadata.userData = userData;
|
|
5695
|
+
foundAny = true;
|
|
5662
5696
|
}
|
|
5663
5697
|
offset += length;
|
|
5664
5698
|
}
|