@webex/plugin-meetings 3.0.0-beta.17 → 3.0.0-beta.170

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 (427) hide show
  1. package/README.md +45 -1
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +359 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +216 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +23 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +52 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +45 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1048 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +78 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +67 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +3 -2
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/logs/logger-proxy.js +1 -1
  25. package/dist/common/logs/logger-proxy.js.map +1 -1
  26. package/dist/config.js +6 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +194 -28
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +300 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +95 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +214 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +92 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +350 -41
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +2 -1
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +97 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +39 -134
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +19 -97
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/mediaQualityMetrics/config.js +505 -493
  63. package/dist/mediaQualityMetrics/config.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +76 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2640 -2436
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +291 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +229 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +191 -167
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/request.type.js.map +1 -1
  75. package/dist/meeting/util.js +477 -466
  76. package/dist/meeting/util.js.map +1 -1
  77. package/dist/meeting-info/index.js +48 -7
  78. package/dist/meeting-info/index.js.map +1 -1
  79. package/dist/meeting-info/meeting-info-v2.js +172 -50
  80. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  81. package/dist/meeting-info/utilv2.js +20 -5
  82. package/dist/meeting-info/utilv2.js.map +1 -1
  83. package/dist/meetings/collection.js +22 -0
  84. package/dist/meetings/collection.js.map +1 -1
  85. package/dist/meetings/index.js +377 -82
  86. package/dist/meetings/index.js.map +1 -1
  87. package/dist/meetings/meetings.types.js +7 -0
  88. package/dist/meetings/meetings.types.js.map +1 -0
  89. package/dist/meetings/request.js +16 -12
  90. package/dist/meetings/request.js.map +1 -1
  91. package/dist/meetings/util.js +88 -1
  92. package/dist/meetings/util.js.map +1 -1
  93. package/dist/member/index.js +43 -0
  94. package/dist/member/index.js.map +1 -1
  95. package/dist/member/types.js +15 -0
  96. package/dist/member/types.js.map +1 -0
  97. package/dist/member/util.js +97 -3
  98. package/dist/member/util.js.map +1 -1
  99. package/dist/members/collection.js +10 -0
  100. package/dist/members/collection.js.map +1 -1
  101. package/dist/members/index.js +94 -11
  102. package/dist/members/index.js.map +1 -1
  103. package/dist/members/request.js +109 -39
  104. package/dist/members/request.js.map +1 -1
  105. package/dist/members/types.js +15 -0
  106. package/dist/members/types.js.map +1 -0
  107. package/dist/members/util.js +316 -233
  108. package/dist/members/util.js.map +1 -1
  109. package/dist/metrics/constants.js +3 -5
  110. package/dist/metrics/constants.js.map +1 -1
  111. package/dist/metrics/index.js +1 -468
  112. package/dist/metrics/index.js.map +1 -1
  113. package/dist/multistream/mediaRequestManager.js +265 -36
  114. package/dist/multistream/mediaRequestManager.js.map +1 -1
  115. package/dist/multistream/receiveSlot.js +52 -19
  116. package/dist/multistream/receiveSlot.js.map +1 -1
  117. package/dist/multistream/receiveSlotManager.js +53 -33
  118. package/dist/multistream/receiveSlotManager.js.map +1 -1
  119. package/dist/multistream/remoteMedia.js +44 -18
  120. package/dist/multistream/remoteMedia.js.map +1 -1
  121. package/dist/multistream/remoteMediaGroup.js +60 -3
  122. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  123. package/dist/multistream/remoteMediaManager.js +322 -103
  124. package/dist/multistream/remoteMediaManager.js.map +1 -1
  125. package/dist/networkQualityMonitor/index.js +4 -2
  126. package/dist/networkQualityMonitor/index.js.map +1 -1
  127. package/dist/reachability/index.js +117 -60
  128. package/dist/reachability/index.js.map +1 -1
  129. package/dist/reachability/request.js +12 -5
  130. package/dist/reachability/request.js.map +1 -1
  131. package/dist/reactions/constants.js +13 -0
  132. package/dist/reactions/constants.js.map +1 -0
  133. package/dist/reactions/reactions.js +2 -2
  134. package/dist/reactions/reactions.js.map +1 -1
  135. package/dist/reactions/reactions.type.js +18 -18
  136. package/dist/reactions/reactions.type.js.map +1 -1
  137. package/dist/reconnection-manager/index.js +217 -162
  138. package/dist/reconnection-manager/index.js.map +1 -1
  139. package/dist/recording-controller/enums.js +17 -0
  140. package/dist/recording-controller/enums.js.map +1 -0
  141. package/dist/recording-controller/index.js +363 -0
  142. package/dist/recording-controller/index.js.map +1 -0
  143. package/dist/recording-controller/util.js +64 -0
  144. package/dist/recording-controller/util.js.map +1 -0
  145. package/dist/roap/index.js +21 -29
  146. package/dist/roap/index.js.map +1 -1
  147. package/dist/roap/request.js +135 -94
  148. package/dist/roap/request.js.map +1 -1
  149. package/dist/roap/turnDiscovery.js +135 -53
  150. package/dist/roap/turnDiscovery.js.map +1 -1
  151. package/dist/statsAnalyzer/global.js +1 -93
  152. package/dist/statsAnalyzer/global.js.map +1 -1
  153. package/dist/statsAnalyzer/index.js +329 -314
  154. package/dist/statsAnalyzer/index.js.map +1 -1
  155. package/dist/statsAnalyzer/mqaUtil.js +103 -54
  156. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  157. package/dist/types/annotation/annotation.types.d.ts +43 -0
  158. package/dist/types/annotation/constants.d.ts +31 -0
  159. package/dist/types/annotation/index.d.ts +124 -0
  160. package/dist/types/breakouts/breakout.d.ts +8 -0
  161. package/dist/types/breakouts/collection.d.ts +5 -0
  162. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  163. package/dist/types/breakouts/events.d.ts +8 -0
  164. package/dist/types/breakouts/index.d.ts +5 -0
  165. package/dist/types/breakouts/request.d.ts +22 -0
  166. package/dist/types/breakouts/utils.d.ts +15 -0
  167. package/dist/types/common/browser-detection.d.ts +9 -0
  168. package/dist/types/common/collection.d.ts +48 -0
  169. package/dist/types/common/config.d.ts +2 -0
  170. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  171. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  172. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  173. package/dist/types/common/errors/media.d.ts +15 -0
  174. package/dist/types/common/errors/parameter.d.ts +15 -0
  175. package/dist/types/common/errors/password-error.d.ts +15 -0
  176. package/dist/types/common/errors/permission.d.ts +14 -0
  177. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  178. package/dist/types/common/errors/reconnection.d.ts +15 -0
  179. package/dist/types/common/errors/stats.d.ts +15 -0
  180. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  181. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  182. package/dist/types/common/events/events-scope.d.ts +17 -0
  183. package/dist/types/common/events/events.d.ts +12 -0
  184. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  185. package/dist/types/common/events/util.d.ts +2 -0
  186. package/dist/types/common/logs/logger-config.d.ts +2 -0
  187. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  188. package/dist/types/common/logs/request.d.ts +34 -0
  189. package/dist/types/common/queue.d.ts +32 -0
  190. package/dist/types/config.d.ts +72 -0
  191. package/dist/types/constants.d.ts +1007 -0
  192. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  193. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  194. package/dist/types/controls-options-manager/index.d.ts +136 -0
  195. package/dist/types/controls-options-manager/types.d.ts +43 -0
  196. package/dist/types/controls-options-manager/util.d.ts +1 -0
  197. package/dist/types/index.d.ts +7 -0
  198. package/dist/types/interpretation/collection.d.ts +5 -0
  199. package/dist/types/interpretation/index.d.ts +5 -0
  200. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  201. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  202. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  203. package/dist/types/locus-info/fullState.d.ts +2 -0
  204. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  205. package/dist/types/locus-info/index.d.ts +315 -0
  206. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  207. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  208. package/dist/types/locus-info/parser.d.ts +212 -0
  209. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  210. package/dist/types/media/index.d.ts +34 -0
  211. package/dist/types/media/properties.d.ts +86 -0
  212. package/dist/types/media/util.d.ts +2 -0
  213. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  214. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  215. package/dist/types/meeting/index.d.ts +1430 -0
  216. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  217. package/dist/types/meeting/muteState.d.ts +184 -0
  218. package/dist/types/meeting/request.d.ts +270 -0
  219. package/dist/types/meeting/request.type.d.ts +11 -0
  220. package/dist/types/meeting/state.d.ts +9 -0
  221. package/dist/types/meeting/util.d.ts +77 -0
  222. package/dist/types/meeting-info/collection.d.ts +20 -0
  223. package/dist/types/meeting-info/index.d.ts +62 -0
  224. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  225. package/dist/types/meeting-info/request.d.ts +22 -0
  226. package/dist/types/meeting-info/util.d.ts +2 -0
  227. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  228. package/dist/types/meetings/collection.d.ts +31 -0
  229. package/dist/types/meetings/index.d.ts +365 -0
  230. package/dist/types/meetings/meetings.types.d.ts +4 -0
  231. package/dist/types/meetings/request.d.ts +27 -0
  232. package/dist/types/meetings/util.d.ts +18 -0
  233. package/dist/types/member/index.d.ts +158 -0
  234. package/dist/types/member/types.d.ts +21 -0
  235. package/dist/types/member/util.d.ts +2 -0
  236. package/dist/types/members/collection.d.ts +29 -0
  237. package/dist/types/members/index.d.ts +353 -0
  238. package/dist/types/members/request.d.ts +114 -0
  239. package/dist/types/members/types.d.ts +24 -0
  240. package/dist/types/members/util.d.ts +210 -0
  241. package/dist/types/metrics/constants.d.ts +55 -0
  242. package/dist/types/metrics/index.d.ts +45 -0
  243. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  244. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  245. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  246. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  247. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  248. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  249. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  250. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  251. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  252. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  253. package/dist/types/reachability/index.d.ts +152 -0
  254. package/dist/types/reachability/request.d.ts +37 -0
  255. package/dist/types/reactions/constants.d.ts +3 -0
  256. package/dist/types/reactions/reactions.d.ts +4 -0
  257. package/dist/types/reactions/reactions.type.d.ts +52 -0
  258. package/dist/types/reconnection-manager/index.d.ts +126 -0
  259. package/dist/types/recording-controller/enums.d.ts +7 -0
  260. package/dist/types/recording-controller/index.d.ts +208 -0
  261. package/dist/types/recording-controller/util.d.ts +14 -0
  262. package/dist/types/roap/index.d.ts +77 -0
  263. package/dist/types/roap/request.d.ts +36 -0
  264. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  265. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  266. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  267. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  268. package/dist/types/transcription/index.d.ts +64 -0
  269. package/package.json +29 -21
  270. package/src/annotation/annotation.types.ts +52 -0
  271. package/src/annotation/constants.ts +36 -0
  272. package/src/annotation/index.ts +343 -0
  273. package/src/breakouts/README.md +220 -0
  274. package/src/breakouts/breakout.ts +188 -0
  275. package/src/breakouts/collection.ts +19 -0
  276. package/src/breakouts/edit-lock-error.ts +25 -0
  277. package/src/breakouts/events.ts +56 -0
  278. package/src/breakouts/index.ts +925 -0
  279. package/src/breakouts/request.ts +55 -0
  280. package/src/breakouts/utils.ts +57 -0
  281. package/src/common/errors/webex-errors.ts +6 -2
  282. package/src/common/logs/logger-proxy.ts +1 -1
  283. package/src/config.ts +5 -7
  284. package/src/constants.ts +183 -22
  285. package/src/controls-options-manager/constants.ts +5 -0
  286. package/src/controls-options-manager/enums.ts +18 -0
  287. package/src/controls-options-manager/index.ts +278 -0
  288. package/src/controls-options-manager/types.ts +59 -0
  289. package/src/controls-options-manager/util.ts +286 -0
  290. package/src/index.ts +37 -0
  291. package/src/interpretation/README.md +51 -0
  292. package/src/interpretation/collection.ts +19 -0
  293. package/src/interpretation/index.ts +182 -0
  294. package/src/interpretation/siLanguage.ts +18 -0
  295. package/src/locus-info/controlsUtils.ts +110 -0
  296. package/src/locus-info/index.ts +374 -38
  297. package/src/locus-info/mediaSharesUtils.ts +48 -0
  298. package/src/locus-info/parser.ts +2 -1
  299. package/src/locus-info/selfUtils.ts +86 -2
  300. package/src/media/index.ts +70 -142
  301. package/src/media/properties.ts +41 -104
  302. package/src/mediaQualityMetrics/config.ts +379 -377
  303. package/src/meeting/in-meeting-actions.ts +151 -3
  304. package/src/meeting/index.ts +2029 -2033
  305. package/src/meeting/locusMediaRequest.ts +309 -0
  306. package/src/meeting/muteState.ts +228 -132
  307. package/src/meeting/request.ts +100 -91
  308. package/src/meeting/request.type.ts +2 -0
  309. package/src/meeting/util.ts +450 -439
  310. package/src/meeting-info/index.ts +54 -8
  311. package/src/meeting-info/meeting-info-v2.ts +150 -14
  312. package/src/meeting-info/utilv2.ts +13 -3
  313. package/src/meetings/collection.ts +20 -0
  314. package/src/meetings/index.ts +396 -89
  315. package/src/meetings/meetings.types.ts +12 -0
  316. package/src/meetings/request.ts +3 -1
  317. package/src/meetings/util.ts +103 -4
  318. package/src/member/index.ts +42 -0
  319. package/src/member/types.ts +24 -0
  320. package/src/member/util.ts +95 -1
  321. package/src/members/collection.ts +8 -0
  322. package/src/members/index.ts +108 -6
  323. package/src/members/request.ts +98 -17
  324. package/src/members/types.ts +28 -0
  325. package/src/members/util.ts +319 -240
  326. package/src/metrics/constants.ts +2 -4
  327. package/src/metrics/index.ts +1 -490
  328. package/src/multistream/mediaRequestManager.ts +337 -63
  329. package/src/multistream/receiveSlot.ts +68 -26
  330. package/src/multistream/receiveSlotManager.ts +61 -38
  331. package/src/multistream/remoteMedia.ts +29 -3
  332. package/src/multistream/remoteMediaGroup.ts +61 -2
  333. package/src/multistream/remoteMediaManager.ts +260 -66
  334. package/src/networkQualityMonitor/index.ts +6 -6
  335. package/src/reachability/index.ts +75 -25
  336. package/src/reachability/request.ts +10 -5
  337. package/src/reactions/constants.ts +4 -0
  338. package/src/reactions/reactions.ts +4 -4
  339. package/src/reactions/reactions.type.ts +28 -3
  340. package/src/reconnection-manager/index.ts +80 -49
  341. package/src/recording-controller/enums.ts +8 -0
  342. package/src/recording-controller/index.ts +333 -0
  343. package/src/recording-controller/util.ts +75 -0
  344. package/src/roap/index.ts +21 -30
  345. package/src/roap/request.ts +72 -61
  346. package/src/roap/turnDiscovery.ts +51 -27
  347. package/src/statsAnalyzer/global.ts +1 -94
  348. package/src/statsAnalyzer/index.ts +380 -390
  349. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  350. package/test/integration/spec/converged-space-meetings.js +233 -0
  351. package/test/integration/spec/journey.js +331 -254
  352. package/test/integration/spec/space-meeting.js +77 -4
  353. package/test/unit/spec/annotation/index.ts +436 -0
  354. package/test/unit/spec/breakouts/breakout.ts +237 -0
  355. package/test/unit/spec/breakouts/collection.ts +15 -0
  356. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  357. package/test/unit/spec/breakouts/events.ts +89 -0
  358. package/test/unit/spec/breakouts/index.ts +1790 -0
  359. package/test/unit/spec/breakouts/request.ts +104 -0
  360. package/test/unit/spec/breakouts/utils.js +72 -0
  361. package/test/unit/spec/controls-options-manager/index.js +287 -0
  362. package/test/unit/spec/controls-options-manager/util.js +518 -0
  363. package/test/unit/spec/fixture/locus.js +1 -0
  364. package/test/unit/spec/interpretation/collection.ts +15 -0
  365. package/test/unit/spec/interpretation/index.ts +329 -0
  366. package/test/unit/spec/interpretation/siLanguage.ts +26 -0
  367. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  368. package/test/unit/spec/locus-info/index.js +792 -4
  369. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  370. package/test/unit/spec/locus-info/selfConstant.js +48 -0
  371. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  372. package/test/unit/spec/media/index.ts +118 -22
  373. package/test/unit/spec/media/properties.ts +9 -9
  374. package/test/unit/spec/meeting/in-meeting-actions.ts +75 -3
  375. package/test/unit/spec/meeting/index.js +2742 -1441
  376. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  377. package/test/unit/spec/meeting/muteState.js +370 -208
  378. package/test/unit/spec/meeting/request.js +354 -42
  379. package/test/unit/spec/meeting/utils.js +384 -170
  380. package/test/unit/spec/meeting-info/index.js +181 -0
  381. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  382. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  383. package/test/unit/spec/meetings/collection.js +14 -0
  384. package/test/unit/spec/meetings/index.js +847 -121
  385. package/test/unit/spec/meetings/utils.js +206 -2
  386. package/test/unit/spec/member/index.js +31 -0
  387. package/test/unit/spec/member/util.js +408 -32
  388. package/test/unit/spec/members/index.js +320 -1
  389. package/test/unit/spec/members/request.js +206 -27
  390. package/test/unit/spec/members/utils.js +184 -0
  391. package/test/unit/spec/metrics/index.js +1 -50
  392. package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
  393. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  394. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  395. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  396. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  397. package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
  398. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  399. package/test/unit/spec/reachability/index.ts +176 -25
  400. package/test/unit/spec/reachability/request.js +66 -0
  401. package/test/unit/spec/reconnection-manager/index.js +95 -13
  402. package/test/unit/spec/recording-controller/index.js +307 -0
  403. package/test/unit/spec/recording-controller/util.js +229 -0
  404. package/test/unit/spec/roap/index.ts +28 -52
  405. package/test/unit/spec/roap/request.ts +225 -0
  406. package/test/unit/spec/roap/turnDiscovery.ts +73 -34
  407. package/test/unit/spec/stats-analyzer/index.js +94 -43
  408. package/test/utils/constants.js +9 -0
  409. package/test/utils/integrationTestUtils.js +46 -0
  410. package/test/utils/testUtils.js +0 -45
  411. package/test/utils/webex-config.js +4 -0
  412. package/test/utils/webex-test-users.js +7 -3
  413. package/tsconfig.json +6 -0
  414. package/dist/media/internal-media-core-wrapper.js +0 -18
  415. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  416. package/dist/meeting/effectsState.js +0 -262
  417. package/dist/meeting/effectsState.js.map +0 -1
  418. package/dist/metrics/config.js +0 -299
  419. package/dist/metrics/config.js.map +0 -1
  420. package/dist/multistream/multistreamMedia.js +0 -106
  421. package/dist/multistream/multistreamMedia.js.map +0 -1
  422. package/src/index.js +0 -15
  423. package/src/media/internal-media-core-wrapper.ts +0 -9
  424. package/src/meeting/effectsState.ts +0 -211
  425. package/src/metrics/config.ts +0 -495
  426. package/src/multistream/multistreamMedia.ts +0 -93
  427. package/test/unit/spec/meeting/effectsState.js +0 -281
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
- var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
5
5
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
7
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
@@ -11,7 +11,8 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
11
11
  _Object$defineProperty(exports, "__esModule", {
12
12
  value: true
13
13
  });
