livekit-client 1.6.6 → 1.6.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/livekit-client.esm.mjs +508 -317
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/proto/google/protobuf/timestamp.d.ts +9 -2
- package/dist/src/proto/google/protobuf/timestamp.d.ts.map +1 -1
- package/dist/src/proto/livekit_models.d.ts +958 -58
- package/dist/src/proto/livekit_models.d.ts.map +1 -1
- package/dist/src/proto/livekit_rtc.d.ts +8394 -3725
- package/dist/src/proto/livekit_rtc.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +10 -3
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +1 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +18 -0
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
- package/dist/src/room/track/RemoteTrackPublication.d.ts +1 -1
- package/dist/src/room/track/RemoteTrackPublication.d.ts.map +1 -1
- package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/Track.d.ts +2 -1
- package/dist/src/room/track/Track.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +10 -2
- package/dist/src/room/track/options.d.ts.map +1 -1
- package/dist/src/room/types.d.ts +7 -0
- package/dist/src/room/types.d.ts.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/ts4.2/src/proto/google/protobuf/timestamp.d.ts +11 -2
- package/dist/ts4.2/src/proto/livekit_models.d.ts +1199 -177
- package/dist/ts4.2/src/proto/livekit_rtc.d.ts +9260 -4023
- package/dist/ts4.2/src/room/RTCEngine.d.ts +10 -3
- package/dist/ts4.2/src/room/Room.d.ts +1 -1
- package/dist/ts4.2/src/room/events.d.ts +1 -1
- package/dist/ts4.2/src/room/participant/LocalParticipant.d.ts +18 -0
- package/dist/ts4.2/src/room/track/RemoteTrackPublication.d.ts +1 -1
- package/dist/ts4.2/src/room/track/Track.d.ts +2 -1
- package/dist/ts4.2/src/room/track/options.d.ts +10 -2
- package/dist/ts4.2/src/room/types.d.ts +7 -0
- package/dist/ts4.2/src/version.d.ts +1 -1
- package/package.json +14 -14
- package/src/proto/google/protobuf/timestamp.ts +4 -0
- package/src/proto/livekit_models.ts +128 -31
- package/src/proto/livekit_rtc.ts +262 -161
- package/src/room/PCTransport.ts +2 -0
- package/src/room/RTCEngine.ts +50 -55
- package/src/room/Room.ts +60 -43
- package/src/room/events.ts +1 -1
- package/src/room/participant/LocalParticipant.ts +118 -28
- package/src/room/participant/RemoteParticipant.ts +2 -3
- package/src/room/track/RemoteTrackPublication.ts +3 -2
- package/src/room/track/RemoteVideoTrack.ts +0 -3
- package/src/room/track/Track.ts +2 -1
- package/src/room/track/options.ts +14 -2
- package/src/room/types.ts +9 -0
- package/src/version.ts +1 -1
@@ -4290,11 +4290,11 @@ function disconnectReasonToJSON(object) {
|
|
4290
4290
|
}
|
4291
4291
|
var ReconnectReason;
|
4292
4292
|
(function (ReconnectReason) {
|
4293
|
-
ReconnectReason[ReconnectReason["
|
4294
|
-
ReconnectReason[ReconnectReason["
|
4295
|
-
ReconnectReason[ReconnectReason["
|
4296
|
-
ReconnectReason[ReconnectReason["
|
4297
|
-
ReconnectReason[ReconnectReason["
|
4293
|
+
ReconnectReason[ReconnectReason["RR_UNKOWN"] = 0] = "RR_UNKOWN";
|
4294
|
+
ReconnectReason[ReconnectReason["RR_SIGNAL_DISCONNECTED"] = 1] = "RR_SIGNAL_DISCONNECTED";
|
4295
|
+
ReconnectReason[ReconnectReason["RR_PUBLISHER_FAILED"] = 2] = "RR_PUBLISHER_FAILED";
|
4296
|
+
ReconnectReason[ReconnectReason["RR_SUBSCRIBER_FAILED"] = 3] = "RR_SUBSCRIBER_FAILED";
|
4297
|
+
ReconnectReason[ReconnectReason["RR_SWITCH_CANDIDATE"] = 4] = "RR_SWITCH_CANDIDATE";
|
4298
4298
|
ReconnectReason[ReconnectReason["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
4299
4299
|
})(ReconnectReason || (ReconnectReason = {}));
|
4300
4300
|
var ParticipantInfo_State;
|
@@ -4629,6 +4629,9 @@ const Room$1 = {
|
|
4629
4629
|
message.activeRecording !== undefined && (obj.activeRecording = message.activeRecording);
|
4630
4630
|
return obj;
|
4631
4631
|
},
|
4632
|
+
create(base) {
|
4633
|
+
return Room$1.fromPartial(base !== null && base !== void 0 ? base : {});
|
4634
|
+
},
|
4632
4635
|
fromPartial(object) {
|
4633
4636
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
4634
4637
|
const message = createBaseRoom();
|
@@ -4694,6 +4697,9 @@ const Codec = {
|
|
4694
4697
|
message.fmtpLine !== undefined && (obj.fmtpLine = message.fmtpLine);
|
4695
4698
|
return obj;
|
4696
4699
|
},
|
4700
|
+
create(base) {
|
4701
|
+
return Codec.fromPartial(base !== null && base !== void 0 ? base : {});
|
4702
|
+
},
|
4697
4703
|
fromPartial(object) {
|
4698
4704
|
var _a, _b;
|
4699
4705
|
const message = createBaseCodec();
|
@@ -4800,6 +4806,9 @@ const ParticipantPermission = {
|
|
4800
4806
|
message.recorder !== undefined && (obj.recorder = message.recorder);
|
4801
4807
|
return obj;
|
4802
4808
|
},
|
4809
|
+
create(base) {
|
4810
|
+
return ParticipantPermission.fromPartial(base !== null && base !== void 0 ? base : {});
|
4811
|
+
},
|
4803
4812
|
fromPartial(object) {
|
4804
4813
|
var _a, _b, _c, _d, _e, _f;
|
4805
4814
|
const message = createBaseParticipantPermission();
|
@@ -4946,6 +4955,9 @@ const ParticipantInfo = {
|
|
4946
4955
|
message.isPublisher !== undefined && (obj.isPublisher = message.isPublisher);
|
4947
4956
|
return obj;
|
4948
4957
|
},
|
4958
|
+
create(base) {
|
4959
|
+
return ParticipantInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
4960
|
+
},
|
4949
4961
|
fromPartial(object) {
|
4950
4962
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
4951
4963
|
const message = createBaseParticipantInfo();
|
@@ -5034,6 +5046,9 @@ const SimulcastCodecInfo = {
|
|
5034
5046
|
}
|
5035
5047
|
return obj;
|
5036
5048
|
},
|
5049
|
+
create(base) {
|
5050
|
+
return SimulcastCodecInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
5051
|
+
},
|
5037
5052
|
fromPartial(object) {
|
5038
5053
|
var _a, _b, _c, _d;
|
5039
5054
|
const message = createBaseSimulcastCodecInfo();
|
@@ -5227,6 +5242,9 @@ const TrackInfo = {
|
|
5227
5242
|
message.encryption !== undefined && (obj.encryption = encryption_TypeToJSON(message.encryption));
|
5228
5243
|
return obj;
|
5229
5244
|
},
|
5245
|
+
create(base) {
|
5246
|
+
return TrackInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
5247
|
+
},
|
5230
5248
|
fromPartial(object) {
|
5231
5249
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
5232
5250
|
const message = createBaseTrackInfo();
|
@@ -5325,6 +5343,9 @@ const VideoLayer = {
|
|
5325
5343
|
message.ssrc !== undefined && (obj.ssrc = Math.round(message.ssrc));
|
5326
5344
|
return obj;
|
5327
5345
|
},
|
5346
|
+
create(base) {
|
5347
|
+
return VideoLayer.fromPartial(base !== null && base !== void 0 ? base : {});
|
5348
|
+
},
|
5328
5349
|
fromPartial(object) {
|
5329
5350
|
var _a, _b, _c, _d, _e;
|
5330
5351
|
const message = createBaseVideoLayer();
|
@@ -5345,15 +5366,17 @@ function createBaseDataPacket() {
|
|
5345
5366
|
const DataPacket = {
|
5346
5367
|
encode(message) {
|
5347
5368
|
let writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
|
5348
|
-
var _a
|
5369
|
+
var _a;
|
5349
5370
|
if (message.kind !== 0) {
|
5350
5371
|
writer.uint32(8).int32(message.kind);
|
5351
5372
|
}
|
5352
|
-
|
5353
|
-
|
5354
|
-
|
5355
|
-
|
5356
|
-
|
5373
|
+
switch ((_a = message.value) === null || _a === void 0 ? void 0 : _a.$case) {
|
5374
|
+
case "user":
|
5375
|
+
UserPacket.encode(message.value.user, writer.uint32(18).fork()).ldelim();
|
5376
|
+
break;
|
5377
|
+
case "speaker":
|
5378
|
+
ActiveSpeakerUpdate.encode(message.value.speaker, writer.uint32(26).fork()).ldelim();
|
5379
|
+
break;
|
5357
5380
|
}
|
5358
5381
|
return writer;
|
5359
5382
|
},
|
@@ -5406,6 +5429,9 @@ const DataPacket = {
|
|
5406
5429
|
((_d = message.value) === null || _d === void 0 ? void 0 : _d.$case) === "speaker" && (obj.speaker = ((_e = message.value) === null || _e === void 0 ? void 0 : _e.speaker) ? ActiveSpeakerUpdate.toJSON((_f = message.value) === null || _f === void 0 ? void 0 : _f.speaker) : undefined);
|
5407
5430
|
return obj;
|
5408
5431
|
},
|
5432
|
+
create(base) {
|
5433
|
+
return DataPacket.fromPartial(base !== null && base !== void 0 ? base : {});
|
5434
|
+
},
|
5409
5435
|
fromPartial(object) {
|
5410
5436
|
var _a, _b, _c, _d, _e, _f, _g;
|
5411
5437
|
const message = createBaseDataPacket();
|
@@ -5469,6 +5495,9 @@ const ActiveSpeakerUpdate = {
|
|
5469
5495
|
}
|
5470
5496
|
return obj;
|
5471
5497
|
},
|
5498
|
+
create(base) {
|
5499
|
+
return ActiveSpeakerUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
5500
|
+
},
|
5472
5501
|
fromPartial(object) {
|
5473
5502
|
var _a;
|
5474
5503
|
const message = createBaseActiveSpeakerUpdate();
|
@@ -5534,6 +5563,9 @@ const SpeakerInfo = {
|
|
5534
5563
|
message.active !== undefined && (obj.active = message.active);
|
5535
5564
|
return obj;
|
5536
5565
|
},
|
5566
|
+
create(base) {
|
5567
|
+
return SpeakerInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
5568
|
+
},
|
5537
5569
|
fromPartial(object) {
|
5538
5570
|
var _a, _b, _c;
|
5539
5571
|
const message = createBaseSpeakerInfo();
|
@@ -5547,7 +5579,8 @@ function createBaseUserPacket() {
|
|
5547
5579
|
return {
|
5548
5580
|
participantSid: "",
|
5549
5581
|
payload: new Uint8Array(),
|
5550
|
-
destinationSids: []
|
5582
|
+
destinationSids: [],
|
5583
|
+
topic: undefined
|
5551
5584
|
};
|
5552
5585
|
}
|
5553
5586
|
const UserPacket = {
|
@@ -5562,6 +5595,9 @@ const UserPacket = {
|
|
5562
5595
|
for (const v of message.destinationSids) {
|
5563
5596
|
writer.uint32(26).string(v);
|
5564
5597
|
}
|
5598
|
+
if (message.topic !== undefined) {
|
5599
|
+
writer.uint32(34).string(message.topic);
|
5600
|
+
}
|
5565
5601
|
return writer;
|
5566
5602
|
},
|
5567
5603
|
decode(input, length) {
|
@@ -5580,6 +5616,9 @@ const UserPacket = {
|
|
5580
5616
|
case 3:
|
5581
5617
|
message.destinationSids.push(reader.string());
|
5582
5618
|
break;
|
5619
|
+
case 4:
|
5620
|
+
message.topic = reader.string();
|
5621
|
+
break;
|
5583
5622
|
default:
|
5584
5623
|
reader.skipType(tag & 7);
|
5585
5624
|
break;
|
@@ -5591,7 +5630,8 @@ const UserPacket = {
|
|
5591
5630
|
return {
|
5592
5631
|
participantSid: isSet$1(object.participantSid) ? String(object.participantSid) : "",
|
5593
5632
|
payload: isSet$1(object.payload) ? bytesFromBase64(object.payload) : new Uint8Array(),
|
5594
|
-
destinationSids: Array.isArray(object === null || object === void 0 ? void 0 : object.destinationSids) ? object.destinationSids.map(e => String(e)) : []
|
5633
|
+
destinationSids: Array.isArray(object === null || object === void 0 ? void 0 : object.destinationSids) ? object.destinationSids.map(e => String(e)) : [],
|
5634
|
+
topic: isSet$1(object.topic) ? String(object.topic) : undefined
|
5595
5635
|
};
|
5596
5636
|
},
|
5597
5637
|
toJSON(message) {
|
@@ -5603,14 +5643,19 @@ const UserPacket = {
|
|
5603
5643
|
} else {
|
5604
5644
|
obj.destinationSids = [];
|
5605
5645
|
}
|
5646
|
+
message.topic !== undefined && (obj.topic = message.topic);
|
5606
5647
|
return obj;
|
5607
5648
|
},
|
5649
|
+
create(base) {
|
5650
|
+
return UserPacket.fromPartial(base !== null && base !== void 0 ? base : {});
|
5651
|
+
},
|
5608
5652
|
fromPartial(object) {
|
5609
|
-
var _a, _b, _c;
|
5653
|
+
var _a, _b, _c, _d;
|
5610
5654
|
const message = createBaseUserPacket();
|
5611
5655
|
message.participantSid = (_a = object.participantSid) !== null && _a !== void 0 ? _a : "";
|
5612
5656
|
message.payload = (_b = object.payload) !== null && _b !== void 0 ? _b : new Uint8Array();
|
5613
5657
|
message.destinationSids = ((_c = object.destinationSids) === null || _c === void 0 ? void 0 : _c.map(e => e)) || [];
|
5658
|
+
message.topic = (_d = object.topic) !== null && _d !== void 0 ? _d : undefined;
|
5614
5659
|
return message;
|
5615
5660
|
}
|
5616
5661
|
};
|
@@ -5667,6 +5712,9 @@ const ParticipantTracks = {
|
|
5667
5712
|
}
|
5668
5713
|
return obj;
|
5669
5714
|
},
|
5715
|
+
create(base) {
|
5716
|
+
return ParticipantTracks.fromPartial(base !== null && base !== void 0 ? base : {});
|
5717
|
+
},
|
5670
5718
|
fromPartial(object) {
|
5671
5719
|
var _a, _b;
|
5672
5720
|
const message = createBaseParticipantTracks();
|
@@ -5760,6 +5808,9 @@ const ServerInfo = {
|
|
5760
5808
|
message.debugInfo !== undefined && (obj.debugInfo = message.debugInfo);
|
5761
5809
|
return obj;
|
5762
5810
|
},
|
5811
|
+
create(base) {
|
5812
|
+
return ServerInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
5813
|
+
},
|
5763
5814
|
fromPartial(object) {
|
5764
5815
|
var _a, _b, _c, _d, _e, _f;
|
5765
5816
|
const message = createBaseServerInfo();
|
@@ -5893,6 +5944,9 @@ const ClientInfo = {
|
|
5893
5944
|
message.network !== undefined && (obj.network = message.network);
|
5894
5945
|
return obj;
|
5895
5946
|
},
|
5947
|
+
create(base) {
|
5948
|
+
return ClientInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
5949
|
+
},
|
5896
5950
|
fromPartial(object) {
|
5897
5951
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
5898
5952
|
const message = createBaseClientInfo();
|
@@ -5985,6 +6039,9 @@ const ClientConfiguration = {
|
|
5985
6039
|
message.forceRelay !== undefined && (obj.forceRelay = clientConfigSettingToJSON(message.forceRelay));
|
5986
6040
|
return obj;
|
5987
6041
|
},
|
6042
|
+
create(base) {
|
6043
|
+
return ClientConfiguration.fromPartial(base !== null && base !== void 0 ? base : {});
|
6044
|
+
},
|
5988
6045
|
fromPartial(object) {
|
5989
6046
|
var _a, _b;
|
5990
6047
|
const message = createBaseClientConfiguration();
|
@@ -6036,6 +6093,9 @@ const VideoConfiguration = {
|
|
6036
6093
|
message.hardwareEncoder !== undefined && (obj.hardwareEncoder = clientConfigSettingToJSON(message.hardwareEncoder));
|
6037
6094
|
return obj;
|
6038
6095
|
},
|
6096
|
+
create(base) {
|
6097
|
+
return VideoConfiguration.fromPartial(base !== null && base !== void 0 ? base : {});
|
6098
|
+
},
|
6039
6099
|
fromPartial(object) {
|
6040
6100
|
var _a;
|
6041
6101
|
const message = createBaseVideoConfiguration();
|
@@ -6087,6 +6147,9 @@ const DisabledCodecs = {
|
|
6087
6147
|
}
|
6088
6148
|
return obj;
|
6089
6149
|
},
|
6150
|
+
create(base) {
|
6151
|
+
return DisabledCodecs.fromPartial(base !== null && base !== void 0 ? base : {});
|
6152
|
+
},
|
6090
6153
|
fromPartial(object) {
|
6091
6154
|
var _a;
|
6092
6155
|
const message = createBaseDisabledCodecs();
|
@@ -9426,51 +9489,53 @@ function createBaseSignalRequest() {
|
|
9426
9489
|
const SignalRequest = {
|
9427
9490
|
encode(message) {
|
9428
9491
|
let writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
|
9429
|
-
var _a
|
9430
|
-
|
9431
|
-
|
9432
|
-
|
9433
|
-
|
9434
|
-
|
9435
|
-
|
9436
|
-
|
9437
|
-
|
9438
|
-
|
9439
|
-
|
9440
|
-
|
9441
|
-
|
9442
|
-
|
9443
|
-
|
9444
|
-
|
9445
|
-
|
9446
|
-
|
9447
|
-
|
9448
|
-
|
9449
|
-
|
9450
|
-
|
9451
|
-
|
9452
|
-
|
9453
|
-
|
9454
|
-
|
9455
|
-
|
9456
|
-
|
9457
|
-
|
9458
|
-
|
9459
|
-
|
9460
|
-
|
9461
|
-
|
9462
|
-
|
9463
|
-
|
9464
|
-
|
9465
|
-
|
9466
|
-
|
9467
|
-
|
9468
|
-
|
9469
|
-
|
9470
|
-
|
9471
|
-
|
9472
|
-
|
9473
|
-
|
9492
|
+
var _a;
|
9493
|
+
switch ((_a = message.message) === null || _a === void 0 ? void 0 : _a.$case) {
|
9494
|
+
case "offer":
|
9495
|
+
SessionDescription.encode(message.message.offer, writer.uint32(10).fork()).ldelim();
|
9496
|
+
break;
|
9497
|
+
case "answer":
|
9498
|
+
SessionDescription.encode(message.message.answer, writer.uint32(18).fork()).ldelim();
|
9499
|
+
break;
|
9500
|
+
case "trickle":
|
9501
|
+
TrickleRequest.encode(message.message.trickle, writer.uint32(26).fork()).ldelim();
|
9502
|
+
break;
|
9503
|
+
case "addTrack":
|
9504
|
+
AddTrackRequest.encode(message.message.addTrack, writer.uint32(34).fork()).ldelim();
|
9505
|
+
break;
|
9506
|
+
case "mute":
|
9507
|
+
MuteTrackRequest.encode(message.message.mute, writer.uint32(42).fork()).ldelim();
|
9508
|
+
break;
|
9509
|
+
case "subscription":
|
9510
|
+
UpdateSubscription.encode(message.message.subscription, writer.uint32(50).fork()).ldelim();
|
9511
|
+
break;
|
9512
|
+
case "trackSetting":
|
9513
|
+
UpdateTrackSettings.encode(message.message.trackSetting, writer.uint32(58).fork()).ldelim();
|
9514
|
+
break;
|
9515
|
+
case "leave":
|
9516
|
+
LeaveRequest.encode(message.message.leave, writer.uint32(66).fork()).ldelim();
|
9517
|
+
break;
|
9518
|
+
case "updateLayers":
|
9519
|
+
UpdateVideoLayers.encode(message.message.updateLayers, writer.uint32(82).fork()).ldelim();
|
9520
|
+
break;
|
9521
|
+
case "subscriptionPermission":
|
9522
|
+
SubscriptionPermission.encode(message.message.subscriptionPermission, writer.uint32(90).fork()).ldelim();
|
9523
|
+
break;
|
9524
|
+
case "syncState":
|
9525
|
+
SyncState.encode(message.message.syncState, writer.uint32(98).fork()).ldelim();
|
9526
|
+
break;
|
9527
|
+
case "simulate":
|
9528
|
+
SimulateScenario.encode(message.message.simulate, writer.uint32(106).fork()).ldelim();
|
9529
|
+
break;
|
9530
|
+
case "ping":
|
9531
|
+
writer.uint32(112).int64(message.message.ping);
|
9532
|
+
break;
|
9533
|
+
case "updateMetadata":
|
9534
|
+
UpdateParticipantMetadata.encode(message.message.updateMetadata, writer.uint32(122).fork()).ldelim();
|
9535
|
+
break;
|
9536
|
+
case "pingReq":
|
9537
|
+
Ping.encode(message.message.pingReq, writer.uint32(130).fork()).ldelim();
|
9538
|
+
break;
|
9474
9539
|
}
|
9475
9540
|
return writer;
|
9476
9541
|
},
|
@@ -9648,6 +9713,9 @@ const SignalRequest = {
|
|
9648
9713
|
((_17 = message.message) === null || _17 === void 0 ? void 0 : _17.$case) === "pingReq" && (obj.pingReq = ((_18 = message.message) === null || _18 === void 0 ? void 0 : _18.pingReq) ? Ping.toJSON((_19 = message.message) === null || _19 === void 0 ? void 0 : _19.pingReq) : undefined);
|
9649
9714
|
return obj;
|
9650
9715
|
},
|
9716
|
+
create(base) {
|
9717
|
+
return SignalRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
9718
|
+
},
|
9651
9719
|
fromPartial(object) {
|
9652
9720
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20;
|
9653
9721
|
const message = createBaseSignalRequest();
|
@@ -9752,63 +9820,65 @@ function createBaseSignalResponse() {
|
|
9752
9820
|
const SignalResponse = {
|
9753
9821
|
encode(message) {
|
9754
9822
|
let writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
|
9755
|
-
var _a
|
9756
|
-
|
9757
|
-
|
9758
|
-
|
9759
|
-
|
9760
|
-
|
9761
|
-
|
9762
|
-
|
9763
|
-
|
9764
|
-
|
9765
|
-
|
9766
|
-
|
9767
|
-
|
9768
|
-
|
9769
|
-
|
9770
|
-
|
9771
|
-
|
9772
|
-
|
9773
|
-
|
9774
|
-
|
9775
|
-
|
9776
|
-
|
9777
|
-
|
9778
|
-
|
9779
|
-
|
9780
|
-
|
9781
|
-
|
9782
|
-
|
9783
|
-
|
9784
|
-
|
9785
|
-
|
9786
|
-
|
9787
|
-
|
9788
|
-
|
9789
|
-
|
9790
|
-
|
9791
|
-
|
9792
|
-
|
9793
|
-
|
9794
|
-
|
9795
|
-
|
9796
|
-
|
9797
|
-
|
9798
|
-
|
9799
|
-
|
9800
|
-
|
9801
|
-
|
9802
|
-
|
9803
|
-
|
9804
|
-
|
9805
|
-
|
9806
|
-
|
9807
|
-
|
9808
|
-
|
9809
|
-
|
9810
|
-
|
9811
|
-
|
9823
|
+
var _a;
|
9824
|
+
switch ((_a = message.message) === null || _a === void 0 ? void 0 : _a.$case) {
|
9825
|
+
case "join":
|
9826
|
+
JoinResponse.encode(message.message.join, writer.uint32(10).fork()).ldelim();
|
9827
|
+
break;
|
9828
|
+
case "answer":
|
9829
|
+
SessionDescription.encode(message.message.answer, writer.uint32(18).fork()).ldelim();
|
9830
|
+
break;
|
9831
|
+
case "offer":
|
9832
|
+
SessionDescription.encode(message.message.offer, writer.uint32(26).fork()).ldelim();
|
9833
|
+
break;
|
9834
|
+
case "trickle":
|
9835
|
+
TrickleRequest.encode(message.message.trickle, writer.uint32(34).fork()).ldelim();
|
9836
|
+
break;
|
9837
|
+
case "update":
|
9838
|
+
ParticipantUpdate.encode(message.message.update, writer.uint32(42).fork()).ldelim();
|
9839
|
+
break;
|
9840
|
+
case "trackPublished":
|
9841
|
+
TrackPublishedResponse.encode(message.message.trackPublished, writer.uint32(50).fork()).ldelim();
|
9842
|
+
break;
|
9843
|
+
case "leave":
|
9844
|
+
LeaveRequest.encode(message.message.leave, writer.uint32(66).fork()).ldelim();
|
9845
|
+
break;
|
9846
|
+
case "mute":
|
9847
|
+
MuteTrackRequest.encode(message.message.mute, writer.uint32(74).fork()).ldelim();
|
9848
|
+
break;
|
9849
|
+
case "speakersChanged":
|
9850
|
+
SpeakersChanged.encode(message.message.speakersChanged, writer.uint32(82).fork()).ldelim();
|
9851
|
+
break;
|
9852
|
+
case "roomUpdate":
|
9853
|
+
RoomUpdate.encode(message.message.roomUpdate, writer.uint32(90).fork()).ldelim();
|
9854
|
+
break;
|
9855
|
+
case "connectionQuality":
|
9856
|
+
ConnectionQualityUpdate.encode(message.message.connectionQuality, writer.uint32(98).fork()).ldelim();
|
9857
|
+
break;
|
9858
|
+
case "streamStateUpdate":
|
9859
|
+
StreamStateUpdate.encode(message.message.streamStateUpdate, writer.uint32(106).fork()).ldelim();
|
9860
|
+
break;
|
9861
|
+
case "subscribedQualityUpdate":
|
9862
|
+
SubscribedQualityUpdate.encode(message.message.subscribedQualityUpdate, writer.uint32(114).fork()).ldelim();
|
9863
|
+
break;
|
9864
|
+
case "subscriptionPermissionUpdate":
|
9865
|
+
SubscriptionPermissionUpdate.encode(message.message.subscriptionPermissionUpdate, writer.uint32(122).fork()).ldelim();
|
9866
|
+
break;
|
9867
|
+
case "refreshToken":
|
9868
|
+
writer.uint32(130).string(message.message.refreshToken);
|
9869
|
+
break;
|
9870
|
+
case "trackUnpublished":
|
9871
|
+
TrackUnpublishedResponse.encode(message.message.trackUnpublished, writer.uint32(138).fork()).ldelim();
|
9872
|
+
break;
|
9873
|
+
case "pong":
|
9874
|
+
writer.uint32(144).int64(message.message.pong);
|
9875
|
+
break;
|
9876
|
+
case "reconnect":
|
9877
|
+
ReconnectResponse.encode(message.message.reconnect, writer.uint32(154).fork()).ldelim();
|
9878
|
+
break;
|
9879
|
+
case "pongResp":
|
9880
|
+
Pong.encode(message.message.pongResp, writer.uint32(162).fork()).ldelim();
|
9881
|
+
break;
|
9812
9882
|
}
|
9813
9883
|
return writer;
|
9814
9884
|
},
|
@@ -10026,6 +10096,9 @@ const SignalResponse = {
|
|
10026
10096
|
((_28 = message.message) === null || _28 === void 0 ? void 0 : _28.$case) === "pongResp" && (obj.pongResp = ((_29 = message.message) === null || _29 === void 0 ? void 0 : _29.pongResp) ? Pong.toJSON((_30 = message.message) === null || _30 === void 0 ? void 0 : _30.pongResp) : undefined);
|
10027
10097
|
return obj;
|
10028
10098
|
},
|
10099
|
+
create(base) {
|
10100
|
+
return SignalResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
10101
|
+
},
|
10029
10102
|
fromPartial(object) {
|
10030
10103
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32;
|
10031
10104
|
const message = createBaseSignalResponse();
|
@@ -10204,6 +10277,9 @@ const SimulcastCodec = {
|
|
10204
10277
|
message.enableSimulcastLayers !== undefined && (obj.enableSimulcastLayers = message.enableSimulcastLayers);
|
10205
10278
|
return obj;
|
10206
10279
|
},
|
10280
|
+
create(base) {
|
10281
|
+
return SimulcastCodec.fromPartial(base !== null && base !== void 0 ? base : {});
|
10282
|
+
},
|
10207
10283
|
fromPartial(object) {
|
10208
10284
|
var _a, _b, _c;
|
10209
10285
|
const message = createBaseSimulcastCodec();
|
@@ -10378,6 +10454,9 @@ const AddTrackRequest = {
|
|
10378
10454
|
message.encryption !== undefined && (obj.encryption = encryption_TypeToJSON(message.encryption));
|
10379
10455
|
return obj;
|
10380
10456
|
},
|
10457
|
+
create(base) {
|
10458
|
+
return AddTrackRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
10459
|
+
},
|
10381
10460
|
fromPartial(object) {
|
10382
10461
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
10383
10462
|
const message = createBaseAddTrackRequest();
|
@@ -10447,6 +10526,9 @@ const TrickleRequest = {
|
|
10447
10526
|
message.target !== undefined && (obj.target = signalTargetToJSON(message.target));
|
10448
10527
|
return obj;
|
10449
10528
|
},
|
10529
|
+
create(base) {
|
10530
|
+
return TrickleRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
10531
|
+
},
|
10450
10532
|
fromPartial(object) {
|
10451
10533
|
var _a, _b;
|
10452
10534
|
const message = createBaseTrickleRequest();
|
@@ -10504,6 +10586,9 @@ const MuteTrackRequest = {
|
|
10504
10586
|
message.muted !== undefined && (obj.muted = message.muted);
|
10505
10587
|
return obj;
|
10506
10588
|
},
|
10589
|
+
create(base) {
|
10590
|
+
return MuteTrackRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
10591
|
+
},
|
10507
10592
|
fromPartial(object) {
|
10508
10593
|
var _a, _b;
|
10509
10594
|
const message = createBaseMuteTrackRequest();
|
@@ -10659,6 +10744,9 @@ const JoinResponse = {
|
|
10659
10744
|
message.serverInfo !== undefined && (obj.serverInfo = message.serverInfo ? ServerInfo.toJSON(message.serverInfo) : undefined);
|
10660
10745
|
return obj;
|
10661
10746
|
},
|
10747
|
+
create(base) {
|
10748
|
+
return JoinResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
10749
|
+
},
|
10662
10750
|
fromPartial(object) {
|
10663
10751
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
10664
10752
|
const message = createBaseJoinResponse();
|
@@ -10680,10 +10768,7 @@ const JoinResponse = {
|
|
10680
10768
|
function createBaseReconnectResponse() {
|
10681
10769
|
return {
|
10682
10770
|
iceServers: [],
|
10683
|
-
clientConfiguration: undefined
|
10684
|
-
room: undefined,
|
10685
|
-
participant: undefined,
|
10686
|
-
otherParticipants: []
|
10771
|
+
clientConfiguration: undefined
|
10687
10772
|
};
|
10688
10773
|
}
|
10689
10774
|
const ReconnectResponse = {
|
@@ -10695,15 +10780,6 @@ const ReconnectResponse = {
|
|
10695
10780
|
if (message.clientConfiguration !== undefined) {
|
10696
10781
|
ClientConfiguration.encode(message.clientConfiguration, writer.uint32(18).fork()).ldelim();
|
10697
10782
|
}
|
10698
|
-
if (message.room !== undefined) {
|
10699
|
-
Room$1.encode(message.room, writer.uint32(26).fork()).ldelim();
|
10700
|
-
}
|
10701
|
-
if (message.participant !== undefined) {
|
10702
|
-
ParticipantInfo.encode(message.participant, writer.uint32(34).fork()).ldelim();
|
10703
|
-
}
|
10704
|
-
for (const v of message.otherParticipants) {
|
10705
|
-
ParticipantInfo.encode(v, writer.uint32(42).fork()).ldelim();
|
10706
|
-
}
|
10707
10783
|
return writer;
|
10708
10784
|
},
|
10709
10785
|
decode(input, length) {
|
@@ -10719,15 +10795,6 @@ const ReconnectResponse = {
|
|
10719
10795
|
case 2:
|
10720
10796
|
message.clientConfiguration = ClientConfiguration.decode(reader, reader.uint32());
|
10721
10797
|
break;
|
10722
|
-
case 3:
|
10723
|
-
message.room = Room$1.decode(reader, reader.uint32());
|
10724
|
-
break;
|
10725
|
-
case 4:
|
10726
|
-
message.participant = ParticipantInfo.decode(reader, reader.uint32());
|
10727
|
-
break;
|
10728
|
-
case 5:
|
10729
|
-
message.otherParticipants.push(ParticipantInfo.decode(reader, reader.uint32()));
|
10730
|
-
break;
|
10731
10798
|
default:
|
10732
10799
|
reader.skipType(tag & 7);
|
10733
10800
|
break;
|
@@ -10738,10 +10805,7 @@ const ReconnectResponse = {
|
|
10738
10805
|
fromJSON(object) {
|
10739
10806
|
return {
|
10740
10807
|
iceServers: Array.isArray(object === null || object === void 0 ? void 0 : object.iceServers) ? object.iceServers.map(e => ICEServer.fromJSON(e)) : [],
|
10741
|
-
clientConfiguration: isSet(object.clientConfiguration) ? ClientConfiguration.fromJSON(object.clientConfiguration) : undefined
|
10742
|
-
room: isSet(object.room) ? Room$1.fromJSON(object.room) : undefined,
|
10743
|
-
participant: isSet(object.participant) ? ParticipantInfo.fromJSON(object.participant) : undefined,
|
10744
|
-
otherParticipants: Array.isArray(object === null || object === void 0 ? void 0 : object.otherParticipants) ? object.otherParticipants.map(e => ParticipantInfo.fromJSON(e)) : []
|
10808
|
+
clientConfiguration: isSet(object.clientConfiguration) ? ClientConfiguration.fromJSON(object.clientConfiguration) : undefined
|
10745
10809
|
};
|
10746
10810
|
},
|
10747
10811
|
toJSON(message) {
|
@@ -10752,23 +10816,16 @@ const ReconnectResponse = {
|
|
10752
10816
|
obj.iceServers = [];
|
10753
10817
|
}
|
10754
10818
|
message.clientConfiguration !== undefined && (obj.clientConfiguration = message.clientConfiguration ? ClientConfiguration.toJSON(message.clientConfiguration) : undefined);
|
10755
|
-
message.room !== undefined && (obj.room = message.room ? Room$1.toJSON(message.room) : undefined);
|
10756
|
-
message.participant !== undefined && (obj.participant = message.participant ? ParticipantInfo.toJSON(message.participant) : undefined);
|
10757
|
-
if (message.otherParticipants) {
|
10758
|
-
obj.otherParticipants = message.otherParticipants.map(e => e ? ParticipantInfo.toJSON(e) : undefined);
|
10759
|
-
} else {
|
10760
|
-
obj.otherParticipants = [];
|
10761
|
-
}
|
10762
10819
|
return obj;
|
10763
10820
|
},
|
10821
|
+
create(base) {
|
10822
|
+
return ReconnectResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
10823
|
+
},
|
10764
10824
|
fromPartial(object) {
|
10765
|
-
var _a
|
10825
|
+
var _a;
|
10766
10826
|
const message = createBaseReconnectResponse();
|
10767
10827
|
message.iceServers = ((_a = object.iceServers) === null || _a === void 0 ? void 0 : _a.map(e => ICEServer.fromPartial(e))) || [];
|
10768
10828
|
message.clientConfiguration = object.clientConfiguration !== undefined && object.clientConfiguration !== null ? ClientConfiguration.fromPartial(object.clientConfiguration) : undefined;
|
10769
|
-
message.room = object.room !== undefined && object.room !== null ? Room$1.fromPartial(object.room) : undefined;
|
10770
|
-
message.participant = object.participant !== undefined && object.participant !== null ? ParticipantInfo.fromPartial(object.participant) : undefined;
|
10771
|
-
message.otherParticipants = ((_b = object.otherParticipants) === null || _b === void 0 ? void 0 : _b.map(e => ParticipantInfo.fromPartial(e))) || [];
|
10772
10829
|
return message;
|
10773
10830
|
}
|
10774
10831
|
};
|
@@ -10821,6 +10878,9 @@ const TrackPublishedResponse = {
|
|
10821
10878
|
message.track !== undefined && (obj.track = message.track ? TrackInfo.toJSON(message.track) : undefined);
|
10822
10879
|
return obj;
|
10823
10880
|
},
|
10881
|
+
create(base) {
|
10882
|
+
return TrackPublishedResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
10883
|
+
},
|
10824
10884
|
fromPartial(object) {
|
10825
10885
|
var _a;
|
10826
10886
|
const message = createBaseTrackPublishedResponse();
|
@@ -10869,6 +10929,9 @@ const TrackUnpublishedResponse = {
|
|
10869
10929
|
message.trackSid !== undefined && (obj.trackSid = message.trackSid);
|
10870
10930
|
return obj;
|
10871
10931
|
},
|
10932
|
+
create(base) {
|
10933
|
+
return TrackUnpublishedResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
10934
|
+
},
|
10872
10935
|
fromPartial(object) {
|
10873
10936
|
var _a;
|
10874
10937
|
const message = createBaseTrackUnpublishedResponse();
|
@@ -10925,6 +10988,9 @@ const SessionDescription = {
|
|
10925
10988
|
message.sdp !== undefined && (obj.sdp = message.sdp);
|
10926
10989
|
return obj;
|
10927
10990
|
},
|
10991
|
+
create(base) {
|
10992
|
+
return SessionDescription.fromPartial(base !== null && base !== void 0 ? base : {});
|
10993
|
+
},
|
10928
10994
|
fromPartial(object) {
|
10929
10995
|
var _a, _b;
|
10930
10996
|
const message = createBaseSessionDescription();
|
@@ -10977,6 +11043,9 @@ const ParticipantUpdate = {
|
|
10977
11043
|
}
|
10978
11044
|
return obj;
|
10979
11045
|
},
|
11046
|
+
create(base) {
|
11047
|
+
return ParticipantUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
11048
|
+
},
|
10980
11049
|
fromPartial(object) {
|
10981
11050
|
var _a;
|
10982
11051
|
const message = createBaseParticipantUpdate();
|
@@ -11050,6 +11119,9 @@ const UpdateSubscription = {
|
|
11050
11119
|
}
|
11051
11120
|
return obj;
|
11052
11121
|
},
|
11122
|
+
create(base) {
|
11123
|
+
return UpdateSubscription.fromPartial(base !== null && base !== void 0 ? base : {});
|
11124
|
+
},
|
11053
11125
|
fromPartial(object) {
|
11054
11126
|
var _a, _b, _c;
|
11055
11127
|
const message = createBaseUpdateSubscription();
|
@@ -11157,6 +11229,9 @@ const UpdateTrackSettings = {
|
|
11157
11229
|
message.priority !== undefined && (obj.priority = Math.round(message.priority));
|
11158
11230
|
return obj;
|
11159
11231
|
},
|
11232
|
+
create(base) {
|
11233
|
+
return UpdateTrackSettings.fromPartial(base !== null && base !== void 0 ? base : {});
|
11234
|
+
},
|
11160
11235
|
fromPartial(object) {
|
11161
11236
|
var _a, _b, _c, _d, _e, _f, _g;
|
11162
11237
|
const message = createBaseUpdateTrackSettings();
|
@@ -11219,6 +11294,9 @@ const LeaveRequest = {
|
|
11219
11294
|
message.reason !== undefined && (obj.reason = disconnectReasonToJSON(message.reason));
|
11220
11295
|
return obj;
|
11221
11296
|
},
|
11297
|
+
create(base) {
|
11298
|
+
return LeaveRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
11299
|
+
},
|
11222
11300
|
fromPartial(object) {
|
11223
11301
|
var _a, _b;
|
11224
11302
|
const message = createBaseLeaveRequest();
|
@@ -11280,6 +11358,9 @@ const UpdateVideoLayers = {
|
|
11280
11358
|
}
|
11281
11359
|
return obj;
|
11282
11360
|
},
|
11361
|
+
create(base) {
|
11362
|
+
return UpdateVideoLayers.fromPartial(base !== null && base !== void 0 ? base : {});
|
11363
|
+
},
|
11283
11364
|
fromPartial(object) {
|
11284
11365
|
var _a, _b;
|
11285
11366
|
const message = createBaseUpdateVideoLayers();
|
@@ -11328,6 +11409,9 @@ const UpdateParticipantMetadata = {
|
|
11328
11409
|
message.metadata !== undefined && (obj.metadata = message.metadata);
|
11329
11410
|
return obj;
|
11330
11411
|
},
|
11412
|
+
create(base) {
|
11413
|
+
return UpdateParticipantMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
|
11414
|
+
},
|
11331
11415
|
fromPartial(object) {
|
11332
11416
|
var _a;
|
11333
11417
|
const message = createBaseUpdateParticipantMetadata();
|
@@ -11397,6 +11481,9 @@ const ICEServer = {
|
|
11397
11481
|
message.credential !== undefined && (obj.credential = message.credential);
|
11398
11482
|
return obj;
|
11399
11483
|
},
|
11484
|
+
create(base) {
|
11485
|
+
return ICEServer.fromPartial(base !== null && base !== void 0 ? base : {});
|
11486
|
+
},
|
11400
11487
|
fromPartial(object) {
|
11401
11488
|
var _a, _b, _c;
|
11402
11489
|
const message = createBaseICEServer();
|
@@ -11450,6 +11537,9 @@ const SpeakersChanged = {
|
|
11450
11537
|
}
|
11451
11538
|
return obj;
|
11452
11539
|
},
|
11540
|
+
create(base) {
|
11541
|
+
return SpeakersChanged.fromPartial(base !== null && base !== void 0 ? base : {});
|
11542
|
+
},
|
11453
11543
|
fromPartial(object) {
|
11454
11544
|
var _a;
|
11455
11545
|
const message = createBaseSpeakersChanged();
|
@@ -11497,6 +11587,9 @@ const RoomUpdate = {
|
|
11497
11587
|
message.room !== undefined && (obj.room = message.room ? Room$1.toJSON(message.room) : undefined);
|
11498
11588
|
return obj;
|
11499
11589
|
},
|
11590
|
+
create(base) {
|
11591
|
+
return RoomUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
11592
|
+
},
|
11500
11593
|
fromPartial(object) {
|
11501
11594
|
const message = createBaseRoomUpdate();
|
11502
11595
|
message.room = object.room !== undefined && object.room !== null ? Room$1.fromPartial(object.room) : undefined;
|
@@ -11561,6 +11654,9 @@ const ConnectionQualityInfo = {
|
|
11561
11654
|
message.score !== undefined && (obj.score = message.score);
|
11562
11655
|
return obj;
|
11563
11656
|
},
|
11657
|
+
create(base) {
|
11658
|
+
return ConnectionQualityInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
11659
|
+
},
|
11564
11660
|
fromPartial(object) {
|
11565
11661
|
var _a, _b, _c;
|
11566
11662
|
const message = createBaseConnectionQualityInfo();
|
@@ -11614,6 +11710,9 @@ const ConnectionQualityUpdate = {
|
|
11614
11710
|
}
|
11615
11711
|
return obj;
|
11616
11712
|
},
|
11713
|
+
create(base) {
|
11714
|
+
return ConnectionQualityUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
11715
|
+
},
|
11617
11716
|
fromPartial(object) {
|
11618
11717
|
var _a;
|
11619
11718
|
const message = createBaseConnectionQualityUpdate();
|
@@ -11679,6 +11778,9 @@ const StreamStateInfo = {
|
|
11679
11778
|
message.state !== undefined && (obj.state = streamStateToJSON(message.state));
|
11680
11779
|
return obj;
|
11681
11780
|
},
|
11781
|
+
create(base) {
|
11782
|
+
return StreamStateInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
11783
|
+
},
|
11682
11784
|
fromPartial(object) {
|
11683
11785
|
var _a, _b, _c;
|
11684
11786
|
const message = createBaseStreamStateInfo();
|
@@ -11732,6 +11834,9 @@ const StreamStateUpdate = {
|
|
11732
11834
|
}
|
11733
11835
|
return obj;
|
11734
11836
|
},
|
11837
|
+
create(base) {
|
11838
|
+
return StreamStateUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
11839
|
+
},
|
11735
11840
|
fromPartial(object) {
|
11736
11841
|
var _a;
|
11737
11842
|
const message = createBaseStreamStateUpdate();
|
@@ -11788,6 +11893,9 @@ const SubscribedQuality = {
|
|
11788
11893
|
message.enabled !== undefined && (obj.enabled = message.enabled);
|
11789
11894
|
return obj;
|
11790
11895
|
},
|
11896
|
+
create(base) {
|
11897
|
+
return SubscribedQuality.fromPartial(base !== null && base !== void 0 ? base : {});
|
11898
|
+
},
|
11791
11899
|
fromPartial(object) {
|
11792
11900
|
var _a, _b;
|
11793
11901
|
const message = createBaseSubscribedQuality();
|
@@ -11849,6 +11957,9 @@ const SubscribedCodec = {
|
|
11849
11957
|
}
|
11850
11958
|
return obj;
|
11851
11959
|
},
|
11960
|
+
create(base) {
|
11961
|
+
return SubscribedCodec.fromPartial(base !== null && base !== void 0 ? base : {});
|
11962
|
+
},
|
11852
11963
|
fromPartial(object) {
|
11853
11964
|
var _a, _b;
|
11854
11965
|
const message = createBaseSubscribedCodec();
|
@@ -11923,6 +12034,9 @@ const SubscribedQualityUpdate = {
|
|
11923
12034
|
}
|
11924
12035
|
return obj;
|
11925
12036
|
},
|
12037
|
+
create(base) {
|
12038
|
+
return SubscribedQualityUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
12039
|
+
},
|
11926
12040
|
fromPartial(object) {
|
11927
12041
|
var _a, _b, _c;
|
11928
12042
|
const message = createBaseSubscribedQualityUpdate();
|
@@ -12003,6 +12117,9 @@ const TrackPermission = {
|
|
12003
12117
|
message.participantIdentity !== undefined && (obj.participantIdentity = message.participantIdentity);
|
12004
12118
|
return obj;
|
12005
12119
|
},
|
12120
|
+
create(base) {
|
12121
|
+
return TrackPermission.fromPartial(base !== null && base !== void 0 ? base : {});
|
12122
|
+
},
|
12006
12123
|
fromPartial(object) {
|
12007
12124
|
var _a, _b, _c, _d;
|
12008
12125
|
const message = createBaseTrackPermission();
|
@@ -12066,6 +12183,9 @@ const SubscriptionPermission = {
|
|
12066
12183
|
}
|
12067
12184
|
return obj;
|
12068
12185
|
},
|
12186
|
+
create(base) {
|
12187
|
+
return SubscriptionPermission.fromPartial(base !== null && base !== void 0 ? base : {});
|
12188
|
+
},
|
12069
12189
|
fromPartial(object) {
|
12070
12190
|
var _a, _b;
|
12071
12191
|
const message = createBaseSubscriptionPermission();
|
@@ -12132,6 +12252,9 @@ const SubscriptionPermissionUpdate = {
|
|
12132
12252
|
message.allowed !== undefined && (obj.allowed = message.allowed);
|
12133
12253
|
return obj;
|
12134
12254
|
},
|
12255
|
+
create(base) {
|
12256
|
+
return SubscriptionPermissionUpdate.fromPartial(base !== null && base !== void 0 ? base : {});
|
12257
|
+
},
|
12135
12258
|
fromPartial(object) {
|
12136
12259
|
var _a, _b, _c;
|
12137
12260
|
const message = createBaseSubscriptionPermissionUpdate();
|
@@ -12225,6 +12348,9 @@ const SyncState = {
|
|
12225
12348
|
message.offer !== undefined && (obj.offer = message.offer ? SessionDescription.toJSON(message.offer) : undefined);
|
12226
12349
|
return obj;
|
12227
12350
|
},
|
12351
|
+
create(base) {
|
12352
|
+
return SyncState.fromPartial(base !== null && base !== void 0 ? base : {});
|
12353
|
+
},
|
12228
12354
|
fromPartial(object) {
|
12229
12355
|
var _a, _b;
|
12230
12356
|
const message = createBaseSyncState();
|
@@ -12294,6 +12420,9 @@ const DataChannelInfo = {
|
|
12294
12420
|
message.target !== undefined && (obj.target = signalTargetToJSON(message.target));
|
12295
12421
|
return obj;
|
12296
12422
|
},
|
12423
|
+
create(base) {
|
12424
|
+
return DataChannelInfo.fromPartial(base !== null && base !== void 0 ? base : {});
|
12425
|
+
},
|
12297
12426
|
fromPartial(object) {
|
12298
12427
|
var _a, _b, _c;
|
12299
12428
|
const message = createBaseDataChannelInfo();
|
@@ -12311,21 +12440,23 @@ function createBaseSimulateScenario() {
|
|
12311
12440
|
const SimulateScenario = {
|
12312
12441
|
encode(message) {
|
12313
12442
|
let writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
|
12314
|
-
var _a
|
12315
|
-
|
12316
|
-
|
12317
|
-
|
12318
|
-
|
12319
|
-
|
12320
|
-
|
12321
|
-
|
12322
|
-
|
12323
|
-
|
12324
|
-
|
12325
|
-
|
12326
|
-
|
12327
|
-
|
12328
|
-
|
12443
|
+
var _a;
|
12444
|
+
switch ((_a = message.scenario) === null || _a === void 0 ? void 0 : _a.$case) {
|
12445
|
+
case "speakerUpdate":
|
12446
|
+
writer.uint32(8).int32(message.scenario.speakerUpdate);
|
12447
|
+
break;
|
12448
|
+
case "nodeFailure":
|
12449
|
+
writer.uint32(16).bool(message.scenario.nodeFailure);
|
12450
|
+
break;
|
12451
|
+
case "migration":
|
12452
|
+
writer.uint32(24).bool(message.scenario.migration);
|
12453
|
+
break;
|
12454
|
+
case "serverLeave":
|
12455
|
+
writer.uint32(32).bool(message.scenario.serverLeave);
|
12456
|
+
break;
|
12457
|
+
case "switchCandidateProtocol":
|
12458
|
+
writer.uint32(40).int32(message.scenario.switchCandidateProtocol);
|
12459
|
+
break;
|
12329
12460
|
}
|
12330
12461
|
return writer;
|
12331
12462
|
},
|
@@ -12403,6 +12534,9 @@ const SimulateScenario = {
|
|
12403
12534
|
((_j = message.scenario) === null || _j === void 0 ? void 0 : _j.$case) === "switchCandidateProtocol" && (obj.switchCandidateProtocol = ((_k = message.scenario) === null || _k === void 0 ? void 0 : _k.switchCandidateProtocol) !== undefined ? candidateProtocolToJSON((_l = message.scenario) === null || _l === void 0 ? void 0 : _l.switchCandidateProtocol) : undefined);
|
12404
12535
|
return obj;
|
12405
12536
|
},
|
12537
|
+
create(base) {
|
12538
|
+
return SimulateScenario.fromPartial(base !== null && base !== void 0 ? base : {});
|
12539
|
+
},
|
12406
12540
|
fromPartial(object) {
|
12407
12541
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
12408
12542
|
const message = createBaseSimulateScenario();
|
@@ -12488,6 +12622,9 @@ const Ping = {
|
|
12488
12622
|
message.rtt !== undefined && (obj.rtt = Math.round(message.rtt));
|
12489
12623
|
return obj;
|
12490
12624
|
},
|
12625
|
+
create(base) {
|
12626
|
+
return Ping.fromPartial(base !== null && base !== void 0 ? base : {});
|
12627
|
+
},
|
12491
12628
|
fromPartial(object) {
|
12492
12629
|
var _a, _b;
|
12493
12630
|
const message = createBasePing();
|
@@ -12545,6 +12682,9 @@ const Pong = {
|
|
12545
12682
|
message.timestamp !== undefined && (obj.timestamp = Math.round(message.timestamp));
|
12546
12683
|
return obj;
|
12547
12684
|
},
|
12685
|
+
create(base) {
|
12686
|
+
return Pong.fromPartial(base !== null && base !== void 0 ? base : {});
|
12687
|
+
},
|
12548
12688
|
fromPartial(object) {
|
12549
12689
|
var _a, _b;
|
12550
12690
|
const message = createBasePong();
|
@@ -12809,7 +12949,7 @@ var RoomEvent;
|
|
12809
12949
|
* Data packets provides the ability to use LiveKit to send/receive arbitrary payloads.
|
12810
12950
|
* All participants in the room will receive the messages sent to the room.
|
12811
12951
|
*
|
12812
|
-
* args: (payload: Uint8Array, participant: [[Participant]], kind: [[DataPacket_Kind]])
|
12952
|
+
* args: (payload: Uint8Array, participant: [[Participant]], kind: [[DataPacket_Kind]], topic?: string)
|
12813
12953
|
*/
|
12814
12954
|
RoomEvent["DataReceived"] = "dataReceived";
|
12815
12955
|
/**
|
@@ -13800,10 +13940,10 @@ var uaParser = {
|
|
13800
13940
|
})(uaParser, uaParserExports);
|
13801
13941
|
var UAParser = uaParserExports;
|
13802
13942
|
|
13803
|
-
var version$1 = "1.6.
|
13943
|
+
var version$1 = "1.6.8";
|
13804
13944
|
|
13805
13945
|
const version = version$1;
|
13806
|
-
const protocolVersion =
|
13946
|
+
const protocolVersion = 9;
|
13807
13947
|
|
13808
13948
|
function mergeDefaultOptions(options, audioDefaults, videoDefaults) {
|
13809
13949
|
const opts = _objectSpread2({}, options);
|
@@ -14781,7 +14921,8 @@ class Track extends eventsExports.EventEmitter {
|
|
14781
14921
|
this.attachedElements = [];
|
14782
14922
|
this.isMuted = false;
|
14783
14923
|
/**
|
14784
|
-
* indicates current state of stream
|
14924
|
+
* indicates current state of stream, it'll indicate `paused` if the track
|
14925
|
+
* has been paused by congestion controller
|
14785
14926
|
*/
|
14786
14927
|
this.streamState = Track.StreamState.Active;
|
14787
14928
|
this._currentBitrate = 0;
|
@@ -16115,9 +16256,6 @@ class RemoteVideoTrack extends RemoteTrack {
|
|
16115
16256
|
this.updateDimensions();
|
16116
16257
|
}, REACTION_DELAY);
|
16117
16258
|
this.adaptiveStreamSettings = adaptiveStreamSettings;
|
16118
|
-
if (this.isAdaptiveStream) {
|
16119
|
-
this.streamState = Track.StreamState.Paused;
|
16120
|
-
}
|
16121
16259
|
}
|
16122
16260
|
get isAdaptiveStream() {
|
16123
16261
|
return this.adaptiveStreamSettings !== undefined;
|
@@ -17023,8 +17161,8 @@ function sortPresets(presets) {
|
|
17023
17161
|
}
|
17024
17162
|
|
17025
17163
|
class RemoteTrackPublication extends TrackPublication {
|
17026
|
-
constructor(kind,
|
17027
|
-
super(kind,
|
17164
|
+
constructor(kind, ti, autoSubscribe) {
|
17165
|
+
super(kind, ti.sid, ti.name);
|
17028
17166
|
this.track = undefined;
|
17029
17167
|
/** @internal */
|
17030
17168
|
this.allowed = true;
|
@@ -17049,6 +17187,7 @@ class RemoteTrackPublication extends TrackPublication {
|
|
17049
17187
|
this.emitTrackUpdate();
|
17050
17188
|
};
|
17051
17189
|
this.subscribed = autoSubscribe;
|
17190
|
+
this.updateInfo(ti);
|
17052
17191
|
}
|
17053
17192
|
/**
|
17054
17193
|
* Subscribe or unsubscribe to this remote track
|
@@ -17415,12 +17554,12 @@ class RemoteParticipant extends Participant {
|
|
17415
17554
|
if (!kind) {
|
17416
17555
|
return;
|
17417
17556
|
}
|
17418
|
-
publication = new RemoteTrackPublication(kind, ti
|
17557
|
+
publication = new RemoteTrackPublication(kind, ti, (_a = this.signalClient.connectOptions) === null || _a === void 0 ? void 0 : _a.autoSubscribe);
|
17419
17558
|
publication.updateInfo(ti);
|
17420
17559
|
newTracks.set(ti.sid, publication);
|
17421
17560
|
const existingTrackOfSource = Array.from(this.tracks.values()).find(publishedTrack => publishedTrack.source === (publication === null || publication === void 0 ? void 0 : publication.source));
|
17422
17561
|
if (existingTrackOfSource && publication.source !== Track.Source.Unknown) {
|
17423
|
-
livekitLogger.
|
17562
|
+
livekitLogger.debug("received a second track publication for ".concat(this.identity, " with the same source: ").concat(publication.source), {
|
17424
17563
|
oldTrack: existingTrackOfSource,
|
17425
17564
|
newTrack: publication,
|
17426
17565
|
participant: this,
|
@@ -17516,8 +17655,20 @@ class LocalParticipant extends Participant {
|
|
17516
17655
|
constructor(sid, identity, engine, options) {
|
17517
17656
|
super(sid, identity);
|
17518
17657
|
this.pendingPublishing = new Set();
|
17658
|
+
this.pendingPublishPromises = new Map();
|
17519
17659
|
this.participantTrackPermissions = [];
|
17520
17660
|
this.allParticipantsAllowedToSubscribe = true;
|
17661
|
+
this.handleReconnecting = () => {
|
17662
|
+
if (!this.reconnectFuture) {
|
17663
|
+
this.reconnectFuture = new Future();
|
17664
|
+
}
|
17665
|
+
};
|
17666
|
+
this.handleReconnected = () => {
|
17667
|
+
var _a, _b;
|
17668
|
+
(_b = (_a = this.reconnectFuture) === null || _a === void 0 ? void 0 : _a.resolve) === null || _b === void 0 ? void 0 : _b.call(_a);
|
17669
|
+
this.reconnectFuture = undefined;
|
17670
|
+
this.updateTrackSubscriptionPermissions();
|
17671
|
+
};
|
17521
17672
|
this.updateTrackSubscriptionPermissions = () => {
|
17522
17673
|
livekitLogger.debug('updating track subscription permissions', {
|
17523
17674
|
allParticipantsAllowed: this.allParticipantsAllowedToSubscribe,
|
@@ -17696,7 +17847,7 @@ class LocalParticipant extends Participant {
|
|
17696
17847
|
};
|
17697
17848
|
this.engine.client.onSubscribedQualityUpdate = this.handleSubscribedQualityUpdate;
|
17698
17849
|
this.engine.client.onLocalTrackUnpublished = this.handleLocalTrackUnpublished;
|
17699
|
-
this.engine.on(EngineEvent.Connected, this.
|
17850
|
+
this.engine.on(EngineEvent.Connected, this.handleReconnected).on(EngineEvent.Restarted, this.handleReconnected).on(EngineEvent.Resumed, this.handleReconnected).on(EngineEvent.Restarting, this.handleReconnecting).on(EngineEvent.Resuming, this.handleReconnecting);
|
17700
17851
|
}
|
17701
17852
|
/**
|
17702
17853
|
* Enable or disable a participant's camera track.
|
@@ -17906,7 +18057,12 @@ class LocalParticipant extends Participant {
|
|
17906
18057
|
}
|
17907
18058
|
const stream = await navigator.mediaDevices.getDisplayMedia({
|
17908
18059
|
audio: (_a = options.audio) !== null && _a !== void 0 ? _a : false,
|
17909
|
-
video: videoConstraints
|
18060
|
+
video: videoConstraints,
|
18061
|
+
// @ts-expect-error support for experimental display media features
|
18062
|
+
controller: options.controller,
|
18063
|
+
selfBrowserSurface: options.selfBrowserSurface,
|
18064
|
+
surfaceSwitching: options.surfaceSwitching,
|
18065
|
+
systemAudio: options.systemAudio
|
17910
18066
|
});
|
17911
18067
|
const tracks = stream.getVideoTracks();
|
17912
18068
|
if (tracks.length === 0) {
|
@@ -17928,7 +18084,11 @@ class LocalParticipant extends Participant {
|
|
17928
18084
|
* @param options
|
17929
18085
|
*/
|
17930
18086
|
async publishTrack(track, options) {
|
17931
|
-
var _a, _b, _c
|
18087
|
+
var _a, _b, _c;
|
18088
|
+
await ((_a = this.reconnectFuture) === null || _a === void 0 ? void 0 : _a.promise);
|
18089
|
+
if (track instanceof LocalTrack && this.pendingPublishPromises.has(track)) {
|
18090
|
+
await this.pendingPublishPromises.get(track);
|
18091
|
+
}
|
17932
18092
|
// convert raw media track into audio or video track
|
17933
18093
|
if (track instanceof MediaStreamTrack) {
|
17934
18094
|
switch (track.kind) {
|
@@ -17942,6 +18102,20 @@ class LocalParticipant extends Participant {
|
|
17942
18102
|
throw new TrackInvalidError("unsupported MediaStreamTrack kind ".concat(track.kind));
|
17943
18103
|
}
|
17944
18104
|
}
|
18105
|
+
// is it already published? if so skip
|
18106
|
+
let existingPublication;
|
18107
|
+
this.tracks.forEach(publication => {
|
18108
|
+
if (!publication.track) {
|
18109
|
+
return;
|
18110
|
+
}
|
18111
|
+
if (publication.track === track) {
|
18112
|
+
existingPublication = publication;
|
18113
|
+
}
|
18114
|
+
});
|
18115
|
+
if (existingPublication) {
|
18116
|
+
livekitLogger.warn('track has already been published, skipping');
|
18117
|
+
return existingPublication;
|
18118
|
+
}
|
17945
18119
|
const isStereo = (options === null || options === void 0 ? void 0 : options.forceStereo) || 'channelCount' in track.mediaStreamTrack.getSettings() &&
|
17946
18120
|
// @ts-ignore `channelCount` on getSettings() is currently only available for Safari, but is generally the best way to determine a stereo track https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings/channelCount
|
17947
18121
|
track.mediaStreamTrack.getSettings().channelCount === 2 || track.mediaStreamTrack.getConstraints().channelCount === 2;
|
@@ -17953,23 +18127,29 @@ class LocalParticipant extends Participant {
|
|
17953
18127
|
if (options.dtx === undefined) {
|
17954
18128
|
livekitLogger.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.");
|
17955
18129
|
}
|
17956
|
-
(
|
18130
|
+
if (options.red === undefined) {
|
18131
|
+
livekitLogger.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work.");
|
18132
|
+
}
|
18133
|
+
(_b = options.dtx) !== null && _b !== void 0 ? _b : options.dtx = false;
|
18134
|
+
(_c = options.red) !== null && _c !== void 0 ? _c : options.red = false;
|
17957
18135
|
}
|
17958
18136
|
const opts = _objectSpread2(_objectSpread2({}, this.roomOptions.publishDefaults), options);
|
17959
|
-
// is it already published? if so skip
|
17960
|
-
let existingPublication;
|
17961
|
-
this.tracks.forEach(publication => {
|
17962
|
-
if (!publication.track) {
|
17963
|
-
return;
|
17964
|
-
}
|
17965
|
-
if (publication.track === track) {
|
17966
|
-
existingPublication = publication;
|
17967
|
-
}
|
17968
|
-
});
|
17969
|
-
if (existingPublication) return existingPublication;
|
17970
18137
|
if (opts.source) {
|
17971
18138
|
track.source = opts.source;
|
17972
18139
|
}
|
18140
|
+
const publishPromise = this.publish(track, opts, options, isStereo);
|
18141
|
+
this.pendingPublishPromises.set(track, publishPromise);
|
18142
|
+
try {
|
18143
|
+
const publication = await publishPromise;
|
18144
|
+
return publication;
|
18145
|
+
} catch (e) {
|
18146
|
+
throw e;
|
18147
|
+
} finally {
|
18148
|
+
this.pendingPublishPromises.delete(track);
|
18149
|
+
}
|
18150
|
+
}
|
18151
|
+
async publish(track, opts, options, isStereo) {
|
18152
|
+
var _a, _b, _c, _d;
|
17973
18153
|
const existingTrackOfSource = Array.from(this.tracks.values()).find(publishedTrack => track instanceof LocalTrack && publishedTrack.source === track.source);
|
17974
18154
|
if (existingTrackOfSource && track.source !== Track.Source.Unknown) {
|
17975
18155
|
try {
|
@@ -18011,9 +18191,9 @@ class LocalParticipant extends Participant {
|
|
18011
18191
|
type: Track.kindToProto(track.kind),
|
18012
18192
|
muted: track.isMuted,
|
18013
18193
|
source: Track.sourceToProto(track.source),
|
18014
|
-
disableDtx: !((
|
18194
|
+
disableDtx: !((_a = opts.dtx) !== null && _a !== void 0 ? _a : true),
|
18015
18195
|
stereo: isStereo,
|
18016
|
-
disableRed: !((
|
18196
|
+
disableRed: !((_b = opts.red) !== null && _b !== void 0 ? _b : true)
|
18017
18197
|
});
|
18018
18198
|
// compute encodings and layers for video
|
18019
18199
|
let encodings;
|
@@ -18036,7 +18216,7 @@ class LocalParticipant extends Participant {
|
|
18036
18216
|
if (track instanceof LocalVideoTrack) {
|
18037
18217
|
if ((opts === null || opts === void 0 ? void 0 : opts.videoCodec) === 'av1') {
|
18038
18218
|
// set scalabilityMode to 'L3T3' by default
|
18039
|
-
opts.scalabilityMode = (
|
18219
|
+
opts.scalabilityMode = (_c = opts.scalabilityMode) !== null && _c !== void 0 ? _c : 'L3T3';
|
18040
18220
|
}
|
18041
18221
|
// set up backup
|
18042
18222
|
if (opts.videoCodec && opts.backupCodec && opts.videoCodec !== opts.backupCodec.codec) {
|
@@ -18078,7 +18258,7 @@ class LocalParticipant extends Participant {
|
|
18078
18258
|
});
|
18079
18259
|
// store RTPSender
|
18080
18260
|
track.sender = await this.engine.createSender(track, opts, encodings);
|
18081
|
-
if (track.codec === 'av1' && encodings && ((
|
18261
|
+
if (track.codec === 'av1' && encodings && ((_d = encodings[0]) === null || _d === void 0 ? void 0 : _d.maxBitrate)) {
|
18082
18262
|
this.engine.publisher.setTrackCodecBitrate(req.cid, track.codec, encodings[0].maxBitrate / 1000);
|
18083
18263
|
}
|
18084
18264
|
this.engine.negotiate();
|
@@ -18174,13 +18354,20 @@ class LocalParticipant extends Participant {
|
|
18174
18354
|
if (stopOnUnpublish) {
|
18175
18355
|
track.stop();
|
18176
18356
|
}
|
18177
|
-
|
18357
|
+
let negotiationNeeded = false;
|
18358
|
+
const trackSender = track.sender;
|
18359
|
+
track.sender = undefined;
|
18360
|
+
if (this.engine.publisher && this.engine.publisher.pc.connectionState !== 'closed' && trackSender) {
|
18178
18361
|
try {
|
18179
|
-
this.engine.removeTrack(
|
18362
|
+
if (this.engine.removeTrack(trackSender)) {
|
18363
|
+
negotiationNeeded = true;
|
18364
|
+
}
|
18180
18365
|
if (track instanceof LocalVideoTrack) {
|
18181
18366
|
for (const [, trackInfo] of track.simulcastCodecs) {
|
18182
18367
|
if (trackInfo.sender) {
|
18183
|
-
this.engine.removeTrack(trackInfo.sender)
|
18368
|
+
if (this.engine.removeTrack(trackInfo.sender)) {
|
18369
|
+
negotiationNeeded = true;
|
18370
|
+
}
|
18184
18371
|
trackInfo.sender = undefined;
|
18185
18372
|
}
|
18186
18373
|
}
|
@@ -18191,11 +18378,8 @@ class LocalParticipant extends Participant {
|
|
18191
18378
|
error: e,
|
18192
18379
|
method: 'unpublishTrack'
|
18193
18380
|
});
|
18194
|
-
} finally {
|
18195
|
-
await this.engine.negotiate();
|
18196
18381
|
}
|
18197
18382
|
}
|
18198
|
-
track.sender = undefined;
|
18199
18383
|
// remove from our maps
|
18200
18384
|
this.tracks.delete(publication.trackSid);
|
18201
18385
|
switch (publication.kind) {
|
@@ -18208,6 +18392,9 @@ class LocalParticipant extends Participant {
|
|
18208
18392
|
}
|
18209
18393
|
this.emit(ParticipantEvent.LocalTrackUnpublished, publication);
|
18210
18394
|
publication.setTrack(undefined);
|
18395
|
+
if (negotiationNeeded) {
|
18396
|
+
await this.engine.negotiate();
|
18397
|
+
}
|
18211
18398
|
return publication;
|
18212
18399
|
}
|
18213
18400
|
async unpublishTracks(tracks) {
|
@@ -18230,25 +18417,17 @@ class LocalParticipant extends Participant {
|
|
18230
18417
|
await this.publishTrack(track, pub.options);
|
18231
18418
|
}));
|
18232
18419
|
}
|
18233
|
-
|
18234
|
-
|
18235
|
-
|
18236
|
-
|
18237
|
-
|
18238
|
-
* @param kind whether to send this as reliable or lossy.
|
18239
|
-
* For data that you need delivery guarantee (such as chat messages), use Reliable.
|
18240
|
-
* For data that should arrive as quickly as possible, but you are ok with dropped
|
18241
|
-
* packets, use Lossy.
|
18242
|
-
* @param destination the participants who will receive the message
|
18243
|
-
*/
|
18244
|
-
async publishData(data, kind, destination) {
|
18245
|
-
const dest = [];
|
18420
|
+
async publishData(data, kind) {
|
18421
|
+
let publishOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
18422
|
+
const destination = Array.isArray(publishOptions) ? publishOptions : publishOptions === null || publishOptions === void 0 ? void 0 : publishOptions.destination;
|
18423
|
+
const destinationSids = [];
|
18424
|
+
const topic = !Array.isArray(publishOptions) ? publishOptions.topic : undefined;
|
18246
18425
|
if (destination !== undefined) {
|
18247
18426
|
destination.forEach(val => {
|
18248
18427
|
if (val instanceof RemoteParticipant) {
|
18249
|
-
|
18428
|
+
destinationSids.push(val.sid);
|
18250
18429
|
} else {
|
18251
|
-
|
18430
|
+
destinationSids.push(val);
|
18252
18431
|
}
|
18253
18432
|
});
|
18254
18433
|
}
|
@@ -18259,7 +18438,8 @@ class LocalParticipant extends Participant {
|
|
18259
18438
|
user: {
|
18260
18439
|
participantSid: this.sid,
|
18261
18440
|
payload: data,
|
18262
|
-
destinationSids:
|
18441
|
+
destinationSids: destinationSids,
|
18442
|
+
topic
|
18263
18443
|
}
|
18264
18444
|
}
|
18265
18445
|
};
|
@@ -19757,6 +19937,8 @@ class PCTransport extends eventsExports {
|
|
19757
19937
|
});
|
19758
19938
|
}
|
19759
19939
|
close() {
|
19940
|
+
this.pc.onconnectionstatechange = null;
|
19941
|
+
this.pc.oniceconnectionstatechange = null;
|
19760
19942
|
this.pc.close();
|
19761
19943
|
}
|
19762
19944
|
async setMungedLocalDescription(sd, munged) {
|
@@ -19875,9 +20057,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19875
20057
|
return this._isClosed;
|
19876
20058
|
}
|
19877
20059
|
constructor(options) {
|
19878
|
-
var _this;
|
19879
20060
|
super();
|
19880
|
-
_this = this;
|
19881
20061
|
this.options = options;
|
19882
20062
|
this.rtcConfig = {};
|
19883
20063
|
this.peerConnectionTimeout = roomConnectOptionDefaults.peerConnectionTimeout;
|
@@ -19896,6 +20076,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19896
20076
|
this.joinAttempts = 0;
|
19897
20077
|
/** specifies how often an initial join connection is allowed to retry */
|
19898
20078
|
this.maxJoinAttempts = 1;
|
20079
|
+
this.shouldFailNext = false;
|
19899
20080
|
this.handleDataChannel = async _ref => {
|
19900
20081
|
let {
|
19901
20082
|
channel
|
@@ -19948,26 +20129,24 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19948
20129
|
// websocket reconnect behavior. if websocket is interrupted, and the PeerConnection
|
19949
20130
|
// continues to work, we can reconnect to websocket to continue the session
|
19950
20131
|
// after a number of retries, we'll close and give up permanently
|
19951
|
-
this.handleDisconnect =
|
19952
|
-
|
19953
|
-
let disconnectReason = arguments.length > 2 ? arguments[2] : undefined;
|
19954
|
-
if (_this._isClosed) {
|
20132
|
+
this.handleDisconnect = (connection, disconnectReason) => {
|
20133
|
+
if (this._isClosed) {
|
19955
20134
|
return;
|
19956
20135
|
}
|
19957
20136
|
livekitLogger.warn("".concat(connection, " disconnected"));
|
19958
|
-
if (
|
20137
|
+
if (this.reconnectAttempts === 0) {
|
19959
20138
|
// only reset start time on the first try
|
19960
|
-
|
20139
|
+
this.reconnectStart = Date.now();
|
19961
20140
|
}
|
19962
20141
|
const disconnect = duration => {
|
19963
|
-
livekitLogger.warn("could not recover connection after ".concat(
|
19964
|
-
|
19965
|
-
|
20142
|
+
livekitLogger.warn("could not recover connection after ".concat(this.reconnectAttempts, " attempts, ").concat(duration, "ms. giving up"));
|
20143
|
+
this.emit(EngineEvent.Disconnected);
|
20144
|
+
this.close();
|
19966
20145
|
};
|
19967
|
-
const duration = Date.now() -
|
19968
|
-
let delay =
|
20146
|
+
const duration = Date.now() - this.reconnectStart;
|
20147
|
+
let delay = this.getNextRetryDelay({
|
19969
20148
|
elapsedMs: duration,
|
19970
|
-
retryCount:
|
20149
|
+
retryCount: this.reconnectAttempts
|
19971
20150
|
});
|
19972
20151
|
if (delay === null) {
|
19973
20152
|
disconnect(duration);
|
@@ -19977,14 +20156,14 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19977
20156
|
delay = 0;
|
19978
20157
|
}
|
19979
20158
|
livekitLogger.debug("reconnecting in ".concat(delay, "ms"));
|
19980
|
-
|
19981
|
-
|
20159
|
+
this.clearReconnectTimeout();
|
20160
|
+
this.reconnectTimeout = CriticalTimers.setTimeout(() => this.attemptReconnect(disconnectReason), delay);
|
19982
20161
|
};
|
19983
20162
|
this.handleBrowserOnLine = () => {
|
19984
20163
|
// in case the engine is currently reconnecting, attempt a reconnect immediately after the browser state has changed to 'onLine'
|
19985
20164
|
if (this.client.isReconnecting) {
|
19986
20165
|
this.clearReconnectTimeout();
|
19987
|
-
this.attemptReconnect(
|
20166
|
+
this.attemptReconnect(ReconnectReason.RR_SIGNAL_DISCONNECTED);
|
19988
20167
|
}
|
19989
20168
|
};
|
19990
20169
|
this.client = new SignalClient();
|
@@ -20083,6 +20262,12 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20083
20262
|
this.client.sendAddTrack(req);
|
20084
20263
|
});
|
20085
20264
|
}
|
20265
|
+
/**
|
20266
|
+
* Removes sender from PeerConnection, returning true if it was removed successfully
|
20267
|
+
* and a negotiation is necessary
|
20268
|
+
* @param sender
|
20269
|
+
* @returns
|
20270
|
+
*/
|
20086
20271
|
removeTrack(sender) {
|
20087
20272
|
var _a;
|
20088
20273
|
if (sender.track && this.pendingTrackResolvers[sender.track.id]) {
|
@@ -20096,12 +20281,14 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20096
20281
|
}
|
20097
20282
|
try {
|
20098
20283
|
(_a = this.publisher) === null || _a === void 0 ? void 0 : _a.pc.removeTrack(sender);
|
20284
|
+
return true;
|
20099
20285
|
} catch (e) {
|
20100
20286
|
livekitLogger.warn('failed to remove track', {
|
20101
20287
|
error: e,
|
20102
20288
|
method: 'removeTrack'
|
20103
20289
|
});
|
20104
20290
|
}
|
20291
|
+
return false;
|
20105
20292
|
}
|
20106
20293
|
updateMuteStatus(trackSid, muted) {
|
20107
20294
|
this.client.sendMuteTrack(trackSid, muted);
|
@@ -20110,8 +20297,11 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20110
20297
|
var _a;
|
20111
20298
|
return (_a = this.reliableDCSub) === null || _a === void 0 ? void 0 : _a.readyState;
|
20112
20299
|
}
|
20113
|
-
|
20114
|
-
|
20300
|
+
async getConnectedServerAddress() {
|
20301
|
+
if (this.primaryPC === undefined) {
|
20302
|
+
return undefined;
|
20303
|
+
}
|
20304
|
+
return getConnectedAddress(this.primaryPC);
|
20115
20305
|
}
|
20116
20306
|
configure(joinResponse) {
|
20117
20307
|
var _a;
|
@@ -20149,13 +20339,6 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20149
20339
|
primaryPC.onconnectionstatechange = async () => {
|
20150
20340
|
livekitLogger.debug("primary PC state changed ".concat(primaryPC.connectionState));
|
20151
20341
|
if (primaryPC.connectionState === 'connected') {
|
20152
|
-
try {
|
20153
|
-
this.connectedServerAddr = await getConnectedAddress(primaryPC);
|
20154
|
-
} catch (e) {
|
20155
|
-
livekitLogger.warn('could not get connected server address', {
|
20156
|
-
error: e
|
20157
|
-
});
|
20158
|
-
}
|
20159
20342
|
const shouldEmit = this.pcState === PCState.New;
|
20160
20343
|
this.pcState = PCState.Connected;
|
20161
20344
|
if (shouldEmit) {
|
@@ -20165,7 +20348,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20165
20348
|
// on Safari, PeerConnection will switch to 'disconnected' during renegotiation
|
20166
20349
|
if (this.pcState === PCState.Connected) {
|
20167
20350
|
this.pcState = PCState.Disconnected;
|
20168
|
-
this.handleDisconnect('primary peerconnection',
|
20351
|
+
this.handleDisconnect('primary peerconnection', subscriberPrimary ? ReconnectReason.RR_SUBSCRIBER_FAILED : ReconnectReason.RR_PUBLISHER_FAILED);
|
20169
20352
|
}
|
20170
20353
|
}
|
20171
20354
|
};
|
@@ -20173,7 +20356,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20173
20356
|
livekitLogger.debug("secondary PC state changed ".concat(secondaryPC.connectionState));
|
20174
20357
|
// also reconnect if secondary peerconnection fails
|
20175
20358
|
if (secondaryPC.connectionState === 'failed') {
|
20176
|
-
this.handleDisconnect('secondary peerconnection',
|
20359
|
+
this.handleDisconnect('secondary peerconnection', subscriberPrimary ? ReconnectReason.RR_PUBLISHER_FAILED : ReconnectReason.RR_SUBSCRIBER_FAILED);
|
20177
20360
|
}
|
20178
20361
|
};
|
20179
20362
|
this.subscriber.pc.ontrack = ev => {
|
@@ -20236,7 +20419,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20236
20419
|
this.token = token;
|
20237
20420
|
};
|
20238
20421
|
this.client.onClose = () => {
|
20239
|
-
this.handleDisconnect('signal',
|
20422
|
+
this.handleDisconnect('signal', ReconnectReason.RR_SIGNAL_DISCONNECTED);
|
20240
20423
|
};
|
20241
20424
|
this.client.onLeave = leave => {
|
20242
20425
|
if (leave === null || leave === void 0 ? void 0 : leave.canReconnect) {
|
@@ -20410,9 +20593,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20410
20593
|
}
|
20411
20594
|
return this.publisher.pc.addTrack(track);
|
20412
20595
|
}
|
20413
|
-
async attemptReconnect() {
|
20414
|
-
let signalEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
20415
|
-
let reason = arguments.length > 1 ? arguments[1] : undefined;
|
20596
|
+
async attemptReconnect(reason) {
|
20416
20597
|
var _a, _b, _c;
|
20417
20598
|
if (this._isClosed) {
|
20418
20599
|
return;
|
@@ -20430,17 +20611,15 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20430
20611
|
try {
|
20431
20612
|
this.attemptingReconnect = true;
|
20432
20613
|
if (this.fullReconnectOnNext) {
|
20433
|
-
await this.restartConnection(
|
20614
|
+
await this.restartConnection();
|
20434
20615
|
} else {
|
20435
|
-
await this.resumeConnection(
|
20616
|
+
await this.resumeConnection(reason);
|
20436
20617
|
}
|
20437
20618
|
this.clearPendingReconnect();
|
20438
20619
|
this.fullReconnectOnNext = false;
|
20439
20620
|
} catch (e) {
|
20440
20621
|
this.reconnectAttempts += 1;
|
20441
|
-
let reconnectRequired = false;
|
20442
20622
|
let recoverable = true;
|
20443
|
-
let requireSignalEvents = false;
|
20444
20623
|
if (e instanceof UnexpectedConnectionState) {
|
20445
20624
|
livekitLogger.debug('received unrecoverable error', {
|
20446
20625
|
error: e
|
@@ -20449,16 +20628,10 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20449
20628
|
recoverable = false;
|
20450
20629
|
} else if (!(e instanceof SignalReconnectError)) {
|
20451
20630
|
// cannot resume
|
20452
|
-
reconnectRequired = true;
|
20453
|
-
}
|
20454
|
-
// when we flip from resume to reconnect
|
20455
|
-
// we need to fire the right reconnecting events
|
20456
|
-
if (reconnectRequired && !this.fullReconnectOnNext) {
|
20457
20631
|
this.fullReconnectOnNext = true;
|
20458
|
-
requireSignalEvents = true;
|
20459
20632
|
}
|
20460
20633
|
if (recoverable) {
|
20461
|
-
this.handleDisconnect('reconnect',
|
20634
|
+
this.handleDisconnect('reconnect', ReconnectReason.RR_UNKOWN);
|
20462
20635
|
} else {
|
20463
20636
|
livekitLogger.info("could not recover connection after ".concat(this.reconnectAttempts, " attempts, ").concat(Date.now() - this.reconnectStart, "ms. giving up"));
|
20464
20637
|
this.emit(EngineEvent.Disconnected);
|
@@ -20480,16 +20653,13 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20480
20653
|
return null;
|
20481
20654
|
}
|
20482
20655
|
async restartConnection() {
|
20483
|
-
let emitRestarting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
20484
20656
|
var _a, _b;
|
20485
20657
|
if (!this.url || !this.token) {
|
20486
20658
|
// permanent failure, don't attempt reconnection
|
20487
20659
|
throw new UnexpectedConnectionState('could not reconnect, url or token not saved');
|
20488
20660
|
}
|
20489
20661
|
livekitLogger.info("reconnecting, attempt: ".concat(this.reconnectAttempts));
|
20490
|
-
|
20491
|
-
this.emit(EngineEvent.Restarting);
|
20492
|
-
}
|
20662
|
+
this.emit(EngineEvent.Restarting);
|
20493
20663
|
if (this.client.isConnected) {
|
20494
20664
|
await this.client.sendLeave();
|
20495
20665
|
}
|
@@ -20509,14 +20679,16 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20509
20679
|
} catch (e) {
|
20510
20680
|
throw new SignalReconnectError();
|
20511
20681
|
}
|
20682
|
+
if (this.shouldFailNext) {
|
20683
|
+
this.shouldFailNext = false;
|
20684
|
+
throw new Error('simulated failure');
|
20685
|
+
}
|
20512
20686
|
await this.waitForPCConnected();
|
20513
20687
|
this.client.setReconnected();
|
20514
20688
|
// reconnect success
|
20515
20689
|
this.emit(EngineEvent.Restarted, joinResponse);
|
20516
20690
|
}
|
20517
|
-
async resumeConnection() {
|
20518
|
-
let emitResuming = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
20519
|
-
let reason = arguments.length > 1 ? arguments[1] : undefined;
|
20691
|
+
async resumeConnection(reason) {
|
20520
20692
|
var _a;
|
20521
20693
|
if (!this.url || !this.token) {
|
20522
20694
|
// permanent failure, don't attempt reconnection
|
@@ -20527,9 +20699,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20527
20699
|
throw new UnexpectedConnectionState('publisher and subscriber connections unset');
|
20528
20700
|
}
|
20529
20701
|
livekitLogger.info("resuming signal connection, attempt ".concat(this.reconnectAttempts));
|
20530
|
-
|
20531
|
-
this.emit(EngineEvent.Resuming);
|
20532
|
-
}
|
20702
|
+
this.emit(EngineEvent.Resuming);
|
20533
20703
|
try {
|
20534
20704
|
const res = await this.client.reconnect(this.url, this.token, this.participantSid, reason);
|
20535
20705
|
if (res) {
|
@@ -20545,6 +20715,10 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20545
20715
|
throw new SignalReconnectError(message);
|
20546
20716
|
}
|
20547
20717
|
this.emit(EngineEvent.SignalResumed);
|
20718
|
+
if (this.shouldFailNext) {
|
20719
|
+
this.shouldFailNext = false;
|
20720
|
+
throw new Error('simulated failure');
|
20721
|
+
}
|
20548
20722
|
this.subscriber.restartingIce = true;
|
20549
20723
|
// only restart publisher if it's needed
|
20550
20724
|
if (this.hasPublished) {
|
@@ -20578,13 +20752,6 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20578
20752
|
// manually
|
20579
20753
|
now - startTime > minReconnectWait && ((_a = this.primaryPC) === null || _a === void 0 ? void 0 : _a.connectionState) === 'connected') {
|
20580
20754
|
this.pcState = PCState.Connected;
|
20581
|
-
try {
|
20582
|
-
this.connectedServerAddr = await getConnectedAddress(this.primaryPC);
|
20583
|
-
} catch (e) {
|
20584
|
-
livekitLogger.warn('could not get connected server address', {
|
20585
|
-
error: e
|
20586
|
-
});
|
20587
|
-
}
|
20588
20755
|
}
|
20589
20756
|
if (this.pcState === PCState.Connected) {
|
20590
20757
|
return;
|
@@ -20656,7 +20823,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20656
20823
|
this.on(EngineEvent.Closing, handleClosed);
|
20657
20824
|
const negotiationTimeout = setTimeout(() => {
|
20658
20825
|
reject('negotiation timed out');
|
20659
|
-
this.handleDisconnect('negotiation',
|
20826
|
+
this.handleDisconnect('negotiation', ReconnectReason.RR_SIGNAL_DISCONNECTED);
|
20660
20827
|
}, this.peerConnectionTimeout);
|
20661
20828
|
const cleanup = () => {
|
20662
20829
|
clearTimeout(negotiationTimeout);
|
@@ -20675,7 +20842,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20675
20842
|
if (e instanceof NegotiationError) {
|
20676
20843
|
this.fullReconnectOnNext = true;
|
20677
20844
|
}
|
20678
|
-
this.handleDisconnect('negotiation',
|
20845
|
+
this.handleDisconnect('negotiation', ReconnectReason.RR_UNKOWN);
|
20679
20846
|
});
|
20680
20847
|
});
|
20681
20848
|
}
|
@@ -20696,6 +20863,11 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20696
20863
|
}
|
20697
20864
|
}
|
20698
20865
|
}
|
20866
|
+
/* @internal */
|
20867
|
+
failNext() {
|
20868
|
+
// debugging method to fail the next reconnect/resume attempt
|
20869
|
+
this.shouldFailNext = true;
|
20870
|
+
}
|
20699
20871
|
clearReconnectTimeout() {
|
20700
20872
|
if (this.reconnectTimeout) {
|
20701
20873
|
CriticalTimers.clearTimeout(this.reconnectTimeout);
|
@@ -20987,37 +21159,47 @@ class Room extends eventsExports.EventEmitter {
|
|
20987
21159
|
livekitLogger.debug("reconnected to server", {
|
20988
21160
|
region: joinResponse.serverRegion
|
20989
21161
|
});
|
20990
|
-
|
20991
|
-
|
20992
|
-
|
20993
|
-
|
20994
|
-
|
20995
|
-
|
20996
|
-
this.handleParticipantUpdates([joinResponse.participant]);
|
20997
|
-
}
|
20998
|
-
this.handleParticipantUpdates(joinResponse.otherParticipants);
|
20999
|
-
// unpublish & republish tracks
|
21000
|
-
const localPubs = [];
|
21001
|
-
this.localParticipant.tracks.forEach(pub => {
|
21002
|
-
if (pub.track) {
|
21003
|
-
localPubs.push(pub);
|
21162
|
+
try {
|
21163
|
+
// rehydrate participants
|
21164
|
+
if (joinResponse.participant) {
|
21165
|
+
// with a restart, the sid will have changed, we'll map our understanding to it
|
21166
|
+
this.localParticipant.sid = joinResponse.participant.sid;
|
21167
|
+
this.handleParticipantUpdates([joinResponse.participant]);
|
21004
21168
|
}
|
21005
|
-
|
21006
|
-
|
21007
|
-
const
|
21008
|
-
this.localParticipant.
|
21009
|
-
|
21010
|
-
|
21011
|
-
|
21012
|
-
|
21013
|
-
|
21169
|
+
this.handleParticipantUpdates(joinResponse.otherParticipants);
|
21170
|
+
// unpublish & republish tracks
|
21171
|
+
const localPubs = [];
|
21172
|
+
this.localParticipant.tracks.forEach(pub => {
|
21173
|
+
if (pub.track) {
|
21174
|
+
localPubs.push(pub);
|
21175
|
+
}
|
21176
|
+
});
|
21177
|
+
await Promise.all(localPubs.map(async pub => {
|
21178
|
+
const track = pub.track;
|
21179
|
+
this.localParticipant.unpublishTrack(track, false);
|
21180
|
+
if (!track.isMuted) {
|
21181
|
+
if ((track instanceof LocalAudioTrack || track instanceof LocalVideoTrack) && !track.isUserProvided) {
|
21182
|
+
// we need to restart the track before publishing, often a full reconnect
|
21183
|
+
// is necessary because computer had gone to sleep.
|
21184
|
+
livekitLogger.debug('restarting existing track', {
|
21185
|
+
track: pub.trackSid
|
21186
|
+
});
|
21187
|
+
await track.restartTrack();
|
21188
|
+
}
|
21189
|
+
livekitLogger.debug('publishing new track', {
|
21014
21190
|
track: pub.trackSid
|
21015
21191
|
});
|
21016
|
-
await track.
|
21192
|
+
await this.localParticipant.publishTrack(track, pub.options);
|
21017
21193
|
}
|
21018
|
-
|
21019
|
-
|
21020
|
-
|
21194
|
+
}));
|
21195
|
+
} catch (error) {
|
21196
|
+
livekitLogger.error('error trying to re-publish tracks after reconnection', {
|
21197
|
+
error
|
21198
|
+
});
|
21199
|
+
} finally {
|
21200
|
+
this.setAndEmitConnectionState(ConnectionState.Connected);
|
21201
|
+
this.emit(RoomEvent.Reconnected);
|
21202
|
+
}
|
21021
21203
|
};
|
21022
21204
|
this.handleParticipantUpdates = participantInfos => {
|
21023
21205
|
// handle changes to participant state, and send events
|
@@ -21034,14 +21216,16 @@ class Room extends eventsExports.EventEmitter {
|
|
21034
21216
|
}
|
21035
21217
|
let remoteParticipant = this.participants.get(info.sid);
|
21036
21218
|
const isNewParticipant = !remoteParticipant;
|
21037
|
-
// create participant if doesn't exist
|
21038
|
-
remoteParticipant = this.getOrCreateParticipant(info.sid, info);
|
21039
21219
|
// when it's disconnected, send updates
|
21040
21220
|
if (info.state === ParticipantInfo_State.DISCONNECTED) {
|
21041
21221
|
this.handleParticipantDisconnected(info.sid, remoteParticipant);
|
21042
|
-
} else
|
21043
|
-
//
|
21044
|
-
remoteParticipant.
|
21222
|
+
} else {
|
21223
|
+
// create participant if doesn't exist
|
21224
|
+
remoteParticipant = this.getOrCreateParticipant(info.sid, info);
|
21225
|
+
if (!isNewParticipant) {
|
21226
|
+
// just update, no events
|
21227
|
+
remoteParticipant.updateInfo(info);
|
21228
|
+
}
|
21045
21229
|
}
|
21046
21230
|
});
|
21047
21231
|
};
|
@@ -21133,7 +21317,7 @@ class Room extends eventsExports.EventEmitter {
|
|
21133
21317
|
this.handleDataPacket = (userPacket, kind) => {
|
21134
21318
|
// find the participant
|
21135
21319
|
const participant = this.participants.get(userPacket.participantSid);
|
21136
|
-
this.emit(RoomEvent.DataReceived, userPacket.payload, participant, kind);
|
21320
|
+
this.emit(RoomEvent.DataReceived, userPacket.payload, participant, kind, userPacket.topic);
|
21137
21321
|
// also emit on the participant
|
21138
21322
|
participant === null || participant === void 0 ? void 0 : participant.emit(ParticipantEvent.DataReceived, userPacket.payload, kind);
|
21139
21323
|
};
|
@@ -21337,6 +21521,13 @@ class Room extends eventsExports.EventEmitter {
|
|
21337
21521
|
}
|
21338
21522
|
});
|
21339
21523
|
break;
|
21524
|
+
case 'resume-reconnect':
|
21525
|
+
this.engine.failNext();
|
21526
|
+
await this.engine.client.close();
|
21527
|
+
if (this.engine.client.onClose) {
|
21528
|
+
this.engine.client.onClose('simulate resume-reconnect');
|
21529
|
+
}
|
21530
|
+
break;
|
21340
21531
|
case 'force-tcp':
|
21341
21532
|
case 'force-tls':
|
21342
21533
|
req = SimulateScenario.fromPartial({
|
@@ -21571,7 +21762,7 @@ class Room extends eventsExports.EventEmitter {
|
|
21571
21762
|
participant.tracks.forEach(publication => {
|
21572
21763
|
participant.unpublishTrack(publication.trackSid, true);
|
21573
21764
|
});
|
21574
|
-
this.
|
21765
|
+
this.emit(RoomEvent.ParticipantDisconnected, participant);
|
21575
21766
|
}
|
21576
21767
|
async acquireAudioContext() {
|
21577
21768
|
var _a, _b;
|
@@ -21632,7 +21823,7 @@ class Room extends eventsExports.EventEmitter {
|
|
21632
21823
|
}
|
21633
21824
|
this.emit(RoomEvent.TrackSubscribed, track, publication, participant);
|
21634
21825
|
}).on(ParticipantEvent.TrackUnpublished, publication => {
|
21635
|
-
this.
|
21826
|
+
this.emit(RoomEvent.TrackUnpublished, publication, participant);
|
21636
21827
|
}).on(ParticipantEvent.TrackUnsubscribed, (track, publication) => {
|
21637
21828
|
this.emit(RoomEvent.TrackUnsubscribed, track, publication, participant);
|
21638
21829
|
}).on(ParticipantEvent.TrackSubscriptionFailed, sid => {
|