@webex/plugin-meetings 2.60.1-next.9 → 2.60.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +8 -58
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -6
  54. package/dist/config.js +10 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +100 -234
  57. package/dist/constants.js +444 -433
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +5 -121
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +520 -705
  111. package/dist/meeting/index.js +3083 -5041
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -304
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -118
  122. package/dist/meeting/util.js +435 -676
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +20 -114
  142. package/dist/meetings/index.js +133 -540
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +95 -61
  193. package/dist/reachability/index.js +392 -304
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +232 -285
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +238 -100
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -50
  240. package/dist/statsAnalyzer/index.js +511 -436
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +90 -130
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -39
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -6
  253. package/src/constants.ts +100 -265
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -450
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2581 -4306
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -214
  273. package/src/meeting/util.ts +423 -687
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +136 -531
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +347 -246
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -96
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +645 -479
  310. package/src/statsAnalyzer/mqaUtil.ts +126 -128
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1437
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +2313 -8384
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +43 -523
  330. package/test/unit/spec/meeting/utils.js +24 -834
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +232 -1445
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -532
  347. package/test/unit/spec/reconnection-manager/index.js +24 -163
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +77 -187
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +165 -644
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interceptors/index.d.ts +0 -2
  395. package/dist/interceptors/index.js +0 -15
  396. package/dist/interceptors/index.js.map +0 -1
  397. package/dist/interceptors/locusRetry.d.ts +0 -27
  398. package/dist/interceptors/locusRetry.js +0 -94
  399. package/dist/interceptors/locusRetry.js.map +0 -1
  400. package/dist/interpretation/collection.d.ts +0 -5
  401. package/dist/interpretation/collection.js +0 -22
  402. package/dist/interpretation/collection.js.map +0 -1
  403. package/dist/interpretation/index.d.ts +0 -5
  404. package/dist/interpretation/index.js +0 -365
  405. package/dist/interpretation/index.js.map +0 -1
  406. package/dist/interpretation/siLanguage.d.ts +0 -5
  407. package/dist/interpretation/siLanguage.js +0 -24
  408. package/dist/interpretation/siLanguage.js.map +0 -1
  409. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  410. package/dist/meeting/locusMediaRequest.js +0 -291
  411. package/dist/meeting/locusMediaRequest.js.map +0 -1
  412. package/dist/meeting/request.type.d.ts +0 -11
  413. package/dist/meeting/request.type.js +0 -7
  414. package/dist/meeting/request.type.js.map +0 -1
  415. package/dist/meeting/voicea-meeting.d.ts +0 -20
  416. package/dist/meeting/voicea-meeting.js +0 -201
  417. package/dist/meeting/voicea-meeting.js.map +0 -1
  418. package/dist/meetings/meetings.types.d.ts +0 -4
  419. package/dist/meetings/meetings.types.js +0 -7
  420. package/dist/meetings/meetings.types.js.map +0 -1
  421. package/dist/member/types.d.ts +0 -32
  422. package/dist/member/types.js +0 -23
  423. package/dist/member/types.js.map +0 -1
  424. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  425. package/dist/multistream/mediaRequestManager.js +0 -344
  426. package/dist/multistream/mediaRequestManager.js.map +0 -1
  427. package/dist/multistream/receiveSlot.d.ts +0 -68
  428. package/dist/multistream/receiveSlot.js +0 -200
  429. package/dist/multistream/receiveSlot.js.map +0 -1
  430. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  431. package/dist/multistream/receiveSlotManager.js +0 -174
  432. package/dist/multistream/receiveSlotManager.js.map +0 -1
  433. package/dist/multistream/remoteMedia.d.ts +0 -72
  434. package/dist/multistream/remoteMedia.js +0 -268
  435. package/dist/multistream/remoteMedia.js.map +0 -1
  436. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  437. package/dist/multistream/remoteMediaGroup.js +0 -267
  438. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  439. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  440. package/dist/multistream/remoteMediaManager.js +0 -1211
  441. package/dist/multistream/remoteMediaManager.js.map +0 -1
  442. package/dist/multistream/sendSlotManager.d.ts +0 -61
  443. package/dist/multistream/sendSlotManager.js +0 -236
  444. package/dist/multistream/sendSlotManager.js.map +0 -1
  445. package/dist/reachability/clusterReachability.d.ts +0 -109
  446. package/dist/reachability/clusterReachability.js +0 -357
  447. package/dist/reachability/clusterReachability.js.map +0 -1
  448. package/dist/reachability/util.d.ts +0 -8
  449. package/dist/reachability/util.js +0 -29
  450. package/dist/reachability/util.js.map +0 -1
  451. package/dist/reactions/constants.d.ts +0 -3
  452. package/dist/reactions/constants.js +0 -12
  453. package/dist/reactions/constants.js.map +0 -1
  454. package/dist/rtcMetrics/constants.d.ts +0 -4
  455. package/dist/rtcMetrics/constants.js +0 -11
  456. package/dist/rtcMetrics/constants.js.map +0 -1
  457. package/dist/rtcMetrics/index.d.ts +0 -54
  458. package/dist/rtcMetrics/index.js +0 -140
  459. package/dist/rtcMetrics/index.js.map +0 -1
  460. package/dist/webinar/collection.d.ts +0 -16
  461. package/dist/webinar/collection.js +0 -43
  462. package/dist/webinar/collection.js.map +0 -1
  463. package/dist/webinar/index.d.ts +0 -5
  464. package/dist/webinar/index.js +0 -68
  465. package/dist/webinar/index.js.map +0 -1
  466. package/src/annotation/annotation.types.ts +0 -50
  467. package/src/annotation/constants.ts +0 -36
  468. package/src/annotation/index.ts +0 -328
  469. package/src/breakouts/README.md +0 -220
  470. package/src/breakouts/breakout.ts +0 -188
  471. package/src/breakouts/collection.ts +0 -19
  472. package/src/breakouts/edit-lock-error.ts +0 -25
  473. package/src/breakouts/events.ts +0 -56
  474. package/src/breakouts/index.ts +0 -925
  475. package/src/breakouts/request.ts +0 -55
  476. package/src/breakouts/utils.ts +0 -57
  477. package/src/common/errors/no-meeting-info.ts +0 -24
  478. package/src/controls-options-manager/types.ts +0 -59
  479. package/src/index.ts +0 -44
  480. package/src/interceptors/index.ts +0 -3
  481. package/src/interceptors/locusRetry.ts +0 -67
  482. package/src/interpretation/README.md +0 -60
  483. package/src/interpretation/collection.ts +0 -19
  484. package/src/interpretation/index.ts +0 -332
  485. package/src/interpretation/siLanguage.ts +0 -18
  486. package/src/meeting/locusMediaRequest.ts +0 -313
  487. package/src/meeting/request.type.ts +0 -13
  488. package/src/meeting/voicea-meeting.ts +0 -161
  489. package/src/meetings/meetings.types.ts +0 -12
  490. package/src/member/types.ts +0 -38
  491. package/src/multistream/mediaRequestManager.ts +0 -440
  492. package/src/multistream/receiveSlot.ts +0 -184
  493. package/src/multistream/receiveSlotManager.ts +0 -166
  494. package/src/multistream/remoteMedia.ts +0 -254
  495. package/src/multistream/remoteMediaGroup.ts +0 -284
  496. package/src/multistream/remoteMediaManager.ts +0 -1145
  497. package/src/multistream/sendSlotManager.ts +0 -170
  498. package/src/reachability/clusterReachability.ts +0 -320
  499. package/src/reachability/util.ts +0 -24
  500. package/src/reactions/constants.ts +0 -4
  501. package/src/rtcMetrics/constants.ts +0 -3
  502. package/src/rtcMetrics/index.ts +0 -124
  503. package/src/webinar/collection.ts +0 -31
  504. package/src/webinar/index.ts +0 -62
  505. package/test/integration/spec/converged-space-meetings.js +0 -233
  506. package/test/unit/spec/annotation/index.ts +0 -418
  507. package/test/unit/spec/breakouts/breakout.ts +0 -237
  508. package/test/unit/spec/breakouts/collection.ts +0 -15
  509. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  510. package/test/unit/spec/breakouts/events.ts +0 -89
  511. package/test/unit/spec/breakouts/index.ts +0 -1790
  512. package/test/unit/spec/breakouts/request.ts +0 -104
  513. package/test/unit/spec/breakouts/utils.js +0 -72
  514. package/test/unit/spec/interceptors/locusRetry.ts +0 -131
  515. package/test/unit/spec/interpretation/collection.ts +0 -15
  516. package/test/unit/spec/interpretation/index.ts +0 -589
  517. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  518. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  519. package/test/unit/spec/media/index.ts +0 -290
  520. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  521. package/test/unit/spec/meeting-info/index.js +0 -300
  522. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  523. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  524. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  525. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  526. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  527. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  528. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  529. package/test/unit/spec/reachability/clusterReachability.ts +0 -279
  530. package/test/unit/spec/reachability/request.js +0 -68
  531. package/test/unit/spec/reachability/util.ts +0 -40
  532. package/test/unit/spec/roap/request.ts +0 -255
  533. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  534. package/test/unit/spec/webinar/collection.ts +0 -13
  535. package/test/unit/spec/webinar/index.ts +0 -60
  536. package/test/utils/constants.js +0 -9
  537. package/test/utils/integrationTestUtils.js +0 -46
  538. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -6,11 +6,9 @@ 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 {createCameraStream, createDisplayStream, createMicrophoneStream, LocalTrackEvents, LocalStreamEventNames} from '@webex/plugin-meetings';
