@webex/plugin-meetings 2.59.8 → 2.60.0-next.2

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 (528) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +15 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +92 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4628 -2971
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +200 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +39 -41
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +42 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +477 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +15 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +281 -229
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +140 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +402 -424
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +117 -83
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -25
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +271 -93
  262. package/src/controls-options-manager/enums.ts +12 -0
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +172 -0
  282. package/src/meeting/index.ts +3861 -2504
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +163 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +28 -28
  292. package/src/meetings/collection.ts +33 -0
  293. package/src/meetings/index.ts +477 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +13 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +167 -154
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +124 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +470 -522
  330. package/src/statsAnalyzer/mqaUtil.ts +117 -112
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +84 -0
  362. package/test/unit/spec/meeting/index.js +8269 -3145
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +409 -213
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +26 -0
  371. package/test/unit/spec/meetings/index.js +1201 -210
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +499 -29
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +145 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  396. package/test/unit/spec/stats-analyzer/index.js +188 -174
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
@@ -6,10 +6,80 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _types = require("./types");
9
10
  var _constants = require("../constants");
10
11
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
11
12
  var MemberUtil = {};
12
13
 
14
+ /**
15
+ * @param {Object} participant the locus participant
16
+ * @returns {Boolean}
17
+ */
18
+ MemberUtil.canReclaimHost = function (participant) {
19
+ if (!participant) {
20
+ throw new _parameter.default('canReclaimHostRole could not be processed, participant is undefined.');
21
+ }
22
+ return participant.canReclaimHostRole || false;
23
+ };
24
+
25
+ /**
26
+ * @param {Object} participant the locus participant
27
+ * @returns {[ServerRoleShape]}
28
+ */
29
+ MemberUtil.getControlsRoles = function (participant) {
30
+ var _participant$controls, _participant$controls2;
31
+ return participant === null || participant === void 0 ? void 0 : (_participant$controls = participant.controls) === null || _participant$controls === void 0 ? void 0 : (_participant$controls2 = _participant$controls.role) === null || _participant$controls2 === void 0 ? void 0 : _participant$controls2.roles;
32
+ };
33
+
34
+ /**
35
+ * @param {Object} participant the locus participant
36
+ * @param {ServerRoles} controlRole the search role
37
+ * @returns {Boolean}
38
+ */
39
+ MemberUtil.hasRole = function (participant, controlRole) {
40
+ var _MemberUtil$getContro;
41
+ return (_MemberUtil$getContro = MemberUtil.getControlsRoles(participant)) === null || _MemberUtil$getContro === void 0 ? void 0 : _MemberUtil$getContro.some(function (role) {
42
+ return role.type === controlRole && role.hasRole;
43
+ });
44
+ };
45
+
46
+ /**
47
+ * @param {Object} participant the locus participant
48
+ * @returns {Boolean}
49
+ */
50
+ MemberUtil.hasCohost = function (participant) {
51
+ return MemberUtil.hasRole(participant, _types.ServerRoles.Cohost) || false;
52
+ };
53
+
54
+ /**
55
+ * @param {Object} participant the locus participant
56
+ * @returns {Boolean}
57
+ */
58
+ MemberUtil.hasModerator = function (participant) {
59
+ return MemberUtil.hasRole(participant, _types.ServerRoles.Moderator) || false;
60
+ };
61
+
62
+ /**
63
+ * @param {Object} participant the locus participant
64
+ * @returns {Boolean}
65
+ */
66
+ MemberUtil.hasPresenter = function (participant) {
67
+ return MemberUtil.hasRole(participant, _types.ServerRoles.Presenter) || false;
68
+ };
69
+
70
+ /**
71
+ * @param {Object} participant the locus participant
72
+ * @returns {IExternalRoles}
73
+ */
74
+ MemberUtil.extractControlRoles = function (participant) {
75
+ var roles = {
76
+ cohost: MemberUtil.hasCohost(participant),
77
+ moderator: MemberUtil.hasModerator(participant),
78
+ presenter: MemberUtil.hasPresenter(participant)
79
+ };
80
+ return roles;
81
+ };
82
+
13
83
  /**
14
84
  * @param {Object} participant the locus participant
15
85
  * @returns {Boolean}
@@ -86,16 +156,7 @@ MemberUtil.isAudioMuted = function (participant) {
86
156
  if (!participant) {
87
157
  throw new _parameter.default('Audio could not be processed, participant is undefined.');
88
158
  }
89
- var mutedStatus = MemberUtil.isMuted(participant.status, _constants.AUDIO_STATUS);
90
- if (participant.controls && participant.controls.audio) {
91
- if (participant.controls.audio.muted) {
92
- return true;
93
- }
94
- if (mutedStatus) {
95
- return true;
96
- }
97
- }
98
- return false;
159
+ return MemberUtil.isMuted(participant, _constants.AUDIO_STATUS, _constants.AUDIO);
99
160
  };
100
161
 
101
162
  /**
@@ -106,7 +167,7 @@ MemberUtil.isVideoMuted = function (participant) {
106
167
  if (!participant) {
107
168
  throw new _parameter.default('Video could not be processed, participant is undefined.');
108
169
  }
109
- return MemberUtil.isMuted(participant.status, _constants.VIDEO_STATUS);
170
+ return MemberUtil.isMuted(participant, _constants.VIDEO_STATUS, _constants.VIDEO);
110
171
  };
111
172
 
112
173
  /**
@@ -114,29 +175,70 @@ MemberUtil.isVideoMuted = function (participant) {
114
175
  * @returns {Boolean}
115
176
  */
116
177
  MemberUtil.isHandRaised = function (participant) {
117
- var _participant$controls, _participant$controls2;
178
+ var _participant$controls3, _participant$controls4;
118
179
  if (!participant) {
119
180
  throw new _parameter.default('Raise hand could not be processed, participant is undefined.');
120
181
  }
121
- return ((_participant$controls = participant.controls) === null || _participant$controls === void 0 ? void 0 : (_participant$controls2 = _participant$controls.hand) === null || _participant$controls2 === void 0 ? void 0 : _participant$controls2.raised) || false;
182
+ return ((_participant$controls3 = participant.controls) === null || _participant$controls3 === void 0 ? void 0 : (_participant$controls4 = _participant$controls3.hand) === null || _participant$controls4 === void 0 ? void 0 : _participant$controls4.raised) || false;
122
183
  };
123
184
 
124
185
  /**
125
- * utility method for audio/video muted status
126
- * @param {String} status
127
- * @param {String} accessor
186
+ * @param {Object} participant the locus participant
128
187
  * @returns {Boolean}
129
188
  */
