@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104

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 (548) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.js +48 -0
  6. package/dist/annotation/constants.js.map +1 -0
  7. package/dist/annotation/index.js +357 -0
  8. package/dist/annotation/index.js.map +1 -0
  9. package/dist/breakouts/breakout.js +176 -0
  10. package/dist/breakouts/breakout.js.map +1 -0
  11. package/dist/breakouts/collection.js +23 -0
  12. package/dist/breakouts/collection.js.map +1 -0
  13. package/dist/breakouts/edit-lock-error.js +52 -0
  14. package/dist/breakouts/edit-lock-error.js.map +1 -0
  15. package/dist/breakouts/events.js +43 -0
  16. package/dist/breakouts/events.js.map +1 -0
  17. package/dist/breakouts/index.js +919 -0
  18. package/dist/breakouts/index.js.map +1 -0
  19. package/dist/breakouts/request.js +78 -0
  20. package/dist/breakouts/request.js.map +1 -0
  21. package/dist/breakouts/utils.js +67 -0
  22. package/dist/breakouts/utils.js.map +1 -0
  23. package/dist/common/browser-detection.js +1 -20
  24. package/dist/common/browser-detection.js.map +1 -1
  25. package/dist/common/collection.js +5 -20
  26. package/dist/common/collection.js.map +1 -1
  27. package/dist/common/config.js +0 -7
  28. package/dist/common/config.js.map +1 -1
  29. package/dist/common/errors/captcha-error.js +10 -24
  30. package/dist/common/errors/captcha-error.js.map +1 -1
  31. package/dist/common/errors/intent-to-join.js +11 -24
  32. package/dist/common/errors/intent-to-join.js.map +1 -1
  33. package/dist/common/errors/join-meeting.js +12 -25
  34. package/dist/common/errors/join-meeting.js.map +1 -1
  35. package/dist/common/errors/media.js +10 -24
  36. package/dist/common/errors/media.js.map +1 -1
  37. package/dist/common/errors/parameter.js +5 -33
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +10 -24
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +9 -23
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reconnection-in-progress.js +0 -17
  44. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  45. package/dist/common/errors/reconnection.js +10 -24
  46. package/dist/common/errors/reconnection.js.map +1 -1
  47. package/dist/common/errors/stats.js +10 -24
  48. package/dist/common/errors/stats.js.map +1 -1
  49. package/dist/common/errors/webex-errors.js +10 -69
  50. package/dist/common/errors/webex-errors.js.map +1 -1
  51. package/dist/common/errors/webex-meetings-error.js +5 -25
  52. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  53. package/dist/common/events/events-scope.js +0 -22
  54. package/dist/common/events/events-scope.js.map +1 -1
  55. package/dist/common/events/events.js +0 -23
  56. package/dist/common/events/events.js.map +1 -1
  57. package/dist/common/events/trigger-proxy.js +0 -12
  58. package/dist/common/events/trigger-proxy.js.map +1 -1
  59. package/dist/common/events/util.js +0 -15
  60. package/dist/common/events/util.js.map +1 -1
  61. package/dist/common/logs/logger-config.js +0 -4
  62. package/dist/common/logs/logger-config.js.map +1 -1
  63. package/dist/common/logs/logger-proxy.js +1 -8
  64. package/dist/common/logs/logger-proxy.js.map +1 -1
  65. package/dist/common/logs/request.js +37 -60
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.js +4 -14
  68. package/dist/common/queue.js.map +1 -1
  69. package/dist/config.js +7 -6
  70. package/dist/config.js.map +1 -1
  71. package/dist/constants.js +184 -122
  72. package/dist/constants.js.map +1 -1
  73. package/dist/controls-options-manager/constants.js +14 -0
  74. package/dist/controls-options-manager/constants.js.map +1 -0
  75. package/dist/controls-options-manager/enums.js +25 -0
  76. package/dist/controls-options-manager/enums.js.map +1 -0
  77. package/dist/controls-options-manager/index.js +297 -0
  78. package/dist/controls-options-manager/index.js.map +1 -0
  79. package/dist/controls-options-manager/types.js +7 -0
  80. package/dist/controls-options-manager/types.js.map +1 -0
  81. package/dist/controls-options-manager/util.js +250 -0
  82. package/dist/controls-options-manager/util.js.map +1 -0
  83. package/dist/index.js +72 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/locus-info/controlsUtils.js +56 -29
  86. package/dist/locus-info/controlsUtils.js.map +1 -1
  87. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  88. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  89. package/dist/locus-info/fullState.js +0 -15
  90. package/dist/locus-info/fullState.js.map +1 -1
  91. package/dist/locus-info/hostUtils.js +4 -12
  92. package/dist/locus-info/hostUtils.js.map +1 -1
  93. package/dist/locus-info/index.js +362 -208
  94. package/dist/locus-info/index.js.map +1 -1
  95. package/dist/locus-info/infoUtils.js +3 -37
  96. package/dist/locus-info/infoUtils.js.map +1 -1
  97. package/dist/locus-info/mediaSharesUtils.js +12 -38
  98. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  99. package/dist/locus-info/parser.js +92 -118
  100. package/dist/locus-info/parser.js.map +1 -1
  101. package/dist/locus-info/selfUtils.js +99 -91
  102. package/dist/locus-info/selfUtils.js.map +1 -1
  103. package/dist/media/index.js +113 -337
  104. package/dist/media/index.js.map +1 -1
  105. package/dist/media/properties.js +96 -135
  106. package/dist/media/properties.js.map +1 -1
  107. package/dist/media/util.js +1 -35
  108. package/dist/media/util.js.map +1 -1
  109. package/dist/mediaQualityMetrics/config.js +505 -495
  110. package/dist/mediaQualityMetrics/config.js.map +1 -1
  111. package/dist/meeting/in-meeting-actions.js +59 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2909 -2398
  114. package/dist/meeting/index.js.map +1 -1
  115. package/dist/meeting/muteState.js +257 -112
  116. package/dist/meeting/muteState.js.map +1 -1
  117. package/dist/meeting/request.js +330 -264
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/request.type.js +7 -0
  120. package/dist/meeting/request.type.js.map +1 -0
  121. package/dist/meeting/state.js +21 -31
  122. package/dist/meeting/state.js.map +1 -1
  123. package/dist/meeting/util.js +63 -261
  124. package/dist/meeting/util.js.map +1 -1
  125. package/dist/meeting-info/collection.js +6 -25
  126. package/dist/meeting-info/collection.js.map +1 -1
  127. package/dist/meeting-info/index.js +14 -32
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.js +273 -280
  130. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  131. package/dist/meeting-info/request.js +3 -15
  132. package/dist/meeting-info/request.js.map +1 -1
  133. package/dist/meeting-info/util.js +98 -183
  134. package/dist/meeting-info/util.js.map +1 -1
  135. package/dist/meeting-info/utilv2.js +155 -232
  136. package/dist/meeting-info/utilv2.js.map +1 -1
  137. package/dist/meetings/collection.js +26 -19
  138. package/dist/meetings/collection.js.map +1 -1
  139. package/dist/meetings/index.js +741 -548
  140. package/dist/meetings/index.js.map +1 -1
  141. package/dist/meetings/request.js +26 -41
  142. package/dist/meetings/request.js.map +1 -1
  143. package/dist/meetings/util.js +194 -149
  144. package/dist/meetings/util.js.map +1 -1
  145. package/dist/member/index.js +100 -85
  146. package/dist/member/index.js.map +1 -1
  147. package/dist/member/types.js +15 -0
  148. package/dist/member/types.js.map +1 -0
  149. package/dist/member/util.js +90 -68
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.js +13 -12
  152. package/dist/members/collection.js.map +1 -1
  153. package/dist/members/index.js +227 -188
  154. package/dist/members/index.js.map +1 -1
  155. package/dist/members/request.js +54 -39
  156. package/dist/members/request.js.map +1 -1
  157. package/dist/members/types.js +15 -0
  158. package/dist/members/types.js.map +1 -0
  159. package/dist/members/util.js +107 -44
  160. package/dist/members/util.js.map +1 -1
  161. package/dist/metrics/config.js +5 -14
  162. package/dist/metrics/config.js.map +1 -1
  163. package/dist/metrics/constants.js +3 -7
  164. package/dist/metrics/constants.js.map +1 -1
  165. package/dist/metrics/index.js +67 -159
  166. package/dist/metrics/index.js.map +1 -1
  167. package/dist/multistream/mediaRequestManager.js +250 -0
  168. package/dist/multistream/mediaRequestManager.js.map +1 -0
  169. package/dist/multistream/receiveSlot.js +202 -0
  170. package/dist/multistream/receiveSlot.js.map +1 -0
  171. package/dist/multistream/receiveSlotManager.js +176 -0
  172. package/dist/multistream/receiveSlotManager.js.map +1 -0
  173. package/dist/multistream/remoteMedia.js +270 -0
  174. package/dist/multistream/remoteMedia.js.map +1 -0
  175. package/dist/multistream/remoteMediaGroup.js +209 -0
  176. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  177. package/dist/multistream/remoteMediaManager.js +1137 -0
  178. package/dist/multistream/remoteMediaManager.js.map +1 -0
  179. package/dist/networkQualityMonitor/index.js +40 -59
  180. package/dist/networkQualityMonitor/index.js.map +1 -1
  181. package/dist/personal-meeting-room/index.js +21 -45
  182. package/dist/personal-meeting-room/index.js.map +1 -1
  183. package/dist/personal-meeting-room/request.js +1 -31
  184. package/dist/personal-meeting-room/request.js.map +1 -1
  185. package/dist/personal-meeting-room/util.js +0 -13
  186. package/dist/personal-meeting-room/util.js.map +1 -1
  187. package/dist/reachability/index.js +192 -191
  188. package/dist/reachability/index.js.map +1 -1
  189. package/dist/reachability/request.js +15 -23
  190. package/dist/reachability/request.js.map +1 -1
  191. package/dist/reactions/constants.js +13 -0
  192. package/dist/reactions/constants.js.map +1 -0
  193. package/dist/reactions/reactions.js +109 -0
  194. package/dist/reactions/reactions.js.map +1 -0
  195. package/dist/reactions/reactions.type.js +36 -0
  196. package/dist/reactions/reactions.type.js.map +1 -0
  197. package/dist/reconnection-manager/index.js +386 -527
  198. package/dist/reconnection-manager/index.js.map +1 -1
  199. package/dist/recording-controller/enums.js +17 -0
  200. package/dist/recording-controller/enums.js.map +1 -0
  201. package/dist/recording-controller/index.js +343 -0
  202. package/dist/recording-controller/index.js.map +1 -0
  203. package/dist/recording-controller/util.js +63 -0
  204. package/dist/recording-controller/util.js.map +1 -0
  205. package/dist/roap/index.js +84 -286
  206. package/dist/roap/index.js.map +1 -1
  207. package/dist/roap/request.js +138 -238
  208. package/dist/roap/request.js.map +1 -1
  209. package/dist/roap/turnDiscovery.js +164 -102
  210. package/dist/roap/turnDiscovery.js.map +1 -1
  211. package/dist/statsAnalyzer/global.js +1 -93
  212. package/dist/statsAnalyzer/global.js.map +1 -1
  213. package/dist/statsAnalyzer/index.js +399 -470
  214. package/dist/statsAnalyzer/index.js.map +1 -1
  215. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  216. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  217. package/dist/transcription/index.js +22 -47
  218. package/dist/transcription/index.js.map +1 -1
  219. package/dist/types/annotation/annotation.types.d.ts +34 -0
  220. package/dist/types/annotation/constants.d.ts +31 -0
  221. package/dist/types/annotation/index.d.ts +124 -0
  222. package/dist/types/breakouts/breakout.d.ts +8 -0
  223. package/dist/types/breakouts/collection.d.ts +5 -0
  224. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  225. package/dist/types/breakouts/events.d.ts +2 -0
  226. package/dist/types/breakouts/index.d.ts +5 -0
  227. package/dist/types/breakouts/request.d.ts +22 -0
  228. package/dist/types/breakouts/utils.d.ts +15 -0
  229. package/dist/types/common/browser-detection.d.ts +9 -0
  230. package/dist/types/common/collection.d.ts +48 -0
  231. package/dist/types/common/config.d.ts +2 -0
  232. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  233. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  234. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  235. package/dist/types/common/errors/media.d.ts +15 -0
  236. package/dist/types/common/errors/parameter.d.ts +15 -0
  237. package/dist/types/common/errors/password-error.d.ts +15 -0
  238. package/dist/types/common/errors/permission.d.ts +14 -0
  239. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  240. package/dist/types/common/errors/reconnection.d.ts +15 -0
  241. package/dist/types/common/errors/stats.d.ts +15 -0
  242. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  243. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  244. package/dist/types/common/events/events-scope.d.ts +17 -0
  245. package/dist/types/common/events/events.d.ts +12 -0
  246. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  247. package/dist/types/common/events/util.d.ts +2 -0
  248. package/dist/types/common/logs/logger-config.d.ts +2 -0
  249. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  250. package/dist/types/common/logs/request.d.ts +34 -0
  251. package/dist/types/common/queue.d.ts +32 -0
  252. package/dist/types/config.d.ts +78 -0
  253. package/dist/types/constants.d.ts +968 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +37 -0
  258. package/dist/types/controls-options-manager/util.d.ts +1 -0
  259. package/dist/types/index.d.ts +7 -0
  260. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  261. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  262. package/dist/types/locus-info/fullState.d.ts +2 -0
  263. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  264. package/dist/types/locus-info/index.d.ts +315 -0
  265. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  266. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  267. package/dist/types/locus-info/parser.d.ts +212 -0
  268. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  269. package/dist/types/media/index.d.ts +34 -0
  270. package/dist/types/media/properties.d.ts +108 -0
  271. package/dist/types/media/util.d.ts +2 -0
  272. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  273. package/dist/types/meeting/in-meeting-actions.d.ts +129 -0
  274. package/dist/types/meeting/index.d.ts +1748 -0
  275. package/dist/types/meeting/muteState.d.ts +185 -0
  276. package/dist/types/meeting/request.d.ts +275 -0
  277. package/dist/types/meeting/request.type.d.ts +11 -0
  278. package/dist/types/meeting/state.d.ts +9 -0
  279. package/dist/types/meeting/util.d.ts +2 -0
  280. package/dist/types/meeting-info/collection.d.ts +20 -0
  281. package/dist/types/meeting-info/index.d.ts +57 -0
  282. package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -0
  283. package/dist/types/meeting-info/request.d.ts +22 -0
  284. package/dist/types/meeting-info/util.d.ts +2 -0
  285. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  286. package/dist/types/meetings/collection.d.ts +31 -0
  287. package/dist/types/meetings/index.d.ts +345 -0
  288. package/dist/types/meetings/request.d.ts +27 -0
  289. package/dist/types/meetings/util.d.ts +18 -0
  290. package/dist/types/member/index.d.ts +156 -0
  291. package/dist/types/member/types.d.ts +21 -0
  292. package/dist/types/member/util.d.ts +2 -0
  293. package/dist/types/members/collection.d.ts +29 -0
  294. package/dist/types/members/index.d.ts +353 -0
  295. package/dist/types/members/request.d.ts +69 -0
  296. package/dist/types/members/types.d.ts +24 -0
  297. package/dist/types/members/util.d.ts +2 -0
  298. package/dist/types/metrics/config.d.ts +172 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +152 -0
  301. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  302. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  303. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  304. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  305. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  306. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  307. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  308. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  309. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  310. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  311. package/dist/types/reachability/index.d.ts +152 -0
  312. package/dist/types/reachability/request.d.ts +37 -0
  313. package/dist/types/reactions/constants.d.ts +3 -0
  314. package/dist/types/reactions/reactions.d.ts +4 -0
  315. package/dist/types/reactions/reactions.type.d.ts +52 -0
  316. package/dist/types/reconnection-manager/index.d.ts +126 -0
  317. package/dist/types/recording-controller/enums.d.ts +7 -0
  318. package/dist/types/recording-controller/index.d.ts +193 -0
  319. package/dist/types/recording-controller/util.d.ts +13 -0
  320. package/dist/types/roap/index.d.ts +77 -0
  321. package/dist/types/roap/request.d.ts +38 -0
  322. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  323. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  324. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  325. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  326. package/dist/types/transcription/index.d.ts +64 -0
  327. package/internal-README.md +7 -6
  328. package/package.json +29 -21
  329. package/src/annotation/annotation.types.ts +41 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +339 -0
  332. package/src/breakouts/README.md +219 -0
  333. package/src/breakouts/breakout.ts +141 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +37 -0
  337. package/src/breakouts/index.ts +823 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  341. package/src/common/collection.ts +9 -7
  342. package/src/common/{config.js → config.ts} +1 -1
  343. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  344. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  345. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  346. package/src/common/errors/{media.js → media.ts} +11 -7
  347. package/src/common/errors/parameter.ts +11 -7
  348. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  349. package/src/common/errors/{permission.js → permission.ts} +10 -6
  350. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  351. package/src/common/errors/{stats.js → stats.ts} +11 -7
  352. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -25
  353. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  354. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  355. package/src/common/events/{events.js → events.ts} +5 -1
  356. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  357. package/src/common/events/{util.js → util.ts} +2 -3
  358. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  359. package/src/common/logs/logger-proxy.ts +44 -0
  360. package/src/common/logs/{request.js → request.ts} +22 -9
  361. package/src/common/queue.ts +1 -2
  362. package/src/{config.js → config.ts} +18 -12
  363. package/src/constants.ts +256 -183
  364. package/src/controls-options-manager/constants.ts +5 -0
  365. package/src/controls-options-manager/enums.ts +16 -0
  366. package/src/controls-options-manager/index.ts +278 -0
  367. package/src/controls-options-manager/types.ts +49 -0
  368. package/src/controls-options-manager/util.ts +229 -0
  369. package/src/index.ts +33 -0
  370. package/src/locus-info/controlsUtils.ts +169 -0
  371. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  372. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  373. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  374. package/src/locus-info/{index.js → index.ts} +331 -80
  375. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  376. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  377. package/src/locus-info/{parser.js → parser.ts} +67 -79
  378. package/src/locus-info/{selfUtils.js → selfUtils.ts} +196 -67
  379. package/src/media/index.ts +488 -0
  380. package/src/media/{properties.js → properties.ts} +67 -54
  381. package/src/media/util.ts +16 -0
  382. package/src/mediaQualityMetrics/config.ts +384 -0
  383. package/src/meeting/in-meeting-actions.ts +123 -3
  384. package/src/meeting/{index.js → index.ts} +3334 -1775
  385. package/src/meeting/muteState.ts +526 -0
  386. package/src/meeting/{request.js → request.ts} +350 -142
  387. package/src/meeting/request.type.ts +13 -0
  388. package/src/meeting/{state.js → state.ts} +50 -35
  389. package/src/meeting/{util.js → util.ts} +126 -159
  390. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  391. package/src/meeting-info/{index.js → index.ts} +42 -36
  392. package/src/meeting-info/meeting-info-v2.ts +345 -0
  393. package/src/meeting-info/{request.js → request.ts} +14 -4
  394. package/src/meeting-info/{util.js → util.ts} +60 -51
  395. package/src/meeting-info/{utilv2.js → utilv2.ts} +76 -60
  396. package/src/meetings/{collection.js → collection.ts} +26 -3
  397. package/src/meetings/index.ts +1394 -0
  398. package/src/meetings/{request.js → request.ts} +34 -25
  399. package/src/meetings/util.ts +288 -0
  400. package/src/member/{index.js → index.ts} +124 -56
  401. package/src/member/types.ts +24 -0
  402. package/src/member/{util.js → util.ts} +105 -25
  403. package/src/members/{collection.js → collection.ts} +10 -2
  404. package/src/members/{index.js → index.ts} +359 -139
  405. package/src/members/request.ts +215 -0
  406. package/src/members/types.ts +28 -0
  407. package/src/members/{util.js → util.ts} +145 -54
  408. package/src/metrics/{config.js → config.ts} +256 -92
  409. package/src/metrics/{constants.js → constants.ts} +1 -6
  410. package/src/metrics/{index.js → index.ts} +116 -97
  411. package/src/multistream/mediaRequestManager.ts +324 -0
  412. package/src/multistream/receiveSlot.ts +184 -0
  413. package/src/multistream/receiveSlotManager.ts +166 -0
  414. package/src/multistream/remoteMedia.ts +254 -0
  415. package/src/multistream/remoteMediaGroup.ts +225 -0
  416. package/src/multistream/remoteMediaManager.ts +1075 -0
  417. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  418. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  419. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  420. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  421. package/src/reachability/{index.js → index.ts} +157 -94
  422. package/src/reachability/request.ts +46 -35
  423. package/src/reactions/constants.ts +4 -0
  424. package/src/reactions/reactions.ts +104 -0
  425. package/src/reactions/reactions.type.ts +62 -0
  426. package/src/reconnection-manager/{index.js → index.ts} +261 -163
  427. package/src/recording-controller/enums.ts +8 -0
  428. package/src/recording-controller/index.ts +315 -0
  429. package/src/recording-controller/util.ts +58 -0
  430. package/src/roap/index.ts +241 -0
  431. package/src/roap/request.ts +172 -0
  432. package/src/roap/turnDiscovery.ts +127 -53
  433. package/src/statsAnalyzer/global.ts +37 -0
  434. package/src/statsAnalyzer/index.ts +1273 -0
  435. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  436. package/src/transcription/{index.js → index.ts} +46 -39
  437. package/test/integration/spec/converged-space-meetings.js +177 -0
  438. package/test/integration/spec/journey.js +666 -464
  439. package/test/integration/spec/space-meeting.js +321 -206
  440. package/test/integration/spec/transcription.js +7 -8
  441. package/test/unit/spec/annotation/index.ts +435 -0
  442. package/test/unit/spec/breakouts/breakout.ts +184 -0
  443. package/test/unit/spec/breakouts/collection.ts +15 -0
  444. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  445. package/test/unit/spec/breakouts/events.ts +77 -0
  446. package/test/unit/spec/breakouts/index.ts +1504 -0
  447. package/test/unit/spec/breakouts/request.ts +104 -0
  448. package/test/unit/spec/breakouts/utils.js +72 -0
  449. package/test/unit/spec/common/browser-detection.js +9 -28
  450. package/test/unit/spec/controls-options-manager/index.js +287 -0
  451. package/test/unit/spec/controls-options-manager/util.js +403 -0
  452. package/test/unit/spec/fixture/locus.js +92 -90
  453. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  454. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  455. package/test/unit/spec/locus-info/index.js +493 -3
  456. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  457. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  458. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  459. package/test/unit/spec/locus-info/parser.js +3 -9
  460. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  461. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  462. package/test/unit/spec/media/index.ts +303 -0
  463. package/test/unit/spec/media/properties.ts +73 -82
  464. package/test/unit/spec/meeting/in-meeting-actions.ts +58 -3
  465. package/test/unit/spec/meeting/index.js +3127 -975
  466. package/test/unit/spec/meeting/muteState.js +375 -70
  467. package/test/unit/spec/meeting/request.js +217 -43
  468. package/test/unit/spec/meeting/utils.js +205 -163
  469. package/test/unit/spec/meeting-info/meetinginfov2.js +268 -74
  470. package/test/unit/spec/meeting-info/request.js +7 -9
  471. package/test/unit/spec/meeting-info/util.js +11 -12
  472. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  473. package/test/unit/spec/meetings/collection.js +15 -1
  474. package/test/unit/spec/meetings/index.js +1052 -333
  475. package/test/unit/spec/meetings/utils.js +163 -14
  476. package/test/unit/spec/member/index.js +24 -1
  477. package/test/unit/spec/member/util.js +359 -32
  478. package/test/unit/spec/members/index.js +547 -37
  479. package/test/unit/spec/members/request.js +76 -20
  480. package/test/unit/spec/members/utils.js +191 -4
  481. package/test/unit/spec/metrics/index.js +46 -20
  482. package/test/unit/spec/multistream/mediaRequestManager.ts +1060 -0
  483. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  484. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  485. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  486. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  487. package/test/unit/spec/multistream/remoteMediaManager.ts +1793 -0
  488. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  489. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  490. package/test/unit/spec/reachability/index.ts +176 -27
  491. package/test/unit/spec/reachability/request.js +66 -0
  492. package/test/unit/spec/reconnection-manager/index.js +106 -9
  493. package/test/unit/spec/recording-controller/index.js +231 -0
  494. package/test/unit/spec/recording-controller/util.js +102 -0
  495. package/test/unit/spec/roap/index.ts +78 -45
  496. package/test/unit/spec/roap/request.ts +217 -0
  497. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  498. package/test/unit/spec/stats-analyzer/index.js +118 -65
  499. package/test/utils/cmr.js +44 -42
  500. package/test/utils/constants.js +9 -0
  501. package/test/utils/integrationTestUtils.js +64 -0
  502. package/test/utils/testUtils.js +63 -99
  503. package/test/utils/webex-config.js +22 -18
  504. package/test/utils/webex-test-users.js +57 -50
  505. package/tsconfig.json +6 -0
  506. package/dist/meeting/effectsState.js +0 -327
  507. package/dist/meeting/effectsState.js.map +0 -1
  508. package/dist/peer-connection-manager/index.js +0 -794
  509. package/dist/peer-connection-manager/index.js.map +0 -1
  510. package/dist/peer-connection-manager/util.js +0 -124
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.js +0 -73
  513. package/dist/roap/collection.js.map +0 -1
  514. package/dist/roap/handler.js +0 -337
  515. package/dist/roap/handler.js.map +0 -1
  516. package/dist/roap/state.js +0 -164
  517. package/dist/roap/state.js.map +0 -1
  518. package/dist/roap/util.js +0 -102
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/common/logs/logger-proxy.js +0 -33
  521. package/src/index.js +0 -15
  522. package/src/locus-info/controlsUtils.js +0 -102
  523. package/src/media/index.js +0 -593
  524. package/src/media/util.js +0 -38
  525. package/src/mediaQualityMetrics/config.js +0 -382
  526. package/src/meeting/effectsState.js +0 -205
  527. package/src/meeting/muteState.js +0 -318
  528. package/src/meeting-info/meeting-info-v2.js +0 -255
  529. package/src/meetings/index.js +0 -986
  530. package/src/meetings/util.js +0 -176
  531. package/src/members/request.js +0 -131
  532. package/src/peer-connection-manager/index.js +0 -723
  533. package/src/peer-connection-manager/util.ts +0 -117
  534. package/src/roap/collection.js +0 -63
  535. package/src/roap/handler.js +0 -252
  536. package/src/roap/index.js +0 -380
  537. package/src/roap/request.js +0 -198
  538. package/src/roap/state.js +0 -149
  539. package/src/roap/util.js +0 -93
  540. package/src/statsAnalyzer/global.js +0 -131
  541. package/src/statsAnalyzer/index.js +0 -1020
  542. package/src/statsAnalyzer/mqaUtil.js +0 -173
  543. package/test/unit/spec/meeting/effectsState.js +0 -293
  544. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  545. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  546. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  547. package/test/unit/spec/roap/util.js +0 -30
  548. /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;