@webex/plugin-meetings 3.0.0-beta.21 → 3.0.0-beta.211

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 (422) hide show
  1. package/README.md +45 -7
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +3 -2
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +3 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +179 -30
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +319 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +106 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +359 -64
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +43 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +219 -63
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +48 -135
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +29 -90
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/mediaQualityMetrics/config.js +505 -493
  65. package/dist/mediaQualityMetrics/config.js.map +1 -1
  66. package/dist/meeting/in-meeting-actions.js +90 -2
  67. package/dist/meeting/in-meeting-actions.js.map +1 -1
  68. package/dist/meeting/index.js +2770 -2547
  69. package/dist/meeting/index.js.map +1 -1
  70. package/dist/meeting/locusMediaRequest.js +291 -0
  71. package/dist/meeting/locusMediaRequest.js.map +1 -0
  72. package/dist/meeting/muteState.js +229 -124
  73. package/dist/meeting/muteState.js.map +1 -1
  74. package/dist/meeting/request.js +199 -193
  75. package/dist/meeting/request.js.map +1 -1
  76. package/dist/meeting/util.js +532 -414
  77. package/dist/meeting/util.js.map +1 -1
  78. package/dist/meeting-info/index.js +48 -7
  79. package/dist/meeting-info/index.js.map +1 -1
  80. package/dist/meeting-info/meeting-info-v2.js +171 -51
  81. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +20 -5
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +357 -66
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +88 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +49 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +121 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -5
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +316 -233
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +3 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +49 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +52 -34
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +173 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/networkQualityMonitor/index.js +4 -2
  127. package/dist/networkQualityMonitor/index.js.map +1 -1
  128. package/dist/reachability/index.js +72 -27
  129. package/dist/reachability/index.js.map +1 -1
  130. package/dist/reachability/request.js +12 -5
  131. package/dist/reachability/request.js.map +1 -1
  132. package/dist/reconnection-manager/index.js +196 -155
  133. package/dist/reconnection-manager/index.js.map +1 -1
  134. package/dist/recording-controller/index.js +21 -2
  135. package/dist/recording-controller/index.js.map +1 -1
  136. package/dist/recording-controller/util.js +9 -8
  137. package/dist/recording-controller/util.js.map +1 -1
  138. package/dist/roap/index.js +21 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +110 -89
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +93 -36
  143. package/dist/roap/turnDiscovery.js.map +1 -1
  144. package/dist/rtcMetrics/constants.js +12 -0
  145. package/dist/rtcMetrics/constants.js.map +1 -0
  146. package/dist/rtcMetrics/index.js +117 -0
  147. package/dist/rtcMetrics/index.js.map +1 -0
  148. package/dist/statsAnalyzer/global.js +1 -93
  149. package/dist/statsAnalyzer/global.js.map +1 -1
  150. package/dist/statsAnalyzer/index.js +326 -311
  151. package/dist/statsAnalyzer/index.js.map +1 -1
  152. package/dist/statsAnalyzer/mqaUtil.js +90 -53
  153. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  154. package/dist/types/annotation/annotation.types.d.ts +42 -0
  155. package/dist/types/annotation/constants.d.ts +31 -0
  156. package/dist/types/annotation/index.d.ts +117 -0
  157. package/dist/types/breakouts/breakout.d.ts +8 -0
  158. package/dist/types/breakouts/collection.d.ts +5 -0
  159. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  160. package/dist/types/breakouts/events.d.ts +8 -0
  161. package/dist/types/breakouts/index.d.ts +5 -0
  162. package/dist/types/breakouts/request.d.ts +22 -0
  163. package/dist/types/breakouts/utils.d.ts +15 -0
  164. package/dist/types/common/browser-detection.d.ts +9 -0
  165. package/dist/types/common/collection.d.ts +48 -0
  166. package/dist/types/common/config.d.ts +2 -0
  167. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  168. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  169. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  170. package/dist/types/common/errors/media.d.ts +15 -0
  171. package/dist/types/common/errors/parameter.d.ts +15 -0
  172. package/dist/types/common/errors/password-error.d.ts +15 -0
  173. package/dist/types/common/errors/permission.d.ts +14 -0
  174. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  175. package/dist/types/common/errors/reconnection.d.ts +15 -0
  176. package/dist/types/common/errors/stats.d.ts +15 -0
  177. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  178. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  179. package/dist/types/common/events/events-scope.d.ts +17 -0
  180. package/dist/types/common/events/events.d.ts +12 -0
  181. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  182. package/dist/types/common/events/util.d.ts +2 -0
  183. package/dist/types/common/logs/logger-config.d.ts +2 -0
  184. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  185. package/dist/types/common/logs/request.d.ts +34 -0
  186. package/dist/types/common/queue.d.ts +34 -0
  187. package/dist/types/config.d.ts +72 -0
  188. package/dist/types/constants.d.ts +1020 -0
  189. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  190. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  191. package/dist/types/controls-options-manager/index.d.ts +136 -0
  192. package/dist/types/controls-options-manager/types.d.ts +43 -0
  193. package/dist/types/controls-options-manager/util.d.ts +1 -0
  194. package/dist/types/index.d.ts +7 -0
  195. package/dist/types/interpretation/collection.d.ts +5 -0
  196. package/dist/types/interpretation/index.d.ts +5 -0
  197. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  198. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  199. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  200. package/dist/types/locus-info/fullState.d.ts +2 -0
  201. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  202. package/dist/types/locus-info/index.d.ts +322 -0
  203. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  204. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  205. package/dist/types/locus-info/parser.d.ts +271 -0
  206. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  207. package/dist/types/media/index.d.ts +34 -0
  208. package/dist/types/media/properties.d.ts +93 -0
  209. package/dist/types/media/util.d.ts +2 -0
  210. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  211. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  212. package/dist/types/meeting/index.d.ts +1482 -0
  213. package/dist/types/meeting/locusMediaRequest.d.ts +72 -0
  214. package/dist/types/meeting/muteState.d.ts +184 -0
  215. package/dist/types/meeting/request.d.ts +257 -0
  216. package/dist/types/meeting/request.type.d.ts +11 -0
  217. package/dist/types/meeting/state.d.ts +9 -0
  218. package/dist/types/meeting/util.d.ts +79 -0
  219. package/dist/types/meeting-info/collection.d.ts +20 -0
  220. package/dist/types/meeting-info/index.d.ts +62 -0
  221. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  222. package/dist/types/meeting-info/request.d.ts +22 -0
  223. package/dist/types/meeting-info/util.d.ts +2 -0
  224. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  225. package/dist/types/meetings/collection.d.ts +31 -0
  226. package/dist/types/meetings/index.d.ts +367 -0
  227. package/dist/types/meetings/meetings.types.d.ts +4 -0
  228. package/dist/types/meetings/request.d.ts +27 -0
  229. package/dist/types/meetings/util.d.ts +18 -0
  230. package/dist/types/member/index.d.ts +159 -0
  231. package/dist/types/member/types.d.ts +32 -0
  232. package/dist/types/member/util.d.ts +2 -0
  233. package/dist/types/members/collection.d.ts +29 -0
  234. package/dist/types/members/index.d.ts +353 -0
  235. package/dist/types/members/request.d.ts +114 -0
  236. package/dist/types/members/types.d.ts +24 -0
  237. package/dist/types/members/util.d.ts +210 -0
  238. package/dist/types/metrics/constants.d.ts +55 -0
  239. package/dist/types/metrics/index.d.ts +45 -0
  240. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  241. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  243. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  244. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  245. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  246. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  247. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  248. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  249. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  250. package/dist/types/reachability/index.d.ts +152 -0
  251. package/dist/types/reachability/request.d.ts +37 -0
  252. package/dist/types/reactions/constants.d.ts +3 -0
  253. package/dist/types/reactions/reactions.d.ts +4 -0
  254. package/dist/types/reactions/reactions.type.d.ts +52 -0
  255. package/dist/types/reconnection-manager/index.d.ts +126 -0
  256. package/dist/types/recording-controller/enums.d.ts +7 -0
  257. package/dist/types/recording-controller/index.d.ts +207 -0
  258. package/dist/types/recording-controller/util.d.ts +14 -0
  259. package/dist/types/roap/index.d.ts +77 -0
  260. package/dist/types/roap/request.d.ts +36 -0
  261. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  262. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  263. package/dist/types/rtcMetrics/index.d.ts +46 -0
  264. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  265. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  266. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  267. package/dist/types/transcription/index.d.ts +64 -0
  268. package/package.json +23 -20
  269. package/src/annotation/annotation.types.ts +50 -0
  270. package/src/annotation/constants.ts +36 -0
  271. package/src/annotation/index.ts +328 -0
  272. package/src/breakouts/README.md +44 -14
  273. package/src/breakouts/breakout.ts +87 -9
  274. package/src/breakouts/edit-lock-error.ts +25 -0
  275. package/src/breakouts/events.ts +56 -0
  276. package/src/breakouts/index.ts +710 -10
  277. package/src/breakouts/request.ts +55 -0
  278. package/src/breakouts/utils.ts +57 -0
  279. package/src/common/errors/webex-errors.ts +6 -2
  280. package/src/common/logs/logger-proxy.ts +1 -1
  281. package/src/common/queue.ts +22 -8
  282. package/src/config.ts +2 -7
  283. package/src/constants.ts +165 -21
  284. package/src/controls-options-manager/constants.ts +5 -0
  285. package/src/controls-options-manager/enums.ts +18 -0
  286. package/src/controls-options-manager/index.ts +278 -0
  287. package/src/controls-options-manager/types.ts +59 -0
  288. package/src/controls-options-manager/util.ts +300 -0
  289. package/src/index.ts +39 -0
  290. package/src/interpretation/README.md +60 -0
  291. package/src/interpretation/collection.ts +19 -0
  292. package/src/interpretation/index.ts +332 -0
  293. package/src/interpretation/siLanguage.ts +18 -0
  294. package/src/locus-info/controlsUtils.ts +108 -0
  295. package/src/locus-info/index.ts +383 -61
  296. package/src/locus-info/infoUtils.ts +10 -2
  297. package/src/locus-info/mediaSharesUtils.ts +48 -0
  298. package/src/locus-info/parser.ts +224 -39
  299. package/src/locus-info/selfUtils.ts +81 -5
  300. package/src/media/index.ts +87 -140
  301. package/src/media/properties.ts +49 -90
  302. package/src/mediaQualityMetrics/config.ts +379 -377
  303. package/src/meeting/in-meeting-actions.ts +179 -3
  304. package/src/meeting/index.ts +2099 -2083
  305. package/src/meeting/locusMediaRequest.ts +311 -0
  306. package/src/meeting/muteState.ts +228 -132
  307. package/src/meeting/request.ts +105 -115
  308. package/src/meeting/util.ts +511 -397
  309. package/src/meeting-info/index.ts +54 -8
  310. package/src/meeting-info/meeting-info-v2.ts +148 -14
  311. package/src/meeting-info/utilv2.ts +13 -3
  312. package/src/meetings/collection.ts +20 -0
  313. package/src/meetings/index.ts +392 -84
  314. package/src/meetings/meetings.types.ts +12 -0
  315. package/src/meetings/request.ts +2 -0
  316. package/src/meetings/util.ts +103 -4
  317. package/src/member/index.ts +49 -0
  318. package/src/member/types.ts +38 -0
  319. package/src/member/util.ts +127 -25
  320. package/src/members/collection.ts +8 -0
  321. package/src/members/index.ts +107 -6
  322. package/src/members/request.ts +97 -17
  323. package/src/members/types.ts +28 -0
  324. package/src/members/util.ts +319 -240
  325. package/src/metrics/constants.ts +2 -4
  326. package/src/metrics/index.ts +1 -490
  327. package/src/multistream/mediaRequestManager.ts +289 -79
  328. package/src/multistream/receiveSlot.ts +55 -18
  329. package/src/multistream/receiveSlotManager.ts +46 -24
  330. package/src/multistream/remoteMedia.ts +27 -2
  331. package/src/multistream/remoteMediaGroup.ts +59 -0
  332. package/src/multistream/remoteMediaManager.ts +113 -32
  333. package/src/networkQualityMonitor/index.ts +6 -6
  334. package/src/reachability/index.ts +62 -15
  335. package/src/reachability/request.ts +10 -5
  336. package/src/reconnection-manager/index.ts +68 -43
  337. package/src/recording-controller/index.ts +20 -3
  338. package/src/recording-controller/util.ts +26 -9
  339. package/src/roap/index.ts +21 -30
  340. package/src/roap/request.ts +101 -95
  341. package/src/roap/turnDiscovery.ts +47 -25
  342. package/src/rtcMetrics/constants.ts +3 -0
  343. package/src/rtcMetrics/index.ts +100 -0
  344. package/src/statsAnalyzer/global.ts +1 -94
  345. package/src/statsAnalyzer/index.ts +376 -386
  346. package/src/statsAnalyzer/mqaUtil.ts +100 -99
  347. package/test/integration/spec/converged-space-meetings.js +233 -0
  348. package/test/integration/spec/journey.js +336 -259
  349. package/test/integration/spec/space-meeting.js +77 -4
  350. package/test/unit/spec/annotation/index.ts +418 -0
  351. package/test/unit/spec/breakouts/breakout.ts +142 -24
  352. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  353. package/test/unit/spec/breakouts/events.ts +89 -0
  354. package/test/unit/spec/breakouts/index.ts +1545 -48
  355. package/test/unit/spec/breakouts/request.ts +104 -0
  356. package/test/unit/spec/breakouts/utils.js +72 -0
  357. package/test/unit/spec/common/queue.js +31 -2
  358. package/test/unit/spec/controls-options-manager/index.js +287 -0
  359. package/test/unit/spec/controls-options-manager/util.js +582 -0
  360. package/test/unit/spec/fixture/locus.js +1 -0
  361. package/test/unit/spec/interpretation/collection.ts +15 -0
  362. package/test/unit/spec/interpretation/index.ts +589 -0
  363. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  364. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  365. package/test/unit/spec/locus-info/index.js +1169 -36
  366. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  367. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  368. package/test/unit/spec/locus-info/parser.js +62 -22
  369. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  370. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  371. package/test/unit/spec/media/index.ts +138 -28
  372. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  373. package/test/unit/spec/meeting/index.js +3573 -1663
  374. package/test/unit/spec/meeting/locusMediaRequest.ts +438 -0
  375. package/test/unit/spec/meeting/muteState.js +370 -208
  376. package/test/unit/spec/meeting/request.js +339 -44
  377. package/test/unit/spec/meeting/utils.js +456 -53
  378. package/test/unit/spec/meeting-info/index.js +181 -0
  379. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  380. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  381. package/test/unit/spec/meetings/collection.js +14 -0
  382. package/test/unit/spec/meetings/index.js +867 -125
  383. package/test/unit/spec/meetings/utils.js +206 -2
  384. package/test/unit/spec/member/index.js +58 -4
  385. package/test/unit/spec/member/util.js +479 -35
  386. package/test/unit/spec/members/index.js +319 -1
  387. package/test/unit/spec/members/request.js +206 -27
  388. package/test/unit/spec/members/utils.js +184 -0
  389. package/test/unit/spec/metrics/index.js +1 -50
  390. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  391. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  392. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  393. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  394. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  395. package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
  396. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  397. package/test/unit/spec/reachability/index.ts +125 -8
  398. package/test/unit/spec/reachability/request.js +66 -0
  399. package/test/unit/spec/reconnection-manager/index.js +59 -6
  400. package/test/unit/spec/recording-controller/index.js +294 -218
  401. package/test/unit/spec/recording-controller/util.js +223 -96
  402. package/test/unit/spec/roap/index.ts +26 -51
  403. package/test/unit/spec/roap/request.ts +196 -85
  404. package/test/unit/spec/roap/turnDiscovery.ts +30 -7
  405. package/test/unit/spec/rtcMetrics/index.ts +60 -0
  406. package/test/unit/spec/stats-analyzer/index.js +92 -41
  407. package/test/utils/constants.js +9 -0
  408. package/test/utils/integrationTestUtils.js +46 -0
  409. package/test/utils/testUtils.js +0 -45
  410. package/test/utils/webex-config.js +4 -0
  411. package/test/utils/webex-test-users.js +6 -3
  412. package/dist/meeting/effectsState.js +0 -262
  413. package/dist/meeting/effectsState.js.map +0 -1
  414. package/dist/metrics/config.js +0 -299
  415. package/dist/metrics/config.js.map +0 -1
  416. package/dist/multistream/multistreamMedia.js +0 -110
  417. package/dist/multistream/multistreamMedia.js.map +0 -1
  418. package/src/index.js +0 -16
  419. package/src/meeting/effectsState.ts +0 -211
  420. package/src/metrics/config.ts +0 -495
  421. package/src/multistream/multistreamMedia.ts +0 -97
  422. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -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
  */
