@webex/plugin-meetings 3.0.0-beta.8 → 3.0.0-beta.81

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 (507) 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 +7 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +160 -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 +25 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +292 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/types.js +7 -0
  72. package/dist/controls-options-manager/types.js.map +1 -0
  73. package/dist/controls-options-manager/util.js +250 -0
  74. package/dist/controls-options-manager/util.js.map +1 -0
  75. package/dist/index.js +11 -18
  76. package/dist/index.js.map +1 -1
  77. package/dist/locus-info/controlsUtils.js +31 -29
  78. package/dist/locus-info/controlsUtils.js.map +1 -1
  79. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  80. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  81. package/dist/locus-info/fullState.js +0 -15
  82. package/dist/locus-info/fullState.js.map +1 -1
  83. package/dist/locus-info/hostUtils.js +4 -12
  84. package/dist/locus-info/hostUtils.js.map +1 -1
  85. package/dist/locus-info/index.js +242 -201
  86. package/dist/locus-info/index.js.map +1 -1
  87. package/dist/locus-info/infoUtils.js +3 -37
  88. package/dist/locus-info/infoUtils.js.map +1 -1
  89. package/dist/locus-info/mediaSharesUtils.js +12 -38
  90. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  91. package/dist/locus-info/parser.js +92 -118
  92. package/dist/locus-info/parser.js.map +1 -1
  93. package/dist/locus-info/selfUtils.js +87 -91
  94. package/dist/locus-info/selfUtils.js.map +1 -1
  95. package/dist/media/index.js +56 -146
  96. package/dist/media/index.js.map +1 -1
  97. package/dist/media/properties.js +83 -117
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +2 -9
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.js +505 -495
  102. package/dist/mediaQualityMetrics/config.js.map +1 -1
  103. package/dist/meeting/in-meeting-actions.js +35 -14
  104. package/dist/meeting/in-meeting-actions.js.map +1 -1
  105. package/dist/meeting/index.js +2264 -2242
  106. package/dist/meeting/index.js.map +1 -1
  107. package/dist/meeting/muteState.js +102 -100
  108. package/dist/meeting/muteState.js.map +1 -1
  109. package/dist/meeting/request.js +308 -264
  110. package/dist/meeting/request.js.map +1 -1
  111. package/dist/meeting/request.type.js +7 -0
  112. package/dist/meeting/request.type.js.map +1 -0
  113. package/dist/meeting/state.js +21 -31
  114. package/dist/meeting/state.js.map +1 -1
  115. package/dist/meeting/util.js +69 -217
  116. package/dist/meeting/util.js.map +1 -1
  117. package/dist/meeting-info/collection.js +6 -25
  118. package/dist/meeting-info/collection.js.map +1 -1
  119. package/dist/meeting-info/index.js +14 -32
  120. package/dist/meeting-info/index.js.map +1 -1
  121. package/dist/meeting-info/meeting-info-v2.js +268 -279
  122. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  123. package/dist/meeting-info/request.js +3 -15
  124. package/dist/meeting-info/request.js.map +1 -1
  125. package/dist/meeting-info/util.js +98 -183
  126. package/dist/meeting-info/util.js.map +1 -1
  127. package/dist/meeting-info/utilv2.js +154 -232
  128. package/dist/meeting-info/utilv2.js.map +1 -1
  129. package/dist/meetings/collection.js +26 -19
  130. package/dist/meetings/collection.js.map +1 -1
  131. package/dist/meetings/index.js +566 -552
  132. package/dist/meetings/index.js.map +1 -1
  133. package/dist/meetings/request.js +26 -41
  134. package/dist/meetings/request.js.map +1 -1
  135. package/dist/meetings/util.js +151 -155
  136. package/dist/meetings/util.js.map +1 -1
  137. package/dist/member/index.js +100 -85
  138. package/dist/member/index.js.map +1 -1
  139. package/dist/member/types.js +15 -0
  140. package/dist/member/types.js.map +1 -0
  141. package/dist/member/util.js +90 -68
  142. package/dist/member/util.js.map +1 -1
  143. package/dist/members/collection.js +13 -12
  144. package/dist/members/collection.js.map +1 -1
  145. package/dist/members/index.js +175 -204
  146. package/dist/members/index.js.map +1 -1
  147. package/dist/members/request.js +54 -39
  148. package/dist/members/request.js.map +1 -1
  149. package/dist/members/types.js +15 -0
  150. package/dist/members/types.js.map +1 -0
  151. package/dist/members/util.js +107 -44
  152. package/dist/members/util.js.map +1 -1
  153. package/dist/metrics/config.js +4 -14
  154. package/dist/metrics/config.js.map +1 -1
  155. package/dist/metrics/constants.js +3 -7
  156. package/dist/metrics/constants.js.map +1 -1
  157. package/dist/metrics/index.js +59 -156
  158. package/dist/metrics/index.js.map +1 -1
  159. package/dist/multistream/mediaRequestManager.js +167 -50
  160. package/dist/multistream/mediaRequestManager.js.map +1 -1
  161. package/dist/multistream/receiveSlot.js +58 -65
  162. package/dist/multistream/receiveSlot.js.map +1 -1
  163. package/dist/multistream/receiveSlotManager.js +74 -93
  164. package/dist/multistream/receiveSlotManager.js.map +1 -1
  165. package/dist/multistream/remoteMedia.js +55 -74
  166. package/dist/multistream/remoteMedia.js.map +1 -1
  167. package/dist/multistream/remoteMediaGroup.js +6 -40
  168. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  169. package/dist/multistream/remoteMediaManager.js +466 -442
  170. package/dist/multistream/remoteMediaManager.js.map +1 -1
  171. package/dist/networkQualityMonitor/index.js +40 -59
  172. package/dist/networkQualityMonitor/index.js.map +1 -1
  173. package/dist/personal-meeting-room/index.js +21 -45
  174. package/dist/personal-meeting-room/index.js.map +1 -1
  175. package/dist/personal-meeting-room/request.js +1 -31
  176. package/dist/personal-meeting-room/request.js.map +1 -1
  177. package/dist/personal-meeting-room/util.js +0 -13
  178. package/dist/personal-meeting-room/util.js.map +1 -1
  179. package/dist/reachability/index.js +192 -191
  180. package/dist/reachability/index.js.map +1 -1
  181. package/dist/reachability/request.js +15 -23
  182. package/dist/reachability/request.js.map +1 -1
  183. package/dist/reactions/constants.js +13 -0
  184. package/dist/reactions/constants.js.map +1 -0
  185. package/dist/reactions/reactions.js +109 -0
  186. package/dist/reactions/reactions.js.map +1 -0
  187. package/dist/reactions/reactions.type.js +36 -0
  188. package/dist/reactions/reactions.type.js.map +1 -0
  189. package/dist/reconnection-manager/index.js +340 -460
  190. package/dist/reconnection-manager/index.js.map +1 -1
  191. package/dist/recording-controller/enums.js +17 -0
  192. package/dist/recording-controller/enums.js.map +1 -0
  193. package/dist/recording-controller/index.js +343 -0
  194. package/dist/recording-controller/index.js.map +1 -0
  195. package/dist/recording-controller/util.js +63 -0
  196. package/dist/recording-controller/util.js.map +1 -0
  197. package/dist/roap/index.js +48 -70
  198. package/dist/roap/index.js.map +1 -1
  199. package/dist/roap/request.js +143 -131
  200. package/dist/roap/request.js.map +1 -1
  201. package/dist/roap/turnDiscovery.js +91 -98
  202. package/dist/roap/turnDiscovery.js.map +1 -1
  203. package/dist/statsAnalyzer/global.js +1 -95
  204. package/dist/statsAnalyzer/global.js.map +1 -1
  205. package/dist/statsAnalyzer/index.js +385 -459
  206. package/dist/statsAnalyzer/index.js.map +1 -1
  207. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  208. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  209. package/dist/transcription/index.js +22 -47
  210. package/dist/transcription/index.js.map +1 -1
  211. package/dist/types/breakouts/breakout.d.ts +8 -0
  212. package/dist/types/breakouts/collection.d.ts +5 -0
  213. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  214. package/dist/types/breakouts/index.d.ts +5 -0
  215. package/dist/types/breakouts/request.d.ts +22 -0
  216. package/dist/types/breakouts/utils.d.ts +8 -0
  217. package/dist/types/common/browser-detection.d.ts +9 -0
  218. package/dist/types/common/collection.d.ts +48 -0
  219. package/dist/types/common/config.d.ts +2 -0
  220. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  221. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  222. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  223. package/dist/types/common/errors/media.d.ts +15 -0
  224. package/dist/types/common/errors/parameter.d.ts +15 -0
  225. package/dist/types/common/errors/password-error.d.ts +15 -0
  226. package/dist/types/common/errors/permission.d.ts +14 -0
  227. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  228. package/dist/types/common/errors/reconnection.d.ts +15 -0
  229. package/dist/types/common/errors/stats.d.ts +15 -0
  230. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  231. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  232. package/dist/types/common/events/events-scope.d.ts +17 -0
  233. package/dist/types/common/events/events.d.ts +12 -0
  234. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  235. package/dist/types/common/events/util.d.ts +2 -0
  236. package/dist/types/common/logs/logger-config.d.ts +2 -0
  237. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  238. package/dist/types/common/logs/request.d.ts +34 -0
  239. package/dist/types/common/queue.d.ts +32 -0
  240. package/dist/types/config.d.ts +78 -0
  241. package/dist/types/constants.d.ts +957 -0
  242. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  243. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  244. package/dist/types/controls-options-manager/index.d.ts +136 -0
  245. package/dist/types/controls-options-manager/types.d.ts +37 -0
  246. package/dist/types/controls-options-manager/util.d.ts +103 -0
  247. package/dist/types/index.d.ts +6 -0
  248. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  249. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  250. package/dist/types/locus-info/fullState.d.ts +2 -0
  251. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  252. package/dist/types/locus-info/index.d.ts +277 -0
  253. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  254. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  255. package/dist/types/locus-info/parser.d.ts +212 -0
  256. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  257. package/dist/types/media/index.d.ts +32 -0
  258. package/dist/types/media/properties.d.ts +108 -0
  259. package/dist/types/media/util.d.ts +2 -0
  260. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  261. package/dist/types/meeting/in-meeting-actions.d.ts +105 -0
  262. package/dist/types/meeting/index.d.ts +1721 -0
  263. package/dist/types/meeting/muteState.d.ts +132 -0
  264. package/dist/types/meeting/request.d.ts +271 -0
  265. package/dist/types/meeting/request.type.d.ts +11 -0
  266. package/dist/types/meeting/state.d.ts +9 -0
  267. package/dist/types/meeting/util.d.ts +2 -0
  268. package/dist/types/meeting-info/collection.d.ts +20 -0
  269. package/dist/types/meeting-info/index.d.ts +57 -0
  270. package/dist/types/meeting-info/meeting-info-v2.d.ts +111 -0
  271. package/dist/types/meeting-info/request.d.ts +22 -0
  272. package/dist/types/meeting-info/util.d.ts +2 -0
  273. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  274. package/dist/types/meetings/collection.d.ts +31 -0
  275. package/dist/types/meetings/index.d.ts +315 -0
  276. package/dist/types/meetings/request.d.ts +27 -0
  277. package/dist/types/meetings/util.d.ts +18 -0
  278. package/dist/types/member/index.d.ts +156 -0
  279. package/dist/types/member/types.d.ts +21 -0
  280. package/dist/types/member/util.d.ts +2 -0
  281. package/dist/types/members/collection.d.ts +29 -0
  282. package/dist/types/members/index.d.ts +353 -0
  283. package/dist/types/members/request.d.ts +69 -0
  284. package/dist/types/members/types.d.ts +24 -0
  285. package/dist/types/members/util.d.ts +2 -0
  286. package/dist/types/metrics/config.d.ts +171 -0
  287. package/dist/types/metrics/constants.d.ts +54 -0
  288. package/dist/types/metrics/index.d.ts +152 -0
  289. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  290. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  291. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  292. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  293. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  294. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  295. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  296. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  297. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  298. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  299. package/dist/types/reachability/index.d.ts +152 -0
  300. package/dist/types/reachability/request.d.ts +37 -0
  301. package/dist/types/reactions/constants.d.ts +3 -0
  302. package/dist/types/reactions/reactions.d.ts +4 -0
  303. package/dist/types/reactions/reactions.type.d.ts +52 -0
  304. package/dist/types/reconnection-manager/index.d.ts +126 -0
  305. package/dist/types/recording-controller/enums.d.ts +7 -0
  306. package/dist/types/recording-controller/index.d.ts +193 -0
  307. package/dist/types/recording-controller/util.d.ts +13 -0
  308. package/dist/types/roap/index.d.ts +77 -0
  309. package/dist/types/roap/request.d.ts +38 -0
  310. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  311. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  312. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  313. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  314. package/dist/types/transcription/index.d.ts +64 -0
  315. package/internal-README.md +7 -6
  316. package/package.json +27 -20
  317. package/src/breakouts/README.md +219 -0
  318. package/src/breakouts/breakout.ts +153 -0
  319. package/src/breakouts/collection.ts +19 -0
  320. package/src/breakouts/edit-lock-error.ts +25 -0
  321. package/src/breakouts/index.ts +745 -0
  322. package/src/breakouts/request.ts +55 -0
  323. package/src/breakouts/utils.ts +44 -0
  324. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  325. package/src/common/collection.ts +9 -7
  326. package/src/common/{config.js → config.ts} +1 -1
  327. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  328. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  329. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  330. package/src/common/errors/{media.js → media.ts} +11 -7
  331. package/src/common/errors/parameter.ts +11 -7
  332. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  333. package/src/common/errors/{permission.js → permission.ts} +10 -6
  334. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  335. package/src/common/errors/{stats.js → stats.ts} +11 -7
  336. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  337. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  338. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  339. package/src/common/events/{events.js → events.ts} +5 -1
  340. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  341. package/src/common/events/{util.js → util.ts} +2 -3
  342. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  343. package/src/common/logs/logger-proxy.ts +44 -0
  344. package/src/common/logs/{request.js → request.ts} +22 -9
  345. package/src/common/queue.ts +1 -2
  346. package/src/{config.js → config.ts} +18 -12
  347. package/src/constants.ts +108 -5
  348. package/src/controls-options-manager/constants.ts +5 -0
  349. package/src/controls-options-manager/enums.ts +16 -0
  350. package/src/controls-options-manager/index.ts +275 -0
  351. package/src/controls-options-manager/types.ts +49 -0
  352. package/src/controls-options-manager/util.ts +229 -0
  353. package/src/index.js +4 -1
  354. package/src/locus-info/controlsUtils.ts +141 -0
  355. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  356. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  357. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  358. package/src/locus-info/{index.js → index.ts} +218 -73
  359. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  360. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  361. package/src/locus-info/{parser.js → parser.ts} +67 -79
  362. package/src/locus-info/{selfUtils.js → selfUtils.ts} +187 -68
  363. package/src/media/{index.js → index.ts} +179 -176
  364. package/src/media/{properties.js → properties.ts} +60 -37
  365. package/src/media/{util.js → util.ts} +2 -2
  366. package/src/mediaQualityMetrics/config.ts +384 -0
  367. package/src/meeting/in-meeting-actions.ts +75 -3
  368. package/src/meeting/{index.js → index.ts} +2658 -1598
  369. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  370. package/src/meeting/{request.js → request.ts} +326 -142
  371. package/src/meeting/request.type.ts +13 -0
  372. package/src/meeting/{state.js → state.ts} +50 -35
  373. package/src/meeting/{util.js → util.ts} +136 -115
  374. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  375. package/src/meeting-info/{index.js → index.ts} +42 -36
  376. package/src/meeting-info/meeting-info-v2.ts +342 -0
  377. package/src/meeting-info/{request.js → request.ts} +14 -4
  378. package/src/meeting-info/{util.js → util.ts} +60 -51
  379. package/src/meeting-info/{utilv2.js → utilv2.ts} +74 -61
  380. package/src/meetings/{collection.js → collection.ts} +26 -3
  381. package/src/meetings/index.ts +1280 -0
  382. package/src/meetings/{request.js → request.ts} +34 -25
  383. package/src/meetings/{util.js → util.ts} +99 -33
  384. package/src/member/{index.js → index.ts} +124 -56
  385. package/src/member/types.ts +24 -0
  386. package/src/member/{util.js → util.ts} +105 -25
  387. package/src/members/{collection.js → collection.ts} +10 -2
  388. package/src/members/{index.js → index.ts} +316 -144
  389. package/src/members/request.ts +215 -0
  390. package/src/members/types.ts +28 -0
  391. package/src/members/{util.js → util.ts} +145 -54
  392. package/src/metrics/{config.js → config.ts} +255 -92
  393. package/src/metrics/{constants.js → constants.ts} +1 -6
  394. package/src/metrics/{index.js → index.ts} +110 -94
  395. package/src/multistream/mediaRequestManager.ts +201 -43
  396. package/src/multistream/receiveSlot.ts +69 -26
  397. package/src/multistream/receiveSlotManager.ts +62 -38
  398. package/src/multistream/remoteMedia.ts +30 -4
  399. package/src/multistream/remoteMediaGroup.ts +4 -3
  400. package/src/multistream/remoteMediaManager.ts +230 -66
  401. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  402. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  403. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  404. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  405. package/src/reachability/{index.js → index.ts} +157 -94
  406. package/src/reachability/request.ts +46 -35
  407. package/src/reactions/constants.ts +4 -0
  408. package/src/reactions/reactions.ts +104 -0
  409. package/src/reactions/reactions.type.ts +62 -0
  410. package/src/reconnection-manager/{index.js → index.ts} +231 -120
  411. package/src/recording-controller/enums.ts +8 -0
  412. package/src/recording-controller/index.ts +315 -0
  413. package/src/recording-controller/util.ts +58 -0
  414. package/src/roap/{index.js → index.ts} +77 -60
  415. package/src/roap/request.ts +172 -0
  416. package/src/roap/turnDiscovery.ts +81 -41
  417. package/src/statsAnalyzer/global.ts +37 -0
  418. package/src/statsAnalyzer/index.ts +1273 -0
  419. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  420. package/src/transcription/{index.js → index.ts} +46 -39
  421. package/test/integration/spec/converged-space-meetings.js +176 -0
  422. package/test/integration/spec/journey.js +665 -464
  423. package/test/integration/spec/space-meeting.js +320 -206
  424. package/test/integration/spec/transcription.js +7 -8
  425. package/test/unit/spec/breakouts/breakout.ts +178 -0
  426. package/test/unit/spec/breakouts/collection.ts +15 -0
  427. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  428. package/test/unit/spec/breakouts/index.ts +1252 -0
  429. package/test/unit/spec/breakouts/request.ts +104 -0
  430. package/test/unit/spec/breakouts/utils.js +54 -0
  431. package/test/unit/spec/common/browser-detection.js +9 -28
  432. package/test/unit/spec/controls-options-manager/index.js +280 -0
  433. package/test/unit/spec/controls-options-manager/util.js +403 -0
  434. package/test/unit/spec/fixture/locus.js +92 -90
  435. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  436. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  437. package/test/unit/spec/locus-info/index.js +333 -3
  438. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  439. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  440. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  441. package/test/unit/spec/locus-info/parser.js +3 -9
  442. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  443. package/test/unit/spec/locus-info/selfUtils.js +191 -12
  444. package/test/unit/spec/media/index.ts +72 -8
  445. package/test/unit/spec/media/properties.ts +9 -9
  446. package/test/unit/spec/meeting/in-meeting-actions.ts +34 -3
  447. package/test/unit/spec/meeting/index.js +2547 -802
  448. package/test/unit/spec/meeting/muteState.js +146 -61
  449. package/test/unit/spec/meeting/request.js +141 -43
  450. package/test/unit/spec/meeting/utils.js +166 -163
  451. package/test/unit/spec/meeting-info/meetinginfov2.js +241 -74
  452. package/test/unit/spec/meeting-info/request.js +7 -9
  453. package/test/unit/spec/meeting-info/util.js +11 -12
  454. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  455. package/test/unit/spec/meetings/collection.js +15 -1
  456. package/test/unit/spec/meetings/index.js +682 -262
  457. package/test/unit/spec/meetings/utils.js +65 -14
  458. package/test/unit/spec/member/index.js +24 -1
  459. package/test/unit/spec/member/util.js +359 -32
  460. package/test/unit/spec/members/index.js +402 -54
  461. package/test/unit/spec/members/request.js +76 -20
  462. package/test/unit/spec/members/utils.js +191 -4
  463. package/test/unit/spec/metrics/index.js +16 -21
  464. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  465. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  466. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  467. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  468. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  469. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  470. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  471. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  472. package/test/unit/spec/reachability/index.ts +176 -27
  473. package/test/unit/spec/reachability/request.js +66 -0
  474. package/test/unit/spec/reconnection-manager/index.js +62 -30
  475. package/test/unit/spec/recording-controller/index.js +231 -0
  476. package/test/unit/spec/recording-controller/util.js +102 -0
  477. package/test/unit/spec/roap/index.ts +12 -8
  478. package/test/unit/spec/roap/request.ts +217 -0
  479. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  480. package/test/unit/spec/stats-analyzer/index.js +116 -60
  481. package/test/utils/cmr.js +44 -42
  482. package/test/utils/constants.js +9 -0
  483. package/test/utils/testUtils.js +98 -77
  484. package/test/utils/webex-config.js +22 -18
  485. package/test/utils/webex-test-users.js +57 -50
  486. package/tsconfig.json +6 -0
  487. package/dist/media/internal-media-core-wrapper.js +0 -22
  488. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  489. package/dist/meeting/effectsState.js +0 -327
  490. package/dist/meeting/effectsState.js.map +0 -1
  491. package/dist/multistream/multistreamMedia.js +0 -116
  492. package/dist/multistream/multistreamMedia.js.map +0 -1
  493. package/src/common/logs/logger-proxy.js +0 -33
  494. package/src/locus-info/controlsUtils.js +0 -102
  495. package/src/media/internal-media-core-wrapper.ts +0 -9
  496. package/src/mediaQualityMetrics/config.js +0 -382
  497. package/src/meeting/effectsState.js +0 -205
  498. package/src/meeting-info/meeting-info-v2.js +0 -255
  499. package/src/meetings/index.js +0 -1015
  500. package/src/members/request.js +0 -131
  501. package/src/multistream/multistreamMedia.ts +0 -92
  502. package/src/roap/request.js +0 -127
  503. package/src/statsAnalyzer/global.js +0 -133
  504. package/src/statsAnalyzer/index.js +0 -1006
  505. package/src/statsAnalyzer/mqaUtil.js +0 -173
  506. package/test/unit/spec/meeting/effectsState.js +0 -291
  507. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,215 @@
