@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.400

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 (629) hide show
  1. package/README.md +58 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +11 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +347 -74
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +125 -18
  89. package/dist/index.js.map +1 -1
  90. package/dist/interceptors/index.js +15 -0
  91. package/dist/interceptors/index.js.map +1 -0
  92. package/dist/interceptors/locusRetry.js +93 -0
  93. package/dist/interceptors/locusRetry.js.map +1 -0
  94. package/dist/interpretation/collection.js +23 -0
  95. package/dist/interpretation/collection.js.map +1 -0
  96. package/dist/interpretation/index.js +380 -0
  97. package/dist/interpretation/index.js.map +1 -0
  98. package/dist/interpretation/siLanguage.js +25 -0
  99. package/dist/interpretation/siLanguage.js.map +1 -0
  100. package/dist/locus-info/controlsUtils.js +101 -29
  101. package/dist/locus-info/controlsUtils.js.map +1 -1
  102. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  103. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  104. package/dist/locus-info/fullState.js +0 -15
  105. package/dist/locus-info/fullState.js.map +1 -1
  106. package/dist/locus-info/hostUtils.js +4 -12
  107. package/dist/locus-info/hostUtils.js.map +1 -1
  108. package/dist/locus-info/index.js +564 -246
  109. package/dist/locus-info/index.js.map +1 -1
  110. package/dist/locus-info/infoUtils.js +10 -38
  111. package/dist/locus-info/infoUtils.js.map +1 -1
  112. package/dist/locus-info/mediaSharesUtils.js +82 -38
  113. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  114. package/dist/locus-info/parser.js +314 -163
  115. package/dist/locus-info/parser.js.map +1 -1
  116. package/dist/locus-info/selfUtils.js +110 -92
  117. package/dist/locus-info/selfUtils.js.map +1 -1
  118. package/dist/media/index.js +107 -231
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +137 -222
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +2 -9
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +316 -501
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +97 -14
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.js +5311 -3871
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/locusMediaRequest.js +292 -0
  131. package/dist/meeting/locusMediaRequest.js.map +1 -0
  132. package/dist/meeting/muteState.js +260 -183
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.js +421 -347
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/request.type.js +7 -0
  137. package/dist/meeting/request.type.js.map +1 -0
  138. package/dist/meeting/state.js +21 -31
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.js +672 -585
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting/voicea-meeting.js +172 -0
  143. package/dist/meeting/voicea-meeting.js.map +1 -0
  144. package/dist/meeting-info/collection.js +6 -25
  145. package/dist/meeting-info/collection.js.map +1 -1
  146. package/dist/meeting-info/index.js +87 -39
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.js +352 -283
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.js +3 -15
  151. package/dist/meeting-info/request.js.map +1 -1
  152. package/dist/meeting-info/util.js +99 -183
  153. package/dist/meeting-info/util.js.map +1 -1
  154. package/dist/meeting-info/utilv2.js +147 -234
  155. package/dist/meeting-info/utilv2.js.map +1 -1
  156. package/dist/meetings/collection.js +43 -19
  157. package/dist/meetings/collection.js.map +1 -1
  158. package/dist/meetings/index.js +895 -600
  159. package/dist/meetings/index.js.map +1 -1
  160. package/dist/meetings/meetings.types.js +7 -0
  161. package/dist/meetings/meetings.types.js.map +1 -0
  162. package/dist/meetings/request.js +26 -41
  163. package/dist/meetings/request.js.map +1 -1
  164. package/dist/meetings/util.js +184 -157
  165. package/dist/meetings/util.js.map +1 -1
  166. package/dist/member/index.js +134 -85
  167. package/dist/member/index.js.map +1 -1
  168. package/dist/member/types.js +25 -0
  169. package/dist/member/types.js.map +1 -0
  170. package/dist/member/util.js +158 -88
  171. package/dist/member/util.js.map +1 -1
  172. package/dist/members/collection.js +13 -12
  173. package/dist/members/collection.js.map +1 -1
  174. package/dist/members/index.js +194 -204
  175. package/dist/members/index.js.map +1 -1
  176. package/dist/members/request.js +113 -68
  177. package/dist/members/request.js.map +1 -1
  178. package/dist/members/types.js +15 -0
  179. package/dist/members/types.js.map +1 -0
  180. package/dist/members/util.js +324 -259
  181. package/dist/members/util.js.map +1 -1
  182. package/dist/metrics/constants.js +19 -7
  183. package/dist/metrics/constants.js.map +1 -1
  184. package/dist/metrics/index.js +11 -558
  185. package/dist/metrics/index.js.map +1 -1
  186. package/dist/multistream/mediaRequestManager.js +263 -50
  187. package/dist/multistream/mediaRequestManager.js.map +1 -1
  188. package/dist/multistream/receiveSlot.js +58 -65
  189. package/dist/multistream/receiveSlot.js.map +1 -1
  190. package/dist/multistream/receiveSlotManager.js +76 -95
  191. package/dist/multistream/receiveSlotManager.js.map +1 -1
  192. package/dist/multistream/remoteMedia.js +62 -76
  193. package/dist/multistream/remoteMedia.js.map +1 -1
  194. package/dist/multistream/remoteMediaGroup.js +82 -45
  195. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  196. package/dist/multistream/remoteMediaManager.js +657 -448
  197. package/dist/multistream/remoteMediaManager.js.map +1 -1
  198. package/dist/multistream/sendSlotManager.js +255 -0
  199. package/dist/multistream/sendSlotManager.js.map +1 -0
  200. package/dist/networkQualityMonitor/index.js +40 -59
  201. package/dist/networkQualityMonitor/index.js.map +1 -1
  202. package/dist/personal-meeting-room/index.js +21 -45
  203. package/dist/personal-meeting-room/index.js.map +1 -1
  204. package/dist/personal-meeting-room/request.js +1 -31
  205. package/dist/personal-meeting-room/request.js.map +1 -1
  206. package/dist/personal-meeting-room/util.js +0 -13
  207. package/dist/personal-meeting-room/util.js.map +1 -1
  208. package/dist/reachability/clusterReachability.js +356 -0
  209. package/dist/reachability/clusterReachability.js.map +1 -0
  210. package/dist/reachability/index.js +297 -460
  211. package/dist/reachability/index.js.map +1 -1
  212. package/dist/reachability/request.js +20 -26
  213. package/dist/reachability/request.js.map +1 -1
  214. package/dist/reachability/util.js +29 -0
  215. package/dist/reachability/util.js.map +1 -0
  216. package/dist/reactions/constants.js +13 -0
  217. package/dist/reactions/constants.js.map +1 -0
  218. package/dist/reactions/reactions.js +109 -0
  219. package/dist/reactions/reactions.js.map +1 -0
  220. package/dist/reactions/reactions.type.js +36 -0
  221. package/dist/reactions/reactions.type.js.map +1 -0
  222. package/dist/reconnection-manager/index.js +413 -483
  223. package/dist/reconnection-manager/index.js.map +1 -1
  224. package/dist/recording-controller/enums.js +17 -0
  225. package/dist/recording-controller/enums.js.map +1 -0
  226. package/dist/recording-controller/index.js +362 -0
  227. package/dist/recording-controller/index.js.map +1 -0
  228. package/dist/recording-controller/util.js +64 -0
  229. package/dist/recording-controller/util.js.map +1 -0
  230. package/dist/roap/index.js +102 -86
  231. package/dist/roap/index.js.map +1 -1
  232. package/dist/roap/request.js +131 -135
  233. package/dist/roap/request.js.map +1 -1
  234. package/dist/roap/turnDiscovery.js +437 -116
  235. package/dist/roap/turnDiscovery.js.map +1 -1
  236. package/dist/rtcMetrics/constants.js +12 -0
  237. package/dist/rtcMetrics/constants.js.map +1 -0
  238. package/dist/rtcMetrics/index.js +179 -0
  239. package/dist/rtcMetrics/index.js.map +1 -0
  240. package/dist/statsAnalyzer/global.js +1 -95
  241. package/dist/statsAnalyzer/global.js.map +1 -1
  242. package/dist/statsAnalyzer/index.js +557 -583
  243. package/dist/statsAnalyzer/index.js.map +1 -1
  244. package/dist/statsAnalyzer/mqaUtil.js +326 -130
  245. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  246. package/dist/transcription/index.js +22 -47
  247. package/dist/transcription/index.js.map +1 -1
  248. package/dist/types/annotation/annotation.types.d.ts +42 -0
  249. package/dist/types/annotation/constants.d.ts +31 -0
  250. package/dist/types/annotation/index.d.ts +117 -0
  251. package/dist/types/breakouts/breakout.d.ts +8 -0
  252. package/dist/types/breakouts/collection.d.ts +5 -0
  253. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  254. package/dist/types/breakouts/events.d.ts +8 -0
  255. package/dist/types/breakouts/index.d.ts +5 -0
  256. package/dist/types/breakouts/request.d.ts +22 -0
  257. package/dist/types/breakouts/utils.d.ts +15 -0
  258. package/dist/types/common/browser-detection.d.ts +9 -0
  259. package/dist/types/common/collection.d.ts +48 -0
  260. package/dist/types/common/config.d.ts +2 -0
  261. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  262. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  263. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  264. package/dist/types/common/errors/media.d.ts +15 -0
  265. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  266. package/dist/types/common/errors/parameter.d.ts +15 -0
  267. package/dist/types/common/errors/password-error.d.ts +15 -0
  268. package/dist/types/common/errors/permission.d.ts +14 -0
  269. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  270. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  271. package/dist/types/common/errors/reconnection.d.ts +15 -0
  272. package/dist/types/common/errors/stats.d.ts +15 -0
  273. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  274. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  275. package/dist/types/common/events/events-scope.d.ts +17 -0
  276. package/dist/types/common/events/events.d.ts +12 -0
  277. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  278. package/dist/types/common/events/util.d.ts +2 -0
  279. package/dist/types/common/logs/logger-config.d.ts +2 -0
  280. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  281. package/dist/types/common/logs/request.d.ts +36 -0
  282. package/dist/types/common/queue.d.ts +34 -0
  283. package/dist/types/config.d.ts +72 -0
  284. package/dist/types/constants.d.ts +1088 -0
  285. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  286. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  287. package/dist/types/controls-options-manager/index.d.ts +136 -0
  288. package/dist/types/controls-options-manager/types.d.ts +43 -0
  289. package/dist/types/controls-options-manager/util.d.ts +1 -0
  290. package/dist/types/index.d.ts +7 -0
  291. package/dist/types/interceptors/index.d.ts +2 -0
  292. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  293. package/dist/types/interpretation/collection.d.ts +5 -0
  294. package/dist/types/interpretation/index.d.ts +5 -0
  295. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  296. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  297. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  298. package/dist/types/locus-info/fullState.d.ts +2 -0
  299. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  300. package/dist/types/locus-info/index.d.ts +322 -0
  301. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  302. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  303. package/dist/types/locus-info/parser.d.ts +272 -0
  304. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  305. package/dist/types/media/index.d.ts +34 -0
  306. package/dist/types/media/properties.d.ts +93 -0
  307. package/dist/types/media/util.d.ts +2 -0
  308. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  309. package/dist/types/meeting/in-meeting-actions.d.ts +167 -0
  310. package/dist/types/meeting/index.d.ts +1824 -0
  311. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  312. package/dist/types/meeting/muteState.d.ts +178 -0
  313. package/dist/types/meeting/request.d.ts +293 -0
  314. package/dist/types/meeting/request.type.d.ts +11 -0
  315. package/dist/types/meeting/state.d.ts +9 -0
  316. package/dist/types/meeting/util.d.ts +118 -0
  317. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  318. package/dist/types/meeting-info/collection.d.ts +20 -0
  319. package/dist/types/meeting-info/index.d.ts +69 -0
  320. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  321. package/dist/types/meeting-info/request.d.ts +22 -0
  322. package/dist/types/meeting-info/util.d.ts +2 -0
  323. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  324. package/dist/types/meetings/collection.d.ts +40 -0
  325. package/dist/types/meetings/index.d.ts +389 -0
  326. package/dist/types/meetings/meetings.types.d.ts +4 -0
  327. package/dist/types/meetings/request.d.ts +27 -0
  328. package/dist/types/meetings/util.d.ts +18 -0
  329. package/dist/types/member/index.d.ts +160 -0
  330. package/dist/types/member/types.d.ts +32 -0
  331. package/dist/types/member/util.d.ts +2 -0
  332. package/dist/types/members/collection.d.ts +29 -0
  333. package/dist/types/members/index.d.ts +353 -0
  334. package/dist/types/members/request.d.ts +114 -0
  335. package/dist/types/members/types.d.ts +25 -0
  336. package/dist/types/members/util.d.ts +215 -0
  337. package/dist/types/metrics/constants.d.ts +70 -0
  338. package/dist/types/metrics/index.d.ts +45 -0
  339. package/dist/types/multistream/mediaRequestManager.d.ts +120 -0
  340. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  341. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  342. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  343. package/dist/types/multistream/remoteMediaGroup.d.ts +49 -0
  344. package/dist/types/multistream/remoteMediaManager.d.ts +301 -0
  345. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  346. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  347. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  348. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  349. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  350. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  351. package/dist/types/reachability/index.d.ts +105 -0
  352. package/dist/types/reachability/request.d.ts +39 -0
  353. package/dist/types/reachability/util.d.ts +8 -0
  354. package/dist/types/reactions/constants.d.ts +3 -0
  355. package/dist/types/reactions/reactions.d.ts +4 -0
  356. package/dist/types/reactions/reactions.type.d.ts +52 -0
  357. package/dist/types/reconnection-manager/index.d.ts +136 -0
  358. package/dist/types/recording-controller/enums.d.ts +7 -0
  359. package/dist/types/recording-controller/index.d.ts +207 -0
  360. package/dist/types/recording-controller/util.d.ts +14 -0
  361. package/dist/types/roap/index.d.ts +86 -0
  362. package/dist/types/roap/request.d.ts +39 -0
  363. package/dist/types/roap/turnDiscovery.d.ts +155 -0
  364. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  365. package/dist/types/rtcMetrics/index.d.ts +61 -0
  366. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  367. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  368. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  369. package/dist/types/transcription/index.d.ts +64 -0
  370. package/dist/types/webinar/collection.d.ts +16 -0
  371. package/dist/types/webinar/index.d.ts +5 -0
  372. package/dist/webinar/collection.js +44 -0
  373. package/dist/webinar/collection.js.map +1 -0
  374. package/dist/webinar/index.js +69 -0
  375. package/dist/webinar/index.js.map +1 -0
  376. package/internal-README.md +7 -6
  377. package/package.json +30 -21
  378. package/src/annotation/annotation.types.ts +50 -0
  379. package/src/annotation/constants.ts +36 -0
  380. package/src/annotation/index.ts +328 -0
  381. package/src/breakouts/README.md +220 -0
  382. package/src/breakouts/breakout.ts +188 -0
  383. package/src/breakouts/collection.ts +19 -0
  384. package/src/breakouts/edit-lock-error.ts +25 -0
  385. package/src/breakouts/events.ts +56 -0
  386. package/src/breakouts/index.ts +925 -0
  387. package/src/breakouts/request.ts +55 -0
  388. package/src/breakouts/utils.ts +57 -0
  389. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  390. package/src/common/collection.ts +9 -7
  391. package/src/common/{config.js → config.ts} +1 -1
  392. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  393. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  394. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  395. package/src/common/errors/{media.js → media.ts} +11 -7
  396. package/src/common/errors/no-meeting-info.ts +24 -0
  397. package/src/common/errors/parameter.ts +11 -7
  398. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  399. package/src/common/errors/{permission.js → permission.ts} +10 -6
  400. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  401. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  402. package/src/common/errors/{stats.js → stats.ts} +11 -7
  403. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  404. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  405. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  406. package/src/common/events/{events.js → events.ts} +5 -1
  407. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  408. package/src/common/events/{util.js → util.ts} +2 -3
  409. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  410. package/src/common/logs/logger-proxy.ts +44 -0
  411. package/src/common/logs/{request.js → request.ts} +26 -9
  412. package/src/common/queue.ts +22 -9
  413. package/src/{config.js → config.ts} +19 -21
  414. package/src/constants.ts +296 -27
  415. package/src/controls-options-manager/constants.ts +5 -0
  416. package/src/controls-options-manager/enums.ts +18 -0
  417. package/src/controls-options-manager/index.ts +278 -0
  418. package/src/controls-options-manager/types.ts +59 -0
  419. package/src/controls-options-manager/util.ts +300 -0
  420. package/src/index.ts +45 -0
  421. package/src/interceptors/index.ts +3 -0
  422. package/src/interceptors/locusRetry.ts +67 -0
  423. package/src/interpretation/README.md +60 -0
  424. package/src/interpretation/collection.ts +19 -0
  425. package/src/interpretation/index.ts +349 -0
  426. package/src/interpretation/siLanguage.ts +18 -0
  427. package/src/locus-info/controlsUtils.ts +222 -0
  428. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  429. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  430. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  431. package/src/locus-info/{index.js → index.ts} +561 -119
  432. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  433. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +97 -17
  434. package/src/locus-info/{parser.js → parser.ts} +303 -104
  435. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  436. package/src/media/index.ts +460 -0
  437. package/src/media/properties.ts +283 -0
  438. package/src/media/{util.js → util.ts} +2 -2
  439. package/src/mediaQualityMetrics/config.ts +249 -0
  440. package/src/meeting/in-meeting-actions.ts +199 -3
  441. package/src/meeting/index.ts +8494 -0
  442. package/src/meeting/locusMediaRequest.ts +313 -0
  443. package/src/meeting/muteState.ts +465 -0
  444. package/src/meeting/request.ts +912 -0
  445. package/src/meeting/request.type.ts +13 -0
  446. package/src/meeting/{state.js → state.ts} +50 -35
  447. package/src/meeting/util.ts +799 -0
  448. package/src/meeting/voicea-meeting.ts +122 -0
  449. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  450. package/src/meeting-info/index.ts +210 -0
  451. package/src/meeting-info/meeting-info-v2.ts +423 -0
  452. package/src/meeting-info/{request.js → request.ts} +14 -4
  453. package/src/meeting-info/{util.js → util.ts} +70 -58
  454. package/src/meeting-info/{utilv2.js → utilv2.ts} +99 -82
  455. package/src/meetings/collection.ts +76 -0
  456. package/src/meetings/index.ts +1539 -0
  457. package/src/meetings/meetings.types.ts +12 -0
  458. package/src/meetings/{request.js → request.ts} +34 -25
  459. package/src/meetings/{util.js → util.ts} +133 -38
  460. package/src/member/{index.js → index.ts} +159 -56
  461. package/src/member/types.ts +38 -0
  462. package/src/member/util.ts +397 -0
  463. package/src/members/{collection.js → collection.ts} +10 -2
  464. package/src/members/{index.js → index.ts} +351 -146
  465. package/src/members/request.ts +255 -0
  466. package/src/members/types.ts +29 -0
  467. package/src/members/util.ts +353 -0
  468. package/src/metrics/{constants.js → constants.ts} +17 -6
  469. package/src/metrics/index.ts +73 -0
  470. package/src/multistream/mediaRequestManager.ts +341 -64
  471. package/src/multistream/receiveSlot.ts +69 -26
  472. package/src/multistream/receiveSlotManager.ts +66 -42
  473. package/src/multistream/remoteMedia.ts +40 -5
  474. package/src/multistream/remoteMediaGroup.ts +82 -3
  475. package/src/multistream/remoteMediaManager.ts +401 -81
  476. package/src/multistream/sendSlotManager.ts +199 -0
  477. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  478. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  479. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  480. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  481. package/src/reachability/clusterReachability.ts +320 -0
  482. package/src/reachability/index.ts +371 -0
  483. package/src/reachability/request.ts +50 -35
  484. package/src/reachability/util.ts +24 -0
  485. package/src/reactions/constants.ts +4 -0
  486. package/src/reactions/reactions.ts +104 -0
  487. package/src/reactions/reactions.type.ts +62 -0
  488. package/src/reconnection-manager/index.ts +643 -0
  489. package/src/recording-controller/enums.ts +8 -0
  490. package/src/recording-controller/index.ts +332 -0
  491. package/src/recording-controller/util.ts +75 -0
  492. package/src/roap/index.ts +288 -0
  493. package/src/roap/request.ts +153 -0
  494. package/src/roap/turnDiscovery.ts +374 -70
  495. package/src/rtcMetrics/constants.ts +3 -0
  496. package/src/rtcMetrics/index.ts +166 -0
  497. package/src/statsAnalyzer/global.ts +37 -0
  498. package/src/statsAnalyzer/index.ts +1275 -0
  499. package/src/statsAnalyzer/mqaUtil.ts +440 -0
  500. package/src/transcription/{index.js → index.ts} +46 -39
  501. package/src/webinar/collection.ts +31 -0
  502. package/src/webinar/index.ts +62 -0
  503. package/test/integration/spec/converged-space-meetings.js +233 -0
  504. package/test/integration/spec/journey.js +791 -531
  505. package/test/integration/spec/space-meeting.js +391 -204
  506. package/test/integration/spec/transcription.js +7 -8
  507. package/test/unit/spec/annotation/index.ts +418 -0
  508. package/test/unit/spec/breakouts/breakout.ts +238 -0
  509. package/test/unit/spec/breakouts/collection.ts +15 -0
  510. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  511. package/test/unit/spec/breakouts/events.ts +89 -0
  512. package/test/unit/spec/breakouts/index.ts +1793 -0
  513. package/test/unit/spec/breakouts/request.ts +104 -0
  514. package/test/unit/spec/breakouts/utils.js +72 -0
  515. package/test/unit/spec/common/browser-detection.js +9 -28
  516. package/test/unit/spec/common/queue.js +31 -2
  517. package/test/unit/spec/controls-options-manager/index.js +287 -0
  518. package/test/unit/spec/controls-options-manager/util.js +582 -0
  519. package/test/unit/spec/fixture/locus.js +93 -90
  520. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  521. package/test/unit/spec/interpretation/collection.ts +15 -0
  522. package/test/unit/spec/interpretation/index.ts +625 -0
  523. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  524. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  525. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  526. package/test/unit/spec/locus-info/index.js +1458 -21
  527. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  528. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  529. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  530. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  531. package/test/unit/spec/locus-info/parser.js +119 -44
  532. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  533. package/test/unit/spec/locus-info/selfUtils.js +291 -12
  534. package/test/unit/spec/media/index.ts +194 -111
  535. package/test/unit/spec/media/properties.ts +11 -11
  536. package/test/unit/spec/meeting/in-meeting-actions.ts +96 -3
  537. package/test/unit/spec/meeting/index.js +8616 -1921
  538. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  539. package/test/unit/spec/meeting/muteState.js +568 -207
  540. package/test/unit/spec/meeting/request.js +602 -82
  541. package/test/unit/spec/meeting/utils.js +867 -179
  542. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  543. package/test/unit/spec/meeting-info/index.js +300 -0
  544. package/test/unit/spec/meeting-info/meetinginfov2.js +631 -78
  545. package/test/unit/spec/meeting-info/request.js +7 -9
  546. package/test/unit/spec/meeting-info/util.js +11 -12
  547. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  548. package/test/unit/spec/meetings/collection.js +27 -1
  549. package/test/unit/spec/meetings/index.js +1826 -374
  550. package/test/unit/spec/meetings/utils.js +243 -14
  551. package/test/unit/spec/member/index.js +61 -7
  552. package/test/unit/spec/member/util.js +526 -26
  553. package/test/unit/spec/members/index.js +536 -55
  554. package/test/unit/spec/members/request.js +228 -40
  555. package/test/unit/spec/members/utils.js +217 -4
  556. package/test/unit/spec/metrics/index.js +13 -68
  557. package/test/unit/spec/multistream/mediaRequestManager.ts +1032 -110
  558. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  559. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  560. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  561. package/test/unit/spec/multistream/remoteMediaGroup.ts +350 -5
  562. package/test/unit/spec/multistream/remoteMediaManager.ts +937 -65
  563. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  564. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  565. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  566. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  567. package/test/unit/spec/reachability/index.ts +606 -26
  568. package/test/unit/spec/reachability/request.js +68 -0
  569. package/test/unit/spec/reachability/util.ts +40 -0
  570. package/test/unit/spec/reconnection-manager/index.js +222 -34
  571. package/test/unit/spec/recording-controller/index.js +306 -0
  572. package/test/unit/spec/recording-controller/util.js +229 -0
  573. package/test/unit/spec/roap/index.ts +238 -82
  574. package/test/unit/spec/roap/request.ts +255 -0
  575. package/test/unit/spec/roap/turnDiscovery.ts +707 -110
  576. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  577. package/test/unit/spec/stats-analyzer/index.js +1331 -62
  578. package/test/unit/spec/webinar/collection.ts +13 -0
  579. package/test/unit/spec/webinar/index.ts +60 -0
  580. package/test/utils/cmr.js +44 -42
  581. package/test/utils/constants.js +9 -0
  582. package/test/utils/integrationTestUtils.js +46 -0
  583. package/test/utils/testUtils.js +63 -99
  584. package/test/utils/webex-config.js +22 -18
  585. package/test/utils/webex-test-users.js +65 -50
  586. package/tsconfig.json +6 -0
  587. package/dist/media/internal-media-core-wrapper.js +0 -22
  588. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  589. package/dist/meeting/effectsState.js +0 -327
  590. package/dist/meeting/effectsState.js.map +0 -1
  591. package/dist/metrics/config.js +0 -301
  592. package/dist/metrics/config.js.map +0 -1
  593. package/dist/multistream/multistreamMedia.js +0 -116
  594. package/dist/multistream/multistreamMedia.js.map +0 -1
  595. package/dist/peer-connection-manager/util.js +0 -124
  596. package/dist/peer-connection-manager/util.js.map +0 -1
  597. package/src/common/logs/logger-proxy.js +0 -33
  598. package/src/index.js +0 -15
  599. package/src/locus-info/controlsUtils.js +0 -102
  600. package/src/media/index.js +0 -459
  601. package/src/media/internal-media-core-wrapper.ts +0 -9
  602. package/src/media/properties.js +0 -289
  603. package/src/mediaQualityMetrics/config.js +0 -382
  604. package/src/meeting/effectsState.js +0 -205
  605. package/src/meeting/index.js +0 -6284
  606. package/src/meeting/muteState.js +0 -318
  607. package/src/meeting/request.js +0 -684
  608. package/src/meeting/util.js +0 -506
  609. package/src/meeting-info/index.js +0 -131
  610. package/src/meeting-info/meeting-info-v2.js +0 -255
  611. package/src/meetings/collection.js +0 -40
  612. package/src/meetings/index.js +0 -1015
  613. package/src/member/util.js +0 -254
  614. package/src/members/request.js +0 -131
  615. package/src/members/util.js +0 -258
  616. package/src/metrics/config.js +0 -324
  617. package/src/metrics/index.js +0 -530
  618. package/src/multistream/multistreamMedia.ts +0 -92
  619. package/src/peer-connection-manager/util.ts +0 -117
  620. package/src/reachability/index.js +0 -464
  621. package/src/reconnection-manager/index.js +0 -519
  622. package/src/roap/index.js +0 -220
  623. package/src/roap/request.js +0 -127
  624. package/src/statsAnalyzer/global.js +0 -133
  625. package/src/statsAnalyzer/index.js +0 -1006
  626. package/src/statsAnalyzer/mqaUtil.js +0 -173
  627. package/test/unit/spec/meeting/effectsState.js +0 -291
  628. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  629. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -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.js"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\nimport {\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 = {};\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 }\n catch (error) {\n LoggerProxy.logger.warn(`Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`);\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) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes(`/${MEET}`) || parsedUrl.pathname.includes(`/${MEET_M}`) || 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\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) => webex.people.get(destination).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}).catch((err) => {\n LoggerProxy.logger.error(`Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `);\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 = {};\n const hydraId = MeetingInfoUtil.getHydraId(destination);\n\n if (MeetingInfoUtil.isMeetingLink(destination)) {\n LoggerProxy.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n }\n else if (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n }\n else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n }\n else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n }\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 }\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 }\n catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw (e);\n }\n }\n else {\n throw new ParameterError('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');\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, value) => {\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(value)}?${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(value)}?${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 = {\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 }\n else\n 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 }\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","serviceUrl","getServiceUrlFromClusterId","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';\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\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 serviceUrl = webex.internal.services.getServiceUrlFromClusterId(\n {\n cluster: hydraId.cluster,\n },\n webex\n );\n\n options.destination = hydraId.destination\n ? `${serviceUrl}/conversations/${hydraId.destination}`\n : serviceUrl;\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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"}
