@stream-io/video-client 1.6.0 → 1.6.1
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/CHANGELOG.md +7 -0
- package/dist/index.browser.es.js +40 -22
- package/dist/index.browser.es.js.map +1 -1
- package/dist/index.cjs.js +40 -22
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +40 -22
- package/dist/index.es.js.map +1 -1
- package/dist/src/events/call.d.ts +5 -1
- package/dist/src/events/internal.d.ts +0 -4
- package/dist/src/store/CallState.d.ts +5 -0
- package/package.json +1 -1
- package/src/events/__tests__/call.test.ts +48 -1
- package/src/events/call.ts +29 -2
- package/src/events/internal.ts +3 -17
- package/src/store/CallState.ts +9 -4
package/dist/index.cjs.js
CHANGED
|
@@ -6756,7 +6756,7 @@ const logLevels = Object.freeze({
|
|
|
6756
6756
|
warn: 3,
|
|
6757
6757
|
error: 4,
|
|
6758
6758
|
});
|
|
6759
|
-
let logger$
|
|
6759
|
+
let logger$1;
|
|
6760
6760
|
let level = 'info';
|
|
6761
6761
|
const logToConsole = (logLevel, message, ...args) => {
|
|
6762
6762
|
let logMethod;
|
|
@@ -6790,7 +6790,7 @@ const logToConsole = (logLevel, message, ...args) => {
|
|
|
6790
6790
|
logMethod(message, ...args);
|
|
6791
6791
|
};
|
|
6792
6792
|
const setLogger = (l, lvl) => {
|
|
6793
|
-
logger$
|
|
6793
|
+
logger$1 = l;
|
|
6794
6794
|
if (lvl) {
|
|
6795
6795
|
setLogLevel(lvl);
|
|
6796
6796
|
}
|
|
@@ -6800,7 +6800,7 @@ const setLogLevel = (l) => {
|
|
|
6800
6800
|
};
|
|
6801
6801
|
const getLogLevel = () => level;
|
|
6802
6802
|
const getLogger = (withTags) => {
|
|
6803
|
-
const loggerMethod = logger$
|
|
6803
|
+
const loggerMethod = logger$1 || logToConsole;
|
|
6804
6804
|
const tags = (withTags || []).filter(Boolean).join(':');
|
|
6805
6805
|
const result = (logLevel, message, ...args) => {
|
|
6806
6806
|
if (logLevels[logLevel] >= logLevels[level]) {
|
|
@@ -7903,6 +7903,13 @@ class CallState {
|
|
|
7903
7903
|
this.setOwnCapabilities = (capabilities) => {
|
|
7904
7904
|
return this.setCurrentValue(this.ownCapabilitiesSubject, capabilities);
|
|
7905
7905
|
};
|
|
7906
|
+
/**
|
|
7907
|
+
* Sets the time when this call has been ended.
|
|
7908
|
+
* @param endedAt the time when this call has been ended.
|
|
7909
|
+
*/
|
|
7910
|
+
this.setEndedAt = (endedAt) => {
|
|
7911
|
+
return this.setCurrentValue(this.endedAtSubject, endedAt);
|
|
7912
|
+
};
|
|
7906
7913
|
/**
|
|
7907
7914
|
* Will try to find the participant with the given sessionId in the current call.
|
|
7908
7915
|
*
|
|
@@ -8089,7 +8096,7 @@ class CallState {
|
|
|
8089
8096
|
this.setCurrentValue(this.createdAtSubject, new Date(call.created_at));
|
|
8090
8097
|
this.setCurrentValue(this.updatedAtSubject, new Date(call.updated_at));
|
|
8091
8098
|
this.setCurrentValue(this.startsAtSubject, call.starts_at ? new Date(call.starts_at) : undefined);
|
|
8092
|
-
this.
|
|
8099
|
+
this.setEndedAt(call.ended_at ? new Date(call.ended_at) : undefined);
|
|
8093
8100
|
this.setCurrentValue(this.createdBySubject, call.created_by);
|
|
8094
8101
|
this.setCurrentValue(this.customSubject, call.custom);
|
|
8095
8102
|
this.setCurrentValue(this.egressSubject, call.egress);
|
|
@@ -8738,7 +8745,7 @@ const enableHighQualityAudio = (sdp, trackMid, maxBitrate = 510000) => {
|
|
|
8738
8745
|
return SDP__namespace.write(parsedSdp);
|
|
8739
8746
|
};
|
|
8740
8747
|
|
|
8741
|
-
const version = "1.6.
|
|
8748
|
+
const version = "1.6.1" ;
|
|
8742
8749
|
const [major, minor, patch] = version.split('.');
|
|
8743
8750
|
let sdkInfo = {
|
|
8744
8751
|
type: SdkType.PLAIN_JAVASCRIPT,
|
|
@@ -10028,15 +10035,37 @@ const watchCallRejected = (call) => {
|
|
|
10028
10035
|
* Event handler that watches the delivery of `call.ended` Websocket event.
|
|
10029
10036
|
*/
|
|
10030
10037
|
const watchCallEnded = (call) => {
|
|
10031
|
-
return
|
|
10038
|
+
return function onCallEnded() {
|
|
10032
10039
|
const { callingState } = call.state;
|
|
10033
10040
|
if (callingState === exports.CallingState.RINGING ||
|
|
10034
10041
|
callingState === exports.CallingState.JOINED ||
|
|
10035
10042
|
callingState === exports.CallingState.JOINING) {
|
|
10036
|
-
|
|
10043
|
+
call.leave({ reason: 'call.ended event received' }).catch((err) => {
|
|
10044
|
+
call.logger('error', 'Failed to leave call after call.ended ', err);
|
|
10045
|
+
});
|
|
10037
10046
|
}
|
|
10038
10047
|
};
|
|
10039
10048
|
};
|
|
10049
|
+
/**
|
|
10050
|
+
* Watches for `callEnded` events.
|
|
10051
|
+
*/
|
|
10052
|
+
const watchSfuCallEnded = (call) => {
|
|
10053
|
+
return call.on('callEnded', async (e) => {
|
|
10054
|
+
if (call.state.callingState === exports.CallingState.LEFT)
|
|
10055
|
+
return;
|
|
10056
|
+
try {
|
|
10057
|
+
// `call.ended` event arrived after the call is already left
|
|
10058
|
+
// and all event handlers are detached. We need to manually
|
|
10059
|
+
// update the call state to reflect the call has ended.
|
|
10060
|
+
call.state.setEndedAt(new Date());
|
|
10061
|
+
const reason = CallEndedReason[e.reason];
|
|
10062
|
+
await call.leave({ reason: `callEnded received: ${reason}` });
|
|
10063
|
+
}
|
|
10064
|
+
catch (err) {
|
|
10065
|
+
call.logger('error', 'Failed to leave call after being ended by the SFU', err);
|
|
10066
|
+
}
|
|
10067
|
+
});
|
|
10068
|
+
};
|
|
10040
10069
|
|
|
10041
10070
|
/**
|
|
10042
10071
|
* Event handler that watches for `callGrantsUpdated` events.
|
|
@@ -10064,7 +10093,6 @@ const watchCallGrantsUpdated = (state) => {
|
|
|
10064
10093
|
};
|
|
10065
10094
|
};
|
|
10066
10095
|
|
|
10067
|
-
const logger$1 = getLogger(['events']);
|
|
10068
10096
|
/**
|
|
10069
10097
|
* An event responder which handles the `changePublishQuality` event.
|
|
10070
10098
|
*/
|
|
@@ -10110,7 +10138,7 @@ const watchLiveEnded = (dispatcher, call) => {
|
|
|
10110
10138
|
return;
|
|
10111
10139
|
if (!call.permissionsContext.hasPermission(OwnCapability.JOIN_BACKSTAGE)) {
|
|
10112
10140
|
call.leave({ reason: 'live ended' }).catch((err) => {
|
|
10113
|
-
logger
|
|
10141
|
+
call.logger('error', 'Failed to leave call after live ended', err);
|
|
10114
10142
|
});
|
|
10115
10143
|
}
|
|
10116
10144
|
});
|
|
@@ -10122,8 +10150,9 @@ const watchSfuErrorReports = (dispatcher) => {
|
|
|
10122
10150
|
return dispatcher.on('error', (e) => {
|
|
10123
10151
|
if (!e.error)
|
|
10124
10152
|
return;
|
|
10153
|
+
const logger = getLogger(['SfuClient']);
|
|
10125
10154
|
const { error, reconnectStrategy } = e;
|
|
10126
|
-
logger
|
|
10155
|
+
logger('error', 'SFU reported error', {
|
|
10127
10156
|
code: ErrorCode[error.code],
|
|
10128
10157
|
reconnectStrategy: WebsocketReconnectStrategy[reconnectStrategy],
|
|
10129
10158
|
message: error.message,
|
|
@@ -10141,17 +10170,6 @@ const watchPinsUpdated = (state) => {
|
|
|
10141
10170
|
state.setServerSidePins(pins);
|
|
10142
10171
|
};
|
|
10143
10172
|
};
|
|
10144
|
-
/**
|
|
10145
|
-
* Watches for `callEnded` events.
|
|
10146
|
-
*/
|
|
10147
|
-
const watchSfuCallEnded = (call) => {
|
|
10148
|
-
return call.on('callEnded', (e) => {
|
|
10149
|
-
const reason = CallEndedReason[e.reason];
|
|
10150
|
-
call.leave({ reason }).catch((err) => {
|
|
10151
|
-
logger$1('error', 'Failed to leave call after call ended by the SFU', err);
|
|
10152
|
-
});
|
|
10153
|
-
});
|
|
10154
|
-
};
|
|
10155
10173
|
|
|
10156
10174
|
/**
|
|
10157
10175
|
* An event handler that handles soft mutes.
|
|
@@ -16069,7 +16087,7 @@ class StreamClient {
|
|
|
16069
16087
|
});
|
|
16070
16088
|
};
|
|
16071
16089
|
this.getUserAgent = () => {
|
|
16072
|
-
const version = "1.6.
|
|
16090
|
+
const version = "1.6.1" ;
|
|
16073
16091
|
return (this.userAgent ||
|
|
16074
16092
|
`stream-video-javascript-client-${this.node ? 'node' : 'browser'}-${version}`);
|
|
16075
16093
|
};
|