@webex/plugin-meetings 3.0.0-beta.7 → 3.0.0-beta.71

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 (506) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +178 -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/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +843 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +56 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +6 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +143 -52
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +16 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +261 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +39 -0
  72. package/dist/controls-options-manager/util.js.map +1 -0
  73. package/dist/index.js +11 -18
  74. package/dist/index.js.map +1 -1
  75. package/dist/locus-info/controlsUtils.js +31 -29
  76. package/dist/locus-info/controlsUtils.js.map +1 -1
  77. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  78. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  79. package/dist/locus-info/fullState.js +0 -15
  80. package/dist/locus-info/fullState.js.map +1 -1
  81. package/dist/locus-info/hostUtils.js +4 -12
  82. package/dist/locus-info/hostUtils.js.map +1 -1
  83. package/dist/locus-info/index.js +237 -198
  84. package/dist/locus-info/index.js.map +1 -1
  85. package/dist/locus-info/infoUtils.js +3 -37
  86. package/dist/locus-info/infoUtils.js.map +1 -1
  87. package/dist/locus-info/mediaSharesUtils.js +12 -38
  88. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  89. package/dist/locus-info/parser.js +92 -118
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +80 -89
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +56 -146
  94. package/dist/media/index.js.map +1 -1
  95. package/dist/media/properties.js +83 -117
  96. package/dist/media/properties.js.map +1 -1
  97. package/dist/media/util.js +2 -9
  98. package/dist/media/util.js.map +1 -1
  99. package/dist/mediaQualityMetrics/config.js +505 -495
  100. package/dist/mediaQualityMetrics/config.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +31 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2225 -2244
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +102 -100
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +308 -264
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +63 -217
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +193 -268
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +137 -228
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +26 -19
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +565 -552
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +26 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +151 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +100 -85
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/types.js +15 -0
  138. package/dist/member/types.js.map +1 -0
  139. package/dist/member/util.js +90 -68
  140. package/dist/member/util.js.map +1 -1
  141. package/dist/members/collection.js +13 -12
  142. package/dist/members/collection.js.map +1 -1
  143. package/dist/members/index.js +152 -204
  144. package/dist/members/index.js.map +1 -1
  145. package/dist/members/request.js +35 -39
  146. package/dist/members/request.js.map +1 -1
  147. package/dist/members/types.js +15 -0
  148. package/dist/members/types.js.map +1 -0
  149. package/dist/members/util.js +76 -46
  150. package/dist/members/util.js.map +1 -1
  151. package/dist/metrics/config.js +4 -14
  152. package/dist/metrics/config.js.map +1 -1
  153. package/dist/metrics/constants.js +1 -6
  154. package/dist/metrics/constants.js.map +1 -1
  155. package/dist/metrics/index.js +59 -156
  156. package/dist/metrics/index.js.map +1 -1
  157. package/dist/multistream/mediaRequestManager.js +116 -52
  158. package/dist/multistream/mediaRequestManager.js.map +1 -1
  159. package/dist/multistream/receiveSlot.js +58 -65
  160. package/dist/multistream/receiveSlot.js.map +1 -1
  161. package/dist/multistream/receiveSlotManager.js +58 -93
  162. package/dist/multistream/receiveSlotManager.js.map +1 -1
  163. package/dist/multistream/remoteMedia.js +55 -74
  164. package/dist/multistream/remoteMedia.js.map +1 -1
  165. package/dist/multistream/remoteMediaGroup.js +6 -40
  166. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  167. package/dist/multistream/remoteMediaManager.js +466 -442
  168. package/dist/multistream/remoteMediaManager.js.map +1 -1
  169. package/dist/networkQualityMonitor/index.js +40 -59
  170. package/dist/networkQualityMonitor/index.js.map +1 -1
  171. package/dist/personal-meeting-room/index.js +21 -45
  172. package/dist/personal-meeting-room/index.js.map +1 -1
  173. package/dist/personal-meeting-room/request.js +1 -31
  174. package/dist/personal-meeting-room/request.js.map +1 -1
  175. package/dist/personal-meeting-room/util.js +0 -13
  176. package/dist/personal-meeting-room/util.js.map +1 -1
  177. package/dist/reachability/index.js +192 -191
  178. package/dist/reachability/index.js.map +1 -1
  179. package/dist/reachability/request.js +15 -23
  180. package/dist/reachability/request.js.map +1 -1
  181. package/dist/reactions/constants.js +13 -0
  182. package/dist/reactions/constants.js.map +1 -0
  183. package/dist/reactions/reactions.js +109 -0
  184. package/dist/reactions/reactions.js.map +1 -0
  185. package/dist/reactions/reactions.type.js +36 -0
  186. package/dist/reactions/reactions.type.js.map +1 -0
  187. package/dist/reconnection-manager/index.js +342 -460
  188. package/dist/reconnection-manager/index.js.map +1 -1
  189. package/dist/recording-controller/enums.js +17 -0
  190. package/dist/recording-controller/enums.js.map +1 -0
  191. package/dist/recording-controller/index.js +343 -0
  192. package/dist/recording-controller/index.js.map +1 -0
  193. package/dist/recording-controller/util.js +63 -0
  194. package/dist/recording-controller/util.js.map +1 -0
  195. package/dist/roap/index.js +48 -70
  196. package/dist/roap/index.js.map +1 -1
  197. package/dist/roap/request.js +143 -131
  198. package/dist/roap/request.js.map +1 -1
  199. package/dist/roap/turnDiscovery.js +91 -98
  200. package/dist/roap/turnDiscovery.js.map +1 -1
  201. package/dist/statsAnalyzer/global.js +1 -95
  202. package/dist/statsAnalyzer/global.js.map +1 -1
  203. package/dist/statsAnalyzer/index.js +372 -455
  204. package/dist/statsAnalyzer/index.js.map +1 -1
  205. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  206. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  207. package/dist/transcription/index.js +22 -47
  208. package/dist/transcription/index.js.map +1 -1
  209. package/dist/types/breakouts/breakout.d.ts +8 -0
  210. package/dist/types/breakouts/collection.d.ts +5 -0
  211. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  212. package/dist/types/breakouts/index.d.ts +5 -0
  213. package/dist/types/breakouts/request.d.ts +22 -0
  214. package/dist/types/breakouts/utils.d.ts +8 -0
  215. package/dist/types/common/browser-detection.d.ts +9 -0
  216. package/dist/types/common/collection.d.ts +48 -0
  217. package/dist/types/common/config.d.ts +2 -0
  218. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  219. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  220. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  221. package/dist/types/common/errors/media.d.ts +15 -0
  222. package/dist/types/common/errors/parameter.d.ts +15 -0
  223. package/dist/types/common/errors/password-error.d.ts +15 -0
  224. package/dist/types/common/errors/permission.d.ts +14 -0
  225. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  226. package/dist/types/common/errors/reconnection.d.ts +15 -0
  227. package/dist/types/common/errors/stats.d.ts +15 -0
  228. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  229. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  230. package/dist/types/common/events/events-scope.d.ts +17 -0
  231. package/dist/types/common/events/events.d.ts +12 -0
  232. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  233. package/dist/types/common/events/util.d.ts +2 -0
  234. package/dist/types/common/logs/logger-config.d.ts +2 -0
  235. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  236. package/dist/types/common/logs/request.d.ts +34 -0
  237. package/dist/types/common/queue.d.ts +32 -0
  238. package/dist/types/config.d.ts +77 -0
  239. package/dist/types/constants.d.ts +944 -0
  240. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  241. package/dist/types/controls-options-manager/enums.d.ts +6 -0
  242. package/dist/types/controls-options-manager/index.d.ts +128 -0
  243. package/dist/types/controls-options-manager/util.d.ts +9 -0
  244. package/dist/types/index.d.ts +6 -0
  245. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  246. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  247. package/dist/types/locus-info/fullState.d.ts +2 -0
  248. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  249. package/dist/types/locus-info/index.d.ts +276 -0
  250. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  251. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  252. package/dist/types/locus-info/parser.d.ts +212 -0
  253. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  254. package/dist/types/media/index.d.ts +32 -0
  255. package/dist/types/media/properties.d.ts +108 -0
  256. package/dist/types/media/util.d.ts +2 -0
  257. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  258. package/dist/types/meeting/in-meeting-actions.d.ts +101 -0
  259. package/dist/types/meeting/index.d.ts +1720 -0
  260. package/dist/types/meeting/muteState.d.ts +132 -0
  261. package/dist/types/meeting/request.d.ts +271 -0
  262. package/dist/types/meeting/request.type.d.ts +11 -0
  263. package/dist/types/meeting/state.d.ts +9 -0
  264. package/dist/types/meeting/util.d.ts +2 -0
  265. package/dist/types/meeting-info/collection.d.ts +20 -0
  266. package/dist/types/meeting-info/index.d.ts +57 -0
  267. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  268. package/dist/types/meeting-info/request.d.ts +22 -0
  269. package/dist/types/meeting-info/util.d.ts +2 -0
  270. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  271. package/dist/types/meetings/collection.d.ts +31 -0
  272. package/dist/types/meetings/index.d.ts +315 -0
  273. package/dist/types/meetings/request.d.ts +27 -0
  274. package/dist/types/meetings/util.d.ts +18 -0
  275. package/dist/types/member/index.d.ts +156 -0
  276. package/dist/types/member/types.d.ts +21 -0
  277. package/dist/types/member/util.d.ts +2 -0
  278. package/dist/types/members/collection.d.ts +29 -0
  279. package/dist/types/members/index.d.ts +343 -0
  280. package/dist/types/members/request.d.ts +58 -0
  281. package/dist/types/members/types.d.ts +24 -0
  282. package/dist/types/members/util.d.ts +2 -0
  283. package/dist/types/metrics/config.d.ts +171 -0
  284. package/dist/types/metrics/constants.d.ts +53 -0
  285. package/dist/types/metrics/index.d.ts +152 -0
  286. package/dist/types/multistream/mediaRequestManager.d.ts +68 -0
  287. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  288. package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
  289. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  290. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  291. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  292. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  293. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  294. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  295. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  296. package/dist/types/reachability/index.d.ts +152 -0
  297. package/dist/types/reachability/request.d.ts +37 -0
  298. package/dist/types/reactions/constants.d.ts +3 -0
  299. package/dist/types/reactions/reactions.d.ts +4 -0
  300. package/dist/types/reactions/reactions.type.d.ts +52 -0
  301. package/dist/types/reconnection-manager/index.d.ts +126 -0
  302. package/dist/types/recording-controller/enums.d.ts +7 -0
  303. package/dist/types/recording-controller/index.d.ts +193 -0
  304. package/dist/types/recording-controller/util.d.ts +13 -0
  305. package/dist/types/roap/index.d.ts +77 -0
  306. package/dist/types/roap/request.d.ts +38 -0
  307. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  308. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  309. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  310. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  311. package/dist/types/transcription/index.d.ts +64 -0
  312. package/internal-README.md +7 -6
  313. package/package.json +27 -21
  314. package/src/breakouts/README.md +219 -0
  315. package/src/breakouts/breakout.ts +153 -0
  316. package/src/breakouts/collection.ts +19 -0
  317. package/src/breakouts/edit-lock-error.ts +25 -0
  318. package/src/breakouts/index.ts +745 -0
  319. package/src/breakouts/request.ts +55 -0
  320. package/src/breakouts/utils.ts +44 -0
  321. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  322. package/src/common/collection.ts +9 -7
  323. package/src/common/{config.js → config.ts} +1 -1
  324. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  325. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  326. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  327. package/src/common/errors/{media.js → media.ts} +11 -7
  328. package/src/common/errors/parameter.ts +11 -7
  329. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  330. package/src/common/errors/{permission.js → permission.ts} +10 -6
  331. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  332. package/src/common/errors/{stats.js → stats.ts} +11 -7
  333. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  334. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  335. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  336. package/src/common/events/{events.js → events.ts} +5 -1
  337. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  338. package/src/common/events/{util.js → util.ts} +2 -3
  339. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  340. package/src/common/logs/logger-proxy.ts +44 -0
  341. package/src/common/logs/{request.js → request.ts} +22 -9
  342. package/src/common/queue.ts +1 -2
  343. package/src/{config.js → config.ts} +17 -12
  344. package/src/constants.ts +92 -5
  345. package/src/controls-options-manager/constants.ts +5 -0
  346. package/src/controls-options-manager/enums.ts +7 -0
  347. package/src/controls-options-manager/index.ts +240 -0
  348. package/src/controls-options-manager/util.ts +30 -0
  349. package/src/index.js +4 -1
  350. package/src/locus-info/controlsUtils.ts +141 -0
  351. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  352. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  353. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  354. package/src/locus-info/{index.js → index.ts} +211 -71
  355. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  356. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  357. package/src/locus-info/{parser.js → parser.ts} +67 -79
  358. package/src/locus-info/{selfUtils.js → selfUtils.ts} +183 -67
  359. package/src/media/{index.js → index.ts} +179 -176
  360. package/src/media/{properties.js → properties.ts} +60 -37
  361. package/src/media/{util.js → util.ts} +2 -2
  362. package/src/mediaQualityMetrics/config.ts +384 -0
  363. package/src/meeting/in-meeting-actions.ts +67 -3
  364. package/src/meeting/{index.js → index.ts} +2605 -1605
  365. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  366. package/src/meeting/{request.js → request.ts} +326 -142
  367. package/src/meeting/request.type.ts +13 -0
  368. package/src/meeting/{state.js → state.ts} +50 -35
  369. package/src/meeting/{util.js → util.ts} +131 -115
  370. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  371. package/src/meeting-info/{index.js → index.ts} +42 -36
  372. package/src/meeting-info/meeting-info-v2.ts +273 -0
  373. package/src/meeting-info/{request.js → request.ts} +14 -4
  374. package/src/meeting-info/{util.js → util.ts} +60 -51
  375. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  376. package/src/meetings/{collection.js → collection.ts} +26 -3
  377. package/src/meetings/index.ts +1275 -0
  378. package/src/meetings/{request.js → request.ts} +34 -25
  379. package/src/meetings/{util.js → util.ts} +99 -33
  380. package/src/member/{index.js → index.ts} +124 -56
  381. package/src/member/types.ts +24 -0
  382. package/src/member/{util.js → util.ts} +105 -25
  383. package/src/members/{collection.js → collection.ts} +10 -2
  384. package/src/members/{index.js → index.ts} +281 -144
  385. package/src/members/{request.js → request.ts} +80 -16
  386. package/src/members/types.ts +28 -0
  387. package/src/members/{util.js → util.ts} +108 -55
  388. package/src/metrics/{config.js → config.ts} +255 -92
  389. package/src/metrics/{constants.js → constants.ts} +0 -6
  390. package/src/metrics/{index.js → index.ts} +110 -94
  391. package/src/multistream/mediaRequestManager.ts +144 -40
  392. package/src/multistream/receiveSlot.ts +69 -26
  393. package/src/multistream/receiveSlotManager.ts +50 -38
  394. package/src/multistream/remoteMedia.ts +30 -4
  395. package/src/multistream/remoteMediaGroup.ts +4 -3
  396. package/src/multistream/remoteMediaManager.ts +230 -66
  397. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  398. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  399. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  400. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  401. package/src/reachability/{index.js → index.ts} +157 -94
  402. package/src/reachability/request.ts +46 -35
  403. package/src/reactions/constants.ts +4 -0
  404. package/src/reactions/reactions.ts +104 -0
  405. package/src/reactions/reactions.type.ts +62 -0
  406. package/src/reconnection-manager/{index.js → index.ts} +228 -120
  407. package/src/recording-controller/enums.ts +8 -0
  408. package/src/recording-controller/index.ts +315 -0
  409. package/src/recording-controller/util.ts +58 -0
  410. package/src/roap/{index.js → index.ts} +77 -60
  411. package/src/roap/request.ts +172 -0
  412. package/src/roap/turnDiscovery.ts +81 -41
  413. package/src/statsAnalyzer/global.ts +37 -0
  414. package/src/statsAnalyzer/index.ts +1242 -0
  415. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  416. package/src/transcription/{index.js → index.ts} +46 -39
  417. package/test/integration/spec/converged-space-meetings.js +176 -0
  418. package/test/integration/spec/journey.js +665 -464
  419. package/test/integration/spec/space-meeting.js +320 -206
  420. package/test/integration/spec/transcription.js +7 -8
  421. package/test/unit/spec/breakouts/breakout.ts +178 -0
  422. package/test/unit/spec/breakouts/collection.ts +15 -0
  423. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  424. package/test/unit/spec/breakouts/index.ts +1252 -0
  425. package/test/unit/spec/breakouts/request.ts +104 -0
  426. package/test/unit/spec/breakouts/utils.js +54 -0
  427. package/test/unit/spec/common/browser-detection.js +9 -28
  428. package/test/unit/spec/controls-options-manager/index.js +204 -0
  429. package/test/unit/spec/controls-options-manager/util.js +86 -0
  430. package/test/unit/spec/fixture/locus.js +92 -90
  431. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  432. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  433. package/test/unit/spec/locus-info/index.js +303 -2
  434. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  435. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  436. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  437. package/test/unit/spec/locus-info/parser.js +3 -9
  438. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  439. package/test/unit/spec/locus-info/selfUtils.js +165 -12
  440. package/test/unit/spec/media/index.ts +72 -8
  441. package/test/unit/spec/media/properties.ts +9 -9
  442. package/test/unit/spec/meeting/in-meeting-actions.ts +29 -2
  443. package/test/unit/spec/meeting/index.js +2503 -802
  444. package/test/unit/spec/meeting/muteState.js +146 -61
  445. package/test/unit/spec/meeting/request.js +141 -43
  446. package/test/unit/spec/meeting/utils.js +135 -164
  447. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  448. package/test/unit/spec/meeting-info/request.js +7 -9
  449. package/test/unit/spec/meeting-info/util.js +11 -12
  450. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  451. package/test/unit/spec/meetings/collection.js +15 -1
  452. package/test/unit/spec/meetings/index.js +622 -263
  453. package/test/unit/spec/meetings/utils.js +65 -14
  454. package/test/unit/spec/member/index.js +24 -1
  455. package/test/unit/spec/member/util.js +359 -32
  456. package/test/unit/spec/members/index.js +294 -54
  457. package/test/unit/spec/members/request.js +50 -20
  458. package/test/unit/spec/members/utils.js +147 -4
  459. package/test/unit/spec/metrics/index.js +16 -21
  460. package/test/unit/spec/multistream/mediaRequestManager.ts +369 -68
  461. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  462. package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
  463. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  464. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  465. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  466. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  467. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  468. package/test/unit/spec/reachability/index.ts +176 -27
  469. package/test/unit/spec/reachability/request.js +66 -0
  470. package/test/unit/spec/reconnection-manager/index.js +58 -30
  471. package/test/unit/spec/recording-controller/index.js +231 -0
  472. package/test/unit/spec/recording-controller/util.js +102 -0
  473. package/test/unit/spec/roap/index.ts +12 -8
  474. package/test/unit/spec/roap/request.ts +217 -0
  475. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  476. package/test/unit/spec/stats-analyzer/index.js +108 -57
  477. package/test/utils/cmr.js +44 -42
  478. package/test/utils/constants.js +9 -0
  479. package/test/utils/testUtils.js +98 -77
  480. package/test/utils/webex-config.js +22 -18
  481. package/test/utils/webex-test-users.js +57 -50
  482. package/tsconfig.json +6 -0
  483. package/dist/media/internal-media-core-wrapper.js +0 -22
  484. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  485. package/dist/meeting/effectsState.js +0 -327
  486. package/dist/meeting/effectsState.js.map +0 -1
  487. package/dist/multistream/multistreamMedia.js +0 -116
  488. package/dist/multistream/multistreamMedia.js.map +0 -1
  489. package/dist/peer-connection-manager/util.js +0 -124
  490. package/dist/peer-connection-manager/util.js.map +0 -1
  491. package/src/common/logs/logger-proxy.js +0 -33
  492. package/src/locus-info/controlsUtils.js +0 -102
  493. package/src/media/internal-media-core-wrapper.ts +0 -9
  494. package/src/mediaQualityMetrics/config.js +0 -382
  495. package/src/meeting/effectsState.js +0 -205
  496. package/src/meeting-info/meeting-info-v2.js +0 -255
  497. package/src/meetings/index.js +0 -1015
  498. package/src/multistream/multistreamMedia.ts +0 -92
  499. package/src/peer-connection-manager/util.ts +0 -117
  500. package/src/roap/request.js +0 -127
  501. package/src/statsAnalyzer/global.js +0 -133
  502. package/src/statsAnalyzer/index.js +0 -1006
  503. package/src/statsAnalyzer/mqaUtil.js +0 -173
  504. package/test/unit/spec/meeting/effectsState.js +0 -291
  505. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  506. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -12,7 +12,8 @@ export default {
12
12
  webExMeetingName: 'ARUN Personal Room',
13
13
  isPmr: true,
14
14
  webexServiceType: 'MEETING_CENTER',
15
- meetingAvatarUrl: 'https://cisco.webex.com/webappng/images/avatars/ag.png?type=initials&initials=ag',
15
+ meetingAvatarUrl:
16
+ 'https://cisco.webex.com/webappng/images/avatars/ag.png?type=initials&initials=ag',
16
17
  owner: '344ea183-9d5d-4e77-aed2-c4f004afd',
17
18
  siteOrgId: '1eb65fdf-9643-417f-9974-ad72ca',
18
19
  callInTollNumber: '+1-408-525-6',
@@ -20,8 +21,8 @@ export default {
20
21
  {
21
22
  number: '+1-408-525-',
22
23
  tollfree: false,
23
- label: 'Call-in toll number (US/Canada)'
24
- }
24
+ label: 'Call-in toll number (US/Canada)',
25
+ },
25
26
  ],