14
- exports.default = exports.MeetingInfoV2PasswordError = exports.MeetingInfoV2CaptchaError = exports.MeetingInfoV2AdhocMeetingError = void 0;
14
+ exports.default = exports.MeetingInfoV2PolicyError = exports.MeetingInfoV2PasswordError = exports.MeetingInfoV2CaptchaError = exports.MeetingInfoV2AdhocMeetingError = void 0;
15
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
15
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
16
17
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
17
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -22,11 +23,12 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
22
23
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
23
24
  var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/wrapNativeSuper"));
24
25
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
26
+ var _difference2 = _interopRequireDefault(require("lodash/difference"));
25
27
  var _constants = require("../constants");
26
28
  var _metrics = _interopRequireDefault(require("../metrics"));
27
29
  var _constants2 = _interopRequireDefault(require("../metrics/constants"));
28
30
  var _utilv = _interopRequireDefault(require("./utilv2"));
29
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
31
33
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
32
34
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -34,7 +36,7 @@ var PASSWORD_ERROR_DEFAULT_MESSAGE = 'Password required. Call fetchMeetingInfo()
34
36
  var CAPTCHA_ERROR_DEFAULT_MESSAGE = 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';
35
37
  var ADHOC_MEETING_DEFAULT_ERROR = 'Failed starting the adhoc meeting, Please contact support team ';
