livekit-client 2.20.1 → 2.21.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.
- 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 +37 -7
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +2279 -651
- 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 +37 -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/index.d.ts +1 -1
- package/dist/src/index.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 +2 -0
- 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 +31 -26
- 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 +4 -0
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/data-channel/DataChannelManager.d.ts +62 -0
- package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -0
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +95 -0
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -0
- package/dist/src/room/data-channel/LossyDataChannel.d.ts +40 -0
- package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -0
- package/dist/src/room/data-channel/ReliableDataChannel.d.ts +56 -0
- package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -0
- package/dist/src/room/data-channel/types.d.ts +12 -0
- package/dist/src/room/data-channel/types.d.ts.map +1 -0
- package/dist/src/room/data-stream/compression.d.ts +49 -0
- package/dist/src/room/data-stream/compression.d.ts.map +1 -0
- package/dist/src/room/data-stream/constants.d.ts +18 -0
- package/dist/src/room/data-stream/constants.d.ts.map +1 -0
- package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts +4 -0
- package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
- package/dist/src/room/data-stream/incoming/StreamReader.d.ts.map +1 -1
- package/dist/src/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +49 -2
- package/dist/src/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts.map +1 -1
- package/dist/src/room/data-stream/outgoing/header-utils.d.ts +18 -0
- package/dist/src/room/data-stream/outgoing/header-utils.d.ts.map +1 -0
- 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/errors.d.ts +3 -1
- package/dist/src/room/errors.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +9 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/participant/RemoteParticipant.d.ts +11 -2
- package/dist/src/room/participant/RemoteParticipant.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/rpc/client/RpcClientManager.d.ts.map +1 -1
- package/dist/src/room/rpc/server/RpcServerManager.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.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/types.d.ts +17 -0
- package/dist/src/room/types.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +13 -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/utils/dataPacketBuffer.d.ts +18 -0
- package/dist/src/utils/dataPacketBuffer.d.ts.map +1 -1
- package/dist/src/version.d.ts +5 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/ts4.2/index.d.ts +1 -1
- package/dist/ts4.2/logger.d.ts +3 -1
- package/dist/ts4.2/room/PCTransport.d.ts +2 -0
- package/dist/ts4.2/room/PCTransportManager.d.ts +1 -0
- package/dist/ts4.2/room/RTCEngine.d.ts +31 -26
- package/dist/ts4.2/room/Room.d.ts +4 -0
- package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +62 -0
- package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +95 -0
- package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -0
- package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -0
- package/dist/ts4.2/room/data-channel/types.d.ts +12 -0
- package/dist/ts4.2/room/data-stream/compression.d.ts +49 -0
- package/dist/ts4.2/room/data-stream/constants.d.ts +18 -0
- package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +4 -0
- package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +49 -2
- package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -0
- package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +7 -0
- package/dist/ts4.2/room/errors.d.ts +3 -1
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +9 -1
- package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +11 -1
- 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/options.d.ts +11 -1
- package/dist/ts4.2/room/types.d.ts +17 -0
- package/dist/ts4.2/room/utils.d.ts +13 -0
- package/dist/ts4.2/test/signalToken.d.ts +26 -0
- package/dist/ts4.2/utils/dataPacketBuffer.d.ts +18 -0
- package/dist/ts4.2/version.d.ts +5 -1
- package/package.json +8 -4
- package/src/api/SignalClient.e2e.test.ts +264 -0
- package/src/api/SignalClient.ts +34 -2
- package/src/index.ts +2 -0
- package/src/logger.ts +2 -0
- package/src/room/PCTransport.ts +66 -31
- package/src/room/PCTransportManager.ts +10 -6
- package/src/room/RTCEngine.test.ts +238 -6
- package/src/room/RTCEngine.ts +101 -338
- package/src/room/RegionUrlProvider.ts +4 -2
- package/src/room/Room.test.ts +4 -1
- package/src/room/Room.ts +47 -9
- package/src/room/data-channel/DataChannelManager.test.ts +152 -0
- package/src/room/data-channel/DataChannelManager.ts +237 -0
- package/src/room/data-channel/FlowControlledDataChannel.test.ts +154 -0
- package/src/room/data-channel/FlowControlledDataChannel.ts +216 -0
- package/src/room/data-channel/LossyDataChannel.test.ts +118 -0
- package/src/room/data-channel/LossyDataChannel.ts +125 -0
- package/src/room/data-channel/ReliableDataChannel.test.ts +158 -0
- package/src/room/data-channel/ReliableDataChannel.ts +153 -0
- package/src/room/data-channel/types.ts +30 -0
- package/src/room/data-stream/compression.ts +117 -0
- package/src/room/data-stream/constants.ts +18 -0
- package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +1601 -0
- package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +438 -86
- package/src/room/data-stream/incoming/StreamReader.ts +8 -2
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +1292 -0
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +489 -116
- package/src/room/data-stream/outgoing/header-utils.ts +87 -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/errors.ts +10 -4
- package/src/room/participant/LocalParticipant.ts +29 -6
- package/src/room/participant/Participant.ts +5 -0
- package/src/room/participant/RemoteParticipant.ts +19 -5
- package/src/room/participant/publishUtils.ts +14 -11
- package/src/room/rpc/client/RpcClientManager.test.ts +20 -27
- package/src/room/rpc/client/RpcClientManager.ts +1 -4
- package/src/room/rpc/server/RpcServerManager.test.ts +24 -23
- package/src/room/rpc/server/RpcServerManager.ts +1 -3
- package/src/room/track/LocalAudioTrack.ts +16 -0
- package/src/room/track/Track.ts +10 -6
- package/src/room/track/options.ts +11 -1
- package/src/room/types.ts +18 -0
- package/src/room/utils.ts +67 -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/utils/dataPacketBuffer.test.ts +100 -0
- package/src/utils/dataPacketBuffer.ts +46 -1
- package/src/version.ts +5 -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
|
|
|
@@ -4010,6 +4030,10 @@ var DataStreamErrorReason;
|
|
|
4010
4030
|
DataStreamErrorReason[DataStreamErrorReason["HandlerAlreadyRegistered"] = 7] = "HandlerAlreadyRegistered";
|
|
4011
4031
|
// Encryption type mismatch.
|
|
4012
4032
|
DataStreamErrorReason[DataStreamErrorReason["EncryptionTypeMismatch"] = 8] = "EncryptionTypeMismatch";
|
|
4033
|
+
// The serialized stream header packet (driven mainly by attributes) exceeds the MTU budget.
|
|
4034
|
+
DataStreamErrorReason[DataStreamErrorReason["HeaderTooLarge"] = 9] = "HeaderTooLarge";
|
|
4035
|
+
// The stream's (decompressed) payload exceeds the maximum allowed size.
|
|
4036
|
+
DataStreamErrorReason[DataStreamErrorReason["PayloadTooLarge"] = 10] = "PayloadTooLarge";
|
|
4013
4037
|
})(DataStreamErrorReason || (DataStreamErrorReason = {}));
|
|
4014
4038
|
var MediaDeviceFailure;
|
|
4015
4039
|
(function (MediaDeviceFailure) {
|
|
@@ -5566,6 +5590,9 @@ class Track extends eventsExports.EventEmitter {
|
|
|
5566
5590
|
}
|
|
5567
5591
|
/** @internal */
|
|
5568
5592
|
setStreamState(value) {
|
|
5593
|
+
if (this._streamState !== value) {
|
|
5594
|
+
this.log.debug("stream state changed: ".concat(this._streamState, " -> ").concat(value));
|
|
5595
|
+
}
|
|
5569
5596
|
this._streamState = value;
|
|
5570
5597
|
}
|
|
5571
5598
|
constructor(mediaTrack, kind) {
|
|
@@ -5590,8 +5617,8 @@ class Track extends eventsExports.EventEmitter {
|
|
|
5590
5617
|
this.handleAppVisibilityChanged();
|
|
5591
5618
|
}
|
|
5592
5619
|
};
|
|
5593
|
-
this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track);
|
|
5594
5620
|
this.loggerContextCb = loggerOptions.loggerContextCb;
|
|
5621
|
+
this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track, () => this.logContext);
|
|
5595
5622
|
this.setMaxListeners(100);
|
|
5596
5623
|
this.kind = kind;
|
|
5597
5624
|
this._mediaStreamTrack = mediaTrack;
|
|
@@ -5659,9 +5686,11 @@ class Track extends eventsExports.EventEmitter {
|
|
|
5659
5686
|
this.emit(hasAudio ? TrackEvent.AudioPlaybackFailed : TrackEvent.VideoPlaybackFailed, e);
|
|
5660
5687
|
} else if (e.name === 'AbortError') {
|
|
5661
5688
|
// commonly triggered by another `play` request, only log for debugging purposes
|
|
5662
|
-
|
|
5689
|
+
this.log.debug("".concat(hasAudio ? 'audio' : 'video', " playback aborted, likely due to new play request"));
|
|
5663
5690
|
} else {
|
|
5664
|
-
|
|
5691
|
+
this.log.warn("could not playback ".concat(hasAudio ? 'audio' : 'video'), {
|
|
5692
|
+
error: e
|
|
5693
|
+
});
|
|
5665
5694
|
}
|
|
5666
5695
|
// If audio playback isn't allowed make sure we still play back the video
|
|
5667
5696
|
if (hasAudio && element && allMediaStreamTracks.some(tr => tr.kind === 'video') && e.name === 'NotAllowedError') {
|
|
@@ -5704,6 +5733,7 @@ class Track extends eventsExports.EventEmitter {
|
|
|
5704
5733
|
}
|
|
5705
5734
|
}
|
|
5706
5735
|
stop() {
|
|
5736
|
+
this.log.debug('stopping track');
|
|
5707
5737
|
this.stopMonitor();
|
|
5708
5738
|
this._mediaStreamTrack.stop();
|
|
5709
5739
|
}
|
|
@@ -5724,12 +5754,12 @@ class Track extends eventsExports.EventEmitter {
|
|
|
5724
5754
|
}
|
|
5725
5755
|
/** @internal */
|
|
5726
5756
|
updateLoggerOptions(loggerOptions) {
|
|
5727
|
-
if (loggerOptions.loggerName) {
|
|
5728
|
-
this.log = getLogger(loggerOptions.loggerName);
|
|
5729
|
-
}
|
|
5730
5757
|
if (loggerOptions.loggerContextCb) {
|
|
5731
5758
|
this.loggerContextCb = loggerOptions.loggerContextCb;
|
|
5732
5759
|
}
|
|
5760
|
+
if (loggerOptions.loggerName) {
|
|
5761
|
+
this.log = getLogger(loggerOptions.loggerName, () => this.logContext);
|
|
5762
|
+
}
|
|
5733
5763
|
}
|
|
5734
5764
|
recycleElement(element) {
|
|
5735
5765
|
if (element instanceof HTMLAudioElement) {
|