26
27
  isSparkPstnEnabled: true,
27
28
  isCallInEnabled: true,
@@ -47,7 +48,7 @@ export default {
47
48
  'UCF_SUPPRESS_MOBILE_BREAKOUTS_SUPPORT',
48
49
  'DISABLE_ASK_FOR_HELP',
49
50
  'STAGE_VIEW_INACTIVE',
50
- 'IMMERSIVE_PRESENTER_SUPPORTED_FOR_MTG'
51
+ 'IMMERSIVE_PRESENTER_SUPPORTED_FOR_MTG',
51
52
  ],
52
53
  moderator: [
53
54
  'RECORDING_CONTROL_START',
@@ -65,7 +66,7 @@ export default {
65
66
  'ENABLE_HARD_MUTE',
66
67
  'ADD_GUEST',
67
68
  'EXPEL',
68
- 'ENABLE_STAGE_VIEW'
69
+ 'ENABLE_STAGE_VIEW',
69
70
  ],
70
71
  coHost: [
71
72
  'LOCK_CONTROL_LOCK',
@@ -81,22 +82,25 @@ export default {
81
82
  'PRESENTER_CONTROL',
82
83
  'ENABLE_STAGE_VIEW',
83
84
  'EXPEL',
84
- 'ADD_GUEST'
85
- ]
85
+ 'ADD_GUEST',
86
+ ],
86
87
  },
