@stream-io/video-client 1.25.0 → 1.25.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 +6 -0
- package/dist/index.browser.es.js +34 -3
- package/dist/index.browser.es.js.map +1 -1
- package/dist/index.cjs.js +34 -3
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +34 -3
- package/dist/index.es.js.map +1 -1
- package/dist/src/devices/InputMediaDeviceManager.d.ts +2 -0
- package/dist/src/devices/MicrophoneManager.d.ts +1 -0
- package/dist/src/devices/ScreenShareManager.d.ts +1 -0
- package/dist/src/devices/SpeakerManager.d.ts +2 -0
- package/package.json +1 -1
- package/src/Call.ts +6 -0
- package/src/devices/CameraManagerState.ts +1 -1
- package/src/devices/InputMediaDeviceManager.ts +13 -0
- package/src/devices/MicrophoneManager.ts +3 -0
- package/src/devices/ScreenShareManager.ts +6 -3
- package/src/devices/SpeakerManager.ts +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.25.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.25.0...@stream-io/video-client-1.25.1) (2025-06-30)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- correctly setup and dispose device managers ([#1836](https://github.com/GetStream/stream-video-js/issues/1836)) ([92fbe6c](https://github.com/GetStream/stream-video-js/commit/92fbe6c1da3bf06847244f430652bdc9433533bf))
|
|
10
|
+
|
|
5
11
|
## [1.25.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.24.0...@stream-io/video-client-1.25.0) (2025-06-20)
|
|
6
12
|
|
|
7
13
|
- upgrade stream deps and improve API error code logging ([#1827](https://github.com/GetStream/stream-video-js/issues/1827)) ([8c30fef](https://github.com/GetStream/stream-video-js/commit/8c30fef80d78055f5adeae02f7347c1c3fe49b72)), closes [#1826](https://github.com/GetStream/stream-video-js/issues/1826)
|
package/dist/index.browser.es.js
CHANGED
|
@@ -5810,7 +5810,7 @@ const aggregate = (stats) => {
|
|
|
5810
5810
|
return report;
|
|
5811
5811
|
};
|
|
5812
5812
|
|
|
5813
|
-
const version = "1.25.
|
|
5813
|
+
const version = "1.25.1";
|
|
5814
5814
|
const [major, minor, patch] = version.split('.');
|
|
5815
5815
|
let sdkInfo = {
|
|
5816
5816
|
type: SdkType.PLAIN_JAVASCRIPT,
|
|
@@ -9683,6 +9683,7 @@ class InputMediaDeviceManager {
|
|
|
9683
9683
|
*/
|
|
9684
9684
|
this.stopOnLeave = true;
|
|
9685
9685
|
this.subscriptions = [];
|
|
9686
|
+
this.areSubscriptionsSetUp = false;
|
|
9686
9687
|
this.isTrackStoppedDueToTrackEnd = false;
|
|
9687
9688
|
this.filters = [];
|
|
9688
9689
|
this.statusChangeConcurrencyTag = Symbol('statusChangeConcurrencyTag');
|
|
@@ -9694,11 +9695,20 @@ class InputMediaDeviceManager {
|
|
|
9694
9695
|
*/
|
|
9695
9696
|
this.dispose = () => {
|
|
9696
9697
|
this.subscriptions.forEach((s) => s());
|
|
9698
|
+
this.subscriptions = [];
|
|
9699
|
+
this.areSubscriptionsSetUp = false;
|
|
9697
9700
|
};
|
|
9698
9701
|
this.call = call;
|
|
9699
9702
|
this.state = state;
|
|
9700
9703
|
this.trackType = trackType;
|
|
9701
9704
|
this.logger = getLogger([`${TrackType[trackType].toLowerCase()} manager`]);
|
|
9705
|
+
this.setup();
|
|
9706
|
+
}
|
|
9707
|
+
setup() {
|
|
9708
|
+
if (this.areSubscriptionsSetUp) {
|
|
9709
|
+
return;
|
|
9710
|
+
}
|
|
9711
|
+
this.areSubscriptionsSetUp = true;
|
|
9702
9712
|
if (deviceIds$ &&
|
|
9703
9713
|
!isReactNative() &&
|
|
9704
9714
|
(this.trackType === TrackType.AUDIO || this.trackType === TrackType.VIDEO)) {
|
|
@@ -10659,6 +10669,9 @@ class MicrophoneManager extends InputMediaDeviceManager {
|
|
|
10659
10669
|
super(call, new MicrophoneManagerState(disableMode), TrackType.AUDIO);
|
|
10660
10670
|
this.speakingWhileMutedNotificationEnabled = true;
|
|
10661
10671
|
this.soundDetectorConcurrencyTag = Symbol('soundDetectorConcurrencyTag');
|
|
10672
|
+
}
|
|
10673
|
+
setup() {
|
|
10674
|
+
super.setup();
|
|
10662
10675
|
this.subscriptions.push(createSafeAsyncSubscription(combineLatest([
|
|
10663
10676
|
this.call.state.callingState$,
|
|
10664
10677
|
this.call.state.ownCapabilities$,
|
|
@@ -10936,7 +10949,10 @@ class ScreenShareState extends InputMediaDeviceManagerState {
|
|
|
10936
10949
|
class ScreenShareManager extends InputMediaDeviceManager {
|
|
10937
10950
|
constructor(call) {
|
|
10938
10951
|
super(call, new ScreenShareState(), TrackType.SCREEN_SHARE);
|
|
10939
|
-
|
|
10952
|
+
}
|
|
10953
|
+
setup() {
|
|
10954
|
+
super.setup();
|
|
10955
|
+
this.subscriptions.push(createSubscription(this.call.state.settings$, (settings) => {
|
|
10940
10956
|
const maybeTargetResolution = settings?.screensharing.target_resolution;
|
|
10941
10957
|
if (maybeTargetResolution) {
|
|
10942
10958
|
this.setDefaultConstraints({
|
|
@@ -11059,6 +11075,7 @@ class SpeakerState {
|
|
|
11059
11075
|
class SpeakerManager {
|
|
11060
11076
|
constructor(call) {
|
|
11061
11077
|
this.subscriptions = [];
|
|
11078
|
+
this.areSubscriptionsSetUp = false;
|
|
11062
11079
|
/**
|
|
11063
11080
|
* Disposes the manager.
|
|
11064
11081
|
*
|
|
@@ -11066,9 +11083,18 @@ class SpeakerManager {
|
|
|
11066
11083
|
*/
|
|
11067
11084
|
this.dispose = () => {
|
|
11068
11085
|
this.subscriptions.forEach((s) => s.unsubscribe());
|
|
11086
|
+
this.subscriptions = [];
|
|
11087
|
+
this.areSubscriptionsSetUp = false;
|
|
11069
11088
|
};
|
|
11070
11089
|
this.call = call;
|
|
11071
11090
|
this.state = new SpeakerState(call.tracer);
|
|
11091
|
+
this.setup();
|
|
11092
|
+
}
|
|
11093
|
+
setup() {
|
|
11094
|
+
if (this.areSubscriptionsSetUp) {
|
|
11095
|
+
return;
|
|
11096
|
+
}
|
|
11097
|
+
this.areSubscriptionsSetUp = true;
|
|
11072
11098
|
if (deviceIds$ && !isReactNative()) {
|
|
11073
11099
|
this.subscriptions.push(combineLatest([deviceIds$, this.state.selectedDevice$]).subscribe(([devices, deviceId]) => {
|
|
11074
11100
|
if (!deviceId) {
|
|
@@ -11210,6 +11236,10 @@ class Call {
|
|
|
11210
11236
|
this.leaveCallHooks.add(registerEventHandlers(this, this.dispatcher));
|
|
11211
11237
|
this.registerEffects();
|
|
11212
11238
|
this.registerReconnectHandlers();
|
|
11239
|
+
this.camera.setup();
|
|
11240
|
+
this.microphone.setup();
|
|
11241
|
+
this.screenShare.setup();
|
|
11242
|
+
this.speaker.setup();
|
|
11213
11243
|
if (this.state.callingState === CallingState.LEFT) {
|
|
11214
11244
|
this.state.setCallingState(CallingState.IDLE);
|
|
11215
11245
|
}
|
|
@@ -11448,6 +11478,7 @@ class Call {
|
|
|
11448
11478
|
this.microphone.dispose();
|
|
11449
11479
|
this.screenShare.dispose();
|
|
11450
11480
|
this.speaker.dispose();
|
|
11481
|
+
this.deviceSettingsAppliedOnce = false;
|
|
11451
11482
|
const stopOnLeavePromises = [];
|
|
11452
11483
|
if (this.camera.stopOnLeave) {
|
|
11453
11484
|
stopOnLeavePromises.push(this.camera.disable(true));
|
|
@@ -14221,7 +14252,7 @@ class StreamClient {
|
|
|
14221
14252
|
this.getUserAgent = () => {
|
|
14222
14253
|
if (!this.cachedUserAgent) {
|
|
14223
14254
|
const { clientAppIdentifier = {} } = this.options;
|
|
14224
|
-
const { sdkName = 'js', sdkVersion = "1.25.
|
|
14255
|
+
const { sdkName = 'js', sdkVersion = "1.25.1", ...extras } = clientAppIdentifier;
|
|
14225
14256
|
this.cachedUserAgent = [
|
|
14226
14257
|
`stream-video-${sdkName}-v${sdkVersion}`,
|
|
14227
14258
|
...Object.entries(extras).map(([key, value]) => `${key}=${value}`),
|