@webex/plugin-meetings 3.0.0-beta.23 → 3.0.0-beta.231

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 (412) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +28 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +5 -10
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +188 -27
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +319 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +106 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +357 -62
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +43 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +219 -63
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +49 -106
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +29 -90
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +90 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2583 -2557
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +292 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +228 -123
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +244 -194
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/util.js +568 -414
  75. package/dist/meeting/util.js.map +1 -1
  76. package/dist/meeting-info/index.js +48 -7
  77. package/dist/meeting-info/index.js.map +1 -1
  78. package/dist/meeting-info/meeting-info-v2.js +171 -51
  79. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  80. package/dist/meeting-info/util.js +1 -1
  81. package/dist/meeting-info/util.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +36 -36
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +367 -86
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +88 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +49 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +121 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -5
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +316 -233
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +3 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +49 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +52 -34
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +173 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/reachability/index.js +90 -30
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +16 -7
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reconnection-manager/index.js +196 -155
  131. package/dist/reconnection-manager/index.js.map +1 -1
  132. package/dist/recording-controller/index.js +21 -2
  133. package/dist/recording-controller/index.js.map +1 -1
  134. package/dist/recording-controller/util.js +9 -8
  135. package/dist/recording-controller/util.js.map +1 -1
  136. package/dist/roap/index.js +25 -29
  137. package/dist/roap/index.js.map +1 -1
  138. package/dist/roap/request.js +111 -89
  139. package/dist/roap/request.js.map +1 -1
  140. package/dist/roap/turnDiscovery.js +97 -36
  141. package/dist/roap/turnDiscovery.js.map +1 -1
  142. package/dist/rtcMetrics/constants.js +12 -0
  143. package/dist/rtcMetrics/constants.js.map +1 -0
  144. package/dist/rtcMetrics/index.js +117 -0
  145. package/dist/rtcMetrics/index.js.map +1 -0
  146. package/dist/statsAnalyzer/index.js +51 -34
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/breakout.d.ts +8 -0
  154. package/dist/types/breakouts/collection.d.ts +5 -0
  155. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  156. package/dist/types/breakouts/events.d.ts +8 -0
  157. package/dist/types/breakouts/index.d.ts +5 -0
  158. package/dist/types/breakouts/request.d.ts +22 -0
  159. package/dist/types/breakouts/utils.d.ts +15 -0
  160. package/dist/types/common/browser-detection.d.ts +9 -0
  161. package/dist/types/common/collection.d.ts +48 -0
  162. package/dist/types/common/config.d.ts +2 -0
  163. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  164. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  165. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  166. package/dist/types/common/errors/media.d.ts +15 -0
  167. package/dist/types/common/errors/parameter.d.ts +15 -0
  168. package/dist/types/common/errors/password-error.d.ts +15 -0
  169. package/dist/types/common/errors/permission.d.ts +14 -0
  170. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  171. package/dist/types/common/errors/reconnection.d.ts +15 -0
  172. package/dist/types/common/errors/stats.d.ts +15 -0
  173. package/dist/types/common/errors/webex-errors.d.ts +81 -0
  174. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  175. package/dist/types/common/events/events-scope.d.ts +17 -0
  176. package/dist/types/common/events/events.d.ts +12 -0
  177. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  178. package/dist/types/common/events/util.d.ts +2 -0
  179. package/dist/types/common/logs/logger-config.d.ts +2 -0
  180. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  181. package/dist/types/common/logs/request.d.ts +34 -0
  182. package/dist/types/common/queue.d.ts +34 -0
  183. package/dist/types/config.d.ts +72 -0
  184. package/dist/types/constants.d.ts +1028 -0
  185. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  186. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  187. package/dist/types/controls-options-manager/index.d.ts +136 -0
  188. package/dist/types/controls-options-manager/types.d.ts +43 -0
  189. package/dist/types/controls-options-manager/util.d.ts +1 -0
  190. package/dist/types/index.d.ts +7 -0
  191. package/dist/types/interpretation/collection.d.ts +5 -0
  192. package/dist/types/interpretation/index.d.ts +5 -0
  193. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  194. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  195. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  196. package/dist/types/locus-info/fullState.d.ts +2 -0
  197. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  198. package/dist/types/locus-info/index.d.ts +322 -0
  199. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  200. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  201. package/dist/types/locus-info/parser.d.ts +271 -0
  202. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  203. package/dist/types/media/index.d.ts +34 -0
  204. package/dist/types/media/properties.d.ts +93 -0
  205. package/dist/types/media/util.d.ts +2 -0
  206. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  207. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  208. package/dist/types/meeting/index.d.ts +1512 -0
  209. package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
  210. package/dist/types/meeting/muteState.d.ts +184 -0
  211. package/dist/types/meeting/request.d.ts +289 -0
  212. package/dist/types/meeting/request.type.d.ts +11 -0
  213. package/dist/types/meeting/state.d.ts +9 -0
  214. package/dist/types/meeting/util.d.ts +94 -0
  215. package/dist/types/meeting-info/collection.d.ts +20 -0
  216. package/dist/types/meeting-info/index.d.ts +62 -0
  217. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  218. package/dist/types/meeting-info/request.d.ts +22 -0
  219. package/dist/types/meeting-info/util.d.ts +2 -0
  220. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  221. package/dist/types/meetings/collection.d.ts +31 -0
  222. package/dist/types/meetings/index.d.ts +361 -0
  223. package/dist/types/meetings/meetings.types.d.ts +4 -0
  224. package/dist/types/meetings/request.d.ts +27 -0
  225. package/dist/types/meetings/util.d.ts +18 -0
  226. package/dist/types/member/index.d.ts +159 -0
  227. package/dist/types/member/types.d.ts +32 -0
  228. package/dist/types/member/util.d.ts +2 -0
  229. package/dist/types/members/collection.d.ts +29 -0
  230. package/dist/types/members/index.d.ts +353 -0
  231. package/dist/types/members/request.d.ts +114 -0
  232. package/dist/types/members/types.d.ts +24 -0
  233. package/dist/types/members/util.d.ts +210 -0
  234. package/dist/types/metrics/constants.d.ts +55 -0
  235. package/dist/types/metrics/index.d.ts +45 -0
  236. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  237. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  238. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  239. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  240. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  241. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  242. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  243. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  244. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  245. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  246. package/dist/types/reachability/index.d.ts +158 -0
  247. package/dist/types/reachability/request.d.ts +39 -0
  248. package/dist/types/reactions/constants.d.ts +3 -0
  249. package/dist/types/reactions/reactions.d.ts +4 -0
  250. package/dist/types/reactions/reactions.type.d.ts +52 -0
  251. package/dist/types/reconnection-manager/index.d.ts +126 -0
  252. package/dist/types/recording-controller/enums.d.ts +7 -0
  253. package/dist/types/recording-controller/index.d.ts +207 -0
  254. package/dist/types/recording-controller/util.d.ts +14 -0
  255. package/dist/types/roap/index.d.ts +77 -0
  256. package/dist/types/roap/request.d.ts +38 -0
  257. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  258. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  259. package/dist/types/rtcMetrics/index.d.ts +47 -0
  260. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  261. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  262. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  263. package/dist/types/transcription/index.d.ts +64 -0
  264. package/package.json +23 -20
  265. package/src/annotation/annotation.types.ts +50 -0
  266. package/src/annotation/constants.ts +36 -0
  267. package/src/annotation/index.ts +328 -0
  268. package/src/breakouts/README.md +44 -14
  269. package/src/breakouts/breakout.ts +87 -9
  270. package/src/breakouts/edit-lock-error.ts +25 -0
  271. package/src/breakouts/events.ts +56 -0
  272. package/src/breakouts/index.ts +710 -10
  273. package/src/breakouts/request.ts +55 -0
  274. package/src/breakouts/utils.ts +57 -0
  275. package/src/common/errors/webex-errors.ts +27 -2
  276. package/src/common/logs/logger-proxy.ts +1 -1
  277. package/src/common/queue.ts +22 -8
  278. package/src/config.ts +4 -9
  279. package/src/constants.ts +175 -18
  280. package/src/controls-options-manager/constants.ts +5 -0
  281. package/src/controls-options-manager/enums.ts +18 -0
  282. package/src/controls-options-manager/index.ts +278 -0
  283. package/src/controls-options-manager/types.ts +59 -0
  284. package/src/controls-options-manager/util.ts +300 -0
  285. package/src/index.ts +39 -0
  286. package/src/interpretation/README.md +60 -0
  287. package/src/interpretation/collection.ts +19 -0
  288. package/src/interpretation/index.ts +332 -0
  289. package/src/interpretation/siLanguage.ts +18 -0
  290. package/src/locus-info/controlsUtils.ts +108 -0
  291. package/src/locus-info/index.ts +381 -59
  292. package/src/locus-info/infoUtils.ts +10 -2
  293. package/src/locus-info/mediaSharesUtils.ts +48 -0
  294. package/src/locus-info/parser.ts +224 -39
  295. package/src/locus-info/selfUtils.ts +81 -5
  296. package/src/media/index.ts +89 -109
  297. package/src/media/properties.ts +48 -87
  298. package/src/meeting/in-meeting-actions.ts +179 -3
  299. package/src/meeting/index.ts +2061 -2133
  300. package/src/meeting/locusMediaRequest.ts +314 -0
  301. package/src/meeting/muteState.ts +227 -130
  302. package/src/meeting/request.ts +157 -116
  303. package/src/meeting/util.ts +555 -396
  304. package/src/meeting-info/index.ts +54 -8
  305. package/src/meeting-info/meeting-info-v2.ts +148 -14
  306. package/src/meeting-info/util.ts +1 -1
  307. package/src/meeting-info/utilv2.ts +23 -23
  308. package/src/meetings/collection.ts +20 -0
  309. package/src/meetings/index.ts +405 -106
  310. package/src/meetings/meetings.types.ts +12 -0
  311. package/src/meetings/request.ts +2 -0
  312. package/src/meetings/util.ts +103 -4
  313. package/src/member/index.ts +49 -0
  314. package/src/member/types.ts +38 -0
  315. package/src/member/util.ts +127 -25
  316. package/src/members/collection.ts +8 -0
  317. package/src/members/index.ts +107 -6
  318. package/src/members/request.ts +97 -17
  319. package/src/members/types.ts +28 -0
  320. package/src/members/util.ts +319 -240
  321. package/src/metrics/constants.ts +2 -4
  322. package/src/metrics/index.ts +1 -490
  323. package/src/multistream/mediaRequestManager.ts +289 -79
  324. package/src/multistream/receiveSlot.ts +55 -18
  325. package/src/multistream/receiveSlotManager.ts +46 -24
  326. package/src/multistream/remoteMedia.ts +27 -2
  327. package/src/multistream/remoteMediaGroup.ts +59 -0
  328. package/src/multistream/remoteMediaManager.ts +113 -32
  329. package/src/reachability/index.ts +76 -18
  330. package/src/reachability/request.ts +16 -7
  331. package/src/reconnection-manager/index.ts +68 -43
  332. package/src/recording-controller/index.ts +20 -3
  333. package/src/recording-controller/util.ts +26 -9
  334. package/src/roap/index.ts +25 -30
  335. package/src/roap/request.ts +103 -95
  336. package/src/roap/turnDiscovery.ts +51 -25
  337. package/src/rtcMetrics/constants.ts +3 -0
  338. package/src/rtcMetrics/index.ts +100 -0
  339. package/src/statsAnalyzer/index.ts +73 -35
  340. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  341. package/test/integration/spec/converged-space-meetings.js +233 -0
  342. package/test/integration/spec/journey.js +336 -259
  343. package/test/integration/spec/space-meeting.js +76 -3
  344. package/test/unit/spec/annotation/index.ts +418 -0
  345. package/test/unit/spec/breakouts/breakout.ts +142 -24
  346. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  347. package/test/unit/spec/breakouts/events.ts +89 -0
  348. package/test/unit/spec/breakouts/index.ts +1545 -48
  349. package/test/unit/spec/breakouts/request.ts +104 -0
  350. package/test/unit/spec/breakouts/utils.js +72 -0
  351. package/test/unit/spec/common/queue.js +31 -2
  352. package/test/unit/spec/controls-options-manager/index.js +287 -0
  353. package/test/unit/spec/controls-options-manager/util.js +582 -0
  354. package/test/unit/spec/fixture/locus.js +1 -0
  355. package/test/unit/spec/interpretation/collection.ts +15 -0
  356. package/test/unit/spec/interpretation/index.ts +589 -0
  357. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  358. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  359. package/test/unit/spec/locus-info/index.js +1169 -36
  360. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  361. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  362. package/test/unit/spec/locus-info/parser.js +62 -22
  363. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  364. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  365. package/test/unit/spec/media/index.ts +138 -28
  366. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  367. package/test/unit/spec/meeting/index.js +3510 -1747
  368. package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
  369. package/test/unit/spec/meeting/muteState.js +370 -208
  370. package/test/unit/spec/meeting/request.js +417 -45
  371. package/test/unit/spec/meeting/utils.js +601 -53
  372. package/test/unit/spec/meeting-info/index.js +181 -0
  373. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  374. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  375. package/test/unit/spec/meetings/collection.js +14 -0
  376. package/test/unit/spec/meetings/index.js +874 -150
  377. package/test/unit/spec/meetings/utils.js +206 -2
  378. package/test/unit/spec/member/index.js +58 -4
  379. package/test/unit/spec/member/util.js +479 -35
  380. package/test/unit/spec/members/index.js +319 -1
  381. package/test/unit/spec/members/request.js +206 -27
  382. package/test/unit/spec/members/utils.js +184 -0
  383. package/test/unit/spec/metrics/index.js +1 -50
  384. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  385. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  386. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  387. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  388. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  389. package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
  390. package/test/unit/spec/reachability/index.ts +185 -7
  391. package/test/unit/spec/reachability/request.js +68 -0
  392. package/test/unit/spec/reconnection-manager/index.js +59 -6
  393. package/test/unit/spec/recording-controller/index.js +294 -218
  394. package/test/unit/spec/recording-controller/util.js +223 -96
  395. package/test/unit/spec/roap/index.ts +27 -51
  396. package/test/unit/spec/roap/request.ts +202 -85
  397. package/test/unit/spec/roap/turnDiscovery.ts +36 -8
  398. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  399. package/test/unit/spec/stats-analyzer/index.js +29 -2
  400. package/test/utils/constants.js +9 -0
  401. package/test/utils/integrationTestUtils.js +46 -0
  402. package/test/utils/testUtils.js +0 -45
  403. package/test/utils/webex-config.js +4 -0
  404. package/test/utils/webex-test-users.js +6 -3
  405. package/dist/meeting/effectsState.js +0 -262
  406. package/dist/meeting/effectsState.js.map +0 -1
  407. package/dist/metrics/config.js +0 -299
  408. package/dist/metrics/config.js.map +0 -1
  409. package/src/index.js +0 -16
  410. package/src/meeting/effectsState.ts +0 -211
  411. package/src/metrics/config.ts +0 -495
  412. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -1,5 +1,6 @@
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: {
@@ -39,64 +40,336 @@ 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);
44
+ it('should parse the muteOnEntry control', () => {
45
+ const newControls = {muteOnEntry: {enabled: true}};
46
+
47
+ const parsedControls = ControlsUtils.parse(newControls);
48
+
49
+ assert.equal(parsedControls.muteOnEntry.enabled, newControls.muteOnEntry.enabled);
50
+ });
51
+
52
+ it('should parse the shareControl control', () => {
53
+ const newControls = {shareControl: {control: 'example-value'}};
54
+
55
+ const parsedControls = ControlsUtils.parse(newControls);
56
+
57
+ assert.equal(parsedControls.shareControl.control, newControls.shareControl.control);
58
+ });
59
+
60
+ it('should parse the disallowUnmute control', () => {
61
+ const newControls = {disallowUnmute: {enabled: true}};
62
+
63
+ const parsedControls = ControlsUtils.parse(newControls);
64
+
65
+ assert.equal(parsedControls.disallowUnmute.enabled, newControls.disallowUnmute.enabled);
66
+ });
67
+
68
+ it('should parse the reactions control', () => {
69
+ const newControls = {reactions: {enabled: true}};
70
+
71
+ const parsedControls = ControlsUtils.parse(newControls);
72
+
73
+ assert.equal(parsedControls.reactions.enabled, newControls.reactions.enabled);
74
+ });
75
+
76
+ it('should parse the reactionDisplayNames control', () => {
77
+ const newControls = {reactions: {showDisplayNameWithReactions: true}};
78
+
79
+ const parsedControls = ControlsUtils.parse(newControls);
80
+
81
+ assert.equal(parsedControls.reactions.showDisplayNameWithReactions, newControls.reactions.showDisplayNameWithReactions);
82
+ });
83
+
84
+ it('should parse the viewTheParticipantList control', () => {
85
+ const newControls = {viewTheParticipantList: {enabled: true}};
86
+
87
+ const parsedControls = ControlsUtils.parse(newControls);
88
+
89
+ assert.equal(parsedControls.viewTheParticipantList.enabled, newControls.viewTheParticipantList.enabled);
90
+ });
91
+
92
+ it('should parse the raiseHand control', () => {
93
+ const newControls = {raiseHand: {enabled: true}};
94
+
95
+ const parsedControls = ControlsUtils.parse(newControls);
96
+
97
+ assert.equal(parsedControls.raiseHand.enabled, newControls.raiseHand.enabled);
98
+ });
99
+
100
+ it('should parse the video control', () => {
101
+ const newControls = {video: {enabled: true}};
102
+
103
+ const parsedControls = ControlsUtils.parse(newControls);
104
+
105
+ assert.equal(parsedControls.video.enabled, newControls.video.enabled);
106
+ });
107
+
108
+ describe('videoEnabled', () => {
109
+ it('returns expected', () => {
110
+ const result = ControlsUtils.parse({video: {enabled: true}});
111
+ assert.deepEqual(result, {
112
+ video: {
113
+ enabled: true,
114
+ },
115
+ videoEnabled: true,
116
+ });
117
+ });
118
+
119
+ it('returns expected from undefined', () => {
120
+ const result = ControlsUtils.parse();
121
+ assert.deepEqual(result, {});
122
+ });
123
+
124
+ it('returns expected from undefined controls', () => {
125
+ const result = ControlsUtils.parse({});
126
+ assert.deepEqual(result, {});
127
+ });
128
+ });
56
129
  });
