@webex/plugin-meetings 3.0.0-beta.31 → 3.0.0-beta.310

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 (378) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +94 -15
  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 +709 -35
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/utils.js +45 -1
  17. package/dist/breakouts/utils.js.map +1 -1
  18. package/dist/common/errors/no-meeting-info.js +51 -0
  19. package/dist/common/errors/no-meeting-info.js.map +1 -0
  20. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  21. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +48 -7
  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/common/logs/request.js +5 -1
  27. package/dist/common/logs/request.js.map +1 -1
  28. package/dist/common/queue.js +24 -9
  29. package/dist/common/queue.js.map +1 -1
  30. package/dist/config.js +5 -11
  31. package/dist/config.js.map +1 -1
  32. package/dist/constants.js +233 -29
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controls-options-manager/enums.js +14 -2
  35. package/dist/controls-options-manager/enums.js.map +1 -1
  36. package/dist/controls-options-manager/index.js +109 -15
  37. package/dist/controls-options-manager/index.js.map +1 -1
  38. package/dist/controls-options-manager/types.js +7 -0
  39. package/dist/controls-options-manager/types.js.map +1 -0
  40. package/dist/controls-options-manager/util.js +309 -18
  41. package/dist/controls-options-manager/util.js.map +1 -1
  42. package/dist/index.js +112 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/interpretation/collection.js +23 -0
  45. package/dist/interpretation/collection.js.map +1 -0
  46. package/dist/interpretation/index.js +366 -0
  47. package/dist/interpretation/index.js.map +1 -0
  48. package/dist/interpretation/siLanguage.js +25 -0
  49. package/dist/interpretation/siLanguage.js.map +1 -0
  50. package/dist/locus-info/controlsUtils.js +91 -2
  51. package/dist/locus-info/controlsUtils.js.map +1 -1
  52. package/dist/locus-info/index.js +383 -62
  53. package/dist/locus-info/index.js.map +1 -1
  54. package/dist/locus-info/infoUtils.js +7 -1
  55. package/dist/locus-info/infoUtils.js.map +1 -1
  56. package/dist/locus-info/mediaSharesUtils.js +57 -1
  57. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  58. package/dist/locus-info/parser.js +249 -72
  59. package/dist/locus-info/parser.js.map +1 -1
  60. package/dist/locus-info/selfUtils.js +89 -14
  61. package/dist/locus-info/selfUtils.js.map +1 -1
  62. package/dist/media/index.js +61 -116
  63. package/dist/media/index.js.map +1 -1
  64. package/dist/media/properties.js +73 -124
  65. package/dist/media/properties.js.map +1 -1
  66. package/dist/meeting/in-meeting-actions.js +82 -2
  67. package/dist/meeting/in-meeting-actions.js.map +1 -1
  68. package/dist/meeting/index.js +3777 -2929
  69. package/dist/meeting/index.js.map +1 -1
  70. package/dist/meeting/locusMediaRequest.js +292 -0
  71. package/dist/meeting/locusMediaRequest.js.map +1 -0
  72. package/dist/meeting/muteState.js +230 -124
  73. package/dist/meeting/muteState.js.map +1 -1
  74. package/dist/meeting/request.js +260 -196
  75. package/dist/meeting/request.js.map +1 -1
  76. package/dist/meeting/util.js +601 -417
  77. package/dist/meeting/util.js.map +1 -1
  78. package/dist/meeting-info/index.js +73 -7
  79. package/dist/meeting-info/index.js.map +1 -1
  80. package/dist/meeting-info/meeting-info-v2.js +192 -51
  81. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  82. package/dist/meeting-info/util.js +1 -1
  83. package/dist/meeting-info/util.js.map +1 -1
  84. package/dist/meeting-info/utilv2.js +36 -36
  85. package/dist/meeting-info/utilv2.js.map +1 -1
  86. package/dist/meetings/collection.js +39 -0
  87. package/dist/meetings/collection.js.map +1 -1
  88. package/dist/meetings/index.js +415 -115
  89. package/dist/meetings/index.js.map +1 -1
  90. package/dist/meetings/meetings.types.js +7 -0
  91. package/dist/meetings/meetings.types.js.map +1 -0
  92. package/dist/meetings/request.js +2 -0
  93. package/dist/meetings/request.js.map +1 -1
  94. package/dist/meetings/util.js +72 -6
  95. package/dist/meetings/util.js.map +1 -1
  96. package/dist/member/index.js +58 -0
  97. package/dist/member/index.js.map +1 -1
  98. package/dist/member/types.js +25 -0
  99. package/dist/member/types.js.map +1 -0
  100. package/dist/member/util.js +132 -25
  101. package/dist/member/util.js.map +1 -1
  102. package/dist/members/collection.js +10 -0
  103. package/dist/members/collection.js.map +1 -1
  104. package/dist/members/index.js +102 -6
  105. package/dist/members/index.js.map +1 -1
  106. package/dist/members/request.js +106 -38
  107. package/dist/members/request.js.map +1 -1
  108. package/dist/members/types.js +15 -0
  109. package/dist/members/types.js.map +1 -0
  110. package/dist/members/util.js +326 -232
  111. package/dist/members/util.js.map +1 -1
  112. package/dist/metrics/constants.js +13 -5
  113. package/dist/metrics/constants.js.map +1 -1
  114. package/dist/metrics/index.js +1 -468
  115. package/dist/metrics/index.js.map +1 -1
  116. package/dist/multistream/mediaRequestManager.js +238 -49
  117. package/dist/multistream/mediaRequestManager.js.map +1 -1
  118. package/dist/multistream/receiveSlot.js +29 -16
  119. package/dist/multistream/receiveSlot.js.map +1 -1
  120. package/dist/multistream/receiveSlotManager.js +39 -36
  121. package/dist/multistream/receiveSlotManager.js.map +1 -1
  122. package/dist/multistream/remoteMedia.js +44 -18
  123. package/dist/multistream/remoteMedia.js.map +1 -1
  124. package/dist/multistream/remoteMediaGroup.js +60 -3
  125. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  126. package/dist/multistream/remoteMediaManager.js +209 -59
  127. package/dist/multistream/remoteMediaManager.js.map +1 -1
  128. package/dist/multistream/sendSlotManager.js +233 -0
  129. package/dist/multistream/sendSlotManager.js.map +1 -0
  130. package/dist/reachability/index.js +225 -59
  131. package/dist/reachability/index.js.map +1 -1
  132. package/dist/reachability/request.js +17 -8
  133. package/dist/reachability/request.js.map +1 -1
  134. package/dist/reconnection-manager/index.js +201 -156
  135. package/dist/reconnection-manager/index.js.map +1 -1
  136. package/dist/recording-controller/index.js +21 -2
  137. package/dist/recording-controller/index.js.map +1 -1
  138. package/dist/recording-controller/util.js +9 -8
  139. package/dist/recording-controller/util.js.map +1 -1
  140. package/dist/roap/index.js +62 -32
  141. package/dist/roap/index.js.map +1 -1
  142. package/dist/roap/request.js +112 -97
  143. package/dist/roap/request.js.map +1 -1
  144. package/dist/roap/turnDiscovery.js +95 -36
  145. package/dist/roap/turnDiscovery.js.map +1 -1
  146. package/dist/rtcMetrics/constants.js +12 -0
  147. package/dist/rtcMetrics/constants.js.map +1 -0
  148. package/dist/rtcMetrics/index.js +117 -0
  149. package/dist/rtcMetrics/index.js.map +1 -0
  150. package/dist/statsAnalyzer/index.js +86 -78
  151. package/dist/statsAnalyzer/index.js.map +1 -1
  152. package/dist/statsAnalyzer/mqaUtil.js +11 -10
  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/edit-lock-error.d.ts +15 -0
  158. package/dist/types/breakouts/events.d.ts +8 -0
  159. package/dist/types/breakouts/utils.d.ts +14 -0
  160. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  161. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  162. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  163. package/dist/types/common/logs/request.d.ts +2 -0
  164. package/dist/types/common/queue.d.ts +9 -7
  165. package/dist/types/config.d.ts +1 -7
  166. package/dist/types/constants.d.ts +194 -24
  167. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  168. package/dist/types/controls-options-manager/index.d.ts +17 -1
  169. package/dist/types/controls-options-manager/types.d.ts +43 -0
  170. package/dist/types/controls-options-manager/util.d.ts +1 -7
  171. package/dist/types/index.d.ts +6 -4
  172. package/dist/types/interpretation/collection.d.ts +5 -0
  173. package/dist/types/interpretation/index.d.ts +5 -0
  174. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  175. package/dist/types/locus-info/index.d.ts +57 -4
  176. package/dist/types/locus-info/parser.d.ts +67 -6
  177. package/dist/types/media/index.d.ts +2 -0
  178. package/dist/types/media/properties.d.ts +34 -48
  179. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  180. package/dist/types/meeting/index.d.ts +463 -510
  181. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  182. package/dist/types/meeting/muteState.d.ts +99 -23
  183. package/dist/types/meeting/request.d.ts +72 -43
  184. package/dist/types/meeting/util.d.ts +101 -1
  185. package/dist/types/meeting-info/index.d.ts +13 -1
  186. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/types/meetings/collection.d.ts +17 -0
  188. package/dist/types/meetings/index.d.ts +98 -20
  189. package/dist/types/meetings/meetings.types.d.ts +4 -0
  190. package/dist/types/member/index.d.ts +14 -0
  191. package/dist/types/member/types.d.ts +32 -0
  192. package/dist/types/members/collection.d.ts +5 -0
  193. package/dist/types/members/index.d.ts +35 -2
  194. package/dist/types/members/request.d.ts +73 -9
  195. package/dist/types/members/types.d.ts +25 -0
  196. package/dist/types/members/util.d.ts +214 -1
  197. package/dist/types/metrics/constants.d.ts +12 -4
  198. package/dist/types/metrics/index.d.ts +4 -119
  199. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  200. package/dist/types/multistream/receiveSlot.d.ts +13 -11
  201. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  202. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  203. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  204. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  205. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  206. package/dist/types/reachability/index.d.ts +61 -7
  207. package/dist/types/reachability/request.d.ts +7 -3
  208. package/dist/types/reconnection-manager/index.d.ts +9 -0
  209. package/dist/types/recording-controller/index.d.ts +15 -1
  210. package/dist/types/recording-controller/util.d.ts +5 -4
  211. package/dist/types/roap/index.d.ts +2 -1
  212. package/dist/types/roap/request.d.ts +15 -11
  213. package/dist/types/roap/turnDiscovery.d.ts +21 -3
  214. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  215. package/dist/types/rtcMetrics/index.d.ts +47 -0
  216. package/dist/types/statsAnalyzer/index.d.ts +7 -1
  217. package/dist/types/webinar/collection.d.ts +16 -0
  218. package/dist/types/webinar/index.d.ts +5 -0
  219. package/dist/webinar/collection.js +44 -0
  220. package/dist/webinar/collection.js.map +1 -0
  221. package/dist/webinar/index.js +69 -0
  222. package/dist/webinar/index.js.map +1 -0
  223. package/package.json +23 -20
  224. package/src/annotation/annotation.types.ts +50 -0
  225. package/src/annotation/constants.ts +36 -0
  226. package/src/annotation/index.ts +328 -0
  227. package/src/breakouts/README.md +42 -12
  228. package/src/breakouts/breakout.ts +67 -9
  229. package/src/breakouts/edit-lock-error.ts +25 -0
  230. package/src/breakouts/events.ts +56 -0
  231. package/src/breakouts/index.ts +592 -20
  232. package/src/breakouts/utils.ts +42 -0
  233. package/src/common/errors/no-meeting-info.ts +24 -0
  234. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  235. package/src/common/errors/webex-errors.ts +44 -2
  236. package/src/common/logs/logger-proxy.ts +1 -1
  237. package/src/common/logs/request.ts +5 -1
  238. package/src/common/queue.ts +22 -8
  239. package/src/config.ts +4 -10
  240. package/src/constants.ts +221 -19
  241. package/src/controls-options-manager/enums.ts +12 -0
  242. package/src/controls-options-manager/index.ts +116 -21
  243. package/src/controls-options-manager/types.ts +59 -0
  244. package/src/controls-options-manager/util.ts +294 -14
  245. package/src/index.ts +40 -0
  246. package/src/interpretation/README.md +60 -0
  247. package/src/interpretation/collection.ts +19 -0
  248. package/src/interpretation/index.ts +332 -0
  249. package/src/interpretation/siLanguage.ts +18 -0
  250. package/src/locus-info/controlsUtils.ts +108 -0
  251. package/src/locus-info/index.ts +413 -59
  252. package/src/locus-info/infoUtils.ts +10 -2
  253. package/src/locus-info/mediaSharesUtils.ts +64 -0
  254. package/src/locus-info/parser.ts +258 -47
  255. package/src/locus-info/selfUtils.ts +81 -5
  256. package/src/media/index.ts +102 -122
  257. package/src/media/properties.ts +87 -110
  258. package/src/meeting/in-meeting-actions.ts +163 -3
  259. package/src/meeting/index.ts +3132 -2541
  260. package/src/meeting/locusMediaRequest.ts +313 -0
  261. package/src/meeting/muteState.ts +229 -131
  262. package/src/meeting/request.ts +177 -121
  263. package/src/meeting/util.ts +588 -394
  264. package/src/meeting-info/index.ts +81 -8
  265. package/src/meeting-info/meeting-info-v2.ts +170 -14
  266. package/src/meeting-info/util.ts +1 -1
  267. package/src/meeting-info/utilv2.ts +23 -23
  268. package/src/meetings/collection.ts +33 -0
  269. package/src/meetings/index.ts +445 -123
  270. package/src/meetings/meetings.types.ts +12 -0
  271. package/src/meetings/request.ts +2 -0
  272. package/src/meetings/util.ts +80 -11
  273. package/src/member/index.ts +58 -0
  274. package/src/member/types.ts +38 -0
  275. package/src/member/util.ts +141 -25
  276. package/src/members/collection.ts +8 -0
  277. package/src/members/index.ts +134 -8
  278. package/src/members/request.ts +97 -17
  279. package/src/members/types.ts +29 -0
  280. package/src/members/util.ts +333 -240
  281. package/src/metrics/constants.ts +12 -4
  282. package/src/metrics/index.ts +1 -490
  283. package/src/multistream/mediaRequestManager.ts +289 -79
  284. package/src/multistream/receiveSlot.ts +31 -17
  285. package/src/multistream/receiveSlotManager.ts +34 -24
  286. package/src/multistream/remoteMedia.ts +27 -2
  287. package/src/multistream/remoteMediaGroup.ts +59 -0
  288. package/src/multistream/remoteMediaManager.ts +148 -30
  289. package/src/multistream/sendSlotManager.ts +170 -0
  290. package/src/reachability/index.ts +228 -37
  291. package/src/reachability/request.ts +17 -8
  292. package/src/reconnection-manager/index.ts +83 -56
  293. package/src/recording-controller/index.ts +20 -3
  294. package/src/recording-controller/util.ts +26 -9
  295. package/src/roap/index.ts +63 -32
  296. package/src/roap/request.ts +100 -104
  297. package/src/roap/turnDiscovery.ts +48 -26
  298. package/src/rtcMetrics/constants.ts +3 -0
  299. package/src/rtcMetrics/index.ts +100 -0
  300. package/src/statsAnalyzer/index.ts +105 -91
  301. package/src/statsAnalyzer/mqaUtil.ts +13 -14
  302. package/src/webinar/collection.ts +31 -0
  303. package/src/webinar/index.ts +62 -0
  304. package/test/integration/spec/converged-space-meetings.js +60 -3
  305. package/test/integration/spec/journey.js +320 -261
  306. package/test/integration/spec/space-meeting.js +76 -3
  307. package/test/unit/spec/annotation/index.ts +418 -0
  308. package/test/unit/spec/breakouts/breakout.ts +118 -28
  309. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  310. package/test/unit/spec/breakouts/events.ts +89 -0
  311. package/test/unit/spec/breakouts/index.ts +1395 -69
  312. package/test/unit/spec/breakouts/utils.js +52 -1
  313. package/test/unit/spec/common/queue.js +31 -2
  314. package/test/unit/spec/controls-options-manager/index.js +163 -0
  315. package/test/unit/spec/controls-options-manager/util.js +576 -60
  316. package/test/unit/spec/fixture/locus.js +1 -0
  317. package/test/unit/spec/interpretation/collection.ts +15 -0
  318. package/test/unit/spec/interpretation/index.ts +589 -0
  319. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  320. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  321. package/test/unit/spec/locus-info/index.js +1304 -33
  322. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  323. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  324. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  325. package/test/unit/spec/locus-info/parser.js +116 -35
  326. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  327. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  328. package/test/unit/spec/media/index.ts +104 -37
  329. package/test/unit/spec/media/properties.ts +2 -2
  330. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  331. package/test/unit/spec/meeting/index.js +5216 -1956
  332. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  333. package/test/unit/spec/meeting/muteState.js +408 -208
  334. package/test/unit/spec/meeting/request.js +483 -49
  335. package/test/unit/spec/meeting/utils.js +679 -64
  336. package/test/unit/spec/meeting-info/index.js +300 -0
  337. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  338. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  339. package/test/unit/spec/meetings/collection.js +26 -0
  340. package/test/unit/spec/meetings/index.js +1011 -205
  341. package/test/unit/spec/meetings/utils.js +202 -2
  342. package/test/unit/spec/member/index.js +61 -6
  343. package/test/unit/spec/member/util.js +510 -34
  344. package/test/unit/spec/members/index.js +432 -1
  345. package/test/unit/spec/members/request.js +206 -27
  346. package/test/unit/spec/members/utils.js +210 -0
  347. package/test/unit/spec/metrics/index.js +1 -50
  348. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  349. package/test/unit/spec/multistream/receiveSlot.ts +28 -20
  350. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  351. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  352. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  353. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  354. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  355. package/test/unit/spec/reachability/index.ts +549 -9
  356. package/test/unit/spec/reachability/request.js +68 -0
  357. package/test/unit/spec/reconnection-manager/index.js +85 -9
  358. package/test/unit/spec/recording-controller/index.js +294 -218
  359. package/test/unit/spec/recording-controller/util.js +223 -96
  360. package/test/unit/spec/roap/index.ts +178 -64
  361. package/test/unit/spec/roap/request.ts +203 -85
  362. package/test/unit/spec/roap/turnDiscovery.ts +82 -36
  363. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  364. package/test/unit/spec/stats-analyzer/index.js +136 -2
  365. package/test/unit/spec/webinar/collection.ts +13 -0
  366. package/test/unit/spec/webinar/index.ts +60 -0
  367. package/test/utils/integrationTestUtils.js +46 -0
  368. package/test/utils/testUtils.js +0 -52
  369. package/dist/meeting/effectsState.js +0 -262
  370. package/dist/meeting/effectsState.js.map +0 -1
  371. package/dist/metrics/config.js +0 -299
  372. package/dist/metrics/config.js.map +0 -1
  373. package/dist/types/meeting/effectsState.d.ts +0 -42
  374. package/dist/types/metrics/config.d.ts +0 -178
  375. package/src/index.js +0 -16
  376. package/src/meeting/effectsState.ts +0 -211
  377. package/src/metrics/config.ts +0 -495
  378. 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,22 @@ 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,