87
88
  venueUrl: 'https://calliope-a.wbx2.com/calliope/api/v1/venues/b84e1830-74f7-11e8-',
88
- datachannelUrl: 'https://board-a.wbx2.com/datachannel/api/v1/locus/aHR0cHM6Ly9sb2N1cy1hsb2NpL2FjYTAwMTViLTQ1ODctMzNiZi05NGRjLTE2NTBmZDMyY2Q4NQ==/registrations',
89
- embeddedAppsListUrl: 'https://hecate-a.wbx2.com/apps/api/v1/locus/aca0015b-4587-33bf-94dc-/embeddedApps/allowed?sessionInfo=eyJhbGci.',
90
- embeddedAppsLaunchUrl: 'https://hecate-a.wbx2.com/apps/api/v1/locus/aca0015b-4587-33bf-94dc/embeddedApps?sessionInfo=eyJhbGciOiJub25lIn0.eyJza.',
89
+ datachannelUrl:
90
+ 'https://board-a.wbx2.com/datachannel/api/v1/locus/aHR0cHM6Ly9sb2N1cy1hsb2NpL2FjYTAwMTViLTQ1ODctMzNiZi05NGRjLTE2NTBmZDMyY2Q4NQ==/registrations',
91
+ embeddedAppsListUrl:
92
+ 'https://hecate-a.wbx2.com/apps/api/v1/locus/aca0015b-4587-33bf-94dc-/embeddedApps/allowed?sessionInfo=eyJhbGci.',
93
+ embeddedAppsLaunchUrl:
94
+ 'https://hecate-a.wbx2.com/apps/api/v1/locus/aca0015b-4587-33bf-94dc/embeddedApps?sessionInfo=eyJhbGciOiJub25lIn0.eyJza.',
91
95
  meetingInstanceId: '632D9CB5908CF13BE053D107FC0ABA26_I_2331',
