@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.130

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 (519) hide show
  1. package/README.md +45 -1
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +48 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +355 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +193 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +43 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +994 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +5 -26
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +5 -26
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +6 -27
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +5 -26
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/parameter.js +5 -33
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +5 -26
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +4 -25
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reconnection-in-progress.js +0 -17
  45. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +5 -26
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +5 -26
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +6 -41
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +1 -24
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +0 -22
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +0 -23
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js +0 -12
  59. package/dist/common/events/trigger-proxy.js.map +1 -1
  60. package/dist/common/events/util.js +0 -15
  61. package/dist/common/events/util.js.map +1 -1
  62. package/dist/common/logs/logger-config.js +0 -4
  63. package/dist/common/logs/logger-config.js.map +1 -1
  64. package/dist/common/logs/logger-proxy.js +1 -8
  65. package/dist/common/logs/logger-proxy.js.map +1 -1
  66. package/dist/common/logs/request.js +35 -61
  67. package/dist/common/logs/request.js.map +1 -1
  68. package/dist/common/queue.js +4 -14
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.js +6 -6
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.js +201 -53
  73. package/dist/constants.js.map +1 -1
  74. package/dist/controls-options-manager/constants.js +14 -0
  75. package/dist/controls-options-manager/constants.js.map +1 -0
  76. package/dist/controls-options-manager/enums.js +27 -0
  77. package/dist/controls-options-manager/enums.js.map +1 -0
  78. package/dist/controls-options-manager/index.js +297 -0
  79. package/dist/controls-options-manager/index.js.map +1 -0
  80. package/dist/controls-options-manager/types.js +7 -0
  81. package/dist/controls-options-manager/types.js.map +1 -0
  82. package/dist/controls-options-manager/util.js +294 -0
  83. package/dist/controls-options-manager/util.js.map +1 -0
  84. package/dist/index.js +72 -17
  85. package/dist/index.js.map +1 -1
  86. package/dist/locus-info/controlsUtils.js +100 -29
  87. package/dist/locus-info/controlsUtils.js.map +1 -1
  88. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  89. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  90. package/dist/locus-info/fullState.js +0 -15
  91. package/dist/locus-info/fullState.js.map +1 -1
  92. package/dist/locus-info/hostUtils.js +4 -12
  93. package/dist/locus-info/hostUtils.js.map +1 -1
  94. package/dist/locus-info/index.js +392 -212
  95. package/dist/locus-info/index.js.map +1 -1
  96. package/dist/locus-info/infoUtils.js +0 -38
  97. package/dist/locus-info/infoUtils.js.map +1 -1
  98. package/dist/locus-info/mediaSharesUtils.js +54 -38
  99. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  100. package/dist/locus-info/parser.js +88 -123
  101. package/dist/locus-info/parser.js.map +1 -1
  102. package/dist/locus-info/selfUtils.js +99 -91
  103. package/dist/locus-info/selfUtils.js.map +1 -1
  104. package/dist/media/index.js +55 -165
  105. package/dist/media/index.js.map +1 -1
  106. package/dist/media/properties.js +71 -117
  107. package/dist/media/properties.js.map +1 -1
  108. package/dist/media/util.js +2 -9
  109. package/dist/media/util.js.map +1 -1
  110. package/dist/mediaQualityMetrics/config.js +505 -495
  111. package/dist/mediaQualityMetrics/config.js.map +1 -1
  112. package/dist/meeting/in-meeting-actions.js +77 -14
  113. package/dist/meeting/in-meeting-actions.js.map +1 -1
  114. package/dist/meeting/index.js +2597 -2464
  115. package/dist/meeting/index.js.map +1 -1
  116. package/dist/meeting/locusMediaRequest.js +291 -0
  117. package/dist/meeting/locusMediaRequest.js.map +1 -0
  118. package/dist/meeting/muteState.js +292 -138
  119. package/dist/meeting/muteState.js.map +1 -1
  120. package/dist/meeting/request.js +315 -336
  121. package/dist/meeting/request.js.map +1 -1
  122. package/dist/meeting/request.type.js +7 -0
  123. package/dist/meeting/request.type.js.map +1 -0
  124. package/dist/meeting/state.js +21 -31
  125. package/dist/meeting/state.js.map +1 -1
  126. package/dist/meeting/util.js +463 -583
  127. package/dist/meeting/util.js.map +1 -1
  128. package/dist/meeting-info/collection.js +3 -25
  129. package/dist/meeting-info/collection.js.map +1 -1
  130. package/dist/meeting-info/index.js +10 -33
  131. package/dist/meeting-info/index.js.map +1 -1
  132. package/dist/meeting-info/meeting-info-v2.js +305 -286
  133. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  134. package/dist/meeting-info/request.js +1 -16
  135. package/dist/meeting-info/request.js.map +1 -1
  136. package/dist/meeting-info/util.js +98 -183
  137. package/dist/meeting-info/util.js.map +1 -1
  138. package/dist/meeting-info/utilv2.js +156 -232
  139. package/dist/meeting-info/utilv2.js.map +1 -1
  140. package/dist/meetings/collection.js +24 -20
  141. package/dist/meetings/collection.js.map +1 -1
  142. package/dist/meetings/index.js +692 -593
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +23 -42
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +186 -155
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.js +89 -88
  149. package/dist/member/index.js.map +1 -1
  150. package/dist/member/types.js +15 -0
  151. package/dist/member/types.js.map +1 -0
  152. package/dist/member/util.js +101 -69
  153. package/dist/member/util.js.map +1 -1
  154. package/dist/members/collection.js +12 -12
  155. package/dist/members/collection.js.map +1 -1
  156. package/dist/members/index.js +166 -205
  157. package/dist/members/index.js.map +1 -1
  158. package/dist/members/request.js +120 -85
  159. package/dist/members/request.js.map +1 -1
  160. package/dist/members/types.js +15 -0
  161. package/dist/members/types.js.map +1 -0
  162. package/dist/members/util.js +314 -260
  163. package/dist/members/util.js.map +1 -1
  164. package/dist/metrics/config.js +50 -16
  165. package/dist/metrics/config.js.map +1 -1
  166. package/dist/metrics/constants.js +4 -7
  167. package/dist/metrics/constants.js.map +1 -1
  168. package/dist/metrics/index.js +93 -162
  169. package/dist/metrics/index.js.map +1 -1
  170. package/dist/multistream/mediaRequestManager.js +167 -50
  171. package/dist/multistream/mediaRequestManager.js.map +1 -1
  172. package/dist/multistream/receiveSlot.js +58 -65
  173. package/dist/multistream/receiveSlot.js.map +1 -1
  174. package/dist/multistream/receiveSlotManager.js +74 -93
  175. package/dist/multistream/receiveSlotManager.js.map +1 -1
  176. package/dist/multistream/remoteMedia.js +55 -74
  177. package/dist/multistream/remoteMedia.js.map +1 -1
  178. package/dist/multistream/remoteMediaGroup.js +6 -40
  179. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  180. package/dist/multistream/remoteMediaManager.js +466 -442
  181. package/dist/multistream/remoteMediaManager.js.map +1 -1
  182. package/dist/networkQualityMonitor/index.js +32 -59
  183. package/dist/networkQualityMonitor/index.js.map +1 -1
  184. package/dist/personal-meeting-room/index.js +10 -45
  185. package/dist/personal-meeting-room/index.js.map +1 -1
  186. package/dist/personal-meeting-room/request.js +2 -33
  187. package/dist/personal-meeting-room/request.js.map +1 -1
  188. package/dist/personal-meeting-room/util.js +0 -13
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/index.js +190 -199
  191. package/dist/reachability/index.js.map +1 -1
  192. package/dist/reachability/request.js +14 -23
  193. package/dist/reachability/request.js.map +1 -1
  194. package/dist/reactions/constants.js +13 -0
  195. package/dist/reactions/constants.js.map +1 -0
  196. package/dist/reactions/reactions.js +2 -4
  197. package/dist/reactions/reactions.js.map +1 -1
  198. package/dist/reactions/reactions.type.js +19 -23
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +326 -465
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js +17 -0
  203. package/dist/recording-controller/enums.js.map +1 -0
  204. package/dist/recording-controller/index.js +343 -0
  205. package/dist/recording-controller/index.js.map +1 -0
  206. package/dist/recording-controller/util.js +63 -0
  207. package/dist/recording-controller/util.js.map +1 -0
  208. package/dist/roap/index.js +31 -75
  209. package/dist/roap/index.js.map +1 -1
  210. package/dist/roap/request.js +129 -136
  211. package/dist/roap/request.js.map +1 -1
  212. package/dist/roap/turnDiscovery.js +143 -103
  213. package/dist/roap/turnDiscovery.js.map +1 -1
  214. package/dist/statsAnalyzer/global.js +1 -95
  215. package/dist/statsAnalyzer/global.js.map +1 -1
  216. package/dist/statsAnalyzer/index.js +369 -461
  217. package/dist/statsAnalyzer/index.js.map +1 -1
  218. package/dist/statsAnalyzer/mqaUtil.js +144 -94
  219. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  220. package/dist/transcription/index.js +13 -45
  221. package/dist/transcription/index.js.map +1 -1
  222. package/dist/types/annotation/annotation.types.d.ts +35 -0
  223. package/dist/types/annotation/constants.d.ts +31 -0
  224. package/dist/types/annotation/index.d.ts +124 -0
  225. package/dist/types/breakouts/breakout.d.ts +8 -0
  226. package/dist/types/breakouts/collection.d.ts +5 -0
  227. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  228. package/dist/types/breakouts/events.d.ts +2 -0
  229. package/dist/types/breakouts/index.d.ts +5 -0
  230. package/dist/types/breakouts/request.d.ts +22 -0
  231. package/dist/types/breakouts/utils.d.ts +15 -0
  232. package/dist/types/common/browser-detection.d.ts +9 -0
  233. package/dist/types/common/collection.d.ts +48 -0
  234. package/dist/types/common/config.d.ts +2 -0
  235. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  236. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  237. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  238. package/dist/types/common/errors/media.d.ts +15 -0
  239. package/dist/types/common/errors/parameter.d.ts +15 -0
  240. package/dist/types/common/errors/password-error.d.ts +15 -0
  241. package/dist/types/common/errors/permission.d.ts +14 -0
  242. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  243. package/dist/types/common/errors/reconnection.d.ts +15 -0
  244. package/dist/types/common/errors/stats.d.ts +15 -0
  245. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  246. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  247. package/dist/types/common/events/events-scope.d.ts +17 -0
  248. package/dist/types/common/events/events.d.ts +12 -0
  249. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  250. package/dist/types/common/events/util.d.ts +2 -0
  251. package/dist/types/common/logs/logger-config.d.ts +2 -0
  252. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  253. package/dist/types/common/logs/request.d.ts +34 -0
  254. package/dist/types/common/queue.d.ts +32 -0
  255. package/dist/types/config.d.ts +78 -0
  256. package/dist/types/constants.d.ts +991 -0
  257. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  258. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  259. package/dist/types/controls-options-manager/index.d.ts +136 -0
  260. package/dist/types/controls-options-manager/types.d.ts +43 -0
  261. package/dist/types/controls-options-manager/util.d.ts +1 -0
  262. package/dist/types/index.d.ts +7 -0
  263. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  264. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  265. package/dist/types/locus-info/fullState.d.ts +2 -0
  266. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  267. package/dist/types/locus-info/index.d.ts +315 -0
  268. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  269. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  270. package/dist/types/locus-info/parser.d.ts +212 -0
  271. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  272. package/dist/types/media/index.d.ts +34 -0
  273. package/dist/types/media/properties.d.ts +108 -0
  274. package/dist/types/media/util.d.ts +2 -0
  275. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  276. package/dist/types/meeting/in-meeting-actions.d.ts +147 -0
  277. package/dist/types/meeting/index.d.ts +1762 -0
  278. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  279. package/dist/types/meeting/muteState.d.ts +186 -0
  280. package/dist/types/meeting/request.d.ts +269 -0
  281. package/dist/types/meeting/request.type.d.ts +11 -0
  282. package/dist/types/meeting/state.d.ts +9 -0
  283. package/dist/types/meeting/util.d.ts +76 -0
  284. package/dist/types/meeting-info/collection.d.ts +20 -0
  285. package/dist/types/meeting-info/index.d.ts +57 -0
  286. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  287. package/dist/types/meeting-info/request.d.ts +22 -0
  288. package/dist/types/meeting-info/util.d.ts +2 -0
  289. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  290. package/dist/types/meetings/collection.d.ts +31 -0
  291. package/dist/types/meetings/index.d.ts +345 -0
  292. package/dist/types/meetings/request.d.ts +27 -0
  293. package/dist/types/meetings/util.d.ts +18 -0
  294. package/dist/types/member/index.d.ts +157 -0
  295. package/dist/types/member/types.d.ts +21 -0
  296. package/dist/types/member/util.d.ts +2 -0
  297. package/dist/types/members/collection.d.ts +29 -0
  298. package/dist/types/members/index.d.ts +353 -0
  299. package/dist/types/members/request.d.ts +114 -0
  300. package/dist/types/members/types.d.ts +24 -0
  301. package/dist/types/members/util.d.ts +210 -0
  302. package/dist/types/metrics/config.d.ts +195 -0
  303. package/dist/types/metrics/constants.d.ts +55 -0
  304. package/dist/types/metrics/index.d.ts +169 -0
  305. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  306. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  307. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  308. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  309. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  310. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  311. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  312. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  313. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  314. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  315. package/dist/types/reachability/index.d.ts +152 -0
  316. package/dist/types/reachability/request.d.ts +37 -0
  317. package/dist/types/reactions/constants.d.ts +3 -0
  318. package/dist/types/reactions/reactions.d.ts +4 -0
  319. package/dist/types/reactions/reactions.type.d.ts +52 -0
  320. package/dist/types/reconnection-manager/index.d.ts +126 -0
  321. package/dist/types/recording-controller/enums.d.ts +7 -0
  322. package/dist/types/recording-controller/index.d.ts +193 -0
  323. package/dist/types/recording-controller/util.d.ts +13 -0
  324. package/dist/types/roap/index.d.ts +77 -0
  325. package/dist/types/roap/request.d.ts +36 -0
  326. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  327. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  328. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  329. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  330. package/dist/types/transcription/index.d.ts +64 -0
  331. package/internal-README.md +7 -6
  332. package/package.json +28 -21
  333. package/src/annotation/annotation.types.ts +42 -0
  334. package/src/annotation/constants.ts +36 -0
  335. package/src/annotation/index.ts +339 -0
  336. package/src/breakouts/README.md +220 -0
  337. package/src/breakouts/breakout.ts +163 -0
  338. package/src/breakouts/collection.ts +19 -0
  339. package/src/breakouts/edit-lock-error.ts +25 -0
  340. package/src/breakouts/events.ts +37 -0
  341. package/src/breakouts/index.ts +860 -0
  342. package/src/breakouts/request.ts +55 -0
  343. package/src/breakouts/utils.ts +57 -0
  344. package/src/common/browser-detection.ts +9 -6
  345. package/src/common/collection.ts +3 -1
  346. package/src/common/errors/captcha-error.ts +6 -6
  347. package/src/common/errors/intent-to-join.ts +6 -6
  348. package/src/common/errors/join-meeting.ts +12 -8
  349. package/src/common/errors/media.ts +6 -6
  350. package/src/common/errors/parameter.ts +9 -6
  351. package/src/common/errors/password-error.ts +6 -6
  352. package/src/common/errors/permission.ts +5 -5
  353. package/src/common/errors/reconnection.ts +6 -6
  354. package/src/common/errors/stats.ts +6 -6
  355. package/src/common/errors/webex-errors.ts +7 -5
  356. package/src/common/errors/webex-meetings-error.ts +1 -1
  357. package/src/common/events/events-scope.ts +5 -1
  358. package/src/common/events/events.ts +5 -1
  359. package/src/common/events/trigger-proxy.ts +8 -3
  360. package/src/common/events/util.ts +1 -2
  361. package/src/common/logs/logger-proxy.ts +21 -10
  362. package/src/common/logs/request.ts +11 -8
  363. package/src/config.ts +16 -12
  364. package/src/constants.ts +151 -7
  365. package/src/controls-options-manager/constants.ts +5 -0
  366. package/src/controls-options-manager/enums.ts +18 -0
  367. package/src/controls-options-manager/index.ts +278 -0
  368. package/src/controls-options-manager/types.ts +59 -0
  369. package/src/controls-options-manager/util.ts +281 -0
  370. package/src/index.ts +33 -0
  371. package/src/locus-info/controlsUtils.ts +142 -24
  372. package/src/locus-info/fullState.ts +15 -11
  373. package/src/locus-info/hostUtils.ts +4 -3
  374. package/src/locus-info/index.ts +335 -55
  375. package/src/locus-info/infoUtils.ts +12 -4
  376. package/src/locus-info/mediaSharesUtils.ts +52 -4
  377. package/src/locus-info/parser.ts +46 -68
  378. package/src/locus-info/selfUtils.ts +187 -56
  379. package/src/media/index.ts +139 -196
  380. package/src/media/properties.ts +43 -36
  381. package/src/media/util.ts +1 -1
  382. package/src/mediaQualityMetrics/config.ts +380 -378
  383. package/src/meeting/in-meeting-actions.ts +159 -3
  384. package/src/meeting/index.ts +2789 -1584
  385. package/src/meeting/locusMediaRequest.ts +309 -0
  386. package/src/meeting/muteState.ts +290 -72
  387. package/src/meeting/request.ts +247 -178
  388. package/src/meeting/request.type.ts +13 -0
  389. package/src/meeting/state.ts +45 -30
  390. package/src/meeting/util.ts +445 -395
  391. package/src/meeting-info/collection.ts +2 -1
  392. package/src/meeting-info/index.ts +32 -30
  393. package/src/meeting-info/meeting-info-v2.ts +235 -116
  394. package/src/meeting-info/request.ts +9 -3
  395. package/src/meeting-info/util.ts +54 -46
  396. package/src/meeting-info/utilv2.ts +71 -55
  397. package/src/meetings/collection.ts +21 -1
  398. package/src/meetings/index.ts +772 -437
  399. package/src/meetings/request.ts +29 -25
  400. package/src/meetings/util.ts +132 -33
  401. package/src/member/index.ts +95 -49
  402. package/src/member/types.ts +24 -0
  403. package/src/member/util.ts +106 -13
  404. package/src/members/collection.ts +8 -1
  405. package/src/members/index.ts +288 -130
  406. package/src/members/request.ts +144 -31
  407. package/src/members/types.ts +28 -0
  408. package/src/members/util.ts +316 -235
  409. package/src/metrics/config.ts +302 -90
  410. package/src/metrics/constants.ts +2 -6
  411. package/src/metrics/index.ts +124 -95
  412. package/src/multistream/mediaRequestManager.ts +203 -45
  413. package/src/multistream/receiveSlot.ts +69 -26
  414. package/src/multistream/receiveSlotManager.ts +62 -38
  415. package/src/multistream/remoteMedia.ts +30 -4
  416. package/src/multistream/remoteMediaGroup.ts +4 -3
  417. package/src/multistream/remoteMediaManager.ts +230 -66
  418. package/src/networkQualityMonitor/index.ts +24 -27
  419. package/src/personal-meeting-room/index.ts +12 -16
  420. package/src/personal-meeting-room/request.ts +10 -3
  421. package/src/personal-meeting-room/util.ts +3 -3
  422. package/src/reachability/index.ts +131 -79
  423. package/src/reachability/request.ts +43 -34
  424. package/src/reactions/constants.ts +4 -0
  425. package/src/reactions/reactions.ts +8 -8
  426. package/src/reactions/reactions.type.ts +31 -5
  427. package/src/reconnection-manager/index.ts +193 -111
  428. package/src/recording-controller/enums.ts +8 -0
  429. package/src/recording-controller/index.ts +315 -0
  430. package/src/recording-controller/util.ts +58 -0
  431. package/src/roap/index.ts +53 -53
  432. package/src/roap/request.ts +77 -64
  433. package/src/roap/turnDiscovery.ts +101 -48
  434. package/src/statsAnalyzer/global.ts +8 -104
  435. package/src/statsAnalyzer/index.ts +624 -376
  436. package/src/statsAnalyzer/mqaUtil.ts +203 -90
  437. package/src/transcription/index.ts +34 -32
  438. package/test/integration/spec/converged-space-meetings.js +177 -0
  439. package/test/integration/spec/journey.js +670 -466
  440. package/test/integration/spec/space-meeting.js +320 -204
  441. package/test/integration/spec/transcription.js +7 -8
  442. package/test/unit/spec/annotation/index.ts +433 -0
  443. package/test/unit/spec/breakouts/breakout.ts +203 -0
  444. package/test/unit/spec/breakouts/collection.ts +15 -0
  445. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  446. package/test/unit/spec/breakouts/events.ts +77 -0
  447. package/test/unit/spec/breakouts/index.ts +1609 -0
  448. package/test/unit/spec/breakouts/request.ts +104 -0
  449. package/test/unit/spec/breakouts/utils.js +72 -0
  450. package/test/unit/spec/common/browser-detection.js +9 -28
  451. package/test/unit/spec/controls-options-manager/index.js +287 -0
  452. package/test/unit/spec/controls-options-manager/util.js +504 -0
  453. package/test/unit/spec/fixture/locus.js +93 -90
  454. package/test/unit/spec/locus-info/controlsUtils.js +305 -32
  455. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  456. package/test/unit/spec/locus-info/index.js +598 -5
  457. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  458. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  459. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  460. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  461. package/test/unit/spec/locus-info/parser.js +3 -9
  462. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  463. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  464. package/test/unit/spec/media/index.ts +104 -8
  465. package/test/unit/spec/media/properties.ts +9 -9
  466. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -3
  467. package/test/unit/spec/meeting/index.js +3094 -921
  468. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  469. package/test/unit/spec/meeting/muteState.js +421 -94
  470. package/test/unit/spec/meeting/request.js +421 -79
  471. package/test/unit/spec/meeting/utils.js +326 -189
  472. package/test/unit/spec/meeting-info/meetinginfov2.js +481 -76
  473. package/test/unit/spec/meeting-info/request.js +7 -9
  474. package/test/unit/spec/meeting-info/util.js +11 -12
  475. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  476. package/test/unit/spec/meetings/collection.js +15 -1
  477. package/test/unit/spec/meetings/index.js +1126 -328
  478. package/test/unit/spec/meetings/utils.js +220 -14
  479. package/test/unit/spec/member/index.js +24 -1
  480. package/test/unit/spec/member/util.js +383 -32
  481. package/test/unit/spec/members/index.js +424 -55
  482. package/test/unit/spec/members/request.js +228 -40
  483. package/test/unit/spec/members/utils.js +191 -4
  484. package/test/unit/spec/metrics/index.js +113 -20
  485. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  486. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  487. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  488. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  489. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  490. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  491. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  492. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  493. package/test/unit/spec/reachability/index.ts +176 -27
  494. package/test/unit/spec/reachability/request.js +66 -0
  495. package/test/unit/spec/reconnection-manager/index.js +62 -31
  496. package/test/unit/spec/recording-controller/index.js +231 -0
  497. package/test/unit/spec/recording-controller/util.js +102 -0
  498. package/test/unit/spec/roap/index.ts +19 -49
  499. package/test/unit/spec/roap/request.ts +187 -0
  500. package/test/unit/spec/roap/turnDiscovery.ts +92 -50
  501. package/test/unit/spec/stats-analyzer/index.js +116 -60
  502. package/test/utils/cmr.js +44 -42
  503. package/test/utils/constants.js +9 -0
  504. package/test/utils/integrationTestUtils.js +64 -0
  505. package/test/utils/testUtils.js +63 -99
  506. package/test/utils/webex-config.js +22 -18
  507. package/test/utils/webex-test-users.js +57 -50
  508. package/tsconfig.json +6 -0
  509. package/dist/media/internal-media-core-wrapper.js +0 -22
  510. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  511. package/dist/meeting/effectsState.js +0 -334
  512. package/dist/meeting/effectsState.js.map +0 -1
  513. package/dist/multistream/multistreamMedia.js +0 -116
  514. package/dist/multistream/multistreamMedia.js.map +0 -1
  515. package/src/index.js +0 -15
  516. package/src/media/internal-media-core-wrapper.ts +0 -9
  517. package/src/meeting/effectsState.ts +0 -211
  518. package/src/multistream/multistreamMedia.ts +0 -92
  519. package/test/unit/spec/meeting/effectsState.js +0 -291
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
+ };
@@ -0,0 +1,64 @@
1
+ import {assert} from '@webex/test-helper-chai';
2
+ import {Defer} from '@webex/common';
3
+ import {LocalCameraTrack, LocalMicrophoneTrack} from '@webex/plugin-meetings';
4
+
5
+ const addMedia = async (user, options = {}) => {
6
+ const [localStream, localShare] = await user.meeting
7
+ .getMediaStreams({
8
+ sendAudio: true,
9
+ sendVideo: true,
10
+ sendShare: false,
11
+ });
12
+
13
+ if (options.multistream) {
14
+ await user.meeting.addMedia({});
15
+ await user.meeting.publishTracks({microphone: new LocalMicrophoneTrack(new MediaStream([localStream.getAudioTracks()?.[0]])), camera: new LocalCameraTrack(new MediaStream([localStream.getVideoTracks()?.[0]]))});
16
+
17
+ } else {
18
+ const mediaReadyPromises = Array.isArray(options.expectedMediaReadyTypes)
19
+ ? options.expectedMediaReadyTypes.reduce((output, expectedMediaReadyType) => {
20
+ if (typeof expectedMediaReadyType !== 'string') {
21
+ return output;
22
+ }
23
+
24
+ output[expectedMediaReadyType] = new Defer();
25
+
26
+ return output;
27
+ }, {})
28
+ : {local: new Defer(), remoteAudio: new Defer(), remoteVideo: new Defer()};
29
+
30
+ const mediaReady = (media) => {
31
+ if (!media) {
32
+ return;
33
+ }
34
+ if (mediaReadyPromises[media.type]) {
35
+ mediaReadyPromises[media.type].resolve();
36
+ }
37
+ };
38
+
39
+ user.meeting.on('media:ready', mediaReady);
40
+
41
+ await user.meeting.addMedia({
42
+ mediaSettings: {
43
+ sendAudio: true,
44
+ sendVideo: true,
45
+ sendShare: false,
46
+ receiveShare: true,
47
+ receiveAudio: true,
48
+ receiveVideo: true,
49
+ },
50
+ localShare,
51
+ localStream,
52
+ });
53
+ await Promise.all(Object.values(mediaReadyPromises).map((defer) => defer.promise));
54
+ };
55
+
56
+
57
+ assert.exists(user.meeting.mediaProperties.audioTrack, 'audioTrack not present');
58
+ assert.exists(user.meeting.mediaProperties.videoTrack, 'videoTrack not present');
59
+
60
+ };
61
+
62
+ export default {
63
+ addMedia
64
+ };
@@ -1,5 +1,3 @@
1
- import {assert} from '@webex/test-helper-chai';
2
- import {Defer} from '@webex/common';
3
1
 
