@100mslive/hms-video-store 0.10.29-alpha.1 → 0.11.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 (534) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +11 -4
  3. package/dist/{core/IHMSActions.d.ts → IHMSActions.d.ts} +2 -3
  4. package/dist/{core/IHMSStore.d.ts → IHMSStore.d.ts} +1 -1
  5. package/dist/analytics/AdditionalAnalyticsProperties.d.ts +23 -0
  6. package/dist/analytics/AnalyticsEvent.d.ts +49 -0
  7. package/dist/analytics/AnalyticsEventDomains.d.ts +5 -0
  8. package/dist/analytics/AnalyticsEventFactory.d.ts +71 -0
  9. package/dist/analytics/AnalyticsEventLevel.d.ts +12 -0
  10. package/dist/analytics/AnalyticsEventsService.d.ts +19 -0
  11. package/dist/analytics/AnalyticsTimer.d.ts +22 -0
  12. package/dist/analytics/AnalyticsTransport.d.ts +11 -0
  13. package/dist/analytics/HTTPAnalyticsTransport.d.ts +18 -0
  14. package/dist/analytics/IAnalyticsPropertiesProvider.d.ts +4 -0
  15. package/dist/analytics/IAnalyticsTransportProvider.d.ts +6 -0
  16. package/dist/analytics/MediaPluginsAnalyticsFactory.d.ts +21 -0
  17. package/dist/analytics/domain-analytics.d.ts +2 -0
  18. package/dist/analytics/signal-transport/LocalStoageEvents.d.ts +9 -0
  19. package/dist/analytics/signal-transport/SignalAnalyticsTransport.d.ts +8 -0
  20. package/dist/analytics/stats/BaseStatsAnalytics.d.ts +56 -0
  21. package/dist/analytics/stats/PublishStatsAnalytics.d.ts +17 -0
  22. package/dist/analytics/stats/SubscribeStatsAnalytics.d.ts +16 -0
  23. package/dist/analytics/stats/index.d.ts +3 -0
  24. package/dist/analytics/stats/interfaces.d.ts +76 -0
  25. package/dist/audio-sink-manager/AudioSinkManager.d.ts +45 -0
  26. package/dist/audio-sink-manager/index.d.ts +1 -0
  27. package/dist/common/ui-logger.d.ts +1 -1
  28. package/dist/connection/HMSConnection.d.ts +44 -0
  29. package/dist/connection/HMSDataChannel.d.ts +15 -0
  30. package/dist/connection/IConnectionObserver.d.ts +4 -0
  31. package/dist/connection/channel-messages.d.ts +30 -0
  32. package/dist/connection/model.d.ts +8 -0
  33. package/dist/connection/publish/IPublishConnectionObserver.d.ts +10 -0
  34. package/dist/connection/publish/publishConnection.d.ts +11 -0
  35. package/dist/connection/subscribe/ISubscribeConnectionObserver.d.ts +14 -0
  36. package/dist/connection/subscribe/subscribeConnection.d.ts +24 -0
  37. package/dist/controller/beam/BeamSpeakerLabelsLogger.d.ts +2 -2
  38. package/dist/device-manager/AudioOutputManager.d.ts +18 -0
  39. package/dist/device-manager/DeviceManager.d.ts +57 -0
  40. package/dist/device-manager/DeviceStorage.d.ts +30 -0
  41. package/dist/device-manager/DeviceTestData.d.ts +15 -0
  42. package/dist/device-manager/index.d.ts +1 -0
  43. package/dist/error/ErrorCodes.d.ts +64 -0
  44. package/dist/error/ErrorFactory.d.ts +74 -0
  45. package/dist/error/HMSAction.d.ts +19 -0
  46. package/dist/error/HMSException.d.ts +23 -0
  47. package/dist/error/utils.d.ts +9 -0
  48. package/dist/events/EventBus.d.ts +51 -0
  49. package/dist/events/HMSInternalEvent.d.ts +13 -0
  50. package/dist/index.cjs.js +82 -1
  51. package/dist/index.cjs.js.map +4 -4
  52. package/dist/index.d.ts +11 -2
  53. package/dist/index.js +82 -1
  54. package/dist/index.js.map +4 -4
  55. package/dist/interfaces/change-track-state.d.ts +21 -0
  56. package/dist/interfaces/config.d.ts +76 -0
  57. package/dist/interfaces/devices.d.ts +25 -0
  58. package/dist/interfaces/error-listener.d.ts +4 -0
  59. package/dist/interfaces/framework-info.d.ts +19 -0
  60. package/dist/interfaces/get-token.d.ts +7 -0
  61. package/dist/interfaces/hls-config.d.ts +36 -0
  62. package/dist/interfaces/hms.d.ts +87 -0
  63. package/dist/interfaces/index.d.ts +21 -0
  64. package/dist/interfaces/internal.d.ts +4 -0
  65. package/dist/interfaces/leave-room-request.d.ts +6 -0
  66. package/dist/interfaces/message.d.ts +17 -0
  67. package/dist/interfaces/peer/connection-quality.d.ts +13 -0
  68. package/dist/interfaces/peer/hms-local-peer.d.ts +10 -0
  69. package/dist/interfaces/peer/hms-peer.d.ts +23 -0
  70. package/dist/interfaces/peer/hms-remote-peer.d.ts +8 -0
  71. package/dist/interfaces/peer/index.d.ts +4 -0
  72. package/dist/interfaces/peer-list-iterator.d.ts +6 -0
  73. package/dist/interfaces/playlist.d.ts +114 -0
  74. package/dist/interfaces/preview-listener.d.ts +15 -0
  75. package/dist/interfaces/role-change-request.d.ts +11 -0
  76. package/dist/interfaces/role.d.ts +50 -0
  77. package/dist/interfaces/room.d.ts +95 -0
  78. package/dist/interfaces/rtmp-recording-config.d.ts +10 -0
  79. package/dist/interfaces/session-store/index.d.ts +18 -0
  80. package/dist/interfaces/session-store/interactivity-center.d.ts +17 -0
  81. package/dist/interfaces/session-store/polls.d.ts +133 -0
  82. package/dist/interfaces/session-store/whiteboard.d.ts +27 -0
  83. package/dist/interfaces/settings.d.ts +26 -0
  84. package/dist/interfaces/simulcast-layers.d.ts +30 -0
  85. package/dist/interfaces/speaker.d.ts +7 -0
  86. package/dist/interfaces/track-settings.d.ts +114 -0
  87. package/dist/interfaces/types.d.ts +6 -0
  88. package/dist/interfaces/update-listener.d.ts +82 -0
  89. package/dist/interfaces/webrtc-stats.d.ts +96 -0
  90. package/dist/internal.d.ts +12 -0
  91. package/dist/media/settings/HMSAudioTrackSettings.d.ts +28 -0
  92. package/dist/media/settings/HMSTrackSettings.d.ts +25 -0
  93. package/dist/media/settings/HMSVideoTrackSettings.d.ts +47 -0
  94. package/dist/media/settings/index.d.ts +3 -0
  95. package/dist/media/streams/HMSLocalStream.d.ts +16 -0
  96. package/dist/media/streams/HMSMediaStream.d.ts +12 -0
  97. package/dist/media/streams/HMSRemoteStream.d.ts +32 -0
  98. package/dist/media/streams/index.d.ts +3 -0
  99. package/dist/media/tracks/HMSAudioTrack.d.ts +21 -0
  100. package/dist/media/tracks/HMSLocalAudioTrack.d.ts +77 -0
  101. package/dist/media/tracks/HMSLocalVideoTrack.d.ts +149 -0
  102. package/dist/media/tracks/HMSRemoteAudioTrack.d.ts +4 -0
  103. package/dist/media/tracks/HMSRemoteVideoTrack.d.ts +59 -0
  104. package/dist/media/tracks/HMSTrack.d.ts +64 -0
  105. package/dist/media/tracks/HMSTrackType.d.ts +4 -0
  106. package/dist/media/tracks/HMSVideoTrack.d.ts +31 -0
  107. package/dist/media/tracks/VideoElementManager.d.ts +30 -0
  108. package/dist/media/tracks/index.d.ts +14 -0
  109. package/dist/media/tracks/trackUtils.d.ts +15 -0
  110. package/dist/notification-manager/HMSNotificationMethod.d.ts +37 -0
  111. package/dist/notification-manager/HMSNotifications.d.ts +291 -0
  112. package/dist/notification-manager/NotificationManager.d.ts +47 -0
  113. package/dist/notification-manager/fixtures.d.ts +7 -0
  114. package/dist/notification-manager/index.d.ts +2 -0
  115. package/dist/notification-manager/managers/ActiveSpeakerManager.d.ts +10 -0
  116. package/dist/notification-manager/managers/BroadcastManager.d.ts +8 -0
  117. package/dist/notification-manager/managers/ConnectionQualityManager.d.ts +9 -0
  118. package/dist/notification-manager/managers/PeerListManager.d.ts +31 -0
  119. package/dist/notification-manager/managers/PeerManager.d.ts +34 -0
  120. package/dist/notification-manager/managers/PolicyChangeManager.d.ts +16 -0
  121. package/dist/notification-manager/managers/PollsManager.d.ts +15 -0
  122. package/dist/notification-manager/managers/RequestManager.d.ts +19 -0
  123. package/dist/notification-manager/managers/RoomUpdateManager.d.ts +26 -0
  124. package/dist/notification-manager/managers/SessionMetadataManager.d.ts +9 -0
  125. package/dist/notification-manager/managers/TrackManager.d.ts +53 -0
  126. package/dist/notification-manager/managers/WhiteboardManager.d.ts +11 -0
  127. package/dist/notification-manager/managers/onDemandTrackManager.d.ts +28 -0
  128. package/dist/notification-manager/managers/utils.d.ts +4 -0
  129. package/dist/playlist-manager/AudioContextManager.d.ts +15 -0
  130. package/dist/playlist-manager/PlaylistAudioManager.d.ts +28 -0
  131. package/dist/playlist-manager/PlaylistManager.d.ts +60 -0
  132. package/dist/playlist-manager/PlaylistVideoManager.d.ts +39 -0
  133. package/dist/playlist-manager/index.d.ts +1 -0
  134. package/dist/plugins/audio/AudioPluginsAnalytics.d.ts +17 -0
  135. package/dist/plugins/audio/HMSAudioPlugin.d.ts +58 -0
  136. package/dist/plugins/audio/HMSAudioPluginsManager.d.ts +43 -0
  137. package/dist/plugins/audio/index.d.ts +4 -0
  138. package/dist/plugins/index.d.ts +2 -0
  139. package/dist/plugins/video/HMSMediaStreamPlugin.d.ts +9 -0
  140. package/dist/plugins/video/HMSMediaStreamPluginsManager.d.ts +8 -0
  141. package/dist/plugins/video/HMSVideoPlugin.d.ts +67 -0
  142. package/dist/plugins/video/HMSVideoPluginsManager.d.ts +92 -0
  143. package/dist/plugins/video/VideoPluginsAnalytics.d.ts +22 -0
  144. package/dist/plugins/video/index.d.ts +4 -0
  145. package/dist/{core/hmsSDKStore → reactive-store}/HMSNotifications.d.ts +1 -1
  146. package/dist/{core/hmsSDKStore → reactive-store}/HMSPlaylist.d.ts +1 -1
  147. package/dist/{core/hmsSDKStore → reactive-store}/HMSSDKActions.d.ts +8 -6
  148. package/dist/{core/hmsSDKStore → reactive-store}/HMSSessionStore.d.ts +2 -1
  149. package/dist/{core/hmsSDKStore → reactive-store}/adapter.d.ts +4 -3
  150. package/dist/{core/hmsSDKStore → reactive-store}/common/mapping.d.ts +1 -1
  151. package/dist/{core/hmsSDKStore → reactive-store}/sdkUtils/sdkUtils.d.ts +1 -1
  152. package/dist/{core/hmsSDKStore → reactive-store}/sdkUtils/storeMergeUtils.d.ts +2 -2
  153. package/dist/rtc-stats/HMSWebrtcInternals.d.ts +37 -0
  154. package/dist/rtc-stats/HMSWebrtcStats.d.ts +29 -0
  155. package/dist/rtc-stats/index.d.ts +2 -0
  156. package/dist/rtc-stats/utils.d.ts +19 -0
  157. package/dist/{core/schema → schema}/device-change.d.ts +1 -1
  158. package/dist/{core/schema → schema}/index.d.ts +0 -1
  159. package/dist/{core/schema → schema}/message.d.ts +2 -0
  160. package/dist/{core/schema → schema}/notification.d.ts +1 -1
  161. package/dist/{core/schema → schema}/peer.d.ts +1 -1
  162. package/dist/{core/schema → schema}/role.d.ts +1 -1
  163. package/dist/{core/schema → schema}/room.d.ts +1 -1
  164. package/dist/{core/schema → schema}/schema.d.ts +1 -1
  165. package/dist/sdk/HMSPeerListIterator.d.ts +21 -0
  166. package/dist/sdk/LocalTrackManager.d.ts +57 -0
  167. package/dist/sdk/NetworkTestManager.d.ts +15 -0
  168. package/dist/sdk/RoleChangeManager.d.ts +31 -0
  169. package/dist/sdk/WakeLockManager.d.ts +8 -0
  170. package/dist/sdk/index.d.ts +166 -0
  171. package/dist/sdk/models/HMSRoom.d.ts +25 -0
  172. package/dist/sdk/models/peer/HMSLocalPeer.d.ts +18 -0
  173. package/dist/sdk/models/peer/HMSPeer.d.ts +49 -0
  174. package/dist/sdk/models/peer/HMSRemotePeer.d.ts +13 -0
  175. package/dist/sdk/models/peer/index.d.ts +3 -0
  176. package/dist/sdk/store/Store.d.ts +93 -0
  177. package/dist/sdk/store/StoreInterfaces.d.ts +9 -0
  178. package/dist/sdk/store/index.d.ts +1 -0
  179. package/dist/{core/selectors → selectors}/derivedSelectors.d.ts +1 -1
  180. package/dist/{core/selectors → selectors}/selectors.d.ts +10 -10
  181. package/dist/{core/selectors → selectors}/selectorsByID.d.ts +3 -3
  182. package/dist/{core/selectors → selectors}/selectorsByReference.d.ts +2 -2
  183. package/dist/session-store/index.d.ts +17 -0
  184. package/dist/session-store/interactivity-center/HMSInteractivityCenter.d.ts +24 -0
  185. package/dist/session-store/interactivity-center/HMSWhiteboardCenter.d.ts +17 -0
  186. package/dist/session-store/interactivity-center/index.d.ts +1 -0
  187. package/dist/signal/ISignalEventsObserver.d.ts +12 -0
  188. package/dist/signal/ISignalSendParamsProvider.d.ts +3 -0
  189. package/dist/signal/init/index.d.ts +13 -0
  190. package/dist/signal/init/models.d.ts +55 -0
  191. package/dist/signal/interfaces/index.d.ts +10 -0
  192. package/dist/signal/interfaces/polls.d.ts +152 -0
  193. package/dist/signal/interfaces/responses.d.ts +40 -0
  194. package/dist/signal/interfaces/superpowers.d.ts +83 -0
  195. package/dist/signal/interfaces/track.d.ts +12 -0
  196. package/dist/signal/jsonrpc/index.d.ts +92 -0
  197. package/dist/signal/jsonrpc/models.d.ts +64 -0
  198. package/dist/test/fakeStore/fakeHMSStatsStore.d.ts +1 -1
  199. package/dist/test/fakeStore/fakeHMSStore.d.ts +2 -2
  200. package/dist/test/fixtures.d.ts +1 -1
  201. package/dist/transport/ITransportObserver.d.ts +36 -0
  202. package/dist/transport/RetryScheduler.d.ts +39 -0
  203. package/dist/transport/index.d.ts +109 -0
  204. package/dist/transport/models/JoinParameters.d.ts +9 -0
  205. package/dist/transport/models/TransportFailureCategory.d.ts +14 -0
  206. package/dist/transport/models/TransportState.d.ts +9 -0
  207. package/dist/utils/analytics-deviceId.d.ts +1 -0
  208. package/dist/utils/autoplay.d.ts +1 -0
  209. package/dist/utils/constants.d.ts +51 -0
  210. package/dist/utils/date.d.ts +1 -0
  211. package/dist/utils/device-error.d.ts +1 -0
  212. package/dist/utils/fetch.d.ts +4 -0
  213. package/dist/utils/id-factory.d.ts +3 -0
  214. package/dist/utils/intersection-observer.d.ts +19 -0
  215. package/dist/utils/json.d.ts +1 -0
  216. package/dist/utils/jwt.d.ts +6 -0
  217. package/dist/utils/local-storage-polyfill.d.ts +1 -0
  218. package/dist/utils/local-storage.d.ts +12 -0
  219. package/dist/utils/logger.d.ts +26 -0
  220. package/dist/utils/math.d.ts +7 -0
  221. package/dist/utils/media.d.ts +15 -0
  222. package/dist/utils/network-info.d.ts +8 -0
  223. package/dist/utils/promise.d.ts +11 -0
  224. package/dist/utils/queue.d.ts +15 -0
  225. package/dist/utils/resize-observer.d.ts +19 -0
  226. package/dist/utils/session-description.d.ts +12 -0
  227. package/dist/utils/support.d.ts +13 -0
  228. package/dist/utils/timer-utils.d.ts +15 -0
  229. package/dist/utils/track-audio-level-monitor.d.ts +38 -0
  230. package/dist/utils/track.d.ts +4 -0
  231. package/dist/utils/track.futuretest.d.ts +1 -0
  232. package/dist/utils/typed-event-emitter.d.ts +14 -0
  233. package/dist/utils/user-agent.d.ts +3 -0
  234. package/dist/utils/validations.d.ts +13 -0
  235. package/dist/{core/webrtc-stats → webrtc-stats}/HMSStats.d.ts +1 -1
  236. package/dist/webrtc-stats/internal.d.ts +1 -0
  237. package/dist/webrtc-stats/selectors.d.ts +20 -0
  238. package/dist/{core/webrtc-stats → webrtc-stats}/webrtc-stats-store.d.ts +1 -1
  239. package/package.json +13 -6
  240. package/src/{core/IHMSActions.ts → IHMSActions.ts} +4 -3
  241. package/src/{core/IHMSStore.ts → IHMSStore.ts} +1 -1
  242. package/src/analytics/AdditionalAnalyticsProperties.ts +27 -0
  243. package/src/analytics/AnalyticsEvent.ts +67 -0
  244. package/src/analytics/AnalyticsEventDomains.ts +5 -0
  245. package/src/analytics/AnalyticsEventFactory.ts +260 -0
  246. package/src/analytics/AnalyticsEventLevel.ts +13 -0
  247. package/src/analytics/AnalyticsEventsService.ts +82 -0
  248. package/src/analytics/AnalyticsTimer.ts +60 -0
  249. package/src/analytics/AnalyticsTransport.ts +53 -0
  250. package/src/analytics/HTTPAnalyticsTransport.ts +120 -0
  251. package/src/analytics/IAnalyticsPropertiesProvider.ts +5 -0
  252. package/src/analytics/IAnalyticsTransportProvider.ts +7 -0
  253. package/src/analytics/MediaPluginsAnalyticsFactory.ts +74 -0
  254. package/src/analytics/domain-analytics.ts +25 -0
  255. package/src/analytics/signal-transport/LocalStoageEvents.ts +34 -0
  256. package/src/analytics/signal-transport/SignalAnalyticsTransport.ts +11 -0
  257. package/src/analytics/stats/BaseStatsAnalytics.ts +177 -0
  258. package/src/analytics/stats/PublishStatsAnalytics.ts +148 -0
  259. package/src/analytics/stats/SubscribeStatsAnalytics.ts +126 -0
  260. package/src/analytics/stats/index.ts +3 -0
  261. package/src/analytics/stats/interfaces.ts +90 -0
  262. package/src/audio-sink-manager/AudioSinkManager.ts +277 -0
  263. package/src/audio-sink-manager/index.ts +1 -0
  264. package/src/common/storeName.ts +1 -1
  265. package/src/common/ui-logger.ts +1 -1
  266. package/src/connection/HMSConnection.ts +202 -0
  267. package/src/connection/HMSDataChannel.ts +44 -0
  268. package/src/connection/IConnectionObserver.ts +6 -0
  269. package/src/connection/channel-messages.ts +34 -0
  270. package/src/connection/model.ts +10 -0
  271. package/src/connection/publish/IPublishConnectionObserver.ts +13 -0
  272. package/src/connection/publish/publishConnection.ts +59 -0
  273. package/src/connection/subscribe/ISubscribeConnectionObserver.ts +26 -0
  274. package/src/connection/subscribe/subscribeConnection.ts +208 -0
  275. package/src/controller/beam/BeamSpeakerLabelsLogger.ts +2 -2
  276. package/src/device-manager/AudioOutputManager.ts +43 -0
  277. package/src/device-manager/DeviceManager.test.ts +42 -0
  278. package/src/device-manager/DeviceManager.ts +424 -0
  279. package/src/device-manager/DeviceStorage.test.ts +38 -0
  280. package/src/device-manager/DeviceStorage.ts +67 -0
  281. package/src/device-manager/DeviceTestData.ts +206 -0
  282. package/src/device-manager/index.ts +1 -0
  283. package/src/error/ErrorCodes.ts +156 -0
  284. package/src/error/ErrorCodes.ts.gyb +69 -0
  285. package/src/error/ErrorFactory.ts +549 -0
  286. package/src/error/ErrorFactory.ts.gyb +109 -0
  287. package/src/error/HMSAction.ts +19 -0
  288. package/src/error/HMSException.ts +50 -0
  289. package/src/error/utils.ts +77 -0
  290. package/src/events/EventBus.ts +80 -0
  291. package/src/events/HMSInternalEvent.ts +27 -0
  292. package/src/feature-flags.d.ts +10 -0
  293. package/src/index.ts +56 -2
  294. package/src/interfaces/change-track-state.ts +24 -0
  295. package/src/interfaces/config.ts +79 -0
  296. package/src/interfaces/devices.ts +30 -0
  297. package/src/interfaces/error-listener.ts +5 -0
  298. package/src/interfaces/framework-info.ts +19 -0
  299. package/src/interfaces/get-token.ts +8 -0
  300. package/src/interfaces/hls-config.ts +38 -0
  301. package/src/interfaces/hms.ts +103 -0
  302. package/src/interfaces/index.ts +21 -0
  303. package/src/interfaces/internal.ts +4 -0
  304. package/src/interfaces/leave-room-request.ts +7 -0
  305. package/src/interfaces/message.ts +18 -0
  306. package/src/interfaces/peer/connection-quality.ts +13 -0
  307. package/src/interfaces/peer/hms-local-peer.ts +12 -0
  308. package/src/interfaces/peer/hms-peer.ts +25 -0
  309. package/src/interfaces/peer/hms-remote-peer.ts +9 -0
  310. package/src/interfaces/peer/index.ts +4 -0
  311. package/src/interfaces/peer-list-iterator.ts +6 -0
  312. package/src/interfaces/playlist.ts +116 -0
  313. package/src/interfaces/preview-listener.ts +16 -0
  314. package/src/interfaces/role-change-request.ts +12 -0
  315. package/src/interfaces/role.ts +54 -0
  316. package/src/interfaces/room.ts +105 -0
  317. package/src/interfaces/rtmp-recording-config.ts +11 -0
  318. package/src/interfaces/session-store/index.ts +18 -0
  319. package/src/{core/schema → interfaces/session-store}/interactivity-center.ts +14 -8
  320. package/src/interfaces/session-store/polls.ts +167 -0
  321. package/src/interfaces/session-store/whiteboard.ts +23 -0
  322. package/src/interfaces/settings.ts +26 -0
  323. package/src/interfaces/simulcast-layers.ts +36 -0
  324. package/src/interfaces/speaker.ts +8 -0
  325. package/src/interfaces/track-settings.ts +121 -0
  326. package/src/interfaces/types.ts +6 -0
  327. package/src/interfaces/update-listener.ts +92 -0
  328. package/src/interfaces/webrtc-stats.ts +97 -0
  329. package/src/internal.ts +19 -0
  330. package/src/media/settings/HMSAudioTrackSettings.ts +95 -0
  331. package/src/media/settings/HMSTrackSettings.ts +83 -0
  332. package/src/media/settings/HMSVideoTrackSettings.ts +153 -0
  333. package/src/media/settings/index.ts +3 -0
  334. package/src/media/streams/HMSLocalStream.ts +77 -0
  335. package/src/media/streams/HMSMediaStream.ts +21 -0
  336. package/src/media/streams/HMSRemoteStream.ts +90 -0
  337. package/src/media/streams/index.ts +3 -0
  338. package/src/media/streams/stream.test.ts +82 -0
  339. package/src/media/tracks/HMSAudioTrack.ts +86 -0
  340. package/src/media/tracks/HMSLocalAudioTrack.ts +284 -0
  341. package/src/media/tracks/HMSLocalVideoTrack.ts +466 -0
  342. package/src/media/tracks/HMSRemoteAudioTrack.ts +11 -0
  343. package/src/media/tracks/HMSRemoteVideoTrack.ts +248 -0
  344. package/src/media/tracks/HMSTrack.ts +112 -0
  345. package/src/media/tracks/HMSTrackType.ts +4 -0
  346. package/src/media/tracks/HMSVideoTrack.ts +89 -0
  347. package/src/media/tracks/RemoteVideoTrack.test.ts +158 -0
  348. package/src/media/tracks/VideoElementManager.ts +182 -0
  349. package/src/media/tracks/index.ts +16 -0
  350. package/src/media/tracks/trackUtils.test.ts +46 -0
  351. package/src/media/tracks/trackUtils.ts +45 -0
  352. package/src/media/tracks/videoElementManager.test.ts +92 -0
  353. package/src/notification-manager/HMSNotificationMethod.ts +38 -0
  354. package/src/notification-manager/HMSNotifications.ts +335 -0
  355. package/src/notification-manager/NotificationManager.ts +198 -0
  356. package/src/notification-manager/fixtures.ts +183 -0
  357. package/src/notification-manager/index.ts +2 -0
  358. package/src/notification-manager/managers/ActiveSpeakerManager.ts +28 -0
  359. package/src/notification-manager/managers/BroadcastManager.ts +21 -0
  360. package/src/notification-manager/managers/ConnectionQualityManager.ts +22 -0
  361. package/src/notification-manager/managers/PeerListManager.ts +173 -0
  362. package/src/notification-manager/managers/PeerManager.ts +189 -0
  363. package/src/notification-manager/managers/PolicyChangeManager.ts +50 -0
  364. package/src/notification-manager/managers/PollsManager.ts +157 -0
  365. package/src/notification-manager/managers/RequestManager.ts +138 -0
  366. package/src/notification-manager/managers/RoomUpdateManager.ts +316 -0
  367. package/src/notification-manager/managers/SessionMetadataManager.ts +26 -0
  368. package/src/notification-manager/managers/TrackManager.ts +296 -0
  369. package/src/notification-manager/managers/WhiteboardManager.ts +44 -0
  370. package/src/notification-manager/managers/onDemandTrackManager.ts +101 -0
  371. package/src/notification-manager/managers/utils.ts +14 -0
  372. package/src/notification-manager/notification-manager.test.ts +226 -0
  373. package/src/playlist-manager/AudioContextManager.ts +44 -0
  374. package/src/playlist-manager/PlaylistAudioManager.ts +105 -0
  375. package/src/playlist-manager/PlaylistManager.ts +389 -0
  376. package/src/playlist-manager/PlaylistVideoManager.ts +153 -0
  377. package/src/playlist-manager/index.ts +1 -0
  378. package/src/plugins/audio/AudioPluginsAnalytics.ts +93 -0
  379. package/src/plugins/audio/HMSAudioPlugin.ts +71 -0
  380. package/src/plugins/audio/HMSAudioPluginsManager.ts +266 -0
  381. package/src/plugins/audio/index.ts +4 -0
  382. package/src/plugins/index.ts +2 -0
  383. package/src/plugins/video/HMSMediaStreamPlugin.ts +11 -0
  384. package/src/plugins/video/HMSMediaStreamPluginsManager.ts +33 -0
  385. package/src/plugins/video/HMSVideoPlugin.ts +81 -0
  386. package/src/plugins/video/HMSVideoPluginsManager.ts +443 -0
  387. package/src/plugins/video/VideoPluginsAnalytics.ts +130 -0
  388. package/src/plugins/video/index.ts +4 -0
  389. package/src/{core/hmsSDKStore → reactive-store}/HMSNotifications.ts +1 -1
  390. package/src/{core/hmsSDKStore → reactive-store}/HMSPlaylist.ts +2 -2
  391. package/src/{core/hmsSDKStore → reactive-store}/HMSReactiveStore.ts +5 -4
  392. package/src/{core/hmsSDKStore → reactive-store}/HMSSDKActions.ts +84 -67
  393. package/src/{core/hmsSDKStore → reactive-store}/HMSSessionStore.ts +2 -1
  394. package/src/{core/hmsSDKStore → reactive-store}/adapter.ts +18 -14
  395. package/src/{core/hmsSDKStore → reactive-store}/common/mapping.ts +1 -1
  396. package/src/{core/hmsSDKStore → reactive-store}/sdkUtils/ActionBatcher.ts +1 -1
  397. package/src/{core/hmsSDKStore → reactive-store}/sdkUtils/sdkUtils.ts +1 -1
  398. package/src/{core/hmsSDKStore → reactive-store}/sdkUtils/storeMergeUtils.ts +2 -2
  399. package/src/rtc-stats/HMSWebrtcInternals.ts +105 -0
  400. package/src/rtc-stats/HMSWebrtcStats.ts +140 -0
  401. package/src/rtc-stats/index.ts +2 -0
  402. package/src/rtc-stats/utils.ts +266 -0
  403. package/src/{core/schema → schema}/device-change.ts +1 -1
  404. package/src/{core/schema → schema}/index.ts +0 -1
  405. package/src/{core/schema → schema}/message.ts +2 -0
  406. package/src/{core/schema → schema}/notification.ts +1 -1
  407. package/src/{core/schema → schema}/peer.ts +1 -1
  408. package/src/{core/schema → schema}/role.ts +1 -1
  409. package/src/{core/schema → schema}/room.ts +1 -1
  410. package/src/{core/schema → schema}/schema.ts +1 -8
  411. package/src/sdk/HMSPeerListIterator.ts +73 -0
  412. package/src/sdk/LocalTrackManager.test.ts +477 -0
  413. package/src/sdk/LocalTrackManager.ts +612 -0
  414. package/src/sdk/NetworkTestManager.ts +119 -0
  415. package/src/sdk/RoleChangeManager.ts +157 -0
  416. package/src/sdk/WakeLockManager.ts +46 -0
  417. package/src/sdk/index.ts +1410 -0
  418. package/src/sdk/models/HMSRoom.ts +29 -0
  419. package/src/sdk/models/peer/HMSLocalPeer.ts +36 -0
  420. package/src/sdk/models/peer/HMSPeer.ts +93 -0
  421. package/src/sdk/models/peer/HMSRemotePeer.ts +18 -0
  422. package/src/sdk/models/peer/index.ts +3 -0
  423. package/src/sdk/models/peer/peer.test.ts +119 -0
  424. package/src/sdk/store/Store.ts +453 -0
  425. package/src/sdk/store/StoreInterfaces.ts +8 -0
  426. package/src/sdk/store/index.ts +1 -0
  427. package/src/{core/selectors → selectors}/derivedSelectors.ts +1 -1
  428. package/src/{core/selectors → selectors}/selectors.ts +1 -1
  429. package/src/{core/selectors → selectors}/selectorsByID.ts +1 -1
  430. package/src/session-store/index.ts +49 -0
  431. package/src/session-store/interactivity-center/HMSInteractivityCenter.ts +250 -0
  432. package/src/session-store/interactivity-center/HMSWhiteboardCenter.ts +98 -0
  433. package/src/session-store/interactivity-center/index.ts +1 -0
  434. package/src/signal/ISignalEventsObserver.ts +20 -0
  435. package/src/signal/ISignalSendParamsProvider.ts +3 -0
  436. package/src/signal/init/index.ts +86 -0
  437. package/src/signal/init/init.test.ts +155 -0
  438. package/src/signal/init/models.ts +61 -0
  439. package/src/signal/interfaces/index.ts +12 -0
  440. package/src/signal/interfaces/polls.ts +189 -0
  441. package/src/signal/interfaces/responses.ts +48 -0
  442. package/src/signal/interfaces/superpowers.ts +98 -0
  443. package/src/signal/interfaces/track.ts +13 -0
  444. package/src/signal/jsonrpc/index.ts +633 -0
  445. package/src/signal/jsonrpc/models.ts +81 -0
  446. package/src/test/fakeStore/fakeHMSStatsStore.ts +1 -1
  447. package/src/test/fakeStore/fakeHMSStore.ts +3 -10
  448. package/src/test/fixtures.ts +1 -1
  449. package/src/test/unit/HMSNotifications.test.ts +5 -5
  450. package/src/test/unit/reactiveStore.test.ts +2 -2
  451. package/src/test/unit/roleSelectors.test.ts +1 -1
  452. package/src/test/unit/selectors.test.ts +1 -1
  453. package/src/test/unit/selectorsByReference.test.ts +1 -1
  454. package/src/test/unit/storeMergeUtils.test.ts +2 -3
  455. package/src/test/unit/webrtc-stats.test.ts +2 -1
  456. package/src/transport/ITransportObserver.ts +45 -0
  457. package/src/transport/RetryScheduler.ts +218 -0
  458. package/src/transport/index.ts +1185 -0
  459. package/src/transport/models/JoinParameters.ts +10 -0
  460. package/src/transport/models/TransportFailureCategory.ts +15 -0
  461. package/src/transport/models/TransportState.ts +9 -0
  462. package/src/utils/analytics-deviceId.ts +15 -0
  463. package/src/utils/autoplay.ts +37 -0
  464. package/src/utils/constants.ts +66 -0
  465. package/src/utils/date.ts +3 -0
  466. package/src/utils/device-error.ts +40 -0
  467. package/src/utils/fetch.ts +34 -0
  468. package/src/utils/id-factory.ts +5 -0
  469. package/src/utils/intersection-observer.test.ts +46 -0
  470. package/src/utils/intersection-observer.ts +54 -0
  471. package/src/utils/json.ts +12 -0
  472. package/src/utils/jwt.test.ts +40 -0
  473. package/src/utils/jwt.ts +40 -0
  474. package/src/utils/local-storage-polyfill.ts +47 -0
  475. package/src/utils/local-storage.ts +44 -0
  476. package/src/utils/logger.ts +100 -0
  477. package/src/utils/math.ts +18 -0
  478. package/src/utils/media.ts +65 -0
  479. package/src/utils/network-info.ts +19 -0
  480. package/src/utils/promise.ts +19 -0
  481. package/src/utils/queue.ts +34 -0
  482. package/src/utils/resize-observer.test.ts +53 -0
  483. package/src/utils/resize-observer.ts +59 -0
  484. package/src/utils/session-description.test.ts +49 -0
  485. package/src/utils/session-description.ts +55 -0
  486. package/src/utils/support.ts +30 -0
  487. package/src/utils/timer-utils.ts +69 -0
  488. package/src/utils/track-audio-level-monitor.ts +153 -0
  489. package/src/utils/track.futuretest.ts +11 -0
  490. package/src/utils/track.ts +30 -0
  491. package/src/utils/typed-event-emitter.ts +35 -0
  492. package/src/utils/user-agent.ts +79 -0
  493. package/src/utils/validations.ts +34 -0
  494. package/src/{core/webrtc-stats → webrtc-stats}/HMSStats.ts +3 -3
  495. package/src/webrtc-stats/internal.ts +2 -0
  496. package/src/{core/webrtc-stats → webrtc-stats}/selectors.ts +1 -1
  497. package/src/{core/webrtc-stats → webrtc-stats}/webrtc-stats-store.ts +4 -2
  498. package/dist/core/hmsSDKStore/HMSInteractivityCenter.d.ts +0 -22
  499. package/dist/core/hmsSDKStore/sdkTypes.d.ts +0 -3
  500. package/dist/core/index.d.ts +0 -8
  501. package/dist/core/schema/interactivity-center.d.ts +0 -10
  502. package/dist/core/webrtc-stats/selectors.d.ts +0 -20
  503. package/src/core/hmsSDKStore/HMSInteractivityCenter.ts +0 -60
  504. package/src/core/hmsSDKStore/sdkTypes.ts +0 -136
  505. package/src/core/index.ts +0 -48
  506. /package/dist/{core/hmsSDKStore → reactive-store}/HMSReactiveStore.d.ts +0 -0
  507. /package/dist/{core/hmsSDKStore → reactive-store}/common/presence.d.ts +0 -0
  508. /package/dist/{core/hmsSDKStore → reactive-store}/internalTypes.d.ts +0 -0
  509. /package/dist/{core/hmsSDKStore → reactive-store}/sdkUtils/ActionBatcher.d.ts +0 -0
  510. /package/dist/{core/schema → schema}/error.d.ts +0 -0
  511. /package/dist/{core/schema → schema}/playlist-selectors.d.ts +0 -0
  512. /package/dist/{core/schema → schema}/playlist.d.ts +0 -0
  513. /package/dist/{core/schema → schema}/requests.d.ts +0 -0
  514. /package/dist/{core/schema → schema}/session-store.d.ts +0 -0
  515. /package/dist/{core/schema → schema}/settings.d.ts +0 -0
  516. /package/dist/{core/selectors → selectors}/common.d.ts +0 -0
  517. /package/dist/{core/selectors → selectors}/index.d.ts +0 -0
  518. /package/dist/{core/selectors → selectors}/playlistselectors.d.ts +0 -0
  519. /package/dist/{core/selectors → selectors}/selectorUtils.d.ts +0 -0
  520. /package/dist/{core/webrtc-stats → webrtc-stats}/index.d.ts +0 -0
  521. /package/src/{core/hmsSDKStore → reactive-store}/common/presence.ts +0 -0
  522. /package/src/{core/hmsSDKStore → reactive-store}/internalTypes.ts +0 -0
  523. /package/src/{core/schema → schema}/error.ts +0 -0
  524. /package/src/{core/schema → schema}/playlist-selectors.ts +0 -0
  525. /package/src/{core/schema → schema}/playlist.ts +0 -0
  526. /package/src/{core/schema → schema}/requests.ts +0 -0
  527. /package/src/{core/schema → schema}/session-store.ts +0 -0
  528. /package/src/{core/schema → schema}/settings.ts +0 -0
  529. /package/src/{core/selectors → selectors}/common.ts +0 -0
  530. /package/src/{core/selectors → selectors}/index.ts +0 -0
  531. /package/src/{core/selectors → selectors}/playlistselectors.ts +0 -0
  532. /package/src/{core/selectors → selectors}/selectorUtils.ts +0 -0
  533. /package/src/{core/selectors → selectors}/selectorsByReference.ts +0 -0
  534. /package/src/{core/webrtc-stats → webrtc-stats}/index.ts +0 -0