@@ -1,97 +1,80 @@
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
-
5
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
10
  _Object$defineProperty(exports, "__esModule", {
8
11
  value: true
9
12
  });
10
-
11
13
  exports.default = void 0;
12
-
13
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
14
-
15
15
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
-
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
17
17
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
18
-
19
18
  var _url = _interopRequireDefault(require("url"));
20
-
21
19
  var _common = require("@webex/common");
22
-
23
20
  var _constants = require("../constants");
24
-
25
21
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
26
-
27
22
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
28
-
23
+ var _webexErrors = require("../common/errors/webex-errors");
24
+ 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; }
25
+ 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; }
29
26
  var MeetingInfoUtil = {};
30
-
27
+ var meetingInfoError = 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';
31
28
  MeetingInfoUtil.getParsedUrl = function (link) {
32
29
  try {
33
30
  var parsedUrl = _url.default.parse(link);
34
-
35
31
  if (!parsedUrl) {
36
32
  return false;
37
- } // hack for links such as <company>.webex.com/meet/<user> without a protocol
38
-
39
-
33
+ }
34
+ // hack for links such as <company>.webex.com/meet/<user> without a protocol
40
35
  if (!parsedUrl.protocol) {
41
36
  parsedUrl = _url.default.parse("".concat(_constants.HTTPS_PROTOCOL).concat(link));
42
37
  }
43
-
44
38
  return parsedUrl;
45
39
  } catch (error) {
46
40
  _loggerProxy.default.logger.warn("Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ".concat(error));
47
-
48
41
  return null;
49
42
  }
