@webex/plugin-meetings 2.60.0 → 2.60.1-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +58 -8
  2. package/dist/annotation/annotation.types.d.ts +42 -0
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.d.ts +31 -0
  6. package/dist/annotation/constants.js +41 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.d.ts +117 -0
  9. package/dist/annotation/index.js +357 -0
  10. package/dist/annotation/index.js.map +1 -0
  11. package/dist/breakouts/breakout.d.ts +8 -0
  12. package/dist/breakouts/breakout.js +215 -0
  13. package/dist/breakouts/breakout.js.map +1 -0
  14. package/dist/breakouts/collection.d.ts +5 -0
  15. package/dist/breakouts/collection.js +22 -0
  16. package/dist/breakouts/collection.js.map +1 -0
  17. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  18. package/dist/breakouts/edit-lock-error.js +51 -0
  19. package/dist/breakouts/edit-lock-error.js.map +1 -0
  20. package/dist/breakouts/events.d.ts +8 -0
  21. package/dist/breakouts/events.js +44 -0
  22. package/dist/breakouts/events.js.map +1 -0
  23. package/dist/breakouts/index.d.ts +5 -0
  24. package/dist/breakouts/index.js +1047 -0
  25. package/dist/breakouts/index.js.map +1 -0
  26. package/dist/breakouts/request.d.ts +22 -0
  27. package/dist/breakouts/request.js +77 -0
  28. package/dist/breakouts/request.js.map +1 -0
  29. package/dist/breakouts/utils.d.ts +15 -0
  30. package/dist/breakouts/utils.js +64 -0
  31. package/dist/breakouts/utils.js.map +1 -0
  32. package/dist/common/browser-detection.js +2 -3
  33. package/dist/common/browser-detection.js.map +1 -1
  34. package/dist/common/collection.js +3 -4
  35. package/dist/common/collection.js.map +1 -1
  36. package/dist/common/config.js +1 -2
  37. package/dist/common/config.js.map +1 -1
  38. package/dist/common/errors/captcha-error.js +1 -2
  39. package/dist/common/errors/captcha-error.js.map +1 -1
  40. package/dist/common/errors/intent-to-join.js +1 -2
  41. package/dist/common/errors/intent-to-join.js.map +1 -1
  42. package/dist/common/errors/join-meeting.js +1 -2
  43. package/dist/common/errors/join-meeting.js.map +1 -1
  44. package/dist/common/errors/media.js +1 -2
  45. package/dist/common/errors/media.js.map +1 -1
  46. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  47. package/dist/common/errors/no-meeting-info.js +50 -0
  48. package/dist/common/errors/no-meeting-info.js.map +1 -0
  49. package/dist/common/errors/parameter.js +3 -4
  50. package/dist/common/errors/parameter.js.map +1 -1
  51. package/dist/common/errors/password-error.js +1 -2
  52. package/dist/common/errors/password-error.js.map +1 -1
  53. package/dist/common/errors/permission.js +1 -2
  54. package/dist/common/errors/permission.js.map +1 -1
  55. package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
  56. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  57. package/dist/common/errors/reconnection-in-progress.js +1 -2
  58. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  59. package/dist/common/errors/reconnection.js +1 -2
  60. package/dist/common/errors/reconnection.js.map +1 -1
  61. package/dist/common/errors/stats.js +1 -2
  62. package/dist/common/errors/stats.js.map +1 -1
  63. package/dist/common/errors/webex-errors.d.ts +20 -8
  64. package/dist/common/errors/webex-errors.js +48 -28
  65. package/dist/common/errors/webex-errors.js.map +1 -1
  66. package/dist/common/errors/webex-meetings-error.js +1 -2
  67. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  68. package/dist/common/events/events-scope.js +1 -2
  69. package/dist/common/events/events-scope.js.map +1 -1
  70. package/dist/common/events/events.js +1 -2
  71. package/dist/common/events/events.js.map +1 -1
  72. package/dist/common/events/trigger-proxy.js +1 -2
  73. package/dist/common/events/trigger-proxy.js.map +1 -1
  74. package/dist/common/events/util.js +1 -2
  75. package/dist/common/events/util.js.map +1 -1
  76. package/dist/common/logs/logger-config.js +1 -2
  77. package/dist/common/logs/logger-config.js.map +1 -1
  78. package/dist/common/logs/logger-proxy.js +2 -3
  79. package/dist/common/logs/logger-proxy.js.map +1 -1
  80. package/dist/common/logs/request.d.ts +3 -1
  81. package/dist/common/logs/request.js +8 -5
  82. package/dist/common/logs/request.js.map +1 -1
  83. package/dist/common/queue.d.ts +9 -7
  84. package/dist/common/queue.js +22 -9
  85. package/dist/common/queue.js.map +1 -1
  86. package/dist/config.d.ts +6 -7
  87. package/dist/config.js +8 -10
  88. package/dist/config.js.map +1 -1
  89. package/dist/constants.d.ts +234 -100
  90. package/dist/constants.js +433 -444
  91. package/dist/constants.js.map +1 -1
  92. package/dist/controls-options-manager/constants.js +3 -6
  93. package/dist/controls-options-manager/constants.js.map +1 -1
  94. package/dist/controls-options-manager/enums.d.ts +11 -1
  95. package/dist/controls-options-manager/enums.js +15 -6
  96. package/dist/controls-options-manager/enums.js.map +1 -1
  97. package/dist/controls-options-manager/index.d.ts +17 -1
  98. package/dist/controls-options-manager/index.js +127 -38
  99. package/dist/controls-options-manager/index.js.map +1 -1
  100. package/dist/controls-options-manager/types.d.ts +43 -0
  101. package/dist/controls-options-manager/types.js +7 -0
  102. package/dist/controls-options-manager/types.js.map +1 -0
  103. package/dist/controls-options-manager/util.d.ts +1 -7
  104. package/dist/controls-options-manager/util.js +309 -19
  105. package/dist/controls-options-manager/util.js.map +1 -1
  106. package/dist/index.d.ts +6 -3
  107. package/dist/index.js +121 -5
  108. package/dist/index.js.map +1 -1
  109. package/dist/interceptors/index.d.ts +2 -0
  110. package/dist/interceptors/index.js +15 -0
  111. package/dist/interceptors/index.js.map +1 -0
  112. package/dist/interceptors/locusRetry.d.ts +27 -0
  113. package/dist/interceptors/locusRetry.js +94 -0
  114. package/dist/interceptors/locusRetry.js.map +1 -0
  115. package/dist/interpretation/collection.d.ts +5 -0
  116. package/dist/interpretation/collection.js +22 -0
  117. package/dist/interpretation/collection.js.map +1 -0
  118. package/dist/interpretation/index.d.ts +5 -0
  119. package/dist/interpretation/index.js +365 -0
  120. package/dist/interpretation/index.js.map +1 -0
  121. package/dist/interpretation/siLanguage.d.ts +5 -0
  122. package/dist/interpretation/siLanguage.js +24 -0
  123. package/dist/interpretation/siLanguage.js.map +1 -0
  124. package/dist/locus-info/controlsUtils.js +100 -11
  125. package/dist/locus-info/controlsUtils.js.map +1 -1
  126. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  127. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  128. package/dist/locus-info/fullState.js +1 -2
  129. package/dist/locus-info/fullState.js.map +1 -1
  130. package/dist/locus-info/hostUtils.js +1 -2
  131. package/dist/locus-info/hostUtils.js.map +1 -1
  132. package/dist/locus-info/index.d.ts +57 -4
  133. package/dist/locus-info/index.js +425 -84
  134. package/dist/locus-info/index.js.map +1 -1
  135. package/dist/locus-info/infoUtils.js +13 -5
  136. package/dist/locus-info/infoUtils.js.map +1 -1
  137. package/dist/locus-info/mediaSharesUtils.js +58 -3
  138. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  139. package/dist/locus-info/parser.d.ts +66 -6
  140. package/dist/locus-info/parser.js +253 -80
  141. package/dist/locus-info/parser.js.map +1 -1
  142. package/dist/locus-info/selfUtils.js +97 -13
  143. package/dist/locus-info/selfUtils.js.map +1 -1
  144. package/dist/media/index.d.ts +2 -0
  145. package/dist/media/index.js +107 -319
  146. package/dist/media/index.js.map +1 -1
  147. package/dist/media/properties.d.ts +38 -53
  148. package/dist/media/properties.js +96 -153
  149. package/dist/media/properties.js.map +1 -1
  150. package/dist/media/util.js +1 -22
  151. package/dist/media/util.js.map +1 -1
  152. package/dist/mediaQualityMetrics/config.d.ts +234 -230
  153. package/dist/mediaQualityMetrics/config.js +302 -498
  154. package/dist/mediaQualityMetrics/config.js.map +1 -1
  155. package/dist/meeting/in-meeting-actions.d.ts +88 -0
  156. package/dist/meeting/in-meeting-actions.js +94 -3
  157. package/dist/meeting/in-meeting-actions.js.map +1 -1
  158. package/dist/meeting/index.d.ts +705 -520
  159. package/dist/meeting/index.js +5047 -3089
  160. package/dist/meeting/index.js.map +1 -1
  161. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  162. package/dist/meeting/locusMediaRequest.js +291 -0
  163. package/dist/meeting/locusMediaRequest.js.map +1 -0
  164. package/dist/meeting/muteState.d.ts +93 -25
  165. package/dist/meeting/muteState.js +224 -133
  166. package/dist/meeting/muteState.js.map +1 -1
  167. package/dist/meeting/request.d.ts +82 -47
  168. package/dist/meeting/request.js +304 -199
  169. package/dist/meeting/request.js.map +1 -1
  170. package/dist/meeting/request.type.d.ts +11 -0
  171. package/dist/meeting/request.type.js +7 -0
  172. package/dist/meeting/request.type.js.map +1 -0
  173. package/dist/meeting/state.js +1 -2
  174. package/dist/meeting/state.js.map +1 -1
  175. package/dist/meeting/util.d.ts +118 -1
  176. package/dist/meeting/util.js +676 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting/voicea-meeting.d.ts +20 -0
  179. package/dist/meeting/voicea-meeting.js +201 -0
  180. package/dist/meeting/voicea-meeting.js.map +1 -0
  181. package/dist/meeting-info/collection.js +3 -4
  182. package/dist/meeting-info/collection.js.map +1 -1
  183. package/dist/meeting-info/index.d.ts +13 -1
  184. package/dist/meeting-info/index.js +74 -7
  185. package/dist/meeting-info/index.js.map +1 -1
  186. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/meeting-info/meeting-info-v2.js +200 -63
  188. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  189. package/dist/meeting-info/request.js +1 -2
  190. package/dist/meeting-info/request.js.map +1 -1
  191. package/dist/meeting-info/util.js +2 -3
  192. package/dist/meeting-info/util.js.map +1 -1
  193. package/dist/meeting-info/utilv2.js +39 -41
  194. package/dist/meeting-info/utilv2.js.map +1 -1
  195. package/dist/meetings/collection.d.ts +17 -0
  196. package/dist/meetings/collection.js +42 -4
  197. package/dist/meetings/collection.js.map +1 -1
  198. package/dist/meetings/index.d.ts +114 -20
  199. package/dist/meetings/index.js +540 -126
  200. package/dist/meetings/index.js.map +1 -1
  201. package/dist/meetings/meetings.types.d.ts +4 -0
  202. package/dist/meetings/meetings.types.js +7 -0
  203. package/dist/meetings/meetings.types.js.map +1 -0
  204. package/dist/meetings/request.js +4 -3
  205. package/dist/meetings/request.js.map +1 -1
  206. package/dist/meetings/util.js +107 -6
  207. package/dist/meetings/util.js.map +1 -1
  208. package/dist/member/index.d.ts +13 -1
  209. package/dist/member/index.js +45 -2
  210. package/dist/member/index.js.map +1 -1
  211. package/dist/member/member.types.js +3 -4
  212. package/dist/member/member.types.js.map +1 -1
  213. package/dist/member/types.d.ts +32 -0
  214. package/dist/member/types.js +23 -0
  215. package/dist/member/types.js.map +1 -0
  216. package/dist/member/util.js +120 -29
  217. package/dist/member/util.js.map +1 -1
  218. package/dist/members/collection.d.ts +5 -0
  219. package/dist/members/collection.js +11 -2
  220. package/dist/members/collection.js.map +1 -1
  221. package/dist/members/index.d.ts +56 -11
  222. package/dist/members/index.js +174 -47
  223. package/dist/members/index.js.map +1 -1
  224. package/dist/members/request.d.ts +67 -11
  225. package/dist/members/request.js +102 -54
  226. package/dist/members/request.js.map +1 -1
  227. package/dist/members/types.js +3 -4
  228. package/dist/members/types.js.map +1 -1
  229. package/dist/members/util.d.ts +214 -1
  230. package/dist/members/util.js +327 -284
  231. package/dist/members/util.js.map +1 -1
  232. package/dist/metrics/constants.d.ts +15 -6
  233. package/dist/metrics/constants.js +17 -9
  234. package/dist/metrics/constants.js.map +1 -1
  235. package/dist/metrics/index.d.ts +4 -111
  236. package/dist/metrics/index.js +4 -452
  237. package/dist/metrics/index.js.map +1 -1
  238. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  239. package/dist/multistream/mediaRequestManager.js +344 -0
  240. package/dist/multistream/mediaRequestManager.js.map +1 -0
  241. package/dist/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/multistream/receiveSlot.js +200 -0
  243. package/dist/multistream/receiveSlot.js.map +1 -0
  244. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  245. package/dist/multistream/receiveSlotManager.js +174 -0
  246. package/dist/multistream/receiveSlotManager.js.map +1 -0
  247. package/dist/multistream/remoteMedia.d.ts +72 -0
  248. package/dist/multistream/remoteMedia.js +268 -0
  249. package/dist/multistream/remoteMedia.js.map +1 -0
  250. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  251. package/dist/multistream/remoteMediaGroup.js +267 -0
  252. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  253. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  254. package/dist/multistream/remoteMediaManager.js +1211 -0
  255. package/dist/multistream/remoteMediaManager.js.map +1 -0
  256. package/dist/multistream/sendSlotManager.d.ts +61 -0
  257. package/dist/multistream/sendSlotManager.js +236 -0
  258. package/dist/multistream/sendSlotManager.js.map +1 -0
  259. package/dist/networkQualityMonitor/index.js +5 -4
  260. package/dist/networkQualityMonitor/index.js.map +1 -1
  261. package/dist/personal-meeting-room/index.js +2 -3
  262. package/dist/personal-meeting-room/index.js.map +1 -1
  263. package/dist/personal-meeting-room/request.js +2 -3
  264. package/dist/personal-meeting-room/request.js.map +1 -1
  265. package/dist/personal-meeting-room/util.js +1 -2
  266. package/dist/personal-meeting-room/util.js.map +1 -1
  267. package/dist/reachability/clusterReachability.d.ts +109 -0
  268. package/dist/reachability/clusterReachability.js +357 -0
  269. package/dist/reachability/clusterReachability.js.map +1 -0
  270. package/dist/reachability/index.d.ts +61 -95
  271. package/dist/reachability/index.js +304 -392
  272. package/dist/reachability/index.js.map +1 -1
  273. package/dist/reachability/request.d.ts +7 -3
  274. package/dist/reachability/request.js +18 -10
  275. package/dist/reachability/request.js.map +1 -1
  276. package/dist/reachability/util.d.ts +8 -0
  277. package/dist/reachability/util.js +29 -0
  278. package/dist/reachability/util.js.map +1 -0
  279. package/dist/reactions/constants.d.ts +3 -0
  280. package/dist/reactions/constants.js +12 -0
  281. package/dist/reactions/constants.js.map +1 -0
  282. package/dist/reactions/reactions.d.ts +2 -2
  283. package/dist/reactions/reactions.js +4 -6
  284. package/dist/reactions/reactions.js.map +1 -1
  285. package/dist/reactions/reactions.type.d.ts +23 -3
  286. package/dist/reactions/reactions.type.js +21 -23
  287. package/dist/reactions/reactions.type.js.map +1 -1
  288. package/dist/reconnection-manager/index.d.ts +32 -8
  289. package/dist/reconnection-manager/index.js +285 -232
  290. package/dist/reconnection-manager/index.js.map +1 -1
  291. package/dist/recording-controller/enums.js +4 -5
  292. package/dist/recording-controller/enums.js.map +1 -1
  293. package/dist/recording-controller/index.d.ts +15 -1
  294. package/dist/recording-controller/index.js +57 -46
  295. package/dist/recording-controller/index.js.map +1 -1
  296. package/dist/recording-controller/util.d.ts +5 -4
  297. package/dist/recording-controller/util.js +10 -10
  298. package/dist/recording-controller/util.js.map +1 -1
  299. package/dist/roap/index.d.ts +9 -47
  300. package/dist/roap/index.js +100 -238
  301. package/dist/roap/index.js.map +1 -1
  302. package/dist/roap/request.d.ts +18 -12
  303. package/dist/roap/request.js +126 -180
  304. package/dist/roap/request.js.map +1 -1
  305. package/dist/roap/turnDiscovery.d.ts +27 -16
  306. package/dist/roap/turnDiscovery.js +115 -105
  307. package/dist/roap/turnDiscovery.js.map +1 -1
  308. package/dist/rtcMetrics/constants.d.ts +4 -0
  309. package/dist/rtcMetrics/constants.js +11 -0
  310. package/dist/rtcMetrics/constants.js.map +1 -0
  311. package/dist/rtcMetrics/index.d.ts +54 -0
  312. package/dist/rtcMetrics/index.js +140 -0
  313. package/dist/rtcMetrics/index.js.map +1 -0
  314. package/dist/statsAnalyzer/global.d.ts +1 -83
  315. package/dist/statsAnalyzer/global.js +2 -85
  316. package/dist/statsAnalyzer/global.js.map +1 -1
  317. package/dist/statsAnalyzer/index.d.ts +50 -30
  318. package/dist/statsAnalyzer/index.js +436 -511
  319. package/dist/statsAnalyzer/index.js.map +1 -1
  320. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  321. package/dist/statsAnalyzer/mqaUtil.js +130 -90
  322. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  323. package/dist/transcription/index.js +1 -2
  324. package/dist/transcription/index.js.map +1 -1
  325. package/dist/webinar/collection.d.ts +16 -0
  326. package/dist/webinar/collection.js +43 -0
  327. package/dist/webinar/collection.js.map +1 -0
  328. package/dist/webinar/index.d.ts +5 -0
  329. package/dist/webinar/index.js +68 -0
  330. package/dist/webinar/index.js.map +1 -0
  331. package/package.json +39 -26
  332. package/src/annotation/annotation.types.ts +50 -0
  333. package/src/annotation/constants.ts +36 -0
  334. package/src/annotation/index.ts +328 -0
  335. package/src/breakouts/README.md +220 -0
  336. package/src/breakouts/breakout.ts +188 -0
  337. package/src/breakouts/collection.ts +19 -0
  338. package/src/breakouts/edit-lock-error.ts +25 -0
  339. package/src/breakouts/events.ts +56 -0
  340. package/src/breakouts/index.ts +925 -0
  341. package/src/breakouts/request.ts +55 -0
  342. package/src/breakouts/utils.ts +57 -0
  343. package/src/common/errors/no-meeting-info.ts +24 -0
  344. package/src/common/errors/webex-errors.ts +36 -12
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/common/logs/request.ts +5 -1
  347. package/src/common/queue.ts +22 -8
  348. package/src/config.ts +6 -7
  349. package/src/constants.ts +265 -100
  350. package/src/controls-options-manager/enums.ts +12 -0
  351. package/src/controls-options-manager/index.ts +116 -21
  352. package/src/controls-options-manager/types.ts +59 -0
  353. package/src/controls-options-manager/util.ts +294 -14
  354. package/src/index.ts +44 -0
  355. package/src/interceptors/index.ts +3 -0
  356. package/src/interceptors/locusRetry.ts +67 -0
  357. package/src/interpretation/README.md +60 -0
  358. package/src/interpretation/collection.ts +19 -0
  359. package/src/interpretation/index.ts +332 -0
  360. package/src/interpretation/siLanguage.ts +18 -0
  361. package/src/locus-info/controlsUtils.ts +110 -0
  362. package/src/locus-info/index.ts +450 -61
  363. package/src/locus-info/infoUtils.ts +14 -2
  364. package/src/locus-info/mediaSharesUtils.ts +64 -0
  365. package/src/locus-info/parser.ts +258 -47
  366. package/src/locus-info/selfUtils.ts +85 -2
  367. package/src/media/index.ts +153 -370
  368. package/src/media/properties.ts +106 -136
  369. package/src/media/util.ts +0 -21
  370. package/src/mediaQualityMetrics/config.ts +244 -377
  371. package/src/meeting/in-meeting-actions.ts +176 -0
  372. package/src/meeting/index.ts +4306 -2581
  373. package/src/meeting/locusMediaRequest.ts +313 -0
  374. package/src/meeting/muteState.ts +224 -138
  375. package/src/meeting/request.ts +214 -127
  376. package/src/meeting/request.type.ts +13 -0
  377. package/src/meeting/util.ts +687 -423
  378. package/src/meeting/voicea-meeting.ts +161 -0
  379. package/src/meeting-info/index.ts +81 -8
  380. package/src/meeting-info/meeting-info-v2.ts +163 -13
  381. package/src/meeting-info/util.ts +1 -1
  382. package/src/meeting-info/utilv2.ts +28 -28
  383. package/src/meetings/collection.ts +33 -0
  384. package/src/meetings/index.ts +529 -127
  385. package/src/meetings/meetings.types.ts +12 -0
  386. package/src/meetings/request.ts +2 -0
  387. package/src/meetings/util.ts +116 -5
  388. package/src/member/index.ts +43 -1
  389. package/src/member/types.ts +38 -0
  390. package/src/member/util.ts +125 -28
  391. package/src/members/collection.ts +8 -0
  392. package/src/members/index.ts +187 -52
  393. package/src/members/request.ts +87 -27
  394. package/src/members/util.ts +332 -291
  395. package/src/metrics/constants.ts +15 -6
  396. package/src/metrics/index.ts +1 -471
  397. package/src/multistream/mediaRequestManager.ts +440 -0
  398. package/src/multistream/receiveSlot.ts +184 -0
  399. package/src/multistream/receiveSlotManager.ts +166 -0
  400. package/src/multistream/remoteMedia.ts +254 -0
  401. package/src/multistream/remoteMediaGroup.ts +284 -0
  402. package/src/multistream/remoteMediaManager.ts +1145 -0
  403. package/src/multistream/sendSlotManager.ts +170 -0
  404. package/src/networkQualityMonitor/index.ts +6 -6
  405. package/src/reachability/clusterReachability.ts +320 -0
  406. package/src/reachability/index.ts +246 -347
  407. package/src/reachability/request.ts +17 -8
  408. package/src/reachability/util.ts +24 -0
  409. package/src/reactions/constants.ts +4 -0
  410. package/src/reactions/reactions.ts +4 -4
  411. package/src/reactions/reactions.type.ts +30 -4
  412. package/src/reconnection-manager/index.ts +168 -156
  413. package/src/recording-controller/index.ts +20 -3
  414. package/src/recording-controller/util.ts +26 -9
  415. package/src/roap/index.ts +96 -241
  416. package/src/roap/request.ts +74 -148
  417. package/src/roap/turnDiscovery.ts +62 -56
  418. package/src/rtcMetrics/constants.ts +3 -0
  419. package/src/rtcMetrics/index.ts +124 -0
  420. package/src/statsAnalyzer/global.ts +1 -84
  421. package/src/statsAnalyzer/index.ts +479 -645
  422. package/src/statsAnalyzer/mqaUtil.ts +128 -126
  423. package/src/webinar/collection.ts +31 -0
  424. package/src/webinar/index.ts +62 -0
  425. package/test/integration/spec/converged-space-meetings.js +233 -0
  426. package/test/integration/spec/journey.js +320 -264
  427. package/test/integration/spec/space-meeting.js +77 -4
  428. package/test/unit/spec/annotation/index.ts +418 -0
  429. package/test/unit/spec/breakouts/breakout.ts +237 -0
  430. package/test/unit/spec/breakouts/collection.ts +15 -0
  431. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  432. package/test/unit/spec/breakouts/events.ts +89 -0
  433. package/test/unit/spec/breakouts/index.ts +1790 -0
  434. package/test/unit/spec/breakouts/request.ts +104 -0
  435. package/test/unit/spec/breakouts/utils.js +72 -0
  436. package/test/unit/spec/common/queue.js +31 -2
  437. package/test/unit/spec/controls-options-manager/index.js +163 -0
  438. package/test/unit/spec/controls-options-manager/util.js +576 -60
  439. package/test/unit/spec/fixture/locus.js +1 -0
  440. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  441. package/test/unit/spec/interpretation/collection.ts +15 -0
  442. package/test/unit/spec/interpretation/index.ts +589 -0
  443. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  444. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  445. package/test/unit/spec/locus-info/index.js +1438 -16
  446. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  447. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  448. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  449. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  450. package/test/unit/spec/locus-info/parser.js +116 -35
  451. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  452. package/test/unit/spec/media/index.ts +290 -0
  453. package/test/unit/spec/media/properties.ts +75 -84
  454. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  455. package/test/unit/spec/meeting/index.js +8886 -2815
  456. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  457. package/test/unit/spec/meeting/muteState.js +409 -213
  458. package/test/unit/spec/meeting/request.js +523 -43
  459. package/test/unit/spec/meeting/utils.js +834 -24
  460. package/test/unit/spec/meeting-info/index.js +300 -0
  461. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  462. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  463. package/test/unit/spec/meetings/collection.js +26 -0
  464. package/test/unit/spec/meetings/index.js +1446 -217
  465. package/test/unit/spec/meetings/utils.js +202 -2
  466. package/test/unit/spec/member/index.js +32 -9
  467. package/test/unit/spec/member/util.js +499 -61
  468. package/test/unit/spec/members/index.js +394 -5
  469. package/test/unit/spec/members/request.js +206 -27
  470. package/test/unit/spec/members/utils.js +173 -38
  471. package/test/unit/spec/metrics/index.js +1 -50
  472. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  473. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  474. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  475. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  476. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  477. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  478. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  479. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  480. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  481. package/test/unit/spec/reachability/index.ts +532 -24
  482. package/test/unit/spec/reachability/request.js +68 -0
  483. package/test/unit/spec/reachability/util.ts +40 -0
  484. package/test/unit/spec/reconnection-manager/index.js +163 -24
  485. package/test/unit/spec/recording-controller/index.js +293 -218
  486. package/test/unit/spec/recording-controller/util.js +223 -96
  487. package/test/unit/spec/roap/index.ts +187 -77
  488. package/test/unit/spec/roap/request.ts +255 -0
  489. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  490. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  491. package/test/unit/spec/stats-analyzer/index.js +644 -165
  492. package/test/unit/spec/webinar/collection.ts +13 -0
  493. package/test/unit/spec/webinar/index.ts +60 -0
  494. package/test/utils/constants.js +9 -0
  495. package/test/utils/integrationTestUtils.js +46 -0
  496. package/test/utils/testUtils.js +0 -45
  497. package/test/utils/webex-config.js +4 -0
  498. package/test/utils/webex-test-users.js +7 -3
  499. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  500. package/dist/meeting/effectsState.d.ts +0 -42
  501. package/dist/meeting/effectsState.js +0 -260
  502. package/dist/meeting/effectsState.js.map +0 -1
  503. package/dist/metrics/config.d.ts +0 -169
  504. package/dist/metrics/config.js +0 -289
  505. package/dist/metrics/config.js.map +0 -1
  506. package/dist/peer-connection-manager/index.d.ts +0 -6
  507. package/dist/peer-connection-manager/index.js +0 -671
  508. package/dist/peer-connection-manager/index.js.map +0 -1
  509. package/dist/peer-connection-manager/util.d.ts +0 -6
  510. package/dist/peer-connection-manager/util.js +0 -110
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.d.ts +0 -10
  513. package/dist/roap/collection.js +0 -63
  514. package/dist/roap/collection.js.map +0 -1
  515. package/dist/roap/handler.d.ts +0 -47
  516. package/dist/roap/handler.js +0 -279
  517. package/dist/roap/handler.js.map +0 -1
  518. package/dist/roap/state.d.ts +0 -9
  519. package/dist/roap/state.js +0 -127
  520. package/dist/roap/state.js.map +0 -1
  521. package/dist/roap/util.d.ts +0 -2
  522. package/dist/roap/util.js +0 -76
  523. package/dist/roap/util.js.map +0 -1
  524. package/src/index.js +0 -15
  525. package/src/meeting/effectsState.ts +0 -209
  526. package/src/metrics/config.ts +0 -485
  527. package/src/peer-connection-manager/index.ts +0 -847
  528. package/src/peer-connection-manager/util.ts +0 -119
  529. package/src/roap/collection.ts +0 -62
  530. package/src/roap/handler.ts +0 -294
  531. package/src/roap/state.ts +0 -156
  532. package/src/roap/util.ts +0 -100
  533. package/test/unit/spec/meeting/effectsState.js +0 -281
  534. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  535. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  536. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  537. package/test/unit/spec/roap/util.js +0 -30
  538. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
