@webex/plugin-meetings 3.0.0-beta.7 → 3.0.0-beta.71

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 (506) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +178 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +843 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +56 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +6 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +143 -52
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +16 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +261 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +39 -0
  72. package/dist/controls-options-manager/util.js.map +1 -0
  73. package/dist/index.js +11 -18
  74. package/dist/index.js.map +1 -1
  75. package/dist/locus-info/controlsUtils.js +31 -29
  76. package/dist/locus-info/controlsUtils.js.map +1 -1
  77. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  78. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  79. package/dist/locus-info/fullState.js +0 -15
  80. package/dist/locus-info/fullState.js.map +1 -1
  81. package/dist/locus-info/hostUtils.js +4 -12
  82. package/dist/locus-info/hostUtils.js.map +1 -1
  83. package/dist/locus-info/index.js +237 -198
  84. package/dist/locus-info/index.js.map +1 -1
  85. package/dist/locus-info/infoUtils.js +3 -37
  86. package/dist/locus-info/infoUtils.js.map +1 -1
  87. package/dist/locus-info/mediaSharesUtils.js +12 -38
  88. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  89. package/dist/locus-info/parser.js +92 -118
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +80 -89
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +56 -146
  94. package/dist/media/index.js.map +1 -1
  95. package/dist/media/properties.js +83 -117
  96. package/dist/media/properties.js.map +1 -1
  97. package/dist/media/util.js +2 -9
  98. package/dist/media/util.js.map +1 -1
  99. package/dist/mediaQualityMetrics/config.js +505 -495
  100. package/dist/mediaQualityMetrics/config.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +31 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2225 -2244
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +102 -100
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +308 -264
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +63 -217
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +193 -268
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +137 -228
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +26 -19
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +565 -552
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +26 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +151 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +100 -85
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/types.js +15 -0
  138. package/dist/member/types.js.map +1 -0
  139. package/dist/member/util.js +90 -68
  140. package/dist/member/util.js.map +1 -1
  141. package/dist/members/collection.js +13 -12
  142. package/dist/members/collection.js.map +1 -1
  143. package/dist/members/index.js +152 -204
  144. package/dist/members/index.js.map +1 -1
  145. package/dist/members/request.js +35 -39
  146. package/dist/members/request.js.map +1 -1
  147. package/dist/members/types.js +15 -0
  148. package/dist/members/types.js.map +1 -0
  149. package/dist/members/util.js +76 -46
  150. package/dist/members/util.js.map +1 -1
  151. package/dist/metrics/config.js +4 -14
  152. package/dist/metrics/config.js.map +1 -1
  153. package/dist/metrics/constants.js +1 -6
  154. package/dist/metrics/constants.js.map +1 -1
  155. package/dist/metrics/index.js +59 -156
  156. package/dist/metrics/index.js.map +1 -1
  157. package/dist/multistream/mediaRequestManager.js +116 -52
  158. package/dist/multistream/mediaRequestManager.js.map +1 -1
  159. package/dist/multistream/receiveSlot.js +58 -65
  160. package/dist/multistream/receiveSlot.js.map +1 -1
  161. package/dist/multistream/receiveSlotManager.js +58 -93
  162. package/dist/multistream/receiveSlotManager.js.map +1 -1
  163. package/dist/multistream/remoteMedia.js +55 -74
  164. package/dist/multistream/remoteMedia.js.map +1 -1
  165. package/dist/multistream/remoteMediaGroup.js +6 -40
  166. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  167. package/dist/multistream/remoteMediaManager.js +466 -442
  168. package/dist/multistream/remoteMediaManager.js.map +1 -1
  169. package/dist/networkQualityMonitor/index.js +40 -59
  170. package/dist/networkQualityMonitor/index.js.map +1 -1
  171. package/dist/personal-meeting-room/index.js +21 -45
  172. package/dist/personal-meeting-room/index.js.map +1 -1
  173. package/dist/personal-meeting-room/request.js +1 -31
  174. package/dist/personal-meeting-room/request.js.map +1 -1
  175. package/dist/personal-meeting-room/util.js +0 -13
  176. package/dist/personal-meeting-room/util.js.map +1 -1
  177. package/dist/reachability/index.js +192 -191
  178. package/dist/reachability/index.js.map +1 -1
  179. package/dist/reachability/request.js +15 -23
  180. package/dist/reachability/request.js.map +1 -1
  181. package/dist/reactions/constants.js +13 -0
  182. package/dist/reactions/constants.js.map +1 -0
  183. package/dist/reactions/reactions.js +109 -0
  184. package/dist/reactions/reactions.js.map +1 -0
  185. package/dist/reactions/reactions.type.js +36 -0
  186. package/dist/reactions/reactions.type.js.map +1 -0
  187. package/dist/reconnection-manager/index.js +342 -460
  188. package/dist/reconnection-manager/index.js.map +1 -1
  189. package/dist/recording-controller/enums.js +17 -0
  190. package/dist/recording-controller/enums.js.map +1 -0
  191. package/dist/recording-controller/index.js +343 -0
  192. package/dist/recording-controller/index.js.map +1 -0
  193. package/dist/recording-controller/util.js +63 -0
  194. package/dist/recording-controller/util.js.map +1 -0
  195. package/dist/roap/index.js +48 -70
  196. package/dist/roap/index.js.map +1 -1
  197. package/dist/roap/request.js +143 -131
  198. package/dist/roap/request.js.map +1 -1
  199. package/dist/roap/turnDiscovery.js +91 -98
  200. package/dist/roap/turnDiscovery.js.map +1 -1
  201. package/dist/statsAnalyzer/global.js +1 -95
  202. package/dist/statsAnalyzer/global.js.map +1 -1
  203. package/dist/statsAnalyzer/index.js +372 -455
  204. package/dist/statsAnalyzer/index.js.map +1 -1
  205. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  206. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  207. package/dist/transcription/index.js +22 -47
  208. package/dist/transcription/index.js.map +1 -1
  209. package/dist/types/breakouts/breakout.d.ts +8 -0
  210. package/dist/types/breakouts/collection.d.ts +5 -0
  211. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  212. package/dist/types/breakouts/index.d.ts +5 -0
  213. package/dist/types/breakouts/request.d.ts +22 -0
  214. package/dist/types/breakouts/utils.d.ts +8 -0
  215. package/dist/types/common/browser-detection.d.ts +9 -0
  216. package/dist/types/common/collection.d.ts +48 -0
  217. package/dist/types/common/config.d.ts +2 -0
  218. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  219. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  220. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  221. package/dist/types/common/errors/media.d.ts +15 -0
  222. package/dist/types/common/errors/parameter.d.ts +15 -0
  223. package/dist/types/common/errors/password-error.d.ts +15 -0
  224. package/dist/types/common/errors/permission.d.ts +14 -0
  225. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  226. package/dist/types/common/errors/reconnection.d.ts +15 -0
  227. package/dist/types/common/errors/stats.d.ts +15 -0
  228. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  229. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  230. package/dist/types/common/events/events-scope.d.ts +17 -0
  231. package/dist/types/common/events/events.d.ts +12 -0
  232. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  233. package/dist/types/common/events/util.d.ts +2 -0
  234. package/dist/types/common/logs/logger-config.d.ts +2 -0
  235. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  236. package/dist/types/common/logs/request.d.ts +34 -0
  237. package/dist/types/common/queue.d.ts +32 -0
  238. package/dist/types/config.d.ts +77 -0
  239. package/dist/types/constants.d.ts +944 -0
  240. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  241. package/dist/types/controls-options-manager/enums.d.ts +6 -0
  242. package/dist/types/controls-options-manager/index.d.ts +128 -0
  243. package/dist/types/controls-options-manager/util.d.ts +9 -0
  244. package/dist/types/index.d.ts +6 -0
  245. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  246. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  247. package/dist/types/locus-info/fullState.d.ts +2 -0
  248. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  249. package/dist/types/locus-info/index.d.ts +276 -0
  250. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  251. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  252. package/dist/types/locus-info/parser.d.ts +212 -0
  253. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  254. package/dist/types/media/index.d.ts +32 -0
  255. package/dist/types/media/properties.d.ts +108 -0
  256. package/dist/types/media/util.d.ts +2 -0
  257. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  258. package/dist/types/meeting/in-meeting-actions.d.ts +101 -0
  259. package/dist/types/meeting/index.d.ts +1720 -0
  260. package/dist/types/meeting/muteState.d.ts +132 -0
  261. package/dist/types/meeting/request.d.ts +271 -0
  262. package/dist/types/meeting/request.type.d.ts +11 -0
  263. package/dist/types/meeting/state.d.ts +9 -0
  264. package/dist/types/meeting/util.d.ts +2 -0
  265. package/dist/types/meeting-info/collection.d.ts +20 -0
  266. package/dist/types/meeting-info/index.d.ts +57 -0
  267. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  268. package/dist/types/meeting-info/request.d.ts +22 -0
  269. package/dist/types/meeting-info/util.d.ts +2 -0
  270. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  271. package/dist/types/meetings/collection.d.ts +31 -0
  272. package/dist/types/meetings/index.d.ts +315 -0
  273. package/dist/types/meetings/request.d.ts +27 -0
  274. package/dist/types/meetings/util.d.ts +18 -0
  275. package/dist/types/member/index.d.ts +156 -0
  276. package/dist/types/member/types.d.ts +21 -0
  277. package/dist/types/member/util.d.ts +2 -0
  278. package/dist/types/members/collection.d.ts +29 -0
  279. package/dist/types/members/index.d.ts +343 -0
  280. package/dist/types/members/request.d.ts +58 -0
  281. package/dist/types/members/types.d.ts +24 -0
  282. package/dist/types/members/util.d.ts +2 -0
  283. package/dist/types/metrics/config.d.ts +171 -0
  284. package/dist/types/metrics/constants.d.ts +53 -0
  285. package/dist/types/metrics/index.d.ts +152 -0
  286. package/dist/types/multistream/mediaRequestManager.d.ts +68 -0
  287. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  288. package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
  289. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  290. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  291. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  292. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  293. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  294. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  295. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  296. package/dist/types/reachability/index.d.ts +152 -0
  297. package/dist/types/reachability/request.d.ts +37 -0
  298. package/dist/types/reactions/constants.d.ts +3 -0
  299. package/dist/types/reactions/reactions.d.ts +4 -0
  300. package/dist/types/reactions/reactions.type.d.ts +52 -0
  301. package/dist/types/reconnection-manager/index.d.ts +126 -0
  302. package/dist/types/recording-controller/enums.d.ts +7 -0
  303. package/dist/types/recording-controller/index.d.ts +193 -0
  304. package/dist/types/recording-controller/util.d.ts +13 -0
  305. package/dist/types/roap/index.d.ts +77 -0
  306. package/dist/types/roap/request.d.ts +38 -0
  307. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  308. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  309. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  310. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  311. package/dist/types/transcription/index.d.ts +64 -0
  312. package/internal-README.md +7 -6
  313. package/package.json +27 -21
  314. package/src/breakouts/README.md +219 -0
  315. package/src/breakouts/breakout.ts +153 -0
  316. package/src/breakouts/collection.ts +19 -0
  317. package/src/breakouts/edit-lock-error.ts +25 -0
  318. package/src/breakouts/index.ts +745 -0
  319. package/src/breakouts/request.ts +55 -0
  320. package/src/breakouts/utils.ts +44 -0
  321. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  322. package/src/common/collection.ts +9 -7
  323. package/src/common/{config.js → config.ts} +1 -1
  324. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  325. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  326. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  327. package/src/common/errors/{media.js → media.ts} +11 -7
  328. package/src/common/errors/parameter.ts +11 -7
  329. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  330. package/src/common/errors/{permission.js → permission.ts} +10 -6
  331. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  332. package/src/common/errors/{stats.js → stats.ts} +11 -7
  333. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  334. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  335. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  336. package/src/common/events/{events.js → events.ts} +5 -1
  337. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  338. package/src/common/events/{util.js → util.ts} +2 -3
  339. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  340. package/src/common/logs/logger-proxy.ts +44 -0
  341. package/src/common/logs/{request.js → request.ts} +22 -9
  342. package/src/common/queue.ts +1 -2
  343. package/src/{config.js → config.ts} +17 -12
  344. package/src/constants.ts +92 -5
  345. package/src/controls-options-manager/constants.ts +5 -0
  346. package/src/controls-options-manager/enums.ts +7 -0
  347. package/src/controls-options-manager/index.ts +240 -0
  348. package/src/controls-options-manager/util.ts +30 -0
  349. package/src/index.js +4 -1
  350. package/src/locus-info/controlsUtils.ts +141 -0
  351. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  352. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  353. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  354. package/src/locus-info/{index.js → index.ts} +211 -71
  355. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  356. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  357. package/src/locus-info/{parser.js → parser.ts} +67 -79
  358. package/src/locus-info/{selfUtils.js → selfUtils.ts} +183 -67
  359. package/src/media/{index.js → index.ts} +179 -176
  360. package/src/media/{properties.js → properties.ts} +60 -37
  361. package/src/media/{util.js → util.ts} +2 -2
  362. package/src/mediaQualityMetrics/config.ts +384 -0
  363. package/src/meeting/in-meeting-actions.ts +67 -3
  364. package/src/meeting/{index.js → index.ts} +2605 -1605
  365. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  366. package/src/meeting/{request.js → request.ts} +326 -142
  367. package/src/meeting/request.type.ts +13 -0
  368. package/src/meeting/{state.js → state.ts} +50 -35
  369. package/src/meeting/{util.js → util.ts} +131 -115
  370. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  371. package/src/meeting-info/{index.js → index.ts} +42 -36
  372. package/src/meeting-info/meeting-info-v2.ts +273 -0
  373. package/src/meeting-info/{request.js → request.ts} +14 -4
  374. package/src/meeting-info/{util.js → util.ts} +60 -51
  375. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  376. package/src/meetings/{collection.js → collection.ts} +26 -3
  377. package/src/meetings/index.ts +1275 -0
  378. package/src/meetings/{request.js → request.ts} +34 -25
  379. package/src/meetings/{util.js → util.ts} +99 -33
  380. package/src/member/{index.js → index.ts} +124 -56
  381. package/src/member/types.ts +24 -0
  382. package/src/member/{util.js → util.ts} +105 -25
  383. package/src/members/{collection.js → collection.ts} +10 -2
  384. package/src/members/{index.js → index.ts} +281 -144
  385. package/src/members/{request.js → request.ts} +80 -16
  386. package/src/members/types.ts +28 -0
  387. package/src/members/{util.js → util.ts} +108 -55
  388. package/src/metrics/{config.js → config.ts} +255 -92
  389. package/src/metrics/{constants.js → constants.ts} +0 -6
  390. package/src/metrics/{index.js → index.ts} +110 -94
  391. package/src/multistream/mediaRequestManager.ts +144 -40
  392. package/src/multistream/receiveSlot.ts +69 -26
  393. package/src/multistream/receiveSlotManager.ts +50 -38
  394. package/src/multistream/remoteMedia.ts +30 -4
  395. package/src/multistream/remoteMediaGroup.ts +4 -3
  396. package/src/multistream/remoteMediaManager.ts +230 -66
  397. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  398. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  399. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  400. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  401. package/src/reachability/{index.js → index.ts} +157 -94
  402. package/src/reachability/request.ts +46 -35
  403. package/src/reactions/constants.ts +4 -0
  404. package/src/reactions/reactions.ts +104 -0
  405. package/src/reactions/reactions.type.ts +62 -0
  406. package/src/reconnection-manager/{index.js → index.ts} +228 -120
  407. package/src/recording-controller/enums.ts +8 -0
  408. package/src/recording-controller/index.ts +315 -0
  409. package/src/recording-controller/util.ts +58 -0
  410. package/src/roap/{index.js → index.ts} +77 -60
  411. package/src/roap/request.ts +172 -0
  412. package/src/roap/turnDiscovery.ts +81 -41
  413. package/src/statsAnalyzer/global.ts +37 -0
  414. package/src/statsAnalyzer/index.ts +1242 -0
  415. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  416. package/src/transcription/{index.js → index.ts} +46 -39
  417. package/test/integration/spec/converged-space-meetings.js +176 -0
  418. package/test/integration/spec/journey.js +665 -464
  419. package/test/integration/spec/space-meeting.js +320 -206
  420. package/test/integration/spec/transcription.js +7 -8
  421. package/test/unit/spec/breakouts/breakout.ts +178 -0
  422. package/test/unit/spec/breakouts/collection.ts +15 -0
  423. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  424. package/test/unit/spec/breakouts/index.ts +1252 -0
  425. package/test/unit/spec/breakouts/request.ts +104 -0
  426. package/test/unit/spec/breakouts/utils.js +54 -0
  427. package/test/unit/spec/common/browser-detection.js +9 -28
  428. package/test/unit/spec/controls-options-manager/index.js +204 -0
  429. package/test/unit/spec/controls-options-manager/util.js +86 -0
  430. package/test/unit/spec/fixture/locus.js +92 -90
  431. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  432. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  433. package/test/unit/spec/locus-info/index.js +303 -2
  434. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  435. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  436. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  437. package/test/unit/spec/locus-info/parser.js +3 -9
  438. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  439. package/test/unit/spec/locus-info/selfUtils.js +165 -12
  440. package/test/unit/spec/media/index.ts +72 -8
  441. package/test/unit/spec/media/properties.ts +9 -9
  442. package/test/unit/spec/meeting/in-meeting-actions.ts +29 -2
  443. package/test/unit/spec/meeting/index.js +2503 -802
  444. package/test/unit/spec/meeting/muteState.js +146 -61
  445. package/test/unit/spec/meeting/request.js +141 -43
  446. package/test/unit/spec/meeting/utils.js +135 -164
  447. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  448. package/test/unit/spec/meeting-info/request.js +7 -9
  449. package/test/unit/spec/meeting-info/util.js +11 -12
  450. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  451. package/test/unit/spec/meetings/collection.js +15 -1
  452. package/test/unit/spec/meetings/index.js +622 -263
  453. package/test/unit/spec/meetings/utils.js +65 -14
  454. package/test/unit/spec/member/index.js +24 -1
  455. package/test/unit/spec/member/util.js +359 -32
  456. package/test/unit/spec/members/index.js +294 -54
  457. package/test/unit/spec/members/request.js +50 -20
  458. package/test/unit/spec/members/utils.js +147 -4
  459. package/test/unit/spec/metrics/index.js +16 -21
  460. package/test/unit/spec/multistream/mediaRequestManager.ts +369 -68
  461. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  462. package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
  463. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  464. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  465. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  466. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  467. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  468. package/test/unit/spec/reachability/index.ts +176 -27
  469. package/test/unit/spec/reachability/request.js +66 -0
  470. package/test/unit/spec/reconnection-manager/index.js +58 -30
  471. package/test/unit/spec/recording-controller/index.js +231 -0
  472. package/test/unit/spec/recording-controller/util.js +102 -0
  473. package/test/unit/spec/roap/index.ts +12 -8
  474. package/test/unit/spec/roap/request.ts +217 -0
  475. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  476. package/test/unit/spec/stats-analyzer/index.js +108 -57
  477. package/test/utils/cmr.js +44 -42
  478. package/test/utils/constants.js +9 -0
  479. package/test/utils/testUtils.js +98 -77
  480. package/test/utils/webex-config.js +22 -18
  481. package/test/utils/webex-test-users.js +57 -50
  482. package/tsconfig.json +6 -0
  483. package/dist/media/internal-media-core-wrapper.js +0 -22
  484. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  485. package/dist/meeting/effectsState.js +0 -327
  486. package/dist/meeting/effectsState.js.map +0 -1
  487. package/dist/multistream/multistreamMedia.js +0 -116
  488. package/dist/multistream/multistreamMedia.js.map +0 -1
  489. package/dist/peer-connection-manager/util.js +0 -124
  490. package/dist/peer-connection-manager/util.js.map +0 -1
  491. package/src/common/logs/logger-proxy.js +0 -33
  492. package/src/locus-info/controlsUtils.js +0 -102
  493. package/src/media/internal-media-core-wrapper.ts +0 -9
  494. package/src/mediaQualityMetrics/config.js +0 -382
  495. package/src/meeting/effectsState.js +0 -205
  496. package/src/meeting-info/meeting-info-v2.js +0 -255
  497. package/src/meetings/index.js +0 -1015
  498. package/src/multistream/multistreamMedia.ts +0 -92
  499. package/src/peer-connection-manager/util.ts +0 -117
  500. package/src/roap/request.js +0 -127
  501. package/src/statsAnalyzer/global.js +0 -133
  502. package/src/statsAnalyzer/index.js +0 -1006
  503. package/src/statsAnalyzer/mqaUtil.js +0 -173
  504. package/test/unit/spec/meeting/effectsState.js +0 -291
  505. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  506. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -3,19 +3,20 @@