50
43
  };
44
+
51
45
  /**
52
46
  * Helper function to check if a string matches a known meeting link pattern
53
47
  * @param {String} value string to parse and see if it matches a meeting link
54
48
  * @returns {Boolean}
55
49
  */
56
-
57
-
58
50
  MeetingInfoUtil.isMeetingLink = function (value) {
59
51
  var parsedUrl = MeetingInfoUtil.getParsedUrl(value);
60
52
  var hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(_constants.WEBEX_DOT_COM);
61
- var pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes("/".concat(_constants.MEET)) || parsedUrl.pathname.includes("/".concat(_constants.MEET_M)) || parsedUrl.pathname.includes("/".concat(_constants.JOIN)));
53
+ var pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes("/".concat(_constants.MEET)) || parsedUrl.pathname.includes("/".concat(_constants.MEET_M)) || parsedUrl.pathname.includes("/".concat(_constants.MEET_CISCO)) || parsedUrl.pathname.includes("/".concat(_constants.MEET_CO)) || parsedUrl.pathname.includes("/".concat(_constants.JOIN)));
62
54
  return hostNameBool && pathNameBool;
63
55
  };
64
-
65
56
  MeetingInfoUtil.isConversationUrl = function (value, webex) {
66
57
  var clusterId = webex.internal.services.getClusterId(value);
67
-
68
58
  if (clusterId) {
69
59
  return clusterId.endsWith(_constants.CONVERSATION_SERVICE);
70
60
  }
71
-
72
61
  return false;
73
62
  };
