@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.40

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 (498) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +137 -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 +546 -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 +48 -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 +109 -49
  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 +15 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +203 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +28 -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 +12 -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 +186 -192
  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 +34 -91
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +66 -153
  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 +13 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2141 -2210
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +59 -82
  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 +45 -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 +5 -20
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +490 -560
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +24 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +116 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +78 -86
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/util.js +31 -68
  138. package/dist/member/util.js.map +1 -1
  139. package/dist/members/collection.js +3 -12
  140. package/dist/members/collection.js.map +1 -1
  141. package/dist/members/index.js +95 -200
  142. package/dist/members/index.js.map +1 -1
  143. package/dist/members/request.js +16 -39
  144. package/dist/members/request.js.map +1 -1
  145. package/dist/members/util.js +9 -38
  146. package/dist/members/util.js.map +1 -1
  147. package/dist/metrics/config.js +1 -13
  148. package/dist/metrics/config.js.map +1 -1
  149. package/dist/metrics/constants.js +1 -6
  150. package/dist/metrics/constants.js.map +1 -1
  151. package/dist/metrics/index.js +54 -156
  152. package/dist/metrics/index.js.map +1 -1
  153. package/dist/multistream/mediaRequestManager.js +74 -52
  154. package/dist/multistream/mediaRequestManager.js.map +1 -1
  155. package/dist/multistream/receiveSlot.js +48 -65
  156. package/dist/multistream/receiveSlot.js.map +1 -1
  157. package/dist/multistream/receiveSlotManager.js +60 -82
  158. package/dist/multistream/receiveSlotManager.js.map +1 -1
  159. package/dist/multistream/remoteMedia.js +60 -76
  160. package/dist/multistream/remoteMedia.js.map +1 -1
  161. package/dist/multistream/remoteMediaGroup.js +6 -40
  162. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  163. package/dist/multistream/remoteMediaManager.js +360 -413
  164. package/dist/multistream/remoteMediaManager.js.map +1 -1
  165. package/dist/networkQualityMonitor/index.js +40 -59
  166. package/dist/networkQualityMonitor/index.js.map +1 -1
  167. package/dist/personal-meeting-room/index.js +21 -45
  168. package/dist/personal-meeting-room/index.js.map +1 -1
  169. package/dist/personal-meeting-room/request.js +1 -31
  170. package/dist/personal-meeting-room/request.js.map +1 -1
  171. package/dist/personal-meeting-room/util.js +0 -13
  172. package/dist/personal-meeting-room/util.js.map +1 -1
  173. package/dist/reachability/index.js +147 -183
  174. package/dist/reachability/index.js.map +1 -1
  175. package/dist/reachability/request.js +15 -23
  176. package/dist/reachability/request.js.map +1 -1
  177. package/dist/reactions/constants.js +13 -0
  178. package/dist/reactions/constants.js.map +1 -0
  179. package/dist/reactions/reactions.js +109 -0
  180. package/dist/reactions/reactions.js.map +1 -0
  181. package/dist/reactions/reactions.type.js +36 -0
  182. package/dist/reactions/reactions.type.js.map +1 -0
  183. package/dist/reconnection-manager/index.js +322 -456
  184. package/dist/reconnection-manager/index.js.map +1 -1
  185. package/dist/recording-controller/enums.js +17 -0
  186. package/dist/recording-controller/enums.js.map +1 -0
  187. package/dist/recording-controller/index.js +343 -0
  188. package/dist/recording-controller/index.js.map +1 -0
  189. package/dist/recording-controller/util.js +63 -0
  190. package/dist/recording-controller/util.js.map +1 -0
  191. package/dist/roap/index.js +48 -70
  192. package/dist/roap/index.js.map +1 -1
  193. package/dist/roap/request.js +143 -131
  194. package/dist/roap/request.js.map +1 -1
  195. package/dist/roap/turnDiscovery.js +91 -98
  196. package/dist/roap/turnDiscovery.js.map +1 -1
  197. package/dist/statsAnalyzer/global.js +1 -95
  198. package/dist/statsAnalyzer/global.js.map +1 -1
  199. package/dist/statsAnalyzer/index.js +361 -449
  200. package/dist/statsAnalyzer/index.js.map +1 -1
  201. package/dist/statsAnalyzer/mqaUtil.js +137 -81
  202. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  203. package/dist/transcription/index.js +22 -47
  204. package/dist/transcription/index.js.map +1 -1
  205. package/dist/types/breakouts/breakout.d.ts +8 -0
  206. package/dist/types/breakouts/collection.d.ts +5 -0
  207. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  208. package/dist/types/breakouts/index.d.ts +5 -0
  209. package/dist/types/breakouts/request.d.ts +22 -0
  210. package/dist/types/breakouts/utils.d.ts +8 -0
  211. package/dist/types/common/browser-detection.d.ts +9 -0
  212. package/dist/types/common/collection.d.ts +48 -0
  213. package/dist/types/common/config.d.ts +2 -0
  214. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  215. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  216. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  217. package/dist/types/common/errors/media.d.ts +15 -0
  218. package/dist/types/common/errors/parameter.d.ts +15 -0
  219. package/dist/types/common/errors/password-error.d.ts +15 -0
  220. package/dist/types/common/errors/permission.d.ts +14 -0
  221. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  222. package/dist/types/common/errors/reconnection.d.ts +15 -0
  223. package/dist/types/common/errors/stats.d.ts +15 -0
  224. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  225. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  226. package/dist/types/common/events/events-scope.d.ts +17 -0
  227. package/dist/types/common/events/events.d.ts +12 -0
  228. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  229. package/dist/types/common/events/util.d.ts +2 -0
  230. package/dist/types/common/logs/logger-config.d.ts +2 -0
  231. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  232. package/dist/types/common/logs/request.d.ts +34 -0
  233. package/dist/types/common/queue.d.ts +32 -0
  234. package/dist/types/config.d.ts +77 -0
  235. package/dist/types/constants.d.ts +916 -0
  236. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  237. package/dist/types/controls-options-manager/enums.d.ts +5 -0
  238. package/dist/types/controls-options-manager/index.d.ts +120 -0
  239. package/dist/types/controls-options-manager/util.d.ts +7 -0
  240. package/dist/types/index.d.ts +6 -0
  241. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  242. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  243. package/dist/types/locus-info/fullState.d.ts +2 -0
  244. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  245. package/dist/types/locus-info/index.d.ts +269 -0
  246. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  247. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  248. package/dist/types/locus-info/parser.d.ts +212 -0
  249. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  250. package/dist/types/media/index.d.ts +32 -0
  251. package/dist/types/media/properties.d.ts +108 -0
  252. package/dist/types/media/util.d.ts +2 -0
  253. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  254. package/dist/types/meeting/in-meeting-actions.d.ts +83 -0
  255. package/dist/types/meeting/index.d.ts +1699 -0
  256. package/dist/types/meeting/muteState.d.ts +116 -0
  257. package/dist/types/meeting/request.d.ts +271 -0
  258. package/dist/types/meeting/request.type.d.ts +11 -0
  259. package/dist/types/meeting/state.d.ts +9 -0
  260. package/dist/types/meeting/util.d.ts +2 -0
  261. package/dist/types/meeting-info/collection.d.ts +20 -0
  262. package/dist/types/meeting-info/index.d.ts +57 -0
  263. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  264. package/dist/types/meeting-info/request.d.ts +22 -0
  265. package/dist/types/meeting-info/util.d.ts +2 -0
  266. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  267. package/dist/types/meetings/collection.d.ts +23 -0
  268. package/dist/types/meetings/index.d.ts +297 -0
  269. package/dist/types/meetings/request.d.ts +27 -0
  270. package/dist/types/meetings/util.d.ts +18 -0
  271. package/dist/types/member/index.d.ts +146 -0
  272. package/dist/types/member/util.d.ts +2 -0
  273. package/dist/types/members/collection.d.ts +24 -0
  274. package/dist/types/members/index.d.ts +320 -0
  275. package/dist/types/members/request.d.ts +50 -0
  276. package/dist/types/members/util.d.ts +2 -0
  277. package/dist/types/metrics/config.d.ts +169 -0
  278. package/dist/types/metrics/constants.d.ts +53 -0
  279. package/dist/types/metrics/index.d.ts +152 -0
  280. package/dist/types/multistream/mediaRequestManager.d.ts +51 -0
  281. package/dist/types/multistream/receiveSlot.d.ts +64 -0
  282. package/dist/types/multistream/receiveSlotManager.d.ts +46 -0
  283. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  284. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  285. package/dist/types/multistream/remoteMediaManager.d.ts +241 -0
  286. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  287. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  288. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  289. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  290. package/dist/types/reachability/index.d.ts +140 -0
  291. package/dist/types/reachability/request.d.ts +37 -0
  292. package/dist/types/reactions/constants.d.ts +3 -0
  293. package/dist/types/reactions/reactions.d.ts +4 -0
  294. package/dist/types/reactions/reactions.type.d.ts +52 -0
  295. package/dist/types/reconnection-manager/index.d.ts +117 -0
  296. package/dist/types/recording-controller/enums.d.ts +7 -0
  297. package/dist/types/recording-controller/index.d.ts +193 -0
  298. package/dist/types/recording-controller/util.d.ts +13 -0
  299. package/dist/types/roap/index.d.ts +77 -0
  300. package/dist/types/roap/request.d.ts +38 -0
  301. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  302. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  303. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  304. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  305. package/dist/types/transcription/index.d.ts +64 -0
  306. package/internal-README.md +7 -6
  307. package/package.json +27 -21
  308. package/src/breakouts/README.md +199 -0
  309. package/src/breakouts/breakout.ts +130 -0
  310. package/src/breakouts/collection.ts +19 -0
  311. package/src/breakouts/edit-lock-error.ts +25 -0
  312. package/src/breakouts/index.ts +504 -0
  313. package/src/breakouts/request.ts +55 -0
  314. package/src/breakouts/utils.ts +39 -0
  315. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  316. package/src/common/collection.ts +9 -7
  317. package/src/common/{config.js → config.ts} +1 -1
  318. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  319. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  320. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  321. package/src/common/errors/{media.js → media.ts} +11 -7
  322. package/src/common/errors/parameter.ts +11 -7
  323. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  324. package/src/common/errors/{permission.js → permission.ts} +10 -6
  325. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  326. package/src/common/errors/{stats.js → stats.ts} +11 -7
  327. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  328. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  329. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  330. package/src/common/events/{events.js → events.ts} +5 -1
  331. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  332. package/src/common/events/{util.js → util.ts} +2 -3
  333. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  334. package/src/common/logs/logger-proxy.ts +44 -0
  335. package/src/common/logs/{request.js → request.ts} +22 -9
  336. package/src/common/queue.ts +1 -2
  337. package/src/{config.js → config.ts} +17 -12
  338. package/src/constants.ts +62 -5
  339. package/src/controls-options-manager/constants.ts +5 -0
  340. package/src/controls-options-manager/enums.ts +6 -0
  341. package/src/controls-options-manager/index.ts +183 -0
  342. package/src/controls-options-manager/util.ts +20 -0
  343. package/src/index.js +4 -1
  344. package/src/locus-info/controlsUtils.ts +114 -0
  345. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  346. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  347. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  348. package/src/locus-info/{index.js → index.ts} +150 -66
  349. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  350. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  351. package/src/locus-info/{parser.js → parser.ts} +67 -79
  352. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  353. package/src/media/{index.js → index.ts} +182 -173
  354. package/src/media/{properties.js → properties.ts} +60 -37
  355. package/src/media/{util.js → util.ts} +2 -2
  356. package/src/mediaQualityMetrics/config.ts +384 -0
  357. package/src/meeting/in-meeting-actions.ts +31 -3
  358. package/src/meeting/{index.js → index.ts} +2512 -1579
  359. package/src/meeting/{muteState.js → muteState.ts} +95 -49
  360. package/src/meeting/{request.js → request.ts} +326 -142
  361. package/src/meeting/request.type.ts +13 -0
  362. package/src/meeting/{state.js → state.ts} +50 -35
  363. package/src/meeting/{util.js → util.ts} +117 -119
  364. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  365. package/src/meeting-info/{index.js → index.ts} +42 -36
  366. package/src/meeting-info/meeting-info-v2.ts +273 -0
  367. package/src/meeting-info/{request.js → request.ts} +14 -4
  368. package/src/meeting-info/{util.js → util.ts} +60 -51
  369. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  370. package/src/meetings/{collection.js → collection.ts} +6 -3
  371. package/src/meetings/index.ts +1159 -0
  372. package/src/meetings/{request.js → request.ts} +32 -25
  373. package/src/meetings/{util.js → util.ts} +58 -32
  374. package/src/member/{index.js → index.ts} +102 -56
  375. package/src/member/{util.js → util.ts} +52 -25
  376. package/src/members/{collection.js → collection.ts} +2 -2
  377. package/src/members/{index.js → index.ts} +221 -142
  378. package/src/members/{request.js → request.ts} +60 -16
  379. package/src/members/{util.js → util.ts} +50 -48
  380. package/src/metrics/{config.js → config.ts} +253 -92
  381. package/src/metrics/{constants.js → constants.ts} +0 -6
  382. package/src/metrics/{index.js → index.ts} +105 -94
  383. package/src/multistream/mediaRequestManager.ts +101 -39
  384. package/src/multistream/receiveSlot.ts +62 -26
  385. package/src/multistream/receiveSlotManager.ts +35 -21
  386. package/src/multistream/remoteMedia.ts +38 -5
  387. package/src/multistream/remoteMediaGroup.ts +4 -3
  388. package/src/multistream/remoteMediaManager.ts +152 -36
  389. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  390. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  391. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  392. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  393. package/src/reachability/{index.js → index.ts} +109 -85
  394. package/src/reachability/request.ts +46 -35
  395. package/src/reactions/constants.ts +4 -0
  396. package/src/reactions/reactions.ts +104 -0
  397. package/src/reactions/reactions.type.ts +62 -0
  398. package/src/reconnection-manager/{index.js → index.ts} +196 -103
  399. package/src/recording-controller/enums.ts +8 -0
  400. package/src/recording-controller/index.ts +315 -0
  401. package/src/recording-controller/util.ts +58 -0
  402. package/src/roap/{index.js → index.ts} +77 -60
  403. package/src/roap/request.ts +172 -0
  404. package/src/roap/turnDiscovery.ts +81 -41
  405. package/src/statsAnalyzer/global.ts +37 -0
  406. package/src/statsAnalyzer/index.ts +1234 -0
  407. package/src/statsAnalyzer/mqaUtil.ts +293 -0
  408. package/src/transcription/{index.js → index.ts} +46 -39
  409. package/test/integration/spec/converged-space-meetings.js +176 -0
  410. package/test/integration/spec/journey.js +665 -464
  411. package/test/integration/spec/space-meeting.js +320 -206
  412. package/test/integration/spec/transcription.js +7 -8
  413. package/test/unit/spec/breakouts/breakout.ts +147 -0
  414. package/test/unit/spec/breakouts/collection.ts +15 -0
  415. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  416. package/test/unit/spec/breakouts/index.ts +707 -0
  417. package/test/unit/spec/breakouts/request.ts +104 -0
  418. package/test/unit/spec/breakouts/utils.js +47 -0
  419. package/test/unit/spec/common/browser-detection.js +9 -28
  420. package/test/unit/spec/controls-options-manager/index.js +124 -0
  421. package/test/unit/spec/controls-options-manager/util.js +66 -0
  422. package/test/unit/spec/fixture/locus.js +92 -90
  423. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  424. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  425. package/test/unit/spec/locus-info/index.js +104 -2
  426. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  427. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  428. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  429. package/test/unit/spec/locus-info/parser.js +3 -9
  430. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  431. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  432. package/test/unit/spec/media/index.ts +39 -53
  433. package/test/unit/spec/media/properties.ts +9 -9
  434. package/test/unit/spec/meeting/in-meeting-actions.ts +13 -2
  435. package/test/unit/spec/meeting/index.js +2253 -811
  436. package/test/unit/spec/meeting/muteState.js +74 -55
  437. package/test/unit/spec/meeting/request.js +141 -43
  438. package/test/unit/spec/meeting/utils.js +106 -171
  439. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  440. package/test/unit/spec/meeting-info/request.js +7 -9
  441. package/test/unit/spec/meeting-info/util.js +11 -12
  442. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  443. package/test/unit/spec/meetings/collection.js +1 -1
  444. package/test/unit/spec/meetings/index.js +439 -257
  445. package/test/unit/spec/meetings/utils.js +14 -12
  446. package/test/unit/spec/member/index.js +0 -1
  447. package/test/unit/spec/member/util.js +31 -7
  448. package/test/unit/spec/members/index.js +104 -54
  449. package/test/unit/spec/members/request.js +29 -20
  450. package/test/unit/spec/members/utils.js +8 -5
  451. package/test/unit/spec/metrics/index.js +16 -21
  452. package/test/unit/spec/multistream/mediaRequestManager.ts +318 -64
  453. package/test/unit/spec/multistream/receiveSlot.ts +68 -17
  454. package/test/unit/spec/multistream/receiveSlotManager.ts +41 -13
  455. package/test/unit/spec/multistream/remoteMedia.ts +38 -2
  456. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  457. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  458. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  459. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  460. package/test/unit/spec/reachability/index.ts +70 -27
  461. package/test/unit/spec/reachability/request.js +66 -0
  462. package/test/unit/spec/reconnection-manager/index.js +58 -30
  463. package/test/unit/spec/recording-controller/index.js +231 -0
  464. package/test/unit/spec/recording-controller/util.js +102 -0
  465. package/test/unit/spec/roap/index.ts +12 -8
  466. package/test/unit/spec/roap/request.ts +217 -0
  467. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  468. package/test/unit/spec/stats-analyzer/index.js +86 -57
  469. package/test/utils/cmr.js +44 -42
  470. package/test/utils/constants.js +9 -0
  471. package/test/utils/testUtils.js +98 -77
  472. package/test/utils/webex-config.js +22 -18
  473. package/test/utils/webex-test-users.js +57 -50
  474. package/tsconfig.json +6 -0
  475. package/dist/media/internal-media-core-wrapper.js +0 -22
  476. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  477. package/dist/meeting/effectsState.js +0 -327
  478. package/dist/meeting/effectsState.js.map +0 -1
  479. package/dist/multistream/multistreamMedia.js +0 -116
  480. package/dist/multistream/multistreamMedia.js.map +0 -1
  481. package/dist/peer-connection-manager/util.js +0 -124
  482. package/dist/peer-connection-manager/util.js.map +0 -1
  483. package/src/common/logs/logger-proxy.js +0 -33
  484. package/src/locus-info/controlsUtils.js +0 -102
  485. package/src/media/internal-media-core-wrapper.ts +0 -9
  486. package/src/mediaQualityMetrics/config.js +0 -382
  487. package/src/meeting/effectsState.js +0 -205
  488. package/src/meeting-info/meeting-info-v2.js +0 -255
  489. package/src/meetings/index.js +0 -1015
  490. package/src/multistream/multistreamMedia.ts +0 -92
  491. package/src/peer-connection-manager/util.ts +0 -117
  492. package/src/roap/request.js +0 -127
  493. package/src/statsAnalyzer/global.js +0 -133
  494. package/src/statsAnalyzer/index.js +0 -1006
  495. package/src/statsAnalyzer/mqaUtil.js +0 -173
  496. package/test/unit/spec/meeting/effectsState.js +0 -291
  497. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  498. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
