@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
package/test/utils/cmr.js CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  import uuid from 'uuid';
3
2
  import retry from '@webex/test-helper-retry';
4
3
 
@@ -23,16 +22,16 @@ CMR.reserve = (webex, claimed) => {
23
22
  authorization: `Bearer ${webex.credentials.supertoken.access_token}`,
24
23
  'cisco-no-http-redirect': null,
25
24
  'spark-user-agent': null,
26
- trackingid: `ITCLIENT_${uuid.v4()}_0_imi:true`
25
+ trackingid: `ITCLIENT_${uuid.v4()}_0_imi:true`,
27
26
  },
28
27
  body: {
29
28
  resourceType,
30
29
  requestMetaData: {
31
30
  emailAddress: `test${uuid.v4()}@wx2.example.com`,
32
- loginType: 'loginGuest'
31
+ loginType: 'loginGuest',
33
32
  },
34
- reservedBy: 'Webex JavaScript SDK Test Suite'
35
- }
33
+ reservedBy: 'Webex JavaScript SDK Test Suite',
34
+ },
36
35
  };
37
36
 
38
37
  if (claimed) {
@@ -40,7 +39,8 @@ CMR.reserve = (webex, claimed) => {
40
39
  }
41
40
  console.log('USER ID ', webex.internal.device.userId);
42
41
 
43
- return webex.request(requestBody)
42
+ return webex
43
+ .request(requestBody)
44
44
  .then((response) => {
45
45
  const cmr = response.body;
46
46
 
@@ -56,47 +56,49 @@ CMR.reserve = (webex, claimed) => {
56
56
  CMR.release = (webex, reservationUrl) => {
57
57
  console.log('releasing cmr');
58
58
 
59
- return webex.request({
60
- method: 'DELETE',
61
- uri: reservationUrl,
62
- headers: {
63
- authorization: `Bearer ${webex.credentials.supertoken.access_token}`,
64
- 'cisco-no-http-redirect': null,
65
- 'spark-user-agent': null
66
- }
67
- })
59
+ return webex
60
+ .request({
61
+ method: 'DELETE',
62
+ uri: reservationUrl,
63
+ headers: {
64
+ authorization: `Bearer ${webex.credentials.supertoken.access_token}`,
65
+ 'cisco-no-http-redirect': null,
66
+ 'spark-user-agent': null,
67
+ },
68
+ })
68
69
  .then(() => console.log('released cmr'));
69
70
  };
70
71
 
71
- CMR.waitForHostToJoin = (webex, resourceUrl) => retry(() => {
72
- console.log('checking if the host has joined');
73
-
74
- return webex.request({
75
- method: 'GET',
76
- uri: resourceUrl,
77
- headers: {
78
- authorization: `Bearer ${webex.credentials.supertoken.access_token}`,
79
- 'cisco-no-http-redirect': null,
80
- 'spark-user-agent': null
81
- }
72
+ CMR.waitForHostToJoin = (webex, resourceUrl) =>
73
+ retry(() => {
74
+ console.log('checking if the host has joined');
75
+
76
+ return webex
77
+ .request({
78
+ method: 'GET',
79
+ uri: resourceUrl,
80
+ headers: {
81
+ authorization: `Bearer ${webex.credentials.supertoken.access_token}`,
82
+ 'cisco-no-http-redirect': null,
83
+ 'spark-user-agent': null,
84
+ },
85
+ })
86
+ .then((res) => {
87
+ if (res.body && res.body.meeting.hostPresent) {
88
+ console.log('the host has joined');
89
+
90
+ return;
91
+ }
92
+
93
+ console.log('the host has not joined');
94
+ throw new Error('Meeting host has not yet joined');
95
+ });
82
96
  })
83
- .then((res) => {
84
- if (res.body && res.body.meeting.hostPresent) {
85
- console.log('the host has joined');
97
+ .then(() => true)
98
+ .catch((reason) => {
99
+ console.warn(reason);
86
100
 
87
- return;
88
- }
89
-
90
- console.log('the host has not joined');
91
- throw new Error('Meeting host has not yet joined');
101
+ return false;
92
102
  });
93
- })
94
- .then(() => true)
95
- .catch((reason) => {
96
- console.warn(reason);
97
-
98
- return false;
99
- });
100
-
101
103
 
102
104
  export default CMR;
@@ -0,0 +1,9 @@
1
+ // MOVE TO TEST CONSTANTS
2
+ export const MEDIA_SERVERS = {
3
+ // The homer media server for converged multistream meetings.
4
+ HOMER: 'homer',
5
+ // The linus media server
6
+ LINUS: 'linus',
7
+ // The calliope media server for transcoded meetings
8
+ CALLIOPE: 'calliope',
9
+ };
@@ -19,7 +19,7 @@ const waitForSpy = (spy, event) => {
19
19
  resolve(spy.args[0][0]);
20
20
  }
21
21
  }, 1000);
22
- })
22
+ }),
23
23
  ]);
