@100mslive/react-native-hms 1.1.1 → 1.3.0

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 (312) hide show
  1. package/README.md +145 -340
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +292 -94
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +127 -127
  5. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +167 -115
  6. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +283 -45
  7. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +7 -7
  8. package/ios/HMSDecoder.swift +276 -137
  9. package/ios/HMSHelper.swift +3 -3
  10. package/ios/HMSManager.m +7 -0
  11. package/ios/HMSManager.swift +37 -2
  12. package/ios/HMSRNSDK.swift +339 -97
  13. package/ios/HMSView.m +2 -0
  14. package/ios/HMSView.swift +35 -3
  15. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  16. package/lib/commonjs/classes/HMSAudioCodec.js +4 -4
  17. package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
  18. package/lib/commonjs/classes/HMSAudioDevice.js +4 -4
  19. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  20. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
  21. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  22. package/lib/commonjs/classes/HMSAudioMixingMode.js +4 -4
  23. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  24. package/lib/commonjs/classes/HMSAudioMode.js +4 -4
  25. package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
  26. package/lib/commonjs/classes/HMSAudioNode.js +2 -1
  27. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  28. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  29. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  30. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  31. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  32. package/lib/commonjs/classes/HMSCameraFacing.js +4 -4
  33. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  34. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  35. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  36. package/lib/commonjs/classes/HMSConstants.js +11 -0
  37. package/lib/commonjs/classes/HMSConstants.js.map +1 -0
  38. package/lib/commonjs/classes/HMSEncoder.js +129 -102
  39. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  40. package/lib/commonjs/classes/HMSException.js.map +1 -1
  41. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  42. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  43. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  44. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  45. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  46. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  47. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  49. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  50. package/lib/commonjs/classes/HMSLocalPeer.js +0 -1
  51. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  52. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLocalVideoTrack.js +0 -2
  54. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  55. package/lib/commonjs/classes/HMSLogAlarmManager.js +4 -4
  56. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
  57. package/lib/commonjs/classes/HMSLogLevel.js +4 -4
  58. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  59. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  60. package/lib/commonjs/classes/HMSLogger.js +17 -25
  61. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  62. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  63. package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
  64. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  65. package/lib/commonjs/classes/HMSMessageRecipientType.js +4 -4
  66. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
  67. package/lib/commonjs/classes/HMSMessageType.js +4 -4
  68. package/lib/commonjs/classes/HMSMessageType.js.map +1 -1
  69. package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
  70. package/lib/commonjs/classes/HMSNativeEventEmitter.js +101 -0
  71. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -0
  72. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  73. package/lib/commonjs/classes/HMSPIPListenerActions.js +4 -4
  74. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
  75. package/lib/commonjs/classes/HMSPeer.js +69 -18
  76. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  77. package/lib/commonjs/classes/HMSPeerUpdate.js +7 -5
  78. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  79. package/lib/commonjs/classes/HMSPeersCache.js +229 -0
  80. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -0
  81. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  82. package/lib/commonjs/classes/HMSPublishSettings.js +0 -6
  83. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  84. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  85. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  87. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  89. package/lib/commonjs/classes/HMSRemotePeer.js +0 -1
  90. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  91. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  92. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  93. package/lib/commonjs/classes/HMSRole.js +0 -6
  94. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  95. package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -1
  96. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  97. package/lib/commonjs/classes/HMSRoom.js +79 -22
  98. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  99. package/lib/commonjs/classes/HMSRoomCache.js +128 -0
  100. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -0
  101. package/lib/commonjs/classes/HMSRoomUpdate.js +4 -4
  102. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  103. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  104. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  105. package/lib/commonjs/classes/HMSSDK.js +933 -158
  106. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  107. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  108. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  109. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  110. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  111. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  112. package/lib/commonjs/classes/HMSSubscribeSettings.js +0 -2
  113. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  114. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  115. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  116. package/lib/commonjs/classes/HMSTrackSettingsInitState.js +4 -4
  117. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
  118. package/lib/commonjs/classes/HMSTrackSource.js +4 -4
  119. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  120. package/lib/commonjs/classes/HMSTrackType.js +4 -4
  121. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  122. package/lib/commonjs/classes/HMSTrackUpdate.js +4 -4
  123. package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
  124. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -5
  125. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  126. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  127. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  128. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  129. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  130. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  131. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  132. package/lib/commonjs/classes/HMSVideoViewMode.js +4 -4
  133. package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
  134. package/lib/commonjs/classes/HmsView.js +2 -1
  135. package/lib/commonjs/classes/HmsView.js.map +1 -1
  136. package/lib/commonjs/index.js.map +1 -1
  137. package/lib/module/classes/HMSAudioCodec.js +3 -3
  138. package/lib/module/classes/HMSAudioCodec.js.map +1 -1
  139. package/lib/module/classes/HMSAudioDevice.js +3 -3
  140. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  141. package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
  142. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  143. package/lib/module/classes/HMSAudioMixingMode.js +3 -3
  144. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  145. package/lib/module/classes/HMSAudioMode.js +3 -3
  146. package/lib/module/classes/HMSAudioMode.js.map +1 -1
  147. package/lib/module/classes/HMSAudioNode.js +2 -1
  148. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  149. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  150. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  151. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  152. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  153. package/lib/module/classes/HMSCameraFacing.js +3 -3
  154. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  155. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  156. package/lib/module/classes/HMSConfig.js.map +1 -1
  157. package/lib/module/classes/HMSConstants.js +4 -0
  158. package/lib/module/classes/HMSConstants.js.map +1 -0
  159. package/lib/module/classes/HMSEncoder.js +129 -102
  160. package/lib/module/classes/HMSEncoder.js.map +1 -1
  161. package/lib/module/classes/HMSException.js.map +1 -1
  162. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  163. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  164. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  165. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  166. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  167. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  168. package/lib/module/classes/HMSHelper.js.map +1 -1
  169. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  170. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  171. package/lib/module/classes/HMSLocalPeer.js +0 -1
  172. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  173. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  174. package/lib/module/classes/HMSLocalVideoTrack.js +0 -2
  175. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  176. package/lib/module/classes/HMSLogAlarmManager.js +3 -3
  177. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
  178. package/lib/module/classes/HMSLogLevel.js +3 -3
  179. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  180. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  181. package/lib/module/classes/HMSLogger.js +17 -25
  182. package/lib/module/classes/HMSLogger.js.map +1 -1
  183. package/lib/module/classes/HMSMessage.js.map +1 -1
  184. package/lib/module/classes/HMSMessageRecipient.js +1 -1
  185. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  186. package/lib/module/classes/HMSMessageRecipientType.js +3 -3
  187. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
  188. package/lib/module/classes/HMSMessageType.js +3 -3
  189. package/lib/module/classes/HMSMessageType.js.map +1 -1
  190. package/lib/module/classes/HMSMicNode.js.map +1 -1
  191. package/lib/module/classes/HMSNativeEventEmitter.js +94 -0
  192. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -0
  193. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  194. package/lib/module/classes/HMSPIPListenerActions.js +3 -3
  195. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
  196. package/lib/module/classes/HMSPeer.js +69 -18
  197. package/lib/module/classes/HMSPeer.js.map +1 -1
  198. package/lib/module/classes/HMSPeerUpdate.js +4 -3
  199. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  200. package/lib/module/classes/HMSPeersCache.js +216 -0
  201. package/lib/module/classes/HMSPeersCache.js.map +1 -0
  202. package/lib/module/classes/HMSPermissions.js.map +1 -1
  203. package/lib/module/classes/HMSPublishSettings.js +0 -6
  204. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  205. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  206. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  207. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  208. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  209. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  210. package/lib/module/classes/HMSRemotePeer.js +0 -1
  211. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  212. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  213. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  214. package/lib/module/classes/HMSRole.js +0 -6
  215. package/lib/module/classes/HMSRole.js.map +1 -1
  216. package/lib/module/classes/HMSRoleChangeRequest.js +3 -1
  217. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  218. package/lib/module/classes/HMSRoom.js +79 -22
  219. package/lib/module/classes/HMSRoom.js.map +1 -1
  220. package/lib/module/classes/HMSRoomCache.js +115 -0
  221. package/lib/module/classes/HMSRoomCache.js.map +1 -0
  222. package/lib/module/classes/HMSRoomUpdate.js +3 -3
  223. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  224. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  225. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  226. package/lib/module/classes/HMSSDK.js +934 -159
  227. package/lib/module/classes/HMSSDK.js.map +1 -1
  228. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  229. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  230. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  231. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  232. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  233. package/lib/module/classes/HMSSubscribeSettings.js +0 -2
  234. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  235. package/lib/module/classes/HMSTrack.js.map +1 -1
  236. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  237. package/lib/module/classes/HMSTrackSettingsInitState.js +3 -3
  238. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
  239. package/lib/module/classes/HMSTrackSource.js +3 -3
  240. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  241. package/lib/module/classes/HMSTrackType.js +3 -3
  242. package/lib/module/classes/HMSTrackType.js.map +1 -1
  243. package/lib/module/classes/HMSTrackUpdate.js +3 -3
  244. package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
  245. package/lib/module/classes/HMSUpdateListenerActions.js +4 -4
  246. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  247. package/lib/module/classes/HMSVideoCodec.js +3 -3
  248. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  249. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  250. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  251. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  252. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  253. package/lib/module/classes/HMSVideoViewMode.js +3 -3
  254. package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
  255. package/lib/module/classes/HmsView.js +2 -1
  256. package/lib/module/classes/HmsView.js.map +1 -1
  257. package/lib/module/index.js.map +1 -1
  258. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -4
  259. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -2
  260. package/lib/typescript/classes/HMSConstants.d.ts +3 -0
  261. package/lib/typescript/classes/HMSEncoder.d.ts +10 -6
  262. package/lib/typescript/classes/HMSHLSStreamingState.d.ts +2 -2
  263. package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -14
  264. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +0 -2
  265. package/lib/typescript/classes/HMSLogger.d.ts +1 -7
  266. package/lib/typescript/classes/HMSMessageRecipient.d.ts +2 -2
  267. package/lib/typescript/classes/HMSNativeEventEmitter.d.ts +13 -0
  268. package/lib/typescript/classes/HMSPeer.d.ts +12 -18
  269. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  270. package/lib/typescript/classes/HMSPeersCache.d.ts +17 -0
  271. package/lib/typescript/classes/HMSPublishSettings.d.ts +8 -15
  272. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -14
  273. package/lib/typescript/classes/HMSRole.d.ts +0 -6
  274. package/lib/typescript/classes/HMSRoleChangeRequest.d.ts +2 -2
  275. package/lib/typescript/classes/HMSRoom.d.ts +11 -22
  276. package/lib/typescript/classes/HMSRoomCache.d.ts +16 -0
  277. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -4
  278. package/lib/typescript/classes/HMSSDK.d.ts +3 -13
  279. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
  280. package/lib/typescript/classes/HMSSubscribeSettings.d.ts +0 -2
  281. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +1 -1
  282. package/lib/typescript/index.d.ts +1 -0
  283. package/package.json +5 -4
  284. package/react-native-hms.podspec +1 -1
  285. package/sdk-versions.json +3 -2
  286. package/src/classes/HMSAudioNode.ts +3 -1
  287. package/src/classes/HMSBrowserRecordingState.ts +4 -4
  288. package/src/classes/HMSChangeTrackStateRequest.ts +2 -2
  289. package/src/classes/HMSConstants.ts +3 -0
  290. package/src/classes/HMSEncoder.ts +162 -120
  291. package/src/classes/HMSHLSStreamingState.ts +2 -2
  292. package/src/classes/HMSLocalPeer.ts +0 -15
  293. package/src/classes/HMSLocalVideoTrack.ts +0 -2
  294. package/src/classes/HMSLogger.ts +20 -19
  295. package/src/classes/HMSMessageRecipient.ts +3 -3
  296. package/src/classes/HMSNativeEventEmitter.ts +109 -0
  297. package/src/classes/HMSPeer.ts +135 -32
  298. package/src/classes/HMSPeerUpdate.ts +9 -0
  299. package/src/classes/HMSPeersCache.ts +252 -0
  300. package/src/classes/HMSPublishSettings.ts +8 -18
  301. package/src/classes/HMSRemotePeer.ts +0 -16
  302. package/src/classes/HMSRole.ts +0 -9
  303. package/src/classes/HMSRoleChangeRequest.ts +5 -3
  304. package/src/classes/HMSRoom.ts +141 -37
  305. package/src/classes/HMSRoomCache.ts +157 -0
  306. package/src/classes/HMSRtmpStreamingState.ts +4 -4
  307. package/src/classes/HMSSDK.tsx +685 -292
  308. package/src/classes/HMSServerRecordingState.ts +2 -2
  309. package/src/classes/HMSSubscribeSettings.ts +1 -7
  310. package/src/classes/HMSUpdateListenerActions.ts +1 -1
  311. package/src/classes/HmsView.tsx +2 -1
  312. package/src/index.ts +1 -0