4
  import {isEmpty} from 'lodash';
5
+ // @ts-ignore
5
6
  import {StatelessWebexPlugin} from '@webex/webex-core';
6
7
 
7
8
  import {MEETINGS, EVENT_TRIGGERS, FLOOR_ACTION, CONTENT, WHITEBOARD} from '../constants';
@@ -13,53 +14,71 @@ import ParameterError from '../common/errors/parameter';
13
14
  import MembersCollection from './collection';
14
15
  import MembersRequest from './request';
15
16
  import MembersUtil from './util';
17
+ import {ReceiveSlotManager} from '../multistream/receiveSlotManager';
18
+ import {MediaRequestManager} from '../multistream/mediaRequestManager';
16
19
 
17
20
  /**
18
- * Members Update Event
19
- * Emitted when something in the roster list needs to be updated
20
- * @event members:update
21
- * @instance
22
- * @property {Object} delta the changes to the members list
23
- * @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
24
- * @property {Array} delta.added array added members to the meeting
25
- * @property {Array} full array the full members collection
26
- * @memberof Members
27
- */
21
+ * Members Update Event
22
+ * Emitted when something in the roster list needs to be updated
23
+ * @event members:update
24
+ * @instance
25
+ * @property {Object} delta the changes to the members list
26
+ * @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
27
+ * @property {Array} delta.added array added members to the meeting
28
+ * @property {Array} full array the full members collection
29
+ * @memberof Members
30
+ */
28
31
 