@@ -1,54 +1,47 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
2
  import sinon from 'sinon';
3
+ import {ConnectionState, Event} from '@webex/internal-media-core';
3
4
  import MediaProperties from '@webex/plugin-meetings/src/media/properties';
4
5
  import MediaUtil from '@webex/plugin-meetings/src/media/util';
5
6
  import testUtils from '../../../utils/testUtils';
6
- import {PC_BAIL_TIMEOUT} from '@webex/plugin-meetings/src/constants';
7
+ import {ICE_AND_DTLS_CONNECTION_TIMEOUT} from '@webex/plugin-meetings/src/constants';
7
8
  import {Defer} from '@webex/common';
8
9
 
9
10
  describe('MediaProperties', () => {
10
11
  let mediaProperties;
11
- let mockPc;
12
+ let mockMC;
12
13
  let clock;
13
14
 
14
15
  beforeEach(() => {
15
16
  clock = sinon.useFakeTimers();
16
17
 
17
- mockPc = {
18
+ mockMC = {
18
19
  getStats: sinon.stub().resolves([]),
19
- addEventListener: sinon.stub(),
20
- removeEventListener: sinon.stub(),
21
- iceConnectionState: 'connected',
20
+ on: sinon.stub(),
21
+ off: sinon.stub(),
22
+ getConnectionState: sinon.stub().returns(ConnectionState.Connected),
22
23
  };
23
24
 
24
- sinon.stub(MediaUtil, 'createPeerConnection').returns(mockPc);
25
-
26
25
  mediaProperties = new MediaProperties();
26
+ mediaProperties.setMediaPeerConnection(mockMC);
27
27
  });
28
28
 
29
29
  afterEach(() => {
30
30
  clock.restore();
31
31
  sinon.restore();
32
32
  });
33
- describe('waitForIceConnectedState', () => {
33
+ describe('waitForMediaConnectionConnected', () => {
34
34
  it('resolves immediately if ice state is connected', async () => {
35
- mockPc.iceConnectionState = 'connected';
36
-
37
- await mediaProperties.waitForIceConnectedState();
38
- });
39
- it('resolves immediately if ice state is completed', async () => {
40
- mockPc.iceConnectionState = 'completed';
41
-
42
- await mediaProperties.waitForIceConnectedState();
35
+ await mediaProperties.waitForMediaConnectionConnected();
43
36
  });
44
37
  it('rejects after timeout if ice state does not reach connected/completed', async () => {
45
- mockPc.iceConnectionState = 'connecting';
38
+ mockMC.getConnectionState.returns(ConnectionState.Connecting);
46
39
 
47
40
  let promiseResolved = false;
48
41
  let promiseRejected = false;
49
42
 
50
43
  mediaProperties
51
- .waitForIceConnectedState()
44
+ .waitForMediaConnectionConnected()
52
45
  .then(() => {
53
46
  promiseResolved = true;
54
47
  })
@@ -59,135 +52,133 @@ describe('MediaProperties', () => {
59
52
  assert.equal(promiseResolved, false);
60
53
  assert.equal(promiseRejected, false);
61
54
 
62
- await clock.tickAsync(PC_BAIL_TIMEOUT);
55
+ await clock.tickAsync(ICE_AND_DTLS_CONNECTION_TIMEOUT);
63
56
  await testUtils.flushPromises();
64
57
 
65
58
  assert.equal(promiseResolved, false);
66
59
  assert.equal(promiseRejected, true);
67
60
 
68
61
  // check that listener was registered and removed
69
- assert.calledOnce(mockPc.addEventListener);
70
- assert.equal(mockPc.addEventListener.getCall(0).args[0], 'iceconnectionstatechange');
71
- const listener = mockPc.addEventListener.getCall(0).args[1];
62
+ assert.calledOnce(mockMC.on);
63
+ assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
64
+ const listener = mockMC.on.getCall(0).args[1];
72
65
 
73
- assert.calledOnce(mockPc.removeEventListener);
74
- assert.calledWith(mockPc.removeEventListener, 'iceconnectionstatechange', listener);
66
+ assert.calledOnce(mockMC.off);
67
+ assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
75
68
  });
76
69
 
77
- ['connected', 'completed'].forEach((successIceState) =>
78
- it(`resolves when ice state reaches ${successIceState}`, async () => {
79
- mockPc.iceConnectionState = 'connecting';
70
+ it(`resolves when media connection reaches "connected" state`, async () => {
71
+ mockMC.getConnectionState.returns(ConnectionState.Connecting);
80
72
 
81
- const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
73
+ const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
82
74
 
83
- let promiseResolved = false;
84
- let promiseRejected = false;
75
+ let promiseResolved = false;
76
+ let promiseRejected = false;
85
77
 
86
- mediaProperties
87
- .waitForIceConnectedState()
88
- .then(() => {
89
- promiseResolved = true;
90
- })
91
- .catch(() => {
92
- promiseRejected = true;
93
- });
78
+ mediaProperties
79
+ .waitForMediaConnectionConnected()
80
+ .then(() => {
81
+ promiseResolved = true;
82
+ })
83
+ .catch(() => {
84
+ promiseRejected = true;
85
+ });
94
86
 
95
- assert.equal(promiseResolved, false);
96
- assert.equal(promiseRejected, false);
87
+ assert.equal(promiseResolved, false);
88
+ assert.equal(promiseRejected, false);
97
89
 
98
- // check the right listener was registered
99
- assert.calledOnce(mockPc.addEventListener);
100
- assert.equal(mockPc.addEventListener.getCall(0).args[0], 'iceconnectionstatechange');
101
- const listener = mockPc.addEventListener.getCall(0).args[1];
90
+ // check the right listener was registered
91
+ assert.calledOnce(mockMC.on);
92
+ assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
93
+ const listener = mockMC.on.getCall(0).args[1];
102
94
 
103
- // call the listener and pretend we are now connected
104
- mockPc.iceConnectionState = successIceState;
105
- listener();
106
- await testUtils.flushPromises();
95
+ // call the listener and pretend we are now connected
96
+ mockMC.getConnectionState.returns(ConnectionState.Connected);
97
+ listener();
98
+ await testUtils.flushPromises();
107
99
 
108
- assert.equal(promiseResolved, true);
109
- assert.equal(promiseRejected, false);
100
+ assert.equal(promiseResolved, true);
101
+ assert.equal(promiseRejected, false);
110
102
 
111
- // check that listener was removed
112
- assert.calledOnce(mockPc.removeEventListener);
113
- assert.calledWith(mockPc.removeEventListener, 'iceconnectionstatechange', listener);
103
+ // check that listener was removed
104
+ assert.calledOnce(mockMC.off);
105
+ assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
114
106
 
115
- assert.calledOnce(clearTimeoutSpy);
116
- })
117
- );
107
+ assert.calledOnce(clearTimeoutSpy);
108
+ });
118
109
  });
119
110
 
120
111
  describe('getCurrentConnectionType', () => {
121
- it('calls waitForIceConnectedState', async () => {
122
- const spy = sinon.stub(mediaProperties, 'waitForIceConnectedState');
112
+ it('calls waitForMediaConnectionConnected', async () => {
113
+ const spy = sinon.stub(mediaProperties, 'waitForMediaConnectionConnected');
123
114
 
124
115
  await mediaProperties.getCurrentConnectionType();
125
116
 
126
117
  assert.calledOnce(spy);
127
118
  });
128
- it('calls getStats() only after waitForIceConnectedState resolves', async () => {
129
- const waitForIceConnectedStateResult = new Defer();
119
+ it('calls getStats() only after waitForMediaConnectionConnected resolves', async () => {
120
+ const waitForMediaConnectionConnectedResult = new Defer();
130
121
 
131
- const waitForIceConnectedStateStub = sinon
132
- .stub(mediaProperties, 'waitForIceConnectedState')
133
- .returns(waitForIceConnectedStateResult.promise);
122
+ const waitForMediaConnectionConnectedStub = sinon
123
+ .stub(mediaProperties, 'waitForMediaConnectionConnected')
124
+ .returns(waitForMediaConnectionConnectedResult.promise);
134
125
 
135
126
  const result = mediaProperties.getCurrentConnectionType();
136
127
 
137
128
  await testUtils.flushPromises();
138
129
 
139
- assert.called(waitForIceConnectedStateStub);
140
- assert.notCalled(mockPc.getStats);
130
+ assert.called(waitForMediaConnectionConnectedStub);
131
+ assert.notCalled(mockMC.getStats);
141
132
 
142
- waitForIceConnectedStateResult.resolve();
133
+ waitForMediaConnectionConnectedResult.resolve();
143
134
  await testUtils.flushPromises();
144
135
 
145
- assert.called(mockPc.getStats);
136
+ assert.called(mockMC.getStats);
146
137
  await result;
147
138
  });
148
- it('rejects if waitForIceConnectedState rejects', async () => {
149
- const waitForIceConnectedStateResult = new Defer();
139
+ it('rejects if waitForMediaConnectionConnected rejects', async () => {
140
+ const waitForMediaConnectionConnectedResult = new Defer();
150
141
 
151
- const waitForIceConnectedStateStub = sinon
152
- .stub(mediaProperties, 'waitForIceConnectedState')
153
- .returns(waitForIceConnectedStateResult.promise);
142
+ const waitForMediaConnectionConnectedStub = sinon
143
+ .stub(mediaProperties, 'waitForMediaConnectionConnected')
144
+ .returns(waitForMediaConnectionConnectedResult.promise);
154
145
 
155
146
  const result = mediaProperties.getCurrentConnectionType();
156
147
 
157
148
  await testUtils.flushPromises();
158
149
 
159
- assert.called(waitForIceConnectedStateStub);
150
+ assert.called(waitForMediaConnectionConnectedStub);
160
151
 
161
- waitForIceConnectedStateResult.reject(new Error('fake error'));
152
+ waitForMediaConnectionConnectedResult.reject(new Error('fake error'));
162
153
  await testUtils.flushPromises();
163
154
 
164
- assert.notCalled(mockPc.getStats);
155
+ assert.notCalled(mockMC.getStats);
165
156
 
166
157
  await assert.isRejected(result);
167
158
  });
168
159
  it('returns "unknown" if getStats() fails', async () => {
169
- mockPc.getStats.rejects(new Error());
160
+ mockMC.getStats.rejects(new Error());
170
161
 
171
162
  const connectionType = await mediaProperties.getCurrentConnectionType();
172
163
  assert.equal(connectionType, 'unknown');
173
164
  });
174
165
 
175
166
  it('returns "unknown" if getStats() returns no candidate pairs', async () => {
176
- mockPc.getStats.resolves([{type: 'something', id: '1234'}]);
167
+ mockMC.getStats.resolves([{type: 'something', id: '1234'}]);
177
168
 
178
169
  const connectionType = await mediaProperties.getCurrentConnectionType();
179
170
  assert.equal(connectionType, 'unknown');
180
171
  });
181
172
 
182
173
  it('returns "unknown" if getStats() returns no successful candidate pair', async () => {
183
- mockPc.getStats.resolves([{type: 'candidate-pair', id: '1234', state: 'inprogress'}]);
174
+ mockMC.getStats.resolves([{type: 'candidate-pair', id: '1234', state: 'inprogress'}]);
184
175
 
185
176
  const connectionType = await mediaProperties.getCurrentConnectionType();
186
177
  assert.equal(connectionType, 'unknown');
187
178
  });
188
179
 
189
180
  it('returns "unknown" if getStats() returns a successful candidate pair but local candidate is missing', async () => {
190
- mockPc.getStats.resolves([
181
+ mockMC.getStats.resolves([
191
182
  {type: 'candidate-pair', id: '1234', state: 'succeeded', localCandidateId: 'wrong id'},
192
183
  ]);
193
184
 
@@ -196,7 +187,7 @@ describe('MediaProperties', () => {
196
187
  });
197
188
 
198
189
  it('returns "UDP" if getStats() returns a successful candidate pair with udp local candidate', async () => {
199
- mockPc.getStats.resolves([
190
+ mockMC.getStats.resolves([
200
191
  {
201
192
  type: 'candidate-pair',
202
193
  id: 'some candidate pair id',
@@ -212,7 +203,7 @@ describe('MediaProperties', () => {
212
203
  });
213
204
 
214
205
  it('returns "TCP" if getStats() returns a successful candidate pair with tcp local candidate', async () => {
215
- mockPc.getStats.resolves([
206
+ mockMC.getStats.resolves([
216
207
  {
217
208
  type: 'candidate-pair',
218
209
  id: 'some candidate pair id',
@@ -233,7 +224,7 @@ describe('MediaProperties', () => {
233
224
  {relayProtocol: 'udp', expectedConnectionType: 'TURN-UDP'},
234
225
  ].forEach(({relayProtocol, expectedConnectionType}) =>
235
226
  it(`returns "${expectedConnectionType}" if getStats() returns a successful candidate pair with a local candidate with relayProtocol=${relayProtocol}`, async () => {
236
- mockPc.getStats.resolves([
227
+ mockMC.getStats.resolves([
237
228
  {
238
229
  type: 'candidate-pair',
239
230
  id: 'some candidate pair id',
@@ -265,7 +256,7 @@ describe('MediaProperties', () => {
265
256
  // in real life this will never happen and all active candidate pairs will have same transport,
266
257
  // but here we're simulating a situation where they have different transports and just checking
267
258
  // that the code still works and just returns the first one
268
- mockPc.getStats.resolves([
259
+ mockMC.getStats.resolves([
269
260
  {
270
261
  type: 'inbound-rtp',
271
262
  id: 'whatever',
@@ -10,6 +10,8 @@ describe('plugin-meetings', () => {
10
10
  canLock: null,
11
11
  canUnlock: null,
12
12
  canAssignHost: null,
13
+ canSetPresenter: null,
14
+ canUnsetPresenter: null,
13
15
  canStartRecording: null,
14
16
  canPauseRecording: null,
15
17
  canResumeRecording: null,
@@ -17,6 +19,8 @@ describe('plugin-meetings', () => {
17
19
  canUnsetMuteOnEntry: null,
18
20
  canSetDisallowUnmute: null,
19
21
  canUnsetDisallowUnmute: null,
22
+ canSetMuted: null,
23
+ canUnsetMuted: null,
20
24
  canStopRecording: null,
21
25
  canRaiseHand: null,
22
26
  canLowerAllHands: null,
@@ -26,11 +30,51 @@ describe('plugin-meetings', () => {
26
30
  canStartTranscribing: null,
27
31
  canStopTranscribing: null,
28
32
  isClosedCaptionActive: null,
33
+ isSaveTranscriptsEnabled: null,
29
34
  isWebexAssistantActive: null,
30
35
  canViewCaptionPanel: null,
31
36
  isRealTimeTranslationEnabled: null,
32
37
  canSelectSpokenLanguages: null,
33
38
  waitingForOthersToJoin: null,
39
+ canSendReactions: null,
40
+ canManageBreakout: null,
41
+ canBroadcastMessageToBreakout: null,
42
+ canAdmitLobbyToBreakout: null,
43
+ canUserAskForHelp: null,
44
+ canUserRenameSelfAndObserved: null,
45
+ canUserRenameOthers: null,
46
+ isBreakoutPreassignmentsEnabled: null,
47
+ canMuteAll: null,
48
+ canUnmuteAll: null,
49
+ canEnableHardMute: null,
50
+ canDisableHardMute: null,
51
+ canEnableMuteOnEntry: null,
52
+ canDisableMuteOnEntry: null,
53
+ canEnableReactions: null,
54
+ canDisableReactions: null,
55
+ canEnableReactionDisplayNames: null,
56
+ canDisableReactionDisplayNames: null,
57
+ canUpdateShareControl: null,
58
+ canEnableViewTheParticipantsList: null,
59
+ canDisableViewTheParticipantsList: null,
60
+ canEnableRaiseHand: null,
61
+ canDisableRaiseHand: null,
62
+ canEnableVideo: null,
63
+ canDisableVideo: null,
64
+ canShareFile: null,
65
+ canShareApplication: null,
66
+ canShareCamera: null,
67
+ canShareDesktop: null,
68
+ canShareContent: null,
69
+ canTransferFile: null,
70
+ canChat: null,
71
+ canDoVideo: null,
72
+ canAnnotate: null,
73
+ canUseVoip: null,
74
+ supportHQV: null,
75
+ supportHDV: null,
76
+ canShareWhiteBoard: null,
77
+ enforceVirtualBackground: null,
34
78
  ...expected,
35
79
  };
36
80
 
@@ -49,6 +93,8 @@ describe('plugin-meetings', () => {
49
93
  'canLock',
50
94
  'canUnlock',
51
95
  'canAssignHost',
96
+ 'canSetPresenter',
97
+ 'canUnsetPresenter',
52
98
  'canStartRecording',
53
99
  'canPauseRecording',
54
100
  'canResumeRecording',
@@ -64,11 +110,51 @@ describe('plugin-meetings', () => {
64
110
  'canEnableClosedCaption',
65
111
  'canStopTranscribing',
66
112
  'isClosedCaptionActive',
113
+ 'isSaveTranscriptsEnabled',
67
114
  'isWebexAssistantActive',
68
115
  'canViewCaptionPanel',
69
116
  'isRealTimeTranslationEnabled',
70
117
  'canSelectSpokenLanguages',
71
118
  'waitingForOthersToJoin',
119
+ 'canSendReactions',
120
+ 'canManageBreakout',
121
+ 'canBroadcastMessageToBreakout',
122
+ 'canAdmitLobbyToBreakout',
123
+ 'canUserAskForHelp',
124
+ 'canUserRenameSelfAndObserved',
125
+ 'canUserRenameOthers',
126
+ 'isBreakoutPreassignmentsEnabled',
127
+ 'canMuteAll',
128
+ 'canUnmuteAll',
129
+ 'canEnableHardMute',
130
+ 'canDisableHardMute',
131
+ 'canEnableMuteOnEntry',
132
+ 'canDisableMuteOnEntry',
133
+ 'canEnableReactions',
134
+ 'canDisableReactions',
135
+ 'canEnableReactionDisplayNames',
136
+ 'canDisableReactionDisplayNames',
137
+ 'canUpdateShareControl',
138
+ 'canEnableViewTheParticipantsList',
139
+ 'canDisableViewTheParticipantsList',
140
+ 'canEnableRaiseHand',
141
+ 'canDisableRaiseHand',
142
+ 'canEnableVideo',
143
+ 'canDisableVideo',
144
+ 'canShareFile',
145
+ 'canShareApplication',
146
+ 'canShareCamera',
147
+ 'canShareDesktop',
148
+ 'canShareContent',
149
+ 'canTransferFile',
150
+ 'canChat',
151
+ 'canDoVideo',
152
+ 'canAnnotate',
153
+ 'canUseVoip',
154
+ 'supportHQV',
155
+ 'supportHDV',
156
+ 'canShareWhiteBoard',
157
+ 'enforceVirtualBackground',
72
158
  ].forEach((key) => {
73
159
  it(`get and set for ${key} work as expected`, () => {
74
160
  const inMeetingActions = new InMeetingActions();