@webex/plugin-meetings 3.0.0-beta.15 → 3.0.0-beta.151

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 (480) hide show
  1. package/README.md +45 -1
  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 +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +359 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +193 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +23 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +52 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +43 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1046 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +78 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +67 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +1 -21
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +5 -20
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +0 -7
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +0 -21
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +0 -21
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +0 -21
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +0 -21
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/parameter.js +0 -28
  37. package/dist/common/errors/parameter.js.map +1 -1
  38. package/dist/common/errors/password-error.js +0 -21
  39. package/dist/common/errors/password-error.js.map +1 -1
  40. package/dist/common/errors/permission.js +0 -21
  41. package/dist/common/errors/permission.js.map +1 -1
  42. package/dist/common/errors/reconnection-in-progress.js +0 -17
  43. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  44. package/dist/common/errors/reconnection.js +0 -21
  45. package/dist/common/errors/reconnection.js.map +1 -1
  46. package/dist/common/errors/stats.js +0 -21
  47. package/dist/common/errors/stats.js.map +1 -1
  48. package/dist/common/errors/webex-errors.js +9 -43
  49. package/dist/common/errors/webex-errors.js.map +1 -1
  50. package/dist/common/errors/webex-meetings-error.js +1 -24
  51. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  52. package/dist/common/events/events-scope.js +0 -22
  53. package/dist/common/events/events-scope.js.map +1 -1
  54. package/dist/common/events/events.js +0 -23
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.js +0 -12
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.js +0 -15
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.js +0 -4
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.js +1 -8
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.js +35 -61
  65. package/dist/common/logs/request.js.map +1 -1
  66. package/dist/common/queue.js +4 -14
  67. package/dist/common/queue.js.map +1 -1
  68. package/dist/config.js +7 -13
  69. package/dist/config.js.map +1 -1
  70. package/dist/constants.js +208 -64
  71. package/dist/constants.js.map +1 -1
  72. package/dist/controls-options-manager/constants.js +14 -0
  73. package/dist/controls-options-manager/constants.js.map +1 -0
  74. package/dist/controls-options-manager/enums.js +27 -0
  75. package/dist/controls-options-manager/enums.js.map +1 -0
  76. package/dist/controls-options-manager/index.js +297 -0
  77. package/dist/controls-options-manager/index.js.map +1 -0
  78. package/dist/controls-options-manager/types.js +7 -0
  79. package/dist/controls-options-manager/types.js.map +1 -0
  80. package/dist/controls-options-manager/util.js +300 -0
  81. package/dist/controls-options-manager/util.js.map +1 -0
  82. package/dist/index.js +78 -17
  83. package/dist/index.js.map +1 -1
  84. package/dist/locus-info/controlsUtils.js +100 -29
  85. package/dist/locus-info/controlsUtils.js.map +1 -1
  86. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  87. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  88. package/dist/locus-info/fullState.js +0 -15
  89. package/dist/locus-info/fullState.js.map +1 -1
  90. package/dist/locus-info/hostUtils.js +4 -12
  91. package/dist/locus-info/hostUtils.js.map +1 -1
  92. package/dist/locus-info/index.js +387 -208
  93. package/dist/locus-info/index.js.map +1 -1
  94. package/dist/locus-info/infoUtils.js +0 -38
  95. package/dist/locus-info/infoUtils.js.map +1 -1
  96. package/dist/locus-info/mediaSharesUtils.js +54 -38
  97. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  98. package/dist/locus-info/parser.js +90 -126
  99. package/dist/locus-info/parser.js.map +1 -1
  100. package/dist/locus-info/selfUtils.js +93 -92
  101. package/dist/locus-info/selfUtils.js.map +1 -1
  102. package/dist/media/index.js +70 -219
  103. package/dist/media/index.js.map +1 -1
  104. package/dist/media/properties.js +74 -198
  105. package/dist/media/properties.js.map +1 -1
  106. package/dist/media/util.js +1 -8
  107. package/dist/media/util.js.map +1 -1
  108. package/dist/mediaQualityMetrics/config.js +505 -495
  109. package/dist/mediaQualityMetrics/config.js.map +1 -1
  110. package/dist/meeting/in-meeting-actions.js +79 -14
  111. package/dist/meeting/in-meeting-actions.js.map +1 -1
  112. package/dist/meeting/index.js +2685 -3324
  113. package/dist/meeting/index.js.map +1 -1
  114. package/dist/meeting/locusMediaRequest.js +291 -0
  115. package/dist/meeting/locusMediaRequest.js.map +1 -0
  116. package/dist/meeting/muteState.js +243 -185
  117. package/dist/meeting/muteState.js.map +1 -1
  118. package/dist/meeting/request.js +296 -342
  119. package/dist/meeting/request.js.map +1 -1
  120. package/dist/meeting/request.type.js +0 -1
  121. package/dist/meeting/request.type.js.map +1 -1
  122. package/dist/meeting/state.js +16 -26
  123. package/dist/meeting/state.js.map +1 -1
  124. package/dist/meeting/util.js +446 -585
  125. package/dist/meeting/util.js.map +1 -1
  126. package/dist/meeting-info/collection.js +3 -25
  127. package/dist/meeting-info/collection.js.map +1 -1
  128. package/dist/meeting-info/index.js +8 -31
  129. package/dist/meeting-info/index.js.map +1 -1
  130. package/dist/meeting-info/meeting-info-v2.js +261 -242
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +1 -16
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +98 -183
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +156 -232
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.js +24 -20
  139. package/dist/meetings/collection.js.map +1 -1
  140. package/dist/meetings/index.js +526 -372
  141. package/dist/meetings/index.js.map +1 -1
  142. package/dist/meetings/meetings.types.js +7 -0
  143. package/dist/meetings/meetings.types.js.map +1 -0
  144. package/dist/meetings/request.js +21 -40
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +172 -141
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.js +58 -57
  149. package/dist/member/index.js.map +1 -1
  150. package/dist/member/types.js +15 -0
  151. package/dist/member/types.js.map +1 -0
  152. package/dist/member/util.js +101 -69
  153. package/dist/member/util.js.map +1 -1
  154. package/dist/members/collection.js +12 -12
  155. package/dist/members/collection.js.map +1 -1
  156. package/dist/members/index.js +123 -162
  157. package/dist/members/index.js.map +1 -1
  158. package/dist/members/request.js +120 -85
  159. package/dist/members/request.js.map +1 -1
  160. package/dist/members/types.js +15 -0
  161. package/dist/members/types.js.map +1 -0
  162. package/dist/members/util.js +314 -260
  163. package/dist/members/util.js.map +1 -1
  164. package/dist/metrics/config.js +50 -16
  165. package/dist/metrics/config.js.map +1 -1
  166. package/dist/metrics/constants.js +4 -7
  167. package/dist/metrics/constants.js.map +1 -1
  168. package/dist/metrics/index.js +75 -147
  169. package/dist/metrics/index.js.map +1 -1
  170. package/dist/multistream/mediaRequestManager.js +170 -50
  171. package/dist/multistream/mediaRequestManager.js.map +1 -1
  172. package/dist/multistream/receiveSlot.js +58 -65
  173. package/dist/multistream/receiveSlot.js.map +1 -1
  174. package/dist/multistream/receiveSlotManager.js +73 -94
  175. package/dist/multistream/receiveSlotManager.js.map +1 -1
  176. package/dist/multistream/remoteMedia.js +55 -74
  177. package/dist/multistream/remoteMedia.js.map +1 -1
  178. package/dist/multistream/remoteMediaGroup.js +66 -43
  179. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  180. package/dist/multistream/remoteMediaManager.js +502 -442
  181. package/dist/multistream/remoteMediaManager.js.map +1 -1
  182. package/dist/networkQualityMonitor/index.js +24 -51
  183. package/dist/networkQualityMonitor/index.js.map +1 -1
  184. package/dist/personal-meeting-room/index.js +3 -38
  185. package/dist/personal-meeting-room/index.js.map +1 -1
  186. package/dist/personal-meeting-room/request.js +2 -33
  187. package/dist/personal-meeting-room/request.js.map +1 -1
  188. package/dist/personal-meeting-room/util.js +0 -13
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/index.js +190 -199
  191. package/dist/reachability/index.js.map +1 -1
  192. package/dist/reachability/request.js +14 -23
  193. package/dist/reachability/request.js.map +1 -1
  194. package/dist/reactions/constants.js +13 -0
  195. package/dist/reactions/constants.js.map +1 -0
  196. package/dist/reactions/reactions.js +2 -4
  197. package/dist/reactions/reactions.js.map +1 -1
  198. package/dist/reactions/reactions.type.js +18 -24
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +356 -476
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js +17 -0
  203. package/dist/recording-controller/enums.js.map +1 -0
  204. package/dist/recording-controller/index.js +343 -0
  205. package/dist/recording-controller/index.js.map +1 -0
  206. package/dist/recording-controller/util.js +63 -0
  207. package/dist/recording-controller/util.js.map +1 -0
  208. package/dist/roap/index.js +32 -75
  209. package/dist/roap/index.js.map +1 -1
  210. package/dist/roap/request.js +129 -136
  211. package/dist/roap/request.js.map +1 -1
  212. package/dist/roap/turnDiscovery.js +143 -103
  213. package/dist/roap/turnDiscovery.js.map +1 -1
  214. package/dist/statsAnalyzer/global.js +1 -95
  215. package/dist/statsAnalyzer/global.js.map +1 -1
  216. package/dist/statsAnalyzer/index.js +369 -462
  217. package/dist/statsAnalyzer/index.js.map +1 -1
  218. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  219. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  220. package/dist/transcription/index.js +9 -44
  221. package/dist/transcription/index.js.map +1 -1
  222. package/dist/types/annotation/annotation.types.d.ts +43 -0
  223. package/dist/types/annotation/constants.d.ts +31 -0
  224. package/dist/types/annotation/index.d.ts +124 -0
  225. package/dist/types/breakouts/breakout.d.ts +8 -0
  226. package/dist/types/breakouts/collection.d.ts +5 -0
  227. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  228. package/dist/types/breakouts/events.d.ts +2 -0
  229. package/dist/types/breakouts/index.d.ts +5 -0
  230. package/dist/types/breakouts/request.d.ts +22 -0
  231. package/dist/types/breakouts/utils.d.ts +15 -0
  232. package/dist/types/common/browser-detection.d.ts +9 -0
  233. package/dist/types/common/collection.d.ts +48 -0
  234. package/dist/types/common/config.d.ts +2 -0
  235. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  236. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  237. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  238. package/dist/types/common/errors/media.d.ts +15 -0
  239. package/dist/types/common/errors/parameter.d.ts +15 -0
  240. package/dist/types/common/errors/password-error.d.ts +15 -0
  241. package/dist/types/common/errors/permission.d.ts +14 -0
  242. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  243. package/dist/types/common/errors/reconnection.d.ts +15 -0
  244. package/dist/types/common/errors/stats.d.ts +15 -0
  245. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  246. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  247. package/dist/types/common/events/events-scope.d.ts +17 -0
  248. package/dist/types/common/events/events.d.ts +12 -0
  249. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  250. package/dist/types/common/events/util.d.ts +2 -0
  251. package/dist/types/common/logs/logger-config.d.ts +2 -0
  252. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  253. package/dist/types/common/logs/request.d.ts +34 -0
  254. package/dist/types/common/queue.d.ts +32 -0
  255. package/dist/types/config.d.ts +72 -0
  256. package/dist/types/constants.d.ts +978 -0
  257. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  258. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  259. package/dist/types/controls-options-manager/index.d.ts +136 -0
  260. package/dist/types/controls-options-manager/types.d.ts +43 -0
  261. package/dist/types/controls-options-manager/util.d.ts +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  264. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  265. package/dist/types/locus-info/fullState.d.ts +2 -0
  266. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  267. package/dist/types/locus-info/index.d.ts +315 -0
  268. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  269. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  270. package/dist/types/locus-info/parser.d.ts +212 -0
  271. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  272. package/dist/types/media/index.d.ts +34 -0
  273. package/dist/types/media/properties.d.ts +86 -0
  274. package/dist/types/media/util.d.ts +2 -0
  275. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  276. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  277. package/dist/types/meeting/index.d.ts +1509 -0
  278. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  279. package/dist/types/meeting/muteState.d.ts +184 -0
  280. package/dist/types/meeting/request.d.ts +270 -0
  281. package/dist/types/meeting/request.type.d.ts +11 -0
  282. package/dist/types/meeting/state.d.ts +9 -0
  283. package/dist/types/meeting/util.d.ts +75 -0
  284. package/dist/types/meeting-info/collection.d.ts +20 -0
  285. package/dist/types/meeting-info/index.d.ts +57 -0
  286. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  287. package/dist/types/meeting-info/request.d.ts +22 -0
  288. package/dist/types/meeting-info/util.d.ts +2 -0
  289. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  290. package/dist/types/meetings/collection.d.ts +31 -0
  291. package/dist/types/meetings/index.d.ts +364 -0
  292. package/dist/types/meetings/meetings.types.d.ts +4 -0
  293. package/dist/types/meetings/request.d.ts +27 -0
  294. package/dist/types/meetings/util.d.ts +18 -0
  295. package/dist/types/member/index.d.ts +157 -0
  296. package/dist/types/member/types.d.ts +21 -0
  297. package/dist/types/member/util.d.ts +2 -0
  298. package/dist/types/members/collection.d.ts +29 -0
  299. package/dist/types/members/index.d.ts +353 -0
  300. package/dist/types/members/request.d.ts +114 -0
  301. package/dist/types/members/types.d.ts +24 -0
  302. package/dist/types/members/util.d.ts +210 -0
  303. package/dist/types/metrics/config.d.ts +195 -0
  304. package/dist/types/metrics/constants.d.ts +55 -0
  305. package/dist/types/metrics/index.d.ts +169 -0
  306. package/dist/types/multistream/mediaRequestManager.d.ts +104 -0
  307. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  308. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  309. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  310. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  311. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  312. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  313. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  314. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  315. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  316. package/dist/types/reachability/index.d.ts +152 -0
  317. package/dist/types/reachability/request.d.ts +37 -0
  318. package/dist/types/reactions/constants.d.ts +3 -0
  319. package/dist/types/reactions/reactions.d.ts +4 -0
  320. package/dist/types/reactions/reactions.type.d.ts +52 -0
  321. package/dist/types/reconnection-manager/index.d.ts +126 -0
  322. package/dist/types/recording-controller/enums.d.ts +7 -0
  323. package/dist/types/recording-controller/index.d.ts +193 -0
  324. package/dist/types/recording-controller/util.d.ts +13 -0
  325. package/dist/types/roap/index.d.ts +77 -0
  326. package/dist/types/roap/request.d.ts +36 -0
  327. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  328. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  329. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  330. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  331. package/dist/types/transcription/index.d.ts +64 -0
  332. package/package.json +28 -21
  333. package/src/annotation/annotation.types.ts +52 -0
  334. package/src/annotation/constants.ts +36 -0
  335. package/src/annotation/index.ts +343 -0
  336. package/src/breakouts/README.md +220 -0
  337. package/src/breakouts/breakout.ts +163 -0
  338. package/src/breakouts/collection.ts +19 -0
  339. package/src/breakouts/edit-lock-error.ts +25 -0
  340. package/src/breakouts/events.ts +37 -0
  341. package/src/breakouts/index.ts +921 -0
  342. package/src/breakouts/request.ts +55 -0
  343. package/src/breakouts/utils.ts +57 -0
  344. package/src/common/errors/webex-errors.ts +6 -2
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/config.ts +5 -7
  347. package/src/constants.ts +155 -20
  348. package/src/controls-options-manager/constants.ts +5 -0
  349. package/src/controls-options-manager/enums.ts +18 -0
  350. package/src/controls-options-manager/index.ts +278 -0
  351. package/src/controls-options-manager/types.ts +59 -0
  352. package/src/controls-options-manager/util.ts +286 -0
  353. package/src/index.ts +34 -0
  354. package/src/locus-info/controlsUtils.ts +108 -0
  355. package/src/locus-info/index.ts +310 -21
  356. package/src/locus-info/mediaSharesUtils.ts +48 -0
  357. package/src/locus-info/parser.ts +2 -1
  358. package/src/locus-info/selfUtils.ts +71 -1
  359. package/src/media/index.ts +70 -142
  360. package/src/media/properties.ts +41 -104
  361. package/src/mediaQualityMetrics/config.ts +379 -377
  362. package/src/meeting/in-meeting-actions.ts +156 -0
  363. package/src/meeting/index.ts +1730 -1768
  364. package/src/meeting/locusMediaRequest.ts +309 -0
  365. package/src/meeting/muteState.ts +228 -132
  366. package/src/meeting/request.ts +100 -91
  367. package/src/meeting/request.type.ts +2 -0
  368. package/src/meeting/util.ts +421 -421
  369. package/src/meeting-info/meeting-info-v2.ts +134 -13
  370. package/src/meeting-info/utilv2.ts +13 -3
  371. package/src/meetings/collection.ts +20 -0
  372. package/src/meetings/index.ts +375 -83
  373. package/src/meetings/meetings.types.ts +9 -0
  374. package/src/meetings/request.ts +3 -1
  375. package/src/meetings/util.ts +103 -4
  376. package/src/member/index.ts +40 -0
  377. package/src/member/types.ts +24 -0
  378. package/src/member/util.ts +81 -1
  379. package/src/members/collection.ts +8 -0
  380. package/src/members/index.ts +108 -6
  381. package/src/members/request.ts +98 -17
  382. package/src/members/types.ts +28 -0
  383. package/src/members/util.ts +319 -240
  384. package/src/metrics/config.ts +49 -10
  385. package/src/metrics/constants.ts +2 -4
  386. package/src/metrics/index.ts +43 -27
  387. package/src/multistream/mediaRequestManager.ts +210 -45
  388. package/src/multistream/receiveSlot.ts +68 -26
  389. package/src/multistream/receiveSlotManager.ts +61 -38
  390. package/src/multistream/remoteMedia.ts +29 -3
  391. package/src/multistream/remoteMediaGroup.ts +61 -2
  392. package/src/multistream/remoteMediaManager.ts +260 -66
  393. package/src/networkQualityMonitor/index.ts +6 -6
  394. package/src/reachability/index.ts +75 -25
  395. package/src/reachability/request.ts +10 -5
  396. package/src/reactions/constants.ts +4 -0
  397. package/src/reactions/reactions.ts +4 -4
  398. package/src/reactions/reactions.type.ts +28 -3
  399. package/src/reconnection-manager/index.ts +53 -32
  400. package/src/recording-controller/enums.ts +8 -0
  401. package/src/recording-controller/index.ts +315 -0
  402. package/src/recording-controller/util.ts +58 -0
  403. package/src/roap/index.ts +21 -30
  404. package/src/roap/request.ts +51 -52
  405. package/src/roap/turnDiscovery.ts +51 -27
  406. package/src/statsAnalyzer/global.ts +1 -94
  407. package/src/statsAnalyzer/index.ts +380 -390
  408. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  409. package/test/integration/spec/converged-space-meetings.js +233 -0
  410. package/test/integration/spec/journey.js +332 -255
  411. package/test/integration/spec/space-meeting.js +78 -5
  412. package/test/integration/spec/transcription.js +1 -1
  413. package/test/unit/spec/annotation/index.ts +436 -0
  414. package/test/unit/spec/breakouts/breakout.ts +203 -0
  415. package/test/unit/spec/breakouts/collection.ts +15 -0
  416. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  417. package/test/unit/spec/breakouts/events.ts +77 -0
  418. package/test/unit/spec/breakouts/index.ts +1790 -0
  419. package/test/unit/spec/breakouts/request.ts +104 -0
  420. package/test/unit/spec/breakouts/utils.js +72 -0
  421. package/test/unit/spec/controls-options-manager/index.js +287 -0
  422. package/test/unit/spec/controls-options-manager/util.js +518 -0
  423. package/test/unit/spec/fixture/locus.js +1 -0
  424. package/test/unit/spec/locus-info/controlsUtils.js +303 -30
  425. package/test/unit/spec/locus-info/index.js +615 -4
  426. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  427. package/test/unit/spec/locus-info/selfConstant.js +38 -0
  428. package/test/unit/spec/locus-info/selfUtils.js +200 -0
  429. package/test/unit/spec/media/index.ts +118 -22
  430. package/test/unit/spec/media/properties.ts +9 -9
  431. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
  432. package/test/unit/spec/meeting/index.js +2394 -1381
  433. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  434. package/test/unit/spec/meeting/muteState.js +370 -208
  435. package/test/unit/spec/meeting/request.js +354 -42
  436. package/test/unit/spec/meeting/utils.js +268 -156
  437. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  438. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  439. package/test/unit/spec/meetings/collection.js +14 -0
  440. package/test/unit/spec/meetings/index.js +842 -128
  441. package/test/unit/spec/meetings/utils.js +206 -2
  442. package/test/unit/spec/member/index.js +24 -0
  443. package/test/unit/spec/member/util.js +384 -32
  444. package/test/unit/spec/members/index.js +320 -1
  445. package/test/unit/spec/members/request.js +206 -27
  446. package/test/unit/spec/members/utils.js +184 -0
  447. package/test/unit/spec/metrics/index.js +98 -0
  448. package/test/unit/spec/multistream/mediaRequestManager.ts +676 -105
  449. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  450. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  451. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  452. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  453. package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
  454. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  455. package/test/unit/spec/reachability/index.ts +176 -25
  456. package/test/unit/spec/reachability/request.js +66 -0
  457. package/test/unit/spec/reconnection-manager/index.js +46 -13
  458. package/test/unit/spec/recording-controller/index.js +231 -0
  459. package/test/unit/spec/recording-controller/util.js +102 -0
  460. package/test/unit/spec/roap/index.ts +21 -51
  461. package/test/unit/spec/roap/request.ts +187 -0
  462. package/test/unit/spec/roap/turnDiscovery.ts +73 -34
  463. package/test/unit/spec/stats-analyzer/index.js +94 -43
  464. package/test/utils/constants.js +9 -0
  465. package/test/utils/integrationTestUtils.js +46 -0
  466. package/test/utils/testUtils.js +0 -45
  467. package/test/utils/webex-config.js +4 -0
  468. package/test/utils/webex-test-users.js +7 -3
  469. package/tsconfig.json +6 -0
  470. package/dist/media/internal-media-core-wrapper.js +0 -22
  471. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  472. package/dist/meeting/effectsState.js +0 -334
  473. package/dist/meeting/effectsState.js.map +0 -1
  474. package/dist/multistream/multistreamMedia.js +0 -117
  475. package/dist/multistream/multistreamMedia.js.map +0 -1
  476. package/src/index.js +0 -15
  477. package/src/media/internal-media-core-wrapper.ts +0 -9
  478. package/src/meeting/effectsState.ts +0 -211
  479. package/src/multistream/multistreamMedia.ts +0 -93
  480. package/test/unit/spec/meeting/effectsState.js +0 -281