@@ -95,37 +97,67 @@ var MeetingInfoV2AdhocMeetingError = /*#__PURE__*/function (_Error2) {
95
97
  return (0, _createClass2.default)(MeetingInfoV2AdhocMeetingError);
96
98
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
97
99
  /**
98
- * Error to indicate that preferred webex site not present to start adhoc meeting
100
+ * Error preventing join because of a meeting policy
99
101
  */
100
102
  exports.MeetingInfoV2AdhocMeetingError = MeetingInfoV2AdhocMeetingError;
101
- var MeetingInfoV2CaptchaError = /*#__PURE__*/function (_Error3) {
102
- (0, _inherits2.default)(MeetingInfoV2CaptchaError, _Error3);
103
- var _super3 = _createSuper(MeetingInfoV2CaptchaError);
103
+ var MeetingInfoV2PolicyError = /*#__PURE__*/function (_Error3) {
104
+ (0, _inherits2.default)(MeetingInfoV2PolicyError, _Error3);
105
+ var _super3 = _createSuper(MeetingInfoV2PolicyError);
104
106
  /**
105
107
  *
106
108
  * @constructor
107
109
  * @param {Number} [wbxAppApiErrorCode]
108
- * @param {Object} [captchaInfo]
110
+ * @param {Object} [meetingInfo]
109
111
  * @param {String} [message]
110
112
  */
111
- function MeetingInfoV2CaptchaError(wbxAppApiErrorCode, captchaInfo) {
113
+ function MeetingInfoV2PolicyError(wbxAppApiErrorCode, meetingInfo, message) {
112
114
  var _this3;
113
- var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CAPTCHA_ERROR_DEFAULT_MESSAGE;
114
- (0, _classCallCheck2.default)(this, MeetingInfoV2CaptchaError);
115
+ (0, _classCallCheck2.default)(this, MeetingInfoV2PolicyError);
115
116
  _this3 = _super3.call(this, "".concat(message, ", code=").concat(wbxAppApiErrorCode));
116
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "captchaInfo", void 0);
117
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "isPasswordRequired", void 0);
117
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "meetingInfo", void 0);
118
118
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "sdkMessage", void 0);
119
119
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "wbxAppApiCode", void 0);
120
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), "body", void 0);
121
- _this3.name = 'MeetingInfoV2PasswordError';
120
+ _this3.name = 'MeetingInfoV2AdhocMeetingError';
122
121
  _this3.sdkMessage = message;