4
2
  const max = 30000;
5
3
  const waitForSpy = (spy, event) => {
@@ -19,7 +17,7 @@ const waitForSpy = (spy, event) => {
19
17
  resolve(spy.args[0][0]);
20
18
  }
21
19
  }, 1000);
22
- })
20
+ }),
23
21
  ]);
24
22
  };
25
23
 
@@ -40,7 +38,7 @@ const waitForStateChange = (meeting, state) => {
40
38
  resolve(meeting.locusInfo.parsedLocus.states);
41
39
  }
42
40
  }, 1000);
43
- })
41
+ }),
44
42
  ]);
45
43
  };
46
44
 
@@ -59,44 +57,46 @@ const waitForCallEnded = (user, email) => {
59
57
  clearTimeout(timer);
60
58
  clearInterval(interval);
61
59
  resolve();
62
- }
63
- else {
60
+ } else {
64
61
  console.log('MEETING STILL EXISTS!', user.webex.meetings.getAllMeetings());
65
62
  }
66
63
  }, 3000);
67
- })
64
+ }),
68
65
  ]);
69
66
  };
70
67
 
71
- const syncAndEndMeeting = (user) => user.webex.meetings.syncMeetings()
72
- .then(() => {
73
- const promise = [];
74
- const meetings = user.webex.meetings.getAllMeetings();
68
+ const syncAndEndMeeting = (user) =>
69
+ user.webex.meetings
70
+ .syncMeetings()
71
+ .then(() => {
72
+ const promise = [];
73
+ const meetings = user.webex.meetings.getAllMeetings();
75
74
 
76
- if (Object.keys(meetings).length === 0) {
77
- return Promise.resolve();
78
- }
79
- Object.keys(meetings)
80
- .forEach((key) => {
75
+ if (Object.keys(meetings).length === 0) {
76
+ return Promise.resolve();
77
+ }
78
+ Object.keys(meetings).forEach((key) => {
81
79
  promise.push(meetings[key].leave());
82
80
  });
83
81
 
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
- });
82
+ return Promise.all(promise);
83
+ })
84
+ .then(
85
+ () =>
86
+ new Promise((resolve) => {
87
+ const interval = setInterval(() => {
88
+ if (Object.keys(user.webex.meetings.getAllMeetings()).length === 0) {
89
+ clearInterval(interval);
90
+ resolve();
91
+ } else {
92
+ console.log('End Meetings before test failed');
93
+ }
94
+ }, 3000);
95
+ })
96
+ )
97
+ .catch((e) => {
98
+ console.log('ERROR on syncMeeting', e);
99
+ });
100
100
 
101
101
  //
102
102
  const waitForEvents = (scopeEvents, timeout = max) => {
@@ -125,11 +125,12 @@ const waitForEvents = (scopeEvents, timeout = max) => {
125
125
  obj.user.memberId = value.meeting.locusInfo.parsedLocus.selfId;
126
126
  }
127
127
  if (obj.event === 'meeting:removed') {
128
- console.log(`MEETING:REMOVED ${obj.user.name} ID ${obj.user.meeting.id} correlationID ${obj.user.meeting.correlationId}`);
128
+ console.log(
129
+ `MEETING:REMOVED ${obj.user.name} ID ${obj.user.meeting.id} correlationID ${obj.user.meeting.correlationId}`
130
+ );
129
131
  if (obj.user.meeting.id === value.meetingId) {
130
132
  obj.user.meeting = null;
131
- }
132
- else {
133
+ } else {
133
134
  console.log('MEETING EXISTING ', obj.user.webex.meetings.getAllMeetings());
134
135
  reject(new Error(`Different Meeting Object ${value}`));
135
136
  }
@@ -142,8 +143,7 @@ const waitForEvents = (scopeEvents, timeout = max) => {
142
143
 
143
144
  resolve(result);
144
145
  }
145
- }
146
- else if (result.length === scopeEvents.length) {
146
+ } else if (result.length === scopeEvents.length) {
147
147
  resolve(result);
148
148
  obj.scope.off(obj.event, handler);
149
149
  clearTimeout(timer);
@@ -152,12 +152,11 @@ const waitForEvents = (scopeEvents, timeout = max) => {
152
152
 
153
153
  obj.scope.on(obj.event, handler);
154
154
  });
155
- }
156
- catch (e) {
155
+ } catch (e) {
157
156
  console.error('waitForEvents', e);
158
157
  reject(e);
159
158
  }
160
- })
159
+ }),
161
160
  ]);