29
32
  /**
30
- * Members Content Update Event
31
- * Emitted when who is sharing changes
32
- * @event members:content:update
33
- * @instance
34
- * @property {String} activeContentSharingId
35
- * @property {String} endedContentSharingId
36
- * @memberof Members
37
- */
33
+ * Members Content Update Event
34
+ * Emitted when who is sharing changes
35
+ * @event members:content:update
36
+ * @instance
37
+ * @property {String} activeContentSharingId
38
+ * @property {String} endedContentSharingId
39
+ * @memberof Members
40
+ */
38
41
 
39
42
  /**
40
- * Members Host Update Event
41
- * Emitted when who is the host changes
42
- * @event members:host:update
43
- * @instance
44
- * @property {String} activeHostId
45
- * @property {String} endedHostId
46
- * @memberof Members
47
- */
43
+ * Members Host Update Event
44
+ * Emitted when who is the host changes
45
+ * @event members:host:update
46
+ * @instance
47
+ * @property {String} activeHostId
48
+ * @property {String} endedHostId
49
+ * @memberof Members
50
+ */
48
51
 
49
52
  /**
50
- * Members Self Update Event
51
- * Emitted when who is the self changes
52
- * @event members:self:update
53
- * @instance
54
- * @property {String} activeSelfId
55
- * @property {String} endedSelfId
56
- * @memberof Members
57
- */
53
+ * Members Self Update Event
54
+ * Emitted when who is the self changes
55
+ * @event members:self:update
56
+ * @instance
57
+ * @property {String} activeSelfId
58
+ * @property {String} endedSelfId
59
+ * @memberof Members
60
+ */
58
61
 
