@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
@@ -14,13 +14,14 @@ import ParameterError from '@webex/plugin-meetings/src/common/errors/parameter';
14
14
  import Meetings from '@webex/plugin-meetings';
15
15
  import Members from '@webex/plugin-meetings/src/members';
16
16
  import MembersUtil from '@webex/plugin-meetings/src/members/util';
17
+ import Trigger from '@webex/plugin-meetings/src/common/events/trigger-proxy';
18
+ import {EVENT_TRIGGERS} from "@webex/plugin-meetings/src/constants";
17
19
 
18
20
  const {assert} = chai;
19
21
 
20
22
  chai.use(chaiAsPromised);
21
23
  sinon.assert.expose(chai.assert, {prefix: ''});
22
24
 
23
-
24
25
  describe('plugin-meetings', () => {
25
26
  let webex;
26
27
  let url1;
@@ -34,37 +35,33 @@ describe('plugin-meetings', () => {
34
35
  id: '6eb08f8b-bf69-3251-a126-b161bead2d21',
35
36
  phoneNumber: '+18578675309',
36
37
  isExternal: true,
37
- primaryDisplayString: '+18578675309'
38
+ primaryDisplayString: '+18578675309',
38
39
  },
39
40
  devices: [
40
41
  {
41
42
  url: 'https://fakeURL.com',
42
43
  deviceType: 'SIP',
43
44
  state: 'JOINED',
44
- intents: [
45
- null
46
- ],
45
+ intents: [null],
47
46
  correlationId: '1234',
48
47
  provisionalUrl: 'dialout:///fake',
49
- isSparkPstn: true
48
+ isSparkPstn: true,
50
49
  },
51
50
  {
52
51
  url: 'dialout:///fakeagain',
53
52
  deviceType: 'PROVISIONAL',
54
53
  state: 'JOINED',
55
- intents: [
56
- null
57
- ],
54
+ intents: [null],
58
55
  correlationId: '4321',
59
56
  isVideoCallback: false,
60
57
  clientUrl: 'https://fakeURL',
61
58
  provisionalType: 'DIAL_OUT_ONLY',
62
- dialingStatus: 'SUCCESS'
63
- }
59
+ dialingStatus: 'SUCCESS',
60
+ },
64
61
  ],
65
62
  status: {
66
63
  audioStatus: 'SENDRECV',
67
- videoStatus: 'INACTIVE'
64
+ videoStatus: 'INACTIVE',
68
65
  },
69
66
  id: 'abc-123-abc-123',
70
67
  guest: true,
@@ -72,16 +69,15 @@ describe('plugin-meetings', () => {
72
69
  moderator: false,
73
70
  panelist: false,
74
71
  moveToLobbyNotAllowed: true,
75
- deviceUrl: 'https://fakeDeviceurl'
72
+ deviceUrl: 'https://fakeDeviceurl',
76
73
  },
77
74
  id: 'abc-123-abc-123',
78
75
  status: 'IN_MEETING',
79
76
  type: 'MEETING',
80
- isModerator: false
81
- }
77
+ isModerator: false,
78
+ },
82
79
  };
83
80
 
84
-
85
81
  describe('members', () => {
86
82
  const sandbox = sinon.createSandbox();
87
83
  let createMembers;
@@ -91,21 +87,21 @@ describe('plugin-meetings', () => {
91
87
  children: {
92
88
  meetings: Meetings,
93
89
  credentials: Credentials,
94
- support: Support
90
+ support: Support,
95
91
  },
96
92
  config: {
97
93
  credentials: {
98
- client_id: 'mock-client-id'
94
+ client_id: 'mock-client-id',
99
95
  },
100
96
  meetings: {
101
97
  reconnection: {
102
- enabled: false
98
+ enabled: false,
103
99
  },
104
100
  mediaSettings: {},
105
101
  metrics: {},
106
- stats: {}
107
- }
108
- }
102
+ stats: {},
103
+ },
104
+ },
109
105
  });