3
3
  */
4
4
  /* globals navigator */
5
5
 
6
- import LoggerProxy from '../common/logs/logger-proxy';
7
6
  import {
8
- AUDIO_INPUT,
9
- VIDEO_INPUT,
10
- MEDIA_TRACK_CONSTRAINT,
11
- } from '../constants';
7
+ LocalCameraTrack,
8
+ LocalDisplayTrack,
9
+ LocalMicrophoneTrack,
10
+ RoapMediaConnection,
11
+ MultistreamRoapMediaConnection,
12
+ } from '@webex/internal-media-core';
13
+ import LoggerProxy from '../common/logs/logger-proxy';
14
+ import {AUDIO_INPUT, VIDEO_INPUT, MEDIA_TRACK_CONSTRAINT} from '../constants';
12
15
  import Config from '../config';
13
16
  import StaticConfig from '../common/config';
14
17
  import MediaError from '../common/errors/media';
15
18
  import BrowserDetection from '../common/browser-detection';
16
19
 
17
- import {RoapMediaConnection, MultistreamRoapMediaConnection} from './internal-media-core-wrapper';
18
-
19
20
  const {isBrowser} = BrowserDetection();
20
21
 
21
22
  /**
@@ -46,23 +47,7 @@ const {isBrowser} = BrowserDetection();
46
47
  * Handles the quirks of each browser.
47
48
  * Extends and enhances adapter.js, i.e., the "media" file from the web client.
48
49
  */
