@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
@@ -5,46 +5,150 @@ import type { HMSBrowserRecordingState } from './HMSBrowserRecordingState';
5
5
  import type { HMSHLSStreamingState } from './HMSHLSStreamingState';
6
6
  import type { HMSHLSRecordingState } from './HMSHLSRecordingState';
7
7
  import type { HMSLocalPeer } from './HMSLocalPeer';
8
+ import { getHmsRoomCache, getHMSRoomPropertyFromNative } from './HMSRoomCache';
9
+ import { HMSConstants } from './HMSConstants';
8
10
 
9
11
  export class HMSRoom {
10
12
  id: string;
11
- sessionId: string;
12
- name: string;
13
- metaData?: string;
14
- peers: HMSPeer[];
15
- browserRecordingState: HMSBrowserRecordingState;
16
- rtmpHMSRtmpStreamingState: HMSRtmpStreamingState;
17
- serverRecordingState: HMSServerRecordingState;
18
- hlsStreamingState: HMSHLSStreamingState;
19
- hlsRecordingState?: HMSHLSRecordingState;
20
- peerCount: number;
21
- localPeer: HMSLocalPeer;
22
-
23
- constructor(params: {
24
- id: string;
25
- sessionId: string;
26
- name: string;
27
- metaData?: string;
28
- peers: HMSPeer[];
29
- browserRecordingState: HMSBrowserRecordingState;
30
- rtmpHMSRtmpStreamingState: HMSRtmpStreamingState;
31
- serverRecordingState: HMSServerRecordingState;
32
- hlsStreamingState: HMSHLSStreamingState;
33
- hlsRecordingState?: HMSHLSRecordingState;
34
- peerCount: number;
35
- localPeer: HMSLocalPeer;
36
- }) {
13
+
14
+ constructor(params: { id: string }) {
37
15
  this.id = params.id;
38
- this.sessionId = params.sessionId;
39
- this.name = params.name;
40
- this.metaData = params.metaData;
41
- this.peers = params.peers;
42
- this.browserRecordingState = params.browserRecordingState;
43
- this.rtmpHMSRtmpStreamingState = params.rtmpHMSRtmpStreamingState;
44
- this.serverRecordingState = params.serverRecordingState;
45
- this.hlsStreamingState = params.hlsStreamingState;
46
- this.hlsRecordingState = params.hlsRecordingState;
47
- this.peerCount = params.peerCount;
48
- this.localPeer = params.localPeer;
16
+ }
17
+
18
+ get sessionId(): string {
19
+ const hmsRoomCache = getHmsRoomCache();
20
+
21
+ if (hmsRoomCache) {
22
+ return hmsRoomCache.getProperty('sessionId');
23
+ }
24
+
25
+ return getHMSRoomPropertyFromNative(
26
+ HMSConstants.DEFAULT_SDK_ID,
27
+ 'sessionId'
28
+ );
29
+ }
30
+
31
+ get name(): string {
32
+ const hmsRoomCache = getHmsRoomCache();
33
+
34
+ if (hmsRoomCache) {
35
+ return hmsRoomCache.getProperty('name');
36
+ }
37
+
38
+ return getHMSRoomPropertyFromNative(HMSConstants.DEFAULT_SDK_ID, 'name');
39
+ }
40
+
41
+ get metaData(): string | undefined {
42
+ const hmsRoomCache = getHmsRoomCache();
43
+
44
+ if (hmsRoomCache) {
45
+ return hmsRoomCache.getProperty('metaData');
46
+ }
47
+
48
+ return getHMSRoomPropertyFromNative(
49
+ HMSConstants.DEFAULT_SDK_ID,
50
+ 'metaData'
51
+ );
52
+ }
53
+
54
+ get peers(): HMSPeer[] {
55
+ const hmsRoomCache = getHmsRoomCache();
56
+
57
+ if (hmsRoomCache) {
58
+ return hmsRoomCache.getProperty('peers');
59
+ }
60
+
61
+ return getHMSRoomPropertyFromNative(HMSConstants.DEFAULT_SDK_ID, 'peers');
62
+ }
63
+
64
+ get browserRecordingState(): HMSBrowserRecordingState {
65
+ const hmsRoomCache = getHmsRoomCache();
66
+
67
+ if (hmsRoomCache) {
68
+ return hmsRoomCache.getProperty('browserRecordingState');
69
+ }
70
+
71
+ return getHMSRoomPropertyFromNative(
72
+ HMSConstants.DEFAULT_SDK_ID,
73
+ 'browserRecordingState'
74
+ );
75
+ }
76
+
77
+ get rtmpHMSRtmpStreamingState(): HMSRtmpStreamingState {
78
+ const hmsRoomCache = getHmsRoomCache();
79
+
80
+ if (hmsRoomCache) {
81
+ return hmsRoomCache.getProperty('rtmpHMSRtmpStreamingState');
82
+ }
83
+
84
+ return getHMSRoomPropertyFromNative(
85
+ HMSConstants.DEFAULT_SDK_ID,
86
+ 'rtmpHMSRtmpStreamingState'
87
+ );
88
+ }
89
+
90
+ get serverRecordingState(): HMSServerRecordingState {
91
+ const hmsRoomCache = getHmsRoomCache();
92
+
93
+ if (hmsRoomCache) {
94
+ return hmsRoomCache.getProperty('serverRecordingState');
95
+ }
96
+
97
+ return getHMSRoomPropertyFromNative(
98
+ HMSConstants.DEFAULT_SDK_ID,
99
+ 'serverRecordingState'
100
+ );
101
+ }
102
+
103
+ get hlsStreamingState(): HMSHLSStreamingState {
104
+ const hmsRoomCache = getHmsRoomCache();
105
+
106
+ if (hmsRoomCache) {
107
+ return hmsRoomCache.getProperty('hlsStreamingState');
108
+ }
109
+
110
+ return getHMSRoomPropertyFromNative(
111
+ HMSConstants.DEFAULT_SDK_ID,
112
+ 'hlsStreamingState'
113
+ );
114
+ }
115
+
116
+ get hlsRecordingState(): HMSHLSRecordingState | undefined {
117
+ const hmsRoomCache = getHmsRoomCache();
118
+
119
+ if (hmsRoomCache) {
120
+ return hmsRoomCache.getProperty('hlsRecordingState');
121
+ }
122
+
123
+ return getHMSRoomPropertyFromNative(
124
+ HMSConstants.DEFAULT_SDK_ID,
125
+ 'hlsRecordingState'
126
+ );
127
+ }
128
+
129
+ get peerCount(): number {
130
+ const hmsRoomCache = getHmsRoomCache();
131
+
132
+ if (hmsRoomCache) {
133
+ return hmsRoomCache.getProperty('peerCount');
134
+ }
135
+
136
+ return getHMSRoomPropertyFromNative(
137
+ HMSConstants.DEFAULT_SDK_ID,
138
+ 'peerCount'
139
+ );
140
+ }
141
+
142
+ get localPeer(): HMSLocalPeer {
143
+ const hmsRoomCache = getHmsRoomCache();
144
+
145
+ if (hmsRoomCache) {
146
+ return hmsRoomCache.getProperty('localPeer');
147
+ }
148
+
149
+ return getHMSRoomPropertyFromNative(
150
+ HMSConstants.DEFAULT_SDK_ID,
151
+ 'localPeer'
152
+ );
49
153
  }
50
154
  }
@@ -0,0 +1,157 @@
1
+ import { NativeModules } from 'react-native';
2
+ import type { HMSRoom } from './HMSRoom';
3
+ import { HMSEncoder } from './HMSEncoder';
4
+ import { HMSRoomUpdate } from './HMSRoomUpdate';
5
+
6
+ const { HMSManager } = NativeModules;
7
+
8
+ export let hmsRoomCache: HMSRoomCache | undefined;
9
+
10
+ export const getHmsRoomCache = () => hmsRoomCache;
11
+
12
+ export const setHmsRoomCache = (_hmsRoomCache: HMSRoomCache) => {
13
+ hmsRoomCache = _hmsRoomCache;
14
+ };
15
+
16
+ export const clearHmsRoomCache = () => {
17
+ if (hmsRoomCache) {
18
+ hmsRoomCache.cleanup();
19
+ }
20
+ hmsRoomCache = undefined;
21
+ };
22
+
23
+ export type HMSRoomCacheProps = Partial<Omit<HMSRoom, 'id'>>;
24
+
25
+ export class HMSRoomCache {
26
+ private _data = new Map<
27
+ keyof HMSRoomCacheProps,
28
+ HMSRoomCacheProps[keyof HMSRoomCacheProps]
29
+ >();
30
+ private id: string;
31
+
32
+ constructor(id: string) {
33
+ this.id = id;
34
+ }
35
+
36
+ getProperty<T extends keyof Required<HMSRoomCacheProps>>(
37
+ property: T
38
+ ): Required<HMSRoomCacheProps>[T] {
39
+ const value: any = this._data.get(property);
40
+
41
+ if (value) {
42
+ return value;
43
+ }
44
+
45
+ const encodedValue = getHMSRoomPropertyFromNative(this.id, property);
46
+
47
+ this._data.set(property, encodedValue);
48
+
49
+ return encodedValue;
50
+ }
51
+
52
+ updateRoomCache(
53
+ data: Record<keyof HMSRoomCacheProps, any>,
54
+ updateType?: HMSRoomUpdate
55
+ ) {
56
+ switch (updateType) {
57
+ case HMSRoomUpdate.ROOM_MUTED:
58
+ case HMSRoomUpdate.ROOM_UNMUTED: {
59
+ break;
60
+ }
61
+ case HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED: {
62
+ this._data.set(
63
+ 'serverRecordingState',
64
+ HMSEncoder.encodeServerRecordingState(data.serverRecordingState)
65
+ );
66
+ break;
67
+ }
68
+ case HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED: {
69
+ this._data.set(
70
+ 'rtmpHMSRtmpStreamingState',
71
+ HMSEncoder.encodeRTMPStreamingState(data.rtmpHMSRtmpStreamingState)
72
+ );
73
+ break;
74
+ }
75
+ case HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED: {
76
+ this._data.set(
77
+ 'browserRecordingState',
78
+ HMSEncoder.encodeBrowserRecordingState(data.browserRecordingState)
79
+ );
80
+ break;
81
+ }
82
+ case HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED: {
83
+ this._data.set(
84
+ 'hlsStreamingState',
85
+ HMSEncoder.encodeHLSStreamingState(data.hlsStreamingState)
86
+ );
87
+ break;
88
+ }
89
+ case HMSRoomUpdate.HLS_RECORDING_STATE_UPDATED: {
90
+ this._data.set(
91
+ 'hlsRecordingState',
92
+ HMSEncoder.encodeHLSRecordingState(data.hlsRecordingState)
93
+ );
94
+ break;
95
+ }
96
+ default: {
97
+ for (const key in data) {
98
+ const property = key as keyof HMSRoomCacheProps;
99
+
100
+ if (Object.prototype.hasOwnProperty.call(data, property)) {
101
+ const value = encodeHMSRoomProperty(this.id, property, data);
102
+ this._data.set(property, value);
103
+ }
104
+ }
105
+ break;
106
+ }
107
+ }
108
+ }
109
+
110
+ cleanup() {
111
+ this._data.clear();
112
+ }
113
+ }
114
+
115
+ export function getHMSRoomPropertyFromNative<T extends keyof HMSRoomCacheProps>(
116
+ id: string,
117
+ property: T
118
+ ): Required<HMSRoomCacheProps>[T] {
119
+ const data: any = HMSManager.getRoomProperty({
120
+ id,
121
+ property,
122
+ });
123
+
124
+ if (!data) return data;
125
+
126
+ const value = encodeHMSRoomProperty(id, property, data);
127
+
128
+ return value;
129
+ }
130
+
131
+ function encodeHMSRoomProperty<T extends keyof HMSRoomCacheProps>(
132
+ id: string,
133
+ property: T,
134
+ data: Record<string, any>
135
+ ): Required<HMSRoomCacheProps>[T] {
136
+ let value;
137
+
138
+ if (property === 'peers') {
139
+ value = HMSEncoder.encodeHmsPeers(data.peers);
140
+ } else if (property === 'browserRecordingState') {
141
+ value = HMSEncoder.encodeBrowserRecordingState(data.browserRecordingState);
142
+ } else if (property === 'rtmpHMSRtmpStreamingState') {
143
+ value = HMSEncoder.encodeRTMPStreamingState(data.rtmpHMSRtmpStreamingState);
144
+ } else if (property === 'serverRecordingState') {
145
+ value = HMSEncoder.encodeServerRecordingState(data.serverRecordingState);
146
+ } else if (property === 'hlsStreamingState') {
147
+ value = HMSEncoder.encodeHLSStreamingState(data.hlsStreamingState);
148
+ } else if (property === 'hlsRecordingState') {
149
+ value = HMSEncoder.encodeHLSRecordingState(data.hlsRecordingState);
150
+ } else if (property === 'localPeer') {
151
+ value = HMSEncoder.encodeHmsLocalPeer(data.localPeer, id);
152
+ } else {
153
+ value = data[property];
154
+ }
155
+
156
+ return value;
157
+ }
@@ -3,14 +3,14 @@ import type { HMSException } from './HMSException';
3
3
  export class HMSRtmpStreamingState {
4
4
  running: boolean;
5
5
  error?: HMSException;
6
- startedAt: Date;
7
- stoppedAt: Date;
6
+ startedAt?: Date;
7
+ stoppedAt?: Date;
8
8
 
9
9
  constructor(params: {
10
10
  running: boolean;
11
11
  error?: HMSException;
12
- startedAt: Date;
13
- stoppedAt: Date;
12
+ startedAt?: Date;
13
+ stoppedAt?: Date;
14
14
  }) {
15
15
  this.running = params.running;
16
16
  this.error = params.error;