162
161
  };
163
162
 
@@ -172,72 +171,36 @@ const delayedPromise = (promise) => {
172
171
  }),
173
172
  new Promise((resolve, reject) => {
174
173
  setTimeout(() => {
175
- promise.then((res) => {
176
- resolve(res);
177
- clearTimeout(timer);
178
- })
174
+ promise
175
+ .then((res) => {
176
+ resolve(res);
177
+ clearTimeout(timer);
178
+ })
179
179
  .catch((e) => {
180
180
  console.error('delayedPromise', e);
181
181
  reject(e);
182
182
  });
183
183
  }, 2000);
184
- })
184
+ }),
185
185
  ]);
186
186
  };
187
187
 
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
- };
201
- const mediaReady = (media) => {
202
- if (!media) {
203
- return;
204
- }
205
- if (mediaReadyPromises[media.type]) {
206
- mediaReadyPromises[media.type].resolve();
207
- }
208
- };
188
+ const delayedTest = (callback, timeout) =>
189
+ new Promise((resolve) => {
190
+ setTimeout(() => {
191
+ callback();
192
+ resolve();
193
+ }, timeout);
194
+ });
209
195
 
210
- user.meeting.on('media:ready', mediaReady);
211
196
 
212
- return user.meeting.getMediaStreams({
213
- sendAudio: true,
214
- sendVideo: true,
215
- sendShare: false
216
- })
217
- .then(([localStream, localShare]) => user.meeting.addMedia({
218
- mediaSettings: {
219
- sendAudio: true,
220
- sendVideo: true,
221
- sendShare: false,
222
- receiveShare: true,
223
- receiveAudio: true,
224
- receiveVideo: true
225
- },
226
- 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');
233
- });
234
- };
235
197
 