123
122
  _this3.stack = new Error().stack;
124
123
  _this3.wbxAppApiCode = wbxAppApiErrorCode;
125
- _this3.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);
126
- _this3.captchaInfo = captchaInfo;
124
+ _this3.meetingInfo = meetingInfo;
127
125
  return _this3;
128
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
+ }
129
161
  return (0, _createClass2.default)(MeetingInfoV2CaptchaError);
130
162
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
131
163
  /**
@@ -140,6 +172,19 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
140
172
  function MeetingInfoV2(webex) {
141
173
  (0, _classCallCheck2.default)(this, MeetingInfoV2);
142
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
+ });
143
188
  this.webex = webex;
144
189
  }
145
190
 
@@ -162,18 +207,25 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
162
207
  });
163
208
  }
164
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:
165
218
  /**
166
219
  * Creates adhoc space meetings for a space by fetching the conversation infomation
167
220
  * @param {String} conversationUrl conversationUrl to start adhoc meeting on
221
+ * @param {String} installedOrgID org ID of user's machine
168
222
  * @returns {Promise} returns a meeting info object
169
223
  * @public
170
224
  * @memberof MeetingInfo
171
225
  */
172
- }, {
173
- key: "createAdhocSpaceMeeting",
174
- value: function () {
175
- var _createAdhocSpaceMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(conversationUrl) {
176
- var _this4 = this;
226
+ function () {
227
+ var _createAdhocSpaceMeeting = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(conversationUrl, installedOrgID) {
228
+ var _this5 = this;
177
229
  var getInvitees;
178
230
  return _regenerator.default.wrap(function _callee$(_context) {
179
231
  while (1) switch (_context.prev = _context.next) {
@@ -211,20 +263,26 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
211
263
  kroUrl: conversation.kmsResourceObjectUrl,
212
264
  invitees: getInvitees((_conversation$partici = conversation.participants) === null || _conversation$partici === void 0 ? void 0 : _conversation$partici.items)
213
265
  };
214
- var uri = _this4.webex.meetings.preferredWebexSite ? "https://".concat(_this4.webex.meetings.preferredWebexSite, "/wbxappapi/v2/meetings/spaceInstant") : '';
215
- _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_SUCCESS);
216
- 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({
217
271
  method: _constants.HTTP_VERBS.POST,
218
272
  uri: uri,
219
273
  body: body
220
274
  });
275
+ }).then(function (requestResult) {
276
+ _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_SUCCESS);
277
+ return requestResult;
221
278
  }).catch(function (err) {
222
- var _err$body, _err$body2;
279
+ var _err$body6, _err$body7;
280
+ _this5.handlePolicyError(err);
223
281
  _metrics.default.sendBehavioralMetric(_constants2.default.ADHOC_MEETING_FAILURE, {
224
282
  reason: err.message,
225
283
  stack: err.stack
226
284
  });
227
- 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);
228
286
  }));
229
287
  case 4:
230
288
  case "end":
@@ -232,7 +290,7 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
232
290
  }