92
- webexSiteUuid: '4C675B882686B136'
96
+ webexSiteUuid: '4C675B882686B136',
93
97
  },
94
98
  host: {
95
99
  id: '344ea183-9d5d-4e77-aed2-c4f',
96
100
  name: 'Arun Ganeshan',
97
101
  isExternal: false,
98
102
  orgId: '1eb65fdf-9643-417f-997',
99
- incomingCallProtocols: []
103
+ incomingCallProtocols: [],
100
104
  },
101
105
  fullState: {
102
106
  active: true,
@@ -106,63 +110,64 @@ export default {
106
110
  type: 'MEETING',
107
111
  lastActive: '2022-07-26T20:32:22.964Z',
108
112
  sessionIds: [],
109
- sessionId: '3762f03e-598a-29dd-1ae7'
113
+ sessionId: '3762f03e-598a-29dd-1ae7',
110
114
  },
111
115
  meetings: [],
112
116
  controls: {
113
117
  lock: {
114
118
  locked: false,
115
- meta: {}
119
+ meta: {},
116
120
  },
117
121
  record: {
118
122
  recording: false,
119
123
  meta: {
120
- readOnly: false
121
- }
124
+ readOnly: false,
125
+ },
122
126
  },
123
127
  transcribe: {
124
128
  transcribing: false,
125
129
  postMeetingTranscribing: false,
126
130
  caption: false,
127
- meta: {}
131
+ meta: {},
128
132
  },
129
133
  meetingFull: {
130
134
  meetingFull: false,
131
- meta: {}
135
+ meta: {},
132
136
  },
133
137
  muteOnEntry: {
134
138
  enabled: false,
135
- meta: {}
139
+ meta: {},
136
140
  },
137
141
  shareControl: {
138
142
  control: 'ANYONE',
139
- meta: {}
143
+ meta: {},
140
144
  },
141
145
  disallowUnmute: {
142
146
  enabled: false,
143
- meta: {}
147
+ meta: {},
144
148
  },
145
149
  videoLayout: {
146
150
  layoutName: {
147
151
  defaultName: 'Equal',
148
- singleScreenDefaultName: 'ActivePresence'
149
- }
152
+ singleScreenDefaultName: 'ActivePresence',
153
+ },
150
154
  },