74
-
75
63
  MeetingInfoUtil.isSipUri = function (sipString) {
76
64
  // TODO: lets remove regex from this equation and user URI matchers and such
77
65
  // have not found a great sip uri parser library as of now
78
66
  var sipUri = _constants.DIALER_REGEX.SIP_ADDRESS.exec(sipString);
79
-
80
67
  return sipUri;
81
68
  };
82
-
83
69
  MeetingInfoUtil.isPhoneNumber = function (phoneNumber) {
84
70
  var isValidNumber = _constants.DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);
85
-
86
71
  return isValidNumber;
87
72
  };
88
-
89
73
  MeetingInfoUtil.getHydraId = function (destination) {
90
74
  var _deconstructHydraId = (0, _common.deconstructHydraId)(destination),
91
- type = _deconstructHydraId.type,
92
- id = _deconstructHydraId.id,
93
- cluster = _deconstructHydraId.cluster;
94
-
75
+ type = _deconstructHydraId.type,
76
+ id = _deconstructHydraId.id,
77
+ cluster = _deconstructHydraId.cluster;
95
78
  if (id && _constants.UUID_REG.test(id)) {
96
79
  if (type === _constants._ROOM_) {
97
80
  return {
@@ -100,7 +83,6 @@ MeetingInfoUtil.getHydraId = function (destination) {
100
83
  cluster: cluster
101
84
  };
102
85
  }
103
-
104
86
  if (type === _constants._PEOPLE_) {
105
87
  return {
106
88
  people: true,
@@ -108,243 +90,184 @@ MeetingInfoUtil.getHydraId = function (destination) {
108
90
  cluster: cluster
109
91
  };
110
92
  }
111
-
112
93
  return {};
113
94
  }
114
-
115
95
  return {};
116
96
  };
117
-
118
97
  MeetingInfoUtil.getSipUriFromHydraPersonId = function (destination, webex) {
119
98
  return webex.people.get(destination).then(function (res) {
120
99
  if (res.emails && res.emails.length) {
121
100
  return res.emails[0];
122
101
  }
123
-
124
102
  throw new _parameter.default('Hydra Id Lookup was an invalid hydra person id.');
125
103
  }).catch(function (err) {
126
104
  _loggerProxy.default.logger.error("Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ".concat(err, " "));
127
-
128
105
  throw err;
129
106
  });
130
107
  };
131
-
132
108
  MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
133
109
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(from) {
134
- var type, webex, destination, _options, res, _res$items$, orgId, userId, options, hydraId, conversationUrl;
135
-
110
+ var type, webex, destination, _options, res, _res$items$, orgId, userId, options, hydraId;
136
111
  return _regenerator.default.wrap(function _callee$(_context) {
137
- while (1) {
138
- switch (_context.prev = _context.next) {
139
- case 0:
140
- type = from.type, webex = from.webex;
141
- destination = from.destination;
142
-
143
- if (!(type === _constants._PERSONAL_ROOM_)) {
144
- _context.next = 15;
145
- break;
146
- }
147
-
148
- if (destination) {
149
- _context.next = 7;
150
- break;
151
- }
152
-
153
- // if we are not getting anything in desination we fetch org and user ids from webex instance
154
- destination = {
155
- userId: webex.internal.device.userId,
156
- orgId: webex.internal.device.orgId
157
- };
112
+ while (1) switch (_context.prev = _context.next) {
113
+ case 0:
114
+ type = from.type, webex = from.webex;
115
+ destination = from.destination;
116
+ if (!(type === _constants._PERSONAL_ROOM_)) {
158
117
  _context.next = 15;
159
118
  break;
160
-
161
- case 7:
162
- _options = _constants.VALID_EMAIL_ADDRESS.test(destination) ? {
163
- email: destination
164
- } : {
165
- id: destination
166
- }; // we are assuming userId as default
167
-
168
- _context.next = 10;
169
- return webex.people.list(_options);
170
-
171
- case 10:
172
- res = _context.sent;
173
- _res$items$ = res.items[0], orgId = _res$items$.orgId, userId = _res$items$.id;
174
- userId = (0, _common.deconstructHydraId)(userId).id;
175
- orgId = (0, _common.deconstructHydraId)(orgId).id;
176
- destination = {
177
- userId: userId,
178
- orgId: orgId
179
- };
180
-
181
- case 15:
182
- if (!type) {
183
- _context.next = 17;
184
- break;
185
- }
186
-
187
- return _context.abrupt("return", {
188
- destination: destination,
189
- type: type
190
- });
191
-
192
- case 17:
193
- options = {};
119
+ }
120
+ if (destination) {
121
+ _context.next = 7;
122
+ break;
123
+ }
124
+ // if we are not getting anything in desination we fetch org and user ids from webex instance
125
+ destination = {
126
+ userId: webex.internal.device.userId,
127
+ orgId: webex.internal.device.orgId
128
+ };
129
+ _context.next = 15;
130
+ break;
131
+ case 7:
132
+ _options = _constants.VALID_EMAIL_ADDRESS.test(destination) ? {
133
+ email: destination
134
+ } : {
135
+ id: destination
136
+ }; // we are assuming userId as default
137
+ _context.next = 10;
138
+ return webex.people.list(_options);
139
+ case 10:
140
+ res = _context.sent;
141
+ _res$items$ = res.items[0], orgId = _res$items$.orgId, userId = _res$items$.id;
142
+ userId = (0, _common.deconstructHydraId)(userId).id;
143
+ orgId = (0, _common.deconstructHydraId)(orgId).id;
144
+ destination = {
145
+ userId: userId,
146
+ orgId: orgId
147
+ };
148
+ case 15:
149
+ if (!type) {
150
+ _context.next = 17;
151
+ break;
152
+ }
153
+ return _context.abrupt("return", {
154
+ destination: destination,
155
+ type: type
156
+ });
157
+ case 17:
158
+ options = {};
159
+ if (webex && webex.config && webex.config.meetings && webex.config.meetings.disableHydraId) {
160
+ hydraId = null;
161
+ } else {
194
162
  hydraId = MeetingInfoUtil.getHydraId(destination);
195
-
196
- if (!MeetingInfoUtil.isMeetingLink(destination)) {
197
- _context.next = 25;
198
- break;
199
- }
200
-
201
- _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
202
-
203
- options.type = _constants._MEETING_LINK_;
204
- options.destination = destination;
205
- _context.next = 62;
163
+ }
164
+ if (!MeetingInfoUtil.isMeetingLink(destination)) {
165
+ _context.next = 25;
206
166
  break;
207
-
208
- case 25:
209
- if (!MeetingInfoUtil.isSipUri(destination)) {
210
- _context.next = 30;
211
- break;
212
- }
213
-
214
- options.type = _constants._SIP_URI_;
215
- options.destination = destination;
216
- _context.next = 62;
167
+ }
168
+ _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
169
+ options.type = _constants._MEETING_LINK_;
170
+ options.destination = destination;
171
+ _context.next = 52;
172
+ break;
173
+ case 25:
174
+ if (!MeetingInfoUtil.isSipUri(destination)) {
175
+ _context.next = 30;
217
176
  break;
218
-
219
- case 30:
220
- if (!MeetingInfoUtil.isPhoneNumber(destination)) {
221
- _context.next = 35;
222
- break;
223
- }
224
-
225
- options.type = _constants._SIP_URI_;
226
- options.destination = destination;
227
- _context.next = 62;
177
+ }
178
+ options.type = _constants._SIP_URI_;
179
+ options.destination = destination;
180
+ _context.next = 52;
181
+ break;
182
+ case 30:
183
+ if (!MeetingInfoUtil.isPhoneNumber(destination)) {
184
+ _context.next = 35;
228
185
  break;
229
-
230
- case 35:
231
- if (!MeetingInfoUtil.isConversationUrl(destination, webex)) {
232
- _context.next = 40;
233
- break;
234
- }
235
-
236
- options.type = _constants._CONVERSATION_URL_;
237
- options.destination = destination;
238
- _context.next = 62;
186
+ }
187
+ options.type = _constants._SIP_URI_;
188
+ options.destination = destination;
189
+ _context.next = 52;
190
+ break;
191
+ case 35:
192
+ if (!MeetingInfoUtil.isConversationUrl(destination, webex)) {
193
+ _context.next = 40;
239
194
  break;
240
-
241
- case 40:
242
- if (!hydraId.people) {
243
- _context.next = 45;
244
- break;
245
- }
246
-
247
- options.type = _constants._SIP_URI_;
248
- return _context.abrupt("return", MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then(function (res) {
249
- options.destination = res; // Since hydra person ids require a unique case in which they are
250
- // entirely converted to a SIP URI, we need to set a flag for detecting
251
- // this type of destination.
252
-
253
- options.wasHydraPerson = true;
254
- return _promise.default.resolve(options);
255
- }));
256
-
257
- case 45:
258
- if (!hydraId.room) {
259
- _context.next = 60;
260
- break;
261
- }
262
-
263
- options.type = _constants._CONVERSATION_URL_;
264
- _context.prev = 47;
265
- _context.next = 50;
266
- return webex.internal.services.waitForCatalog('postauth');
267
-
268
- case 50:
269
- conversationUrl = webex.internal.conversation.getUrlFromClusterId({
270
- cluster: hydraId.cluster,
271
- id: hydraId.destination
272
- });
273
- options.destination = conversationUrl;
274
- _context.next = 58;
195
+ }
196
+ options.type = _constants._CONVERSATION_URL_;
197
+ options.destination = destination;
198
+ _context.next = 52;
199
+ break;
200
+ case 40:
201
+ if (!(hydraId && hydraId.people)) {
202
+ _context.next = 45;
275
203
  break;
276
-
277
- case 54:
278
- _context.prev = 54;
279
- _context.t0 = _context["catch"](47);
280
-
281
- _loggerProxy.default.logger.error("Meeting-info:util#getDestinationType --> ".concat(_context.t0));
282
-
283
- throw _context.t0;
284
-
285
- case 58:
286
- _context.next = 62;
204
+ }
205
+ options.type = _constants._SIP_URI_;
206
+ return _context.abrupt("return", MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId && hydraId.destination, webex).then(function (res) {
207
+ options.destination = res;
208
+
209
+ // Since hydra person ids require a unique case in which they are
210
+ // entirely converted to a SIP URI, we need to set a flag for detecting
211
+ // this type of destination.
212
+ options.wasHydraPerson = true;
213
+ return _promise.default.resolve(options);
214
+ }));
215
+ case 45:
216
+ if (!hydraId.room) {
217
+ _context.next = 50;
287
218
  break;
288
-
289
- case 60:
290
- _loggerProxy.default.logger.warn('Meeting-info:util#getDestinationType --> (\'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');
291
-
292
- throw new _parameter.default('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');
293
-
294
- case 62:
295
- return _context.abrupt("return", _promise.default.resolve(options));
296
-
297
- case 63:
298
- case "end":
299
- return _context.stop();
300
- }
219
+ }
220
+ _loggerProxy.default.logger.error("Meeting-info:util#getDestinationType --> Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.");
221
+ // Error code 30105 added as Space ID deprecated as of beta, Please refer migration guide.
222
+ throw new _webexErrors.SpaceIDDeprecatedError();
223
+ case 50:
224
+ _loggerProxy.default.logger.warn("Meeting-info:util#getDestinationType --> ".concat(meetingInfoError));
225
+ throw new _parameter.default("".concat(meetingInfoError));
226
+ case 52:
227
+ return _context.abrupt("return", _promise.default.resolve(options));
228
+ case 53:
229
+ case "end":
230
+ return _context.stop();
301
231
  }
302
- }, _callee, null, [[47, 54]]);
232
+ }, _callee);
303
233
  }));