36
38
  var CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
37
-
39
+ var POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];
38
40
  /**
39
41
  * Error to indicate that wbxappapi requires a password
40
42
  */
@@ -56,6 +58,7 @@ var MeetingInfoV2PasswordError = /*#__PURE__*/function (_Error) {
56
58
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingInfo", void 0);
57
59
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sdkMessage", void 0);
58
60
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "wbxAppApiCode", void 0);
61
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "body", void 0);
59
62
  _this.name = 'MeetingInfoV2PasswordError';
60
63
  _this.sdkMessage = message;
61
64
  _this.stack = new Error().stack;
@@ -94,36 +97,67 @@ var MeetingInfoV2AdhocMeetingError = /*#__PURE__*/function (_Error2) {
94
97
  return (0, _createClass2.default)(MeetingInfoV2AdhocMeetingError);
95
98
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
96
99
  /**
97
- * Error to indicate that preferred webex site not present to start adhoc meeting
100
+ * Error preventing join because of a meeting policy
98
101
  */
99
102
  exports.MeetingInfoV2AdhocMeetingError = MeetingInfoV2AdhocMeetingError;
100
- var MeetingInfoV2CaptchaError = /*#__PURE__*/function (_Error3) {
101
- (0, _inherits2.default)(MeetingInfoV2CaptchaError, _Error3);
102
- var _super3 = _createSuper(MeetingInfoV2CaptchaError);
103
+ var MeetingInfoV2PolicyError = /*#__PURE__*/function (_Error3) {
104
+ (0, _inherits2.default)(MeetingInfoV2PolicyError, _Error3);
105
+ var _super3 = _createSuper(MeetingInfoV2PolicyError);
103
106
  /**
104
107
  *
105
108
  * @constructor
106
109
  * @param {Number} [wbxAppApiErrorCode]
107
- * @param {Object} [captchaInfo]
110
+ * @param {Object} [meetingInfo]
108
111
  * @param {String} [message]
109
112
  */
110
- function MeetingInfoV2CaptchaError(wbxAppApiErrorCode, captchaInfo) {
113
+ function MeetingInfoV2PolicyError(wbxAppApiErrorCode, meetingInfo, message) {
111
114
  var _this3;
112
- var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CAPTCHA_ERROR_DEFAULT_MESSAGE;
113
- (0, _classCallCheck2.default)(this, MeetingInfoV2CaptchaError);
115
+ (0, _classCallCheck2.default)(this, MeetingInfoV2PolicyError);
114
116
  _this3 = _super3.call(this, "".concat(message, ", code=").concat(wbxAppApiErrorCode));
115
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "captchaInfo", void 0);
116
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "isPasswordRequired", void 0);
117
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "meetingInfo", void 0);
117
118
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "sdkMessage", void 0);
118
119
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "wbxAppApiCode", void 0);
119
- _this3.name = 'MeetingInfoV2PasswordError';
120
+ _this3.name = 'MeetingInfoV2AdhocMeetingError';
120
121
  _this3.sdkMessage = message;
