@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.21

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 (365) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +116 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/index.js +226 -0
  8. package/dist/breakouts/index.js.map +1 -0
  9. package/dist/common/browser-detection.js +1 -20
  10. package/dist/common/browser-detection.js.map +1 -1
  11. package/dist/common/collection.js +5 -20
  12. package/dist/common/collection.js.map +1 -1
  13. package/dist/common/config.js +0 -7
  14. package/dist/common/config.js.map +1 -1
  15. package/dist/common/errors/captcha-error.js +10 -24
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.js +11 -24
  18. package/dist/common/errors/intent-to-join.js.map +1 -1
  19. package/dist/common/errors/join-meeting.js +12 -25
  20. package/dist/common/errors/join-meeting.js.map +1 -1
  21. package/dist/common/errors/media.js +10 -24
  22. package/dist/common/errors/media.js.map +1 -1
  23. package/dist/common/errors/parameter.js +5 -33
  24. package/dist/common/errors/parameter.js.map +1 -1
  25. package/dist/common/errors/password-error.js +10 -24
  26. package/dist/common/errors/password-error.js.map +1 -1
  27. package/dist/common/errors/permission.js +9 -23
  28. package/dist/common/errors/permission.js.map +1 -1
  29. package/dist/common/errors/reconnection-in-progress.js +0 -17
  30. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  31. package/dist/common/errors/reconnection.js +10 -24
  32. package/dist/common/errors/reconnection.js.map +1 -1
  33. package/dist/common/errors/stats.js +10 -24
  34. package/dist/common/errors/stats.js.map +1 -1
  35. package/dist/common/errors/webex-errors.js +6 -41
  36. package/dist/common/errors/webex-errors.js.map +1 -1
  37. package/dist/common/errors/webex-meetings-error.js +5 -25
  38. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  39. package/dist/common/events/events-scope.js +0 -22
  40. package/dist/common/events/events-scope.js.map +1 -1
  41. package/dist/common/events/events.js +0 -23
  42. package/dist/common/events/events.js.map +1 -1
  43. package/dist/common/events/trigger-proxy.js +0 -12
  44. package/dist/common/events/trigger-proxy.js.map +1 -1
  45. package/dist/common/events/util.js +0 -15
  46. package/dist/common/events/util.js.map +1 -1
  47. package/dist/common/logs/logger-config.js +0 -4
  48. package/dist/common/logs/logger-config.js.map +1 -1
  49. package/dist/common/logs/logger-proxy.js +1 -8
  50. package/dist/common/logs/logger-proxy.js.map +1 -1
  51. package/dist/common/logs/request.js +37 -60
  52. package/dist/common/logs/request.js.map +1 -1
  53. package/dist/common/queue.js +4 -14
  54. package/dist/common/queue.js.map +1 -1
  55. package/dist/config.js +6 -6
  56. package/dist/config.js.map +1 -1
  57. package/dist/constants.js +88 -46
  58. package/dist/constants.js.map +1 -1
  59. package/dist/index.js +4 -18
  60. package/dist/index.js.map +1 -1
  61. package/dist/locus-info/controlsUtils.js +12 -29
  62. package/dist/locus-info/controlsUtils.js.map +1 -1
  63. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  64. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  65. package/dist/locus-info/fullState.js +0 -15
  66. package/dist/locus-info/fullState.js.map +1 -1
  67. package/dist/locus-info/hostUtils.js +4 -12
  68. package/dist/locus-info/hostUtils.js.map +1 -1
  69. package/dist/locus-info/index.js +184 -190
  70. package/dist/locus-info/index.js.map +1 -1
  71. package/dist/locus-info/infoUtils.js +3 -37
  72. package/dist/locus-info/infoUtils.js.map +1 -1
  73. package/dist/locus-info/mediaSharesUtils.js +12 -38
  74. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  75. package/dist/locus-info/parser.js +92 -118
  76. package/dist/locus-info/parser.js.map +1 -1
  77. package/dist/locus-info/selfUtils.js +34 -91
  78. package/dist/locus-info/selfUtils.js.map +1 -1
  79. package/dist/media/index.js +67 -111
  80. package/dist/media/index.js.map +1 -1
  81. package/dist/media/properties.js +80 -114
  82. package/dist/media/properties.js.map +1 -1
  83. package/dist/media/util.js +2 -9
  84. package/dist/media/util.js.map +1 -1
  85. package/dist/mediaQualityMetrics/config.js +10 -12
  86. package/dist/mediaQualityMetrics/config.js.map +1 -1
  87. package/dist/meeting/effectsState.js +125 -190
  88. package/dist/meeting/effectsState.js.map +1 -1
  89. package/dist/meeting/in-meeting-actions.js +5 -14
  90. package/dist/meeting/in-meeting-actions.js.map +1 -1
  91. package/dist/meeting/index.js +1692 -1925
  92. package/dist/meeting/index.js.map +1 -1
  93. package/dist/meeting/muteState.js +36 -77
  94. package/dist/meeting/muteState.js.map +1 -1
  95. package/dist/meeting/request.js +224 -230
  96. package/dist/meeting/request.js.map +1 -1
  97. package/dist/meeting/request.type.js +7 -0
  98. package/dist/meeting/request.type.js.map +1 -0
  99. package/dist/meeting/state.js +21 -31
  100. package/dist/meeting/state.js.map +1 -1
  101. package/dist/meeting/util.js +43 -215
  102. package/dist/meeting/util.js.map +1 -1
  103. package/dist/meeting-info/collection.js +6 -25
  104. package/dist/meeting-info/collection.js.map +1 -1
  105. package/dist/meeting-info/index.js +14 -32
  106. package/dist/meeting-info/index.js.map +1 -1
  107. package/dist/meeting-info/meeting-info-v2.js +193 -268
  108. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  109. package/dist/meeting-info/request.js +3 -15
  110. package/dist/meeting-info/request.js.map +1 -1
  111. package/dist/meeting-info/util.js +98 -183
  112. package/dist/meeting-info/util.js.map +1 -1
  113. package/dist/meeting-info/utilv2.js +137 -228
  114. package/dist/meeting-info/utilv2.js.map +1 -1
  115. package/dist/meetings/collection.js +5 -20
  116. package/dist/meetings/collection.js.map +1 -1
  117. package/dist/meetings/index.js +490 -560
  118. package/dist/meetings/index.js.map +1 -1
  119. package/dist/meetings/request.js +24 -41
  120. package/dist/meetings/request.js.map +1 -1
  121. package/dist/meetings/util.js +99 -155
  122. package/dist/meetings/util.js.map +1 -1
  123. package/dist/member/index.js +78 -86
  124. package/dist/member/index.js.map +1 -1
  125. package/dist/member/util.js +31 -68
  126. package/dist/member/util.js.map +1 -1
  127. package/dist/members/collection.js +3 -12
  128. package/dist/members/collection.js.map +1 -1
  129. package/dist/members/index.js +93 -200
  130. package/dist/members/index.js.map +1 -1
  131. package/dist/members/request.js +16 -39
  132. package/dist/members/request.js.map +1 -1
  133. package/dist/members/util.js +9 -38
  134. package/dist/members/util.js.map +1 -1
  135. package/dist/metrics/config.js +0 -2
  136. package/dist/metrics/config.js.map +1 -1
  137. package/dist/metrics/constants.js +1 -2
  138. package/dist/metrics/constants.js.map +1 -1
  139. package/dist/metrics/index.js +55 -135
  140. package/dist/metrics/index.js.map +1 -1
  141. package/dist/multistream/mediaRequestManager.js +57 -32
  142. package/dist/multistream/mediaRequestManager.js.map +1 -1
  143. package/dist/multistream/multistreamMedia.js +15 -21
  144. package/dist/multistream/multistreamMedia.js.map +1 -1
  145. package/dist/multistream/receiveSlot.js +10 -50
  146. package/dist/multistream/receiveSlot.js.map +1 -1
  147. package/dist/multistream/receiveSlotManager.js +45 -82
  148. package/dist/multistream/receiveSlotManager.js.map +1 -1
  149. package/dist/multistream/remoteMedia.js +18 -58
  150. package/dist/multistream/remoteMedia.js.map +1 -1
  151. package/dist/multistream/remoteMediaGroup.js +6 -40
  152. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  153. package/dist/multistream/remoteMediaManager.js +362 -416
  154. package/dist/multistream/remoteMediaManager.js.map +1 -1
  155. package/dist/networkQualityMonitor/index.js +36 -57
  156. package/dist/networkQualityMonitor/index.js.map +1 -1
  157. package/dist/personal-meeting-room/index.js +21 -45
  158. package/dist/personal-meeting-room/index.js.map +1 -1
  159. package/dist/personal-meeting-room/request.js +1 -31
  160. package/dist/personal-meeting-room/request.js.map +1 -1
  161. package/dist/personal-meeting-room/util.js +0 -13
  162. package/dist/personal-meeting-room/util.js.map +1 -1
  163. package/dist/reachability/index.js +138 -182
  164. package/dist/reachability/index.js.map +1 -1
  165. package/dist/reachability/request.js +3 -18
  166. package/dist/reachability/request.js.map +1 -1
  167. package/dist/reactions/constants.js +13 -0
  168. package/dist/reactions/constants.js.map +1 -0
  169. package/dist/reactions/reactions.js +109 -0
  170. package/dist/reactions/reactions.js.map +1 -0
  171. package/dist/reactions/reactions.type.js +36 -0
  172. package/dist/reactions/reactions.type.js.map +1 -0
  173. package/dist/reconnection-manager/index.js +322 -455
  174. package/dist/reconnection-manager/index.js.map +1 -1
  175. package/dist/recording-controller/enums.js +17 -0
  176. package/dist/recording-controller/enums.js.map +1 -0
  177. package/dist/recording-controller/index.js +343 -0
  178. package/dist/recording-controller/index.js.map +1 -0
  179. package/dist/recording-controller/util.js +63 -0
  180. package/dist/recording-controller/util.js.map +1 -0
  181. package/dist/roap/index.js +39 -64
  182. package/dist/roap/index.js.map +1 -1
  183. package/dist/roap/request.js +94 -113
  184. package/dist/roap/request.js.map +1 -1
  185. package/dist/roap/turnDiscovery.js +85 -94
  186. package/dist/roap/turnDiscovery.js.map +1 -1
  187. package/dist/statsAnalyzer/global.js +0 -2
  188. package/dist/statsAnalyzer/global.js.map +1 -1
  189. package/dist/statsAnalyzer/index.js +85 -175
  190. package/dist/statsAnalyzer/index.js.map +1 -1
  191. package/dist/statsAnalyzer/mqaUtil.js +72 -53
  192. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  193. package/dist/transcription/index.js +22 -47
  194. package/dist/transcription/index.js.map +1 -1
  195. package/internal-README.md +7 -6
  196. package/package.json +25 -20
  197. package/src/breakouts/README.md +190 -0
  198. package/src/breakouts/breakout.ts +110 -0
  199. package/src/breakouts/collection.ts +19 -0
  200. package/src/breakouts/index.ts +225 -0
  201. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  202. package/src/common/collection.ts +9 -7
  203. package/src/common/{config.js → config.ts} +1 -1
  204. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  205. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  206. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  207. package/src/common/errors/{media.js → media.ts} +11 -7
  208. package/src/common/errors/parameter.ts +11 -7
  209. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  210. package/src/common/errors/{permission.js → permission.ts} +10 -6
  211. package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
  212. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  213. package/src/common/errors/{stats.js → stats.ts} +11 -7
  214. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  215. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  216. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  217. package/src/common/events/{events.js → events.ts} +5 -1
  218. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  219. package/src/common/events/{util.js → util.ts} +2 -3
  220. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  221. package/src/common/logs/logger-proxy.ts +44 -0
  222. package/src/common/logs/{request.js → request.ts} +22 -9
  223. package/src/common/queue.ts +1 -2
  224. package/src/{config.js → config.ts} +17 -12
  225. package/src/constants.ts +40 -1
  226. package/src/index.js +2 -1
  227. package/src/locus-info/controlsUtils.ts +114 -0
  228. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  229. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  230. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  231. package/src/locus-info/{index.js → index.ts} +148 -64
  232. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  233. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  234. package/src/locus-info/{parser.js → parser.ts} +67 -79
  235. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  236. package/src/media/{index.js → index.ts} +181 -131
  237. package/src/media/{properties.js → properties.ts} +47 -28
  238. package/src/media/{util.js → util.ts} +2 -2
  239. package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
  240. package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
  241. package/src/meeting/in-meeting-actions.ts +15 -3
  242. package/src/meeting/{index.js → index.ts} +2263 -1427
  243. package/src/meeting/{muteState.js → muteState.ts} +78 -42
  244. package/src/meeting/{request.js → request.ts} +292 -142
  245. package/src/meeting/request.type.ts +13 -0
  246. package/src/meeting/{state.js → state.ts} +50 -35
  247. package/src/meeting/{util.js → util.ts} +112 -115
  248. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  249. package/src/meeting-info/{index.js → index.ts} +42 -36
  250. package/src/meeting-info/meeting-info-v2.ts +273 -0
  251. package/src/meeting-info/{request.js → request.ts} +14 -4
  252. package/src/meeting-info/{util.js → util.ts} +60 -51
  253. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  254. package/src/meetings/{collection.js → collection.ts} +6 -3
  255. package/src/meetings/index.ts +1159 -0
  256. package/src/meetings/{request.js → request.ts} +32 -25
  257. package/src/meetings/{util.js → util.ts} +34 -32
  258. package/src/member/{index.js → index.ts} +102 -56
  259. package/src/member/{util.js → util.ts} +52 -25
  260. package/src/members/{collection.js → collection.ts} +2 -2
  261. package/src/members/{index.js → index.ts} +219 -142
  262. package/src/members/{request.js → request.ts} +60 -16
  263. package/src/members/{util.js → util.ts} +50 -48
  264. package/src/metrics/{config.js → config.ts} +254 -83
  265. package/src/metrics/{constants.js → constants.ts} +0 -2
  266. package/src/metrics/{index.js → index.ts} +106 -74
  267. package/src/multistream/mediaRequestManager.ts +81 -15
  268. package/src/multistream/multistreamMedia.ts +5 -0
  269. package/src/multistream/receiveSlot.ts +18 -12
  270. package/src/multistream/receiveSlotManager.ts +23 -21
  271. package/src/multistream/remoteMedia.ts +15 -5
  272. package/src/multistream/remoteMediaGroup.ts +4 -3
  273. package/src/multistream/remoteMediaManager.ts +153 -37
  274. package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
  275. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  276. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  277. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  278. package/src/reachability/{index.js → index.ts} +99 -83
  279. package/src/reachability/request.ts +39 -33
  280. package/src/reactions/constants.ts +4 -0
  281. package/src/reactions/reactions.ts +104 -0
  282. package/src/reactions/reactions.type.ts +62 -0
  283. package/src/reconnection-manager/{index.js → index.ts} +195 -102
  284. package/src/recording-controller/enums.ts +8 -0
  285. package/src/recording-controller/index.ts +315 -0
  286. package/src/recording-controller/util.ts +58 -0
  287. package/src/roap/{index.js → index.ts} +73 -56
  288. package/src/roap/request.ts +157 -0
  289. package/src/roap/turnDiscovery.ts +77 -37
  290. package/src/statsAnalyzer/{global.js → global.ts} +30 -33
  291. package/src/statsAnalyzer/{index.js → index.ts} +468 -192
  292. package/src/statsAnalyzer/mqaUtil.ts +290 -0
  293. package/src/transcription/{index.js → index.ts} +46 -39
  294. package/test/integration/spec/journey.js +664 -463
  295. package/test/integration/spec/space-meeting.js +320 -206
  296. package/test/integration/spec/transcription.js +7 -8
  297. package/test/unit/spec/breakouts/breakout.ts +119 -0
  298. package/test/unit/spec/breakouts/collection.ts +15 -0
  299. package/test/unit/spec/breakouts/index.ts +293 -0
  300. package/test/unit/spec/common/browser-detection.js +9 -28
  301. package/test/unit/spec/fixture/locus.js +92 -90
  302. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  303. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  304. package/test/unit/spec/locus-info/index.js +104 -2
  305. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  306. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  307. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  308. package/test/unit/spec/locus-info/parser.js +3 -9
  309. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  310. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  311. package/test/unit/spec/media/index.ts +31 -47
  312. package/test/unit/spec/media/properties.ts +9 -9
  313. package/test/unit/spec/meeting/effectsState.js +39 -45
  314. package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
  315. package/test/unit/spec/meeting/index.js +2017 -742
  316. package/test/unit/spec/meeting/muteState.js +42 -33
  317. package/test/unit/spec/meeting/request.js +115 -44
  318. package/test/unit/spec/meeting/utils.js +104 -171
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  320. package/test/unit/spec/meeting-info/request.js +7 -9
  321. package/test/unit/spec/meeting-info/util.js +11 -12
  322. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  323. package/test/unit/spec/meetings/collection.js +1 -1
  324. package/test/unit/spec/meetings/index.js +439 -257
  325. package/test/unit/spec/meetings/utils.js +14 -12
  326. package/test/unit/spec/member/index.js +0 -1
  327. package/test/unit/spec/member/util.js +31 -7
  328. package/test/unit/spec/members/index.js +104 -54
  329. package/test/unit/spec/members/request.js +29 -20
  330. package/test/unit/spec/members/utils.js +8 -5
  331. package/test/unit/spec/metrics/index.js +16 -21
  332. package/test/unit/spec/multistream/mediaRequestManager.ts +316 -50
  333. package/test/unit/spec/multistream/receiveSlot.ts +6 -6
  334. package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
  335. package/test/unit/spec/multistream/remoteMedia.ts +10 -2
  336. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  337. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  338. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  339. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  340. package/test/unit/spec/reachability/index.ts +58 -26
  341. package/test/unit/spec/reconnection-manager/index.js +102 -9
  342. package/test/unit/spec/recording-controller/index.js +231 -0
  343. package/test/unit/spec/recording-controller/util.js +102 -0
  344. package/test/unit/spec/roap/index.ts +2 -1
  345. package/test/unit/spec/roap/request.ts +114 -0
  346. package/test/unit/spec/roap/turnDiscovery.ts +64 -45
  347. package/test/unit/spec/stats-analyzer/index.js +27 -22
  348. package/test/utils/cmr.js +44 -42
  349. package/test/utils/testUtils.js +83 -74
  350. package/test/utils/webex-config.js +18 -18
  351. package/test/utils/webex-test-users.js +54 -50
  352. package/tsconfig.json +6 -0
  353. package/dist/media/internal-media-core-wrapper.js +0 -22
  354. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  355. package/dist/peer-connection-manager/util.js +0 -124
  356. package/dist/peer-connection-manager/util.js.map +0 -1
  357. package/src/common/logs/logger-proxy.js +0 -33
  358. package/src/locus-info/controlsUtils.js +0 -102
  359. package/src/media/internal-media-core-wrapper.ts +0 -9
  360. package/src/meeting-info/meeting-info-v2.js +0 -255
  361. package/src/meetings/index.js +0 -1015
  362. package/src/peer-connection-manager/util.ts +0 -117
  363. package/src/roap/request.js +0 -127
  364. package/src/statsAnalyzer/mqaUtil.js +0 -173
  365. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