57
130
 
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);
131
+ describe('getControls', () => {
132
+ it('returns hasMuteOnEntryChanged = true when changed', () => {
133
+ const newControls = {muteOnEntry: {enabled: true}};
134
+
135
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
136
+
137
+ assert.equal(updates.hasMuteOnEntryChanged, true);
138
+ });
139
+
140
+ it('returns hasShareControlChanged = true when changed', () => {
141
+ const newControls = {shareControl: {control: 'example-value'}};
142
+
143
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
144
+
145
+ assert.equal(updates.hasShareControlChanged, true);
146
+ });
147
+
148
+ it('returns hasDisallowUnmuteChanged = true when changed', () => {
149
+ const newControls = {disallowUnmute: {enabled: true}};
150
+
151
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
152
+
153
+ assert.equal(updates.hasDisallowUnmuteChanged, true);
154
+ });
155
+
156
+ it('returns hasReactionsChanged = true when changed', () => {
157
+ const newControls = {reactions: {enabled: true}};
158
+
159
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
160
+
161
+ assert.equal(updates.hasReactionsChanged, true);
162
+ });
163
+
164
+ it('returns hasReactionDisplayNamesChanged = true when changed', () => {
165
+ const newControls = {reactions: {showDisplayNameWithReactions: true}};
166
+
167
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
168
+
169
+ assert.equal(updates.hasReactionDisplayNamesChanged, true);
170
+ });
171
+
172
+ it('returns hasViewTheParticipantListChanged = true when changed', () => {
173
+ const newControls = {viewTheParticipantList: {enabled: true}};
174
+
175
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
176
+
177
+ assert.equal(updates.hasViewTheParticipantListChanged, true);
178
+ });
179
+
180
+ it('returns hasRaiseHandChanged = true when changed', () => {
181
+ const newControls = {raiseHand: {enabled: true}};
66
182
 
67
- assert.equal(updates.hasEntryExitToneChanged, true);
183
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
184
+
185
+ assert.equal(updates.hasRaiseHandChanged, true);
186
+ });
187
+
188
+ it('returns hasVideoChanged = true when changed', () => {
189
+ const newControls = {video: {enabled: true}};
190
+
191
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
192
+
193
+ assert.equal(updates.hasVideoChanged, true);
194
+ });
195
+
196
+ it('returns hasEntryExitToneChanged = true when mode changed', () => {
197
+ const newControls = {
198
+ entryExitTone: {
199
+ enabled: true,
200
+ mode: 'bar',
201
+ },
202
+ };
203
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
204
+
205
+ assert.equal(updates.hasEntryExitToneChanged, true);
206
+ });
207
+
208
+ it('returns hasEntryExitToneChanged = true when enabled changed', () => {
209
+ const newControls = {
210
+ entryExitTone: {
211
+ enabled: false,
212
+ mode: 'foo',
213
+ },
214
+ };
215
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
216
+
217
+ assert.equal(updates.hasEntryExitToneChanged, true);
218
+ });
219
+
220
+ it('returns hasEntryExitToneChanged = false when nothing changed', () => {
221
+ const newControls = {
222
+ entryExitTone: {
223
+ enabled: true,
224
+ mode: 'foo',
225
+ },
226
+ };
227
+ const {updates} = ControlsUtils.getControls(defaultControls, newControls);
228
+
229
+ assert.equal(updates.hasEntryExitToneChanged, false);
230
+ });
231
+
232
+ it('returns hasBreakoutChanged = true when it has changed', () => {
233
+ const newControls = {
234
+ breakout: 'breakout',
235
+ };
236
+
237
+ const {updates} = ControlsUtils.getControls({breakout: 'old breakout'}, newControls);
238
+
239
+ assert.equal(updates.hasBreakoutChanged, true);
240
+ });
241
+
242
+ it('returns hasBreakoutChanged = false when it has not changed', () => {
243
+ const newControls = {
244
+ breakout: 'breakout',
245
+ };
246
+
247
+ const {updates} = ControlsUtils.getControls({breakout: 'breakout'}, newControls);
248
+
249
+ assert.equal(updates.hasBreakoutChanged, false);
250
+ });
251
+
252
+ it('returns hasInterpretationChanged = true when it has changed', () => {
253
+ const newControls = {
254
+ interpretation: 'interpretation',
255
+ };
256
+
257
+ const {updates} = ControlsUtils.getControls({interpretation: 'old one'}, newControls);
258
+
259
+ assert.equal(updates.hasInterpretationChanged, true);
260
+ });
261
+
262
+ it('returns hasInterpretationChanged = false when it has not changed', () => {
263
+ const newControls = {
264
+ interpretation: 'interpretation',
265
+ };
266
+
267
+ const {updates} = ControlsUtils.getControls({interpretation: 'interpretation'}, newControls);
268
+
269
+ assert.equal(updates.hasInterpretationChanged, false);
270
+ });
271
+
272
+ describe('videoEnabled', () => {
273
+ const testVideoEnabled = (oldControls, newControls, updatedProperty) => {
274
+ const result = ControlsUtils.getControls(oldControls, newControls);
275
+
276
+ let expectedPrevious = oldControls;
277
+ if (Object.keys(oldControls).length) {
278
+ expectedPrevious = {
279
+ ...expectedPrevious,
280
+ ...{videoEnabled: oldControls.video.enabled},
281
+ };
282
+ }
283
+ const expectedCurrent = {...newControls, ...{videoEnabled: newControls.video.enabled}};
284
+
285
+ assert.deepEqual(result.previous, expectedPrevious);
286
+ assert.deepEqual(result.current, expectedCurrent);
287
+ if (updatedProperty !== undefined) {
288
+ assert.deepEqual(
289
+ result.updates.hasVideoEnabledChanged,
290
+ !isEqual(oldControls, newControls)
291
+ );
292
+ }
293
+ };
294
+
295
+ it('returns expected from undefined', () => {
296
+ testVideoEnabled({}, {video: {enabled: true}});
297
+ });
298
+
299
+ it('returns expected from defined', () => {
300
+ testVideoEnabled({video: {enabled: false}}, {video: {enabled: true}});
301
+ });
302
+
303
+ it('returns expected for unchanged', () => {
304
+ testVideoEnabled({video: {enabled: false}}, {video: {enabled: false}});
305
+ });
306
+ });
68
307
  });
