@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.0

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 (469) hide show
  1. package/.eslintrc.js +6 -0
  2. package/README.md +12 -0
  3. package/babel.config.js +3 -0
  4. package/dist/annotation/constants.js +12 -20
  5. package/dist/annotation/constants.js.map +1 -1
  6. package/dist/annotation/index.js +25 -10
  7. package/dist/annotation/index.js.map +1 -1
  8. package/dist/breakouts/breakout.js +2 -3
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/collection.js +1 -2
  11. package/dist/breakouts/collection.js.map +1 -1
  12. package/dist/breakouts/edit-lock-error.js +1 -2
  13. package/dist/breakouts/edit-lock-error.js.map +1 -1
  14. package/dist/breakouts/events.js +1 -2
  15. package/dist/breakouts/events.js.map +1 -1
  16. package/dist/breakouts/index.js +13 -14
  17. package/dist/breakouts/index.js.map +1 -1
  18. package/dist/breakouts/request.js +1 -2
  19. package/dist/breakouts/request.js.map +1 -1
  20. package/dist/breakouts/utils.js +3 -6
  21. package/dist/breakouts/utils.js.map +1 -1
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  37. package/dist/common/errors/no-meeting-info.js +50 -0
  38. package/dist/common/errors/no-meeting-info.js.map +1 -0
  39. package/dist/common/errors/parameter.js +3 -4
  40. package/dist/common/errors/parameter.js.map +1 -1
  41. package/dist/common/errors/password-error.js +1 -2
  42. package/dist/common/errors/password-error.js.map +1 -1
  43. package/dist/common/errors/permission.js +1 -2
  44. package/dist/common/errors/permission.js.map +1 -1
  45. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  46. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +1 -2
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +1 -2
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +1 -2
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/{types/common → common}/errors/webex-errors.d.ts +13 -1
  55. package/dist/common/errors/webex-errors.js +35 -16
  56. package/dist/common/errors/webex-errors.js.map +1 -1
  57. package/dist/common/errors/webex-meetings-error.js +1 -2
  58. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  59. package/dist/common/events/events-scope.js +1 -2
  60. package/dist/common/events/events-scope.js.map +1 -1
  61. package/dist/common/events/events.js +1 -2
  62. package/dist/common/events/events.js.map +1 -1
  63. package/dist/common/events/trigger-proxy.js +1 -2
  64. package/dist/common/events/trigger-proxy.js.map +1 -1
  65. package/dist/common/events/util.js +1 -2
  66. package/dist/common/events/util.js.map +1 -1
  67. package/dist/common/logs/logger-config.js +1 -2
  68. package/dist/common/logs/logger-config.js.map +1 -1
  69. package/dist/common/logs/logger-proxy.js +1 -2
  70. package/dist/common/logs/logger-proxy.js.map +1 -1
  71. package/dist/{types/common → common}/logs/request.d.ts +3 -1
  72. package/dist/common/logs/request.js +8 -5
  73. package/dist/common/logs/request.js.map +1 -1
  74. package/dist/common/queue.js +2 -4
  75. package/dist/common/queue.js.map +1 -1
  76. package/dist/{types/config.d.ts → config.d.ts} +1 -1
  77. package/dist/config.js +3 -3
  78. package/dist/config.js.map +1 -1
  79. package/dist/{types/constants.d.ts → constants.d.ts} +72 -15
  80. package/dist/constants.js +254 -371
  81. package/dist/constants.js.map +1 -1
  82. package/dist/controls-options-manager/constants.js +3 -6
  83. package/dist/controls-options-manager/constants.js.map +1 -1
  84. package/dist/controls-options-manager/enums.js +7 -10
  85. package/dist/controls-options-manager/enums.js.map +1 -1
  86. package/dist/controls-options-manager/index.js +27 -32
  87. package/dist/controls-options-manager/index.js.map +1 -1
  88. package/dist/controls-options-manager/util.js +1 -2
  89. package/dist/controls-options-manager/util.js.map +1 -1
  90. package/dist/index.js +8 -5
  91. package/dist/index.js.map +1 -1
  92. package/dist/interceptors/index.d.ts +2 -0
  93. package/dist/interceptors/index.js +15 -0
  94. package/dist/interceptors/index.js.map +1 -0
  95. package/dist/interceptors/locusRetry.d.ts +27 -0
  96. package/dist/interceptors/locusRetry.js +94 -0
  97. package/dist/interceptors/locusRetry.js.map +1 -0
  98. package/dist/interpretation/collection.js +1 -2
  99. package/dist/interpretation/collection.js.map +1 -1
  100. package/dist/interpretation/index.js +2 -3
  101. package/dist/interpretation/index.js.map +1 -1
  102. package/dist/interpretation/siLanguage.js +2 -3
  103. package/dist/interpretation/siLanguage.js.map +1 -1
  104. package/dist/locus-info/controlsUtils.js +12 -13
  105. package/dist/locus-info/controlsUtils.js.map +1 -1
  106. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  107. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  108. package/dist/locus-info/fullState.js +1 -2
  109. package/dist/locus-info/fullState.js.map +1 -1
  110. package/dist/locus-info/hostUtils.js +1 -2
  111. package/dist/locus-info/hostUtils.js.map +1 -1
  112. package/dist/{types/locus-info → locus-info}/index.d.ts +1 -1
  113. package/dist/locus-info/index.js +63 -38
  114. package/dist/locus-info/index.js.map +1 -1
  115. package/dist/locus-info/infoUtils.js +3 -4
  116. package/dist/locus-info/infoUtils.js.map +1 -1
  117. package/dist/locus-info/mediaSharesUtils.js +16 -3
  118. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  119. package/dist/{types/locus-info → locus-info}/parser.d.ts +3 -2
  120. package/dist/locus-info/parser.js +48 -31
  121. package/dist/locus-info/parser.js.map +1 -1
  122. package/dist/locus-info/selfUtils.js +7 -6
  123. package/dist/locus-info/selfUtils.js.map +1 -1
  124. package/dist/media/index.js +15 -10
  125. package/dist/media/index.js.map +1 -1
  126. package/dist/media/properties.js +16 -7
  127. package/dist/media/properties.js.map +1 -1
  128. package/dist/media/util.js +1 -2
  129. package/dist/media/util.js.map +1 -1
  130. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  131. package/dist/mediaQualityMetrics/config.js +135 -339
  132. package/dist/mediaQualityMetrics/config.js.map +1 -1
  133. package/dist/{types/meeting → meeting}/in-meeting-actions.d.ts +4 -0
  134. package/dist/meeting/in-meeting-actions.js +18 -2
  135. package/dist/meeting/in-meeting-actions.js.map +1 -1
  136. package/dist/{types/meeting → meeting}/index.d.ts +331 -44
  137. package/dist/meeting/index.js +2639 -1367
  138. package/dist/meeting/index.js.map +1 -1
  139. package/dist/{types/meeting → meeting}/locusMediaRequest.d.ts +1 -2
  140. package/dist/meeting/locusMediaRequest.js +4 -5
  141. package/dist/meeting/locusMediaRequest.js.map +1 -1
  142. package/dist/meeting/muteState.js +2 -4
  143. package/dist/meeting/muteState.js.map +1 -1
  144. package/dist/{types/meeting → meeting}/request.d.ts +4 -1
  145. package/dist/meeting/request.js +47 -32
  146. package/dist/meeting/request.js.map +1 -1
  147. package/dist/meeting/state.js +1 -2
  148. package/dist/meeting/state.js.map +1 -1
  149. package/dist/{types/meeting → meeting}/util.d.ts +26 -1
  150. package/dist/meeting/util.js +83 -10
  151. package/dist/meeting/util.js.map +1 -1
  152. package/dist/meeting/voicea-meeting.d.ts +16 -0
  153. package/dist/meeting/voicea-meeting.js +169 -0
  154. package/dist/meeting/voicea-meeting.js.map +1 -0
  155. package/dist/meeting-info/collection.js +3 -4
  156. package/dist/meeting-info/collection.js.map +1 -1
  157. package/dist/{types/meeting-info → meeting-info}/index.d.ts +7 -0
  158. package/dist/meeting-info/index.js +53 -27
  159. package/dist/meeting-info/index.js.map +1 -1
  160. package/dist/{types/meeting-info → meeting-info}/meeting-info-v2.d.ts +1 -0
  161. package/dist/meeting-info/meeting-info-v2.js +52 -33
  162. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  163. package/dist/meeting-info/request.js +1 -2
  164. package/dist/meeting-info/request.js.map +1 -1
  165. package/dist/meeting-info/util.js +8 -8
  166. package/dist/meeting-info/util.js.map +1 -1
  167. package/dist/meeting-info/utilv2.js +12 -9
  168. package/dist/meeting-info/utilv2.js.map +1 -1
  169. package/dist/{types/meetings → meetings}/collection.d.ts +9 -0
  170. package/dist/meetings/collection.js +21 -5
  171. package/dist/meetings/collection.js.map +1 -1
  172. package/dist/{types/meetings → meetings}/index.d.ts +45 -16
  173. package/dist/meetings/index.js +166 -74
  174. package/dist/meetings/index.js.map +1 -1
  175. package/dist/meetings/request.js +2 -3
  176. package/dist/meetings/request.js.map +1 -1
  177. package/dist/meetings/util.js +3 -10
  178. package/dist/meetings/util.js.map +1 -1
  179. package/dist/{types/member → member}/index.d.ts +1 -0
  180. package/dist/member/index.js +10 -3
  181. package/dist/member/index.js.map +1 -1
  182. package/dist/member/member.types.d.ts +11 -0
  183. package/dist/member/member.types.js +17 -0
  184. package/dist/member/member.types.js.map +1 -0
  185. package/dist/member/types.js +6 -8
  186. package/dist/member/types.js.map +1 -1
  187. package/dist/member/util.js +12 -2
  188. package/dist/member/util.js.map +1 -1
  189. package/dist/members/collection.js +1 -2
  190. package/dist/members/collection.js.map +1 -1
  191. package/dist/members/index.js +25 -8
  192. package/dist/members/index.js.map +1 -1
  193. package/dist/members/request.js +2 -3
  194. package/dist/members/request.js.map +1 -1
  195. package/dist/{types/members → members}/types.d.ts +1 -0
  196. package/dist/members/types.js +3 -4
  197. package/dist/members/types.js.map +1 -1
  198. package/dist/{types/members → members}/util.d.ts +6 -1
  199. package/dist/members/util.js +18 -8
  200. package/dist/members/util.js.map +1 -1
  201. package/dist/{types/metrics → metrics}/constants.d.ts +15 -0
  202. package/dist/metrics/constants.js +16 -3
  203. package/dist/metrics/constants.js.map +1 -1
  204. package/dist/metrics/index.js +3 -2
  205. package/dist/metrics/index.js.map +1 -1
  206. package/dist/multistream/mediaRequestManager.js +9 -11
  207. package/dist/multistream/mediaRequestManager.js.map +1 -1
  208. package/dist/multistream/receiveSlot.js +3 -5
  209. package/dist/multistream/receiveSlot.js.map +1 -1
  210. package/dist/multistream/receiveSlotManager.js +7 -9
  211. package/dist/multistream/receiveSlotManager.js.map +1 -1
  212. package/dist/multistream/remoteMedia.js +3 -5
  213. package/dist/multistream/remoteMedia.js.map +1 -1
  214. package/dist/multistream/remoteMediaGroup.js +7 -6
  215. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  216. package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +9 -1
  217. package/dist/multistream/remoteMediaManager.js +74 -36
  218. package/dist/multistream/remoteMediaManager.js.map +1 -1
  219. package/dist/multistream/sendSlotManager.js +9 -6
  220. package/dist/multistream/sendSlotManager.js.map +1 -1
  221. package/dist/networkQualityMonitor/index.js +1 -2
  222. package/dist/networkQualityMonitor/index.js.map +1 -1
  223. package/dist/personal-meeting-room/index.js +2 -3
  224. package/dist/personal-meeting-room/index.js.map +1 -1
  225. package/dist/personal-meeting-room/request.js +2 -3
  226. package/dist/personal-meeting-room/request.js.map +1 -1
  227. package/dist/personal-meeting-room/util.js +1 -2
  228. package/dist/personal-meeting-room/util.js.map +1 -1
  229. package/dist/reachability/clusterReachability.d.ts +109 -0
  230. package/dist/reachability/clusterReachability.js +357 -0
  231. package/dist/reachability/clusterReachability.js.map +1 -0
  232. package/dist/reachability/index.d.ts +105 -0
  233. package/dist/reachability/index.js +279 -436
  234. package/dist/reachability/index.js.map +1 -1
  235. package/dist/{types/reachability → reachability}/request.d.ts +1 -1
  236. package/dist/reachability/request.js +14 -11
  237. package/dist/reachability/request.js.map +1 -1
  238. package/dist/reachability/util.d.ts +8 -0
  239. package/dist/reachability/util.js +29 -0
  240. package/dist/reachability/util.js.map +1 -0
  241. package/dist/reactions/constants.js +1 -2
  242. package/dist/reactions/constants.js.map +1 -1
  243. package/dist/reactions/reactions.js +2 -4
  244. package/dist/reactions/reactions.js.map +1 -1
  245. package/dist/reactions/reactions.type.js +6 -8
  246. package/dist/reactions/reactions.type.js.map +1 -1
  247. package/dist/{types/reconnection-manager → reconnection-manager}/index.d.ts +10 -0
  248. package/dist/reconnection-manager/index.js +129 -106
  249. package/dist/reconnection-manager/index.js.map +1 -1
  250. package/dist/recording-controller/enums.js +4 -5
  251. package/dist/recording-controller/enums.js.map +1 -1
  252. package/dist/recording-controller/index.js +43 -51
  253. package/dist/recording-controller/index.js.map +1 -1
  254. package/dist/recording-controller/util.js +1 -2
  255. package/dist/recording-controller/util.js.map +1 -1
  256. package/dist/{types/roap → roap}/index.d.ts +2 -1
  257. package/dist/roap/index.js +59 -28
  258. package/dist/roap/index.js.map +1 -1
  259. package/dist/{types/roap → roap}/request.d.ts +2 -1
  260. package/dist/roap/request.js +14 -22
  261. package/dist/roap/request.js.map +1 -1
  262. package/dist/{types/roap → roap}/turnDiscovery.d.ts +21 -4
  263. package/dist/roap/turnDiscovery.js +182 -89
  264. package/dist/roap/turnDiscovery.js.map +1 -1
  265. package/dist/rtcMetrics/constants.js +1 -2
  266. package/dist/rtcMetrics/constants.js.map +1 -1
  267. package/dist/{types/rtcMetrics → rtcMetrics}/index.d.ts +15 -1
  268. package/dist/rtcMetrics/index.js +72 -12
  269. package/dist/rtcMetrics/index.js.map +1 -1
  270. package/dist/statsAnalyzer/global.js +1 -2
  271. package/dist/statsAnalyzer/global.js.map +1 -1
  272. package/dist/{types/statsAnalyzer → statsAnalyzer}/index.d.ts +28 -11
  273. package/dist/statsAnalyzer/index.js +371 -318
  274. package/dist/statsAnalyzer/index.js.map +1 -1
  275. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  276. package/dist/statsAnalyzer/mqaUtil.js +295 -162
  277. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  278. package/dist/transcription/index.js +1 -2
  279. package/dist/transcription/index.js.map +1 -1
  280. package/dist/webinar/collection.d.ts +16 -0
  281. package/dist/webinar/collection.js +43 -0
  282. package/dist/webinar/collection.js.map +1 -0
  283. package/dist/webinar/index.d.ts +5 -0
  284. package/dist/webinar/index.js +68 -0
  285. package/dist/webinar/index.js.map +1 -0
  286. package/jest.config.js +3 -0
  287. package/package.json +44 -24
  288. package/process +1 -0
  289. package/src/common/errors/no-meeting-info.ts +24 -0
  290. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  291. package/src/common/errors/webex-errors.ts +19 -2
  292. package/src/common/logs/request.ts +5 -1
  293. package/src/config.ts +3 -5
  294. package/src/constants.ts +78 -8
  295. package/src/index.ts +4 -0
  296. package/src/interceptors/index.ts +3 -0
  297. package/src/interceptors/locusRetry.ts +67 -0
  298. package/src/locus-info/index.ts +52 -16
  299. package/src/locus-info/mediaSharesUtils.ts +16 -0
  300. package/src/locus-info/parser.ts +47 -21
  301. package/src/media/index.ts +8 -6
  302. package/src/media/properties.ts +17 -2
  303. package/src/mediaQualityMetrics/config.ts +103 -238
  304. package/src/meeting/in-meeting-actions.ts +8 -0
  305. package/src/meeting/index.ts +1692 -627
  306. package/src/meeting/request.ts +19 -1
  307. package/src/meeting/util.ts +102 -1
  308. package/src/meeting/voicea-meeting.ts +122 -0
  309. package/src/meeting-info/index.ts +47 -20
  310. package/src/meeting-info/meeting-info-v2.ts +32 -16
  311. package/src/meeting-info/util.ts +12 -9
  312. package/src/meeting-info/utilv2.ts +25 -15
  313. package/src/meetings/collection.ts +13 -0
  314. package/src/meetings/index.ts +112 -31
  315. package/src/meetings/util.ts +2 -8
  316. package/src/member/index.ts +9 -1
  317. package/src/member/member.types.ts +13 -0
  318. package/src/member/util.ts +14 -0
  319. package/src/members/index.ts +29 -2
  320. package/src/members/types.ts +1 -0
  321. package/src/members/util.ts +15 -1
  322. package/src/metrics/constants.ts +14 -0
  323. package/src/multistream/remoteMediaManager.ts +41 -4
  324. package/src/reachability/clusterReachability.ts +320 -0
  325. package/src/reachability/index.ts +221 -382
  326. package/src/reachability/request.ts +1 -1
  327. package/src/reachability/util.ts +24 -0
  328. package/src/reconnection-manager/index.ts +87 -83
  329. package/src/roap/index.ts +60 -24
  330. package/src/roap/request.ts +4 -17
  331. package/src/roap/turnDiscovery.ts +112 -39
  332. package/src/rtcMetrics/index.ts +71 -5
  333. package/src/statsAnalyzer/index.ts +430 -427
  334. package/src/statsAnalyzer/mqaUtil.ts +317 -168
  335. package/src/webinar/collection.ts +31 -0
  336. package/src/webinar/index.ts +62 -0
  337. package/test/integration/spec/converged-space-meetings.js +7 -7
  338. package/test/integration/spec/journey.js +88 -106
  339. package/test/integration/spec/space-meeting.js +10 -10
  340. package/test/unit/spec/breakouts/breakout.ts +2 -1
  341. package/test/unit/spec/breakouts/index.ts +7 -4
  342. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  343. package/test/unit/spec/locus-info/index.js +206 -13
  344. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  345. package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
  346. package/test/unit/spec/locus-info/parser.js +54 -13
  347. package/test/unit/spec/locus-info/selfUtils.js +1 -1
  348. package/test/unit/spec/media/index.ts +25 -4
  349. package/test/unit/spec/media/properties.ts +2 -2
  350. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  351. package/test/unit/spec/meeting/index.js +4354 -1285
  352. package/test/unit/spec/meeting/request.js +63 -12
  353. package/test/unit/spec/meeting/utils.js +145 -10
  354. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  355. package/test/unit/spec/meeting-info/index.js +180 -61
  356. package/test/unit/spec/meeting-info/meetinginfov2.js +216 -68
  357. package/test/unit/spec/meetings/collection.js +12 -0
  358. package/test/unit/spec/meetings/index.js +676 -195
  359. package/test/unit/spec/meetings/utils.js +35 -12
  360. package/test/unit/spec/member/index.js +8 -7
  361. package/test/unit/spec/member/util.js +32 -0
  362. package/test/unit/spec/members/index.js +130 -17
  363. package/test/unit/spec/members/utils.js +26 -0
  364. package/test/unit/spec/metrics/index.js +1 -2
  365. package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
  366. package/test/unit/spec/multistream/remoteMediaManager.ts +10 -2
  367. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  368. package/test/unit/spec/reachability/index.ts +505 -135
  369. package/test/unit/spec/reachability/util.ts +40 -0
  370. package/test/unit/spec/reconnection-manager/index.js +74 -17
  371. package/test/unit/spec/recording-controller/index.js +0 -1
  372. package/test/unit/spec/roap/index.ts +181 -61
  373. package/test/unit/spec/roap/request.ts +27 -3
  374. package/test/unit/spec/roap/turnDiscovery.ts +363 -102
  375. package/test/unit/spec/rtcMetrics/index.ts +57 -3
  376. package/test/unit/spec/stats-analyzer/index.js +1225 -12
  377. package/test/unit/spec/webinar/collection.ts +13 -0
  378. package/test/unit/spec/webinar/index.ts +60 -0
  379. package/test/utils/integrationTestUtils.js +4 -4
  380. package/test/utils/webex-test-users.js +12 -4
  381. package/dist/types/mediaQualityMetrics/config.d.ts +0 -365
  382. package/dist/types/reachability/index.d.ts +0 -158
  383. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -24
  384. /package/dist/{types/annotation → annotation}/annotation.types.d.ts +0 -0
  385. /package/dist/{types/annotation → annotation}/constants.d.ts +0 -0
  386. /package/dist/{types/annotation → annotation}/index.d.ts +0 -0
  387. /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
  388. /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
  389. /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
  390. /package/dist/{types/breakouts → breakouts}/events.d.ts +0 -0
  391. /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
  392. /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
  393. /package/dist/{types/breakouts → breakouts}/utils.d.ts +0 -0
  394. /package/dist/{types/common → common}/browser-detection.d.ts +0 -0
  395. /package/dist/{types/common → common}/collection.d.ts +0 -0
  396. /package/dist/{types/common → common}/config.d.ts +0 -0
  397. /package/dist/{types/common → common}/errors/captcha-error.d.ts +0 -0
  398. /package/dist/{types/common → common}/errors/intent-to-join.d.ts +0 -0
  399. /package/dist/{types/common → common}/errors/join-meeting.d.ts +0 -0
  400. /package/dist/{types/common → common}/errors/media.d.ts +0 -0
  401. /package/dist/{types/common → common}/errors/parameter.d.ts +0 -0
  402. /package/dist/{types/common → common}/errors/password-error.d.ts +0 -0
  403. /package/dist/{types/common → common}/errors/permission.d.ts +0 -0
  404. /package/dist/{types/common → common}/errors/reconnection-in-progress.d.ts +0 -0
  405. /package/dist/{types/common → common}/errors/reconnection.d.ts +0 -0
  406. /package/dist/{types/common → common}/errors/stats.d.ts +0 -0
  407. /package/dist/{types/common → common}/errors/webex-meetings-error.d.ts +0 -0
  408. /package/dist/{types/common → common}/events/events-scope.d.ts +0 -0
  409. /package/dist/{types/common → common}/events/events.d.ts +0 -0
  410. /package/dist/{types/common → common}/events/trigger-proxy.d.ts +0 -0
  411. /package/dist/{types/common → common}/events/util.d.ts +0 -0
  412. /package/dist/{types/common → common}/logs/logger-config.d.ts +0 -0
  413. /package/dist/{types/common → common}/logs/logger-proxy.d.ts +0 -0
  414. /package/dist/{types/common → common}/queue.d.ts +0 -0
  415. /package/dist/{types/controls-options-manager → controls-options-manager}/constants.d.ts +0 -0
  416. /package/dist/{types/controls-options-manager → controls-options-manager}/enums.d.ts +0 -0
  417. /package/dist/{types/controls-options-manager → controls-options-manager}/index.d.ts +0 -0
  418. /package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +0 -0
  419. /package/dist/{types/controls-options-manager → controls-options-manager}/util.d.ts +0 -0
  420. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  421. /package/dist/{types/interpretation → interpretation}/collection.d.ts +0 -0
  422. /package/dist/{types/interpretation → interpretation}/index.d.ts +0 -0
  423. /package/dist/{types/interpretation → interpretation}/siLanguage.d.ts +0 -0
  424. /package/dist/{types/locus-info → locus-info}/controlsUtils.d.ts +0 -0
  425. /package/dist/{types/locus-info → locus-info}/embeddedAppsUtils.d.ts +0 -0
  426. /package/dist/{types/locus-info → locus-info}/fullState.d.ts +0 -0
  427. /package/dist/{types/locus-info → locus-info}/hostUtils.d.ts +0 -0
  428. /package/dist/{types/locus-info → locus-info}/infoUtils.d.ts +0 -0
  429. /package/dist/{types/locus-info → locus-info}/mediaSharesUtils.d.ts +0 -0
  430. /package/dist/{types/locus-info → locus-info}/selfUtils.d.ts +0 -0
  431. /package/dist/{types/media → media}/index.d.ts +0 -0
  432. /package/dist/{types/media → media}/properties.d.ts +0 -0
  433. /package/dist/{types/media → media}/util.d.ts +0 -0
  434. /package/dist/{types/meeting → meeting}/muteState.d.ts +0 -0
  435. /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
  436. /package/dist/{types/meeting → meeting}/state.d.ts +0 -0
  437. /package/dist/{types/meeting-info → meeting-info}/collection.d.ts +0 -0
  438. /package/dist/{types/meeting-info → meeting-info}/request.d.ts +0 -0
  439. /package/dist/{types/meeting-info → meeting-info}/util.d.ts +0 -0
  440. /package/dist/{types/meeting-info → meeting-info}/utilv2.d.ts +0 -0
  441. /package/dist/{types/meetings → meetings}/meetings.types.d.ts +0 -0
  442. /package/dist/{types/meetings → meetings}/request.d.ts +0 -0
  443. /package/dist/{types/meetings → meetings}/util.d.ts +0 -0
  444. /package/dist/{types/member → member}/types.d.ts +0 -0
  445. /package/dist/{types/member → member}/util.d.ts +0 -0
  446. /package/dist/{types/members → members}/collection.d.ts +0 -0
  447. /package/dist/{types/members → members}/index.d.ts +0 -0
  448. /package/dist/{types/members → members}/request.d.ts +0 -0
  449. /package/dist/{types/metrics → metrics}/index.d.ts +0 -0
  450. /package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +0 -0
  451. /package/dist/{types/multistream → multistream}/receiveSlot.d.ts +0 -0
  452. /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
  453. /package/dist/{types/multistream → multistream}/remoteMedia.d.ts +0 -0
  454. /package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +0 -0
  455. /package/dist/{types/multistream → multistream}/sendSlotManager.d.ts +0 -0
  456. /package/dist/{types/networkQualityMonitor → networkQualityMonitor}/index.d.ts +0 -0
  457. /package/dist/{types/personal-meeting-room → personal-meeting-room}/index.d.ts +0 -0
  458. /package/dist/{types/personal-meeting-room → personal-meeting-room}/request.d.ts +0 -0
  459. /package/dist/{types/personal-meeting-room → personal-meeting-room}/util.d.ts +0 -0
  460. /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
  461. /package/dist/{types/reactions → reactions}/reactions.d.ts +0 -0
  462. /package/dist/{types/reactions → reactions}/reactions.type.d.ts +0 -0
  463. /package/dist/{types/recording-controller → recording-controller}/enums.d.ts +0 -0
  464. /package/dist/{types/recording-controller → recording-controller}/index.d.ts +0 -0
  465. /package/dist/{types/recording-controller → recording-controller}/util.d.ts +0 -0
  466. /package/dist/{types/rtcMetrics → rtcMetrics}/constants.d.ts +0 -0
  467. /package/dist/{types/statsAnalyzer → statsAnalyzer}/global.d.ts +0 -0
  468. /package/dist/{types/transcription → transcription}/index.d.ts +0 -0
  469. /package/test/unit/spec/locus-info/{selfConstant.js → lib/selfConstant.js} +0 -0
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ import {WebexPlugin} from '@webex/webex-core';
5
+ import {MEETINGS} from '../constants';
6
+
7
+ import WebinarCollection from './collection';
8
+
9
+ /**
10
+ * @class Webinar
11
+ */
12
+ const Webinar = WebexPlugin.extend({
13
+ namespace: MEETINGS,
14
+ collections: {
15
+ webinar: WebinarCollection,
16
+ },
17
+
18
+ props: {
19
+ locusUrl: 'string', // appears current webinar's locus url
20
+ webcastUrl: 'string', // current webinar's webcast url
21
+ webinarAttendeesSearchingUrl: 'string', // current webinarAttendeesSearching url
22
+ canManageWebcast: 'boolean', // appears the ability to manage webcast
23
+ },
24
+
25
+ /**
26
+ * Update the current locus url of the webinar
27
+ * @param {string} locusUrl // locus url
28
+ * @returns {void}
29
+ */
30
+ locusUrlUpdate(locusUrl) {
31
+ this.set('locusUrl', locusUrl);
32
+ },
33
+
34
+ /**
35
+ * Update the current webcast url of the meeting
36
+ * @param {string} webcastUrl // webcast url
37
+ * @returns {void}
38
+ */
39
+ webcastUrlUpdate(webcastUrl) {
40
+ this.set('webcastUrl', webcastUrl);
41
+ },
42
+
43
+ /**
44
+ * Update the current webinarAttendeesSearching url of the meeting
45
+ * @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url
46
+ * @returns {void}
47
+ */
48
+ webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {
49
+ this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);
50
+ },
51
+
52
+ /**
53
+ * Update whether self has capability to manage start/stop webcast (only host can manage it)
54
+ * @param {boolean} canManageWebcast
55
+ * @returns {void}
56
+ */
57
+ updateCanManageWebcast(canManageWebcast) {
58
+ this.set('canManageWebcast', canManageWebcast);
59
+ },
60
+ });
61
+
62
+ export default Webinar;
@@ -3,7 +3,7 @@ import 'jsdom-global/register';
3
3
  import {assert} from '@webex/test-helper-chai';