151
155
  reactions: {
152
156
  enabled: true,
153
157
  meta: {
154
158
  modifiedBy: '344ea183-9d5d-4e77-aed2',
155
- lastModified: '2022-07-26T20:32:22.964Z'
159
+ lastModified: '2022-07-26T20:32:22.964Z',
156
160
  },
157
- reactionChannelUrl: 'https://media-encryption-a.wbx2.com/reaction/api/v1/channels/e0b7b747-67f0-4b89',
158
- showDisplayNameWithReactions: true
161
+ reactionChannelUrl:
162
+ 'https://media-encryption-a.wbx2.com/reaction/api/v1/channels/e0b7b747-67f0-4b89',
163
+ showDisplayNameWithReactions: true,
159
164
  },
160
165
  viewTheParticipantList: {
161
166
  enabled: true,
162
167
  meta: {
163
- lastModified: '2022-07-26T20:32:22.964Z'
164
- }
165
- }
168
+ lastModified: '2022-07-26T20:32:22.964Z',
169
+ },
170
+ },
166
171
  },
167
172
  participants: [
168
173
  {
@@ -177,37 +182,35 @@ export default {
177
182
  name: 'Arun Ganeshan',
178
183
  isExternal: false,
179
184
  orgId: '1eb65fdf-9643-417f-9974-ad72cae0e10f',
180
- incomingCallProtocols: []
185
+ incomingCallProtocols: [],
181
186
  },
182
187
  devices: [
183
188
  {
184
189
  url: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/85e6e2a0-2514-4fc2-a175',
185
190
  deviceType: 'WEB',
186
191
  state: 'JOINED',
187
- intents: [
188
- null
189
- ],
192
+ intents: [null],
190
193
  correlationId: 'b05b4263-8fe3-427e-9995-e6f0a13302',
191
194
  isVideoCallback: false,
192
195
  csis: [],
193
- replaces: []
194
- }
196
+ replaces: [],
197
+ },
195
198
  ],
196
199
  status: {
197
200
  audioStatus: 'UNKNOWN',
198
201
  videoStatus: 'UNKNOWN',
199
- csis: []
202
+ csis: [],
200
203
  },
201
204
  controls: {
202
205
  audio: {
203
206
  muted: false,
204
207
  requestedToUnmute: false,
205
208
  disallowUnmute: false,
206
- meta: {}
209
+ meta: {},
207
210
  },
208
211
  video: {
209
212
  muted: false,
210
- meta: {}
213
+ meta: {},
211
214
  },
212
215
  role: {
213
216
  roles: [
@@ -215,26 +218,26 @@ export default {
215
218
  type: 'COHOST',
216
219
  hasRole: true,
217
220
  meta: {
218
- lastModified: '2022-07-26T20:32:22.964Z'
219
- }
221
+ lastModified: '2022-07-26T20:32:22.964Z',
222
+ },
220
223
  },
221
224
  {
222
225
  type: 'MODERATOR',
223
226
  hasRole: true,
224
227
  meta: {
225
- lastModified: '2022-07-26T20:32:22.964Z'
226
- }
228
+ lastModified: '2022-07-26T20:32:22.964Z',
229
+ },
227
230
  },
228
231
  {
229
232
  type: 'ATTENDEE',
230
233
  hasRole: true,
231
234
  meta: {
232
235
  lastModified: '2022-07-26T20:32:22.964Z',
233
- readOnly: true
234
- }
235
- }
236
- ]
237
- }
236
+ readOnly: true,
237
+ },
238
+ },
239
+ ],
240
+ },
238
241
  },
