@webex/plugin-meetings 3.8.0 → 3.8.1-next.10

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 (361) hide show
  1. package/README.md +26 -13
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +70 -6
  4. package/dist/breakouts/index.js.map +1 -1
  5. package/dist/common/errors/webex-errors.js +12 -2
  6. package/dist/common/errors/webex-errors.js.map +1 -1
  7. package/dist/config.js +5 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/constants.js +28 -123
  10. package/dist/constants.js.map +1 -1
  11. package/dist/controls-options-manager/enums.js +3 -0
  12. package/dist/controls-options-manager/enums.js.map +1 -1
  13. package/dist/controls-options-manager/types.js.map +1 -1
  14. package/dist/controls-options-manager/util.js +78 -0
  15. package/dist/controls-options-manager/util.js.map +1 -1
  16. package/dist/interpretation/index.js +4 -4
  17. package/dist/interpretation/index.js.map +1 -1
  18. package/dist/interpretation/siLanguage.js +1 -1
  19. package/dist/locus-info/controlsUtils.js +37 -11
  20. package/dist/locus-info/controlsUtils.js.map +1 -1
  21. package/dist/locus-info/index.js +92 -12
  22. package/dist/locus-info/index.js.map +1 -1
  23. package/dist/locus-info/selfUtils.js +432 -418
  24. package/dist/locus-info/selfUtils.js.map +1 -1
  25. package/dist/media/index.js +17 -17
  26. package/dist/media/index.js.map +1 -1
  27. package/dist/media/properties.js +94 -6
  28. package/dist/media/properties.js.map +1 -1
  29. package/dist/meeting/brbState.js +9 -2
  30. package/dist/meeting/brbState.js.map +1 -1
  31. package/dist/meeting/in-meeting-actions.js +21 -1
  32. package/dist/meeting/in-meeting-actions.js.map +1 -1
  33. package/dist/meeting/index.js +678 -344
  34. package/dist/meeting/index.js.map +1 -1
  35. package/dist/meeting/locusMediaRequest.js +21 -22
  36. package/dist/meeting/locusMediaRequest.js.map +1 -1
  37. package/dist/meeting/muteState.js +4 -4
  38. package/dist/meeting/muteState.js.map +1 -1
  39. package/dist/meeting/request.js +30 -0
  40. package/dist/meeting/request.js.map +1 -1
  41. package/dist/meeting/request.type.js.map +1 -1
  42. package/dist/meeting/util.js +13 -2
  43. package/dist/meeting/util.js.map +1 -1
  44. package/dist/meeting-info/meeting-info-v2.js +373 -68
  45. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  46. package/dist/meeting-info/utilv2.js +5 -1
  47. package/dist/meeting-info/utilv2.js.map +1 -1
  48. package/dist/meetings/index.js +136 -1
  49. package/dist/meetings/index.js.map +1 -1
  50. package/dist/meetings/util.js +14 -0
  51. package/dist/meetings/util.js.map +1 -1
  52. package/dist/member/index.js +55 -9
  53. package/dist/member/index.js.map +1 -1
  54. package/dist/member/types.js +3 -0
  55. package/dist/member/types.js.map +1 -1
  56. package/dist/member/util.js +335 -353
  57. package/dist/member/util.js.map +1 -1
  58. package/dist/members/collection.js.map +1 -1
  59. package/dist/members/index.js +137 -29
  60. package/dist/members/index.js.map +1 -1
  61. package/dist/members/request.js +38 -0
  62. package/dist/members/request.js.map +1 -1
  63. package/dist/members/util.js +36 -1
  64. package/dist/members/util.js.map +1 -1
  65. package/dist/metrics/constants.js +10 -0
  66. package/dist/metrics/constants.js.map +1 -1
  67. package/dist/multistream/remoteMediaManager.js +40 -8
  68. package/dist/multistream/remoteMediaManager.js.map +1 -1
  69. package/dist/reachability/clusterReachability.js +63 -27
  70. package/dist/reachability/clusterReachability.js.map +1 -1
  71. package/dist/reachability/index.js +107 -47
  72. package/dist/reachability/index.js.map +1 -1
  73. package/dist/reachability/reachability.types.js +14 -0
  74. package/dist/reachability/reachability.types.js.map +1 -1
  75. package/dist/reachability/request.js +19 -3
  76. package/dist/reachability/request.js.map +1 -1
  77. package/dist/reconnection-manager/index.js +2 -2
  78. package/dist/reconnection-manager/index.js.map +1 -1
  79. package/dist/recording-controller/util.js +5 -5
  80. package/dist/recording-controller/util.js.map +1 -1
  81. package/dist/roap/index.js.map +1 -1
  82. package/dist/roap/turnDiscovery.js +45 -27
  83. package/dist/roap/turnDiscovery.js.map +1 -1
  84. package/dist/roap/types.js +17 -0
  85. package/dist/roap/types.js.map +1 -0
  86. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  87. package/dist/types/config.d.ts +3 -0
  88. package/dist/types/constants.d.ts +20 -85
  89. package/dist/types/controls-options-manager/enums.d.ts +4 -1
  90. package/dist/types/controls-options-manager/types.d.ts +10 -1
  91. package/dist/types/locus-info/index.d.ts +3 -3
  92. package/dist/types/locus-info/selfUtils.d.ts +216 -1
  93. package/dist/types/media/properties.d.ts +15 -0
  94. package/dist/types/meeting/in-meeting-actions.d.ts +20 -0
  95. package/dist/types/meeting/index.d.ts +65 -1
  96. package/dist/types/meeting/muteState.d.ts +0 -1
  97. package/dist/types/meeting/request.d.ts +12 -1
  98. package/dist/types/meeting/request.type.d.ts +6 -0
  99. package/dist/types/meeting/util.d.ts +3 -1
  100. package/dist/types/meeting-info/meeting-info-v2.d.ts +82 -1
  101. package/dist/types/meetings/index.d.ts +57 -0
  102. package/dist/types/member/index.d.ts +21 -6
  103. package/dist/types/member/types.d.ts +73 -14
  104. package/dist/types/member/util.d.ts +156 -1
  105. package/dist/types/members/collection.d.ts +6 -5
  106. package/dist/types/members/index.d.ts +32 -43
  107. package/dist/types/members/request.d.ts +26 -0
  108. package/dist/types/members/util.d.ts +27 -0
  109. package/dist/types/metrics/constants.d.ts +10 -0
  110. package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
  111. package/dist/types/reachability/clusterReachability.d.ts +15 -7
  112. package/dist/types/reachability/index.d.ts +10 -1
  113. package/dist/types/reachability/reachability.types.d.ts +5 -0
  114. package/dist/types/roap/index.d.ts +3 -2
  115. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  116. package/dist/types/roap/types.d.ts +16 -0
  117. package/dist/webinar/index.js +2 -2
  118. package/dist/webinar/index.js.map +1 -1
  119. package/package.json +24 -23
  120. package/src/breakouts/index.ts +69 -0
  121. package/src/common/errors/webex-errors.ts +8 -1
  122. package/src/config.ts +3 -0
  123. package/src/constants.ts +30 -90
  124. package/src/controls-options-manager/enums.ts +3 -0
  125. package/src/controls-options-manager/types.ts +16 -1
  126. package/src/controls-options-manager/util.ts +93 -0
  127. package/src/interpretation/index.ts +3 -3
  128. package/src/locus-info/controlsUtils.ts +59 -14
  129. package/src/locus-info/index.ts +97 -13
  130. package/src/locus-info/selfUtils.ts +496 -442
  131. package/src/media/index.ts +23 -21
  132. package/src/media/properties.ts +96 -0
  133. package/src/meeting/brbState.ts +11 -2
  134. package/src/meeting/in-meeting-actions.ts +40 -0
  135. package/src/meeting/index.ts +470 -105
  136. package/src/meeting/locusMediaRequest.ts +27 -22
  137. package/src/meeting/muteState.ts +4 -4
  138. package/src/meeting/request.ts +36 -1
  139. package/src/meeting/request.type.ts +7 -0
  140. package/src/meeting/util.ts +11 -2
  141. package/src/meeting-info/meeting-info-v2.ts +254 -8
  142. package/src/meeting-info/utilv2.ts +5 -0
  143. package/src/meetings/index.ts +148 -1
  144. package/src/meetings/util.ts +18 -0
  145. package/src/member/index.ts +68 -22
  146. package/src/member/types.ts +82 -16
  147. package/src/member/util.ts +357 -350
  148. package/src/members/collection.ts +4 -3
  149. package/src/members/index.ts +137 -18
  150. package/src/members/request.ts +44 -0
  151. package/src/members/util.ts +43 -1
  152. package/src/metrics/constants.ts +10 -0
  153. package/src/multistream/remoteMediaManager.ts +32 -10
  154. package/src/reachability/clusterReachability.ts +73 -26
  155. package/src/reachability/index.ts +62 -1
  156. package/src/reachability/reachability.types.ts +6 -0
  157. package/src/reachability/request.ts +7 -0
  158. package/src/reconnection-manager/index.ts +2 -2
  159. package/src/recording-controller/util.ts +17 -13
  160. package/src/roap/index.ts +3 -7
  161. package/src/roap/turnDiscovery.ts +34 -39
  162. package/src/roap/types.ts +23 -0
  163. package/src/webinar/index.ts +1 -1
  164. package/test/unit/spec/breakouts/index.ts +167 -95
  165. package/test/unit/spec/controls-options-manager/util.js +178 -0
  166. package/test/unit/spec/interpretation/index.ts +39 -1
  167. package/test/unit/spec/locus-info/controlsUtils.js +155 -9
  168. package/test/unit/spec/locus-info/index.js +209 -73
  169. package/test/unit/spec/locus-info/selfUtils.js +98 -24
  170. package/test/unit/spec/media/index.ts +150 -18
  171. package/test/unit/spec/media/properties.ts +130 -0
  172. package/test/unit/spec/meeting/brbState.ts +40 -2
  173. package/test/unit/spec/meeting/in-meeting-actions.ts +23 -4
  174. package/test/unit/spec/meeting/index.js +804 -139
  175. package/test/unit/spec/meeting/locusMediaRequest.ts +95 -87
  176. package/test/unit/spec/meeting/muteState.js +73 -2
  177. package/test/unit/spec/meeting/request.js +32 -1
  178. package/test/unit/spec/meeting/utils.js +119 -18
  179. package/test/unit/spec/meeting-info/meetinginfov2.js +484 -114
  180. package/test/unit/spec/meeting-info/utilv2.js +19 -0
  181. package/test/unit/spec/meetings/index.js +146 -2
  182. package/test/unit/spec/member/index.js +7 -0
  183. package/test/unit/spec/member/util.js +24 -0
  184. package/test/unit/spec/members/index.js +304 -78
  185. package/test/unit/spec/members/request.js +68 -22
  186. package/test/unit/spec/members/utils.js +75 -0
  187. package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
  188. package/test/unit/spec/reachability/clusterReachability.ts +88 -56
  189. package/test/unit/spec/reachability/index.ts +97 -0
  190. package/test/unit/spec/reachability/request.js +47 -2
  191. package/test/unit/spec/reconnection-manager/index.js +4 -4
  192. package/test/unit/spec/roap/turnDiscovery.ts +110 -28
  193. package/test/unit/spec/webinar/index.ts +5 -0
  194. package/dist/annotation/annotation.types.d.ts +0 -42
  195. package/dist/annotation/constants.d.ts +0 -31
  196. package/dist/annotation/index.d.ts +0 -117
  197. package/dist/breakouts/breakout.d.ts +0 -8
  198. package/dist/breakouts/collection.d.ts +0 -5
  199. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  200. package/dist/breakouts/events.d.ts +0 -8
  201. package/dist/breakouts/index.d.ts +0 -5
  202. package/dist/breakouts/request.d.ts +0 -22
  203. package/dist/breakouts/utils.d.ts +0 -15
  204. package/dist/common/browser-detection.d.ts +0 -9
  205. package/dist/common/collection.d.ts +0 -48
  206. package/dist/common/config.d.ts +0 -2
  207. package/dist/common/errors/captcha-error.d.ts +0 -15
  208. package/dist/common/errors/intent-to-join.d.ts +0 -16
  209. package/dist/common/errors/join-meeting.d.ts +0 -17
  210. package/dist/common/errors/media.d.ts +0 -15
  211. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  212. package/dist/common/errors/parameter.d.ts +0 -15
  213. package/dist/common/errors/password-error.d.ts +0 -15
  214. package/dist/common/errors/permission.d.ts +0 -14
  215. package/dist/common/errors/reclaim-host-role-error.js +0 -149
  216. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  217. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  218. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  219. package/dist/common/errors/reconnection-in-progress.js +0 -33
  220. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  221. package/dist/common/errors/reconnection.d.ts +0 -15
  222. package/dist/common/errors/stats.d.ts +0 -15
  223. package/dist/common/errors/webex-errors.d.ts +0 -93
  224. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  225. package/dist/common/events/events-scope.d.ts +0 -17
  226. package/dist/common/events/events.d.ts +0 -12
  227. package/dist/common/events/trigger-proxy.d.ts +0 -2
  228. package/dist/common/events/util.d.ts +0 -2
  229. package/dist/common/logs/logger-config.d.ts +0 -2
  230. package/dist/common/logs/logger-proxy.d.ts +0 -2
  231. package/dist/common/logs/request.d.ts +0 -36
  232. package/dist/common/queue.d.ts +0 -34
  233. package/dist/config.d.ts +0 -72
  234. package/dist/constants.d.ts +0 -1088
  235. package/dist/controls-options-manager/constants.d.ts +0 -4
  236. package/dist/controls-options-manager/enums.d.ts +0 -15
  237. package/dist/controls-options-manager/index.d.ts +0 -136
  238. package/dist/controls-options-manager/types.d.ts +0 -43
  239. package/dist/controls-options-manager/util.d.ts +0 -1
  240. package/dist/index.d.ts +0 -7
  241. package/dist/interceptors/index.d.ts +0 -2
  242. package/dist/interceptors/locusRetry.d.ts +0 -27
  243. package/dist/interpretation/collection.d.ts +0 -5
  244. package/dist/interpretation/index.d.ts +0 -5
  245. package/dist/interpretation/siLanguage.d.ts +0 -5
  246. package/dist/locus-info/controlsUtils.d.ts +0 -2
  247. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  248. package/dist/locus-info/fullState.d.ts +0 -2
  249. package/dist/locus-info/hostUtils.d.ts +0 -2
  250. package/dist/locus-info/index.d.ts +0 -322
  251. package/dist/locus-info/infoUtils.d.ts +0 -2
  252. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  253. package/dist/locus-info/parser.d.ts +0 -272
  254. package/dist/locus-info/selfUtils.d.ts +0 -2
  255. package/dist/media/index.d.ts +0 -34
  256. package/dist/media/properties.d.ts +0 -93
  257. package/dist/media/util.d.ts +0 -2
  258. package/dist/mediaQualityMetrics/config.d.ts +0 -241
  259. package/dist/mediaQualityMetrics/config.js +0 -502
  260. package/dist/mediaQualityMetrics/config.js.map +0 -1
  261. package/dist/meeting/effectsState.js +0 -260
  262. package/dist/meeting/effectsState.js.map +0 -1
  263. package/dist/meeting/in-meeting-actions.d.ts +0 -167
  264. package/dist/meeting/index.d.ts +0 -1825
  265. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  266. package/dist/meeting/muteState.d.ts +0 -178
  267. package/dist/meeting/request.d.ts +0 -295
  268. package/dist/meeting/request.type.d.ts +0 -11
  269. package/dist/meeting/state.d.ts +0 -9
  270. package/dist/meeting/util.d.ts +0 -119
  271. package/dist/meeting/voicea-meeting.d.ts +0 -16
  272. package/dist/meeting-info/collection.d.ts +0 -20
  273. package/dist/meeting-info/index.d.ts +0 -69
  274. package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
  275. package/dist/meeting-info/request.d.ts +0 -22
  276. package/dist/meeting-info/util.d.ts +0 -2
  277. package/dist/meeting-info/utilv2.d.ts +0 -2
  278. package/dist/meetings/collection.d.ts +0 -40
  279. package/dist/meetings/index.d.ts +0 -390
  280. package/dist/meetings/meetings.types.d.ts +0 -4
  281. package/dist/meetings/request.d.ts +0 -27
  282. package/dist/meetings/util.d.ts +0 -18
  283. package/dist/member/index.d.ts +0 -160
  284. package/dist/member/member.types.js +0 -17
  285. package/dist/member/member.types.js.map +0 -1
  286. package/dist/member/types.d.ts +0 -32
  287. package/dist/member/util.d.ts +0 -2
  288. package/dist/members/collection.d.ts +0 -29
  289. package/dist/members/index.d.ts +0 -353
  290. package/dist/members/request.d.ts +0 -114
  291. package/dist/members/types.d.ts +0 -25
  292. package/dist/members/util.d.ts +0 -215
  293. package/dist/metrics/config.js +0 -276
  294. package/dist/metrics/config.js.map +0 -1
  295. package/dist/metrics/constants.d.ts +0 -70
  296. package/dist/metrics/index.d.ts +0 -45
  297. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  298. package/dist/multistream/receiveSlot.d.ts +0 -68
  299. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  300. package/dist/multistream/remoteMedia.d.ts +0 -72
  301. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  302. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  303. package/dist/multistream/sendSlotManager.d.ts +0 -69
  304. package/dist/networkQualityMonitor/index.d.ts +0 -70
  305. package/dist/networkQualityMonitor/index.js +0 -221
  306. package/dist/networkQualityMonitor/index.js.map +0 -1
  307. package/dist/peer-connection-manager/index.js +0 -671
  308. package/dist/peer-connection-manager/index.js.map +0 -1
  309. package/dist/peer-connection-manager/util.js +0 -109
  310. package/dist/peer-connection-manager/util.js.map +0 -1
  311. package/dist/personal-meeting-room/index.d.ts +0 -47
  312. package/dist/personal-meeting-room/request.d.ts +0 -14
  313. package/dist/personal-meeting-room/util.d.ts +0 -2
  314. package/dist/reachability/clusterReachability.d.ts +0 -109
  315. package/dist/reachability/index.d.ts +0 -105
  316. package/dist/reachability/request.d.ts +0 -39
  317. package/dist/reachability/util.d.ts +0 -8
  318. package/dist/reactions/constants.d.ts +0 -3
  319. package/dist/reactions/reactions.d.ts +0 -4
  320. package/dist/reactions/reactions.type.d.ts +0 -52
  321. package/dist/reconnection-manager/index.d.ts +0 -136
  322. package/dist/recording-controller/enums.d.ts +0 -7
  323. package/dist/recording-controller/index.d.ts +0 -207
  324. package/dist/recording-controller/util.d.ts +0 -14
  325. package/dist/roap/collection.js +0 -62
  326. package/dist/roap/collection.js.map +0 -1
  327. package/dist/roap/handler.js +0 -275
  328. package/dist/roap/handler.js.map +0 -1
  329. package/dist/roap/index.d.ts +0 -86
  330. package/dist/roap/request.d.ts +0 -39
  331. package/dist/roap/state.js +0 -126
  332. package/dist/roap/state.js.map +0 -1
  333. package/dist/roap/turnDiscovery.d.ts +0 -155
  334. package/dist/roap/util.js +0 -75
  335. package/dist/roap/util.js.map +0 -1
  336. package/dist/rtcMetrics/constants.d.ts +0 -4
  337. package/dist/rtcMetrics/constants.js +0 -11
  338. package/dist/rtcMetrics/constants.js.map +0 -1
  339. package/dist/rtcMetrics/index.d.ts +0 -61
  340. package/dist/rtcMetrics/index.js +0 -197
  341. package/dist/rtcMetrics/index.js.map +0 -1
  342. package/dist/statsAnalyzer/global.d.ts +0 -36
  343. package/dist/statsAnalyzer/global.js +0 -126
  344. package/dist/statsAnalyzer/global.js.map +0 -1
  345. package/dist/statsAnalyzer/index.d.ts +0 -217
  346. package/dist/statsAnalyzer/index.js +0 -1013
  347. package/dist/statsAnalyzer/index.js.map +0 -1
  348. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
  349. package/dist/statsAnalyzer/mqaUtil.js +0 -179
  350. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  351. package/dist/transcription/index.d.ts +0 -64
  352. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  353. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  354. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  355. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  356. package/dist/types/rtcMetrics/index.d.ts +0 -71
  357. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  358. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  359. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  360. package/dist/webinar/collection.d.ts +0 -16
  361. package/dist/webinar/index.d.ts +0 -5