110
106
 
111
107
  url1 = `https://example.com/${uuid.v4()}`;
@@ -136,6 +132,117 @@ describe('plugin-meetings', () => {
136
132
  });
137
133
  });
138
134
 
135
+ describe('#admitMembers', () => {
136
+ let members;
137
+ beforeEach(() => {
138
+ members = createMembers({url: url1});
139
+ members.membersRequest.admitMember = sinon.stub().returns(Promise.resolve(true));
140
+ });
141
+ it('should return error if param memberIds is not provided', async () => {
142
+ let error;
143
+ await members.admitMembers().catch((e) => {
144
+ error = e;
145
+ });
146
+ assert.deepEqual(error, new ParameterError('No member ids provided to admit.'));
147
+ });
148
+
149
+ it('should call membersRequest.admitMember as expected', async () => {
150
+ await members.admitMembers(['uuid']);
151
+ const arg1 = members.membersRequest.admitMember.getCall(0).args[0];
152
+ assert.equal(arg1.sessionLocusUrls, undefined);
153
+ assert.equal(arg1.locusUrl.includes('https://example.com/'), true);
154
+ assert.deepEqual(arg1.memberIds, ['uuid']);
155
+
156
+ const sessionLocusUrls = {
157
+ authorizingLocusUrl: 'authorizingLocusUrl',
158
+ mainLocusUrl: 'mainLocusUrl',
159
+ };
160
+ await members.admitMembers(['uuid'], sessionLocusUrls);
161
+ const arg2 = members.membersRequest.admitMember.getCall(1).args[0];
162
+ assert.equal(arg2.sessionLocusUrls, sessionLocusUrls);
163
+ assert.equal(arg1.locusUrl.includes('https://example.com/'), true);
164
+ assert.deepEqual(arg1.memberIds, ['uuid']);
165
+ });
166
+ });
167
+
168
+ describe('#muteMember', () => {
169
+ const testMuteMember = async (mute, isAudio) => {
170
+ sandbox.spy(MembersUtil, 'generateMuteMemberOptions');
171
+
172
+ const locusUrl = 'locus-url';
173
+ const members = createMembers({url: locusUrl});
174
+ const {membersRequest} = members;
175
+ sandbox.spy(membersRequest, 'muteMember');
176
+
177
+ const memberId = 'bob';
178
+
179
+ await members.muteMember(memberId, mute, isAudio);
180
+ assert.calledOnce(MembersUtil.generateMuteMemberOptions);
181
+ assert.calledWith(
182
+ MembersUtil.generateMuteMemberOptions,
183
+ memberId,
184
+ mute,
185
+ members.locusUrl,
186
+ isAudio
187
+ );
188
+
189
+ assert.calledOnce(membersRequest.muteMember);
190
+ assert.calledWith(membersRequest.muteMember, {memberId, muted: mute, locusUrl, isAudio});
191
+ };
192
+
193
+ it('invokes expected functions when muteMember is called for mute=true, isAudio=true', async () => {
194
+ testMuteMember(true, true);
195
+ });
196
+
197
+ it('invokes expected functions when muteMember is called for mute=true, isAudio=false', async () => {
198
+ testMuteMember(true, false);
199
+ });
200
+
201
+ it('invokes expected functions when muteMember is called for mute=false, isAudio=true', async () => {
202
+ testMuteMember(false, true);
203
+ });
204
+
205
+ it('invokes expected functions when muteMember is called for mute=false, isAudio=false', async () => {
206
+ testMuteMember(false, false);
207
+ });
208
+ });
209
+
210
+ describe('#clearMembers', () => {
211
+ it('should send clear event if clear members', () => {
212
+ const members = createMembers({url: url1});
213
+ members.membersCollection.setAll(fakeMembersCollection);
214
+ Trigger.trigger = sinon.stub();
215
+ members.clearMembers();
216
+ assert.deepEqual(members.membersCollection.members, {});
217
+ assert.calledWith(Trigger.trigger, members, {
218
+ file: 'members',
219
+ function: 'clearMembers',
220
+ }, EVENT_TRIGGERS.MEMBERS_CLEAR, {})
221
+ });
222
+ });
223
+ describe('#locusParticipantsUpdate', () => {
224
+ it('should send member update event with session info', () => {
225
+ const members = createMembers({url: url1});
226
+ Trigger.trigger = sinon.stub();
227
+ const fakePayload = {
228
+ participants: {
229
+ forEach: sinon.stub(),
230
+ },
231
+ isReplace: true,
232
+ };
233
+
234
+ members.locusParticipantsUpdate(fakePayload);
235
+
236
+ assert.calledWith(Trigger.trigger, members, {
237
+ file: 'members',
238
+ function: 'locusParticipantsUpdate',
239
+ }, EVENT_TRIGGERS.MEMBERS_UPDATE, {
240
+ delta: {added: [], updated: []},
241
+ full: {},
242
+ isReplace: true,
243
+ })
244
+ });
245
+ });
139
246
  describe('#sendDialPadKey', () => {
140
247
  it('should throw a rejection when calling sendDialPadKey with no tones', async () => {
141
248
  const members = createMembers({url: url1});
@@ -155,7 +262,13 @@ describe('plugin-meetings', () => {
155
262
 
156
263
  members.membersCollection.setAll(fakeMembersCollection);
157
264
  await members.sendDialPadKey('1', 'test1');
158
- assert.calledWith(MembersUtil.genderateSendDTMFOptions, 'https://fakeURL.com', '1', 'test1', url1);
265
+ assert.calledWith(
266
+ MembersUtil.genderateSendDTMFOptions,
267
+ 'https://fakeURL.com',
268
+ '1',
269
+ 'test1',
270
+ url1
271
+ );
159
272
  });
160
273
 
161
274
  it('should call the sendDialPadKey method on membersRequest if the member is valid', async () => {
@@ -191,12 +304,92 @@ describe('plugin-meetings', () => {
191
304
  });
192
305
  });
193
306
 
307
+ describe('#assignRoles', () => {
308
+ const setup = (locusUrl) => {
309
+ const members = createMembers({url: locusUrl});
310
+
311
+ const spies = {
312
+ generateRoleAssignmentMemberOptions: sandbox.spy(
313
+ MembersUtil,
314
+ 'generateRoleAssignmentMemberOptions'
315
+ ),
316
+ assignRolesMember: sandbox.spy(members.membersRequest, 'assignRolesMember'),
317
+ };
318
+
319
+ return {members, spies};
320
+ };
321
+
322
+ const checkInvalid = async (resultPromise, expectedMessage, spies) => {
323
+ await assert.isRejected(resultPromise, ParameterError, expectedMessage);
324
+ assert.notCalled(spies.generateRoleAssignmentMemberOptions);
325
+ assert.notCalled(spies.assignRolesMember);
326
+ };
327
+
328
+ const checkValid = async (
329
+ resultPromise,
330
+ spies,
331
+ expectedMemberId,
332
+ expectedRoles,
333
+ expectedLocusUrl
334
+ ) => {
335
+ await assert.isFulfilled(resultPromise);
336
+ assert.calledOnceWithExactly(
337
+ spies.generateRoleAssignmentMemberOptions,
338
+ expectedMemberId,
339
+ expectedRoles,
340
+ expectedLocusUrl
341
+ );
342
+ assert.calledOnceWithExactly(spies.assignRolesMember, {
343
+ memberId: expectedMemberId,
344
+ roles: expectedRoles,
345
+ locusUrl: expectedLocusUrl,
346
+ });
347
+ assert.strictEqual(resultPromise, spies.assignRolesMember.getCall(0).returnValue);
348
+ };
349
+
350
+ it('should not make a request if there is no member id', async () => {
351
+ const {members, spies} = setup(url1);
352
+
353
+ const resultPromise = members.assignRoles();
354
+
355
+ await checkInvalid(
356
+ resultPromise,
357
+ 'The member id must be defined to assign the roles to a member.',
358
+ spies
359
+ );
360
+ });
361
+
362
+ it('should not make a request if there is no locus url', async () => {
363
+ const {members, spies} = setup();
364
+
365
+ const resultPromise = members.assignRoles(uuid.v4());
366
+
367
+ await checkInvalid(
368
+ resultPromise,
369
+ 'The associated locus url for this meetings members object must be defined.',
370
+ spies
371
+ );
372
+ });
373
+
374
+ it('should make the correct request when called with roles', async () => {
375
+ const memberId = uuid.v4();
376
+ const {members, spies} = setup(url1);
377
+
378
+ const resultPromise = members.assignRoles(memberId, [{type: 'PRESENTER', hasRole: true}, {type: 'MODERATOR', hasRole: false}, {type: 'COHOST', hasRole: true}]);
379
+
380
+ await checkValid(resultPromise, spies, memberId, [{type: 'PRESENTER', hasRole: true}, {type: 'MODERATOR', hasRole: false}, {type: 'COHOST', hasRole: true}], url1);
381
+ });
382
+ });
383
+
194
384
  describe('#raiseOrLowerHand', () => {
195
385
  const setup = (locusUrl) => {
196
386
  const members = createMembers({url: locusUrl});
197
387
 
198
388
  const spies = {
199
- generateRaiseHandMemberOptions: sandbox.spy(MembersUtil, 'generateRaiseHandMemberOptions'),
389
+ generateRaiseHandMemberOptions: sandbox.spy(
390
+ MembersUtil,
391
+ 'generateRaiseHandMemberOptions'
392
+ ),
200
393
  raiseOrLowerHandMember: sandbox.spy(members.membersRequest, 'raiseOrLowerHandMember'),
201
394
  };
202
395
 
@@ -209,10 +402,25 @@ describe('plugin-meetings', () => {
209
402
  assert.notCalled(spies.raiseOrLowerHandMember);
210
403
  };
211
404
 
212
- const checkValid = async (resultPromise, spies, expectedMemberId, expectedRaise, expectedLocusUrl) => {
405
+ const checkValid = async (
406
+ resultPromise,
407
+ spies,
408
+ expectedMemberId,
409
+ expectedRaise,
410
+ expectedLocusUrl
411
+ ) => {
213
412
  await assert.isFulfilled(resultPromise);
214
- assert.calledOnceWithExactly(spies.generateRaiseHandMemberOptions, expectedMemberId, expectedRaise, expectedLocusUrl);
215
- assert.calledOnceWithExactly(spies.raiseOrLowerHandMember, {memberId: expectedMemberId, raised: expectedRaise, locusUrl: expectedLocusUrl});
413
+ assert.calledOnceWithExactly(
414
+ spies.generateRaiseHandMemberOptions,
415
+ expectedMemberId,
416
+ expectedRaise,
417
+ expectedLocusUrl
418
+ );
419
+ assert.calledOnceWithExactly(spies.raiseOrLowerHandMember, {
420
+ memberId: expectedMemberId,
421
+ raised: expectedRaise,
422
+ locusUrl: expectedLocusUrl,
423
+ });
216
424
  assert.strictEqual(resultPromise, spies.raiseOrLowerHandMember.getCall(0).returnValue);
217
425
  };
218
426
 
@@ -221,7 +429,11 @@ describe('plugin-meetings', () => {
221
429
 
222
430
  const resultPromise = members.raiseOrLowerHand();
223
431
 
224
- await checkInvalid(resultPromise, 'The member id must be defined to raise/lower the hand of the member.', spies);
432
+ await checkInvalid(
433
+ resultPromise,
434
+ 'The member id must be defined to raise/lower the hand of the member.',
435
+ spies
436
+ );
225
437
  });
226
438
 
227
439
  it('should not make a request if there is no locus url', async () => {
@@ -229,7 +441,11 @@ describe('plugin-meetings', () => {
229
441
 
230
442
  const resultPromise = members.raiseOrLowerHand(uuid.v4());
231
443
 
232
- await checkInvalid(resultPromise, 'The associated locus url for this meetings members object must be defined.', spies);
444
+ await checkInvalid(
445
+ resultPromise,
446
+ 'The associated locus url for this meetings members object must be defined.',
447
+ spies
448
+ );
233
449
  });
234
450
 
235
451
  it('should make the correct request when called with raise as true', async () => {
@@ -265,7 +481,10 @@ describe('plugin-meetings', () => {
265
481
  const members = createMembers({url: locusUrl});
266
482
 
267
483
  const spies = {
268
- generateLowerAllHandsMemberOptions: sandbox.spy(MembersUtil, 'generateLowerAllHandsMemberOptions'),
484
+ generateLowerAllHandsMemberOptions: sandbox.spy(
485
+ MembersUtil,
486
+ 'generateLowerAllHandsMemberOptions'
487
+ ),
269
488
  lowerAllHandsMember: sandbox.spy(members.membersRequest, 'lowerAllHandsMember'),
270
489
  };
271
490
 
@@ -278,10 +497,22 @@ describe('plugin-meetings', () => {
278
497
  assert.notCalled(spies.lowerAllHandsMember);
279
498
  };
280
499
 
281
- const checkValid = async (resultPromise, spies, expectedRequestingMemberId, expectedLocusUrl) => {
500
+ const checkValid = async (
501
+ resultPromise,
502
+ spies,
503
+ expectedRequestingMemberId,
504
+ expectedLocusUrl
505
+ ) => {
282
506
  await assert.isFulfilled(resultPromise);
283
- assert.calledOnceWithExactly(spies.generateLowerAllHandsMemberOptions, expectedRequestingMemberId, expectedLocusUrl);
284
- assert.calledOnceWithExactly(spies.lowerAllHandsMember, {requestingParticipantId: expectedRequestingMemberId, locusUrl: expectedLocusUrl});
507
+ assert.calledOnceWithExactly(
508
+ spies.generateLowerAllHandsMemberOptions,
509
+ expectedRequestingMemberId,
510
+ expectedLocusUrl
511
+ );
512
+ assert.calledOnceWithExactly(spies.lowerAllHandsMember, {
513
+ requestingParticipantId: expectedRequestingMemberId,
514
+ locusUrl: expectedLocusUrl,
515
+ });
285
516
  assert.strictEqual(resultPromise, spies.lowerAllHandsMember.getCall(0).returnValue);
286
517
  };
287
518
 
@@ -290,7 +521,11 @@ describe('plugin-meetings', () => {
290
521
 
291
522
  const resultPromise = members.lowerAllHands();
292
523
 
293
- await checkInvalid(resultPromise, 'The requestingMemberId must be defined to lower all hands in a meeting.', spies);
524
+ await checkInvalid(
525
+ resultPromise,
526
+ 'The requestingMemberId must be defined to lower all hands in a meeting.',
527
+ spies
528
+ );
294
529
  });
295
530
 
296
531
  it('should not make a request if there is no locus url', async () => {
@@ -298,7 +533,11 @@ describe('plugin-meetings', () => {
298
533
 
299
534
  const resultPromise = members.lowerAllHands(uuid.v4());
300
535
 
301
- await checkInvalid(resultPromise, 'The associated locus url for this meetings members object must be defined.', spies);
536
+ await checkInvalid(
537
+ resultPromise,
538
+ 'The associated locus url for this meetings members object must be defined.',
539
+ spies
540
+ );
302
541
  });
303
542
 
304
543
  it('should make the correct request when called with requestingMemberId', async () => {
@@ -317,13 +556,12 @@ describe('plugin-meetings', () => {
317
556
  // fake collection that contains all combinations of members data structure (with respect to CSIs)
318
557
  const fakeCollection = {
319
558
  oneWithoutDevices: {
320
- participant: {
321
- }
559
+ participant: {},
322
560
  },
323
561
  oneWithEmptyDevices: {
324
562
  participant: {
325
563
  devices: [],
326
- }
564
+ },
327
565
  },
328
566
  oneWithDevicesWithoutCsis: {
329
567
  participant: {
@@ -338,7 +576,7 @@ describe('plugin-meetings', () => {
338
576
  url: 'dialout:///fakeagain',
339
577
  deviceType: 'PROVISIONAL',
340
578
  state: 'JOINED',
341
- }
579
+ },
342
580
  ],
343
581
  },
344
582
  id: 'abc-123-abc-123',
@@ -358,10 +596,10 @@ describe('plugin-meetings', () => {
358
596
  deviceType: 'SIP',
359
597
  state: 'JOINED',
360
598
  csis: [2000, 2001, 2002],
361
- }
362
- ]
363
- }
364
- }
599
+ },
600
+ ],
601
+ },
602
+ },
365
603
  };
366
604
 
367
605
  beforeEach(() => {
@@ -392,14 +630,13 @@ describe('plugin-meetings', () => {
392
630
  },
393
631
  oneWithoutDevices: {
394
632
  id: 'oneWithoutDevices',
395
- participant: {
396
- }
633
+ participant: {},
397
634
  },
398
635
  oneWithEmptyDevices: {
399
636
  id: 'oneWithEmptyDevices',
400
637
  participant: {
401
638
  devices: [],
402
- }
639
+ },
403
640
  },
404
641
  oneWithDevicesWithoutCsis: {
405
642
  id: 'oneWithDevicesWithoutCsis',
@@ -415,7 +652,7 @@ describe('plugin-meetings', () => {
415
652
  url: 'dialout:///fakeagain',
416
653
  deviceType: 'PROVISIONAL',
417
654
  state: 'JOINED',
418
- }
655
+ },
419
656
  ],
420
657
  },
421
658
  status: 'IN_MEETING',
@@ -431,7 +668,7 @@ describe('plugin-meetings', () => {
431
668
  mediaSessions: [
432
669
  {mediaType: 'audio', mediaContent: 'main', csi: 1000},
433
670
  {mediaType: 'video', mediaContent: 'main', csi: 1001},
434
- {mediaType: 'video', mediaContent: 'content', csi: 1002}
671
+ {mediaType: 'video', mediaContent: 'content', csi: 1002},
435
672
  ],
436
673
  },
437
674
  {
@@ -441,12 +678,12 @@ describe('plugin-meetings', () => {
441
678
  mediaSessions: [
442
679
  {mediaType: 'audio', mediaContent: 'main', csi: 2000},
443
680
  {mediaType: 'video', mediaContent: 'main', csi: 2001},
444
- {mediaType: 'video', mediaContent: 'content', csi: 2002}
681
+ {mediaType: 'video', mediaContent: 'content', csi: 2002},
445
682
  ],
446
- }
447
- ]
448
- }
449
- }
683
+ },
684
+ ],
685
+ },
686
+ },
450
687
  };
451
688
 
452
689
  beforeEach(() => {
@@ -470,7 +707,10 @@ describe('plugin-meetings', () => {
470
707
  });
471
708
 
472
709
  it('returns correct CSI values when there is a match', () => {
473
- assert.deepEqual(members.getCsisForMember('oneWithSomeCsis', 'video', 'main'), [1001, 2001]);
710
+ assert.deepEqual(
711
+ members.getCsisForMember('oneWithSomeCsis', 'video', 'main'),
712
+ [1001, 2001]
713
+ );
474
714
  });
475
715
  });
476
716
  });