130
- MemberUtil.isMuted = function (status, accessor) {
131
- if (status) {
132
- if (status[accessor] === _constants._RECEIVE_ONLY_) {
133
- return true;
134
- }
135
- if (status[accessor] === _constants._SEND_RECEIVE_) {
136
- return false;
137
- }
189
+ MemberUtil.isBreakoutsSupported = function (participant) {
190
+ if (!participant) {
191
+ throw new _parameter.default('Breakout support could not be processed, participant is undefined.');
138
192
  }
139
- return null;
193
+ return !participant.doesNotSupportBreakouts;
194
+ };
195
+
196
+ /**
197
+ * @param {Object} participant the locus participant
198
+ * @returns {Boolean}
199
+ */
200
+ MemberUtil.isInterpretationSupported = function (participant) {
201
+ if (!participant) {
202
+ throw new _parameter.default('Interpretation support could not be processed, participant is undefined.');
203
+ }
204
+ return !participant.doesNotSupportSiInterpreter;
205
+ };
206
+
207
+ /**
208
+ * @param {Object} participant the locus participant
209
+ * @returns {Boolean}
210
+ */
211
+ MemberUtil.isLiveAnnotationSupported = function (participant) {
212
+ if (!participant) {
213
+ throw new _parameter.default('LiveAnnotation support could not be processed, participant is undefined.');
214
+ }
215
+ return !participant.annotatorAssignmentNotAllowed;
216
+ };
217
+
218
+ /**
219
+ * utility method for audio/video muted status
220
+ * @param {any} participant
221
+ * @param {String} statusAccessor
222
+ * @param {String} controlsAccessor
223
+ * @returns {Boolean | undefined}
224
+ */
225
+ MemberUtil.isMuted = function (participant, statusAccessor, controlsAccessor) {
226
+ var _participant$controls5, _participant$controls6, _participant$status;
227
+ // check remote mute
228
+ var remoteMute = participant === null || participant === void 0 ? void 0 : (_participant$controls5 = participant.controls) === null || _participant$controls5 === void 0 ? void 0 : (_participant$controls6 = _participant$controls5[controlsAccessor]) === null || _participant$controls6 === void 0 ? void 0 : _participant$controls6.muted;
229
+ if (remoteMute === true) {
230
+ return true;
231
+ }
232
+
233
+ // check local mute
234
+ var localStatus = participant === null || participant === void 0 ? void 0 : (_participant$status = participant.status) === null || _participant$status === void 0 ? void 0 : _participant$status[statusAccessor];
235
+ if (localStatus === _constants._RECEIVE_ONLY_) {
236
+ return true;
237
+ }
238
+ if (localStatus === _constants._SEND_RECEIVE_) {
239
+ return false;
240
+ }
241
+ return remoteMute;
140
242
  };
141
243
 
142
244
  /**
@@ -238,12 +340,13 @@ MemberUtil.extractId = function (participant) {
238
340
  * @returns {Object}
239
341
  */
240
342
  MemberUtil.extractMediaStatus = function (participant) {
343
+ var _participant$status2, _participant$status3;
241
344
  if (!participant) {
242
345
  throw new _parameter.default('Media status could not be extracted, participant is undefined.');
243
346
  }
244
347
  return {
245
- audio: participant.status.audioStatus,
246
- video: participant.status.videoStatus
348
+ audio: (_participant$status2 = participant.status) === null || _participant$status2 === void 0 ? void 0 : _participant$status2.audioStatus,
349
+ video: (_participant$status3 = participant.status) === null || _participant$status3 === void 0 ? void 0 : _participant$status3.videoStatus
247
350
  };
248
351
  };
249
352
 
@@ -257,6 +360,5 @@ MemberUtil.extractName = function (participant) {
257
360
  }
258
361
  return null;
259
362
  };
260
- var _default = MemberUtil;
261
- exports.default = _default;
363
+ var _default = exports.default = MemberUtil;
262
364
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_parameter","_interopRequireDefault","MemberUtil","isUser","participant","type","_USER_","isModerator","moderator","isGuest","guest","isDevice","_RESOURCE_ROOM_","isModeratorAssignmentProhibited","moderatorAssignmentNotAllowed","isSame","id","person","isAssociatedSame","associatedUsers","some","user","isNotAdmitted","status","devices","intent","_WAIT_","_IN_LOBBY_","_IN_MEETING_","isAudioMuted","ParameterError","mutedStatus","isMuted","AUDIO_STATUS","controls","audio","muted","isVideoMuted","VIDEO_STATUS","isHandRaised","_participant$controls","_participant$controls2","hand","raised","accessor","_RECEIVE_ONLY_","_SEND_RECEIVE_","getRecordingMember","record","recording","meta","modifiedBy","isRecording","localRecord","isRemovable","isSelf","isInMeeting","_CALL_","isMutable","extractStatus","length","_NOT_IN_MEETING_","state","_JOINED_","_IDLE_","foundDevice","find","device","_OBSERVE_","_LEFT_","extractId","extractMediaStatus","audioStatus","video","videoStatus","extractName","name","_default","exports","default"],"sources":["util.ts"],"sourcesContent":["import {\n _USER_,\n _RESOURCE_ROOM_,\n _OBSERVE_,\n _WAIT_,\n _LEFT_,\n _JOINED_,\n _IDLE_,\n _IN_LOBBY_,\n _NOT_IN_MEETING_,\n _IN_MEETING_,\n AUDIO_STATUS,\n VIDEO_STATUS,\n _SEND_RECEIVE_,\n _RECEIVE_ONLY_,\n _CALL_,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\nimport {IMediaStatus} from './member.types';\n\nconst MemberUtil: any = {};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isUser = (participant: any) => participant && participant.type === _USER_;\n\nMemberUtil.isModerator = (participant) => participant && participant.moderator;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isGuest = (participant: any) => participant && participant.guest;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isDevice = (participant: any) => participant && participant.type === _RESOURCE_ROOM_;\n\nMemberUtil.isModeratorAssignmentProhibited = (participant) =>\n participant && participant.moderatorAssignmentNotAllowed;\n\n/**\n * checks to see if the participant id is the same as the passed id\n * there are multiple ids that can be used\n * @param {Object} participant the locus participant\n * @param {String} id\n * @returns {Boolean}\n */\nMemberUtil.isSame = (participant: any, id: string) =>\n participant && (participant.id === id || (participant.person && participant.person.id === id));\n\n/**\n * checks to see if the participant id is the same as the passed id for associated devices\n * there are multiple ids that can be used\n * @param {Object} participant the locus participant\n * @param {String} id\n * @returns {Boolean}\n */\nMemberUtil.isAssociatedSame = (participant: any, id: string) =>\n participant &&\n participant.associatedUsers &&\n participant.associatedUsers.some(\n (user) => user.id === id || (user.person && user.person.id === id)\n );\n\n/**\n * @param {Object} participant the locus participant\n * @param {Boolean} isGuest\n * @param {String} status\n * @returns {Boolean}\n */\nMemberUtil.isNotAdmitted = (participant: any, isGuest: boolean, status: string): boolean =>\n participant &&\n participant.guest &&\n ((participant.devices &&\n participant.devices[0] &&\n participant.devices[0].intent &&\n participant.devices[0].intent.type === _WAIT_ &&\n // @ts-ignore\n isGuest &&\n status === _IN_LOBBY_) ||\n // @ts-ignore\n !status === _IN_MEETING_);\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isAudioMuted = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Audio could not be processed, participant is undefined.');\n }\n const mutedStatus = MemberUtil.isMuted(participant.status, AUDIO_STATUS);\n\n if (participant.controls && participant.controls.audio) {\n if (participant.controls.audio.muted) {\n return true;\n }\n if (mutedStatus) {\n return true;\n }\n }\n\n return false;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isVideoMuted = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Video could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant.status, VIDEO_STATUS);\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isHandRaised = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Raise hand could not be processed, participant is undefined.');\n }\n\n return participant.controls?.hand?.raised || false;\n};\n\n/**\n * utility method for audio/video muted status\n * @param {String} status\n * @param {String} accessor\n * @returns {Boolean}\n */\nMemberUtil.isMuted = (status: string, accessor: string) => {\n if (status) {\n if (status[accessor] === _RECEIVE_ONLY_) {\n return true;\n }\n if (status[accessor] === _SEND_RECEIVE_) {\n return false;\n }\n }\n\n return null;\n};\n\n/**\n * utility method for getting the recording member for later comparison\n * @param {Object} controls\n * @returns {String|null}\n */\nMemberUtil.getRecordingMember = (controls: any) => {\n if (!controls) {\n return null;\n }\n if (controls.record && controls.record.recording && controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isRecording = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Recording could not be processed, participant is undefined.');\n }\n if (participant.controls && participant.controls.localRecord) {\n return participant.controls.localRecord.recording;\n }\n\n return false;\n};\n\nMemberUtil.isRemovable = (isSelf, isGuest, isInMeeting, type) => {\n if (isGuest || isSelf) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isInMeeting) {\n return true;\n }\n\n return false;\n};\n\nMemberUtil.isMutable = (isSelf, isDevice, isInMeeting, isMuted, type) => {\n if (!isInMeeting) {\n return false;\n }\n if (isMuted) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isSelf || isDevice) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {String}\n */\nMemberUtil.extractStatus = (participant: any) => {\n if (!(participant && participant.devices && participant.devices.length)) {\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _JOINED_) {\n return _IN_MEETING_;\n }\n if (participant.state === _IDLE_) {\n if (participant.devices && participant.devices.length > 0) {\n const foundDevice = participant.devices.find(\n (device) =>\n device.intent && (device.intent.type === _WAIT_ || device.intent.type === _OBSERVE_)\n );\n\n return foundDevice ? _IN_LOBBY_ : _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _LEFT_) {\n return _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {String}\n */\nMemberUtil.extractId = (participant: any) => {\n if (participant) {\n return participant.id;\n }\n\n return null;\n};\n\n/**\n * extracts the media status from nested participant object\n * @param {Object} participant the locus participant\n * @returns {Object}\n */\nMemberUtil.extractMediaStatus = (participant: any): IMediaStatus => {\n if (!participant) {\n throw new ParameterError('Media status could not be extracted, participant is undefined.');\n }\n\n return {\n audio: participant.status.audioStatus,\n video: participant.status.videoStatus,\n };\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {String}\n */\nMemberUtil.extractName = (participant: any) => {\n if (participant && participant.person) {\n return participant.person.name;\n }\n\n return null;\n};\n\nexport default MemberUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_constants","_parameter","_interopRequireDefault","MemberUtil","canReclaimHost","participant","ParameterError","canReclaimHostRole","getControlsRoles","_participant$controls","_participant$controls2","controls","role","roles","hasRole","controlRole","_MemberUtil$getContro","some","type","hasCohost","ServerRoles","Cohost","hasModerator","Moderator","hasPresenter","Presenter","extractControlRoles","cohost","moderator","presenter","isUser","_USER_","isModerator","isGuest","guest","isDevice","_RESOURCE_ROOM_","isModeratorAssignmentProhibited","moderatorAssignmentNotAllowed","isSame","id","person","isAssociatedSame","associatedUsers","user","isNotAdmitted","status","devices","intent","_WAIT_","_IN_LOBBY_","_IN_MEETING_","isAudioMuted","isMuted","AUDIO_STATUS","AUDIO","isVideoMuted","VIDEO_STATUS","VIDEO","isHandRaised","_participant$controls3","_participant$controls4","hand","raised","isBreakoutsSupported","doesNotSupportBreakouts","isInterpretationSupported","doesNotSupportSiInterpreter","isLiveAnnotationSupported","annotatorAssignmentNotAllowed","statusAccessor","controlsAccessor","_participant$controls5","_participant$controls6","_participant$status","remoteMute","muted","localStatus","_RECEIVE_ONLY_","_SEND_RECEIVE_","getRecordingMember","record","recording","meta","modifiedBy","isRecording","localRecord","isRemovable","isSelf","isInMeeting","_CALL_","isMutable","extractStatus","length","_NOT_IN_MEETING_","state","_JOINED_","_IDLE_","foundDevice","find","device","_OBSERVE_","_LEFT_","extractId","extractMediaStatus","_participant$status2","_participant$status3","audio","audioStatus","video","videoStatus","extractName","name","_default","exports","default"],"sources":["util.ts"],"sourcesContent":["import {\n IExternalRoles,\n ParticipantWithRoles,\n ServerRoles,\n ServerRoleShape,\n IMediaStatus,\n} from './types';\nimport {\n _USER_,\n _RESOURCE_ROOM_,\n _OBSERVE_,\n _WAIT_,\n _LEFT_,\n _JOINED_,\n _IDLE_,\n _IN_LOBBY_,\n _NOT_IN_MEETING_,\n _IN_MEETING_,\n AUDIO_STATUS,\n VIDEO_STATUS,\n _SEND_RECEIVE_,\n _RECEIVE_ONLY_,\n _CALL_,\n VIDEO,\n AUDIO,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst MemberUtil: any = {};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.canReclaimHost = (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'canReclaimHostRole could not be processed, participant is undefined.'\n );\n }\n\n return participant.canReclaimHostRole || false;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {[ServerRoleShape]}\n */\nMemberUtil.getControlsRoles = (participant: ParticipantWithRoles): Array<ServerRoleShape> =>\n participant?.controls?.role?.roles;\n\n/**\n * @param {Object} participant the locus participant\n * @param {ServerRoles} controlRole the search role\n * @returns {Boolean}\n */\nMemberUtil.hasRole = (participant: any, controlRole: ServerRoles): boolean =>\n MemberUtil.getControlsRoles(participant)?.some(\n (role) => role.type === controlRole && role.hasRole\n );\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.hasCohost = (participant: ParticipantWithRoles): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Cohost) || false;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.hasModerator = (participant: ParticipantWithRoles): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Moderator) || false;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.hasPresenter = (participant: ParticipantWithRoles): boolean =>\n MemberUtil.hasRole(participant, ServerRoles.Presenter) || false;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {IExternalRoles}\n */\nMemberUtil.extractControlRoles = (participant: ParticipantWithRoles): IExternalRoles => {\n const roles = {\n cohost: MemberUtil.hasCohost(participant),\n moderator: MemberUtil.hasModerator(participant),\n presenter: MemberUtil.hasPresenter(participant),\n };\n\n return roles;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isUser = (participant: any) => participant && participant.type === _USER_;\n\nMemberUtil.isModerator = (participant) => participant && participant.moderator;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isGuest = (participant: any) => participant && participant.guest;\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isDevice = (participant: any) => participant && participant.type === _RESOURCE_ROOM_;\n\nMemberUtil.isModeratorAssignmentProhibited = (participant) =>\n participant && participant.moderatorAssignmentNotAllowed;\n\n/**\n * checks to see if the participant id is the same as the passed id\n * there are multiple ids that can be used\n * @param {Object} participant the locus participant\n * @param {String} id\n * @returns {Boolean}\n */\nMemberUtil.isSame = (participant: any, id: string) =>\n participant && (participant.id === id || (participant.person && participant.person.id === id));\n\n/**\n * checks to see if the participant id is the same as the passed id for associated devices\n * there are multiple ids that can be used\n * @param {Object} participant the locus participant\n * @param {String} id\n * @returns {Boolean}\n */\nMemberUtil.isAssociatedSame = (participant: any, id: string) =>\n participant &&\n participant.associatedUsers &&\n participant.associatedUsers.some(\n (user) => user.id === id || (user.person && user.person.id === id)\n );\n\n/**\n * @param {Object} participant the locus participant\n * @param {Boolean} isGuest\n * @param {String} status\n * @returns {Boolean}\n */\nMemberUtil.isNotAdmitted = (participant: any, isGuest: boolean, status: string): boolean =>\n participant &&\n participant.guest &&\n ((participant.devices &&\n participant.devices[0] &&\n participant.devices[0].intent &&\n participant.devices[0].intent.type === _WAIT_ &&\n // @ts-ignore\n isGuest &&\n status === _IN_LOBBY_) ||\n // @ts-ignore\n !status === _IN_MEETING_);\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isAudioMuted = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Audio could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant, AUDIO_STATUS, AUDIO);\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isVideoMuted = (participant: any): boolean => {\n if (!participant) {\n throw new ParameterError('Video could not be processed, participant is undefined.');\n }\n\n return MemberUtil.isMuted(participant, VIDEO_STATUS, VIDEO);\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isHandRaised = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Raise hand could not be processed, participant is undefined.');\n }\n\n return participant.controls?.hand?.raised || false;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isBreakoutsSupported = (participant) => {\n if (!participant) {\n throw new ParameterError('Breakout support could not be processed, participant is undefined.');\n }\n\n return !participant.doesNotSupportBreakouts;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isInterpretationSupported = (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'Interpretation support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.doesNotSupportSiInterpreter;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isLiveAnnotationSupported = (participant) => {\n if (!participant) {\n throw new ParameterError(\n 'LiveAnnotation support could not be processed, participant is undefined.'\n );\n }\n\n return !participant.annotatorAssignmentNotAllowed;\n};\n\n/**\n * utility method for audio/video muted status\n * @param {any} participant\n * @param {String} statusAccessor\n * @param {String} controlsAccessor\n * @returns {Boolean | undefined}\n */\nMemberUtil.isMuted = (participant: any, statusAccessor: string, controlsAccessor: string) => {\n // check remote mute\n const remoteMute = participant?.controls?.[controlsAccessor]?.muted;\n if (remoteMute === true) {\n return true;\n }\n\n // check local mute\n const localStatus = participant?.status?.[statusAccessor];\n if (localStatus === _RECEIVE_ONLY_) {\n return true;\n }\n if (localStatus === _SEND_RECEIVE_) {\n return false;\n }\n\n return remoteMute;\n};\n\n/**\n * utility method for getting the recording member for later comparison\n * @param {Object} controls\n * @returns {String|null}\n */\nMemberUtil.getRecordingMember = (controls: any) => {\n if (!controls) {\n return null;\n }\n if (controls.record && controls.record.recording && controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {Boolean}\n */\nMemberUtil.isRecording = (participant: any) => {\n if (!participant) {\n throw new ParameterError('Recording could not be processed, participant is undefined.');\n }\n if (participant.controls && participant.controls.localRecord) {\n return participant.controls.localRecord.recording;\n }\n\n return false;\n};\n\nMemberUtil.isRemovable = (isSelf, isGuest, isInMeeting, type) => {\n if (isGuest || isSelf) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isInMeeting) {\n return true;\n }\n\n return false;\n};\n\nMemberUtil.isMutable = (isSelf, isDevice, isInMeeting, isMuted, type) => {\n if (!isInMeeting) {\n return false;\n }\n if (isMuted) {\n return false;\n }\n if (type === _CALL_) {\n return false;\n }\n if (isSelf || isDevice) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {String}\n */\nMemberUtil.extractStatus = (participant: any) => {\n if (!(participant && participant.devices && participant.devices.length)) {\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _JOINED_) {\n return _IN_MEETING_;\n }\n if (participant.state === _IDLE_) {\n if (participant.devices && participant.devices.length > 0) {\n const foundDevice = participant.devices.find(\n (device) =>\n device.intent && (device.intent.type === _WAIT_ || device.intent.type === _OBSERVE_)\n );\n\n return foundDevice ? _IN_LOBBY_ : _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n }\n if (participant.state === _LEFT_) {\n return _NOT_IN_MEETING_;\n }\n\n return _NOT_IN_MEETING_;\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {String}\n */\nMemberUtil.extractId = (participant: any) => {\n if (participant) {\n return participant.id;\n }\n\n return null;\n};\n\n/**\n * extracts the media status from nested participant object\n * @param {Object} participant the locus participant\n * @returns {Object}\n */\nMemberUtil.extractMediaStatus = (participant: any): IMediaStatus => {\n if (!participant) {\n throw new ParameterError('Media status could not be extracted, participant is undefined.');\n }\n\n return {\n audio: participant.status?.audioStatus,\n video: participant.status?.videoStatus,\n };\n};\n\n/**\n * @param {Object} participant the locus participant\n * @returns {String}\n */\nMemberUtil.extractName = (participant: any) => {\n if (participant && participant.person) {\n return participant.person.name;\n }\n\n return null;\n};\n\nexport default MemberUtil;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAmBA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAMI,UAAe,GAAG,CAAC,CAAC;;AAE1B;AACA;AACA;AACA;AACAA,UAAU,CAACC,cAAc,GAAG,UAACC,WAAW,EAAK;EAC3C,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CACtB,sEACF,CAAC;EACH;EAEA,OAAOD,WAAW,CAACE,kBAAkB,IAAI,KAAK;AAChD,CAAC;;AAED;AACA;AACA;AACA;AACAJ,UAAU,CAACK,gBAAgB,GAAG,UAACH,WAAiC;EAAA,IAAAI,qBAAA,EAAAC,sBAAA;EAAA,OAC9DL,WAAW,aAAXA,WAAW,wBAAAI,qBAAA,GAAXJ,WAAW,CAAEM,QAAQ,cAAAF,qBAAA,wBAAAC,sBAAA,GAArBD,qBAAA,CAAuBG,IAAI,cAAAF,sBAAA,uBAA3BA,sBAAA,CAA6BG,KAAK;AAAA;;AAEpC;AACA;AACA;AACA;AACA;AACAV,UAAU,CAACW,OAAO,GAAG,UAACT,WAAgB,EAAEU,WAAwB;EAAA,IAAAC,qBAAA;EAAA,QAAAA,qBAAA,GAC9Db,UAAU,CAACK,gBAAgB,CAACH,WAAW,CAAC,cAAAW,qBAAA,uBAAxCA,qBAAA,CAA0CC,IAAI,CAC5C,UAACL,IAAI;IAAA,OAAKA,IAAI,CAACM,IAAI,KAAKH,WAAW,IAAIH,IAAI,CAACE,OAAO;EAAA,CACrD,CAAC;AAAA;;AAEH;AACA;AACA;AACA;AACAX,UAAU,CAACgB,SAAS,GAAG,UAACd,WAAiC;EAAA,OACvDF,UAAU,CAACW,OAAO,CAACT,WAAW,EAAEe,kBAAW,CAACC,MAAM,CAAC,IAAI,KAAK;AAAA;;AAE9D;AACA;AACA;AACA;AACAlB,UAAU,CAACmB,YAAY,GAAG,UAACjB,WAAiC;EAAA,OAC1DF,UAAU,CAACW,OAAO,CAACT,WAAW,EAAEe,kBAAW,CAACG,SAAS,CAAC,IAAI,KAAK;AAAA;;AAEjE;AACA;AACA;AACA;AACApB,UAAU,CAACqB,YAAY,GAAG,UAACnB,WAAiC;EAAA,OAC1DF,UAAU,CAACW,OAAO,CAACT,WAAW,EAAEe,kBAAW,CAACK,SAAS,CAAC,IAAI,KAAK;AAAA;;AAEjE;AACA;AACA;AACA;AACAtB,UAAU,CAACuB,mBAAmB,GAAG,UAACrB,WAAiC,EAAqB;EACtF,IAAMQ,KAAK,GAAG;IACZc,MAAM,EAAExB,UAAU,CAACgB,SAAS,CAACd,WAAW,CAAC;IACzCuB,SAAS,EAAEzB,UAAU,CAACmB,YAAY,CAACjB,WAAW,CAAC;IAC/CwB,SAAS,EAAE1B,UAAU,CAACqB,YAAY,CAACnB,WAAW;EAChD,CAAC;EAED,OAAOQ,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACAV,UAAU,CAAC2B,MAAM,GAAG,UAACzB,WAAgB;EAAA,OAAKA,WAAW,IAAIA,WAAW,CAACa,IAAI,KAAKa,iBAAM;AAAA;AAEpF5B,UAAU,CAAC6B,WAAW,GAAG,UAAC3B,WAAW;EAAA,OAAKA,WAAW,IAAIA,WAAW,CAACuB,SAAS;AAAA;;AAE9E;AACA;AACA;AACA;AACAzB,UAAU,CAAC8B,OAAO,GAAG,UAAC5B,WAAgB;EAAA,OAAKA,WAAW,IAAIA,WAAW,CAAC6B,KAAK;AAAA;;AAE3E;AACA;AACA;AACA;AACA/B,UAAU,CAACgC,QAAQ,GAAG,UAAC9B,WAAgB;EAAA,OAAKA,WAAW,IAAIA,WAAW,CAACa,IAAI,KAAKkB,0BAAe;AAAA;AAE/FjC,UAAU,CAACkC,+BAA+B,GAAG,UAAChC,WAAW;EAAA,OACvDA,WAAW,IAAIA,WAAW,CAACiC,6BAA6B;AAAA;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACAnC,UAAU,CAACoC,MAAM,GAAG,UAAClC,WAAgB,EAAEmC,EAAU;EAAA,OAC/CnC,WAAW,KAAKA,WAAW,CAACmC,EAAE,KAAKA,EAAE,IAAKnC,WAAW,CAACoC,MAAM,IAAIpC,WAAW,CAACoC,MAAM,CAACD,EAAE,KAAKA,EAAG,CAAC;AAAA;;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACArC,UAAU,CAACuC,gBAAgB,GAAG,UAACrC,WAAgB,EAAEmC,EAAU;EAAA,OACzDnC,WAAW,IACXA,WAAW,CAACsC,eAAe,IAC3BtC,WAAW,CAACsC,eAAe,CAAC1B,IAAI,CAC9B,UAAC2B,IAAI;IAAA,OAAKA,IAAI,CAACJ,EAAE,KAAKA,EAAE,IAAKI,IAAI,CAACH,MAAM,IAAIG,IAAI,CAACH,MAAM,CAACD,EAAE,KAAKA,EAAG;EAAA,CACpE,CAAC;AAAA;;AAEH;AACA;AACA;AACA;AACA;AACA;AACArC,UAAU,CAAC0C,aAAa,GAAG,UAACxC,WAAgB,EAAE4B,OAAgB,EAAEa,MAAc;EAAA,OAC5EzC,WAAW,IACXA,WAAW,CAAC6B,KAAK,KACf7B,WAAW,CAAC0C,OAAO,IACnB1C,WAAW,CAAC0C,OAAO,CAAC,CAAC,CAAC,IACtB1C,WAAW,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,IAC7B3C,WAAW,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC9B,IAAI,KAAK+B,iBAAM;EAC7C;EACAhB,OAAO,IACPa,MAAM,KAAKI,qBAAU;EACrB;EACA,CAACJ,MAAM,KAAKK,uBAAY,CAAC;AAAA;;AAE7B;AACA;AACA;AACA;AACAhD,UAAU,CAACiD,YAAY,GAAG,UAAC/C,WAAgB,EAAK;EAC9C,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CAAC,yDAAyD,CAAC;EACrF;EAEA,OAAOH,UAAU,CAACkD,OAAO,CAAChD,WAAW,EAAEiD,uBAAY,EAAEC,gBAAK,CAAC;AAC7D,CAAC;;AAED;AACA;AACA;AACA;AACApD,UAAU,CAACqD,YAAY,GAAG,UAACnD,WAAgB,EAAc;EACvD,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CAAC,yDAAyD,CAAC;EACrF;EAEA,OAAOH,UAAU,CAACkD,OAAO,CAAChD,WAAW,EAAEoD,uBAAY,EAAEC,gBAAK,CAAC;AAC7D,CAAC;;AAED;AACA;AACA;AACA;AACAvD,UAAU,CAACwD,YAAY,GAAG,UAACtD,WAAgB,EAAK;EAAA,IAAAuD,sBAAA,EAAAC,sBAAA;EAC9C,IAAI,CAACxD,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CAAC,8DAA8D,CAAC;EAC1F;EAEA,OAAO,EAAAsD,sBAAA,GAAAvD,WAAW,CAACM,QAAQ,cAAAiD,sBAAA,wBAAAC,sBAAA,GAApBD,sBAAA,CAAsBE,IAAI,cAAAD,sBAAA,uBAA1BA,sBAAA,CAA4BE,MAAM,KAAI,KAAK;AACpD,CAAC;;AAED;AACA;AACA;AACA;AACA5D,UAAU,CAAC6D,oBAAoB,GAAG,UAAC3D,WAAW,EAAK;EACjD,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CAAC,oEAAoE,CAAC;EAChG;EAEA,OAAO,CAACD,WAAW,CAAC4D,uBAAuB;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA9D,UAAU,CAAC+D,yBAAyB,GAAG,UAAC7D,WAAW,EAAK;EACtD,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CACtB,0EACF,CAAC;EACH;EAEA,OAAO,CAACD,WAAW,CAAC8D,2BAA2B;AACjD,CAAC;;AAED;AACA;AACA;AACA;AACAhE,UAAU,CAACiE,yBAAyB,GAAG,UAAC/D,WAAW,EAAK;EACtD,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CACtB,0EACF,CAAC;EACH;EAEA,OAAO,CAACD,WAAW,CAACgE,6BAA6B;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAlE,UAAU,CAACkD,OAAO,GAAG,UAAChD,WAAgB,EAAEiE,cAAsB,EAAEC,gBAAwB,EAAK;EAAA,IAAAC,sBAAA,EAAAC,sBAAA,EAAAC,mBAAA;EAC3F;EACA,IAAMC,UAAU,GAAGtE,WAAW,aAAXA,WAAW,wBAAAmE,sBAAA,GAAXnE,WAAW,CAAEM,QAAQ,cAAA6D,sBAAA,wBAAAC,sBAAA,GAArBD,sBAAA,CAAwBD,gBAAgB,CAAC,cAAAE,sBAAA,uBAAzCA,sBAAA,CAA2CG,KAAK;EACnE,IAAID,UAAU,KAAK,IAAI,EAAE;IACvB,OAAO,IAAI;EACb;;EAEA;EACA,IAAME,WAAW,GAAGxE,WAAW,aAAXA,WAAW,wBAAAqE,mBAAA,GAAXrE,WAAW,CAAEyC,MAAM,cAAA4B,mBAAA,uBAAnBA,mBAAA,CAAsBJ,cAAc,CAAC;EACzD,IAAIO,WAAW,KAAKC,yBAAc,EAAE;IAClC,OAAO,IAAI;EACb;EACA,IAAID,WAAW,KAAKE,yBAAc,EAAE;IAClC,OAAO,KAAK;EACd;EAEA,OAAOJ,UAAU;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAxE,UAAU,CAAC6E,kBAAkB,GAAG,UAACrE,QAAa,EAAK;EACjD,IAAI,CAACA,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EACA,IAAIA,QAAQ,CAACsE,MAAM,IAAItE,QAAQ,CAACsE,MAAM,CAACC,SAAS,IAAIvE,QAAQ,CAACsE,MAAM,CAACE,IAAI,EAAE;IACxE,OAAOxE,QAAQ,CAACsE,MAAM,CAACE,IAAI,CAACC,UAAU;EACxC;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACAjF,UAAU,CAACkF,WAAW,GAAG,UAAChF,WAAgB,EAAK;EAC7C,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CAAC,6DAA6D,CAAC;EACzF;EACA,IAAID,WAAW,CAACM,QAAQ,IAAIN,WAAW,CAACM,QAAQ,CAAC2E,WAAW,EAAE;IAC5D,OAAOjF,WAAW,CAACM,QAAQ,CAAC2E,WAAW,CAACJ,SAAS;EACnD;EAEA,OAAO,KAAK;AACd,CAAC;AAED/E,UAAU,CAACoF,WAAW,GAAG,UAACC,MAAM,EAAEvD,OAAO,EAAEwD,WAAW,EAAEvE,IAAI,EAAK;EAC/D,IAAIe,OAAO,IAAIuD,MAAM,EAAE;IACrB,OAAO,KAAK;EACd;EACA,IAAItE,IAAI,KAAKwE,iBAAM,EAAE;IACnB,OAAO,KAAK;EACd;EACA,IAAID,WAAW,EAAE;IACf,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAEDtF,UAAU,CAACwF,SAAS,GAAG,UAACH,MAAM,EAAErD,QAAQ,EAAEsD,WAAW,EAAEpC,OAAO,EAAEnC,IAAI,EAAK;EACvE,IAAI,CAACuE,WAAW,EAAE;IAChB,OAAO,KAAK;EACd;EACA,IAAIpC,OAAO,EAAE;IACX,OAAO,KAAK;EACd;EACA,IAAInC,IAAI,KAAKwE,iBAAM,EAAE;IACnB,OAAO,KAAK;EACd;EACA,IAAIF,MAAM,IAAIrD,QAAQ,EAAE;IACtB,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACAhC,UAAU,CAACyF,aAAa,GAAG,UAACvF,WAAgB,EAAK;EAC/C,IAAI,EAAEA,WAAW,IAAIA,WAAW,CAAC0C,OAAO,IAAI1C,WAAW,CAAC0C,OAAO,CAAC8C,MAAM,CAAC,EAAE;IACvE,OAAOC,2BAAgB;EACzB;EACA,IAAIzF,WAAW,CAAC0F,KAAK,KAAKC,mBAAQ,EAAE;IAClC,OAAO7C,uBAAY;EACrB;EACA,IAAI9C,WAAW,CAAC0F,KAAK,KAAKE,iBAAM,EAAE;IAChC,IAAI5F,WAAW,CAAC0C,OAAO,IAAI1C,WAAW,CAAC0C,OAAO,CAAC8C,MAAM,GAAG,CAAC,EAAE;MACzD,IAAMK,WAAW,GAAG7F,WAAW,CAAC0C,OAAO,CAACoD,IAAI,CAC1C,UAACC,MAAM;QAAA,OACLA,MAAM,CAACpD,MAAM,KAAKoD,MAAM,CAACpD,MAAM,CAAC9B,IAAI,KAAK+B,iBAAM,IAAImD,MAAM,CAACpD,MAAM,CAAC9B,IAAI,KAAKmF,oBAAS,CAAC;MAAA,CACxF,CAAC;MAED,OAAOH,WAAW,GAAGhD,qBAAU,GAAG4C,2BAAgB;IACpD;IAEA,OAAOA,2BAAgB;EACzB;EACA,IAAIzF,WAAW,CAAC0F,KAAK,KAAKO,iBAAM,EAAE;IAChC,OAAOR,2BAAgB;EACzB;EAEA,OAAOA,2BAAgB;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA3F,UAAU,CAACoG,SAAS,GAAG,UAAClG,WAAgB,EAAK;EAC3C,IAAIA,WAAW,EAAE;IACf,OAAOA,WAAW,CAACmC,EAAE;EACvB;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACArC,UAAU,CAACqG,kBAAkB,GAAG,UAACnG,WAAgB,EAAmB;EAAA,IAAAoG,oBAAA,EAAAC,oBAAA;EAClE,IAAI,CAACrG,WAAW,EAAE;IAChB,MAAM,IAAIC,kBAAc,CAAC,gEAAgE,CAAC;EAC5F;EAEA,OAAO;IACLqG,KAAK,GAAAF,oBAAA,GAAEpG,WAAW,CAACyC,MAAM,cAAA2D,oBAAA,uBAAlBA,oBAAA,CAAoBG,WAAW;IACtCC,KAAK,GAAAH,oBAAA,GAAErG,WAAW,CAACyC,MAAM,cAAA4D,oBAAA,uBAAlBA,oBAAA,CAAoBI;EAC7B,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA3G,UAAU,CAAC4G,WAAW,GAAG,UAAC1G,WAAgB,EAAK;EAC7C,IAAIA,WAAW,IAAIA,WAAW,CAACoC,MAAM,EAAE;IACrC,OAAOpC,WAAW,CAACoC,MAAM,CAACuE,IAAI;EAChC;EAEA,OAAO,IAAI;AACb,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEahH,UAAU"}
@@ -13,7 +13,7 @@ var _constants = require("../constants");
13
13
  /**
14
14
  * @class MembersCollection
15
15
  */
16
- var MembersCollection = /*#__PURE__*/function () {
16
+ var MembersCollection = exports.default = /*#__PURE__*/function () {
17
17
  /**
18
18
  * @param {Object} locus
19
19
  * @memberof Members
@@ -54,8 +54,17 @@ var MembersCollection = /*#__PURE__*/function () {
54
54
  value: function getAll() {
55
55
  return this.members;
56
56
  }
57
+
58
+ /**
59
+ * @returns {void}
60
+ * reset members
61
+ */
62
+ }, {
63
+ key: "reset",
64
+ value: function reset() {
65
+ this.members = {};
66
+ }
57
67
  }]);
58
68
  return MembersCollection;
59
69
  }();
60
- exports.default = MembersCollection;
61
70
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","MembersCollection","_classCallCheck2","default","_defineProperty2","MEETINGS","members","_createClass2","key","value","set","id","member","setAll","get","getAll","exports"],"sources":["collection.ts"],"sourcesContent":["import {MEETINGS} from '../constants';\n\n/**\n * @class MembersCollection\n */\nexport default class MembersCollection {\n members: any;\n namespace = MEETINGS;\n /**\n * @param {Object} locus\n * @memberof Members\n */\n constructor() {\n this.members = {};\n }\n\n set(id, member) {\n this.members[id] = member;\n }\n\n setAll(members) {\n this.members = members;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.members[id];\n }\n\n /**\n * @returns {Object} returns an object map of Member instances\n * @memberof MembersCollection\n */\n getAll() {\n return this.members;\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACA;AACA;AAFA,IAGqBC,iBAAiB;EAGpC;AACF;AACA;AACA;EACE,SAAAA,kBAAA,EAAc;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,iBAAA;IAAA,IAAAG,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,qBALFE,mBAAQ;IAMlB,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;EACnB;EAAC,IAAAC,aAAA,CAAAJ,OAAA,EAAAF,iBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,EAAE,EAAEC,MAAM,EAAE;MACd,IAAI,CAACN,OAAO,CAACK,EAAE,CAAC,GAAGC,MAAM;IAC3B;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAI,OAAOP,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAGA,OAAO;IACxB;;IAEA;AACF;AACA;AACA;EAHE;IAAAE,GAAA;IAAAC,KAAA,EAIA,SAAAK,IAAIH,EAAU,EAAE;MACd,OAAO,IAAI,CAACL,OAAO,CAACK,EAAE,CAAC;IACzB;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAM,OAAA,EAAS;MACP,OAAO,IAAI,CAACT,OAAO;IACrB;EAAC;EAAA,OAAAL,iBAAA;AAAA;AAAAe,OAAA,CAAAb,OAAA,GAAAF,iBAAA"}
1
+ {"version":3,"names":["_constants","require","MembersCollection","exports","default","_classCallCheck2","_defineProperty2","MEETINGS","members","_createClass2","key","value","set","id","member","setAll","get","getAll","reset"],"sources":["collection.ts"],"sourcesContent":["import {MEETINGS} from '../constants';\n\n/**\n * @class MembersCollection\n */\nexport default class MembersCollection {\n members: any;\n namespace = MEETINGS;\n /**\n * @param {Object} locus\n * @memberof Members\n */\n constructor() {\n this.members = {};\n }\n\n set(id, member) {\n this.members[id] = member;\n }\n\n setAll(members) {\n this.members = members;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.members[id];\n }\n\n /**\n * @returns {Object} returns an object map of Member instances\n * @memberof MembersCollection\n */\n getAll() {\n return this.members;\n }\n\n /**\n * @returns {void}\n * reset members\n */\n reset() {\n this.members = {};\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACA;AACA;AAFA,IAGqBC,iBAAiB,GAAAC,OAAA,CAAAC,OAAA;EAGpC;AACF;AACA;AACA;EACE,SAAAF,kBAAA,EAAc;IAAA,IAAAG,gBAAA,CAAAD,OAAA,QAAAF,iBAAA;IAAA,IAAAI,gBAAA,CAAAF,OAAA;IAAA,IAAAE,gBAAA,CAAAF,OAAA,qBALFG,mBAAQ;IAMlB,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;EACnB;EAAC,IAAAC,aAAA,CAAAL,OAAA,EAAAF,iBAAA;IAAAQ,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,EAAE,EAAEC,MAAM,EAAE;MACd,IAAI,CAACN,OAAO,CAACK,EAAE,CAAC,GAAGC,MAAM;IAC3B;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAI,OAAOP,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAGA,OAAO;IACxB;;IAEA;AACF;AACA;AACA;EAHE;IAAAE,GAAA;IAAAC,KAAA,EAIA,SAAAK,IAAIH,EAAU,EAAE;MACd,OAAO,IAAI,CAACL,OAAO,CAACK,EAAE,CAAC;IACzB;;IAEA;AACF;AACA;AACA;EAHE;IAAAH,GAAA;IAAAC,KAAA,EAIA,SAAAM,OAAA,EAAS;MACP,OAAO,IAAI,CAACT,OAAO;IACrB;;IAEA;AACF;AACA;AACA;EAHE;IAAAE,GAAA;IAAAC,KAAA,EAIA,SAAAO,MAAA,EAAQ;MACN,IAAI,CAACV,OAAO,GAAG,CAAC,CAAC;IACnB;EAAC;EAAA,OAAAN,iBAAA;AAAA"}
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
4
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
10
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
11
  _Object$defineProperty(exports, "__esModule", {
@@ -8,6 +13,8 @@ _Object$defineProperty(exports, "__esModule", {
8
13
  });
9
14
  exports.default = void 0;
10
15
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
17
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
11
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
12
19
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
13
20
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
@@ -15,18 +22,23 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
15
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
16
23
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
17
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
25
+ var _lodash = require("lodash");
19
26
  var _webexCore = require("@webex/webex-core");
20
27
  var _constants = require("../constants");
21
28
  var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
22
29
  var _member = _interopRequireDefault(require("../member"));
23
30
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
24
31
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
32
+ var _reclaimHostRoleErrors = require("../common/errors/reclaim-host-role-errors");
25
33
  var _collection = _interopRequireDefault(require("./collection"));
26
34
  var _request = _interopRequireDefault(require("./request"));
27
35
  var _util = _interopRequireDefault(require("./util"));
36
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
28
38
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
40
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
41
+ */ // @ts-ignore
30
42
  /**
31
43
  * Members Update Event
32
44
  * Emitted when something in the roster list needs to be updated
@@ -68,7 +80,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
68
80
  /**
69
81
  * @class Members
70
82
  */
71
- var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
83
+ var Members = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
72
84
  (0, _inherits2.default)(Members, _StatelessWebexPlugin);
73
85
  var _super = _createSuper(Members);
74
86
  /**
@@ -88,6 +100,7 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
88
100
  * @private
89
101
  * @memberof Members
90
102
  */
103
+
91
104
  // @ts-ignore
92
105
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hostId", void 0);
93
106
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
@@ -95,11 +108,15 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
95
108
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaShareWhiteboardId", void 0);
96
109
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "membersCollection", void 0);
97
110
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "membersRequest", void 0);
111
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "receiveSlotManager", void 0);
112
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaRequestManagers", void 0);
98
113
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "recordingId", void 0);
99
114
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selfId", void 0);
100
115
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", void 0);
101
116
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
102
- _this.membersRequest = new _request.default({}, options);
117
+ _this.membersRequest = new _request.default({
118
+ meeting: attrs.meeting
119
+ }, options);
103
120
  /**
104
121
  * The Members Collection cache
105
122
  * @instance
@@ -170,6 +187,18 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
170
187
  * @memberof Members
171
188
  */
172
189
  _this.recordingId = null;
190
+
191
+ /**
192
+ * reference to a ReceiveSlotManager instance (for multistream)
193
+ * @private
194
+ */
195
+ _this.receiveSlotManager = attrs.receiveSlotManager;
196
+
197
+ /**
198
+ * reference to a MediaRequestManager instance that manages main video requests (for multistream)
199
+ * @private
200
+ */
201
+ _this.mediaRequestManagers = attrs.mediaRequestManagers;
173
202
  return _this;
174
203
  }
175
204
 
@@ -261,6 +290,22 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
261
290
  });
262
291
  }