1
+ // @ts-ignore
2
+ import {StatelessWebexPlugin} from '@webex/webex-core';
3
+
4
+ import {MEETINGS} from '../constants';
5
+ import ParameterError from '../common/errors/parameter';
6
+
7
+ import MembersUtil from './util';
8
+
9
+ /**
10
+ * @class MembersRequest
11
+ */
12
+ export default class MembersRequest extends StatelessWebexPlugin {
13
+ namespace = MEETINGS;
14
+
15
+ /**
16
+ *
17
+ * @param {Object} options with format of {invitee: string, locusUrl: string}
18
+ * @returns {Promise}
19
+ * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
20
+ * @memberof MembersRequest
21
+ */
22
+ addMembers(options: any) {
23
+ if (
24
+ !(
25
+ !options ||
26
+ !options.invitee ||
27
+ !options.invitee.emailAddress ||
28
+ !options.invitee.email ||
29
+ !options.invitee.phoneNumber ||
30
+ !options.locusUrl
31
+ )
32
+ ) {
33
+ throw new ParameterError(
34
+ 'invitee must be passed and the associated locus url for this meeting object must be defined.'
35
+ );
36
+ }
37
+ const requestParams = MembersUtil.getAddMemberRequestParams(options);
38
+
39
+ // @ts-ignore
40
+ return this.request(requestParams);
41
+ }
42
+
43
+ /**
44
+ *
45
+ * @param {Object} options
46
+ * @returns {Promise}
47
+ * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl
48
+ * @memberof MembersRequest
49
+ */
50
+ admitMember(options: any) {
51
+ if (!options || !options.locusUrl || !options.memberIds) {
52
+ throw new ParameterError(
53
+ 'memberIds must be an array passed and the associated locus url for this meeting object must be defined.'
54
+ );
55
+ }
56
+ const requestParams = MembersUtil.getAdmitMemberRequestParams(options);
57
+
58
+ // @ts-ignore
59
+ return this.request(requestParams);
60
+ }
61
+
62
+ removeMember(options) {
63
+ if (!options || !options.locusUrl || !options.memberId) {
64
+ throw new ParameterError(
65
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
66
+ );
67
+ }
68
+
69
+ const requestParams = MembersUtil.getRemoveMemberRequestParams(options);
70
+
71
+ // @ts-ignore
72
+ return this.request(requestParams);
73
+ }
74
+
75
+ muteMember(options) {
76
+ if (!options || !options.locusUrl || !options.memberId) {
77
+ throw new ParameterError(
78
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
79
+ );
80
+ }
81
+
82
+ const requestParams = MembersUtil.getMuteMemberRequestParams(options);
83
+
84
+ // @ts-ignore
85
+ return this.request(requestParams);
86
+ }
87
+
88
+ /**
89
+ * Sends a request to the DTMF endpoint to send tones
90
+ * @param {Object} options
91
+ * @param {String} options.locusUrl
92
+ * @param {String} options.memberId ID of PSTN user
93
+ * @returns {Promise}
94
+ */
95
+ assignRolesMember(options: any) {
96
+ if (!options || !options.locusUrl || !options.memberId) {
97
+ throw new ParameterError(
98
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
99
+ );
100
+ }
101
+
102
+ const requestParams = MembersUtil.getRoleAssignmentMemberRequestParams(options);
103
+
104
+ // @ts-ignore
105
+ return this.request(requestParams);
106
+ }
107
+
108
+ raiseOrLowerHandMember(options) {
109
+ if (!options || !options.locusUrl || !options.memberId) {
110
+ throw new ParameterError(
111
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
112
+ );
113
+ }
114
+
115
+ const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);
116
+
117
+ // @ts-ignore
118
+ return this.request(requestParams);
119
+ }
120
+
121
+ lowerAllHandsMember(options) {
122
+ if (!options || !options.locusUrl || !options.requestingParticipantId) {
123
+ throw new ParameterError(
124
+ 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'
125
+ );
126
+ }
127
+
128
+ const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);
129
+
130
+ // @ts-ignore
131
+ return this.request(requestParams);
132
+ }
133
+
134
+ /**
135
+ *
136
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
137
+ * @returns {Promise}
138
+ * @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl
139
+ * @memberof MembersRequest
140
+ */
141
+ editDisplayNameMember(options: {locusUrl: string; requestingParticipantId: string}) {
142
+ if (!options || !options.locusUrl || !options.requestingParticipantId) {
143
+ throw new ParameterError(
144
+ 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'
145
+ );
146
+ }
147
+
148
+ const requestParams = MembersUtil.editDisplayNameMemberRequestParams(options);
149
+
150
+ // @ts-ignore
151
+ return this.request(requestParams);
152
+ }
153
+
154
+ transferHostToMember(options) {
155
+ if (!options || !options.locusUrl || !options.memberId || !options.moderator) {
156
+ throw new ParameterError(
157
+ 'memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.'
158
+ );
159
+ }
160
+
161
+ const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);
162
+
163
+ // @ts-ignore
164
+ return this.request(requestParams);
165
+ }
166
+
167
+ /**
168
+ * Sends a request to the DTMF endpoint to send tones
169
+ * @param {Object} options
170
+ * @param {String} options.locusUrl
171
+ * @param {String} options.url device url SIP user
172
+ * @param {String} options.tones a string of one or more DTMF tones to send
173
+ * @param {String} options.memberId ID of PSTN user
174
+ * @returns {Promise}
175
+ */
176
+ sendDialPadKey(options: {locusUrl: string; url: string; tones: string; memberId: string}) {
177
+ // @ts-ignore
178
+ if (
179
+ !options ||
180
+ !options.locusUrl ||
181
+ !options.memberId ||
182
+ !options.url ||
183
+ // @ts-ignore
184
+ (!options.tones && options.tones !== 0)
185
+ ) {
186
+ throw new ParameterError(
187
+ 'memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.'
188
+ );
189
+ }
190
+
191
+ const requestParams = MembersUtil.generateSendDTMFRequestParams(options);
192
+
193
+ // @ts-ignore
194
+ return this.request(requestParams);
195
+ }
196
+
197
+ /**
198
+ * @param {Object} options with format of {invitee: string, locusUrl: string}
199
+ * @returns {Promise}
200
+ * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
201
+ * @memberof MembersRequest
202
+ */
203
+ cancelPhoneInvite(options: any) {
204
+ if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {
205
+ throw new ParameterError(
206
+ 'invitee must be passed and the associated locus url for this meeting object must be defined.'
207
+ );
208
+ }
209
+
210
+ const requestParams = MembersUtil.generateCancelInviteRequestParams(options);
211
+
212
+ // @ts-ignore
213
+ return this.request(requestParams);
214
+ }
215
+ }
@@ -0,0 +1,28 @@
1
+ export enum ServerRoles {
2
+ Cohost = 'COHOST',
3
+ Moderator = 'MODERATOR',
4
+ Presenter = 'PRESENTER',
5
+ }
6
+
7
+ export type ServerRoleShape = {
8
+ type: ServerRoles;
9
+ hasRole: boolean;
10
+ };
11
+
12
+ export type RoleAssignmentOptions = {
13
+ roles: Array<ServerRoleShape>;
14
+ locusUrl: string;
15
+ memberId: string;
16
+ };
17
+
18
+ export type RoleAssignmentBody = {
19
+ role: {
20
+ roles: Array<ServerRoleShape>;
21
+ };
22
+ };
23
+
24
+ export type RoleAssignmentRequest = {
25
+ method: string;
26
+ uri: string;
27
+ body: RoleAssignmentBody;
28
+ };
@@ -1,5 +1,4 @@
1
1
  import uuid from 'uuid';