@@ -0,0 +1,109 @@
1
+ import { EventSubscription, NativeEventEmitter } from 'react-native';
2
+ import { logger } from './HMSLogger';
3
+
4
+ export type HMSEventSubscription = {
5
+ remove(): void;
6
+ };
7
+
8
+ export class HMSNativeEventEmitter {
9
+ private _nativeEventEmitter: NativeEventEmitter;
10
+ private _nativeModule: any;
11
+
12
+ constructor(nativeModule: any) {
13
+ this._nativeModule = nativeModule;
14
+ this._nativeEventEmitter = new NativeEventEmitter(nativeModule);
15
+ }
16
+
17
+ listenerCount(eventType: string): number {
18
+ // For RN version < v0.64, listenerCount method is not available
19
+ // @ts-ignore - typescript is giving error because we are running it with RN types version >= 0.64
20
+ if (typeof this._nativeEventEmitter.listeners === 'function') {
21
+ // @ts-ignore - typescript is giving error because we are running it with RN types version >= 0.64
22
+ const count = this._nativeEventEmitter.listeners(eventType).length;
23
+
24
+ logger?.verbose('#Function HMSNativeEventEmitter.listenerCount', {
25
+ eventType,
26
+ count,
27
+ });
28
+ return count;
29
+ }
30
+
31
+ // For RN version >= v0.64
32
+ const count = this._nativeEventEmitter.listenerCount(eventType);
33
+
34
+ logger?.verbose('#Function HMSNativeEventEmitter.listenerCount', {
35
+ eventType,
36
+ count,
37
+ });
38
+ return count;
39
+ }
40
+
41
+ addListener(
42
+ id: string,
43
+ eventType: string,
44
+ listener: (...args: any[]) => any
45
+ ): HMSEventSubscription {
46
+ logger?.verbose('#Function HMSNativeEventEmitter.addListener', {
47
+ id,
48
+ eventType,
49
+ listener,
50
+ });
51
+
52
+ // enable `eventType` on `HMSSDK`, if no listeners were added before
53
+ // if some listeners were added before, then `eventType` on `HMSSDK` should already be enabled
54
+ if (this.listenerCount(eventType) <= 0) {
55
+ this.enableHMSEventType(id, eventType);
56
+ }
57
+
58
+ let subscription: EventSubscription | null =
59
+ this._nativeEventEmitter.addListener(eventType, listener);
60
+
61
+ return {
62
+ remove: () => {
63
+ if (
64
+ subscription &&
65
+ Object.getOwnPropertyNames(subscription).includes('remove') &&
66
+ typeof subscription.remove === 'function'
67
+ ) {
68
+ subscription.remove();
69
+ subscription = null;
70
+ } else {
71
+ this._nativeEventEmitter.removeListener(eventType, listener);
72
+ }
73
+
74
+ // disable `eventType` on `HMSSDK`, if all listeners has been removed
75
+ if (this.listenerCount(eventType) <= 0) {
76
+ this.disableHMSEventType(id, eventType);
77
+ }
78
+ },
79
+ };
80
+ }
81
+
82
+ removeAllListeners(id: string, eventType: string) {
83
+ logger?.verbose('#Function HMSNativeEventEmitter.removeAllListeners', {
84
+ id,
85
+ eventType,
86
+ });
87
+
88
+ // disable `eventType` on `HMSSDK`
89
+ this.disableHMSEventType(id, eventType);
90
+
91
+ return this._nativeEventEmitter.removeAllListeners(eventType);
92
+ }
93
+
94
+ private enableHMSEventType(id: string, eventType: string) {
95
+ logger?.verbose('#Function HMSNativeEventEmitter.enableHMSEventType', {
96
+ id,
97
+ eventType,
98
+ });
99
+ this._nativeModule.enableEvent({ id, eventType });
100
+ }
101
+
102
+ private disableHMSEventType(id: string, eventType: string) {
103
+ logger?.verbose('#Function HMSNativeEventEmitter.disableHMSEventType', {
104
+ id,
105
+ eventType,
106
+ });
107
+ this._nativeModule.disableEvent({ id, eventType });
108
+ }
109
+ }
@@ -3,43 +3,146 @@ import type { HMSNetworkQuality } from './HMSNetworkQuality';
3
3
  import type { HMSRole } from './HMSRole';
