@100mslive/react-native-hms 1.2.0 → 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 (267) hide show
  1. package/README.md +2 -2
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +121 -53
  3. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +14 -0
  4. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +139 -31
  5. package/ios/HMSDecoder.swift +113 -50
  6. package/ios/HMSManager.m +4 -0
  7. package/ios/HMSManager.swift +15 -1
  8. package/ios/HMSRNSDK.swift +119 -26
  9. package/ios/HMSView.swift +1 -1
  10. package/lib/commonjs/classes/HMSAudioCodec.js +4 -4
  11. package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
  12. package/lib/commonjs/classes/HMSAudioDevice.js +4 -4
  13. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  14. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
  15. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  16. package/lib/commonjs/classes/HMSAudioMixingMode.js +4 -4
  17. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  18. package/lib/commonjs/classes/HMSAudioMode.js +4 -4
  19. package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
  20. package/lib/commonjs/classes/HMSAudioNode.js +2 -1
  21. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  22. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  23. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  24. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  25. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  26. package/lib/commonjs/classes/HMSCameraFacing.js +4 -4
  27. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  28. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  29. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  30. package/lib/commonjs/classes/HMSConstants.js +11 -0
  31. package/lib/commonjs/classes/HMSConstants.js.map +1 -0
  32. package/lib/commonjs/classes/HMSEncoder.js +21 -43
  33. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  34. package/lib/commonjs/classes/HMSException.js.map +1 -1
  35. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  36. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  37. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  38. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  39. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  40. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  41. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  42. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  43. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  44. package/lib/commonjs/classes/HMSLocalPeer.js +0 -1
  45. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  46. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  47. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLogAlarmManager.js +4 -4
  49. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
  50. package/lib/commonjs/classes/HMSLogLevel.js +4 -4
  51. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  52. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLogger.js +17 -25
  54. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  55. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  56. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  57. package/lib/commonjs/classes/HMSMessageRecipientType.js +4 -4
  58. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
  59. package/lib/commonjs/classes/HMSMessageType.js +4 -4
  60. package/lib/commonjs/classes/HMSMessageType.js.map +1 -1
  61. package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
  62. package/lib/commonjs/classes/HMSNativeEventEmitter.js +0 -5
  63. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
  64. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  65. package/lib/commonjs/classes/HMSPIPListenerActions.js +4 -4
  66. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
  67. package/lib/commonjs/classes/HMSPeer.js +66 -19
  68. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  69. package/lib/commonjs/classes/HMSPeerUpdate.js +7 -5
  70. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  71. package/lib/commonjs/classes/HMSPeersCache.js +229 -0
  72. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -0
  73. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  74. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  75. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  76. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  77. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  78. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  79. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  80. package/lib/commonjs/classes/HMSRemotePeer.js +0 -1
  81. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  82. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  83. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  84. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  85. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRoom.js +79 -22
  87. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRoomCache.js +128 -0
  89. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -0
  90. package/lib/commonjs/classes/HMSRoomUpdate.js +4 -4
  91. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  92. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  93. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  94. package/lib/commonjs/classes/HMSSDK.js +468 -21
  95. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  96. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  97. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  98. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  99. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  100. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  101. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  102. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  103. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  104. package/lib/commonjs/classes/HMSTrackSettingsInitState.js +4 -4
  105. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
  106. package/lib/commonjs/classes/HMSTrackSource.js +4 -4
  107. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  108. package/lib/commonjs/classes/HMSTrackType.js +4 -4
  109. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  110. package/lib/commonjs/classes/HMSTrackUpdate.js +4 -4
  111. package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
  112. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -5
  113. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  114. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  115. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  116. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  117. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  118. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  119. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  120. package/lib/commonjs/classes/HMSVideoViewMode.js +4 -4
  121. package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
  122. package/lib/commonjs/classes/HmsView.js +2 -1
  123. package/lib/commonjs/classes/HmsView.js.map +1 -1
  124. package/lib/commonjs/index.js.map +1 -1
  125. package/lib/module/classes/HMSAudioCodec.js +3 -3
  126. package/lib/module/classes/HMSAudioCodec.js.map +1 -1
  127. package/lib/module/classes/HMSAudioDevice.js +3 -3
  128. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  129. package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
  130. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  131. package/lib/module/classes/HMSAudioMixingMode.js +3 -3
  132. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  133. package/lib/module/classes/HMSAudioMode.js +3 -3
  134. package/lib/module/classes/HMSAudioMode.js.map +1 -1
  135. package/lib/module/classes/HMSAudioNode.js +2 -1
  136. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  137. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  138. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  139. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  140. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  141. package/lib/module/classes/HMSCameraFacing.js +3 -3
  142. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  143. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  144. package/lib/module/classes/HMSConfig.js.map +1 -1
  145. package/lib/module/classes/HMSConstants.js +4 -0
  146. package/lib/module/classes/HMSConstants.js.map +1 -0
  147. package/lib/module/classes/HMSEncoder.js +21 -43
  148. package/lib/module/classes/HMSEncoder.js.map +1 -1
  149. package/lib/module/classes/HMSException.js.map +1 -1
  150. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  151. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  152. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  153. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  154. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  155. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  156. package/lib/module/classes/HMSHelper.js.map +1 -1
  157. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  158. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  159. package/lib/module/classes/HMSLocalPeer.js +0 -1
  160. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  161. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  162. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  163. package/lib/module/classes/HMSLogAlarmManager.js +3 -3
  164. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
  165. package/lib/module/classes/HMSLogLevel.js +3 -3
  166. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  167. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  168. package/lib/module/classes/HMSLogger.js +17 -25
  169. package/lib/module/classes/HMSLogger.js.map +1 -1
  170. package/lib/module/classes/HMSMessage.js.map +1 -1
  171. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  172. package/lib/module/classes/HMSMessageRecipientType.js +3 -3
  173. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
  174. package/lib/module/classes/HMSMessageType.js +3 -3
  175. package/lib/module/classes/HMSMessageType.js.map +1 -1
  176. package/lib/module/classes/HMSMicNode.js.map +1 -1
  177. package/lib/module/classes/HMSNativeEventEmitter.js +1 -6
  178. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -1
  179. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  180. package/lib/module/classes/HMSPIPListenerActions.js +3 -3
  181. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
  182. package/lib/module/classes/HMSPeer.js +66 -19
  183. package/lib/module/classes/HMSPeer.js.map +1 -1
  184. package/lib/module/classes/HMSPeerUpdate.js +4 -3
  185. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  186. package/lib/module/classes/HMSPeersCache.js +216 -0
  187. package/lib/module/classes/HMSPeersCache.js.map +1 -0
  188. package/lib/module/classes/HMSPermissions.js.map +1 -1
  189. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  190. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  191. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  192. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  193. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  194. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  195. package/lib/module/classes/HMSRemotePeer.js +0 -1
  196. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  197. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  198. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  199. package/lib/module/classes/HMSRole.js.map +1 -1
  200. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  201. package/lib/module/classes/HMSRoom.js +79 -22
  202. package/lib/module/classes/HMSRoom.js.map +1 -1
  203. package/lib/module/classes/HMSRoomCache.js +115 -0
  204. package/lib/module/classes/HMSRoomCache.js.map +1 -0
  205. package/lib/module/classes/HMSRoomUpdate.js +3 -3
  206. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  207. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  208. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  209. package/lib/module/classes/HMSSDK.js +468 -21
  210. package/lib/module/classes/HMSSDK.js.map +1 -1
  211. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  212. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  213. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  214. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  215. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  216. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  217. package/lib/module/classes/HMSTrack.js.map +1 -1
  218. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  219. package/lib/module/classes/HMSTrackSettingsInitState.js +3 -3
  220. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
  221. package/lib/module/classes/HMSTrackSource.js +3 -3
  222. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  223. package/lib/module/classes/HMSTrackType.js +3 -3
  224. package/lib/module/classes/HMSTrackType.js.map +1 -1
  225. package/lib/module/classes/HMSTrackUpdate.js +3 -3
  226. package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
  227. package/lib/module/classes/HMSUpdateListenerActions.js +4 -4
  228. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  229. package/lib/module/classes/HMSVideoCodec.js +3 -3
  230. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  231. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  232. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  233. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  234. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  235. package/lib/module/classes/HMSVideoViewMode.js +3 -3
  236. package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
  237. package/lib/module/classes/HmsView.js +2 -1
  238. package/lib/module/classes/HmsView.js.map +1 -1
  239. package/lib/typescript/classes/HMSConstants.d.ts +3 -0
  240. package/lib/typescript/classes/HMSEncoder.d.ts +7 -6
  241. package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -14
  242. package/lib/typescript/classes/HMSLogger.d.ts +1 -7
  243. package/lib/typescript/classes/HMSPeer.d.ts +12 -18
  244. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  245. package/lib/typescript/classes/HMSPeersCache.d.ts +17 -0
  246. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -14
  247. package/lib/typescript/classes/HMSRoom.d.ts +11 -22
  248. package/lib/typescript/classes/HMSRoomCache.d.ts +16 -0
  249. package/lib/typescript/classes/HMSSDK.d.ts +1 -1
  250. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +1 -1
  251. package/package.json +1 -1
  252. package/sdk-versions.json +3 -3
  253. package/src/classes/HMSAudioNode.ts +3 -1
  254. package/src/classes/HMSConstants.ts +3 -0
  255. package/src/classes/HMSEncoder.ts +24 -69
  256. package/src/classes/HMSLocalPeer.ts +0 -15
  257. package/src/classes/HMSLogger.ts +20 -19
  258. package/src/classes/HMSNativeEventEmitter.ts +35 -12
  259. package/src/classes/HMSPeer.ts +133 -34
  260. package/src/classes/HMSPeerUpdate.ts +9 -0
  261. package/src/classes/HMSPeersCache.ts +252 -0
  262. package/src/classes/HMSRemotePeer.ts +0 -16
  263. package/src/classes/HMSRoom.ts +141 -37
  264. package/src/classes/HMSRoomCache.ts +157 -0
  265. package/src/classes/HMSSDK.tsx +57 -24
  266. package/src/classes/HMSUpdateListenerActions.ts +1 -1
  267. package/src/classes/HmsView.tsx +2 -1