233
291
  }, _callee, this);
234
292
  }));
235
- function createAdhocSpaceMeeting(_x) {
293
+ function createAdhocSpaceMeeting(_x, _x2) {
236
294
  return _createAdhocSpaceMeeting.apply(this, arguments);
237
295
  }
238
296
  return createAdhocSpaceMeeting;
@@ -245,6 +303,10 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
245
303
  * @param {Object} captchaInfo
246
304
  * @param {String} captchaInfo.code
247
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
248
310
  * @returns {Promise} returns a meeting info object
249
311
  * @public
250
312
  * @memberof MeetingInfo
@@ -253,12 +315,21 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
253
315
  key: "fetchMeetingInfo",
254
316
  value: function () {
255
317
  var _fetchMeetingInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(destination) {
318
+ var _this6 = this;
256
319
  var type,
257
320
  password,
258
321
  captchaInfo,
322
+ installedOrgID,
323
+ locusId,
324
+ extraParams,
325
+ options,
326
+ meetingId,
259
327
  destinationType,
260
328
  body,
261
- options,
329
+ _destinationType$info,
330
+ _destinationType$info2,
331
+ err,
332
+ requestOptions,
262
333
  directURI,
263
334
  _args2 = arguments;
264
335
  return _regenerator.default.wrap(function _callee2$(_context2) {
@@ -267,60 +338,109 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
267
338
  type = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : null;
268
339
  password = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : null;
269
340
  captchaInfo = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : null;
270
- _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;
271
347
  return _utilv.default.getDestinationType({
272
348
  destination: destination,
273
349
  type: type,
274
350
  webex: this.webex
275
351
  });
276
- case 5:
352
+ case 10:
277
353
  destinationType = _context2.sent;
278
354
  if (!(destinationType.type === _constants._CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {
279
- _context2.next = 8;
355
+ _context2.next = 13;
280
356
  break;
281
357
  }
282
- return _context2.abrupt("return", this.createAdhocSpaceMeeting(destinationType.destination));
283
- case 8:
284
- _context2.next = 10;
358
+ return _context2.abrupt("return", this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID));
359
+ case 13:
360
+ _context2.next = 15;
285
361
  return _utilv.default.getRequestBody(_objectSpread(_objectSpread({}, destinationType), {}, {
286
362
  password: password,
287
- captchaInfo: captchaInfo
363
+ captchaInfo: captchaInfo,
364
+ installedOrgID: installedOrgID,
365
+ locusId: locusId,
366
+ extraParams: extraParams
288
367
  }));
289
- case 10:
368
+ case 15:
290
369
  body = _context2.sent;
291
- 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 = {
292
384
  method: _constants.HTTP_VERBS.POST,
293
385
  body: body
294
386
  };
295
- _context2.next = 14;
387
+ _context2.next = 23;
296
388
  return _utilv.default.getDirectMeetingInfoURI(destinationType);
297
- case 14:
389
+ case 23:
298
390
  directURI = _context2.sent;
299
391
  if (directURI) {
300
- options.uri = directURI;
392
+ requestOptions.uri = directURI;
301
393
  } else {
302
- options.service = _constants.WBXAPPAPI_SERVICE;
303
- 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
+ });
304
401
  }
305
- 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
+ }
306
408
  _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_SUCCESS);
307
409
  return response;
308
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
+ }
309
428
  if ((err === null || err === void 0 ? void 0 : err.statusCode) === 403) {
310
- var _err$body3, _err$body4, _err$body4$data;
429
+ var _err$body8, _err$body9, _err$body9$data;
430
+ _this6.handlePolicyError(err);
311
431
  _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_PASSWORD_ERROR, {
312
432
  reason: err.message,
313
433
  stack: err.stack
314
434
  });
315
- 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);
316
436
  }
317
437
  if ((err === null || err === void 0 ? void 0 : err.statusCode) === 423) {
318
- var _err$body5;
438
+ var _err$body10;
319
439
  _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_CAPTCHA_ERROR, {
320
440
  reason: err.message,
321
441
  stack: err.stack
322
442
  });
323
- 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, {
324
444
  captchaId: err.body.captchaID,
325
445
  verificationImageURL: err.body.verificationImageURL,
326
446
  verificationAudioURL: err.body.verificationAudioURL,
@@ -333,13 +453,13 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
333
453
  });
334
454
  throw err;
335
455
  }));
336
- case 17:
456
+ case 27:
337
457
  case "end":
338
458
  return _context2.stop();
339
459
  }
340
460
  }, _callee2, this);
341
461
  }));
342
- function fetchMeetingInfo(_x2) {
462
+ function fetchMeetingInfo(_x3) {
343
463
  return _fetchMeetingInfo.apply(this, arguments);
344
464
  }
345
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 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 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 * 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