@@ -1,4 +1,4 @@
1
- import * as internalMediaModule from '@webex/plugin-meetings/src/media/internal-media-core-wrapper';
1
+ import * as internalMediaModule from '@webex/internal-media-core';
2
2
  import Media from '@webex/plugin-meetings/src/media/index';
3
3
  import {assert} from '@webex/test-helper-chai';
4
4
  import sinon from 'sinon';
@@ -29,8 +29,8 @@ describe('createMediaConnection', () => {
29
29
  const ENABLE_EXTMAP = false;
30
30
  const ENABLE_RTX = true;
31
31
 
32
- Media.createMediaConnection(
33
- {
32
+ Media.createMediaConnection(false, 'some debug id', {
33
+ mediaProperties: {
34
34
  mediaDirection: {
35
35
  sendAudio: true,
36
36
  sendVideo: true,
@@ -43,18 +43,15 @@ describe('createMediaConnection', () => {
43
43
  videoTrack: fakeVideoTrack,
44
44
  shareTrack: null,
45
45
  },
46
- {
47
- isMultistream: false,
48
- remoteQualityLevel: 'HIGH',
49
- enableRtx: ENABLE_RTX,
50
- enableExtmap: ENABLE_EXTMAP,
51
- turnServerInfo: {
52
- url: 'turn server url',
53
- username: 'turn username',
54
- password: 'turn password',
55
- },
56
- }
57
- );
46
+ remoteQualityLevel: 'HIGH',
47
+ enableRtx: ENABLE_RTX,
48
+ enableExtmap: ENABLE_EXTMAP,
49
+ turnServerInfo: {
50
+ url: 'turn server url',
51
+ username: 'turn username',
52
+ password: 'turn password',
53
+ },
54
+ });
58
55
  assert.calledOnce(roapMediaConnectionConstructorStub);
59
56
  assert.calledWith(
60
57
  roapMediaConnectionConstructorStub,
@@ -94,7 +91,7 @@ describe('createMediaConnection', () => {
94
91
  remoteQualityLevel: 'HIGH',
95
92
  },
96
93
  },
97
- 'mc'
94
+ 'some debug id'
98
95
  );
99
96
  });
100
97
 
@@ -103,17 +100,13 @@ describe('createMediaConnection', () => {
103
100
  .stub(internalMediaModule, 'MultistreamRoapMediaConnection')
104
101
  .returns(fakeRoapMediaConnection);
105
102
 
106
- Media.createMediaConnection(
107
- {},
108
- {
109
- isMultistream: true,
110
- turnServerInfo: {
111
- url: 'turn server url',
112
- username: 'turn username',
113
- password: 'turn password',
114
- },
115
- }
116
- );
103
+ Media.createMediaConnection(true, 'some debug id', {
104
+ turnServerInfo: {
105
+ url: 'turn server url',
106
+ username: 'turn username',
107
+ password: 'turn password',
108
+ },
109
+ });
117
110
  assert.calledOnce(multistreamRoapMediaConnectionConstructorStub);
118
111
  assert.calledWith(
119
112
  multistreamRoapMediaConnectionConstructorStub,
@@ -126,7 +119,7 @@ describe('createMediaConnection', () => {
126
119
  },
127
120
  ],
128
121
  },
129
- 'mc'
122
+ 'some debug id'
130
123
  );
131
124
  });
132
125
 
@@ -135,20 +128,14 @@ describe('createMediaConnection', () => {
135
128
  .stub(internalMediaModule, 'MultistreamRoapMediaConnection')
136
129
  .returns(fakeRoapMediaConnection);
137
130
 
138
- Media.createMediaConnection(
139
- {},
140
- {
141
- isMultistream: true,
142
- turnServerInfo: undefined,
143
- }
144
- );
131
+ Media.createMediaConnection(true, 'debug string', {});
145
132
  assert.calledOnce(multistreamRoapMediaConnectionConstructorStub);
146
133
  assert.calledWith(
147
134
  multistreamRoapMediaConnectionConstructorStub,
148
135
  {
149
136
  iceServers: [],
150
137
  },
151
- 'mc'
138
+ 'debug string'
152
139
  );
153
140
  });
154
141
 
@@ -162,8 +149,8 @@ describe('createMediaConnection', () => {
162
149
  const ENABLE_EXTMAP = false;
163
150
  const ENABLE_RTX = true;
164
151
 
165
- Media.createMediaConnection(
166
- {
152
+ Media.createMediaConnection(false, 'some debug id', {
153
+ mediaProperties: {
167
154
  mediaDirection: {
168
155
  sendAudio: true,
169
156
  sendVideo: true,
@@ -176,14 +163,11 @@ describe('createMediaConnection', () => {
176
163
  videoTrack: null,
177
164
  shareTrack: fakeVideoTrack,
178
165
  },
179
- {
180
- isMultistream: false,
181
- remoteQualityLevel: 'HIGH',
182
- enableRtx: ENABLE_RTX,
183
- enableExtmap: ENABLE_EXTMAP,
184
- turnServerInfo: undefined,
185
- }
186
- );
166
+ remoteQualityLevel: 'HIGH',
167
+ enableRtx: ENABLE_RTX,
168
+ enableExtmap: ENABLE_EXTMAP,
169
+ turnServerInfo: undefined,
170
+ });
187
171
  assert.calledOnce(roapMediaConnectionConstructorStub);
188
172
  assert.calledWith(
189
173
  roapMediaConnectionConstructorStub,
@@ -217,7 +201,7 @@ describe('createMediaConnection', () => {
217
201
  remoteQualityLevel: 'HIGH',
218
202
  },
219
203
  },
220
- 'mc'
204
+ 'some debug id'
221
205
  );
222
206
  });
223
207
  });
@@ -1,6 +1,6 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
2
  import sinon from 'sinon';
3
- import {MediaConnection as MC} from '@webex/internal-media-core';
3
+ import {ConnectionState, Event} from '@webex/internal-media-core';
4
4
  import MediaProperties from '@webex/plugin-meetings/src/media/properties';
5
5
  import MediaUtil from '@webex/plugin-meetings/src/media/util';
6
6
  import testUtils from '../../../utils/testUtils';
@@ -19,7 +19,7 @@ describe('MediaProperties', () => {
19
19
  getStats: sinon.stub().resolves([]),
20
20
  on: sinon.stub(),
21
21
  off: sinon.stub(),
22
- getConnectionState: sinon.stub().returns(MC.ConnectionState.Connected),
22
+ getConnectionState: sinon.stub().returns(ConnectionState.Connected),
23
23
  };
24
24
 
25
25
  mediaProperties = new MediaProperties();
@@ -35,7 +35,7 @@ describe('MediaProperties', () => {
35
35
  await mediaProperties.waitForMediaConnectionConnected();
36
36
  });
37
37
  it('rejects after timeout if ice state does not reach connected/completed', async () => {
38
- mockMC.getConnectionState.returns(MC.ConnectionState.Connecting);
38
+ mockMC.getConnectionState.returns(ConnectionState.Connecting);
39
39
 
40
40
  let promiseResolved = false;
41
41
  let promiseRejected = false;
@@ -60,15 +60,15 @@ describe('MediaProperties', () => {
60
60
 
61
61
  // check that listener was registered and removed
62
62
  assert.calledOnce(mockMC.on);
63
- assert.equal(mockMC.on.getCall(0).args[0], MC.Event.CONNECTION_STATE_CHANGED);
63
+ assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
64
64
  const listener = mockMC.on.getCall(0).args[1];
65
65
 
66
66
  assert.calledOnce(mockMC.off);
67
- assert.calledWith(mockMC.off, MC.Event.CONNECTION_STATE_CHANGED, listener);
67
+ assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
68
68
  });
69
69
 
70
70
  it(`resolves when media connection reaches "connected" state`, async () => {
71
- mockMC.getConnectionState.returns(MC.ConnectionState.Connecting);
71
+ mockMC.getConnectionState.returns(ConnectionState.Connecting);
72
72
 
73
73
  const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
74
74
 
@@ -89,11 +89,11 @@ describe('MediaProperties', () => {
89
89
 
90
90
  // check the right listener was registered
91
91
  assert.calledOnce(mockMC.on);
92
- assert.equal(mockMC.on.getCall(0).args[0], MC.Event.CONNECTION_STATE_CHANGED);
92
+ assert.equal(mockMC.on.getCall(0).args[0], Event.CONNECTION_STATE_CHANGED);
93
93
  const listener = mockMC.on.getCall(0).args[1];
94
94
 
95
95
  // call the listener and pretend we are now connected
96
- mockMC.getConnectionState.returns(MC.ConnectionState.Connected);
96
+ mockMC.getConnectionState.returns(ConnectionState.Connected);
97
97
  listener();
98
98
  await testUtils.flushPromises();
99
99
 
@@ -102,7 +102,7 @@ describe('MediaProperties', () => {
102
102
 
103
103
  // check that listener was removed
104
104
  assert.calledOnce(mockMC.off);
105
- assert.calledWith(mockMC.off, MC.Event.CONNECTION_STATE_CHANGED, listener);
105
+ assert.calledWith(mockMC.off, Event.CONNECTION_STATE_CHANGED, listener);
106
106
 
107
107
  assert.calledOnce(clearTimeoutSpy);
108
108
  });
@@ -12,6 +12,8 @@ import MeetingUtil from '@webex/plugin-meetings/src/meeting/util';
12
12
  import createEffectsState from '@webex/plugin-meetings/src/meeting/effectsState';
13
13
  import LoggerProxy from '@webex/plugin-meetings/src/common/logs/logger-proxy';
14
14
  import LoggerConfig from '@webex/plugin-meetings/src/common/logs/logger-config';
15
+ import LLM from '@webex/internal-plugin-llm';
16
+ import Mercury from '@webex/internal-plugin-mercury';
15
17
 
16
18
  describe('plugin-meetings', () => {
17
19
  const logger = {
@@ -20,7 +22,7 @@ describe('plugin-meetings', () => {
20
22
  error: () => {},
21
23
  warn: () => {},
22
24
  trace: () => {},
23
- debug: () => {}
25
+ debug: () => {},
24
26
  };
25
27
 
26
28
  beforeEach(() => {
@@ -34,8 +36,8 @@ describe('plugin-meetings', () => {
34
36
  writable: true,
35
37
  value: {
36
38
  getSupportedConstraints: sinon.stub().returns({
37
- sampleRate: true
38
- })
39
+ sampleRate: true,
40
+ }),
39
41
  },
40
42
  });
41
43
  LoggerConfig.set({verboseEvents: true, enable: false});
@@ -51,8 +53,8 @@ describe('plugin-meetings', () => {
51
53
  readyState: 'live',
52
54
  enabled: true,
53
55
  getSettings: () => ({
54
- sampleRate: 48000
55
- })
56
+ sampleRate: 48000,
57
+ }),
56
58
  });
57
59
 
58
60
  class FakeMediaStream {
@@ -85,7 +87,7 @@ describe('plugin-meetings', () => {
85
87
  connect: () => undefined,
86
88
  mediaStream: {
87
89
  getAudioTracks() {
88
- // eslint-disable-next-line no-undef
90
+ // eslint-disable-next-line no-undef
89
91
  return [new MediaStreamTrack()];
90
92
  },
91
93
  },
@@ -96,7 +98,7 @@ describe('plugin-meetings', () => {
96
98
  return {
97
99
  stream: {
98
100
  getAudioTracks() {
99
- // eslint-disable-next-line no-undef
101
+ // eslint-disable-next-line no-undef
100
102
  return [new MediaStreamTrack()];
101
103
  },
102
104
  },
@@ -112,7 +114,7 @@ describe('plugin-meetings', () => {
112
114
  }
113
115
 
114
116
  connect() {
115
- /* placeholder method */
117
+ /* placeholder method */
116
118
  }
117
119
  }
118
120
 
@@ -128,7 +130,7 @@ describe('plugin-meetings', () => {
128
130
 
129
131
  getSettings() {
130
132
  return {
131
- sampleRate: 48000
133
+ sampleRate: 48000,
132
134
  };
133
135
  }
134
136
  }
@@ -157,15 +159,17 @@ describe('plugin-meetings', () => {
157
159
  beforeEach(() => {
158
160
  webex = new MockWebex({
159
161
  children: {
160
- meetings: Meetings
162
+ meetings: Meetings,
163
+ llm: LLM,
164
+ mercury: Mercury,
161
165
  }
162
166
  });
163
167
  meeting = new Meeting(
164
168
  {
165
- userId: uuid1
169
+ userId: uuid1,
166
170
  },
167
171
  {
168
- parent: webex
172
+ parent: webex,
169
173
  }
170
174
  );
171
175
 
@@ -179,9 +183,11 @@ describe('plugin-meetings', () => {
179
183
  sinon.replace(meeting, 'addMedia', () => {
180
184
  sinon.stub(meeting.mediaProperties, 'audioTrack').value(fakeMediaTrack());
181
185
  sinon.stub(meeting.mediaProperties, 'mediaDirection').value({
182
- receiveAudio: true
186
+ receiveAudio: true,
183
187
  });
184
- sinon.stub(meeting.mediaProperties, 'webrtcMediaConnection').value({updateSendReceiveOptions: sinon.stub()});
188
+ sinon
189
+ .stub(meeting.mediaProperties, 'webrtcMediaConnection')
190
+ .value({updateSendReceiveOptions: sinon.stub()});
185
191
  });
186
192
  });
187
193
 
@@ -200,10 +206,7 @@ describe('plugin-meetings', () => {
200
206
  assert.equal(effects.state.bnr.enabled, BNR_STATUS.ENABLED);
201
207
 
202
208
  assert(Metrics.sendBehavioralMetric.calledOnce);
203
- assert.calledWith(
204
- Metrics.sendBehavioralMetric,
205
- BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS,
206
- );
209
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS);
207
210
  });
208
211
 
209
212
  it('does resolve request if bnr is already enabled', async () => {
@@ -213,12 +216,14 @@ describe('plugin-meetings', () => {
213
216
  });
214
217
 
215
218
  it('if called twice, does bnr effect enable on audio track for the first request and resolves second', async () => {
216
- Promise.all([effects.handleClientRequest(true, meeting), effects.handleClientRequest(true, meeting)])
217
- .then((resolveFirst, resolveSecond) => {
218
- assert.isTrue(resolveFirst);
219
- assert.isTrue(resolveSecond);
220
- assert.calledOnce(MediaUtil.createMediaStream);
221
- });
219
+ Promise.all([
220
+ effects.handleClientRequest(true, meeting),
221
+ effects.handleClientRequest(true, meeting),
222
+ ]).then((resolveFirst, resolveSecond) => {
223
+ assert.isTrue(resolveFirst);
224
+ assert.isTrue(resolveSecond);
225
+ assert.calledOnce(MediaUtil.createMediaStream);
226
+ });
222
227
  });
223
228
 
224
229
  it('should throw error for inappropriate sample rate and send error metrics', async () => {
@@ -227,8 +232,8 @@ describe('plugin-meetings', () => {
227
232
  stop: () => {},
228
233
  readyState: 'live',
229
234
  getSettings: () => ({
230
- sampleRate: 49000
231
- })
235
+ sampleRate: 49000,
236
+ }),
232
237
  });
233
238
 
234
239
  sinon.stub(meeting.mediaProperties, 'audioTrack').value(fakeMediaTrack1());
@@ -237,16 +242,12 @@ describe('plugin-meetings', () => {
237
242
  MediaUtil.createMediaStream = sinon.stub().returns(new MediaStream([fakeMediaTrack1()]));
238
243
  try {
239
244
  await effects.handleClientRequest(true, meeting);
240
- }
241
- catch (err) {
245
+ } catch (err) {
242
246
  assert(Metrics.sendBehavioralMetric.calledOnce);
243
- assert.calledWith(
244
- Metrics.sendBehavioralMetric,
245
- BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE, {
246
- reason: err.message,
247
- stack: err.stack
248
- }
249
- );
247
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE, {
248
+ reason: err.message,
249
+ stack: err.stack,
250
+ });
250
251
  assert.equal(err.message, 'Sample rate of 49000 is not supported.');
251
252
  }
252
253
  });
@@ -265,25 +266,18 @@ describe('plugin-meetings', () => {
265
266
  assert.equal(effects.state.bnr.enabled, BNR_STATUS.NOT_ENABLED);
266
267
 
267
268
  assert(Metrics.sendBehavioralMetric.calledOnce);
268
- assert.calledWith(
269
- Metrics.sendBehavioralMetric,
270
- BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS,
271
- );
269
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS);
272
270
  });
273
271
 
274
272
  it('reject request for disable bnr if not enabled', async () => {
275
273
  try {
276
274
  await effects.handleClientRequest(false, meeting);
277
- }
278
- catch (e) {
275
+ } catch (e) {
279
276
  assert.equal(e.message, 'Can not disable as BNR is not enabled');
280
277
  assert.equal(effects.state.bnr.enabled, BNR_STATUS.ENABLED);
281
278
 
282
279
  assert(Metrics.sendBehavioralMetric.calledOnce);
283
- assert.calledWith(
284
- Metrics.sendBehavioralMetric,
285
- BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE,
286
- );
280
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE);
287
281
  }
288
282
  });
289
283
  });
@@ -1,7 +1,6 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
2
  import InMeetingActions from '@webex/plugin-meetings/src/meeting/in-meeting-actions';
3
3
 
4
-
5
4
  describe('plugin-meetings', () => {
6
5
  describe('in-meeting-actions', () => {
7
6
  const checkValues = (actions, expected?) => {
@@ -28,6 +27,8 @@ describe('plugin-meetings', () => {
28
27
  isRealTimeTranslationEnabled: null,
29
28
  canSelectSpokenLanguages: null,
30
29
  waitingForOthersToJoin: null,
30
+ canEnableReactions: null,
31
+ canSendReactions: null,
31
32
  ...expected
32
33
  };
33
34
 
@@ -61,7 +62,9 @@ describe('plugin-meetings', () => {
61
62
  'canViewCaptionPanel',
62
63
  'isRealTimeTranslationEnabled',
63
64
  'canSelectSpokenLanguages',
64
- 'waitingForOthersToJoin'
65
+ 'waitingForOthersToJoin',
66
+ 'canEnableReactions',
67
+ 'canSendReactions'
65
68
  ].forEach((key) => {
66
69
  it(`get and set for ${key} work as expected`, () => {
67
70
  const inMeetingActions = new InMeetingActions();