121
122
  _this3.stack = new Error().stack;
122
123
  _this3.wbxAppApiCode = wbxAppApiErrorCode;
123
- _this3.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);
124
- _this3.captchaInfo = captchaInfo;
124
+ _this3.meetingInfo = meetingInfo;
125
125
  return _this3;
126
126
  }
127
+ return (0, _createClass2.default)(MeetingInfoV2PolicyError);
128
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
129
+ /**
130
+ * Error to indicate that preferred webex site not present to start adhoc meeting
131
+ */
132
+ exports.MeetingInfoV2PolicyError = MeetingInfoV2PolicyError;
133
+ var MeetingInfoV2CaptchaError = /*#__PURE__*/function (_Error4) {
134
+ (0, _inherits2.default)(MeetingInfoV2CaptchaError, _Error4);
135
+ var _super4 = _createSuper(MeetingInfoV2CaptchaError);
136
+ /**
137
+ *
138
+ * @constructor
139
+ * @param {Number} [wbxAppApiErrorCode]
140
+ * @param {Object} [captchaInfo]
141
+ * @param {String} [message]
142
+ */
143
+ function MeetingInfoV2CaptchaError(wbxAppApiErrorCode, captchaInfo) {
144
+ var _this4;
145
+ var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CAPTCHA_ERROR_DEFAULT_MESSAGE;
146
+ (0, _classCallCheck2.default)(this, MeetingInfoV2CaptchaError);
147
+ _this4 = _super4.call(this, "".concat(message, ", code=").concat(wbxAppApiErrorCode));
148
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "captchaInfo", void 0);
149
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "isPasswordRequired", void 0);
150
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "sdkMessage", void 0);
151
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "wbxAppApiCode", void 0);
152
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "body", void 0);
153
+ _this4.name = 'MeetingInfoV2PasswordError';
154
+ _this4.sdkMessage = message;
155
+ _this4.stack = new Error().stack;
156
+ _this4.wbxAppApiCode = wbxAppApiErrorCode;
157
+ _this4.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);
158
+ _this4.captchaInfo = captchaInfo;
159
+ return _this4;
160
+ }
127
161
  return (0, _createClass2.default)(MeetingInfoV2CaptchaError);
