@webex/plugin-meetings 3.7.0 → 3.8.0

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 (351) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/annotation/index.js +17 -0
  5. package/dist/annotation/index.js.map +1 -1
  6. package/dist/breakouts/breakout.d.ts +8 -0
  7. package/dist/breakouts/breakout.js +1 -1
  8. package/dist/breakouts/collection.d.ts +5 -0
  9. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  10. package/dist/breakouts/events.d.ts +8 -0
  11. package/dist/breakouts/index.d.ts +5 -0
  12. package/dist/breakouts/index.js +1 -1
  13. package/dist/breakouts/request.d.ts +22 -0
  14. package/dist/breakouts/utils.d.ts +15 -0
  15. package/dist/common/browser-detection.d.ts +9 -0
  16. package/dist/common/collection.d.ts +48 -0
  17. package/dist/common/config.d.ts +2 -0
  18. package/dist/common/errors/captcha-error.d.ts +15 -0
  19. package/dist/common/errors/intent-to-join.d.ts +16 -0
  20. package/dist/common/errors/join-forbidden-error.js +52 -0
  21. package/dist/common/errors/join-forbidden-error.js.map +1 -0
  22. package/dist/common/errors/join-meeting.d.ts +17 -0
  23. package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
  24. package/dist/common/errors/join-webinar-error.js.map +1 -0
  25. package/dist/common/errors/media.d.ts +15 -0
  26. package/dist/common/errors/multistream-not-supported-error.js +53 -0
  27. package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
  28. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  29. package/dist/common/errors/parameter.d.ts +15 -0
  30. package/dist/common/errors/password-error.d.ts +15 -0
  31. package/dist/common/errors/permission.d.ts +14 -0
  32. package/dist/common/errors/reclaim-host-role-error.js +149 -0
  33. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  34. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  36. package/dist/common/errors/reconnection-in-progress.js +33 -0
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -0
  38. package/dist/common/errors/reconnection.d.ts +15 -0
  39. package/dist/common/errors/stats.d.ts +15 -0
  40. package/dist/common/errors/webex-errors.d.ts +93 -0
  41. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  42. package/dist/common/events/events-scope.d.ts +17 -0
  43. package/dist/common/events/events.d.ts +12 -0
  44. package/dist/common/events/trigger-proxy.d.ts +2 -0
  45. package/dist/common/events/util.d.ts +2 -0
  46. package/dist/common/logs/logger-config.d.ts +2 -0
  47. package/dist/common/logs/logger-proxy.d.ts +2 -0
  48. package/dist/common/logs/request.d.ts +36 -0
  49. package/dist/common/queue.d.ts +34 -0
  50. package/dist/config.d.ts +72 -0
  51. package/dist/config.js +2 -1
  52. package/dist/config.js.map +1 -1
  53. package/dist/constants.d.ts +1088 -0
  54. package/dist/constants.js +68 -6
  55. package/dist/constants.js.map +1 -1
  56. package/dist/controls-options-manager/constants.d.ts +4 -0
  57. package/dist/controls-options-manager/enums.d.ts +15 -0
  58. package/dist/controls-options-manager/index.d.ts +136 -0
  59. package/dist/controls-options-manager/types.d.ts +43 -0
  60. package/dist/controls-options-manager/util.d.ts +1 -0
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.js +16 -11
  63. package/dist/index.js.map +1 -1
  64. package/dist/interceptors/index.d.ts +2 -0
  65. package/dist/interceptors/locusRetry.d.ts +27 -0
  66. package/dist/interpretation/collection.d.ts +5 -0
  67. package/dist/interpretation/index.d.ts +5 -0
  68. package/dist/interpretation/index.js +1 -1
  69. package/dist/interpretation/siLanguage.d.ts +5 -0
  70. package/dist/interpretation/siLanguage.js +1 -1
  71. package/dist/locus-info/controlsUtils.d.ts +2 -0
  72. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  73. package/dist/locus-info/fullState.d.ts +2 -0
  74. package/dist/locus-info/hostUtils.d.ts +2 -0
  75. package/dist/locus-info/index.d.ts +322 -0
  76. package/dist/locus-info/index.js +14 -3
  77. package/dist/locus-info/index.js.map +1 -1
  78. package/dist/locus-info/infoUtils.d.ts +2 -0
  79. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  80. package/dist/locus-info/parser.d.ts +272 -0
  81. package/dist/locus-info/selfUtils.d.ts +2 -0
  82. package/dist/locus-info/selfUtils.js +35 -17
  83. package/dist/locus-info/selfUtils.js.map +1 -1
  84. package/dist/media/MediaConnectionAwaiter.js +1 -0
  85. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  86. package/dist/media/index.d.ts +34 -0
  87. package/dist/media/properties.d.ts +93 -0
  88. package/dist/media/properties.js +30 -16
  89. package/dist/media/properties.js.map +1 -1
  90. package/dist/media/util.d.ts +2 -0
  91. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  92. package/dist/mediaQualityMetrics/config.js +502 -0
  93. package/dist/mediaQualityMetrics/config.js.map +1 -0
  94. package/dist/meeting/brbState.js +167 -0
  95. package/dist/meeting/brbState.js.map +1 -0
  96. package/dist/meeting/effectsState.js +260 -0
  97. package/dist/meeting/effectsState.js.map +1 -0
  98. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  99. package/dist/meeting/in-meeting-actions.js +13 -1
  100. package/dist/meeting/in-meeting-actions.js.map +1 -1
  101. package/dist/meeting/index.d.ts +1825 -0
  102. package/dist/meeting/index.js +1331 -1051
  103. package/dist/meeting/index.js.map +1 -1
  104. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  105. package/dist/meeting/locusMediaRequest.js +11 -6
  106. package/dist/meeting/locusMediaRequest.js.map +1 -1
  107. package/dist/meeting/muteState.d.ts +178 -0
  108. package/dist/meeting/muteState.js +1 -6
  109. package/dist/meeting/muteState.js.map +1 -1
  110. package/dist/meeting/request.d.ts +295 -0
  111. package/dist/meeting/request.js +51 -29
  112. package/dist/meeting/request.js.map +1 -1
  113. package/dist/meeting/request.type.d.ts +11 -0
  114. package/dist/meeting/request.type.js.map +1 -1
  115. package/dist/meeting/state.d.ts +9 -0
  116. package/dist/meeting/util.d.ts +119 -0
  117. package/dist/meeting/util.js +103 -67
  118. package/dist/meeting/util.js.map +1 -1
  119. package/dist/meeting/voicea-meeting.d.ts +16 -0
  120. package/dist/meeting-info/collection.d.ts +20 -0
  121. package/dist/meeting-info/index.d.ts +69 -0
  122. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  123. package/dist/meeting-info/meeting-info-v2.js +115 -45
  124. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  125. package/dist/meeting-info/request.d.ts +22 -0
  126. package/dist/meeting-info/util.d.ts +2 -0
  127. package/dist/meeting-info/utilv2.d.ts +2 -0
  128. package/dist/meeting-info/utilv2.js +6 -2
  129. package/dist/meeting-info/utilv2.js.map +1 -1
  130. package/dist/meetings/collection.d.ts +40 -0
  131. package/dist/meetings/index.d.ts +390 -0
  132. package/dist/meetings/index.js +107 -55
  133. package/dist/meetings/index.js.map +1 -1
  134. package/dist/meetings/meetings.types.d.ts +4 -0
  135. package/dist/meetings/meetings.types.js +2 -0
  136. package/dist/meetings/meetings.types.js.map +1 -1
  137. package/dist/meetings/request.d.ts +27 -0
  138. package/dist/meetings/util.d.ts +18 -0
  139. package/dist/meetings/util.js +1 -1
  140. package/dist/meetings/util.js.map +1 -1
  141. package/dist/member/index.d.ts +160 -0
  142. package/dist/member/index.js +9 -0
  143. package/dist/member/index.js.map +1 -1
  144. package/dist/member/member.types.js +17 -0
  145. package/dist/member/member.types.js.map +1 -0
  146. package/dist/member/types.d.ts +32 -0
  147. package/dist/member/types.js.map +1 -1
  148. package/dist/member/util.d.ts +2 -0
  149. package/dist/member/util.js +39 -28
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.d.ts +29 -0
  152. package/dist/members/index.d.ts +353 -0
  153. package/dist/members/request.d.ts +114 -0
  154. package/dist/members/types.d.ts +25 -0
  155. package/dist/members/util.d.ts +215 -0
  156. package/dist/members/util.js +4 -2
  157. package/dist/members/util.js.map +1 -1
  158. package/dist/metrics/config.js +276 -0
  159. package/dist/metrics/config.js.map +1 -0
  160. package/dist/metrics/constants.d.ts +70 -0
  161. package/dist/metrics/constants.js +6 -1
  162. package/dist/metrics/constants.js.map +1 -1
  163. package/dist/metrics/index.d.ts +45 -0
  164. package/dist/multistream/mediaRequestManager.d.ts +119 -0
  165. package/dist/multistream/receiveSlot.d.ts +68 -0
  166. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  167. package/dist/multistream/remoteMedia.d.ts +72 -0
  168. package/dist/multistream/remoteMedia.js +30 -15
  169. package/dist/multistream/remoteMedia.js.map +1 -1
  170. package/dist/multistream/remoteMediaGroup.d.ts +49 -0
  171. package/dist/multistream/remoteMediaManager.d.ts +300 -0
  172. package/dist/multistream/sendSlotManager.d.ts +69 -0
  173. package/dist/multistream/sendSlotManager.js +24 -0
  174. package/dist/multistream/sendSlotManager.js.map +1 -1
  175. package/dist/networkQualityMonitor/index.d.ts +70 -0
  176. package/dist/networkQualityMonitor/index.js +13 -19
  177. package/dist/networkQualityMonitor/index.js.map +1 -1
  178. package/dist/peer-connection-manager/index.js +671 -0
  179. package/dist/peer-connection-manager/index.js.map +1 -0
  180. package/dist/peer-connection-manager/util.js +109 -0
  181. package/dist/peer-connection-manager/util.js.map +1 -0
  182. package/dist/personal-meeting-room/index.d.ts +47 -0
  183. package/dist/personal-meeting-room/request.d.ts +14 -0
  184. package/dist/personal-meeting-room/util.d.ts +2 -0
  185. package/dist/reachability/clusterReachability.d.ts +109 -0
  186. package/dist/reachability/clusterReachability.js +12 -15
  187. package/dist/reachability/clusterReachability.js.map +1 -1
  188. package/dist/reachability/index.d.ts +105 -0
  189. package/dist/reachability/index.js +461 -136
  190. package/dist/reachability/index.js.map +1 -1
  191. package/dist/reachability/reachability.types.js +7 -0
  192. package/dist/reachability/reachability.types.js.map +1 -0
  193. package/dist/reachability/request.d.ts +39 -0
  194. package/dist/reachability/request.js +21 -8
  195. package/dist/reachability/request.js.map +1 -1
  196. package/dist/reachability/util.d.ts +8 -0
  197. package/dist/reactions/constants.d.ts +3 -0
  198. package/dist/reactions/reactions.d.ts +4 -0
  199. package/dist/reactions/reactions.type.d.ts +52 -0
  200. package/dist/reconnection-manager/index.d.ts +136 -0
  201. package/dist/recording-controller/enums.d.ts +7 -0
  202. package/dist/recording-controller/enums.js +8 -4
  203. package/dist/recording-controller/enums.js.map +1 -1
  204. package/dist/recording-controller/index.d.ts +207 -0
  205. package/dist/recording-controller/index.js +18 -9
  206. package/dist/recording-controller/index.js.map +1 -1
  207. package/dist/recording-controller/util.d.ts +14 -0
  208. package/dist/recording-controller/util.js +13 -9
  209. package/dist/recording-controller/util.js.map +1 -1
  210. package/dist/roap/collection.js +62 -0
  211. package/dist/roap/collection.js.map +1 -0
  212. package/dist/roap/handler.js +275 -0
  213. package/dist/roap/handler.js.map +1 -0
  214. package/dist/roap/index.d.ts +86 -0
  215. package/dist/roap/index.js +15 -15
  216. package/dist/roap/index.js.map +1 -1
  217. package/dist/roap/request.d.ts +39 -0
  218. package/dist/roap/request.js +45 -79
  219. package/dist/roap/request.js.map +1 -1
  220. package/dist/roap/state.js +126 -0
  221. package/dist/roap/state.js.map +1 -0
  222. package/dist/roap/turnDiscovery.d.ts +155 -0
  223. package/dist/roap/turnDiscovery.js +3 -6
  224. package/dist/roap/turnDiscovery.js.map +1 -1
  225. package/dist/roap/util.js +75 -0
  226. package/dist/roap/util.js.map +1 -0
  227. package/dist/rtcMetrics/constants.d.ts +4 -0
  228. package/dist/rtcMetrics/index.d.ts +61 -0
  229. package/dist/statsAnalyzer/global.d.ts +36 -0
  230. package/dist/statsAnalyzer/global.js +126 -0
  231. package/dist/statsAnalyzer/global.js.map +1 -0
  232. package/dist/statsAnalyzer/index.d.ts +217 -0
  233. package/dist/statsAnalyzer/index.js +1013 -0
  234. package/dist/statsAnalyzer/index.js.map +1 -0
  235. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  236. package/dist/statsAnalyzer/mqaUtil.js +179 -0
  237. package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
  238. package/dist/transcription/index.d.ts +64 -0
  239. package/dist/types/annotation/index.d.ts +5 -0
  240. package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
  241. package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
  242. package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
  243. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  244. package/dist/types/config.d.ts +1 -0
  245. package/dist/types/constants.d.ts +53 -1
  246. package/dist/types/index.d.ts +3 -3
  247. package/dist/types/locus-info/index.d.ts +2 -1
  248. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  249. package/dist/types/meeting/brbState.d.ts +54 -0
  250. package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
  251. package/dist/types/meeting/index.d.ts +64 -14
  252. package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
  253. package/dist/types/meeting/request.d.ts +14 -3
  254. package/dist/types/meeting/request.type.d.ts +6 -0
  255. package/dist/types/meeting/util.d.ts +3 -3
  256. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
  257. package/dist/types/meetings/index.d.ts +20 -2
  258. package/dist/types/meetings/meetings.types.d.ts +8 -0
  259. package/dist/types/member/index.d.ts +1 -0
  260. package/dist/types/member/types.d.ts +7 -0
  261. package/dist/types/members/util.d.ts +2 -0
  262. package/dist/types/metrics/constants.d.ts +6 -1
  263. package/dist/types/multistream/sendSlotManager.d.ts +8 -1
  264. package/dist/types/reachability/clusterReachability.d.ts +1 -10
  265. package/dist/types/reachability/index.d.ts +83 -36
  266. package/dist/types/reachability/reachability.types.d.ts +64 -0
  267. package/dist/types/reachability/request.d.ts +5 -1
  268. package/dist/types/recording-controller/enums.d.ts +5 -2
  269. package/dist/types/recording-controller/index.d.ts +1 -0
  270. package/dist/types/recording-controller/util.d.ts +2 -1
  271. package/dist/types/roap/request.d.ts +1 -13
  272. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  273. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  274. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  275. package/dist/webinar/collection.d.ts +16 -0
  276. package/dist/webinar/index.d.ts +5 -0
  277. package/dist/webinar/index.js +390 -7
  278. package/dist/webinar/index.js.map +1 -1
  279. package/package.json +23 -22
  280. package/src/annotation/index.ts +16 -0
  281. package/src/common/errors/join-forbidden-error.ts +26 -0
  282. package/src/common/errors/join-webinar-error.ts +24 -0
  283. package/src/common/errors/multistream-not-supported-error.ts +30 -0
  284. package/src/config.ts +1 -0
  285. package/src/constants.ts +61 -3
  286. package/src/index.ts +5 -3
  287. package/src/locus-info/index.ts +20 -3
  288. package/src/locus-info/selfUtils.ts +24 -6
  289. package/src/media/MediaConnectionAwaiter.ts +2 -0
  290. package/src/media/properties.ts +34 -13
  291. package/src/meeting/brbState.ts +169 -0
  292. package/src/meeting/in-meeting-actions.ts +25 -0
  293. package/src/meeting/index.ts +443 -87
  294. package/src/meeting/locusMediaRequest.ts +11 -8
  295. package/src/meeting/muteState.ts +1 -6
  296. package/src/meeting/request.ts +30 -12
  297. package/src/meeting/request.type.ts +7 -0
  298. package/src/meeting/util.ts +32 -13
  299. package/src/meeting-info/meeting-info-v2.ts +83 -12
  300. package/src/meeting-info/utilv2.ts +17 -3
  301. package/src/meetings/index.ts +79 -20
  302. package/src/meetings/meetings.types.ts +10 -0
  303. package/src/meetings/util.ts +2 -1
  304. package/src/member/index.ts +9 -0
  305. package/src/member/types.ts +8 -0
  306. package/src/member/util.ts +34 -24
  307. package/src/members/util.ts +1 -0
  308. package/src/metrics/constants.ts +6 -1
  309. package/src/multistream/remoteMedia.ts +28 -15
  310. package/src/multistream/sendSlotManager.ts +31 -0
  311. package/src/reachability/clusterReachability.ts +5 -15
  312. package/src/reachability/index.ts +311 -75
  313. package/src/reachability/reachability.types.ts +85 -0
  314. package/src/reachability/request.ts +55 -31
  315. package/src/recording-controller/enums.ts +5 -2
  316. package/src/recording-controller/index.ts +17 -4
  317. package/src/recording-controller/util.ts +20 -5
  318. package/src/roap/index.ts +14 -13
  319. package/src/roap/request.ts +30 -44
  320. package/src/roap/turnDiscovery.ts +2 -4
  321. package/src/webinar/index.ts +235 -9
  322. package/test/unit/spec/annotation/index.ts +46 -1
  323. package/test/unit/spec/locus-info/index.js +292 -60
  324. package/test/unit/spec/locus-info/selfConstant.js +7 -0
  325. package/test/unit/spec/locus-info/selfUtils.js +101 -1
  326. package/test/unit/spec/media/properties.ts +15 -0
  327. package/test/unit/spec/meeting/brbState.ts +114 -0
  328. package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
  329. package/test/unit/spec/meeting/index.js +851 -107
  330. package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
  331. package/test/unit/spec/meeting/muteState.js +0 -24
  332. package/test/unit/spec/meeting/request.js +3 -26
  333. package/test/unit/spec/meeting/utils.js +73 -28
  334. package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
  335. package/test/unit/spec/meeting-info/utilv2.js +26 -0
  336. package/test/unit/spec/meetings/index.js +159 -18
  337. package/test/unit/spec/meetings/utils.js +10 -0
  338. package/test/unit/spec/member/util.js +52 -11
  339. package/test/unit/spec/members/utils.js +95 -0
  340. package/test/unit/spec/multistream/remoteMedia.ts +11 -7
  341. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  342. package/test/unit/spec/reachability/index.ts +383 -9
  343. package/test/unit/spec/reachability/request.js +48 -12
  344. package/test/unit/spec/recording-controller/index.js +61 -5
  345. package/test/unit/spec/recording-controller/util.js +39 -3
  346. package/test/unit/spec/roap/index.ts +48 -1
  347. package/test/unit/spec/roap/request.ts +51 -109
  348. package/test/unit/spec/roap/turnDiscovery.ts +202 -147
  349. package/test/unit/spec/webinar/index.ts +504 -0
  350. package/dist/common/errors/webinar-registration-error.js.map +0 -1
  351. package/src/common/errors/webinar-registration-error.ts +0 -27