236
- const waitUntil = (waitTime) => new Promise((resolve) => {
237
- setTimeout(() => {
238
- resolve();
239
- }, waitTime);
240
- });
198
+ const waitUntil = (waitTime) =>
199
+ new Promise((resolve) => {
200
+ setTimeout(() => {
201
+ resolve();
202
+ }, waitTime);
203
+ });
241
204
 
242
205
  const flushPromises = () => new Promise(setImmediate);
243
206
 
@@ -259,7 +222,10 @@ const getCircularReplacer = () => {
259
222
 
260
223
  // this function is meant to be used as the "match" callback with waitForEvents()
261
224
  // 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);
225
+ const checkParticipantUpdatedStatus = (user, expectedStatus) => (event) =>
226
+ !!event.delta.updated.find(
227
+ (member) => user.meeting.members.selfId === member.id && member.status === expectedStatus
228
+ );
263
229
 
264
230
  export default {
265
231
  waitForSpy,
@@ -269,10 +235,8 @@ export default {
269
235
  waitForEvents,
270
236
  checkParticipantUpdatedStatus,
271
237
  delayedPromise,
272
- addMedia,
273
238
  waitUntil,
274
239
  delayedTest,
275
240
  flushPromises,
276
- getCircularReplacer
241
+ getCircularReplacer,
277
242
  };
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
+ }