@stream-io/video-client 1.15.7 → 1.16.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,23 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.16.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.16.0...@stream-io/video-client-1.16.1) (2025-02-05)
6
+
7
+
8
+ * add trace log for call unregister ([e20d9dc](https://github.com/GetStream/stream-video-js/commit/e20d9dc28b35c5dd0c921ccc3e18923a344ae5ab))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * do not mute track on camera flip ([#1671](https://github.com/GetStream/stream-video-js/issues/1671)) ([963eb4d](https://github.com/GetStream/stream-video-js/commit/963eb4d4e5d6b96afb61b4da23a05ad92bcb3973))
14
+
15
+ ## [1.16.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.15.7...@stream-io/video-client-1.16.0) (2025-01-31)
16
+
17
+
18
+ ### Features
19
+
20
+ * OpenAPI upgrades and HLS status reporting ([#1668](https://github.com/GetStream/stream-video-js/issues/1668)) ([2f377b8](https://github.com/GetStream/stream-video-js/commit/2f377b8772f7b9fc8fcb8b8e9b3eecb1920bc7d0))
21
+
5
22
  ## [1.15.7](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.15.6...@stream-io/video-client-1.15.7) (2025-01-29)
6
23
 
7
24
 
@@ -8,8 +8,6 @@ import { ReplaySubject, combineLatest, BehaviorSubject, map, shareReplay, distin
8
8
  import { parse } from 'sdp-transform';
9
9
  import { UAParser } from 'ua-parser-js';
10
10
 
11
- /* tslint:disable */
12
- /* eslint-disable */
13
11
  /**
14
12
  * @export
15
13
  */
@@ -24,80 +22,6 @@ const AudioSettingsResponseDefaultDeviceEnum = {
24
22
  SPEAKER: 'speaker',
25
23
  EARPIECE: 'earpiece',
26
24
  };
27
- /**
28
- * @export
29
- */
30
- const BlockListOptionsBehaviorEnum = {
31
- FLAG: 'flag',
32
- BLOCK: 'block',
33
- SHADOW_BLOCK: 'shadow_block',
34
- };
35
- /**
36
- * @export
37
- */
38
- const ChannelConfigWithInfoAutomodEnum = {
39
- DISABLED: 'disabled',
40
- SIMPLE: 'simple',
41
- AI: 'AI',
42
- };
43
- /**
44
- * @export
45
- */
46
- const ChannelConfigWithInfoAutomodBehaviorEnum = {
47
- FLAG: 'flag',
48
- BLOCK: 'block',
49
- SHADOW_BLOCK: 'shadow_block',
50
- };
51
- /**
52
- * @export
53
- */
54
- const ChannelConfigWithInfoBlocklistBehaviorEnum = {
55
- FLAG: 'flag',
56
- BLOCK: 'block',
57
- SHADOW_BLOCK: 'shadow_block',
58
- };
59
- /**
60
- * All possibility of string to use
61
- * @export
62
- */
63
- const ChannelOwnCapability = {
64
- BAN_CHANNEL_MEMBERS: 'ban-channel-members',
65
- CAST_POLL_VOTE: 'cast-poll-vote',
66
- CONNECT_EVENTS: 'connect-events',
67
- CREATE_ATTACHMENT: 'create-attachment',
68
- CREATE_CALL: 'create-call',
69
- DELETE_ANY_MESSAGE: 'delete-any-message',
70
- DELETE_CHANNEL: 'delete-channel',
71
- DELETE_OWN_MESSAGE: 'delete-own-message',
72
- FLAG_MESSAGE: 'flag-message',
73
- FREEZE_CHANNEL: 'freeze-channel',
74
- JOIN_CALL: 'join-call',
75
- JOIN_CHANNEL: 'join-channel',
76
- LEAVE_CHANNEL: 'leave-channel',
77
- MUTE_CHANNEL: 'mute-channel',
78
- PIN_MESSAGE: 'pin-message',
79
- QUERY_POLL_VOTES: 'query-poll-votes',
80
- QUOTE_MESSAGE: 'quote-message',
81
- READ_EVENTS: 'read-events',
82
- SEARCH_MESSAGES: 'search-messages',
83
- SEND_CUSTOM_EVENTS: 'send-custom-events',
84
- SEND_LINKS: 'send-links',
85
- SEND_MESSAGE: 'send-message',
86
- SEND_POLL: 'send-poll',
87
- SEND_REACTION: 'send-reaction',
88
- SEND_REPLY: 'send-reply',
89
- SEND_TYPING_EVENTS: 'send-typing-events',
90
- SET_CHANNEL_COOLDOWN: 'set-channel-cooldown',
91
- SKIP_SLOW_MODE: 'skip-slow-mode',
92
- SLOW_MODE: 'slow-mode',
93
- TYPING_EVENTS: 'typing-events',
94
- UPDATE_ANY_MESSAGE: 'update-any-message',
95
- UPDATE_CHANNEL: 'update-channel',
96
- UPDATE_CHANNEL_MEMBERS: 'update-channel-members',
97
- UPDATE_OWN_MESSAGE: 'update-own-message',
98
- UPDATE_THREAD: 'update-thread',
99
- UPLOAD_FILE: 'upload-file',
100
- };
101
25
  /**
102
26
  * @export
103
27
  */
@@ -107,6 +31,16 @@ const CreateDeviceRequestPushProviderEnum = {
107
31
  HUAWEI: 'huawei',
108
32
  XIAOMI: 'xiaomi',
109
33
  };
34
+ /**
35
+ * @export
36
+ */
37
+ const LayoutSettingsRequestNameEnum = {
38
+ SPOTLIGHT: 'spotlight',
39
+ GRID: 'grid',
40
+ SINGLE_PARTICIPANT: 'single-participant',
41
+ MOBILE: 'mobile',
42
+ CUSTOM: 'custom',
43
+ };
110
44
  /**
111
45
  * @export
112
46
  */
@@ -149,6 +83,36 @@ const OwnCapability = {
149
83
  UPDATE_CALL_PERMISSIONS: 'update-call-permissions',
150
84
  UPDATE_CALL_SETTINGS: 'update-call-settings',
151
85
  };
86
+ /**
87
+ * @export
88
+ */
89
+ const RTMPBroadcastRequestQualityEnum = {
90
+ _360P: '360p',
91
+ _480P: '480p',
92
+ _720P: '720p',
93
+ _1080P: '1080p',
94
+ _1440P: '1440p',
95
+ PORTRAIT_360X640: 'portrait-360x640',
96
+ PORTRAIT_480X854: 'portrait-480x854',
97
+ PORTRAIT_720X1280: 'portrait-720x1280',
98
+ PORTRAIT_1080X1920: 'portrait-1080x1920',
99
+ PORTRAIT_1440X2560: 'portrait-1440x2560',
100
+ };
101
+ /**
102
+ * @export
103
+ */
104
+ const RTMPSettingsRequestQualityEnum = {
105
+ _360P: '360p',
106
+ _480P: '480p',
107
+ _720P: '720p',
108
+ _1080P: '1080p',
109
+ _1440P: '1440p',
110
+ PORTRAIT_360X640: 'portrait-360x640',
111
+ PORTRAIT_480X854: 'portrait-480x854',
112
+ PORTRAIT_720X1280: 'portrait-720x1280',
113
+ PORTRAIT_1080X1920: 'portrait-1080x1920',
114
+ PORTRAIT_1440X2560: 'portrait-1440x2560',
115
+ };
152
116
  /**
153
117
  * @export
154
118
  */
@@ -180,6 +144,44 @@ const TranscriptionSettingsRequestClosedCaptionModeEnum = {
180
144
  DISABLED: 'disabled',
181
145
  AUTO_ON: 'auto-on',
182
146
  };
147
+ /**
148
+ * @export
149
+ */
150
+ const TranscriptionSettingsRequestLanguageEnum = {
151
+ AUTO: 'auto',
152
+ EN: 'en',
153
+ FR: 'fr',
154
+ ES: 'es',
155
+ DE: 'de',
156
+ IT: 'it',
157
+ NL: 'nl',
158
+ PT: 'pt',
159
+ PL: 'pl',
160
+ CA: 'ca',
161
+ CS: 'cs',
162
+ DA: 'da',
163
+ EL: 'el',
164
+ FI: 'fi',
165
+ ID: 'id',
166
+ JA: 'ja',
167
+ RU: 'ru',
168
+ SV: 'sv',
169
+ TA: 'ta',
170
+ TH: 'th',
171
+ TR: 'tr',
172
+ HU: 'hu',
173
+ RO: 'ro',
174
+ ZH: 'zh',
175
+ AR: 'ar',
176
+ TL: 'tl',
177
+ HE: 'he',
178
+ HI: 'hi',
179
+ HR: 'hr',
180
+ KO: 'ko',
181
+ MS: 'ms',
182
+ NO: 'no',
183
+ UK: 'uk',
184
+ };
183
185
  /**
184
186
  * @export
185
187
  */
@@ -196,6 +198,44 @@ const TranscriptionSettingsResponseClosedCaptionModeEnum = {
196
198
  DISABLED: 'disabled',
197
199
  AUTO_ON: 'auto-on',
198
200
  };
201
+ /**
202
+ * @export
203
+ */
204
+ const TranscriptionSettingsResponseLanguageEnum = {
205
+ AUTO: 'auto',
206
+ EN: 'en',
207
+ FR: 'fr',
208
+ ES: 'es',
209
+ DE: 'de',
210
+ IT: 'it',
211
+ NL: 'nl',
212
+ PT: 'pt',
213
+ PL: 'pl',
214
+ CA: 'ca',
215
+ CS: 'cs',
216
+ DA: 'da',
217
+ EL: 'el',
218
+ FI: 'fi',
219
+ ID: 'id',
220
+ JA: 'ja',
221
+ RU: 'ru',
222
+ SV: 'sv',
223
+ TA: 'ta',
224
+ TH: 'th',
225
+ TR: 'tr',
226
+ HU: 'hu',
227
+ RO: 'ro',
228
+ ZH: 'zh',
229
+ AR: 'ar',
230
+ TL: 'tl',
231
+ HE: 'he',
232
+ HI: 'hi',
233
+ HR: 'hr',
234
+ KO: 'ko',
235
+ MS: 'ms',
236
+ NO: 'no',
237
+ UK: 'uk',
238
+ };
199
239
  /**
200
240
  * @export
201
241
  */
@@ -3856,6 +3896,8 @@ class StreamVideoWriteableStateStore {
3856
3896
  * @param call the call to remove
3857
3897
  */
3858
3898
  this.unregisterCall = (call) => {
3899
+ const logger = getLogger(['client-state']);
3900
+ logger('trace', `Unregistering call: ${call.cid}`);
3859
3901
  return this.setCalls((calls) => calls.filter((c) => c !== call));
3860
3902
  };
3861
3903
  /**
@@ -4183,7 +4225,7 @@ const livestreamOrAudioRoomSortPreset = combineComparators(ifInvisibleBy(combine
4183
4225
  */
4184
4226
  const defaultEgress = {
4185
4227
  broadcasting: false,
4186
- hls: { playlist_url: '' },
4228
+ hls: { playlist_url: '', status: '' },
4187
4229
  rtmps: [],
4188
4230
  };
4189
4231
  /**
@@ -4646,21 +4688,19 @@ class CallState {
4646
4688
  this.setCurrentValue(this.egressSubject, (egress = defaultEgress) => ({
4647
4689
  ...egress,
4648
4690
  broadcasting: false,
4691
+ hls: {
4692
+ ...egress.hls,
4693
+ status: '',
4694
+ },
4649
4695
  }));
4650
4696
  };
4651
4697
  this.updateFromHLSBroadcastingFailed = () => {
4652
4698
  this.setCurrentValue(this.egressSubject, (egress = defaultEgress) => ({
4653
4699
  ...egress,
4654
4700
  broadcasting: false,
4655
- }));
4656
- };
4657
- this.updateFromHLSBroadcastStarted = (event) => {
4658
- this.setCurrentValue(this.egressSubject, (egress = defaultEgress) => ({
4659
- ...egress,
4660
- broadcasting: true,
4661
4701
  hls: {
4662
4702
  ...egress.hls,
4663
- playlist_url: event.hls_playlist_url,
4703
+ status: '',
4664
4704
  },
4665
4705
  }));
4666
4706
  };
@@ -4871,21 +4911,16 @@ class CallState {
4871
4911
  this.captioning$ = duc(this.captioningSubject);
4872
4912
  this.eventHandlers = {
4873
4913
  // these events are not updating the call state:
4874
- 'call.deleted': undefined,
4875
4914
  'call.permission_request': undefined,
4876
4915
  'call.recording_ready': undefined,
4916
+ 'call.rtmp_broadcast_failed': undefined,
4917
+ 'call.rtmp_broadcast_started': undefined,
4918
+ 'call.rtmp_broadcast_stopped': undefined,
4877
4919
  'call.transcription_ready': undefined,
4878
4920
  'call.user_muted': undefined,
4879
4921
  'connection.error': undefined,
4880
4922
  'connection.ok': undefined,
4881
4923
  'health.check': undefined,
4882
- 'user.banned': undefined,
4883
- 'user.deactivated': undefined,
4884
- 'user.deleted': undefined,
4885
- 'user.muted': undefined,
4886
- 'user.presence.changed': undefined,
4887
- 'user.reactivated': undefined,
4888
- 'user.unbanned': undefined,
4889
4924
  'user.updated': undefined,
4890
4925
  custom: undefined,
4891
4926
  // events that update call state:
@@ -4902,12 +4937,15 @@ class CallState {
4902
4937
  this.setCurrentValue(this.captioningSubject, false);
4903
4938
  },
4904
4939
  'call.created': (e) => this.updateFromCallResponse(e.call),
4940
+ 'call.deleted': (e) => this.updateFromCallResponse(e.call),
4905
4941
  'call.ended': (e) => {
4906
4942
  this.updateFromCallResponse(e.call);
4907
4943
  this.setCurrentValue(this.endedBySubject, e.user);
4908
4944
  },
4909
4945
  'call.hls_broadcasting_failed': this.updateFromHLSBroadcastingFailed,
4910
- 'call.hls_broadcasting_started': this.updateFromHLSBroadcastStarted,
4946
+ 'call.hls_broadcasting_started': (e) => {
4947
+ this.updateFromCallResponse(e.call);
4948
+ },
4911
4949
  'call.hls_broadcasting_stopped': this.updateFromHLSBroadcastStopped,
4912
4950
  'call.live_started': (e) => this.updateFromCallResponse(e.call),
4913
4951
  'call.member_added': this.updateFromMemberAdded,
@@ -7356,7 +7394,7 @@ const aggregate = (stats) => {
7356
7394
  return report;
7357
7395
  };
7358
7396
 
7359
- const version = "1.15.7";
7397
+ const version = "1.16.1";
7360
7398
  const [major, minor, patch] = version.split('.');
7361
7399
  let sdkInfo = {
7362
7400
  type: SdkType.PLAIN_JAVASCRIPT,
@@ -9213,10 +9251,34 @@ class CameraManager extends InputMediaDeviceManager {
9213
9251
  */
9214
9252
  async selectDirection(direction) {
9215
9253
  if (this.isDirectionSupportedByDevice()) {
9216
- this.state.setDirection(direction);
9217
- // Providing both device id and direction doesn't work, so we deselect the device
9218
- this.state.setDevice(undefined);
9219
- await this.applySettingsToStream();
9254
+ if (isReactNative()) {
9255
+ const videoTrack = this.getTracks()[0];
9256
+ if (!videoTrack)
9257
+ return;
9258
+ // @ts-expect-error _switchCamera() is only present in react-native-webrtc 124 and below
9259
+ if (typeof videoTrack._switchCamera === 'function') {
9260
+ // @ts-expect-error for older versions of react-native-webrtc support
9261
+ videoTrack._switchCamera();
9262
+ }
9263
+ else {
9264
+ const constraints = {
9265
+ facingMode: direction === 'front' ? 'user' : 'environment',
9266
+ };
9267
+ await videoTrack.applyConstraints(constraints);
9268
+ }
9269
+ this.state.setDirection(direction);
9270
+ this.state.setDevice(undefined);
9271
+ }
9272
+ else {
9273
+ // web mobile
9274
+ this.state.setDirection(direction);
9275
+ // Providing both device id and direction doesn't work, so we deselect the device
9276
+ this.state.setDevice(undefined);
9277
+ this.getTracks().forEach((track) => {
9278
+ track.stop();
9279
+ });
9280
+ await this.unmuteStream();
9281
+ }
9220
9282
  }
9221
9283
  else {
9222
9284
  this.logger('warn', 'Camera direction ignored for desktop devices');
@@ -10410,6 +10472,12 @@ class Call {
10410
10472
  this.create = async (data) => {
10411
10473
  return this.getOrCreate(data);
10412
10474
  };
10475
+ /**
10476
+ * Deletes the call.
10477
+ */
10478
+ this.delete = async (data = {}) => {
10479
+ return this.streamClient.post(`${this.streamClientBasePath}/delete`, data);
10480
+ };
10413
10481
  /**
10414
10482
  * A shortcut for {@link Call.get} with `ring` parameter set to `true`.
10415
10483
  * Will send a `call.ring` event to the call members.
@@ -11420,8 +11488,8 @@ class Call {
11420
11488
  /**
11421
11489
  * Stops the livestreaming of the call.
11422
11490
  */
11423
- this.stopLive = async () => {
11424
- return this.streamClient.post(`${this.streamClientBasePath}/stop_live`, {});
11491
+ this.stopLive = async (data = {}) => {
11492
+ return this.streamClient.post(`${this.streamClientBasePath}/stop_live`, data);
11425
11493
  };
11426
11494
  /**
11427
11495
  * Starts the broadcasting of the call.
@@ -11435,6 +11503,24 @@ class Call {
11435
11503
  this.stopHLS = async () => {
11436
11504
  return this.streamClient.post(`${this.streamClientBasePath}/stop_broadcasting`, {});
11437
11505
  };
11506
+ /**
11507
+ * Starts the RTMP-out broadcasting of the call.
11508
+ */
11509
+ this.startRTMPBroadcasts = async (data) => {
11510
+ return this.streamClient.post(`${this.streamClientBasePath}/rtmp_broadcasts`, data);
11511
+ };
11512
+ /**
11513
+ * Stops all RTMP-out broadcasting of the call.
11514
+ */
11515
+ this.stopAllRTMPBroadcasts = async () => {
11516
+ return this.streamClient.post(`${this.streamClientBasePath}/rtmp_broadcasts/stop`);
11517
+ };
11518
+ /**
11519
+ * Stops the RTMP-out broadcasting of the call specified by it's name.
11520
+ */
11521
+ this.stopRTMPBroadcast = async (name) => {
11522
+ return this.streamClient.post(`${this.streamClientBasePath}/rtmp_broadcasts/${name}/stop`);
11523
+ };
11438
11524
  /**
11439
11525
  * Updates the call settings or custom data.
11440
11526
  *
@@ -12915,7 +13001,7 @@ class StreamClient {
12915
13001
  return await this.wsConnection.connect(this.defaultWSTimeout);
12916
13002
  };
12917
13003
  this.getUserAgent = () => {
12918
- const version = "1.15.7";
13004
+ const version = "1.16.1";
12919
13005
  return (this.userAgent ||
12920
13006
  `stream-video-javascript-client-${this.node ? 'node' : 'browser'}-${version}`);
12921
13007
  };
@@ -13424,5 +13510,5 @@ class StreamVideoClient {
13424
13510
  }
13425
13511
  StreamVideoClient._instanceMap = new Map();
13426
13512
 
13427
- export { AudioSettingsRequestDefaultDeviceEnum, AudioSettingsResponseDefaultDeviceEnum, BlockListOptionsBehaviorEnum, browsers as Browsers, Call, CallState, CallType, CallTypes, CallingState, CameraManager, CameraManagerState, ChannelConfigWithInfoAutomodBehaviorEnum, ChannelConfigWithInfoAutomodEnum, ChannelConfigWithInfoBlocklistBehaviorEnum, ChannelOwnCapability, CreateDeviceRequestPushProviderEnum, DebounceType, DynascaleManager, ErrorFromResponse, InputMediaDeviceManager, InputMediaDeviceManagerState, MicrophoneManager, MicrophoneManagerState, NoiseCancellationSettingsModeEnum, OwnCapability, RecordSettingsRequestModeEnum, RecordSettingsRequestQualityEnum, rxUtils as RxUtils, ScreenShareManager, ScreenShareState, events as SfuEvents, models as SfuModels, SpeakerManager, SpeakerState, StreamSfuClient, StreamVideoClient, StreamVideoReadOnlyStateStore, StreamVideoWriteableStateStore, TranscriptionSettingsRequestClosedCaptionModeEnum, TranscriptionSettingsRequestModeEnum, TranscriptionSettingsResponseClosedCaptionModeEnum, TranscriptionSettingsResponseModeEnum, VideoSettingsRequestCameraFacingEnum, VideoSettingsResponseCameraFacingEnum, ViewportTracker, VisibilityState, checkIfAudioOutputChangeSupported, combineComparators, conditional, createSoundDetector, defaultSortPreset, descending, deviceIds$, disposeOfMediaStream, dominantSpeaker, getAudioBrowserPermission, getAudioDevices, getAudioOutputDevices, getAudioStream, getClientDetails, getDeviceInfo, getDeviceState, getLogLevel, getLogger, getOSInfo, getScreenShareStream, getSdkInfo, getVideoBrowserPermission, getVideoDevices, getVideoStream, getWebRTCInfo, hasAudio, hasScreenShare, hasScreenShareAudio, hasVideo, isPinned, livestreamOrAudioRoomSortPreset, logLevels, logToConsole, name, noopComparator, paginatedLayoutSortPreset, pinned, publishingAudio, publishingVideo, reactionType, role, screenSharing, setDeviceInfo, setLogLevel, setLogger, setOSInfo, setPowerState, setSdkInfo, setThermalState, setWebRTCInfo, speakerLayoutSortPreset, speaking };
13513
+ export { AudioSettingsRequestDefaultDeviceEnum, AudioSettingsResponseDefaultDeviceEnum, browsers as Browsers, Call, CallState, CallType, CallTypes, CallingState, CameraManager, CameraManagerState, CreateDeviceRequestPushProviderEnum, DebounceType, DynascaleManager, ErrorFromResponse, InputMediaDeviceManager, InputMediaDeviceManagerState, LayoutSettingsRequestNameEnum, MicrophoneManager, MicrophoneManagerState, NoiseCancellationSettingsModeEnum, OwnCapability, RTMPBroadcastRequestQualityEnum, RTMPSettingsRequestQualityEnum, RecordSettingsRequestModeEnum, RecordSettingsRequestQualityEnum, rxUtils as RxUtils, ScreenShareManager, ScreenShareState, events as SfuEvents, models as SfuModels, SpeakerManager, SpeakerState, StreamSfuClient, StreamVideoClient, StreamVideoReadOnlyStateStore, StreamVideoWriteableStateStore, TranscriptionSettingsRequestClosedCaptionModeEnum, TranscriptionSettingsRequestLanguageEnum, TranscriptionSettingsRequestModeEnum, TranscriptionSettingsResponseClosedCaptionModeEnum, TranscriptionSettingsResponseLanguageEnum, TranscriptionSettingsResponseModeEnum, VideoSettingsRequestCameraFacingEnum, VideoSettingsResponseCameraFacingEnum, ViewportTracker, VisibilityState, checkIfAudioOutputChangeSupported, combineComparators, conditional, createSoundDetector, defaultSortPreset, descending, deviceIds$, disposeOfMediaStream, dominantSpeaker, getAudioBrowserPermission, getAudioDevices, getAudioOutputDevices, getAudioStream, getClientDetails, getDeviceInfo, getDeviceState, getLogLevel, getLogger, getOSInfo, getScreenShareStream, getSdkInfo, getVideoBrowserPermission, getVideoDevices, getVideoStream, getWebRTCInfo, hasAudio, hasScreenShare, hasScreenShareAudio, hasVideo, isPinned, livestreamOrAudioRoomSortPreset, logLevels, logToConsole, name, noopComparator, paginatedLayoutSortPreset, pinned, publishingAudio, publishingVideo, reactionType, role, screenSharing, setDeviceInfo, setLogLevel, setLogger, setOSInfo, setPowerState, setSdkInfo, setThermalState, setWebRTCInfo, speakerLayoutSortPreset, speaking };
13428
13514
  //# sourceMappingURL=index.browser.es.js.map