@@ -0,0 +1,353 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
3
+ import { MediaRequestManager } from '../multistream/mediaRequestManager';
4
+ import { ServerRoleShape } from './types';
5
+ /**
6
+ * Members Update Event
7
+ * Emitted when something in the roster list needs to be updated
8
+ * @event members:update
9
+ * @instance
10
+ * @property {Object} delta the changes to the members list
11
+ * @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
12
+ * @property {Array} delta.added array added members to the meeting
13
+ * @property {Array} full array the full members collection
14
+ * @memberof Members
15
+ */
16
+ /**
17
+ * Members Content Update Event
18
+ * Emitted when who is sharing changes
19
+ * @event members:content:update
20
+ * @instance
21
+ * @property {String} activeContentSharingId
22
+ * @property {String} endedContentSharingId
23
+ * @memberof Members
24
+ */
25
+ /**
26
+ * Members Host Update Event
27
+ * Emitted when who is the host changes
28
+ * @event members:host:update
29
+ * @instance
30
+ * @property {String} activeHostId
31
+ * @property {String} endedHostId
32
+ * @memberof Members
33
+ */
34
+ /**
35
+ * Members Self Update Event
36
+ * Emitted when who is the self changes
37
+ * @event members:self:update
38
+ * @instance
39
+ * @property {String} activeSelfId
40
+ * @property {String} endedSelfId
41
+ * @memberof Members
42
+ */
43
+ /**
44
+ * @class Members
45
+ */
46
+ export default class Members extends StatelessWebexPlugin {
47
+ hostId: any;
48
+ locusUrl: any;
49
+ mediaShareContentId: any;
50
+ mediaShareWhiteboardId: any;
51
+ membersCollection: any;
52
+ membersRequest: any;
53
+ receiveSlotManager: ReceiveSlotManager;
54
+ mediaRequestManagers: {
55
+ audio: MediaRequestManager;
56
+ video: MediaRequestManager;
57
+ };
58
+ recordingId: any;
59
+ selfId: any;
60
+ type: any;
61
+ namespace: string;
62
+ /**
63
+ *
64
+ * @param {Object} attrs
65
+ * @param {Object} options
66
+ * @memberof Members
67
+ */
68
+ constructor(attrs: any, options: object);
69
+ /**
70
+ * Internal update the self Id value
71
+ * @param {Object} payload
72
+ * @param {Object} payload.newSelf
73
+ * @param {Object} payload.oldSelf
74
+ * @returns {undefined}
75
+ * @private
76
+ * @memberof Members
77
+ */
78
+ locusSelfUpdate(payload: {
79
+ newSelf: any;
80
+ oldSelf: any;
81
+ }): void;
82
+ /**
83
+ * Internal update the hostId value
84
+ * @param {Object} payload
85
+ * @param {Object} payload.newHost
86
+ * @param {Object} payload.oldHost
87
+ * @returns {undefined}
88
+ * @private
89
+ * @memberof Members
90
+ */
91
+ locusHostUpdate(payload: {
92
+ newHost: any;
93
+ oldHost: any;
94
+ }): void;
95
+ /**
96
+ * clear member collection
97
+ * @returns {void}
98
+ * @private
99
+ * @memberof Members
100
+ */
101
+ clearMembers(): void;
102
+ /**
103
+ * when new participant updates come in, both delta and full participants, update them in members collection
104
+ * delta object in the event will have {updated, added} and full will be the full membersCollection
105
+ * @param {Object} payload
106
+ * @param {Object} payload.participants
107
+ * @returns {undefined}
108
+ * @private
109
+ * @memberof Members
110
+ */
111
+ locusParticipantsUpdate(payload: {
112
+ participants: object;
113
+ isReplace?: boolean;
114
+ }): void;
115
+ /**
116
+ * Internal update the content id
117
+ * @param {Object} payload
118
+ * @param {Object} payload.current
119
+ * @param {Object} payload.previous
120
+ * @returns {undefined}
121
+ * @private
122
+ * @memberof Members
123
+ */
124
+ locusMediaSharesUpdate(payload: {
125
+ current: any;
126
+ previous: any;
127
+ }): void;
128
+ /**
129
+ * Internal update the locus url value
130
+ * @param {Object} payload
131
+ * @param {String} payload.locusUrl
132
+ * @returns {undefined}
133
+ * @private
134
+ * @memberof Members
135
+ */
136
+ locusUrlUpdate(payload: any): void;
137
+ /**
138
+ * Internal update the type of meeting
139
+ * @param {Object} payload
140
+ * @param {String} payload.type
141
+ * @returns {undefined}
142
+ * @private
143
+ * @memberof Members
144
+ */
145
+ locusFullStateTypeUpdate(payload: {
146
+ type: string;
147
+ }): void;
148
+ /**
149
+ * sets values in the members collection for updated and added properties from delta
150
+ * @param {Object} membersUpdate {updated: [], added: []}
151
+ * @returns {Object} membersCollection
152
+ * @private
153
+ * @memberof Members
154
+ */
155
+ private handleMembersUpdate;
156
+ /**
157
+ * set members to the member collection from each updated/added lists as passed in
158
+ * @param {Array} list
159
+ * @returns {undefined}
160
+ * @private
161
+ * @memberof Members
162
+ */
163
+ private constructMembers;
164
+ /**
165
+ * Internal update the participants value
166
+ * @param {Object} payload
167
+ * @returns {Object}
168
+ * @private
169
+ * @memberof Members
170
+ */
171
+ private handleLocusInfoUpdatedParticipants;
172
+ /**
173
+ * Update the locus Url
174
+ * @param {Object} locus
175
+ * @param {String} [locusUrl] optional, takes precedence
176
+ * @throws {ParameterError}
177
+ * @returns {undefined}
178
+ * @public
179
+ * @memberof Members
180
+ */
181
+ setLocusUrl(locus: any, locusUrl?: string): void;
182
+ /**
183
+ * Update the host id
184
+ * @param {Object} locus
185
+ * @param {String} [hostId] optional, takes precedence
186
+ * @throws {ParameterError}
187
+ * @returns {undefined}
188
+ * @public
189
+ * @memberof Members
190
+ */
191
+ setHostId(locus: any, hostId?: string): void;
192
+ /**
193
+ * Update the type
194
+ * @param {Object} fullState
195
+ * @param {String} [type] optional, takes precedence
196
+ * @throws {ParameterError}
197
+ * @returns {undefined}
198
+ * @public
199
+ * @memberof Members
200
+ */
201
+ setType(fullState: any, type?: string): void;
202
+ /**
203
+ * Update the self Id
204
+ * @param {Object} locus
205
+ * @param {String} [selfId] optional, takes precedence
206
+ * @throws {Error}
207
+ * @returns {undefined}
208
+ * @memberof Members
209
+ */
210
+ setSelfId(locus: any, selfId?: string): void;
211
+ /**
212
+ * Update the media share content id
213
+ * @param {Object} locus
214
+ * @param {String} [contentId] optional, takes precedence
215
+ * @throws {Error}
216
+ * @returns {undefined}
217
+ * @memberof Members
218
+ */
219
+ setMediaShareContentId(locus: any, contentId?: string): void;
220
+ /**
221
+ * Update the media share whiteboard id
222
+ * @param {Object} locus
223
+ * @param {String} [whiteboardId] optional, takes precedence
224
+ * @throws {Error}
225
+ * @returns {undefined}
226
+ * @memberof Members
227
+ */
228
+ setMediaShareWhiteboardId(locus: any, whiteboardId?: string): void;
229
+ /**
230
+ * Find all the updates, and added members
231
+ * Removed/left members will end up in updates
232
+ * Each array contains only members
233
+ * @param {Array} participants the locus participants
234
+ * @returns {Object} {added: {Array}, updated: {Array}}
235
+ * @private
236
+ * @memberof Members
237
+ */
238
+ private update;
239
+ /**
240
+ * Adds a guest Member to the associated meeting
241
+ * @param {String} invitee
242
+ * @param {Boolean} [alertIfActive]
243
+ * @returns {Promise}
244
+ * @memberof Members
245
+ */
246
+ addMember(invitee: any, alertIfActive?: boolean): any;
247
+ /**
248
+ * Cancels an outgoing PSTN call to the associated meeting
249
+ * @param {String} invitee
250
+ * @returns {Promise}
251
+ * @memberof Members
252
+ */
253
+ cancelPhoneInvite(invitee: any): any;
254
+ /**
255
+ * Admits waiting members (invited guests to meeting)
256
+ * @param {Array} memberIds
257
+ * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
258
+ * @returns {Promise}
259
+ * @public
260
+ * @memberof Members
261
+ */
262
+ admitMembers(memberIds: Array<any>, sessionLocusUrls?: {
263
+ authorizingLocusUrl: string;
264
+ mainLocusUrl: string;
265
+ }): any;
266
+ /**
267
+ * Removes a member from the meeting
268
+ * @param {String} memberId
269
+ * @returns {Promise}
270
+ * @public
271
+ * @memberof Members
272
+ */
273
+ removeMember(memberId: string): any;
274
+ /**
275
+ * Audio mutes another member in a meeting
276
+ * @param {String} memberId
277
+ * @param {boolean} [mute] default true
278
+ * @param {boolean} [isAudio] default true
279
+ * @returns {Promise}
280
+ * @public
281
+ * @memberof Members
282
+ */
283
+ muteMember(memberId: string, mute?: boolean, isAudio?: boolean): any;
284
+ /**
285
+ * Assign role(s) to a member in the meeting
286
+ * @param {String} memberId
287
+ * @param {[ServerRoleShape]} roles - to assign an array of roles
288
+ * @returns {Promise}
289
+ * @public
290
+ * @memberof Members
291
+ */
292
+ assignRoles(memberId: string, roles: Array<ServerRoleShape>): any;
293
+ /**
294
+ * Raise or lower the hand of a member in a meeting
295
+ * @param {String} memberId
296
+ * @param {boolean} [raise] - to raise hand (=true) or lower (=false), default: true
297
+ * @returns {Promise}
298
+ * @public
299
+ * @memberof Members
300
+ */
301
+ raiseOrLowerHand(memberId: string, raise?: boolean): any;
302
+ /**
303
+ * Lower all hands of members in a meeting
304
+ * @param {String} requestingMemberId - id of the participant which requested the lower all hands
305
+ * @returns {Promise}
306
+ * @public
307
+ * @memberof Members
308
+ */
309
+ lowerAllHands(requestingMemberId: string): any;
310
+ /**
311
+ * Transfers the host to another member
312
+ * @param {String} memberId
313
+ * @param {boolean} [moderator] default true
314
+ * @returns {Promise}
315
+ * @public
316
+ * @memberof Members
317
+ */
318
+ transferHostToMember(memberId: string, moderator?: boolean): any;
319
+ /**
320
+ * Sends DTMF tones for the PSTN member of a meeting
321
+ * @param {String} tones a string of one or more DTMF tones to send
322
+ * @param {String} memberId member id
323
+ * @returns {Promise}
324
+ * @public
325
+ * @memberof Members
326
+ */
327
+ sendDialPadKey(tones?: string, memberId?: string): any;
328
+ /** Finds a member that has any device with a csi matching provided value
329
+ *
330
+ * @param {number} csi
331
+ * @returns {Member}
332
+ */
333
+ findMemberByCsi(csi: any): unknown;
334
+ /**
335
+ * Returns an array of a member's CSIs matching the mediaType and mediaContent
336
+ *
337
+ * @param {string} memberId
338
+ * @param {string} mediaType 'audio' or 'video'
339
+ * @param {string} mediaContent 'main' or 'slides'
340
+ * @returns {Member}
341
+ */
342
+ getCsisForMember(memberId: any, mediaType?: string, mediaContent?: string): any[];
343
+ /**
344
+ * Edit display name of participants in a meeting
345
+ * @param {string} memberId - id of the participant who is receiving request
346
+ * @param {string} requestingParticipantId - id of the participant who is sending request (optional)
347
+ * @param {string} [alias] - alias name
348
+ * @returns {Promise}
349
+ * @public
350
+ * @memberof Members
351
+ */
352
+ editDisplayName(memberId: string, requestingParticipantId: string, alias: string): any;
353
+ }
@@ -0,0 +1,114 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ /**
3
+ * @class MembersRequest
4
+ */
5
+ export default class MembersRequest extends StatelessWebexPlugin {
6
+ namespace: string;
7
+ locusDeltaRequest: (options: object) => Promise<any>;
8
+ /**
9
+ * Constructor
10
+ * @param {Object} attrs
11
+ * @param {Object} options
12
+ */
13
+ constructor(attrs: {
14
+ meeting: any;
15
+ }, options: object);
16
+ /**
17
+ *
18
+ * @param {Object} options with format of {invitee: string, locusUrl: string}
19
+ * @returns {Promise}
20
+ * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
21
+ * @memberof MembersRequest
22
+ */
23
+ addMembers(options: any): Promise<any>;
24
+ /**
25
+ *
26
+ * @param {Object} options
27
+ * @returns {Promise}
28
+ * @throws {Error} if the options are not valid and complete, must have memberIds AND locusUrl
29
+ * @memberof MembersRequest
30
+ */
31
+ admitMember(options: any): Promise<any>;
32
+ /**
33
+ * Sends a request to remove a member
34
+ * @param {Object} options
35
+ * @param {String} options.locusUrl
36
+ * @param {String} options.memberId ID of member
37
+ * @returns {Promise}
38
+ */
39
+ removeMember(options: any): Promise<any>;
40
+ /**
41
+ * Sends a request to mute a member
42
+ * @param {Object} options
43
+ * @param {String} options.locusUrl
44
+ * @param {String} options.memberId ID of member
45
+ * @returns {Promise}
46
+ */
47
+ muteMember(options: any): Promise<any>;
48
+ /**
49
+ * Sends a request to the DTMF endpoint to send tones
50
+ * @param {Object} options
51
+ * @param {String} options.locusUrl
52
+ * @param {String} options.memberId ID of PSTN user
53
+ * @returns {Promise}
54
+ */
55
+ assignRolesMember(options: any): Promise<any>;
56
+ /**
57
+ * Sends a request to raise or lower a member's hand
58
+ * @param {Object} options
59
+ * @param {String} options.locusUrl
60
+ * @param {String} options.memberId ID of member
61
+ * @returns {Promise}
62
+ */
63
+ raiseOrLowerHandMember(options: any): Promise<any>;
64
+ /**
65
+ * Sends a request to lower all hands
66
+ * @param {Object} options
67
+ * @param {String} options.locusUrl
68
+ * @param {String} options.requestingParticipantId ID of requesting participant
69
+ * @returns {Promise}
70
+ */
71
+ lowerAllHandsMember(options: any): Promise<any>;
72
+ /**
73
+ *
74
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
75
+ * @returns {Promise}
76
+ * @throws {Error} if the options are not valid and complete, must have requestingParticipantId AND locusUrl
77
+ * @memberof MembersRequest
78
+ */
79
+ editDisplayNameMember(options: {
80
+ locusUrl: string;
81
+ requestingParticipantId: string;
82
+ }): Promise<any>;
83
+ /**
84
+ * Sends a request to raise or lower a member's hand
85
+ * @param {Object} options
86
+ * @param {String} options.locusUrl
87
+ * @param {String} options.memberId ID of member
88
+ * @param {String} options.moderator ID of moderator
89
+ * @returns {Promise}
90
+ */
91
+ transferHostToMember(options: any): Promise<any>;
92
+ /**
93
+ * Sends a request to the DTMF endpoint to send tones
94
+ * @param {Object} options
95
+ * @param {String} options.locusUrl
96
+ * @param {String} options.url device url SIP user
97
+ * @param {String} options.tones a string of one or more DTMF tones to send
98
+ * @param {String} options.memberId ID of PSTN user
99
+ * @returns {Promise}
100
+ */
101
+ sendDialPadKey(options: {
102
+ locusUrl: string;
103
+ url: string;
104
+ tones: string;
105
+ memberId: string;
106
+ }): Promise<any>;
107
+ /**
108
+ * @param {Object} options with format of {invitee: string, locusUrl: string}
109
+ * @returns {Promise}
110
+ * @throws {Error} if the options are not valid and complete, must have invitee with emailAddress OR email AND locusUrl
111
+ * @memberof MembersRequest
112
+ */
113
+ cancelPhoneInvite(options: any): Promise<any>;
114
+ }
@@ -0,0 +1,25 @@
1
+ export declare enum ServerRoles {
2
+ Cohost = "COHOST",
3
+ Moderator = "MODERATOR",
4
+ Presenter = "PRESENTER"
5
+ }
6
+ export type ServerRoleShape = {
7
+ type: ServerRoles;
8
+ hasRole: boolean;
9
+ hostKey?: string;
10
+ };
11
+ export type RoleAssignmentOptions = {
12
+ roles: Array<ServerRoleShape>;
13
+ locusUrl: string;
14
+ memberId: string;
15
+ };
16
+ export type RoleAssignmentBody = {
17
+ role: {
18
+ roles: Array<ServerRoleShape>;
19
+ };
20
+ };
21
+ export type RoleAssignmentRequest = {
22
+ method: string;
23
+ uri: string;
24
+ body: RoleAssignmentBody;
25
+ };
@@ -0,0 +1,215 @@
1
+ import { RoleAssignmentOptions, RoleAssignmentRequest, ServerRoleShape } from './types';
2
+ declare const MembersUtil: {
3
+ /**
4
+ * @param {Object} invitee with emailAddress, email or phoneNumber
5
+ * @param {String} locusUrl
6
+ * @param {Boolean} alertIfActive
7
+ * @returns {Object} the format object
8
+ */
9
+ generateAddMemberOptions: (invitee: object, locusUrl: string, alertIfActive: boolean) => {
10
+ invitee: object;
11
+ locusUrl: string;
12
+ alertIfActive: boolean;
13
+ };
14
+ /**
15
+ * @param {Array} memberIds
16
+ * @param {String} locusUrl
17
+ * @returns {Object} the format object
18
+ */
19
+ generateAdmitMemberOptions: (memberIds: Array<any>, locusUrl: string) => {
20
+ locusUrl: string;
21
+ memberIds: any[];
22
+ };
23
+ /**
24
+ * @param {Object} options with {invitee: {emailAddress, email, phoneNumber}, alertIfActive}
25
+ * @returns {Object} with {invitees: [{address}], alertIfActive}
26
+ */
27
+ getAddMemberBody: (options: any) => {
28
+ invitees: {
29
+ address: any;
30
+ }[];
31
+ alertIfActive: any;
32
+ };
33
+ /**
34
+ * @param {Object} options with {memberIds, authorizingLocusUrl}
35
+ * @returns {Object} admit with {memberIds}
36
+ */
37
+ getAdmitMemberRequestBody: (options: any) => any;
38
+ /**
39
+ * @param {Object} format with {memberIds, locusUrl, sessionLocusUrls}
40
+ * @returns {Object} the request parameters (method, uri, body) needed to make a admitMember request
41
+ * if a host/cohost is in a breakout session, the locus url should be the main session locus url
42
+ */
43
+ getAdmitMemberRequestParams: (format: any) => {
44
+ method: string;
45
+ uri: string;
46
+ body: any;
47
+ };
48
+ /**
49
+ * @param {Object} format with {invitee {emailAddress, email, phoneNumber}, locusUrl, alertIfActive}
50
+ * @returns {Object} the request parameters (method, uri, body) needed to make a addMember request
51
+ */
52
+ getAddMemberRequestParams: (format: any) => {
53
+ method: string;
54
+ uri: any;
55
+ body: {
56
+ invitees: {
57
+ address: any;
58
+ }[];
59
+ alertIfActive: any;
60
+ };
61
+ };
62
+ isInvalidInvitee: (invitee: any) => boolean;
63
+ getRemoveMemberRequestParams: (options: any) => {
64
+ method: string;
65
+ uri: string;
66
+ body: {
67
+ reason: any;
68
+ };
69
+ };
70
+ generateTransferHostMemberOptions: (transfer: any, moderator: any, locusUrl: any) => {
71
+ moderator: any;
72
+ locusUrl: any;
73
+ memberId: any;
74
+ };
75
+ generateRemoveMemberOptions: (removal: any, locusUrl: any) => {
76
+ reason: string;
77
+ memberId: any;
78
+ locusUrl: any;
79
+ };
80
+ generateMuteMemberOptions: (memberId: any, status: any, locusUrl: any, isAudio: any) => {
81
+ memberId: any;
82
+ muted: any;
83
+ locusUrl: any;
84
+ isAudio: any;
85
+ };
86
+ generateRaiseHandMemberOptions: (memberId: any, status: any, locusUrl: any) => {
87
+ memberId: any;
88
+ raised: any;
89
+ locusUrl: any;
90
+ };
91
+ /**
92
+ * @param {String} memberId
93
+ * @param {[ServerRoleShape]} roles
94
+ * @param {String} locusUrl
95
+ * @returns {RoleAssignmentOptions}
96
+ */
97
+ generateRoleAssignmentMemberOptions: (memberId: string, roles: Array<ServerRoleShape>, locusUrl: string) => RoleAssignmentOptions;
98
+ generateLowerAllHandsMemberOptions: (requestingParticipantId: any, locusUrl: any) => {
99
+ requestingParticipantId: any;
100
+ locusUrl: any;
101
+ };
102
+ /**
103
+ * @param {String} memberId id of the participant who is receiving request
104
+ * @param {String} requestingParticipantId id of the participant who is sending request (optional)
105
+ * @param {String} alias alias name
106
+ * @param {String} locusUrl url
107
+ * @returns {Object} consists of {memberID: string, requestingParticipantId: string, alias: string, locusUrl: string}
108
+ */
109
+ generateEditDisplayNameMemberOptions: (memberId: any, requestingParticipantId: any, alias: any, locusUrl: any) => {
110
+ memberId: any;
111
+ requestingParticipantId: any;
112
+ alias: any;
113
+ locusUrl: any;
114
+ };
115
+ getMuteMemberRequestParams: (options: any) => {
116
+ method: string;
117
+ uri: string;
118
+ body: {
119
+ [x: string]: {
120
+ muted: any;
121
+ };
122
+ };
123
+ };
124
+ /**
125
+ * @param {ServerRoleShape} role
126
+ * @returns {ServerRoleShape} the role shape to be added to the body
127
+ */
128
+ getAddedRoleShape: (role: ServerRoleShape) => ServerRoleShape;
129
+ /**
130
+ * @param {RoleAssignmentOptions} options
131
+ * @returns {RoleAssignmentRequest} the request parameters (method, uri, body) needed to make a addMember request
132
+ */
133
+ getRoleAssignmentMemberRequestParams: (options: RoleAssignmentOptions) => RoleAssignmentRequest;
134
+ getRaiseHandMemberRequestParams: (options: any) => {
135
+ method: string;
136
+ uri: string;
137
+ body: {
138
+ hand: {
139
+ raised: any;
140
+ };
141
+ };
142
+ };
143
+ getLowerAllHandsMemberRequestParams: (options: any) => {
144
+ method: string;
145
+ uri: string;
146
+ body: {
147
+ hand: {
148
+ raised: boolean;
149
+ };
150
+ requestingParticipantId: any;
151
+ };
152
+ };
153
+ /**
154
+ * @param {Object} options with format of {locusUrl: string, requestingParticipantId: string}
155
+ * @returns {Object} request parameters (method, uri, body) needed to make a editDisplayName request
156
+ */
157
+ editDisplayNameMemberRequestParams: (options: any) => {
158
+ method: string;
159
+ uri: string;
160
+ body: {
161
+ aliasValue: any;
162
+ requestingParticipantId: any;
163
+ };
164
+ };
165
+ getTransferHostToMemberRequestParams: (options: any) => {
166
+ method: string;
167
+ uri: string;
168
+ body: {
169
+ role: {
170
+ moderator: any;
171
+ };
172
+ };
173
+ };
174
+ genderateSendDTMFOptions: (url: any, tones: any, memberId: any, locusUrl: any) => {
175
+ url: any;
176
+ tones: any;
177
+ memberId: any;
178
+ locusUrl: any;
179
+ };
180
+ generateSendDTMFRequestParams: ({ url, tones, memberId, locusUrl }: {
181
+ url: any;
182
+ tones: any;
183
+ memberId: any;
184
+ locusUrl: any;
185
+ }) => {
186
+ method: string;
187
+ uri: string;
188
+ body: {
189
+ device: {
190
+ url: any;
191
+ };
192
+ memberId: any;
193
+ dtmf: {
194
+ correlationId: string;
195
+ tones: any;
196
+ direction: string;
197
+ };
198
+ };
199
+ };
200
+ cancelPhoneInviteOptions: (invitee: any, locusUrl: any) => {
201
+ invitee: any;
202
+ locusUrl: any;
203
+ };
204
+ generateCancelInviteRequestParams: (options: any) => {
205
+ method: string;
206
+ uri: any;
207
+ body: {
208
+ actionType: string;
209
+ invitees: {
210
+ address: any;
211
+ }[];
212
+ };
213
+ };
214
+ };
215
+ export default MembersUtil;