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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +46 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +9 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +315 -68
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +114 -17
  89. package/dist/index.js.map +1 -1
  90. package/dist/interpretation/collection.js +23 -0
  91. package/dist/interpretation/collection.js.map +1 -0
  92. package/dist/interpretation/index.js +366 -0
  93. package/dist/interpretation/index.js.map +1 -0
  94. package/dist/interpretation/siLanguage.js +25 -0
  95. package/dist/interpretation/siLanguage.js.map +1 -0
  96. package/dist/locus-info/controlsUtils.js +101 -29
  97. package/dist/locus-info/controlsUtils.js.map +1 -1
  98. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  99. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  100. package/dist/locus-info/fullState.js +0 -15
  101. package/dist/locus-info/fullState.js.map +1 -1
  102. package/dist/locus-info/hostUtils.js +4 -12
  103. package/dist/locus-info/hostUtils.js.map +1 -1
  104. package/dist/locus-info/index.js +561 -246
  105. package/dist/locus-info/index.js.map +1 -1
  106. package/dist/locus-info/infoUtils.js +10 -38
  107. package/dist/locus-info/infoUtils.js.map +1 -1
  108. package/dist/locus-info/mediaSharesUtils.js +68 -38
  109. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  110. package/dist/locus-info/parser.js +314 -163
  111. package/dist/locus-info/parser.js.map +1 -1
  112. package/dist/locus-info/selfUtils.js +110 -92
  113. package/dist/locus-info/selfUtils.js.map +1 -1
  114. package/dist/media/index.js +103 -231
  115. package/dist/media/index.js.map +1 -1
  116. package/dist/media/properties.js +137 -222
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.js +2 -9
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.js +505 -495
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/in-meeting-actions.js +93 -14
  123. package/dist/meeting/in-meeting-actions.js.map +1 -1
  124. package/dist/meeting/index.js +4624 -3740
  125. package/dist/meeting/index.js.map +1 -1
  126. package/dist/meeting/locusMediaRequest.js +292 -0
  127. package/dist/meeting/locusMediaRequest.js.map +1 -0
  128. package/dist/meeting/muteState.js +249 -184
  129. package/dist/meeting/muteState.js.map +1 -1
  130. package/dist/meeting/request.js +400 -346
  131. package/dist/meeting/request.js.map +1 -1
  132. package/dist/meeting/request.type.js +7 -0
  133. package/dist/meeting/request.type.js.map +1 -0
  134. package/dist/meeting/state.js +21 -31
  135. package/dist/meeting/state.js.map +1 -1
  136. package/dist/meeting/util.js +598 -586
  137. package/dist/meeting/util.js.map +1 -1
  138. package/dist/meeting-info/collection.js +6 -25
  139. package/dist/meeting-info/collection.js.map +1 -1
  140. package/dist/meeting-info/index.js +87 -39
  141. package/dist/meeting-info/index.js.map +1 -1
  142. package/dist/meeting-info/meeting-info-v2.js +349 -283
  143. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  144. package/dist/meeting-info/request.js +3 -15
  145. package/dist/meeting-info/request.js.map +1 -1
  146. package/dist/meeting-info/util.js +98 -183
  147. package/dist/meeting-info/util.js.map +1 -1
  148. package/dist/meeting-info/utilv2.js +143 -234
  149. package/dist/meeting-info/utilv2.js.map +1 -1
  150. package/dist/meetings/collection.js +26 -19
  151. package/dist/meetings/collection.js.map +1 -1
  152. package/dist/meetings/index.js +813 -596
  153. package/dist/meetings/index.js.map +1 -1
  154. package/dist/meetings/meetings.types.js +7 -0
  155. package/dist/meetings/meetings.types.js.map +1 -0
  156. package/dist/meetings/request.js +26 -41
  157. package/dist/meetings/request.js.map +1 -1
  158. package/dist/meetings/util.js +183 -156
  159. package/dist/meetings/util.js.map +1 -1
  160. package/dist/member/index.js +135 -85
  161. package/dist/member/index.js.map +1 -1
  162. package/dist/member/types.js +25 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +158 -88
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +13 -12
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +194 -204
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +113 -68
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +15 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +324 -259
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +14 -7
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +11 -558
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +263 -50
  181. package/dist/multistream/mediaRequestManager.js.map +1 -1
  182. package/dist/multistream/receiveSlot.js +58 -65
  183. package/dist/multistream/receiveSlot.js.map +1 -1
  184. package/dist/multistream/receiveSlotManager.js +76 -95
  185. package/dist/multistream/receiveSlotManager.js.map +1 -1
  186. package/dist/multistream/remoteMedia.js +62 -76
  187. package/dist/multistream/remoteMedia.js.map +1 -1
  188. package/dist/multistream/remoteMediaGroup.js +66 -43
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  190. package/dist/multistream/remoteMediaManager.js +536 -439
  191. package/dist/multistream/remoteMediaManager.js.map +1 -1
  192. package/dist/multistream/sendSlotManager.js +233 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +40 -59
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +21 -45
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +1 -31
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +0 -13
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +322 -200
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +20 -26
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +13 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +109 -0
  209. package/dist/reactions/reactions.js.map +1 -0
  210. package/dist/reactions/reactions.type.js +36 -0
  211. package/dist/reactions/reactions.type.js.map +1 -0
  212. package/dist/reconnection-manager/index.js +388 -476
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +17 -0
  215. package/dist/recording-controller/enums.js.map +1 -0
  216. package/dist/recording-controller/index.js +362 -0
  217. package/dist/recording-controller/index.js.map +1 -0
  218. package/dist/recording-controller/util.js +64 -0
  219. package/dist/recording-controller/util.js.map +1 -0
  220. package/dist/roap/index.js +99 -94
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +131 -135
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +151 -101
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +12 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +117 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +1 -95
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +416 -497
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +145 -88
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +22 -47
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/types/annotation/annotation.types.d.ts +42 -0
  239. package/dist/types/annotation/constants.d.ts +31 -0
  240. package/dist/types/annotation/index.d.ts +117 -0
  241. package/dist/types/breakouts/breakout.d.ts +8 -0
  242. package/dist/types/breakouts/collection.d.ts +5 -0
  243. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  244. package/dist/types/breakouts/events.d.ts +8 -0
  245. package/dist/types/breakouts/index.d.ts +5 -0
  246. package/dist/types/breakouts/request.d.ts +22 -0
  247. package/dist/types/breakouts/utils.d.ts +15 -0
  248. package/dist/types/common/browser-detection.d.ts +9 -0
  249. package/dist/types/common/collection.d.ts +48 -0
  250. package/dist/types/common/config.d.ts +2 -0
  251. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  252. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  253. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  254. package/dist/types/common/errors/media.d.ts +15 -0
  255. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  256. package/dist/types/common/errors/parameter.d.ts +15 -0
  257. package/dist/types/common/errors/password-error.d.ts +15 -0
  258. package/dist/types/common/errors/permission.d.ts +14 -0
  259. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  260. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  261. package/dist/types/common/errors/reconnection.d.ts +15 -0
  262. package/dist/types/common/errors/stats.d.ts +15 -0
  263. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  264. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  265. package/dist/types/common/events/events-scope.d.ts +17 -0
  266. package/dist/types/common/events/events.d.ts +12 -0
  267. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  268. package/dist/types/common/events/util.d.ts +2 -0
  269. package/dist/types/common/logs/logger-config.d.ts +2 -0
  270. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  271. package/dist/types/common/logs/request.d.ts +36 -0
  272. package/dist/types/common/queue.d.ts +34 -0
  273. package/dist/types/config.d.ts +71 -0
  274. package/dist/types/constants.d.ts +1066 -0
  275. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  276. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  277. package/dist/types/controls-options-manager/index.d.ts +136 -0
  278. package/dist/types/controls-options-manager/types.d.ts +43 -0
  279. package/dist/types/controls-options-manager/util.d.ts +1 -0
  280. package/dist/types/index.d.ts +7 -0
  281. package/dist/types/interpretation/collection.d.ts +5 -0
  282. package/dist/types/interpretation/index.d.ts +5 -0
  283. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  284. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  285. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  286. package/dist/types/locus-info/fullState.d.ts +2 -0
  287. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  288. package/dist/types/locus-info/index.d.ts +322 -0
  289. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  290. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  291. package/dist/types/locus-info/parser.d.ts +273 -0
  292. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  293. package/dist/types/media/index.d.ts +34 -0
  294. package/dist/types/media/properties.d.ts +93 -0
  295. package/dist/types/media/util.d.ts +2 -0
  296. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  297. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  298. package/dist/types/meeting/index.d.ts +1676 -0
  299. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  300. package/dist/types/meeting/muteState.d.ts +184 -0
  301. package/dist/types/meeting/request.d.ts +290 -0
  302. package/dist/types/meeting/request.type.d.ts +11 -0
  303. package/dist/types/meeting/state.d.ts +9 -0
  304. package/dist/types/meeting/util.d.ts +102 -0
  305. package/dist/types/meeting-info/collection.d.ts +20 -0
  306. package/dist/types/meeting-info/index.d.ts +69 -0
  307. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  308. package/dist/types/meeting-info/request.d.ts +22 -0
  309. package/dist/types/meeting-info/util.d.ts +2 -0
  310. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  311. package/dist/types/meetings/collection.d.ts +31 -0
  312. package/dist/types/meetings/index.d.ts +367 -0
  313. package/dist/types/meetings/meetings.types.d.ts +4 -0
  314. package/dist/types/meetings/request.d.ts +27 -0
  315. package/dist/types/meetings/util.d.ts +18 -0
  316. package/dist/types/member/index.d.ts +160 -0
  317. package/dist/types/member/types.d.ts +32 -0
  318. package/dist/types/member/util.d.ts +2 -0
  319. package/dist/types/members/collection.d.ts +29 -0
  320. package/dist/types/members/index.d.ts +353 -0
  321. package/dist/types/members/request.d.ts +114 -0
  322. package/dist/types/members/types.d.ts +25 -0
  323. package/dist/types/members/util.d.ts +215 -0
  324. package/dist/types/metrics/constants.d.ts +65 -0
  325. package/dist/types/metrics/index.d.ts +45 -0
  326. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  327. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  328. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  329. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  330. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  331. package/dist/types/multistream/remoteMediaManager.d.ts +285 -0
  332. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  333. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  334. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  335. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  336. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  337. package/dist/types/reachability/index.d.ts +194 -0
  338. package/dist/types/reachability/request.d.ts +39 -0
  339. package/dist/types/reactions/constants.d.ts +3 -0
  340. package/dist/types/reactions/reactions.d.ts +4 -0
  341. package/dist/types/reactions/reactions.type.d.ts +52 -0
  342. package/dist/types/reconnection-manager/index.d.ts +126 -0
  343. package/dist/types/recording-controller/enums.d.ts +7 -0
  344. package/dist/types/recording-controller/index.d.ts +207 -0
  345. package/dist/types/recording-controller/util.d.ts +14 -0
  346. package/dist/types/roap/index.d.ts +78 -0
  347. package/dist/types/roap/request.d.ts +39 -0
  348. package/dist/types/roap/turnDiscovery.d.ts +92 -0
  349. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  350. package/dist/types/rtcMetrics/index.d.ts +47 -0
  351. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  352. package/dist/types/statsAnalyzer/index.d.ts +201 -0
  353. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  354. package/dist/types/transcription/index.d.ts +64 -0
  355. package/dist/types/webinar/collection.d.ts +16 -0
  356. package/dist/types/webinar/index.d.ts +5 -0
  357. package/dist/webinar/collection.js +44 -0
  358. package/dist/webinar/collection.js.map +1 -0
  359. package/dist/webinar/index.js +69 -0
  360. package/dist/webinar/index.js.map +1 -0
  361. package/internal-README.md +7 -6
  362. package/package.json +29 -21
  363. package/src/annotation/annotation.types.ts +50 -0
  364. package/src/annotation/constants.ts +36 -0
  365. package/src/annotation/index.ts +328 -0
  366. package/src/breakouts/README.md +220 -0
  367. package/src/breakouts/breakout.ts +188 -0
  368. package/src/breakouts/collection.ts +19 -0
  369. package/src/breakouts/edit-lock-error.ts +25 -0
  370. package/src/breakouts/events.ts +56 -0
  371. package/src/breakouts/index.ts +925 -0
  372. package/src/breakouts/request.ts +55 -0
  373. package/src/breakouts/utils.ts +57 -0
  374. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  375. package/src/common/collection.ts +9 -7
  376. package/src/common/{config.js → config.ts} +1 -1
  377. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  378. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  379. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  380. package/src/common/errors/{media.js → media.ts} +11 -7
  381. package/src/common/errors/no-meeting-info.ts +24 -0
  382. package/src/common/errors/parameter.ts +11 -7
  383. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  384. package/src/common/errors/{permission.js → permission.ts} +10 -6
  385. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  386. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  387. package/src/common/errors/{stats.js → stats.ts} +11 -7
  388. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  389. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  390. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  391. package/src/common/events/{events.js → events.ts} +5 -1
  392. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  393. package/src/common/events/{util.js → util.ts} +2 -3
  394. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  395. package/src/common/logs/logger-proxy.ts +44 -0
  396. package/src/common/logs/{request.js → request.ts} +26 -9
  397. package/src/common/queue.ts +22 -9
  398. package/src/{config.js → config.ts} +18 -19
  399. package/src/constants.ts +260 -22
  400. package/src/controls-options-manager/constants.ts +5 -0
  401. package/src/controls-options-manager/enums.ts +18 -0
  402. package/src/controls-options-manager/index.ts +278 -0
  403. package/src/controls-options-manager/types.ts +59 -0
  404. package/src/controls-options-manager/util.ts +300 -0
  405. package/src/index.ts +40 -0
  406. package/src/interpretation/README.md +60 -0
  407. package/src/interpretation/collection.ts +19 -0
  408. package/src/interpretation/index.ts +332 -0
  409. package/src/interpretation/siLanguage.ts +18 -0
  410. package/src/locus-info/controlsUtils.ts +222 -0
  411. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  412. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  413. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  414. package/src/locus-info/{index.js → index.ts} +557 -119
  415. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  416. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +81 -17
  417. package/src/locus-info/{parser.js → parser.ts} +303 -104
  418. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  419. package/src/media/index.ts +458 -0
  420. package/src/media/properties.ts +283 -0
  421. package/src/media/{util.js → util.ts} +2 -2
  422. package/src/mediaQualityMetrics/config.ts +384 -0
  423. package/src/meeting/in-meeting-actions.ts +191 -3
  424. package/src/meeting/index.ts +7882 -0
  425. package/src/meeting/locusMediaRequest.ts +313 -0
  426. package/src/meeting/muteState.ts +451 -0
  427. package/src/meeting/{request.js → request.ts} +421 -220
  428. package/src/meeting/request.type.ts +13 -0
  429. package/src/meeting/{state.js → state.ts} +50 -35
  430. package/src/meeting/util.ts +697 -0
  431. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  432. package/src/meeting-info/index.ts +210 -0
  433. package/src/meeting-info/meeting-info-v2.ts +429 -0
  434. package/src/meeting-info/{request.js → request.ts} +14 -4
  435. package/src/meeting-info/{util.js → util.ts} +60 -51
  436. package/src/meeting-info/{utilv2.js → utilv2.ts} +78 -71
  437. package/src/meetings/{collection.js → collection.ts} +26 -3
  438. package/src/meetings/index.ts +1470 -0
  439. package/src/meetings/meetings.types.ts +12 -0
  440. package/src/meetings/{request.js → request.ts} +34 -25
  441. package/src/meetings/{util.js → util.ts} +132 -37
  442. package/src/member/{index.js → index.ts} +160 -56
  443. package/src/member/types.ts +38 -0
  444. package/src/member/util.ts +397 -0
  445. package/src/members/{collection.js → collection.ts} +10 -2
  446. package/src/members/{index.js → index.ts} +351 -146
  447. package/src/members/request.ts +255 -0
  448. package/src/members/types.ts +29 -0
  449. package/src/members/util.ts +353 -0
  450. package/src/metrics/{constants.js → constants.ts} +12 -6
  451. package/src/metrics/index.ts +73 -0
  452. package/src/multistream/mediaRequestManager.ts +337 -63
  453. package/src/multistream/receiveSlot.ts +69 -26
  454. package/src/multistream/receiveSlotManager.ts +66 -42
  455. package/src/multistream/remoteMedia.ts +40 -5
  456. package/src/multistream/remoteMediaGroup.ts +63 -3
  457. package/src/multistream/remoteMediaManager.ts +300 -66
  458. package/src/multistream/sendSlotManager.ts +170 -0
  459. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  460. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  461. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  462. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  463. package/src/reachability/index.ts +671 -0
  464. package/src/reachability/request.ts +50 -35
  465. package/src/reactions/constants.ts +4 -0
  466. package/src/reactions/reactions.ts +104 -0
  467. package/src/reactions/reactions.type.ts +62 -0
  468. package/src/reconnection-manager/{index.js → index.ts} +258 -138
  469. package/src/recording-controller/enums.ts +8 -0
  470. package/src/recording-controller/index.ts +332 -0
  471. package/src/recording-controller/util.ts +75 -0
  472. package/src/roap/{index.js → index.ts} +127 -79
  473. package/src/roap/request.ts +153 -0
  474. package/src/roap/turnDiscovery.ts +109 -47
  475. package/src/rtcMetrics/constants.ts +3 -0
  476. package/src/rtcMetrics/index.ts +100 -0
  477. package/src/statsAnalyzer/global.ts +37 -0
  478. package/src/statsAnalyzer/index.ts +1250 -0
  479. package/src/statsAnalyzer/mqaUtil.ts +292 -0
  480. package/src/transcription/{index.js → index.ts} +46 -39
  481. package/src/webinar/collection.ts +31 -0
  482. package/src/webinar/index.ts +62 -0
  483. package/test/integration/spec/converged-space-meetings.js +233 -0
  484. package/test/integration/spec/journey.js +790 -530
  485. package/test/integration/spec/space-meeting.js +391 -204
  486. package/test/integration/spec/transcription.js +7 -8
  487. package/test/unit/spec/annotation/index.ts +418 -0
  488. package/test/unit/spec/breakouts/breakout.ts +237 -0
  489. package/test/unit/spec/breakouts/collection.ts +15 -0
  490. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  491. package/test/unit/spec/breakouts/events.ts +89 -0
  492. package/test/unit/spec/breakouts/index.ts +1790 -0
  493. package/test/unit/spec/breakouts/request.ts +104 -0
  494. package/test/unit/spec/breakouts/utils.js +72 -0
  495. package/test/unit/spec/common/browser-detection.js +9 -28
  496. package/test/unit/spec/common/queue.js +31 -2
  497. package/test/unit/spec/controls-options-manager/index.js +287 -0
  498. package/test/unit/spec/controls-options-manager/util.js +582 -0
  499. package/test/unit/spec/fixture/locus.js +93 -90
  500. package/test/unit/spec/interpretation/collection.ts +15 -0
  501. package/test/unit/spec/interpretation/index.ts +589 -0
  502. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  503. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  504. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  505. package/test/unit/spec/locus-info/index.js +1390 -17
  506. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  507. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  508. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  509. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  510. package/test/unit/spec/locus-info/parser.js +119 -44
  511. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  512. package/test/unit/spec/locus-info/selfUtils.js +296 -12
  513. package/test/unit/spec/media/index.ts +128 -77
  514. package/test/unit/spec/media/properties.ts +11 -11
  515. package/test/unit/spec/meeting/in-meeting-actions.ts +92 -3
  516. package/test/unit/spec/meeting/index.js +7433 -2752
  517. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  518. package/test/unit/spec/meeting/muteState.js +420 -211
  519. package/test/unit/spec/meeting/request.js +545 -79
  520. package/test/unit/spec/meeting/utils.js +722 -174
  521. package/test/unit/spec/meeting-info/index.js +300 -0
  522. package/test/unit/spec/meeting-info/meetinginfov2.js +624 -76
  523. package/test/unit/spec/meeting-info/request.js +7 -9
  524. package/test/unit/spec/meeting-info/util.js +11 -12
  525. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  526. package/test/unit/spec/meetings/collection.js +15 -1
  527. package/test/unit/spec/meetings/index.js +1365 -377
  528. package/test/unit/spec/meetings/utils.js +216 -14
  529. package/test/unit/spec/member/index.js +61 -7
  530. package/test/unit/spec/member/util.js +526 -26
  531. package/test/unit/spec/members/index.js +536 -55
  532. package/test/unit/spec/members/request.js +228 -40
  533. package/test/unit/spec/members/utils.js +217 -4
  534. package/test/unit/spec/metrics/index.js +12 -66
  535. package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
  536. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  537. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  538. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  539. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  540. package/test/unit/spec/multistream/remoteMediaManager.ts +738 -65
  541. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  542. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  543. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  544. package/test/unit/spec/reachability/index.ts +598 -26
  545. package/test/unit/spec/reachability/request.js +68 -0
  546. package/test/unit/spec/reconnection-manager/index.js +181 -12
  547. package/test/unit/spec/recording-controller/index.js +307 -0
  548. package/test/unit/spec/recording-controller/util.js +229 -0
  549. package/test/unit/spec/roap/index.ts +179 -64
  550. package/test/unit/spec/roap/request.ts +232 -0
  551. package/test/unit/spec/roap/turnDiscovery.ts +123 -58
  552. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  553. package/test/unit/spec/stats-analyzer/index.js +199 -60
  554. package/test/unit/spec/webinar/collection.ts +13 -0
  555. package/test/unit/spec/webinar/index.ts +60 -0
  556. package/test/utils/cmr.js +44 -42
  557. package/test/utils/constants.js +9 -0
  558. package/test/utils/integrationTestUtils.js +46 -0
  559. package/test/utils/testUtils.js +63 -99
  560. package/test/utils/webex-config.js +22 -18
  561. package/test/utils/webex-test-users.js +57 -50
  562. package/tsconfig.json +6 -0
  563. package/dist/media/internal-media-core-wrapper.js +0 -22
  564. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  565. package/dist/meeting/effectsState.js +0 -327
  566. package/dist/meeting/effectsState.js.map +0 -1
  567. package/dist/metrics/config.js +0 -301
  568. package/dist/metrics/config.js.map +0 -1
  569. package/dist/multistream/multistreamMedia.js +0 -116
  570. package/dist/multistream/multistreamMedia.js.map +0 -1
  571. package/dist/peer-connection-manager/util.js +0 -124
  572. package/dist/peer-connection-manager/util.js.map +0 -1
  573. package/src/common/logs/logger-proxy.js +0 -33
  574. package/src/index.js +0 -15
  575. package/src/locus-info/controlsUtils.js +0 -102
  576. package/src/media/index.js +0 -459
  577. package/src/media/internal-media-core-wrapper.ts +0 -9
  578. package/src/media/properties.js +0 -289
  579. package/src/mediaQualityMetrics/config.js +0 -382
  580. package/src/meeting/effectsState.js +0 -205
  581. package/src/meeting/index.js +0 -6284
  582. package/src/meeting/muteState.js +0 -318
  583. package/src/meeting/util.js +0 -506
  584. package/src/meeting-info/index.js +0 -131
  585. package/src/meeting-info/meeting-info-v2.js +0 -255
  586. package/src/meetings/index.js +0 -1015
  587. package/src/member/util.js +0 -254
  588. package/src/members/request.js +0 -131
  589. package/src/members/util.js +0 -258
  590. package/src/metrics/config.js +0 -324
  591. package/src/metrics/index.js +0 -530
  592. package/src/multistream/multistreamMedia.ts +0 -92
  593. package/src/peer-connection-manager/util.ts +0 -117
  594. package/src/reachability/index.js +0 -464
  595. package/src/roap/request.js +0 -127
  596. package/src/statsAnalyzer/global.js +0 -133
  597. package/src/statsAnalyzer/index.js +0 -1006
  598. package/src/statsAnalyzer/mqaUtil.js +0 -173
  599. package/test/unit/spec/meeting/effectsState.js +0 -291
  600. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  601. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,50 +1,550 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