@@ -1,29 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
-
15
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
-
19
12
  var _constants = require("../constants");
20
-
21
13
  var _util = _interopRequireDefault(require("./util"));
22
-
23
14
  /*!
24
15
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
25
16
  */
26
-
27
17
  /**
28
18
  * @class Member
29
19
  */
@@ -60,12 +50,14 @@ var Member = /*#__PURE__*/function () {
60
50
  (0, _defineProperty2.default)(this, "isSelf", void 0);
61
51
  (0, _defineProperty2.default)(this, "isUser", void 0);
62
52
  (0, _defineProperty2.default)(this, "isVideoMuted", void 0);
53
+ (0, _defineProperty2.default)(this, "roles", void 0);
63
54
  (0, _defineProperty2.default)(this, "name", void 0);
64
55
  (0, _defineProperty2.default)(this, "participant", void 0);
65
56
  (0, _defineProperty2.default)(this, "status", void 0);
57
+ (0, _defineProperty2.default)(this, "supportsBreakouts", void 0);
58
+ (0, _defineProperty2.default)(this, "supportLiveAnnotation", void 0);
66
59
  (0, _defineProperty2.default)(this, "type", void 0);
67
60
  (0, _defineProperty2.default)(this, "namespace", _constants.MEETINGS);
68
-
69
61
  /**
70
62
  * The server participant object
71
63
  * @instance
@@ -81,7 +73,6 @@ var Member = /*#__PURE__*/function () {
81
73
  * @public
82
74
  * @memberof Member
83
75
  */
84
-
85
76
  this.id = null;
86
77
  /**
87
78
  * The member name
@@ -90,7 +81,6 @@ var Member = /*#__PURE__*/function () {
90
81
  * @public
91
82
  * @memberof Member
92
83
  */
93
-
94
84
  this.name = null;
95
85
  /**
96
86
  * @instance
@@ -98,7 +88,6 @@ var Member = /*#__PURE__*/function () {
98
88
  * @public
99
89
  * @memberof Member
100
90
  */
101
-
102
91
  this.isAudioMuted = null;
103
92
  /**
104
93
  * @instance
@@ -106,7 +95,6 @@ var Member = /*#__PURE__*/function () {
106
95
  * @public
107
96
  * @memberof Member
108
97
  */
109
-
110
98
  this.isVideoMuted = null;
111
99
  /**
112
100
  * @instance
@@ -114,7 +102,6 @@ var Member = /*#__PURE__*/function () {
114
102
  * @public
115
103
  * @memberof Member
116
104
  */
117
-
118
105
  this.isHandRaised = null;
119
106
  /**
120
107
  * @instance
@@ -122,7 +109,20 @@ var Member = /*#__PURE__*/function () {
122
109
  * @public
123
110
  * @memberof Member
124
111
  */
125
-
112
+ this.supportsBreakouts = null;
113
+ /**
114
+ * @instance
115
+ * @type {Boolean}
116
+ * @public
117
+ * @memberof Member
118
+ */
119
+ this.supportLiveAnnotation = null;
120
+ /**
121
+ * @instance
122
+ * @type {Boolean}
123
+ * @public
124
+ * @memberof Member
125
+ */
126
126
  this.isSelf = null;
127
127
  /**
128
128
  * @instance
@@ -130,7 +130,6 @@ var Member = /*#__PURE__*/function () {
130
130
  * @public
131
131
  * @memberof Member
132
132
  */
133
-
134
133
  this.isHost = null;
135
134
  /**
136
135
  * @instance
@@ -138,7 +137,6 @@ var Member = /*#__PURE__*/function () {
138
137
  * @public
139
138
  * @memberof Member
140
139
  */
141
-
142
140
  this.isGuest = null;
143
141
  /**
144
142
  * @instance
@@ -146,7 +144,6 @@ var Member = /*#__PURE__*/function () {
146
144
  * @public
147
145
  * @memberof Member
148
146
  */
149
-
150
147
  this.isInLobby = null;
151
148
  /**
152
149
  * @instance
@@ -154,7 +151,6 @@ var Member = /*#__PURE__*/function () {
154
151
  * @public
155
152
  * @memberof Member
156
153
  */
157
-
158
154
  this.isInMeeting = null;
159
155
  /**
160
156
  * @instance
@@ -162,7 +158,6 @@ var Member = /*#__PURE__*/function () {
162
158
  * @public
163
159
  * @memberof Member
164
160
  */
165
-
166
161
  this.isNotAdmitted = null;
167
162
  /**
168
163
  * @instance
@@ -170,7 +165,6 @@ var Member = /*#__PURE__*/function () {
170
165
  * @public
171
166
  * @memberof Member
172
167
  */
173
-
174
168
  this.isContentSharing = null;
175
169
  /**
176
170
  * @instance
@@ -178,7 +172,6 @@ var Member = /*#__PURE__*/function () {
178
172
  * @public
179
173
  * @memberof Member
180
174
  */
181
-
182
175
  this.status = null;
183
176
  /**
184
177
  * @instance
@@ -186,7 +179,6 @@ var Member = /*#__PURE__*/function () {
186
179
  * @public
187
180
  * @memberof Member
188
181
  */
189
-
190
182
  this.isDevice = null;
191
183
  /**
192
184
  * @instance
@@ -194,7 +186,6 @@ var Member = /*#__PURE__*/function () {
194
186
  * @public
195
187
  * @memberof Member
196
188
  */
197
-
198
189
  this.isUser = null;
199
190
  /**
200
191
  * Is this member associated to another user by way of pairing (typical of devices)
@@ -203,7 +194,6 @@ var Member = /*#__PURE__*/function () {
203
194
  * @public
204
195
  * @memberof Member
205
196
  */
206
-
207
197
  this.associatedUser = null;
208
198
  /**
209
199
  * @instance
@@ -211,7 +201,6 @@ var Member = /*#__PURE__*/function () {
211
201
  * @public
212
202
  * @memberof Member
213
203
  */
214
-
215
204
  this.isRecording = null;
216
205
  /**
217
206
  * @instance
@@ -219,7 +208,6 @@ var Member = /*#__PURE__*/function () {
219
208
  * @public
220
209
  * @memberof Member
221
210
  */
222
-
223
211
  this.isMutable = null;
224
212
  /**
225
213
  * @instance
@@ -227,7 +215,6 @@ var Member = /*#__PURE__*/function () {
227
215
  * @public
228
216
  * @memberof Member
229
217
  */
230
-
231
218
  this.isRemovable = null;
232
219
  /**
233
220
  * @instance
@@ -235,7 +222,6 @@ var Member = /*#__PURE__*/function () {
235
222
  * @private
236
223
  * @memberof Member
237
224
  */
238
-
239
225
  this.type = null;
240
226
  /**
241
227
  * @instance
@@ -243,7 +229,6 @@ var Member = /*#__PURE__*/function () {
243
229
  * @public
244
230
  * @memberof Member
245
231
  */
246
-
247
232
  this.isModerator = null;
248
233
  /**
249
234
  * @instance
@@ -251,14 +236,22 @@ var Member = /*#__PURE__*/function () {
251
236
  * @public
252
237
  * @memberof Member
253
238
  */
239
+ this.isModeratorAssignmentProhibited = null;
254
240
 
255
- this.isModeratorAssignmentProhibited = null; // TODO: more participant types
241
+ /**
242
+ * @instance
243
+ * @type {IExternalRoles}
244
+ * @public
245
+ * @memberof Member
246
+ */
247
+ this.roles = null;
248
+ // TODO: more participant types
256
249
  // such as native client, web client, is a device, what type of phone, etc
257
-
258
250
  this.processParticipant(participant);
259
251
  this.processParticipantOptions(participant, options);
260
252
  this.processMember();
261
253
  }
254
+
262
255
  /**
263
256
  * set all the participant values extracted directly from locus participant
264
257
  * @param {Object} participant the locus participant object
@@ -266,29 +259,30 @@ var Member = /*#__PURE__*/function () {
266
259
  * @private
267
260
  * @memberof Member
268
261
  */
269
-
270
-
271
262
  (0, _createClass2.default)(Member, [{
272
263
  key: "processParticipant",
273
264
  value: function processParticipant(participant) {
274
265
  this.participant = participant;
275
-
276
266
  if (participant) {
277
267
  this.id = _util.default.extractId(participant);
278
268
  this.name = _util.default.extractName(participant);
279
269
  this.isAudioMuted = _util.default.isAudioMuted(participant);
280
270
  this.isVideoMuted = _util.default.isVideoMuted(participant);
281
271
  this.isHandRaised = _util.default.isHandRaised(participant);
272
+ this.supportsBreakouts = _util.default.isBreakoutsSupported(participant);
273
+ this.supportLiveAnnotation = _util.default.isLiveAnnotationSupported(participant);
282
274
  this.isGuest = _util.default.isGuest(participant);
283
275
  this.isUser = _util.default.isUser(participant);
284
276
  this.isDevice = _util.default.isDevice(participant);
285
277
  this.isModerator = _util.default.isModerator(participant);
286
278
  this.isModeratorAssignmentProhibited = _util.default.isModeratorAssignmentProhibited(participant);
287
- this.processStatus(participant); // must be done last
288
-
279
+ this.processStatus(participant);
280
+ this.processRoles(participant);
281
+ // must be done last
289
282
  this.isNotAdmitted = _util.default.isNotAdmitted(participant, this.isGuest, this.status);
290
283
  }
291
284
  }
285
+
292
286
  /**
293
287
  * Use the members options and participant values to set on the member
294
288
  * @param {Object} participant the locus participant object
@@ -297,7 +291,6 @@ var Member = /*#__PURE__*/function () {
297
291
  * @private
298
292
  * @memberof Member
299
293
  */
300
-
301
294
  }, {
302
295
  key: "processParticipantOptions",
303
296
  value: function processParticipantOptions(participant, options) {
@@ -309,21 +302,22 @@ var Member = /*#__PURE__*/function () {
309
302
  this.processIsRecording(participant, options.recordingId);
310
303
  }
311
304
  }
305
+
312
306
  /**
313
307
  * processes what already exists on the member to determine other info about the member
314
308
  * @returns {undefined}
315
309
  * @private
316
310
  * @memberof Member
317
311
  */
318
-
319
312
  }, {
320
313
  key: "processMember",
321
314
  value: function processMember() {
322
315
  // must occur after self, guest, meeting, and type properties are calculated
323
- this.isRemovable = _util.default.isRemovable(this.isSelf, this.isGuest, this.isInMeeting, this.type); // must occur after self, device, meeting, mute status, and type properties are calculated
324
-
316
+ this.isRemovable = _util.default.isRemovable(this.isSelf, this.isGuest, this.isInMeeting, this.type);
317
+ // must occur after self, device, meeting, mute status, and type properties are calculated
325
318
  this.isMutable = _util.default.isMutable(this.isSelf, this.isDevice, this.isInMeeting, this.isAudioMuted, this.type);
326
319
  }
320
+
327
321
  /**
328
322
  * set the status on member object
329
323
  * @param {Object} participant the locus participant object
@@ -331,33 +325,29 @@ var Member = /*#__PURE__*/function () {
331
325
  * @private
332
326
  * @memberof Member
333
327
  */
334
-
335
328
  }, {
336
329
  key: "processStatus",
337
330
  value: function processStatus(participant) {
338
331
  this.status = _util.default.extractStatus(participant);
339
-
340
332
  switch (this.status) {
341
333
  case _constants._IN_LOBBY_:
342
334
  this.isInLobby = true;
343
335
  this.isInMeeting = false;
344
336
  break;
345
-
346
337
  case _constants._IN_MEETING_:
347
338
  this.isInLobby = false;
348
339
  this.isInMeeting = true;
349
340
  break;
350
-
351
341
  case _constants._NOT_IN_MEETING_:
352
342
  this.isInLobby = false;
353
343
  this.isInMeeting = false;
354
344
  break;
355
-
356
345
  default:
357
346
  this.isInLobby = false;
358
347
  this.isInMeeting = false;
359
348
  }
360
349
  }
350
+
361
351
  /**
362
352
  * set the isContentSharing on member
363
353
  * @param {Boolean} flag
@@ -365,12 +355,12 @@ var Member = /*#__PURE__*/function () {
365
355
  * @public
366
356
  * @memberof Member
367
357
  */
368
-
369
358
  }, {
370
359
  key: "setIsContentSharing",
371
360
  value: function setIsContentSharing(flag) {
372
361
  this.isContentSharing = flag;
373
362
  }
363
+
374
364
  /**
375
365
  * set the isHost on member
376
366
  * @param {Boolean} flag
@@ -378,12 +368,12 @@ var Member = /*#__PURE__*/function () {
378
368
  * @public
379
369
  * @memberof Member
380
370
  */
381
-
382
371
  }, {
383
372
  key: "setIsHost",
384
373
  value: function setIsHost(flag) {
385
374
  this.isHost = flag;
386
375
  }
376
+
387
377
  /**
388
378
  * set the isSelf on member
389
379
  * @param {Boolean} flag
@@ -391,12 +381,12 @@ var Member = /*#__PURE__*/function () {
391
381
  * @public
392
382
  * @memberof Member
393
383
  */
394
-
395
384
  }, {
396
385
  key: "setIsSelf",
397
386
  value: function setIsSelf(flag) {
398
387
  this.isSelf = flag;
399
388
  }
389
+
400
390
  /**
401
391
  * determine if this member is content sharing
402
392
  * @param {Object} participant
@@ -405,7 +395,6 @@ var Member = /*#__PURE__*/function () {
405
395
  * @public
406
396
  * @memberof Member
407
397
  */
408
-
409
398
  }, {
410
399
  key: "processIsContentSharing",
411
400
  value: function processIsContentSharing(participant, sharingId) {
@@ -415,6 +404,7 @@ var Member = /*#__PURE__*/function () {
415
404
  this.isContentSharing = _util.default.isAssociatedSame(participant, sharingId);
416
405
  }
417
406
  }
407
+
418
408
  /**
419
409
  * Determine if this member is recording
420
410
  * @param {Object} participant
@@ -423,12 +413,12 @@ var Member = /*#__PURE__*/function () {
423
413
  * @public
424
414
  * @memberof Member
425
415
  */
426
-
427
416
  }, {
428
417
  key: "processIsRecording",
429
418
  value: function processIsRecording(participant, recordingId) {
430
419
  this.isRecording = _util.default.isSame(participant, recordingId);
431
420
  }
421
+
432
422
  /**
433
423
  * determine if this member is the self
434
424
  * @param {Object} participant
@@ -437,7 +427,6 @@ var Member = /*#__PURE__*/function () {
437
427
  * @private
438
428
  * @memberof Member
439
429
  */
440
-
441
430
  }, {
442
431
  key: "processIsSelf",
443
432
  value: function processIsSelf(participant, selfId) {
@@ -448,6 +437,7 @@ var Member = /*#__PURE__*/function () {
448
437
  this.associatedUser = selfId;
449
438
  }
450
439
  }
440
+
451
441
  /**
452
442
  * determine if this member is the host
453
443
  * @param {Object} participant
@@ -456,7 +446,6 @@ var Member = /*#__PURE__*/function () {
456
446
  * @private
457
447
  * @memberof Member
458
448
  */
459
-
460
449
  }, {
461
450
  key: "processIsHost",
462
451
  value: function processIsHost(participant, hostId) {
@@ -466,6 +455,20 @@ var Member = /*#__PURE__*/function () {
466
455
  this.isHost = _util.default.isAssociatedSame(participant, hostId);
467
456
  }
468
457
  }
458
+
459
+ /**
460
+ * process the roles that have been applied to this member
461
+ * @param {Object} participant
462
+ * @returns {undefined}
463
+ * @private
464
+ * @memberof Member
465
+ */
466
+ }, {
467
+ key: "processRoles",
468
+ value: function processRoles(participant) {
469
+ this.roles = _util.default.extractControlRoles(participant);
470
+ }
471
+
469
472
  /**
470
473
  * set the type for the member, could be MEETING or CALL
471
474
  * @param {String} type
@@ -473,7 +476,6 @@ var Member = /*#__PURE__*/function () {
473
476
  * @private
474
477
  * @memberof Member
475
478
  */
476
-
477
479
  }, {
478
480
  key: "processType",
479
481
  value: function processType(type) {
@@ -482,6 +484,5 @@ var Member = /*#__PURE__*/function () {
482
484
  }]);
483
485
  return Member;
484
486
  }();
485
-
486
487
  exports.default = Member;
487
488
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Member","participant","options","MEETINGS","id","name","isAudioMuted","isVideoMuted","isHandRaised","isSelf","isHost","isGuest","isInLobby","isInMeeting","isNotAdmitted","isContentSharing","status","isDevice","isUser","associatedUser","isRecording","isMutable","isRemovable","type","isModerator","isModeratorAssignmentProhibited","processParticipant","processParticipantOptions","processMember","MemberUtil","extractId","extractName","processStatus","processIsSelf","selfId","processIsHost","hostId","processIsContentSharing","contentSharingId","processType","processIsRecording","recordingId","extractStatus","_IN_LOBBY_","_IN_MEETING_","_NOT_IN_MEETING_","flag","sharingId","isSame","isAssociatedSame"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_} from '../constants';\n\nimport MemberUtil from './util';\n\n/**\n * @class Member\n */\nexport default class Member {\n associatedUser: any;\n id: any;\n isAudioMuted: any;\n isContentSharing: any;\n isDevice: any;\n isGuest: any;\n isHandRaised: any;\n isHost: any;\n isInLobby: any;\n isInMeeting: any;\n isModerator: any;\n isModeratorAssignmentProhibited: any;\n isMutable: any;\n isNotAdmitted: any;\n isRecording: any;\n isRemovable: any;\n isSelf: any;\n isUser: any;\n isVideoMuted: any;\n name: any;\n participant: any;\n status: any;\n type: any;\n namespace = MEETINGS;\n\n /**\n * @param {Object} participant - the locus participant\n * @param {Object} [options] - constructor params\n * @param {String} options.selfId\n * @param {String} options.hostId\n * @param {String} options.contentSharingId\n * @param {String} options.type\n * @returns {Member}\n * @memberof Member\n */\n constructor(\n participant: object,\n options:\n | {\n selfId: string;\n hostId: string;\n contentSharingId: string;\n type: string;\n }\n | any = {}\n ) {\n /**\n * The server participant object\n * @instance\n * @type {Object}\n * @private\n * @memberof Member\n */\n this.participant = null;\n /**\n * The member id\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.id = null;\n /**\n * The member name\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.name = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isAudioMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isVideoMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHandRaised = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isSelf = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHost = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isGuest = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInLobby = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInMeeting = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isNotAdmitted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isContentSharing = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.status = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isDevice = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isUser = null;\n /**\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.associatedUser = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRecording = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isMutable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRemovable = null;\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof Member\n */\n this.type = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModerator = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModeratorAssignmentProhibited = null;\n // TODO: more participant types\n // such as native client, web client, is a device, what type of phone, etc\n this.processParticipant(participant);\n this.processParticipantOptions(participant, options);\n this.processMember();\n }\n\n /**\n * set all the participant values extracted directly from locus participant\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipant(participant: object) {\n this.participant = participant;\n if (participant) {\n this.id = MemberUtil.extractId(participant);\n this.name = MemberUtil.extractName(participant);\n this.isAudioMuted = MemberUtil.isAudioMuted(participant);\n this.isVideoMuted = MemberUtil.isVideoMuted(participant);\n this.isHandRaised = MemberUtil.isHandRaised(participant);\n this.isGuest = MemberUtil.isGuest(participant);\n this.isUser = MemberUtil.isUser(participant);\n this.isDevice = MemberUtil.isDevice(participant);\n this.isModerator = MemberUtil.isModerator(participant);\n this.isModeratorAssignmentProhibited =\n MemberUtil.isModeratorAssignmentProhibited(participant);\n this.processStatus(participant);\n // must be done last\n this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);\n }\n }\n\n /**\n * Use the members options and participant values to set on the member\n * @param {Object} participant the locus participant object\n * @param {Object} options the passed in options, what was set on members\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipantOptions(participant: object, options: any) {\n if (participant && options) {\n this.processIsSelf(participant, options.selfId);\n this.processIsHost(participant, options.hostId);\n this.processIsContentSharing(participant, options.contentSharingId);\n this.processType(options.type);\n this.processIsRecording(participant, options.recordingId);\n }\n }\n\n /**\n * processes what already exists on the member to determine other info about the member\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processMember() {\n // must occur after self, guest, meeting, and type properties are calculated\n this.isRemovable = MemberUtil.isRemovable(\n this.isSelf,\n this.isGuest,\n this.isInMeeting,\n this.type\n );\n // must occur after self, device, meeting, mute status, and type properties are calculated\n this.isMutable = MemberUtil.isMutable(\n this.isSelf,\n this.isDevice,\n this.isInMeeting,\n this.isAudioMuted,\n this.type\n );\n }\n\n /**\n * set the status on member object\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processStatus(participant: object) {\n this.status = MemberUtil.extractStatus(participant);\n switch (this.status) {\n case _IN_LOBBY_:\n this.isInLobby = true;\n this.isInMeeting = false;\n break;\n case _IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = true;\n break;\n case _NOT_IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = false;\n break;\n default:\n this.isInLobby = false;\n this.isInMeeting = false;\n }\n }\n\n /**\n * set the isContentSharing on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsContentSharing(flag: boolean) {\n this.isContentSharing = flag;\n }\n\n /**\n * set the isHost on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsHost(flag: boolean) {\n this.isHost = flag;\n }\n\n /**\n * set the isSelf on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsSelf(flag: boolean) {\n this.isSelf = flag;\n }\n\n /**\n * determine if this member is content sharing\n * @param {Object} participant\n * @param {String} sharingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsContentSharing(participant: object, sharingId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isContentSharing = MemberUtil.isSame(participant, sharingId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isContentSharing = MemberUtil.isAssociatedSame(participant, sharingId);\n }\n }\n\n /**\n * Determine if this member is recording\n * @param {Object} participant\n * @param {String} recordingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsRecording(participant: object, recordingId: string) {\n this.isRecording = MemberUtil.isSame(participant, recordingId);\n }\n\n /**\n * determine if this member is the self\n * @param {Object} participant\n * @param {String} selfId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsSelf(participant: object, selfId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isSelf = MemberUtil.isSame(participant, selfId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isSelf = MemberUtil.isAssociatedSame(participant, selfId);\n this.associatedUser = selfId;\n }\n }\n\n /**\n * determine if this member is the host\n * @param {Object} participant\n * @param {String} hostId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsHost(participant: object, hostId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isHost = MemberUtil.isSame(participant, hostId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isHost = MemberUtil.isAssociatedSame(participant, hostId);\n }\n }\n\n /**\n * set the type for the member, could be MEETING or CALL\n * @param {String} type\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processType(type: string) {\n this.type = type;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAGA;;AAEA;;AALA;AACA;AACA;;AAKA;AACA;AACA;IACqBA,M;EA0BnB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,gBACEC,WADF,EAUE;IAAA,IARAC,OAQA,uEADU,EACV;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,iDAtBUC,mBAsBV;;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,KAAKF,WAAL,GAAmB,IAAnB;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;;IACI,KAAKG,EAAL,GAAU,IAAV;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;;IACI,KAAKC,IAAL,GAAY,IAAZ;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,YAAL,GAAoB,IAApB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,YAAL,GAAoB,IAApB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,YAAL,GAAoB,IAApB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,MAAL,GAAc,IAAd;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,MAAL,GAAc,IAAd;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,OAAL,GAAe,IAAf;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,SAAL,GAAiB,IAAjB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,WAAL,GAAmB,IAAnB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,aAAL,GAAqB,IAArB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,gBAAL,GAAwB,IAAxB;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,MAAL,GAAc,IAAd;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKC,QAAL,GAAgB,IAAhB;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"}
1
+ {"version":3,"names":["Member","participant","options","MEETINGS","id","name","isAudioMuted","isVideoMuted","isHandRaised","supportsBreakouts","supportLiveAnnotation","isSelf","isHost","isGuest","isInLobby","isInMeeting","isNotAdmitted","isContentSharing","status","isDevice","isUser","associatedUser","isRecording","isMutable","isRemovable","type","isModerator","isModeratorAssignmentProhibited","roles","processParticipant","processParticipantOptions","processMember","MemberUtil","extractId","extractName","isBreakoutsSupported","isLiveAnnotationSupported","processStatus","processRoles","processIsSelf","selfId","processIsHost","hostId","processIsContentSharing","contentSharingId","processType","processIsRecording","recordingId","extractStatus","_IN_LOBBY_","_IN_MEETING_","_NOT_IN_MEETING_","flag","sharingId","isSame","isAssociatedSame","extractControlRoles"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {MEETINGS, _IN_LOBBY_, _NOT_IN_MEETING_, _IN_MEETING_} from '../constants';\nimport {IExternalRoles, ParticipantWithRoles} from './types';\n\nimport MemberUtil from './util';\n\n/**\n * @class Member\n */\nexport default class Member {\n associatedUser: any;\n id: any;\n isAudioMuted: any;\n isContentSharing: any;\n isDevice: any;\n isGuest: any;\n isHandRaised: any;\n isHost: any;\n isInLobby: any;\n isInMeeting: any;\n isModerator: any;\n isModeratorAssignmentProhibited: any;\n isMutable: any;\n isNotAdmitted: any;\n isRecording: any;\n isRemovable: any;\n isSelf: any;\n isUser: any;\n isVideoMuted: any;\n roles: IExternalRoles;\n name: any;\n participant: any;\n status: any;\n supportsBreakouts: boolean;\n supportLiveAnnotation: boolean;\n type: any;\n namespace = MEETINGS;\n\n /**\n * @param {Object} participant - the locus participant\n * @param {Object} [options] - constructor params\n * @param {String} options.selfId\n * @param {String} options.hostId\n * @param {String} options.contentSharingId\n * @param {String} options.type\n * @returns {Member}\n * @memberof Member\n */\n constructor(\n participant: object,\n options:\n | {\n selfId: string;\n hostId: string;\n contentSharingId: string;\n type: string;\n }\n | any = {}\n ) {\n /**\n * The server participant object\n * @instance\n * @type {Object}\n * @private\n * @memberof Member\n */\n this.participant = null;\n /**\n * The member id\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.id = null;\n /**\n * The member name\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.name = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isAudioMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isVideoMuted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHandRaised = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportsBreakouts = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.supportLiveAnnotation = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isSelf = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isHost = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isGuest = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInLobby = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isInMeeting = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isNotAdmitted = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isContentSharing = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.status = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isDevice = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isUser = null;\n /**\n * Is this member associated to another user by way of pairing (typical of devices)\n * @instance\n * @type {String}\n * @public\n * @memberof Member\n */\n this.associatedUser = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRecording = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isMutable = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isRemovable = null;\n /**\n * @instance\n * @type {String}\n * @private\n * @memberof Member\n */\n this.type = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModerator = null;\n /**\n * @instance\n * @type {Boolean}\n * @public\n * @memberof Member\n */\n this.isModeratorAssignmentProhibited = null;\n\n /**\n * @instance\n * @type {IExternalRoles}\n * @public\n * @memberof Member\n */\n this.roles = null;\n // TODO: more participant types\n // such as native client, web client, is a device, what type of phone, etc\n this.processParticipant(participant);\n this.processParticipantOptions(participant, options);\n this.processMember();\n }\n\n /**\n * set all the participant values extracted directly from locus participant\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipant(participant: object) {\n this.participant = participant;\n if (participant) {\n this.id = MemberUtil.extractId(participant);\n this.name = MemberUtil.extractName(participant);\n this.isAudioMuted = MemberUtil.isAudioMuted(participant);\n this.isVideoMuted = MemberUtil.isVideoMuted(participant);\n this.isHandRaised = MemberUtil.isHandRaised(participant);\n this.supportsBreakouts = MemberUtil.isBreakoutsSupported(participant);\n this.supportLiveAnnotation = MemberUtil.isLiveAnnotationSupported(participant);\n this.isGuest = MemberUtil.isGuest(participant);\n this.isUser = MemberUtil.isUser(participant);\n this.isDevice = MemberUtil.isDevice(participant);\n this.isModerator = MemberUtil.isModerator(participant);\n this.isModeratorAssignmentProhibited =\n MemberUtil.isModeratorAssignmentProhibited(participant);\n this.processStatus(participant);\n this.processRoles(participant as ParticipantWithRoles);\n // must be done last\n this.isNotAdmitted = MemberUtil.isNotAdmitted(participant, this.isGuest, this.status);\n }\n }\n\n /**\n * Use the members options and participant values to set on the member\n * @param {Object} participant the locus participant object\n * @param {Object} options the passed in options, what was set on members\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processParticipantOptions(participant: object, options: any) {\n if (participant && options) {\n this.processIsSelf(participant, options.selfId);\n this.processIsHost(participant, options.hostId);\n this.processIsContentSharing(participant, options.contentSharingId);\n this.processType(options.type);\n this.processIsRecording(participant, options.recordingId);\n }\n }\n\n /**\n * processes what already exists on the member to determine other info about the member\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processMember() {\n // must occur after self, guest, meeting, and type properties are calculated\n this.isRemovable = MemberUtil.isRemovable(\n this.isSelf,\n this.isGuest,\n this.isInMeeting,\n this.type\n );\n // must occur after self, device, meeting, mute status, and type properties are calculated\n this.isMutable = MemberUtil.isMutable(\n this.isSelf,\n this.isDevice,\n this.isInMeeting,\n this.isAudioMuted,\n this.type\n );\n }\n\n /**\n * set the status on member object\n * @param {Object} participant the locus participant object\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processStatus(participant: object) {\n this.status = MemberUtil.extractStatus(participant);\n switch (this.status) {\n case _IN_LOBBY_:\n this.isInLobby = true;\n this.isInMeeting = false;\n break;\n case _IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = true;\n break;\n case _NOT_IN_MEETING_:\n this.isInLobby = false;\n this.isInMeeting = false;\n break;\n default:\n this.isInLobby = false;\n this.isInMeeting = false;\n }\n }\n\n /**\n * set the isContentSharing on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsContentSharing(flag: boolean) {\n this.isContentSharing = flag;\n }\n\n /**\n * set the isHost on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsHost(flag: boolean) {\n this.isHost = flag;\n }\n\n /**\n * set the isSelf on member\n * @param {Boolean} flag\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public setIsSelf(flag: boolean) {\n this.isSelf = flag;\n }\n\n /**\n * determine if this member is content sharing\n * @param {Object} participant\n * @param {String} sharingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsContentSharing(participant: object, sharingId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isContentSharing = MemberUtil.isSame(participant, sharingId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isContentSharing = MemberUtil.isAssociatedSame(participant, sharingId);\n }\n }\n\n /**\n * Determine if this member is recording\n * @param {Object} participant\n * @param {String} recordingId\n * @returns {undefined}\n * @public\n * @memberof Member\n */\n public processIsRecording(participant: object, recordingId: string) {\n this.isRecording = MemberUtil.isSame(participant, recordingId);\n }\n\n /**\n * determine if this member is the self\n * @param {Object} participant\n * @param {String} selfId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsSelf(participant: object, selfId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isSelf = MemberUtil.isSame(participant, selfId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isSelf = MemberUtil.isAssociatedSame(participant, selfId);\n this.associatedUser = selfId;\n }\n }\n\n /**\n * determine if this member is the host\n * @param {Object} participant\n * @param {String} hostId\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processIsHost(participant: object, hostId: string) {\n if (MemberUtil.isUser(participant)) {\n this.isHost = MemberUtil.isSame(participant, hostId);\n } else if (MemberUtil.isDevice(participant)) {\n this.isHost = MemberUtil.isAssociatedSame(participant, hostId);\n }\n }\n\n /**\n * process the roles that have been applied to this member\n * @param {Object} participant\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processRoles(participant: ParticipantWithRoles) {\n this.roles = MemberUtil.extractControlRoles(participant);\n }\n\n /**\n * set the type for the member, could be MEETING or CALL\n * @param {String} type\n * @returns {undefined}\n * @private\n * @memberof Member\n */\n private processType(type: string) {\n this.type = type;\n }\n}\n"],"mappings":";;;;;;;;;;;AAGA;AAGA;AANA;AACA;AACA;AAMA;AACA;AACA;AAFA,IAGqBA,MAAM;EA6BzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,gBACEC,WAAmB,EASnB;IAAA,IARAC,OAOO,uEAAG,CAAC,CAAC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,iDArBFC,mBAAQ;IAuBlB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACF,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACG,EAAE,GAAG,IAAI;IACd;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,iBAAiB,GAAG,IAAI;IAC7B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,cAAc,GAAG,IAAI;IAC1B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,+BAA+B,GAAG,IAAI;;IAE3C;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB;IACA;IACA,IAAI,CAACC,kBAAkB,CAAC5B,WAAW,CAAC;IACpC,IAAI,CAAC6B,yBAAyB,CAAC7B,WAAW,EAAEC,OAAO,CAAC;IACpD,IAAI,CAAC6B,aAAa,EAAE;EACtB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,4BAA2B9B,WAAmB,EAAE;MAC9C,IAAI,CAACA,WAAW,GAAGA,WAAW;MAC9B,IAAIA,WAAW,EAAE;QACf,IAAI,CAACG,EAAE,GAAG4B,aAAU,CAACC,SAAS,CAAChC,WAAW,CAAC;QAC3C,IAAI,CAACI,IAAI,GAAG2B,aAAU,CAACE,WAAW,CAACjC,WAAW,CAAC;QAC/C,IAAI,CAACK,YAAY,GAAG0B,aAAU,CAAC1B,YAAY,CAACL,WAAW,CAAC;QACxD,IAAI,CAACM,YAAY,GAAGyB,aAAU,CAACzB,YAAY,CAACN,WAAW,CAAC;QACxD,IAAI,CAACO,YAAY,GAAGwB,aAAU,CAACxB,YAAY,CAACP,WAAW,CAAC;QACxD,IAAI,CAACQ,iBAAiB,GAAGuB,aAAU,CAACG,oBAAoB,CAAClC,WAAW,CAAC;QACrE,IAAI,CAACS,qBAAqB,GAAGsB,aAAU,CAACI,yBAAyB,CAACnC,WAAW,CAAC;QAC9E,IAAI,CAACY,OAAO,GAAGmB,aAAU,CAACnB,OAAO,CAACZ,WAAW,CAAC;QAC9C,IAAI,CAACmB,MAAM,GAAGY,aAAU,CAACZ,MAAM,CAACnB,WAAW,CAAC;QAC5C,IAAI,CAACkB,QAAQ,GAAGa,aAAU,CAACb,QAAQ,CAAClB,WAAW,CAAC;QAChD,IAAI,CAACyB,WAAW,GAAGM,aAAU,CAACN,WAAW,CAACzB,WAAW,CAAC;QACtD,IAAI,CAAC0B,+BAA+B,GAClCK,aAAU,CAACL,+BAA+B,CAAC1B,WAAW,CAAC;QACzD,IAAI,CAACoC,aAAa,CAACpC,WAAW,CAAC;QAC/B,IAAI,CAACqC,YAAY,CAACrC,WAAW,CAAyB;QACtD;QACA,IAAI,CAACe,aAAa,GAAGgB,aAAU,CAAChB,aAAa,CAACf,WAAW,EAAE,IAAI,CAACY,OAAO,EAAE,IAAI,CAACK,MAAM,CAAC;MACvF;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,mCAAkCjB,WAAmB,EAAEC,OAAY,EAAE;MACnE,IAAID,WAAW,IAAIC,OAAO,EAAE;QAC1B,IAAI,CAACqC,aAAa,CAACtC,WAAW,EAAEC,OAAO,CAACsC,MAAM,CAAC;QAC/C,IAAI,CAACC,aAAa,CAACxC,WAAW,EAAEC,OAAO,CAACwC,MAAM,CAAC;QAC/C,IAAI,CAACC,uBAAuB,CAAC1C,WAAW,EAAEC,OAAO,CAAC0C,gBAAgB,CAAC;QACnE,IAAI,CAACC,WAAW,CAAC3C,OAAO,CAACuB,IAAI,CAAC;QAC9B,IAAI,CAACqB,kBAAkB,CAAC7C,WAAW,EAAEC,OAAO,CAAC6C,WAAW,CAAC;MAC3D;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,yBAAwB;MACtB;MACA,IAAI,CAACvB,WAAW,GAAGQ,aAAU,CAACR,WAAW,CACvC,IAAI,CAACb,MAAM,EACX,IAAI,CAACE,OAAO,EACZ,IAAI,CAACE,WAAW,EAChB,IAAI,CAACU,IAAI,CACV;MACD;MACA,IAAI,CAACF,SAAS,GAAGS,aAAU,CAACT,SAAS,CACnC,IAAI,CAACZ,MAAM,EACX,IAAI,CAACQ,QAAQ,EACb,IAAI,CAACJ,WAAW,EAChB,IAAI,CAACT,YAAY,EACjB,IAAI,CAACmB,IAAI,CACV;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,uBAAsBxB,WAAmB,EAAE;MACzC,IAAI,CAACiB,MAAM,GAAGc,aAAU,CAACgB,aAAa,CAAC/C,WAAW,CAAC;MACnD,QAAQ,IAAI,CAACiB,MAAM;QACjB,KAAK+B,qBAAU;UACb,IAAI,CAACnC,SAAS,GAAG,IAAI;UACrB,IAAI,CAACC,WAAW,GAAG,KAAK;UACxB;QACF,KAAKmC,uBAAY;UACf,IAAI,CAACpC,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,WAAW,GAAG,IAAI;UACvB;QACF,KAAKoC,2BAAgB;UACnB,IAAI,CAACrC,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,WAAW,GAAG,KAAK;UACxB;QACF;UACE,IAAI,CAACD,SAAS,GAAG,KAAK;UACtB,IAAI,CAACC,WAAW,GAAG,KAAK;MAAC;IAE/B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,6BAA2BqC,IAAa,EAAE;MACxC,IAAI,CAACnC,gBAAgB,GAAGmC,IAAI;IAC9B;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,mBAAiBA,IAAa,EAAE;MAC9B,IAAI,CAACxC,MAAM,GAAGwC,IAAI;IACpB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,mBAAiBA,IAAa,EAAE;MAC9B,IAAI,CAACzC,MAAM,GAAGyC,IAAI;IACpB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,iCAA+BnD,WAAmB,EAAEoD,SAAiB,EAAE;MACrE,IAAIrB,aAAU,CAACZ,MAAM,CAACnB,WAAW,CAAC,EAAE;QAClC,IAAI,CAACgB,gBAAgB,GAAGe,aAAU,CAACsB,MAAM,CAACrD,WAAW,EAAEoD,SAAS,CAAC;MACnE,CAAC,MAAM,IAAIrB,aAAU,CAACb,QAAQ,CAAClB,WAAW,CAAC,EAAE;QAC3C,IAAI,CAACgB,gBAAgB,GAAGe,aAAU,CAACuB,gBAAgB,CAACtD,WAAW,EAAEoD,SAAS,CAAC;MAC7E;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,4BAA0BpD,WAAmB,EAAE8C,WAAmB,EAAE;MAClE,IAAI,CAACzB,WAAW,GAAGU,aAAU,CAACsB,MAAM,CAACrD,WAAW,EAAE8C,WAAW,CAAC;IAChE;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,uBAAsB9C,WAAmB,EAAEuC,MAAc,EAAE;MACzD,IAAIR,aAAU,CAACZ,MAAM,CAACnB,WAAW,CAAC,EAAE;QAClC,IAAI,CAACU,MAAM,GAAGqB,aAAU,CAACsB,MAAM,CAACrD,WAAW,EAAEuC,MAAM,CAAC;MACtD,CAAC,MAAM,IAAIR,aAAU,CAACb,QAAQ,CAAClB,WAAW,CAAC,EAAE;QAC3C,IAAI,CAACU,MAAM,GAAGqB,aAAU,CAACuB,gBAAgB,CAACtD,WAAW,EAAEuC,MAAM,CAAC;QAC9D,IAAI,CAACnB,cAAc,GAAGmB,MAAM;MAC9B;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,uBAAsBvC,WAAmB,EAAEyC,MAAc,EAAE;MACzD,IAAIV,aAAU,CAACZ,MAAM,CAACnB,WAAW,CAAC,EAAE;QAClC,IAAI,CAACW,MAAM,GAAGoB,aAAU,CAACsB,MAAM,CAACrD,WAAW,EAAEyC,MAAM,CAAC;MACtD,CAAC,MAAM,IAAIV,aAAU,CAACb,QAAQ,CAAClB,WAAW,CAAC,EAAE;QAC3C,IAAI,CAACW,MAAM,GAAGoB,aAAU,CAACuB,gBAAgB,CAACtD,WAAW,EAAEyC,MAAM,CAAC;MAChE;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,sBAAqBzC,WAAiC,EAAE;MACtD,IAAI,CAAC2B,KAAK,GAAGI,aAAU,CAACwB,mBAAmB,CAACvD,WAAW,CAAC;IAC1D;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,qBAAoBwB,IAAY,EAAE;MAChC,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB;EAAC;EAAA;AAAA;AAAA"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ServerRoles = void 0;
8
+ var ServerRoles;
9
+ exports.ServerRoles = ServerRoles;
10
+ (function (ServerRoles) {
11
+ ServerRoles["Cohost"] = "COHOST";
12
+ ServerRoles["Moderator"] = "MODERATOR";
13
+ ServerRoles["Presenter"] = "PRESENTER";
14
+ })(ServerRoles || (exports.ServerRoles = ServerRoles = {}));
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ServerRoles"],"sources":["types.ts"],"sourcesContent":["export interface IExternalRoles {\n cohost: boolean;\n moderator: boolean;\n presenter: boolean;\n}\n\nexport enum ServerRoles {\n Cohost = 'COHOST',\n Moderator = 'MODERATOR',\n Presenter = 'PRESENTER',\n}\n\nexport type ServerRoleShape = {\n type: ServerRoles;\n hasRole: boolean;\n};\n\nexport type ParticipantWithRoles = {\n controls: {\n role: {\n roles: Array<ServerRoleShape>;\n };\n };\n};\n"],"mappings":";;;;;;;IAMYA,WAAW;AAAA;AAAA,WAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,2BAAXA,WAAW"}