@@ -30,6 +30,8 @@ import { HMSServerRecordingState } from './HMSServerRecordingState';
30
30
  import { HMSMessage } from './HMSMessage';
31
31
  import { HMSMessageRecipient } from './HMSMessageRecipient';
32
32
  import { HMSException } from './HMSException';
33
+ import { HMSConstants } from './HMSConstants';
34
+ import { HMSPeerUpdateOrdinals } from './HMSPeerUpdate';
33
35
 
34
36
  const { HMSManager } = NativeModules;
35
37
 
@@ -51,7 +53,7 @@ export class HMSEncoder {
51
53
  metaData: room?.metaData,
52
54
  name: room?.name,
53
55
  peerCount: room?.peerCount,
54
- peers: HMSEncoder.encodeHmsPeers(room?.peers, id),
56
+ peers: HMSEncoder.encodeHmsPeers(room?.peers),
55
57
  browserRecordingState: HMSEncoder.encodeBrowserRecordingState(
56
58
  room?.browserRecordingState
57
59
  ),
@@ -73,41 +75,28 @@ export class HMSEncoder {
73
75
  return new HMSRoom(encodedObj);
74
76
  }
75
77
 
76
- static encodeHmsPeers(peers: any, id: string) {
78
+ static encodeHmsPeers(peers: any) {
77
79
  const encodedPeers: HMSPeer[] = [];
78
80
  peers?.map((peer: any) => {
79
- encodedPeers.push(HMSEncoder.encodeHmsPeer(peer, id));
81
+ encodedPeers.push(HMSEncoder.encodeHmsPeer(peer));
80
82
  });
81
83
 
82
84
  return encodedPeers;
83
85
  }
84
86
 
85
- static encodeHmsPeer(peer: any, id: string) {
87
+ static encodeHmsPeer(peer: any) {
86
88
  const encodedObj = {
87
89
  peerID: peer?.peerID,
88
- name: peer?.name || '',
89
- isLocal: peer?.isLocal,
90
- customerUserID: peer?.customerUserID,
91
90
  customerDescription: peer?.customerDescription || undefined,
92
- metadata: peer?.metadata,
93
- role: HMSEncoder.encodeHmsRole(peer?.role),
94
- networkQuality: peer?.networkQuality
95
- ? HMSEncoder.encodeHMSNetworkQuality(peer?.networkQuality)
96
- : undefined,
97
- audioTrack: peer?.audioTrack
98
- ? HMSEncoder.encodeHmsAudioTrack(peer?.audioTrack, id)
99
- : undefined,
100
- videoTrack: peer?.videoTrack
101
- ? HMSEncoder.encodeHmsVideoTrack(peer?.videoTrack, id)
102
- : undefined,
103
- auxiliaryTracks: Array.isArray(peer?.auxiliaryTracks)
104
- ? HMSEncoder.encodeHmsAuxiliaryTracks(peer?.auxiliaryTracks, id)
105
- : undefined,
106
91
  };
107
92
 
108
93
  return new HMSPeer(encodedObj);
109
94
  }
110
95
 
96
+ static encodeHmsPeerUpdate(hmsPeerUpdateOrdinal: string) {
97
+ return HMSPeerUpdateOrdinals.get(hmsPeerUpdateOrdinal);
98
+ }
99
+
111
100
  static encodeHmsAudioTrack(track: any, id: string) {
112
101
  const encodedObj = {
113
102
  trackId: track?.trackId,
@@ -159,24 +148,7 @@ export class HMSEncoder {
159
148
  static encodeHmsLocalPeer(peer: any, id: string) {
160
149
  const encodedObj = {
161
150
  peerID: peer?.peerID,
162
- name: peer?.name,
163
- isLocal: true,
164
- customerUserID: peer?.customerUserID,
165
151
  customerDescription: peer?.customerDescription || undefined,
166
- metadata: peer?.metadata || undefined,
167
- role: HMSEncoder.encodeHmsRole(peer?.role),
168
- networkQuality: peer?.networkQuality
169
- ? HMSEncoder.encodeHMSNetworkQuality(peer?.networkQuality)
170
- : undefined,
171
- audioTrack: peer?.audioTrack
172
- ? HMSEncoder.encodeHmsAudioTrack(peer?.audioTrack, id)
173
- : undefined,
174
- videoTrack: peer?.videoTrack
175
- ? HMSEncoder.encodeHmsVideoTrack(peer?.videoTrack, id)
176
- : undefined,
177
- auxiliaryTracks: Array.isArray(peer?.auxiliaryTracks)
178
- ? HMSEncoder.encodeHmsAuxiliaryTracks(peer?.auxiliaryTracks, id)
179
- : undefined,
180
152
  localAudioTrackData: peer?.localAudioTrackData?.trackId
181
153
  ? {
182
154
  id: id,
@@ -289,24 +261,7 @@ export class HMSEncoder {
289
261
  static encodeHmsRemotePeer(peer: any, id: string) {
290
262
  const encodedObj = {
291
263
  peerID: peer?.peerID,
292
- name: peer?.name,
293
- isLocal: false,
294
- customerUserID: peer?.customerUserID,
295
264
  customerDescription: peer.customerDescription,
296
- metadata: peer.metadata,
297
- role: HMSEncoder.encodeHmsRole(peer?.role),
298
- networkQuality: peer?.networkQuality
299
- ? HMSEncoder.encodeHMSNetworkQuality(peer?.networkQuality)
300
- : undefined,
301
- audioTrack: peer?.audioTrack
302
- ? HMSEncoder.encodeHmsAudioTrack(peer?.audioTrack, id)
303
- : undefined,
304
- videoTrack: peer?.videoTrack
305
- ? HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id)
306
- : undefined,
307
- auxiliaryTracks: Array.isArray(peer?.auxiliaryTracks)
308
- ? HMSEncoder.encodeHmsAuxiliaryTracks(peer?.auxiliaryTracks, id)
309
- : undefined,
310
265
  remoteAudioTrackData: peer?.remoteAudioTrackData?.trackId
311
266
  ? {
312
267
  id: id,
@@ -396,17 +351,20 @@ export class HMSEncoder {
396
351
  // If the created HMSRole object is complete,
397
352
  // sending notification to Native Side to stop sending data for this role
398
353
  if (hmsRole.publishSettings?.allowed) {
399
- HMSManager.restrictData({ id: "12345", roleName: hmsRole.name });
354
+ HMSManager.restrictData({
355
+ id: HMSConstants.DEFAULT_SDK_ID,
356
+ roleName: hmsRole.name,
357
+ });
400
358
  }
401
359
  }
402
360
 
403
361
  return rolesCache[role.name];
404
362
  }
405
363
 
406
- static encodeHmsRoleChangeRequest(data: any, id: string) {
364
+ static encodeHmsRoleChangeRequest(data: any) {
407
365
  const encodedRoleChangeRequest = {
408
366
  requestedBy: data.requestedBy
409
- ? HMSEncoder.encodeHmsPeer(data.requestedBy, id)
367
+ ? HMSEncoder.encodeHmsPeer(data.requestedBy)
410
368
  : undefined,
411
369
  suggestedRole: HMSEncoder.encodeHmsRole(data.suggestedRole),
412
370
  };
@@ -414,13 +372,10 @@ export class HMSEncoder {
414
372
  return new HMSRoleChangeRequest(encodedRoleChangeRequest);
415
373
  }
416
374
 
417
- static encodeHmsChangeTrackStateRequest(
418
- data: HMSChangeTrackStateRequest,
419
- id: string
420
- ) {
375
+ static encodeHmsChangeTrackStateRequest(data: HMSChangeTrackStateRequest) {
421
376
  const encodedChangeTrackStateRequest = {
422
377
  requestedBy: data?.requestedBy
423
- ? HMSEncoder.encodeHmsPeer(data?.requestedBy, id)
378
+ ? HMSEncoder.encodeHmsPeer(data?.requestedBy)
424
379
  : undefined,
425
380
  trackType: data.trackType,
426
381
  mute: data.mute,
@@ -462,7 +417,7 @@ export class HMSEncoder {
462
417
  static encodeHmsSpeaker(data: any, id: string) {
463
418
  return new HMSSpeaker({
464
419
  level: data?.level,
465
- peer: HMSEncoder.encodeHmsPeer(data?.peer, id),
420
+ peer: HMSEncoder.encodeHmsPeer(data?.peer),
466
421
  track: HMSEncoder.encodeHmsTrack(data?.track, id),
467
422
  });
468
423
  }
@@ -552,25 +507,25 @@ export class HMSEncoder {
552
507
  }
553
508
  }
554
509
 
555
- static encodeHMSMessage(data: any, id: string) {
510
+ static encodeHMSMessage(data: any) {
556
511
  if (data) {
557
512
  return new HMSMessage({
558
513
  message: data?.message,
559
514
  type: data?.type,
560
515
  time: new Date(parseInt(data?.time)),
561
- sender: this.encodeHmsPeer(data?.sender, id),
562
- recipient: this.encodeHMSMessageRecipient(data?.recipient, id),
516
+ sender: this.encodeHmsPeer(data?.sender),
517
+ recipient: this.encodeHMSMessageRecipient(data?.recipient),
563
518
  });
564
519
  } else {
565
520
  return undefined;
566
521
  }
567
522
  }
568
523
 
569
- static encodeHMSMessageRecipient(data: any, id: string) {
524
+ static encodeHMSMessageRecipient(data: any) {
570
525
  return new HMSMessageRecipient({
571
526
  recipientType: data?.recipientType,
572
527
  recipientPeer: data?.recipientPeer
573
- ? this.encodeHmsPeer(data.recipientPeer, id)
528
+ ? this.encodeHmsPeer(data.recipientPeer)
574
529
  : undefined,
575
530
  recipientRoles: Array.isArray(data?.recipientRoles)
576
531
  ? this.encodeHmsRoles(data.recipientRoles)
@@ -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
  }
@@ -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
  }
@@ -1,4 +1,4 @@
1
- import { EventSubscription, NativeEventEmitter } from "react-native";
1
+ import { EventSubscription, NativeEventEmitter } from 'react-native';
2
2
  import { logger } from './HMSLogger';
3
3
 
4
4
  export type HMSEventSubscription = {
@@ -21,31 +21,45 @@ export class HMSNativeEventEmitter {
21
21
  // @ts-ignore - typescript is giving error because we are running it with RN types version >= 0.64
22
22
  const count = this._nativeEventEmitter.listeners(eventType).length;
23
23
 
24
- logger?.verbose('#Function HMSNativeEventEmitter.listenerCount', { eventType, count });
24
+ logger?.verbose('#Function HMSNativeEventEmitter.listenerCount', {
25
+ eventType,
26
+ count,
27
+ });
25
28
  return count;
26
29
  }
27
30
 
28
31
  // For RN version >= v0.64
29
32
  const count = this._nativeEventEmitter.listenerCount(eventType);
30
33
 
31
- logger?.verbose('#Function HMSNativeEventEmitter.listenerCount', { eventType, count });
34
+ logger?.verbose('#Function HMSNativeEventEmitter.listenerCount', {
35
+ eventType,
36
+ count,
37
+ });
32
38
  return count;
33
39
  }
34
40
 
35
- addListener(id: string, eventType: string, listener: (...args: any[]) => any): HMSEventSubscription {
36
- logger?.verbose('#Function HMSNativeEventEmitter.addListener', { id, eventType, listener });
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
+ });
37
51
 
38
52
  // enable `eventType` on `HMSSDK`, if no listeners were added before
39
53
  // if some listeners were added before, then `eventType` on `HMSSDK` should already be enabled
40
54
  if (this.listenerCount(eventType) <= 0) {
41
55
  this.enableHMSEventType(id, eventType);
42
56
  }
43
-
44
- let subscription: EventSubscription | null = this._nativeEventEmitter.addListener(eventType, listener);
57
+
58
+ let subscription: EventSubscription | null =
59
+ this._nativeEventEmitter.addListener(eventType, listener);
45
60
 
46
61
  return {
47
62
  remove: () => {
48
- console.log('#Function EventSubscription.remove', { id, eventType, listener });
49
63
  if (
50
64
  subscription &&
51
65
  Object.getOwnPropertyNames(subscription).includes('remove') &&
@@ -61,12 +75,15 @@ export class HMSNativeEventEmitter {
61
75
  if (this.listenerCount(eventType) <= 0) {
62
76
  this.disableHMSEventType(id, eventType);
63
77
  }
64
- }
78
+ },
65
79
  };
66
80
  }
67
81
 
68
82
  removeAllListeners(id: string, eventType: string) {
69
- logger?.verbose('#Function HMSNativeEventEmitter.removeAllListeners', { id, eventType });
83
+ logger?.verbose('#Function HMSNativeEventEmitter.removeAllListeners', {
84
+ id,
85
+ eventType,
86
+ });
70
87
 
71
88
  // disable `eventType` on `HMSSDK`
72
89
  this.disableHMSEventType(id, eventType);
@@ -75,12 +92,18 @@ export class HMSNativeEventEmitter {
75
92
  }
76
93
 
77
94
  private enableHMSEventType(id: string, eventType: string) {
78
- logger?.verbose('#Function HMSNativeEventEmitter.enableHMSEventType', { id, eventType });
95
+ logger?.verbose('#Function HMSNativeEventEmitter.enableHMSEventType', {
96
+ id,
97
+ eventType,
98
+ });
79
99
  this._nativeModule.enableEvent({ id, eventType });
80
100
  }
81
101
 
82
102
  private disableHMSEventType(id: string, eventType: string) {
83
- logger?.verbose('#Function HMSNativeEventEmitter.disableHMSEventType', { id, eventType });
103
+ logger?.verbose('#Function HMSNativeEventEmitter.disableHMSEventType', {
104
+ id,
105
+ eventType,
106
+ });
84
107
  this._nativeModule.disableEvent({ id, eventType });
85
108
  }
86
109
  }
@@ -3,47 +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;
12
-
13
- /*
11
+ /**
14
12
  * @deprecated customerDescription has been deprecated in favor of metadata
15
13
  */
16
14
  customerDescription?: string;
17
- metadata?: string;
18
- role?: HMSRole;
19
- networkQuality?: HMSNetworkQuality;
20
- audioTrack?: HMSAudioTrack;
21
- videoTrack?: HMSVideoTrack;
22
- auxiliaryTracks?: HMSTrack[];
23
-
24
- constructor(params: {
25
- peerID: string;
26
- name: string;
27
- isLocal?: boolean;
28
- customerUserID?: string;
29
- customerDescription?: string;
30
- metadata?: string;
31
- role?: HMSRole;
32
- networkQuality?: HMSNetworkQuality;
33
- audioTrack?: HMSAudioTrack;
34
- videoTrack?: HMSVideoTrack;
35
- auxiliaryTracks?: HMSTrack[];
36
- }) {
15
+
16
+ constructor(params: { peerID: string; customerDescription?: string }) {
37
17
  this.peerID = params.peerID;
38
- this.name = params.name;
39
- this.isLocal = params.isLocal;
40
- this.customerUserID = params.customerUserID;
41
18
  this.customerDescription = params.customerDescription;
42
- this.audioTrack = params.audioTrack;
43
- this.videoTrack = params.videoTrack;
44
- this.auxiliaryTracks = params.auxiliaryTracks;
45
- this.role = params.role;
46
- this.networkQuality = params.networkQuality;
47
- 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
+ );
48
147
  }
49
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
+ ]);