@@ -1,11 +1,13 @@
1
- import { IExternalRoles, IMediaStatus } from './types';
1
+ import { IExternalRoles, IMediaStatus, Participant, ParticipantUrl } from './types';
2
+ export type MemberId = string;
2
3
  /**
3
4
  * @class Member
4
5
  */
5
6
  export default class Member {
6
- associatedUser: any;
7
+ associatedUser: MemberId | null;
8
+ associatedUsers: Set<MemberId>;
7
9
  canReclaimHost: boolean;
8
- id: any;
10
+ id: MemberId;
9
11
  isAudioMuted: any;
10
12
  isContentSharing: any;
11
13
  isDevice: any;
@@ -16,11 +18,13 @@ export default class Member {
16
18
  isInMeeting: any;
17
19
  isModerator: any;
18
20
  isModeratorAssignmentProhibited: any;
21
+ isPresenterAssignmentProhibited: any;
19
22
  isMutable: any;
20
23
  isNotAdmitted: any;
21
24
  isRecording: any;
22
25
  isRemovable: any;
23
26
  isSelf: any;
27
+ isPairedWithSelf: boolean;
24
28
  isBrb: boolean;
25
29
  isUser: any;
26
30
  isVideoMuted: any;
@@ -34,6 +38,10 @@ export default class Member {
34
38
  supportLiveAnnotation: boolean;
35
39
  type: any;
36
40
  namespace: string;
41
+ pairedWith: {
42
+ participantUrl?: ParticipantUrl;
43
+ memberId?: MemberId;
44
+ };
37
45
  /**
38
46
  * @param {Object} participant - the locus participant
39
47
  * @param {Object} [options] - constructor params
@@ -44,7 +52,7 @@ export default class Member {
44
52
  * @returns {Member}
45
53
  * @memberof Member
46
54
  */
47
- constructor(participant: object, options?: {
55
+ constructor(participant: Participant, options?: {
48
56
  selfId: string;
49
57
  hostId: string;
50
58
  contentSharingId: string;
@@ -58,6 +66,13 @@ export default class Member {
58
66
  * @memberof Member
59
67
  */
60
68
  private processParticipant;
69
+ /**
70
+ * Checks if the participant is paired with another device
71
+ *
72
+ * @param {any} participant the locus participant object
73
+ * @returns {void}
74
+ */
75
+ processPairedDevice(participant: Participant): void;
61
76
  /**
62
77
  * Use the members options and participant values to set on the member
63
78
  * @param {Object} participant the locus participant object
@@ -114,7 +129,7 @@ export default class Member {
114
129
  * @public
115
130
  * @memberof Member
116
131
  */
117
- processIsContentSharing(participant: object, sharingId: string): void;
132
+ processIsContentSharing(participant: Participant, sharingId: string): void;
118
133
  /**
119
134
  * Determine if this member is recording
120
135
  * @param {Object} participant
@@ -123,7 +138,7 @@ export default class Member {
123
138
  * @public
124
139
  * @memberof Member
125
140
  */
126
- processIsRecording(participant: object, recordingId: string): void;
141
+ processIsRecording(participant: Participant, recordingId: string): void;
127
142
  /**
128
143
  * determine if this member is the self
129
144
  * @param {Object} participant
@@ -12,20 +12,6 @@ export type ServerRoleShape = {
12
12
  type: ServerRoles;
13
13
  hasRole: boolean;
14
14
  };
15
- export type ParticipantWithRoles = {
16
- controls: {
17
- role: {
18
- roles: Array<ServerRoleShape>;
19
- };
20
- };
21
- };
22
- export type ParticipantWithBrb = {
23
- controls: {
24
- brb?: {
25
- enabled: boolean;
26
- };
27
- };
28
- };
29
15
  export declare enum MediaStatus {
30
16
  RECVONLY = "RECVONLY",
31
17
  SENDONLY = "SENDONLY",
@@ -37,3 +23,76 @@ export interface IMediaStatus {
37
23
  audio: MediaStatus;
38
24
  video: MediaStatus;
39
25
  }
26
+ export type Csi = number;
27
+ export type Direction = 'inactive' | 'sendrecv' | 'sendonly' | 'recvonly';
28
+ export type ParticipantUrl = string;
29
+ export interface MediaSession {
30
+ csi: Csi;
31
+ direction: Direction;
32
+ mediaContent: 'main' | 'slides';
33
+ mediaType: 'audio' | 'video';
34
+ state: string;
35
+ }
36
+ export interface Intent {
37
+ associatedWith: ParticipantUrl;
38
+ id: string;
39
+ type: string;
40
+ }
41
+ export interface ParticipantDevice {
42
+ correlationId: string;
43
+ csis: Csi[];
44
+ deviceType: string;
45
+ intent?: Intent;
46
+ intents: Array<Intent | null>;
47
+ isVideoCallback: boolean;
48
+ mediaSessions: Array<MediaSession>;
49
+ mediaSessionsExternal: boolean;
50
+ state: string;
51
+ }
52
+ export interface ParticipantPerson {
53
+ id: string;
54
+ isExternal: boolean;
55
+ name: string;
56
+ orgId: string;
57
+ }
58
+ export interface ParticipantMediaStatus {
59
+ audioStatus: MediaStatus;
60
+ videoStatus: MediaStatus;
61
+ audioSlidesStatus?: MediaStatus;
62
+ videoSlidesStatus?: MediaStatus;
63
+ csis: Csi[];
64
+ }
65
+ export interface ParticipantControls {
66
+ role: {
67
+ roles: Array<ServerRoleShape>;
68
+ };
69
+ brb?: {
70
+ enabled: boolean;
71
+ };
72
+ hand: {
73
+ raised: boolean;
74
+ };
75
+ localRecord: {
76
+ recording: boolean;
77
+ };
78
+ }
79
+ export interface Participant {
80
+ canBeController: boolean;
81
+ controls: ParticipantControls;
82
+ deviceUrl: string;
83
+ devices: Array<ParticipantDevice>;
84
+ guest: boolean;
85
+ id: string;
86
+ identity: string;
87
+ identityTrustLevel: string;
88
+ isCreator: boolean;
89
+ moderator: boolean;
90
+ moderatorAssignmentNotAllowed: boolean;
91
+ presenterAssignmentNotAllowed: boolean;
92
+ person: ParticipantPerson;
93
+ resourceGuest: boolean;
94
+ state: string;
95
+ status: ParticipantMediaStatus;
96
+ type: string;
97
+ url: ParticipantUrl;
98
+ }
@@ -1,2 +1,157 @@
1
- declare const MemberUtil: any;
1
+ import { IExternalRoles, ServerRoles, ServerRoleShape, IMediaStatus, Participant, ParticipantUrl } from './types';
2
+ declare const MemberUtil: {
3
+ /**
4
+ * @param {Object} participant - The locus participant object.
5
+ * @returns {Boolean}
6
+ */
7
+ canReclaimHost: (participant: any) => any;
8
+ /**
9
+ * @param {Object} participant - The locus participant object.
10
+ * @returns {[ServerRoleShape]}
11
+ */
12
+ getControlsRoles: (participant: Participant) => Array<ServerRoleShape>;
13
+ /**
14
+ * Checks if the participant has the brb status enabled.
15
+ *
16
+ * @param {Participant} participant - The locus participant object.
17
+ * @returns {boolean} - True if the participant has brb enabled, false otherwise.
18
+ */
19
+ isBrb: (participant: Participant) => boolean;
20
+ /**
21
+ * @param {Object} participant - The locus participant object.
22
+ * @param {ServerRoles} controlRole the search role
23
+ * @returns {Boolean}
24
+ */
25
+ hasRole: (participant: Participant, controlRole: ServerRoles) => boolean;
26
+ /**
27
+ * @param {Object} participant - The locus participant object.
28
+ * @returns {Boolean}
29
+ */
30
+ hasCohost: (participant: Participant) => boolean;
31
+ /**
32
+ * @param {Object} participant - The locus participant object.
33
+ * @returns {Boolean}
34
+ */
35
+ hasModerator: (participant: Participant) => boolean;
36
+ /**
37
+ * @param {Object} participant - The locus participant object.
38
+ * @returns {Boolean}
39
+ */
40
+ hasPresenter: (participant: Participant) => boolean;
41
+ /**
42
+ * @param {Object} participant - The locus participant object.
43
+ * @returns {IExternalRoles}
44
+ */
45
+ extractControlRoles: (participant: Participant) => IExternalRoles;
46
+ /**
47
+ * @param {Object} participant - The locus participant object.
48
+ * @returns {Boolean}
49
+ */
50
+ isUser: (participant: Participant) => boolean;
51
+ isModerator: (participant: Participant) => boolean;
52
+ /**
53
+ * @param {Object} participant - The locus participant object.
54
+ * @returns {Boolean}
55
+ */
56
+ isGuest: (participant: Participant) => boolean;
57
+ /**
58
+ * @param {Object} participant - The locus participant object.
59
+ * @returns {Boolean}
60
+ */
61
+ isDevice: (participant: Participant) => boolean;
62
+ isModeratorAssignmentProhibited: (participant: Participant) => boolean;
63
+ isPresenterAssignmentProhibited: (participant: Participant) => boolean;
64
+ /**
65
+ * checks to see if the participant id is the same as the passed id
66
+ * there are multiple ids that can be used
67
+ * @param {Object} participant - The locus participant object.
68
+ * @param {String} id
69
+ * @returns {Boolean}
70
+ */
71
+ isSame: (participant: Participant, id: string) => boolean;
72
+ /**
73
+ * @param {Object} participant - The locus participant object.
74
+ * @param {Boolean} isGuest
75
+ * @param {String} status
76
+ * @returns {Boolean}
77
+ */
78
+ isNotAdmitted: (participant: Participant, isGuest: boolean, status: string) => boolean;
79
+ /**
80
+ * @param {Object} participant - The locus participant object.
81
+ * @returns {Boolean}
82
+ */
83
+ isAudioMuted: (participant: Participant) => any;
84
+ /**
85
+ * @param {Object} participant - The locus participant object.
86
+ * @returns {Boolean}
87
+ */
88
+ isVideoMuted: (participant: Participant) => boolean;
89
+ /**
90
+ * @param {Object} participant - The locus participant object.
91
+ * @returns {Boolean}
92
+ */
93
+ isHandRaised: (participant: Participant) => boolean;
94
+ /**
95
+ * @param {Object} participant - The locus participant object.
96
+ * @returns {Boolean}
97
+ */
98
+ isBreakoutsSupported: (participant: any) => boolean;
99
+ /**
100
+ * @param {Object} participant - The locus participant object.
101
+ * @returns {Boolean}
102
+ */
103
+ isInterpretationSupported: (participant: any) => boolean;
104
+ /**
105
+ * @param {Object} participant - The locus participant object.
106
+ * @returns {Boolean}
107
+ */
108
+ isLiveAnnotationSupported: (participant: any) => boolean;
109
+ /**
110
+ * utility method for audio/video muted status
111
+ * @param {any} participant
112
+ * @param {String} statusAccessor
113
+ * @param {String} controlsAccessor
114
+ * @returns {Boolean | undefined}
115
+ */
116
+ isMuted: (participant: Participant, statusAccessor: string, controlsAccessor: string) => any;
117
+ /**
118
+ * utility method for getting the recording member for later comparison
119
+ * @param {Object} controls
120
+ * @returns {String|null}
121
+ */
122
+ getRecordingMember: (controls: any) => any;
123
+ /**
124
+ * @param {Object} participant - The locus participant object.
125
+ * @returns {Boolean}
126
+ */
127
+ isRecording: (participant: Participant) => boolean;
128
+ isRemovable: (isSelf: any, isGuest: any, isInMeeting: any, type: any) => boolean;
129
+ isMutable: (isSelf: any, isDevice: any, isInMeeting: any, isMuted: any, type: any) => boolean;
130
+ /**
131
+ * @param {Object} participant - The locus participant object.
132
+ * @returns {String}
133
+ */
134
+ extractStatus: (participant: Participant) => "IN_LOBBY" | "IN_MEETING" | "NOT_IN_MEETING";
135
+ /**
136
+ * @param {Object} participant - The locus participant object.
137
+ * @returns {String}
138
+ */
139
+ extractId: (participant: Participant) => string;
140
+ /**
141
+ * extracts the media status from nested participant object
142
+ * @param {Object} participant - The locus participant object.
143
+ * @returns {Object}
144
+ */
145
+ extractMediaStatus: (participant: Participant) => IMediaStatus;
146
+ /**
147
+ * @param {Object} participant - The locus participant object.
148
+ * @returns {String}
149
+ */
150
+ extractName: (participant: Participant) => string;
151
+ /**
152
+ * @param {Object} participant - The locus participant object.
153
+ * @returns {String}
154
+ */
155
+ extractPairedWithParticipantUrl: (participant: Participant) => ParticipantUrl | undefined;
156
+ };
2
157
  export default MemberUtil;
@@ -1,26 +1,27 @@
1
+ import Member from '../member';
1
2
  /**
2
3
  * @class MembersCollection
3
4
  */
4
5
  export default class MembersCollection {
5
- members: any;
6
+ members: Record<string, Member>;
6
7
  namespace: string;
7
8
  /**
8
9
  * @param {Object} locus
9
10
  * @memberof Members
10
11
  */
11
12
  constructor();
12
- set(id: any, member: any): void;
13
- setAll(members: any): void;
13
+ set(id: string, member: Member): void;
14
+ setAll(members: Record<string, Member>): void;
14
15
  /**
15
16
  * @param {String} id
16
17
  * @returns {Member}
17
18
  */
18
- get(id: string): any;
19
+ get(id: string): Member;
19
20
  /**
20
21
  * @returns {Object} returns an object map of Member instances
21
22
  * @memberof MembersCollection
22
23
  */
23
- getAll(): any;
24
+ getAll(): Record<string, Member>;
24
25
  /**
25
26
  * @returns {void}
26
27
  * reset members
@@ -1,45 +1,9 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import Member from '../member';
3
+ import MembersCollection from './collection';
2
4
  import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
3
5
  import { MediaRequestManager } from '../multistream/mediaRequestManager';
4
6
  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
7
  /**
44
8
  * @class Members
45
9
  */
@@ -48,7 +12,7 @@ export default class Members extends StatelessWebexPlugin {
48
12
  locusUrl: any;
49
13
  mediaShareContentId: any;
50
14
  mediaShareWhiteboardId: any;
51
- membersCollection: any;
15
+ membersCollection: MembersCollection;
52
16
  membersRequest: any;
53
17
  receiveSlotManager: ReceiveSlotManager;
54
18
  mediaRequestManagers: {
@@ -99,6 +63,15 @@ export default class Members extends StatelessWebexPlugin {
99
63
  * @memberof Members
100
64
  */
101
65
  clearMembers(): void;
66
+ /**
67
+ * Updates properties on members that rely on information from other members.
68
+ * This function MUST be called only after the membersCollection has been fully updated
69
+ * @param {UpdatedMembers} membersUpdate
70
+ * @returns {Object} membersCollection
71
+ * @private
72
+ * @memberof Members
73
+ */
74
+ private updateRelationsBetweenMembers;
102
75
  /**
103
76
  * when new participant updates come in, both delta and full participants, update them in members collection
104
77
  * delta object in the event will have {updated, added} and full will be the full membersCollection
@@ -147,7 +120,7 @@ export default class Members extends StatelessWebexPlugin {
147
120
  }): void;
148
121
  /**
149
122
  * sets values in the members collection for updated and added properties from delta
150
- * @param {Object} membersUpdate {updated: [], added: []}
123
+ * @param {UpdatedMembers} membersUpdate
151
124
  * @returns {Object} membersCollection
152
125
  * @private
153
126
  * @memberof Members
@@ -156,6 +129,7 @@ export default class Members extends StatelessWebexPlugin {
156
129
  /**
157
130
  * set members to the member collection from each updated/added lists as passed in
158
131
  * @param {Array} list
132
+ * @param {boolean} isUpdate
159
133
  * @returns {undefined}
160
134
  * @private
161
135
  * @memberof Members
@@ -164,7 +138,7 @@ export default class Members extends StatelessWebexPlugin {
164
138
  /**
165
139
  * Internal update the participants value
166
140
  * @param {Object} payload
167
- * @returns {Object}
141
+ * @returns {UpdatedMembers}
168
142
  * @private
169
143
  * @memberof Members
170
144
  */
@@ -231,7 +205,7 @@ export default class Members extends StatelessWebexPlugin {
231
205
  * Removed/left members will end up in updates
232
206
  * Each array contains only members
233
207
  * @param {Array} participants the locus participants
234
- * @returns {Object} {added: {Array}, updated: {Array}}
208
+ * @returns {UpdatedMembers} {added: {Array}, updated: {Array}}
235
209
  * @private
236
210
  * @memberof Members
237
211
  */
@@ -251,6 +225,13 @@ export default class Members extends StatelessWebexPlugin {
251
225
  * @memberof Members
252
226
  */
253
227
  cancelPhoneInvite(invitee: any): any;
228
+ /**
229
+ * Cancels an SIP call to the associated meeting
230
+ * @param {String} invitee
231
+ * @returns {Promise}
232
+ * @memberof Members
233
+ */
234
+ cancelSIPInvite(invitee: any): any;
254
235
  /**
255
236
  * Admits waiting members (invited guests to meeting)
256
237
  * @param {Array} memberIds
@@ -290,6 +271,14 @@ export default class Members extends StatelessWebexPlugin {
290
271
  * @memberof Members
291
272
  */
292
273
  assignRoles(memberId: string, roles: Array<ServerRoleShape>): any;
274
+ /**
275
+ * Moves a meeting member into the lobby.
276
+ * @param {String} memberId -- The ID of the member to move.
277
+ * @returns {Promise} -- Resolves with the lobby‐move response.
278
+ * @public
279
+ * @memberof Members
280
+ */
281
+ moveToLobby(memberId: string): any;
293
282
  /**
294
283
  * Raise or lower the hand of a member in a meeting
295
284
  * @param {String} memberId
@@ -331,7 +320,7 @@ export default class Members extends StatelessWebexPlugin {
331
320
  * @param {number} csi
332
321
  * @returns {Member}
333
322
  */
334
- findMemberByCsi(csi: any): unknown;
323
+ findMemberByCsi(csi: any): Member;
335
324
  /**
336
325
  * Returns an array of a member's CSIs matching the mediaType and mediaContent
337
326
  *
@@ -53,6 +53,25 @@ export default class MembersRequest extends StatelessWebexPlugin {
53
53
  * @returns {Promise}
54
54
  */
55
55
  assignRolesMember(options: any): Promise<any>;
56
+ /**
57
+ * Sends a request to move a meeting member into the lobby.
58
+ * *
59
+ * @param {Object} options - Request options.
60
+ * @param {string} options.locusUrl - The locus URL for the meeting.
61
+ * @param {string} options.memberId - The ID of the member to move.
62
+ * @param {Object} body - The request payload.
63
+ * @param {Object} body.moveToLobby - Container for move‐to‐lobby data.
64
+ * @param {string[]} body.moveToLobby.participantIds - Array of participant IDs to move.
65
+ * @returns {Promise} - Resolves with the locus‐delta response.
66
+ */
67
+ moveToLobbyMember(options: {
68
+ locusUrl: string;
69
+ memberId: string;
70
+ }, body: {
71
+ moveToLobby: {
72
+ participantIds: string[];
73
+ };
74
+ }): Promise<any>;
56
75
  /**
57
76
  * Sends a request to raise or lower a member's hand
58
77
  * @param {Object} options
@@ -111,4 +130,11 @@ export default class MembersRequest extends StatelessWebexPlugin {
111
130
  * @memberof MembersRequest
112
131
  */
113
132
  cancelPhoneInvite(options: any): Promise<any>;
133
+ /**
134
+ * @param {Object} options with format of {invitee: object, locusUrl: string}
135
+ * @returns {Promise}
136
+ * @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl
137
+ * @memberof MembersRequest
138
+ */
139
+ cancelSIPInvite(options: any): Promise<any>;
114
140
  }
@@ -124,6 +124,19 @@ declare const MembersUtil: {
124
124
  };
125
125
  };
126
126
  };
127
+ getMoveMemberToLobbyRequestBody: (memberId: string) => {
128
+ moveToLobby: {
129
+ participantIds: string[];
130
+ };
131
+ };
132
+ getMoveMemberToLobbyRequestParams: (options: {
133
+ memberId: string;
134
+ locusUrl: string;
135
+ }, body: any) => {
136
+ method: string;
137
+ uri: string;
138
+ body: any;
139
+ };
127
140
  /**
128
141
  * @param {ServerRoleShape} role
129
142
  * @returns {ServerRoleShape} the role shape to be added to the body
@@ -215,5 +228,19 @@ declare const MembersUtil: {
215
228
  }[];
216
229
  };
217
230
  };
231
+ cancelSIPInviteOptions: (invitee: any, locusUrl: any) => {
232
+ invitee: any;
233
+ locusUrl: any;
234
+ };
235
+ generateCancelSIPInviteRequestParams: (options: any) => {
236
+ method: string;
237
+ uri: any;
238
+ body: {
239
+ actionType: string;
240
+ invitees: {
241
+ address: any;
242
+ }[];
243
+ };
244
+ };
218
245
  };
219
246
  export default MembersUtil;
@@ -45,10 +45,19 @@ declare const BEHAVIORAL_METRICS: {
45
45
  UPLOAD_LOGS_FAILURE: string;
46
46
  UPLOAD_LOGS_SUCCESS: string;
47
47
  RECEIVE_TRANSCRIPTION_FAILURE: string;
48
+ MEETING_IS_IN_PROGRESS_ERROR: string;
49
+ STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: string;
48
50
  FETCH_MEETING_INFO_V1_SUCCESS: string;
49
51
  FETCH_MEETING_INFO_V1_FAILURE: string;
52
+ ENABLE_STATIC_METTING_LINK_SUCCESS: string;
53
+ ENABLE_STATIC_METTING_LINK_FAILURE: string;
54
+ DISABLE_STATIC_MEETING_LINK_SUCCESS: string;
55
+ DISABLE_STATIC_MEETING_LINK_FAILURE: string;
50
56
  ADHOC_MEETING_SUCCESS: string;
51
57
  ADHOC_MEETING_FAILURE: string;
58
+ FETCH_STATIC_MEETING_LINK_SUCCESS: string;
59
+ FETCH_STATIC_MEETING_LINK_FAILURE: string;
60
+ MEETING_LINK_DOES_NOT_EXIST_ERROR: string;
52
61
  VERIFY_PASSWORD_SUCCESS: string;
53
62
  VERIFY_PASSWORD_ERROR: string;
54
63
  VERIFY_CAPTCHA_ERROR: string;
@@ -60,6 +69,7 @@ declare const BEHAVIORAL_METRICS: {
60
69
  MEETING_INFO_POLICY_ERROR: string;
61
70
  LOCUS_DELTA_SYNC_FAILED: string;
62
71
  LOCUS_DELTA_OUT_OF_ORDER: string;
72
+ LOCUS_SYNC_HANDLING_FAILED: string;
63
73
  PERMISSION_TOKEN_REFRESH: string;
64
74
  PERMISSION_TOKEN_REFRESH_ERROR: string;
65
75
  TURN_DISCOVERY_LATENCY: string;
@@ -249,13 +249,22 @@ export declare class RemoteMediaManager extends EventsScope {
249
249
  private invalidateCurrentRemoteMedia;
250
250
  /** emits Event.VideoLayoutChanged */
251
251
  private emitVideoLayoutChangedEvent;
252
+ /**
253
+ * Set multiple remote video CSIs at once
254
+ * @param remoteMediaCsis The remote medias and CSIs to set them to
255
+ * @returns {void}
256
+ */
257
+ setRemoteVideoCsis(remoteMediaCsis: {
258
+ remoteMedia: RemoteMedia;
259
+ csi?: CSI | null;
260
+ }[]): void;
252
261
  /**
253
262
  * Sets a new CSI on a given remote media object
254
263
  *
255
264
  * @param {RemoteMedia} remoteMedia remote Media object to modify
256
265
  * @param {CSI} csi new CSI value, can be null if we want to stop receiving media
257
266
  */
258
- setRemoteVideoCsi(remoteMedia: RemoteMedia, csi: CSI | null): void;
267
+ setRemoteVideoCsi(remoteMedia: RemoteMedia, csi?: CSI | null): void;
259
268
  /**
260
269
  * Adds a new member video pane to the currently selected layout.
261
270
  *