304
-
305
234
  return function (_x) {
306
235
  return _ref.apply(this, arguments);
307
236
  };
308
237
  }();
238
+
309
239
  /**
310
240
  * Helper function to build up a correct locus url depending on the value passed
311
241
  * @param {Object} options type and value to fetch meeting info
312
242
  * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
243
+ * @param {String} options.installedOrgID org ID of user's machine
313
244
  * @param {Object} options.destination ?? value.value
314
245
  * @returns {Object} returns an object with {resource, method}
315
246
  */
316
-
317
-
318
247
  MeetingInfoUtil.getRequestBody = function (options) {
319
248
  var _destination$info, _destination$info2;
320
-
321
249
  var type = options.type,
322
- destination = options.destination,
323
- password = options.password,
324
- captchaInfo = options.captchaInfo;
325
- var body = {
326
- supportHostKey: true,
327
- supportCountryList: true
328
- };
329
-
250
+ destination = options.destination,
251
+ password = options.password,
252
+ captchaInfo = options.captchaInfo,
253
+ installedOrgID = options.installedOrgID,
254
+ locusId = options.locusId,
255
+ extraParams = options.extraParams;
256
+ var body = _objectSpread(_objectSpread({}, _constants.DEFAULT_MEETING_INFO_REQUEST_BODY), extraParams);
330
257
  switch (type) {
331
258
  case _constants._SIP_URI_:
332
259
  body.sipUrl = destination;
333
260
  break;
334
-
335
261
  case _constants._PERSONAL_ROOM_:
336
262
  body.userId = destination.userId;
337
263
  body.orgId = destination.orgId;
338
264
  break;
339
-
340
265
  case _constants._MEETING_ID_:
341
266
  body.meetingKey = destination;
342
267
  break;
343
-
344
268
  case _constants._CONVERSATION_URL_:
345
269
  body.conversationUrl = destination;
346
270
  break;
347
-
348
271
  case _constants._LOCUS_ID_:
349
272
  // use meetingID for the completer meeting info for the already started meeting
350
273
  if ((_destination$info = destination.info) !== null && _destination$info !== void 0 && _destination$info.webExMeetingId) {
@@ -352,47 +275,45 @@ MeetingInfoUtil.getRequestBody = function (options) {
352
275
  } else if ((_destination$info2 = destination.info) !== null && _destination$info2 !== void 0 && _destination$info2.sipUri) {
353
276
  body.sipUrl = destination.info.sipUri;
354
277
  }
355
-
356
278
  break;
357
-
358
279
  case _constants._MEETING_LINK_:
359
280
  body.meetingUrl = destination;
360
281
  break;
361
-
362
282
  case _constants._MEETING_UUID_:
363
283
  {
364
284
  body.meetingUUID = destination;
365
285
  break;
366
286
  }
367
-
368
287
  default:
369
288
  }
370
-
371
289
  if (password) {
372
290
  body.password = password;
373
291
  }
374
-
375
292
  if (captchaInfo) {
376
293
  body.captchaID = captchaInfo.id;
377
294
  body.captchaVerifyCode = captchaInfo.code;
378
295
  }
379
-
296
+ if (installedOrgID) {
297
+ body.installedOrgID = installedOrgID;
298
+ }
299
+ if (locusId) {
300
+ body.locusId = locusId;
301
+ }
380
302
  return body;
381
303
  };
304
+
382
305
  /**
383
306
  * Helper function to parse the webex site/host from a URI string.
384
307
  * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')
385
308
  * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')
386
309
  */
387
-
388
-
389
310
  MeetingInfoUtil.getWebexSite = function (uri) {
390
311
  var _uri$match;
391
-
392
312
  var exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];
393
313
  var site = uri === null || uri === void 0 ? void 0 : (_uri$match = uri.match(/.+@([^.]+\.[^.]+\.[^.]+)$/)) === null || _uri$match === void 0 ? void 0 : _uri$match[1];
394
314
  return exceptedDomains.includes(site) ? null : site;
395
315
  };
