@webex/plugin-meetings 3.0.0-beta.3 → 3.0.0-beta.300

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 (601) hide show
  1. package/README.md +46 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +9 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +315 -68
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +114 -17
  89. package/dist/index.js.map +1 -1
  90. package/dist/interpretation/collection.js +23 -0
  91. package/dist/interpretation/collection.js.map +1 -0
  92. package/dist/interpretation/index.js +366 -0
  93. package/dist/interpretation/index.js.map +1 -0
  94. package/dist/interpretation/siLanguage.js +25 -0
  95. package/dist/interpretation/siLanguage.js.map +1 -0
  96. package/dist/locus-info/controlsUtils.js +101 -29
  97. package/dist/locus-info/controlsUtils.js.map +1 -1
  98. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  99. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  100. package/dist/locus-info/fullState.js +0 -15
  101. package/dist/locus-info/fullState.js.map +1 -1
  102. package/dist/locus-info/hostUtils.js +4 -12
  103. package/dist/locus-info/hostUtils.js.map +1 -1
  104. package/dist/locus-info/index.js +561 -246
  105. package/dist/locus-info/index.js.map +1 -1
  106. package/dist/locus-info/infoUtils.js +10 -38
  107. package/dist/locus-info/infoUtils.js.map +1 -1
  108. package/dist/locus-info/mediaSharesUtils.js +68 -38
  109. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  110. package/dist/locus-info/parser.js +314 -163
  111. package/dist/locus-info/parser.js.map +1 -1
  112. package/dist/locus-info/selfUtils.js +110 -92
  113. package/dist/locus-info/selfUtils.js.map +1 -1
  114. package/dist/media/index.js +103 -231
  115. package/dist/media/index.js.map +1 -1
  116. package/dist/media/properties.js +137 -222
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.js +2 -9
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.js +505 -495
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/in-meeting-actions.js +93 -14
  123. package/dist/meeting/in-meeting-actions.js.map +1 -1
  124. package/dist/meeting/index.js +4624 -3740
  125. package/dist/meeting/index.js.map +1 -1
  126. package/dist/meeting/locusMediaRequest.js +292 -0
  127. package/dist/meeting/locusMediaRequest.js.map +1 -0
  128. package/dist/meeting/muteState.js +249 -184
  129. package/dist/meeting/muteState.js.map +1 -1
  130. package/dist/meeting/request.js +400 -346
  131. package/dist/meeting/request.js.map +1 -1
  132. package/dist/meeting/request.type.js +7 -0
  133. package/dist/meeting/request.type.js.map +1 -0
  134. package/dist/meeting/state.js +21 -31
  135. package/dist/meeting/state.js.map +1 -1
  136. package/dist/meeting/util.js +598 -586
  137. package/dist/meeting/util.js.map +1 -1
  138. package/dist/meeting-info/collection.js +6 -25
  139. package/dist/meeting-info/collection.js.map +1 -1
  140. package/dist/meeting-info/index.js +87 -39
  141. package/dist/meeting-info/index.js.map +1 -1
  142. package/dist/meeting-info/meeting-info-v2.js +349 -283
  143. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  144. package/dist/meeting-info/request.js +3 -15
  145. package/dist/meeting-info/request.js.map +1 -1
  146. package/dist/meeting-info/util.js +98 -183
  147. package/dist/meeting-info/util.js.map +1 -1
  148. package/dist/meeting-info/utilv2.js +143 -234
  149. package/dist/meeting-info/utilv2.js.map +1 -1
  150. package/dist/meetings/collection.js +26 -19
  151. package/dist/meetings/collection.js.map +1 -1
  152. package/dist/meetings/index.js +813 -596
  153. package/dist/meetings/index.js.map +1 -1
  154. package/dist/meetings/meetings.types.js +7 -0
  155. package/dist/meetings/meetings.types.js.map +1 -0
  156. package/dist/meetings/request.js +26 -41
  157. package/dist/meetings/request.js.map +1 -1
  158. package/dist/meetings/util.js +183 -156
  159. package/dist/meetings/util.js.map +1 -1
  160. package/dist/member/index.js +135 -85
  161. package/dist/member/index.js.map +1 -1
  162. package/dist/member/types.js +25 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +158 -88
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +13 -12
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +194 -204
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +113 -68
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +15 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +324 -259
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +14 -7
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +11 -558
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +263 -50
  181. package/dist/multistream/mediaRequestManager.js.map +1 -1
  182. package/dist/multistream/receiveSlot.js +58 -65
  183. package/dist/multistream/receiveSlot.js.map +1 -1
  184. package/dist/multistream/receiveSlotManager.js +76 -95
  185. package/dist/multistream/receiveSlotManager.js.map +1 -1
  186. package/dist/multistream/remoteMedia.js +62 -76
  187. package/dist/multistream/remoteMedia.js.map +1 -1
  188. package/dist/multistream/remoteMediaGroup.js +66 -43
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  190. package/dist/multistream/remoteMediaManager.js +536 -439
  191. package/dist/multistream/remoteMediaManager.js.map +1 -1
  192. package/dist/multistream/sendSlotManager.js +233 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +40 -59
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +21 -45
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +1 -31
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +0 -13
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +322 -200
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +20 -26
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +13 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +109 -0
  209. package/dist/reactions/reactions.js.map +1 -0
  210. package/dist/reactions/reactions.type.js +36 -0
  211. package/dist/reactions/reactions.type.js.map +1 -0
  212. package/dist/reconnection-manager/index.js +388 -476
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +17 -0
  215. package/dist/recording-controller/enums.js.map +1 -0
  216. package/dist/recording-controller/index.js +362 -0
  217. package/dist/recording-controller/index.js.map +1 -0
  218. package/dist/recording-controller/util.js +64 -0
  219. package/dist/recording-controller/util.js.map +1 -0
  220. package/dist/roap/index.js +99 -94
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +131 -135
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +151 -101
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +12 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +117 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +1 -95
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +416 -497
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +145 -88
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +22 -47
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/types/annotation/annotation.types.d.ts +42 -0
  239. package/dist/types/annotation/constants.d.ts +31 -0
  240. package/dist/types/annotation/index.d.ts +117 -0
  241. package/dist/types/breakouts/breakout.d.ts +8 -0
  242. package/dist/types/breakouts/collection.d.ts +5 -0
  243. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  244. package/dist/types/breakouts/events.d.ts +8 -0
  245. package/dist/types/breakouts/index.d.ts +5 -0
  246. package/dist/types/breakouts/request.d.ts +22 -0
  247. package/dist/types/breakouts/utils.d.ts +15 -0
  248. package/dist/types/common/browser-detection.d.ts +9 -0
  249. package/dist/types/common/collection.d.ts +48 -0
  250. package/dist/types/common/config.d.ts +2 -0
  251. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  252. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  253. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  254. package/dist/types/common/errors/media.d.ts +15 -0
  255. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  256. package/dist/types/common/errors/parameter.d.ts +15 -0
  257. package/dist/types/common/errors/password-error.d.ts +15 -0
  258. package/dist/types/common/errors/permission.d.ts +14 -0
  259. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  260. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  261. package/dist/types/common/errors/reconnection.d.ts +15 -0
  262. package/dist/types/common/errors/stats.d.ts +15 -0
  263. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  264. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  265. package/dist/types/common/events/events-scope.d.ts +17 -0
  266. package/dist/types/common/events/events.d.ts +12 -0
  267. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  268. package/dist/types/common/events/util.d.ts +2 -0
  269. package/dist/types/common/logs/logger-config.d.ts +2 -0
  270. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  271. package/dist/types/common/logs/request.d.ts +36 -0
  272. package/dist/types/common/queue.d.ts +34 -0
  273. package/dist/types/config.d.ts +71 -0
  274. package/dist/types/constants.d.ts +1066 -0
  275. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  276. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  277. package/dist/types/controls-options-manager/index.d.ts +136 -0
  278. package/dist/types/controls-options-manager/types.d.ts +43 -0
  279. package/dist/types/controls-options-manager/util.d.ts +1 -0
  280. package/dist/types/index.d.ts +7 -0
  281. package/dist/types/interpretation/collection.d.ts +5 -0
  282. package/dist/types/interpretation/index.d.ts +5 -0
  283. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  284. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  285. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  286. package/dist/types/locus-info/fullState.d.ts +2 -0
  287. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  288. package/dist/types/locus-info/index.d.ts +322 -0
  289. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  290. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  291. package/dist/types/locus-info/parser.d.ts +273 -0
  292. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  293. package/dist/types/media/index.d.ts +34 -0
  294. package/dist/types/media/properties.d.ts +93 -0
  295. package/dist/types/media/util.d.ts +2 -0
  296. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  297. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  298. package/dist/types/meeting/index.d.ts +1676 -0
  299. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  300. package/dist/types/meeting/muteState.d.ts +184 -0
  301. package/dist/types/meeting/request.d.ts +290 -0
  302. package/dist/types/meeting/request.type.d.ts +11 -0
  303. package/dist/types/meeting/state.d.ts +9 -0
  304. package/dist/types/meeting/util.d.ts +102 -0
  305. package/dist/types/meeting-info/collection.d.ts +20 -0
  306. package/dist/types/meeting-info/index.d.ts +69 -0
  307. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  308. package/dist/types/meeting-info/request.d.ts +22 -0
  309. package/dist/types/meeting-info/util.d.ts +2 -0
  310. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  311. package/dist/types/meetings/collection.d.ts +31 -0
  312. package/dist/types/meetings/index.d.ts +367 -0
  313. package/dist/types/meetings/meetings.types.d.ts +4 -0
  314. package/dist/types/meetings/request.d.ts +27 -0
  315. package/dist/types/meetings/util.d.ts +18 -0
  316. package/dist/types/member/index.d.ts +160 -0
  317. package/dist/types/member/types.d.ts +32 -0
  318. package/dist/types/member/util.d.ts +2 -0
  319. package/dist/types/members/collection.d.ts +29 -0
  320. package/dist/types/members/index.d.ts +353 -0
  321. package/dist/types/members/request.d.ts +114 -0
  322. package/dist/types/members/types.d.ts +25 -0
  323. package/dist/types/members/util.d.ts +215 -0
  324. package/dist/types/metrics/constants.d.ts +65 -0
  325. package/dist/types/metrics/index.d.ts +45 -0
  326. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  327. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  328. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  329. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  330. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  331. package/dist/types/multistream/remoteMediaManager.d.ts +285 -0
  332. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  333. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  334. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  335. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  336. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  337. package/dist/types/reachability/index.d.ts +194 -0
  338. package/dist/types/reachability/request.d.ts +39 -0
  339. package/dist/types/reactions/constants.d.ts +3 -0
  340. package/dist/types/reactions/reactions.d.ts +4 -0
  341. package/dist/types/reactions/reactions.type.d.ts +52 -0
  342. package/dist/types/reconnection-manager/index.d.ts +126 -0
  343. package/dist/types/recording-controller/enums.d.ts +7 -0
  344. package/dist/types/recording-controller/index.d.ts +207 -0
  345. package/dist/types/recording-controller/util.d.ts +14 -0
  346. package/dist/types/roap/index.d.ts +78 -0
  347. package/dist/types/roap/request.d.ts +39 -0
  348. package/dist/types/roap/turnDiscovery.d.ts +92 -0
  349. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  350. package/dist/types/rtcMetrics/index.d.ts +47 -0
  351. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  352. package/dist/types/statsAnalyzer/index.d.ts +201 -0
  353. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  354. package/dist/types/transcription/index.d.ts +64 -0
  355. package/dist/types/webinar/collection.d.ts +16 -0
  356. package/dist/types/webinar/index.d.ts +5 -0
  357. package/dist/webinar/collection.js +44 -0
  358. package/dist/webinar/collection.js.map +1 -0
  359. package/dist/webinar/index.js +69 -0
  360. package/dist/webinar/index.js.map +1 -0
  361. package/internal-README.md +7 -6
  362. package/package.json +29 -21
  363. package/src/annotation/annotation.types.ts +50 -0
  364. package/src/annotation/constants.ts +36 -0
  365. package/src/annotation/index.ts +328 -0
  366. package/src/breakouts/README.md +220 -0
  367. package/src/breakouts/breakout.ts +188 -0
  368. package/src/breakouts/collection.ts +19 -0
  369. package/src/breakouts/edit-lock-error.ts +25 -0
  370. package/src/breakouts/events.ts +56 -0
  371. package/src/breakouts/index.ts +925 -0
  372. package/src/breakouts/request.ts +55 -0
  373. package/src/breakouts/utils.ts +57 -0
  374. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  375. package/src/common/collection.ts +9 -7
  376. package/src/common/{config.js → config.ts} +1 -1
  377. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  378. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  379. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  380. package/src/common/errors/{media.js → media.ts} +11 -7
  381. package/src/common/errors/no-meeting-info.ts +24 -0
  382. package/src/common/errors/parameter.ts +11 -7
  383. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  384. package/src/common/errors/{permission.js → permission.ts} +10 -6
  385. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  386. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  387. package/src/common/errors/{stats.js → stats.ts} +11 -7
  388. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  389. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  390. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  391. package/src/common/events/{events.js → events.ts} +5 -1
  392. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  393. package/src/common/events/{util.js → util.ts} +2 -3
  394. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  395. package/src/common/logs/logger-proxy.ts +44 -0
  396. package/src/common/logs/{request.js → request.ts} +26 -9
  397. package/src/common/queue.ts +22 -9
  398. package/src/{config.js → config.ts} +18 -19
  399. package/src/constants.ts +260 -22
  400. package/src/controls-options-manager/constants.ts +5 -0
  401. package/src/controls-options-manager/enums.ts +18 -0
  402. package/src/controls-options-manager/index.ts +278 -0
  403. package/src/controls-options-manager/types.ts +59 -0
  404. package/src/controls-options-manager/util.ts +300 -0
  405. package/src/index.ts +40 -0
  406. package/src/interpretation/README.md +60 -0
  407. package/src/interpretation/collection.ts +19 -0
  408. package/src/interpretation/index.ts +332 -0
  409. package/src/interpretation/siLanguage.ts +18 -0
  410. package/src/locus-info/controlsUtils.ts +222 -0
  411. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  412. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  413. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  414. package/src/locus-info/{index.js → index.ts} +557 -119
  415. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  416. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +81 -17
  417. package/src/locus-info/{parser.js → parser.ts} +303 -104
  418. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  419. package/src/media/index.ts +458 -0
  420. package/src/media/properties.ts +283 -0
  421. package/src/media/{util.js → util.ts} +2 -2
  422. package/src/mediaQualityMetrics/config.ts +384 -0
  423. package/src/meeting/in-meeting-actions.ts +191 -3
  424. package/src/meeting/index.ts +7882 -0
  425. package/src/meeting/locusMediaRequest.ts +313 -0
  426. package/src/meeting/muteState.ts +451 -0
  427. package/src/meeting/{request.js → request.ts} +421 -220
  428. package/src/meeting/request.type.ts +13 -0
  429. package/src/meeting/{state.js → state.ts} +50 -35
  430. package/src/meeting/util.ts +697 -0
  431. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  432. package/src/meeting-info/index.ts +210 -0
  433. package/src/meeting-info/meeting-info-v2.ts +429 -0
  434. package/src/meeting-info/{request.js → request.ts} +14 -4
  435. package/src/meeting-info/{util.js → util.ts} +60 -51
  436. package/src/meeting-info/{utilv2.js → utilv2.ts} +78 -71
  437. package/src/meetings/{collection.js → collection.ts} +26 -3
  438. package/src/meetings/index.ts +1470 -0
  439. package/src/meetings/meetings.types.ts +12 -0
  440. package/src/meetings/{request.js → request.ts} +34 -25
  441. package/src/meetings/{util.js → util.ts} +132 -37
  442. package/src/member/{index.js → index.ts} +160 -56
  443. package/src/member/types.ts +38 -0
  444. package/src/member/util.ts +397 -0
  445. package/src/members/{collection.js → collection.ts} +10 -2
  446. package/src/members/{index.js → index.ts} +351 -146
  447. package/src/members/request.ts +255 -0
  448. package/src/members/types.ts +29 -0
  449. package/src/members/util.ts +353 -0
  450. package/src/metrics/{constants.js → constants.ts} +12 -6
  451. package/src/metrics/index.ts +73 -0
  452. package/src/multistream/mediaRequestManager.ts +337 -63
  453. package/src/multistream/receiveSlot.ts +69 -26
  454. package/src/multistream/receiveSlotManager.ts +66 -42
  455. package/src/multistream/remoteMedia.ts +40 -5
  456. package/src/multistream/remoteMediaGroup.ts +63 -3
  457. package/src/multistream/remoteMediaManager.ts +300 -66
  458. package/src/multistream/sendSlotManager.ts +170 -0
  459. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  460. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  461. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  462. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  463. package/src/reachability/index.ts +671 -0
  464. package/src/reachability/request.ts +50 -35
  465. package/src/reactions/constants.ts +4 -0
  466. package/src/reactions/reactions.ts +104 -0
  467. package/src/reactions/reactions.type.ts +62 -0
  468. package/src/reconnection-manager/{index.js → index.ts} +258 -138
  469. package/src/recording-controller/enums.ts +8 -0
  470. package/src/recording-controller/index.ts +332 -0
  471. package/src/recording-controller/util.ts +75 -0
  472. package/src/roap/{index.js → index.ts} +127 -79
  473. package/src/roap/request.ts +153 -0
  474. package/src/roap/turnDiscovery.ts +109 -47
  475. package/src/rtcMetrics/constants.ts +3 -0
  476. package/src/rtcMetrics/index.ts +100 -0
  477. package/src/statsAnalyzer/global.ts +37 -0
  478. package/src/statsAnalyzer/index.ts +1250 -0
  479. package/src/statsAnalyzer/mqaUtil.ts +292 -0
  480. package/src/transcription/{index.js → index.ts} +46 -39
  481. package/src/webinar/collection.ts +31 -0
  482. package/src/webinar/index.ts +62 -0
  483. package/test/integration/spec/converged-space-meetings.js +233 -0
  484. package/test/integration/spec/journey.js +790 -530
  485. package/test/integration/spec/space-meeting.js +391 -204
  486. package/test/integration/spec/transcription.js +7 -8
  487. package/test/unit/spec/annotation/index.ts +418 -0
  488. package/test/unit/spec/breakouts/breakout.ts +237 -0
  489. package/test/unit/spec/breakouts/collection.ts +15 -0
  490. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  491. package/test/unit/spec/breakouts/events.ts +89 -0
  492. package/test/unit/spec/breakouts/index.ts +1790 -0
  493. package/test/unit/spec/breakouts/request.ts +104 -0
  494. package/test/unit/spec/breakouts/utils.js +72 -0
  495. package/test/unit/spec/common/browser-detection.js +9 -28
  496. package/test/unit/spec/common/queue.js +31 -2
  497. package/test/unit/spec/controls-options-manager/index.js +287 -0
  498. package/test/unit/spec/controls-options-manager/util.js +582 -0
  499. package/test/unit/spec/fixture/locus.js +93 -90
  500. package/test/unit/spec/interpretation/collection.ts +15 -0
  501. package/test/unit/spec/interpretation/index.ts +589 -0
  502. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  503. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  504. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  505. package/test/unit/spec/locus-info/index.js +1390 -17
  506. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  507. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  508. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  509. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  510. package/test/unit/spec/locus-info/parser.js +119 -44
  511. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  512. package/test/unit/spec/locus-info/selfUtils.js +296 -12
  513. package/test/unit/spec/media/index.ts +128 -77
  514. package/test/unit/spec/media/properties.ts +11 -11
  515. package/test/unit/spec/meeting/in-meeting-actions.ts +92 -3
  516. package/test/unit/spec/meeting/index.js +7433 -2752
  517. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  518. package/test/unit/spec/meeting/muteState.js +420 -211
  519. package/test/unit/spec/meeting/request.js +545 -79
  520. package/test/unit/spec/meeting/utils.js +722 -174
  521. package/test/unit/spec/meeting-info/index.js +300 -0
  522. package/test/unit/spec/meeting-info/meetinginfov2.js +624 -76
  523. package/test/unit/spec/meeting-info/request.js +7 -9
  524. package/test/unit/spec/meeting-info/util.js +11 -12
  525. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  526. package/test/unit/spec/meetings/collection.js +15 -1
  527. package/test/unit/spec/meetings/index.js +1365 -377
  528. package/test/unit/spec/meetings/utils.js +216 -14
  529. package/test/unit/spec/member/index.js +61 -7
  530. package/test/unit/spec/member/util.js +526 -26
  531. package/test/unit/spec/members/index.js +536 -55
  532. package/test/unit/spec/members/request.js +228 -40
  533. package/test/unit/spec/members/utils.js +217 -4
  534. package/test/unit/spec/metrics/index.js +12 -66
  535. package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
  536. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  537. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  538. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  539. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  540. package/test/unit/spec/multistream/remoteMediaManager.ts +738 -65
  541. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  542. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  543. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  544. package/test/unit/spec/reachability/index.ts +598 -26
  545. package/test/unit/spec/reachability/request.js +68 -0
  546. package/test/unit/spec/reconnection-manager/index.js +181 -12
  547. package/test/unit/spec/recording-controller/index.js +307 -0
  548. package/test/unit/spec/recording-controller/util.js +229 -0
  549. package/test/unit/spec/roap/index.ts +179 -64
  550. package/test/unit/spec/roap/request.ts +232 -0
  551. package/test/unit/spec/roap/turnDiscovery.ts +123 -58
  552. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  553. package/test/unit/spec/stats-analyzer/index.js +199 -60
  554. package/test/unit/spec/webinar/collection.ts +13 -0
  555. package/test/unit/spec/webinar/index.ts +60 -0
  556. package/test/utils/cmr.js +44 -42
  557. package/test/utils/constants.js +9 -0
  558. package/test/utils/integrationTestUtils.js +46 -0
  559. package/test/utils/testUtils.js +63 -99
  560. package/test/utils/webex-config.js +22 -18
  561. package/test/utils/webex-test-users.js +57 -50
  562. package/tsconfig.json +6 -0
  563. package/dist/media/internal-media-core-wrapper.js +0 -22
  564. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  565. package/dist/meeting/effectsState.js +0 -327
  566. package/dist/meeting/effectsState.js.map +0 -1
  567. package/dist/metrics/config.js +0 -301
  568. package/dist/metrics/config.js.map +0 -1
  569. package/dist/multistream/multistreamMedia.js +0 -116
  570. package/dist/multistream/multistreamMedia.js.map +0 -1
  571. package/dist/peer-connection-manager/util.js +0 -124
  572. package/dist/peer-connection-manager/util.js.map +0 -1
  573. package/src/common/logs/logger-proxy.js +0 -33
  574. package/src/index.js +0 -15
  575. package/src/locus-info/controlsUtils.js +0 -102
  576. package/src/media/index.js +0 -459
  577. package/src/media/internal-media-core-wrapper.ts +0 -9
  578. package/src/media/properties.js +0 -289
  579. package/src/mediaQualityMetrics/config.js +0 -382
  580. package/src/meeting/effectsState.js +0 -205
  581. package/src/meeting/index.js +0 -6284
  582. package/src/meeting/muteState.js +0 -318
  583. package/src/meeting/util.js +0 -506
  584. package/src/meeting-info/index.js +0 -131
  585. package/src/meeting-info/meeting-info-v2.js +0 -255
  586. package/src/meetings/index.js +0 -1015
  587. package/src/member/util.js +0 -254
  588. package/src/members/request.js +0 -131
  589. package/src/members/util.js +0 -258
  590. package/src/metrics/config.js +0 -324
  591. package/src/metrics/index.js +0 -530
  592. package/src/multistream/multistreamMedia.ts +0 -92
  593. package/src/peer-connection-manager/util.ts +0 -117
  594. package/src/reachability/index.js +0 -464
  595. package/src/roap/request.js +0 -127
  596. package/src/statsAnalyzer/global.js +0 -133
  597. package/src/statsAnalyzer/index.js +0 -1006
  598. package/src/statsAnalyzer/mqaUtil.js +0 -173
  599. package/test/unit/spec/meeting/effectsState.js +0 -291
  600. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  601. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,255 @@
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
+ import MeetingUtil from '../meeting/util';
9
+
10
+ /**
11
+ * @class MembersRequest
12
+ */
13
+ export default class MembersRequest extends StatelessWebexPlugin {
14
+ namespace = MEETINGS;
15
+ locusDeltaRequest: (options: object) => Promise<any>;
16
+
17
+ /**
18
+ * Constructor
19
+ * @param {Object} attrs
20
+ * @param {Object} options
21
+ */
22
+ constructor(attrs: {meeting: any}, options: object) {
23
+ const {meeting, ...otherAttrs} = attrs;
24
+ super(otherAttrs, options);
25
+
26
+ this.locusDeltaRequest = MeetingUtil.generateLocusDeltaRequest(meeting);
27
+ }
28
+
29
+ /**
30
+ *
31
+ * @param {Object} options with format of {invitee: string, locusUrl: string}
32
+ * @returns {Promise}
33
+ * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
34
+ * @memberof MembersRequest
35
+ */
36
+ addMembers(options: any) {
37
+ if (
38
+ !(
39
+ !options ||
40
+ !options.invitee ||
41
+ !options.invitee.emailAddress ||
42
+ !options.invitee.email ||
43
+ !options.invitee.phoneNumber ||
44
+ !options.locusUrl
45
+ )
46
+ ) {
47
+ throw new ParameterError(
48
+ 'invitee must be passed and the associated locus url for this meeting object must be defined.'
49
+ );
50
+ }
51
+ const requestParams = MembersUtil.getAddMemberRequestParams(options);
52
+
53
+ return this.locusDeltaRequest(requestParams);
54
+ }
55
+
56
+ /**
57
+ *
58
+ * @param {Object} options
59
+ * @returns {Promise}
60
+ * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl
61
+ * @memberof MembersRequest
62
+ */
63
+ admitMember(options: any) {
64
+ if (!options || !options.locusUrl || !options.memberIds) {
65
+ throw new ParameterError(
66
+ 'memberIds must be an array passed and the associated locus url for this meeting object must be defined.'
67
+ );
68
+ }
69
+ const requestParams = MembersUtil.getAdmitMemberRequestParams(options);
70
+
71
+ return this.locusDeltaRequest(requestParams);
72
+ }
73
+
74
+ /**
75
+ * Sends a request to remove a member
76
+ * @param {Object} options
77
+ * @param {String} options.locusUrl
78
+ * @param {String} options.memberId ID of member
79
+ * @returns {Promise}
80
+ */
81
+ removeMember(options) {
82
+ if (!options || !options.locusUrl || !options.memberId) {
83
+ throw new ParameterError(
84
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
85
+ );
86
+ }
87
+
88
+ const requestParams = MembersUtil.getRemoveMemberRequestParams(options);
89
+
90
+ return this.locusDeltaRequest(requestParams);
91
+ }
92
+
93
+ /**
94
+ * Sends a request to mute a member
95
+ * @param {Object} options
96
+ * @param {String} options.locusUrl
97
+ * @param {String} options.memberId ID of member
98
+ * @returns {Promise}
99
+ */
100
+ muteMember(options) {
101
+ if (!options || !options.locusUrl || !options.memberId) {
102
+ throw new ParameterError(
103
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
104
+ );
105
+ }
106
+
107
+ const requestParams = MembersUtil.getMuteMemberRequestParams(options);
108
+
109
+ // @ts-ignore
110
+ return this.locusDeltaRequest(requestParams);
111
+ }
112
+
113
+ /**
114
+ * Sends a request to the DTMF endpoint to send tones
115
+ * @param {Object} options
116
+ * @param {String} options.locusUrl
117
+ * @param {String} options.memberId ID of PSTN user
118
+ * @returns {Promise}
119
+ */
120
+ assignRolesMember(options: any) {
121
+ if (!options || !options.locusUrl || !options.memberId) {
122
+ throw new ParameterError(
123
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
124
+ );
125
+ }
126
+
127
+ const requestParams = MembersUtil.getRoleAssignmentMemberRequestParams(options);
128
+
129
+ return this.locusDeltaRequest(requestParams);
130
+ }
131
+
132
+ /**
133
+ * Sends a request to raise or lower a member's hand
134
+ * @param {Object} options
135
+ * @param {String} options.locusUrl
136
+ * @param {String} options.memberId ID of member
137
+ * @returns {Promise}
138
+ */
139
+ raiseOrLowerHandMember(options) {
140
+ if (!options || !options.locusUrl || !options.memberId) {
141
+ throw new ParameterError(
142
+ 'memberId must be defined, and the associated locus url for this meeting object must be defined.'
143
+ );
144
+ }
145
+
146
+ const requestParams = MembersUtil.getRaiseHandMemberRequestParams(options);
147
+
148
+ return this.locusDeltaRequest(requestParams);
149
+ }
150
+
151
+ /**
152
+ * Sends a request to lower all hands
153
+ * @param {Object} options
154
+ * @param {String} options.locusUrl
155
+ * @param {String} options.requestingParticipantId ID of requesting participant
156
+ * @returns {Promise}
157
+ */
158
+ lowerAllHandsMember(options) {
159
+ if (!options || !options.locusUrl || !options.requestingParticipantId) {
160
+ throw new ParameterError(
161
+ 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'
162
+ );
163
+ }
164
+
165
+ const requestParams = MembersUtil.getLowerAllHandsMemberRequestParams(options);
166
+
167
+ return this.locusDeltaRequest(requestParams);
168
+ }
169
+
170
+ /**
171
+ *
172
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
173
+ * @returns {Promise}
174
+ * @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl
175
+ * @memberof MembersRequest
176
+ */
177
+ editDisplayNameMember(options: {locusUrl: string; requestingParticipantId: string}) {
178
+ if (!options || !options.locusUrl || !options.requestingParticipantId) {
179
+ throw new ParameterError(
180
+ 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.'
181
+ );
182
+ }
183
+
184
+ const requestParams = MembersUtil.editDisplayNameMemberRequestParams(options);
185
+
186
+ return this.locusDeltaRequest(requestParams);
187
+ }
188
+
189
+ /**
190
+ * Sends a request to raise or lower a member's hand
191
+ * @param {Object} options
192
+ * @param {String} options.locusUrl
193
+ * @param {String} options.memberId ID of member
194
+ * @param {String} options.moderator ID of moderator
195
+ * @returns {Promise}
196
+ */
197
+ transferHostToMember(options) {
198
+ if (!options || !options.locusUrl || !options.memberId || !options.moderator) {
199
+ throw new ParameterError(
200
+ 'memberId must be defined, the associated locus url, and the moderator for this meeting object must be defined.'
201
+ );
202
+ }
203
+
204
+ const requestParams = MembersUtil.getTransferHostToMemberRequestParams(options);
205
+
206
+ return this.locusDeltaRequest(requestParams);
207
+ }
208
+
209
+ /**
210
+ * Sends a request to the DTMF endpoint to send tones
211
+ * @param {Object} options
212
+ * @param {String} options.locusUrl
213
+ * @param {String} options.url device url SIP user
214
+ * @param {String} options.tones a string of one or more DTMF tones to send
215
+ * @param {String} options.memberId ID of PSTN user
216
+ * @returns {Promise}
217
+ */
218
+ sendDialPadKey(options: {locusUrl: string; url: string; tones: string; memberId: string}) {
219
+ // @ts-ignore
220
+ if (
221
+ !options ||
222
+ !options.locusUrl ||
223
+ !options.memberId ||
224
+ !options.url ||
225
+ // @ts-ignore
226
+ (!options.tones && options.tones !== 0)
227
+ ) {
228
+ throw new ParameterError(
229
+ 'memberId must be defined, the associated locus url, the device url and DTMF tones for this meeting object must be defined.'
230
+ );
231
+ }
232
+
233
+ const requestParams = MembersUtil.generateSendDTMFRequestParams(options);
234
+
235
+ return this.locusDeltaRequest(requestParams);
236
+ }
237
+
238
+ /**
239
+ * @param {Object} options with format of {invitee: string, locusUrl: string}
240
+ * @returns {Promise}
241
+ * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
242
+ * @memberof MembersRequest
243
+ */
244
+ cancelPhoneInvite(options: any) {
245
+ if (!(options?.invitee?.phoneNumber || options?.locusUrl)) {
246
+ throw new ParameterError(
247
+ 'invitee must be passed and the associated locus url for this meeting object must be defined.'
248
+ );
249
+ }
250
+
251
+ const requestParams = MembersUtil.generateCancelInviteRequestParams(options);
252
+
253
+ return this.locusDeltaRequest(requestParams);
254
+ }
255
+ }
@@ -0,0 +1,29 @@
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
+ hostKey?: string;
11
+ };
12
+
13
+ export type RoleAssignmentOptions = {
14
+ roles: Array<ServerRoleShape>;
15
+ locusUrl: string;
16
+ memberId: string;
17
+ };
18
+
19
+ export type RoleAssignmentBody = {
20
+ role: {
21
+ roles: Array<ServerRoleShape>;
22
+ };
23
+ };
24
+
25
+ export type RoleAssignmentRequest = {
26
+ method: string;
27
+ uri: string;
28
+ body: RoleAssignmentBody;
29
+ };
@@ -0,0 +1,353 @@
1
+ import uuid from 'uuid';
2
+ import {
3
+ HTTP_VERBS,
4
+ CONTROLS,
5
+ _FORCED_,
6
+ LEAVE,
7
+ PARTICIPANT,
8
+ VALID_EMAIL_ADDRESS,
9
+ DIALER_REGEX,
10
+ SEND_DTMF_ENDPOINT,
11
+ _REMOVE_,
12
+ ALIAS,
13
+ } from '../constants';
14
+
15
+ import {RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape} from './types';
16
+
17
+ const MembersUtil = {
18
+ /**
19
+ * @param {Object} invitee with emailAddress, email or phoneNumber
20
+ * @param {String} locusUrl
21
+ * @param {Boolean} alertIfActive
22
+ * @returns {Object} the format object
23
+ */
24
+ generateAddMemberOptions: (invitee: object, locusUrl: string, alertIfActive: boolean) => ({
25
+ invitee,
26
+ locusUrl,
27
+ alertIfActive,
28
+ }),
29
+
30
+ /**
31
+ * @param {Array} memberIds
32
+ * @param {String} locusUrl
33
+ * @returns {Object} the format object
34
+ */
35
+ generateAdmitMemberOptions: (memberIds: Array<any>, locusUrl: string) => ({
36
+ locusUrl,
37
+ memberIds,
38
+ }),
39
+
40
+ /**
41
+ * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}
42
+ * @returns {Object} with {invitees: [{address}], alertIfActive}
43
+ */
44
+ getAddMemberBody: (options: any) => ({
45
+ invitees: [
46
+ {
47
+ address:
48
+ options.invitee.emailAddress || options.invitee.email || options.invitee.phoneNumber,
49
+ },
50
+ ],
51
+ alertIfActive: options.alertIfActive,
52
+ }),
53
+
54
+ /**
55
+ * @param {Object} options with {memberIds, authorizingLocusUrl}
56
+ * @returns {Object} admit with {memberIds}
57
+ */
58
+ getAdmitMemberRequestBody: (options: any) => {
59
+ const {memberIds, sessionLocusUrls} = options;
60
+ const body: any = {admit: {participantIds: memberIds}};
61
+ if (sessionLocusUrls) {
62
+ const {authorizingLocusUrl} = sessionLocusUrls;
63
+
64
+ return {authorizingLocusUrl, ...body};
65
+ }
66
+
67
+ return body;
68
+ },
69
+
70
+ /**
71
+ * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}
72
+ * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request
73
+ * if a host/cohost is in a breakout session, the locus url should be the main session locus url
74
+ */
75
+ getAdmitMemberRequestParams: (format: any) => {
76
+ const body = MembersUtil.getAdmitMemberRequestBody(format);
77
+ const {locusUrl, sessionLocusUrls} = format;
78
+ const baseUrl = sessionLocusUrls?.mainLocusUrl || locusUrl;
79
+ const uri = `${baseUrl}/${CONTROLS}`;
80
+
81
+ return {
82
+ method: HTTP_VERBS.PUT,
83
+ uri,
84
+ body,
85
+ };
86
+ },
87
+
88
+ /**
89
+ * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}
90
+ * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request
91
+ */
92
+ getAddMemberRequestParams: (format: any) => {
93
+ const body = MembersUtil.getAddMemberBody(format);
94
+ const requestParams = {
95
+ method: HTTP_VERBS.PUT,
96
+ uri: format.locusUrl,
97
+ body,
98
+ };
99
+
100
+ return requestParams;
101
+ },
102
+
103
+ isInvalidInvitee: (invitee) => {
104
+ if (!(invitee && (invitee.email || invitee.emailAddress || invitee.phoneNumber))) {
105
+ return true;
106
+ }
107
+
108
+ if (invitee.phoneNumber) {
109
+ return !DIALER_REGEX.E164_FORMAT.test(invitee.phoneNumber);
110
+ }
111
+
112
+ return !VALID_EMAIL_ADDRESS.test(invitee.email || invitee.emailAddress);
113
+ },
114
+
115
+ getRemoveMemberRequestParams: (options) => {
116
+ const body = {
117
+ reason: options.reason,
118
+ };
119
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${LEAVE}`;
120
+
121
+ return {
122
+ method: HTTP_VERBS.PUT,
123
+ uri,
124
+ body,
125
+ };
126
+ },
127
+
128
+ generateTransferHostMemberOptions: (transfer, moderator, locusUrl) => ({
129
+ moderator,
130
+ locusUrl,
131
+ memberId: transfer,
132
+ }),
133
+
134
+ generateRemoveMemberOptions: (removal, locusUrl) => ({
135
+ reason: _FORCED_,
136
+ memberId: removal,
137
+ locusUrl,
138
+ }),
139
+
140
+ generateMuteMemberOptions: (memberId, status, locusUrl, isAudio) => ({
141
+ memberId,
142
+ muted: status,
143
+ locusUrl,
144
+ isAudio,
145
+ }),
146
+
147
+ generateRaiseHandMemberOptions: (memberId, status, locusUrl) => ({
148
+ memberId,
149
+ raised: status,
150
+ locusUrl,
151
+ }),
152
+
153
+ /**
154
+ * @param {String} memberId
155
+ * @param {[ServerRoleShape]} roles
156
+ * @param {String} locusUrl
157
+ * @returns {RoleAssignmentOptions}
158
+ */
159
+ generateRoleAssignmentMemberOptions: (
160
+ memberId: string,
161
+ roles: Array<ServerRoleShape>,
162
+ locusUrl: string
163
+ ): RoleAssignmentOptions => ({
164
+ memberId,
165
+ roles,
166
+ locusUrl,
167
+ }),
168
+
169
+ generateLowerAllHandsMemberOptions: (requestingParticipantId, locusUrl) => ({
170
+ requestingParticipantId,
171
+ locusUrl,
172
+ }),
173
+
174
+ /**
175
+ * @param {String} memberId id of the participant who is receiving request
176
+ * @param {String} requestingParticipantId id of the participant who is sending request (optional)
177
+ * @param {String} alias alias name
178
+ * @param {String} locusUrl url
179
+ * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}
180
+ */
181
+ generateEditDisplayNameMemberOptions: (memberId, requestingParticipantId, alias, locusUrl) => ({
182
+ memberId,
183
+ requestingParticipantId,
184
+ alias,
185
+ locusUrl,
186
+ }),
187
+
188
+ getMuteMemberRequestParams: (options) => {
189
+ const property = options.isAudio === false ? 'video' : 'audio';
190
+ const body = {
191
+ [property]: {
192
+ muted: options.muted,
193
+ },
194
+ };
195
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
196
+
197
+ return {
198
+ method: HTTP_VERBS.PATCH,
199
+ uri,
200
+ body,
201
+ };
202
+ },
203
+
204
+ /**
205
+ * @param {ServerRoleShape} role
206
+ * @returns {ServerRoleShape} the role shape to be added to the body
207
+ */
208
+ getAddedRoleShape: (role: ServerRoleShape): ServerRoleShape => {
209
+ const roleShape: ServerRoleShape = {type: role.type, hasRole: role.hasRole};
210
+
211
+ if (role.hostKey) {
212
+ roleShape.hostKey = role.hostKey;
213
+ }
214
+
215
+ return roleShape;
216
+ },
217
+
218
+ /**
219
+ * @param {RoleAssignmentOptions} options
220
+ * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request
221
+ */
222
+ getRoleAssignmentMemberRequestParams: (options: RoleAssignmentOptions): RoleAssignmentRequest => {
223
+ const body = {role: {roles: []}};
224
+ options.roles.forEach((role) => {
225
+ body.role.roles.push(MembersUtil.getAddedRoleShape(role));
226
+ });
227
+
228
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
229
+
230
+ return {
231
+ method: HTTP_VERBS.PATCH,
232
+ uri,
233
+ body,
234
+ };
235
+ },
236
+
237
+ getRaiseHandMemberRequestParams: (options) => {
238
+ const body = {
239
+ hand: {
240
+ raised: options.raised,
241
+ },
242
+ };
243
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
244
+
245
+ return {
246
+ method: HTTP_VERBS.PATCH,
247
+ uri,
248
+ body,
249
+ };
250
+ },
251
+
252
+ getLowerAllHandsMemberRequestParams: (options) => {
253
+ const body = {
254
+ hand: {
255
+ raised: false,
256
+ },
257
+ requestingParticipantId: options.requestingParticipantId,
258
+ };
259
+ const uri = `${options.locusUrl}/${CONTROLS}`;
260
+
261
+ return {
262
+ method: HTTP_VERBS.PATCH,
263
+ uri,
264
+ body,
265
+ };
266
+ },
267
+
268
+ /**
269
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
270
+ * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request
271
+ */
272
+ editDisplayNameMemberRequestParams: (options) => {
273
+ const body = {
274
+ aliasValue: options.alias,
275
+ requestingParticipantId: options.requestingParticipantId,
276
+ };
277
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${ALIAS}`;
278
+
279
+ return {
280
+ method: HTTP_VERBS.POST,
281
+ uri,
282
+ body,
283
+ };
284
+ },
285
+
286
+ getTransferHostToMemberRequestParams: (options) => {
287
+ const body = {
288
+ role: {
289
+ moderator: options.moderator,
290
+ },
291
+ };
292
+ const uri = `${options.locusUrl}/${PARTICIPANT}/${options.memberId}/${CONTROLS}`;
293
+
294
+ return {
295
+ method: HTTP_VERBS.PATCH,
296
+ uri,
297
+ body,
298
+ };
299
+ },
300
+
301
+ genderateSendDTMFOptions: (url, tones, memberId, locusUrl) => ({
302
+ url,
303
+ tones,
304
+ memberId,
305
+ locusUrl,
306
+ }),
307
+
308
+ generateSendDTMFRequestParams: ({url, tones, memberId, locusUrl}) => {
309
+ const body = {
310
+ device: {
311
+ url,
312
+ },
313
+ memberId,
314
+ dtmf: {
315
+ correlationId: uuid.v4(),
316
+ tones,
317
+ direction: 'transmit',
318
+ },
319
+ };
320
+ const uri = `${locusUrl}/${PARTICIPANT}/${memberId}/${SEND_DTMF_ENDPOINT}`;
321
+
322
+ return {
323
+ method: HTTP_VERBS.POST,
324
+ uri,
325
+ body,
326
+ };
327
+ },
328
+
329
+ cancelPhoneInviteOptions: (invitee, locusUrl) => ({
330
+ invitee,
331
+ locusUrl,
332
+ }),
333
+
334
+ generateCancelInviteRequestParams: (options) => {
335
+ const body = {
336
+ actionType: _REMOVE_,
337
+ invitees: [
338
+ {
339
+ address: options.invitee.phoneNumber,
340
+ },
341
+ ],
342
+ };
343
+ const requestParams = {
344
+ method: HTTP_VERBS.PUT,
345
+ uri: options.locusUrl,
346
+ body,
347
+ };
348
+
349
+ return requestParams;
350
+ },
351
+ };
352
+
353
+ export default MembersUtil;
@@ -1,4 +1,3 @@
1
-
2
1
  // Metrics constants ----------------------------------------------------------