239
242
  doesNotSupportBreakouts: true,
240
243
  identityTrustLevel: 'INTERNAL',
@@ -245,24 +248,25 @@ export default {
245
248
  panelist: false,
246
249
  moveToLobbyNotAllowed: true,
247
250
  cmrHost: true,
248
- deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/85e6e2a0-2514-4fc2-a175'
249
- }
251
+ deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/85e6e2a0-2514-4fc2-a175',
252
+ },
250
253
  ],
251
254
  self: {
252
255
  deviceUrl: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/85e6e2a0-2514-4fc2-a175',
253
256
  alertHint: {
254
- action: 'NONE'
257
+ action: 'NONE',
255
258
  },
256
259
  alertType: {
257
- action: 'NONE'
260
+ action: 'NONE',
258
261
  },
259
262
  callbackInfo: {
260
263
  callbackAddress: 'arungane@cisco.webex.com',
261
- callbackType: 'SIPURI'
264
+ callbackType: 'SIPURI',
262
265
  },
263
266
  lookUpInfo: {
264
- lookupLink: 'https://locus-a.wbx2.com/locus/api/v1/loci/meetingInfo/aca0015b-4587-33bf-94dc?type=LOCUS_ID&useUriLookup=false',
265
- type: 'MEETING'
267
+ lookupLink:
268
+ 'https://locus-a.wbx2.com/locus/api/v1/loci/meetingInfo/aca0015b-4587-33bf-94dc?type=LOCUS_ID&useUriLookup=false',
269
+ type: 'MEETING',
266
270
  },
267
271
  isCreator: true,
268
272
  identity: '344ea183-9d5d-4e77-aed2-c4f004afd915',
@@ -274,16 +278,14 @@ export default {
274
278
  name: 'Arun Ganeshan',
275
279
  isExternal: false,
276
280
  orgId: '1eb65fdf-9643-417f-9974',
277
- incomingCallProtocols: []
281
+ incomingCallProtocols: [],
278
282
  },
279
283
  devices: [
280
284
  {
281
285
  url: 'https://wdm-a.wbx2.com/wdm/api/v1/devices/85e6e2a0-2514-4fc2-a175',
282
286
  deviceType: 'WEB',
283
287
  state: 'JOINED',
284
- intents: [
285
- null
286
- ],
288
+ intents: [null],
287
289
  keepAliveUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf',
288
290
  keepAliveSecs: 300,
289
291
  callLegId: '80f5e939-1149-4f13-9535',
@@ -292,41 +294,41 @@ export default {
292
294
  csis: [],
293
295
  serverTranscoded: false,
294
296
  serverComposed: false,
295
- replaces: []
296
- }
297
+ replaces: [],
298
+ },
297
299
  ],
298
300
  status: {
299
301
  audioStatus: 'UNKNOWN',
300
302
  videoStatus: 'UNKNOWN',
301
- csis: []
303
+ csis: [],
302
304
  },
303
305
  suggestedMedia: [
304
306
  {
305
307
  mediaType: 'audio',
306
308
  mediaContent: 'main',
307
- direction: 'sendrecv'
309
+ direction: 'sendrecv',
308
310
  },
309
311
  {
310
312
  mediaType: 'video',
311
313
  mediaContent: 'main',
312
- direction: 'sendrecv'
314
+ direction: 'sendrecv',
313
315
  },
314
316
  {
315
317
  mediaType: 'video',
316
318
  mediaContent: 'slides',
317
- direction: 'sendrecv'
318
- }
319
+ direction: 'sendrecv',
320
+ },
319
321
  ],
320
322
  controls: {
321
323
  audio: {
322
324
  muted: false,
323
325
  requestedToUnmute: false,
324
326
  disallowUnmute: false,
325
- meta: {}
327
+ meta: {},
326
328
  },
327
329
  video: {
328
330
  muted: false,
329
- meta: {}
331
+ meta: {},
330
332
  },
331
333
  role: {
332
334
  roles: [
@@ -334,26 +336,26 @@ export default {
334
336
  type: 'COHOST',
335
337
  hasRole: true,
336
338
  meta: {
337
- lastModified: '2022-07-26T20:32:22.964Z'
338
- }
339
+ lastModified: '2022-07-26T20:32:22.964Z',
340
+ },
339
341
  },
340
342
  {
341
343
  type: 'MODERATOR',
342
344
  hasRole: true,
343
345
  meta: {
344
- lastModified: '2022-07-26T20:32:22.964Z'
345
- }
346
+ lastModified: '2022-07-26T20:32:22.964Z',
347
+ },
346
348
  },
347
349
  {
348
350
  type: 'ATTENDEE',
349
351
  hasRole: true,
350
352
  meta: {
351
353
  lastModified: '2022-07-26T20:32:22.964Z',
352
- readOnly: true
353
- }
354
- }
355
- ]
356
- }
354
+ readOnly: true,
355
+ },
356
+ },
357
+ ],
358
+ },
357
359
  },