2
-
3
2
  import {
4
3
  HTTP_VERBS,
5
4
  CONTROLS,
@@ -9,10 +8,13 @@ import {
9
8
  VALID_EMAIL_ADDRESS,
10
9
  DIALER_REGEX,
11
10
  SEND_DTMF_ENDPOINT,
12
- _REMOVE_
11
+ _REMOVE_,
12
+ ALIAS,
13
13
  } from '../constants';
14
14
 
15
- const MembersUtil = {};
15
+ import {RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape} from './types';
16
+
17
+ const MembersUtil: any = {};
16
18
 
17
19
  /**
18
20
  * @param {Object} invitee with emailAddress, email or phoneNumber
@@ -20,10 +22,14 @@ const MembersUtil = {};
20
22
  * @param {Boolean} alertIfActive
21
23
  * @returns {Object} the format object
22
24
  */
23
- MembersUtil.generateAddMemberOptions = (invitee, locusUrl, alertIfActive) => ({
25
+ MembersUtil.generateAddMemberOptions = (
26
+ invitee: object,
27
+ locusUrl: string,
28
+ alertIfActive: boolean
29
+ ) => ({
24
30
  invitee,
25
31
  locusUrl,
26
- alertIfActive
32
+ alertIfActive,
27
33
  });
28
34
 
29
35
  /**
@@ -31,44 +37,55 @@ MembersUtil.generateAddMemberOptions = (invitee, locusUrl, alertIfActive) => ({
31
37
  * @param {String} locusUrl
32
38
  * @returns {Object} the format object
33
39
  */
34
- MembersUtil.generateAdmitMemberOptions = (memberIds, locusUrl) => ({
40
+ MembersUtil.generateAdmitMemberOptions = (memberIds: Array<any>, locusUrl: string) => ({
35
41
  locusUrl,
36
- memberIds
42
+ memberIds,
37
43
  });
38
44
 
39
45
  /**
40
46
  * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}
41
47
  * @returns {Object} with {invitees: [{address}], alertIfActive}
42
48
  */
43
- MembersUtil.getAddMemberBody = (options) => ({
49
+ MembersUtil.getAddMemberBody = (options: any) => ({
44
50
  invitees: [
45
51
  {
46
- address: options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber
47
- }
52
+ address: options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber,
53
+ },
48
54
  ],
49
- alertIfActive: options.alertIfActive
55
+ alertIfActive: options.alertIfActive,
50
56
  });
51
57
 
52
58
  /**
53
- * @param {Object} options with {memberIds}
59
+ * @param {Object} options with {memberIds, authorizingLocusUrl}
54
60
  * @returns {Object} admit with {memberIds}
55
61
  */
56
- MembersUtil.getAdmitMemberRequestBody = (options) => ({
57
- admit: {participantIds: options.memberIds}
58
- });
62
+ MembersUtil.getAdmitMemberRequestBody = (options: any) => {
63
+ const {memberIds, sessionLocusUrls} = options;
64
+ const body: any = {admit: {participantIds: memberIds}};
65
+ if (sessionLocusUrls) {
66
+ const {authorizingLocusUrl} = sessionLocusUrls;
67
+
68
+ return {authorizingLocusUrl, ...body};
69
+ }
70
+
71
+ return body;
72
+ };
59
73
 
60
74
  /**
61
- * @param {Object} format with {memberIds, locusUrl}
75
+ * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}
62
76
  * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request
77
+ * if a host/cohost is in a breakout session, the locus url should be the main session locus url
63
78
  */
64
- MembersUtil.getAdmitMemberRequestParams = (format) => {
79
+ MembersUtil.getAdmitMemberRequestParams = (format: any) => {
65
80
  const body = MembersUtil.getAdmitMemberRequestBody(format);
66
- const uri = `${format.locusUrl}/${CONTROLS}`;
81
+ const {locusUrl, sessionLocusUrls} = format;
82
+ const baseUrl = sessionLocusUrls?.mainLocusUrl || locusUrl;
83
+ const uri = `${baseUrl}/${CONTROLS}`;
67
84
 
68
85
  return {
69
86
  method: HTTP_VERBS.PUT,
70
87
  uri,
71
- body
88
+ body,
72
89
  };
73
90
  };
74
91
 
@@ -76,12 +93,12 @@ MembersUtil.getAdmitMemberRequestParams = (format) => {
76
93
  * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}
77
94
  * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request
78
95
  */
79
- MembersUtil.getAddMemberRequestParams = (format) => {
96
+ MembersUtil.getAddMemberRequestParams = (format: any) => {
80
97
  const body = MembersUtil.getAddMemberBody(format);
81
98
  const requestParams = {
82
99
  method: HTTP_VERBS.PUT,
83
100
  uri: format.locusUrl,
84
- body
101
+ body,
85
102
  };
86
103
 
87
104
  return requestParams;
@@ -101,104 +118,180 @@ MembersUtil.isInvalidInvitee = (invitee) => {
101
118
 
102
119
  MembersUtil.getRemoveMemberRequestParams = (options) => {
103
120
  const body = {
104
- reason: options.reason
121
+ reason: options.reason,
105
122
  };
106
123
  const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${LEAVE}`;
107
124
 
108
125
  return {
109
126
  method: HTTP_VERBS.PUT,
110
127
  uri,
111
- body
128
+ body,
112
129
  };
113
130
  };
114
131
 
115
132
  MembersUtil.generateTransferHostMemberOptions = (transfer, moderator, locusUrl) => ({
116
133
  moderator,
117
134
  locusUrl,
118
- memberId: transfer
135
+ memberId: transfer,
119
136
  });
120
137
 
121
138
  MembersUtil.generateRemoveMemberOptions = (removal, locusUrl) => ({
122
139
  reason: _FORCED_,
123
140
  memberId: removal,
124
- locusUrl
141
+ locusUrl,
125
142
  });
126
143
 
127
- MembersUtil.generateMuteMemberOptions = (memberId, status, locusUrl) => ({
144
+ MembersUtil.generateMuteMemberOptions = (memberId, status, locusUrl, isAudio) => ({
128
145
  memberId,
129
146
  muted: status,
130
- locusUrl
147
+ locusUrl,
148
+ isAudio,
131
149
  });
132
150
 
133
151
  MembersUtil.generateRaiseHandMemberOptions = (memberId, status, locusUrl) => ({
134
152
  memberId,
135
153
  raised: status,
136
- locusUrl
154
+ locusUrl,
155
+ });
156
+
157
+ /**
158
+ * @param {String} memberId
159
+ * @param {[ServerRoleShape]} roles
160
+ * @param {String} locusUrl
161
+ * @returns {RoleAssignmentOptions}
162
+ */
163
+ MembersUtil.generateRoleAssignmentMemberOptions = (
164
+ memberId: string,
165
+ roles: Array<ServerRoleShape>,
166
+ locusUrl: string
167
+ ): RoleAssignmentOptions => ({
168
+ memberId,
169
+ roles,
170
+ locusUrl,
137
171
  });
138
172
 
139
173
  MembersUtil.generateLowerAllHandsMemberOptions = (requestingParticipantId, locusUrl) => ({
140
174
  requestingParticipantId,
175
+ locusUrl,
176
+ });
177
+
178
+ /**
179
+ * @param {String} memberId id of the participant who is receiving request
180
+ * @param {String} requestingParticipantId id of the participant who is sending request (optional)
181
+ * @param {String} alias alias name
182
+ * @param {String} locusUrl url
183
+ * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}
184
+ */
185
+ MembersUtil.generateEditDisplayNameMemberOptions = (
186
+ memberId,
187
+ requestingParticipantId,
188
+ alias,
141
189
  locusUrl
190
+ ) => ({
191
+ memberId,
192
+ requestingParticipantId,
193
+ alias,
194
+ locusUrl,
142
195
  });
143
196
 
144
197
  MembersUtil.getMuteMemberRequestParams = (options) => {
198
+ const property = options.isAudio === false ? 'video' : 'audio';
145
199
  const body = {
146
- audio: {
147
- muted: options.muted
148
- }
200
+ [property]: {
201
+ muted: options.muted,
202
+ },
149
203
  };
150
204
  const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
151
205
 
152
206
  return {
153
207
  method: HTTP_VERBS.PATCH,
154
208
  uri,
155
- body
209
+ body,
210
+ };
211
+ };
212
+
213
+ /**
214
+ * @param {RoleAssignmentOptions} options
215
+ * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request
216
+ */
217
+ MembersUtil.getRoleAssignmentMemberRequestParams = (
218
+ options: RoleAssignmentOptions
219
+ ): RoleAssignmentRequest => {
220
+ const body = {role: {roles: []}};
221
+ options.roles.forEach((role) => {
222
+ body.role.roles.push({type: role.type, hasRole: role.hasRole});
223
+ });
224
+
225
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
226
+
227
+ return {
228
+ method: HTTP_VERBS.PATCH,
229
+ uri,
230
+ body,
156
231
  };
157
232
  };
158
233
 
159
234
  MembersUtil.getRaiseHandMemberRequestParams = (options) => {
160
235
  const body = {
161
236
  hand: {
162
- raised: options.raised
163
- }
237
+ raised: options.raised,
238
+ },
164
239
  };
165
240
  const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
166
241
 
167
242
  return {
168
243
  method: HTTP_VERBS.PATCH,
169
244
  uri,
170
- body
245
+ body,
171
246
  };
172
247
  };
173
248
 
174
249
  MembersUtil.getLowerAllHandsMemberRequestParams = (options) => {
175
250
  const body = {
176
251
  hand: {
177
- raised: false
252
+ raised: false,
178
253
  },
179
- requestingParticipantId: options.requestingParticipantId
254
+ requestingParticipantId: options.requestingParticipantId,
180
255
  };
181
256
  const uri = `${options.locusUrl}/${CONTROLS}`;
182
257
 
183
258
  return {
184
259
  method: HTTP_VERBS.PATCH,
185
260
  uri,
186
- body
261
+ body,
262
+ };
263
+ };
264
+
265
+ /**
266
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
267
+ * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request
268
+ */
269
+ MembersUtil.editDisplayNameMemberRequestParams = (options) => {
270
+ const body = {
271
+ aliasValue: options.alias,
272
+ requestingParticipantId: options.requestingParticipantId,
273
+ };
274
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${ALIAS}`;
275
+
276
+ return {
277
+ method: HTTP_VERBS.POST,
278
+ uri,
279
+ body,
187
280
  };
188
281
  };
189
282
 
190
283
  MembersUtil.getTransferHostToMemberRequestParams = (options) => {
191
284
  const body = {
192
285
  role: {
193
- moderator: options.moderator
194
- }
286
+ moderator: options.moderator,
287
+ },
195
288
  };
196
289
  const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
197
290
 
198
291
  return {
199
292
  method: HTTP_VERBS.PATCH,
200
293
  uri,
201
- body
294
+ body,
202
295
  };
203
296
  };
204
297
 
@@ -206,35 +299,33 @@ MembersUtil.genderateSendDTMFOptions = (url, tones, memberId, locusUrl) => ({
206
299
  url,
207
300
  tones,
208
301
  memberId,
209
- locusUrl
302
+ locusUrl,
210
303
  });
211
304
 
212
- MembersUtil.generateSendDTMFRequestParams = ({
213
- url, tones, memberId, locusUrl
214
- }) => {
305
+ MembersUtil.generateSendDTMFRequestParams = ({url, tones, memberId, locusUrl}) => {
215
306
  const body = {
216
307
  device: {
217
- url
308
+ url,
218
309
  },
219
310
  memberId,
220
311
  dtmf: {
221
312
  correlationId: uuid.v4(),
222
313
  tones,
223
- direction: 'transmit'
224
- }
314
+ direction: 'transmit',
315
+ },
225
316
  };
226
317
  const uri = `${locusUrl}/${PARTICIPANT}/${memberId}/${SEND_DTMF_ENDPOINT}`;
227
318
 
228
319
  return {
229
320
  method: HTTP_VERBS.POST,
230
321
  uri,
231
- body
322
+ body,
232
323
  };
233
324
  };
234
325
 
235
326
  MembersUtil.cancelPhoneInviteOptions = (invitee, locusUrl) => ({
236
327
  invitee,
237
- locusUrl
328
+ locusUrl,
238
329
  });
239
330
 
240
331
  MembersUtil.generateCancelInviteRequestParams = (options) => {
@@ -242,14 +333,14 @@ MembersUtil.generateCancelInviteRequestParams = (options) => {
242
333
  actionType: _REMOVE_,
243
334
  invitees: [
244
335
  {
245
- address: options.invitee.phoneNumber
246
- }
247
- ]
336
+ address: options.invitee.phoneNumber,
337
+ },
338
+ ],
248
339
  };
249
340
  const requestParams = {
250
341
  method: HTTP_VERBS.PUT,
251
342
  uri: options.locusUrl,
252
- body
343
+ body,
253
344
  };
254
345
 
255
346
  return requestParams;