128
162
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
129
163
  /**
@@ -138,6 +172,19 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
138
172
  function MeetingInfoV2(webex) {
139
173
  (0, _classCallCheck2.default)(this, MeetingInfoV2);
140
174
  (0, _defineProperty2.default)(this, "webex", void 0);
175
+ (0, _defineProperty2.default)(this, "handlePolicyError", function (err) {
176
+ var _err$body;
177
+ if (!err.body) {
178
+ return;
179
+ }
180
+ if (POLICY_ERROR_CODES.includes((_err$body = err.body) === null || _err$body === void 0 ? void 0 : _err$body.code)) {
181
+ var _err$body2, _err$body3, _err$body4, _err$body4$data, _err$body5;
182
+ _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_INFO_POLICY_ERROR, {
183
+ code: (_err$body2 = err.body) === null || _err$body2 === void 0 ? void 0 : _err$body2.code
184
+ });
185
+ throw new MeetingInfoV2PolicyError((_err$body3 = err.body) === null || _err$body3 === void 0 ? void 0 : _err$body3.code, (_err$body4 = err.body) === null || _err$body4 === void 0 ? void 0 : (_err$body4$data = _err$body4.data) === null || _err$body4$data === void 0 ? void 0 : _err$body4$data.meetingInfo, (_err$body5 = err.body) === null || _err$body5 === void 0 ? void 0 : _err$body5.message);
186
+ }
187
+ });
141
188
  this.webex = webex;
142
189
  }
143
190
 
@@ -160,18 +207,25 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
160
207
  });
161
208
  }
162
209
 
210
+ /**
211
+ * Raises a MeetingInfoV2PolicyError for policy error codes
212
+ * @param {any} err the error from the request
213
+ * @returns {void}
214
+ */
215
+ }, {
216
+ key: "createAdhocSpaceMeeting",
217
+ value:
163
218
  /**
164
219
  * Creates adhoc space meetings for a space by fetching the conversation infomation
165
220
  * @param {String} conversationUrl conversationUrl to start adhoc meeting on
221
+ * @param {String} installedOrgID org ID of user's machine
166
222
  * @returns {Promise} returns a meeting info object
167
223
  * @public
168
224
  * @memberof MeetingInfo
169
225
  */
170
- }, {
171
- key: "createAdhocSpaceMeeting",
172
- value: function () {
173
- var _createAdhocSpaceMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(conversationUrl) {
174
- var _this4 = this;
226
+ function () {
227
+ var _createAdhocSpaceMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(conversationUrl, installedOrgID) {
228
+ var _this5 = this;
175
229
  var getInvitees;
176
230
  return _regenerator.default.wrap(function _callee$(_context) {
177
231
  while (1) switch (_context.prev = _context.next) {
@@ -209,20 +263,26 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
209
263
  kroUrl: conversation.kmsResourceObjectUrl,
210
264
  invitees: getInvitees((_conversation$partici = conversation.participants) === null || _conversation$partici === void 0 ? void 0 : _conversation$partici.items)
211
265
  };
212
- var uri = _this4.webex.meetings.preferredWebexSite ? "https://".concat(_this4.webex.meetings.preferredWebexSite, "/wbxappapi/v2/meetings/spaceInstant") : '';
213
- _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_SUCCESS);
214
- return _this4.webex.request({
266
+ if (installedOrgID) {
267
+ body.installedOrgID = installedOrgID;
268
+ }
269
+ var uri = _this5.webex.meetings.preferredWebexSite ? "https://".concat(_this5.webex.meetings.preferredWebexSite, "/wbxappapi/v2/meetings/spaceInstant") : '';
270
+ return _this5.webex.request({
215
271
  method: _constants.HTTP_VERBS.POST,
216
272
  uri: uri,
217
273
  body: body
218
274
  });
275
+ }).then(function (requestResult) {
276
+ _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_SUCCESS);
277
+ return requestResult;
219
278
  }).catch(function (err) {
220
- var _err$body, _err$body2;
279
+ var _err$body6, _err$body7;
280
+ _this5.handlePolicyError(err);
221
281
  _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_FAILURE, {
222
282
  reason: err.message,
223
283
  stack: err.stack
224
284
  });
225
- throw new MeetingInfoV2AdhocMeetingError((_err$body = err.body) === null || _err$body === void 0 ? void 0 : _err$body.code, (_err$body2 = err.body) === null || _err$body2 === void 0 ? void 0 : _err$body2.message);
285
+ throw new MeetingInfoV2AdhocMeetingError((_err$body6 = err.body) === null || _err$body6 === void 0 ? void 0 : _err$body6.code, (_err$body7 = err.body) === null || _err$body7 === void 0 ? void 0 : _err$body7.message);
226
286
  }));
227
287
  case 4:
228
288
  case "end":
@@ -230,7 +290,7 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
230
290
  }
231
291
  }, _callee, this);