@@ -0,0 +1,15 @@
1
+ export interface DataChannelObserver {
2
+ onMessage(value: string): void;
3
+ }
4
+ export default class HMSDataChannel {
5
+ private readonly TAG;
6
+ private readonly nativeChannel;
7
+ private readonly observer;
8
+ private readonly metadata;
9
+ get id(): number | null;
10
+ get label(): string;
11
+ get readyState(): RTCDataChannelState;
12
+ constructor(nativeChannel: RTCDataChannel, observer: DataChannelObserver, metadata?: string);
13
+ send(message: string): void;
14
+ close(): void;
15
+ }
@@ -0,0 +1,4 @@
1
+ export default interface IConnectionObserver {
2
+ onIceConnectionChange(newState: RTCIceConnectionState): void;
3
+ onConnectionStateChange(newState: RTCPeerConnectionState): void;
4
+ }
@@ -0,0 +1,30 @@
1
+ import { HMSSimulcastLayer } from '../interfaces';
2
+ import { HMSPreferredSimulcastLayer } from '../interfaces/simulcast-layers';
3
+ export interface PreferVideoLayerParams {
4
+ params: {
5
+ max_spatial_layer: HMSSimulcastLayer;
6
+ track_id: string;
7
+ };
8
+ method: 'prefer-video-track-state';
9
+ }
10
+ export interface PreferLayerResponse {
11
+ id: string;
12
+ error?: {
13
+ code: number;
14
+ message: string;
15
+ };
16
+ }
17
+ export interface PreferAudioLayerParams {
18
+ params: {
19
+ subscribed: boolean;
20
+ track_id: string;
21
+ };
22
+ method: 'prefer-audio-track-state';
23
+ }
24
+ export interface VideoTrackLayerUpdate {
25
+ current_layer: HMSSimulcastLayer;
26
+ expected_layer: HMSPreferredSimulcastLayer;
27
+ track_id: string;
28
+ subscriber_degraded: boolean;
29
+ publisher_degraded: boolean;
30
+ }
@@ -0,0 +1,8 @@
1
+ export declare enum HMSConnectionRole {
2
+ Publish = 0,
3
+ Subscribe = 1
4
+ }
5
+ export interface HMSTrickle {
6
+ candidate: RTCIceCandidateInit;
7
+ target: HMSConnectionRole;
8
+ }
@@ -0,0 +1,10 @@
1
+ import IConnectionObserver from '../IConnectionObserver';
2
+ export interface IPublishConnectionObserver extends IConnectionObserver {
3
+ /** Triggered when renegotiation is necessary.
4
+ * - A new local track/stream is added/removed
5
+ * - A new data-channel is added/removed
6
+ */
7
+ onRenegotiationNeeded(): Promise<void>;
8
+ onDTLSTransportStateChange: (state?: RTCDtlsTransportState) => void;
9
+ onDTLSTransportError: (error: Error) => void;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { IPublishConnectionObserver } from './IPublishConnectionObserver';
2
+ import JsonRpcSignal from '../../signal/jsonrpc';
3
+ import HMSConnection from '../HMSConnection';
4
+ export default class HMSPublishConnection extends HMSConnection {
5
+ private readonly TAG;
6
+ private readonly observer;
7
+ readonly nativeConnection: RTCPeerConnection;
8
+ readonly channel: RTCDataChannel;
9
+ constructor(signal: JsonRpcSignal, config: RTCConfiguration, observer: IPublishConnectionObserver);
10
+ initAfterJoin(): void;
11
+ }
@@ -0,0 +1,14 @@
1
+ import { HMSTrack } from '../../media/tracks/HMSTrack';
2
+ import IConnectionObserver from '../IConnectionObserver';
3
+ export default interface ISubscribeConnectionObserver extends IConnectionObserver {
4
+ /** Triggered when a remote peer opens a DataChannel.
5
+ * Internally there is a data channel with label [API_DATA_CHANNEL]
6
+ * which is internally.
7
+ *
8
+ * TODO: Notify about all the other data channels to the sdk-layer */
9
+ onApiChannelMessage(message: string): void;
10
+ /** Triggered when media is received on a new streams from remote peer. */
11
+ onTrackAdd(track: HMSTrack): void;
12
+ /** Triggered when a remote peer close a streams.*/
13
+ onTrackRemove(track: HMSTrack): void;
14
+ }
@@ -0,0 +1,24 @@
1
+ import ISubscribeConnectionObserver from './ISubscribeConnectionObserver';
2
+ import { InitFlags } from '../../signal/init/models';
3
+ import JsonRpcSignal from '../../signal/jsonrpc';
4
+ import { PreferAudioLayerParams, PreferLayerResponse, PreferVideoLayerParams } from '../channel-messages';
5
+ import HMSConnection from '../HMSConnection';
6
+ export default class HMSSubscribeConnection extends HMSConnection {
7
+ private isFlagEnabled;
8
+ private readonly TAG;
9
+ private readonly remoteStreams;
10
+ private readonly observer;
11
+ private readonly MAX_RETRIES;
12
+ readonly nativeConnection: RTCPeerConnection;
13
+ private pendingMessageQueue;
14
+ private apiChannel?;
15
+ private eventEmitter;
16
+ private initNativeConnectionCallbacks;
17
+ constructor(signal: JsonRpcSignal, config: RTCConfiguration, isFlagEnabled: (flag: InitFlags) => boolean, observer: ISubscribeConnectionObserver);
18
+ sendOverApiDataChannel(message: string): void;
19
+ sendOverApiDataChannelWithResponse<T extends PreferAudioLayerParams | PreferVideoLayerParams>(message: T, requestId?: string): Promise<PreferLayerResponse>;
20
+ close(): Promise<void>;
21
+ private handlePendingApiMessages;
22
+ private sendMessage;
23
+ private waitForResponse;
24
+ }
@@ -1,5 +1,5 @@
1
- import { HMSGenericTypes, HMSPeer, IHMSStore } from '../../core';
2
- import { IHMSActions } from '../../core/IHMSActions';
1
+ import { HMSGenericTypes, HMSPeer, IHMSStore } from '../../';
2
+ import { IHMSActions } from '../../IHMSActions';
3
3
  /**
4
4
  * Log data of audio level and speaker speaking periodically to beam for transcript
5
5
  * diarization.
@@ -0,0 +1,18 @@
1
+ import { DeviceManager } from './DeviceManager';
2
+ import { AudioSinkManager } from '../audio-sink-manager';
3
+ export interface IAudioOutputManager {
4
+ getDevice(): MediaDeviceInfo | undefined;
5
+ setDevice(deviceId: string): Promise<MediaDeviceInfo | undefined>;
6
+ getVolume(): number;
7
+ setVolume(value: number): void;
8
+ }
9
+ export declare class AudioOutputManager implements IAudioOutputManager {
10
+ private deviceManager;
11
+ private audioSinkManager;
12
+ constructor(deviceManager: DeviceManager, audioSinkManager: AudioSinkManager);
13
+ getVolume(): number;
14
+ setVolume(value: number): void;
15
+ getDevice(): MediaDeviceInfo | undefined;
16
+ setDevice(deviceId?: string): Promise<MediaDeviceInfo | undefined>;
17
+ unblockAutoplay(): Promise<void>;
18
+ }
@@ -0,0 +1,57 @@
1
+ import { EventBus } from '../events/EventBus';
2
+ import { DeviceMap, SelectedDevices } from '../interfaces';
3
+ import { Store } from '../sdk/store';
4
+ interface HMSDeviceManager extends DeviceMap {
5
+ outputDevice?: MediaDeviceInfo;
6
+ hasWebcamPermission: boolean;
7
+ hasMicrophonePermission: boolean;
8
+ }
9
+ export declare class DeviceManager implements HMSDeviceManager {
10
+ private store;
11
+ private eventBus;
12
+ audioInput: MediaDeviceInfo[];
13
+ audioOutput: MediaDeviceInfo[];
14
+ videoInput: MediaDeviceInfo[];
15
+ outputDevice?: MediaDeviceInfo;
16
+ hasWebcamPermission: boolean;
17
+ hasMicrophonePermission: boolean;
18
+ private readonly TAG;
19
+ private initialized;
20
+ private videoInputChanged;
21
+ private audioInputChanged;
22
+ constructor(store: Store, eventBus: EventBus);
23
+ updateOutputDevice: (deviceId?: string) => Promise<MediaDeviceInfo | undefined>;
24
+ init(force?: boolean): Promise<void>;
25
+ getDevices(): DeviceMap;
26
+ cleanup(): void;
27
+ getCurrentSelection: () => SelectedDevices;
28
+ private createIdentifier;
29
+ private computeChange;
30
+ private enumerateDevices;
31
+ private handleDeviceChange;
32
+ /**
33
+ * Function to get the device after device change
34
+ * Chrome and Edge provide a default device from which we select the actual device
35
+ * Firefox and safari give 0th device as system default
36
+ * @returns {MediaDeviceInfo}
37
+ */
38
+ getNewAudioInputDevice(): MediaDeviceInfo | undefined;
39
+ /**
40
+ * This method is to select the input/output from same group
41
+ * same group meaning both input/output are of same device
42
+ * This method might override the default coming from browser and system so as to select options from same
43
+ * device type. This is required in certain cases where browser's default is not correct.
44
+ * Algo:
45
+ * 1. find the non default input device if selected one is default by matching device label
46
+ * 2. find the corresponding output device which has the same group id or same label
47
+ * 3. select the previous selected device if nothing was found
48
+ * 4. select the default one if no matching device was found and previous device doesn't exist anymore
49
+ * 5. select the first option if there is no default
50
+ */
51
+ setOutputDevice(deviceChange?: boolean): Promise<void>;
52
+ private handleAudioInputDeviceChange;
53
+ private handleVideoInputDeviceChange;
54
+ private getAudioOutputDeviceMatchingInput;
55
+ private logDevices;
56
+ }
57
+ export {};
@@ -0,0 +1,30 @@
1
+ import { DeviceMap, SelectedDevices } from '../interfaces';
2
+ declare type DeviceInfo = {
3
+ deviceId?: string;
4
+ groupId?: string;
5
+ };
6
+ /**
7
+ * This class is to manage storing and retrieving selected devices
8
+ * from localstorage
9
+ * @internal
10
+ */
11
+ declare class DeviceStorage {
12
+ private storage;
13
+ private remember;
14
+ private devices?;
15
+ private readonly TAG;
16
+ setDevices(devices: DeviceMap): void;
17
+ rememberDevices(value: boolean): void;
18
+ /**
19
+ * This will update the passed in type value in storage
20
+ * @param {string} type - One of audioInput | videoInput | audioOutput
21
+ * @param {DeviceInfo} param
22
+ * @returns {void}
23
+ */
24
+ updateSelection(type: 'audioInput' | 'videoInput' | 'audioOutput', { deviceId, groupId }: DeviceInfo): void;
25
+ getSelection(): SelectedDevices | undefined;
26
+ cleanup(): void;
27
+ private isSame;
28
+ }
29
+ export declare const DeviceStorageManager: DeviceStorage;
30
+ export {};
@@ -0,0 +1,15 @@
1
+ export declare const DevicesWiredHeadphonesWithoutMic: {
2
+ audioInput: MediaDeviceInfo[];
3
+ audioOutput: MediaDeviceInfo[];
4
+ videoInput: MediaDeviceInfo[];
5
+ };
6
+ export declare const DevicesWiredHeadphonesWithMic: {
7
+ audioInput: MediaDeviceInfo[];
8
+ audioOutput: MediaDeviceInfo[];
9
+ videoInput: MediaDeviceInfo[];
10
+ };
11
+ export declare const DevicesWithStereoHeadphones: {
12
+ audioInput: MediaDeviceInfo[];
13
+ audioOutput: MediaDeviceInfo[];
14
+ videoInput: MediaDeviceInfo[];
15
+ };
@@ -0,0 +1 @@
1
+ export { DeviceManager } from './DeviceManager';
@@ -0,0 +1,64 @@
1
+ export declare const ErrorCodes: {
2
+ WebSocketConnectionErrors: {
3
+ FAILED_TO_CONNECT: number;
4
+ WEBSOCKET_CONNECTION_LOST: number;
5
+ ABNORMAL_CLOSE: number;
6
+ };
7
+ APIErrors: {
8
+ SERVER_ERRORS: number;
9
+ INIT_CONFIG_NOT_AVAILABLE: number;
10
+ ENDPOINT_UNREACHABLE: number;
11
+ INVALID_TOKEN_FORMAT: number;
12
+ };
13
+ TracksErrors: {
14
+ GENERIC_TRACK: number;
15
+ CANT_ACCESS_CAPTURE_DEVICE: number;
16
+ DEVICE_NOT_AVAILABLE: number;
17
+ DEVICE_IN_USE: number;
18
+ DEVICE_LOST_MIDWAY: number;
19
+ NOTHING_TO_RETURN: number;
20
+ INVALID_VIDEO_SETTINGS: number;
21
+ CODEC_CHANGE_NOT_PERMITTED: number;
22
+ AUTOPLAY_ERROR: number;
23
+ OVER_CONSTRAINED: number;
24
+ NO_AUDIO_DETECTED: number;
25
+ SYSTEM_DENIED_PERMISSION: number;
26
+ CURRENT_TAB_NOT_SHARED: number;
27
+ AUDIO_PLAYBACK_ERROR: number;
28
+ SELECTED_DEVICE_MISSING: number;
29
+ };
30
+ WebrtcErrors: {
31
+ CREATE_OFFER_FAILED: number;
32
+ CREATE_ANSWER_FAILED: number;
33
+ SET_LOCAL_DESCRIPTION_FAILED: number;
34
+ SET_REMOTE_DESCRIPTION_FAILED: number;
35
+ ICE_FAILURE: number;
36
+ ICE_DISCONNECTED: number;
37
+ STATS_FAILED: number;
38
+ };
39
+ WebsocketMethodErrors: {
40
+ SERVER_ERRORS: number;
41
+ ALREADY_JOINED: number;
42
+ CANNOT_JOIN_PREVIEW_IN_PROGRESS: number;
43
+ };
44
+ GenericErrors: {
45
+ NOT_CONNECTED: number;
46
+ SIGNALLING: number;
47
+ UNKNOWN: number;
48
+ NOT_READY: number;
49
+ JSON_PARSING_FAILED: number;
50
+ TRACK_METADATA_MISSING: number;
51
+ RTC_TRACK_MISSING: number;
52
+ PEER_METADATA_MISSING: number;
53
+ INVALID_ROLE: number;
54
+ PREVIEW_IN_PROGRESS: number;
55
+ MISSING_MEDIADEVICES: number;
56
+ MISSING_RTCPEERCONNECTION: number;
57
+ LOCAL_STORAGE_ACCESS_DENIED: number;
58
+ VALIDATION_FAILED: number;
59
+ };
60
+ PlaylistErrors: {
61
+ NO_ENTRY_TO_PLAY: number;
62
+ NO_ENTRY_IS_PLAYING: number;
63
+ };
64
+ };
@@ -0,0 +1,74 @@
1
+ import { HMSAction } from './HMSAction';
2
+ import { HMSException } from './HMSException';
3
+ import { HMSSignalMethod } from '../signal/jsonrpc/models';
4
+ export declare const ErrorFactory: {
5
+ WebSocketConnectionErrors: {
6
+ FailedToConnect(action: HMSAction, description?: string): HMSException;
7
+ WebSocketConnectionLost(action: HMSAction, description?: string): HMSException;
8
+ AbnormalClose(action: HMSAction, description?: string): HMSException;
9
+ };
10
+ APIErrors: {
11
+ ServerErrors(code: number, action: HMSAction, description?: string, isTerminal?: boolean): HMSException;
12
+ EndpointUnreachable(action: HMSAction, description?: string): HMSException;
13
+ InvalidTokenFormat(action: HMSAction, description?: string): HMSException;
14
+ InitConfigNotAvailable(action: HMSAction, description?: string): HMSException;
15
+ };
16
+ TracksErrors: {
17
+ GenericTrack(action: HMSAction, description?: string): HMSException;
18
+ CantAccessCaptureDevice(action: HMSAction, deviceInfo: string, description?: string): HMSException;
19
+ DeviceNotAvailable(action: HMSAction, deviceInfo: string, description?: string): HMSException;
20
+ DeviceInUse(action: HMSAction, deviceInfo: string, description?: string): HMSException;
21
+ DeviceLostMidway(action: HMSAction, deviceInfo: string, description?: string): HMSException;
22
+ NothingToReturn(action: HMSAction, description?: string, message?: string): HMSException;
23
+ InvalidVideoSettings(action: HMSAction, description?: string): HMSException;
24
+ AutoplayBlocked(action: HMSAction, description?: string): HMSException;
25
+ CodecChangeNotPermitted(action: HMSAction, description?: string): HMSException;
26
+ OverConstrained(action: HMSAction, deviceInfo: string, description?: string): HMSException;
27
+ NoAudioDetected(action: HMSAction, description?: string): HMSException;
28
+ SystemDeniedPermission(action: HMSAction, deviceInfo: string, description?: string): HMSException;
29
+ CurrentTabNotShared(): HMSException;
30
+ AudioPlaybackError(description: string): HMSException;
31
+ SelectedDeviceMissing(deviceType: string): HMSException;
32
+ };
33
+ WebrtcErrors: {
34
+ CreateOfferFailed(action: HMSAction, description?: string): HMSException;
35
+ CreateAnswerFailed(action: HMSAction, description?: string): HMSException;
36
+ SetLocalDescriptionFailed(action: HMSAction, description?: string): HMSException;
37
+ SetRemoteDescriptionFailed(action: HMSAction, description?: string): HMSException;
38
+ ICEFailure(action: HMSAction, description?: string, isTerminal?: boolean): HMSException;
39
+ ICEDisconnected(action: HMSAction, description?: string): HMSException;
40
+ StatsFailed(action: HMSAction, description?: string): HMSException;
41
+ };
42
+ WebsocketMethodErrors: {
43
+ ServerErrors(code: number, action: HMSAction | HMSSignalMethod, description: string): HMSException;
44
+ AlreadyJoined(action: HMSAction, description?: string): HMSException;
45
+ CannotJoinPreviewInProgress(action: HMSAction, description?: string): HMSException;
46
+ };
47
+ GenericErrors: {
48
+ NotConnected(action: HMSAction, description?: string): HMSException;
49
+ Signalling(action: HMSAction, description: string): HMSException;
50
+ Unknown(action: HMSAction, description: string): HMSException;
51
+ NotReady(action: HMSAction, description?: string): HMSException;
52
+ JsonParsingFailed(action: HMSAction, jsonMessage: string, description?: string): HMSException;
53
+ TrackMetadataMissing(action: HMSAction, description?: string): HMSException;
54
+ RTCTrackMissing(action: HMSAction, description?: string): HMSException;
55
+ PeerMetadataMissing(action: HMSAction, description?: string): HMSException;
56
+ ValidationFailed(message: string, entity?: any): HMSException;
57
+ InvalidRole(action: HMSAction, description: string): HMSException;
58
+ PreviewAlreadyInProgress(action: HMSAction, description?: string): HMSException;
59
+ LocalStorageAccessDenied(description?: string): HMSException;
60
+ MissingMediaDevices(): HMSException;
61
+ MissingRTCPeerConnection(): HMSException;
62
+ };
63
+ MediaPluginErrors: {
64
+ PlatformNotSupported(action: HMSAction, description?: string): HMSException;
65
+ InitFailed(action: HMSAction, description?: string): HMSException;
66
+ ProcessingFailed(action: HMSAction, description?: string): HMSException;
67
+ AddAlreadyInProgress(action: HMSAction, description?: string): HMSException;
68
+ DeviceNotSupported(action: HMSAction, description?: string): HMSException;
69
+ };
70
+ PlaylistErrors: {
71
+ NoEntryToPlay(action: HMSAction, description: string): HMSException;
72
+ NoEntryPlaying(action: HMSAction, description: string): HMSException;
73
+ };
74
+ };
@@ -0,0 +1,19 @@
1
+ export declare enum HMSAction {
2
+ NONE = "NONE",
3
+ TRACK = "TRACK",
4
+ INIT = "INIT",
5
+ GET_TOKEN = "GET_TOKEN",
6
+ PUBLISH = "PUBLISH",
7
+ UNPUBLISH = "UNPUBLISH",
8
+ JOIN = "JOIN",
9
+ SUBSCRIBE = "SUBSCRIBE",
10
+ DATA_CHANNEL_SEND = "DATA_CHANNEL_SEND",
11
+ RESTART_ICE = "RESTART_ICE",
12
+ VIDEO_PLUGINS = "VIDEO_PLUGINS",
13
+ AUDIO_PLUGINS = "AUDIO_PLUGINS",
14
+ AUTOPLAY = "AUTOPLAY",
15
+ RECONNECT_SIGNAL = "RECONNECT_SIGNAL",
16
+ VALIDATION = "VALIDATION",
17
+ PLAYLIST = "PLAYLIST",
18
+ PREVIEW = "PREVIEW"
19
+ }
@@ -0,0 +1,23 @@
1
+ import { HMSAction } from './HMSAction';
2
+ import { IAnalyticsPropertiesProvider } from '../analytics/IAnalyticsPropertiesProvider';
3
+ import { HMSSignalMethod } from '../signal/jsonrpc/models';
4
+ export declare class HMSException extends Error implements IAnalyticsPropertiesProvider {
5
+ readonly code: number;
6
+ name: string;
7
+ message: string;
8
+ description: string;
9
+ isTerminal: boolean;
10
+ action: string;
11
+ nativeError?: Error;
12
+ constructor(code: number, name: string, action: HMSAction | HMSSignalMethod, message: string, description: string, isTerminal?: boolean);
13
+ toAnalyticsProperties(): {
14
+ error_name: string;
15
+ error_code: number;
16
+ error_message: string;
17
+ error_description: string;
18
+ action: string;
19
+ is_terminal: boolean;
20
+ };
21
+ addNativeError(error: Error): void;
22
+ toString(): string;
23
+ }
@@ -0,0 +1,9 @@
1
+ import { HMSException } from './HMSException';
2
+ export declare enum HMSGetMediaActions {
3
+ UNKNOWN = "unknown(video or audio)",
4
+ AUDIO = "audio",
5
+ VIDEO = "video",
6
+ AV = "audio, video",
7
+ SCREEN = "screen"
8
+ }
9
+ export declare function BuildGetMediaError(err: Error, deviceInfo: string): HMSException;
@@ -0,0 +1,51 @@
1
+ import { HMSInternalEvent } from './HMSInternalEvent';
2
+ import AnalyticsEvent from '../analytics/AnalyticsEvent';
3
+ import { HMSException } from '../error/HMSException';
4
+ import { HMSDeviceChangeEvent, HMSRole } from '../interfaces';
5
+ import { HMSLocalAudioTrack, HMSLocalVideoTrack, HMSRemoteAudioTrack, HMSRemoteVideoTrack, HMSWebrtcStats } from '../internal';
6
+ import { PolicyParams } from '../notification-manager/HMSNotifications';
7
+ import { HMSRemotePeer } from '../sdk/models/peer';
8
+ import { ITrackAudioLevelUpdate } from '../utils/track-audio-level-monitor';
9
+ export declare class EventBus {
10
+ private eventEmitter;
11
+ readonly deviceChange: HMSInternalEvent<HMSDeviceChangeEvent>;
12
+ readonly localAudioEnabled: HMSInternalEvent<{
13
+ enabled: boolean;
14
+ track: HMSLocalAudioTrack;
15
+ }>;
16
+ readonly localVideoEnabled: HMSInternalEvent<{
17
+ enabled: boolean;
18
+ track: HMSLocalVideoTrack;
19
+ }>;
20
+ /**
21
+ * Emitter which processes raw RTC stats from rtcStatsUpdate and calls client callback
22
+ */
23
+ readonly statsUpdate: HMSInternalEvent<HMSWebrtcStats>;
24
+ readonly trackDegraded: HMSInternalEvent<HMSRemoteVideoTrack>;
25
+ readonly trackRestored: HMSInternalEvent<HMSRemoteVideoTrack>;
26
+ /**
27
+ * Emits audio level updates for audio tracks(used with local track in preview)
28
+ */
29
+ readonly trackAudioLevelUpdate: HMSInternalEvent<ITrackAudioLevelUpdate>;
30
+ readonly audioPluginFailed: HMSInternalEvent<HMSException>;
31
+ readonly localAudioSilence: HMSInternalEvent<{
32
+ track: HMSLocalAudioTrack;
33
+ }>;
34
+ readonly analytics: HMSInternalEvent<AnalyticsEvent>;
35
+ readonly policyChange: HMSInternalEvent<PolicyParams>;
36
+ readonly localRoleUpdate: HMSInternalEvent<{
37
+ oldRole: HMSRole;
38
+ newRole: HMSRole;
39
+ }>;
40
+ readonly audioTrackUpdate: HMSInternalEvent<{
41
+ track: HMSRemoteAudioTrack;
42
+ enabled: boolean;
43
+ }>;
44
+ readonly audioTrackAdded: HMSInternalEvent<{
45
+ track: HMSRemoteAudioTrack;
46
+ peer: HMSRemotePeer;
47
+ }>;
48
+ readonly audioTrackRemoved: HMSInternalEvent<HMSRemoteAudioTrack>;
49
+ readonly autoplayError: HMSInternalEvent<HMSException>;
50
+ readonly leave: HMSInternalEvent<HMSException | undefined>;
51
+ }
@@ -0,0 +1,13 @@
1
+ import type { WaitForFilter } from 'eventemitter2';
2
+ import { EventEmitter2 as EventEmitter } from 'eventemitter2';
3
+ export declare class HMSInternalEvent<T> {
4
+ private eventName;
5
+ private eventEmitter;
6
+ constructor(eventName: string, eventEmitter: EventEmitter);
7
+ publish: (event?: T) => void;
8
+ subscribe: (fn: (event: T) => void | Promise<void>) => void;
9
+ subscribeOnce: (fn: (event: T) => void | Promise<void>) => void;
10
+ unsubscribe: (fn: (event: T) => void | Promise<void>) => void;
11
+ waitFor: (predicate: WaitForFilter) => import("eventemitter2").CancelablePromise<any[]>;
12
+ removeAllListeners: () => void;
13
+ }