24
24
  };
25
25
 
@@ -40,7 +40,7 @@ const waitForStateChange = (meeting, state) => {
40
40
  resolve(meeting.locusInfo.parsedLocus.states);
41
41
  }
42
42
  }, 1000);
43
- })
43
+ }),
44
44
  ]);
45
45
  };
46
46
 
@@ -59,44 +59,46 @@ const waitForCallEnded = (user, email) => {
59
59
  clearTimeout(timer);
60
60
  clearInterval(interval);
61
61
  resolve();
62
- }
63
- else {
62
+ } else {
64
63
  console.log('MEETING STILL EXISTS!', user.webex.meetings.getAllMeetings());
65
64
  }
66
65
  }, 3000);
67
- })
66
+ }),
68
67
  ]);
69
68
  };
70
69
 
71
- const syncAndEndMeeting = (user) => user.webex.meetings.syncMeetings()
72
- .then(() => {
73
- const promise = [];
74
- const meetings = user.webex.meetings.getAllMeetings();
70
+ const syncAndEndMeeting = (user) =>
71
+ user.webex.meetings
72
+ .syncMeetings()
73
+ .then(() => {
74
+ const promise = [];
75
+ const meetings = user.webex.meetings.getAllMeetings();
75
76
 
76
- if (Object.keys(meetings).length === 0) {
77
- return Promise.resolve();
78
- }
79
- Object.keys(meetings)
80
- .forEach((key) => {
77
+ if (Object.keys(meetings).length === 0) {
78
+ return Promise.resolve();
79
+ }
80
+ Object.keys(meetings).forEach((key) => {
81
81
  promise.push(meetings[key].leave());
82
82
  });
83
83
 
84
- return Promise.all(promise);
85
- })
86
- .then(() => new Promise((resolve) => {
87
- const interval = setInterval(() => {
88
- if (Object.keys(user.webex.meetings.getAllMeetings()).length === 0) {
89
- clearInterval(interval);
90
- resolve();
91
- }
92
- else {
93
- console.log('End Meetings before test failed');
94
- }
95
- }, 3000);
96
- }))
97
- .catch((e) => {
98
- console.log('ERROR on syncMeeting', e);
99
- });
84
+ return Promise.all(promise);
85
+ })
86
+ .then(
87
+ () =>
88
+ new Promise((resolve) => {
89
+ const interval = setInterval(() => {
90
+ if (Object.keys(user.webex.meetings.getAllMeetings()).length === 0) {
91
+ clearInterval(interval);
92
+ resolve();
93
+ } else {
94
+ console.log('End Meetings before test failed');
95
+ }
96
+ }, 3000);
97
+ })
98
+ )
99
+ .catch((e) => {
100
+ console.log('ERROR on syncMeeting', e);
101
+ });
100
102
 
101
103
  //
102
104
  const waitForEvents = (scopeEvents, timeout = max) => {
@@ -125,11 +127,12 @@ const waitForEvents = (scopeEvents, timeout = max) => {
125
127
  obj.user.memberId = value.meeting.locusInfo.parsedLocus.selfId;
126
128
  }
127
129
  if (obj.event === 'meeting:removed') {
128
- console.log(`MEETING:REMOVED ${obj.user.name} ID ${obj.user.meeting.id} correlationID ${obj.user.meeting.correlationId}`);
130
+ console.log(
131
+ `MEETING:REMOVED ${obj.user.name} ID ${obj.user.meeting.id} correlationID ${obj.user.meeting.correlationId}`
132
+ );
129
133
  if (obj.user.meeting.id === value.meetingId) {
130
134
  obj.user.meeting = null;
131
- }
132
- else {
135
+ } else {
133
136
  console.log('MEETING EXISTING ', obj.user.webex.meetings.getAllMeetings());
134
137
  reject(new Error(`Different Meeting Object ${value}`));
135
138
  }
@@ -142,8 +145,7 @@ const waitForEvents = (scopeEvents, timeout = max) => {
142
145
 
143
146
  resolve(result);
144
147
  }
145
- }
146
- else if (result.length === scopeEvents.length) {
148
+ } else if (result.length === scopeEvents.length) {
147
149
  resolve(result);
148
150
  obj.scope.off(obj.event, handler);
149
151
  clearTimeout(timer);
@@ -152,12 +154,11 @@ const waitForEvents = (scopeEvents, timeout = max) => {
152
154
 
153
155
  obj.scope.on(obj.event, handler);
154
156
  });
155
- }
156
- catch (e) {
157
+ } catch (e) {
157
158
  console.error('waitForEvents', e);
158
159
  reject(e);
159
160
  }
160
- })
161
+ }),
161
162
  ]);
