livekit-client 2.3.0 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +6 -1
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +72 -136
- 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/connectionHelper/ConnectionCheck.d.ts.map +1 -1
- package/dist/src/connectionHelper/checks/Checker.d.ts.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/KeyProvider.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/ParticipantKeyHandler.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/logger.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +1 -2
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/track/RemoteTrackPublication.d.ts.map +1 -1
- package/dist/src/room/track/Track.d.ts.map +1 -1
- package/dist/src/room/track/TrackPublication.d.ts.map +1 -1
- package/dist/ts4.2/src/index.d.ts +2 -1
- package/dist/ts4.2/src/room/PCTransport.d.ts +1 -2
- package/package.json +12 -12
- package/src/e2ee/worker/FrameCryptor.ts +3 -1
- package/src/e2ee/worker/e2ee.worker.ts +5 -1
- package/src/index.ts +10 -0
- package/src/room/Room.ts +7 -3
- package/src/room/participant/LocalParticipant.ts +10 -0
- package/src/room/track/Track.ts +1 -1
@@ -3782,6 +3782,15 @@ const ParticipantInfo = /*@__PURE__*/proto3.makeMessageType("livekit.Participant
|
|
3782
3782
|
name: "kind",
|
3783
3783
|
kind: "enum",
|
3784
3784
|
T: proto3.getEnumType(ParticipantInfo_Kind)
|
3785
|
+
}, {
|
3786
|
+
no: 15,
|
3787
|
+
name: "attributes",
|
3788
|
+
kind: "map",
|
3789
|
+
K: 9 /* ScalarType.STRING */,
|
3790
|
+
V: {
|
3791
|
+
kind: "scalar",
|
3792
|
+
T: 9 /* ScalarType.STRING */
|
3793
|
+
}
|
3785
3794
|
}]);
|
3786
3795
|
|
3787
3796
|
/**
|
@@ -4161,7 +4170,7 @@ const SipDTMF = /*@__PURE__*/proto3.makeMessageType("livekit.SipDTMF", () => [{
|
|
4161
4170
|
*/
|
4162
4171
|
const Transcription = /*@__PURE__*/proto3.makeMessageType("livekit.Transcription", () => [{
|
4163
4172
|
no: 2,
|
4164
|
-
name: "
|
4173
|
+
name: "transcribed_participant_identity",
|
4165
4174
|
kind: "scalar",
|
4166
4175
|
T: 9 /* ScalarType.STRING */
|
4167
4176
|
}, {
|
@@ -5171,6 +5180,15 @@ const UpdateParticipantMetadata = /*@__PURE__*/proto3.makeMessageType("livekit.U
|
|
5171
5180
|
name: "name",
|
5172
5181
|
kind: "scalar",
|
5173
5182
|
T: 9 /* ScalarType.STRING */
|
5183
|
+
}, {
|
5184
|
+
no: 3,
|
5185
|
+
name: "attributes",
|
5186
|
+
kind: "map",
|
5187
|
+
K: 9 /* ScalarType.STRING */,
|
5188
|
+
V: {
|
5189
|
+
kind: "scalar",
|
5190
|
+
T: 9 /* ScalarType.STRING */
|
5191
|
+
}
|
5174
5192
|
}]);
|
5175
5193
|
|
5176
5194
|
/**
|
@@ -6571,6 +6589,19 @@ function detectBrowser(window) {
|
|
6571
6589
|
const {
|
6572
6590
|
navigator
|
6573
6591
|
} = window;
|
6592
|
+
|
6593
|
+
// Prefer navigator.userAgentData.
|
6594
|
+
if (navigator.userAgentData && navigator.userAgentData.brands) {
|
6595
|
+
const chromium = navigator.userAgentData.brands.find(brand => {
|
6596
|
+
return brand.brand === 'Chromium';
|
6597
|
+
});
|
6598
|
+
if (chromium) {
|
6599
|
+
return {
|
6600
|
+
browser: 'chrome',
|
6601
|
+
version: parseInt(chromium.version, 10)
|
6602
|
+
};
|
6603
|
+
}
|
6604
|
+
}
|
6574
6605
|
if (navigator.mozGetUserMedia) {
|
6575
6606
|
// Firefox.
|
6576
6607
|
result.browser = 'firefox';
|
@@ -6846,51 +6877,6 @@ function shimGetUserMedia$2(window, browserDetails) {
|
|
6846
6877
|
}
|
6847
6878
|
}
|
6848
6879
|
|
6849
|
-
/*
|
6850
|
-
* Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.
|
6851
|
-
*
|
6852
|
-
* Use of this source code is governed by a BSD-style license
|
6853
|
-
* that can be found in the LICENSE file in the root of the source
|
6854
|
-
* tree.
|
6855
|
-
*/
|
6856
|
-
/* eslint-env node */
|
6857
|
-
|
6858
|
-
function shimGetDisplayMedia$1(window, getSourceId) {
|
6859
|
-
if (window.navigator.mediaDevices && 'getDisplayMedia' in window.navigator.mediaDevices) {
|
6860
|
-
return;
|
6861
|
-
}
|
6862
|
-
if (!window.navigator.mediaDevices) {
|
6863
|
-
return;
|
6864
|
-
}
|
6865
|
-
// getSourceId is a function that returns a promise resolving with
|
6866
|
-
// the sourceId of the screen/window/tab to be shared.
|
6867
|
-
if (typeof getSourceId !== 'function') {
|
6868
|
-
console.error('shimGetDisplayMedia: getSourceId argument is not ' + 'a function');
|
6869
|
-
return;
|
6870
|
-
}
|
6871
|
-
window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(constraints) {
|
6872
|
-
return getSourceId(constraints).then(sourceId => {
|
6873
|
-
const widthSpecified = constraints.video && constraints.video.width;
|
6874
|
-
const heightSpecified = constraints.video && constraints.video.height;
|
6875
|
-
const frameRateSpecified = constraints.video && constraints.video.frameRate;
|
6876
|
-
constraints.video = {
|
6877
|
-
mandatory: {
|
6878
|
-
chromeMediaSource: 'desktop',
|
6879
|
-
chromeMediaSourceId: sourceId,
|
6880
|
-
maxFrameRate: frameRateSpecified || 3
|
6881
|
-
}
|
6882
|
-
};
|
6883
|
-
if (widthSpecified) {
|
6884
|
-
constraints.video.mandatory.maxWidth = widthSpecified;
|
6885
|
-
}
|
6886
|
-
if (heightSpecified) {
|
6887
|
-
constraints.video.mandatory.maxHeight = heightSpecified;
|
6888
|
-
}
|
6889
|
-
return window.navigator.mediaDevices.getUserMedia(constraints);
|
6890
|
-
});
|
6891
|
-
};
|
6892
|
-
}
|
6893
|
-
|
6894
6880
|
/*
|
6895
6881
|
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
|
6896
6882
|
*
|
@@ -7065,64 +7051,6 @@ function shimGetSendersWithDtmf(window) {
|
|
7065
7051
|
});
|
7066
7052
|
}
|
7067
7053
|
}
|
7068
|
-
function shimGetStats(window) {
|
7069
|
-
if (!window.RTCPeerConnection) {
|
7070
|
-
return;
|
7071
|
-
}
|
7072
|
-
const origGetStats = window.RTCPeerConnection.prototype.getStats;
|
7073
|
-
window.RTCPeerConnection.prototype.getStats = function getStats() {
|
7074
|
-
const [selector, onSucc, onErr] = arguments;
|
7075
|
-
|
7076
|
-
// If selector is a function then we are in the old style stats so just
|
7077
|
-
// pass back the original getStats format to avoid breaking old users.
|
7078
|
-
if (arguments.length > 0 && typeof selector === 'function') {
|
7079
|
-
return origGetStats.apply(this, arguments);
|
7080
|
-
}
|
7081
|
-
|
7082
|
-
// When spec-style getStats is supported, return those when called with
|
7083
|
-
// either no arguments or the selector argument is null.
|
7084
|
-
if (origGetStats.length === 0 && (arguments.length === 0 || typeof selector !== 'function')) {
|
7085
|
-
return origGetStats.apply(this, []);
|
7086
|
-
}
|
7087
|
-
const fixChromeStats_ = function (response) {
|
7088
|
-
const standardReport = {};
|
7089
|
-
const reports = response.result();
|
7090
|
-
reports.forEach(report => {
|
7091
|
-
const standardStats = {
|
7092
|
-
id: report.id,
|
7093
|
-
timestamp: report.timestamp,
|
7094
|
-
type: {
|
7095
|
-
localcandidate: 'local-candidate',
|
7096
|
-
remotecandidate: 'remote-candidate'
|
7097
|
-
}[report.type] || report.type
|
7098
|
-
};
|
7099
|
-
report.names().forEach(name => {
|
7100
|
-
standardStats[name] = report.stat(name);
|
7101
|
-
});
|
7102
|
-
standardReport[standardStats.id] = standardStats;
|
7103
|
-
});
|
7104
|
-
return standardReport;
|
7105
|
-
};
|
7106
|
-
|
7107
|
-
// shim getStats with maplike support
|
7108
|
-
const makeMapStats = function (stats) {
|
7109
|
-
return new Map(Object.keys(stats).map(key => [key, stats[key]]));
|
7110
|
-
};
|
7111
|
-
if (arguments.length >= 2) {
|
7112
|
-
const successCallbackWrapper_ = function (response) {
|
7113
|
-
onSucc(makeMapStats(fixChromeStats_(response)));
|
7114
|
-
};
|
7115
|
-
return origGetStats.apply(this, [successCallbackWrapper_, selector]);
|
7116
|
-
}
|
7117
|
-
|
7118
|
-
// promise-support
|
7119
|
-
return new Promise((resolve, reject) => {
|
7120
|
-
origGetStats.apply(this, [function (response) {
|
7121
|
-
resolve(makeMapStats(fixChromeStats_(response)));
|
7122
|
-
}, reject]);
|
7123
|
-
}).then(onSucc, onErr);
|
7124
|
-
};
|
7125
|
-
}
|
7126
7054
|
function shimSenderReceiverGetStats(window) {
|
7127
7055
|
if (!(typeof window === 'object' && window.RTCPeerConnection && window.RTCRtpSender && window.RTCRtpReceiver)) {
|
7128
7056
|
return;
|
@@ -7506,9 +7434,7 @@ var chromeShim = /*#__PURE__*/Object.freeze({
|
|
7506
7434
|
fixNegotiationNeeded: fixNegotiationNeeded,
|
7507
7435
|
shimAddTrackRemoveTrack: shimAddTrackRemoveTrack,
|
7508
7436
|
shimAddTrackRemoveTrackWithNative: shimAddTrackRemoveTrackWithNative,
|
7509
|
-
shimGetDisplayMedia: shimGetDisplayMedia$1,
|
7510
7437
|
shimGetSendersWithDtmf: shimGetSendersWithDtmf,
|
7511
|
-
shimGetStats: shimGetStats,
|
7512
7438
|
shimGetUserMedia: shimGetUserMedia$2,
|
7513
7439
|
shimMediaStream: shimMediaStream,
|
7514
7440
|
shimOnTrack: shimOnTrack$1,
|
@@ -9451,7 +9377,6 @@ function adapterFactory() {
|
|
9451
9377
|
shimOnTrack$1(window);
|
9452
9378
|
shimAddTrackRemoveTrack(window, browserDetails);
|
9453
9379
|
shimGetSendersWithDtmf(window);
|
9454
|
-
shimGetStats(window);
|
9455
9380
|
shimSenderReceiverGetStats(window);
|
9456
9381
|
fixNegotiationNeeded(window, browserDetails);
|
9457
9382
|
shimRTCIceCandidate(window);
|
@@ -10529,7 +10454,7 @@ function getOSVersion(ua) {
|
|
10529
10454
|
return ua.includes('mac os') ? getMatch(/\(.+?(\d+_\d+(:?_\d+)?)/, ua, 1).replace(/_/g, '.') : undefined;
|
10530
10455
|
}
|
10531
10456
|
|
10532
|
-
var version$1 = "2.3.
|
10457
|
+
var version$1 = "2.3.2";
|
10533
10458
|
|
10534
10459
|
const version = version$1;
|
10535
10460
|
const protocolVersion = 13;
|
@@ -10734,7 +10659,7 @@ class Track extends eventsExports.EventEmitter {
|
|
10734
10659
|
if (this.kind === Track.Kind.Video) {
|
10735
10660
|
elementType = 'video';
|
10736
10661
|
}
|
10737
|
-
if (this.attachedElements.length === 0 && Track.Kind.Video) {
|
10662
|
+
if (this.attachedElements.length === 0 && this.kind === Track.Kind.Video) {
|
10738
10663
|
this.addAppVisibilityListener();
|
10739
10664
|
}
|
10740
10665
|
if (!element) {
|
@@ -15998,7 +15923,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
15998
15923
|
this.maxJoinAttempts = 1;
|
15999
15924
|
this.shouldFailNext = false;
|
16000
15925
|
this.log = livekitLogger;
|
16001
|
-
this.handleDataChannel =
|
15926
|
+
this.handleDataChannel = _a => __awaiter(this, [_a], void 0, function (_ref) {
|
16002
15927
|
var _this = this;
|
16003
15928
|
let {
|
16004
15929
|
channel
|
@@ -16019,7 +15944,7 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
16019
15944
|
}();
|
16020
15945
|
});
|
16021
15946
|
this.handleDataMessage = message => __awaiter(this, void 0, void 0, function* () {
|
16022
|
-
var
|
15947
|
+
var _a, _b;
|
16023
15948
|
// make sure to respect incoming data message order by processing message events one after the other
|
16024
15949
|
const unlock = yield this.dataProcessLock.lock();
|
16025
15950
|
try {
|
@@ -16036,11 +15961,11 @@ class RTCEngine extends eventsExports.EventEmitter {
|
|
16036
15961
|
return;
|
16037
15962
|
}
|
16038
15963
|
const dp = DataPacket.fromBinary(new Uint8Array(buffer));
|
16039
|
-
if (((
|
15964
|
+
if (((_a = dp.value) === null || _a === void 0 ? void 0 : _a.case) === 'speaker') {
|
16040
15965
|
// dispatch speaker updates
|
16041
15966
|
this.emit(EngineEvent.ActiveSpeakersUpdate, dp.value.value.speakers);
|
16042
15967
|
} else {
|
16043
|
-
if (((
|
15968
|
+
if (((_b = dp.value) === null || _b === void 0 ? void 0 : _b.case) === 'user') {
|
16044
15969
|
// compatibility
|
16045
15970
|
applyUserDataCompat(dp, dp.value.value);
|
16046
15971
|
}
|
@@ -19038,6 +18963,13 @@ class LocalParticipant extends Participant {
|
|
19038
18963
|
unpublishTrack(track, stopOnUnpublish) {
|
19039
18964
|
return __awaiter(this, void 0, void 0, function* () {
|
19040
18965
|
var _a, _b;
|
18966
|
+
if (track instanceof LocalTrack) {
|
18967
|
+
const publishPromise = this.pendingPublishPromises.get(track);
|
18968
|
+
if (publishPromise) {
|
18969
|
+
this.log.info('awaiting publish promise before attempting to unpublish', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));
|
18970
|
+
yield publishPromise;
|
18971
|
+
}
|
18972
|
+
}
|
19041
18973
|
// look through all published tracks to find the right ones
|
19042
18974
|
const publication = this.getPublicationForTrack(track);
|
19043
18975
|
const pubLogContext = publication ? getLogContextFromTrack(publication) : undefined;
|
@@ -19796,7 +19728,7 @@ class Room extends eventsExports.EventEmitter {
|
|
19796
19728
|
this.bufferedEvents = [];
|
19797
19729
|
this.isResuming = false;
|
19798
19730
|
this.connect = (url, token, opts) => __awaiter(this, void 0, void 0, function* () {
|
19799
|
-
var
|
19731
|
+
var _a;
|
19800
19732
|
if (!isBrowserSupported()) {
|
19801
19733
|
if (isReactNative()) {
|
19802
19734
|
throw Error("WebRTC isn't detected, have you called registerGlobals?");
|
@@ -19817,7 +19749,7 @@ class Room extends eventsExports.EventEmitter {
|
|
19817
19749
|
return this.connectFuture.promise;
|
19818
19750
|
}
|
19819
19751
|
this.setAndEmitConnectionState(ConnectionState.Connecting);
|
19820
|
-
if (((
|
19752
|
+
if (((_a = this.regionUrlProvider) === null || _a === void 0 ? void 0 : _a.getServerUrl().toString()) !== url) {
|
19821
19753
|
this.regionUrl = undefined;
|
19822
19754
|
this.regionUrlProvider = undefined;
|
19823
19755
|
}
|
@@ -19837,7 +19769,7 @@ class Room extends eventsExports.EventEmitter {
|
|
19837
19769
|
});
|
19838
19770
|
}
|
19839
19771
|
const connectFn = (resolve, reject, regionUrl) => __awaiter(this, void 0, void 0, function* () {
|
19840
|
-
var
|
19772
|
+
var _a;
|
19841
19773
|
if (this.abortController) {
|
19842
19774
|
this.abortController.abort();
|
19843
19775
|
}
|
@@ -19854,7 +19786,7 @@ class Room extends eventsExports.EventEmitter {
|
|
19854
19786
|
if (this.regionUrlProvider && e instanceof ConnectionError && e.reason !== 3 /* ConnectionErrorReason.Cancelled */ && e.reason !== 0 /* ConnectionErrorReason.NotAllowed */) {
|
19855
19787
|
let nextUrl = null;
|
19856
19788
|
try {
|
19857
|
-
nextUrl = yield this.regionUrlProvider.getNextBestRegionUrl((
|
19789
|
+
nextUrl = yield this.regionUrlProvider.getNextBestRegionUrl((_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal);
|
19858
19790
|
} catch (error) {
|
19859
19791
|
if (error instanceof ConnectionError && (error.status === 401 || error.reason === 3 /* ConnectionErrorReason.Cancelled */)) {
|
19860
19792
|
this.handleDisconnect(this.options.stopLocalTrackOnUnpublish);
|
@@ -19886,7 +19818,7 @@ class Room extends eventsExports.EventEmitter {
|
|
19886
19818
|
return this.connectFuture.promise;
|
19887
19819
|
});
|
19888
19820
|
this.connectSignal = (url, token, engine, connectOptions, roomOptions, abortController) => __awaiter(this, void 0, void 0, function* () {
|
19889
|
-
var
|
19821
|
+
var _a, _b, _c;
|
19890
19822
|
const joinResponse = yield engine.join(url, token, {
|
19891
19823
|
autoSubscribe: connectOptions.autoSubscribe,
|
19892
19824
|
adaptiveStream: typeof roomOptions.adaptiveStream === 'object' ? true : roomOptions.adaptiveStream,
|
@@ -19905,9 +19837,9 @@ class Room extends eventsExports.EventEmitter {
|
|
19905
19837
|
let [key, value] = _ref;
|
19906
19838
|
return "".concat(key, ": ").concat(value);
|
19907
19839
|
}).join(', ')), {
|
19908
|
-
room: (
|
19909
|
-
roomSid: (
|
19910
|
-
identity: (
|
19840
|
+
room: (_a = joinResponse.room) === null || _a === void 0 ? void 0 : _a.name,
|
19841
|
+
roomSid: (_b = joinResponse.room) === null || _b === void 0 ? void 0 : _b.sid,
|
19842
|
+
identity: (_c = joinResponse.participant) === null || _c === void 0 ? void 0 : _c.identity
|
19911
19843
|
});
|
19912
19844
|
if (!joinResponse.serverVersion) {
|
19913
19845
|
throw new UnsupportedServer('unknown server version');
|
@@ -19939,8 +19871,8 @@ class Room extends eventsExports.EventEmitter {
|
|
19939
19871
|
}
|
19940
19872
|
};
|
19941
19873
|
this.attemptConnection = (url, token, opts, abortController) => __awaiter(this, void 0, void 0, function* () {
|
19942
|
-
var
|
19943
|
-
if (this.state === ConnectionState.Reconnecting || this.isResuming || ((
|
19874
|
+
var _a, _b, _c;
|
19875
|
+
if (this.state === ConnectionState.Reconnecting || this.isResuming || ((_a = this.engine) === null || _a === void 0 ? void 0 : _a.pendingReconnect)) {
|
19944
19876
|
this.log.info('Reconnection attempt replaced by new connection attempt', this.logContext);
|
19945
19877
|
// make sure we close and recreate the existing engine in order to get rid of any potentially ongoing reconnection attempts
|
19946
19878
|
this.recreateEngine();
|
@@ -19948,7 +19880,7 @@ class Room extends eventsExports.EventEmitter {
|
|
19948
19880
|
// create engine if previously disconnected
|
19949
19881
|
this.maybeCreateEngine();
|
19950
19882
|
}
|
19951
|
-
if ((
|
19883
|
+
if ((_b = this.regionUrlProvider) === null || _b === void 0 ? void 0 : _b.isCloud()) {
|
19952
19884
|
this.engine.setRegionUrlProvider(this.regionUrlProvider);
|
19953
19885
|
}
|
19954
19886
|
this.acquireAudioContext();
|
@@ -20001,7 +19933,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20001
19933
|
}
|
20002
19934
|
if (isWeb()) {
|
20003
19935
|
document.addEventListener('freeze', this.onPageLeave);
|
20004
|
-
(
|
19936
|
+
(_c = navigator.mediaDevices) === null || _c === void 0 ? void 0 : _c.addEventListener('devicechange', this.handleDeviceChange);
|
20005
19937
|
}
|
20006
19938
|
this.setAndEmitConnectionState(ConnectionState.Connected);
|
20007
19939
|
this.emit(RoomEvent.Connected);
|
@@ -20018,7 +19950,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20018
19950
|
var _this2 = this;
|
20019
19951
|
let stopTracks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
20020
19952
|
return function* () {
|
20021
|
-
var
|
19953
|
+
var _a, _b, _c, _d;
|
20022
19954
|
const unlock = yield _this2.disconnectLock.lock();
|
20023
19955
|
try {
|
20024
19956
|
if (_this2.state === ConnectionState.Disconnected) {
|
@@ -20029,13 +19961,13 @@ class Room extends eventsExports.EventEmitter {
|
|
20029
19961
|
if (_this2.state === ConnectionState.Connecting || _this2.state === ConnectionState.Reconnecting || _this2.isResuming) {
|
20030
19962
|
// try aborting pending connection attempt
|
20031
19963
|
_this2.log.warn('abort connection attempt', _this2.logContext);
|
20032
|
-
(
|
19964
|
+
(_a = _this2.abortController) === null || _a === void 0 ? void 0 : _a.abort();
|
20033
19965
|
// in case the abort controller didn't manage to cancel the connection attempt, reject the connect promise explicitly
|
20034
|
-
(
|
19966
|
+
(_c = (_b = _this2.connectFuture) === null || _b === void 0 ? void 0 : _b.reject) === null || _c === void 0 ? void 0 : _c.call(_b, new ConnectionError('Client initiated disconnect'));
|
20035
19967
|
_this2.connectFuture = undefined;
|
20036
19968
|
}
|
20037
19969
|
// send leave
|
20038
|
-
if (!((
|
19970
|
+
if (!((_d = _this2.engine) === null || _d === void 0 ? void 0 : _d.client.isDisconnected)) {
|
20039
19971
|
yield _this2.engine.client.sendLeave();
|
20040
19972
|
}
|
20041
19973
|
// close engine (also closes client)
|
@@ -20177,7 +20109,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20177
20109
|
this.log.debug("fully reconnected to server", Object.assign(Object.assign({}, this.logContext), {
|
20178
20110
|
region: joinResponse.serverRegion
|
20179
20111
|
}));
|
20180
|
-
} catch (
|
20112
|
+
} catch (_a) {
|
20181
20113
|
// reconnection failed, handleDisconnect is being invoked already, just return here
|
20182
20114
|
return;
|
20183
20115
|
}
|
@@ -20245,6 +20177,10 @@ class Room extends eventsExports.EventEmitter {
|
|
20245
20177
|
this.handleSpeakersChanged = speakerUpdates => {
|
20246
20178
|
const lastSpeakers = new Map();
|
20247
20179
|
this.activeSpeakers.forEach(p => {
|
20180
|
+
const remoteParticipant = this.remoteParticipants.get(p.identity);
|
20181
|
+
if (remoteParticipant && remoteParticipant.sid !== p.sid) {
|
20182
|
+
return;
|
20183
|
+
}
|
20248
20184
|
lastSpeakers.set(p.sid, p);
|
20249
20185
|
});
|
20250
20186
|
speakerUpdates.forEach(speaker => {
|
@@ -20327,9 +20263,9 @@ class Room extends eventsExports.EventEmitter {
|
|
20327
20263
|
participant === null || participant === void 0 ? void 0 : participant.emit(ParticipantEvent.SipDTMFReceived, dtmf);
|
20328
20264
|
};
|
20329
20265
|
this.bufferedSegments = new Map();
|
20330
|
-
this.handleTranscription = (
|
20266
|
+
this.handleTranscription = (_remoteParticipant, transcription) => {
|
20331
20267
|
// find the participant
|
20332
|
-
const participant = transcription.
|
20268
|
+
const participant = transcription.transcribedParticipantIdentity === this.localParticipant.identity ? this.localParticipant : this.getParticipantByIdentity(transcription.transcribedParticipantIdentity);
|
20333
20269
|
const publication = participant === null || participant === void 0 ? void 0 : participant.trackPublications.get(transcription.trackId);
|
20334
20270
|
const segments = extractTranscriptionSegments(transcription);
|
20335
20271
|
publication === null || publication === void 0 ? void 0 : publication.emit(TrackEvent.TranscriptionReceived, segments);
|
@@ -20407,9 +20343,9 @@ class Room extends eventsExports.EventEmitter {
|
|
20407
20343
|
(_a = processor === null || processor === void 0 ? void 0 : processor.onPublish) === null || _a === void 0 ? void 0 : _a.call(processor, this);
|
20408
20344
|
};
|
20409
20345
|
this.onLocalTrackPublished = pub => __awaiter(this, void 0, void 0, function* () {
|
20410
|
-
var
|
20411
|
-
(
|
20412
|
-
(
|
20346
|
+
var _a, _b, _c, _d, _e;
|
20347
|
+
(_a = pub.track) === null || _a === void 0 ? void 0 : _a.on(TrackEvent.TrackProcessorUpdate, this.onTrackProcessorUpdate);
|
20348
|
+
(_d = (_c = (_b = pub.track) === null || _b === void 0 ? void 0 : _b.getProcessor()) === null || _c === void 0 ? void 0 : _c.onPublish) === null || _d === void 0 ? void 0 : _d.call(_c, this);
|
20413
20349
|
this.emit(RoomEvent.LocalTrackPublished, pub, this.localParticipant);
|
20414
20350
|
if (pub.track instanceof LocalAudioTrack) {
|
20415
20351
|
const trackIsSilent = yield pub.track.checkForSilence();
|
@@ -20417,7 +20353,7 @@ class Room extends eventsExports.EventEmitter {
|
|
20417
20353
|
this.emit(RoomEvent.LocalAudioSilenceDetected, pub);
|
20418
20354
|
}
|
20419
20355
|
}
|
20420
|
-
const deviceId = yield (
|
20356
|
+
const deviceId = yield (_e = pub.track) === null || _e === void 0 ? void 0 : _e.getDeviceId();
|
20421
20357
|
const deviceKind = sourceToKind(pub.source);
|
20422
20358
|
if (deviceKind && deviceId && deviceId !== this.localParticipant.activeDeviceMap.get(deviceKind)) {
|
20423
20359
|
this.localParticipant.activeDeviceMap.set(deviceKind, deviceId);
|