59
62
  /**
60
63
  * @class Members
61
64
  */
62
65
  export default class Members extends StatelessWebexPlugin {
66
+ hostId: any;
67
+ locusUrl: any;
68
+ mediaShareContentId: any;
69
+ mediaShareWhiteboardId: any;
70
+ membersCollection: any;
71
+ membersRequest: any;
72
+ receiveSlotManager: ReceiveSlotManager;
73
+ mediaRequestManagers: {
74
+ audio: MediaRequestManager;
75
+ video: MediaRequestManager;
76
+ };
77
+
78
+ recordingId: any;
79
+ selfId: any;
80
+ type: any;
81
+
63
82
  namespace = MEETINGS;
64
83
 
65
84
  /**
@@ -68,7 +87,7 @@ export default class Members extends StatelessWebexPlugin {
68
87
  * @param {Object} options
69
88
  * @memberof Members
70
89
  */
71
- constructor(attrs, options) {
90
+ constructor(attrs: any, options: object) {
72
91
  super({}, options);
73
92
  /**
74
93
  * The Members Request object to interact with server
@@ -76,7 +95,8 @@ export default class Members extends StatelessWebexPlugin {
76
95
  * @type {MembersRequest}
77
96
  * @private
78
97
  * @memberof Members
79
- */
98
+ */
99
+ // @ts-ignore
80
100
  this.membersRequest = new MembersRequest({}, options);
81
101
  /**
82
102
  * The Members Collection cache
@@ -84,7 +104,7 @@ export default class Members extends StatelessWebexPlugin {
84
104
  * @type {MembersCollection}
85
105
  * @private
86
106
  * @memberof Members
87
- */
107
+ */
88
108
  this.membersCollection = new MembersCollection();
89
109
  /**
90
110
  * The current locus url for the active meeting
@@ -92,7 +112,7 @@ export default class Members extends StatelessWebexPlugin {
92
112
  * @type {String}
93
113
  * @private
94
114
  * @memberof Members
95
- */
115
+ */
96
116
  this.locusUrl = attrs.locusUrl || null;
97
117
  /**
98
118
  * The current hostId for the meeting
@@ -100,7 +120,7 @@ export default class Members extends StatelessWebexPlugin {
100
120
  * @type {String}
101
121
  * @private
102
122
  * @memberof Members
103
- */
123
+ */
104
124
  this.hostId = null;
105
125
  /**
106
126
  * The current type for the meeting, could be MEETING or CALL
@@ -108,7 +128,7 @@ export default class Members extends StatelessWebexPlugin {
108
128
  * @type {String}
109
129
  * @private
110
130
  * @memberof Members
111
- */
131
+ */
112
132
  this.type = null;
113
133
  /**
114
134
  * Locus has a self object, sent individually to the client
@@ -122,7 +142,7 @@ export default class Members extends StatelessWebexPlugin {
122
142
  * @type {String}
123
143
  * @private
124
144
  * @memberof Members
125
- */
145
+ */
126
146
  this.selfId = null;
127
147
  /**
128
148
  * The current mediaShareContentId for the meeting
@@ -130,7 +150,7 @@ export default class Members extends StatelessWebexPlugin {
130
150
  * @type {String}
131
151
  * @private
132
152
  * @memberof Members
133
- */
153
+ */
134
154
  this.mediaShareContentId = null;
135
155
  /**
136
156
  * The current mediaShareWhiteboardId for the meeting
@@ -138,7 +158,7 @@ export default class Members extends StatelessWebexPlugin {
138
158
  * @type {String}
139
159
  * @private
140
160
  * @memberof Members
141
- */
161
+ */
142
162
  this.mediaShareWhiteboardId = null;
143
163
  /**
144
164
  * The current recordingId for the meeting, if it exists
@@ -146,7 +166,7 @@ export default class Members extends StatelessWebexPlugin {
146
166
  * @type {String}
147
167
  * @private
148
168
  * @memberof Members
149
- */
169
+ */
150
170
  this.recordingId = null;
151
171
 
152
172
  /**
@@ -171,7 +191,7 @@ export default class Members extends StatelessWebexPlugin {
171
191
  * @private
172
192
  * @memberof Members
173
193
  */
174
- locusSelfUpdate(payload) {
194
+ locusSelfUpdate(payload: {newSelf: any; oldSelf: any}) {
175
195
  let newSelfId = null;
176
196
  let oldSelfId = null;
177
197
 
@@ -202,12 +222,12 @@ export default class Members extends StatelessWebexPlugin {
202
222
  this,
203
223
  {
204
224
  file: 'members',
205
- function: 'locusSelfUpdate'
225
+ function: 'locusSelfUpdate',
206
226
  },
207
227
  EVENT_TRIGGERS.MEMBERS_SELF_UPDATE,
208
228
  {
209
229
  activeSelfId: newSelfId,
210
- endedSelfId: oldSelfId
230
+ endedSelfId: oldSelfId,
211
231
  }
212
232
  );
213
233
  }
@@ -221,7 +241,7 @@ export default class Members extends StatelessWebexPlugin {
221
241
  * @private
222
242
  * @memberof Members
223
243
  */
224
- locusHostUpdate(payload) {
244
+ locusHostUpdate(payload: {newHost: any; oldHost: any}) {
225
245
  let newHostId = null;
226
246
  let oldHostId = null;
227
247
 
@@ -252,12 +272,12 @@ export default class Members extends StatelessWebexPlugin {
252
272
  this,
253
273
  {
254
274
  file: 'members',
255
- function: 'locusHostUpdate'
275
+ function: 'locusHostUpdate',
256
276
  },
257
277
  EVENT_TRIGGERS.MEMBERS_HOST_UPDATE,
258
278
  {
259
279
  activeHostId: newHostId,
260
- endedHostId: oldHostId
280
+ endedHostId: oldHostId,
261
281
  }
262
282
  );
263
283
  }
@@ -271,21 +291,23 @@ export default class Members extends StatelessWebexPlugin {
271
291
  * @private
272
292
  * @memberof Members
273
293
  */
274
- locusParticipantsUpdate(payload) {
294
+ locusParticipantsUpdate(payload: {participants: object}) {
275
295
  if (payload) {
276
296
  const delta = this.handleLocusInfoUpdatedParticipants(payload);
277
297
  const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
278
298
 
299
+ this.receiveSlotManager?.updateMemberIds();
300
+
279
301
  Trigger.trigger(
280
302
  this,
281
303
  {
282
304
  file: 'members',
283
- function: 'locusParticipantsUpdate'
305
+ function: 'locusParticipantsUpdate',
284
306
  },
285
307
  EVENT_TRIGGERS.MEMBERS_UPDATE,
286
308
  {
287
309
  delta,
288
- full
310
+ full,
289
311
  }
290
312
  );
291
313
  }
@@ -300,7 +322,7 @@ export default class Members extends StatelessWebexPlugin {
300
322
  * @private
301
323
  * @memberof Members
302
324
  */
303
- locusMediaSharesUpdate(payload) {
325
+ locusMediaSharesUpdate(payload: {current: any; previous: any}) {
304
326
  const currentContent = payload.current?.content;
305
327
  const previousContent = payload.previous?.content;
306
328
  const currentWhiteboard = payload.current?.whiteboard;
@@ -319,8 +341,10 @@ export default class Members extends StatelessWebexPlugin {
319
341
  if (currentContent.disposition === FLOOR_ACTION.RELEASED) {
320
342
  whoStopped = currentContent.beneficiaryId;
321
343
  this.mediaShareContentId = null;
322
- }
323
- else if (currentContent.disposition === FLOOR_ACTION.GRANTED && currentContent.beneficiaryId !== previousContent.beneficiaryId) {
344
+ } else if (
345
+ currentContent.disposition === FLOOR_ACTION.GRANTED &&
346
+ currentContent.beneficiaryId !== previousContent.beneficiaryId
347
+ ) {
324
348
  whoStopped = previousContent.beneficiaryId;
325
349
  }
326
350
  }
@@ -337,8 +361,10 @@ export default class Members extends StatelessWebexPlugin {
337
361
  if (currentWhiteboard.disposition === FLOOR_ACTION.RELEASED) {
338
362
  whoStopped = currentWhiteboard.beneficiaryId;
339
363
  this.mediaShareWhiteboardId = null;
340
- }
341
- else if (currentWhiteboard.disposition === FLOOR_ACTION.GRANTED && currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId) {
364
+ } else if (
365
+ currentWhiteboard.disposition === FLOOR_ACTION.GRANTED &&
366
+ currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId
367
+ ) {
342
368
  whoStopped = previousWhiteboard.beneficiaryId;
343
369
  }
344
370
  }
@@ -363,17 +389,16 @@ export default class Members extends StatelessWebexPlugin {
363
389
  this,
364
390
  {
365
391
  file: 'members',
366
- function: 'locusMediaSharesUpdate'
392
+ function: 'locusMediaSharesUpdate',
367
393
  },
368
394
  EVENT_TRIGGERS.MEMBERS_CONTENT_UPDATE,
369
395
  {
370
396
  activeSharingId: whoSharing,
371
- endedSharingId: whoStopped
397
+ endedSharingId: whoStopped,
372
398
  }
373
399
  );
374
400
  }
375
401
 
376
-
377
402
  /**
378
403
  * Internal update the locus url value
379
404
  * @param {Object} payload
@@ -382,7 +407,7 @@ export default class Members extends StatelessWebexPlugin {
382
407
  * @private
383
408
  * @memberof Members
384
409
  */
385
- locusUrlUpdate(payload) {
410
+ locusUrlUpdate(payload: any) {
386
411
  if (payload) {
387
412
  this.setLocusUrl(null, payload);
388
413
  }
@@ -396,7 +421,7 @@ export default class Members extends StatelessWebexPlugin {
396
421
  * @private
397
422
  * @memberof Members
398
423
  */
399
- locusFullStateTypeUpdate(payload) {
424
+ locusFullStateTypeUpdate(payload: {type: string}) {
400
425
  // TODO: at some point there could be a timing issue here, for updating each member
401
426
  // ie., if the type changes AND there is no locus update, then each member will not know the type of call
402
427
  // which means they cannot determine isMutable && isRemovable
@@ -415,7 +440,7 @@ export default class Members extends StatelessWebexPlugin {
415
440
  * @private
416
441
  * @memberof Members
417
442
  */
418
- handleMembersUpdate(membersUpdate) {
443
+ private handleMembersUpdate(membersUpdate: any) {
419
444
  if (membersUpdate) {
420
445
  if (membersUpdate.updated) {
421
446
  this.constructMembers(membersUpdate.updated);
@@ -435,7 +460,7 @@ export default class Members extends StatelessWebexPlugin {
435
460
  * @private
436
461
  * @memberof Members
437
462
  */
438
- constructMembers(list) {
463
+ private constructMembers(list: Array<any>) {
439
464
  list.forEach((member) => {
440
465
  this.membersCollection.set(member.id, member);
441
466
  });
@@ -448,12 +473,14 @@ export default class Members extends StatelessWebexPlugin {
448
473
  * @private
449
474
  * @memberof Members
450
475
  */
451
- handleLocusInfoUpdatedParticipants(payload) {
476
+ private handleLocusInfoUpdatedParticipants(payload: any) {
452
477
  this.hostId = payload.hostId || this.hostId;
453
478
  this.selfId = payload.selfId || this.selfId;
454
479
  this.recordingId = payload.recordingId;
455
480
  if (!payload.participants) {
456
- LoggerProxy.logger.warn('Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.');
481
+ LoggerProxy.logger.warn(
482
+ 'Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.'
483
+ );
457
484
  }
458
485
  const memberUpdate = this.update(payload.participants);
459
486
 
@@ -469,15 +496,15 @@ export default class Members extends StatelessWebexPlugin {
469
496
  * @public
470
497
  * @memberof Members
471
498
  */
472
- setLocusUrl(locus, locusUrl = null) {
499
+ public setLocusUrl(locus: any, locusUrl: string = null) {
473
500
  if (locusUrl) {
474
501
  this.locusUrl = locusUrl;
475
- }
476
- else if (locus && (locus.locusUrl || locus.url)) {
502
+ } else if (locus && (locus.locusUrl || locus.url)) {
477
503
  this.locusUrl = locus.locusUrl || locus.url;
478
- }
479
- else {
480
- throw new ParameterError('Setting locusUrl for the Members module should be done with a locus object or locusUrl');
504
+ } else {
505
+ throw new ParameterError(
506
+ 'Setting locusUrl for the Members module should be done with a locus object or locusUrl'
507
+ );
481
508
  }
482
509
  }
483
510
 
@@ -490,15 +517,15 @@ export default class Members extends StatelessWebexPlugin {
490
517
  * @public
491
518
  * @memberof Members
492
519
  */
493
- setHostId(locus, hostId = null) {
520
+ public setHostId(locus: any, hostId: string = null) {
494
521
  if (hostId) {
495
522
  this.hostId = hostId;
496
- }
497
- else if (locus) {
523
+ } else if (locus) {
498
524
  this.hostId = locus && locus.owner && locus.owner.info ? locus.owner.info : null;
499
- }
500
- else {
501
- throw new ParameterError('Setting hostid for the Members module should be done with a locus object or hostId');
525
+ } else {
526
+ throw new ParameterError(
527
+ 'Setting hostid for the Members module should be done with a locus object or hostId'
528
+ );
502
529
  }
503
530
  }
504
531
 
@@ -511,15 +538,15 @@ export default class Members extends StatelessWebexPlugin {
511
538
  * @public
512
539
  * @memberof Members
513
540
  */
514
- setType(fullState, type = null) {
541
+ public setType(fullState: any, type: string = null) {
515
542
  if (type) {
516
543
  this.type = type;
517
- }
518
- else if (fullState) {
544
+ } else if (fullState) {
519
545
  this.type = (fullState && fullState.type) || null;
520
- }
521
- else {
522
- throw new ParameterError('Setting type for the Members module should be done with a fullstate object or type string');
546
+ } else {
547
+ throw new ParameterError(
548
+ 'Setting type for the Members module should be done with a fullstate object or type string'
549
+ );
523
550
  }
524
551
  }
525
552
 
@@ -531,15 +558,18 @@ export default class Members extends StatelessWebexPlugin {
531
558
  * @returns {undefined}
532
559
  * @memberof Members
533
560
  */
534
- setSelfId(locus, selfId = null) {
561
+ setSelfId(locus: any, selfId: string = null) {
535
562
  if (selfId) {
536
563
  this.selfId = selfId;
537
- }
538
- else if (locus) {
539
- this.selfId = locus && locus.self && locus.self.person && locus.self.person.id ? locus.self.person.id : null;
540
- }
541
- else {
542
- throw new ParameterError('Setting selfid for the Members module should be done with a locus object or selfId');
564
+ } else if (locus) {
565
+ this.selfId =
566
+ locus && locus.self && locus.self.person && locus.self.person.id
567
+ ? locus.self.person.id
568
+ : null;
569
+ } else {
570
+ throw new ParameterError(
571
+ 'Setting selfid for the Members module should be done with a locus object or selfId'
572
+ );
543
573
  }
544
574
  }
545
575
 
@@ -551,11 +581,10 @@ export default class Members extends StatelessWebexPlugin {
551
581
  * @returns {undefined}
552
582
  * @memberof Members
553
583
  */
554
- setMediaShareContentId(locus, contentId) {
584
+ setMediaShareContentId(locus: any, contentId?: string) {
555
585
  if (contentId) {
556
586
  this.mediaShareContentId = contentId;
557
- }
558
- else if (locus) {
587
+ } else if (locus) {
559
588
  const contentMediaShare =
560
589
  locus.mediaShares &&
561
590
  locus.mediaShares.length &&
@@ -567,9 +596,10 @@ export default class Members extends StatelessWebexPlugin {
567
596
  contentMediaShare.floor.beneficiary &&
568
597
  contentMediaShare.floor.beneficiary.id) ||
569
598
  null;
570
- }
571
- else {
572
- throw new ParameterError('Setting hostid for the Members module should be done with a locus object or hostId');
599
+ } else {
600
+ throw new ParameterError(
601
+ 'Setting hostid for the Members module should be done with a locus object or hostId'
602
+ );
573
603
  }
574
604
  }
575
605
 
@@ -581,11 +611,10 @@ export default class Members extends StatelessWebexPlugin {
581
611
  * @returns {undefined}
582
612
  * @memberof Members
583
613
  */
584
- setMediaShareWhiteboardId(locus, whiteboardId) {
614
+ setMediaShareWhiteboardId(locus: any, whiteboardId?: string) {
585
615
  if (whiteboardId) {
586
616
  this.mediaShareWhiteboardId = whiteboardId;
587
- }
588
- else if (locus) {
617
+ } else if (locus) {
589
618
  const whiteboardMediaShare =
590
619
  locus.mediaShares &&
591
620
  locus.mediaShares.length &&
@@ -597,9 +626,10 @@ export default class Members extends StatelessWebexPlugin {
597
626
  whiteboardMediaShare.floor.beneficiary &&
598
627
  whiteboardMediaShare.floor.beneficiary.id) ||
599
628
  null;
600
- }
601
- else {
602
- throw new ParameterError('Setting hostid for the Members module should be done with a locus object or hostId');
629
+ } else {
630
+ throw new ParameterError(
631
+ 'Setting hostid for the Members module should be done with a locus object or hostId'
632
+ );
603
633
  }
604
634
  }
605
635
 
@@ -612,7 +642,7 @@ export default class Members extends StatelessWebexPlugin {
612
642
  * @private
613
643
  * @memberof Members
614
644
  */
615
- update(participants) {
645
+ private update(participants: Array<any>) {
616
646
  const membersUpdate = {added: [], updated: []};
617
647
 
618
648
  if (participants) {
@@ -632,11 +662,10 @@ export default class Members extends StatelessWebexPlugin {
632
662
  hostId: this.hostId,
633
663
  contentSharingId: this.mediaShareContentId,
634
664
  whiteboardSharingId: this.mediaShareWhiteboardId,
635
- type: this.type
665
+ type: this.type,
636
666
  })
637
667
  );
638
- }
639
- else {
668
+ } else {
640
669
  membersUpdate.added.push(
641
670
  new Member(participant, {
642
671
  recordingId: this.recordingId,
@@ -644,7 +673,7 @@ export default class Members extends StatelessWebexPlugin {
644
673
  hostId: this.hostId,
645
674
  contentSharingId: this.mediaShareContentId,
646
675
  whiteboardSharingId: this.mediaShareWhiteboardId,
647
- type: this.type
676
+ type: this.type,
648
677
  })
649
678
  );
650
679
  }
@@ -661,13 +690,17 @@ export default class Members extends StatelessWebexPlugin {
661
690
  * @returns {Promise}
662
691
  * @memberof Members
663
692
  */
664
- addMember(invitee, alertIfActive) {
693
+ addMember(invitee: any, alertIfActive?: boolean) {
665
694
  if (!this.locusUrl) {
666
- return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
695
+ return Promise.reject(
696
+ new ParameterError('The associated locus url for this meeting object must be defined.')
697
+ );
667
698
  }
668
699
  if (MembersUtil.isInvalidInvitee(invitee)) {
669
700
  return Promise.reject(
670
- new ParameterError('The invitee must be defined with either a valid email, emailAddress or phoneNumber property.')
701
+ new ParameterError(
702
+ 'The invitee must be defined with either a valid email, emailAddress or phoneNumber property.'
703
+ )
671
704
  );
672
705
  }
673
706
  const options = MembersUtil.generateAddMemberOptions(invitee, this.locusUrl, alertIfActive);
@@ -681,9 +714,11 @@ export default class Members extends StatelessWebexPlugin {
681
714
  * @returns {Promise}
682
715
  * @memberof Members
683
716
  */
684
- cancelPhoneInvite(invitee) {
717
+ cancelPhoneInvite(invitee: any) {
685
718
  if (!this.locusUrl) {
686
- return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
719
+ return Promise.reject(
720
+ new ParameterError('The associated locus url for this meeting object must be defined.')
721
+ );
687
722
  }
688
723
  if (MembersUtil.isInvalidInvitee(invitee)) {
689
724
  return Promise.reject(
@@ -692,7 +727,6 @@ export default class Members extends StatelessWebexPlugin {
692
727
  }
693
728
  const options = MembersUtil.cancelPhoneInviteOptions(invitee, this.locusUrl);
694
729
 
695
-
696
730
  return this.membersRequest.cancelPhoneInvite(options);
697
731
  }
698
732
 
@@ -703,7 +737,7 @@ export default class Members extends StatelessWebexPlugin {
703
737
  * @public
704
738
  * @memberof Members
705
739
  */
706
- admitMembers(memberIds) {
740
+ public admitMembers(memberIds: Array<any>) {
707
741
  if (isEmpty(memberIds)) {
708
742
  return Promise.reject(new ParameterError('No member ids provided to admit.'));
709
743
  }
@@ -719,12 +753,16 @@ export default class Members extends StatelessWebexPlugin {
719
753
  * @public
720
754
  * @memberof Members
721
755
  */
722
- removeMember(memberId) {
756
+ public removeMember(memberId: string) {
723
757
  if (!this.locusUrl) {
724
- return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
758
+ return Promise.reject(
759
+ new ParameterError('The associated locus url for this meeting object must be defined.')
760
+ );
725
761
  }
726
762
  if (!memberId) {
727
- return Promise.reject(new ParameterError('The member id must be defined to remove the member.'));
763
+ return Promise.reject(
764
+ new ParameterError('The member id must be defined to remove the member.')
765
+ );
728
766
  }
729
767
  const options = MembersUtil.generateRemoveMemberOptions(memberId, this.locusUrl);
730
768
 
@@ -739,12 +777,18 @@ export default class Members extends StatelessWebexPlugin {
739
777
  * @public
740
778
  * @memberof Members
741
779
  */
742
- muteMember(memberId, mute = true) {
780
+ public muteMember(memberId: string, mute = true) {
743
781
  if (!this.locusUrl) {
744
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
782
+ return Promise.reject(
783
+ new ParameterError(
784
+ 'The associated locus url for this meetings members object must be defined.'
785
+ )
786
+ );
745
787
  }
746
788
  if (!memberId) {
747
- return Promise.reject(new ParameterError('The member id must be defined to mute the member.'));
789
+ return Promise.reject(
790
+ new ParameterError('The member id must be defined to mute the member.')
791
+ );
748
792
  }
749
793
  const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
750
794
 
@@ -759,12 +803,18 @@ export default class Members extends StatelessWebexPlugin {
759
803
  * @public
760
804
  * @memberof Members
761
805
  */
762
- raiseOrLowerHand(memberId, raise = true) {
806
+ public raiseOrLowerHand(memberId: string, raise = true) {
763
807
  if (!this.locusUrl) {
764
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
808
+ return Promise.reject(
809
+ new ParameterError(
810
+ 'The associated locus url for this meetings members object must be defined.'
811
+ )
812
+ );
765
813
  }
766
814
  if (!memberId) {
767
- return Promise.reject(new ParameterError('The member id must be defined to raise/lower the hand of the member.'));
815
+ return Promise.reject(
816
+ new ParameterError('The member id must be defined to raise/lower the hand of the member.')
817
+ );
768
818
  }
769
819
  const options = MembersUtil.generateRaiseHandMemberOptions(memberId, raise, this.locusUrl);
770
820
 
@@ -778,19 +828,29 @@ export default class Members extends StatelessWebexPlugin {
778
828
  * @public
779
829
  * @memberof Members
780
830
  */
781
- lowerAllHands(requestingMemberId) {
831
+ public lowerAllHands(requestingMemberId: string) {
782
832
  if (!this.locusUrl) {
783
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
833
+ return Promise.reject(
834
+ new ParameterError(
835
+ 'The associated locus url for this meetings members object must be defined.'
836
+ )
837
+ );
784
838
  }
785
839
  if (!requestingMemberId) {
786
- return Promise.reject(new ParameterError('The requestingMemberId must be defined to lower all hands in a meeting.'));
840
+ return Promise.reject(
841
+ new ParameterError(
842
+ 'The requestingMemberId must be defined to lower all hands in a meeting.'
843
+ )
844
+ );
787
845
  }
788
- const options = MembersUtil.generateLowerAllHandsMemberOptions(requestingMemberId, this.locusUrl);
846
+ const options = MembersUtil.generateLowerAllHandsMemberOptions(
847
+ requestingMemberId,
848
+ this.locusUrl
849
+ );
789
850
 
790
851
  return this.membersRequest.lowerAllHandsMember(options);
791
852
  }
792
853
 
793
-
794
854
  /**
795
855
  * Transfers the host to another member
796
856
  * @param {String} memberId
@@ -799,19 +859,28 @@ export default class Members extends StatelessWebexPlugin {
799
859
  * @public
800
860
  * @memberof Members
801
861
  */
802
- transferHostToMember(memberId, moderator = true) {
862
+ public transferHostToMember(memberId: string, moderator = true) {
803
863
  if (!this.locusUrl) {
804
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
864
+ return Promise.reject(
865
+ new ParameterError(
866
+ 'The associated locus url for this meetings members object must be defined.'
867
+ )
868
+ );
805
869
  }
806
870
  if (!memberId) {
807
- return Promise.reject(new ParameterError('The member id must be defined to transfer host to the member.'));
871
+ return Promise.reject(
872
+ new ParameterError('The member id must be defined to transfer host to the member.')
873
+ );
808
874
  }
809
- const options = MembersUtil.generateTransferHostMemberOptions(memberId, moderator, this.locusUrl);
875
+ const options = MembersUtil.generateTransferHostMemberOptions(
876
+ memberId,
877
+ moderator,
878
+ this.locusUrl
879
+ );
810
880
 
811
881
  return this.membersRequest.transferHostToMember(options);
812
882
  }
813
883
 
814
-
815
884
  /**
816
885
  * Sends DTMF tones for the PSTN member of a meeting
817
886
  * @param {String} tones a string of one or more DTMF tones to send
@@ -820,7 +889,8 @@ export default class Members extends StatelessWebexPlugin {
820
889
  * @public
821
890
  * @memberof Members
822
891
  */
823
- sendDialPadKey(tones = '', memberId = '') {
892
+ public sendDialPadKey(tones = '', memberId = '') {
893
+ // @ts-ignore
824
894
  if (!tones && tones !== 0) {
825
895
  return Promise.reject(new ParameterError('DMTF tones must be passed in'));
826
896
  }
@@ -843,7 +913,11 @@ export default class Members extends StatelessWebexPlugin {
843
913
  return this.membersRequest.sendDialPadKey(options);
844
914
  }
845
915
 
846
- return Promise.reject(new Error('Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'));
916
+ return Promise.reject(
917
+ new Error(
918
+ 'Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'
919
+ )
920
+ );
847
921
  }
848
922
 
849
923
  /** Finds a member that has any device with a csi matching provided value
@@ -852,10 +926,12 @@ export default class Members extends StatelessWebexPlugin {
852
926
  * @returns {Member}
853
927
  */
854
928
  findMemberByCsi(csi) {
855
- return Object.values(this.membersCollection.getAll())
856
- .find((member) => (
857
- member.participant?.devices?.find((device) => (
858
- device.csis?.find((memberCsi) => memberCsi === csi)))));
929
+ return Object.values(this.membersCollection.getAll()).find((member) =>
930
+ // @ts-ignore
931
+ member.participant?.devices?.find((device) =>
932
+ device.csis?.find((memberCsi) => memberCsi === csi)
933
+ )
934
+ );
859
935
  }
860
936
 
861
937
  /**
@@ -872,7 +948,10 @@ export default class Members extends StatelessWebexPlugin {
872
948
  this.membersCollection.get(memberId)?.participant?.devices?.forEach((device) => {
873
949
  if (device.mediaSessions) {
874
950
  const deviceCsis = device.mediaSessions
875
- ?.filter((mediaSession) => mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent)
951
+ ?.filter(
952
+ (mediaSession) =>
953
+ mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent
954
+ )
876
955
  .map((mediaSession) => mediaSession.csi);
877
956
 
878
957
  csis.push(...deviceCsis);