@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104

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 (548) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.js +48 -0
  6. package/dist/annotation/constants.js.map +1 -0
  7. package/dist/annotation/index.js +357 -0
  8. package/dist/annotation/index.js.map +1 -0
  9. package/dist/breakouts/breakout.js +176 -0
  10. package/dist/breakouts/breakout.js.map +1 -0
  11. package/dist/breakouts/collection.js +23 -0
  12. package/dist/breakouts/collection.js.map +1 -0
  13. package/dist/breakouts/edit-lock-error.js +52 -0
  14. package/dist/breakouts/edit-lock-error.js.map +1 -0
  15. package/dist/breakouts/events.js +43 -0
  16. package/dist/breakouts/events.js.map +1 -0
  17. package/dist/breakouts/index.js +919 -0
  18. package/dist/breakouts/index.js.map +1 -0
  19. package/dist/breakouts/request.js +78 -0
  20. package/dist/breakouts/request.js.map +1 -0
  21. package/dist/breakouts/utils.js +67 -0
  22. package/dist/breakouts/utils.js.map +1 -0
  23. package/dist/common/browser-detection.js +1 -20
  24. package/dist/common/browser-detection.js.map +1 -1
  25. package/dist/common/collection.js +5 -20
  26. package/dist/common/collection.js.map +1 -1
  27. package/dist/common/config.js +0 -7
  28. package/dist/common/config.js.map +1 -1
  29. package/dist/common/errors/captcha-error.js +10 -24
  30. package/dist/common/errors/captcha-error.js.map +1 -1
  31. package/dist/common/errors/intent-to-join.js +11 -24
  32. package/dist/common/errors/intent-to-join.js.map +1 -1
  33. package/dist/common/errors/join-meeting.js +12 -25
  34. package/dist/common/errors/join-meeting.js.map +1 -1
  35. package/dist/common/errors/media.js +10 -24
  36. package/dist/common/errors/media.js.map +1 -1
  37. package/dist/common/errors/parameter.js +5 -33
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +10 -24
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +9 -23
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reconnection-in-progress.js +0 -17
  44. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  45. package/dist/common/errors/reconnection.js +10 -24
  46. package/dist/common/errors/reconnection.js.map +1 -1
  47. package/dist/common/errors/stats.js +10 -24
  48. package/dist/common/errors/stats.js.map +1 -1
  49. package/dist/common/errors/webex-errors.js +10 -69
  50. package/dist/common/errors/webex-errors.js.map +1 -1
  51. package/dist/common/errors/webex-meetings-error.js +5 -25
  52. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  53. package/dist/common/events/events-scope.js +0 -22
  54. package/dist/common/events/events-scope.js.map +1 -1
  55. package/dist/common/events/events.js +0 -23
  56. package/dist/common/events/events.js.map +1 -1
  57. package/dist/common/events/trigger-proxy.js +0 -12
  58. package/dist/common/events/trigger-proxy.js.map +1 -1
  59. package/dist/common/events/util.js +0 -15
  60. package/dist/common/events/util.js.map +1 -1
  61. package/dist/common/logs/logger-config.js +0 -4
  62. package/dist/common/logs/logger-config.js.map +1 -1
  63. package/dist/common/logs/logger-proxy.js +1 -8
  64. package/dist/common/logs/logger-proxy.js.map +1 -1
  65. package/dist/common/logs/request.js +37 -60
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.js +4 -14
  68. package/dist/common/queue.js.map +1 -1
  69. package/dist/config.js +7 -6
  70. package/dist/config.js.map +1 -1
  71. package/dist/constants.js +184 -122
  72. package/dist/constants.js.map +1 -1
  73. package/dist/controls-options-manager/constants.js +14 -0
  74. package/dist/controls-options-manager/constants.js.map +1 -0
  75. package/dist/controls-options-manager/enums.js +25 -0
  76. package/dist/controls-options-manager/enums.js.map +1 -0
  77. package/dist/controls-options-manager/index.js +297 -0
  78. package/dist/controls-options-manager/index.js.map +1 -0
  79. package/dist/controls-options-manager/types.js +7 -0
  80. package/dist/controls-options-manager/types.js.map +1 -0
  81. package/dist/controls-options-manager/util.js +250 -0
  82. package/dist/controls-options-manager/util.js.map +1 -0
  83. package/dist/index.js +72 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/locus-info/controlsUtils.js +56 -29
  86. package/dist/locus-info/controlsUtils.js.map +1 -1
  87. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  88. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  89. package/dist/locus-info/fullState.js +0 -15
  90. package/dist/locus-info/fullState.js.map +1 -1
  91. package/dist/locus-info/hostUtils.js +4 -12
  92. package/dist/locus-info/hostUtils.js.map +1 -1
  93. package/dist/locus-info/index.js +362 -208
  94. package/dist/locus-info/index.js.map +1 -1
  95. package/dist/locus-info/infoUtils.js +3 -37
  96. package/dist/locus-info/infoUtils.js.map +1 -1
  97. package/dist/locus-info/mediaSharesUtils.js +12 -38
  98. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  99. package/dist/locus-info/parser.js +92 -118
  100. package/dist/locus-info/parser.js.map +1 -1
  101. package/dist/locus-info/selfUtils.js +99 -91
  102. package/dist/locus-info/selfUtils.js.map +1 -1
  103. package/dist/media/index.js +113 -337
  104. package/dist/media/index.js.map +1 -1
  105. package/dist/media/properties.js +96 -135
  106. package/dist/media/properties.js.map +1 -1
  107. package/dist/media/util.js +1 -35
  108. package/dist/media/util.js.map +1 -1
  109. package/dist/mediaQualityMetrics/config.js +505 -495
  110. package/dist/mediaQualityMetrics/config.js.map +1 -1
  111. package/dist/meeting/in-meeting-actions.js +59 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2909 -2398
  114. package/dist/meeting/index.js.map +1 -1
  115. package/dist/meeting/muteState.js +257 -112
  116. package/dist/meeting/muteState.js.map +1 -1
  117. package/dist/meeting/request.js +330 -264
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/request.type.js +7 -0
  120. package/dist/meeting/request.type.js.map +1 -0
  121. package/dist/meeting/state.js +21 -31
  122. package/dist/meeting/state.js.map +1 -1
  123. package/dist/meeting/util.js +63 -261
  124. package/dist/meeting/util.js.map +1 -1
  125. package/dist/meeting-info/collection.js +6 -25
  126. package/dist/meeting-info/collection.js.map +1 -1
  127. package/dist/meeting-info/index.js +14 -32
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.js +273 -280
  130. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  131. package/dist/meeting-info/request.js +3 -15
  132. package/dist/meeting-info/request.js.map +1 -1
  133. package/dist/meeting-info/util.js +98 -183
  134. package/dist/meeting-info/util.js.map +1 -1
  135. package/dist/meeting-info/utilv2.js +155 -232
  136. package/dist/meeting-info/utilv2.js.map +1 -1
  137. package/dist/meetings/collection.js +26 -19
  138. package/dist/meetings/collection.js.map +1 -1
  139. package/dist/meetings/index.js +741 -548
  140. package/dist/meetings/index.js.map +1 -1
  141. package/dist/meetings/request.js +26 -41
  142. package/dist/meetings/request.js.map +1 -1
  143. package/dist/meetings/util.js +194 -149
  144. package/dist/meetings/util.js.map +1 -1
  145. package/dist/member/index.js +100 -85
  146. package/dist/member/index.js.map +1 -1
  147. package/dist/member/types.js +15 -0
  148. package/dist/member/types.js.map +1 -0
  149. package/dist/member/util.js +90 -68
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.js +13 -12
  152. package/dist/members/collection.js.map +1 -1
  153. package/dist/members/index.js +227 -188
  154. package/dist/members/index.js.map +1 -1
  155. package/dist/members/request.js +54 -39
  156. package/dist/members/request.js.map +1 -1
  157. package/dist/members/types.js +15 -0
  158. package/dist/members/types.js.map +1 -0
  159. package/dist/members/util.js +107 -44
  160. package/dist/members/util.js.map +1 -1
  161. package/dist/metrics/config.js +5 -14
  162. package/dist/metrics/config.js.map +1 -1
  163. package/dist/metrics/constants.js +3 -7
  164. package/dist/metrics/constants.js.map +1 -1
  165. package/dist/metrics/index.js +67 -159
  166. package/dist/metrics/index.js.map +1 -1
  167. package/dist/multistream/mediaRequestManager.js +250 -0
  168. package/dist/multistream/mediaRequestManager.js.map +1 -0
  169. package/dist/multistream/receiveSlot.js +202 -0
  170. package/dist/multistream/receiveSlot.js.map +1 -0
  171. package/dist/multistream/receiveSlotManager.js +176 -0
  172. package/dist/multistream/receiveSlotManager.js.map +1 -0
  173. package/dist/multistream/remoteMedia.js +270 -0
  174. package/dist/multistream/remoteMedia.js.map +1 -0
  175. package/dist/multistream/remoteMediaGroup.js +209 -0
  176. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  177. package/dist/multistream/remoteMediaManager.js +1137 -0
  178. package/dist/multistream/remoteMediaManager.js.map +1 -0
  179. package/dist/networkQualityMonitor/index.js +40 -59
  180. package/dist/networkQualityMonitor/index.js.map +1 -1
  181. package/dist/personal-meeting-room/index.js +21 -45
  182. package/dist/personal-meeting-room/index.js.map +1 -1
  183. package/dist/personal-meeting-room/request.js +1 -31
  184. package/dist/personal-meeting-room/request.js.map +1 -1
  185. package/dist/personal-meeting-room/util.js +0 -13
  186. package/dist/personal-meeting-room/util.js.map +1 -1
  187. package/dist/reachability/index.js +192 -191
  188. package/dist/reachability/index.js.map +1 -1
  189. package/dist/reachability/request.js +15 -23
  190. package/dist/reachability/request.js.map +1 -1
  191. package/dist/reactions/constants.js +13 -0
  192. package/dist/reactions/constants.js.map +1 -0
  193. package/dist/reactions/reactions.js +109 -0
  194. package/dist/reactions/reactions.js.map +1 -0
  195. package/dist/reactions/reactions.type.js +36 -0
  196. package/dist/reactions/reactions.type.js.map +1 -0
  197. package/dist/reconnection-manager/index.js +386 -527
  198. package/dist/reconnection-manager/index.js.map +1 -1
  199. package/dist/recording-controller/enums.js +17 -0
  200. package/dist/recording-controller/enums.js.map +1 -0
  201. package/dist/recording-controller/index.js +343 -0
  202. package/dist/recording-controller/index.js.map +1 -0
  203. package/dist/recording-controller/util.js +63 -0
  204. package/dist/recording-controller/util.js.map +1 -0
  205. package/dist/roap/index.js +84 -286
  206. package/dist/roap/index.js.map +1 -1
  207. package/dist/roap/request.js +138 -238
  208. package/dist/roap/request.js.map +1 -1
  209. package/dist/roap/turnDiscovery.js +164 -102
  210. package/dist/roap/turnDiscovery.js.map +1 -1
  211. package/dist/statsAnalyzer/global.js +1 -93
  212. package/dist/statsAnalyzer/global.js.map +1 -1
  213. package/dist/statsAnalyzer/index.js +399 -470
  214. package/dist/statsAnalyzer/index.js.map +1 -1
  215. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  216. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  217. package/dist/transcription/index.js +22 -47
  218. package/dist/transcription/index.js.map +1 -1
  219. package/dist/types/annotation/annotation.types.d.ts +34 -0
  220. package/dist/types/annotation/constants.d.ts +31 -0
  221. package/dist/types/annotation/index.d.ts +124 -0
  222. package/dist/types/breakouts/breakout.d.ts +8 -0
  223. package/dist/types/breakouts/collection.d.ts +5 -0
  224. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  225. package/dist/types/breakouts/events.d.ts +2 -0
  226. package/dist/types/breakouts/index.d.ts +5 -0
  227. package/dist/types/breakouts/request.d.ts +22 -0
  228. package/dist/types/breakouts/utils.d.ts +15 -0
  229. package/dist/types/common/browser-detection.d.ts +9 -0
  230. package/dist/types/common/collection.d.ts +48 -0
  231. package/dist/types/common/config.d.ts +2 -0
  232. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  233. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  234. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  235. package/dist/types/common/errors/media.d.ts +15 -0
  236. package/dist/types/common/errors/parameter.d.ts +15 -0
  237. package/dist/types/common/errors/password-error.d.ts +15 -0
  238. package/dist/types/common/errors/permission.d.ts +14 -0
  239. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  240. package/dist/types/common/errors/reconnection.d.ts +15 -0
  241. package/dist/types/common/errors/stats.d.ts +15 -0
  242. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  243. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  244. package/dist/types/common/events/events-scope.d.ts +17 -0
  245. package/dist/types/common/events/events.d.ts +12 -0
  246. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  247. package/dist/types/common/events/util.d.ts +2 -0
  248. package/dist/types/common/logs/logger-config.d.ts +2 -0
  249. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  250. package/dist/types/common/logs/request.d.ts +34 -0
  251. package/dist/types/common/queue.d.ts +32 -0
  252. package/dist/types/config.d.ts +78 -0
  253. package/dist/types/constants.d.ts +968 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +37 -0
  258. package/dist/types/controls-options-manager/util.d.ts +1 -0
  259. package/dist/types/index.d.ts +7 -0
  260. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  261. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  262. package/dist/types/locus-info/fullState.d.ts +2 -0
  263. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  264. package/dist/types/locus-info/index.d.ts +315 -0
  265. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  266. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  267. package/dist/types/locus-info/parser.d.ts +212 -0
  268. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  269. package/dist/types/media/index.d.ts +34 -0
  270. package/dist/types/media/properties.d.ts +108 -0
  271. package/dist/types/media/util.d.ts +2 -0
  272. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  273. package/dist/types/meeting/in-meeting-actions.d.ts +129 -0
  274. package/dist/types/meeting/index.d.ts +1748 -0
  275. package/dist/types/meeting/muteState.d.ts +185 -0
  276. package/dist/types/meeting/request.d.ts +275 -0
  277. package/dist/types/meeting/request.type.d.ts +11 -0
  278. package/dist/types/meeting/state.d.ts +9 -0
  279. package/dist/types/meeting/util.d.ts +2 -0
  280. package/dist/types/meeting-info/collection.d.ts +20 -0
  281. package/dist/types/meeting-info/index.d.ts +57 -0
  282. package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -0
  283. package/dist/types/meeting-info/request.d.ts +22 -0
  284. package/dist/types/meeting-info/util.d.ts +2 -0
  285. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  286. package/dist/types/meetings/collection.d.ts +31 -0
  287. package/dist/types/meetings/index.d.ts +345 -0
  288. package/dist/types/meetings/request.d.ts +27 -0
  289. package/dist/types/meetings/util.d.ts +18 -0
  290. package/dist/types/member/index.d.ts +156 -0
  291. package/dist/types/member/types.d.ts +21 -0
  292. package/dist/types/member/util.d.ts +2 -0
  293. package/dist/types/members/collection.d.ts +29 -0
  294. package/dist/types/members/index.d.ts +353 -0
  295. package/dist/types/members/request.d.ts +69 -0
  296. package/dist/types/members/types.d.ts +24 -0
  297. package/dist/types/members/util.d.ts +2 -0
  298. package/dist/types/metrics/config.d.ts +172 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +152 -0
  301. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  302. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  303. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  304. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  305. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  306. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  307. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  308. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  309. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  310. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  311. package/dist/types/reachability/index.d.ts +152 -0
  312. package/dist/types/reachability/request.d.ts +37 -0
  313. package/dist/types/reactions/constants.d.ts +3 -0
  314. package/dist/types/reactions/reactions.d.ts +4 -0
  315. package/dist/types/reactions/reactions.type.d.ts +52 -0
  316. package/dist/types/reconnection-manager/index.d.ts +126 -0
  317. package/dist/types/recording-controller/enums.d.ts +7 -0
  318. package/dist/types/recording-controller/index.d.ts +193 -0
  319. package/dist/types/recording-controller/util.d.ts +13 -0
  320. package/dist/types/roap/index.d.ts +77 -0
  321. package/dist/types/roap/request.d.ts +38 -0
  322. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  323. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  324. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  325. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  326. package/dist/types/transcription/index.d.ts +64 -0
  327. package/internal-README.md +7 -6
  328. package/package.json +29 -21
  329. package/src/annotation/annotation.types.ts +41 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +339 -0
  332. package/src/breakouts/README.md +219 -0
  333. package/src/breakouts/breakout.ts +141 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +37 -0
  337. package/src/breakouts/index.ts +823 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  341. package/src/common/collection.ts +9 -7
  342. package/src/common/{config.js → config.ts} +1 -1
  343. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  344. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  345. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  346. package/src/common/errors/{media.js → media.ts} +11 -7
  347. package/src/common/errors/parameter.ts +11 -7
  348. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  349. package/src/common/errors/{permission.js → permission.ts} +10 -6
  350. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  351. package/src/common/errors/{stats.js → stats.ts} +11 -7
  352. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -25
  353. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  354. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  355. package/src/common/events/{events.js → events.ts} +5 -1
  356. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  357. package/src/common/events/{util.js → util.ts} +2 -3
  358. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  359. package/src/common/logs/logger-proxy.ts +44 -0
  360. package/src/common/logs/{request.js → request.ts} +22 -9
  361. package/src/common/queue.ts +1 -2
  362. package/src/{config.js → config.ts} +18 -12
  363. package/src/constants.ts +256 -183
  364. package/src/controls-options-manager/constants.ts +5 -0
  365. package/src/controls-options-manager/enums.ts +16 -0
  366. package/src/controls-options-manager/index.ts +278 -0
  367. package/src/controls-options-manager/types.ts +49 -0
  368. package/src/controls-options-manager/util.ts +229 -0
  369. package/src/index.ts +33 -0
  370. package/src/locus-info/controlsUtils.ts +169 -0
  371. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  372. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  373. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  374. package/src/locus-info/{index.js → index.ts} +331 -80
  375. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  376. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  377. package/src/locus-info/{parser.js → parser.ts} +67 -79
  378. package/src/locus-info/{selfUtils.js → selfUtils.ts} +196 -67
  379. package/src/media/index.ts +488 -0
  380. package/src/media/{properties.js → properties.ts} +67 -54
  381. package/src/media/util.ts +16 -0
  382. package/src/mediaQualityMetrics/config.ts +384 -0
  383. package/src/meeting/in-meeting-actions.ts +123 -3
  384. package/src/meeting/{index.js → index.ts} +3334 -1775
  385. package/src/meeting/muteState.ts +526 -0
  386. package/src/meeting/{request.js → request.ts} +350 -142
  387. package/src/meeting/request.type.ts +13 -0
  388. package/src/meeting/{state.js → state.ts} +50 -35
  389. package/src/meeting/{util.js → util.ts} +126 -159
  390. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  391. package/src/meeting-info/{index.js → index.ts} +42 -36
  392. package/src/meeting-info/meeting-info-v2.ts +345 -0
  393. package/src/meeting-info/{request.js → request.ts} +14 -4
  394. package/src/meeting-info/{util.js → util.ts} +60 -51
  395. package/src/meeting-info/{utilv2.js → utilv2.ts} +76 -60
  396. package/src/meetings/{collection.js → collection.ts} +26 -3
  397. package/src/meetings/index.ts +1394 -0
  398. package/src/meetings/{request.js → request.ts} +34 -25
  399. package/src/meetings/util.ts +288 -0
  400. package/src/member/{index.js → index.ts} +124 -56
  401. package/src/member/types.ts +24 -0
  402. package/src/member/{util.js → util.ts} +105 -25
  403. package/src/members/{collection.js → collection.ts} +10 -2
  404. package/src/members/{index.js → index.ts} +359 -139
  405. package/src/members/request.ts +215 -0
  406. package/src/members/types.ts +28 -0
  407. package/src/members/{util.js → util.ts} +145 -54
  408. package/src/metrics/{config.js → config.ts} +256 -92
  409. package/src/metrics/{constants.js → constants.ts} +1 -6
  410. package/src/metrics/{index.js → index.ts} +116 -97
  411. package/src/multistream/mediaRequestManager.ts +324 -0
  412. package/src/multistream/receiveSlot.ts +184 -0
  413. package/src/multistream/receiveSlotManager.ts +166 -0
  414. package/src/multistream/remoteMedia.ts +254 -0
  415. package/src/multistream/remoteMediaGroup.ts +225 -0
  416. package/src/multistream/remoteMediaManager.ts +1075 -0
  417. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  418. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  419. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  420. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  421. package/src/reachability/{index.js → index.ts} +157 -94
  422. package/src/reachability/request.ts +46 -35
  423. package/src/reactions/constants.ts +4 -0
  424. package/src/reactions/reactions.ts +104 -0
  425. package/src/reactions/reactions.type.ts +62 -0
  426. package/src/reconnection-manager/{index.js → index.ts} +261 -163
  427. package/src/recording-controller/enums.ts +8 -0
  428. package/src/recording-controller/index.ts +315 -0
  429. package/src/recording-controller/util.ts +58 -0
  430. package/src/roap/index.ts +241 -0
  431. package/src/roap/request.ts +172 -0
  432. package/src/roap/turnDiscovery.ts +127 -53
  433. package/src/statsAnalyzer/global.ts +37 -0
  434. package/src/statsAnalyzer/index.ts +1273 -0
  435. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  436. package/src/transcription/{index.js → index.ts} +46 -39
  437. package/test/integration/spec/converged-space-meetings.js +177 -0
  438. package/test/integration/spec/journey.js +666 -464
  439. package/test/integration/spec/space-meeting.js +321 -206
  440. package/test/integration/spec/transcription.js +7 -8
  441. package/test/unit/spec/annotation/index.ts +435 -0
  442. package/test/unit/spec/breakouts/breakout.ts +184 -0
  443. package/test/unit/spec/breakouts/collection.ts +15 -0
  444. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  445. package/test/unit/spec/breakouts/events.ts +77 -0
  446. package/test/unit/spec/breakouts/index.ts +1504 -0
  447. package/test/unit/spec/breakouts/request.ts +104 -0
  448. package/test/unit/spec/breakouts/utils.js +72 -0
  449. package/test/unit/spec/common/browser-detection.js +9 -28
  450. package/test/unit/spec/controls-options-manager/index.js +287 -0
  451. package/test/unit/spec/controls-options-manager/util.js +403 -0
  452. package/test/unit/spec/fixture/locus.js +92 -90
  453. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  454. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  455. package/test/unit/spec/locus-info/index.js +493 -3
  456. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  457. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  458. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  459. package/test/unit/spec/locus-info/parser.js +3 -9
  460. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  461. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  462. package/test/unit/spec/media/index.ts +303 -0
  463. package/test/unit/spec/media/properties.ts +73 -82
  464. package/test/unit/spec/meeting/in-meeting-actions.ts +58 -3
  465. package/test/unit/spec/meeting/index.js +3127 -975
  466. package/test/unit/spec/meeting/muteState.js +375 -70
  467. package/test/unit/spec/meeting/request.js +217 -43
  468. package/test/unit/spec/meeting/utils.js +205 -163
  469. package/test/unit/spec/meeting-info/meetinginfov2.js +268 -74
  470. package/test/unit/spec/meeting-info/request.js +7 -9
  471. package/test/unit/spec/meeting-info/util.js +11 -12
  472. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  473. package/test/unit/spec/meetings/collection.js +15 -1
  474. package/test/unit/spec/meetings/index.js +1052 -333
  475. package/test/unit/spec/meetings/utils.js +163 -14
  476. package/test/unit/spec/member/index.js +24 -1
  477. package/test/unit/spec/member/util.js +359 -32
  478. package/test/unit/spec/members/index.js +547 -37
  479. package/test/unit/spec/members/request.js +76 -20
  480. package/test/unit/spec/members/utils.js +191 -4
  481. package/test/unit/spec/metrics/index.js +46 -20
  482. package/test/unit/spec/multistream/mediaRequestManager.ts +1060 -0
  483. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  484. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  485. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  486. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  487. package/test/unit/spec/multistream/remoteMediaManager.ts +1793 -0
  488. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  489. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  490. package/test/unit/spec/reachability/index.ts +176 -27
  491. package/test/unit/spec/reachability/request.js +66 -0
  492. package/test/unit/spec/reconnection-manager/index.js +106 -9
  493. package/test/unit/spec/recording-controller/index.js +231 -0
  494. package/test/unit/spec/recording-controller/util.js +102 -0
  495. package/test/unit/spec/roap/index.ts +78 -45
  496. package/test/unit/spec/roap/request.ts +217 -0
  497. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  498. package/test/unit/spec/stats-analyzer/index.js +118 -65
  499. package/test/utils/cmr.js +44 -42
  500. package/test/utils/constants.js +9 -0
  501. package/test/utils/integrationTestUtils.js +64 -0
  502. package/test/utils/testUtils.js +63 -99
  503. package/test/utils/webex-config.js +22 -18
  504. package/test/utils/webex-test-users.js +57 -50
  505. package/tsconfig.json +6 -0
  506. package/dist/meeting/effectsState.js +0 -327
  507. package/dist/meeting/effectsState.js.map +0 -1
  508. package/dist/peer-connection-manager/index.js +0 -794
  509. package/dist/peer-connection-manager/index.js.map +0 -1
  510. package/dist/peer-connection-manager/util.js +0 -124
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.js +0 -73
  513. package/dist/roap/collection.js.map +0 -1
  514. package/dist/roap/handler.js +0 -337
  515. package/dist/roap/handler.js.map +0 -1
  516. package/dist/roap/state.js +0 -164
  517. package/dist/roap/state.js.map +0 -1
  518. package/dist/roap/util.js +0 -102
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/common/logs/logger-proxy.js +0 -33
  521. package/src/index.js +0 -15
  522. package/src/locus-info/controlsUtils.js +0 -102
  523. package/src/media/index.js +0 -593
  524. package/src/media/util.js +0 -38
  525. package/src/mediaQualityMetrics/config.js +0 -382
  526. package/src/meeting/effectsState.js +0 -205
  527. package/src/meeting/muteState.js +0 -318
  528. package/src/meeting-info/meeting-info-v2.js +0 -255
  529. package/src/meetings/index.js +0 -986
  530. package/src/meetings/util.js +0 -176
  531. package/src/members/request.js +0 -131
  532. package/src/peer-connection-manager/index.js +0 -723
  533. package/src/peer-connection-manager/util.ts +0 -117
  534. package/src/roap/collection.js +0 -63
  535. package/src/roap/handler.js +0 -252
  536. package/src/roap/index.js +0 -380
  537. package/src/roap/request.js +0 -198
  538. package/src/roap/state.js +0 -149
  539. package/src/roap/util.js +0 -93
  540. package/src/statsAnalyzer/global.js +0 -131
  541. package/src/statsAnalyzer/index.js +0 -1020
  542. package/src/statsAnalyzer/mqaUtil.js +0 -173
  543. package/test/unit/spec/meeting/effectsState.js +0 -293
  544. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  545. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  546. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  547. package/test/unit/spec/roap/util.js +0 -30
  548. /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,188 @@ describe('plugin-meetings', () => {
39
40
 
40
41
  assert.equal(parsedControls.entryExitTone, null);
41
42
  });
