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

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
@@ -0,0 +1,546 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
8
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
9
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
10
+ _Object$defineProperty(exports, "__esModule", {
11
+ value: true
12
+ });
13
+ exports.default = void 0;
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
15
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
19
+ var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
20
+ var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
21
+ var _webexCore = require("@webex/webex-core");
22
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
23
+ var _constants = require("../constants");
24
+ var _breakout = _interopRequireDefault(require("./breakout"));
25
+ var _collection = _interopRequireDefault(require("./collection"));
26
+ var _request = _interopRequireDefault(require("./request"));
27
+ var _utils = require("./utils");
28
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
30
+ /**
31
+ * @class Breakouts
32
+ */
33
+ var Breakouts = _webexCore.WebexPlugin.extend({
34
+ namespace: _constants.MEETINGS,
35
+ breakoutRequest: _request.default,
36
+ collections: {
37
+ breakouts: _collection.default
38
+ },
39
+ props: {
40
+ allowBackToMain: 'boolean',
41
+ // only present when in a breakout session
42
+ delayCloseTime: 'number',
43
+ // appears once breakouts start
44
+ enableBreakoutSession: 'boolean',
45
+ // appears from the moment you enable breakouts
46
+ groupId: 'string',
47
+ // appears from the moment you enable breakouts
48
+ name: 'string',
49
+ // only present when in a breakout session
50
+ sessionId: 'string',
51
+ // appears from the moment you enable breakouts
52
+ sessionType: 'string',
53
+ // appears from the moment you enable breakouts
54
+ startTime: 'string',
55
+ // appears once breakouts start
56
+ status: 'string',
57
+ // only present when in a breakout session
58
+ url: 'string',
59
+ // appears from the moment you enable breakouts
60
+ locusUrl: 'string',
61
+ // the current locus url
62
+ breakoutServiceUrl: 'string',
63
+ // the current breakout resouce url
64
+ groups: 'array' // appears when create breakouts
65
+ },
66
+
67
+ children: {
68
+ currentBreakoutSession: _breakout.default
69
+ },
70
+ derived: {
71
+ isInMainSession: {
72
+ deps: ['sessionType'],
73
+ /**
74
+ * Returns true if the user is in the main session
75
+ * @returns {boolean}
76
+ */
77
+ fn: function fn() {
78
+ return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
79
+ }
80
+ },
81
+ breakoutGroupId: {
82
+ deps: ['groups'],
83
+ /**
84
+ * Returns the actived group id
85
+ * @returns {boolean}
86
+ */
87
+ fn: function fn() {
88
+ var _this$groups;
89
+ if ((_this$groups = this.groups) !== null && _this$groups !== void 0 && _this$groups.length) {
90
+ return this.groups[0].id;
91
+ }
92
+ return '';
93
+ }
94
+ }
95
+ },
96
+ /**
97
+ * initialize for the breakouts
98
+ * @returns {void}
99
+ */
100
+ initialize: function initialize() {
101
+ var _this = this;
102
+ this.listenTo(this, 'change:status', function () {
103
+ if (_this.status === _constants.BREAKOUTS.STATUS.CLOSING) {
104
+ _this.trigger(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);
105
+ }
106
+ });
107
+ this.debouncedQueryRosters = (0, _debounce2.default)(this.queryRosters, 10, {
108
+ leading: true,
109
+ trailing: false
110
+ });
111
+ this.listenTo(this.breakouts, 'add', function () {
112
+ _this.debouncedQueryRosters();
113
+ });
114
+ this.listenToBroadcastMessages();
115
+ this.listenToBreakoutRosters();
116
+ // @ts-ignore
117
+ this.breakoutRequest = new _request.default({
118
+ webex: this.webex
119
+ });
120
+ },
121
+ /**
122
+ * Calls this to clean up listeners
123
+ * @returns {void}
124
+ */
125
+ cleanUp: function cleanUp() {
126
+ this.stopListening();
127
+ },
128
+ /**
129
+ * Update the current locus url of the meeting
130
+ * @param {string} locusUrl // locus url
131
+ * @returns {void}
132
+ */
133
+ locusUrlUpdate: function locusUrlUpdate(locusUrl) {
134
+ this.set('locusUrl', locusUrl);
135
+ },
136
+ /**
137
+ * Update the current breakout resouce url
138
+ * @param {string} breakoutServiceUrl
139
+ * @returns {void}
140
+ */
141
+ breakoutServiceUrlUpdate: function breakoutServiceUrlUpdate(breakoutServiceUrl) {
142
+ this.set('breakoutServiceUrl', "".concat(breakoutServiceUrl, "/breakout/"));
143
+ },
144
+ /**
145
+ * The initial roster lists need to be queried because you don't
146
+ * get a breakout.roster event when you join the meeting
147
+ * @returns {void}
148
+ */
149
+ queryRosters: function queryRosters() {
150
+ var _this2 = this;
151
+ this.webex.request({
152
+ uri: "".concat(this.url, "/roster"),
153
+ qs: {
154
+ locusUrl: btoa(this.locusUrl)
155
+ }
156
+ }).then(function (result) {
157
+ var rosters = result.body.rosters;
158
+ rosters.forEach(function (_ref) {
159
+ var locus = _ref.locus;
160
+ _this2.handleRosterUpdate(locus);
161
+ });
162
+ _this2.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
163
+ }).catch(function (error) {
164
+ _loggerProxy.default.logger.error('Meeting:breakouts#queryRosters failed', error);
165
+ });
166
+ },
167
+ /**
168
+ *
169
+ * @param {Object} locus // locus object
170
+ * @returns {void}
171
+ */
172
+ handleRosterUpdate: function handleRosterUpdate(locus) {
173
+ var _locus$controls, _locus$controls$break;
174
+ var sessionId = (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionId;
175
+ var session = this.breakouts.get(sessionId);
176
+ if (!session) {
177
+ return;
178
+ }
179
+ session.parseRoster(locus);
180
+ },
181
+ /**
182
+ * Sets up listener for broadcast messages sent to the breakout session
183
+ * @returns {void}
184
+ */
185
+ listenToBroadcastMessages: function listenToBroadcastMessages() {
186
+ var _this3 = this;
187
+ this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {
188
+ var _event$data = event.data,
189
+ senderUserId = _event$data.senderUserId,
190
+ sentTime = _event$data.sentTime,
191
+ message = _event$data.message;
192
+ _this3.trigger(_constants.BREAKOUTS.EVENTS.MESSAGE, {
193
+ senderUserId: senderUserId,
194
+ sentTime: sentTime,
195
+ message: message,
196
+ // FIXME: This is only the current sessionId
197
+ // We'd need to check that the dataChannelUrl is still the same
198
+ // to guarantee that this message was sent to this session
199
+ sessionId: _this3.currentBreakoutSession.sessionId
200
+ });
201
+ });
202
+ },
203
+ /**
204
+ * Sets up a listener for roster messags from mecury
205
+ * @returns {void}
206
+ */
207
+ listenToBreakoutRosters: function listenToBreakoutRosters() {
208
+ var _this4 = this;
209
+ this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', function (event) {
210
+ _this4.handleRosterUpdate(event.data.locus);
211
+ _this4.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
212
+ });
213
+ },
214
+ /**
215
+ * Updates the information about the current breakout
216
+ * @param {Object} params
217
+ * @returns {void}
218
+ */
219
+ updateBreakout: function updateBreakout(params) {
220
+ var _this$set;
221
+ this.set(params);
222
+ this.set('currentBreakoutSession', (_this$set = {
223
+ sessionId: params.sessionId,
224
+ groupId: params.groupId,
225
+ name: params.name,
226
+ current: true,
227
+ sessionType: params.sessionType,
228
+ url: params.url
229
+ }, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false), _this$set));
230
+ this.set('enableBreakoutSession', params.enableBreakoutSession);
231
+ },
232
+ /**
233
+ * Updates the information about available breakouts
234
+ * @param {Object} payload
235
+ * @returns {void}
236
+ */
237
+ updateBreakoutSessions: function updateBreakoutSessions(payload) {
238
+ var _this5 = this;
239
+ var breakouts = {};
240
+ if (payload.breakoutSessions) {
241
+ (0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
242
+ (0, _forEach2.default)(payload.breakoutSessions[state], function (breakout) {
243
+ var sessionId = breakout.sessionId;
244
+ if (!breakouts[sessionId]) {
245
+ breakouts[sessionId] = breakout;
246
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ACTIVE] = false;
247
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED] = false;
248
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ALLOWED] = false;
249
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;
250
+ breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
251
+ }
252
+ breakouts[sessionId][state] = true;
253
+ });
254
+ });
255
+ }
256
+ (0, _forEach2.default)(breakouts, function (breakout) {
257
+ // eslint-disable-next-line no-param-reassign
258
+ breakout.url = _this5.url;
259
+ });
260
+ this.breakouts.set((0, _values.default)(breakouts));
261
+ },
262
+ /**
263
+ * get main session
264
+ * @returns {Breakout}
265
+ */
266
+ getMainSession: function getMainSession() {
267
+ if (this.isInMainSession) {
268
+ return this.currentBreakoutSession;
269
+ }
270
+ var mainSession = this.breakouts.filter(function (breakout) {
271
+ return breakout.isMain;
272
+ })[0];
273
+ if (!mainSession) {
274
+ throw new Error('no main session found');
275
+ }
276
+ return mainSession;
277
+ },
278
+ /**
279
+ * Host/CoHost ask all participants return to main session
280
+ * @returns {Promise}
281
+ */
282
+ askAllToReturn: function askAllToReturn() {
283
+ var mainSession = this.getMainSession();
284
+ return this.webex.request({
285
+ method: _constants.HTTP_VERBS.POST,
286
+ uri: "".concat(this.url, "/requestMove"),
287
+ body: {
288
+ groupId: mainSession.groupId,
289
+ sessionId: mainSession.sessionId
290
+ }
291
+ });
292
+ },
293
+ /**
294
+ * Broadcast message to all breakout session's participants
295
+ * @param {String} message
296
+ * @param {Object} options
297
+ * @returns {Promise}
298
+ */
299
+ broadcast: function broadcast(message, options) {
300
+ var breakoutGroupId = this.breakoutGroupId;
301
+ if (!breakoutGroupId) {
302
+ throw new Error('Cannot broadcast, no breakout session found');
303
+ }
304
+ return this.breakoutRequest.broadcast({
305
+ url: this.url,
306
+ message: message,
307
+ options: options,
308
+ groupId: breakoutGroupId
309
+ });
310
+ },
311
+ /**
312
+ * Make enable breakout resource
313
+ * @returns {Promise}
314
+ */
315
+ enableBreakouts: function enableBreakouts() {
316
+ if (this.breakoutServiceUrl) {
317
+ // @ts-ignore
318
+ return this.webex.request({
319
+ method: _constants.HTTP_VERBS.POST,
320
+ uri: this.breakoutServiceUrl,
321
+ body: {
322
+ locusUrl: this.locusUrl
323
+ }
324
+ }).catch(function (err) {
325
+ _loggerProxy.default.logger.error("Meeting:request#touchBreakout --> Error provisioning error ".concat(err));
326
+ throw err;
327
+ });
328
+ }
329
+ return _promise.default.reject(new Error("enableBreakouts: the breakoutServiceUrl is empty"));
330
+ },
331
+ /**
332
+ * Make the meeting enbale or disable breakout session
333
+ * @param {boolean} enable
334
+ * @returns {Promise}
335
+ */
336
+ toggleBreakout: function toggleBreakout(enable) {
337
+ var _this6 = this;
338
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
339
+ var info;
340
+ return _regenerator.default.wrap(function _callee$(_context) {
341
+ while (1) switch (_context.prev = _context.next) {
342
+ case 0:
343
+ if (!(_this6.enableBreakoutSession === undefined)) {
344
+ _context.next = 10;
345
+ break;
346
+ }
347
+ _context.next = 3;
348
+ return _this6.enableBreakouts();
349
+ case 3:
350
+ info = _context.sent;
351
+ if (enable) {
352
+ _context.next = 8;
353
+ break;
354
+ }
355
+ // if enable is false, updateBreakout set the param then set enableBreakoutSession as false
356
+ _this6.updateBreakout(info.body);
357
+ _context.next = 8;
358
+ return _this6.doToggleBreakout(enable);
359
+ case 8:
360
+ _context.next = 12;
361
+ break;
362
+ case 10:
363
+ _context.next = 12;
364
+ return _this6.doToggleBreakout(enable);
365
+ case 12:
366
+ case "end":
367
+ return _context.stop();
368
+ }
369
+ }, _callee);
370
+ }))();
371
+ },
372
+ /**
373
+ * do toggle meeting breakout session enable or disable
374
+ * @param {boolean} enable
375
+ * @returns {Promise}
376
+ */
377
+ doToggleBreakout: function doToggleBreakout(enable) {
378
+ // @ts-ignore
379
+ return this.webex.request({
380
+ method: _constants.HTTP_VERBS.PUT,
381
+ uri: this.url,
382
+ body: {
383
+ enableBreakoutSession: enable
384
+ }
385
+ });
386
+ },
387
+ /**
388
+ * Create new breakout sessions
389
+ * @param {object} sessions -- breakout session group
390
+ * @returns {Promise}
391
+ */
392
+ create: function create(sessions) {
393
+ var _this7 = this;
394
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
395
+ var _breakInfo$body;
396
+ var breakInfo;
397
+ return _regenerator.default.wrap(function _callee2$(_context2) {
398
+ while (1) switch (_context2.prev = _context2.next) {
399
+ case 0:
400
+ _context2.next = 2;
401
+ return _this7.webex.request({
402
+ method: _constants.HTTP_VERBS.PUT,
403
+ uri: _this7.url,
404
+ body: {
405
+ groups: [{
406
+ sessions: sessions
407
+ }]
408
+ }
409
+ }).catch(function (error) {
410
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create --> Edit lock token mismatch'));
411
+ });
412
+ case 2:
413
+ breakInfo = _context2.sent;
414
+ if ((_breakInfo$body = breakInfo.body) !== null && _breakInfo$body !== void 0 && _breakInfo$body.groups) {
415
+ _this7.set('groups', breakInfo.body.groups);
416
+ }
417
+ return _context2.abrupt("return", _promise.default.resolve(breakInfo));
418
+ case 5:
419
+ case "end":
420
+ return _context2.stop();
421
+ }
422
+ }, _callee2);
423
+ }))();
424
+ },
425
+ /**
426
+ * Delete all breakout sessions
427
+ * @returns {Promise}
428
+ */
429
+ clearSessions: function clearSessions() {
430
+ var _this8 = this;
431
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
432
+ var _breakInfo$body2;
433
+ var breakInfo;
434
+ return _regenerator.default.wrap(function _callee3$(_context3) {
435
+ while (1) switch (_context3.prev = _context3.next) {
436
+ case 0:
437
+ _context3.next = 2;
438
+ return _this8.webex.request({
439
+ method: _constants.HTTP_VERBS.PUT,
440
+ uri: _this8.url,
441
+ body: {
442
+ groups: [{
443
+ action: _constants.BREAKOUTS.ACTION.DELETE
444
+ }]
445
+ }
446
+ }).catch(function (error) {
447
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions --> Edit lock token mismatch'));
448
+ });
449
+ case 2:
450
+ breakInfo = _context3.sent;
451
+ if ((_breakInfo$body2 = breakInfo.body) !== null && _breakInfo$body2 !== void 0 && _breakInfo$body2.groups) {
452
+ _this8.set('groups', breakInfo.body.groups);
453
+ }
454
+ return _context3.abrupt("return", _promise.default.resolve(breakInfo));
455
+ case 5:
456
+ case "end":
457
+ return _context3.stop();
458
+ }
459
+ }, _callee3);
460
+ }))();
461
+ },
462
+ /**
463
+ * Host or cohost starts breakout sessions
464
+ * @param {object} params
465
+ * @returns {Promise}
466
+ */
467
+ start: function start() {
468
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
469
+ var action = _constants.BREAKOUTS.ACTION.START;
470
+ var payload = _objectSpread({
471
+ id: this.breakoutGroupId,
472
+ action: action,
473
+ allowBackToMain: false,
474
+ allowToJoinLater: false
475
+ }, params);
476
+ return this.request({
477
+ method: _constants.HTTP_VERBS.PUT,
478
+ uri: this.url,
479
+ body: {
480
+ groups: [payload]
481
+ }
482
+ }).catch(function (error) {
483
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start --> Edit lock token mismatch'));
484
+ });
485
+ },
486
+ /**
487
+ * Host or cohost ends breakout sessions
488
+ * @param {object} params
489
+ * @returns {Promise}
490
+ */
491
+ end: function end() {
492
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
493
+ var delayCloseTime = this.delayCloseTime,
494
+ id = this.breakoutGroupId;
495
+ var action = _constants.BREAKOUTS.ACTION.CLOSE;
496
+ var payload = _objectSpread({
497
+ id: id,
498
+ action: action,
499
+ delayCloseTime: delayCloseTime
500
+ }, params);
501
+ return this.request({
502
+ method: _constants.HTTP_VERBS.PUT,
503
+ uri: this.url,
504
+ body: {
505
+ groups: [payload]
506
+ }
507
+ }).catch(function (error) {
508
+ return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end --> Edit lock token mismatch'));
509
+ });
510
+ },
511
+ /**
512
+ * get existed breakout sessions
513
+ * @param {boolean} editlock -- lock operations of the breakout sessions
514
+ * @returns {Promise}
515
+ */
516
+ getBreakout: function getBreakout(editlock) {
517
+ var _this9 = this;
518
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
519
+ var _breakout$body;
520
+ var breakout;
521
+ return _regenerator.default.wrap(function _callee4$(_context4) {
522
+ while (1) switch (_context4.prev = _context4.next) {
523
+ case 0:
524
+ _context4.next = 2;
525
+ return _this9.request({
526
+ method: _constants.HTTP_VERBS.GET,
527
+ uri: _this9.url + (editlock ? "?editlock=".concat(editlock) : '')
528
+ });
529
+ case 2:
530
+ breakout = _context4.sent;
531
+ if ((_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && _breakout$body.groups) {
532
+ _this9.set('groups', breakout.body.groups);
533
+ }
534
+ return _context4.abrupt("return", breakout);
535
+ case 5:
536
+ case "end":
537
+ return _context4.stop();
538
+ }
539
+ }, _callee4);
540
+ }))();
541
+ },
542
+ version: "3.0.0-beta.41"
543
+ });
544
+ var _default = Breakouts;
545
+ exports.default = _default;
546
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","groups","children","currentBreakoutSession","Breakout","derived","isInMainSession","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","breakoutGroupId","length","id","initialize","listenTo","STATUS","CLOSING","trigger","EVENTS","BREAKOUTS_CLOSING","debouncedQueryRosters","queryRosters","leading","trailing","listenToBroadcastMessages","listenToBreakoutRosters","webex","cleanUp","stopListening","locusUrlUpdate","set","breakoutServiceUrlUpdate","request","uri","qs","btoa","then","result","rosters","body","forEach","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","controls","breakout","session","get","parseRoster","internal","llm","event","data","senderUserId","sentTime","message","MESSAGE","mercury","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED_CURRENT","REQUESTED","updateBreakoutSessions","payload","breakoutSessions","state","ASSIGNED","getMainSession","mainSession","filter","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","PUT","create","sessions","boServiceErrorHandler","breakInfo","resolve","clearSessions","action","ACTION","DELETE","start","START","allowToJoinLater","end","CLOSE","getBreakout","editlock","GET"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport {boServiceErrorHandler} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resouce url\n groups: 'array', // appears when create breakouts\n },\n\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n breakoutGroupId: {\n deps: ['groups'],\n /**\n * Returns the actived group id\n * @returns {boolean}\n */\n fn() {\n if (this.groups?.length) {\n return this.groups[0].id;\n }\n\n return '';\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:status', () => {\n if (this.status === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', () => {\n this.debouncedQueryRosters();\n });\n this.listenToBroadcastMessages();\n this.listenToBreakoutRosters();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current breakout resouce url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n this.set('enableBreakoutSession', params.enableBreakoutSession);\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n });\n });\n }\n\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enbale or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n if (!enable) {\n // if enable is false, updateBreakout set the param then set enableBreakoutSession as false\n this.updateBreakout(info.body);\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n enableBreakoutSession: enable,\n },\n });\n },\n\n /**\n * Create new breakout sessions\n * @param {object} sessions -- breakout session group\n * @returns {Promise}\n */\n async create(sessions) {\n // @ts-ignore\n const breakInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [\n {\n sessions,\n },\n ],\n },\n })\n .catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#create --> Edit lock token mismatch')\n );\n });\n\n if (breakInfo.body?.groups) {\n this.set('groups', breakInfo.body.groups);\n }\n\n return Promise.resolve(breakInfo);\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n // @ts-ignore\n const breakInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [\n {\n action: BREAKOUTS.ACTION.DELETE,\n },\n ],\n },\n })\n .catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#clearSessions --> Edit lock token mismatch')\n );\n });\n\n if (breakInfo.body?.groups) {\n this.set('groups', breakInfo.body.groups);\n }\n\n return Promise.resolve(breakInfo);\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [payload],\n },\n }).catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#start --> Edit lock token mismatch')\n );\n });\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body: {\n groups: [payload],\n },\n }).catch((error) => {\n return Promise.reject(\n boServiceErrorHandler(error, 'Breakouts#end --> Edit lock token mismatch')\n );\n });\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n if (breakout.body?.groups) {\n this.set('groups', breakout.body.groups);\n }\n\n return breakout;\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
+ _Object$defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
15
+ var _webexCore = require("@webex/webex-core");
16
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
17
+ var _utils = require("./utils");
18
+ var _constants = require("../constants");
19
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
20
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
21
+ /**
22
+ * @class BreakoutRequest
23
+ */
24
+ var BreakoutRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
25
+ (0, _inherits2.default)(BreakoutRequest, _StatelessWebexPlugin);
26
+ var _super = _createSuper(BreakoutRequest);
27
+ function BreakoutRequest() {
28
+ (0, _classCallCheck2.default)(this, BreakoutRequest);
29
+ return _super.apply(this, arguments);
30
+ }
31
+ (0, _createClass2.default)(BreakoutRequest, [{
32
+ key: "broadcast",
33
+ value:
34
+ /**
35
+ * Broadcast message to all breakout session's participants
36
+ * @param {String} url
37
+ * @param {String} message
38
+ * @param {Object} options
39
+ * @param {string} groupId
40
+ * @param {string} sessionId
41
+ * @returns {Promise}
42
+ */
43
+ function broadcast(_ref) {
44
+ var url = _ref.url,
45
+ message = _ref.message,
46
+ options = _ref.options,
47
+ groupId = _ref.groupId,
48
+ sessionId = _ref.sessionId;
49
+ var roles = (0, _utils.getBroadcastRoles)(options);
50
+ var params = {
51
+ id: groupId,
52
+ recipientRoles: roles.length ? roles : undefined,
53
+ sessions: sessionId ? [{
54
+ id: sessionId
55
+ }] : undefined
56
+ };
57
+
58
+ // @ts-ignore
59
+ return this.request({
60
+ method: _constants.HTTP_VERBS.POST,
61
+ uri: "".concat(url, "/message"),
62
+ body: {
63
+ message: message,
64
+ groups: [params]
65
+ }
66
+ }).catch(function (error) {
67
+ if (error.body && error.body.errorCode === 201409036 && error.statusCode === 409) {
68
+ _loggerProxy.default.logger.info("Breakouts#broadcast --> no joined participants");
69
+ } else {
70
+ throw error;
71
+ }
72
+ });
73
+ }
74
+ }]);
75
+ return BreakoutRequest;
76
+ }(_webexCore.StatelessWebexPlugin);
77
+ exports.default = BreakoutRequest;
78
+ //# sourceMappingURL=request.js.map