69
308
 
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);
309
+ describe('isNeedReplaceMembers', () => {
310
+ it('if no breakout control, return false', () => {
311
+ const oldControls = {};
312
+ const newControls = {};
313
+ assert.equal(controlsUtils.isNeedReplaceMembers(oldControls, newControls), false);
314
+ });
315
+
316
+ it('if current session moved, return true', () => {
317
+ const oldControls = {breakout: {sessionId: 'sessionId1', groupId: 'groupId1'}};
318
+ const newControls = {breakout: {sessionId: 'sessionId2', groupId: 'groupId2'}};
319
+ assert.equal(controlsUtils.isNeedReplaceMembers(oldControls, newControls), true);
320
+ });
78
321
 
79
- assert.equal(updates.hasEntryExitToneChanged, false);
322
+ it('if in same session, return false', () => {
323
+ const oldControls = {breakout: {sessionId: 'sessionId1', groupId: 'groupId'}};
324
+ const newControls = {breakout: {sessionId: 'sessionId1', groupId: 'groupId'}};
325
+ assert.equal(controlsUtils.isNeedReplaceMembers(oldControls, newControls), false);
326
+ });
80
327
  });
81
328
 
82
- it('returns hasBreakoutChanged = true when it has changed', () => {
83
- const newControls = {
84
- breakout: 'breakout'
85
- };
329
+ describe('getSessionSwitchStatus', () => {
330
+ it('if no breakout control, return switch status both false', () => {
331
+ const oldControls = {};
332
+ const newControls = {};
333
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
334
+ isReturnToMain: false, isJoinToBreakout: false
335
+ });
336
+ });
86
337
 
87
- const {updates} = ControlsUtils.getControls({breakout: 'old breakout'}, newControls);
338
+ it('if switch session from breakout to main, return isReturnToMain as true', () => {
339
+ const oldControls = {breakout: {sessionType: 'BREAKOUT'}};
340
+ const newControls = {breakout: {sessionType: 'MAIN'}};
341
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
342
+ isReturnToMain: true, isJoinToBreakout: false
343
+ });
344
+ });
88
345
 