358
360
  enableDTMF: true,
359
361
  id: 'e0d54e94-226c-3290-b75a',
@@ -363,42 +365,42 @@ export default {
363
365
  panelist: false,
364
366
  moveToLobbyNotAllowed: true,
365
367
  cmrHost: true,
366
- mediaBaseUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/participant/e0d54e94-226c-3290-b75a-83cc1dbf1554/media'
368
+ mediaBaseUrl:
369
+ 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/participant/e0d54e94-226c-3290-b75a-83cc1dbf1554/media',
367
370
  },
368
371
  mediaShares: [
369
372
  {
370
373
  name: 'content',
371
- url: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/mediashares/337f77f9-2f27-3cb3-ba55'
374
+ url: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/mediashares/337f77f9-2f27-3cb3-ba55',
372
375
  },
373
376
  {
374
377
  name: 'whiteboardview',
375
- url: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/mediashares/98891810-efb6-3aa3-b600-8654539abf46'
378
+ url: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/mediashares/98891810-efb6-3aa3-b600-8654539abf46',
376
379
  },
377
380
  {
378
381
  name: 'whiteboard',
379
- url: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/mediashares/b8f1742b-5dc5-3d7a-b97f-39ae11f8a051'
380
- }
382
+ url: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/mediashares/b8f1742b-5dc5-3d7a-b97f-39ae11f8a051',
383
+ },
381
384
  ],
382
385
  embeddedApps: [],
383
386
  replaces: [],
384
387
  sequence: {
385
- entries: [
386
- 138781603429640000
387
- ],
388
+ entries: [138781603429640000],
388
389
  rangeStart: 0,
389
390
  rangeEnd: 0,
390
391
  since: '138781603429640000',
391
392
  sequenceHash: 42,
392
393
  dataCenter: 'achm3',
393
394
  totalParticipants: 1,
394
- dirtyParticipants: 0
395
+ dirtyParticipants: 0,
395
396
  },
396
- syncUrl: 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/sync?since=138781603429640000&sequenceHash=42',
397
+ syncUrl:
398
+ 'https://locus-a.wbx2.com/locus/api/v1/loci/aca0015b-4587-33bf-94dc/sync?since=138781603429640000&sequenceHash=42',
397
399
  links: {
398
400
  services: {
399
401
  breakout: {
400
- url: 'https://breakout-a.wbx2.com/breakout/api/v1'
401
- }
402
- }
403
- }
402
+ url: 'https://breakout-a.wbx2.com/breakout/api/v1',
403
+ },
404
+ },
405
+ },
404
406
  };
@@ -1,11 +1,12 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
2
  import ControlsUtils from '@webex/plugin-meetings/src/locus-info/controlsUtils';
3
+ import controlsUtils from "@webex/plugin-meetings/src/locus-info/controlsUtils";
3
4
 
4
5
  const defaultControls = {
5
6
  entryExitTone: {
6
7
  enabled: true,
7
8
  mode: 'foo',
8
- }
9
+ },
9
10
  };
10
11
 
11
12
  describe('plugin-meetings', () => {
@@ -22,7 +23,7 @@ describe('plugin-meetings', () => {
22
23
  entryExitTone: {
23
24
  enabled: false,
24
25
  mode: 'foo',
25
- }
26
+ },
26
27
  });
27
28
 
28
29
  assert.equal(parsedControls.entryExitTone, null);
@@ -39,44 +40,142 @@ describe('plugin-meetings', () => {
39
40
 
40
41
  assert.equal(parsedControls.entryExitTone, null);
41
42
  });
42
- });
43
- });
44
43
 