-
3
2
  import MemberUtil from '@webex/plugin-meetings/src/member/util';
3
+ import {ServerRoles} from '../../../../src/member/types';
4
+ import {_SEND_RECEIVE_, _RECEIVE_ONLY_} from '../../../../src/constants';
4
5
 
6
+ describe('plugin-meetings', () => {
7
+ describe('isHandRaised', () => {
8
+ it('throws error when there is no participant', () => {
9
+ assert.throws(() => {
10
+ MemberUtil.isHandRaised();
11
+ }, 'Raise hand could not be processed, participant is undefined.');
12
+ });
5
13
 
6
- describe('isHandRaised', () => {
7
- it('throws error when there is no participant', () => {
8
- assert.throws(() => {
9
- MemberUtil.isHandRaised();
10
- }, 'Raise hand could not be processed, participant is undefined.');
14
+ it('returns false when controls is not there', () => {
15
+ const participant = {};
16
+
17
+ assert.isFalse(MemberUtil.isHandRaised(participant));
18
+ });
19
+
20
+ it('returns false when hand is not there in controls', () => {
21
+ const participant = {
22
+ controls: {},
23
+ };
24
+
25
+ assert.isFalse(MemberUtil.isHandRaised(participant));
26
+ });
27
+
28
+ it('returns true when hand raised is true', () => {
29
+ const participant = {
30
+ controls: {
31
+ hand: {
32
+ raised: true,
33
+ },
34
+ },
35
+ };
36
+
37
+ assert.isTrue(MemberUtil.isHandRaised(participant));
38
+ });
39
+
40
+ it('returns false when hand raised is false', () => {
41
+ const participant = {
42
+ controls: {
43
+ hand: {
44
+ raised: false,
45
+ },
46
+ },
47
+ };
48
+
49
+ assert.isFalse(MemberUtil.isHandRaised(participant));
50
+ });
51
+ });
52
+
53
+ describe('MemberUtil.canReclaimHost', () => {
54
+ it('throws error when there is no participant', () => {
55
+ assert.throws(() => {
56
+ MemberUtil.canReclaimHost();
57
+ }, 'canReclaimHostRole could not be processed, participant is undefined.');
58
+ });
59
+
60
+ it('returns true when canReclaimHostRole is true', () => {
61
+ const participant = {
62
+ canReclaimHostRole: true,
63
+ };
64
+
65
+ assert.isTrue(MemberUtil.canReclaimHost(participant));
66
+ });
67
+
68
+ it('returns false when canReclaimHostRole is false', () => {
69
+ const participant = {
70
+ canReclaimHostRole: false,
71
+ };
72
+
73
+ assert.isFalse(MemberUtil.canReclaimHost(participant));
74
+ });
75
+
76
+ it('returns false when canReclaimHostRole is falsy', () => {
77
+ const participant = {
78
+ canReclaimHostRole: undefined,
79
+ };
80
+
81
+ assert.isFalse(MemberUtil.canReclaimHost(participant));
82
+ });
83
+ });
84
+
85
+ describe('MemberUtil.extractControlRoles', () => {
86
+ it('happy path extract control roles', () => {
87
+ const participant = {
88
+ controls: {
89
+ role: {
90
+ roles: [
91
+ {type: 'PRESENTER', hasRole: true},
92
+ {type: 'COHOST', hasRole: true},
93
+ {type: 'MODERATOR', hasRole: true},
94
+ ],
95
+ },
96
+ },
97
+ };
98
+
99
+ assert.deepEqual(MemberUtil.extractControlRoles(participant), {
100
+ cohost: true,
101
+ moderator: true,
102
+ presenter: true,
103
+ });
104
+ });
11
105
  });
12
106
 
13
- it('returns false when controls is not there', () => {
14
- const participant = {};
107
+ describe('MemberUtil.getControlsRoles', () => {
108
+ it('getControlsRoles', () => {
109
+ const participant = {
110
+ controls: {
111
+ role: {
112
+ roles: [{type: 'PRESENTER', hasRole: true}],
113
+ },
114
+ },
115
+ };
15
116
 
16
- assert.isFalse(MemberUtil.isHandRaised(participant));
117
+ assert.deepEqual(MemberUtil.getControlsRoles(participant), [
118
+ {type: 'PRESENTER', hasRole: true},
119
+ ]);
120
+ });
17
121
  });
18
122
 
19
- it('returns false when hand is not there in controls', () => {
20
- const participant = {
21
- controls: {}
123
+ describe('MemberUtil.hasRole', () => {
124
+ describe('PRESENTER', () => {
125
+ it('getControlsRoles PRESENTER true', () => {
126
+ const participant = {
127
+ controls: {
128
+ role: {
129
+ roles: [{type: 'PRESENTER', hasRole: true}],
130
+ },
131
+ },
132
+ };
133
+
134
+ assert.isTrue(MemberUtil.hasRole(participant, ServerRoles.Presenter));
135
+ });
136
+
137
+ it('getControlsRoles PRESENTER false', () => {
138
+ const participant = {
139
+ controls: {
140
+ role: {
141
+ roles: [{type: 'PRESENTER', hasRole: false}],
142
+ },
143
+ },
144
+ };
145
+
146
+ assert.isFalse(MemberUtil.hasRole(participant, ServerRoles.Presenter));
147
+ });
148
+
149
+ it('getControlsRoles PRESENTER undefined', () => {
150
+ const participant = {
151
+ controls: {
152
+ role: {
153
+ roles: [{}],
154
+ },
155
+ },
156
+ };
157
+
158
+ assert.isFalse(MemberUtil.hasRole(participant, ServerRoles.Presenter));
159
+ });
160
+ });
161
+
162
+ describe('MODERATOR', () => {
163
+ it('getControlsRoles MODERATOR true', () => {
164
+ const participant = {
165
+ controls: {
166
+ role: {
167
+ roles: [{type: 'MODERATOR', hasRole: true}],
168
+ },
169
+ },
170
+ };
171
+
172
+ assert.isTrue(MemberUtil.hasRole(participant, ServerRoles.Moderator));
173
+ });
174
+
175
+ it('getControlsRoles MODERATOR false', () => {
176
+ const participant = {
177
+ controls: {
178
+ role: {
179
+ roles: [{type: 'MODERATOR', hasRole: false}],
180
+ },
181
+ },
182
+ };
183
+
184
+ assert.isFalse(MemberUtil.hasRole(participant, ServerRoles.Moderator));
185
+ });
186
+
187
+ it('getControlsRoles MODERATOR undefined', () => {
188
+ const participant = {
189
+ controls: {
190
+ role: {
191
+ roles: [{}],
192
+ },
193
+ },
194
+ };
195
+
196
+ assert.isFalse(MemberUtil.hasRole(participant, ServerRoles.Moderator));
197
+ });
198
+ });
199
+
200
+ describe('COHOST', () => {
201
+ it('getControlsRoles COHOST true', () => {
202
+ const participant = {
203
+ controls: {
204
+ role: {
205
+ roles: [{type: 'COHOST', hasRole: true}],
206
+ },
207
+ },
208
+ };
209
+
210
+ assert.isTrue(MemberUtil.hasRole(participant, ServerRoles.Cohost));
211
+ });
212
+
213
+ it('getControlsRoles COHOST false', () => {
214
+ const participant = {
215
+ controls: {
216
+ role: {
217
+ roles: [{type: 'COHOST', hasRole: false}],
218
+ },
219
+ },
220
+ };
221
+
222
+ assert.isFalse(MemberUtil.hasRole(participant, ServerRoles.Cohost));
223
+ });
224
+
225
+ it('getControlsRoles COHOST undefined', () => {
226
+ const participant = {
227
+ controls: {
228
+ role: {
229
+ roles: [{}],
230
+ },
231
+ },
232
+ };
233
+
234
+ assert.isFalse(MemberUtil.hasRole(participant, ServerRoles.Cohost));
235
+ });
236
+ });
237
+ });
238
+
239
+ describe('MemberUtil.is<Role>', () => {
240
+ describe('PRESENTER', () => {
241
+ it('getControlsRoles PRESENTER true', () => {
242
+ const participant = {
243
+ controls: {
244
+ role: {
245
+ roles: [{type: 'PRESENTER', hasRole: true}],
246
+ },
247
+ },
248
+ };
249
+
250
+ assert.isTrue(MemberUtil.hasPresenter(participant, ServerRoles.Presenter));
251
+ });
252
+
253
+ it('getControlsRoles PRESENTER false', () => {
254
+ const participant = {
255
+ controls: {
256
+ role: {
257
+ roles: [{type: 'PRESENTER', hasRole: false}],
258
+ },
259
+ },
260
+ };
261
+
262
+ assert.isFalse(MemberUtil.hasPresenter(participant));
263
+ });
264
+
265
+ it('getControlsRoles PRESENTER undefined', () => {
266
+ const participant = {
267
+ controls: {
268
+ role: {
269
+ roles: [{}],
270
+ },
271
+ },
272
+ };
273
+
274
+ assert.isFalse(MemberUtil.hasPresenter(participant));
275
+ });
276
+ });
277
+
278
+ describe('MODERATOR', () => {
279
+ it('getControlsRoles MODERATOR true', () => {
280
+ const participant = {
281
+ controls: {
282
+ role: {
283
+ roles: [{type: 'MODERATOR', hasRole: true}],
284
+ },
285
+ },
286
+ };
287
+
288
+ assert.isTrue(MemberUtil.hasModerator(participant));
289
+ });
290
+
291
+ it('getControlsRoles MODERATOR false', () => {
292
+ const participant = {
293
+ controls: {
294
+ role: {
295
+ roles: [{type: 'MODERATOR', hasRole: false}],
296
+ },
297
+ },
298
+ };
299
+
300
+ assert.isFalse(MemberUtil.hasModerator(participant));
301
+ });
302
+
303
+ it('getControlsRoles MODERATOR undefined', () => {
304
+ const participant = {
305
+ controls: {
306
+ role: {
307
+ roles: [{}],
308
+ },
309
+ },
310
+ };
311
+
312
+ assert.isFalse(MemberUtil.hasModerator(participant));
313
+ });
314
+ });
315
+
316
+ describe('COHOST', () => {
317
+ it('getControlsRoles COHOST true', () => {
318
+ const participant = {
319
+ controls: {
320
+ role: {
321
+ roles: [{type: 'COHOST', hasRole: true}],
322
+ },
323
+ },
324
+ };
325
+
326
+ assert.isTrue(MemberUtil.hasCohost(participant));
327
+ });
328
+
329
+ it('getControlsRoles COHOST false', () => {
330
+ const participant = {
331
+ controls: {
332
+ role: {
333
+ roles: [{type: 'COHOST', hasRole: false}],
334
+ },
335
+ },
336
+ };
337
+
338
+ assert.isFalse(MemberUtil.hasCohost(participant));
339
+ });
340
+
341
+ it('getControlsRoles COHOST undefined', () => {
342
+ const participant = {
343
+ controls: {
344
+ role: {
345
+ roles: [{}],
346
+ },
347
+ },
348
+ };
349
+
350
+ assert.isFalse(MemberUtil.hasCohost(participant));
351
+ });
352
+ });
353
+ });
354
+
355
+ describe('MemberUtil.isBreakoutsSupported', () => {
356
+ it('throws error when there is no participant', () => {
357
+ assert.throws(() => {
358
+ MemberUtil.isBreakoutsSupported();
359
+ }, 'Breakout support could not be processed, participant is undefined.');
360
+ });
361
+
362
+ it('returns true when hand breakouts are supported', () => {
363
+ const participant = {
364
+ doesNotSupportBreakouts: false,
365
+ };
366
+
367
+ assert.isTrue(MemberUtil.isBreakoutsSupported(participant));
368
+ });
369
+
370
+ it('returns false when hand breakouts are not supported', () => {
371
+ const participant = {
372
+ doesNotSupportBreakouts: true,
373
+ };
374
+
375
+ assert.isFalse(MemberUtil.isBreakoutsSupported(participant));
376
+ });
377
+ });
378
+
379
+ describe('MemberUtil.isLiveAnnotationSupported', () => {
380
+ it('throws error when there is no participant', () => {
381
+ assert.throws(() => {
382
+ MemberUtil.isLiveAnnotationSupported();
383
+ }, 'LiveAnnotation support could not be processed, participant is undefined.');
384
+ });
385
+
386
+ it('returns true when hand live annotation are supported', () => {
387
+ const participant = {
388
+ annotatorAssignmentNotAllowed: false,
389
+ };
390
+
391
+ assert.isTrue(MemberUtil.isLiveAnnotationSupported(participant));
392
+ });
393
+
394
+ it('returns false when hand live annotation are not supported', () => {
395
+ const participant = {
396
+ annotatorAssignmentNotAllowed: true,
397
+ };
398
+
399
+ assert.isFalse(MemberUtil.isLiveAnnotationSupported(participant));
400
+ });
401
+ });
402
+
403
+ describe('MemberUtil.isInterpretationSupported', () => {
404
+ it('throws error when there is no participant', () => {
405
+ assert.throws(() => {
406
+ MemberUtil.isInterpretationSupported();
407
+ }, 'Interpretation support could not be processed, participant is undefined.');
408
+ });
409
+
410
+ it('returns true when hand SiInterpreter are supported', () => {
411
+ const participant = {
412
+ doesNotSupportSiInterpreter: false,
413
+ };
414
+
415
+ assert.isTrue(MemberUtil.isInterpretationSupported(participant));
416
+ });
417
+
418
+ it('returns false when hand SiInterpreter are not supported', () => {
419
+ const participant = {
420
+ doesNotSupportSiInterpreter: true,
421
+ };
422
+
423
+ assert.isFalse(MemberUtil.isInterpretationSupported(participant));
424
+ });
425
+ });
426
+
427
+ const getMuteStatus = (muted) => {
428
+ if (muted === undefined) {
429
+ return undefined;
430
+ }
431
+ return muted ? _RECEIVE_ONLY_ : _SEND_RECEIVE_;
432
+ };
433
+
434
+ describe('MemberUtil.isAudioMuted', () => {
435
+ it('throws error when there is no participant', () => {
436
+ assert.throws(() => {
437
+ MemberUtil.isAudioMuted();
438
+ }, 'Audio could not be processed, participant is undefined.');
439
+ });
440
+
441
+ // NOTE: participant.controls.audio.muted represents remote video mute
442
+ // participant.status.audioStatus represents local video mute
443
+
444
+ const testResult = (remoteMuted, localMuted, expected) => {
445
+ const participant = {
446
+ controls: {audio: {muted: remoteMuted}},
447
+ status: {audioStatus: getMuteStatus(localMuted)},
448
+ };
449
+
450
+ assert.equal(MemberUtil.isAudioMuted(participant), expected);
22
451
  };
23
452
 
24
- assert.isFalse(MemberUtil.isHandRaised(participant));
453
+ it('returns true when remote is muted and local is not', () => {
454
+ testResult(true, false, true);
455
+ });
456
+
457
+ it('returns true when remote is not muted and local is muted', () => {
458
+ testResult(false, true, true);
459
+ });
460
+
461
+ it('returns false when both are not muted', () => {
462
+ testResult(false, false, false);
463
+ });
464
+
465
+ it('returns undefined when both are undefined', () => {
466
+ testResult(undefined, undefined, undefined);
467
+ });
468
+
469
+ it('returns defined status when the other is undefined', () => {
470
+ testResult(undefined, true, true);
471
+ testResult(undefined, false, false);
472
+ testResult(true, undefined, true);
473
+ testResult(false, undefined, false);
474
+ });
25
475
  });
26
476
 
27
- it('returns true when hand raised is true', () => {
477
+ describe('MemberUtil.isVideoMuted', () => {
478
+ it('throws error when there is no participant', () => {
479
+ assert.throws(() => {
480
+ MemberUtil.isVideoMuted();
481
+ }, 'Video could not be processed, participant is undefined.');
482
+ });
483
+
484
+ // NOTE: participant.controls.video.muted represents remote video mute
485
+ // participant.status.videoStatus represents local video mute
486
+
487
+ const testResult = (remoteMuted, localMuted, expected) => {
488
+ const participant = {
489
+ controls: {video: {muted: remoteMuted}},
490
+ status: {videoStatus: getMuteStatus(localMuted)},
491
+ };
492
+
493
+ assert.equal(MemberUtil.isVideoMuted(participant), expected);
494
+ };
495
+
496
+ it('returns true when remote is muted and local is not', () => {
497
+ testResult(true, false, true);
498
+ });
499
+
500
+ it('returns true when remote is not muted and local is muted', () => {
501
+ testResult(false, true, true);
502
+ });
503
+
504
+ it('returns false when both are not muted', () => {
505
+ testResult(false, false, false);
506
+ });
507
+
508
+ it('returns undefined when both are undefined', () => {
509
+ testResult(undefined, undefined, undefined);
510
+ });
511
+
512
+ it('returns defined status when the other is undefined', () => {
513
+ testResult(undefined, true, true);
514
+ testResult(undefined, false, false);
515
+ testResult(true, undefined, true);
516
+ testResult(false, undefined, false);
517
+ });
518
+ });
519
+ });
520
+
521
+ describe('extractMediaStatus', () => {
522
+ it('throws error when there is no participant', () => {
523
+ assert.throws(() => {
524
+ MemberUtil.extractMediaStatus()
525
+ }, 'Media status could not be extracted, participant is undefined.');
526
+ });
527
+
528
+ it('returns undefined media status when participant audio/video status is not present', () => {
28
529
  const participant = {
29
- controls: {
30
- hand: {
31
- raised: true
32
- },
33
- }
530
+ status: {}
34
531
  };
532
+
533
+ const mediaStatus = MemberUtil.extractMediaStatus(participant)
35
534
 
36
- assert.isTrue(MemberUtil.isHandRaised(participant));
535
+ assert.deepEqual(mediaStatus, {audio: undefined, video: undefined});
37
536
  });
38
537
 
39
- it('returns false when hand raised is false', () => {
538
+ it('returns correct media status when participant audio/video status is present', () => {
40
539
  const participant = {
41
- controls: {
42
- hand: {
43
- raised: false
44
- },
540
+ status: {
541
+ audioStatus: 'RECVONLY',
542
+ videoStatus: 'SENDRECV'
45
543
  }
46
544
  };
545
+
546
+ const mediaStatus = MemberUtil.extractMediaStatus(participant)
47
547
 
48
- assert.isFalse(MemberUtil.isHandRaised(participant));
548
+ assert.deepEqual(mediaStatus, {audio: 'RECVONLY', video: 'SENDRECV'});
49
549
  });
50
550
  });