89
- assert.equal(updates.hasBreakoutChanged, true);
346
+ it('if switch session from main to breakout, return isJoinToBreakout as true', () => {
347
+ const oldControls = {breakout: {sessionType: 'MAIN'}};
348
+ const newControls = {breakout: {sessionType: 'BREAKOUT'}};
349
+ assert.deepEqual(controlsUtils.getSessionSwitchStatus(oldControls, newControls), {
350
+ isReturnToMain: false, isJoinToBreakout: true
351
+ });
352
+ });
90
353
  });
91
354
 
92
- it('returns hasBreakoutChanged = false when it has not changed', () => {
93
- const newControls = {
94
- breakout: 'breakout'
95
- };
355
+ describe('#isMainSessionDTO', () => {
356
+ it('return false is sessionType is BREAKOUT', () => {
357
+ const locus = {
358
+ controls: {breakout: {sessionType: 'BREAKOUT'}}
359
+ };
96
360
 
97
- const {updates} = ControlsUtils.getControls({breakout: 'breakout'}, newControls);
361
+ assert.equal(controlsUtils.isMainSessionDTO(locus), false);
362
+ });
363
+
364
+ it('return true is sessionType is not BREAKOUT', () => {
365
+ const locus = {
366
+ controls: {breakout: {sessionType: 'MAIN'}}
367
+ };
98
368
 
99
- assert.equal(updates.hasBreakoutChanged, false);
369
+ assert.equal(controlsUtils.isMainSessionDTO(locus), true);
370
+
371
+ assert.equal(controlsUtils.isMainSessionDTO({}), true);
372
+ });
100
373
  });
101
374
  });
102
375
  });