162
163
  };
163
164
 
@@ -172,32 +173,41 @@ const delayedPromise = (promise) => {
172
173
  }),
173
174
  new Promise((resolve, reject) => {
174
175
  setTimeout(() => {
175
- promise.then((res) => {
176
- resolve(res);
177
- clearTimeout(timer);
178
- })
176
+ promise
177
+ .then((res) => {
178
+ resolve(res);
179
+ clearTimeout(timer);
180
+ })
179
181
  .catch((e) => {
180
182
  console.error('delayedPromise', e);
181
183
  reject(e);
182
184
  });
183
185
  }, 2000);
184
- })
186
+ }),
185
187
  ]);
186
188
  };
187
189
 
188
- const delayedTest = (callback, timeout) => new Promise((resolve) => {
189
- setTimeout(() => {
190
- callback();
191
- resolve();
192
- }, timeout);
193
- });
194
-
195
- const addMedia = (user) => {
196
- const mediaReadyPromises = {
197
- local: new Defer(),
198
- remoteAudio: new Defer(),
199
- remoteVideo: new Defer(),
200
- };
190
+ const delayedTest = (callback, timeout) =>
191
+ new Promise((resolve) => {
192
+ setTimeout(() => {
193
+ callback();
194
+ resolve();
195
+ }, timeout);
196
+ });
197
+
198
+ const addMedia = async (user, options = {}) => {
199
+ const mediaReadyPromises = Array.isArray(options.expectedMediaReadyTypes)
200
+ ? options.expectedMediaReadyTypes.reduce((output, expectedMediaReadyType) => {
201
+ if (typeof expectedMediaReadyType !== 'string') {
202
+ return output;
203
+ }
204
+
205
+ output[expectedMediaReadyType] = new Defer();
206
+
207
+ return output;
208
+ }, {})
209
+ : {local: new Defer(), remoteAudio: new Defer(), remoteVideo: new Defer()};
210
+
201
211
  const mediaReady = (media) => {
202
212
  if (!media) {
203
213
  return;
@@ -209,35 +219,44 @@ const addMedia = (user) => {
209
219
 
210
220
  user.meeting.on('media:ready', mediaReady);
211
221
 
212
- return user.meeting.getMediaStreams({
213
- sendAudio: true,
214
- sendVideo: true,
215
- sendShare: false
216
- })
217
- .then(([localStream, localShare]) => user.meeting.addMedia({
222
+ const [localStream, localShare] = await user.meeting
223
+ .getMediaStreams({
224
+ sendAudio: true,
225
+ sendVideo: true,
226
+ sendShare: false,
227
+ });
228
+
229
+ if (options.multistream) {
230
+ await user.meeting.addMedia({});
231
+
232
+ await user.meeting.publishTracks({microphone: localStream.getAudioTracks()[0], camera: localStream.getVideoTracks()[0]})
233
+ } else {
234
+ await user.meeting.addMedia({
218
235
  mediaSettings: {
219
236
  sendAudio: true,
220
237
  sendVideo: true,
221
238
  sendShare: false,
222
239
  receiveShare: true,
223
240
  receiveAudio: true,
224
- receiveVideo: true
241
+ receiveVideo: true,
225
242
  },
226
243
  localShare,
227
- localStream
228
- }))
229
- .then(() => Promise.all(Object.values(mediaReadyPromises).map((defer) => defer.promise)))
230
- .then(() => {
231
- assert.exists(user.meeting.mediaProperties.audioTrack, 'audioTrack not present');
232
- assert.exists(user.meeting.mediaProperties.videoTrack, 'videoTrack not present');
244
+ localStream,
233
245
  });
246
+ }
247
+
248
+ await Promise.all(Object.values(mediaReadyPromises).map((defer) => defer.promise));
249
+
250
+ assert.exists(user.meeting.mediaProperties.audioTrack, 'audioTrack not present');
251
+ assert.exists(user.meeting.mediaProperties.videoTrack, 'videoTrack not present');
234
252
  };
235
253
 
236
- const waitUntil = (waitTime) => new Promise((resolve) => {
237
- setTimeout(() => {
238
- resolve();
239
- }, waitTime);
240
- });
254
+ const waitUntil = (waitTime) =>
255
+ new Promise((resolve) => {
256
+ setTimeout(() => {
257
+ resolve();
258
+ }, waitTime);
259
+ });
241
260
 
242
261
  const flushPromises = () => new Promise(setImmediate);
243
262
 
@@ -259,7 +278,10 @@ const getCircularReplacer = () => {
259
278
 
260
279
  // this function is meant to be used as the "match" callback with waitForEvents()
261
280
  // when you want to wait for a particular users's status to reach a certain value
262
- const checkParticipantUpdatedStatus = (user, expectedStatus) => (event) => !!event.delta.updated.find((member) => user.meeting.members.selfId === member.id && member.status === expectedStatus);
281
+ const checkParticipantUpdatedStatus = (user, expectedStatus) => (event) =>
282
+ !!event.delta.updated.find(
283
+ (member) => user.meeting.members.selfId === member.id && member.status === expectedStatus
284
+ );
263
285
 
264
286
  export default {
265
287
  waitForSpy,
@@ -273,6 +295,5 @@ export default {
273
295
  waitUntil,
274
296
  delayedTest,
275
297
  flushPromises,
276
- getCircularReplacer
298
+ getCircularReplacer,
277
299
  };
278
-
@@ -8,29 +8,29 @@ const SCOPE = [
8
8
  'spark:memberships_read',
9
9
  'spark:memberships_write',
10
10
  'spark:messages_read',
11
- 'spark:messages_write'
11
+ 'spark:messages_write',
12
12
  ].join(' ');
13
13
 
14
14
  const Config = {
15
- version: (() => process.env.BUILD_VERSION || -1),
16
- appType: (() => {
15
+ version: () => process.env.BUILD_VERSION || -1,
16
+ appType: () => {
17
17
  const type = 'Web';
18
18
 
19
19
  return type;
20
- }),
20
+ },
21
21
  clientId: process.env.WEBEX_CLIENT_ID,
22
- clientSecret: process.env.WEBEX_CLIENT_SECRET
22
+ clientSecret: process.env.WEBEX_CLIENT_SECRET,
23
23
  };
24
24
 
25
25
  Config.allowedOutboundTags = {
26
- 'webex-mention': ['data-object-type', 'data-object-id', 'data-group-type', 'data-object-url']
26
+ 'webex-mention': ['data-object-type', 'data-object-id', 'data-group-type', 'data-object-url'],
27
27
  };
28
28
 
29
29
  Config.webex = {
30
30
  maxReconnectAttempts: 5,
31
31
  conversation: {
32
32
  allowedInboundTags: Config.allowedInboundTags,
33
- allowedOutboundTags: Config.allowedOutboundTags
33
+ allowedOutboundTags: Config.allowedOutboundTags,
34
34
  },
35
35
  credentials: {
36
36
  clientType: 'confidential',
@@ -39,39 +39,43 @@ Config.webex = {
39
39
  client_id: Config.clientId,
40
40
  client_secret: Config.clientSecret,
41
41
  redirect_uri: process.env.LAUNCH_URL,
42
- scope: SCOPE
43
- }
42
+ scope: SCOPE,
43
+ },
44
44
  },
45
45
  encryption: {
46
- decryptionFailureMessage: 'This message cannot be decrypted'
46
+ decryptionFailureMessage: 'This message cannot be decrypted',
47
47
  },
48
48
  logger: {
49
- level: process.env.NODE_ENV === 'test' ? 'error' : 'error'
49
+ level: process.env.NODE_ENV === 'test' ? 'error' : 'error',
50
50
  },
51
51
  meetings: {
52
52
  metrics: {
53
- autoSendMQA: true
53
+ autoSendMQA: true,
54
54
  },
55
55
  autoUploadLogs: false,
56
56
  reconnection: {
57
- enabled: true
57
+ enabled: true,
58
+ },
59
+ enableRtx: true,
60
+ experimental: {
61
+ enableMediaNegotiatedEvent: true,
62
+ enableUnifiedMeetings: true,
58
63
  },
59
- enableRtx: true
60
64
  },
61
65
  people: {
62
- showAllTypes: true
66
+ showAllTypes: true,
63
67
  },
64
68
  metrics: {
65
69
  appVersion: Config.version,
66
- appType: Config.appType
70
+ appType: Config.appType,
67
71
  },
68
72
  support: {
69
73
  appVersion: Config.version,
70
74
  appType: Config.appType,
71
- languageCode: 'en'
75
+ languageCode: 'en',
72
76
  },
73
77
  trackingIdPrefix: 'ITCLIENT',
74
- trackingIdSuffix: 'imu:false_imi:true'
78
+ trackingIdSuffix: 'imu:false_imi:true',
75
79
  };
76
80
 
77
81
  module.exports = Config;
@@ -8,6 +8,7 @@ const config = require('./webex-config');
8
8
 
9
9
  // Include the plugins which you feel will be used by the webex instance
10
10
  require('@webex/internal-plugin-mercury');
11
+ require('@webex/internal-plugin-llm');
11
12
  require('@webex/internal-plugin-user');
12
13
  require('@webex/internal-plugin-device');
13
14
  require('@webex/internal-plugin-conversation');
@@ -16,64 +17,70 @@ require('@webex/plugin-people');
16
17
  require('@webex/plugin-rooms');
17
18
  require('@webex/plugin-meetings');
18
19
 
19
- const generateTestUsers = (options) => testUser.create({count: options.count})
20
- .then(async (userSet) => {
21
- if (userSet.length !== options.count) {
22
- return Promise.reject(new Error('Test users not created'));
23
- }
20
+ const generateTestUsers = (options = {}) => {
21
+ options.config = options.config || {};
22
+ options.config.orgId = options.config.orgId || process.env.WEBEX_CONVERGED_ORG_ID;
24
23
 
25
- // Pause for 5 seconds for CI
26
- await new Promise((done) => setTimeout(done, 5000));
24
+ return testUser.create(options)
25
+ .then(async (userSet) => {
26
+ if (userSet.length !== options.count) {
27
+ return Promise.reject(new Error('Test users not created'));
28
+ }
27
29
 
28
- const userRegisterPromises = [];
30
+ // Pause for 5 seconds for CI
31
+ await new Promise((done) => setTimeout(done, 5000));
29
32
 
30
- userSet.forEach((user) => {
31
- // eslint-disable-next-line no-param-reassign
32
- user.webex = new WebexCore({
33
- config: config.webex,
34
- credentials: {
35
- authorization: user.token
36
- },
37
- meetings: {
38
- autoUploadLogs: false
39
- }
40
- });
33
+ const userRegisterPromises = [];
41
34
 
42
- user.webex.internal.support.submitLogs = sinon.stub().returns(Promise.resolve());
35
+ userSet.forEach((user) => {
36
+ // eslint-disable-next-line no-param-reassign
37
+ user.webex = new WebexCore({
38
+ config: config.webex,
39
+ credentials: {
40
+ authorization: user.token,
41
+ },
42
+ meetings: {
43
+ autoUploadLogs: false,
44
+ },
45
+ });
43
46
 
44
- userRegisterPromises.push(user.webex.meetings.register());
45
- });
47
+ user.webex.internal.support.submitLogs = sinon.stub().returns(Promise.resolve());
46
48
 
47
- return Promise.all(userRegisterPromises)
48
- .then(() => userSet);
49
- })
50
- .catch((error) => {
51
- console.error('#generateTestUsers=>ERROR', error);
52
- });
49
+ userRegisterPromises.push(user.webex.meetings.register());
50
+ });
53
51
 
54
- const reserveCMR = (user) => user.webex.request({
55
- method: 'POST',
56
- uri: 'https://whistler-prod.allnint.ciscospark.com/api/v1/reservations',
57
- headers: {
58
- authorization: `Bearer ${user.webex.credentials.supertoken.access_token}`,
59
- 'cisco-no-http-redirect': null,
60
- 'spark-user-agent': null,
61
- trackingid: `ITCLIENT_ ${user.id} _0_imi:true`
62
- },
63
- body: {
64
- resourceType: 'CMR_3',
65
- reservedBy: 'SDK_TEST_USER',
66
- requestMetaData: {
67
- emailAddress: user.emailAddress,
68
- loginType: 'loginGuest'
69
- }
70
- }
71
- })
72
- .then((res) => {
73
- console.log('SUCCESS ', res);
74
- });
52
+ return Promise.all(userRegisterPromises).then(() => userSet);
53
+ })
54
+ .catch((error) => {
55
+ console.error('#generateTestUsers=>ERROR', error);
56
+ });
57
+ };
58
+
59
+ const reserveCMR = (user) =>
60
+ user.webex
61
+ .request({
62
+ method: 'POST',
63
+ uri: 'https://whistler-prod.allnint.ciscospark.com/api/v1/reservations',
64
+ headers: {
65
+ authorization: `Bearer ${user.webex.credentials.supertoken.access_token}`,
66
+ 'cisco-no-http-redirect': null,
67
+ 'spark-user-agent': null,
68
+ trackingid: `ITCLIENT_ ${user.id} _0_imi:true`,
69
+ },
70
+ body: {
71
+ resourceType: 'CMR_3',
72
+ reservedBy: 'SDK_TEST_USER',
73
+ requestMetaData: {
74
+ emailAddress: user.emailAddress,
75
+ loginType: 'loginGuest',
76
+ },
77
+ },
78
+ })
79
+ .then((res) => {
80
+ console.log('SUCCESS ', res);
81
+ });
75
82
 
76
83
  module.exports = {
77
84
  generateTestUsers,
78
- reserveCMR
85
+ reserveCMR,
79
86
  };
package/tsconfig.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "include": [
4
+ "src"
5
+ ],
6
+ }
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
-
9
- exports.RoapMediaConnection = exports.MultistreamRoapMediaConnection = void 0;
10
-
11
- var _internalMediaCore = require("@webex/internal-media-core");
12
-
13
- /* We have this wrapper just because otherwise it's impossible to mock
14
- * RoapMediaConnection and MultistreamRoapMediaConnection constructors in unit tests,
15
- * because they are exported by @webex/internal-media-core as non-writable, non-configurable
16
- * properties of MediaConnection and sinon doesn't allow spying on them or stubbing them.
17
- */
18
- var RoapMediaConnection = _internalMediaCore.MediaConnection.RoapMediaConnection;
19
- exports.RoapMediaConnection = RoapMediaConnection;
20
- var MultistreamRoapMediaConnection = _internalMediaCore.MediaConnection.MultistreamRoapMediaConnection;
21
- exports.MultistreamRoapMediaConnection = MultistreamRoapMediaConnection;
22
- //# sourceMappingURL=internal-media-core-wrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["RoapMediaConnection","MC","MultistreamRoapMediaConnection"],"sources":["internal-media-core-wrapper.ts"],"sourcesContent":["import {MediaConnection as MC} from '@webex/internal-media-core';\n\n/* We have this wrapper just because otherwise it's impossible to mock\n * RoapMediaConnection and MultistreamRoapMediaConnection constructors in unit tests,\n * because they are exported by @webex/internal-media-core as non-writable, non-configurable\n * properties of MediaConnection and sinon doesn't allow spying on them or stubbing them.\n */\nexport const RoapMediaConnection = MC.RoapMediaConnection;\nexport const MultistreamRoapMediaConnection = MC.MultistreamRoapMediaConnection;\n"],"mappings":";;;;;;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,mBAAmB,GAAGC,kCAAA,CAAGD,mBAA/B;;AACA,IAAME,8BAA8B,GAAGD,kCAAA,CAAGC,8BAA1C"}