327
+ sendCAevents,
259
328
  destinationType,
260
329
  body,
261
- options,
330
+ _destinationType$info,
331
+ _destinationType$info2,
332
+ err,
333
+ requestOptions,
262
334
  directURI,
263
335
  _args2 = arguments;
264
336
  return _regenerator.default.wrap(function _callee2$(_context2) {
@@ -267,60 +339,129 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
267
339
  type = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : null;
268
340
  password = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : null;
269
341
  captchaInfo = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : null;
270
- _context2.next = 5;
342
+ installedOrgID = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : null;
343
+ locusId = _args2.length > 5 && _args2[5] !== undefined ? _args2[5] : null;
344
+ extraParams = _args2.length > 6 && _args2[6] !== undefined ? _args2[6] : {};
345
+ options = _args2.length > 7 && _args2[7] !== undefined ? _args2[7] : {};
346
+ meetingId = options.meetingId, sendCAevents = options.sendCAevents;
347
+ _context2.next = 10;
271
348
  return _utilv.default.getDestinationType({
272
349
  destination: destination,
273
350
  type: type,
274
351
  webex: this.webex
275
352
  });
276
- case 5:
353
+ case 10:
277
354
  destinationType = _context2.sent;
278
355
  if (!(destinationType.type === _constants._CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {
279
- _context2.next = 8;
356
+ _context2.next = 13;
280
357
  break;
281
358
  }
282
- return _context2.abrupt("return", this.createAdhocSpaceMeeting(destinationType.destination));
283
- case 8:
284
- _context2.next = 10;
359
+ return _context2.abrupt("return", this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID));
360
+ case 13:
361
+ _context2.next = 15;
285
362
  return _utilv.default.getRequestBody(_objectSpread(_objectSpread({}, destinationType), {}, {
286
363
  password: password,
287
- captchaInfo: captchaInfo
364
+ captchaInfo: captchaInfo,
365
+ installedOrgID: installedOrgID,
366
+ locusId: locusId,
367
+ extraParams: extraParams
288
368
  }));
289
- case 10:
369
+ case 15:
290
370
  body = _context2.sent;
291
- options = {
371
+ if ((0, _difference2.default)((0, _keys.default)(body), (0, _keys.default)(_constants.DEFAULT_MEETING_INFO_REQUEST_BODY)).length) {
372
+ _context2.next = 20;
373
+ break;
374
+ }
375
+ err = new Error('Not enough information to fetch meeting info');
376
+ _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_FAILURE, {
377
+ reason: err.message,
378
+ destinationType: destinationType === null || destinationType === void 0 ? void 0 : destinationType.type,
379
+ webExMeetingId: destinationType === null || destinationType === void 0 ? void 0 : (_destinationType$info = destinationType.info) === null || _destinationType$info === void 0 ? void 0 : _destinationType$info.webExMeetingId,
380
+ sipUri: destinationType === null || destinationType === void 0 ? void 0 : (_destinationType$info2 = destinationType.info) === null || _destinationType$info2 === void 0 ? void 0 : _destinationType$info2.sipUri
381
+ });
382
+ throw err;
383
+ case 20:
384
+ requestOptions = {
292
385
  method: _constants.HTTP_VERBS.POST,
293
386
  body: body
294
387
  };
295
- _context2.next = 14;
388
+ _context2.next = 23;
296
389
  return _utilv.default.getDirectMeetingInfoURI(destinationType);
297
- case 14:
390
+ case 23:
298
391
  directURI = _context2.sent;
299
392
  if (directURI) {
300
- options.uri = directURI;
393
+ requestOptions.uri = directURI;
301
394
  } else {
302
- options.service = _constants.WBXAPPAPI_SERVICE;
303
- options.resource = 'meetingInfo';
395
+ requestOptions.service = _constants.WBXAPPAPI_SERVICE;
396
+ requestOptions.resource = 'meetingInfo';
397
+ }
398
+ if (meetingId && sendCAevents) {
399
+ this.webex.internal.newMetrics.submitInternalEvent({
400
+ name: 'internal.client.meetinginfo.request'
401
+ });
402
+ this.webex.internal.newMetrics.submitClientEvent({
403
+ name: 'client.meetinginfo.request',
404
+ options: {
405
+ meetingId: meetingId
406
+ }
407
+ });
304
408
  }
305
- return _context2.abrupt("return", this.webex.request(options).then(function (response) {
409
+ return _context2.abrupt("return", this.webex.request(requestOptions).then(function (response) {
410
+ if (meetingId && sendCAevents) {
411
+ var _response$body, _response$body2, _response$body3;
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: response === null || response === void 0 ? void 0 : response.url
420
+ }
421
+ },
422
+ options: {
423
+ meetingId: meetingId,
424
+ webexConferenceIdStr: (response === null || response === void 0 ? void 0 : (_response$body = response.body) === null || _response$body === void 0 ? void 0 : _response$body.confIdStr) || (response === null || response === void 0 ? void 0 : (_response$body2 = response.body) === null || _response$body2 === void 0 ? void 0 : _response$body2.confID),
425
+ globalMeetingId: response === null || response === void 0 ? void 0 : (_response$body3 = response.body) === null || _response$body3 === void 0 ? void 0 : _response$body3.meetingId
426
+ }
427
+ });
428
+ }
306
429
  _metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_SUCCESS);
307
430
  return response;
308
431
  }).catch(function (err) {
432
+ if (meetingId && sendCAevents) {
433
+ _this6.webex.internal.newMetrics.submitInternalEvent({
434
+ name: 'internal.client.meetinginfo.response'
435
+ });
436
+ _this6.webex.internal.newMetrics.submitClientEvent({
437
+ name: 'client.meetinginfo.response',
438
+ payload: {
439
+ identifiers: {
440
+ meetingLookupUrl: err === null || err === void 0 ? void 0 : err.url
441
+ }
442
+ },
443
+ options: {
444
+ meetingId: meetingId,
445
+ rawError: err
446
+ }
447
+ });
448
+ }
309
449
  if ((err === null || err === void 0 ? void 0 : err.statusCode) === 403) {
310
- var _err$body3, _err$body4, _err$body4$data;
450
+ var _err$body8, _err$body9, _err$body9$data;
451
+ _this6.handlePolicyError(err);
311
452
  _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_PASSWORD_ERROR, {
312
453
  reason: err.message,
313
454
  stack: err.stack
314
455
  });
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);
456
+ 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
457
  }
317
458
  if ((err === null || err === void 0 ? void 0 : err.statusCode) === 423) {
318
- var _err$body5;
459
+ var _err$body10;
319
460
  _metrics.default.sendBehavioralMetric(_constants2.default.VERIFY_CAPTCHA_ERROR, {
320
461
  reason: err.message,
321
462
  stack: err.stack
322
463
  });
323
- throw new MeetingInfoV2CaptchaError((_err$body5 = err.body) === null || _err$body5 === void 0 ? void 0 : _err$body5.code, {
464
+ throw new MeetingInfoV2CaptchaError((_err$body10 = err.body) === null || _err$body10 === void 0 ? void 0 : _err$body10.code, {
324
465
  captchaId: err.body.captchaID,
325
466
  verificationImageURL: err.body.verificationImageURL,
326
467
  verificationAudioURL: err.body.verificationAudioURL,
@@ -333,13 +474,13 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
333
474
  });
334
475
  throw err;
335
476
  }));
336
- case 17:
477
+ case 27:
337
478
  case "end":
338
479
  return _context2.stop();
339
480
  }
340
481
  }, _callee2, this);