45
- describe('getControls', () => {
46
- it('returns hasEntryExitToneChanged = true when mode changed', () => {
47
- const newControls = {
48
- entryExitTone: {
49
- enabled: true,
50
- mode: 'bar',
51
- }
52
- };
53
- const {updates} = ControlsUtils.getControls(defaultControls, newControls);
54
-
55
- assert.equal(updates.hasEntryExitToneChanged, true);
56
- });
44
+ describe('videoEnabled', () => {
45
+ it('returns expected', () => {
46
+ const result = ControlsUtils.parse({video: {enabled: true}});
47
+ assert.deepEqual(result, {
48
+ video: {
49
+ enabled: true,
50
+ },
51
+ videoEnabled: true,
52
+ });
53
+ });
57
54
 
58
- it('returns hasEntryExitToneChanged = true when enabled changed', () => {
59
- const newControls = {
60
- entryExitTone: {
61
- enabled: false,
62
- mode: 'foo',
63
- }
64
- };
65
- const {updates} = ControlsUtils.getControls(defaultControls, newControls);
55
+ it('returns expected from undefined', () => {
56
+ const result = ControlsUtils.parse();
57
+ assert.deepEqual(result, {});
58
+ });
66
59
 
67
- assert.equal(updates.hasEntryExitToneChanged, true);
60
+ it('returns expected from undefined controls', () => {
61
+ const result = ControlsUtils.parse({});
62
+ assert.deepEqual(result, {});
63
+ });
64
+ });
68
65
  });
69
66
 
70
- it('returns hasEntryExitToneChanged = false when nothing changed', () => {
71
- const newControls = {
72
- entryExitTone: {
73
- enabled: true,
74
- mode: 'foo',
75
- }
76
- };
77
- const {updates} = ControlsUtils.getControls(defaultControls, newControls);
67
+ describe('getControls', () => {
68
+ it('returns hasEntryExitToneChanged = true when mode changed', () => {
69
+ const newControls = {
70
+ entryExitTone: {
71
+ enabled: true,
72
+ mode: 'bar',
73
+ },
74
+ };
75
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
76
+
77
+ assert.equal(updates.hasEntryExitToneChanged, true);
78
+ });
79
+
80
+ it('returns hasEntryExitToneChanged = true when enabled changed', () => {
81
+ const newControls = {
82
+ entryExitTone: {
83
+ enabled: false,
84
+ mode: 'foo',
85
+ },
86
+ };
87
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
88
+
89
+ assert.equal(updates.hasEntryExitToneChanged, true);
90
+ });
91
+
92
+ it('returns hasEntryExitToneChanged = false when nothing changed', () => {
93
+ const newControls = {
94
+ entryExitTone: {
95
+ enabled: true,
96
+ mode: 'foo',
97
+ },
98
+ };
99
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
100
+
101
+ assert.equal(updates.hasEntryExitToneChanged, false);
102
+ });
103
+
104
+ it('returns hasBreakoutChanged = true when it has changed', () => {
105
+ const newControls = {
106
+ breakout: 'breakout',
107
+ };
108
+
109
+ const {updates} = ControlsUtils.getControls({breakout: 'old breakout'}, newControls);
78
110
 
79
- assert.equal(updates.hasEntryExitToneChanged, false);
111
+ assert.equal(updates.hasBreakoutChanged, true);
112
+ });
113
+
114
+ it('returns hasBreakoutChanged = false when it has not changed', () => {
115
+ const newControls = {
116
+ breakout: 'breakout',
117
+ };
118
+
119
+ const {updates} = ControlsUtils.getControls({breakout: 'breakout'}, newControls);
120
+
121
+ assert.equal(updates.hasBreakoutChanged, false);
122
+ });
123
+
124
+ describe('videoEnabled', () => {
125
+ const testVideoEnabled = (oldControls, newControls, updatedProperty) => {
126
+ const result = ControlsUtils.getControls(oldControls, newControls);
127
+
128
+ let expectedPrevious = oldControls;
129
+ if (Object.keys(oldControls).length) {
130
+ expectedPrevious = {
131
+ ...expectedPrevious,
132
+ ...{videoEnabled: oldControls.video.enabled},
133
+ };
134
+ }
135
+ const expectedCurrent = {...newControls, ...{videoEnabled: newControls.video.enabled}};
136
+
137
+ assert.deepEqual(result.previous, expectedPrevious);
138
+ assert.deepEqual(result.current, expectedCurrent);
139
+ if (updatedProperty !== undefined) {
140
+ assert.deepEqual(
141
+ result.updates.hasVideoEnabledChanged,
142
+ !isEqual(oldControls, newControls)
143
+ );
144
+ }
145
+ };
146
+
147
+ it('returns expected from undefined', () => {
148
+ testVideoEnabled({}, {video: {enabled: true}});
149
+ });
150
+
151
+ it('returns expected from defined', () => {
152
+ testVideoEnabled({video: {enabled: false}}, {video: {enabled: true}});
153
+ });
154
+
155
+ it('returns expected for unchanged', () => {
156
+ testVideoEnabled({video: {enabled: false}}, {video: {enabled: false}});
157
+ });
158
+ });
80
159
  });
160
+
161
+ describe('isNeedReplaceMembers', () => {
162
+ it('if no breakout control, return false', () => {
163
+ const oldControls = {};
164
+ const newControls = {};
165
+ assert.equal(controlsUtils.isNeedReplaceMembers(oldControls, newControls), false);
166
+ });
167
+
168
+ it('if current session moved, return true', () => {
169
+ const oldControls = {breakout: {sessionId: 'sessionId1', groupId: 'groupId1'}};
170
+ const newControls = {breakout: {sessionId: 'sessionId2', groupId: 'groupId2'}};
171
+ assert.equal(controlsUtils.isNeedReplaceMembers(oldControls, newControls), true);
172
+ });
173
+
174
+ it('if in same session, return false', () => {
175
+ const oldControls = {breakout: {sessionId: 'sessionId1', groupId: 'groupId'}};
176
+ const newControls = {breakout: {sessionId: 'sessionId1', groupId: 'groupId'}};
177
+ assert.equal(controlsUtils.isNeedReplaceMembers(oldControls, newControls), false);
178
+ });
179
+ })
81
180
  });
82
181
  });
@@ -8,14 +8,16 @@ describe('plugin-meetings', () => {
8
8
  const slidoApp = {
9
9
  url: 'https://hecate-b.wbx2.com/apps/api/v1/locus/7a4994a7',
10
10
  sequence: 138849877016800000,
11
- appId: 'Y2lzY29zcGFyazovL3VzL0FQUExJQ0FUSU9OLzQxODc1MGQ0LTM3ZDctNGY2MC1hOWE3LWEwZTE1NDFhNjRkNg',
11
+ appId:
12
+ 'Y2lzY29zcGFyazovL3VzL0FQUExJQ0FUSU9OLzQxODc1MGQ0LTM3ZDctNGY2MC1hOWE3LWEwZTE1NDFhNjRkNg',
12
13
  instanceInfo: {
13
- appInstanceUrl: 'https://webex.sli.do/participant/event/mFKKjcYxzx9h31eyWgngFS?clusterId=eu1',
14
+ appInstanceUrl:
15
+ 'https://webex.sli.do/participant/event/mFKKjcYxzx9h31eyWgngFS?clusterId=eu1',
14
16
  externalAppInstanceUrl: '',
15
- title: 'Active session'
17
+ title: 'Active session',
16
18
  },
17
19
  state: 'STARTED',
18
- lastModified: '2022-10-13T21:01:41.680Z'
20
+ lastModified: '2022-10-13T21:01:41.680Z',
19
21
  };
20
22
  const otherApp = {
21
23
  url: 'https://hecate-b.wbx2.com/apps/api/v1/locus/7a4994a7',
@@ -24,10 +26,10 @@ describe('plugin-meetings', () => {
24
26
  instanceInfo: {
25
27
  appInstanceUrl: 'https://webex.someotherapp.com/mFKKjcYxzx9h31eyWgngFS?clusterId=eu1',
26
28
  externalAppInstanceUrl: '',
27
- title: 'Active session'
29
+ title: 'Active session',
28
30
  },
29
31
  state: 'STARTED',
30
- lastModified: '2022-10-13T21:01:31.680Z'
32
+ lastModified: '2022-10-13T21:01:31.680Z',
31
33
  };
32
34
 
33
35
  describe('parseApp', () => {