263
292
 
293
+ /**
294
+ * clear member collection
295
+ * @returns {void}
296
+ * @private
297
+ * @memberof Members
298
+ */
299
+ }, {
300
+ key: "clearMembers",
301
+ value: function clearMembers() {
302
+ this.membersCollection.reset();
303
+ _triggerProxy.default.trigger(this, {
304
+ file: 'members',
305
+ function: 'clearMembers'
306
+ }, _constants.EVENT_TRIGGERS.MEMBERS_CLEAR, {});
307
+ }
308
+
264
309
  /**
265
310
  * when new participant updates come in, both delta and full participants, update them in members collection
266
311
  * delta object in the event will have {updated, added} and full will be the full membersCollection
@@ -274,15 +319,21 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
274
319
  key: "locusParticipantsUpdate",
275
320
  value: function locusParticipantsUpdate(payload) {
276
321
  if (payload) {
322
+ var _this$receiveSlotMana;
323
+ if (payload.isReplace) {
324
+ this.clearMembers();
325
+ }
277
326
  var delta = this.handleLocusInfoUpdatedParticipants(payload);
278
327
  var full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
279
328
 
329
+ (_this$receiveSlotMana = this.receiveSlotManager) === null || _this$receiveSlotMana === void 0 ? void 0 : _this$receiveSlotMana.updateMemberIds();
280
330
  _triggerProxy.default.trigger(this, {
281
331
  file: 'members',
282
332
  function: 'locusParticipantsUpdate'
283
333
  }, _constants.EVENT_TRIGGERS.MEMBERS_UPDATE, {
284
334
  delta: delta,
285
- full: full
335
+ full: full,
336
+ isReplace: !!payload.isReplace
286
337
  });
287
338
  }
288
339
  }
@@ -676,17 +727,20 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
676
727
  /**
677
728
  * Admits waiting members (invited guests to meeting)
678
729
  * @param {Array} memberIds
730
+ * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
679
731
  * @returns {Promise}
680
732
  * @public
681
733
  * @memberof Members
682
734
  */
683
735
  }, {
684
736
  key: "admitMembers",
685
- value: function admitMembers(memberIds) {
686
- if ((0, _isEmpty2.default)(memberIds)) {
737
+ value: function admitMembers(memberIds, sessionLocusUrls) {
738
+ if ((0, _lodash.isEmpty)(memberIds)) {
687
739
  return _promise.default.reject(new _parameter.default('No member ids provided to admit.'));
688
740
  }
689
- var options = _util.default.generateAdmitMemberOptions(memberIds, this.locusUrl);
741
+ var options = _objectSpread({
742
+ sessionLocusUrls: sessionLocusUrls
743
+ }, _util.default.generateAdmitMemberOptions(memberIds, this.locusUrl));
690
744
  return this.membersRequest.admitMember(options);
691
745
  }
692
746
 
@@ -714,6 +768,7 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
714
768
  * Audio mutes another member in a meeting
715
769
  * @param {String} memberId
716
770
  * @param {boolean} [mute] default true
771
+ * @param {boolean} [isAudio] default true
717
772
  * @returns {Promise}
718
773
  * @public
719
774
  * @memberof Members
@@ -722,16 +777,53 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
722
777
  key: "muteMember",
723
778
  value: function muteMember(memberId) {
724
779
  var mute = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
780
+ var isAudio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
725
781
  if (!this.locusUrl) {
726
782
  return _promise.default.reject(new _parameter.default('The associated locus url for this meetings members object must be defined.'));
727
783
  }
728
784
  if (!memberId) {
729
785
  return _promise.default.reject(new _parameter.default('The member id must be defined to mute the member.'));
730
786
  }
731
- var options = _util.default.generateMuteMemberOptions(memberId, mute, this.locusUrl);
787
+ var options = _util.default.generateMuteMemberOptions(memberId, mute, this.locusUrl, isAudio);
732
788
  return this.membersRequest.muteMember(options);
733
789
  }
734
790
 
791
+ /**
792
+ * Assign role(s) to a member in the meeting
793
+ * @param {String} memberId
794
+ * @param {[ServerRoleShape]} roles - to assign an array of roles
795
+ * @returns {Promise}
796
+ * @public
797
+ * @memberof Members
798
+ */
799
+ }, {
800
+ key: "assignRoles",
801
+ value: function assignRoles(memberId, roles) {
802
+ if (!this.locusUrl) {
803
+ return _promise.default.reject(new _parameter.default('The associated locus url for this meetings members object must be defined.'));
804
+ }
805
+ if (!memberId) {
806
+ return _promise.default.reject(new _parameter.default('The member id must be defined to assign the roles to a member.'));
807
+ }
808
+ var options = _util.default.generateRoleAssignmentMemberOptions(memberId, roles, this.locusUrl);
809
+ return this.membersRequest.assignRolesMember(options).catch(function (error) {
810
+ var _error$body;
811
+ var errorCode = (_error$body = error.body) === null || _error$body === void 0 ? void 0 : _error$body.errorCode;
812
+ switch (errorCode) {
813
+ case _constants.ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotSupportedErrorCode:
814
+ return _promise.default.reject(new _reclaimHostRoleErrors.ReclaimHostNotSupportedError());
815
+ case _constants.ASSIGN_ROLES_ERROR_CODES.ReclaimHostNotAllowedErrorCode:
816
+ return _promise.default.reject(new _reclaimHostRoleErrors.ReclaimHostNotAllowedError());
817
+ case _constants.ASSIGN_ROLES_ERROR_CODES.ReclaimHostEmptyWrongKeyErrorCode:
818
+ return _promise.default.reject(new _reclaimHostRoleErrors.ReclaimHostEmptyWrongKeyError());
819
+ case _constants.ASSIGN_ROLES_ERROR_CODES.ReclaimHostIsHostAlreadyErrorCode:
820
+ return _promise.default.reject(new _reclaimHostRoleErrors.ReclaimHostIsHostAlreadyError());
821
+ default:
822
+ return _promise.default.reject(error);
823
+ }
824
+ });
825
+ }
826
+
735
827
  /**
736
828
  * Raise or lower the hand of a member in a meeting
737
829
  * @param {String} memberId
@@ -830,8 +922,80 @@ var Members = /*#__PURE__*/function (_StatelessWebexPlugin) {
830
922
  }
831
923
  return _promise.default.reject(new Error('Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'));
832
924
  }
925
+
926
+ /** Finds a member that has any device with a csi matching provided value
927
+ *
928
+ * @param {number} csi
929
+ * @returns {Member}
930
+ */
931
+ }, {
932
+ key: "findMemberByCsi",
933
+ value: function findMemberByCsi(csi) {
934
+ return (0, _values.default)(this.membersCollection.getAll()).find(function (member) {
935
+ var _member$participant, _member$participant$d;
936
+ return (// @ts-ignore
937
+ (_member$participant = member.participant) === null || _member$participant === void 0 ? void 0 : (_member$participant$d = _member$participant.devices) === null || _member$participant$d === void 0 ? void 0 : _member$participant$d.find(function (device) {
938
+ var _device$csis;
939
+ return (_device$csis = device.csis) === null || _device$csis === void 0 ? void 0 : _device$csis.find(function (memberCsi) {
940
+ return memberCsi === csi;
941
+ });
942
+ })
943
+ );
944
+ });
945
+ }
946
+
947
+ /**
948
+ * Returns an array of a member's CSIs matching the mediaType and mediaContent
949
+ *
950
+ * @param {string} memberId
951
+ * @param {string} mediaType 'audio' or 'video'
952
+ * @param {string} mediaContent 'main' or 'slides'
953
+ * @returns {Member}
954
+ */
955
+ }, {
956
+ key: "getCsisForMember",
957
+ value: function getCsisForMember(memberId) {
958
+ var _this$membersCollecti, _this$membersCollecti2, _this$membersCollecti3;
959
+ var mediaType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'video';
960
+ var mediaContent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'main';
961
+ var csis = [];
962
+ (_this$membersCollecti = this.membersCollection.get(memberId)) === null || _this$membersCollecti === void 0 ? void 0 : (_this$membersCollecti2 = _this$membersCollecti.participant) === null || _this$membersCollecti2 === void 0 ? void 0 : (_this$membersCollecti3 = _this$membersCollecti2.devices) === null || _this$membersCollecti3 === void 0 ? void 0 : _this$membersCollecti3.forEach(function (device) {
963
+ if (device.mediaSessions) {
964
+ var _device$mediaSessions;
965
+ var deviceCsis = (_device$mediaSessions = device.mediaSessions) === null || _device$mediaSessions === void 0 ? void 0 : _device$mediaSessions.filter(function (mediaSession) {
966
+ return mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent;
967
+ }).map(function (mediaSession) {
968
+ return mediaSession.csi;
969
+ });
970
+ csis.push.apply(csis, (0, _toConsumableArray2.default)(deviceCsis));
971
+ }
972
+ });
973
+ return csis;
974
+ }
975
+
976
+ /**
977
+ * Edit display name of participants in a meeting
978
+ * @param {string} memberId - id of the participant who is receiving request
979
+ * @param {string} requestingParticipantId - id of the participant who is sending request (optional)
980
+ * @param {string} [alias] - alias name
981
+ * @returns {Promise}
982
+ * @public
983
+ * @memberof Members
984
+ */
985
+ }, {
986
+ key: "editDisplayName",
987
+ value: function editDisplayName(memberId, requestingParticipantId, alias) {
988
+ if (!this.locusUrl) {
989
+ return _promise.default.reject(new _parameter.default('The associated locus url for this meetings members object must be defined.'));
990
+ }
991
+ if (!memberId) {
992
+ return _promise.default.reject(new _parameter.default('The member id must be defined to edit display name of the member.'));
993
+ }
994
+ var locusUrl = this.locusUrl;
995
+ var options = _util.default.generateEditDisplayNameMemberOptions(memberId, requestingParticipantId, alias, locusUrl);
996
+ return this.membersRequest.editDisplayNameMember(options);
997
+ }
833
998
  }]);
834
999
  return Members;
835
1000
  }(_webexCore.StatelessWebexPlugin);
836
- exports.default = Members;
837
1001
  //# sourceMappingURL=index.js.map