@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
@@ -1,3 +1,5 @@
1
+ import { NativeModules } from 'react-native';
2
+
1
3
  import { HMSTrack } from './HMSTrack';
2
4
  import { HMSAudioTrack } from './HMSAudioTrack';
3
5
  import { HMSVideoTrack } from './HMSVideoTrack';
@@ -28,8 +30,22 @@ import { HMSServerRecordingState } from './HMSServerRecordingState';
28
30
  import { HMSMessage } from './HMSMessage';
29
31
  import { HMSMessageRecipient } from './HMSMessageRecipient';
30
32
  import { HMSException } from './HMSException';
33
+ import { HMSConstants } from './HMSConstants';
34
+ import { HMSPeerUpdateOrdinals } from './HMSPeerUpdate';
35
+
36
+ const { HMSManager } = NativeModules;
37
+
38
+ interface InitialData {
39
+ roles: Record<string, HMSRole>;
40
+ }
31
41
 
32
42
  export class HMSEncoder {
43
+ private static data: InitialData = { roles: {} };
44
+
45
+ static clearData() {
46
+ this.data = { roles: {} };
47
+ }
48
+
33
49
  static encodeHmsRoom(room: HMSRoom, id: string) {
34
50
  const encodedObj = {
35
51
  id: room?.id,
@@ -37,7 +53,7 @@ export class HMSEncoder {
37
53
  metaData: room?.metaData,
38
54
  name: room?.name,
39
55
  peerCount: room?.peerCount,
40
- peers: HMSEncoder.encodeHmsPeers(room?.peers, id),
56
+ peers: HMSEncoder.encodeHmsPeers(room?.peers),
41
57
  browserRecordingState: HMSEncoder.encodeBrowserRecordingState(
42
58
  room?.browserRecordingState
43
59
  ),
@@ -59,36 +75,28 @@ export class HMSEncoder {
59
75
  return new HMSRoom(encodedObj);
60
76
  }
61
77
 
62
- static encodeHmsPeers(peers: any, id: string) {
78
+ static encodeHmsPeers(peers: any) {
63
79
  const encodedPeers: HMSPeer[] = [];
64
80
  peers?.map((peer: any) => {
65
- encodedPeers.push(HMSEncoder.encodeHmsPeer(peer, id));
81
+ encodedPeers.push(HMSEncoder.encodeHmsPeer(peer));
66
82
  });
67
83
 
68
84
  return encodedPeers;
69
85
  }
70
86
 
71
- static encodeHmsPeer(peer: any, id: string) {
87
+ static encodeHmsPeer(peer: any) {
72
88
  const encodedObj = {
73
89
  peerID: peer?.peerID,
74
- name: peer?.name,
75
- isLocal: peer?.isLocal,
76
- customerUserID: peer?.customerUserID,
77
- customerDescription: peer?.customerDescription,
78
- metadata: peer?.metadata,
79
- role: HMSEncoder.encodeHmsRole(peer?.role),
80
- networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer?.networkQuality),
81
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer?.audioTrack, id),
82
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer?.videoTrack, id),
83
- auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(
84
- peer?.auxiliaryTracks,
85
- id
86
- ),
90
+ customerDescription: peer?.customerDescription || undefined,
87
91
  };
88
92
 
89
93
  return new HMSPeer(encodedObj);
90
94
  }
91
95
 
96
+ static encodeHmsPeerUpdate(hmsPeerUpdateOrdinal: string) {
97
+ return HMSPeerUpdateOrdinals.get(hmsPeerUpdateOrdinal);
98
+ }
99
+
92
100
  static encodeHmsAudioTrack(track: any, id: string) {
93
101
  const encodedObj = {
94
102
  trackId: track?.trackId,
@@ -139,42 +147,38 @@ export class HMSEncoder {
139
147
 
140
148
  static encodeHmsLocalPeer(peer: any, id: string) {
141
149
  const encodedObj = {
142
- peerID: peer.peerID,
143
- name: peer.name,
144
- isLocal: peer.isLocal,
145
- customerUserID: peer.customerUserID,
146
- customerDescription: peer.customerDescription,
147
- metadata: peer.metadata,
148
- role: HMSEncoder.encodeHmsRole(peer?.role),
149
- networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer?.networkQuality),
150
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
151
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
152
- auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(
153
- peer.auxiliaryTracks,
154
- id
155
- ),
156
- localAudioTrackData: {
157
- id: id,
158
- trackId: peer?.localAudioTrackData?.trackId,
159
- source: peer?.localAudioTrackData?.source,
160
- trackDescription: peer?.localAudioTrackData?.trackDescription,
161
- isMute: peer?.localAudioTrackData?.isMute,
162
- settings: HMSEncoder.encodeHmsAudioTrackSettings(
163
- peer?.localAudioTrackData?.settings
164
- ),
165
- type: peer?.localAudioTrackData?.type,
166
- },
167
- localVideoTrackData: {
168
- id: id,
169
- trackId: peer?.localVideoTrackData?.trackId,
170
- source: peer?.localVideoTrackData?.source,
171
- trackDescription: peer?.localVideoTrackData?.trackDescription,
172
- isMute: peer?.localVideoTrackData?.isMute,
173
- settings: HMSEncoder.encodeHmsVideoTrackSettings(
174
- peer?.localVideoTrackData?.settings
175
- ),
176
- type: peer?.localVideoTrackData?.type,
177
- },
150
+ peerID: peer?.peerID,
151
+ customerDescription: peer?.customerDescription || undefined,
152
+ localAudioTrackData: peer?.localAudioTrackData?.trackId
153
+ ? {
154
+ id: id,
155
+ trackId: peer?.localAudioTrackData?.trackId,
156
+ source: peer?.localAudioTrackData?.source,
157
+ trackDescription: peer?.localAudioTrackData?.trackDescription,
158
+ isMute: peer?.localAudioTrackData?.isMute,
159
+ settings: peer?.localAudioTrackData?.settings
160
+ ? HMSEncoder.encodeHmsAudioTrackSettings(
161
+ peer?.localAudioTrackData?.settings
162
+ )
163
+ : undefined,
164
+ type: peer?.localAudioTrackData?.type,
165
+ }
166
+ : undefined,
167
+ localVideoTrackData: peer?.localVideoTrackData?.trackId
168
+ ? {
169
+ id: id,
170
+ trackId: peer?.localVideoTrackData?.trackId,
171
+ source: peer?.localVideoTrackData?.source,
172
+ trackDescription: peer?.localVideoTrackData?.trackDescription,
173
+ isMute: peer?.localVideoTrackData?.isMute,
174
+ settings: peer?.localVideoTrackData?.settings
175
+ ? HMSEncoder.encodeHmsVideoTrackSettings(
176
+ peer?.localVideoTrackData?.settings
177
+ )
178
+ : undefined,
179
+ type: peer?.localVideoTrackData?.type,
180
+ }
181
+ : undefined,
178
182
  };
179
183
 
180
184
  return new HMSLocalPeer(encodedObj);
@@ -217,7 +221,9 @@ export class HMSEncoder {
217
221
  source: track?.source,
218
222
  trackDescription: track?.trackDescription,
219
223
  isMute: track?.isMute,
220
- settings: HMSEncoder.encodeHmsAudioTrackSettings(track?.settings),
224
+ settings: track?.settings
225
+ ? HMSEncoder.encodeHmsAudioTrackSettings(track?.settings)
226
+ : undefined,
221
227
  type: track?.type,
222
228
  };
223
229
 
@@ -231,7 +237,9 @@ export class HMSEncoder {
231
237
  source: track?.source,
232
238
  trackDescription: track?.trackDescription,
233
239
  isMute: track?.isMute,
234
- settings: HMSEncoder.encodeHmsVideoTrackSettings(track?.settings),
240
+ settings: track?.settings
241
+ ? HMSEncoder.encodeHmsVideoTrackSettings(track?.settings)
242
+ : undefined,
235
243
  type: track?.type,
236
244
  };
237
245
 
@@ -252,37 +260,29 @@ export class HMSEncoder {
252
260
 
253
261
  static encodeHmsRemotePeer(peer: any, id: string) {
254
262
  const encodedObj = {
255
- peerID: peer.peerID,
256
- name: peer.name,
257
- isLocal: peer.isLocal,
258
- customerUserID: peer.customerUserID,
263
+ peerID: peer?.peerID,
259
264
  customerDescription: peer.customerDescription,
260
- metadata: peer.metadata,
261
- role: HMSEncoder.encodeHmsRole(peer?.role),
262
- networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer?.networkQuality),
263
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
264
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
265
- auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(
266
- peer.auxiliaryTracks,
267
- id
268
- ),
269
- remoteAudioTrackData: {
270
- id: id,
271
- trackId: peer?.remoteAudioTrackData?.trackId,
272
- source: peer?.remoteAudioTrackData?.source,
273
- trackDescription: peer?.remoteAudioTrackData?.trackDescription,
274
- isMute: peer?.remoteAudioTrackData?.isMute,
275
- playbackAllowed: peer?.remoteAudioTrackData?.playbackAllowed,
276
- },
277
- remoteVideoTrackData: {
278
- id: id,
279
- trackId: peer?.remoteVideoTrackData?.trackId,
280
- source: peer?.remoteVideoTrackData?.source,
281
- trackDescription: peer?.remoteVideoTrackData?.trackDescription,
282
- layer: peer?.remoteVideoTrackData?.layer,
283
- isMute: peer?.remoteVideoTrackData?.isMute,
284
- playbackAllowed: peer?.remoteVideoTrackData?.playbackAllowed,
285
- },
265
+ remoteAudioTrackData: peer?.remoteAudioTrackData?.trackId
266
+ ? {
267
+ id: id,
268
+ trackId: peer?.remoteAudioTrackData?.trackId,
269
+ source: peer?.remoteAudioTrackData?.source,
270
+ trackDescription: peer?.remoteAudioTrackData?.trackDescription,
271
+ isMute: peer?.remoteAudioTrackData?.isMute,
272
+ playbackAllowed: peer?.remoteAudioTrackData?.playbackAllowed,
273
+ }
274
+ : undefined,
275
+ remoteVideoTrackData: peer?.remoteVideoTrackData?.trackId
276
+ ? {
277
+ id: id,
278
+ trackId: peer?.remoteVideoTrackData?.trackId,
279
+ source: peer?.remoteVideoTrackData?.source,
280
+ trackDescription: peer?.remoteVideoTrackData?.trackDescription,
281
+ layer: peer?.remoteVideoTrackData?.layer,
282
+ isMute: peer?.remoteVideoTrackData?.isMute,
283
+ playbackAllowed: peer?.remoteVideoTrackData?.playbackAllowed,
284
+ }
285
+ : undefined,
286
286
  };
287
287
 
288
288
  return new HMSRemotePeer(encodedObj);
@@ -332,26 +332,51 @@ export class HMSEncoder {
332
332
  }
333
333
 
334
334
  static encodeHmsRole(role: any) {
335
- const hmsRole = new HMSRole(role);
335
+ if (!role) {
336
+ return new HMSRole(role);
337
+ }
338
+
339
+ const rolesCache = this.data.roles;
340
+
341
+ const cachedRole = rolesCache[role.name];
342
+
343
+ // create new HMSRole instance, if cached role does not exist OR `role.publishSettings?.allowed` does not exist
344
+ if (!cachedRole || !cachedRole.publishSettings?.allowed) {
345
+ // Creating HMSRole object with data
346
+ const hmsRole = new HMSRole(role);
347
+
348
+ // saving the created HMSRole object into cache
349
+ rolesCache[role.name] = hmsRole;
350
+
351
+ // If the created HMSRole object is complete,
352
+ // sending notification to Native Side to stop sending data for this role
353
+ if (hmsRole.publishSettings?.allowed) {
354
+ HMSManager.restrictData({
355
+ id: HMSConstants.DEFAULT_SDK_ID,
356
+ roleName: hmsRole.name,
357
+ });
358
+ }
359
+ }
336
360
 
337
- return hmsRole;
361
+ return rolesCache[role.name];
338
362
  }
339
363
 
340
- static encodeHmsRoleChangeRequest(data: any, id: string) {
364
+ static encodeHmsRoleChangeRequest(data: any) {
341
365
  const encodedRoleChangeRequest = {
342
- requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy, id),
366
+ requestedBy: data.requestedBy
367
+ ? HMSEncoder.encodeHmsPeer(data.requestedBy)
368
+ : undefined,
343
369
  suggestedRole: HMSEncoder.encodeHmsRole(data.suggestedRole),
344
370
  };
345
371
 
346
372
  return new HMSRoleChangeRequest(encodedRoleChangeRequest);
347
373
  }
348
374
 
349
- static encodeHmsChangeTrackStateRequest(
350
- data: HMSChangeTrackStateRequest,
351
- id: string
352
- ) {
375
+ static encodeHmsChangeTrackStateRequest(data: HMSChangeTrackStateRequest) {
353
376
  const encodedChangeTrackStateRequest = {
354
- requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy, id),
377
+ requestedBy: data?.requestedBy
378
+ ? HMSEncoder.encodeHmsPeer(data?.requestedBy)
379
+ : undefined,
355
380
  trackType: data.trackType,
356
381
  mute: data.mute,
357
382
  };
@@ -392,51 +417,64 @@ export class HMSEncoder {
392
417
  static encodeHmsSpeaker(data: any, id: string) {
393
418
  return new HMSSpeaker({
394
419
  level: data?.level,
395
- peer: HMSEncoder.encodeHmsPeer(data?.peer, id),
420
+ peer: HMSEncoder.encodeHmsPeer(data?.peer),
396
421
  track: HMSEncoder.encodeHmsTrack(data?.track, id),
397
422
  });
398
423
  }
399
424
 
400
425
  static encodeBrowserRecordingState(data: any) {
401
426
  return new HMSBrowserRecordingState({
402
- running: data?.running,
403
- startedAt: new Date(parseInt(data?.startedAt)),
404
- stoppedAt: new Date(parseInt(data?.stoppedAt)),
405
- error: data?.error,
427
+ running: data?.running || false,
428
+ startedAt: HMSEncoder.encodeDate(data?.startedAt),
429
+ stoppedAt: HMSEncoder.encodeDate(data?.stoppedAt),
430
+ error: data?.error || undefined,
406
431
  });
407
432
  }
408
433
 
409
434
  static encodeServerRecordingState(data: any) {
410
435
  return new HMSServerRecordingState({
411
- running: data?.running,
412
- error: data?.error,
413
- startedAt: new Date(parseInt(data?.startedAt)),
436
+ running: data?.running || false,
437
+ error: data?.error || undefined,
438
+ startedAt: HMSEncoder.encodeDate(data?.startedAt),
414
439
  });
415
440
  }
416
441
 
417
442
  static encodeRTMPStreamingState(data: any) {
418
443
  return new HMSRtmpStreamingState({
419
- running: data?.running,
420
- startedAt: new Date(parseInt(data?.startedAt)),
421
- stoppedAt: new Date(parseInt(data?.stoppedAt)),
422
- error: data?.error,
444
+ running: data?.running || false,
445
+ startedAt: HMSEncoder.encodeDate(data?.startedAt),
446
+ stoppedAt: HMSEncoder.encodeDate(data?.stoppedAt),
447
+ error: data?.error || undefined,
423
448
  });
424
449
  }
425
450
 
451
+ static encodeDate(dateData: any) {
452
+ if (!dateData) {
453
+ return undefined;
454
+ }
455
+ const dateNum = parseInt(dateData);
456
+ if (isNaN(dateNum)) {
457
+ return undefined;
458
+ }
459
+ return new Date(dateNum);
460
+ }
461
+
426
462
  static encodeHLSStreamingState(data: any) {
427
463
  return new HMSHLSStreamingState({
428
- running: data?.running,
429
- variants: this.encodeHLSVariants(data?.variants),
464
+ running: data?.running || false,
465
+ variants: Array.isArray(data?.variants)
466
+ ? this.encodeHLSVariants(data?.variants)
467
+ : undefined,
430
468
  });
431
469
  }
432
470
 
433
471
  static encodeHLSRecordingState(data: any) {
434
472
  if (data) {
435
473
  return new HMSHLSRecordingState({
436
- running: data?.running,
437
- startedAt: new Date(parseInt(data?.startedAt)),
438
- singleFilePerLayer: data?.singleFilePerLayer,
439
- videoOnDemand: data?.videoOnDemand,
474
+ running: data?.running || false,
475
+ startedAt: HMSEncoder.encodeDate(data?.startedAt),
476
+ singleFilePerLayer: data?.singleFilePerLayer || false,
477
+ videoOnDemand: data?.videoOnDemand || false,
440
478
  });
441
479
  } else {
442
480
  return undefined;
@@ -450,8 +488,8 @@ export class HMSEncoder {
450
488
  let variant = new HMSHLSVariant({
451
489
  hlsStreamUrl: item.hlsStreamUrl,
452
490
  meetingUrl: item.meetingUrl,
453
- metadata: item?.metadata,
454
- startedAt: new Date(parseInt(item?.startedAt)),
491
+ metadata: item?.metaData ? item?.metadata : undefined,
492
+ startedAt: HMSEncoder.encodeDate(item?.startedAt),
455
493
  });
456
494
  variants.push(variant);
457
495
  });
@@ -469,25 +507,29 @@ export class HMSEncoder {
469
507
  }
470
508
  }
471
509
 
472
- static encodeHMSMessage(data: any, id: string) {
510
+ static encodeHMSMessage(data: any) {
473
511
  if (data) {
474
512
  return new HMSMessage({
475
513
  message: data?.message,
476
514
  type: data?.type,
477
515
  time: new Date(parseInt(data?.time)),
478
- sender: this.encodeHmsPeer(data?.sender, id),
479
- recipient: this.encodeHMSMessageRecipient(data?.recipient, id),
516
+ sender: this.encodeHmsPeer(data?.sender),
517
+ recipient: this.encodeHMSMessageRecipient(data?.recipient),
480
518
  });
481
519
  } else {
482
520
  return undefined;
483
521
  }
484
522
  }
485
523
 
486
- static encodeHMSMessageRecipient(data: any, id: string) {
524
+ static encodeHMSMessageRecipient(data: any) {
487
525
  return new HMSMessageRecipient({
488
526
  recipientType: data?.recipientType,
489
- recipientPeer: this.encodeHmsPeer(data?.recipientPeer, id),
490
- recipientRoles: this.encodeHmsRoles(data?.recipientRoles),
527
+ recipientPeer: data?.recipientPeer
528
+ ? this.encodeHmsPeer(data.recipientPeer)
529
+ : undefined,
530
+ recipientRoles: Array.isArray(data?.recipientRoles)
531
+ ? this.encodeHmsRoles(data.recipientRoles)
532
+ : [],
491
533
  });
492
534
  }
493
535
 
@@ -2,9 +2,9 @@ import type { HMSHLSVariant } from './HMSHLSVariant';
2
2
 
3
3
  export class HMSHLSStreamingState {
4
4
  running: boolean;
5
- variants: Array<HMSHLSVariant>;
5
+ variants?: Array<HMSHLSVariant>;
6
6
 
7
- constructor(params: { running: boolean; variants: Array<HMSHLSVariant> }) {
7
+ constructor(params: { running: boolean; variants?: Array<HMSHLSVariant> }) {
8
8
  this.running = params.running;
9
9
  this.variants = params.variants;
10
10
  }
@@ -1,14 +1,9 @@
1
- import type { HMSAudioTrack } from './HMSAudioTrack';
2
1
  import { HMSPeer } from './HMSPeer';
3
- import type { HMSTrack } from './HMSTrack';
4
- import type { HMSVideoTrack } from './HMSVideoTrack';
5
2
  import type { HMSVideoTrackSettings } from './HMSVideoTrackSettings';
6
3
  import type { HMSAudioTrackSettings } from './HMSAudioTrackSettings';
7
4
  import { HMSLocalAudioTrack } from './HMSLocalAudioTrack';
8
5
  import { HMSLocalVideoTrack } from './HMSLocalVideoTrack';
9
- import type { HMSRole } from './HMSRole';
10
6
  import type { HMSTrackType } from './HMSTrackType';
11
- import type { HMSNetworkQuality } from './HMSNetworkQuality';
12
7
 
13
8
  export class HMSLocalPeer extends HMSPeer {
14
9
  private localAudio?: HMSLocalAudioTrack;
@@ -23,16 +18,7 @@ export class HMSLocalPeer extends HMSPeer {
23
18
 
24
19
  constructor(params: {
25
20
  peerID: string;
26
- name: string;
27
- isLocal?: boolean;
28
- customerUserID?: string;
29
21
  customerDescription?: string;
30
- metadata?: string;
31
- audioTrack?: HMSAudioTrack;
32
- videoTrack?: HMSVideoTrack;
33
- networkQuality?: HMSNetworkQuality;
34
- role?: HMSRole;
35
- auxiliaryTracks?: HMSTrack[];
36
22
  localAudioTrackData?: {
37
23
  id: string;
38
24
  trackId: string;
@@ -53,7 +39,6 @@ export class HMSLocalPeer extends HMSPeer {
53
39
  };
54
40
  }) {
55
41
  super(params);
56
- this.isLocal = true;
57
42
  if (params.localAudioTrackData) {
58
43
  this.localAudio = new HMSLocalAudioTrack(params.localAudioTrackData);
59
44
  }
@@ -13,8 +13,6 @@ const {
13
13
 
14
14
  export class HMSLocalVideoTrack extends HMSVideoTrack {
15
15
  settings?: HMSVideoTrackSettings;
16
- startCapturing?: Function;
17
- stopCapturing?: Function;
18
16
  id: string;
19
17
 
20
18
  /**
@@ -15,12 +15,6 @@ export class HMSLogger {
15
15
  private _verbose: boolean = false;
16
16
  private _warning: boolean = false;
17
17
  private _error: boolean = false;
18
- private logs: {
19
- type: 'verbose' | 'warn' | 'error';
20
- message: string;
21
- data: any;
22
- id: string;
23
- }[] = [];
24
18
  private onLog?: Function;
25
19
 
26
20
  constructor(params?: { verbose: boolean; warning: boolean; error: boolean }) {
@@ -33,38 +27,34 @@ export class HMSLogger {
33
27
 
34
28
  verbose(message: string, data: any) {
35
29
  if (this._verbose) {
36
- console.log(message, data);
30
+ const timestamp = this.getTimestamp();
31
+ console.log(timestamp, message, data);
37
32
  if (this.onLog) {
38
- this?.onLog({ message, data });
33
+ this?.onLog({ timestamp, message, data });
39
34
  }
40
- this.logs.push({ type: 'verbose', message, data, id: data?.id });
41
35
  }
42
36
  }
43
37
 
44
38
  warn(message: string, data: any) {
45
39
  if (this._warning) {
46
- console.warn(message, data);
40
+ const timestamp = this.getTimestamp();
41
+ console.warn(timestamp, message, data);
47
42
  if (this.onLog) {
48
- this?.onLog({ message, data });
43
+ this?.onLog({ timestamp, message, data });
49
44
  }
50
- this.logs.push({ type: 'warn', message, data, id: data?.id });
51
45
  }
52
46
  }
53
47
 
54
48
  error(message: string, data: any) {
55
49
  if (this._error) {
56
- console.error(message, data);
50
+ const timestamp = this.getTimestamp();
51
+ console.error(timestamp, message, data);
57
52
  if (this.onLog) {
58
- this?.onLog({ message, data });
53
+ this?.onLog({ timestamp, message, data });
59
54
  }
60
- this.logs.push({ type: 'error', message, data, id: data?.id });
61
55
  }
62
56
  }
63
57
 
64
- getLogs() {
65
- return this.logs;
66
- }
67
-
68
58
  setLogListener(callback: Function) {
69
59
  this.onLog = callback;
70
60
  }
@@ -88,4 +78,15 @@ export class HMSLogger {
88
78
  }
89
79
  }
90
80
  }
81
+
82
+ getTimestamp(): string {
83
+ const d = new Date();
84
+
85
+ const hh = d.getHours().toString().padStart(2, '0');
86
+ const mm = d.getMinutes().toString().padStart(2, '0');
87
+ const ss = d.getSeconds().toString().padStart(2, '0');
88
+ const millis = d.getMilliseconds().toString().padStart(3, '0');
89
+
90
+ return `${hh}:${mm}:${ss}:${millis}`;
91
+ }
91
92
  }
@@ -3,9 +3,9 @@ import type { HMSPeer } from './HMSPeer';
3
3
  import type { HMSRole } from './HMSRole';
4
4
 
5
5
  export class HMSMessageRecipient {
6
- public recipientType?: HMSMessageRecipientType;
6
+ public recipientType: HMSMessageRecipientType;
7
7
  public recipientPeer?: HMSPeer;
8
- public recipientRoles?: HMSRole[];
8
+ public recipientRoles: HMSRole[];
9
9
 
10
10
  constructor(params: {
11
11
  recipientType: HMSMessageRecipientType;
@@ -14,6 +14,6 @@ export class HMSMessageRecipient {
14
14
  }) {
15
15
  this.recipientType = params.recipientType;
16
16
  this.recipientPeer = params.recipientPeer;
17
- this.recipientRoles = params.recipientRoles;
17
+ this.recipientRoles = params.recipientRoles || [];
18
18
  }
19
19
  }