4
4
  import {skipInNode} from '@webex/test-helper-mocha';
5
5
  import BrowserDetection from '@webex/plugin-meetings/dist/common/browser-detection';
6
- import {createCameraTrack, createMicrophoneTrack} from '@webex/plugin-meetings';
6
+ import {createCameraStream, createMicrophoneStream} from '@webex/plugin-meetings';
7
7
 
8
8
  import {MEDIA_SERVERS} from '../../utils/constants';
9
9
  import testUtils from '../../utils/testUtils';
@@ -153,14 +153,14 @@ skipInNode(describe)('plugin-meetings', () => {
153
153
  });
154
154
 
155
155
  it('users "alice", "bob", and "chris" create local tracks', async () => {
156
- localTracks.alice.microphone = await createMicrophoneTrack();
157
- localTracks.alice.camera = await createCameraTrack();
156
+ localTracks.alice.microphone = await createMicrophoneStream();
157
+ localTracks.alice.camera = await createCameraStream();
158
158
 
159
- localTracks.bob.microphone = await createMicrophoneTrack();
160
- localTracks.bob.camera = await createCameraTrack();
159
+ localTracks.bob.microphone = await createMicrophoneStream();
160
+ localTracks.bob.camera = await createCameraStream();
161
161
 
162
- localTracks.chris.microphone = await createMicrophoneTrack();
163
- localTracks.chris.camera = await createCameraTrack();
162
+ localTracks.chris.microphone = await createMicrophoneStream();
163
+ localTracks.chris.camera = await createCameraStream();
164
164
  });
