@stream-io/video-client 1.53.0 → 1.53.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,13 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.53.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.53.0...@stream-io/video-client-1.53.1) (2026-06-12)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **client:** Send call data in JoinInitiated event ([#2283](https://github.com/GetStream/stream-video-js/issues/2283)) ([7e9ce3e](https://github.com/GetStream/stream-video-js/commit/7e9ce3e3e3c4ebe8080f86793855a39abe7e19ef))
10
+ - **ios:** joining a call muted may break remote audio playout ([#2282](https://github.com/GetStream/stream-video-js/issues/2282)) ([dc672a6](https://github.com/GetStream/stream-video-js/commit/dc672a69971d6ca46648696c242609c687cb42d7))
11
+
5
12
  ## [1.53.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.52.0...@stream-io/video-client-1.53.0) (2026-06-11)
6
13
 
7
14
  ### Features
@@ -6640,7 +6640,7 @@ const getSdkVersion = (sdk) => {
6640
6640
  return sdk ? `${sdk.major}.${sdk.minor}.${sdk.patch}` : '0.0.0-development';
6641
6641
  };
6642
6642
 
6643
- const version = "1.53.0";
6643
+ const version = "1.53.1";
6644
6644
  const [major, minor, patch] = version.split('.');
6645
6645
  let sdkInfo = {
6646
6646
  type: SdkType.PLAIN_JAVASCRIPT,
@@ -13139,6 +13139,7 @@ class MicrophoneManager extends AudioDeviceManager {
13139
13139
  ]), async ([callingState, ownCapabilities, deviceId, status, permissionState,]) => {
13140
13140
  try {
13141
13141
  if (callingState === CallingState.LEFT) {
13142
+ this.setMutedRecordingPrepared(false);
13142
13143
  await this.stopSpeakingWhileMutedDetection();
13143
13144
  }
13144
13145
  if (callingState !== CallingState.JOINED)
@@ -13148,13 +13149,16 @@ class MicrophoneManager extends AudioDeviceManager {
13148
13149
  if (ownCapabilities.includes(OwnCapability.SEND_AUDIO)) {
13149
13150
  const hasPermission = await this.hasPermission(permissionState);
13150
13151
  if (hasPermission && status !== 'enabled') {
13152
+ this.setMutedRecordingPrepared(true);
13151
13153
  await this.startSpeakingWhileMutedDetection(deviceId);
13152
13154
  }
13153
13155
  else {
13156
+ this.setMutedRecordingPrepared(false);
13154
13157
  await this.stopSpeakingWhileMutedDetection();
13155
13158
  }
13156
13159
  }
13157
13160
  else {
13161
+ this.setMutedRecordingPrepared(false);
13158
13162
  await this.stopSpeakingWhileMutedDetection();
13159
13163
  }
13160
13164
  }
@@ -13472,6 +13476,16 @@ class MicrophoneManager extends AudioDeviceManager {
13472
13476
  this.logger.warn('Failed to stop speaking while muted detector', err);
13473
13477
  });
13474
13478
  }
13479
+ /**
13480
+ * iOS-only: keep the mic-input chain prepared while muted
13481
+ * so the `AVAudioEngine` stays full-duplex and remote audio renders on a
13482
+ * muted join.
13483
+ */
13484
+ setMutedRecordingPrepared(enabled) {
13485
+ if (!isReactNative())
13486
+ return;
13487
+ globalThis.streamRNVideoSDK?.callManager.setMutedRecordingPrepared?.(enabled);
13488
+ }
13475
13489
  async hasPermission(permissionState) {
13476
13490
  if (!isReactNative())
13477
13491
  return permissionState === 'granted';
@@ -17450,11 +17464,11 @@ class StreamClient {
17450
17464
  return await this.wsConnection.connect(this.defaultWSTimeout);
17451
17465
  };
17452
17466
  this.getSdkVersion = () => this.options.clientAppIdentifier?.sdkVersion ||
17453
- "1.53.0";
17467
+ "1.53.1";
17454
17468
  this.getUserAgent = () => {
17455
17469
  if (!this.cachedUserAgent) {
17456
17470
  const { clientAppIdentifier = {} } = this.options;
17457
- const { sdkName = 'js', sdkVersion = "1.53.0", ...extras } = clientAppIdentifier;
17471
+ const { sdkName = 'js', sdkVersion = "1.53.1", ...extras } = clientAppIdentifier;
17458
17472
  this.cachedUserAgent = [
17459
17473
  `stream-video-${sdkName}-v${sdkVersion}`,
17460
17474
  ...Object.entries(extras).map(([key, value]) => `${key}=${value}`),
@@ -17859,8 +17873,12 @@ class ClientEventReporter {
17859
17873
  if (!joinAttemptId)
17860
17874
  return;
17861
17875
  const coordinatorConnectId = this.coordinatorConnectId;
17876
+ const ctx = this.callContexts.get(cid);
17862
17877
  this.send({
17863
17878
  user_id: this.streamClient.userID,
17879
+ type: ctx?.callType,
17880
+ id: ctx?.callId,
17881
+ call_cid: cid,
17864
17882
  stage: 'JoinInitiated',
17865
17883
  join_attempt_id: joinAttemptId,
17866
17884
  ...(coordinatorConnectId && {