49
- const Media = {};
50
-
51
- /**
52
- * @param {boolean} enabled
53
- * @param {MediaStreamTrack} track
54
- * @returns {Boolean}
55
- * @public
56
- */
57
- Media.setLocalTrack = (enabled, track) => {
58
- if (track) {
59
- track.enabled = enabled;
60
-
61
- return true;
62
- }
63
-
64
- return false;
65
- };
50
+ const Media: any = {};
66
51
 
67
52
  /**
68
53
  * format the media array for send
@@ -71,16 +56,16 @@ Media.setLocalTrack = (enabled, track) => {
71
56
  * @param {Boolean} videoMuted
72
57
  * @returns {Array} medias
73
58
  */
74
- Media.generateLocalMedias = (mediaId, audioMuted, videoMuted) => {
59
+ Media.generateLocalMedias = (mediaId: string, audioMuted: boolean, videoMuted: boolean) => {
75
60
  if (mediaId) {
76
61
  return [
77
62
  {
78
63
  localSdp: JSON.stringify({
79
64
  audioMuted,
80
- videoMuted
65
+ videoMuted,
81
66
  }),
82
- mediaId
83
- }
67
+ mediaId,
68
+ },
84
69
  ];
85
70
  }
86
71
 
@@ -93,10 +78,8 @@ Media.generateLocalMedias = (mediaId, audioMuted, videoMuted) => {
93
78
  * @param {Object} config SDK Configuration for meetings plugin
94
79
  * @returns {Promise}
95
80
  */
96
- Media.getLocalMedia = (options, config) => {
97
- const {
98
- sendAudio, sendVideo, sendShare, sharePreferences, isSharing
99
- } = options;
81
+ Media.getLocalMedia = (options: any, config: object) => {
82
+ const {sendAudio, sendVideo, sendShare, sharePreferences, isSharing} = options;
100
83
 
101
84
  if (sendAudio || sendVideo) {
102
85
  return Media.getMedia(sendAudio, sendVideo, config);
@@ -107,7 +90,7 @@ Media.getLocalMedia = (options, config) => {
107
90
  {
108
91
  sendAudio: false,
109
92
  sendShare: true,
110
- sharePreferences
93
+ sharePreferences,
111
94
  },
112
95
  config
113
96
  );
@@ -122,26 +105,42 @@ Media.getLocalMedia = (options, config) => {
122
105
  * @param {boolean} isMultistream
123
106
  * @param {string} debugId string useful for debugging (will appear in media connection logs)
124
107
  * @param {Object} options
125
- * @param {Object} [options.mediaProperties] only applicable to non-multistream connections, contains mediaDirection and local tracks:
108
+ * @param {Object} [options.mediaProperties] contains mediaDirection and local tracks:
126
109
  * audioTrack, videoTrack and shareTrack
127
110
  * @param {string} [options.remoteQualityLevel] LOW|MEDIUM|HIGH applicable only to non-multistream connections
128
111
  * @param {boolean} [options.enableRtx] applicable only to non-multistream connections
129
112
  * @param {boolean} [options.enableExtmap] applicable only to non-multistream connections
130
113
  * @param {Object} [options.turnServerInfo]
131
- * @returns {RoapMediaConnection}
114
+ * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
132
115
  */
133
116
  Media.createMediaConnection = (
134
- isMultistream,
135
- debugId,
136
- options
117
+ isMultistream: boolean,
118
+ debugId: string,
119
+ options: {
120
+ mediaProperties: {
121
+ mediaDirection?: {
122
+ receiveAudio: boolean;
123
+ receiveVideo: boolean;
124
+ receiveShare: boolean;
125
+ sendAudio: boolean;
126
+ sendVideo: boolean;
127
+ sendShare: boolean;
128
+ };
129
+ audioTrack?: LocalMicrophoneTrack;
130
+ videoTrack?: LocalCameraTrack;
131
+ shareTrack?: LocalDisplayTrack;
132
+ };
133
+ remoteQualityLevel?: 'LOW' | 'MEDIUM' | 'HIGH';
134
+ enableRtx?: boolean;
135
+ enableExtmap?: boolean;
136
+ turnServerInfo?: {
137
+ url: string;
138
+ username: string;
139
+ password: string;
140
+ };
141
+ }
137
142
  ) => {
138
- const {
139
- mediaProperties,
140
- remoteQualityLevel,
141
- enableRtx,
142
- enableExtmap,
143
- turnServerInfo
144
- } = options;
143
+ const {mediaProperties, remoteQualityLevel, enableRtx, enableExtmap, turnServerInfo} = options;
145
144
 
146
145
  const iceServers = [];
147
146
 
@@ -149,57 +148,62 @@ Media.createMediaConnection = (
149
148
  iceServers.push({
150
149
  urls: turnServerInfo.url,
151
150
  username: turnServerInfo.username || '',
152
- credential: turnServerInfo.password || ''
151
+ credential: turnServerInfo.password || '',
153
152
  });
154
153
  }
155
154
 
156
155
  if (isMultistream) {
157
- return new MultistreamRoapMediaConnection({
158
- iceServers,
159
- }, debugId);
156
+ return new MultistreamRoapMediaConnection(
157
+ {
158
+ iceServers,
159
+ enableMainAudio:
160
+ mediaProperties.mediaDirection?.sendAudio || mediaProperties.mediaDirection?.receiveAudio,
161
+ enableMainVideo:
162
+ mediaProperties.mediaDirection?.sendVideo || mediaProperties.mediaDirection?.receiveVideo,
163
+ },
164
+ debugId
165
+ );
160
166
  }
161
167
 
162
168
  if (!mediaProperties) {
163
169
  throw new Error('mediaProperties have to be provided for non-multistream media connections');
164
170
  }
165
171
 
166
- const {
167
- mediaDirection,
168
- audioTrack,
169
- videoTrack,
170
- shareTrack
171
- } = mediaProperties;
172
-
173
-
174
- return new RoapMediaConnection({
175
- iceServers,
176
- skipInactiveTransceivers: false,
177
- requireH264: true,
178
- sdpMunging: {
179
- convertPort9to0: false,
180
- addContentSlides: true,
181
- bandwidthLimits: {
182
- audio: StaticConfig.meetings.bandwidth.audio,
183
- video: StaticConfig.meetings.bandwidth.video,
172
+ const {mediaDirection, audioTrack, videoTrack, shareTrack} = mediaProperties;
173
+
174
+ return new RoapMediaConnection(
175
+ {
176
+ iceServers,
177
+ skipInactiveTransceivers: false,
178
+ requireH264: true,
179
+ sdpMunging: {
180
+ convertPort9to0: false,
181
+ addContentSlides: true,
182
+ bandwidthLimits: {
183
+ audio: StaticConfig.meetings.bandwidth.audio,
184
+ video: StaticConfig.meetings.bandwidth.video,
185
+ },
186
+ startBitrate: StaticConfig.meetings.bandwidth.startBitrate,
187
+ periodicKeyframes: 20, // it's always been hardcoded in SDK so for now keeping it that way
188
+ disableExtmap: !enableExtmap,
189
+ disableRtx: !enableRtx, // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP
184
190
  },
185
- startBitrate: StaticConfig.meetings.bandwidth.startBitrate,
186
- periodicKeyframes: 20, // it's always been hardcoded in SDK so for now keeping it that way
187
- disableExtmap: !enableExtmap,
188
- disableRtx: !enableRtx, // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP
189
- }
190
- }, {
191
- send: {
192
- audio: audioTrack,
193
- video: videoTrack,
194
- screenShareVideo: shareTrack
195
191
  },
196
- receive: {
197
- audio: mediaDirection.receiveAudio,
198
- video: mediaDirection.receiveVideo,
199
- screenShareVideo: mediaDirection.receiveShare,
200
- remoteQualityLevel
201
- }
202
- }, debugId);
192
+ {
193
+ send: {
194
+ audio: audioTrack?.underlyingTrack,
195
+ video: videoTrack?.underlyingTrack,
196
+ screenShareVideo: shareTrack?.underlyingTrack,
197
+ },
198
+ receive: {
199
+ audio: mediaDirection.receiveAudio,
200
+ video: mediaDirection.receiveVideo,
201
+ screenShareVideo: mediaDirection.receiveShare,
202
+ remoteQualityLevel,
203
+ },
204
+ },
205
+ debugId
206
+ );
203
207
  };
204
208
 
205
209
  /**
@@ -214,7 +218,17 @@ Media.createMediaConnection = (
214
218
  * @param {Object} config SDK Configuration for meetings plugin
215
219
  * @returns {Promise.<MediaStream>}
216
220
  */
217
- Media.getDisplayMedia = (options, config = {}) => {
221
+ Media.getDisplayMedia = (
222
+ options: {
223
+ sendAudio: boolean;
224
+ sendShare: boolean;
225
+ sharePreferences: {
226
+ shareConstraints: MediaTrackConstraints;
227
+ highFrameRate: any;
228
+ };
229
+ },
230
+ config: any = {}
231
+ ) => {
218
232
  // SDK screen share resolution settings from Webex.init
219
233
  const customResolution = config.screenResolution || {};
220
234
  // user defined screen share frame rate
@@ -223,38 +237,31 @@ Media.getDisplayMedia = (options, config = {}) => {
223
237
  const hasSharePreferences = options.sharePreferences;
224
238
  const hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;
225
239
  const hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;
226
- const {
227
- screenResolution,
228
- resolution,
229
- videoShareFrameRate,
230
- screenFrameRate,
231
- aspectRatio
232
- } = Config.meetings;
233
-
234
- let shareConstraints = {
240
+ const {screenResolution, resolution, videoShareFrameRate, screenFrameRate, aspectRatio} =
241
+ Config.meetings;
242
+
243
+ let shareConstraints: any = {
235
244
  cursor: MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,
236
- aspectRatio
245
+ aspectRatio,
237
246
  };
238
247
 
239
248
  if (hasCustomConstraints) {
240
249
  shareConstraints = hasSharePreferences.shareConstraints;
241
- }
242
- else if (hasHighFrameRate) {
250
+ } else if (hasHighFrameRate) {
243
251
  shareConstraints = {
244
252
  ...shareConstraints,
245
253
  frameRate: videoShareFrameRate,
246
254
  height: resolution.idealHeight,
247
255
  width: resolution.idealWidth,
248
- ...config.resolution
256
+ ...config.resolution,
249
257
  };
250
- }
251
- else {
258
+ } else {
252
259
  shareConstraints = {
253
260
  ...shareConstraints,
254
261
  frameRate: customShareFrameRate || screenFrameRate,
255
262
  height: customResolution.idealHeight || screenResolution.idealHeight,
256
263
  width: customResolution.idealWidth || screenResolution.idealWidth,
257
- ...config.screenResolution
264
+ ...config.screenResolution,
258
265
  };
259
266
  }
260
267
 
@@ -265,15 +272,14 @@ Media.getDisplayMedia = (options, config = {}) => {
265
272
  // to have higher quality, and for developers to control the values
266
273
  // eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox
267
274
 
268
-
269
275
  if (isBrowser('firefox')) {
270
- const mediaConfig = {
276
+ const mediaConfig: any = {
271
277
  audio: options.sendAudio,
272
- video: options.sendShare
278
+ video: options.sendShare,
273
279
  };
274
280
 
275
-
276
- return navigator.mediaDevices.getDisplayMedia({audio: options.sendAudio, video: mediaConfig})
281
+ return navigator.mediaDevices
282
+ .getDisplayMedia({audio: options.sendAudio, video: mediaConfig})
277
283
  .then((stream) => {
278
284
  if (options.sendShare && stream.getVideoTracks().length > 0) {
279
285
  // Firefox has a bug with the spec where changing in the height and width only happens
@@ -282,12 +288,11 @@ Media.getDisplayMedia = (options, config = {}) => {
282
288
  stream.getVideoTracks()[0].applyConstraints(shareConstraints);
283
289
  }
284
290
 
285
-
286
291
  return stream;
287
292
  });
288
293
  }
289
294
 
290
- const getDisplayMediaParams = {video: options.sendShare ? shareConstraints : false};
295
+ const getDisplayMediaParams: any = {video: options.sendShare ? shareConstraints : false};
291
296
 
292
297
  // safari doesn't support sending screen share audio
293
298
  // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
@@ -305,37 +310,39 @@ Media.getDisplayMedia = (options, config = {}) => {
305
310
  * @param {Object} config SDK Configuration for meetings plugin
306
311
  * @returns {Object} {streams}
307
312
  */
308
- Media.getMedia = (audio, video, config) => {
313
+ Media.getMedia = (audio: any | boolean, video: any | boolean, config: any) => {
309
314
  const defaultWidth = {ideal: config.resolution.idealWidth, max: config.resolution.maxWidth};
310
315
  const defaultHeight = {ideal: config.resolution.idealHeight, max: config.resolution.maxHeight};
311
316
  const mediaConfig = {
312
317
  audio,
313
318
  // TODO: Remove temporary workaround once Firefox fixes low constraint issues
314
319
  // eslint-disable-next-line no-nested-ternary
315
- video: video ?
316
- isBrowser('firefox') && video.width && video.width.max === 320 ?
317
- {
318
- deviceId: video.deviceId ? video.deviceId : undefined,
319
- width: 320,
320
- height: 180
321
- } :
322
- {
323
- deviceId: video.deviceId ? video.deviceId : undefined,
324
- width: video.width ? video.width : defaultWidth,
325
- height: video.height ? video.height : defaultHeight
326
- } :
327
- false,
328
- fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing
320
+ video: video
321
+ ? isBrowser('firefox') && video.width && video.width.max === 320
322
+ ? {
323
+ deviceId: video.deviceId ? video.deviceId : undefined,
324
+ width: 320,
325
+ height: 180,
326
+ frameRate: video.frameRate ? video.frameRate : undefined,
327
+ facingMode: video.facingMode ? video.facingMode : undefined,
328
+ }
329
+ : {
330
+ deviceId: video.deviceId ? video.deviceId : undefined,
331
+ width: video.width ? video.width : defaultWidth,
332
+ height: video.height ? video.height : defaultHeight,
333
+ frameRate: video.frameRate ? video.frameRate : undefined,
334
+ facingMode: video.facingMode ? video.facingMode : undefined,
335
+ }
336
+ : false,
337
+ fake: process.env.NODE_ENV === 'test', // Special case to get fake media for Firefox browser for testing
329
338
  };
330
339
 
331
- return navigator.mediaDevices
332
- .getUserMedia(mediaConfig)
333
- .catch((err) => {
334
- const logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
340
+ return navigator.mediaDevices.getUserMedia(mediaConfig).catch((err) => {
341
+ const logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
335
342
 
336
- LoggerProxy.logger.error(`${logPath} failed - ${err} (${err.constraint})`);
337
- throw err;
338
- });
343
+ LoggerProxy.logger.error(`${logPath} failed - ${err} (${err.constraint})`);
344
+ throw err;
345
+ });
339
346
  };
340
347
 
341
348
  /**
@@ -350,24 +357,24 @@ Media.getMedia = (audio, video, config) => {
350
357
  * sendVideo: true/false
351
358
  *}
352
359
  */
353
- Media.getSupportedDevice = ({sendAudio, sendVideo}) =>
360
+ Media.getSupportedDevice = ({sendAudio, sendVideo}: {sendAudio: boolean; sendVideo: boolean}) =>
354
361
  Promise.resolve().then(() => {
355
362
  if (!navigator.mediaDevices || navigator.mediaDevices.enumerateDevices === undefined) {
356
363
  return {
357
364
  sendAudio: false,
358
- sendVideo: false
365
+ sendVideo: false,
359
366
  };
360
367
  }
361
368
 
362
369
  return navigator.mediaDevices.enumerateDevices().then((devices) => {
363
370
  const supported = {
364
371
  audio: devices.filter((device) => device.kind === AUDIO_INPUT).length > 0,
365
- video: devices.filter((device) => device.kind === VIDEO_INPUT).length > 0
372
+ video: devices.filter((device) => device.kind === VIDEO_INPUT).length > 0,
366
373
  };
367
374
 
368
375
  return {
369
376
  sendAudio: supported.audio && sendAudio,
370
- sendVideo: supported.video && sendVideo
377
+ sendVideo: supported.video && sendVideo,
371
378
  };
372
379
  });
373
380
  });
@@ -397,7 +404,7 @@ Media.toggleStream = () => {};
397
404
  * @param {MediaTrack} track A media stream
398
405
  * @returns {null}
399
406
  */
400
- Media.stopTracks = (track) => {
407
+ Media.stopTracks = (track: any) => {
401
408
  if (!track) {
402
409
  return Promise.resolve();
403
410
  }
@@ -406,44 +413,15 @@ Media.stopTracks = (track) => {
406
413
  if (track && track.stop) {
407
414
  try {
408
415
  track.stop();
409
- }
410
- catch (e) {
411
- LoggerProxy.logger.error(`Media:index#stopTracks --> Unable to stop the track with state ${track.readyState}, error: ${e}`);
416
+ } catch (e) {
417
+ LoggerProxy.logger.error(
418
+ `Media:index#stopTracks --> Unable to stop the track with state ${track.readyState}, error: ${e}`
419
+ );
412
420
  }
413
421
  }
414
422
  });
415
423
  };
416
424
 
417
- /**
418
- *
419
- * Stop input stream
420
- * @param {Stream} stream A media stream
421
- * @returns {null}
422
- * @deprecated after v1.89.3
423
- */
424
- Media.stopStream = (stream) => {
425
- LoggerProxy.logger.warn('Media:index#stopStream --> [DEPRECATION WARNING]: stopStream has been deprecated after v1.89.3');
426
- if (!stream) {
427
- return Promise.resolve();
428
- }
429
-
430
- /*
431
- * To release local media
432
- * 1) Chrome requires all tracks to be stopped (stream.stop got deprecated)
433
- * 2) Firefox requires the stream to be stopped
434
- */
435
- return Promise.resolve().then(() => {
436
- if (stream.getTracks) {
437
- stream.getTracks().forEach((track) => {
438
- track.stop();
439
- });
440
- }
441
- else if (stream.stop) {
442
- stream.stop();
443
- }
444
- });
445
- };
446
-
447
425
  /**
448
426
  * generates streams for audio video and share
449
427
  * @param {object} mediaSetting parameter
@@ -460,13 +438,38 @@ Media.stopStream = (stream) => {
460
438
  * @param {Object} config SDK Config
461
439
  * @returns {Array} [localStream, shareStream]
462
440
  */
463
- Media.getUserMedia = (mediaSetting, audioVideo, sharePreferences, config) => Media.getLocalMedia({
464
- sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
465
- sendVideo: mediaSetting.sendVideo ? audioVideo.video || mediaSetting.sendVideo : false
466
- }, config).then((localStream) => Media.getLocalMedia({
467
- sendShare: mediaSetting.sendShare,
468
- isSharing: mediaSetting.isSharing,
469
- sharePreferences
470
- }, config).then((shareStream) => [localStream, shareStream]));
441
+ Media.getUserMedia = (
442
+ mediaSetting: {
443
+ sendAudio: object;
444
+ sendVideo: object;
445
+ sendShare: object;
446
+ isSharing: object;
447
+ },
448
+ audioVideo: {
449
+ audio: object;
450
+ video: object;
451
+ },
452
+ sharePreferences: {
453
+ shareConstraints: object;
454
+ highFrameRate: boolean;
455
+ },
456
+ config: object
457
+ ) =>
458
+ Media.getLocalMedia(
459
+ {
460
+ sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
461
+ sendVideo: mediaSetting.sendVideo ? audioVideo.video || mediaSetting.sendVideo : false,
462
+ },
463
+ config
464
+ ).then((localStream) =>
465
+ Media.getLocalMedia(
466
+ {
467
+ sendShare: mediaSetting.sendShare,
468
+ isSharing: mediaSetting.isSharing,
469
+ sharePreferences,
470
+ },
471
+ config
472
+ ).then((shareStream) => [localStream, shareStream])
473
+ );
471
474
 
472
475
  export default Media;