4
4
  import type { HMSTrack } from './HMSTrack';
5
5
  import type { HMSVideoTrack } from './HMSVideoTrack';
6
+ import { getHmsPeersCache, getPeerPropertyFromNative } from './HMSPeersCache';
7
+ import { HMSConstants } from './HMSConstants';
6
8
 
7
9
  export class HMSPeer {
8
10
  peerID: string;
9
- name: string;
10
- isLocal?: boolean;
11
- customerUserID?: string;
11
+ /**
12
+ * @deprecated customerDescription has been deprecated in favor of metadata
13
+ */
12
14
  customerDescription?: string;
13
- metadata?: string;
14
- role?: HMSRole;
15
- networkQuality?: HMSNetworkQuality;
16
- audioTrack?: HMSAudioTrack;
17
- videoTrack?: HMSVideoTrack;
18
- auxiliaryTracks?: HMSTrack[];
19
-
20
- constructor(params: {
21
- peerID: string;
22
- name: string;
23
- isLocal?: boolean;
24
- customerUserID?: string;
25
- customerDescription?: string;
26
- metadata?: string;
27
- role?: HMSRole;
28
- networkQuality?: HMSNetworkQuality;
29
- audioTrack?: HMSAudioTrack;
30
- videoTrack?: HMSVideoTrack;
31
- auxiliaryTracks?: HMSTrack[];
32
- }) {
15
+
16
+ constructor(params: { peerID: string; customerDescription?: string }) {
33
17
  this.peerID = params.peerID;
34
- this.name = params.name;
35
- this.isLocal = params.isLocal;
36
- this.customerUserID = params.customerUserID;
37
18
  this.customerDescription = params.customerDescription;
38
- this.audioTrack = params.audioTrack;
39
- this.videoTrack = params.videoTrack;
40
- this.auxiliaryTracks = params.auxiliaryTracks;
41
- this.role = params.role;
42
- this.networkQuality = params.networkQuality;
43
- this.metadata = params.metadata;
19
+ }
20
+
21
+ get name(): string {
22
+ const hmsPeersCache = getHmsPeersCache();
23
+
24
+ if (hmsPeersCache) {
25
+ return hmsPeersCache.getProperty(this.peerID, 'name') || '';
26
+ }
27
+
28
+ return (
29
+ getPeerPropertyFromNative(
30
+ HMSConstants.DEFAULT_SDK_ID,
31
+ this.peerID,
32
+ 'name'
33
+ ) || ''
34
+ );
35
+ }
36
+
37
+ get isLocal(): boolean | undefined {
38
+ const hmsPeersCache = getHmsPeersCache();
39
+
40
+ if (hmsPeersCache) {
41
+ return hmsPeersCache.getProperty(this.peerID, 'isLocal');
42
+ }
43
+
44
+ return getPeerPropertyFromNative(
45
+ HMSConstants.DEFAULT_SDK_ID,
46
+ this.peerID,
47
+ 'isLocal'
48
+ );
49
+ }
50
+
51
+ get networkQuality(): HMSNetworkQuality | undefined {
52
+ const hmsPeersCache = getHmsPeersCache();
53
+
54
+ if (hmsPeersCache) {
55
+ return hmsPeersCache.getProperty(this.peerID, 'networkQuality');
56
+ }
57
+
58
+ return getPeerPropertyFromNative(
59
+ HMSConstants.DEFAULT_SDK_ID,
60
+ this.peerID,
61
+ 'networkQuality'
62
+ );
63
+ }
64
+
65
+ get customerUserID(): string | undefined {
66
+ const hmsPeersCache = getHmsPeersCache();
67
+
68
+ if (hmsPeersCache) {
69
+ return hmsPeersCache.getProperty(this.peerID, 'customerUserID');
70
+ }
71
+
72
+ return getPeerPropertyFromNative(
73
+ HMSConstants.DEFAULT_SDK_ID,
74
+ this.peerID,
75
+ 'customerUserID'
76
+ );
77
+ }
78
+
79
+ get metadata(): string | undefined {
80
+ const hmsPeersCache = getHmsPeersCache();
81
+
82
+ if (hmsPeersCache) {
83
+ return hmsPeersCache.getProperty(this.peerID, 'metadata');
84
+ }
85
+
86
+ return getPeerPropertyFromNative(
87
+ HMSConstants.DEFAULT_SDK_ID,
88
+ this.peerID,
89
+ 'metadata'
90
+ );
91
+ }
92
+
93
+ get role(): HMSRole | undefined {
94
+ const hmsPeersCache = getHmsPeersCache();
95
+
96
+ if (hmsPeersCache) {
97
+ return hmsPeersCache.getProperty(this.peerID, 'role');
98
+ }
99
+
100
+ return getPeerPropertyFromNative(
101
+ HMSConstants.DEFAULT_SDK_ID,
102
+ this.peerID,
103
+ 'role'
104
+ );
105
+ }
106
+
107
+ get audioTrack(): HMSAudioTrack | undefined {
108
+ const hmsPeersCache = getHmsPeersCache();
109
+
110
+ if (hmsPeersCache) {
111
+ return hmsPeersCache.getProperty(this.peerID, 'audioTrack');
112
+ }
113
+
114
+ return getPeerPropertyFromNative(
115
+ HMSConstants.DEFAULT_SDK_ID,
116
+ this.peerID,
117
+ 'audioTrack'
118
+ );
119
+ }
120
+
121
+ get videoTrack(): HMSVideoTrack | undefined {
122
+ const hmsPeersCache = getHmsPeersCache();
123
+
124
+ if (hmsPeersCache) {
125
+ return hmsPeersCache.getProperty(this.peerID, 'videoTrack');
126
+ }
127
+
128
+ return getPeerPropertyFromNative(
129
+ HMSConstants.DEFAULT_SDK_ID,
130
+ this.peerID,
131
+ 'videoTrack'
132
+ );
133
+ }
134
+
135
+ get auxiliaryTracks(): HMSTrack[] | undefined {
136
+ const hmsPeersCache = getHmsPeersCache();
137
+
138
+ if (hmsPeersCache) {
139
+ return hmsPeersCache.getProperty(this.peerID, 'auxiliaryTracks');
140
+ }
141
+
142
+ return getPeerPropertyFromNative(
143
+ HMSConstants.DEFAULT_SDK_ID,
144
+ this.peerID,
145
+ 'auxiliaryTracks'
146
+ );
44
147
  }
45
148
  }
@@ -6,3 +6,12 @@ export enum HMSPeerUpdate {
6
6
  NAME_CHANGED = 'NAME_CHANGED',
7
7
  NETWORK_QUALITY_UPDATED = 'NETWORK_QUALITY_UPDATED',
8
8
  }
9
+
10
+ export const HMSPeerUpdateOrdinals = new Map([
11
+ ['0', HMSPeerUpdate.PEER_JOINED],
12
+ ['1', HMSPeerUpdate.PEER_LEFT],
13
+ ['9', HMSPeerUpdate.ROLE_CHANGED],
14
+ ['10', HMSPeerUpdate.NAME_CHANGED],
15
+ ['11', HMSPeerUpdate.METADATA_CHANGED],
16
+ ['12', HMSPeerUpdate.NETWORK_QUALITY_UPDATED],
17
+ ]);
@@ -0,0 +1,252 @@
1
+ import { NativeModules } from 'react-native';
2
+ import type { HMSPeer } from './HMSPeer';
3
+ import { HMSEncoder } from './HMSEncoder';
4
+ import { HMSPeerUpdate } from './HMSPeerUpdate';
5
+ import { HMSTrackUpdate } from './HMSTrackUpdate';
6
+ import type { HMSTrack } from './HMSTrack';
7
+ import { HMSTrackType } from './HMSTrackType';
8
+ import { HMSTrackSource } from './HMSTrackSource';
9
+
10
+ const { HMSManager } = NativeModules;
11
+
12
+ export let hmsPeersCache: HMSPeersCache | undefined;
13
+
14
+ export const getHmsPeersCache = () => {
15
+ return hmsPeersCache;
16
+ };
17
+
18
+ export const setHmsPeersCache = (_hmsPeersCache: HMSPeersCache) => {
19
+ hmsPeersCache = _hmsPeersCache;
20
+ };
21
+
22
+ export const clearHmsPeersCache = () => {
23
+ if (hmsPeersCache) {
24
+ hmsPeersCache.cleanup();
25
+ }
26
+ hmsPeersCache = undefined;
27
+ };
28
+
29
+ export type HMSPeerCacheProps = Partial<
30
+ Omit<HMSPeer, 'peerID' | 'customerDescription'>
31
+ >;
32
+
33
+ export class HMSPeersCache {
34
+ private _data = new Map<string, HMSPeerCacheProps>();
35
+ private id: string;
36
+
37
+ constructor(id: string) {
38
+ this.id = id;
39
+ }
40
+
41
+ getProperty<T extends keyof HMSPeerCacheProps>(
42
+ peerId: string,
43
+ property: T
44
+ ): HMSPeerCacheProps[T] | undefined {
45
+ const peerObj = this._data.get(peerId);
46
+
47
+ if (peerObj && property in peerObj) {
48
+ return peerObj[property];
49
+ }
50
+
51
+ const encodedValue = getPeerPropertyFromNative(this.id, peerId, property);
52
+
53
+ if (!peerObj) {
54
+ this._data.set(peerId, { [property]: encodedValue });
55
+ } else {
56
+ peerObj[property] = encodedValue;
57
+ }
58
+
59
+ return encodedValue;
60
+ }
61
+
62
+ updatePeerCache(
63
+ peerId: string,
64
+ data: Partial<Record<keyof HMSPeerCacheProps | 'track', any>>,
65
+ updateType?: HMSPeerUpdate | HMSTrackUpdate
66
+ ) {
67
+ const peerObj = this._data.get(peerId);
68
+
69
+ if (updateType === HMSPeerUpdate.PEER_LEFT) {
70
+ this._data.delete(peerId);
71
+ return;
72
+ }
73
+
74
+ let updatedObj = { ...peerObj };
75
+
76
+ switch (updateType) {
77
+ case HMSTrackUpdate.TRACK_ADDED: {
78
+ const track = data.track as HMSTrack;
79
+
80
+ if (track.source === HMSTrackSource.REGULAR) {
81
+ if (track.type === HMSTrackType.VIDEO) {
82
+ updatedObj.videoTrack = { ...track, isDegraded: false };
83
+ } else if (track.type === HMSTrackType.AUDIO) {
84
+ updatedObj.audioTrack = track;
85
+ }
86
+ } else {
87
+ if (Array.isArray(updatedObj.auxiliaryTracks)) {
88
+ updatedObj.auxiliaryTracks.push(track);
89
+ } else {
90
+ updatedObj.auxiliaryTracks = [track];
91
+ }
92
+ }
93
+ break;
94
+ }
95
+ case HMSTrackUpdate.TRACK_REMOVED: {
96
+ const track = data.track as HMSTrack;
97
+
98
+ if (track.source === HMSTrackSource.REGULAR) {
99
+ if (track.type === HMSTrackType.VIDEO) {
100
+ updatedObj.videoTrack = undefined;
101
+ } else if (track.type === HMSTrackType.AUDIO) {
102
+ updatedObj.audioTrack = undefined;
103
+ }
104
+ } else if (Array.isArray(updatedObj.auxiliaryTracks)) {
105
+ updatedObj = {
106
+ ...updatedObj,
107
+ auxiliaryTracks: updatedObj.auxiliaryTracks.filter(
108
+ (auxiliaryTrack) => auxiliaryTrack.trackId !== track.trackId
109
+ ),
110
+ };
111
+ }
112
+ break;
113
+ }
114
+ case HMSTrackUpdate.TRACK_MUTED:
115
+ case HMSTrackUpdate.TRACK_UNMUTED: {
116
+ const track = data.track as HMSTrack;
117
+
118
+ if (track.source === HMSTrackSource.REGULAR) {
119
+ if (track.type === HMSTrackType.VIDEO) {
120
+ updatedObj.videoTrack = {
121
+ ...track,
122
+ isDegraded: updatedObj.videoTrack?.isDegraded || false,
123
+ };
124
+ } else if (track.type === HMSTrackType.AUDIO) {
125
+ updatedObj.audioTrack = track;
126
+ }
127
+ } else {
128
+ if (Array.isArray(updatedObj.auxiliaryTracks)) {
129
+ updatedObj = {
130
+ ...updatedObj,
131
+ auxiliaryTracks: updatedObj.auxiliaryTracks.map(
132
+ (auxiliaryTrack) =>
133
+ auxiliaryTrack.trackId === track.trackId
134
+ ? track
135
+ : auxiliaryTrack
136
+ ),
137
+ };
138
+ } else {
139
+ updatedObj.auxiliaryTracks = [track];
140
+ }
141
+ }
142
+ break;
143
+ }
144
+ case HMSTrackUpdate.TRACK_DEGRADED:
145
+ case HMSTrackUpdate.TRACK_RESTORED: {
146
+ const track = data.track as HMSTrack;
147
+
148
+ if (track.source === HMSTrackSource.REGULAR) {
149
+ if (track.type === HMSTrackType.VIDEO) {
150
+ updatedObj.videoTrack = {
151
+ ...track,
152
+ isDegraded: updateType === HMSTrackUpdate.TRACK_DEGRADED,
153
+ };
154
+ } else if (track.type === HMSTrackType.AUDIO) {
155
+ updatedObj.audioTrack = track;
156
+ }
157
+ } else {
158
+ if (Array.isArray(updatedObj.auxiliaryTracks)) {
159
+ updatedObj = {
160
+ ...updatedObj,
161
+ auxiliaryTracks: updatedObj.auxiliaryTracks.map(
162
+ (auxiliaryTrack) => {
163
+ if (auxiliaryTrack.trackId === track.trackId) {
164
+ return {
165
+ ...auxiliaryTrack,
166
+ isDegraded: updateType === HMSTrackUpdate.TRACK_DEGRADED,
167
+ };
168
+ }
169
+
170
+ return auxiliaryTrack;
171
+ }
172
+ ),
173
+ };
174
+ } else {
175
+ updatedObj.auxiliaryTracks = [track];
176
+ }
177
+ }
178
+ break;
179
+ }
180
+ case HMSPeerUpdate.ROLE_CHANGED: {
181
+ updatedObj.role = HMSEncoder.encodeHmsRole(data.role);
182
+ break;
183
+ }
184
+ case HMSPeerUpdate.NETWORK_QUALITY_UPDATED: {
185
+ updatedObj.networkQuality = HMSEncoder.encodeHMSNetworkQuality(
186
+ data.networkQuality
187
+ );
188
+ break;
189
+ }
190
+ case HMSPeerUpdate.METADATA_CHANGED:
191
+ case HMSPeerUpdate.NAME_CHANGED:
192
+ case HMSPeerUpdate.PEER_JOINED:
193
+ case HMSPeerUpdate.ROLE_CHANGED: {
194
+ updatedObj = { ...updatedObj, ...data };
195
+ break;
196
+ }
197
+ default: {
198
+ updatedObj = { ...updatedObj, ...data };
199
+ break;
200
+ }
201
+ }
202
+
203
+ if (Object.keys(updatedObj).length > 0) {
204
+ this._data.set(peerId, updatedObj);
205
+ }
206
+ }
207
+
208
+ cleanup() {
209
+ this._data.clear();
210
+ }
211
+ }
212
+
213
+ export function getPeerPropertyFromNative<T extends keyof HMSPeerCacheProps>(
214
+ id: string,
215
+ peerId: string,
216
+ property: T
217
+ ): HMSPeerCacheProps[T] {
218
+ const data: any = HMSManager.getPeerProperty({
219
+ id,
220
+ peerId,
221
+ property,
222
+ });
223
+
224
+ let value;
225
+
226
+ if (property === 'role') {
227
+ value = data ? HMSEncoder.encodeHmsRole(data.role) : undefined;
228
+ } else if (property === 'networkQuality') {
229
+ value = data
230
+ ? HMSEncoder.encodeHMSNetworkQuality(data.networkQuality)
231
+ : undefined;
232
+ } else if (property === 'audioTrack') {
233
+ value = data
234
+ ? HMSEncoder.encodeHmsAudioTrack(data.audioTrack, id)
235
+ : undefined;
236
+ } else if (property === 'videoTrack') {
237
+ value = data
238
+ ? HMSEncoder.encodeHmsVideoTrack(data.videoTrack, id)
239
+ : undefined;
240
+ } else if (property === 'auxiliaryTracks') {
241
+ value =
242
+ data && Array.isArray(data.auxiliaryTracks)
243
+ ? HMSEncoder.encodeHmsAuxiliaryTracks(data.auxiliaryTracks, id)
244
+ : undefined;
245
+ } else if (property === 'name') {
246
+ value = data?.[property] || '';
247
+ } else {
248
+ value = data ? data[property] : undefined;
249
+ }
250
+
251
+ return value;
252
+ }
@@ -1,31 +1,21 @@
1
1
  import type { HMSAudioSettings } from './HMSAudioSettings';
2
- import type { HMSSimulcastSettings } from './HMSSimulcastSettings';
3
2
  import type { HMSVideoSettings } from './HMSVideoSettings';
4
3
 
5
4
  export class HMSPublishSettings {
6
- audio: HMSAudioSettings;
7
- video: HMSVideoSettings;
8
- screen: HMSVideoSettings;
9
- audioSimulcast?: HMSSimulcastSettings;
10
- videoSimulcast?: HMSSimulcastSettings;
11
- screenSimulcast?: HMSSimulcastSettings;
12
- allowed?: [string];
5
+ audio?: HMSAudioSettings;
6
+ video?: HMSVideoSettings;
7
+ screen?: HMSVideoSettings;
8
+ allowed?: string[];
13
9
 
14
10
  constructor(params: {
15
- audio: HMSAudioSettings;
16
- video: HMSVideoSettings;
17
- screen: HMSVideoSettings;
18
- audioSimulcast?: HMSSimulcastSettings;
19
- videoSimulcast?: HMSSimulcastSettings;
20
- screenSimulcast?: HMSSimulcastSettings;
21
- allowed?: [string];
11
+ audio?: HMSAudioSettings;
12
+ video?: HMSVideoSettings;
13
+ screen?: HMSVideoSettings;
14
+ allowed?: string[];
22
15
  }) {
23
16
  this.audio = params.audio;
24
17
  this.video = params.video;
25
18
  this.screen = params.screen;
26
- this.audioSimulcast = params.audioSimulcast;
27
- this.videoSimulcast = params.videoSimulcast;
28
- this.screenSimulcast = params.screenSimulcast;
29
19
  this.allowed = params.allowed;
30
20
  }
31
21
  }
@@ -1,11 +1,6 @@
1
- import type { HMSAudioTrack } from './HMSAudioTrack';
2
- import type { HMSNetworkQuality } from './HMSNetworkQuality';
3
1
  import { HMSPeer } from './HMSPeer';
4
2
  import { HMSRemoteAudioTrack } from './HMSRemoteAudioTrack';
5
3
  import { HMSRemoteVideoTrack } from './HMSRemoteVideoTrack';
6
- import type { HMSRole } from './HMSRole';
7
- import type { HMSTrack } from './HMSTrack';
8
- import type { HMSVideoTrack } from './HMSVideoTrack';
9
4
 
10
5
  export class HMSRemotePeer extends HMSPeer {
11
6
  private remoteAudio?: HMSRemoteAudioTrack;
@@ -21,16 +16,7 @@ export class HMSRemotePeer extends HMSPeer {
21
16
 
22
17
  constructor(params: {
23
18
  peerID: string;
24
- name: string;
25
- isLocal?: boolean;
26
- customerUserID?: string;
27
19
  customerDescription?: string;
28
- metadata?: string;
29
- audioTrack?: HMSAudioTrack;
30
- videoTrack?: HMSVideoTrack;
31
- role?: HMSRole;
32
- networkQuality?: HMSNetworkQuality;
33
- auxiliaryTracks?: HMSTrack[];
34
20
  remoteAudioTrackData?: {
35
21
  trackId: string;
36
22
  source?: number | string;
@@ -50,8 +36,6 @@ export class HMSRemotePeer extends HMSPeer {
50
36
  };
51
37
  }) {
52
38
  super(params);
53
- this.isLocal = false;
54
-
55
39
  if (params.remoteAudioTrackData) {
56
40
  this.remoteAudio = new HMSRemoteAudioTrack(params.remoteAudioTrackData);
57
41
  }
@@ -8,9 +8,6 @@ export class HMSRole {
8
8
  subscribeSettings?: HMSSubscribeSettings;
9
9
  permissions?: HMSPermissions;
10
10
  priority?: number;
11
- generalPermissions?: any;
12
- internalPlugins?: any;
13
- externalPlugins?: any;
14
11
 
15
12
  constructor(params?: {
16
13
  name?: string;
@@ -18,9 +15,6 @@ export class HMSRole {
18
15
  permissions?: HMSPermissions;
19
16
  publishSettings?: HMSPublishSettings;
20
17
  subscribeSettings?: HMSSubscribeSettings;
21
- generalPermissions?: any;
22
- internalPlugins?: any;
23
- externalPlugins?: any;
24
18
  }) {
25
19
  if (params) {
26
20
  this.name = params.name;
@@ -28,9 +22,6 @@ export class HMSRole {
28
22
  this.permissions = params.permissions;
29
23
  this.publishSettings = params.publishSettings;
30
24
  this.subscribeSettings = params.subscribeSettings;
31
- this.generalPermissions = params.generalPermissions;
32
- this.internalPlugins = params.internalPlugins;
33
- this.externalPlugins = params.externalPlugins;
34
25
  }
35
26
  }
36
27
  }
@@ -2,11 +2,13 @@ import type { HMSRole } from './HMSRole';
2
2
  import type { HMSPeer } from './HMSPeer';
3
3
 
4
4
  export class HMSRoleChangeRequest {
5
- requestedBy: HMSPeer;
5
+ requestedBy?: HMSPeer;
6
6
  suggestedRole: HMSRole;
7
7
 
8
- constructor(params: { requestedBy: HMSPeer; suggestedRole: HMSRole }) {
9
- this.requestedBy = params.requestedBy;
8
+ constructor(params: { requestedBy?: HMSPeer; suggestedRole: HMSRole }) {
9
+ if (params.requestedBy) {
10
+ this.requestedBy = params.requestedBy;
11
+ }
10
12
  this.suggestedRole = params.suggestedRole;
11
13
  }
12
14
  }