@100mslive/react-native-hms 1.9.12 → 1.10.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.
Files changed (357) hide show
  1. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +0 -15
  2. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +58 -0
  3. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +38 -0
  4. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityDecoder.kt +86 -1
  5. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSRNInteractivityCenter.kt +39 -61
  6. package/ios/HMSInteractivityDecoder.swift +50 -0
  7. package/ios/HMSManager.m +18 -0
  8. package/ios/HMSManager.swift +41 -1
  9. package/ios/HMSRNInteractivityCenter.swift +31 -0
  10. package/ios/HMSRNSDK.swift +59 -0
  11. package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
  12. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  13. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
  14. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  15. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  16. package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
  17. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  18. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  19. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  20. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  21. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  22. package/lib/commonjs/classes/HMSCameraControl.js.map +1 -1
  23. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  24. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  25. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  26. package/lib/commonjs/classes/HMSConstants.js.map +1 -1
  27. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  28. package/lib/commonjs/classes/HMSEventEmitter.js.map +1 -1
  29. package/lib/commonjs/classes/HMSException.js.map +1 -1
  30. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  31. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  32. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  33. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  34. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  35. package/lib/commonjs/classes/HMSHLSTimedMetadata.js +2 -0
  36. package/lib/commonjs/classes/HMSHLSTimedMetadata.js.map +1 -0
  37. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  38. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  39. package/lib/commonjs/classes/HMSIOSAudioMode.js.map +1 -1
  40. package/lib/commonjs/classes/HMSInteractivityCenter.js +21 -0
  41. package/lib/commonjs/classes/HMSInteractivityCenter.js.map +1 -1
  42. package/lib/commonjs/classes/HMSInteractivityEncoder.js +46 -2
  43. package/lib/commonjs/classes/HMSInteractivityEncoder.js.map +1 -1
  44. package/lib/commonjs/classes/HMSLayer.js.map +1 -1
  45. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  46. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  47. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  49. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  50. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
  51. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  52. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  54. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  55. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  56. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
  57. package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
  58. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
  59. package/lib/commonjs/classes/HMSNativeEventListener.js.map +1 -1
  60. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  61. package/lib/commonjs/classes/HMSPIPConfig.js.map +1 -1
  62. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
  63. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  64. package/lib/commonjs/classes/HMSPeerListIterator.js.map +1 -1
  65. package/lib/commonjs/classes/HMSPeerListIteratorOptions.js.map +1 -1
  66. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  67. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
  68. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  69. package/lib/commonjs/classes/HMSPollsListenerActions.js.map +1 -1
  70. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  71. package/lib/commonjs/classes/HMSQualityLimitationReason.js.map +1 -1
  72. package/lib/commonjs/classes/HMSQualityLimitationReasons.js.map +1 -1
  73. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  74. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  75. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  76. package/lib/commonjs/classes/HMSRecordingState.js.map +1 -1
  77. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  78. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  79. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  80. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  81. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  82. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  83. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  84. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  85. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  87. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  89. package/lib/commonjs/classes/HMSSDK.js +33 -11
  90. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  91. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  92. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  93. package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
  94. package/lib/commonjs/classes/HMSSimulcastLayerDefinition.js.map +1 -1
  95. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  96. package/lib/commonjs/classes/HMSSimulcastLayerSettingsPolicy.js.map +1 -1
  97. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  98. package/lib/commonjs/classes/HMSSimulcastSettingsPolicy.js.map +1 -1
  99. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  100. package/lib/commonjs/classes/HMSStreamingState.js.map +1 -1
  101. package/lib/commonjs/classes/HMSSubscribeDegradationPolicy.js.map +1 -1
  102. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  103. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  104. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  105. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
  106. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  107. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  108. package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
  109. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  110. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  111. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  112. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  113. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  114. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  115. package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
  116. package/lib/commonjs/classes/HmsView.js.map +1 -1
  117. package/lib/commonjs/classes/polls/DecodedPollLeaderboardResponse.js +6 -0
  118. package/lib/commonjs/classes/polls/DecodedPollLeaderboardResponse.js.map +1 -0
  119. package/lib/commonjs/classes/polls/HMSPoll.js.map +1 -1
  120. package/lib/commonjs/classes/polls/HMSPollCategory.js.map +1 -1
  121. package/lib/commonjs/classes/polls/HMSPollCreateParams.js.map +1 -1
  122. package/lib/commonjs/classes/polls/HMSPollLeaderboardEntry.js +6 -0
  123. package/lib/commonjs/classes/polls/HMSPollLeaderboardEntry.js.map +1 -0
  124. package/lib/commonjs/classes/polls/HMSPollLeaderboardSummary.js +2 -0
  125. package/lib/commonjs/classes/polls/HMSPollLeaderboardSummary.js.map +1 -0
  126. package/lib/commonjs/classes/polls/HMSPollQuestion.js.map +1 -1
  127. package/lib/commonjs/classes/polls/HMSPollQuestionAnswer.js.map +1 -1
  128. package/lib/commonjs/classes/polls/HMSPollQuestionCreateParams.js.map +1 -1
  129. package/lib/commonjs/classes/polls/HMSPollQuestionOption.js.map +1 -1
  130. package/lib/commonjs/classes/polls/HMSPollQuestionOptionCreateParams.js.map +1 -1
  131. package/lib/commonjs/classes/polls/HMSPollQuestionQuizOptionCreateParams.js.map +1 -1
  132. package/lib/commonjs/classes/polls/HMSPollQuestionResponse.js.map +1 -1
  133. package/lib/commonjs/classes/polls/HMSPollQuestionResponseCreateParams.js.map +1 -1
  134. package/lib/commonjs/classes/polls/HMSPollQuestionResponseResult.js.map +1 -1
  135. package/lib/commonjs/classes/polls/HMSPollQuestionResult.js.map +1 -1
  136. package/lib/commonjs/classes/polls/HMSPollQuestionType.js.map +1 -1
  137. package/lib/commonjs/classes/polls/HMSPollResponsePeerInfo.js.map +1 -1
  138. package/lib/commonjs/classes/polls/HMSPollResult.js.map +1 -1
  139. package/lib/commonjs/classes/polls/HMSPollState.js.map +1 -1
  140. package/lib/commonjs/classes/polls/HMSPollType.js.map +1 -1
  141. package/lib/commonjs/classes/polls/HMSPollUpdateType.js.map +1 -1
  142. package/lib/commonjs/classes/polls/HMSPollUserTrackingMode.js.map +1 -1
  143. package/lib/commonjs/classes/polls/PollLeaderboardResponse.js +6 -0
  144. package/lib/commonjs/classes/polls/PollLeaderboardResponse.js.map +1 -0
  145. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +2 -10
  146. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  147. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -1
  148. package/lib/commonjs/components/HMSHLSPlayer/hooks.js.map +1 -1
  149. package/lib/commonjs/components/HMSHLSPlayer/index.js.map +1 -1
  150. package/lib/commonjs/hooks/hmsviews.js.map +1 -1
  151. package/lib/commonjs/hooks/polls.js.map +1 -1
  152. package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
  153. package/lib/commonjs/index.js +24 -0
  154. package/lib/commonjs/index.js.map +1 -1
  155. package/lib/commonjs/modules/HMSManagerModule.js.map +1 -1
  156. package/lib/commonjs/stores/hls-player-playback-slice.js.map +1 -1
  157. package/lib/commonjs/stores/hls-player-stats-store.js.map +1 -1
  158. package/lib/commonjs/stores/hms-interactivity-store.js.map +1 -1
  159. package/lib/commonjs/stores/hms-polls-slice.js.map +1 -1
  160. package/lib/commonjs/stores/hms-store.js.map +1 -1
  161. package/lib/commonjs/stores/hmsviews-slice.js.map +1 -1
  162. package/lib/commonjs/stores/types.js.map +1 -1
  163. package/lib/commonjs/types.js.map +1 -1
  164. package/lib/commonjs/utils/emitter/EventEmitter.js.map +1 -1
  165. package/lib/commonjs/utils/emitter/_EmitterSubscription.js.map +1 -1
  166. package/lib/commonjs/utils/emitter/_EventSubscription.js.map +1 -1
  167. package/lib/commonjs/utils/emitter/_EventSubscriptionVendor.js.map +1 -1
  168. package/lib/commonjs/utils/index.js.map +1 -1
  169. package/lib/commonjs/utils/keyboard.js.map +1 -1
  170. package/lib/commonjs/utils/notification.js.map +1 -1
  171. package/lib/commonjs/utils/windowController.js.map +1 -1
  172. package/lib/module/classes/HMSAudioCodec.js.map +1 -1
  173. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  174. package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
  175. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  176. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  177. package/lib/module/classes/HMSAudioMode.js.map +1 -1
  178. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  179. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  180. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  181. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  182. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  183. package/lib/module/classes/HMSCameraControl.js.map +1 -1
  184. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  185. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  186. package/lib/module/classes/HMSConfig.js.map +1 -1
  187. package/lib/module/classes/HMSConstants.js.map +1 -1
  188. package/lib/module/classes/HMSEncoder.js.map +1 -1
  189. package/lib/module/classes/HMSEventEmitter.js.map +1 -1
  190. package/lib/module/classes/HMSException.js.map +1 -1
  191. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  192. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  193. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  194. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  195. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  196. package/lib/module/classes/HMSHLSTimedMetadata.js +2 -0
  197. package/lib/module/classes/HMSHLSTimedMetadata.js.map +1 -0
  198. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  199. package/lib/module/classes/HMSHelper.js.map +1 -1
  200. package/lib/module/classes/HMSIOSAudioMode.js.map +1 -1
  201. package/lib/module/classes/HMSInteractivityCenter.js +21 -0
  202. package/lib/module/classes/HMSInteractivityCenter.js.map +1 -1
  203. package/lib/module/classes/HMSInteractivityEncoder.js +46 -2
  204. package/lib/module/classes/HMSInteractivityEncoder.js.map +1 -1
  205. package/lib/module/classes/HMSLayer.js.map +1 -1
  206. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  207. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  208. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  209. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  210. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  211. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
  212. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  213. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  214. package/lib/module/classes/HMSLogger.js.map +1 -1
  215. package/lib/module/classes/HMSMessage.js.map +1 -1
  216. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  217. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
  218. package/lib/module/classes/HMSMicNode.js.map +1 -1
  219. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -1
  220. package/lib/module/classes/HMSNativeEventListener.js.map +1 -1
  221. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  222. package/lib/module/classes/HMSPIPConfig.js.map +1 -1
  223. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
  224. package/lib/module/classes/HMSPeer.js.map +1 -1
  225. package/lib/module/classes/HMSPeerListIterator.js.map +1 -1
  226. package/lib/module/classes/HMSPeerListIteratorOptions.js.map +1 -1
  227. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  228. package/lib/module/classes/HMSPeersCache.js.map +1 -1
  229. package/lib/module/classes/HMSPermissions.js.map +1 -1
  230. package/lib/module/classes/HMSPollsListenerActions.js.map +1 -1
  231. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  232. package/lib/module/classes/HMSQualityLimitationReason.js.map +1 -1
  233. package/lib/module/classes/HMSQualityLimitationReasons.js.map +1 -1
  234. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  235. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  236. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  237. package/lib/module/classes/HMSRecordingState.js.map +1 -1
  238. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  239. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  240. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  241. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  242. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  243. package/lib/module/classes/HMSRole.js.map +1 -1
  244. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  245. package/lib/module/classes/HMSRoom.js.map +1 -1
  246. package/lib/module/classes/HMSRoomCache.js.map +1 -1
  247. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  248. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  249. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  250. package/lib/module/classes/HMSSDK.js +33 -11
  251. package/lib/module/classes/HMSSDK.js.map +1 -1
  252. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  253. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  254. package/lib/module/classes/HMSSessionStore.js.map +1 -1
  255. package/lib/module/classes/HMSSimulcastLayerDefinition.js.map +1 -1
  256. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  257. package/lib/module/classes/HMSSimulcastLayerSettingsPolicy.js.map +1 -1
  258. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  259. package/lib/module/classes/HMSSimulcastSettingsPolicy.js.map +1 -1
  260. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  261. package/lib/module/classes/HMSStreamingState.js.map +1 -1
  262. package/lib/module/classes/HMSSubscribeDegradationPolicy.js.map +1 -1
  263. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  264. package/lib/module/classes/HMSTrack.js.map +1 -1
  265. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  266. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
  267. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  268. package/lib/module/classes/HMSTrackType.js.map +1 -1
  269. package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
  270. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  271. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  272. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  273. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  274. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  275. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  276. package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
  277. package/lib/module/classes/HmsView.js.map +1 -1
  278. package/lib/module/classes/polls/DecodedPollLeaderboardResponse.js +2 -0
  279. package/lib/module/classes/polls/DecodedPollLeaderboardResponse.js.map +1 -0
  280. package/lib/module/classes/polls/HMSPoll.js.map +1 -1
  281. package/lib/module/classes/polls/HMSPollCategory.js.map +1 -1
  282. package/lib/module/classes/polls/HMSPollCreateParams.js.map +1 -1
  283. package/lib/module/classes/polls/HMSPollLeaderboardEntry.js +2 -0
  284. package/lib/module/classes/polls/HMSPollLeaderboardEntry.js.map +1 -0
  285. package/lib/module/classes/polls/HMSPollLeaderboardSummary.js +2 -0
  286. package/lib/module/classes/polls/HMSPollLeaderboardSummary.js.map +1 -0
  287. package/lib/module/classes/polls/HMSPollQuestion.js.map +1 -1
  288. package/lib/module/classes/polls/HMSPollQuestionAnswer.js.map +1 -1
  289. package/lib/module/classes/polls/HMSPollQuestionCreateParams.js.map +1 -1
  290. package/lib/module/classes/polls/HMSPollQuestionOption.js.map +1 -1
  291. package/lib/module/classes/polls/HMSPollQuestionOptionCreateParams.js.map +1 -1
  292. package/lib/module/classes/polls/HMSPollQuestionQuizOptionCreateParams.js.map +1 -1
  293. package/lib/module/classes/polls/HMSPollQuestionResponse.js.map +1 -1
  294. package/lib/module/classes/polls/HMSPollQuestionResponseCreateParams.js.map +1 -1
  295. package/lib/module/classes/polls/HMSPollQuestionResponseResult.js.map +1 -1
  296. package/lib/module/classes/polls/HMSPollQuestionResult.js.map +1 -1
  297. package/lib/module/classes/polls/HMSPollQuestionType.js.map +1 -1
  298. package/lib/module/classes/polls/HMSPollResponsePeerInfo.js.map +1 -1
  299. package/lib/module/classes/polls/HMSPollResult.js.map +1 -1
  300. package/lib/module/classes/polls/HMSPollState.js.map +1 -1
  301. package/lib/module/classes/polls/HMSPollType.js.map +1 -1
  302. package/lib/module/classes/polls/HMSPollUpdateType.js.map +1 -1
  303. package/lib/module/classes/polls/HMSPollUserTrackingMode.js.map +1 -1
  304. package/lib/module/classes/polls/PollLeaderboardResponse.js +2 -0
  305. package/lib/module/classes/polls/PollLeaderboardResponse.js.map +1 -0
  306. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +3 -11
  307. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  308. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -1
  309. package/lib/module/components/HMSHLSPlayer/hooks.js.map +1 -1
  310. package/lib/module/components/HMSHLSPlayer/index.js.map +1 -1
  311. package/lib/module/hooks/hmsviews.js.map +1 -1
  312. package/lib/module/hooks/polls.js.map +1 -1
  313. package/lib/module/hooks/useHMSPeerUpdates.js.map +1 -1
  314. package/lib/module/index.js +3 -0
  315. package/lib/module/index.js.map +1 -1
  316. package/lib/module/modules/HMSManagerModule.js.map +1 -1
  317. package/lib/module/stores/hls-player-playback-slice.js.map +1 -1
  318. package/lib/module/stores/hls-player-stats-store.js.map +1 -1
  319. package/lib/module/stores/hms-interactivity-store.js.map +1 -1
  320. package/lib/module/stores/hms-polls-slice.js.map +1 -1
  321. package/lib/module/stores/hms-store.js.map +1 -1
  322. package/lib/module/stores/hmsviews-slice.js.map +1 -1
  323. package/lib/module/stores/types.js.map +1 -1
  324. package/lib/module/types.js.map +1 -1
  325. package/lib/module/utils/emitter/EventEmitter.js.map +1 -1
  326. package/lib/module/utils/emitter/_EmitterSubscription.js.map +1 -1
  327. package/lib/module/utils/emitter/_EventSubscription.js.map +1 -1
  328. package/lib/module/utils/emitter/_EventSubscriptionVendor.js.map +1 -1
  329. package/lib/module/utils/index.js.map +1 -1
  330. package/lib/module/utils/keyboard.js.map +1 -1
  331. package/lib/module/utils/notification.js.map +1 -1
  332. package/lib/module/utils/windowController.js.map +1 -1
  333. package/lib/typescript/classes/HMSHLSTimedMetadata.d.ts +4 -0
  334. package/lib/typescript/classes/HMSInteractivityCenter.d.ts +10 -0
  335. package/lib/typescript/classes/HMSInteractivityEncoder.d.ts +3 -0
  336. package/lib/typescript/classes/HMSSDK.d.ts +14 -2
  337. package/lib/typescript/classes/polls/DecodedPollLeaderboardResponse.d.ts +37 -0
  338. package/lib/typescript/classes/polls/HMSPoll.d.ts +5 -13
  339. package/lib/typescript/classes/polls/HMSPollCreateParams.d.ts +1 -4
  340. package/lib/typescript/classes/polls/HMSPollLeaderboardEntry.d.ts +9 -0
  341. package/lib/typescript/classes/polls/HMSPollLeaderboardSummary.d.ts +7 -0
  342. package/lib/typescript/classes/polls/PollLeaderboardResponse.d.ts +7 -0
  343. package/lib/typescript/index.d.ts +3 -0
  344. package/package.json +1 -1
  345. package/sdk-versions.json +2 -2
  346. package/src/classes/HMSHLSTimedMetadata.ts +4 -0
  347. package/src/classes/HMSInteractivityCenter.ts +30 -0
  348. package/src/classes/HMSInteractivityEncoder.ts +57 -2
  349. package/src/classes/HMSSDK.tsx +30 -8
  350. package/src/classes/polls/DecodedPollLeaderboardResponse.ts +43 -0
  351. package/src/classes/polls/HMSPoll.ts +5 -14
  352. package/src/classes/polls/HMSPollCreateParams.ts +2 -3
  353. package/src/classes/polls/HMSPollLeaderboardEntry.ts +10 -0
  354. package/src/classes/polls/HMSPollLeaderboardSummary.ts +7 -0
  355. package/src/classes/polls/PollLeaderboardResponse.ts +8 -0
  356. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +3 -14
  357. package/src/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_HMSEncoder","_HMSHelper","_HMSLogger","_HMSUpdateListenerActions","_HmsView","_HMSManagerModule","_HMSPIPListenerActions","_HMSNativeEventListener","_HMSPeersCache","_HMSRoomCache","_HMSPeerUpdate","_HMSSessionStore","_HMSPeerListIterator","_HMSInteractivityCenter","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ReactNativeVersion","HmsSdk","HMSSDK","constructor","id","logger","verbose","clearHmsPeersCache","clearHmsRoomCache","removeAllListeners","HMSManager","destroy","roomCode","userId","endpoint","getAuthTokenByRoomCode","config","setHmsPeersCache","HMSPeersCache","setHmsRoomCache","HMSRoomCache","join","preview","React","forwardRef","props","ref","trackId","style","mirror","scaleType","setZOrderMediaOverlay","autoSimulcast","createElement","HmsViewComponent","_this$appStateSubscri","appStateSubscription","remove","HMSEncoder","clearData","data","op","leave","roomLeaveCleanup","message","type","sendBroadcastMessage","roles","sendGroupMessage","HMSHelper","getRoleNames","peer","peerId","peerID","sendDirectMessage","metadata","changeMetadata","startRTMPOrRecording","stopRtmpAndRecording","startHLSStreaming","stopHLSStreaming","role","force","name","changeRole","changeRoleOfPeer","ofRoles","toRole","map","ofRole","filter","Boolean","changeRoleOfPeersWithRoles","track","mute","changeTrackState","source","roleNames","changeTrackStateForRoles","reason","removePeer","lock","endRoom","changeName","previewForRole","previewTracks","encodeHmsPreviewForRoleTracks","tracks","cancelPreview","acceptRoleChange","setPlaybackForAllAudio","remoteMuteAllAudio","_getHmsRoomCache","hmsRoom","getRoom","getHmsRoomCache","updateRoomCache","encodedHmsRoom","encodeHmsRoom","localPeer","getLocalPeer","encodedLocalPeer","encodeHmsLocalPeer","remotePeers","getRemotePeers","encodedRemotePeers","encodeHmsRemotePeers","getRoles","encodedRoles","encodeHmsRoles","volume","setVolume","startScreenshare","isScreenShared","stopScreenshare","enableNetworkQualityUpdates","disableNetworkQualityUpdates","audioMixingMode","Platform","OS","startAudioshare","console","log","isAudioShared","stopAudioshare","getAudioMixingMode","setAudioMixingMode","getAudioDevicesList","getAudioOutputRouteType","audioDevice","switchAudioOutput","Error","switchAudioOutputUsingIOSUI","audioMode","setAudioMode","callback","addEventListener","HMSUpdateListenerActions","ON_AUDIO_DEVICE_CHANGED","setAudioDeviceChangeListener","remoteVideoTrackData","getRemoteVideoTrackFromTrackId","encodeHmsRemoteVideoTrack","remoteAudioTrackData","getRemoteAudioTrackFromTrackId","encodeHmsRemoteAudioTrack","peersCache","getHmsPeersCache","peerRole","getProperty","encodeHmsPeer","raiseLocalPeerHand","lowerLocalPeerHand","lowerRemotePeerHand","options","uniqueId","Math","random","toString","slice","getPeerListIterator","limit","HMSPeerListIterator","totalCount","action","ON_PREVIEW","emitterSubscriptions","previewSubscription","HMSNativeEventListener","addListener","onPreviewListener","onPreviewDelegate","ON_JOIN","joinSubscription","onJoinListener","onJoinDelegate","ON_ROOM_UPDATE","roomSubscription","onRoomListener","onRoomDelegate","ON_PEER_UPDATE","peerSubscription","onPeerListener","onPeerDelegate","ON_PEER_LIST_UPDATED","peerListUpdatedSubscription","onPeerListUpdatedListener","onPeerListUpdatedDelegate","ON_TRACK_UPDATE","trackSubscription","onTrackListener","onTrackDelegate","ON_ERROR","errorSubscription","onErrorListener","onErrorDelegate","ON_MESSAGE","messageSubscription","onMessageListener","onMessageDelegate","ON_SPEAKER","speakerSubscription","onSpeakerListener","onSpeakerDelegate","RECONNECTING","reconnectingSubscription","reconnectingListener","onReconnectingDelegate","RECONNECTED","reconnectedSubscription","reconnectedListener","onReconnectedDelegate","ON_ROLE_CHANGE_REQUEST","roleChangeReqSubscription","onRoleChangeRequestListener","onRoleChangeRequestDelegate","ON_CHANGE_TRACK_STATE_REQUEST","changeTrackReqSubscription","onChangeTrackStateRequestListener","onChangeTrackStateRequestDelegate","ON_REMOVED_FROM_ROOM","removedFromRoomSubscription","onRemovedFromRoomListener","onRemovedFromRoomDelegate","ON_RTC_STATS","rtcStatsSubscription","RTCStatsListener","onRtcStatsDelegate","ON_LOCAL_AUDIO_STATS","lclAudioStatsSubscription","onLocalAudioStatsListener","onLocalAudioStatsDelegate","ON_LOCAL_VIDEO_STATS","lclVideoStatsSubscription","onLocalVideoStatsListener","onLocalVideoStatsDelegate","ON_REMOTE_AUDIO_STATS","rmAudioStatsSubscription","onRemoteAudioStatsListener","onRemoteAudioStatsDelegate","ON_REMOTE_VIDEO_STATS","rmVideoStatsSubscription","onRemoteVideoStatsListener","onRemoteVideoStatsDelegate","audDeviceChgSubscription","onAudioDeviceChangedListener","onAudioDeviceChangedDelegate","ON_SESSION_STORE_AVAILABLE","sessionStoreAvailableSubscription","onSessionStoreAvailableListener","onSessionStoreAvailableDelegate","HMSPIPListenerActions","ON_PIP_ROOM_LEAVE","pipRoomLeaveSubscription","onPIPRoomLeaveListener","onPIPRoomLeaveDelegate","ON_PIP_MODE_CHANGED","pipModeChangedSubscription","onPIPModeChangedListener","onPIPModeChangedDelegate","subscription","undefined","values","forEach","emitterSubscription","room","encodeHmsPreviewTracks","_getHmsRoomCache2","peerData","ordinal","HMSPeerUpdateOrdinals","keys","encodeHmsPeerUpdate","HMSPeerUpdate","PEER_LEFT","sendPeerUpdateWhenPeerLeaves","_getHmsPeersCache","updatePeerCache","sendPeerUpdate","_getHmsPeersCache2","addedPeers","encodeHmsPeers","removedPeers","totalAddedPeers","length","totalRemovedPeers","_getHmsPeersCache3","encodeHmsTrack","encodeHMSMessage","speakers","encodeHmsSpeakers","warn","encodeHMSException","encodedRoleChangeRequest","encodeHmsRoleChangeRequest","encodeHmsChangeTrackStateRequest","requestedBy","roomEnded","rtcStats","encodeRTCStats","localAudioStats","encodeHMSLocalAudioStats","encodeHmsLocalAudioTrack","localVideoStats","encodeHMSLocalVideoStats","encodeHmsLocalVideoTrack","remoteAudioStats","encodeHMSRemoteAudioStats","remoteVideoStats","encodeHMSRemoteVideoStats","sessionStore","HMSSessionStore","hmsLogger","setLogger","build","params","version","major","minor","patch","trackSettings","appGroup","preferredExtension","frameworkInfo","sdkVersion","isPrebuilt","logSettings","isPipModeSupported","handlePipActions","enterPipMode","setPipParams","interactivityCenter","_interactivityCenter","HMSInteractivityCenter","getLogger","exports"],"sources":["HMSSDK.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform } from 'react-native';\nimport { HMSEncoder } from './HMSEncoder';\nimport { HMSHelper } from './HMSHelper';\nimport { getLogger, logger, setLogger } from './HMSLogger';\nimport { HMSUpdateListenerActions } from './HMSUpdateListenerActions';\nimport { HmsViewComponent } from './HmsView';\n\nimport HMSManager from '../modules/HMSManagerModule';\n\nimport type { HMSTrackType } from './HMSTrackType';\nimport type { HmsComponentProps } from './HmsView';\nimport type { HMSConfig } from './HMSConfig';\nimport type { HMSLocalPeer } from './HMSLocalPeer';\nimport type { HMSRemotePeer } from './HMSRemotePeer';\nimport type { HMSRoom } from './HMSRoom';\nimport type { HMSRole } from './HMSRole';\nimport type { HMSTrack } from './HMSTrack';\nimport type { HMSLogger } from './HMSLogger';\nimport type { HMSPeer } from './HMSPeer';\nimport type { HMSVideoViewMode } from './HMSVideoViewMode';\nimport type { HMSTrackSettings } from './HMSTrackSettings';\nimport type { HMSRTMPConfig } from './HMSRTMPConfig';\nimport type { HMSHLSConfig } from './HMSHLSConfig';\nimport type { HMSAudioDevice } from './HMSAudioDevice';\nimport type { HMSAudioMode } from './HMSAudioMode';\nimport type { HMSAudioMixingMode } from './HMSAudioMixingMode';\nimport type { HMSLogSettings } from './HMSLogSettings';\nimport { HMSPIPListenerActions } from './HMSPIPListenerActions';\nimport HMSNativeEventListener from './HMSNativeEventListener';\nimport type { HMSNativeEventSubscription } from './HMSNativeEventListener';\nimport {\n clearHmsPeersCache,\n getHmsPeersCache,\n HMSPeersCache,\n setHmsPeersCache,\n} from './HMSPeersCache';\nimport {\n clearHmsRoomCache,\n getHmsRoomCache,\n HMSRoomCache,\n setHmsRoomCache,\n} from './HMSRoomCache';\nimport { HMSPeerUpdate, HMSPeerUpdateOrdinals } from './HMSPeerUpdate';\nimport { HMSSessionStore } from './HMSSessionStore';\nimport type { HMSPeerListIteratorOptions } from './HMSPeerListIteratorOptions';\nimport { HMSPeerListIterator } from './HMSPeerListIterator';\nimport type { HMSPIPConfig } from './HMSPIPConfig';\nimport { HMSInteractivityCenter } from './HMSInteractivityCenter';\n\ntype HmsViewProps = Omit<HmsComponentProps, 'id'>;\n\nconst ReactNativeVersion = require('react-native/Libraries/Core/ReactNativeVersion');\n\nlet HmsSdk: HMSSDK | undefined;\n\nexport class HMSSDK {\n id: string;\n private _interactivityCenter: HMSInteractivityCenter | null = null;\n\n private appStateSubscription?: any;\n private onPreviewDelegate?: any;\n private onJoinDelegate?: any;\n private onRoomDelegate?: any;\n private onPeerDelegate?: any;\n private onPeerListUpdatedDelegate?: any;\n private onTrackDelegate?: any;\n private onErrorDelegate?: any;\n private onMessageDelegate?: any;\n private onSpeakerDelegate?: any;\n private onReconnectingDelegate?: any;\n private onReconnectedDelegate?: any;\n private onRoleChangeRequestDelegate?: any;\n private onChangeTrackStateRequestDelegate?: any;\n private onRemovedFromRoomDelegate?: any;\n private onRtcStatsDelegate?: any;\n private onLocalAudioStatsDelegate?: any;\n private onLocalVideoStatsDelegate?: any;\n private onRemoteAudioStatsDelegate?: any;\n private onRemoteVideoStatsDelegate?: any;\n private onAudioDeviceChangedDelegate?: any;\n private onSessionStoreAvailableDelegate?: any;\n private onPIPRoomLeaveDelegate?: any;\n private onPIPModeChangedDelegate?: any;\n\n private emitterSubscriptions: Partial<\n Record<\n HMSUpdateListenerActions | HMSPIPListenerActions,\n HMSNativeEventSubscription\n >\n > = {};\n\n private constructor(id: string) {\n this.id = id;\n }\n\n /**\n * - Returns an instance of [HMSSDK] {@link HMSSDK}\n * - This function must be called to get an instance of HMSSDK class and only then user can interact with its methods.\n *\n * Regular Usage:\n *\n * const hmsInstance = await HMSSDK.build();\n *\n * For Advanced Use-Cases:\n * @param {trackSettings} trackSettings is an optional value only required to enable features like iOS Screen/Audio Share, Android Software Echo Cancellation, etc\n * @param {appGroup} appGroup is an optional value only required for implementing Screen & Audio Share on iOS. They are not required for Android. DO NOT USE if your app does not implements Screen or Audio Share on iOS.\n * @param {preferredExtension} preferredExtension is an optional value only required for implementing Screen & Audio Share on iOS. They are not required for Android. DO NOT USE if your app does not implements Screen or Audio Share on iOS.\n *\n * @static\n * @returns\n * @memberof HMSSDK\n */\n static async build(params?: {\n trackSettings?: HMSTrackSettings;\n appGroup?: String;\n preferredExtension?: String;\n logSettings?: HMSLogSettings;\n isPrebuilt?: boolean;\n }) {\n const { version } = require('../../package.json');\n const { major, minor, patch } = ReactNativeVersion.version;\n let id = await HMSManager.build({\n trackSettings: params?.trackSettings,\n appGroup: params?.appGroup, // required for iOS Screenshare, not required for Android\n preferredExtension: params?.preferredExtension, // required for iOS Screenshare, not required for Android\n frameworkInfo: {\n version: major + '.' + minor + '.' + patch,\n sdkVersion: version,\n isPrebuilt: params?.isPrebuilt || false,\n },\n logSettings: params?.logSettings,\n });\n HmsSdk = new HMSSDK(id);\n return HmsSdk;\n }\n\n /**\n * - Calls removeListeners that in turn breaks all connections with native listeners.\n *\n * @memberof HMSSDK\n */\n destroy = async () => {\n logger?.verbose('#Function destroy', { id: this.id });\n clearHmsPeersCache();\n clearHmsRoomCache();\n this.removeAllListeners();\n return await HMSManager.destroy({ id: this.id });\n };\n\n /**\n * - getAuthTokenByRoomCode function is used to get the Auth Token by Room Code\n *\n * checkout {@link https://www.100ms.live/docs/concepts/v2/concepts/rooms/room-codes/room-codes} for more info\n *\n * @memberof HMSSDK\n */\n getAuthTokenByRoomCode = async (\n roomCode: string,\n userId?: string,\n endpoint?: string\n ): Promise<string> => {\n logger?.verbose('#Function getAuthTokenByRoomCode', {\n id: this.id,\n roomCode,\n userId,\n endpoint,\n });\n\n return HMSManager.getAuthTokenByRoomCode({\n id: this.id,\n roomCode,\n userId,\n endpoint,\n });\n };\n\n /**\n * takes an instance of [HMSConfig]{@link HMSConfig} and joins the room.\n * after joining the room user will start receiving the events and updates of the room.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/join} for more info\n *\n * @param {HMSConfig} config\n * @memberof HMSSDK\n */\n join = async (config: HMSConfig) => {\n logger?.verbose('#Function join', { config, id: this.id });\n setHmsPeersCache(new HMSPeersCache(this.id));\n setHmsRoomCache(new HMSRoomCache(this.id));\n await HMSManager.join({ ...config, id: this.id });\n };\n\n /**\n * - preview function is used to initiate a preview for the localPeer.\n * - We can call this function and wait for a response in previewListener, the response will contain previewTracks for local peer.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/preview} for more info\n *\n * @param {HMSConfig} config\n * @memberof HMSSDK\n */\n preview = (config: HMSConfig) => {\n logger?.verbose('#Function preview', { config, id: this.id });\n HMSManager.preview({ ...config, id: this.id });\n };\n\n /**\n * - HmsView is react component that takes trackId and starts showing that track on a tile.\n * - The appearance of tile is completely customizable with style prop.\n * - Scale type can determine how the incoming video will fit in the canvas check {@link HMSVideoViewMode} for more information.\n * - Mirror to flip the video vertically.\n * - Auto Simulcast to automatically select the best Streaming Quality of track if feature is enabled in Room.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/render-video} for more info\n *\n * @param {HmsViewProps}\n * @memberof HMSSDK\n */\n HmsView = React.forwardRef<any, HmsViewProps>((props, ref) => {\n const {\n trackId,\n style,\n mirror,\n scaleType,\n setZOrderMediaOverlay,\n autoSimulcast,\n } = props;\n return (\n <HmsViewComponent\n ref={ref}\n trackId={trackId}\n style={style}\n autoSimulcast={autoSimulcast}\n setZOrderMediaOverlay={setZOrderMediaOverlay}\n mirror={mirror}\n scaleType={scaleType}\n id={this.id}\n />\n );\n });\n\n roomLeaveCleanup = () => {\n this?.appStateSubscription?.remove();\n clearHmsPeersCache();\n clearHmsRoomCache();\n HMSEncoder.clearData(); // Clearing cached data in encoder\n };\n\n /**\n * Calls leave function of native sdk and session of current user is invalidated.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/leave} for more info\n *\n * @memberof HMSSDK\n */\n leave = async () => {\n logger?.verbose('#Function leave', { id: this.id });\n const data = {\n id: this.id,\n };\n\n const op = await HMSManager.leave(data);\n this.roomLeaveCleanup();\n return op;\n };\n\n /**\n * - This function sends message to all the peers in the room, the get the message in onMessage listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/chat} for more info\n *\n * @memberof HMSSDK\n * @param message the message that is to be sent\n * @param type the default type is set to CHAT. You can pass a custom type here for sending events like Emoji Reactions, Notifications, etc\n */\n sendBroadcastMessage = async (message: string, type: string = 'chat') => {\n logger?.verbose('#Function sendBroadcastMessage', {\n message,\n type: type || null,\n id: this.id,\n });\n const data: { messageId: string | undefined } =\n await HMSManager.sendBroadcastMessage({\n message,\n type: type || null,\n id: this.id,\n });\n\n return data;\n };\n\n /**\n * - sendGroupMessage sends a message to specific set of roles, whoever has any of those role in room\n * will get the message in onMessage listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/chat} for more info\n *\n * @memberof HMSSDK\n */\n sendGroupMessage = async (\n message: string,\n roles: HMSRole[],\n type: string = 'chat'\n ) => {\n logger?.verbose('#Function sendGroupMessage', {\n message,\n roles,\n id: this.id,\n type: type || null,\n });\n const data: { messageId: string | undefined } =\n await HMSManager.sendGroupMessage({\n message,\n roles: HMSHelper.getRoleNames(roles),\n id: this.id,\n type: type || null,\n });\n\n return data;\n };\n\n /**\n * - sendDirectMessage sends a private message to a single peer, only that peer will get the message\n * in onMessage Listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/chat} for more info\n *\n * @memberof HMSSDK\n */\n sendDirectMessage = async (\n message: string,\n peer: HMSPeer,\n type: string = 'chat'\n ) => {\n logger?.verbose('#Function sendDirectMessage', {\n message,\n peerId: peer.peerID,\n id: this.id,\n type: type || null,\n });\n const data: { messageId: string | undefined } =\n await HMSManager.sendDirectMessage({\n message,\n peerId: peer.peerID,\n id: this.id,\n type: type || null,\n });\n\n return data;\n };\n\n /**\n * - changeMetadata changes a specific field in localPeer which is [metadata] it is a string that can\n * be used for various functionalities like raiseHand, beRightBack and many more that explains the\n * current status of the peer.\n *\n * - it is advised to use a json object in string format to store multiple dataPoints in metadata.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/advanced-features/change-metadata} for more info\n *\n * @param {string}\n * @memberof HMSSDK\n */\n changeMetadata = async (metadata: string) => {\n logger?.verbose('#Function changeMetadata', { metadata, id: this.id });\n return await HMSManager.changeMetadata({ metadata, id: this.id });\n };\n\n /**\n * - startRTMPOrRecording takes a configuration object {@link HMSRTMPConfig} and stats the RTMP recording\n * - this object of {@link HMSRTMPConfig} sets the urls for streaming and weather to set recording on or not\n * - we get the response of this function in onRoomUpdate as RTMP_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/recording} for more info\n *\n * @memberof HMSSDK\n */\n startRTMPOrRecording = async (data: HMSRTMPConfig) => {\n logger?.verbose('#Function startRTMPOrRecording', {\n ...data,\n id: this.id,\n });\n\n const op = await HMSManager.startRTMPOrRecording({ ...data, id: this.id });\n return op;\n };\n\n /**\n * - this function stops all the ongoing RTMP streaming and recording.\n * - we get the response of this function in onRoomUpdate as RTMP_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/recording} for more info\n *\n * @memberof HMSSDK\n */\n stopRtmpAndRecording = async () => {\n logger?.verbose('#Function stopRtmpAndRecording', {});\n const op = await HMSManager.stopRtmpAndRecording({ id: this.id });\n return op;\n };\n\n /**\n * - This function starts HLSStreaming.\n * - we get the response of this function in onRoomUpdate as HLS_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/hls-streaming} for more info\n *\n * @param {HMSHLSConfig}\n * @memberof HMSSDK\n */\n startHLSStreaming = async (data?: HMSHLSConfig) => {\n logger?.verbose('#Function startHLSStreaming', {\n ...data,\n id: this.id,\n });\n return await HMSManager.startHLSStreaming({ ...data, id: this.id });\n };\n\n /**\n * - stopHLSStreaming function stops the ongoing HLSStreams.\n * - we get the response of this function in onRoomUpdate as HLS_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/hls-streaming} for more info\n *\n * @memberof HMSSDK\n */\n stopHLSStreaming = async () => {\n logger?.verbose('#Function stopHLSStreaming', {});\n return await HMSManager.stopHLSStreaming({ id: this.id });\n };\n\n /**\n * @deprecated This function has been deprecated in favor of #Function changeRoleOfPeer\n *\n * - This function can be used in a situation when we want to change role hence manipulate their\n * access and rights in the current room, it takes the peer {@link HMSPeer} whom role we want to change,\n * role {@link HMSRole} which will be the new role for that peer and weather to forcefully change\n * the role or ask the to accept the role change request using a boolean force.\n *\n * - if we change the role forcefully the peer's role will be updated without asking the peer\n * otherwise the user will get the roleChangeRequest in roleChangeRequest listener.\n * for more information on this checkout {@link onRoleChangeRequestListener}\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n changeRole = async (peer: HMSPeer, role: HMSRole, force: boolean = false) => {\n const data = {\n peerId: peer?.peerID,\n role: role?.name,\n force: force,\n id: this.id,\n };\n logger?.verbose('#Function changeRole', data);\n return await HMSManager.changeRole(data);\n };\n\n /**\n * - This function can be used in a situation when we want to change role hence manipulate their\n * access and rights in the current room, it takes the peer {@link HMSPeer} whom role we want to change,\n * role {@link HMSRole} which will be the new role for that peer and weather to forcefully change\n * the role or ask the to accept the role change request using a boolean force.\n *\n * - if we change the role forcefully the peer's role will be updated without asking the peer\n * otherwise the user will get the roleChangeRequest in roleChangeRequest listener.\n * for more information on this checkout {@link onRoleChangeRequestListener}\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n changeRoleOfPeer = async (\n peer: HMSPeer,\n role: HMSRole,\n force: boolean = false\n ) => {\n const data = {\n peerId: peer.peerID,\n role: role.name,\n force: force,\n id: this.id,\n };\n logger?.verbose('#Function changeRoleOfPeer', data);\n return HMSManager.changeRoleOfPeer(data);\n };\n\n /**\n * - This function can be used in a situation when we want to change role of multiple peers by specifying their roles.\n * Hence manipulate their access and rights in the current room.\n * It takes the list of roles {@link HMSRole} whom role we want to change\n * and role {@link HMSRole} which will be the new role for peers.\n *\n * - Note that role will be updated without asking the peers.\n * Meaning, Peers will not get the roleChangeRequest in roleChangeRequest listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n changeRoleOfPeersWithRoles = async (ofRoles: HMSRole[], toRole: HMSRole) => {\n const data = {\n ofRoles: ofRoles.map((ofRole) => ofRole.name).filter(Boolean),\n toRole: toRole.name,\n id: this.id,\n };\n logger?.verbose('#Function changeRoleOfPeersWithRoles', data);\n return HMSManager.changeRoleOfPeersWithRoles(data);\n };\n\n /**\n * - This function can be used to manipulate mute status of any track.\n * - Targeted peer affected by this action will get a callback in onChangeTrackStateRequestListener.\n *\n * * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-track-state} for more info\n *\n * @param {HMSTrack}\n * @memberof HMSSDK\n */\n changeTrackState = async (track: HMSTrack, mute: boolean) => {\n logger?.verbose('#Function changeTrackState', {\n track,\n mute,\n id: this.id,\n });\n const data = {\n trackId: track.trackId,\n mute,\n id: this.id,\n };\n\n return await HMSManager.changeTrackState(data);\n };\n\n /**\n * - changeTrackStateForRoles is an enhancement on the functionality of {@link changeTrackState}.\n * - We can change mute status for all the tracks of peers having a particular role.\n * - @param source determines the source of the track ex. video, audio etc.\n * - The peers affected by this action will get a callback in onChangeTrackStateRequestListener.\n *\n * @memberof HMSSDK\n */\n changeTrackStateForRoles = async (\n mute: boolean,\n type?: HMSTrackType,\n source?: string,\n roles?: Array<HMSRole>\n ) => {\n let roleNames = null;\n if (roles) {\n roleNames = HMSHelper.getRoleNames(roles);\n }\n logger?.verbose('#Function changeTrackStateRoles', {\n source,\n mute,\n type,\n roles,\n id: this.id,\n });\n const data = {\n source,\n mute,\n type,\n roles: roleNames,\n id: this.id,\n };\n\n return await HMSManager.changeTrackStateForRoles(data);\n };\n\n /**\n * - removePeer can forcefully disconnect a Peer from the room.\n * - the user who's removed from this action will get a callback in {@link onRemovedFromRoomListener}.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/remove-peer} for more info\n *\n * @memberof HMSSDK\n */\n removePeer = async (peer: HMSPeer, reason: string) => {\n logger?.verbose('#Function removePeer', {\n peerId: peer.peerID,\n reason,\n id: this.id,\n });\n const data = {\n peerId: peer.peerID,\n reason,\n id: this.id,\n };\n\n return await HMSManager.removePeer(data);\n };\n\n /**\n * - endRoom can be used in a situation where we want to disconnect all the peers from current room\n * and end the call.\n * - everyone in the room will get an update of this action in {@link onRemovedFromRoomListener}.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/end-room} for more info\n *\n * @memberof HMSSDK\n */\n endRoom = async (reason: string, lock: boolean = false) => {\n logger?.verbose('#Function endRoom', { lock, reason, id: this.id });\n const data = {\n lock,\n reason,\n id: this.id,\n };\n\n return await HMSManager.endRoom(data);\n };\n\n /**\n * - This function can be used to change name of localPeer.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-name} for more info\n *\n * @memberof HMSSDK\n */\n changeName = async (name: string) => {\n logger?.verbose('#Function changeName', { name, id: this.id });\n const data = {\n name,\n id: this.id,\n };\n\n return await HMSManager.changeName(data);\n };\n\n /**\n * -Preview for a specific Role before changing it.\n *\n * By previewing before doing a Role Change, users can see their expected Audio & Video tracks which will be visible to other Peers in Room post changing the Role.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/peer/change-role} for more info\n *\n * @param {role: string}\n * @memberof HMSSDK\n */\n previewForRole = async (role: string) => {\n logger?.verbose('#Function previewForRole', {\n role,\n id: this.id,\n });\n const data = await HMSManager.previewForRole({\n role,\n id: this.id,\n });\n\n const previewTracks = HMSEncoder.encodeHmsPreviewForRoleTracks(\n data.tracks,\n this.id\n );\n\n return previewTracks;\n };\n\n /**\n * Cancel the Previewing for Role invocation.\n *\n * If a [previewForRole] call was performed previously then calling this method clears the tracks created anticipating a Change of Role\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/peer/change-role} for more info\n *\n * @memberof HMSSDK\n */\n cancelPreview = async () => {\n logger?.verbose('#Function cancelPreview', {\n id: this.id,\n });\n const data: { data: string } = await HMSManager.cancelPreview({\n id: this.id,\n });\n\n return data;\n };\n\n /**\n * - Calling this function will accept the most recent roleChange request made by anyone in the room\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n acceptRoleChange = async () => {\n logger?.verbose('#Function acceptRoleChange', { id: this.id });\n return await HMSManager.acceptRoleChange({ id: this.id });\n };\n\n /**\n * - setPlaybackForAllAudio is an extension of the abilities of setPlaybackAllowed in\n * HMSRemoteAudioTrack. It sets mute status for all peers in the room only for the local peer.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/playback-allowed} for more info\n *\n * @memberof HMSSDK\n */\n setPlaybackForAllAudio = (mute: boolean) => {\n logger?.verbose('#Function setPlaybackForAllAudio', { mute, id: this.id });\n HMSManager.setPlaybackForAllAudio({ mute, id: this.id });\n };\n\n /**\n * - This function mutes audio for all peers in the room.\n *\n * @memberof HMSSDK\n */\n remoteMuteAllAudio = async () => {\n logger?.verbose('#Function remoteMuteAllAudio', { id: this.id });\n return await HMSManager.remoteMuteAllAudio({ id: this.id });\n };\n\n /**\n * - getRoom is a wrapper function on an existing native function also known as getRoom the returns\n * current room object which is of type {@link HMSRoom}\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/join#get-room} for more info\n *\n * @memberof HMSSDK\n * @return Promise<HMSRoom>\n */\n getRoom = async (): Promise<HMSRoom> => {\n logger?.verbose('#Function getRoom', {\n id: this.id,\n });\n const hmsRoom = await HMSManager.getRoom({ id: this.id });\n\n getHmsRoomCache()?.updateRoomCache(hmsRoom);\n\n const encodedHmsRoom = HMSEncoder.encodeHmsRoom(hmsRoom, this.id);\n return encodedHmsRoom;\n };\n\n /**\n * - getLocalPeer is a wrapper function on an existing native function also known as getLocalPeer the returns\n * current local peer object which is of type {@link HMSLocalPeer}\n *\n * @memberof HMSSDK\n * @return Promise<HMSLocalPeer>\n */\n getLocalPeer = async (): Promise<HMSLocalPeer> => {\n logger?.verbose('#Function getLocalPeer', {\n id: this.id,\n });\n const localPeer = await HMSManager.getLocalPeer({ id: this.id });\n\n const encodedLocalPeer = HMSEncoder.encodeHmsLocalPeer(localPeer, this.id);\n return encodedLocalPeer;\n };\n\n /**\n * - getRemotePeers is a wrapper function on an existing native function also known as getRemotePeers the returns\n * remote peers array which is of type {@link HMSRemotePeer}\n *\n * @memberof HMSSDK\n * @return Promise<HMSRemotePeer[]>\n */\n getRemotePeers = async (): Promise<HMSRemotePeer[]> => {\n logger?.verbose('#Function getRemotePeers', {\n id: this.id,\n });\n const remotePeers = await HMSManager.getRemotePeers({ id: this.id });\n\n const encodedRemotePeers = HMSEncoder.encodeHmsRemotePeers(\n remotePeers,\n this.id\n );\n return encodedRemotePeers;\n };\n\n /**\n * - getRoles is a wrapper function on an existing native function also known as getRoles the returns\n * array of all present roles which is of type {@link HMSRole}\n *\n * @memberof HMSSDK\n * @return Promise<HMSRole[]>\n */\n getRoles = async (): Promise<HMSRole[]> => {\n logger?.verbose('#Function getRoles', {\n id: this.id,\n });\n const roles = await HMSManager.getRoles({ id: this.id });\n\n const encodedRoles = HMSEncoder.encodeHmsRoles(roles);\n return encodedRoles;\n };\n\n /**\n * - This function sets the volume of any peer in the room\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/advanced-features/set-volume} for more info\n *\n * @memberof HMSSDK\n */\n setVolume = (track: HMSTrack, volume: number) => {\n logger?.verbose('#Function setVolume', {\n track,\n volume,\n id: this.id,\n });\n HMSManager.setVolume({\n id: this.id,\n trackId: track.trackId,\n volume,\n });\n };\n\n /**\n * - This function is used to start screenshare, currently available only for android\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/screenshare} for more info\n *\n * @memberof HMSSDK\n */\n startScreenshare = async () => {\n logger?.verbose('#Function startScreenshare', { id: this.id });\n return await HMSManager.startScreenshare({ id: this.id });\n };\n\n /**\n * - Returns a boolean stating if the screen is currently shared or not\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/screenshare} for more info\n *\n * @memberof HMSSDK\n */\n isScreenShared = async () => {\n logger?.verbose('#Function isScreenShared', { id: this.id });\n return await HMSManager.isScreenShared({ id: this.id });\n };\n\n /**\n * - stops the screenShare, currently available for android only.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/screenshare} for more info\n *\n * @memberof HMSSDK\n */\n stopScreenshare = async () => {\n logger?.verbose('#Function stopScreenshare', { id: this.id });\n return await HMSManager.stopScreenshare({ id: this.id });\n };\n\n enableNetworkQualityUpdates = () => {\n logger?.verbose('#Function enableNetworkQualityUpdates', { id: this.id });\n HMSManager.enableNetworkQualityUpdates({ id: this.id });\n };\n\n disableNetworkQualityUpdates = () => {\n logger?.verbose('#Function disableNetworkQualityUpdates', { id: this.id });\n HMSManager.disableNetworkQualityUpdates({ id: this.id });\n };\n\n /**\n * - This wrapper function is used to start streaming device audio, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-stream-device-audio-from-the-app} for more info.\n *\n * @param {HMSAudioMixingMode}\n * @memberof HMSSDK\n */\n startAudioshare = async (audioMixingMode: HMSAudioMixingMode) => {\n logger?.verbose('#Function startAudioshare', {\n id: this.id,\n audioMixingMode,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.startAudioshare({ id: this.id, audioMixingMode });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns true if audio is being shared and vice versa, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-get-audio-share-status} for more info.\n *\n * @memberof HMSSDK\n */\n isAudioShared = async () => {\n logger?.verbose('#Function isAudioShared', { id: this.id });\n if (Platform.OS === 'android') {\n return await HMSManager.isAudioShared({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function is used to stop streaming device audio, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-stop-audio-sharing} for more info.\n *\n * @memberof HMSSDK\n */\n stopAudioshare = async () => {\n logger?.verbose('#Function stopAudioshare', { id: this.id });\n if (Platform.OS === 'android') {\n return await HMSManager.stopAudioshare({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns the current audio mixing mode, currently available only for android.\n *\n * @memberof HMSSDK\n * @return HMSAudioMixingMode\n */\n getAudioMixingMode = async () => {\n logger?.verbose('#Function getAudioMixingMode', { id: this.id });\n if (Platform.OS === 'android') {\n return await HMSManager.getAudioMixingMode({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function used to change the mode while the user is streaming audio, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-change-mode} for more info\n *\n * @param {HMSAudioMixingMode}\n * @memberof HMSSDK\n */\n setAudioMixingMode = async (audioMixingMode: HMSAudioMixingMode) => {\n logger?.verbose('#Function setAudioMixingMode', {\n id: this.id,\n audioMixingMode,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.setAudioMixingMode({\n id: this.id,\n audioMixingMode,\n });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns the array of audio output devices which is of\n * type {@link HMSAudioDevice[]}, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#get-list-of-audio-device} for more info\n *\n * @memberof HMSSDK\n * @return HMSAudioDevice[]\n */\n getAudioDevicesList = async () => {\n logger?.verbose('#Function getAudioDevicesList', {\n id: this.id,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.getAudioDevicesList({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns the current audio output device which is of\n * type {@link HMSAudioDevice}, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#get-current-focussed-device} for more info\n *\n * @memberof HMSSDK\n * @return HMSAudioDevice\n */\n getAudioOutputRouteType = async () => {\n logger?.verbose('#Function getAudioOutputRouteType', {\n id: this.id,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.getAudioOutputRouteType({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * Android Only\n * - This wrapper function used to switch output to device other than the default, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#switch-audio-focus-to-another-device} for more info\n *\n * @memberof HMSSDK\n * @param audioDevice\n */\n switchAudioOutput = (audioDevice: HMSAudioDevice) => {\n logger?.verbose('#Function switchAudioOutput', {\n id: this.id,\n audioDevice,\n });\n if (Platform.OS === 'android') {\n return HMSManager.switchAudioOutput({ id: this.id, audioDevice });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n switchAudioOutputUsingIOSUI = () => {\n logger?.verbose('#Function switchAudioOutputUsingIOSUI', {\n id: this.id,\n });\n if (Platform.OS !== 'ios') {\n throw new Error(\n '#Function `switchAudioOutputUsingIOSUI` is only available on iOS, use `switchAudioOutput` method instead!'\n );\n }\n\n return HMSManager.switchAudioOutputUsingIOSUI({ id: this.id });\n };\n\n /**\n * - This wrapper function used to change Audio Mode manually, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-mode-change} for more info\n *\n * @param {HMSAudioMode}\n * @memberof HMSSDK\n */\n setAudioMode = (audioMode: HMSAudioMode) => {\n logger?.verbose('#Function setAudioMode', {\n id: this.id,\n audioMode,\n });\n if (Platform.OS === 'android') {\n return HMSManager.setAudioMode({ id: this.id, audioMode });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This is a wrapper function which adds a listener which is triggered when audio output device is switched, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#adding-a-listener} for more info\n *\n * @param {Function}\n * @memberof HMSSDK\n */\n setAudioDeviceChangeListener = (callback: Function) => {\n logger?.verbose('#Function setAudioDeviceChangeListener', {\n id: this.id,\n });\n if (Platform.OS === 'android') {\n this.addEventListener(\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED,\n callback\n );\n return HMSManager.setAudioDeviceChangeListener({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n getRemoteVideoTrackFromTrackId = async (trackId: string) => {\n logger?.verbose('#Function getRemoteVideoTrackFromTrackId', {\n id: this.id,\n trackId,\n });\n\n const remoteVideoTrackData =\n await HMSManager.getRemoteVideoTrackFromTrackId({\n id: this.id,\n trackId,\n });\n return HMSEncoder.encodeHmsRemoteVideoTrack(remoteVideoTrackData, this.id);\n };\n\n getRemoteAudioTrackFromTrackId = async (trackId: string) => {\n logger?.verbose('#Function getRemoteAudioTrackFromTrackId', {\n id: this.id,\n trackId,\n });\n\n const remoteAudioTrackData =\n await HMSManager.getRemoteAudioTrackFromTrackId({\n id: this.id,\n trackId,\n });\n return HMSEncoder.encodeHmsRemoteAudioTrack(remoteAudioTrackData, this.id);\n };\n\n getPeerFromPeerId = (peerId: string) => {\n logger?.verbose('#Function getPeerFromPeerId', {\n id: this.id,\n peerId,\n });\n // Getting Peer Cache\n const peersCache = getHmsPeersCache();\n\n // If Peer Cache doesn't exist, return `undefined` as we don't have Peer\n if (!peersCache) return;\n\n const peerRole = peersCache.getProperty(peerId, 'role');\n\n // If Peer doesn't have valid Role, return `undefined` as we don't have Peer\n if (!peerRole) return;\n\n return HMSEncoder.encodeHmsPeer({ peerID: peerId });\n };\n\n /**\n * - This function is used to raise hand for the local peer\n * @memberof HMSSDK\n */\n raiseLocalPeerHand = async () => {\n const data = {\n id: this.id,\n };\n logger?.verbose('#Function raiseLocalPeerHand', data);\n return HMSManager.raiseLocalPeerHand(data);\n };\n\n /**\n * - This function is used to lower hand for the local peer\n * @memberof HMSSDK\n */\n lowerLocalPeerHand = async () => {\n const data = {\n id: this.id,\n };\n logger?.verbose('#Function lowerLocalPeerHand', data);\n return HMSManager.lowerLocalPeerHand(data);\n };\n\n /**\n * - This function is used to lower hand for the remote peer\n * @param peer\n */\n lowerRemotePeerHand = async (peer: HMSPeer) => {\n const data = {\n peerId: peer.peerID,\n id: this.id,\n };\n logger?.verbose('#Function lowerRemotePeerHand', data);\n return HMSManager.lowerRemotePeerHand(data);\n };\n\n /**\n * `getPeerListIterator` method returns an instance of `HMSPeerListIterator` class\n *\n * @param options options for configuring iterator\n * @returns instance of HMSPeerListIterator class\n *\n * Example usage:\n * ```\n * const peerListIterator = hmsInstance.getPeerListIterator();\n * ```\n * OR\n * ```\n * const peerListIterator = hmsInstance.getPeerListIterator({\n * limit: 10,\n * byRoleName: 'viewer-realtime',\n * });\n * ```\n */\n getPeerListIterator = (\n options?: HMSPeerListIteratorOptions\n ): HMSPeerListIterator => {\n logger?.verbose('#Function getPeerListIterator', {\n id: this.id,\n options,\n });\n\n const uniqueId = Math.random().toString(16).slice(2);\n\n const data: null | {\n sucess: boolean;\n uniqueId: string;\n totalCount: number;\n } = HMSManager.getPeerListIterator({\n id: this.id,\n ...options,\n limit: options?.limit ?? 10,\n uniqueId,\n });\n\n if (!data) {\n throw new Error('Unable to create PeerListIterator');\n }\n\n return new HMSPeerListIterator(data.uniqueId, data.totalCount);\n };\n\n /**\n * - This is a prototype event listener that takes action and listens for updates related to that particular action\n *\n * @param {string} action\n * @param {*} callback\n * @memberof HMSSDK\n */\n addEventListener = (\n action: HMSUpdateListenerActions | HMSPIPListenerActions,\n callback: any\n ) => {\n logger?.verbose('#Function addEventListener', {\n action,\n id: this.id,\n });\n switch (action) {\n case HMSUpdateListenerActions.ON_PREVIEW: {\n // Checking if we already have ON_PREVIEW subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW]) {\n // Adding ON_PREVIEW native listener\n const previewSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_PREVIEW,\n this.onPreviewListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW] =\n previewSubscription;\n }\n // Adding App Delegate listener\n this.onPreviewDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_JOIN: {\n // Checking if we already have ON_JOIN subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN]) {\n // Adding ON_JOIN native listener\n const joinSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_JOIN,\n this.onJoinListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN] =\n joinSubscription;\n }\n // Adding App Delegate listener\n this.onJoinDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_ROOM_UPDATE: {\n // Checking if we already have ON_ROOM_UPDATE subscription\n if (\n !this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE]\n ) {\n // Adding ON_ROOM_UPDATE native listener\n const roomSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_ROOM_UPDATE,\n this.onRoomListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE] =\n roomSubscription;\n }\n // Adding App Delegate listener\n this.onRoomDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_PEER_UPDATE: {\n // Checking if we already have ON_PEER_UPDATE subscription\n if (\n !this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE]\n ) {\n // Adding ON_PEER_UPDATE native listener\n const peerSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_PEER_UPDATE,\n this.onPeerListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE] =\n peerSubscription;\n }\n // Adding App Delegate listener\n this.onPeerDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_PEER_LIST_UPDATED: {\n // Checking if we already have ON_PEER_LIST_UPDATED subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_PEER_LIST_UPDATED\n ]\n ) {\n // Adding ON_PEER_LIST_UPDATED native listener\n const peerListUpdatedSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_PEER_LIST_UPDATED,\n this.onPeerListUpdatedListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_PEER_LIST_UPDATED\n ] = peerListUpdatedSubscription;\n }\n // Adding App Delegate listener\n this.onPeerListUpdatedDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_TRACK_UPDATE: {\n // Checking if we already have ON_TRACK_UPDATE subscription\n if (\n !this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE]\n ) {\n // Adding ON_TRACK_UPDATE native listener\n const trackSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_TRACK_UPDATE,\n this.onTrackListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE] =\n trackSubscription;\n }\n // Adding App Delegate listener\n this.onTrackDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_ERROR: {\n // Checking if we already have ON_ERROR subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR]) {\n // Adding ON_ERROR native listener\n const errorSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_ERROR,\n this.onErrorListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR] =\n errorSubscription;\n }\n // Adding App Delegate listener\n this.onErrorDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_MESSAGE: {\n // Checking if we already have ON_MESSAGE subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE]) {\n // Adding ON_MESSAGE native listener\n const messageSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_MESSAGE,\n this.onMessageListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE] =\n messageSubscription;\n }\n // Adding App Delegate listener\n this.onMessageDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_SPEAKER: {\n // Checking if we already have ON_SPEAKER subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER]) {\n // Adding ON_SPEAKER native listener\n const speakerSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_SPEAKER,\n this.onSpeakerListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER] =\n speakerSubscription;\n }\n // Adding App Delegate listener\n this.onSpeakerDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTING: {\n // Checking if we already have RECONNECTING subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING]) {\n // Adding RECONNECTING native listener\n const reconnectingSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.RECONNECTING,\n this.reconnectingListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING] =\n reconnectingSubscription;\n }\n // Adding App Delegate listener\n this.onReconnectingDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTED: {\n // Checking if we already have RECONNECTED subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED]) {\n // Adding RECONNECTED native listener\n const reconnectedSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.RECONNECTED,\n this.reconnectedListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED] =\n reconnectedSubscription;\n }\n // Adding App Delegate listener\n this.onReconnectedDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST: {\n // Checking if we already have ON_ROLE_CHANGE_REQUEST subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ]\n ) {\n // Adding ON_ROLE_CHANGE_REQUEST native listener\n const roleChangeReqSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST,\n this.onRoleChangeRequestListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ] = roleChangeReqSubscription;\n }\n // Adding App Delegate listener\n this.onRoleChangeRequestDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST: {\n // Checking if we already have ON_CHANGE_TRACK_STATE_REQUEST subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ]\n ) {\n // Adding ON_CHANGE_TRACK_STATE_REQUEST native listener\n const changeTrackReqSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST,\n this.onChangeTrackStateRequestListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ] = changeTrackReqSubscription;\n }\n // Adding App Delegate listener\n this.onChangeTrackStateRequestDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM: {\n // Checking if we already have ON_REMOVED_FROM_ROOM subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ]\n ) {\n // Adding ON_REMOVED_FROM_ROOM native listener\n const removedFromRoomSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM,\n this.onRemovedFromRoomListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ] = removedFromRoomSubscription;\n }\n // Adding App Delegate listener\n this.onRemovedFromRoomDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_RTC_STATS: {\n // Checking if we already have ON_RTC_STATS subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS]) {\n // Adding ON_RTC_STATS native listener\n const rtcStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_RTC_STATS,\n this.RTCStatsListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS] =\n rtcStatsSubscription;\n }\n // Adding App Delegate listener\n this.onRtcStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS: {\n // Checking if we already have ON_LOCAL_AUDIO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ]\n ) {\n // Adding ON_LOCAL_AUDIO_STATS native listener\n const lclAudioStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS,\n this.onLocalAudioStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ] = lclAudioStatsSubscription;\n }\n // Adding App Delegate listener\n this.onLocalAudioStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS: {\n // Checking if we already have ON_LOCAL_VIDEO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ]\n ) {\n // Adding ON_LOCAL_VIDEO_STATS native listener\n const lclVideoStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS,\n this.onLocalVideoStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ] = lclVideoStatsSubscription;\n }\n // Adding App Delegate listener\n this.onLocalVideoStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS: {\n // Checking if we already have ON_REMOTE_AUDIO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ]\n ) {\n // Adding ON_REMOTE_AUDIO_STATS native listener\n const rmAudioStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS,\n this.onRemoteAudioStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ] = rmAudioStatsSubscription;\n }\n // Adding App Delegate listener\n this.onRemoteAudioStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS: {\n // Checking if we already have ON_REMOTE_VIDEO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ]\n ) {\n // Adding ON_REMOTE_VIDEO_STATS native listener\n const rmVideoStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS,\n this.onRemoteVideoStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ] = rmVideoStatsSubscription;\n }\n // Adding App Delegate listener\n this.onRemoteVideoStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED: {\n // Checking if we already have ON_AUDIO_DEVICE_CHANGED subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ]\n ) {\n // Adding ON_AUDIO_DEVICE_CHANGED native listener\n const audDeviceChgSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED,\n this.onAudioDeviceChangedListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ] = audDeviceChgSubscription;\n }\n // Adding App Delegate listener\n this.onAudioDeviceChangedDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE: {\n // Checking if we already have ON_SESSION_STORE_AVAILABLE subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ]\n ) {\n // Adding ON_SESSION_STORE_AVAILABLE native listener\n const sessionStoreAvailableSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE,\n this.onSessionStoreAvailableListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ] = sessionStoreAvailableSubscription;\n }\n // Adding Session Store Available App Delegate listener\n this.onSessionStoreAvailableDelegate = callback;\n break;\n }\n case HMSPIPListenerActions.ON_PIP_ROOM_LEAVE: {\n if (Platform.OS === 'android') {\n // Checking if we already have ON_PIP_ROOM_LEAVE subscription\n if (\n !this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE]\n ) {\n // Adding ON_PIP_ROOM_LEAVE native listener\n const pipRoomLeaveSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSPIPListenerActions.ON_PIP_ROOM_LEAVE,\n this.onPIPRoomLeaveListener\n );\n this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE] =\n pipRoomLeaveSubscription;\n }\n // Adding App Delegate listener\n this.onPIPRoomLeaveDelegate = callback;\n }\n break;\n }\n case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {\n if (Platform.OS === 'android') {\n // Checking if we already have ON_PIP_MODE_CHANGED subscription\n if (\n !this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ]\n ) {\n const pipModeChangedSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED,\n this.onPIPModeChangedListener\n );\n this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ] = pipModeChangedSubscription;\n }\n // Adding PIP mode changed Delegate listener\n this.onPIPModeChangedDelegate = callback;\n }\n break;\n }\n default:\n }\n };\n\n /**\n * - This is a prototype event listener that takes action and listens for updates related to that particular action\n *\n * @param {string} action\n * @param {*} callback\n * @memberof HMSSDK\n */\n removeEventListener = (\n action: HMSUpdateListenerActions | HMSPIPListenerActions\n ) => {\n logger?.verbose('#Function removeEventListener', { action, id: this.id });\n switch (action) {\n case HMSUpdateListenerActions.ON_PREVIEW: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW];\n // Removing ON_PREVIEW native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW] =\n undefined;\n }\n // Removing App Delegate listener\n this.onPreviewDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_JOIN: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN];\n // Removing ON_JOIN native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN] =\n undefined;\n }\n // Removing App Delegate listener\n this.onJoinDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_ROOM_UPDATE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE];\n // Removing ON_ROOM_UPDATE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onRoomDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_PEER_UPDATE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE];\n // Removing ON_PEER_UPDATE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onPeerDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_TRACK_UPDATE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE];\n // Removing ON_TRACK_UPDATE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onTrackDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_ERROR: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR];\n // Removing ON_ERROR native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR] =\n undefined;\n }\n // Removing App Delegate listener\n this.onErrorDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_MESSAGE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE];\n // Removing ON_MESSAGE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onMessageDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_SPEAKER: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER];\n // Removing ON_SPEAKER native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER] =\n undefined;\n }\n // Removing App Delegate listener\n this.onSpeakerDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTING: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING];\n // Removing RECONNECTING native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING] =\n undefined;\n }\n // Removing App Delegate listener\n this.onReconnectingDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTED: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED];\n // Removing RECONNECTED native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED] =\n undefined;\n }\n // Removing App Delegate listener\n this.onReconnectedDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ];\n // Removing ON_ROLE_CHANGE_REQUEST native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRoleChangeRequestDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ];\n // Removing ON_CHANGE_TRACK_STATE_REQUEST native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onChangeTrackStateRequestDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ];\n // Removing ON_REMOVED_FROM_ROOM native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRemovedFromRoomDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_RTC_STATS: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS];\n // Removing ON_RTC_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS] =\n undefined;\n }\n // Removing App Delegate listener\n this.onRtcStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ];\n // Removing ON_LOCAL_AUDIO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onLocalAudioStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ];\n // Removing ON_LOCAL_VIDEO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onLocalVideoStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ];\n // Removing ON_REMOTE_AUDIO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRemoteAudioStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ];\n // Removing ON_REMOTE_VIDEO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRemoteVideoStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ];\n // Removing ON_AUDIO_DEVICE_CHANGED native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onAudioDeviceChangedDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ];\n // Removing ON_SESSION_STORE_AVAILABLE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onSessionStoreAvailableDelegate = null;\n break;\n }\n case HMSPIPListenerActions.ON_PIP_ROOM_LEAVE: {\n if (Platform.OS === 'android') {\n const subscription =\n this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE];\n // Removing ON_PIP_ROOM_LEAVE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onPIPRoomLeaveDelegate = null;\n }\n break;\n }\n case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {\n if (Platform.OS === 'android') {\n const subscription =\n this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ];\n // Removing ON_PIP_MODE_CHANGED native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onPIPModeChangedDelegate = null;\n }\n break;\n }\n default:\n }\n };\n\n /**\n * removes all the listeners\n *\n * @memberof HMSSDK\n */\n removeAllListeners = () => {\n this.onPreviewDelegate = null;\n this.onJoinDelegate = null;\n this.onRoomDelegate = null;\n this.onPeerDelegate = null;\n this.onTrackDelegate = null;\n this.onErrorDelegate = null;\n this.onMessageDelegate = null;\n this.onSpeakerDelegate = null;\n this.onReconnectingDelegate = null;\n this.onReconnectedDelegate = null;\n this.onRoleChangeRequestDelegate = null;\n this.onChangeTrackStateRequestDelegate = null;\n this.onRemovedFromRoomDelegate = null;\n this.onPIPRoomLeaveDelegate = null;\n\n // Getting list of all available `emitterSubscription` objects\n Object.values(this.emitterSubscriptions)\n .filter(Boolean)\n .forEach((emitterSubscription) => {\n emitterSubscription.remove();\n });\n\n // clearing reference of all `emitterSubscription` objects\n this.emitterSubscriptions = {};\n\n logger?.verbose('#Function REMOVE_ALL_LISTENER', { id: this.id });\n };\n\n /**\n * - Below are all the listeners that are connected to native side.\n *\n * - All of the are connected when build function is called, we can connect them to the app by\n * calling {@link addEventListener} with corresponding event type.\n *\n * - Before passing the data to the eventListener of the app these listeners encode the data in\n * ts classes for a proper structuring of the data.\n *\n * - Even When event listeners of the app are disconnected using {@link removeEventListener} or\n * {@link removeAllListeners} or not even connected in first place, these functions still run to\n * maintain the current state of the instance of {@link HMSSDK}.\n *\n */\n\n onPreviewListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);\n const previewTracks = HMSEncoder.encodeHmsPreviewTracks(\n data.previewTracks,\n this.id\n );\n\n if (this.onPreviewDelegate) {\n logger?.verbose('#Listener ON_PREVIEW_LISTENER_CALL', {\n room,\n previewTracks,\n });\n this.onPreviewDelegate({ room, previewTracks });\n }\n };\n\n onJoinListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);\n\n if (this.onJoinDelegate) {\n logger?.verbose('#Listener ON_JOIN_LISTENER_CALL', {\n room,\n });\n this.onJoinDelegate({ room });\n }\n };\n\n onRoomListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);\n const type = data.type;\n\n getHmsRoomCache()?.updateRoomCache(data.room, data.type);\n\n if (this.onRoomDelegate) {\n logger?.verbose('#Listener ON_ROOM_LISTENER_CALL', {\n room,\n type,\n });\n this.onRoomDelegate({ room, type });\n }\n };\n\n onPeerListener = (peerData: any) => {\n const data: { peer: any; type: any } = {\n peer: peerData,\n type: null,\n };\n\n for (const ordinal of HMSPeerUpdateOrdinals.keys()) {\n if (ordinal in peerData) {\n data.peer.peerID = peerData[ordinal];\n data.type = ordinal;\n break;\n }\n }\n\n const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);\n const type = HMSEncoder.encodeHmsPeerUpdate(data.type) || data.type;\n\n if (type === HMSPeerUpdate.PEER_LEFT) {\n this.sendPeerUpdateWhenPeerLeaves(data, peer, type);\n } else {\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, data.peer, type);\n this.sendPeerUpdate(peer, type);\n }\n };\n\n private sendPeerUpdate = (peer: any, type: any) => {\n if (this.onPeerDelegate) {\n logger?.verbose('#Listener ON_PEER_LISTENER_CALL', {\n peer,\n type,\n });\n this.onPeerDelegate({ peer, type });\n }\n };\n\n private sendPeerUpdateWhenPeerLeaves = (data: any, peer: any, type: any) => {\n this.sendPeerUpdate(peer, type);\n\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, data.peer, type);\n };\n\n onPeerListUpdatedListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const addedPeers = HMSEncoder.encodeHmsPeers(data.addedPeers);\n const removedPeers = HMSEncoder.encodeHmsPeers(data.removedPeers);\n\n if (this.onPeerListUpdatedDelegate) {\n logger?.verbose('#Listener ON_PEER_LIST_UPDATED_LISTENER_CALL', {\n totalAddedPeers: addedPeers.length,\n totalRemovedPeers: removedPeers.length,\n });\n\n this.onPeerListUpdatedDelegate({\n addedPeers,\n removedPeers,\n });\n }\n };\n\n onTrackListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const track: HMSTrack = HMSEncoder.encodeHmsTrack(data.track, this.id);\n const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);\n const type = data.type;\n\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, { track }, data.type);\n\n if (this.onTrackDelegate) {\n logger?.verbose('#Listener ON_TRACK_LISTENER_CALL', {\n peer,\n track,\n type,\n });\n this.onTrackDelegate({\n peer,\n track,\n type,\n });\n }\n };\n\n onMessageListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const message = HMSEncoder.encodeHMSMessage(data);\n if (this.onMessageDelegate) {\n logger?.verbose('#Listener ON_MESSAGE_LISTENER_CALL', message);\n this.onMessageDelegate(message);\n }\n };\n\n onSpeakerListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onSpeakerDelegate) {\n logger?.verbose('#Listener ON_SPEAKER_LISTENER_CALL', data?.speakers);\n this.onSpeakerDelegate(\n HMSEncoder.encodeHmsSpeakers(data?.speakers, this.id)\n );\n }\n };\n\n onErrorListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onErrorDelegate) {\n logger?.verbose('#Listener ON_ERROR_LISTENER_CALL', data);\n logger?.warn('#Listener ON_ERROR_LISTENER_CALL', data);\n this.onErrorDelegate(HMSEncoder.encodeHMSException(data));\n }\n };\n\n onRoleChangeRequestListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onRoleChangeRequestDelegate) {\n const encodedRoleChangeRequest =\n HMSEncoder.encodeHmsRoleChangeRequest(data);\n logger?.verbose(\n '#Listener ON_ROLE_CHANGE_LISTENER_CALL',\n encodedRoleChangeRequest\n );\n this.onRoleChangeRequestDelegate(encodedRoleChangeRequest);\n }\n };\n\n onChangeTrackStateRequestListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onChangeTrackStateRequestDelegate) {\n const encodedRoleChangeRequest =\n HMSEncoder.encodeHmsChangeTrackStateRequest(data);\n logger?.verbose(\n '#Listener ON_CHANGE_TRACK_STATE_REQUEST_LISTENER_CALL',\n encodedRoleChangeRequest\n );\n this.onChangeTrackStateRequestDelegate(encodedRoleChangeRequest);\n }\n };\n\n onRemovedFromRoomListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n this.roomLeaveCleanup();\n\n if (this.onRemovedFromRoomDelegate) {\n let requestedBy = null;\n if (data.requestedBy) {\n requestedBy = HMSEncoder.encodeHmsPeer(data.requestedBy);\n }\n const reason = data.reason;\n const roomEnded = data.roomEnded;\n\n logger?.verbose('#Listener ON_REMOVED_FROM_ROOM_LISTENER_CALL', {\n requestedBy,\n reason,\n roomEnded,\n id: this.id,\n });\n this.onRemovedFromRoomDelegate({ requestedBy, reason, roomEnded });\n }\n };\n\n reconnectingListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onReconnectingDelegate) {\n logger?.verbose('#Listener ON_RECONNECTING_CALL', data);\n this.onReconnectingDelegate(data);\n }\n };\n\n reconnectedListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onReconnectedDelegate) {\n logger?.verbose('#Listener ON_RECONNECTED_CALL', data);\n this.onReconnectedDelegate(data);\n }\n };\n\n RTCStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let rtcStats = HMSEncoder.encodeRTCStats(data);\n\n if (this.onRtcStatsDelegate) {\n logger?.verbose('#Listener RTCStatsListener_CALL', { rtcStats });\n this.onRtcStatsDelegate({ rtcStats });\n }\n };\n\n onLocalAudioStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let localAudioStats = HMSEncoder.encodeHMSLocalAudioStats(\n data.localAudioStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsLocalAudioTrack(data.track, this.id);\n\n if (this.onLocalAudioStatsDelegate) {\n logger?.verbose('#Listener onLocalAudioStatsListener_CALL', {\n ...data,\n localAudioStats,\n peer,\n track,\n });\n this.onLocalAudioStatsDelegate({ ...data, localAudioStats, peer, track });\n }\n };\n\n onLocalVideoStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let localVideoStats = HMSEncoder.encodeHMSLocalVideoStats(\n data.localVideoStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsLocalVideoTrack(data.track, this.id);\n\n if (this.onLocalVideoStatsDelegate) {\n logger?.verbose('#Listener onLocalVideoStatsListener_CALL', {\n ...data,\n localVideoStats,\n peer,\n track,\n });\n this.onLocalVideoStatsDelegate({ ...data, localVideoStats, peer, track });\n }\n };\n\n onRemoteAudioStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let remoteAudioStats = HMSEncoder.encodeHMSRemoteAudioStats(\n data.remoteAudioStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsRemoteAudioTrack(data.track, this.id);\n\n if (this.onRemoteAudioStatsDelegate) {\n logger?.verbose('#Listener onRemoteAudioStatsListener_CALL', {\n ...data,\n remoteAudioStats,\n peer,\n track,\n });\n this.onRemoteAudioStatsDelegate({\n ...data,\n remoteAudioStats,\n peer,\n track,\n });\n }\n };\n\n onRemoteVideoStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let remoteVideoStats = HMSEncoder.encodeHMSRemoteVideoStats(\n data.remoteVideoStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsRemoteVideoTrack(data.track, this.id);\n\n if (this.onRemoteVideoStatsDelegate) {\n logger?.verbose('#Listener onRemoteVideoStatsListener_CALL', {\n ...data,\n remoteVideoStats,\n peer,\n track,\n });\n this.onRemoteVideoStatsDelegate({\n ...data,\n remoteVideoStats,\n peer,\n track,\n });\n }\n };\n\n onAudioDeviceChangedListener = (data: {\n id: string;\n device: string;\n audioDevicesList: string[];\n }) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onAudioDeviceChangedDelegate) {\n logger?.verbose('#Listener onAudioDeviceChangedListener_CALL', data);\n this.onAudioDeviceChangedDelegate({\n ...data,\n });\n }\n };\n\n onSessionStoreAvailableListener = (data: { id: string }) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onSessionStoreAvailableDelegate) {\n logger?.verbose(\n '#Listener ON_SESSION_STORE_AVAILABLE_LISTENER_CALL',\n data\n );\n this.onSessionStoreAvailableDelegate({\n ...data,\n sessionStore: new HMSSessionStore(),\n });\n }\n };\n\n onPIPRoomLeaveListener = (data: { id: string }) => {\n if (data.id !== this.id) {\n return;\n }\n\n this.roomLeaveCleanup();\n\n if (this.onPIPRoomLeaveDelegate) {\n logger?.verbose('#Listener onPIPRoomLeave_CALL', data);\n this.onPIPRoomLeaveDelegate({\n ...data,\n });\n }\n };\n\n onPIPModeChangedListener = (data: { isInPictureInPictureMode: boolean }) => {\n if (this.onPIPModeChangedDelegate) {\n logger?.verbose('#Listener onPIPModeChanged_CALL', data);\n\n this.onPIPModeChangedDelegate(data);\n }\n };\n\n async isPipModeSupported(): Promise<undefined | boolean> {\n return HMSManager.handlePipActions('isPipModeSupported', { id: this.id });\n }\n\n async enterPipMode(data?: HMSPIPConfig): Promise<undefined | boolean> {\n return HMSManager.handlePipActions('enterPipMode', {\n ...data,\n id: this.id,\n });\n }\n\n async setPipParams(data?: HMSPIPConfig): Promise<undefined | boolean> {\n return HMSManager.handlePipActions('setPictureInPictureParams', {\n ...data,\n id: this.id,\n });\n }\n\n get interactivityCenter() {\n if (!this._interactivityCenter) {\n this._interactivityCenter = new HMSInteractivityCenter();\n }\n return this._interactivityCenter;\n }\n\n /**\n * - Returns the instance of logger which can be used to manipulate log levels.\n * @returns @instance HMSLogger\n * @memberof HMSSDK\n */\n static getLogger() {\n return getLogger();\n }\n\n /**\n * - Updates the logger for this instance of HMSSDK\n * @param {HMSLogger} hmsLogger\n * @memberof HMSSDK\n */\n setLogger = (hmsLogger?: HMSLogger) => {\n setLogger(this.id, hmsLogger);\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_HMSEncoder","_HMSHelper","_HMSLogger","_HMSUpdateListenerActions","_HmsView","_HMSManagerModule","_HMSPIPListenerActions","_HMSNativeEventListener","_HMSPeersCache","_HMSRoomCache","_HMSPeerUpdate","_HMSSessionStore","_HMSPeerListIterator","_HMSInteractivityCenter","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ReactNativeVersion","HmsSdk","HMSSDK","constructor","id","logger","verbose","clearHmsPeersCache","clearHmsRoomCache","removeAllListeners","HMSManager","destroy","roomCode","userId","endpoint","getAuthTokenByRoomCode","config","setHmsPeersCache","HMSPeersCache","setHmsRoomCache","HMSRoomCache","join","preview","React","forwardRef","props","ref","trackId","style","mirror","scaleType","setZOrderMediaOverlay","autoSimulcast","createElement","HmsViewComponent","_this$appStateSubscri","appStateSubscription","remove","HMSEncoder","clearData","data","op","leave","roomLeaveCleanup","message","type","sendBroadcastMessage","roles","sendGroupMessage","HMSHelper","getRoleNames","peer","peerId","peerID","sendDirectMessage","metadata","changeMetadata","startRTMPOrRecording","stopRtmpAndRecording","startHLSStreaming","stopHLSStreaming","sendHLSTimedMetadata","role","force","name","changeRole","changeRoleOfPeer","ofRoles","toRole","map","ofRole","filter","Boolean","changeRoleOfPeersWithRoles","track","mute","changeTrackState","source","roleNames","changeTrackStateForRoles","reason","removePeer","lock","endRoom","changeName","previewForRole","previewTracks","encodeHmsPreviewForRoleTracks","tracks","cancelPreview","acceptRoleChange","setPlaybackForAllAudio","remoteMuteAllAudio","_getHmsRoomCache","hmsRoom","getRoom","getHmsRoomCache","updateRoomCache","encodedHmsRoom","encodeHmsRoom","localPeer","getLocalPeer","encodedLocalPeer","encodeHmsLocalPeer","remotePeers","getRemotePeers","encodedRemotePeers","encodeHmsRemotePeers","getRoles","encodedRoles","encodeHmsRoles","volume","setVolume","startScreenshare","isScreenShared","stopScreenshare","enableNetworkQualityUpdates","disableNetworkQualityUpdates","audioMixingMode","Platform","OS","startAudioshare","console","log","isAudioShared","stopAudioshare","getAudioMixingMode","setAudioMixingMode","getAudioDevicesList","getAudioOutputRouteType","audioDevice","switchAudioOutput","Error","switchAudioOutputUsingIOSUI","audioMode","setAudioMode","callback","addEventListener","HMSUpdateListenerActions","ON_AUDIO_DEVICE_CHANGED","setAudioDeviceChangeListener","remoteVideoTrackData","getRemoteVideoTrackFromTrackId","encodeHmsRemoteVideoTrack","remoteAudioTrackData","getRemoteAudioTrackFromTrackId","encodeHmsRemoteAudioTrack","peersCache","getHmsPeersCache","peerRole","getProperty","encodeHmsPeer","raiseLocalPeerHand","lowerLocalPeerHand","lowerRemotePeerHand","options","uniqueId","Math","random","toString","slice","getPeerListIterator","limit","HMSPeerListIterator","totalCount","enabled","setAlwaysScreenOn","action","ON_PREVIEW","emitterSubscriptions","previewSubscription","HMSNativeEventListener","addListener","onPreviewListener","onPreviewDelegate","ON_JOIN","joinSubscription","onJoinListener","onJoinDelegate","ON_ROOM_UPDATE","roomSubscription","onRoomListener","onRoomDelegate","ON_PEER_UPDATE","peerSubscription","onPeerListener","onPeerDelegate","ON_PEER_LIST_UPDATED","peerListUpdatedSubscription","onPeerListUpdatedListener","onPeerListUpdatedDelegate","ON_TRACK_UPDATE","trackSubscription","onTrackListener","onTrackDelegate","ON_ERROR","errorSubscription","onErrorListener","onErrorDelegate","ON_MESSAGE","messageSubscription","onMessageListener","onMessageDelegate","ON_SPEAKER","speakerSubscription","onSpeakerListener","onSpeakerDelegate","RECONNECTING","reconnectingSubscription","reconnectingListener","onReconnectingDelegate","RECONNECTED","reconnectedSubscription","reconnectedListener","onReconnectedDelegate","ON_ROLE_CHANGE_REQUEST","roleChangeReqSubscription","onRoleChangeRequestListener","onRoleChangeRequestDelegate","ON_CHANGE_TRACK_STATE_REQUEST","changeTrackReqSubscription","onChangeTrackStateRequestListener","onChangeTrackStateRequestDelegate","ON_REMOVED_FROM_ROOM","removedFromRoomSubscription","onRemovedFromRoomListener","onRemovedFromRoomDelegate","ON_RTC_STATS","rtcStatsSubscription","RTCStatsListener","onRtcStatsDelegate","ON_LOCAL_AUDIO_STATS","lclAudioStatsSubscription","onLocalAudioStatsListener","onLocalAudioStatsDelegate","ON_LOCAL_VIDEO_STATS","lclVideoStatsSubscription","onLocalVideoStatsListener","onLocalVideoStatsDelegate","ON_REMOTE_AUDIO_STATS","rmAudioStatsSubscription","onRemoteAudioStatsListener","onRemoteAudioStatsDelegate","ON_REMOTE_VIDEO_STATS","rmVideoStatsSubscription","onRemoteVideoStatsListener","onRemoteVideoStatsDelegate","audDeviceChgSubscription","onAudioDeviceChangedListener","onAudioDeviceChangedDelegate","ON_SESSION_STORE_AVAILABLE","sessionStoreAvailableSubscription","onSessionStoreAvailableListener","onSessionStoreAvailableDelegate","HMSPIPListenerActions","ON_PIP_ROOM_LEAVE","pipRoomLeaveSubscription","onPIPRoomLeaveListener","onPIPRoomLeaveDelegate","ON_PIP_MODE_CHANGED","pipModeChangedSubscription","onPIPModeChangedListener","onPIPModeChangedDelegate","subscription","undefined","values","forEach","emitterSubscription","room","encodeHmsPreviewTracks","_getHmsRoomCache2","peerData","ordinal","HMSPeerUpdateOrdinals","keys","encodeHmsPeerUpdate","HMSPeerUpdate","PEER_LEFT","sendPeerUpdateWhenPeerLeaves","_getHmsPeersCache","updatePeerCache","sendPeerUpdate","_getHmsPeersCache2","addedPeers","encodeHmsPeers","removedPeers","totalAddedPeers","length","totalRemovedPeers","_getHmsPeersCache3","encodeHmsTrack","encodeHMSMessage","speakers","encodeHmsSpeakers","warn","encodeHMSException","encodedRoleChangeRequest","encodeHmsRoleChangeRequest","encodeHmsChangeTrackStateRequest","requestedBy","roomEnded","rtcStats","encodeRTCStats","localAudioStats","encodeHMSLocalAudioStats","encodeHmsLocalAudioTrack","localVideoStats","encodeHMSLocalVideoStats","encodeHmsLocalVideoTrack","remoteAudioStats","encodeHMSRemoteAudioStats","remoteVideoStats","encodeHMSRemoteVideoStats","sessionStore","HMSSessionStore","hmsLogger","setLogger","build","params","version","major","minor","patch","trackSettings","appGroup","preferredExtension","frameworkInfo","sdkVersion","isPrebuilt","logSettings","isPipModeSupported","handlePipActions","enterPipMode","setPipParams","interactivityCenter","_interactivityCenter","HMSInteractivityCenter","getLogger","exports"],"sources":["HMSSDK.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform } from 'react-native';\nimport { HMSEncoder } from './HMSEncoder';\nimport { HMSHelper } from './HMSHelper';\nimport { getLogger, logger, setLogger } from './HMSLogger';\nimport { HMSUpdateListenerActions } from './HMSUpdateListenerActions';\nimport { HmsViewComponent } from './HmsView';\n\nimport HMSManager from '../modules/HMSManagerModule';\n\nimport type { HMSTrackType } from './HMSTrackType';\nimport type { HmsComponentProps } from './HmsView';\nimport type { HMSConfig } from './HMSConfig';\nimport type { HMSLocalPeer } from './HMSLocalPeer';\nimport type { HMSRemotePeer } from './HMSRemotePeer';\nimport type { HMSRoom } from './HMSRoom';\nimport type { HMSRole } from './HMSRole';\nimport type { HMSTrack } from './HMSTrack';\nimport type { HMSLogger } from './HMSLogger';\nimport type { HMSPeer } from './HMSPeer';\nimport type { HMSVideoViewMode } from './HMSVideoViewMode';\nimport type { HMSTrackSettings } from './HMSTrackSettings';\nimport type { HMSRTMPConfig } from './HMSRTMPConfig';\nimport type { HMSHLSConfig } from './HMSHLSConfig';\nimport type { HMSAudioDevice } from './HMSAudioDevice';\nimport type { HMSAudioMode } from './HMSAudioMode';\nimport type { HMSAudioMixingMode } from './HMSAudioMixingMode';\nimport type { HMSLogSettings } from './HMSLogSettings';\nimport { HMSPIPListenerActions } from './HMSPIPListenerActions';\nimport HMSNativeEventListener from './HMSNativeEventListener';\nimport type { HMSNativeEventSubscription } from './HMSNativeEventListener';\nimport {\n clearHmsPeersCache,\n getHmsPeersCache,\n HMSPeersCache,\n setHmsPeersCache,\n} from './HMSPeersCache';\nimport {\n clearHmsRoomCache,\n getHmsRoomCache,\n HMSRoomCache,\n setHmsRoomCache,\n} from './HMSRoomCache';\nimport { HMSPeerUpdate, HMSPeerUpdateOrdinals } from './HMSPeerUpdate';\nimport { HMSSessionStore } from './HMSSessionStore';\nimport type { HMSPeerListIteratorOptions } from './HMSPeerListIteratorOptions';\nimport { HMSPeerListIterator } from './HMSPeerListIterator';\nimport type { HMSPIPConfig } from './HMSPIPConfig';\nimport { HMSInteractivityCenter } from './HMSInteractivityCenter';\nimport type { HMSHLSTimedMetadata } from './HMSHLSTimedMetadata';\n\ntype HmsViewProps = Omit<HmsComponentProps, 'id'>;\n\nconst ReactNativeVersion = require('react-native/Libraries/Core/ReactNativeVersion');\n\nlet HmsSdk: HMSSDK | undefined;\n\nexport class HMSSDK {\n id: string;\n private _interactivityCenter: HMSInteractivityCenter | null = null;\n\n private appStateSubscription?: any;\n private onPreviewDelegate?: any;\n private onJoinDelegate?: any;\n private onRoomDelegate?: any;\n private onPeerDelegate?: any;\n private onPeerListUpdatedDelegate?: any;\n private onTrackDelegate?: any;\n private onErrorDelegate?: any;\n private onMessageDelegate?: any;\n private onSpeakerDelegate?: any;\n private onReconnectingDelegate?: any;\n private onReconnectedDelegate?: any;\n private onRoleChangeRequestDelegate?: any;\n private onChangeTrackStateRequestDelegate?: any;\n private onRemovedFromRoomDelegate?: any;\n private onRtcStatsDelegate?: any;\n private onLocalAudioStatsDelegate?: any;\n private onLocalVideoStatsDelegate?: any;\n private onRemoteAudioStatsDelegate?: any;\n private onRemoteVideoStatsDelegate?: any;\n private onAudioDeviceChangedDelegate?: any;\n private onSessionStoreAvailableDelegate?: any;\n private onPIPRoomLeaveDelegate?: any;\n private onPIPModeChangedDelegate?: any;\n\n private emitterSubscriptions: Partial<\n Record<\n HMSUpdateListenerActions | HMSPIPListenerActions,\n HMSNativeEventSubscription\n >\n > = {};\n\n private constructor(id: string) {\n this.id = id;\n }\n\n /**\n * - Returns an instance of [HMSSDK] {@link HMSSDK}\n * - This function must be called to get an instance of HMSSDK class and only then user can interact with its methods.\n *\n * Regular Usage:\n *\n * const hmsInstance = await HMSSDK.build();\n *\n * For Advanced Use-Cases:\n * @param {trackSettings} trackSettings is an optional value only required to enable features like iOS Screen/Audio Share, Android Software Echo Cancellation, etc\n * @param {appGroup} appGroup is an optional value only required for implementing Screen & Audio Share on iOS. They are not required for Android. DO NOT USE if your app does not implements Screen or Audio Share on iOS.\n * @param {preferredExtension} preferredExtension is an optional value only required for implementing Screen & Audio Share on iOS. They are not required for Android. DO NOT USE if your app does not implements Screen or Audio Share on iOS.\n *\n * @static\n * @returns\n * @memberof HMSSDK\n */\n static async build(params?: {\n trackSettings?: HMSTrackSettings;\n appGroup?: String;\n preferredExtension?: String;\n logSettings?: HMSLogSettings;\n isPrebuilt?: boolean;\n }) {\n const { version } = require('../../package.json');\n const { major, minor, patch } = ReactNativeVersion.version;\n let id = await HMSManager.build({\n trackSettings: params?.trackSettings,\n appGroup: params?.appGroup, // required for iOS Screenshare, not required for Android\n preferredExtension: params?.preferredExtension, // required for iOS Screenshare, not required for Android\n frameworkInfo: {\n version: major + '.' + minor + '.' + patch,\n sdkVersion: version,\n isPrebuilt: params?.isPrebuilt || false,\n },\n logSettings: params?.logSettings,\n });\n HmsSdk = new HMSSDK(id);\n return HmsSdk;\n }\n\n /**\n * - Calls removeListeners that in turn breaks all connections with native listeners.\n *\n * @memberof HMSSDK\n */\n destroy = async () => {\n logger?.verbose('#Function destroy', { id: this.id });\n clearHmsPeersCache();\n clearHmsRoomCache();\n this.removeAllListeners();\n return await HMSManager.destroy({ id: this.id });\n };\n\n /**\n * - getAuthTokenByRoomCode function is used to get the Auth Token by Room Code\n *\n * checkout {@link https://www.100ms.live/docs/concepts/v2/concepts/rooms/room-codes/room-codes} for more info\n *\n * @memberof HMSSDK\n */\n getAuthTokenByRoomCode = async (\n roomCode: string,\n userId?: string,\n endpoint?: string\n ): Promise<string> => {\n logger?.verbose('#Function getAuthTokenByRoomCode', {\n id: this.id,\n roomCode,\n userId,\n endpoint,\n });\n\n return HMSManager.getAuthTokenByRoomCode({\n id: this.id,\n roomCode,\n userId,\n endpoint,\n });\n };\n\n /**\n * takes an instance of [HMSConfig]{@link HMSConfig} and joins the room.\n * after joining the room user will start receiving the events and updates of the room.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/join} for more info\n *\n * @param {HMSConfig} config\n * @memberof HMSSDK\n */\n join = async (config: HMSConfig) => {\n logger?.verbose('#Function join', { config, id: this.id });\n setHmsPeersCache(new HMSPeersCache(this.id));\n setHmsRoomCache(new HMSRoomCache(this.id));\n await HMSManager.join({ ...config, id: this.id });\n };\n\n /**\n * - preview function is used to initiate a preview for the localPeer.\n * - We can call this function and wait for a response in previewListener, the response will contain previewTracks for local peer.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/preview} for more info\n *\n * @param {HMSConfig} config\n * @memberof HMSSDK\n */\n preview = (config: HMSConfig) => {\n logger?.verbose('#Function preview', { config, id: this.id });\n HMSManager.preview({ ...config, id: this.id });\n };\n\n /**\n * - HmsView is react component that takes trackId and starts showing that track on a tile.\n * - The appearance of tile is completely customizable with style prop.\n * - Scale type can determine how the incoming video will fit in the canvas check {@link HMSVideoViewMode} for more information.\n * - Mirror to flip the video vertically.\n * - Auto Simulcast to automatically select the best Streaming Quality of track if feature is enabled in Room.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/render-video} for more info\n *\n * @param {HmsViewProps}\n * @memberof HMSSDK\n */\n HmsView = React.forwardRef<any, HmsViewProps>((props, ref) => {\n const {\n trackId,\n style,\n mirror,\n scaleType,\n setZOrderMediaOverlay,\n autoSimulcast,\n } = props;\n return (\n <HmsViewComponent\n ref={ref}\n trackId={trackId}\n style={style}\n autoSimulcast={autoSimulcast}\n setZOrderMediaOverlay={setZOrderMediaOverlay}\n mirror={mirror}\n scaleType={scaleType}\n id={this.id}\n />\n );\n });\n\n roomLeaveCleanup = () => {\n this?.appStateSubscription?.remove();\n clearHmsPeersCache();\n clearHmsRoomCache();\n HMSEncoder.clearData(); // Clearing cached data in encoder\n };\n\n /**\n * Calls leave function of native sdk and session of current user is invalidated.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/leave} for more info\n *\n * @memberof HMSSDK\n */\n leave = async () => {\n logger?.verbose('#Function leave', { id: this.id });\n const data = {\n id: this.id,\n };\n\n const op = await HMSManager.leave(data);\n this.roomLeaveCleanup();\n return op;\n };\n\n /**\n * - This function sends message to all the peers in the room, the get the message in onMessage listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/chat} for more info\n *\n * @memberof HMSSDK\n * @param message the message that is to be sent\n * @param type the default type is set to CHAT. You can pass a custom type here for sending events like Emoji Reactions, Notifications, etc\n */\n sendBroadcastMessage = async (message: string, type: string = 'chat') => {\n logger?.verbose('#Function sendBroadcastMessage', {\n message,\n type: type || null,\n id: this.id,\n });\n const data: { messageId: string | undefined } =\n await HMSManager.sendBroadcastMessage({\n message,\n type: type || null,\n id: this.id,\n });\n\n return data;\n };\n\n /**\n * - sendGroupMessage sends a message to specific set of roles, whoever has any of those role in room\n * will get the message in onMessage listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/chat} for more info\n *\n * @memberof HMSSDK\n */\n sendGroupMessage = async (\n message: string,\n roles: HMSRole[],\n type: string = 'chat'\n ) => {\n logger?.verbose('#Function sendGroupMessage', {\n message,\n roles,\n id: this.id,\n type: type || null,\n });\n const data: { messageId: string | undefined } =\n await HMSManager.sendGroupMessage({\n message,\n roles: HMSHelper.getRoleNames(roles),\n id: this.id,\n type: type || null,\n });\n\n return data;\n };\n\n /**\n * - sendDirectMessage sends a private message to a single peer, only that peer will get the message\n * in onMessage Listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/chat} for more info\n *\n * @memberof HMSSDK\n */\n sendDirectMessage = async (\n message: string,\n peer: HMSPeer,\n type: string = 'chat'\n ) => {\n logger?.verbose('#Function sendDirectMessage', {\n message,\n peerId: peer.peerID,\n id: this.id,\n type: type || null,\n });\n const data: { messageId: string | undefined } =\n await HMSManager.sendDirectMessage({\n message,\n peerId: peer.peerID,\n id: this.id,\n type: type || null,\n });\n\n return data;\n };\n\n /**\n * - changeMetadata changes a specific field in localPeer which is [metadata] it is a string that can\n * be used for various functionalities like raiseHand, beRightBack and many more that explains the\n * current status of the peer.\n *\n * - it is advised to use a json object in string format to store multiple dataPoints in metadata.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/advanced-features/change-metadata} for more info\n *\n * @param {string}\n * @memberof HMSSDK\n */\n changeMetadata = async (metadata: string) => {\n logger?.verbose('#Function changeMetadata', { metadata, id: this.id });\n return await HMSManager.changeMetadata({ metadata, id: this.id });\n };\n\n /**\n * - startRTMPOrRecording takes a configuration object {@link HMSRTMPConfig} and stats the RTMP recording\n * - this object of {@link HMSRTMPConfig} sets the urls for streaming and weather to set recording on or not\n * - we get the response of this function in onRoomUpdate as RTMP_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/recording} for more info\n *\n * @memberof HMSSDK\n */\n startRTMPOrRecording = async (data: HMSRTMPConfig) => {\n logger?.verbose('#Function startRTMPOrRecording', {\n ...data,\n id: this.id,\n });\n\n const op = await HMSManager.startRTMPOrRecording({ ...data, id: this.id });\n return op;\n };\n\n /**\n * - this function stops all the ongoing RTMP streaming and recording.\n * - we get the response of this function in onRoomUpdate as RTMP_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/recording} for more info\n *\n * @memberof HMSSDK\n */\n stopRtmpAndRecording = async () => {\n logger?.verbose('#Function stopRtmpAndRecording', {});\n const op = await HMSManager.stopRtmpAndRecording({ id: this.id });\n return op;\n };\n\n /**\n * - This function starts HLSStreaming.\n * - we get the response of this function in onRoomUpdate as HLS_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/hls-streaming} for more info\n *\n * @param {HMSHLSConfig}\n * @memberof HMSSDK\n */\n startHLSStreaming = async (data?: HMSHLSConfig) => {\n logger?.verbose('#Function startHLSStreaming', {\n ...data,\n id: this.id,\n });\n return await HMSManager.startHLSStreaming({ ...data, id: this.id });\n };\n\n /**\n * - stopHLSStreaming function stops the ongoing HLSStreams.\n * - we get the response of this function in onRoomUpdate as HLS_STREAMING_STATE_UPDATED.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/hls-streaming} for more info\n *\n * @memberof HMSSDK\n */\n stopHLSStreaming = async () => {\n logger?.verbose('#Function stopHLSStreaming', {});\n return await HMSManager.stopHLSStreaming({ id: this.id });\n };\n\n /**\n * send timed metadata for HLS player\n * @param metadata list of {@link HMSHLSTimedMetadata} to be sent\n * @returns Promise<boolean>\n */\n sendHLSTimedMetadata = async (\n metadata: HMSHLSTimedMetadata[]\n ): Promise<boolean> => {\n const data = { metadata, id: this.id };\n logger?.verbose('#Function sendHLSTimedMetadata', data);\n return await HMSManager.sendHLSTimedMetadata(data);\n };\n\n /**\n * @deprecated This function has been deprecated in favor of #Function changeRoleOfPeer\n *\n * - This function can be used in a situation when we want to change role hence manipulate their\n * access and rights in the current room, it takes the peer {@link HMSPeer} whom role we want to change,\n * role {@link HMSRole} which will be the new role for that peer and weather to forcefully change\n * the role or ask the to accept the role change request using a boolean force.\n *\n * - if we change the role forcefully the peer's role will be updated without asking the peer\n * otherwise the user will get the roleChangeRequest in roleChangeRequest listener.\n * for more information on this checkout {@link onRoleChangeRequestListener}\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n changeRole = async (peer: HMSPeer, role: HMSRole, force: boolean = false) => {\n const data = {\n peerId: peer?.peerID,\n role: role?.name,\n force: force,\n id: this.id,\n };\n logger?.verbose('#Function changeRole', data);\n return await HMSManager.changeRole(data);\n };\n\n /**\n * - This function can be used in a situation when we want to change role hence manipulate their\n * access and rights in the current room, it takes the peer {@link HMSPeer} whom role we want to change,\n * role {@link HMSRole} which will be the new role for that peer and weather to forcefully change\n * the role or ask the to accept the role change request using a boolean force.\n *\n * - if we change the role forcefully the peer's role will be updated without asking the peer\n * otherwise the user will get the roleChangeRequest in roleChangeRequest listener.\n * for more information on this checkout {@link onRoleChangeRequestListener}\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n changeRoleOfPeer = async (\n peer: HMSPeer,\n role: HMSRole,\n force: boolean = false\n ) => {\n const data = {\n peerId: peer.peerID,\n role: role.name,\n force: force,\n id: this.id,\n };\n logger?.verbose('#Function changeRoleOfPeer', data);\n return HMSManager.changeRoleOfPeer(data);\n };\n\n /**\n * - This function can be used in a situation when we want to change role of multiple peers by specifying their roles.\n * Hence manipulate their access and rights in the current room.\n * It takes the list of roles {@link HMSRole} whom role we want to change\n * and role {@link HMSRole} which will be the new role for peers.\n *\n * - Note that role will be updated without asking the peers.\n * Meaning, Peers will not get the roleChangeRequest in roleChangeRequest listener.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n changeRoleOfPeersWithRoles = async (ofRoles: HMSRole[], toRole: HMSRole) => {\n const data = {\n ofRoles: ofRoles.map((ofRole) => ofRole.name).filter(Boolean),\n toRole: toRole.name,\n id: this.id,\n };\n logger?.verbose('#Function changeRoleOfPeersWithRoles', data);\n return HMSManager.changeRoleOfPeersWithRoles(data);\n };\n\n /**\n * - This function can be used to manipulate mute status of any track.\n * - Targeted peer affected by this action will get a callback in onChangeTrackStateRequestListener.\n *\n * * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-track-state} for more info\n *\n * @param {HMSTrack}\n * @memberof HMSSDK\n */\n changeTrackState = async (track: HMSTrack, mute: boolean) => {\n logger?.verbose('#Function changeTrackState', {\n track,\n mute,\n id: this.id,\n });\n const data = {\n trackId: track.trackId,\n mute,\n id: this.id,\n };\n\n return await HMSManager.changeTrackState(data);\n };\n\n /**\n * - changeTrackStateForRoles is an enhancement on the functionality of {@link changeTrackState}.\n * - We can change mute status for all the tracks of peers having a particular role.\n * - @param source determines the source of the track ex. video, audio etc.\n * - The peers affected by this action will get a callback in onChangeTrackStateRequestListener.\n *\n * @memberof HMSSDK\n */\n changeTrackStateForRoles = async (\n mute: boolean,\n type?: HMSTrackType,\n source?: string,\n roles?: Array<HMSRole>\n ) => {\n let roleNames = null;\n if (roles) {\n roleNames = HMSHelper.getRoleNames(roles);\n }\n logger?.verbose('#Function changeTrackStateRoles', {\n source,\n mute,\n type,\n roles,\n id: this.id,\n });\n const data = {\n source,\n mute,\n type,\n roles: roleNames,\n id: this.id,\n };\n\n return await HMSManager.changeTrackStateForRoles(data);\n };\n\n /**\n * - removePeer can forcefully disconnect a Peer from the room.\n * - the user who's removed from this action will get a callback in {@link onRemovedFromRoomListener}.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/remove-peer} for more info\n *\n * @memberof HMSSDK\n */\n removePeer = async (peer: HMSPeer, reason: string) => {\n logger?.verbose('#Function removePeer', {\n peerId: peer.peerID,\n reason,\n id: this.id,\n });\n const data = {\n peerId: peer.peerID,\n reason,\n id: this.id,\n };\n\n return await HMSManager.removePeer(data);\n };\n\n /**\n * - endRoom can be used in a situation where we want to disconnect all the peers from current room\n * and end the call.\n * - everyone in the room will get an update of this action in {@link onRemovedFromRoomListener}.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/end-room} for more info\n *\n * @memberof HMSSDK\n */\n endRoom = async (reason: string, lock: boolean = false) => {\n logger?.verbose('#Function endRoom', { lock, reason, id: this.id });\n const data = {\n lock,\n reason,\n id: this.id,\n };\n\n return await HMSManager.endRoom(data);\n };\n\n /**\n * - This function can be used to change name of localPeer.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-name} for more info\n *\n * @memberof HMSSDK\n */\n changeName = async (name: string) => {\n logger?.verbose('#Function changeName', { name, id: this.id });\n const data = {\n name,\n id: this.id,\n };\n\n return await HMSManager.changeName(data);\n };\n\n /**\n * -Preview for a specific Role before changing it.\n *\n * By previewing before doing a Role Change, users can see their expected Audio & Video tracks which will be visible to other Peers in Room post changing the Role.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/peer/change-role} for more info\n *\n * @param {role: string}\n * @memberof HMSSDK\n */\n previewForRole = async (role: string) => {\n logger?.verbose('#Function previewForRole', {\n role,\n id: this.id,\n });\n const data = await HMSManager.previewForRole({\n role,\n id: this.id,\n });\n\n const previewTracks = HMSEncoder.encodeHmsPreviewForRoleTracks(\n data.tracks,\n this.id\n );\n\n return previewTracks;\n };\n\n /**\n * Cancel the Previewing for Role invocation.\n *\n * If a [previewForRole] call was performed previously then calling this method clears the tracks created anticipating a Change of Role\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/peer/change-role} for more info\n *\n * @memberof HMSSDK\n */\n cancelPreview = async () => {\n logger?.verbose('#Function cancelPreview', {\n id: this.id,\n });\n const data: { data: string } = await HMSManager.cancelPreview({\n id: this.id,\n });\n\n return data;\n };\n\n /**\n * - Calling this function will accept the most recent roleChange request made by anyone in the room\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info\n *\n * @memberof HMSSDK\n */\n acceptRoleChange = async () => {\n logger?.verbose('#Function acceptRoleChange', { id: this.id });\n return await HMSManager.acceptRoleChange({ id: this.id });\n };\n\n /**\n * - setPlaybackForAllAudio is an extension of the abilities of setPlaybackAllowed in\n * HMSRemoteAudioTrack. It sets mute status for all peers in the room only for the local peer.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/playback-allowed} for more info\n *\n * @memberof HMSSDK\n */\n setPlaybackForAllAudio = (mute: boolean) => {\n logger?.verbose('#Function setPlaybackForAllAudio', { mute, id: this.id });\n HMSManager.setPlaybackForAllAudio({ mute, id: this.id });\n };\n\n /**\n * - This function mutes audio for all peers in the room.\n *\n * @memberof HMSSDK\n */\n remoteMuteAllAudio = async () => {\n logger?.verbose('#Function remoteMuteAllAudio', { id: this.id });\n return await HMSManager.remoteMuteAllAudio({ id: this.id });\n };\n\n /**\n * - getRoom is a wrapper function on an existing native function also known as getRoom the returns\n * current room object which is of type {@link HMSRoom}\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/join#get-room} for more info\n *\n * @memberof HMSSDK\n * @return Promise<HMSRoom>\n */\n getRoom = async (): Promise<HMSRoom> => {\n logger?.verbose('#Function getRoom', {\n id: this.id,\n });\n const hmsRoom = await HMSManager.getRoom({ id: this.id });\n\n getHmsRoomCache()?.updateRoomCache(hmsRoom);\n\n const encodedHmsRoom = HMSEncoder.encodeHmsRoom(hmsRoom, this.id);\n return encodedHmsRoom;\n };\n\n /**\n * - getLocalPeer is a wrapper function on an existing native function also known as getLocalPeer the returns\n * current local peer object which is of type {@link HMSLocalPeer}\n *\n * @memberof HMSSDK\n * @return Promise<HMSLocalPeer>\n */\n getLocalPeer = async (): Promise<HMSLocalPeer> => {\n logger?.verbose('#Function getLocalPeer', {\n id: this.id,\n });\n const localPeer = await HMSManager.getLocalPeer({ id: this.id });\n\n const encodedLocalPeer = HMSEncoder.encodeHmsLocalPeer(localPeer, this.id);\n return encodedLocalPeer;\n };\n\n /**\n * - getRemotePeers is a wrapper function on an existing native function also known as getRemotePeers the returns\n * remote peers array which is of type {@link HMSRemotePeer}\n *\n * @memberof HMSSDK\n * @return Promise<HMSRemotePeer[]>\n */\n getRemotePeers = async (): Promise<HMSRemotePeer[]> => {\n logger?.verbose('#Function getRemotePeers', {\n id: this.id,\n });\n const remotePeers = await HMSManager.getRemotePeers({ id: this.id });\n\n const encodedRemotePeers = HMSEncoder.encodeHmsRemotePeers(\n remotePeers,\n this.id\n );\n return encodedRemotePeers;\n };\n\n /**\n * - getRoles is a wrapper function on an existing native function also known as getRoles the returns\n * array of all present roles which is of type {@link HMSRole}\n *\n * @memberof HMSSDK\n * @return Promise<HMSRole[]>\n */\n getRoles = async (): Promise<HMSRole[]> => {\n logger?.verbose('#Function getRoles', {\n id: this.id,\n });\n const roles = await HMSManager.getRoles({ id: this.id });\n\n const encodedRoles = HMSEncoder.encodeHmsRoles(roles);\n return encodedRoles;\n };\n\n /**\n * - This function sets the volume of any peer in the room\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/advanced-features/set-volume} for more info\n *\n * @memberof HMSSDK\n */\n setVolume = (track: HMSTrack, volume: number) => {\n logger?.verbose('#Function setVolume', {\n track,\n volume,\n id: this.id,\n });\n HMSManager.setVolume({\n id: this.id,\n trackId: track.trackId,\n volume,\n });\n };\n\n /**\n * - This function is used to start screenshare, currently available only for android\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/screenshare} for more info\n *\n * @memberof HMSSDK\n */\n startScreenshare = async () => {\n logger?.verbose('#Function startScreenshare', { id: this.id });\n return await HMSManager.startScreenshare({ id: this.id });\n };\n\n /**\n * - Returns a boolean stating if the screen is currently shared or not\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/screenshare} for more info\n *\n * @memberof HMSSDK\n */\n isScreenShared = async () => {\n logger?.verbose('#Function isScreenShared', { id: this.id });\n return await HMSManager.isScreenShared({ id: this.id });\n };\n\n /**\n * - stops the screenShare, currently available for android only.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/screenshare} for more info\n *\n * @memberof HMSSDK\n */\n stopScreenshare = async () => {\n logger?.verbose('#Function stopScreenshare', { id: this.id });\n return await HMSManager.stopScreenshare({ id: this.id });\n };\n\n enableNetworkQualityUpdates = () => {\n logger?.verbose('#Function enableNetworkQualityUpdates', { id: this.id });\n HMSManager.enableNetworkQualityUpdates({ id: this.id });\n };\n\n disableNetworkQualityUpdates = () => {\n logger?.verbose('#Function disableNetworkQualityUpdates', { id: this.id });\n HMSManager.disableNetworkQualityUpdates({ id: this.id });\n };\n\n /**\n * - This wrapper function is used to start streaming device audio, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-stream-device-audio-from-the-app} for more info.\n *\n * @param {HMSAudioMixingMode}\n * @memberof HMSSDK\n */\n startAudioshare = async (audioMixingMode: HMSAudioMixingMode) => {\n logger?.verbose('#Function startAudioshare', {\n id: this.id,\n audioMixingMode,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.startAudioshare({ id: this.id, audioMixingMode });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns true if audio is being shared and vice versa, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-get-audio-share-status} for more info.\n *\n * @memberof HMSSDK\n */\n isAudioShared = async () => {\n logger?.verbose('#Function isAudioShared', { id: this.id });\n if (Platform.OS === 'android') {\n return await HMSManager.isAudioShared({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function is used to stop streaming device audio, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-stop-audio-sharing} for more info.\n *\n * @memberof HMSSDK\n */\n stopAudioshare = async () => {\n logger?.verbose('#Function stopAudioshare', { id: this.id });\n if (Platform.OS === 'android') {\n return await HMSManager.stopAudioshare({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns the current audio mixing mode, currently available only for android.\n *\n * @memberof HMSSDK\n * @return HMSAudioMixingMode\n */\n getAudioMixingMode = async () => {\n logger?.verbose('#Function getAudioMixingMode', { id: this.id });\n if (Platform.OS === 'android') {\n return await HMSManager.getAudioMixingMode({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function used to change the mode while the user is streaming audio, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-share#how-to-change-mode} for more info\n *\n * @param {HMSAudioMixingMode}\n * @memberof HMSSDK\n */\n setAudioMixingMode = async (audioMixingMode: HMSAudioMixingMode) => {\n logger?.verbose('#Function setAudioMixingMode', {\n id: this.id,\n audioMixingMode,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.setAudioMixingMode({\n id: this.id,\n audioMixingMode,\n });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns the array of audio output devices which is of\n * type {@link HMSAudioDevice[]}, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#get-list-of-audio-device} for more info\n *\n * @memberof HMSSDK\n * @return HMSAudioDevice[]\n */\n getAudioDevicesList = async () => {\n logger?.verbose('#Function getAudioDevicesList', {\n id: this.id,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.getAudioDevicesList({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function returns the current audio output device which is of\n * type {@link HMSAudioDevice}, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#get-current-focussed-device} for more info\n *\n * @memberof HMSSDK\n * @return HMSAudioDevice\n */\n getAudioOutputRouteType = async () => {\n logger?.verbose('#Function getAudioOutputRouteType', {\n id: this.id,\n });\n if (Platform.OS === 'android') {\n return await HMSManager.getAudioOutputRouteType({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This wrapper function used to switch output to device other than the default route.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#switch-audio-focus-to-another-device} for more info\n *\n * @memberof HMSSDK\n * @param audioDevice\n */\n switchAudioOutput = (audioDevice: HMSAudioDevice) => {\n logger?.verbose('#Function switchAudioOutput', {\n id: this.id,\n audioDevice,\n });\n\n return HMSManager.switchAudioOutput({ id: this.id, audioDevice });\n };\n\n switchAudioOutputUsingIOSUI = () => {\n logger?.verbose('#Function switchAudioOutputUsingIOSUI', {\n id: this.id,\n });\n if (Platform.OS !== 'ios') {\n throw new Error(\n '#Function `switchAudioOutputUsingIOSUI` is only available on iOS, use `switchAudioOutput` method instead!'\n );\n }\n\n return HMSManager.switchAudioOutputUsingIOSUI({ id: this.id });\n };\n\n /**\n * - This wrapper function used to change Audio Mode manually, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-mode-change} for more info\n *\n * @param {HMSAudioMode}\n * @memberof HMSSDK\n */\n setAudioMode = (audioMode: HMSAudioMode) => {\n logger?.verbose('#Function setAudioMode', {\n id: this.id,\n audioMode,\n });\n if (Platform.OS === 'android') {\n return HMSManager.setAudioMode({ id: this.id, audioMode });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n /**\n * - This is a wrapper function which adds a listener which is triggered when audio output device is switched, currently available only for android.\n *\n * checkout {@link https://www.100ms.live/docs/react-native/v2/features/audio-output-routing#adding-a-listener} for more info\n *\n * @param {Function}\n * @memberof HMSSDK\n */\n setAudioDeviceChangeListener = (callback: Function) => {\n logger?.verbose('#Function setAudioDeviceChangeListener', {\n id: this.id,\n });\n if (Platform.OS === 'android') {\n this.addEventListener(\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED,\n callback\n );\n return HMSManager.setAudioDeviceChangeListener({ id: this.id });\n } else {\n console.log('API currently not available for iOS');\n return 'API currently not available for iOS';\n }\n };\n\n getRemoteVideoTrackFromTrackId = async (trackId: string) => {\n logger?.verbose('#Function getRemoteVideoTrackFromTrackId', {\n id: this.id,\n trackId,\n });\n\n const remoteVideoTrackData =\n await HMSManager.getRemoteVideoTrackFromTrackId({\n id: this.id,\n trackId,\n });\n return HMSEncoder.encodeHmsRemoteVideoTrack(remoteVideoTrackData, this.id);\n };\n\n getRemoteAudioTrackFromTrackId = async (trackId: string) => {\n logger?.verbose('#Function getRemoteAudioTrackFromTrackId', {\n id: this.id,\n trackId,\n });\n\n const remoteAudioTrackData =\n await HMSManager.getRemoteAudioTrackFromTrackId({\n id: this.id,\n trackId,\n });\n return HMSEncoder.encodeHmsRemoteAudioTrack(remoteAudioTrackData, this.id);\n };\n\n getPeerFromPeerId = (peerId: string) => {\n logger?.verbose('#Function getPeerFromPeerId', {\n id: this.id,\n peerId,\n });\n // Getting Peer Cache\n const peersCache = getHmsPeersCache();\n\n // If Peer Cache doesn't exist, return `undefined` as we don't have Peer\n if (!peersCache) return;\n\n const peerRole = peersCache.getProperty(peerId, 'role');\n\n // If Peer doesn't have valid Role, return `undefined` as we don't have Peer\n if (!peerRole) return;\n\n return HMSEncoder.encodeHmsPeer({ peerID: peerId });\n };\n\n /**\n * - This function is used to raise hand for the local peer\n * @memberof HMSSDK\n */\n raiseLocalPeerHand = async () => {\n const data = {\n id: this.id,\n };\n logger?.verbose('#Function raiseLocalPeerHand', data);\n return HMSManager.raiseLocalPeerHand(data);\n };\n\n /**\n * - This function is used to lower hand for the local peer\n * @memberof HMSSDK\n */\n lowerLocalPeerHand = async () => {\n const data = {\n id: this.id,\n };\n logger?.verbose('#Function lowerLocalPeerHand', data);\n return HMSManager.lowerLocalPeerHand(data);\n };\n\n /**\n * - This function is used to lower hand for the remote peer\n * @param peer\n */\n lowerRemotePeerHand = async (peer: HMSPeer) => {\n const data = {\n peerId: peer.peerID,\n id: this.id,\n };\n logger?.verbose('#Function lowerRemotePeerHand', data);\n return HMSManager.lowerRemotePeerHand(data);\n };\n\n /**\n * `getPeerListIterator` method returns an instance of `HMSPeerListIterator` class\n *\n * @param options options for configuring iterator\n * @returns instance of HMSPeerListIterator class\n *\n * Example usage:\n * ```\n * const peerListIterator = hmsInstance.getPeerListIterator();\n * ```\n * OR\n * ```\n * const peerListIterator = hmsInstance.getPeerListIterator({\n * limit: 10,\n * byRoleName: 'viewer-realtime',\n * });\n * ```\n */\n getPeerListIterator = (\n options?: HMSPeerListIteratorOptions\n ): HMSPeerListIterator => {\n logger?.verbose('#Function getPeerListIterator', {\n id: this.id,\n options,\n });\n\n const uniqueId = Math.random().toString(16).slice(2);\n\n const data: null | {\n sucess: boolean;\n uniqueId: string;\n totalCount: number;\n } = HMSManager.getPeerListIterator({\n id: this.id,\n ...options,\n limit: options?.limit ?? 10,\n uniqueId,\n });\n\n if (!data) {\n throw new Error('Unable to create PeerListIterator');\n }\n\n return new HMSPeerListIterator(data.uniqueId, data.totalCount);\n };\n\n /**\n * - This function allows the user to set the screen on always.\n * - This is useful when the user wants to keep the screen on while the app is in the foreground.\n * @param enabled boolean value to enable or disable the always screen on\n */\n setAlwaysScreenOn = async (enabled: boolean) => {\n logger?.verbose('#Function toggleAlwaysScreenOn', {\n id: this.id,\n enabled,\n });\n return HMSManager.setAlwaysScreenOn({ id: this.id, enabled });\n };\n\n /**\n * - This is a prototype event listener that takes action and listens for updates related to that particular action\n *\n * @param {string} action\n * @param {*} callback\n * @memberof HMSSDK\n */\n addEventListener = (\n action: HMSUpdateListenerActions | HMSPIPListenerActions,\n callback: any\n ) => {\n logger?.verbose('#Function addEventListener', {\n action,\n id: this.id,\n });\n switch (action) {\n case HMSUpdateListenerActions.ON_PREVIEW: {\n // Checking if we already have ON_PREVIEW subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW]) {\n // Adding ON_PREVIEW native listener\n const previewSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_PREVIEW,\n this.onPreviewListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW] =\n previewSubscription;\n }\n // Adding App Delegate listener\n this.onPreviewDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_JOIN: {\n // Checking if we already have ON_JOIN subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN]) {\n // Adding ON_JOIN native listener\n const joinSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_JOIN,\n this.onJoinListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN] =\n joinSubscription;\n }\n // Adding App Delegate listener\n this.onJoinDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_ROOM_UPDATE: {\n // Checking if we already have ON_ROOM_UPDATE subscription\n if (\n !this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE]\n ) {\n // Adding ON_ROOM_UPDATE native listener\n const roomSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_ROOM_UPDATE,\n this.onRoomListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE] =\n roomSubscription;\n }\n // Adding App Delegate listener\n this.onRoomDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_PEER_UPDATE: {\n // Checking if we already have ON_PEER_UPDATE subscription\n if (\n !this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE]\n ) {\n // Adding ON_PEER_UPDATE native listener\n const peerSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_PEER_UPDATE,\n this.onPeerListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE] =\n peerSubscription;\n }\n // Adding App Delegate listener\n this.onPeerDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_PEER_LIST_UPDATED: {\n // Checking if we already have ON_PEER_LIST_UPDATED subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_PEER_LIST_UPDATED\n ]\n ) {\n // Adding ON_PEER_LIST_UPDATED native listener\n const peerListUpdatedSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_PEER_LIST_UPDATED,\n this.onPeerListUpdatedListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_PEER_LIST_UPDATED\n ] = peerListUpdatedSubscription;\n }\n // Adding App Delegate listener\n this.onPeerListUpdatedDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_TRACK_UPDATE: {\n // Checking if we already have ON_TRACK_UPDATE subscription\n if (\n !this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE]\n ) {\n // Adding ON_TRACK_UPDATE native listener\n const trackSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_TRACK_UPDATE,\n this.onTrackListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE] =\n trackSubscription;\n }\n // Adding App Delegate listener\n this.onTrackDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_ERROR: {\n // Checking if we already have ON_ERROR subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR]) {\n // Adding ON_ERROR native listener\n const errorSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_ERROR,\n this.onErrorListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR] =\n errorSubscription;\n }\n // Adding App Delegate listener\n this.onErrorDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_MESSAGE: {\n // Checking if we already have ON_MESSAGE subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE]) {\n // Adding ON_MESSAGE native listener\n const messageSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_MESSAGE,\n this.onMessageListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE] =\n messageSubscription;\n }\n // Adding App Delegate listener\n this.onMessageDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_SPEAKER: {\n // Checking if we already have ON_SPEAKER subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER]) {\n // Adding ON_SPEAKER native listener\n const speakerSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_SPEAKER,\n this.onSpeakerListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER] =\n speakerSubscription;\n }\n // Adding App Delegate listener\n this.onSpeakerDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTING: {\n // Checking if we already have RECONNECTING subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING]) {\n // Adding RECONNECTING native listener\n const reconnectingSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.RECONNECTING,\n this.reconnectingListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING] =\n reconnectingSubscription;\n }\n // Adding App Delegate listener\n this.onReconnectingDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTED: {\n // Checking if we already have RECONNECTED subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED]) {\n // Adding RECONNECTED native listener\n const reconnectedSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.RECONNECTED,\n this.reconnectedListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED] =\n reconnectedSubscription;\n }\n // Adding App Delegate listener\n this.onReconnectedDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST: {\n // Checking if we already have ON_ROLE_CHANGE_REQUEST subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ]\n ) {\n // Adding ON_ROLE_CHANGE_REQUEST native listener\n const roleChangeReqSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST,\n this.onRoleChangeRequestListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ] = roleChangeReqSubscription;\n }\n // Adding App Delegate listener\n this.onRoleChangeRequestDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST: {\n // Checking if we already have ON_CHANGE_TRACK_STATE_REQUEST subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ]\n ) {\n // Adding ON_CHANGE_TRACK_STATE_REQUEST native listener\n const changeTrackReqSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST,\n this.onChangeTrackStateRequestListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ] = changeTrackReqSubscription;\n }\n // Adding App Delegate listener\n this.onChangeTrackStateRequestDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM: {\n // Checking if we already have ON_REMOVED_FROM_ROOM subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ]\n ) {\n // Adding ON_REMOVED_FROM_ROOM native listener\n const removedFromRoomSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM,\n this.onRemovedFromRoomListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ] = removedFromRoomSubscription;\n }\n // Adding App Delegate listener\n this.onRemovedFromRoomDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_RTC_STATS: {\n // Checking if we already have ON_RTC_STATS subscription\n if (!this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS]) {\n // Adding ON_RTC_STATS native listener\n const rtcStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_RTC_STATS,\n this.RTCStatsListener\n );\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS] =\n rtcStatsSubscription;\n }\n // Adding App Delegate listener\n this.onRtcStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS: {\n // Checking if we already have ON_LOCAL_AUDIO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ]\n ) {\n // Adding ON_LOCAL_AUDIO_STATS native listener\n const lclAudioStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS,\n this.onLocalAudioStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ] = lclAudioStatsSubscription;\n }\n // Adding App Delegate listener\n this.onLocalAudioStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS: {\n // Checking if we already have ON_LOCAL_VIDEO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ]\n ) {\n // Adding ON_LOCAL_VIDEO_STATS native listener\n const lclVideoStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS,\n this.onLocalVideoStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ] = lclVideoStatsSubscription;\n }\n // Adding App Delegate listener\n this.onLocalVideoStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS: {\n // Checking if we already have ON_REMOTE_AUDIO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ]\n ) {\n // Adding ON_REMOTE_AUDIO_STATS native listener\n const rmAudioStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS,\n this.onRemoteAudioStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ] = rmAudioStatsSubscription;\n }\n // Adding App Delegate listener\n this.onRemoteAudioStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS: {\n // Checking if we already have ON_REMOTE_VIDEO_STATS subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ]\n ) {\n // Adding ON_REMOTE_VIDEO_STATS native listener\n const rmVideoStatsSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS,\n this.onRemoteVideoStatsListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ] = rmVideoStatsSubscription;\n }\n // Adding App Delegate listener\n this.onRemoteVideoStatsDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED: {\n // Checking if we already have ON_AUDIO_DEVICE_CHANGED subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ]\n ) {\n // Adding ON_AUDIO_DEVICE_CHANGED native listener\n const audDeviceChgSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED,\n this.onAudioDeviceChangedListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ] = audDeviceChgSubscription;\n }\n // Adding App Delegate listener\n this.onAudioDeviceChangedDelegate = callback;\n break;\n }\n case HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE: {\n // Checking if we already have ON_SESSION_STORE_AVAILABLE subscription\n if (\n !this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ]\n ) {\n // Adding ON_SESSION_STORE_AVAILABLE native listener\n const sessionStoreAvailableSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE,\n this.onSessionStoreAvailableListener\n );\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ] = sessionStoreAvailableSubscription;\n }\n // Adding Session Store Available App Delegate listener\n this.onSessionStoreAvailableDelegate = callback;\n break;\n }\n case HMSPIPListenerActions.ON_PIP_ROOM_LEAVE: {\n if (Platform.OS === 'android') {\n // Checking if we already have ON_PIP_ROOM_LEAVE subscription\n if (\n !this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE]\n ) {\n // Adding ON_PIP_ROOM_LEAVE native listener\n const pipRoomLeaveSubscription = HMSNativeEventListener.addListener(\n this.id,\n HMSPIPListenerActions.ON_PIP_ROOM_LEAVE,\n this.onPIPRoomLeaveListener\n );\n this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE] =\n pipRoomLeaveSubscription;\n }\n // Adding App Delegate listener\n this.onPIPRoomLeaveDelegate = callback;\n }\n break;\n }\n case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {\n if (Platform.OS === 'android') {\n // Checking if we already have ON_PIP_MODE_CHANGED subscription\n if (\n !this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ]\n ) {\n const pipModeChangedSubscription =\n HMSNativeEventListener.addListener(\n this.id,\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED,\n this.onPIPModeChangedListener\n );\n this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ] = pipModeChangedSubscription;\n }\n // Adding PIP mode changed Delegate listener\n this.onPIPModeChangedDelegate = callback;\n }\n break;\n }\n default:\n }\n };\n\n /**\n * - This is a prototype event listener that takes action and listens for updates related to that particular action\n *\n * @param {string} action\n * @param {*} callback\n * @memberof HMSSDK\n */\n removeEventListener = (\n action: HMSUpdateListenerActions | HMSPIPListenerActions\n ) => {\n logger?.verbose('#Function removeEventListener', { action, id: this.id });\n switch (action) {\n case HMSUpdateListenerActions.ON_PREVIEW: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW];\n // Removing ON_PREVIEW native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PREVIEW] =\n undefined;\n }\n // Removing App Delegate listener\n this.onPreviewDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_JOIN: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN];\n // Removing ON_JOIN native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_JOIN] =\n undefined;\n }\n // Removing App Delegate listener\n this.onJoinDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_ROOM_UPDATE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE];\n // Removing ON_ROOM_UPDATE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ROOM_UPDATE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onRoomDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_PEER_UPDATE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE];\n // Removing ON_PEER_UPDATE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onPeerDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_TRACK_UPDATE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE];\n // Removing ON_TRACK_UPDATE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRACK_UPDATE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onTrackDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_ERROR: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR];\n // Removing ON_ERROR native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_ERROR] =\n undefined;\n }\n // Removing App Delegate listener\n this.onErrorDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_MESSAGE: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE];\n // Removing ON_MESSAGE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_MESSAGE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onMessageDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_SPEAKER: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER];\n // Removing ON_SPEAKER native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_SPEAKER] =\n undefined;\n }\n // Removing App Delegate listener\n this.onSpeakerDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTING: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING];\n // Removing RECONNECTING native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTING] =\n undefined;\n }\n // Removing App Delegate listener\n this.onReconnectingDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.RECONNECTED: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED];\n // Removing RECONNECTED native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.RECONNECTED] =\n undefined;\n }\n // Removing App Delegate listener\n this.onReconnectedDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ];\n // Removing ON_ROLE_CHANGE_REQUEST native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_ROLE_CHANGE_REQUEST\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRoleChangeRequestDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ];\n // Removing ON_CHANGE_TRACK_STATE_REQUEST native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_CHANGE_TRACK_STATE_REQUEST\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onChangeTrackStateRequestDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ];\n // Removing ON_REMOVED_FROM_ROOM native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRemovedFromRoomDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_RTC_STATS: {\n const subscription =\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS];\n // Removing ON_RTC_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSUpdateListenerActions.ON_RTC_STATS] =\n undefined;\n }\n // Removing App Delegate listener\n this.onRtcStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ];\n // Removing ON_LOCAL_AUDIO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_AUDIO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onLocalAudioStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ];\n // Removing ON_LOCAL_VIDEO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_LOCAL_VIDEO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onLocalVideoStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ];\n // Removing ON_REMOTE_AUDIO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_AUDIO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRemoteAudioStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ];\n // Removing ON_REMOTE_VIDEO_STATS native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_REMOTE_VIDEO_STATS\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onRemoteVideoStatsDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ];\n // Removing ON_AUDIO_DEVICE_CHANGED native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onAudioDeviceChangedDelegate = null;\n break;\n }\n case HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE: {\n const subscription =\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ];\n // Removing ON_SESSION_STORE_AVAILABLE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onSessionStoreAvailableDelegate = null;\n break;\n }\n case HMSPIPListenerActions.ON_PIP_ROOM_LEAVE: {\n if (Platform.OS === 'android') {\n const subscription =\n this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE];\n // Removing ON_PIP_ROOM_LEAVE native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_ROOM_LEAVE] =\n undefined;\n }\n // Removing App Delegate listener\n this.onPIPRoomLeaveDelegate = null;\n }\n break;\n }\n case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {\n if (Platform.OS === 'android') {\n const subscription =\n this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ];\n // Removing ON_PIP_MODE_CHANGED native listener\n if (subscription) {\n subscription.remove();\n\n this.emitterSubscriptions[\n HMSPIPListenerActions.ON_PIP_MODE_CHANGED\n ] = undefined;\n }\n // Removing App Delegate listener\n this.onPIPModeChangedDelegate = null;\n }\n break;\n }\n default:\n }\n };\n\n /**\n * removes all the listeners\n *\n * @memberof HMSSDK\n */\n removeAllListeners = () => {\n this.onPreviewDelegate = null;\n this.onJoinDelegate = null;\n this.onRoomDelegate = null;\n this.onPeerDelegate = null;\n this.onTrackDelegate = null;\n this.onErrorDelegate = null;\n this.onMessageDelegate = null;\n this.onSpeakerDelegate = null;\n this.onReconnectingDelegate = null;\n this.onReconnectedDelegate = null;\n this.onRoleChangeRequestDelegate = null;\n this.onChangeTrackStateRequestDelegate = null;\n this.onRemovedFromRoomDelegate = null;\n this.onPIPRoomLeaveDelegate = null;\n\n // Getting list of all available `emitterSubscription` objects\n Object.values(this.emitterSubscriptions)\n .filter(Boolean)\n .forEach((emitterSubscription) => {\n emitterSubscription.remove();\n });\n\n // clearing reference of all `emitterSubscription` objects\n this.emitterSubscriptions = {};\n\n logger?.verbose('#Function REMOVE_ALL_LISTENER', { id: this.id });\n };\n\n /**\n * - Below are all the listeners that are connected to native side.\n *\n * - All of the are connected when build function is called, we can connect them to the app by\n * calling {@link addEventListener} with corresponding event type.\n *\n * - Before passing the data to the eventListener of the app these listeners encode the data in\n * ts classes for a proper structuring of the data.\n *\n * - Even When event listeners of the app are disconnected using {@link removeEventListener} or\n * {@link removeAllListeners} or not even connected in first place, these functions still run to\n * maintain the current state of the instance of {@link HMSSDK}.\n *\n */\n\n onPreviewListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);\n const previewTracks = HMSEncoder.encodeHmsPreviewTracks(\n data.previewTracks,\n this.id\n );\n\n if (this.onPreviewDelegate) {\n logger?.verbose('#Listener ON_PREVIEW_LISTENER_CALL', {\n room,\n previewTracks,\n });\n this.onPreviewDelegate({ room, previewTracks });\n }\n };\n\n onJoinListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);\n\n if (this.onJoinDelegate) {\n logger?.verbose('#Listener ON_JOIN_LISTENER_CALL', {\n room,\n });\n this.onJoinDelegate({ room });\n }\n };\n\n onRoomListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);\n const type = data.type;\n\n getHmsRoomCache()?.updateRoomCache(data.room, data.type);\n\n if (this.onRoomDelegate) {\n logger?.verbose('#Listener ON_ROOM_LISTENER_CALL', {\n room,\n type,\n });\n this.onRoomDelegate({ room, type });\n }\n };\n\n onPeerListener = (peerData: any) => {\n const data: { peer: any; type: any } = {\n peer: peerData,\n type: null,\n };\n\n for (const ordinal of HMSPeerUpdateOrdinals.keys()) {\n if (ordinal in peerData) {\n data.peer.peerID = peerData[ordinal];\n data.type = ordinal;\n break;\n }\n }\n\n const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);\n const type = HMSEncoder.encodeHmsPeerUpdate(data.type) || data.type;\n\n if (type === HMSPeerUpdate.PEER_LEFT) {\n this.sendPeerUpdateWhenPeerLeaves(data, peer, type);\n } else {\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, data.peer, type);\n this.sendPeerUpdate(peer, type);\n }\n };\n\n private sendPeerUpdate = (peer: any, type: any) => {\n if (this.onPeerDelegate) {\n logger?.verbose('#Listener ON_PEER_LISTENER_CALL', {\n peer,\n type,\n });\n this.onPeerDelegate({ peer, type });\n }\n };\n\n private sendPeerUpdateWhenPeerLeaves = (data: any, peer: any, type: any) => {\n this.sendPeerUpdate(peer, type);\n\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, data.peer, type);\n };\n\n onPeerListUpdatedListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const addedPeers = HMSEncoder.encodeHmsPeers(data.addedPeers);\n const removedPeers = HMSEncoder.encodeHmsPeers(data.removedPeers);\n\n if (this.onPeerListUpdatedDelegate) {\n logger?.verbose('#Listener ON_PEER_LIST_UPDATED_LISTENER_CALL', {\n totalAddedPeers: addedPeers.length,\n totalRemovedPeers: removedPeers.length,\n });\n\n this.onPeerListUpdatedDelegate({\n addedPeers,\n removedPeers,\n });\n }\n };\n\n onTrackListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const track: HMSTrack = HMSEncoder.encodeHmsTrack(data.track, this.id);\n const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);\n const type = data.type;\n\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, { track }, data.type);\n\n if (this.onTrackDelegate) {\n logger?.verbose('#Listener ON_TRACK_LISTENER_CALL', {\n peer,\n track,\n type,\n });\n this.onTrackDelegate({\n peer,\n track,\n type,\n });\n }\n };\n\n onMessageListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n const message = HMSEncoder.encodeHMSMessage(data);\n if (this.onMessageDelegate) {\n logger?.verbose('#Listener ON_MESSAGE_LISTENER_CALL', message);\n this.onMessageDelegate(message);\n }\n };\n\n onSpeakerListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onSpeakerDelegate) {\n logger?.verbose('#Listener ON_SPEAKER_LISTENER_CALL', data?.speakers);\n this.onSpeakerDelegate(\n HMSEncoder.encodeHmsSpeakers(data?.speakers, this.id)\n );\n }\n };\n\n onErrorListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onErrorDelegate) {\n logger?.verbose('#Listener ON_ERROR_LISTENER_CALL', data);\n logger?.warn('#Listener ON_ERROR_LISTENER_CALL', data);\n this.onErrorDelegate(HMSEncoder.encodeHMSException(data));\n }\n };\n\n onRoleChangeRequestListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onRoleChangeRequestDelegate) {\n const encodedRoleChangeRequest =\n HMSEncoder.encodeHmsRoleChangeRequest(data);\n logger?.verbose(\n '#Listener ON_ROLE_CHANGE_LISTENER_CALL',\n encodedRoleChangeRequest\n );\n this.onRoleChangeRequestDelegate(encodedRoleChangeRequest);\n }\n };\n\n onChangeTrackStateRequestListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onChangeTrackStateRequestDelegate) {\n const encodedRoleChangeRequest =\n HMSEncoder.encodeHmsChangeTrackStateRequest(data);\n logger?.verbose(\n '#Listener ON_CHANGE_TRACK_STATE_REQUEST_LISTENER_CALL',\n encodedRoleChangeRequest\n );\n this.onChangeTrackStateRequestDelegate(encodedRoleChangeRequest);\n }\n };\n\n onRemovedFromRoomListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n this.roomLeaveCleanup();\n\n if (this.onRemovedFromRoomDelegate) {\n let requestedBy = null;\n if (data.requestedBy) {\n requestedBy = HMSEncoder.encodeHmsPeer(data.requestedBy);\n }\n const reason = data.reason;\n const roomEnded = data.roomEnded;\n\n logger?.verbose('#Listener ON_REMOVED_FROM_ROOM_LISTENER_CALL', {\n requestedBy,\n reason,\n roomEnded,\n id: this.id,\n });\n this.onRemovedFromRoomDelegate({ requestedBy, reason, roomEnded });\n }\n };\n\n reconnectingListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onReconnectingDelegate) {\n logger?.verbose('#Listener ON_RECONNECTING_CALL', data);\n this.onReconnectingDelegate(data);\n }\n };\n\n reconnectedListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onReconnectedDelegate) {\n logger?.verbose('#Listener ON_RECONNECTED_CALL', data);\n this.onReconnectedDelegate(data);\n }\n };\n\n RTCStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let rtcStats = HMSEncoder.encodeRTCStats(data);\n\n if (this.onRtcStatsDelegate) {\n logger?.verbose('#Listener RTCStatsListener_CALL', { rtcStats });\n this.onRtcStatsDelegate({ rtcStats });\n }\n };\n\n onLocalAudioStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let localAudioStats = HMSEncoder.encodeHMSLocalAudioStats(\n data.localAudioStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsLocalAudioTrack(data.track, this.id);\n\n if (this.onLocalAudioStatsDelegate) {\n logger?.verbose('#Listener onLocalAudioStatsListener_CALL', {\n ...data,\n localAudioStats,\n peer,\n track,\n });\n this.onLocalAudioStatsDelegate({ ...data, localAudioStats, peer, track });\n }\n };\n\n onLocalVideoStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let localVideoStats = HMSEncoder.encodeHMSLocalVideoStats(\n data.localVideoStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsLocalVideoTrack(data.track, this.id);\n\n if (this.onLocalVideoStatsDelegate) {\n logger?.verbose('#Listener onLocalVideoStatsListener_CALL', {\n ...data,\n localVideoStats,\n peer,\n track,\n });\n this.onLocalVideoStatsDelegate({ ...data, localVideoStats, peer, track });\n }\n };\n\n onRemoteAudioStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let remoteAudioStats = HMSEncoder.encodeHMSRemoteAudioStats(\n data.remoteAudioStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsRemoteAudioTrack(data.track, this.id);\n\n if (this.onRemoteAudioStatsDelegate) {\n logger?.verbose('#Listener onRemoteAudioStatsListener_CALL', {\n ...data,\n remoteAudioStats,\n peer,\n track,\n });\n this.onRemoteAudioStatsDelegate({\n ...data,\n remoteAudioStats,\n peer,\n track,\n });\n }\n };\n\n onRemoteVideoStatsListener = (data: any) => {\n if (data.id !== this.id) {\n return;\n }\n\n let remoteVideoStats = HMSEncoder.encodeHMSRemoteVideoStats(\n data.remoteVideoStats\n );\n let peer = HMSEncoder.encodeHmsPeer(data.peer);\n let track = HMSEncoder.encodeHmsRemoteVideoTrack(data.track, this.id);\n\n if (this.onRemoteVideoStatsDelegate) {\n logger?.verbose('#Listener onRemoteVideoStatsListener_CALL', {\n ...data,\n remoteVideoStats,\n peer,\n track,\n });\n this.onRemoteVideoStatsDelegate({\n ...data,\n remoteVideoStats,\n peer,\n track,\n });\n }\n };\n\n onAudioDeviceChangedListener = (data: {\n id: string;\n device: string;\n audioDevicesList: string[];\n }) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onAudioDeviceChangedDelegate) {\n logger?.verbose('#Listener onAudioDeviceChangedListener_CALL', data);\n this.onAudioDeviceChangedDelegate({\n ...data,\n });\n }\n };\n\n onSessionStoreAvailableListener = (data: { id: string }) => {\n if (data.id !== this.id) {\n return;\n }\n if (this.onSessionStoreAvailableDelegate) {\n logger?.verbose(\n '#Listener ON_SESSION_STORE_AVAILABLE_LISTENER_CALL',\n data\n );\n this.onSessionStoreAvailableDelegate({\n ...data,\n sessionStore: new HMSSessionStore(),\n });\n }\n };\n\n onPIPRoomLeaveListener = (data: { id: string }) => {\n if (data.id !== this.id) {\n return;\n }\n\n this.roomLeaveCleanup();\n\n if (this.onPIPRoomLeaveDelegate) {\n logger?.verbose('#Listener onPIPRoomLeave_CALL', data);\n this.onPIPRoomLeaveDelegate({\n ...data,\n });\n }\n };\n\n onPIPModeChangedListener = (data: { isInPictureInPictureMode: boolean }) => {\n if (this.onPIPModeChangedDelegate) {\n logger?.verbose('#Listener onPIPModeChanged_CALL', data);\n\n this.onPIPModeChangedDelegate(data);\n }\n };\n\n async isPipModeSupported(): Promise<undefined | boolean> {\n return HMSManager.handlePipActions('isPipModeSupported', { id: this.id });\n }\n\n async enterPipMode(data?: HMSPIPConfig): Promise<undefined | boolean> {\n return HMSManager.handlePipActions('enterPipMode', {\n ...data,\n id: this.id,\n });\n }\n\n async setPipParams(data?: HMSPIPConfig): Promise<undefined | boolean> {\n return HMSManager.handlePipActions('setPictureInPictureParams', {\n ...data,\n id: this.id,\n });\n }\n\n get interactivityCenter() {\n if (!this._interactivityCenter) {\n this._interactivityCenter = new HMSInteractivityCenter();\n }\n return this._interactivityCenter;\n }\n\n /**\n * - Returns the instance of logger which can be used to manipulate log levels.\n * @returns @instance HMSLogger\n * @memberof HMSSDK\n */\n static getLogger() {\n return getLogger();\n }\n\n /**\n * - Updates the logger for this instance of HMSSDK\n * @param {HMSLogger} hmsLogger\n * @memberof HMSSDK\n */\n setLogger = (hmsLogger?: HMSLogger) => {\n setLogger(this.id, hmsLogger);\n };\n}\n"],"mappings":"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","ignoreList":[]}