341
482
  }));
342
- function fetchMeetingInfo(_x2) {
483
+ function fetchMeetingInfo(_x3) {
343
484
  return _fetchMeetingInfo.apply(this, arguments);
344
485
  }
345
486
  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","sendCAevents","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","submitClientEvent","response","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","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; sendCAevents?: boolean} = {}\n ) {\n const {meetingId, sendCAevents} = 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 && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\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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"}
@@ -224,7 +224,7 @@ MeetingInfoUtil.generateOptions = /*#__PURE__*/function () {
224
224
  _context.next = 47;
225
225
  break;
226
226
  case 46:
227
- throw new _parameter.default('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');
227
+ throw new _parameter.default('MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.');
228
228
  case 47:
229
229
  return _context.abrupt("return", _promise.default.resolve(options));
230
230
  case 48:
@@ -1 +1 @@
1
- {"version":3,"names":["MeetingInfoUtil","extractDestination","destination","type","dest","_LOCUS_ID_","url","ParameterError","getParsedUrl","link","parsedUrl","parse","protocol","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","value","hostNameBool","hostname","includes","WEBEX_DOT_COM","pathNameBool","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","convertLinkToSip","user","userIndex","lastIndexOf","substring","company","companyIndex","replace","WWW_DOT","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","deconstructHydraId","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","catch","err","generateOptions","from","options","hydraId","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","resolve","waitForCatalog","conversationUrl","conversation","getUrlFromClusterId","getResourceUrl","resource","LOCI","MEETINGINFO","method","HTTP_VERBS","GET","uri","_PERSONAL_ROOM_","_MEETING_ID_","encodeURIComponent","TYPE","USE_URI_LOOKUP_FALSE","PUT","btoa","getRequestParams","resourceOptions","api","requestParams","concat","ALTERNATE_REDIRECT_TRUE","body","lookupType"],"sources":["util.ts"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\nimport {\n // @ts-ignore\n deconstructHydraId,\n} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n _SIP_URI_,\n _PERSONAL_ROOM_,\n _MEETING_ID_,\n _CONVERSATION_URL_,\n _LOCUS_ID_,\n _MEETING_LINK_,\n _PEOPLE_,\n _ROOM_,\n HTTP_VERBS,\n USE_URI_LOOKUP_FALSE,\n TYPE,\n LOCI,\n MEETINGINFO,\n ALTERNATE_REDIRECT_TRUE,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n WWW_DOT,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n} from '../constants';\n\nconst MeetingInfoUtil: any = {};\n\nMeetingInfoUtil.extractDestination = (destination, type) => {\n let dest = destination;\n\n if (type === _LOCUS_ID_) {\n if (!(destination && destination.url)) {\n throw new ParameterError('You cannot create a meeting by locus without a locus.url defined');\n }\n dest = destination.url;\n }\n\n return dest;\n};\n\nMeetingInfoUtil.getParsedUrl = (link) => {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n};\n\n/**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\nMeetingInfoUtil.isMeetingLink = (value: string) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n\n return hostNameBool && pathNameBool;\n};\n\nMeetingInfoUtil.isConversationUrl = (value, webex) => {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n};\n\nMeetingInfoUtil.convertLinkToSip = (value) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n\n if (!parsedUrl) {\n return null;\n }\n let user;\n\n if (parsedUrl.pathname) {\n const userIndex = parsedUrl.pathname.lastIndexOf('/');\n\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n let company;\n\n if (parsedUrl.hostname) {\n const companyIndex = parsedUrl.hostname.lastIndexOf(`.${WEBEX_DOT_COM}`);\n\n company = parsedUrl.hostname.substring(0, companyIndex).replace(WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n\n return `${user}@${company}.${WEBEX_DOT_COM}`;\n};\n\nMeetingInfoUtil.isSipUri = (sipString) => {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n};\n\nMeetingInfoUtil.isPhoneNumber = (phoneNumber) => {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n};\n\nMeetingInfoUtil.getHydraId = (destination) => {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n};\n\nMeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>\n webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n\nMeetingInfoUtil.generateOptions = async (from) => {\n const {destination, type, webex} = from;\n\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = MeetingInfoUtil.getHydraId(destination);\n\n if (MeetingInfoUtil.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = _SIP_URI_;\n\n return MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = _CONVERSATION_URL_;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const conversationUrl = webex.internal.conversation.getUrlFromClusterId({\n cluster: hydraId.cluster,\n id: hydraId.destination,\n });\n\n options.destination = conversationUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError(\n 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'\n );\n }\n\n return Promise.resolve(options);\n};\n\n/**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\nMeetingInfoUtil.getResourceUrl = (type: string, value: any) => {\n let resource = `/${LOCI}/${MEETINGINFO}`;\n let method = HTTP_VERBS.GET;\n let uri = null;\n\n switch (type) {\n case _SIP_URI_:\n case _PERSONAL_ROOM_:\n case _MEETING_ID_:\n resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(\n value\n )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;\n break;\n case _CONVERSATION_URL_:\n method = HTTP_VERBS.PUT;\n break;\n case _LOCUS_ID_:\n uri = `${value}/${MEETINGINFO}`;\n method = HTTP_VERBS.PUT;\n break;\n case _MEETING_LINK_:\n resource = `$/${LOCI}/${MEETINGINFO}/${btoa(\n value\n )}?${TYPE}=${_MEETING_LINK_}&${USE_URI_LOOKUP_FALSE}`;\n break;\n default:\n }\n\n return {\n uri,\n resource,\n method,\n };\n};\n\nMeetingInfoUtil.getRequestParams = (resourceOptions, type, value, api) => {\n let requestParams: any = {\n method: resourceOptions.method,\n api,\n resource: resourceOptions.resource,\n };\n\n if (resourceOptions.method === HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);\n } else if (type !== _LOCUS_ID_) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n requestParams.body = {\n value,\n lookupType: type,\n };\n } else if (type === _LOCUS_ID_) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri,\n };\n }\n\n return requestParams;\n};\n\nexport default MeetingInfoUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["MeetingInfoUtil","extractDestination","destination","type","dest","_LOCUS_ID_","url","ParameterError","getParsedUrl","link","parsedUrl","parse","protocol","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","value","hostNameBool","hostname","includes","WEBEX_DOT_COM","pathNameBool","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","convertLinkToSip","user","userIndex","lastIndexOf","substring","company","companyIndex","replace","WWW_DOT","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","deconstructHydraId","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","catch","err","generateOptions","from","options","hydraId","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","resolve","waitForCatalog","conversationUrl","conversation","getUrlFromClusterId","getResourceUrl","resource","LOCI","MEETINGINFO","method","HTTP_VERBS","GET","uri","_PERSONAL_ROOM_","_MEETING_ID_","encodeURIComponent","TYPE","USE_URI_LOOKUP_FALSE","PUT","btoa","getRequestParams","resourceOptions","api","requestParams","concat","ALTERNATE_REDIRECT_TRUE","body","lookupType"],"sources":["util.ts"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\nimport {\n // @ts-ignore\n deconstructHydraId,\n} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n _SIP_URI_,\n _PERSONAL_ROOM_,\n _MEETING_ID_,\n _CONVERSATION_URL_,\n _LOCUS_ID_,\n _MEETING_LINK_,\n _PEOPLE_,\n _ROOM_,\n HTTP_VERBS,\n USE_URI_LOOKUP_FALSE,\n TYPE,\n LOCI,\n MEETINGINFO,\n ALTERNATE_REDIRECT_TRUE,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n WWW_DOT,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n} from '../constants';\n\nconst MeetingInfoUtil: any = {};\n\nMeetingInfoUtil.extractDestination = (destination, type) => {\n let dest = destination;\n\n if (type === _LOCUS_ID_) {\n if (!(destination && destination.url)) {\n throw new ParameterError('You cannot create a meeting by locus without a locus.url defined');\n }\n dest = destination.url;\n }\n\n return dest;\n};\n\nMeetingInfoUtil.getParsedUrl = (link) => {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n};\n\n/**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\nMeetingInfoUtil.isMeetingLink = (value: string) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n\n return hostNameBool && pathNameBool;\n};\n\nMeetingInfoUtil.isConversationUrl = (value, webex) => {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n};\n\nMeetingInfoUtil.convertLinkToSip = (value) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n\n if (!parsedUrl) {\n return null;\n }\n let user;\n\n if (parsedUrl.pathname) {\n const userIndex = parsedUrl.pathname.lastIndexOf('/');\n\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n let company;\n\n if (parsedUrl.hostname) {\n const companyIndex = parsedUrl.hostname.lastIndexOf(`.${WEBEX_DOT_COM}`);\n\n company = parsedUrl.hostname.substring(0, companyIndex).replace(WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n\n return `${user}@${company}.${WEBEX_DOT_COM}`;\n};\n\nMeetingInfoUtil.isSipUri = (sipString) => {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n};\n\nMeetingInfoUtil.isPhoneNumber = (phoneNumber) => {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n};\n\nMeetingInfoUtil.getHydraId = (destination) => {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n};\n\nMeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>\n webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n\nMeetingInfoUtil.generateOptions = async (from) => {\n const {destination, type, webex} = from;\n\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = MeetingInfoUtil.getHydraId(destination);\n\n if (MeetingInfoUtil.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = _SIP_URI_;\n\n return MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = _CONVERSATION_URL_;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const conversationUrl = webex.internal.conversation.getUrlFromClusterId({\n cluster: hydraId.cluster,\n id: hydraId.destination,\n });\n\n options.destination = conversationUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError(\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'\n );\n }\n\n return Promise.resolve(options);\n};\n\n/**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\nMeetingInfoUtil.getResourceUrl = (type: string, value: any) => {\n let resource = `/${LOCI}/${MEETINGINFO}`;\n let method = HTTP_VERBS.GET;\n let uri = null;\n\n switch (type) {\n case _SIP_URI_:\n case _PERSONAL_ROOM_:\n case _MEETING_ID_:\n resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(\n value\n )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;\n break;\n case _CONVERSATION_URL_:\n method = HTTP_VERBS.PUT;\n break;\n case _LOCUS_ID_:\n uri = `${value}/${MEETINGINFO}`;\n method = HTTP_VERBS.PUT;\n break;\n case _MEETING_LINK_:\n resource = `$/${LOCI}/${MEETINGINFO}/${btoa(\n value\n )}?${TYPE}=${_MEETING_LINK_}&${USE_URI_LOOKUP_FALSE}`;\n break;\n default:\n }\n\n return {\n uri,\n resource,\n method,\n };\n};\n\nMeetingInfoUtil.getRequestParams = (resourceOptions, type, value, api) => {\n let requestParams: any = {\n method: resourceOptions.method,\n api,\n resource: resourceOptions.resource,\n };\n\n if (resourceOptions.method === HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);\n } else if (type !== _LOCUS_ID_) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n requestParams.body = {\n value,\n lookupType: type,\n };\n } else if (type === _LOCUS_ID_) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri,\n };\n }\n\n return requestParams;\n};\n\nexport default MeetingInfoUtil;\n"],"mappings":"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"}