3
2
 
4
3
  const BEHAVIORAL_METRICS = {
@@ -10,6 +9,7 @@ const BEHAVIORAL_METRICS = {
10
9
  JOIN_FAILURE: 'js_sdk_join_failures',
11
10
  ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',
12
11
  ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',
12
+ ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',
13
13
  CONNECTION_SUCCESS: 'js_sdk_connection_success',
14
14
  CONNECTION_FAILURE: 'js_sdk_connection_failures',
15
15
  MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',
@@ -18,6 +18,8 @@ const BEHAVIORAL_METRICS = {
18
18
  GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',
19
19
  GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',
20
20
  JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',
21
+ LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',
22
+ RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',
21
23
 
22
24
  DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',
23
25
  MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',
@@ -40,11 +42,8 @@ const BEHAVIORAL_METRICS = {
40
42
  PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',
41
43
  INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',
42
44
  UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',
45
+ UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',
43
46
  RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',
44
- ENABLE_BNR_SUCCESS: 'js_sdk_enable_bnr_success',
45
- ENABLE_BNR_FAILURE: 'js_sdk_enable_bnr_failure',
46
- DISABLE_BNR_SUCCESS: 'js_sdk_disable_bnr_success',
47
- DISABLE_BNR_FAILURE: 'js_sdk_disable_bnr_failure',
48
47
  FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',
49
48
  FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',
50
49
  ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',
@@ -57,7 +56,14 @@ const BEHAVIORAL_METRICS = {
57
56
  MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',
58
57
  MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',
59
58
  TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',
59
+ MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',
60
+ LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',
61
+ LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',
62
+ PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',
63
+ PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',
64
+ TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',
65
+ ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',
66
+ ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',
60
67
  };
61
68
 
62
-
63
69
  export {BEHAVIORAL_METRICS as default};