43
+
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
+ });
54
+
55
+ it('returns expected from undefined', () => {
56
+ const result = ControlsUtils.parse();
57
+ assert.deepEqual(result, {});
58
+ });
59
+
60
+ it('returns expected from undefined controls', () => {
61
+ const result = ControlsUtils.parse({});
62
+ assert.deepEqual(result, {});
63
+ });
64
+ });
42
65
  });
43
- });
44
66
 
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);
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);
110
+
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
+ });
56
159
  });
57
160
 
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);
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
+ });
66
173
 
67
- assert.equal(updates.hasEntryExitToneChanged, true);
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
+ });
68
179
  });
69
180
 
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);
181
+ describe('getSessionSwitchStatus', () => {
182
+ it('if no breakout control, return switch status both false', () => {
183
+ const oldControls = {};
184
+ const newControls = {};
185
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
186
+ isReturnToMain: false, isJoinToBreakout: false
187
+ });
188
+ });
189
+
190
+ it('if switch session from breakout to main, return isReturnToMain as true', () => {
191
+ const oldControls = {breakout: {sessionType: 'BREAKOUT'}};
192
+ const newControls = {breakout: {sessionType: 'MAIN'}};
193
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
194
+ isReturnToMain: true, isJoinToBreakout: false
195
+ });
196
+ });
78
197
 
79
- assert.equal(updates.hasEntryExitToneChanged, false);
198
+ it('if switch session from main to breakout, return isJoinToBreakout as true', () => {
199
+ const oldControls = {breakout: {sessionType: 'MAIN'}};
200
+ const newControls = {breakout: {sessionType: 'BREAKOUT'}};
201
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
202
+ isReturnToMain: false, isJoinToBreakout: true
203
+ });
204
+ });
205
+ });
206
+
207
+ describe('#isMainSessionDTO', () => {
208
+ it('return false is sessionType is BREAKOUT', () => {
209
+ const locus = {
210
+ controls: {breakout: {sessionType: 'BREAKOUT'}}
211
+ };
212
+
213
+ assert.equal(controlsUtils.isMainSessionDTO(locus), false);
214
+ });
215
+
216
+ it('return true is sessionType is not BREAKOUT', () => {
217
+ const locus = {
218
+ controls: {breakout: {sessionType: 'MAIN'}}
219
+ };
220
+
221
+ assert.equal(controlsUtils.isMainSessionDTO(locus), true);
222
+
223
+ assert.equal(controlsUtils.isMainSessionDTO({}), true);
224
+ });
80
225
  });
81
226
  });
82
227
  });