10
9
 
10
+ import DEFAULT_RESOLUTIONS from '../../../src/config';
11
11
  import testUtils from '../../utils/testUtils';
12
- import integrationTestUtils from '../../utils/integrationTestUtils';
13
- import {EVENT_TRIGGERS} from '../../../src/constants';
14
12
 
15
13
  require('dotenv').config();
16
14
 
@@ -20,42 +18,6 @@ const {isBrowser} = BrowserDetection();
20
18
 
21
19
  let userSet, alice, bob, chris, enumerateSpy, channelUrlA, channelUrlB;
22
20
 
23
- const localStreams = {
24
- alice: {
25
- microphone: undefined,
26
- camera: undefined,
27
- screenShare: {
28
- video: undefined,
29
- }
30
- },
31
- bob: {
32
- microphone: undefined,
33
- camera: undefined,
34
- screenShare: {
35
- video: undefined,
36
- }
37
- },
38
- chris: {
39
- microphone: undefined,
40
- camera: undefined,
41
- screenShare: {
42
- video: undefined,
43
- }
44
- },
45
- };
46
-
47
- // Updated expectedPublished from a boolean value to an object containing the stream and status properties
48
- const waitForPublished = (meeting, expectedPublished, description) => {
49
- return testUtils.waitForEvents([{
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) ;
55
- }
56
- }]);
57
- };
58
-
59
21
  skipInNode(describe)('plugin-meetings', () => {
60
22
  describe('journey', () => {
61
23
  before(() =>
@@ -312,11 +274,6 @@ skipInNode(describe)('plugin-meetings', () => {
312
274
  );
313
275
  });
314
276
 
315
- it('alice creates local microphone and camera tracks', async () => {
316
- localStreams.alice.microphone = await createMicrophoneStream();
317
- localStreams.alice.camera = await createCameraStream();
318
- });
319
-
320
277
  it('alice dials bob and adds media', () =>
321
278
  Promise.all([
322
279
  testUtils.delayedPromise(alice.webex.meetings.create(bob.emailAddress)),
@@ -344,7 +301,7 @@ skipInNode(describe)('plugin-meetings', () => {
344
301
  })
345
302
  .then(() =>
346
303
  Promise.all([
347
- integrationTestUtils.addMedia(alice, {microphone: localStreams.alice.microphone, camera: localStreams.alice.camera}),
304
+ testUtils.addMedia(alice),
348
305
  testUtils.waitForEvents([
349
306
  {scope: alice.meeting, event: 'meeting:media:local:start', user: alice},
350
307
  ]),
@@ -371,14 +328,9 @@ skipInNode(describe)('plugin-meetings', () => {
371
328
  ]);
372
329
  });
373
330
 
374
- it('bob creates local microphone and camera tracks', async () => {
375
- localStreams.bob.microphone = await createMicrophoneStream();
376
- localStreams.bob.camera = await createCameraStream();
377
- });
378
-
379
331
  it('bob adds media to the meeting', () =>
380
332
  Promise.all([
381
- integrationTestUtils.addMedia(bob, {microphone: localStreams.bob.microphone, camera: localStreams.bob.camera}),
333
+ testUtils.addMedia(bob),
382
334
  testUtils
383
335
  .waitForEvents([
384
336
  {scope: bob.meeting, event: 'meeting:media:local:start', user: bob},
@@ -420,126 +372,136 @@ skipInNode(describe)('plugin-meetings', () => {
420
372
  assert.exists(alice.meeting.members.selfId, 'selfId not present');
421
373
  });
422
374
 
423
- it('alice Audio Mute ', async () => {
375
+ it('alice Audio Mute ', () => {
424
376
  const checkEvent = (event) =>
425
377
  !!event.delta.updated.find(
426
378
  (member) => alice.meeting.members.selfId === member.id && member.isAudioMuted === true
427
379
  );
428
380
 
429
- await testUtils.waitUntil(2000);
430
-
431
- const membersUpdate = testUtils.waitForEvents([
432
- {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
433
- ]);
434
-
435
- localStreams.alice.microphone.setMuted(true);
436
-
437
- await membersUpdate;
438
-
439
- assert.equal(localStreams.alice.microphone.muted, true);
381
+ return Promise.all([
382
+ testUtils.delayedPromise(alice.meeting.muteAudio()),
383
+ testUtils.waitForEvents([
384
+ {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
385
+ ]),
386
+ ]).then(() => {
387
+ assert.equal(alice.meeting.audio.muted, true);
388
+ assert.equal(alice.meeting.isAudioMuted(), true);
389
+ });
440
390
  });
441
391
 
442
- it('alice Audio unMute ', async () => {
392
+ it('alice Audio unMute ', () => {
443
393
  const checkEvent = (event) =>
444
394
  !!event.delta.updated.find(
445
395
  (member) => alice.meeting.members.selfId === member.id && member.isAudioMuted === false
446
396
  );
447
397
 
448
- await testUtils.waitUntil(2000);
449
-
450
- const membersUpdate = testUtils.waitForEvents([
451
- {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
452
- ]);
453
-
454
- localStreams.alice.microphone.setMuted(false);
455
-
456
- await membersUpdate;
457
-
458
- assert.equal(localStreams.alice.microphone.muted, false);
398
+ return Promise.all([
399
+ testUtils.delayedPromise(alice.meeting.unmuteAudio()),
400
+ testUtils.waitForEvents([
401
+ {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
402
+ ]),
403
+ ]).then(() => {
404
+ assert.equal(alice.meeting.audio.muted, false);
405
+ assert.equal(alice.meeting.isAudioMuted(), false);
406
+ });
459
407
  });
460
408
 
461
- it('alice video mute', async () => {
409
+ it('alice Video Mute', () => {
462
410
  const checkEvent = (event) =>
463
411
  !!event.delta.updated.find(
464
412
  (member) => alice.meeting.members.selfId === member.id && member.isVideoMuted === true
465
413
  );
466
414
 
467
- await testUtils.waitUntil(2000);
468
-
469
- const membersUpdate = testUtils.waitForEvents([
470
- {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
471
- ]);
472
-
473
- localStreams.alice.camera.setMuted(true);
474
-
475
- await membersUpdate;
476
-
477
- assert.equal(localStreams.alice.camera.muted, true);
415
+ return Promise.all([
416
+ testUtils.delayedPromise(alice.meeting.muteVideo()),
417
+ testUtils.waitForEvents([
418
+ {scope: alice.meeting.members, event: 'members:update', match: checkEvent},
419
+ ]),
420
+ ]).then(() => {
421
+ assert.equal(alice.meeting.video.muted, true);
422
+ assert.equal(alice.meeting.isVideoMuted(), true);
423
+ });
478
424
  });
479
425
 
480
- it('alice video unmute', async () => {
426
+ it('alice video unMute', () => {
481
427
  const checkEvent = (event) =>
482
428
  !!event.delta.updated.find(
483
429
  (member) => alice.meeting.members.selfId === member.id && member.isVideoMuted === false
484
430
  );
485
431
 
486
- await testUtils.waitUntil(2000);
487
-
488
- const membersUpdate = testUtils.waitForEvents([
489
- {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
490
- ]);
491
-
492
- localStreams.alice.camera.setMuted(false);
493
-
494
- await membersUpdate;
495
-
496
- assert.equal(localStreams.alice.camera.muted, false);
432
+ return Promise.all([
433
+ testUtils.delayedPromise(alice.meeting.unmuteVideo()),
434
+ testUtils.waitForEvents([
435
+ {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
436
+ ]),
437
+ ]).then(() => {
438
+ assert.equal(alice.meeting.video.muted, false);
439
+ assert.equal(alice.meeting.isVideoMuted(), false);
440
+ });
497
441
  });
498
442
 
499
- it('alice update Audio', async () => {
500
- const newMicrophoneStream = await createMicrophoneStream();
501
- const newStreamPublished = waitForPublished(alice.meeting, {stream: newMicrophoneStream, status: true}, "Alice AUDIO: new microphone stream");
502
-
503
- await testUtils.delayedPromise(
504
- alice.meeting
505
- .publishStreams({
506
- microphone: newMicrophoneStream,
507
- })
508
- .then(() => {
509
- console.log('Alice AUDIO: new stream on meeting object:', alice.meeting.mediaProperties.audioStream);
510
- assert.equal(
511
- alice.meeting.mediaProperties.audioStream.id,
512
- newMicrophoneStream.id
513
- );
514
- })
515
- );
443
+ it('alice update Audio', () => {
444
+ const oldVideoTrackId = alice.meeting.mediaProperties.videoTrack.id;
516
445
 
517
- await newStreamPublished;
518
-
519
- localStreams.alice.microphone = newMicrophoneStream;
446
+ return alice.meeting.getMediaStreams({sendAudio: true}).then((response) =>
447
+ Promise.all([
448
+ testUtils.delayedPromise(
449
+ alice.meeting
450
+ .updateAudio({
451
+ sendAudio: true,
452
+ receiveAudio: true,
453
+ stream: response[0],
454
+ })
455
+ .then(() => {
456
+ console.log(
457
+ 'AUDIO ',
458
+ alice.meeting.mediaProperties.peerConnection.audioTransceiver.sender.track
459
+ );
460
+ assert.equal(
461
+ alice.meeting.mediaProperties.audioTrack.id,
462
+ response[0].getAudioTracks()[0].id
463
+ );
464
+ assert.equal(alice.meeting.mediaProperties.videoTrack.id, oldVideoTrackId);
465
+ })
466
+ ),
467
+ testUtils
468
+ .waitForEvents([{scope: alice.meeting, event: 'media:ready'}])
469
+ .then((response) => {
470
+ console.log('MEDIA:READY event ', response[0].result);
471
+ assert.equal(response[0].result.type === 'local', true);
472
+ }),
473
+ ])
474
+ );
520
475
  });
521
476
 
522
- it('alice update video', async () => {
523
- const newCameraStream = await createCameraStream();
524
- const newStreamPublished = waitForPublished(alice.meeting, {stream: newCameraStream, status: true}, "Alice VIDEO: new camera stream");
477
+ it('alice update video', () => {
478
+ const oldAudioTrackId = alice.meeting.mediaProperties.audioTrack.id;
525
479
 
526
- await testUtils.delayedPromise(
527
- alice.meeting
528
- .publishStreams({
529
- camera: newCameraStream,
530
- })
531
- .then(() => {
532
- console.log('Alice VIDEO: new stream on meeting:', alice.meeting.mediaProperties.videoStream);
533
- assert.equal(
534
- alice.meeting.mediaProperties.videoStream.id,
535
- newCameraStream.id
536
- );
537
- })
538
- );
539
-
540
- await newStreamPublished;
541
-
542
- localStreams.alice.camera = newCameraStream;
480
+ return alice.meeting.getMediaStreams({sendVideo: true}).then((response) =>
481
+ Promise.all([
482
+ testUtils.delayedPromise(
483
+ alice.meeting
484
+ .updateVideo({
485
+ sendVideo: true,
486
+ receiveVideo: true,
487
+ stream: response[0],
488
+ })
489
+ .then(() => {
490
+ assert.equal(
491
+ alice.meeting.mediaProperties.videoTrack.id,
492
+ response[0].getVideoTracks()[0].id
493
+ );
494
+ assert.equal(alice.meeting.mediaProperties.audioTrack.id, oldAudioTrackId);
495
+ })
496
+ ),
497
+ testUtils
498
+ .waitForEvents([{scope: alice.meeting, event: 'media:ready'}])
499
+ .then((response) => {
500
+ console.log('MEDIA:READY event ', response[0].result);
501
+ assert.equal(response[0].result.type === 'local', true);
502
+ }),
503
+ ])
504
+ );
543
505
  });
544
506
 
545
507
  it('alice mutes bob', () =>
@@ -563,25 +525,27 @@ skipInNode(describe)('plugin-meetings', () => {
563
525
  }),
564
526
  ]));
565
527
 
566
- it('bob audio mute, so alice cannot unmute bob', async () => {
528
+ it('bob audio mute, so alice cannot unmute bob', (done) => {
567
529
  const checkEvent = (event) =>
568
530
  !!event.delta.updated.find(
569
531
  (member) => bob.meeting.members.selfId === member.id && member.isAudioMuted === true
570
532
  );
571
533
 
572
- const membersUpdate = testUtils.waitForEvents([
573
- {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
574
- ]);
575
-
576
534
  // first bob mutes himself
577
- localStreams.bob.microphone.setMuted(true);
578
-
579
- await membersUpdate;
580
-
581
- assert.equal(localStreams.bob.microphone.muted, true);
582
-
583
- // now alice tries to unmmute bob
584
- await testUtils.delayedPromise(alice.meeting.mute(bob.meeting.members.selfId, false))
535
+ Promise.all([
536
+ testUtils.delayedPromise(bob.meeting.muteAudio()),
537
+ testUtils.waitForEvents([
538
+ {scope: bob.meeting.members, event: 'members:update', match: checkEvent},
539
+ ]),
540
+ ])
541
+ .then(() => {
542
+ assert.equal(bob.meeting.audio.muted, true);
543
+ assert.equal(bob.meeting.isAudioMuted(), true);
544
+ })
545
+ // now alice tries to unmmut bob
546
+ .then(() =>
547
+ testUtils.delayedPromise(alice.meeting.mute(bob.meeting.members.selfId, false))
548
+ )
585
549
  // expect the waitForEvents to timeout
586
550
  .then(() =>
587
551
  testUtils.waitForEvents(
@@ -593,121 +557,126 @@ skipInNode(describe)('plugin-meetings', () => {
593
557
  assert.fail('bob received unexpected meeting:self:unmutedByOthers event');
594
558
  })
595
559
  .catch(() => {
596
- assert.equal(localStreams.bob.microphone.muted, true);
560
+ assert.equal(bob.meeting.audio.muted, true);
561
+ assert.equal(bob.meeting.isAudioMuted(), true);
562
+ done();
597
563
  });
598
564
  });
599
565
 
600
- it('bob audio unmute ', async () => {
566
+ it('bob audio unmute ', () => {
601
567
  const checkEvent = (event) =>
602
568
  !!event.delta.updated.find(
603
569
  (member) => bob.meeting.members.selfId === member.id && member.isAudioMuted === false
604
570
  );
605
571
 
606
- const membersUpdate = testUtils.waitForEvents([
607
- {scope: alice.meeting.members, event: 'members:update', match: checkEvent},
608
- ]);
609
-
610
- localStreams.bob.microphone.setMuted(false);
611
-
612
- await membersUpdate;
613
-
614
- assert.equal(localStreams.bob.microphone.muted, false);
572
+ return Promise.all([
573
+ testUtils.delayedPromise(bob.meeting.unmuteAudio()),
574
+ testUtils.waitForEvents([
575
+ {scope: alice.meeting.members, event: 'members:update', match: checkEvent},
576
+ ]),
577
+ ]).then(() => {
578
+ assert.equal(bob.meeting.audio.muted, false);
579
+ assert.equal(bob.meeting.isAudioMuted(), false);
580
+ });
615
581
  });
616
582
 
617
- it('alice shares the screen with highFrameRate', async () => {
618
- localStreams.alice.screenShare.video = await createDisplayStream();
619
-
620
- const startedSharingLocal = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingLocal'}]);
621
- const startedSharingRemote = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingRemote'}])
622
- .then((response) => {
623
- assert.equal(response[0].result.memberId, alice.meeting.selfId);
624
- });
625
- const bobReceivesMembersUpdate = testUtils.waitForEvents([{scope: bob.meeting.members, event: 'members:update'}])
626
- .then((response) => {
627
- console.log(
628
- 'SCREEN SHARE RESPONSE ',
629
- JSON.stringify(response, testUtils.getCircularReplacer())
630
- );
631
- });
632
-
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}}));
636
-
637
- await screenShareVideoPublished;
638
- await startedSharingLocal;
639
- await startedSharingRemote;
640
- await bobReceivesMembersUpdate;
641
-
642
- assert.equal(alice.meeting.screenShareFloorState, 'floor_request_granted');
643
- assert.equal(alice.meeting.shareStatus, 'local_share_active');
644
- assert.equal(bob.meeting.shareStatus, 'remote_share_active');
645
- console.log(
646
- 'SCREEN SHARE PARTICIPANTS ',
647
- JSON.stringify(alice.meeting.locusInfo.participants)
648
- );
583
+ it('alice shares the screen with highFrameRate', () =>
584
+ Promise.all([
585
+ testUtils.delayedPromise(
586
+ alice.meeting.shareScreen({sharePreferences: {highFrameRate: true}})
587
+ ),
588
+ testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingLocal'}]),
589
+ testUtils
590
+ .waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingRemote'}])
591
+ .then((response) => {
592
+ assert.equal(response[0].result.memberId, alice.meeting.selfId);
593
+ }),
594
+ testUtils
595
+ .waitForEvents([{scope: bob.meeting.members, event: 'members:update'}])
596
+ .then((response) => {
597
+ console.log(
598
+ 'SCREEN SHARE RESPONSE ',
599
+ JSON.stringify(response, testUtils.getCircularReplacer())
600
+ );
601
+ }),
602
+ testUtils
603
+ .waitForEvents([{scope: alice.meeting, event: 'media:ready'}])
604
+ .then((response) => {
605
+ console.log('MEDIA:READY event ', response[0].result);
606
+ assert.equal(response[0].result.type === 'localShare', true);
607
+ }),
608
+ ]).then(() => {
609
+ // TODO: Re-eanable Safari when screensharing issues have been resolved
610
+ if (!isBrowser('safari')) {
611
+ assert.equal(alice.meeting.mediaProperties.shareTrack.getConstraints().height, 720);
612
+ }
613
+ assert.equal(alice.meeting.isSharing, true);
614
+ assert.equal(alice.meeting.shareStatus, 'local_share_active');
615
+ assert.equal(bob.meeting.shareStatus, 'remote_share_active');
616
+ console.log(
617
+ 'SCREEN SHARE PARTICIPANTS ',
618
+ JSON.stringify(alice.meeting.locusInfo.participants)
619
+ );
649
620
 
650
- await testUtils.waitUntil(10000);
651
- });
621
+ return testUtils.waitUntil(10000);
622
+ }));
652
623
 
653
- it('bob steals the screen share from alice', async () => {
654
- localStreams.bob.screenShare.video = await createDisplayStream();
624
+ it('bob steals the screen share from alice', () =>
625
+ Promise.all([
626
+ testUtils.delayedPromise(bob.meeting.shareScreen()),
627
+ testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingLocal'}]),
628
+ testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingLocal'}]),
629
+ testUtils
630
+ .waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingRemote'}])
631
+ .then((response) => {
632
+ assert.equal(response[0].result.memberId, bob.meeting.selfId);
633
+ }),
634
+ testUtils
635
+ .waitForEvents([{scope: alice.meeting.members, event: 'members:update'}])
636
+ .then((response) => {
637
+ console.log(
638
+ 'SCREEN SHARE RESPONSE ',
639
+ JSON.stringify(response, testUtils.getCircularReplacer())
640
+ );
641
+ }),
642
+ testUtils.waitForEvents([{scope: bob.meeting, event: 'media:ready'}]).then((response) => {
643
+ console.log('MEDIA:READY event ', response[0].result);
644
+ assert.equal(response[0].result.type === 'localShare', true);
645
+ }),
646
+ ]).then(() => {
647
+ const heightResolution = DEFAULT_RESOLUTIONS.meetings.screenResolution.idealHeight;
655
648
 
656
- const stoppedSharingLocal = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingLocal'}]);
657
- const startedSharingLocal = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingLocal'}]);
658
- const startedSharingRemote = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingRemote'}])
659
- .then((response) => {
660
- assert.equal(response[0].result.memberId, bob.meeting.selfId);
661
- });
662
- const aliceReceivesMembersUpdate = testUtils.waitForEvents([{scope: alice.meeting.members, event: 'members:update'}])
663
- .then((response) => {
664
- console.log(
665
- 'SCREEN SHARE RESPONSE ',
666
- JSON.stringify(response, testUtils.getCircularReplacer())
649
+ // TODO: Re-eanable Safari when screensharing issues have been resolved
650
+ if (!isBrowser('safari')) {
651
+ assert.equal(
652
+ bob.meeting.mediaProperties.shareTrack.getConstraints().height,
653
+ heightResolution
667
654
  );
668
- });
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");
671
-
672
- await testUtils.delayedPromise(bob.meeting.publishStreams({screenShare: {video: localStreams.bob.screenShare.video}}));
673
-
674
- await bobScreenShareVideoPublished;
675
- await aliceScreenShareVideoUnpublished;
676
- await stoppedSharingLocal;
677
- await startedSharingLocal;
678
- await startedSharingRemote;
679
- await aliceReceivesMembersUpdate;
680
-
681
- localStreams.alice.screenShare.video.stop();
682
- localStreams.alice.screenShare.video = undefined;
683
-
684
- assert.equal(bob.meeting.screenShareFloorState, 'floor_request_granted');
685
- assert.equal(bob.meeting.shareStatus, 'local_share_active');
686
- assert.equal(alice.meeting.shareStatus, 'remote_share_active');
687
-
688
- await testUtils.waitUntil(10000);
689
- });
690
-
691
- it('bob stops sharing', async () => {
692
- const screenShareVideoUnpublished = waitForPublished(bob.meeting, {stream: localStreams.bob.screenShare.video, status: false}, "bob's screen share video stream");
693
- const stoppedSharingLocal = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:stoppedSharingLocal'}]);
694
- const stoppedSharingRemote = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingRemote'}]);
695
-
696
- await testUtils.delayedPromise(bob.meeting.unpublishStreams([localStreams.bob.screenShare.video]));
655
+ }
656
+ assert.equal(bob.meeting.isSharing, true);
657
+ assert.equal(bob.meeting.shareStatus, 'local_share_active');
658
+ assert.equal(alice.meeting.shareStatus, 'remote_share_active');
697
659
 
698
- await screenShareVideoUnpublished;
699
- await stoppedSharingLocal;
700
- await stoppedSharingRemote;
701
-
702
- localStreams.bob.screenShare.video.stop();
703
- localStreams.bob.screenShare.video = undefined;
704
-
705
- assert.equal(bob.meeting.screenShareFloorState, 'floor_released');
706
- assert.equal(bob.meeting.shareStatus, 'no_share');
707
- assert.equal(alice.meeting.shareStatus, 'no_share');
660
+ return testUtils.waitUntil(10000);
661
+ }));
708
662
 
709
- await testUtils.waitUntil(10000);
710
- });
663
+ it('bob stops sharing ', () =>
664
+ Promise.all([
665
+ // Wait for peerConnection to stabalize
666
+ testUtils.waitUntil(20000),
667
+ testUtils.delayedPromise(
668
+ bob.meeting.updateShare({
669
+ sendShare: false,
670
+ receiveShare: true,
671
+ })
672
+ ),
673
+ testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:stoppedSharingLocal'}]),
674
+ testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingRemote'}]),
675
+ ]).then(() => {
676
+ assert.equal(bob.meeting.isSharing, false);
677
+ assert.equal(bob.meeting.shareStatus, 'no_share');
678
+ assert.equal(alice.meeting.shareStatus, 'no_share');
679
+ }));
711
680
 
712
681
  it('alice shares whiteboard A', () =>
713
682
  Promise.all([
@@ -732,7 +701,7 @@ skipInNode(describe)('plugin-meetings', () => {
732
701
  );
733
702
  }),
734
703
  ]).then(() => {
735
- assert.equal(alice.meeting.screenShareFloorState, 'floor_released');
704
+ assert.equal(alice.meeting.isSharing, false);
736
705
  assert.equal(alice.meeting.shareStatus, 'whiteboard_share_active');
737
706
  assert.equal(bob.meeting.shareStatus, 'whiteboard_share_active');
738
707
  }));
@@ -760,12 +729,12 @@ skipInNode(describe)('plugin-meetings', () => {
760
729
  );
761
730
  }),
762
731
  ]).then(() => {
763
- assert.equal(bob.meeting.screenShareFloorState, 'floor_released');
732
+ assert.equal(bob.meeting.isSharing, false);
764
733
  assert.equal(alice.meeting.shareStatus, 'whiteboard_share_active');
765
734
  assert.equal(bob.meeting.shareStatus, 'whiteboard_share_active');
766
735
  }));
767
736
 
768
- it('bob stops sharing again', () =>
737
+ it('bob stops sharing ', () =>
769
738
  Promise.all([
770
739
  // Wait for peerConnection to stabalize
771
740
  testUtils.waitUntil(20000),
@@ -777,7 +746,7 @@ skipInNode(describe)('plugin-meetings', () => {
777
746
  {scope: alice.meeting, event: 'meeting:stoppedSharingWhiteboard'},
778
747
  ]),
779
748
  ]).then(() => {
780
- assert.equal(bob.meeting.screenShareFloorState, 'floor_released');
749
+ assert.equal(bob.meeting.isSharing, false);
781
750
  assert.equal(bob.meeting.shareStatus, 'no_share');
782
751
  assert.equal(alice.meeting.shareStatus, 'no_share');
783
752
  }));
@@ -805,43 +774,51 @@ skipInNode(describe)('plugin-meetings', () => {
805
774
  );
806
775
  }),
807
776
  ]).then(() => {
808
- assert.equal(alice.meeting.screenShareFloorState, 'floor_released');
777
+ assert.equal(alice.meeting.isSharing, false);
809
778
  assert.equal(alice.meeting.shareStatus, 'whiteboard_share_active');
810
779
  assert.equal(bob.meeting.shareStatus, 'whiteboard_share_active');
811
780
  }));
812
781
 
813
- it('bob steals the share from alice with desktop share', async () => {
814
- localStreams.bob.screenShare.video = await createDisplayStream();
782
+ it('bob steals the share from alice with desktop share', () =>
783
+ Promise.all([
784
+ testUtils.delayedPromise(bob.meeting.shareScreen()),
785
+ testUtils.waitForEvents([
786
+ {scope: alice.meeting, event: 'meeting:stoppedSharingWhiteboard'},
787
+ ]),
788
+ testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingLocal'}]),
789
+ testUtils
790
+ .waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingRemote'}])
791
+ .then((response) => {
792
+ assert.equal(response[0].result.memberId, bob.meeting.selfId);
793
+ }),
794
+ testUtils
795
+ .waitForEvents([{scope: alice.meeting.members, event: 'members:update'}])
796
+ .then((response) => {
797
+ console.log(
798
+ 'SCREEN SHARE RESPONSE ',
799
+ JSON.stringify(response, testUtils.getCircularReplacer())
800
+ );
801
+ }),
802
+ testUtils.waitForEvents([{scope: bob.meeting, event: 'media:ready'}]).then((response) => {
803
+ console.log('MEDIA:READY event ', response[0].result);
804
+ assert.equal(response[0].result.type === 'localShare', true);
805
+ }),
806
+ ]).then(() => {
807
+ const heightResolution = DEFAULT_RESOLUTIONS.meetings.screenResolution.idealHeight;
815
808
 
816
- const stoppedSharingWhiteboard = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:stoppedSharingWhiteboard'}]);
817
- const startedSharingLocal = testUtils.waitForEvents([{scope: bob.meeting, event: 'meeting:startedSharingLocal'}]);
818
- const startedSharingRemote = testUtils.waitForEvents([{scope: alice.meeting, event: 'meeting:startedSharingRemote'}])
819
- .then((response) => {
820
- assert.equal(response[0].result.memberId, bob.meeting.selfId);
821
- });
822
- const aliceReceivesMembersUpdate = testUtils.waitForEvents([{scope: alice.meeting.members, event: 'members:update'}])
823
- .then((response) => {
824
- console.log(
825
- 'SCREEN SHARE RESPONSE ',
826
- JSON.stringify(response, testUtils.getCircularReplacer())
809
+ // TODO: Re-eanable Safari when screensharing issues have been resolved
810
+ if (!isBrowser('safari')) {
811
+ assert.equal(
812
+ bob.meeting.mediaProperties.shareTrack.getConstraints().height,
813
+ heightResolution
827
814
  );
828
- });
829
- const bobScreenShareVideoPublished = waitForPublished(bob.meeting, {stream: localStreams.bob.screenShare.video, status: true}, "bob's screen share video stream");
815
+ }
816
+ assert.equal(bob.meeting.isSharing, true);
817
+ assert.equal(bob.meeting.shareStatus, 'local_share_active');
818
+ assert.equal(alice.meeting.shareStatus, 'remote_share_active');
830
819
 
831
- await testUtils.delayedPromise(bob.meeting.publishStreams({screenShare: {video: localStreams.bob.screenShare.video}}));
832
-
833
- await bobScreenShareVideoPublished;
834
- await stoppedSharingWhiteboard;
835
- await startedSharingLocal;
836
- await startedSharingRemote;
837
- await aliceReceivesMembersUpdate;
838
-
839
- assert.equal(bob.meeting.screenShareFloorState, 'floor_request_granted');
840
- assert.equal(bob.meeting.shareStatus, 'local_share_active');
841
- assert.equal(alice.meeting.shareStatus, 'remote_share_active');
842
-
843
- await testUtils.waitUntil(10000);
844
- });
820
+ return testUtils.waitUntil(10000);
821
+ }));
845
822
 
846
823
  it('bob shares whiteboard B', () =>
847
824
  Promise.all([
@@ -866,7 +843,7 @@ skipInNode(describe)('plugin-meetings', () => {
866
843
  );
867
844
  }),
868
845
  ]).then(() => {
869
- assert.equal(bob.meeting.screenShareFloorState, 'floor_released');
846
+ assert.equal(bob.meeting.isSharing, false);
870
847
  assert.equal(alice.meeting.shareStatus, 'whiteboard_share_active');
871
848
  assert.equal(bob.meeting.shareStatus, 'whiteboard_share_active');
872
849
  }));
@@ -912,11 +889,7 @@ skipInNode(describe)('plugin-meetings', () => {
912
889
  );
913
890
  })
914
891
  .then(() => testUtils.waitForStateChange(chris.meeting, 'JOINED'))
915
- .then(async () => {
916
- localStreams.chris.microphone = await createMicrophoneStream();
917
- localStreams.chris.camera = await createCameraStream();
918
- })
919
- .then(() => integrationTestUtils.addMedia(chris, {microphone: localStreams.chris.microphone, camera: localStreams.chris.camera}))
892
+ .then(() => testUtils.addMedia(chris))
920
893
  .then(() => assert(enumerateSpy.called));
921
894
  })
922
895
  .then(() =>
@@ -963,35 +936,6 @@ skipInNode(describe)('plugin-meetings', () => {
963
936
  assert.equal(bob.webex.meetings.getMeetingByType('sipUri', alice.emailAddress), null);
964
937
  });
965
938
  });
966
-
967
- it('stop all local streams', () => {
968
- if (localStreams.alice.microphone) {
969
- localStreams.alice.microphone.stop();
970
- localStreams.alice.microphone = undefined;
971
- }
972
- if (localStreams.alice.camera) {
973
- localStreams.alice.camera.stop();
974
- localStreams.alice.camera = undefined;
975
- }
976
-
977
- if (localStreams.bob.microphone) {
978
- localStreams.bob.microphone.stop();
979
- localStreams.bob.microphone = undefined;
980
- }
981
- if (localStreams.bob.camera) {
982
- localStreams.bob.camera.stop();
983
- localStreams.bob.camera = undefined;
984
- }
985
-
986
- if (localStreams.chris.microphone) {
987
- localStreams.chris.microphone.stop();
988
- localStreams.chris.microphone = undefined;
989
- }
990
- if (localStreams.chris.camera) {
991
- localStreams.chris.camera.stop();
992
- localStreams.chris.camera = undefined;
993
- }
994
- });
995
939
  });
996
940
  });
997
941
  });