@stream-io/video-client 1.42.0 → 1.42.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 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.42.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.42.0...@stream-io/video-client-1.42.1) (2026-02-10)
6
+
7
+ ### Bug Fixes
8
+
9
+ - respect device permissions when detecting speech while muted ([#2115](https://github.com/GetStream/stream-video-js/issues/2115)) ([fe98768](https://github.com/GetStream/stream-video-js/commit/fe98768a9bf695fc5355905939884594c11ac2b9)), closes [#2110](https://github.com/GetStream/stream-video-js/issues/2110)
10
+
5
11
  ## [1.42.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.41.3...@stream-io/video-client-1.42.0) (2026-02-06)
6
12
 
7
13
  ### Features
@@ -6188,7 +6188,7 @@ const getSdkVersion = (sdk) => {
6188
6188
  return sdk ? `${sdk.major}.${sdk.minor}.${sdk.patch}` : '0.0.0-development';
6189
6189
  };
6190
6190
 
6191
- const version = "1.42.0";
6191
+ const version = "1.42.1";
6192
6192
  const [major, minor, patch] = version.split('.');
6193
6193
  let sdkInfo = {
6194
6194
  type: SdkType.PLAIN_JAVASCRIPT,
@@ -11692,7 +11692,8 @@ class MicrophoneManager extends AudioDeviceManager {
11692
11692
  this.call.state.ownCapabilities$,
11693
11693
  this.state.selectedDevice$,
11694
11694
  this.state.status$,
11695
- ]), async ([callingState, ownCapabilities, deviceId, status]) => {
11695
+ this.state.browserPermissionState$,
11696
+ ]), async ([callingState, ownCapabilities, deviceId, status, permissionState,]) => {
11696
11697
  try {
11697
11698
  if (callingState === CallingState.LEFT) {
11698
11699
  await this.stopSpeakingWhileMutedDetection();
@@ -11702,7 +11703,8 @@ class MicrophoneManager extends AudioDeviceManager {
11702
11703
  if (!this.speakingWhileMutedNotificationEnabled)
11703
11704
  return;
11704
11705
  if (ownCapabilities.includes(OwnCapability.SEND_AUDIO)) {
11705
- if (status !== 'enabled') {
11706
+ const hasPermission = await this.hasPermission(permissionState);
11707
+ if (hasPermission && status !== 'enabled') {
11706
11708
  await this.startSpeakingWhileMutedDetection(deviceId);
11707
11709
  }
11708
11710
  else {
@@ -12001,6 +12003,20 @@ class MicrophoneManager extends AudioDeviceManager {
12001
12003
  await soundDetectorCleanup();
12002
12004
  });
12003
12005
  }
12006
+ async hasPermission(permissionState) {
12007
+ if (!isReactNative())
12008
+ return permissionState === 'granted';
12009
+ const nativePermissions = globalThis.streamRNVideoSDK?.permissions;
12010
+ if (!nativePermissions)
12011
+ return true; // assume granted
12012
+ try {
12013
+ return await nativePermissions.check('microphone');
12014
+ }
12015
+ catch (err) {
12016
+ this.logger.warn('Failed to check permission', err);
12017
+ return false;
12018
+ }
12019
+ }
12004
12020
  }
12005
12021
 
12006
12022
  class ScreenShareState extends AudioDeviceManagerState {
@@ -15512,7 +15528,7 @@ class StreamClient {
15512
15528
  this.getUserAgent = () => {
15513
15529
  if (!this.cachedUserAgent) {
15514
15530
  const { clientAppIdentifier = {} } = this.options;
15515
- const { sdkName = 'js', sdkVersion = "1.42.0", ...extras } = clientAppIdentifier;
15531
+ const { sdkName = 'js', sdkVersion = "1.42.1", ...extras } = clientAppIdentifier;
15516
15532
  this.cachedUserAgent = [
15517
15533
  `stream-video-${sdkName}-v${sdkVersion}`,
15518
15534
  ...Object.entries(extras).map(([key, value]) => `${key}=${value}`),