165
165
 
166
166
  it('users "alice", "bob", and "chris" add media', async () => {
@@ -6,10 +6,11 @@ import {skipInNode} from '@webex/test-helper-mocha';
6
6
  import sinon from 'sinon';
7
7
 
8
8
  import BrowserDetection from '@webex/plugin-meetings/dist/common/browser-detection';
9
- import {createCameraTrack, createDisplayTrack, createMicrophoneTrack, LocalTrackEvents} from '@webex/plugin-meetings';
9
+ import {createCameraStream, createDisplayStream, createMicrophoneStream, LocalTrackEvents, LocalStreamEventNames} from '@webex/plugin-meetings';
10
10
 
11
11
  import testUtils from '../../utils/testUtils';
12
12
  import integrationTestUtils from '../../utils/integrationTestUtils';
13
+ import {EVENT_TRIGGERS} from '../../../dist/constants';
13
14
 
14
15
  require('dotenv').config();
15
16
 
@@ -19,7 +20,7 @@ const {isBrowser} = BrowserDetection();
19
20
 
20
21
  let userSet, alice, bob, chris, enumerateSpy, channelUrlA, channelUrlB;
21
22
 
22
- const localTracks = {
23
+ const localStreams = {
23
24
  alice: {
24
25
  microphone: undefined,
25
26
  camera: undefined,
@@ -43,14 +44,14 @@ const localTracks = {
43
44
  },
44
45
  };
45
46
 
46
-
47
- const waitForPublished = (track, expectedPublished, description) => {
47
+ // Updated expectedPublished from a boolean value to an object containing the stream and status properties
48
+ const waitForPublished = (meeting, expectedPublished, description) => {
48
49
  return testUtils.waitForEvents([{
49
- scope: track,
50
- event: LocalTrackEvents.PublishedStateUpdate,
51
- match: ({isPublished}) => {
52
- console.log(`${description} is now ${isPublished ? 'published': 'not published'}`);
53
- return (isPublished === expectedPublished);
50
+ scope: meeting,
51
+ event: EVENT_TRIGGERS.MEETING_STREAM_PUBLISH_STATE_CHANGED,
52
+ match: (event) => {
53
+ console.log(`${description} is now ${event.isPublished ? 'published': 'not published'}`);
54
+ return (event.isPublished === expectedPublished.status && event.stream.id === expectedPublished.stream.id) ;
54
55
  }
55
56
  }]);
56
57
  };
@@ -238,7 +239,7 @@ skipInNode(describe)('plugin-meetings', () => {
238
239
 
239
240
  // Enabled when config.enableUnifiedMeetings = true
240
241
  xdescribe('Conversation URL', () => {
241
- describe('Successful 1:1 meeting', () => {
242
+ describe('Successful 1:1 meeting', () => {
242
243
  it('Fetch meeting information with a conversation URL for a 1:1 space', async () => {
243
244
  assert.equal(Object.keys(bob.webex.meetings.getAllMeetings()), 0);
244
245
  assert.equal(Object.keys(chris.webex.meetings.getAllMeetings()), 0);
@@ -312,8 +313,8 @@ skipInNode(describe)('plugin-meetings', () => {
312
313
  });
313
314
 
314
315
  it('alice creates local microphone and camera tracks', async () => {
315
- localTracks.alice.microphone = await createMicrophoneTrack();
316
- localTracks.alice.camera = await createCameraTrack();
316
+ localStreams.alice.microphone = await createMicrophoneStream();
317
+ localStreams.alice.camera = await createCameraStream();
317
318
  });
318
319
 
319
320
  it('alice dials bob and adds media', () =>
@@ -343,7 +344,7 @@ skipInNode(describe)('plugin-meetings', () => {
343
344
  })
344
345
  .then(() =>
345
346
  Promise.all([
346
- integrationTestUtils.addMedia(alice, {microphone: localTracks.alice.microphone, camera: localTracks.alice.camera}),
347
+ integrationTestUtils.addMedia(alice, {microphone: localStreams.alice.microphone, camera: localStreams.alice.camera}),
347
348
  testUtils.waitForEvents([
348
349
  {scope: alice.meeting, event: 'meeting:media:local:start', user: alice},
349
350
  ]),
@@ -371,13 +372,13 @@ skipInNode(describe)('plugin-meetings', () => {
371
372
  });
372
373
 
373
374
  it('bob creates local microphone and camera tracks', async () => {
374
- localTracks.bob.microphone = await createMicrophoneTrack();
375
- localTracks.bob.camera = await createCameraTrack();
375
+ localStreams.bob.microphone = await createMicrophoneStream();
376
+ localStreams.bob.camera = await createCameraStream();
376
377
  });
377
378
 
378
379
  it('bob adds media to the meeting', () =>
379
380
  Promise.all([
380
- integrationTestUtils.addMedia(bob, {microphone: localTracks.bob.microphone, camera: localTracks.bob.camera}),
381
+ integrationTestUtils.addMedia(bob, {microphone: localStreams.bob.microphone, camera: localStreams.bob.camera}),
381
382
  testUtils
382
383
  .waitForEvents([
383
384
  {scope: bob.meeting, event: 'meeting:media:local:start', user: bob},
@@ -431,11 +432,11 @@ skipInNode(describe)('plugin-meetings', () => {
431
432
  {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
432
433
  ]);
433
434
 
434
- localTracks.alice.microphone.setMuted(true);
435
+ localStreams.alice.microphone.setMuted(true);
435
436
 
436
437
  await membersUpdate;
437
438
 
438
- assert.equal(localTracks.alice.microphone.muted, true);
439
+ assert.equal(localStreams.alice.microphone.muted, true);
439
440
  });
440
441
 
441
442
  it('alice Audio unMute ', async () => {
@@ -450,11 +451,11 @@ skipInNode(describe)('plugin-meetings', () => {
450
451
  {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
451
452
  ]);
452
453
 
453
- localTracks.alice.microphone.setMuted(false);
454
+ localStreams.alice.microphone.setMuted(false);
454
455
 
455
456
  await membersUpdate;
456
457
 
457
- assert.equal(localTracks.alice.microphone.muted, false);
458
+ assert.equal(localStreams.alice.microphone.muted, false);
458
459
  });
459
460
 
460
461
  it('alice video mute', async () => {
@@ -469,11 +470,11 @@ skipInNode(describe)('plugin-meetings', () => {
469
470
  {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
470
471
  ]);
471
472
 
472
- localTracks.alice.camera.setMuted(true);
473
+ localStreams.alice.camera.setMuted(true);
473
474
 
474
475
  await membersUpdate;
475
476
 
476
- assert.equal(localTracks.alice.camera.muted, true);
477
+ assert.equal(localStreams.alice.camera.muted, true);
477
478
  });
478
479
 
479
480
  it('alice video unmute', async () => {
@@ -488,77 +489,57 @@ skipInNode(describe)('plugin-meetings', () => {
488
489
  {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
489
490
  ]);
490
491
 
491
- localTracks.alice.camera.setMuted(false);
492
+ localStreams.alice.camera.setMuted(false);
492
493
 
493
494
  await membersUpdate;
494
495
 
495
- assert.equal(localTracks.alice.camera.muted, false);
496
+ assert.equal(localStreams.alice.camera.muted, false);
496
497
  });
497
498
 
498
499
  it('alice update Audio', async () => {
499
- const oldVideoTrackId = alice.meeting.mediaProperties.videoTrack.id;
500
-
501
- const oldMicrophoneTrack = localTracks.alice.microphone;
502
- const newMicrophoneTrack = await createMicrophoneTrack();
503
-
504
- assert.equal(oldMicrophoneTrack.published, true);
505
- assert.notEqual(oldMicrophoneTrack.id, newMicrophoneTrack.id);
506
-
507
- const oldTrackUnpublished = waitForPublished(oldMicrophoneTrack, false, "Alice AUDIO: old microphone track");
508
- const newTrackPublished = waitForPublished(newMicrophoneTrack, true, "Alice AUDIO: new microphone track");
500
+ const newMicrophoneStream = await createMicrophoneStream();
501
+ const newStreamPublished = waitForPublished(alice.meeting, {stream: newMicrophoneStream, status: true}, "Alice AUDIO: new microphone stream");
509
502
 
510
503
  await testUtils.delayedPromise(
511
504
  alice.meeting
512
- .publishTracks({
513
- microphone: newMicrophoneTrack,
505
+ .publishStreams({
506
+ microphone: newMicrophoneStream,
514
507
  })
515
508
  .then(() => {
516
- console.log('Alice AUDIO: new track on meeting object:', alice.meeting.mediaProperties.audioTrack);
509
+ console.log('Alice AUDIO: new stream on meeting object:', alice.meeting.mediaProperties.audioStream);
517
510
  assert.equal(
518
- alice.meeting.mediaProperties.audioTrack.id,
519
- newMicrophoneTrack.id
511
+ alice.meeting.mediaProperties.audioStream.id,
512
+ newMicrophoneStream.id
520
513
  );
521
- assert.equal(alice.meeting.mediaProperties.videoTrack.id, oldVideoTrackId);
522
514
  })
523
515
  );
524
516
 
525
- await oldTrackUnpublished;
526
- await newTrackPublished;
517
+ await newStreamPublished;
527
518
 
528
- localTracks.alice.microphone = newMicrophoneTrack;
519
+ localStreams.alice.microphone = newMicrophoneStream;
529
520
  });
530
521
 
531
522
  it('alice update video', async () => {
532
- const oldAudioTrackId = alice.meeting.mediaProperties.audioTrack.id;
533
-
534
- const oldCameraTrack = localTracks.alice.camera;
535
- const newCameraTrack = await createCameraTrack();
536
-
537
- assert.equal(oldCameraTrack.published, true);
538
- assert.notEqual(oldCameraTrack.id, newCameraTrack.id);
539
-
540
- const oldTrackUnpublished = waitForPublished(oldCameraTrack, false, "Alice VIDEO: old camera track");
541
- const newTrackPublished = waitForPublished(newCameraTrack, true, "Alice VIDEO: new camera track");
523
+ const newCameraStream = await createCameraStream();
524
+ const newStreamPublished = waitForPublished(alice.meeting, {stream: newCameraStream, status: true}, "Alice VIDEO: new camera stream");
542
525
 
543
526
  await testUtils.delayedPromise(
544
527
  alice.meeting
545
- .publishTracks({
546
- camera: newCameraTrack,
528
+ .publishStreams({
529
+ camera: newCameraStream,
547
530
  })
548
531
  .then(() => {
549
- console.log('Alice VIDEO: new track on meeting:', alice.meeting.mediaProperties.videoTrack);
532
+ console.log('Alice VIDEO: new stream on meeting:', alice.meeting.mediaProperties.videoStream);
550
533
  assert.equal(
551
- alice.meeting.mediaProperties.videoTrack.id,
552
- newCameraTrack.id
534
+ alice.meeting.mediaProperties.videoStream.id,
535
+ newCameraStream.id
553
536
  );
554
- assert.equal(alice.meeting.mediaProperties.audioTrack.id, oldAudioTrackId);
555
537
  })
556
538
  );
557
539
 
558
- await oldTrackUnpublished;
559
- await newTrackPublished;
540
+ await newStreamPublished;
560
541
 
561
- localTracks.alice.camera = newCameraTrack;
542
+ localStreams.alice.camera = newCameraStream;
562
543
  });
563
544
 
564
545
  it('alice mutes bob', () =>
@@ -593,11 +574,11 @@ skipInNode(describe)('plugin-meetings', () => {
593
574
  ]);
594
575
 
595
576
  // first bob mutes himself
596
- localTracks.bob.microphone.setMuted(true);
577
+ localStreams.bob.microphone.setMuted(true);
597
578
 
598
579
  await membersUpdate;
599
580
 
600
- assert.equal(localTracks.bob.microphone.muted, true);
581
+ assert.equal(localStreams.bob.microphone.muted, true);
601
582
 
602
583
  // now alice tries to unmmute bob
603
584
  await testUtils.delayedPromise(alice.meeting.mute(bob.meeting.members.selfId, false))
@@ -612,7 +593,7 @@ skipInNode(describe)('plugin-meetings', () => {
612
593
  assert.fail('bob received unexpected meeting:self:unmutedByOthers event');
613
594
  })
614
595
  .catch(() => {
615
- assert.equal(localTracks.bob.microphone.muted, true);
596
+ assert.equal(localStreams.bob.microphone.muted, true);
616
597
  });
617
598
  });
618
599
 
@@ -626,15 +607,15 @@ skipInNode(describe)('plugin-meetings', () => {
626
607
  {scope: alice.meeting.members, event: 'members:update', match: checkEvent},
627
608
  ]);
628
609
 
629
- localTracks.bob.microphone.setMuted(false);
610
+ localStreams.bob.microphone.setMuted(false);
630
611
 
631
612
  await membersUpdate;
632
613
 
633
- assert.equal(localTracks.bob.microphone.muted, false);
614
+ assert.equal(localStreams.bob.microphone.muted, false);
634
615
  });
635
616
 
636
617
  it('alice shares the screen with highFrameRate', async () => {
637
- localTracks.alice.screenShare.video = await createDisplayTrack();
618
+ localStreams.alice.screenShare.video = await createDisplayStream();
638
619
 
639
620
  const startedSharingLocal = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingLocal'}]);
640
621
  const startedSharingRemote = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingRemote'}])
@@ -648,9 +629,10 @@ skipInNode(describe)('plugin-meetings', () => {
648
629
  JSON.stringify(response, testUtils.getCircularReplacer())
649
630
  );
650
631
  });
651
- const screenShareVideoPublished = waitForPublished(localTracks.alice.screenShare.video, true, "alice's screen share video track");
652
632
 
653
- await testUtils.delayedPromise(alice.meeting.publishTracks({screenShare: {video: localTracks.alice.screenShare.video}}));
633
+ const screenShareVideoPublished = waitForPublished(alice.meeting, {stream: localStreams.alice.screenShare.video, status: true}, "alice's screen share video stream");
634
+
635
+ await testUtils.delayedPromise(alice.meeting.publishStreams({screenShare: {video: localStreams.alice.screenShare.video}}));
654
636
 
655
637
  await screenShareVideoPublished;
656
638
  await startedSharingLocal;
@@ -669,7 +651,7 @@ skipInNode(describe)('plugin-meetings', () => {
669
651
  });
670
652
 
671
653
  it('bob steals the screen share from alice', async () => {
672
- localTracks.bob.screenShare.video = await createDisplayTrack();
654
+ localStreams.bob.screenShare.video = await createDisplayStream();
673
655
 
674
656
  const stoppedSharingLocal = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingLocal'}]);
675
657
  const startedSharingLocal = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingLocal'}]);
@@ -684,10 +666,10 @@ skipInNode(describe)('plugin-meetings', () => {
684
666
  JSON.stringify(response, testUtils.getCircularReplacer())
685
667
  );
686
668
  });
687
- const aliceScreenShareVideoUnpublished = waitForPublished(localTracks.alice.screenShare.video, false, "alice's screen share video track");
688
- const bobScreenShareVideoPublished = waitForPublished(localTracks.bob.screenShare.video, true, "bob's screen share video track");
669
+ const aliceScreenShareVideoUnpublished = waitForPublished(alice.meeting, {stream: localStreams.alice.screenShare.video, status: false}, "alice's screen share video stream");
670
+ const bobScreenShareVideoPublished = waitForPublished(bob.meeting, {stream: localStreams.bob.screenShare.video, status: true}, "bob's screen share video stream");
689
671
 
690
- await testUtils.delayedPromise(bob.meeting.publishTracks({screenShare: {video: localTracks.bob.screenShare.video}}));
672
+ await testUtils.delayedPromise(bob.meeting.publishStreams({screenShare: {video: localStreams.bob.screenShare.video}}));
691
673
 
692
674
  await bobScreenShareVideoPublished;
693
675
  await aliceScreenShareVideoUnpublished;
@@ -696,8 +678,8 @@ skipInNode(describe)('plugin-meetings', () => {
696
678
  await startedSharingRemote;
697
679
  await aliceReceivesMembersUpdate;
698
680
 
699
- localTracks.alice.screenShare.video.stop();
700
- localTracks.alice.screenShare.video = undefined;
681
+ localStreams.alice.screenShare.video.stop();
682
+ localStreams.alice.screenShare.video = undefined;
701
683
 
702
684
  assert.equal(bob.meeting.screenShareFloorState, 'floor_request_granted');
703
685
  assert.equal(bob.meeting.shareStatus, 'local_share_active');
@@ -707,18 +689,18 @@ skipInNode(describe)('plugin-meetings', () => {
707
689
  });
708
690
 
709
691
  it('bob stops sharing', async () => {
710
- const screenShareVideoUnpublished = waitForPublished(localTracks.bob.screenShare.video, false, "bob's screen share video track");
692
+ const screenShareVideoUnpublished = waitForPublished(bob.meeting, {stream: localStreams.bob.screenShare.video, status: false}, "bob's screen share video stream");
711
693
  const stoppedSharingLocal = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:stoppedSharingLocal'}]);
712
694
  const stoppedSharingRemote = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingRemote'}]);
713
695
 
714
- await testUtils.delayedPromise(bob.meeting.unpublishTracks([localTracks.bob.screenShare.video]));
696
+ await testUtils.delayedPromise(bob.meeting.unpublishStreams([localStreams.bob.screenShare.video]));
715
697
 
716
698
  await screenShareVideoUnpublished;
717
699
  await stoppedSharingLocal;
718
700
  await stoppedSharingRemote;
719
701
 
720
- localTracks.bob.screenShare.video.stop();
721
- localTracks.bob.screenShare.video = undefined;
702
+ localStreams.bob.screenShare.video.stop();
703
+ localStreams.bob.screenShare.video = undefined;
722
704
 
723
705
  assert.equal(bob.meeting.screenShareFloorState, 'floor_released');
724
706
  assert.equal(bob.meeting.shareStatus, 'no_share');
@@ -829,7 +811,7 @@ skipInNode(describe)('plugin-meetings', () => {
829
811
  }));
830
812
 
831
813
  it('bob steals the share from alice with desktop share', async () => {
832
- localTracks.bob.screenShare.video = await createDisplayTrack();
814
+ localStreams.bob.screenShare.video = await createDisplayStream();
833
815
 
834
816
  const stoppedSharingWhiteboard = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingWhiteboard'}]);
835
817
  const startedSharingLocal = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingLocal'}]);
@@ -844,9 +826,9 @@ skipInNode(describe)('plugin-meetings', () => {
844
826
  JSON.stringify(response, testUtils.getCircularReplacer())
845
827
  );
846
828
  });
847
- const bobScreenShareVideoPublished = waitForPublished(localTracks.bob.screenShare.video, true, "bob's screen share video track");
829
+ const bobScreenShareVideoPublished = waitForPublished(bob.meeting, {stream: localStreams.bob.screenShare.video, status: true}, "bob's screen share video stream");
848
830
 
849
- await testUtils.delayedPromise(bob.meeting.publishTracks({screenShare: {video: localTracks.bob.screenShare.video}}));
831
+ await testUtils.delayedPromise(bob.meeting.publishStreams({screenShare: {video: localStreams.bob.screenShare.video}}));
850
832
 
851
833
  await bobScreenShareVideoPublished;
852
834
  await stoppedSharingWhiteboard;
@@ -889,7 +871,7 @@ skipInNode(describe)('plugin-meetings', () => {
889
871
  assert.equal(bob.meeting.shareStatus, 'whiteboard_share_active');
890
872
  }));
891
873
 
892
- it('alice adds chris as guest to 1:1 meeting', () =>
874
+ it('alice adds chris as guest to 1:1 meeting', async() =>
893
875
  Promise.all([
894
876
  testUtils.delayedPromise(alice.meeting.invite({emailAddress: chris.emailAddress})),
895
877
  testUtils.waitForEvents([
@@ -931,10 +913,10 @@ skipInNode(describe)('plugin-meetings', () => {
931
913
  })
932
914
  .then(() => testUtils.waitForStateChange(chris.meeting, 'JOINED'))
933
915
  .then(async () => {
934
- localTracks.chris.microphone = await createMicrophoneTrack();
935
- localTracks.chris.camera = await createCameraTrack();
916
+ localStreams.chris.microphone = await createMicrophoneStream();
917
+ localStreams.chris.camera = await createCameraStream();
936
918
  })
937
- .then(() => integrationTestUtils.addMedia(chris, {microphone: localTracks.chris.microphone, camera: localTracks.chris.camera}))
919
+ .then(() => integrationTestUtils.addMedia(chris, {microphone: localStreams.chris.microphone, camera: localStreams.chris.camera}))
938
920
  .then(() => assert(enumerateSpy.called));
939
921
  })
940
922
  .then(() =>
@@ -982,32 +964,32 @@ skipInNode(describe)('plugin-meetings', () => {
982
964
  });
983
965
  });
984
966
 
985
- it('stop all local tracks', () => {
986
- if (localTracks.alice.microphone) {
987
- localTracks.alice.microphone.stop();
988
- localTracks.alice.microphone = undefined;
967
+ it('stop all local streams', () => {
968
+ if (localStreams.alice.microphone) {
969
+ localStreams.alice.microphone.stop();
970
+ localStreams.alice.microphone = undefined;
989
971
  }
990
- if (localTracks.alice.camera) {
991
- localTracks.alice.camera.stop();
992
- localTracks.alice.camera = undefined;
972
+ if (localStreams.alice.camera) {
973
+ localStreams.alice.camera.stop();
974
+ localStreams.alice.camera = undefined;
993
975
  }
994
976
 
995
- if (localTracks.bob.microphone) {
996
- localTracks.bob.microphone.stop();
997
- localTracks.bob.microphone = undefined;
977
+ if (localStreams.bob.microphone) {
978
+ localStreams.bob.microphone.stop();
979
+ localStreams.bob.microphone = undefined;
998
980
  }
999
- if (localTracks.bob.camera) {
1000
- localTracks.bob.camera.stop();
1001
- localTracks.bob.camera = undefined;
981
+ if (localStreams.bob.camera) {
982
+ localStreams.bob.camera.stop();
983
+ localStreams.bob.camera = undefined;
1002
984
  }
1003
985
 
1004
- if (localTracks.chris.microphone) {
1005
- localTracks.chris.microphone.stop();
1006
- localTracks.chris.microphone = undefined;
986
+ if (localStreams.chris.microphone) {
987
+ localStreams.chris.microphone.stop();
988
+ localStreams.chris.microphone = undefined;
1007
989
  }
1008
- if (localTracks.chris.camera) {
1009
- localTracks.chris.camera.stop();
1010
- localTracks.chris.camera = undefined;
990
+ if (localStreams.chris.camera) {
991
+ localStreams.chris.camera.stop();
992
+ localStreams.chris.camera = undefined;
1011
993
  }
1012
994
  });
1013
995
  });
@@ -3,7 +3,7 @@ import {assert} from '@webex/test-helper-chai';
3
3
  import {skipInNode, jenkinsOnly} from '@webex/test-helper-mocha';
4
4
  import {patterns} from '@webex/common';
5
5
  import MeetingInfoUtil from '@webex/plugin-meetings/dist/meeting-info/utilv2';
6
- import {createCameraTrack, createMicrophoneTrack} from '@webex/plugin-meetings';
6
+ import {createCameraStream, createMicrophoneStream} from '@webex/plugin-meetings';
7
7
 
8
8
  import CMR from '../../utils/cmr';
9
9
  import testUtils from '../../utils/testUtils';
@@ -34,7 +34,7 @@ skipInNode(describe)('plugin-meetings', () => {
34
34
  describe('space-meeting', () => {
35
35
  let space = null;
36
36
 
37
- before(() =>
37
+ before(async () =>
38
38
  webexTestUsers
39
39
  .generateTestUsers({
40
40
  count: 4,
@@ -153,11 +153,11 @@ skipInNode(describe)('plugin-meetings', () => {
153
153
  .then(() => testUtils.waitForStateChange(chris.meeting, 'JOINED')));
154
154
 
155
155
  it('Bob and Alice create local microphone and camera tracks', async () => {
156
- localTracks.alice.microphone = await createMicrophoneTrack();
157
- localTracks.alice.camera = await createCameraTrack();
156
+ localTracks.alice.microphone = await createMicrophoneStream();
157
+ localTracks.alice.camera = await createCameraStream();
158
158
 
159
- localTracks.bob.microphone = await createMicrophoneTrack();
160
- localTracks.bob.camera = await createCameraTrack();
159
+ localTracks.bob.microphone = await createMicrophoneStream();
160
+ localTracks.bob.camera = await createCameraStream();
161
161
  });
162
162
 
163
163
  it('Bob and Alice addsMedia', () =>
@@ -214,8 +214,8 @@ skipInNode(describe)('plugin-meetings', () => {
214
214
  )
215
215
  .then(() => testUtils.waitForStateChange(guest.meeting, 'JOINED'))
216
216
  .then(async () => {
217
- localTracks.guest.microphone = await createMicrophoneTrack();
218
- localTracks.guest.camera = await createCameraTrack();
217
+ localTracks.guest.microphone = await createMicrophoneStream();
218
+ localTracks.guest.camera = await createCameraStream();
219
219
  })
220
220
  .then(() => integrationTestUtils.addMedia(guest, {microphone: localTracks.guest.microphone, camera: localTracks.guest.camera}))
221
221
  .catch((e) => {
@@ -474,8 +474,8 @@ skipInNode(describe)('plugin-meetings', () => {
474
474
  ])
475
475
  .then(() => testUtils.waitForStateChange(guest.meeting, 'JOINED'))
476
476
  .then(async () => {
477
- localTracks.guest.microphone = await createMicrophoneTrack();
478
- localTracks.guest.camera = await createCameraTrack();
477
+ localTracks.guest.microphone = await createMicrophoneStream();
478
+ localTracks.guest.camera = await createCameraStream();
479
479
  })
480
480
  .then(() => integrationTestUtils.addMedia(guest, {microphone: localTracks.guest.microphone, camera: localTracks.guest.camera}));
481
481
  })
@@ -89,7 +89,7 @@ describe('plugin-meetings', () => {
89
89
  })
90
90
  };
91
91
 
92
- sinon.stub(webex.internal.newMetrics.submitClientEvent, 'bind').returns(webex.internal.newMetrics.submitClientEvent);
92
+ const submitClientEventStub = sinon.stub(webex.internal.newMetrics.submitClientEvent, 'bind').returns(webex.internal.newMetrics.submitClientEvent);
93
93
 
94
94
  let onBreakoutMoveRequestStub = sinon.stub(breakoutEvent, 'onBreakoutMoveRequest');
95
95
  let onBreakoutMoveResponseStub = sinon.stub(breakoutEvent, 'onBreakoutMoveResponse');
@@ -105,6 +105,7 @@ describe('plugin-meetings', () => {
105
105
 
106
106
  onBreakoutMoveRequestStub.restore();
107
107
  onBreakoutMoveResponseStub.restore();
108
+ submitClientEventStub.restore()
108
109
  });
109
110
  });
110
111
 
@@ -381,7 +381,7 @@ describe('plugin-meetings', () => {
381
381
  id: 'meeting-id'
382
382
  })
383
383
  };
384
- breakoutEvent.onBreakoutJoinResponse = sinon.stub();
384
+ const onBreakoutJoinResponseSpy = sinon.stub(breakoutEvent,'onBreakoutJoinResponse')
385
385
  breakouts.currentBreakoutSession.sessionId = "sessionId-old";
386
386
  breakouts.updateBreakout({
387
387
  sessionId: 'sessionId-new',
@@ -398,7 +398,9 @@ describe('plugin-meetings', () => {
398
398
  breakoutMoveId: 'breakoutMoveId',
399
399
  });
400
400
 
401
- assert.calledOnce(breakoutEvent.onBreakoutJoinResponse);
401
+ assert.calledOnce(onBreakoutJoinResponseSpy);
402
+
403
+ onBreakoutJoinResponseSpy.restore()
402
404
 
403
405
  });
404
406
 
@@ -408,7 +410,7 @@ describe('plugin-meetings', () => {
408
410
  id: 'meeting-id'
409
411
  })
410
412
  };
411
- breakoutEvent.onBreakoutJoinResponse = sinon.stub();
413
+ const onBreakoutJoinResponseSpy = sinon.stub(breakoutEvent, 'onBreakoutJoinResponse');
412
414
  breakouts.currentBreakoutSession.sessionId = "sessionId";
413
415
  breakouts.currentBreakoutSession.groupId = "groupId";
414
416
  breakouts.updateBreakout({
@@ -426,7 +428,8 @@ describe('plugin-meetings', () => {
426
428
  breakoutMoveId: 'breakoutMoveId',
427
429
  });
428
430
 
429
- assert.notCalled(breakoutEvent.onBreakoutJoinResponse);
431
+ assert.notCalled(onBreakoutJoinResponseSpy);
432
+ onBreakoutJoinResponseSpy.restore()
430
433
 
431
434
  });
432
435
  });