316
+
396
317
  /**
397
318
  * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).
398
319
  * @param {Object} options type and value to fetch meeting info
@@ -400,30 +321,22 @@ MeetingInfoUtil.getWebexSite = function (uri) {
400
321
  * @param {Object} options.destination ?? value.value
401
322
  * @returns {String} returns a URI string or null of there is no direct URI
402
323
  */
403
-
404
-
405
324
  MeetingInfoUtil.getDirectMeetingInfoURI = function (options) {
406
325
  var _destination$info3;
407
-
408
326
  var type = options.type,
409
- destination = options.destination;
327
+ destination = options.destination;
410
328
  var preferredWebexSite = null;
411
-
412
329
  switch (type) {
413
330
  case _constants._SIP_URI_:
414
331
  preferredWebexSite = MeetingInfoUtil.getWebexSite(destination);
415
332
  break;
416
-
417
333
  case _constants._LOCUS_ID_:
418
334
  preferredWebexSite = (_destination$info3 = destination.info) === null || _destination$info3 === void 0 ? void 0 : _destination$info3.webExSite;
419
335
  break;
420
-
421
336
  default:
422
337
  }
423
-
424
338
  return preferredWebexSite ? "https://".concat(preferredWebexSite, "/wbxappapi/v1/meetingInfo") : null;
425
339
  };
426
-
427
340
  var _default = MeetingInfoUtil;
428
341
  exports.default = _default;
429
342
  //# sourceMappingURL=utilv2.js.map