232
292
  }));
233
- function createAdhocSpaceMeeting(_x) {
293
+ function createAdhocSpaceMeeting(_x, _x2) {
234
294
  return _createAdhocSpaceMeeting.apply(this, arguments);
235
295
  }
236
296
  return createAdhocSpaceMeeting;
@@ -243,6 +303,10 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
243
303
  * @param {Object} captchaInfo
244
304
  * @param {String} captchaInfo.code
245
305
  * @param {String} captchaInfo.id
306
+ * @param {String} installedOrgID org ID of user's machine
307
+ * @param {String} locusId
308
+ * @param {Object} extraParams
309
+ * @param {Object} options
246
310
  * @returns {Promise} returns a meeting info object
247
311
  * @public
248
312
  * @memberof MeetingInfo
@@ -251,12 +315,21 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
251
315
  key: "fetchMeetingInfo",
252
316
  value: function () {
253
317
  var _fetchMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(destination) {
318
+ var _this6 = this;
254
319
  var type,
255
320
  password,
256
321
  captchaInfo,
322
+ installedOrgID,
323
+ locusId,
324
+ extraParams,
325
+ options,
326
+ meetingId,
257
327
  destinationType,
258
328
  body,
259
- options,
329
+ _destinationType$info,
330
+ _destinationType$info2,
331
+ err,
332
+ requestOptions,
260
333
  directURI,
261
334
  _args2 = arguments;
262
335
  return _regenerator.default.wrap(function _callee2$(_context2) {
@@ -265,60 +338,109 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
265
338
  type = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : null;
266
339
  password = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : null;
267
340
  captchaInfo = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : null;
268
- _context2.next = 5;
341
+ installedOrgID = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : null;
342
+ locusId = _args2.length > 5 && _args2[5] !== undefined ? _args2[5] : null;
343
+ extraParams = _args2.length > 6 && _args2[6] !== undefined ? _args2[6] : {};
344
+ options = _args2.length > 7 && _args2[7] !== undefined ? _args2[7] : {};
345
+ meetingId = options.meetingId;
346
+ _context2.next = 10;
269
347
  return _utilv.default.getDestinationType({
270
348
  destination: destination,
271
349
  type: type,
272
350
  webex: this.webex
273
351
  });
274
- case 5:
352
+ case 10:
275
353
  destinationType = _context2.sent;
276
354
  if (!(destinationType.type === _constants._CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {
277
- _context2.next = 8;
355
+ _context2.next = 13;
278
356
  break;
279
357
  }
280
- return _context2.abrupt("return", this.createAdhocSpaceMeeting(destinationType.destination));
281
- case 8:
282
- _context2.next = 10;
358
+ return _context2.abrupt("return", this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID));
359
+ case 13:
360
+ _context2.next = 15;
283
361
  return _utilv.default.getRequestBody(_objectSpread(_objectSpread({}, destinationType), {}, {
284
362
  password: password,
285
- captchaInfo: captchaInfo
363
+ captchaInfo: captchaInfo,
364
+ installedOrgID: installedOrgID,
365
+ locusId: locusId,
366
+ extraParams: extraParams
286
367
  }));
287
- case 10:
368
+ case 15:
288
369
  body = _context2.sent;
289
- options = {
370
+ if ((0, _difference2.default)((0, _keys.default)(body), (0, _keys.default)(_constants.DEFAULT_MEETING_INFO_REQUEST_BODY)).length) {
371
+ _context2.next = 20;
372
+ break;
373
+ }
374
+ err = new Error('Not enough information to fetch meeting info');
375
+ _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_FAILURE, {
376
+ reason: err.message,
377
+ destinationType: destinationType === null || destinationType === void 0 ? void 0 : destinationType.type,
378
+ webExMeetingId: destinationType === null || destinationType === void 0 ? void 0 : (_destinationType$info = destinationType.info) === null || _destinationType$info === void 0 ? void 0 : _destinationType$info.webExMeetingId,
379
+ sipUri: destinationType === null || destinationType === void 0 ? void 0 : (_destinationType$info2 = destinationType.info) === null || _destinationType$info2 === void 0 ? void 0 : _destinationType$info2.sipUri
380
+ });
381
+ throw err;
382
+ case 20:
383
+ requestOptions = {
290
384
  method: _constants.HTTP_VERBS.POST,
291
385
  body: body
292
386
  };
293
- _context2.next = 14;
387
+ _context2.next = 23;
294
388
  return _utilv.default.getDirectMeetingInfoURI(destinationType);
295
- case 14:
389
+ case 23:
296
390
  directURI = _context2.sent;
297
391
  if (directURI) {
298
- options.uri = directURI;
392
+ requestOptions.uri = directURI;
299
393
  } else {
300
- options.service = _constants.WBXAPPAPI_SERVICE;
301
- options.resource = 'meetingInfo';
394
+ requestOptions.service = _constants.WBXAPPAPI_SERVICE;
395
+ requestOptions.resource = 'meetingInfo';
396
+ }
397
+ if (meetingId) {
398
+ this.webex.internal.newMetrics.submitInternalEvent({
399
+ name: 'internal.client.meetinginfo.request'
400
+ });
302
401
  }
303
- return _context2.abrupt("return", this.webex.request(options).then(function (response) {
402
+ return _context2.abrupt("return", this.webex.request(requestOptions).then(function (response) {
403
+ if (meetingId) {
404
+ _this6.webex.internal.newMetrics.submitInternalEvent({
405
+ name: 'internal.client.meetinginfo.response'
406
+ });
407
+ }
304
408
  _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_SUCCESS);
305
409
  return response;
306
410
  }).catch(function (err) {
411
+ if (meetingId) {
412
+ _this6.webex.internal.newMetrics.submitInternalEvent({
413
+ name: 'internal.client.meetinginfo.response'
414
+ });
415
+ _this6.webex.internal.newMetrics.submitClientEvent({
416
+ name: 'client.meetinginfo.response',
417
+ payload: {
418
+ identifiers: {
419
+ meetingLookupUrl: err === null || err === void 0 ? void 0 : err.url
420
+ }
421
+ },
422
+ options: {
423
+ meetingId: meetingId,
424
+ rawError: err
425
+ }
426
+ });
427
+ }
307
428
  if ((err === null || err === void 0 ? void 0 : err.statusCode) === 403) {
308
- var _err$body3, _err$body4, _err$body4$data;
429
+ var _err$body8, _err$body9, _err$body9$data;
430
+ _this6.handlePolicyError(err);
309
431
  _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_PASSWORD_ERROR, {
310
432
  reason: err.message,
311
433
  stack: err.stack
312
434
  });
313
- throw new MeetingInfoV2PasswordError((_err$body3 = err.body) === null || _err$body3 === void 0 ? void 0 : _err$body3.code, (_err$body4 = err.body) === null || _err$body4 === void 0 ? void 0 : (_err$body4$data = _err$body4.data) === null || _err$body4$data === void 0 ? void 0 : _err$body4$data.meetingInfo);
435
+ throw new MeetingInfoV2PasswordError((_err$body8 = err.body) === null || _err$body8 === void 0 ? void 0 : _err$body8.code, (_err$body9 = err.body) === null || _err$body9 === void 0 ? void 0 : (_err$body9$data = _err$body9.data) === null || _err$body9$data === void 0 ? void 0 : _err$body9$data.meetingInfo);
314
436
  }
315
437
  if ((err === null || err === void 0 ? void 0 : err.statusCode) === 423) {
316
- var _err$body5;
438
+ var _err$body10;
317
439
  _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_CAPTCHA_ERROR, {
318
440
  reason: err.message,
319
441
  stack: err.stack
320
442
  });
321
- throw new MeetingInfoV2CaptchaError((_err$body5 = err.body) === null || _err$body5 === void 0 ? void 0 : _err$body5.code, {
443
+ throw new MeetingInfoV2CaptchaError((_err$body10 = err.body) === null || _err$body10 === void 0 ? void 0 : _err$body10.code, {
322
444
  captchaId: err.body.captchaID,
323
445
  verificationImageURL: err.body.verificationImageURL,
324
446
  verificationAudioURL: err.body.verificationAudioURL,
@@ -331,13 +453,13 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
331
453
  });
332
454
  throw err;
333
455
  }));
334
- case 17:
456
+ case 27:
335
457
  case "end":
336
458
  return _context2.stop();
337
459
  }
338
460
  }, _callee2, this);
339
461
  }));
340
- function fetchMeetingInfo(_x2) {
462
+ function fetchMeetingInfo(_x3) {
341
463
  return _fetchMeetingInfo.apply(this, arguments);
342
464
  }
343
465
  return fetchMeetingInfo;
@@ -1 +1 @@
1
- {"version":3,"names":["PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","MeetingInfoV2PasswordError","wbxAppApiErrorCode","meetingInfo","message","name","sdkMessage","stack","Error","wbxAppApiCode","MeetingInfoV2AdhocMeetingError","MeetingInfoV2CaptchaError","captchaInfo","isPasswordRequired","includes","MeetingInfoV2","webex","destination","type","MeetingInfoUtil","getDestinationType","conversationUrl","meetings","preferredWebexSite","getInvitees","particpants","invitees","forEach","participant","push","email","emailAddress","ciUserUuid","entryUUID","internal","conversation","get","url","includeParticipants","disableTransform","then","body","title","displayName","spaceUrl","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","uri","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","ADHOC_MEETING_SUCCESS","request","method","HTTP_VERBS","POST","catch","err","ADHOC_MEETING_FAILURE","reason","code","password","destinationType","_CONVERSATION_URL_","config","experimental","enableAdhocMeetings","createAdhocSpaceMeeting","getRequestBody","options","getDirectMeetingInfoURI","directURI","service","WBXAPPAPI_SERVICE","resource","response","FETCH_MEETING_INFO_V1_SUCCESS","statusCode","VERIFY_PASSWORD_ERROR","data","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","FETCH_MEETING_INFO_V1_FAILURE"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import {HTTP_VERBS, _CONVERSATION_URL_, WBXAPPAPI_SERVICE} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\n\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(conversationUrl: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex.internal.conversation\n .get({url: conversationUrl}, {includeParticipants: true, disableTransform: true})\n .then((conversation) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n };\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n })\n .catch((err) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: string = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null\n ) {\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === _CONVERSATION_URL_ &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(destinationType.destination);\n }\n\n const body = await MeetingInfoUtil.getRequestBody({...destinationType, password, captchaInfo});\n\n const options: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (directURI) {\n options.uri = directURI;\n } else {\n options.service = WBXAPPAPI_SERVICE;\n options.resource = 'meetingInfo';\n }\n\n return this.webex\n .request(options)\n .then((response) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (err?.statusCode === 403) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","POLICY_ERROR_CODES","MeetingInfoV2PasswordError","wbxAppApiErrorCode","meetingInfo","message","name","sdkMessage","stack","Error","wbxAppApiCode","MeetingInfoV2AdhocMeetingError","MeetingInfoV2PolicyError","MeetingInfoV2CaptchaError","captchaInfo","isPasswordRequired","includes","MeetingInfoV2","webex","err","body","code","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","destination","type","MeetingInfoUtil","getDestinationType","conversationUrl","installedOrgID","meetings","preferredWebexSite","getInvitees","particpants","invitees","forEach","participant","push","email","emailAddress","ciUserUuid","entryUUID","internal","conversation","get","url","includeParticipants","disableTransform","then","title","displayName","spaceUrl","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","uri","request","method","HTTP_VERBS","POST","requestResult","ADHOC_MEETING_SUCCESS","catch","handlePolicyError","ADHOC_MEETING_FAILURE","reason","password","locusId","extraParams","options","meetingId","destinationType","_CONVERSATION_URL_","config","experimental","enableAdhocMeetings","createAdhocSpaceMeeting","getRequestBody","DEFAULT_MEETING_INFO_REQUEST_BODY","length","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","requestOptions","getDirectMeetingInfoURI","directURI","service","WBXAPPAPI_SERVICE","resource","newMetrics","submitInternalEvent","response","FETCH_MEETING_INFO_V1_SUCCESS","submitClientEvent","payload","identifiers","meetingLookupUrl","rawError","statusCode","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n _CONVERSATION_URL_,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex.internal.conversation\n .get({url: conversationUrl}, {includeParticipants: true, disableTransform: true})\n .then((conversation) => {\n const body: {\n title: string;\n spaceUrl: string;\n keyUrl: string;\n kroUrl: string;\n invitees: any[];\n installedOrgID?: string;\n } = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: string = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string} = {}\n ) {\n const {meetingId} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === _CONVERSATION_URL_ &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
3
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
10
  _Object$defineProperty(exports, "__esModule", {
@@ -8,12 +13,15 @@ _Object$defineProperty(exports, "__esModule", {
8
13
  exports.default = void 0;
9
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
15
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
11
17
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
12
18
  var _url = _interopRequireDefault(require("url"));
13
19
  var _common = require("@webex/common");
14
20
  var _constants = require("../constants");
15
21
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
16
22
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
23
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
17
25
  var MeetingInfoUtil = {};
18
26
  MeetingInfoUtil.getParsedUrl = function (link) {
19
27
  try {
@@ -243,6 +251,7 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
243
251
  * Helper function to build up a correct locus url depending on the value passed
244
252
  * @param {Object} options type and value to fetch meeting info
245
253
  * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
254
+ * @param {String} options.installedOrgID org ID of user's machine
246
255
  * @param {Object} options.destination ?? value.value
247
256
  * @returns {Object} returns an object with {resource, method}
248
257
  */
@@ -251,11 +260,11 @@ MeetingInfoUtil.getRequestBody = function (options) {
251
260
  var type = options.type,
252
261
  destination = options.destination,
253
262
  password = options.password,
254
- captchaInfo = options.captchaInfo;
255
- var body = {
256
- supportHostKey: true,
257
- supportCountryList: true
258
- };
263
+ captchaInfo = options.captchaInfo,
264
+ installedOrgID = options.installedOrgID,
265
+ locusId = options.locusId,
266
+ extraParams = options.extraParams;
267
+ var body = _objectSpread(_objectSpread({}, _constants.DEFAULT_MEETING_INFO_REQUEST_BODY), extraParams);
259
268
  switch (type) {
260
269
  case _constants._SIP_URI_:
261
270
  body.sipUrl = destination;
@@ -295,6 +304,12 @@ MeetingInfoUtil.getRequestBody = function (options) {
295
304
  body.captchaID = captchaInfo.id;
296
305
  body.captchaVerifyCode = captchaInfo.code;
297
306
  }
307
+ if (installedOrgID) {
308
+ body.installedOrgID = installedOrgID;
309
+ }
310
+ if (locusId) {
311
+ body.locusId = locusId;
312
+ }
298
313
  return body;
299
314
  };
300
315