@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
@@ -2,15 +2,64 @@ import HMSSDK
2
2
  import Foundation
3
3
 
4
4
  class HMSDecoder: NSObject {
5
- static func getHmsRoom (_ hmsRoom: HMSRoom?) -> [String: Any] {
5
+ static private var restrictRoleData: [String: Bool] = [:]
6
+
7
+ static func setRestrictRoleData (_ roleName: String, _ value: Bool) {
8
+ restrictRoleData[roleName] = value
9
+ }
10
+
11
+ static func clearRestrictDataStates () {
12
+ restrictRoleData.removeAll()
13
+ }
14
+
15
+ static func getHmsRoomSubset(_ hmsRoom: HMSRoom?, _ hmsRoomUpdateType: HMSRoomUpdate? = nil) -> [String: Any] {
16
+
17
+ guard let room = hmsRoom else { return [String: Any]() }
18
+
19
+ var data: [String: Any] = ["id": room.roomID ?? ""]
20
+
21
+ switch hmsRoomUpdateType {
22
+ case .none:
23
+ return data
24
+ case .metaDataUpdated:
25
+ let count = room.peerCount ?? 0
26
+ data["peerCount"] = count
27
+ return data
28
+ case .hlsRecordingStateUpdated:
29
+ let hlsRecordingState = HMSDecoder.getHlsRecordingState(hmsRoom?.hlsRecordingState)
30
+ data["hlsRecordingState"] = hlsRecordingState
31
+ return data
32
+ case .browserRecordingStateUpdated:
33
+ let browserRecordingState = HMSDecoder.getHMSBrowserRecordingState(hmsRoom?.browserRecordingState)
34
+ data["browserRecordingState"] = browserRecordingState
35
+ return data
36
+ case .hlsStreamingStateUpdated:
37
+ let hlsStreamingState = HMSDecoder.getHlsStreamingState(hmsRoom?.hlsStreamingState)
38
+ data["hlsStreamingState"] = hlsStreamingState
39
+ return data
40
+ case .rtmpStreamingStateUpdated:
41
+ let rtmpStreamingState = HMSDecoder.getHMSRtmpStreamingState(hmsRoom?.rtmpStreamingState)
42
+ data["rtmpHMSRtmpStreamingState"] = rtmpStreamingState
43
+ return data
44
+ case .serverRecordingStateUpdated:
45
+ let serverRecordingState = HMSDecoder.getHMSServerRecordingState(hmsRoom?.serverRecordingState)
46
+ data["serverRecordingState"] = serverRecordingState
47
+ return data
48
+ default:
49
+ return data
50
+ }
51
+ }
52
+
53
+ static func getHmsRoom(_ hmsRoom: HMSRoom?) -> [String: Any] {
6
54
 
7
- guard let room = hmsRoom else { return [:] }
55
+ guard let room = hmsRoom else { return [String: Any]() }
8
56
 
9
57
  let id = room.roomID ?? ""
10
58
  let sessionId = room.sessionID ?? ""
11
59
  let name = room.name ?? ""
12
60
  let metaData = room.metaData ?? ""
13
61
  let count = room.peerCount ?? 0
62
+ // sessionStartedAt?
14
63
  let browserRecordingState = HMSDecoder.getHMSBrowserRecordingState(hmsRoom?.browserRecordingState)
15
64
  let rtmpStreamingState = HMSDecoder.getHMSRtmpStreamingState(hmsRoom?.rtmpStreamingState)
16
65
  let serverRecordingState = HMSDecoder.getHMSServerRecordingState(hmsRoom?.serverRecordingState)
@@ -20,7 +69,7 @@ class HMSDecoder: NSObject {
20
69
  var peers = [[String: Any]]()
21
70
 
22
71
  for peer in room.peers {
23
- let parsedPeer = getHmsPeer(peer)
72
+ let parsedPeer = getHmsPeerSubset(peer)
24
73
  peers.append(parsedPeer)
25
74
  if peer.isLocal {
26
75
  localPeer = parsedPeer
@@ -30,34 +79,113 @@ class HMSDecoder: NSObject {
30
79
  return ["id": id, "name": name, "metaData": metaData, "peers": peers, "browserRecordingState": browserRecordingState, "rtmpHMSRtmpStreamingState": rtmpStreamingState, "serverRecordingState": serverRecordingState, "hlsRecordingState": hlsRecordingState, "hlsStreamingState": hlsStreamingState, "peerCount": count, "sessionId": sessionId, "localPeer": localPeer]
31
80
  }
32
81
 
82
+ static func getPeerUpdateTypeOrdinals(_ peerUpdateType: HMSPeerUpdate) -> String? {
83
+ switch peerUpdateType {
84
+ case .peerJoined: return "0"
85
+ case .peerLeft: return "1"
86
+ case .roleUpdated: return "9"
87
+ case .nameUpdated: return "10"
88
+ case .metadataUpdated: return "11"
89
+ case .networkQualityUpdated: return "12"
90
+ default: return nil
91
+ }
92
+ }
93
+
94
+ static func getHmsPeerSubsetForPeerUpdateEvent (_ hmsPeer: HMSPeer?, _ peerUpdateType: HMSPeerUpdate) -> [String: Any] {
95
+
96
+ guard let peer = hmsPeer else { return [String: Any]() }
97
+
98
+ var peerDict = [String: Any]()
99
+
100
+ guard let updateType = getPeerUpdateTypeOrdinals(peerUpdateType) else { return peerDict }
101
+
102
+ peerDict[updateType] = peer.peerID
103
+
104
+ switch peerUpdateType {
105
+ case .nameUpdated:
106
+ peerDict["name"] = peer.name
107
+ return peerDict
108
+ case .metadataUpdated:
109
+ peerDict["metadata"] = peer.metadata ?? ""
110
+ return peerDict
111
+ case .roleUpdated:
112
+ peerDict["role"] = getHmsRole(peer.role)
113
+ return peerDict
114
+ case .networkQualityUpdated:
115
+ if let quality = peer.networkQuality {
116
+ peerDict["networkQuality"] = getHmsNetworkQuality(quality)
117
+ }
118
+ return peerDict
119
+ default:
120
+ return peerDict
121
+ }
122
+ }
123
+
124
+ static func getHmsPeerSubset (_ hmsPeer: HMSPeer?, _ peerUpdateType: HMSPeerUpdate? = nil) -> [String: Any] {
125
+
126
+ guard let peer = hmsPeer else { return [String: Any]() }
127
+
128
+ var peerDict = [String: Any]()
129
+
130
+ peerDict["peerID"] = peer.peerID
131
+
132
+ switch peerUpdateType {
133
+ case .nameUpdated:
134
+ peerDict["name"] = peer.name
135
+ return peerDict
136
+ case .metadataUpdated:
137
+ peerDict["metadata"] = peer.metadata ?? ""
138
+ return peerDict
139
+ case .roleUpdated:
140
+ peerDict["role"] = getHmsRole(peer.role)
141
+ return peerDict
142
+ case .networkQualityUpdated:
143
+ if let quality = peer.networkQuality {
144
+ peerDict["networkQuality"] = getHmsNetworkQuality(quality)
145
+ }
146
+ return peerDict
147
+ default:
148
+ return peerDict
149
+ }
150
+ }
151
+
33
152
  static func getHmsPeer (_ hmsPeer: HMSPeer?) -> [String: Any] {
34
153
 
35
- guard let peer = hmsPeer else { return [:] }
36
-
37
- let peerID = peer.peerID
38
- let name = peer.name
39
- let isLocal = peer.isLocal
40
- let customerUserID = peer.customerUserID ?? ""
41
- let customerDescription = peer.metadata ?? ""
42
- let metadata = peer.metadata ?? ""
43
- let audioTrack = getHmsAudioTrack(peer.audioTrack)
44
- let videoTrack = getHmsVideoTrack(peer.videoTrack)
45
- let role = getHmsRole(peer.role)
46
- let networkQuality = getHmsNetworkQuality(peer.networkQuality)
47
-
48
- let auxiliaryTracks = getAllTracks(peer.auxiliaryTracks ?? [] )
49
-
50
- return ["peerID": peerID,
51
- "name": name,
52
- "isLocal": isLocal,
53
- "customerUserID": customerUserID,
54
- "customerDescription": customerDescription,
55
- "metadata": metadata,
56
- "audioTrack": audioTrack,
57
- "videoTrack": videoTrack,
58
- "auxiliaryTracks": auxiliaryTracks,
59
- "networkQuality": networkQuality,
60
- "role": role]
154
+ guard let peer = hmsPeer else { return [String: Any]() }
155
+
156
+ var peerDict = [String: Any]()
157
+
158
+ peerDict["peerID"] = peer.peerID
159
+ peerDict["name"] = peer.name
160
+ peerDict["isLocal"] = peer.isLocal
161
+
162
+ if let userID = peer.customerUserID {
163
+ peerDict["customerUserID"] = userID
164
+ }
165
+
166
+ peerDict["metadata"] = peer.metadata ?? ""
167
+
168
+ // joinedAt
169
+
170
+ peerDict["role"] = getHmsRole(peer.role)
171
+
172
+ if let quality = peer.networkQuality {
173
+ peerDict["networkQuality"] = getHmsNetworkQuality(quality)
174
+ }
175
+
176
+ if let audio = peer.audioTrack {
177
+ peerDict["audioTrack"] = getHmsAudioTrack(audio)
178
+ }
179
+
180
+ if let video = peer.videoTrack {
181
+ peerDict["videoTrack"] = getHmsVideoTrack(video)
182
+ }
183
+
184
+ if let auxTracks = peer.auxiliaryTracks, auxTracks.count > 0 {
185
+ peerDict["auxiliaryTracks"] = getAllTracks(auxTracks)
186
+ }
187
+
188
+ return peerDict
61
189
  }
62
190
 
63
191
  static func getAllTracks (_ tracks: [HMSTrack]) -> [[String: Any]] {
@@ -71,7 +199,7 @@ class HMSDecoder: NSObject {
71
199
 
72
200
  static func getHmsTrack (_ track: HMSTrack?) -> [String: Any] {
73
201
 
74
- guard let hmsTrack = track else { return [:] }
202
+ guard let hmsTrack = track else { return [String: Any]() }
75
203
 
76
204
  let trackId = hmsTrack.trackId
77
205
  let source = hmsTrack.source
@@ -84,7 +212,7 @@ class HMSDecoder: NSObject {
84
212
 
85
213
  static func getHmsAudioTrack (_ hmsAudioTrack: HMSAudioTrack?) -> [String: Any] {
86
214
 
87
- guard let hmsTrack = hmsAudioTrack else { return [:] }
215
+ guard let hmsTrack = hmsAudioTrack else { return [String: Any]() }
88
216
 
89
217
  let trackId: String = hmsTrack.trackId
90
218
  let source: String = hmsTrack.source
@@ -97,7 +225,7 @@ class HMSDecoder: NSObject {
97
225
 
98
226
  static func getHmsVideoTrack (_ hmsVideoTrack: HMSVideoTrack?) -> [String: Any] {
99
227
 
100
- guard let hmsTrack = hmsVideoTrack else { return [:] }
228
+ guard let hmsTrack = hmsVideoTrack else { return [String: Any]() }
101
229
 
102
230
  let trackId = hmsTrack.trackId
103
231
  let source = hmsTrack.source
@@ -111,38 +239,25 @@ class HMSDecoder: NSObject {
111
239
 
112
240
  static func getHmsLocalPeer(_ hmsLocalPeer: HMSLocalPeer?) -> [String: Any] {
113
241
 
114
- guard let peer = hmsLocalPeer else { return [:] }
115
-
116
- let peerID = peer.peerID
117
- let name = peer.name
118
- let isLocal = peer.isLocal
119
- let customerUserID = peer.customerUserID ?? ""
120
- let customerDescription = peer.metadata ?? ""
121
- let metadata = peer.metadata ?? ""
122
- let audioTrack = getHmsAudioTrack(peer.audioTrack)
123
- let videoTrack = getHmsVideoTrack(peer.videoTrack)
124
- let role = getHmsRole(peer.role)
125
- let networkQuality = getHmsNetworkQuality(peer.networkQuality)
242
+ guard let peer = hmsLocalPeer else { return [String: Any]() }
126
243
 
127
- var auxiliaryTracks = [[String: Any]]()
128
- for track in peer.auxiliaryTracks ?? [] {
129
- auxiliaryTracks.append(getHmsTrack(track))
130
- }
244
+ var peerDict = [String: Any]()
131
245
 
132
- let localAudioTrack = peer.localAudioTrack()
133
- let localVideoTrack = peer.localVideoTrack()
246
+ peerDict["peerID"] = peer.peerID
134
247
 
135
- var localAudioTrackData = [String: Any]()
136
- if let localAudio = localAudioTrack {
137
- localAudioTrackData = getHmsLocalAudioTrack(localAudio)
248
+ if let audio = peer.audioTrack {
249
+ if let localAudio = audio as? HMSLocalAudioTrack {
250
+ peerDict["localAudioTrackData"] = getHmsLocalAudioTrack(localAudio)
251
+ }
138
252
  }
139
253
 
140
- var localVideoTrackData = [String: Any]()
141
- if let localVideo = localVideoTrack {
142
- localVideoTrackData = getHmsLocalVideoTrack(localVideo)
254
+ if let video = peer.videoTrack {
255
+ if let localVideo = video as? HMSLocalVideoTrack {
256
+ peerDict["localVideoTrackData"] = getHmsLocalVideoTrack(localVideo)
257
+ }
143
258
  }
144
259
 
145
- return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role, "networkQuality": networkQuality]
260
+ return peerDict
146
261
  }
147
262
 
148
263
  static func getHmsLocalAudioTrack(_ localAudio: HMSLocalAudioTrack) -> [String: Any] {
@@ -157,7 +272,7 @@ class HMSDecoder: NSObject {
157
272
 
158
273
  static func getHmsAudioTrackSettings(_ hmsAudioTrackSettings: HMSAudioTrackSettings?) -> [String: Any] {
159
274
 
160
- guard let settings = hmsAudioTrackSettings else { return [:] }
275
+ guard let settings = hmsAudioTrackSettings else { return [String: Any]() }
161
276
 
162
277
  // TODO: parsing not done for audioSource
163
278
  let audioSource = settings.audioSource
@@ -168,7 +283,7 @@ class HMSDecoder: NSObject {
168
283
 
169
284
  static func getHmsVideoTrackSettings(_ hmsVideoTrackSettings: HMSVideoTrackSettings?) -> [String: Any] {
170
285
 
171
- guard let settings = hmsVideoTrackSettings else { return [:] }
286
+ guard let settings = hmsVideoTrackSettings else { return [String: Any]() }
172
287
 
173
288
  let cameraFacing = getHmsVideoTrackCameraFacing(settings.cameraFacing)
174
289
  let initialState = HMSHelper.getHMSTrackInitState(settings.initialMuteState)
@@ -194,7 +309,7 @@ class HMSDecoder: NSObject {
194
309
  case HMSCodec.H264:
195
310
  return "H264"
196
311
  default:
197
- return "H264"
312
+ return "VP8"
198
313
  }
199
314
  }
200
315
 
@@ -210,13 +325,13 @@ class HMSDecoder: NSObject {
210
325
  }
211
326
 
212
327
  static func getHmsVideoResolution(_ hmsVideoResolution: HMSVideoResolution?) -> [String: Any] {
213
- guard let resolution = hmsVideoResolution else { return [:] }
328
+ guard let resolution = hmsVideoResolution else { return [String: Any]() }
214
329
 
215
330
  return ["width": resolution.width, "height": resolution.height]
216
331
  }
217
332
 
218
333
  static func getHmsRemotePeers (_ remotePeers: [HMSRemotePeer]?) -> [[String: Any]] {
219
- guard let remotePeers = remotePeers else { return [[:]] }
334
+ guard let remotePeers = remotePeers else { return [[String: Any]()] }
220
335
 
221
336
  var peers = [[String: Any]]()
222
337
 
@@ -227,39 +342,27 @@ class HMSDecoder: NSObject {
227
342
  return peers
228
343
  }
229
344
 
230
- static func getHmsRemotePeer(_ hmsRemotePeer: HMSRemotePeer) -> [String: Any] {
231
-
232
- let peerID = hmsRemotePeer.peerID
233
- let name = hmsRemotePeer.name
234
- let isLocal = hmsRemotePeer.isLocal
235
- let customerUserID = hmsRemotePeer.customerUserID ?? ""
236
- let customerDescription = hmsRemotePeer.metadata ?? ""
237
- let metadata = hmsRemotePeer.metadata ?? ""
238
- let audioTrack = getHmsAudioTrack(hmsRemotePeer.audioTrack)
239
- let videoTrack = getHmsVideoTrack(hmsRemotePeer.videoTrack)
240
- let role = getHmsRole(hmsRemotePeer.role)
241
- let networkQuality = getHmsNetworkQuality(hmsRemotePeer.networkQuality)
345
+ static func getHmsRemotePeer(_ peer: HMSRemotePeer) -> [String: Any] {
242
346
 
243
- var auxiliaryTracks = [[String: Any]]()
347
+ var peerDict = [String: Any]()
244
348
 
245
- for track in hmsRemotePeer.auxiliaryTracks ?? [] {
246
- auxiliaryTracks.append(getHmsTrack(track))
247
- }
349
+ peerDict["peerID"] = peer.peerID
248
350
 
249
- let remoteAudioTrack = hmsRemotePeer.remoteAudioTrack()
250
- let remoteVideoTrack = hmsRemotePeer.remoteVideoTrack()
351
+ // joinedAt
251
352
 
252
- var remoteAudioTrackData = [String: Any]()
253
- if let remoteAudio = remoteAudioTrack {
254
- remoteAudioTrackData = getHMSRemoteAudioTrack(remoteAudio)
353
+ if let audio = peer.audioTrack {
354
+ if let remoteAudio = audio as? HMSRemoteAudioTrack {
355
+ peerDict["remoteAudioTrackData"] = getHMSRemoteAudioTrack(remoteAudio)
356
+ }
255
357
  }
256
358
 
257
- var remoteVideoTrackData = [String: Any]()
258
- if let remoteVideo = remoteVideoTrack {
259
- remoteVideoTrackData = getHMSRemoteVideoTrack(remoteVideo)
359
+ if let video = peer.videoTrack {
360
+ if let remoteVideo = video as? HMSRemoteVideoTrack {
361
+ peerDict["remoteVideoTrackData"] = getHMSRemoteVideoTrack(remoteVideo)
362
+ }
260
363
  }
261
364
 
262
- return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role, "networkQuality": networkQuality]
365
+ return peerDict
263
366
  }
264
367
 
265
368
  static func getHMSRemoteAudioTrack(_ remoteAudio: HMSRemoteAudioTrack) -> [String: Any] {
@@ -304,18 +407,20 @@ class HMSDecoder: NSObject {
304
407
 
305
408
  static func getHmsRole(_ hmsRole: HMSRole?) -> [String: Any] {
306
409
 
307
- guard let role = hmsRole else { return [:] }
410
+ guard let role = hmsRole else { return [String: Any]() }
308
411
 
309
412
  let name = role.name
413
+
414
+ if restrictRoleData[role.name] == true {
415
+ return ["name": name]
416
+ }
417
+
310
418
  let permissions = getHmsPermissions(role.permissions)
311
419
  let publishSettings = getHmsPublishSettings(role.publishSettings)
312
420
  let subscribeSettings = getHmsSubscribeSettings(role.subscribeSettings)
313
421
  let priority = role.priority
314
- let generalPermissions = role.generalPermissions ?? [:]
315
- let internalPlugins = role.internalPlugins ?? [:]
316
- let externalPlugins = role.externalPlugins ?? [:]
317
422
 
318
- return ["name": name, "permissions": permissions, "publishSettings": publishSettings, "subscribeSettings": subscribeSettings, "priority": priority, "generalPermissions": generalPermissions, "internalPlugins": internalPlugins, "externalPlugins": externalPlugins]
423
+ return ["name": name, "permissions": permissions, "publishSettings": publishSettings, "subscribeSettings": subscribeSettings, "priority": priority]
319
424
  }
320
425
 
321
426
  static func getHmsPermissions (_ permissions: HMSPermissions) -> [String: Any] {
@@ -341,41 +446,33 @@ class HMSDecoder: NSObject {
341
446
 
342
447
  static func getHmsPublishSettings (_ publishSettings: HMSPublishSettings) -> [String: Any] {
343
448
 
344
- let audio = getHmsAudioSettings(publishSettings.audio)
345
- let video = getHmsVideoSettings(publishSettings.video)
346
- let screen = getHmsVideoSettings(publishSettings.screen)
347
- let videoSimulcastLayers = getHmsSimulcastLayers(publishSettings.simulcast?.video)
348
- let screenSimulcastLayers = getHmsSimulcastLayers(publishSettings.simulcast?.screen)
349
- var allowed = publishSettings.allowed ?? []
350
- if (publishSettings.allowed) != nil {
351
- allowed = getWriteableArray(publishSettings.allowed)
352
- } else {
353
- allowed = []
449
+ var dict = [String: Any]()
450
+
451
+ dict["audio"] = getHmsAudioSettings(publishSettings.audio)
452
+ dict["video"] = getHmsVideoSettings(publishSettings.video)
453
+ dict["screen"] = getHmsVideoSettings(publishSettings.screen)
454
+
455
+ if let allowed = publishSettings.allowed {
456
+ dict["allowed"] = getWriteableArray(allowed)
354
457
  }
355
458
 
356
- return ["audio": audio,
357
- "video": video,
358
- "screen": screen,
359
- "videoSimulcastLayers": videoSimulcastLayers,
360
- "screenSimulcastLayers": screenSimulcastLayers,
361
- "allowed": allowed]
459
+ return dict
362
460
  }
363
461
 
364
462
  static func getHmsSubscribeSettings (_ subscribeSettings: HMSSubscribeSettings?) -> [String: Any] {
365
463
  guard let settings = subscribeSettings
366
- else { return [:] }
464
+ else { return [String: Any]() }
367
465
 
368
466
  let maxSubsBitRate = settings.maxSubsBitRate
369
- let subscribeDegradationParam = getHmsSubscribeDegradationSettings(settings.subscribeDegradation)
370
467
  let subscribeTo = settings.subscribeToRoles
371
468
 
372
- return ["maxSubsBitRate": maxSubsBitRate, "subscribeDegradationParam": subscribeDegradationParam, "subscribeTo": subscribeTo ?? []]
469
+ return ["maxSubsBitRate": maxSubsBitRate, "subscribeTo": subscribeTo ?? []]
373
470
  }
374
471
 
375
472
  static func getHmsSubscribeDegradationSettings (_ hmsSubscribeDegradationParams: HMSSubscribeDegradationPolicy?) -> [String: Any] {
376
473
  guard let params = hmsSubscribeDegradationParams
377
474
  else {
378
- return [:]
475
+ return [String: Any]()
379
476
  }
380
477
 
381
478
  let degradeGracePeriodSeconds = String(params.degradeGracePeriodSeconds ?? 0)
@@ -415,7 +512,7 @@ class HMSDecoder: NSObject {
415
512
 
416
513
  static func getHmsSimulcastLayers(_ videoSimulcastLayers: HMSSimulcastSettingsPolicy?) -> [String: Any] {
417
514
 
418
- guard let videoLayers = videoSimulcastLayers else { return [:] }
515
+ guard let videoLayers = videoSimulcastLayers else { return [String: Any]() }
419
516
 
420
517
  let layers = getHmsSimulcastLayerSettingsPolicy(videoLayers.layers)
421
518
 
@@ -448,7 +545,7 @@ class HMSDecoder: NSObject {
448
545
  if let sdkId = id {
449
546
  var requestedBy: [String: Any]?
450
547
  if let peer = roleChangeRequest.requestedBy {
451
- requestedBy = getHmsPeer(peer)
548
+ requestedBy = getHmsPeerSubset(peer)
452
549
  }
453
550
 
454
551
  let suggestedRole = getHmsRole(roleChangeRequest.suggestedRole)
@@ -460,13 +557,13 @@ class HMSDecoder: NSObject {
460
557
  return request
461
558
  }
462
559
 
463
- return [:]
560
+ return [String: Any]()
464
561
  }
465
562
 
466
563
  static func getHmsChangeTrackStateRequest(_ changeTrackStateRequest: HMSChangeTrackStateRequest, _ id: String) -> [String: Any] {
467
564
  var requestedBy: [String: Any]?
468
565
  if let peer = changeTrackStateRequest.requestedBy {
469
- requestedBy = getHmsPeer(peer)
566
+ requestedBy = getHmsPeerSubset(peer)
470
567
  }
471
568
  let trackType = changeTrackStateRequest.track.kind == .video ? "video" : "audio"
472
569
 
@@ -492,38 +589,60 @@ class HMSDecoder: NSObject {
492
589
  }
493
590
 
494
591
  static func getHMSBrowserRecordingState(_ data: HMSBrowserRecordingState?) -> [String: Any] {
592
+
495
593
  if let recordingState = data {
496
- let running = recordingState.running
497
- let startedAt = recordingState.startedAt?.timeIntervalSince1970 ?? 0
498
- let error = HMSDecoder.getError(recordingState.error)
499
594
 
500
- return ["running": running, "error": error, "startedAt": startedAt * 1000]
595
+ var state = [String: Any]()
596
+
597
+ state["running"] = recordingState.running
598
+
599
+ state["startedAt"] = (recordingState.startedAt?.timeIntervalSince1970 ?? 0) * 1000
600
+
601
+ if let error = recordingState.error {
602
+ state["error"] = HMSDecoder.getError(error)
603
+ }
604
+
605
+ return state
501
606
  } else {
502
- return [:]
607
+ return [String: Any]()
503
608
  }
504
609
  }
505
610
 
506
611
  static func getHMSRtmpStreamingState(_ data: HMSRTMPStreamingState?) -> [String: Any] {
507
612
  if let streamingState = data {
508
- let running = streamingState.running
509
- let startedAt = streamingState.startedAt?.timeIntervalSince1970 ?? 0
510
- let error = HMSDecoder.getError(streamingState.error)
511
613
 
512
- return ["running": running, "error": error, "startedAt": startedAt * 1000]
614
+ var state = [String: Any]()
615
+
616
+ state["running"] = streamingState.running
617
+
618
+ state["startedAt"] = (streamingState.startedAt?.timeIntervalSince1970 ?? 0) * 1000
619
+
620
+ if let error = streamingState.error {
621
+ state["error"] = HMSDecoder.getError(error)
622
+ }
623
+
624
+ return state
513
625
  } else {
514
- return [:]
626
+ return [String: Any]()
515
627
  }
516
628
  }
517
629
 
518
630
  static func getHMSServerRecordingState(_ data: HMSServerRecordingState?) -> [String: Any] {
519
631
  if let recordingState = data {
520
- let running = recordingState.running
521
- let startedAt = recordingState.startedAt?.timeIntervalSince1970 ?? 0
522
- let error = HMSDecoder.getError(recordingState.error)
523
632
 
524
- return ["running": running, "error": error, "startedAt": startedAt * 1000]
633
+ var state = [String: Any]()
634
+
635
+ state["running"] = recordingState.running
636
+
637
+ state["startedAt"] = (recordingState.startedAt?.timeIntervalSince1970 ?? 0) * 1000
638
+
639
+ if let error = recordingState.error {
640
+ state["error"] = HMSDecoder.getError(error)
641
+ }
642
+
643
+ return state
525
644
  } else {
526
- return [:]
645
+ return [String: Any]()
527
646
  }
528
647
  }
529
648
 
@@ -534,7 +653,7 @@ class HMSDecoder: NSObject {
534
653
 
535
654
  return ["running": running, "variants": variants]
536
655
  } else {
537
- return [:]
656
+ return [String: Any]()
538
657
  }
539
658
  }
540
659
 
@@ -547,7 +666,7 @@ class HMSDecoder: NSObject {
547
666
 
548
667
  return ["running": running, "startedAt": startedAt * 1000, "singleFilePerLayer": singleFilePerLayer, "videoOnDemand": enableVOD]
549
668
  } else {
550
- return [:]
669
+ return [String: Any]()
551
670
  }
552
671
  }
553
672
 
@@ -576,8 +695,15 @@ class HMSDecoder: NSObject {
576
695
  return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate]
577
696
  }
578
697
 
579
- static func getLocalVideoStats(_ data: HMSLocalVideoStats) -> [String: Any] {
580
- return ["roundTripTime": data.roundTripTime, "bytesSent": data.bytesSent, "bitrate": data.bitrate, "resolution": HMSDecoder.getHmsVideoResolution(data.resolution), "frameRate": data.frameRate]
698
+ static func getLocalVideoStats(_ data: [HMSLocalVideoStats]) -> [[String: Any]] {
699
+ var dict = [[String: Any]]()
700
+ for stat in data {
701
+ dict.append(["roundTripTime": stat.roundTripTime,
702
+ "bytesSent": stat.bytesSent,
703
+ "bitrate": stat.bitrate,
704
+ "resolution": HMSDecoder.getHmsVideoResolution(stat.resolution), "frameRate": stat.frameRate])
705
+ }
706
+ return dict
581
707
  }
582
708
 
583
709
  static func getRemoteAudioStats(_ data: HMSRemoteAudioStats) -> [String: Any] {
@@ -589,11 +715,24 @@ class HMSDecoder: NSObject {
589
715
  }
590
716
 
591
717
  static func getHmsMessageRecipient(_ recipient: HMSMessageRecipient) -> [String: Any] {
592
- return ["recipientPeer": getHmsPeer(recipient.peerRecipient), "recipientRoles": getAllRoles(recipient.rolesRecipient), "recipientType": self.getRecipientType(from: recipient.type)]
718
+
719
+ var data = [String: Any]()
720
+
721
+ if let peer = recipient.peerRecipient {
722
+ data["recipientPeer"] = getHmsPeerSubset(peer)
723
+ }
724
+
725
+ data["recipientType"] = getRecipientType(from: recipient.type)
726
+
727
+ if let roles = recipient.rolesRecipient {
728
+ data["recipientRoles"] = getAllRoles(roles)
729
+ }
730
+
731
+ return data
593
732
  }
594
733
 
595
734
  static func getHmsNetworkQuality(_ hmsNetworkQuality: HMSNetworkQuality?) -> [String: Any] {
596
- guard let networkQuality = hmsNetworkQuality else { return [:] }
735
+ guard let networkQuality = hmsNetworkQuality else { return [String: Any]() }
597
736
 
598
737
  return ["downlinkQuality": networkQuality.downlinkQuality]
599
738
  }
@@ -154,7 +154,7 @@ class HMSHelper: NSObject {
154
154
  let resolution = HMSVideoResolution.init(width: 320, height: 180)
155
155
  let maxBitrate = 512
156
156
  let maxFrameRate = 25
157
- let trackDescription = "video track description"
157
+ let trackDescription = ""
158
158
  let cameraFacing = settings?.value(forKey: "cameraFacing") as? String
159
159
  let cameraFacingEncoded = HMSHelper.getCameraFacing(cameraFacing)
160
160
  let initialState = settings?.value(forKey: "initialState") as? String
@@ -203,7 +203,7 @@ class HMSHelper: NSObject {
203
203
  do {
204
204
  self.audioMixerSourceHashMap = audioMixerSourceMap
205
205
  let audioMixerSource = try HMSAudioMixerSource(nodes: audioMixerSourceMap.values.map {$0})
206
- return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "audio track description", initialMuteState: initialStateEncoded, audioSource: audioMixerSource)
206
+ return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "", initialMuteState: initialStateEncoded, audioSource: audioMixerSource)
207
207
  } catch {
208
208
  delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
209
209
  return nil
@@ -211,7 +211,7 @@ class HMSHelper: NSObject {
211
211
  }
212
212
  }
213
213
 
214
- return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "audio track description", initialMuteState: initialStateEncoded, audioSource: nil)
214
+ return HMSAudioTrackSettings(maxBitrate: 32, trackDescription: "", initialMuteState: initialStateEncoded, audioSource: nil)
215
215
  }
216
216
 
217
217
  static func getAudioMixerSourceMap() -> [String: HMSAudioNode]? {