livekit-client 1.6.2 → 1.6.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/livekit-client.esm.mjs +312 -101
- 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/api/SignalClient.d.ts +3 -3
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/proto/livekit_models.d.ts +43 -1
- package/dist/src/proto/livekit_models.d.ts.map +1 -1
- package/dist/src/proto/livekit_rtc.d.ts +473 -4
- package/dist/src/proto/livekit_rtc.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +1 -0
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +2 -0
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/timers.d.ts +13 -0
- package/dist/src/room/timers.d.ts.map +1 -0
- package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -1
- package/dist/ts4.2/src/api/SignalClient.d.ts +3 -3
- package/dist/ts4.2/src/index.d.ts +2 -1
- package/dist/ts4.2/src/proto/livekit_models.d.ts +45 -1
- package/dist/ts4.2/src/proto/livekit_rtc.d.ts +514 -3
- package/dist/ts4.2/src/room/PCTransport.d.ts +1 -0
- package/dist/ts4.2/src/room/RTCEngine.d.ts +2 -0
- package/dist/ts4.2/src/room/timers.d.ts +13 -0
- package/package.json +1 -1
- package/src/api/SignalClient.ts +28 -20
- package/src/index.ts +2 -0
- package/src/proto/livekit_models.ts +116 -1
- package/src/proto/livekit_rtc.ts +106 -2
- package/src/room/PCTransport.ts +22 -6
- package/src/room/RTCEngine.ts +56 -43
- package/src/room/Room.ts +4 -3
- package/src/room/timers.ts +16 -0
- package/src/room/track/RemoteVideoTrack.ts +2 -1
@@ -4335,6 +4335,43 @@ function participantInfo_StateToJSON(object) {
|
|
4335
4335
|
return "UNRECOGNIZED";
|
4336
4336
|
}
|
4337
4337
|
}
|
4338
|
+
var Encryption_Type;
|
4339
|
+
(function (Encryption_Type) {
|
4340
|
+
Encryption_Type[Encryption_Type["NONE"] = 0] = "NONE";
|
4341
|
+
Encryption_Type[Encryption_Type["GCM"] = 1] = "GCM";
|
4342
|
+
Encryption_Type[Encryption_Type["CUSTOM"] = 2] = "CUSTOM";
|
4343
|
+
Encryption_Type[Encryption_Type["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
4344
|
+
})(Encryption_Type || (Encryption_Type = {}));
|
4345
|
+
function encryption_TypeFromJSON(object) {
|
4346
|
+
switch (object) {
|
4347
|
+
case 0:
|
4348
|
+
case "NONE":
|
4349
|
+
return Encryption_Type.NONE;
|
4350
|
+
case 1:
|
4351
|
+
case "GCM":
|
4352
|
+
return Encryption_Type.GCM;
|
4353
|
+
case 2:
|
4354
|
+
case "CUSTOM":
|
4355
|
+
return Encryption_Type.CUSTOM;
|
4356
|
+
case -1:
|
4357
|
+
case "UNRECOGNIZED":
|
4358
|
+
default:
|
4359
|
+
return Encryption_Type.UNRECOGNIZED;
|
4360
|
+
}
|
4361
|
+
}
|
4362
|
+
function encryption_TypeToJSON(object) {
|
4363
|
+
switch (object) {
|
4364
|
+
case Encryption_Type.NONE:
|
4365
|
+
return "NONE";
|
4366
|
+
case Encryption_Type.GCM:
|
4367
|
+
return "GCM";
|
4368
|
+
case Encryption_Type.CUSTOM:
|
4369
|
+
return "CUSTOM";
|
4370
|
+
case Encryption_Type.UNRECOGNIZED:
|
4371
|
+
default:
|
4372
|
+
return "UNRECOGNIZED";
|
4373
|
+
}
|
4374
|
+
}
|
4338
4375
|
var DataPacket_Kind;
|
4339
4376
|
(function (DataPacket_Kind) {
|
4340
4377
|
DataPacket_Kind[DataPacket_Kind["RELIABLE"] = 0] = "RELIABLE";
|
@@ -4989,7 +5026,10 @@ function createBaseTrackInfo() {
|
|
4989
5026
|
layers: [],
|
4990
5027
|
mimeType: "",
|
4991
5028
|
mid: "",
|
4992
|
-
codecs: []
|
5029
|
+
codecs: [],
|
5030
|
+
stereo: false,
|
5031
|
+
disableRed: false,
|
5032
|
+
encryption: 0
|
4993
5033
|
};
|
4994
5034
|
}
|
4995
5035
|
const TrackInfo = {
|
@@ -5034,6 +5074,15 @@ const TrackInfo = {
|
|
5034
5074
|
for (const v of message.codecs) {
|
5035
5075
|
SimulcastCodecInfo.encode(v, writer.uint32(106).fork()).ldelim();
|
5036
5076
|
}
|
5077
|
+
if (message.stereo === true) {
|
5078
|
+
writer.uint32(112).bool(message.stereo);
|
5079
|
+
}
|
5080
|
+
if (message.disableRed === true) {
|
5081
|
+
writer.uint32(120).bool(message.disableRed);
|
5082
|
+
}
|
5083
|
+
if (message.encryption !== 0) {
|
5084
|
+
writer.uint32(128).int32(message.encryption);
|
5085
|
+
}
|
5037
5086
|
return writer;
|
5038
5087
|
},
|
5039
5088
|
decode(input, length) {
|
@@ -5082,6 +5131,15 @@ const TrackInfo = {
|
|
5082
5131
|
case 13:
|
5083
5132
|
message.codecs.push(SimulcastCodecInfo.decode(reader, reader.uint32()));
|
5084
5133
|
break;
|
5134
|
+
case 14:
|
5135
|
+
message.stereo = reader.bool();
|
5136
|
+
break;
|
5137
|
+
case 15:
|
5138
|
+
message.disableRed = reader.bool();
|
5139
|
+
break;
|
5140
|
+
case 16:
|
5141
|
+
message.encryption = reader.int32();
|
5142
|
+
break;
|
5085
5143
|
default:
|
5086
5144
|
reader.skipType(tag & 7);
|
5087
5145
|
break;
|
@@ -5103,7 +5161,10 @@ const TrackInfo = {
|
|
5103
5161
|
layers: Array.isArray(object === null || object === void 0 ? void 0 : object.layers) ? object.layers.map(e => VideoLayer.fromJSON(e)) : [],
|
5104
5162
|
mimeType: isSet$1(object.mimeType) ? String(object.mimeType) : "",
|
5105
5163
|
mid: isSet$1(object.mid) ? String(object.mid) : "",
|
5106
|
-
codecs: Array.isArray(object === null || object === void 0 ? void 0 : object.codecs) ? object.codecs.map(e => SimulcastCodecInfo.fromJSON(e)) : []
|
5164
|
+
codecs: Array.isArray(object === null || object === void 0 ? void 0 : object.codecs) ? object.codecs.map(e => SimulcastCodecInfo.fromJSON(e)) : [],
|
5165
|
+
stereo: isSet$1(object.stereo) ? Boolean(object.stereo) : false,
|
5166
|
+
disableRed: isSet$1(object.disableRed) ? Boolean(object.disableRed) : false,
|
5167
|
+
encryption: isSet$1(object.encryption) ? encryption_TypeFromJSON(object.encryption) : 0
|
5107
5168
|
};
|
5108
5169
|
},
|
5109
5170
|
toJSON(message) {
|
@@ -5129,10 +5190,13 @@ const TrackInfo = {
|
|
5129
5190
|
} else {
|
5130
5191
|
obj.codecs = [];
|
5131
5192
|
}
|
5193
|
+
message.stereo !== undefined && (obj.stereo = message.stereo);
|
5194
|
+
message.disableRed !== undefined && (obj.disableRed = message.disableRed);
|
5195
|
+
message.encryption !== undefined && (obj.encryption = encryption_TypeToJSON(message.encryption));
|
5132
5196
|
return obj;
|
5133
5197
|
},
|
5134
5198
|
fromPartial(object) {
|
5135
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
5199
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
5136
5200
|
const message = createBaseTrackInfo();
|
5137
5201
|
message.sid = (_a = object.sid) !== null && _a !== void 0 ? _a : "";
|
5138
5202
|
message.type = (_b = object.type) !== null && _b !== void 0 ? _b : 0;
|
@@ -5147,6 +5211,9 @@ const TrackInfo = {
|
|
5147
5211
|
message.mimeType = (_l = object.mimeType) !== null && _l !== void 0 ? _l : "";
|
5148
5212
|
message.mid = (_m = object.mid) !== null && _m !== void 0 ? _m : "";
|
5149
5213
|
message.codecs = ((_o = object.codecs) === null || _o === void 0 ? void 0 : _o.map(e => SimulcastCodecInfo.fromPartial(e))) || [];
|
5214
|
+
message.stereo = (_p = object.stereo) !== null && _p !== void 0 ? _p : false;
|
5215
|
+
message.disableRed = (_q = object.disableRed) !== null && _q !== void 0 ? _q : false;
|
5216
|
+
message.encryption = (_r = object.encryption) !== null && _r !== void 0 ? _r : 0;
|
5150
5217
|
return message;
|
5151
5218
|
}
|
5152
5219
|
};
|
@@ -9615,7 +9682,7 @@ function createBaseSignalResponse() {
|
|
9615
9682
|
const SignalResponse = {
|
9616
9683
|
encode(message) {
|
9617
9684
|
let writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
|
9618
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
9685
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
9619
9686
|
if (((_a = message.message) === null || _a === void 0 ? void 0 : _a.$case) === "join") {
|
9620
9687
|
JoinResponse.encode(message.message.join, writer.uint32(10).fork()).ldelim();
|
9621
9688
|
}
|
@@ -9667,6 +9734,9 @@ const SignalResponse = {
|
|
9667
9734
|
if (((_s = message.message) === null || _s === void 0 ? void 0 : _s.$case) === "pong") {
|
9668
9735
|
writer.uint32(144).int64(message.message.pong);
|
9669
9736
|
}
|
9737
|
+
if (((_t = message.message) === null || _t === void 0 ? void 0 : _t.$case) === "reconnect") {
|
9738
|
+
ReconnectResponse.encode(message.message.reconnect, writer.uint32(154).fork()).ldelim();
|
9739
|
+
}
|
9670
9740
|
return writer;
|
9671
9741
|
},
|
9672
9742
|
decode(input, length) {
|
@@ -9778,6 +9848,12 @@ const SignalResponse = {
|
|
9778
9848
|
pong: longToNumber(reader.int64())
|
9779
9849
|
};
|
9780
9850
|
break;
|
9851
|
+
case 19:
|
9852
|
+
message.message = {
|
9853
|
+
$case: "reconnect",
|
9854
|
+
reconnect: ReconnectResponse.decode(reader, reader.uint32())
|
9855
|
+
};
|
9856
|
+
break;
|
9781
9857
|
default:
|
9782
9858
|
reader.skipType(tag & 7);
|
9783
9859
|
break;
|
@@ -9838,11 +9914,14 @@ const SignalResponse = {
|
|
9838
9914
|
} : isSet(object.pong) ? {
|
9839
9915
|
$case: "pong",
|
9840
9916
|
pong: Number(object.pong)
|
9917
|
+
} : isSet(object.reconnect) ? {
|
9918
|
+
$case: "reconnect",
|
9919
|
+
reconnect: ReconnectResponse.fromJSON(object.reconnect)
|
9841
9920
|
} : undefined
|
9842
9921
|
};
|
9843
9922
|
},
|
9844
9923
|
toJSON(message) {
|
9845
|
-
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;
|
9924
|
+
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;
|
9846
9925
|
const obj = {};
|
9847
9926
|
((_a = message.message) === null || _a === void 0 ? void 0 : _a.$case) === "join" && (obj.join = ((_b = message.message) === null || _b === void 0 ? void 0 : _b.join) ? JoinResponse.toJSON((_c = message.message) === null || _c === void 0 ? void 0 : _c.join) : undefined);
|
9848
9927
|
((_d = message.message) === null || _d === void 0 ? void 0 : _d.$case) === "answer" && (obj.answer = ((_e = message.message) === null || _e === void 0 ? void 0 : _e.answer) ? SessionDescription.toJSON((_f = message.message) === null || _f === void 0 ? void 0 : _f.answer) : undefined);
|
@@ -9861,10 +9940,11 @@ const SignalResponse = {
|
|
9861
9940
|
((_18 = message.message) === null || _18 === void 0 ? void 0 : _18.$case) === "refreshToken" && (obj.refreshToken = (_19 = message.message) === null || _19 === void 0 ? void 0 : _19.refreshToken);
|
9862
9941
|
((_20 = message.message) === null || _20 === void 0 ? void 0 : _20.$case) === "trackUnpublished" && (obj.trackUnpublished = ((_21 = message.message) === null || _21 === void 0 ? void 0 : _21.trackUnpublished) ? TrackUnpublishedResponse.toJSON((_22 = message.message) === null || _22 === void 0 ? void 0 : _22.trackUnpublished) : undefined);
|
9863
9942
|
((_23 = message.message) === null || _23 === void 0 ? void 0 : _23.$case) === "pong" && (obj.pong = Math.round((_24 = message.message) === null || _24 === void 0 ? void 0 : _24.pong));
|
9943
|
+
((_25 = message.message) === null || _25 === void 0 ? void 0 : _25.$case) === "reconnect" && (obj.reconnect = ((_26 = message.message) === null || _26 === void 0 ? void 0 : _26.reconnect) ? ReconnectResponse.toJSON((_27 = message.message) === null || _27 === void 0 ? void 0 : _27.reconnect) : undefined);
|
9864
9944
|
return obj;
|
9865
9945
|
},
|
9866
9946
|
fromPartial(object) {
|
9867
|
-
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;
|
9947
|
+
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;
|
9868
9948
|
const message = createBaseSignalResponse();
|
9869
9949
|
if (((_a = object.message) === null || _a === void 0 ? void 0 : _a.$case) === "join" && ((_b = object.message) === null || _b === void 0 ? void 0 : _b.join) !== undefined && ((_c = object.message) === null || _c === void 0 ? void 0 : _c.join) !== null) {
|
9870
9950
|
message.message = {
|
@@ -9968,6 +10048,12 @@ const SignalResponse = {
|
|
9968
10048
|
pong: object.message.pong
|
9969
10049
|
};
|
9970
10050
|
}
|
10051
|
+
if (((_27 = object.message) === null || _27 === void 0 ? void 0 : _27.$case) === "reconnect" && ((_28 = object.message) === null || _28 === void 0 ? void 0 : _28.reconnect) !== undefined && ((_29 = object.message) === null || _29 === void 0 ? void 0 : _29.reconnect) !== null) {
|
10052
|
+
message.message = {
|
10053
|
+
$case: "reconnect",
|
10054
|
+
reconnect: ReconnectResponse.fromPartial(object.message.reconnect)
|
10055
|
+
};
|
10056
|
+
}
|
9971
10057
|
return message;
|
9972
10058
|
}
|
9973
10059
|
};
|
@@ -10052,7 +10138,8 @@ function createBaseAddTrackRequest() {
|
|
10052
10138
|
simulcastCodecs: [],
|
10053
10139
|
sid: "",
|
10054
10140
|
stereo: false,
|
10055
|
-
disableRed: false
|
10141
|
+
disableRed: false,
|
10142
|
+
encryption: 0
|
10056
10143
|
};
|
10057
10144
|
}
|
10058
10145
|
const AddTrackRequest = {
|
@@ -10097,6 +10184,9 @@ const AddTrackRequest = {
|
|
10097
10184
|
if (message.disableRed === true) {
|
10098
10185
|
writer.uint32(104).bool(message.disableRed);
|
10099
10186
|
}
|
10187
|
+
if (message.encryption !== 0) {
|
10188
|
+
writer.uint32(112).int32(message.encryption);
|
10189
|
+
}
|
10100
10190
|
return writer;
|
10101
10191
|
},
|
10102
10192
|
decode(input, length) {
|
@@ -10145,6 +10235,9 @@ const AddTrackRequest = {
|
|
10145
10235
|
case 13:
|
10146
10236
|
message.disableRed = reader.bool();
|
10147
10237
|
break;
|
10238
|
+
case 14:
|
10239
|
+
message.encryption = reader.int32();
|
10240
|
+
break;
|
10148
10241
|
default:
|
10149
10242
|
reader.skipType(tag & 7);
|
10150
10243
|
break;
|
@@ -10166,7 +10259,8 @@ const AddTrackRequest = {
|
|
10166
10259
|
simulcastCodecs: Array.isArray(object === null || object === void 0 ? void 0 : object.simulcastCodecs) ? object.simulcastCodecs.map(e => SimulcastCodec.fromJSON(e)) : [],
|
10167
10260
|
sid: isSet(object.sid) ? String(object.sid) : "",
|
10168
10261
|
stereo: isSet(object.stereo) ? Boolean(object.stereo) : false,
|
10169
|
-
disableRed: isSet(object.disableRed) ? Boolean(object.disableRed) : false
|
10262
|
+
disableRed: isSet(object.disableRed) ? Boolean(object.disableRed) : false,
|
10263
|
+
encryption: isSet(object.encryption) ? encryption_TypeFromJSON(object.encryption) : 0
|
10170
10264
|
};
|
10171
10265
|
},
|
10172
10266
|
toJSON(message) {
|
@@ -10192,10 +10286,11 @@ const AddTrackRequest = {
|
|
10192
10286
|
message.sid !== undefined && (obj.sid = message.sid);
|
10193
10287
|
message.stereo !== undefined && (obj.stereo = message.stereo);
|
10194
10288
|
message.disableRed !== undefined && (obj.disableRed = message.disableRed);
|
10289
|
+
message.encryption !== undefined && (obj.encryption = encryption_TypeToJSON(message.encryption));
|
10195
10290
|
return obj;
|
10196
10291
|
},
|
10197
10292
|
fromPartial(object) {
|
10198
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
10293
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
10199
10294
|
const message = createBaseAddTrackRequest();
|
10200
10295
|
message.cid = (_a = object.cid) !== null && _a !== void 0 ? _a : "";
|
10201
10296
|
message.name = (_b = object.name) !== null && _b !== void 0 ? _b : "";
|
@@ -10210,6 +10305,7 @@ const AddTrackRequest = {
|
|
10210
10305
|
message.sid = (_l = object.sid) !== null && _l !== void 0 ? _l : "";
|
10211
10306
|
message.stereo = (_m = object.stereo) !== null && _m !== void 0 ? _m : false;
|
10212
10307
|
message.disableRed = (_o = object.disableRed) !== null && _o !== void 0 ? _o : false;
|
10308
|
+
message.encryption = (_p = object.encryption) !== null && _p !== void 0 ? _p : 0;
|
10213
10309
|
return message;
|
10214
10310
|
}
|
10215
10311
|
};
|
@@ -10492,6 +10588,67 @@ const JoinResponse = {
|
|
10492
10588
|
return message;
|
10493
10589
|
}
|
10494
10590
|
};
|
10591
|
+
function createBaseReconnectResponse() {
|
10592
|
+
return {
|
10593
|
+
iceServers: [],
|
10594
|
+
clientConfiguration: undefined
|
10595
|
+
};
|
10596
|
+
}
|
10597
|
+
const ReconnectResponse = {
|
10598
|
+
encode(message) {
|
10599
|
+
let writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
|
10600
|
+
for (const v of message.iceServers) {
|
10601
|
+
ICEServer.encode(v, writer.uint32(10).fork()).ldelim();
|
10602
|
+
}
|
10603
|
+
if (message.clientConfiguration !== undefined) {
|
10604
|
+
ClientConfiguration.encode(message.clientConfiguration, writer.uint32(18).fork()).ldelim();
|
10605
|
+
}
|
10606
|
+
return writer;
|
10607
|
+
},
|
10608
|
+
decode(input, length) {
|
10609
|
+
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
|
10610
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
10611
|
+
const message = createBaseReconnectResponse();
|
10612
|
+
while (reader.pos < end) {
|
10613
|
+
const tag = reader.uint32();
|
10614
|
+
switch (tag >>> 3) {
|
10615
|
+
case 1:
|
10616
|
+
message.iceServers.push(ICEServer.decode(reader, reader.uint32()));
|
10617
|
+
break;
|
10618
|
+
case 2:
|
10619
|
+
message.clientConfiguration = ClientConfiguration.decode(reader, reader.uint32());
|
10620
|
+
break;
|
10621
|
+
default:
|
10622
|
+
reader.skipType(tag & 7);
|
10623
|
+
break;
|
10624
|
+
}
|
10625
|
+
}
|
10626
|
+
return message;
|
10627
|
+
},
|
10628
|
+
fromJSON(object) {
|
10629
|
+
return {
|
10630
|
+
iceServers: Array.isArray(object === null || object === void 0 ? void 0 : object.iceServers) ? object.iceServers.map(e => ICEServer.fromJSON(e)) : [],
|
10631
|
+
clientConfiguration: isSet(object.clientConfiguration) ? ClientConfiguration.fromJSON(object.clientConfiguration) : undefined
|
10632
|
+
};
|
10633
|
+
},
|
10634
|
+
toJSON(message) {
|
10635
|
+
const obj = {};
|
10636
|
+
if (message.iceServers) {
|
10637
|
+
obj.iceServers = message.iceServers.map(e => e ? ICEServer.toJSON(e) : undefined);
|
10638
|
+
} else {
|
10639
|
+
obj.iceServers = [];
|
10640
|
+
}
|
10641
|
+
message.clientConfiguration !== undefined && (obj.clientConfiguration = message.clientConfiguration ? ClientConfiguration.toJSON(message.clientConfiguration) : undefined);
|
10642
|
+
return obj;
|
10643
|
+
},
|
10644
|
+
fromPartial(object) {
|
10645
|
+
var _a;
|
10646
|
+
const message = createBaseReconnectResponse();
|
10647
|
+
message.iceServers = ((_a = object.iceServers) === null || _a === void 0 ? void 0 : _a.map(e => ICEServer.fromPartial(e))) || [];
|
10648
|
+
message.clientConfiguration = object.clientConfiguration !== undefined && object.clientConfiguration !== null ? ClientConfiguration.fromPartial(object.clientConfiguration) : undefined;
|
10649
|
+
return message;
|
10650
|
+
}
|
10651
|
+
};
|
10495
10652
|
function createBaseTrackPublishedResponse() {
|
10496
10653
|
return {
|
10497
10654
|
cid: "",
|
@@ -12657,7 +12814,7 @@ var uaParser = {
|
|
12657
12814
|
|
12658
12815
|
(function (module, exports) {
|
12659
12816
|
/////////////////////////////////////////////////////////////////////////////////
|
12660
|
-
/* UAParser.js v1.0.
|
12817
|
+
/* UAParser.js v1.0.33
|
12661
12818
|
Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
|
12662
12819
|
MIT License */ /*
|
12663
12820
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
@@ -12671,7 +12828,7 @@ var uaParser = {
|
|
12671
12828
|
//////////////
|
12672
12829
|
// Constants
|
12673
12830
|
/////////////
|
12674
|
-
var LIBVERSION = '1.0.
|
12831
|
+
var LIBVERSION = '1.0.33',
|
12675
12832
|
EMPTY = '',
|
12676
12833
|
UNKNOWN = '?',
|
12677
12834
|
FUNC_TYPE = 'function',
|
@@ -12691,7 +12848,7 @@ var uaParser = {
|
|
12691
12848
|
SMARTTV = 'smarttv',
|
12692
12849
|
WEARABLE = 'wearable',
|
12693
12850
|
EMBEDDED = 'embedded',
|
12694
|
-
UA_MAX_LENGTH =
|
12851
|
+
UA_MAX_LENGTH = 350;
|
12695
12852
|
var AMAZON = 'Amazon',
|
12696
12853
|
APPLE = 'Apple',
|
12697
12854
|
ASUS = 'ASUS',
|
@@ -12707,6 +12864,7 @@ var uaParser = {
|
|
12707
12864
|
MOTOROLA = 'Motorola',
|
12708
12865
|
OPERA = 'Opera',
|
12709
12866
|
SAMSUNG = 'Samsung',
|
12867
|
+
SHARP = 'Sharp',
|
12710
12868
|
SONY = 'Sony',
|
12711
12869
|
XIAOMI = 'Xiaomi',
|
12712
12870
|
ZEBRA = 'Zebra',
|
@@ -12745,7 +12903,7 @@ var uaParser = {
|
|
12745
12903
|
},
|
12746
12904
|
trim = function (str, len) {
|
12747
12905
|
if (typeof str === STR_TYPE) {
|
12748
|
-
str = str.replace(/^\s\s*/, EMPTY)
|
12906
|
+
str = str.replace(/^\s\s*/, EMPTY);
|
12749
12907
|
return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
|
12750
12908
|
}
|
12751
12909
|
};
|
@@ -12884,12 +13042,13 @@ var uaParser = {
|
|
12884
13042
|
// Internet Explorer
|
12885
13043
|
|
12886
13044
|
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
|
12887
|
-
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,
|
13045
|
+
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
|
12888
13046
|
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
|
12889
13047
|
/(weibo)__([\d\.]+)/i // Weibo
|
12890
13048
|
], [NAME, VERSION], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i // UCBrowser
|
12891
|
-
], [VERSION, [NAME, 'UC' + BROWSER]], [
|
12892
|
-
|
13049
|
+
], [VERSION, [NAME, 'UC' + BROWSER]], [/microm.+\bqbcore\/([\w\.]+)/i,
|
13050
|
+
// WeChat Desktop for Windows Built-in Browser
|
13051
|
+
/\bqbcore\/([\w\.]+).+microm/i], [VERSION, [NAME, 'WeChat(Win) Desktop']], [/micromessenger\/([\w\.]+)/i // WeChat
|
12893
13052
|
], [VERSION, [NAME, 'WeChat']], [/konqueror\/([\w\.]+)/i // Konqueror
|
12894
13053
|
], [VERSION, [NAME, 'Konqueror']], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i // IE11
|
12895
13054
|
], [VERSION, [NAME, 'IE']], [/yabrowser\/([\w\.]+)/i // Yandex
|
@@ -12902,8 +13061,8 @@ var uaParser = {
|
|
12902
13061
|
], [VERSION, [NAME, OPERA + ' Coast']], [/miuibrowser\/([\w\.]+)/i // MIUI Browser
|
12903
13062
|
], [VERSION, [NAME, 'MIUI ' + BROWSER]], [/fxios\/([-\w\.]+)/i // Firefox for iOS
|
12904
13063
|
], [VERSION, [NAME, FIREFOX]], [/\bqihu|(qi?ho?o?|360)browser/i // 360
|
12905
|
-
], [[NAME, '360 ' + BROWSER]], [/(oculus|samsung|sailfish)browser\/([\w\.]+)/i], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [
|
12906
|
-
// Oculus/Samsung/Sailfish Browser
|
13064
|
+
], [[NAME, '360 ' + BROWSER]], [/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [
|
13065
|
+
// Oculus/Samsung/Sailfish/Huawei Browser
|
12907
13066
|
/(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon
|
12908
13067
|
], [[NAME, /_/g, ' '], VERSION], [/(electron)\/([\w\.]+) safari/i,
|
12909
13068
|
// Electron-based App
|
@@ -12912,7 +13071,9 @@ var uaParser = {
|
|
12912
13071
|
/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i // QQBrowser/Baidu App/2345 Browser
|
12913
13072
|
], [NAME, VERSION], [/(metasr)[\/ ]?([\w\.]+)/i,
|
12914
13073
|
// SouGouBrowser
|
12915
|
-
/(lbbrowser)/i
|
13074
|
+
/(lbbrowser)/i,
|
13075
|
+
// LieBao Browser
|
13076
|
+
/\[(linkedin)app\]/i // LinkedIn App for iOS & Android
|
12916
13077
|
], [NAME], [
|
12917
13078
|
// WebView
|
12918
13079
|
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i // Facebook App for iOS & Android
|
@@ -12926,8 +13087,8 @@ var uaParser = {
|
|
12926
13087
|
], [VERSION, [NAME, CHROME + ' Headless']], [/ wv\).+(chrome)\/([\w\.]+)/i // Chrome WebView
|
12927
13088
|
], [[NAME, CHROME + ' WebView'], VERSION], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i // Android Browser
|
12928
13089
|
], [VERSION, [NAME, 'Android ' + BROWSER]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia
|
12929
|
-
], [NAME, VERSION], [/version\/([\w
|
12930
|
-
], [VERSION, [NAME, 'Mobile Safari']], [/version\/([\w
|
13090
|
+
], [NAME, VERSION], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i // Mobile Safari
|
13091
|
+
], [VERSION, [NAME, 'Mobile Safari']], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile
|
12931
13092
|
], [VERSION, NAME], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i // Safari < 3.0
|
12932
13093
|
], [NAME, [VERSION, strMapper, oldSafariMap]], [/(webkit|khtml)\/([\w\.]+)/i], [NAME, VERSION], [
|
12933
13094
|
// Gecko based
|
@@ -12950,7 +13111,8 @@ var uaParser = {
|
|
12950
13111
|
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
|
12951
13112
|
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser
|
12952
13113
|
/(links) \(([\w\.]+)/i // Links
|
12953
|
-
], [NAME, VERSION]]
|
13114
|
+
], [NAME, VERSION], [/(cobalt)\/([\w\.]+)/i // Cobalt
|
13115
|
+
], [NAME, [VERSION, /master.|lts./, ""]]],
|
12954
13116
|
cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i // AMD64 (x64)
|
12955
13117
|
], [[ARCHITECTURE, 'amd64']], [/(ia32(?=;))/i // IA32 (quicktime)
|
12956
13118
|
], [[ARCHITECTURE, lowerize]], [/((?:i[346]|x)86)[;\)]/i // IA32 (x86)
|
@@ -12970,14 +13132,14 @@ var uaParser = {
|
|
12970
13132
|
/////////////////////////
|
12971
13133
|
|
12972
13134
|
// Samsung
|
12973
|
-
/\b(sch-i[89]0\d|shw-m380s|sm-[
|
13135
|
+
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [
|
12974
13136
|
// Apple
|
12975
13137
|
/\((ip(?:hone|od)[\w ]*);/i // iPod/iPhone
|
12976
13138
|
], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [/\((ipad);[-\w\),; ]+apple/i,
|
12977
13139
|
// iPad
|
12978
|
-
/applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [
|
13140
|
+
/applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [/(macintosh);/i], [MODEL, [VENDOR, APPLE]], [
|
12979
13141
|
// Huawei
|
12980
|
-
/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}
|
13142
|
+
/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
|
12981
13143
|
// Xiaomi
|
12982
13144
|
/\b(poco[\w ]+)(?: bui|\))/i,
|
12983
13145
|
// Xiaomi POCO
|
@@ -12987,7 +13149,7 @@ var uaParser = {
|
|
12987
13149
|
// Xiaomi Hongmi
|
12988
13150
|
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
|
12989
13151
|
// Xiaomi Redmi
|
12990
|
-
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i // Xiaomi Mi
|
13152
|
+
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i // Xiaomi Mi
|
12991
13153
|
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets
|
12992
13154
|
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
|
12993
13155
|
// OPPO
|
@@ -13009,7 +13171,7 @@ var uaParser = {
|
|
13009
13171
|
], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i // Google Pixel
|
13010
13172
|
], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [
|
13011
13173
|
// Sony
|
13012
|
-
/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [
|
13174
|
+
/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [
|
13013
13175
|
// OnePlus
|
13014
13176
|
/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [
|
13015
13177
|
// Amazon
|
@@ -13030,14 +13192,14 @@ var uaParser = {
|
|
13030
13192
|
// HTC
|
13031
13193
|
|
13032
13194
|
// ZTE
|
13033
|
-
/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
13195
|
+
/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
13034
13196
|
], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [
|
13035
13197
|
// Acer
|
13036
13198
|
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [
|
13037
13199
|
// Meizu
|
13038
13200
|
/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [
|
13039
13201
|
// Sharp
|
13040
|
-
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [MODEL, [VENDOR,
|
13202
|
+
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
13041
13203
|
// MIXED
|
13042
13204
|
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
|
13043
13205
|
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
|
@@ -13116,8 +13278,10 @@ var uaParser = {
|
|
13116
13278
|
], [[VENDOR, LG], [TYPE, SMARTTV]], [/(apple) ?tv/i // Apple TV
|
13117
13279
|
], [VENDOR, [MODEL, APPLE + ' TV'], [TYPE, SMARTTV]], [/crkey/i // Google Chromecast
|
13118
13280
|
], [[MODEL, CHROME + 'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [/droid.+aft(\w)( bui|\))/i // Fire TV
|
13119
|
-
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [/\(dtv[\);].+(aquos)/i // Sharp
|
13120
|
-
], [MODEL, [VENDOR,
|
13281
|
+
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i // Sharp
|
13282
|
+
], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]], [/(bravia[\w ]+)( bui|\))/i // Sony
|
13283
|
+
], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [/(mitv-\w{5}) bui/i // Xiaomi
|
13284
|
+
], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
|
13121
13285
|
// Roku
|
13122
13286
|
/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i // HbbTV devices
|
13123
13287
|
], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors
|
@@ -13143,7 +13307,7 @@ var uaParser = {
|
|
13143
13307
|
/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors
|
13144
13308
|
], [MODEL, [TYPE, MOBILE]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors
|
13145
13309
|
], [MODEL, [TYPE, TABLET]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i // Unidentifiable Tablet
|
13146
|
-
], [[TYPE, TABLET]], [/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
|
13310
|
+
], [[TYPE, TABLET]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
|
13147
13311
|
], [[TYPE, MOBILE]], [/(android[-\w\. ]{0,9});.+buil/i // Generic Android Device
|
13148
13312
|
], [MODEL, [VENDOR, 'Generic']]],
|
13149
13313
|
engine: [[/windows.+ edge\/([\w\.]+)/i // EdgeHTML
|
@@ -13173,7 +13337,7 @@ var uaParser = {
|
|
13173
13337
|
/cfnetwork\/.+darwin/i], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i // Mac OS
|
13174
13338
|
], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [
|
13175
13339
|
// Mobile OSes
|
13176
|
-
/droid ([\w\.]+)\b.+(android[- ]x86)/i // Android-x86
|
13340
|
+
/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS
|
13177
13341
|
], [VERSION, NAME], [
|
13178
13342
|
// Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
|
13179
13343
|
/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i,
|
@@ -13336,7 +13500,7 @@ var uaParser = {
|
|
13336
13500
|
})(uaParser, uaParserExports);
|
13337
13501
|
var UAParser = uaParserExports;
|
13338
13502
|
|
13339
|
-
var version$1 = "1.6.
|
13503
|
+
var version$1 = "1.6.3";
|
13340
13504
|
|
13341
13505
|
const version = version$1;
|
13342
13506
|
const protocolVersion = 8;
|
@@ -15603,6 +15767,27 @@ function r(r, e, n) {
|
|
15603
15767
|
}, d;
|
15604
15768
|
}
|
15605
15769
|
|
15770
|
+
/**
|
15771
|
+
* Timers that can be overridden with platform specific implementations
|
15772
|
+
* that ensure that they are fired. These should be used when it is critical
|
15773
|
+
* that the timer fires on time.
|
15774
|
+
*/
|
15775
|
+
class CriticalTimers {}
|
15776
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
15777
|
+
CriticalTimers.setTimeout = function () {
|
15778
|
+
return setTimeout(...arguments);
|
15779
|
+
};
|
15780
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
15781
|
+
CriticalTimers.setInterval = function () {
|
15782
|
+
return setInterval(...arguments);
|
15783
|
+
};
|
15784
|
+
CriticalTimers.clearTimeout = function () {
|
15785
|
+
return clearTimeout(...arguments);
|
15786
|
+
};
|
15787
|
+
CriticalTimers.clearInterval = function () {
|
15788
|
+
return clearInterval(...arguments);
|
15789
|
+
};
|
15790
|
+
|
15606
15791
|
const REACTION_DELAY = 100;
|
15607
15792
|
class RemoteVideoTrack extends RemoteTrack {
|
15608
15793
|
constructor(mediaTrack, sid, receiver, adaptiveStreamSettings) {
|
@@ -15774,7 +15959,7 @@ class RemoteVideoTrack extends RemoteTrack {
|
|
15774
15959
|
}
|
15775
15960
|
if (!isVisible && Date.now() - lastVisibilityChange < REACTION_DELAY) {
|
15776
15961
|
// delay hidden events
|
15777
|
-
setTimeout(() => {
|
15962
|
+
CriticalTimers.setTimeout(() => {
|
15778
15963
|
this.updateVisibility();
|
15779
15964
|
}, REACTION_DELAY);
|
15780
15965
|
return;
|
@@ -17904,10 +18089,11 @@ class SignalClient {
|
|
17904
18089
|
this.isReconnecting = true;
|
17905
18090
|
// clear ping interval and restart it once reconnected
|
17906
18091
|
this.clearPingInterval();
|
17907
|
-
await this.connect(url, token, _objectSpread2(_objectSpread2({}, this.options), {}, {
|
18092
|
+
const res = await this.connect(url, token, _objectSpread2(_objectSpread2({}, this.options), {}, {
|
17908
18093
|
reconnect: true,
|
17909
18094
|
sid
|
17910
18095
|
}));
|
18096
|
+
return res;
|
17911
18097
|
}
|
17912
18098
|
connect(url, token, opts, abortSignal) {
|
17913
18099
|
this.connectOptions = opts;
|
@@ -17953,17 +18139,8 @@ class SignalClient {
|
|
17953
18139
|
// other errors, handle
|
17954
18140
|
this.handleWSError(ev);
|
17955
18141
|
};
|
17956
|
-
this.ws.onopen = () => {
|
17957
|
-
if (opts.reconnect) {
|
17958
|
-
// upon reconnection, there will not be additional handshake
|
17959
|
-
this.isConnected = true;
|
17960
|
-
// restart ping interval as it's cleared for reconnection
|
17961
|
-
this.startPingInterval();
|
17962
|
-
resolve();
|
17963
|
-
}
|
17964
|
-
};
|
17965
18142
|
this.ws.onmessage = async ev => {
|
17966
|
-
var _a, _b;
|
18143
|
+
var _a, _b, _c, _d;
|
17967
18144
|
// not considered connected until JoinResponse is received
|
17968
18145
|
let resp;
|
17969
18146
|
if (typeof ev.data === 'string') {
|
@@ -17976,6 +18153,7 @@ class SignalClient {
|
|
17976
18153
|
return;
|
17977
18154
|
}
|
17978
18155
|
if (!this.isConnected) {
|
18156
|
+
let shouldProcessMessage = false;
|
17979
18157
|
// handle join message only
|
17980
18158
|
if (((_a = resp.message) === null || _a === void 0 ? void 0 : _a.$case) === 'join') {
|
17981
18159
|
this.isConnected = true;
|
@@ -17990,10 +18168,24 @@ class SignalClient {
|
|
17990
18168
|
this.startPingInterval();
|
17991
18169
|
}
|
17992
18170
|
resolve(resp.message.join);
|
17993
|
-
} else {
|
17994
|
-
|
18171
|
+
} else if (opts.reconnect) {
|
18172
|
+
// in reconnecting, any message received means signal reconnected
|
18173
|
+
this.isConnected = true;
|
18174
|
+
abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener('abort', abortHandler);
|
18175
|
+
this.startPingInterval();
|
18176
|
+
if (((_b = resp.message) === null || _b === void 0 ? void 0 : _b.$case) === 'reconnect') {
|
18177
|
+
resolve((_c = resp.message) === null || _c === void 0 ? void 0 : _c.reconnect);
|
18178
|
+
} else {
|
18179
|
+
resolve();
|
18180
|
+
shouldProcessMessage = true;
|
18181
|
+
}
|
18182
|
+
} else if (!opts.reconnect) {
|
18183
|
+
// non-reconnect case, should receive join response first
|
18184
|
+
reject(new ConnectionError("did not receive join response, got ".concat((_d = resp.message) === null || _d === void 0 ? void 0 : _d.$case, " instead")));
|
18185
|
+
}
|
18186
|
+
if (!shouldProcessMessage) {
|
18187
|
+
return;
|
17995
18188
|
}
|
17996
|
-
return;
|
17997
18189
|
}
|
17998
18190
|
if (this.signalLatency) {
|
17999
18191
|
await sleep(this.signalLatency);
|
@@ -18262,7 +18454,7 @@ class SignalClient {
|
|
18262
18454
|
livekitLogger.warn('ping timeout duration not set');
|
18263
18455
|
return;
|
18264
18456
|
}
|
18265
|
-
this.pingTimeout = setTimeout(() => {
|
18457
|
+
this.pingTimeout = CriticalTimers.setTimeout(() => {
|
18266
18458
|
livekitLogger.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now() - this.pingTimeoutDuration * 1000).toUTCString()));
|
18267
18459
|
if (this.onClose) {
|
18268
18460
|
this.onClose('ping timeout');
|
@@ -18271,7 +18463,7 @@ class SignalClient {
|
|
18271
18463
|
}
|
18272
18464
|
clearPingTimeout() {
|
18273
18465
|
if (this.pingTimeout) {
|
18274
|
-
clearTimeout(this.pingTimeout);
|
18466
|
+
CriticalTimers.clearTimeout(this.pingTimeout);
|
18275
18467
|
}
|
18276
18468
|
}
|
18277
18469
|
startPingInterval() {
|
@@ -18282,7 +18474,7 @@ class SignalClient {
|
|
18282
18474
|
return;
|
18283
18475
|
}
|
18284
18476
|
livekitLogger.debug('start ping interval');
|
18285
|
-
this.pingInterval = setInterval(() => {
|
18477
|
+
this.pingInterval = CriticalTimers.setInterval(() => {
|
18286
18478
|
this.sendPing();
|
18287
18479
|
}, this.pingIntervalDuration * 1000);
|
18288
18480
|
}
|
@@ -18290,7 +18482,7 @@ class SignalClient {
|
|
18290
18482
|
livekitLogger.debug('clearing ping interval');
|
18291
18483
|
this.clearPingTimeout();
|
18292
18484
|
if (this.pingInterval) {
|
18293
|
-
clearInterval(this.pingInterval);
|
18485
|
+
CriticalTimers.clearInterval(this.pingInterval);
|
18294
18486
|
}
|
18295
18487
|
}
|
18296
18488
|
}
|
@@ -19083,6 +19275,7 @@ class PCTransport extends eventsExports {
|
|
19083
19275
|
this.renegotiate = false;
|
19084
19276
|
this.trackBitrates = [];
|
19085
19277
|
this.remoteStereoMids = [];
|
19278
|
+
this.remoteNackMids = [];
|
19086
19279
|
// debounced negotiate interface
|
19087
19280
|
this.negotiate = r(onError => {
|
19088
19281
|
this.emit(PCEvents.NegotiationStarted);
|
@@ -19109,7 +19302,12 @@ class PCTransport extends eventsExports {
|
|
19109
19302
|
}
|
19110
19303
|
async setRemoteDescription(sd) {
|
19111
19304
|
if (sd.type === 'offer') {
|
19112
|
-
|
19305
|
+
let {
|
19306
|
+
stereoMids,
|
19307
|
+
nackMids
|
19308
|
+
} = extractStereoAndNackAudioFromOffer(sd);
|
19309
|
+
this.remoteStereoMids = stereoMids;
|
19310
|
+
this.remoteNackMids = nackMids;
|
19113
19311
|
}
|
19114
19312
|
await this.pc.setRemoteDescription(sd);
|
19115
19313
|
this.pendingCandidates.forEach(candidate => {
|
@@ -19155,7 +19353,7 @@ class PCTransport extends eventsExports {
|
|
19155
19353
|
const sdpParsed = parse((_a = offer.sdp) !== null && _a !== void 0 ? _a : '');
|
19156
19354
|
sdpParsed.media.forEach(media => {
|
19157
19355
|
if (media.type === 'audio') {
|
19158
|
-
ensureAudioNackAndStereo(media, []);
|
19356
|
+
ensureAudioNackAndStereo(media, [], []);
|
19159
19357
|
} else if (media.type === 'video') {
|
19160
19358
|
// mung sdp for codec bitrate setting that can't apply by sendEncoding
|
19161
19359
|
this.trackBitrates.some(trackbr => {
|
@@ -19201,7 +19399,7 @@ class PCTransport extends eventsExports {
|
|
19201
19399
|
const sdpParsed = parse((_a = answer.sdp) !== null && _a !== void 0 ? _a : '');
|
19202
19400
|
sdpParsed.media.forEach(media => {
|
19203
19401
|
if (media.type === 'audio') {
|
19204
|
-
ensureAudioNackAndStereo(media, this.remoteStereoMids);
|
19402
|
+
ensureAudioNackAndStereo(media, this.remoteStereoMids, this.remoteNackMids);
|
19205
19403
|
}
|
19206
19404
|
});
|
19207
19405
|
await this.setMungedLocalDescription(answer, write(sdpParsed));
|
@@ -19245,7 +19443,7 @@ class PCTransport extends eventsExports {
|
|
19245
19443
|
}
|
19246
19444
|
}
|
19247
19445
|
}
|
19248
|
-
function ensureAudioNackAndStereo(media, stereoMids) {
|
19446
|
+
function ensureAudioNackAndStereo(media, stereoMids, nackMids) {
|
19249
19447
|
// found opus codec to add nack fb
|
19250
19448
|
let opusPayload = 0;
|
19251
19449
|
media.rtp.some(rtp => {
|
@@ -19260,7 +19458,7 @@ function ensureAudioNackAndStereo(media, stereoMids) {
|
|
19260
19458
|
if (!media.rtcpFb) {
|
19261
19459
|
media.rtcpFb = [];
|
19262
19460
|
}
|
19263
|
-
if (!media.rtcpFb.some(fb => fb.payload === opusPayload && fb.type === 'nack')) {
|
19461
|
+
if (nackMids.includes(media.mid) && !media.rtcpFb.some(fb => fb.payload === opusPayload && fb.type === 'nack')) {
|
19264
19462
|
media.rtcpFb.push({
|
19265
19463
|
payload: opusPayload,
|
19266
19464
|
type: 'nack'
|
@@ -19279,12 +19477,14 @@ function ensureAudioNackAndStereo(media, stereoMids) {
|
|
19279
19477
|
}
|
19280
19478
|
}
|
19281
19479
|
}
|
19282
|
-
function
|
19480
|
+
function extractStereoAndNackAudioFromOffer(offer) {
|
19283
19481
|
var _a;
|
19284
19482
|
const stereoMids = [];
|
19483
|
+
const nackMids = [];
|
19285
19484
|
const sdpParsed = parse((_a = offer.sdp) !== null && _a !== void 0 ? _a : '');
|
19286
19485
|
let opusPayload = 0;
|
19287
19486
|
sdpParsed.media.forEach(media => {
|
19487
|
+
var _a;
|
19288
19488
|
if (media.type === 'audio') {
|
19289
19489
|
media.rtp.some(rtp => {
|
19290
19490
|
if (rtp.codec === 'opus') {
|
@@ -19293,6 +19493,9 @@ function extractStereoTracksFromOffer(offer) {
|
|
19293
19493
|
}
|
19294
19494
|
return false;
|
19295
19495
|
});
|
19496
|
+
if ((_a = media.rtcpFb) === null || _a === void 0 ? void 0 : _a.some(fb => fb.payload === opusPayload && fb.type === 'nack')) {
|
19497
|
+
nackMids.push(media.mid);
|
19498
|
+
}
|
19296
19499
|
media.fmtp.some(fmtp => {
|
19297
19500
|
if (fmtp.payload === opusPayload) {
|
19298
19501
|
if (fmtp.config.includes('sprop-stereo=1')) {
|
@@ -19304,7 +19507,10 @@ function extractStereoTracksFromOffer(offer) {
|
|
19304
19507
|
});
|
19305
19508
|
}
|
19306
19509
|
});
|
19307
|
-
return
|
19510
|
+
return {
|
19511
|
+
stereoMids,
|
19512
|
+
nackMids
|
19513
|
+
};
|
19308
19514
|
}
|
19309
19515
|
|
19310
19516
|
const lossyDataChannel = '_lossy';
|
@@ -19426,17 +19632,13 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19426
19632
|
delay = 0;
|
19427
19633
|
}
|
19428
19634
|
livekitLogger.debug("reconnecting in ".concat(delay, "ms"));
|
19429
|
-
|
19430
|
-
|
19431
|
-
}
|
19432
|
-
_this.reconnectTimeout = setTimeout(() => _this.attemptReconnect(signalEvents), delay);
|
19635
|
+
_this.clearReconnectTimeout();
|
19636
|
+
_this.reconnectTimeout = CriticalTimers.setTimeout(() => _this.attemptReconnect(signalEvents), delay);
|
19433
19637
|
};
|
19434
19638
|
this.handleBrowserOnLine = () => {
|
19435
19639
|
// in case the engine is currently reconnecting, attempt a reconnect immediately after the browser state has changed to 'onLine'
|
19436
19640
|
if (this.client.isReconnecting) {
|
19437
|
-
|
19438
|
-
clearTimeout(this.reconnectTimeout);
|
19439
|
-
}
|
19641
|
+
this.clearReconnectTimeout();
|
19440
19642
|
this.attemptReconnect(true);
|
19441
19643
|
}
|
19442
19644
|
};
|
@@ -19573,29 +19775,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19573
19775
|
return;
|
19574
19776
|
}
|
19575
19777
|
this.participantSid = (_a = joinResponse.participant) === null || _a === void 0 ? void 0 : _a.sid;
|
19576
|
-
const rtcConfig =
|
19577
|
-
// update ICE servers before creating PeerConnection
|
19578
|
-
if (joinResponse.iceServers && !rtcConfig.iceServers) {
|
19579
|
-
const rtcIceServers = [];
|
19580
|
-
joinResponse.iceServers.forEach(iceServer => {
|
19581
|
-
const rtcIceServer = {
|
19582
|
-
urls: iceServer.urls
|
19583
|
-
};
|
19584
|
-
if (iceServer.username) rtcIceServer.username = iceServer.username;
|
19585
|
-
if (iceServer.credential) {
|
19586
|
-
rtcIceServer.credential = iceServer.credential;
|
19587
|
-
}
|
19588
|
-
rtcIceServers.push(rtcIceServer);
|
19589
|
-
});
|
19590
|
-
rtcConfig.iceServers = rtcIceServers;
|
19591
|
-
}
|
19592
|
-
if (joinResponse.clientConfiguration && joinResponse.clientConfiguration.forceRelay === ClientConfigSetting.ENABLED) {
|
19593
|
-
rtcConfig.iceTransportPolicy = 'relay';
|
19594
|
-
}
|
19595
|
-
// @ts-ignore
|
19596
|
-
rtcConfig.sdpSemantics = 'unified-plan';
|
19597
|
-
// @ts-ignore
|
19598
|
-
rtcConfig.continualGatheringPolicy = 'gather_continually';
|
19778
|
+
const rtcConfig = this.makeRTCConfiguration(joinResponse);
|
19599
19779
|
this.publisher = new PCTransport(rtcConfig);
|
19600
19780
|
this.subscriber = new PCTransport(rtcConfig);
|
19601
19781
|
this.emit(EngineEvent.TransportsCreated, this.publisher, this.subscriber);
|
@@ -19727,6 +19907,32 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19727
19907
|
});
|
19728
19908
|
};
|
19729
19909
|
}
|
19910
|
+
makeRTCConfiguration(serverResponse) {
|
19911
|
+
const rtcConfig = _objectSpread2({}, this.rtcConfig);
|
19912
|
+
// update ICE servers before creating PeerConnection
|
19913
|
+
if (serverResponse.iceServers && !rtcConfig.iceServers) {
|
19914
|
+
const rtcIceServers = [];
|
19915
|
+
serverResponse.iceServers.forEach(iceServer => {
|
19916
|
+
const rtcIceServer = {
|
19917
|
+
urls: iceServer.urls
|
19918
|
+
};
|
19919
|
+
if (iceServer.username) rtcIceServer.username = iceServer.username;
|
19920
|
+
if (iceServer.credential) {
|
19921
|
+
rtcIceServer.credential = iceServer.credential;
|
19922
|
+
}
|
19923
|
+
rtcIceServers.push(rtcIceServer);
|
19924
|
+
});
|
19925
|
+
rtcConfig.iceServers = rtcIceServers;
|
19926
|
+
}
|
19927
|
+
if (serverResponse.clientConfiguration && serverResponse.clientConfiguration.forceRelay === ClientConfigSetting.ENABLED) {
|
19928
|
+
rtcConfig.iceTransportPolicy = 'relay';
|
19929
|
+
}
|
19930
|
+
// @ts-ignore
|
19931
|
+
rtcConfig.sdpSemantics = 'unified-plan';
|
19932
|
+
// @ts-ignore
|
19933
|
+
rtcConfig.continualGatheringPolicy = 'gather_continually';
|
19934
|
+
return rtcConfig;
|
19935
|
+
}
|
19730
19936
|
createDataChannels() {
|
19731
19937
|
if (!this.publisher) {
|
19732
19938
|
return;
|
@@ -19881,11 +20087,8 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19881
20087
|
} else {
|
19882
20088
|
await this.resumeConnection(signalEvents);
|
19883
20089
|
}
|
19884
|
-
this.
|
20090
|
+
this.clearPendingReconnect();
|
19885
20091
|
this.fullReconnectOnNext = false;
|
19886
|
-
if (this.reconnectTimeout) {
|
19887
|
-
clearTimeout(this.reconnectTimeout);
|
19888
|
-
}
|
19889
20092
|
} catch (e) {
|
19890
20093
|
this.reconnectAttempts += 1;
|
19891
20094
|
let reconnectRequired = false;
|
@@ -19980,7 +20183,12 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
19980
20183
|
this.emit(EngineEvent.Resuming);
|
19981
20184
|
}
|
19982
20185
|
try {
|
19983
|
-
await this.client.reconnect(this.url, this.token, this.participantSid);
|
20186
|
+
const res = await this.client.reconnect(this.url, this.token, this.participantSid);
|
20187
|
+
if (res) {
|
20188
|
+
const rtcConfig = this.makeRTCConfiguration(res);
|
20189
|
+
this.publisher.pc.setConfiguration(rtcConfig);
|
20190
|
+
this.subscriber.pc.setConfiguration(rtcConfig);
|
20191
|
+
}
|
19984
20192
|
} catch (e) {
|
19985
20193
|
let message = '';
|
19986
20194
|
if (e instanceof Error) {
|
@@ -20140,10 +20348,13 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
20140
20348
|
}
|
20141
20349
|
}
|
20142
20350
|
}
|
20143
|
-
|
20351
|
+
clearReconnectTimeout() {
|
20144
20352
|
if (this.reconnectTimeout) {
|
20145
|
-
clearTimeout(this.reconnectTimeout);
|
20353
|
+
CriticalTimers.clearTimeout(this.reconnectTimeout);
|
20146
20354
|
}
|
20355
|
+
}
|
20356
|
+
clearPendingReconnect() {
|
20357
|
+
this.clearReconnectTimeout();
|
20147
20358
|
this.reconnectAttempts = 0;
|
20148
20359
|
}
|
20149
20360
|
registerOnLineListener() {
|
@@ -20334,7 +20545,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20334
20545
|
return;
|
20335
20546
|
}
|
20336
20547
|
// don't return until ICE connected
|
20337
|
-
const connectTimeout = setTimeout(() => {
|
20548
|
+
const connectTimeout = CriticalTimers.setTimeout(() => {
|
20338
20549
|
// timeout
|
20339
20550
|
this.recreateEngine();
|
20340
20551
|
this.handleDisconnect(this.options.stopLocalTrackOnUnpublish);
|
@@ -20342,7 +20553,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20342
20553
|
}, this.connOptions.peerConnectionTimeout);
|
20343
20554
|
const abortHandler = () => {
|
20344
20555
|
livekitLogger.warn('closing engine');
|
20345
|
-
clearTimeout(connectTimeout);
|
20556
|
+
CriticalTimers.clearTimeout(connectTimeout);
|
20346
20557
|
this.recreateEngine();
|
20347
20558
|
this.handleDisconnect(this.options.stopLocalTrackOnUnpublish);
|
20348
20559
|
reject(new ConnectionError('room connection has been cancelled'));
|
@@ -20353,7 +20564,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20353
20564
|
(_b = this.abortController) === null || _b === void 0 ? void 0 : _b.signal.addEventListener('abort', abortHandler);
|
20354
20565
|
this.engine.once(EngineEvent.Connected, () => {
|
20355
20566
|
var _a, _b;
|
20356
|
-
clearTimeout(connectTimeout);
|
20567
|
+
CriticalTimers.clearTimeout(connectTimeout);
|
20357
20568
|
(_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal.removeEventListener('abort', abortHandler);
|
20358
20569
|
// also hook unload event
|
20359
20570
|
if (isWeb()) {
|
@@ -21715,5 +21926,5 @@ class ConnectionCheck extends eventsExports {
|
|
21715
21926
|
}
|
21716
21927
|
}
|
21717
21928
|
|
21718
|
-
export { AudioPresets, ConnectionCheck, ConnectionError, ConnectionQuality, ConnectionState, DataPacket_Kind, DefaultReconnectPolicy, DisconnectReason, EngineEvent, LivekitError, LocalAudioTrack, LocalParticipant, LocalTrack, LocalTrackPublication, LocalVideoTrack, LogLevel, MediaDeviceFailure, NegotiationError, Participant, ParticipantEvent, PublishDataError, RemoteAudioTrack, RemoteParticipant, RemoteTrack, RemoteTrackPublication, RemoteVideoTrack, Room, RoomEvent, RoomState, ScreenSharePresets, Track, TrackEvent, TrackInvalidError, TrackPublication, UnexpectedConnectionState, UnsupportedServer, VideoPreset, VideoPresets, VideoPresets43, VideoQuality, attachToElement, createAudioAnalyser, createLocalAudioTrack, createLocalScreenTracks, createLocalTracks, createLocalVideoTrack, detachTrack, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, isBackupCodec, isBrowserSupported, protocolVersion, setLogExtension, setLogLevel, supportsAV1, supportsAdaptiveStream, supportsDynacast, version };
|
21929
|
+
export { AudioPresets, ConnectionCheck, ConnectionError, ConnectionQuality, ConnectionState, CriticalTimers, DataPacket_Kind, DefaultReconnectPolicy, DisconnectReason, EngineEvent, LivekitError, LocalAudioTrack, LocalParticipant, LocalTrack, LocalTrackPublication, LocalVideoTrack, LogLevel, MediaDeviceFailure, NegotiationError, Participant, ParticipantEvent, PublishDataError, RemoteAudioTrack, RemoteParticipant, RemoteTrack, RemoteTrackPublication, RemoteVideoTrack, Room, RoomEvent, RoomState, ScreenSharePresets, Track, TrackEvent, TrackInvalidError, TrackPublication, UnexpectedConnectionState, UnsupportedServer, VideoPreset, VideoPresets, VideoPresets43, VideoQuality, attachToElement, createAudioAnalyser, createLocalAudioTrack, createLocalScreenTracks, createLocalTracks, createLocalVideoTrack, detachTrack, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, isBackupCodec, isBrowserSupported, protocolVersion, setLogExtension, setLogLevel, supportsAV1, supportsAdaptiveStream, supportsDynacast, version };
|
21719
21930
|
//# sourceMappingURL=livekit-client.esm.mjs.map
|