@webex/plugin-meetings 3.0.0-beta.8 → 3.0.0-beta.80

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 (503) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +178 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +843 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +56 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +7 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +154 -52
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +16 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +261 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +39 -0
  72. package/dist/controls-options-manager/util.js.map +1 -0
  73. package/dist/index.js +11 -18
  74. package/dist/index.js.map +1 -1
  75. package/dist/locus-info/controlsUtils.js +31 -29
  76. package/dist/locus-info/controlsUtils.js.map +1 -1
  77. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  78. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  79. package/dist/locus-info/fullState.js +0 -15
  80. package/dist/locus-info/fullState.js.map +1 -1
  81. package/dist/locus-info/hostUtils.js +4 -12
  82. package/dist/locus-info/hostUtils.js.map +1 -1
  83. package/dist/locus-info/index.js +242 -201
  84. package/dist/locus-info/index.js.map +1 -1
  85. package/dist/locus-info/infoUtils.js +3 -37
  86. package/dist/locus-info/infoUtils.js.map +1 -1
  87. package/dist/locus-info/mediaSharesUtils.js +12 -38
  88. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  89. package/dist/locus-info/parser.js +92 -118
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +87 -91
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +56 -146
  94. package/dist/media/index.js.map +1 -1
  95. package/dist/media/properties.js +83 -117
  96. package/dist/media/properties.js.map +1 -1
  97. package/dist/media/util.js +2 -9
  98. package/dist/media/util.js.map +1 -1
  99. package/dist/mediaQualityMetrics/config.js +505 -495
  100. package/dist/mediaQualityMetrics/config.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +35 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2264 -2242
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +102 -100
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +308 -264
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +69 -217
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +268 -279
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +154 -232
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +26 -19
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +566 -552
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +26 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +151 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +100 -85
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/types.js +15 -0
  138. package/dist/member/types.js.map +1 -0
  139. package/dist/member/util.js +90 -68
  140. package/dist/member/util.js.map +1 -1
  141. package/dist/members/collection.js +13 -12
  142. package/dist/members/collection.js.map +1 -1
  143. package/dist/members/index.js +175 -204
  144. package/dist/members/index.js.map +1 -1
  145. package/dist/members/request.js +54 -39
  146. package/dist/members/request.js.map +1 -1
  147. package/dist/members/types.js +15 -0
  148. package/dist/members/types.js.map +1 -0
  149. package/dist/members/util.js +107 -44
  150. package/dist/members/util.js.map +1 -1
  151. package/dist/metrics/config.js +4 -14
  152. package/dist/metrics/config.js.map +1 -1
  153. package/dist/metrics/constants.js +3 -7
  154. package/dist/metrics/constants.js.map +1 -1
  155. package/dist/metrics/index.js +59 -156
  156. package/dist/metrics/index.js.map +1 -1
  157. package/dist/multistream/mediaRequestManager.js +167 -50
  158. package/dist/multistream/mediaRequestManager.js.map +1 -1
  159. package/dist/multistream/receiveSlot.js +58 -65
  160. package/dist/multistream/receiveSlot.js.map +1 -1
  161. package/dist/multistream/receiveSlotManager.js +74 -93
  162. package/dist/multistream/receiveSlotManager.js.map +1 -1
  163. package/dist/multistream/remoteMedia.js +55 -74
  164. package/dist/multistream/remoteMedia.js.map +1 -1
  165. package/dist/multistream/remoteMediaGroup.js +6 -40
  166. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  167. package/dist/multistream/remoteMediaManager.js +466 -442
  168. package/dist/multistream/remoteMediaManager.js.map +1 -1
  169. package/dist/networkQualityMonitor/index.js +40 -59
  170. package/dist/networkQualityMonitor/index.js.map +1 -1
  171. package/dist/personal-meeting-room/index.js +21 -45
  172. package/dist/personal-meeting-room/index.js.map +1 -1
  173. package/dist/personal-meeting-room/request.js +1 -31
  174. package/dist/personal-meeting-room/request.js.map +1 -1
  175. package/dist/personal-meeting-room/util.js +0 -13
  176. package/dist/personal-meeting-room/util.js.map +1 -1
  177. package/dist/reachability/index.js +192 -191
  178. package/dist/reachability/index.js.map +1 -1
  179. package/dist/reachability/request.js +15 -23
  180. package/dist/reachability/request.js.map +1 -1
  181. package/dist/reactions/constants.js +13 -0
  182. package/dist/reactions/constants.js.map +1 -0
  183. package/dist/reactions/reactions.js +109 -0
  184. package/dist/reactions/reactions.js.map +1 -0
  185. package/dist/reactions/reactions.type.js +36 -0
  186. package/dist/reactions/reactions.type.js.map +1 -0
  187. package/dist/reconnection-manager/index.js +340 -460
  188. package/dist/reconnection-manager/index.js.map +1 -1
  189. package/dist/recording-controller/enums.js +17 -0
  190. package/dist/recording-controller/enums.js.map +1 -0
  191. package/dist/recording-controller/index.js +343 -0
  192. package/dist/recording-controller/index.js.map +1 -0
  193. package/dist/recording-controller/util.js +63 -0
  194. package/dist/recording-controller/util.js.map +1 -0
  195. package/dist/roap/index.js +48 -70
  196. package/dist/roap/index.js.map +1 -1
  197. package/dist/roap/request.js +143 -131
  198. package/dist/roap/request.js.map +1 -1
  199. package/dist/roap/turnDiscovery.js +91 -98
  200. package/dist/roap/turnDiscovery.js.map +1 -1
  201. package/dist/statsAnalyzer/global.js +1 -95
  202. package/dist/statsAnalyzer/global.js.map +1 -1
  203. package/dist/statsAnalyzer/index.js +385 -459
  204. package/dist/statsAnalyzer/index.js.map +1 -1
  205. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  206. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  207. package/dist/transcription/index.js +22 -47
  208. package/dist/transcription/index.js.map +1 -1
  209. package/dist/types/breakouts/breakout.d.ts +8 -0
  210. package/dist/types/breakouts/collection.d.ts +5 -0
  211. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  212. package/dist/types/breakouts/index.d.ts +5 -0
  213. package/dist/types/breakouts/request.d.ts +22 -0
  214. package/dist/types/breakouts/utils.d.ts +8 -0
  215. package/dist/types/common/browser-detection.d.ts +9 -0
  216. package/dist/types/common/collection.d.ts +48 -0
  217. package/dist/types/common/config.d.ts +2 -0
  218. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  219. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  220. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  221. package/dist/types/common/errors/media.d.ts +15 -0
  222. package/dist/types/common/errors/parameter.d.ts +15 -0
  223. package/dist/types/common/errors/password-error.d.ts +15 -0
  224. package/dist/types/common/errors/permission.d.ts +14 -0
  225. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  226. package/dist/types/common/errors/reconnection.d.ts +15 -0
  227. package/dist/types/common/errors/stats.d.ts +15 -0
  228. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  229. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  230. package/dist/types/common/events/events-scope.d.ts +17 -0
  231. package/dist/types/common/events/events.d.ts +12 -0
  232. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  233. package/dist/types/common/events/util.d.ts +2 -0
  234. package/dist/types/common/logs/logger-config.d.ts +2 -0
  235. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  236. package/dist/types/common/logs/request.d.ts +34 -0
  237. package/dist/types/common/queue.d.ts +32 -0
  238. package/dist/types/config.d.ts +78 -0
  239. package/dist/types/constants.d.ts +952 -0
  240. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  241. package/dist/types/controls-options-manager/enums.d.ts +6 -0
  242. package/dist/types/controls-options-manager/index.d.ts +128 -0
  243. package/dist/types/controls-options-manager/util.d.ts +9 -0
  244. package/dist/types/index.d.ts +6 -0
  245. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  246. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  247. package/dist/types/locus-info/fullState.d.ts +2 -0
  248. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  249. package/dist/types/locus-info/index.d.ts +277 -0
  250. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  251. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  252. package/dist/types/locus-info/parser.d.ts +212 -0
  253. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  254. package/dist/types/media/index.d.ts +32 -0
  255. package/dist/types/media/properties.d.ts +108 -0
  256. package/dist/types/media/util.d.ts +2 -0
  257. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  258. package/dist/types/meeting/in-meeting-actions.d.ts +105 -0
  259. package/dist/types/meeting/index.d.ts +1721 -0
  260. package/dist/types/meeting/muteState.d.ts +132 -0
  261. package/dist/types/meeting/request.d.ts +271 -0
  262. package/dist/types/meeting/request.type.d.ts +11 -0
  263. package/dist/types/meeting/state.d.ts +9 -0
  264. package/dist/types/meeting/util.d.ts +2 -0
  265. package/dist/types/meeting-info/collection.d.ts +20 -0
  266. package/dist/types/meeting-info/index.d.ts +57 -0
  267. package/dist/types/meeting-info/meeting-info-v2.d.ts +111 -0
  268. package/dist/types/meeting-info/request.d.ts +22 -0
  269. package/dist/types/meeting-info/util.d.ts +2 -0
  270. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  271. package/dist/types/meetings/collection.d.ts +31 -0
  272. package/dist/types/meetings/index.d.ts +315 -0
  273. package/dist/types/meetings/request.d.ts +27 -0
  274. package/dist/types/meetings/util.d.ts +18 -0
  275. package/dist/types/member/index.d.ts +156 -0
  276. package/dist/types/member/types.d.ts +21 -0
  277. package/dist/types/member/util.d.ts +2 -0
  278. package/dist/types/members/collection.d.ts +29 -0
  279. package/dist/types/members/index.d.ts +353 -0
  280. package/dist/types/members/request.d.ts +69 -0
  281. package/dist/types/members/types.d.ts +24 -0
  282. package/dist/types/members/util.d.ts +2 -0
  283. package/dist/types/metrics/config.d.ts +171 -0
  284. package/dist/types/metrics/constants.d.ts +54 -0
  285. package/dist/types/metrics/index.d.ts +152 -0
  286. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  287. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  288. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  289. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  290. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  291. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  292. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  293. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  294. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  295. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  296. package/dist/types/reachability/index.d.ts +152 -0
  297. package/dist/types/reachability/request.d.ts +37 -0
  298. package/dist/types/reactions/constants.d.ts +3 -0
  299. package/dist/types/reactions/reactions.d.ts +4 -0
  300. package/dist/types/reactions/reactions.type.d.ts +52 -0
  301. package/dist/types/reconnection-manager/index.d.ts +126 -0
  302. package/dist/types/recording-controller/enums.d.ts +7 -0
  303. package/dist/types/recording-controller/index.d.ts +193 -0
  304. package/dist/types/recording-controller/util.d.ts +13 -0
  305. package/dist/types/roap/index.d.ts +77 -0
  306. package/dist/types/roap/request.d.ts +38 -0
  307. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  308. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  309. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  310. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  311. package/dist/types/transcription/index.d.ts +64 -0
  312. package/internal-README.md +7 -6
  313. package/package.json +27 -20
  314. package/src/breakouts/README.md +219 -0
  315. package/src/breakouts/breakout.ts +153 -0
  316. package/src/breakouts/collection.ts +19 -0
  317. package/src/breakouts/edit-lock-error.ts +25 -0
  318. package/src/breakouts/index.ts +745 -0
  319. package/src/breakouts/request.ts +55 -0
  320. package/src/breakouts/utils.ts +44 -0
  321. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  322. package/src/common/collection.ts +9 -7
  323. package/src/common/{config.js → config.ts} +1 -1
  324. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  325. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  326. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  327. package/src/common/errors/{media.js → media.ts} +11 -7
  328. package/src/common/errors/parameter.ts +11 -7
  329. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  330. package/src/common/errors/{permission.js → permission.ts} +10 -6
  331. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  332. package/src/common/errors/{stats.js → stats.ts} +11 -7
  333. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  334. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  335. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  336. package/src/common/events/{events.js → events.ts} +5 -1
  337. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  338. package/src/common/events/{util.js → util.ts} +2 -3
  339. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  340. package/src/common/logs/logger-proxy.ts +44 -0
  341. package/src/common/logs/{request.js → request.ts} +22 -9
  342. package/src/common/queue.ts +1 -2
  343. package/src/{config.js → config.ts} +18 -12
  344. package/src/constants.ts +101 -5
  345. package/src/controls-options-manager/constants.ts +5 -0
  346. package/src/controls-options-manager/enums.ts +7 -0
  347. package/src/controls-options-manager/index.ts +240 -0
  348. package/src/controls-options-manager/util.ts +30 -0
  349. package/src/index.js +4 -1
  350. package/src/locus-info/controlsUtils.ts +141 -0
  351. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  352. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  353. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  354. package/src/locus-info/{index.js → index.ts} +218 -73
  355. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  356. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  357. package/src/locus-info/{parser.js → parser.ts} +67 -79
  358. package/src/locus-info/{selfUtils.js → selfUtils.ts} +187 -68
  359. package/src/media/{index.js → index.ts} +179 -176
  360. package/src/media/{properties.js → properties.ts} +60 -37
  361. package/src/media/{util.js → util.ts} +2 -2
  362. package/src/mediaQualityMetrics/config.ts +384 -0
  363. package/src/meeting/in-meeting-actions.ts +75 -3
  364. package/src/meeting/{index.js → index.ts} +2658 -1598
  365. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  366. package/src/meeting/{request.js → request.ts} +326 -142
  367. package/src/meeting/request.type.ts +13 -0
  368. package/src/meeting/{state.js → state.ts} +50 -35
  369. package/src/meeting/{util.js → util.ts} +136 -115
  370. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  371. package/src/meeting-info/{index.js → index.ts} +42 -36
  372. package/src/meeting-info/meeting-info-v2.ts +342 -0
  373. package/src/meeting-info/{request.js → request.ts} +14 -4
  374. package/src/meeting-info/{util.js → util.ts} +60 -51
  375. package/src/meeting-info/{utilv2.js → utilv2.ts} +74 -61
  376. package/src/meetings/{collection.js → collection.ts} +26 -3
  377. package/src/meetings/index.ts +1280 -0
  378. package/src/meetings/{request.js → request.ts} +34 -25
  379. package/src/meetings/{util.js → util.ts} +99 -33
  380. package/src/member/{index.js → index.ts} +124 -56
  381. package/src/member/types.ts +24 -0
  382. package/src/member/{util.js → util.ts} +105 -25
  383. package/src/members/{collection.js → collection.ts} +10 -2
  384. package/src/members/{index.js → index.ts} +316 -144
  385. package/src/members/request.ts +215 -0
  386. package/src/members/types.ts +28 -0
  387. package/src/members/{util.js → util.ts} +145 -54
  388. package/src/metrics/{config.js → config.ts} +255 -92
  389. package/src/metrics/{constants.js → constants.ts} +1 -6
  390. package/src/metrics/{index.js → index.ts} +110 -94
  391. package/src/multistream/mediaRequestManager.ts +201 -43
  392. package/src/multistream/receiveSlot.ts +69 -26
  393. package/src/multistream/receiveSlotManager.ts +62 -38
  394. package/src/multistream/remoteMedia.ts +30 -4
  395. package/src/multistream/remoteMediaGroup.ts +4 -3
  396. package/src/multistream/remoteMediaManager.ts +230 -66
  397. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  398. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  399. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  400. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  401. package/src/reachability/{index.js → index.ts} +157 -94
  402. package/src/reachability/request.ts +46 -35
  403. package/src/reactions/constants.ts +4 -0
  404. package/src/reactions/reactions.ts +104 -0
  405. package/src/reactions/reactions.type.ts +62 -0
  406. package/src/reconnection-manager/{index.js → index.ts} +231 -120
  407. package/src/recording-controller/enums.ts +8 -0
  408. package/src/recording-controller/index.ts +315 -0
  409. package/src/recording-controller/util.ts +58 -0
  410. package/src/roap/{index.js → index.ts} +77 -60
  411. package/src/roap/request.ts +172 -0
  412. package/src/roap/turnDiscovery.ts +81 -41
  413. package/src/statsAnalyzer/global.ts +37 -0
  414. package/src/statsAnalyzer/index.ts +1273 -0
  415. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  416. package/src/transcription/{index.js → index.ts} +46 -39
  417. package/test/integration/spec/converged-space-meetings.js +176 -0
  418. package/test/integration/spec/journey.js +665 -464
  419. package/test/integration/spec/space-meeting.js +320 -206
  420. package/test/integration/spec/transcription.js +7 -8
  421. package/test/unit/spec/breakouts/breakout.ts +178 -0
  422. package/test/unit/spec/breakouts/collection.ts +15 -0
  423. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  424. package/test/unit/spec/breakouts/index.ts +1252 -0
  425. package/test/unit/spec/breakouts/request.ts +104 -0
  426. package/test/unit/spec/breakouts/utils.js +54 -0
  427. package/test/unit/spec/common/browser-detection.js +9 -28
  428. package/test/unit/spec/controls-options-manager/index.js +204 -0
  429. package/test/unit/spec/controls-options-manager/util.js +86 -0
  430. package/test/unit/spec/fixture/locus.js +92 -90
  431. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  432. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  433. package/test/unit/spec/locus-info/index.js +333 -3
  434. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  435. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  436. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  437. package/test/unit/spec/locus-info/parser.js +3 -9
  438. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  439. package/test/unit/spec/locus-info/selfUtils.js +191 -12
  440. package/test/unit/spec/media/index.ts +72 -8
  441. package/test/unit/spec/media/properties.ts +9 -9
  442. package/test/unit/spec/meeting/in-meeting-actions.ts +34 -3
  443. package/test/unit/spec/meeting/index.js +2547 -802
  444. package/test/unit/spec/meeting/muteState.js +146 -61
  445. package/test/unit/spec/meeting/request.js +141 -43
  446. package/test/unit/spec/meeting/utils.js +166 -163
  447. package/test/unit/spec/meeting-info/meetinginfov2.js +241 -74
  448. package/test/unit/spec/meeting-info/request.js +7 -9
  449. package/test/unit/spec/meeting-info/util.js +11 -12
  450. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  451. package/test/unit/spec/meetings/collection.js +15 -1
  452. package/test/unit/spec/meetings/index.js +682 -262
  453. package/test/unit/spec/meetings/utils.js +65 -14
  454. package/test/unit/spec/member/index.js +24 -1
  455. package/test/unit/spec/member/util.js +359 -32
  456. package/test/unit/spec/members/index.js +402 -54
  457. package/test/unit/spec/members/request.js +76 -20
  458. package/test/unit/spec/members/utils.js +191 -4
  459. package/test/unit/spec/metrics/index.js +16 -21
  460. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  461. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  462. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  463. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  464. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  465. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  466. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  467. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  468. package/test/unit/spec/reachability/index.ts +176 -27
  469. package/test/unit/spec/reachability/request.js +66 -0
  470. package/test/unit/spec/reconnection-manager/index.js +62 -30
  471. package/test/unit/spec/recording-controller/index.js +231 -0
  472. package/test/unit/spec/recording-controller/util.js +102 -0
  473. package/test/unit/spec/roap/index.ts +12 -8
  474. package/test/unit/spec/roap/request.ts +217 -0
  475. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  476. package/test/unit/spec/stats-analyzer/index.js +116 -60
  477. package/test/utils/cmr.js +44 -42
  478. package/test/utils/constants.js +9 -0
  479. package/test/utils/testUtils.js +98 -77
  480. package/test/utils/webex-config.js +22 -18
  481. package/test/utils/webex-test-users.js +57 -50
  482. package/tsconfig.json +6 -0
  483. package/dist/media/internal-media-core-wrapper.js +0 -22
  484. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  485. package/dist/meeting/effectsState.js +0 -327
  486. package/dist/meeting/effectsState.js.map +0 -1
  487. package/dist/multistream/multistreamMedia.js +0 -116
  488. package/dist/multistream/multistreamMedia.js.map +0 -1
  489. package/src/common/logs/logger-proxy.js +0 -33
  490. package/src/locus-info/controlsUtils.js +0 -102
  491. package/src/media/internal-media-core-wrapper.ts +0 -9
  492. package/src/mediaQualityMetrics/config.js +0 -382
  493. package/src/meeting/effectsState.js +0 -205
  494. package/src/meeting-info/meeting-info-v2.js +0 -255
  495. package/src/meetings/index.js +0 -1015
  496. package/src/members/request.js +0 -131
  497. package/src/multistream/multistreamMedia.ts +0 -92
  498. package/src/roap/request.js +0 -127
  499. package/src/statsAnalyzer/global.js +0 -133
  500. package/src/statsAnalyzer/index.js +0 -1006
  501. package/src/statsAnalyzer/mqaUtil.js +0 -173
  502. package/test/unit/spec/meeting/effectsState.js +0 -291
  503. /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","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,97 +1,78 @@
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
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
29
25
  var MeetingInfoUtil = {};
30
-
31
26
  MeetingInfoUtil.getParsedUrl = function (link) {
32
27
  try {
33
28
  var parsedUrl = _url.default.parse(link);
34
-
35
29
  if (!parsedUrl) {
36
30
  return false;
37
- } // hack for links such as <company>.webex.com/meet/<user> without a protocol
38
-
39
-
31
+ }
32
+ // hack for links such as <company>.webex.com/meet/<user> without a protocol
40
33
  if (!parsedUrl.protocol) {
41
34
  parsedUrl = _url.default.parse("".concat(_constants.HTTPS_PROTOCOL).concat(link));
42
35
  }
43
-
44
36
  return parsedUrl;
45
37
  } catch (error) {
46
38
  _loggerProxy.default.logger.warn("Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ".concat(error));
47
-
48
39
  return null;
49
40
  }
50
41
  };
42
+
51
43
  /**
52
44
  * Helper function to check if a string matches a known meeting link pattern
53
45
  * @param {String} value string to parse and see if it matches a meeting link
54
46
  * @returns {Boolean}
55
47
  */
56
-
57
-
58
48
  MeetingInfoUtil.isMeetingLink = function (value) {
59
49
  var parsedUrl = MeetingInfoUtil.getParsedUrl(value);
60
50
  var hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(_constants.WEBEX_DOT_COM);
61
51
  var pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes("/".concat(_constants.MEET)) || parsedUrl.pathname.includes("/".concat(_constants.MEET_M)) || parsedUrl.pathname.includes("/".concat(_constants.JOIN)));
62
52
  return hostNameBool && pathNameBool;
63
53
  };
64
-
65
54
  MeetingInfoUtil.isConversationUrl = function (value, webex) {
66
55
  var clusterId = webex.internal.services.getClusterId(value);
67
-
68
56
  if (clusterId) {
69
57
  return clusterId.endsWith(_constants.CONVERSATION_SERVICE);
70
58
  }
71
-
72
59
  return false;
73
60
  };
74
-
75
61
  MeetingInfoUtil.isSipUri = function (sipString) {
76
62
  // TODO: lets remove regex from this equation and user URI matchers and such
77
63
  // have not found a great sip uri parser library as of now
78
64
  var sipUri = _constants.DIALER_REGEX.SIP_ADDRESS.exec(sipString);
79
-
80
65
  return sipUri;
81
66
  };
82
-
83
67
  MeetingInfoUtil.isPhoneNumber = function (phoneNumber) {
84
68
  var isValidNumber = _constants.DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);
85
-
86
69
  return isValidNumber;
87
70
  };
88
-
89
71
  MeetingInfoUtil.getHydraId = function (destination) {
90
72
  var _deconstructHydraId = (0, _common.deconstructHydraId)(destination),
91
- type = _deconstructHydraId.type,
92
- id = _deconstructHydraId.id,
93
- cluster = _deconstructHydraId.cluster;
94
-
73
+ type = _deconstructHydraId.type,
74
+ id = _deconstructHydraId.id,
75
+ cluster = _deconstructHydraId.cluster;
95
76
  if (id && _constants.UUID_REG.test(id)) {
96
77
  if (type === _constants._ROOM_) {
97
78
  return {
@@ -100,7 +81,6 @@ MeetingInfoUtil.getHydraId = function (destination) {
100
81
  cluster: cluster
101
82
  };
102
83
  }
103
-
104
84
  if (type === _constants._PEOPLE_) {
105
85
  return {
106
86
  people: true,
@@ -108,204 +88,165 @@ MeetingInfoUtil.getHydraId = function (destination) {
108
88
  cluster: cluster
109
89
  };
110
90
  }
111
-
112
91
  return {};
113
92
  }
114
-
115
93
  return {};
116
94
  };
117
-
118
95
  MeetingInfoUtil.getSipUriFromHydraPersonId = function (destination, webex) {
119
96
  return webex.people.get(destination).then(function (res) {
120
97
  if (res.emails && res.emails.length) {
121
98
  return res.emails[0];
122
99
  }
123
-
124
100
  throw new _parameter.default('Hydra Id Lookup was an invalid hydra person id.');
125
101
  }).catch(function (err) {
126
102
  _loggerProxy.default.logger.error("Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ".concat(err, " "));
127
-
128
103
  throw err;
129
104
  });
130
105
  };
131
-
132
106
  MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
133
107
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(from) {
134
108
  var type, webex, destination, _options, res, _res$items$, orgId, userId, options, hydraId, conversationUrl;
135
-
136
109
  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
- };
110
+ while (1) switch (_context.prev = _context.next) {
111
+ case 0:
112
+ type = from.type, webex = from.webex;
113
+ destination = from.destination;
114
+ if (!(type === _constants._PERSONAL_ROOM_)) {
158
115
  _context.next = 15;
159
116
  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 = {};
194
- 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;
117
+ }
118
+ if (destination) {
119
+ _context.next = 7;
206
120
  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;
121
+ }
122
+ // if we are not getting anything in desination we fetch org and user ids from webex instance
123
+ destination = {
124
+ userId: webex.internal.device.userId,
125
+ orgId: webex.internal.device.orgId
126
+ };
127
+ _context.next = 15;
128
+ break;
129
+ case 7:
130
+ _options = _constants.VALID_EMAIL_ADDRESS.test(destination) ? {
131
+ email: destination
132
+ } : {
133
+ id: destination
134
+ }; // we are assuming userId as default
135
+ _context.next = 10;
136
+ return webex.people.list(_options);
137
+ case 10:
138
+ res = _context.sent;
139
+ _res$items$ = res.items[0], orgId = _res$items$.orgId, userId = _res$items$.id;
140
+ userId = (0, _common.deconstructHydraId)(userId).id;
141
+ orgId = (0, _common.deconstructHydraId)(orgId).id;
142
+ destination = {
143
+ userId: userId,
144
+ orgId: orgId
145
+ };
146
+ case 15:
147
+ if (!type) {
148
+ _context.next = 17;
217
149
  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;
150
+ }
151
+ return _context.abrupt("return", {
152
+ destination: destination,
153
+ type: type
154
+ });
155
+ case 17:
156
+ options = {};
157
+ hydraId = MeetingInfoUtil.getHydraId(destination);
158
+ if (!MeetingInfoUtil.isMeetingLink(destination)) {
159
+ _context.next = 25;
228
160
  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;
161
+ }
162
+ _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
163
+ options.type = _constants._MEETING_LINK_;
164
+ options.destination = destination;
165
+ _context.next = 62;
166
+ break;
167
+ case 25:
168
+ if (!MeetingInfoUtil.isSipUri(destination)) {
169
+ _context.next = 30;
239
170
  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;
171
+ }
172
+ options.type = _constants._SIP_URI_;
173
+ options.destination = destination;
174
+ _context.next = 62;
175
+ break;
176
+ case 30:
177
+ if (!MeetingInfoUtil.isPhoneNumber(destination)) {
178
+ _context.next = 35;
275
179
  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;
180
+ }
181
+ options.type = _constants._SIP_URI_;
182
+ options.destination = destination;
183
+ _context.next = 62;
184
+ break;
185
+ case 35:
186
+ if (!MeetingInfoUtil.isConversationUrl(destination, webex)) {
187
+ _context.next = 40;
287
188
  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
- }
189
+ }
190
+ options.type = _constants._CONVERSATION_URL_;
191
+ options.destination = destination;
192
+ _context.next = 62;
193
+ break;
194
+ case 40:
195
+ if (!hydraId.people) {
196
+ _context.next = 45;
197
+ break;
198
+ }
199
+ options.type = _constants._SIP_URI_;
200
+ return _context.abrupt("return", MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then(function (res) {
201
+ options.destination = res;
202
+
203
+ // Since hydra person ids require a unique case in which they are
204
+ // entirely converted to a SIP URI, we need to set a flag for detecting
205
+ // this type of destination.
206
+ options.wasHydraPerson = true;
207
+ return _promise.default.resolve(options);
208
+ }));
209
+ case 45:
210
+ if (!hydraId.room) {
211
+ _context.next = 60;
212
+ break;
213
+ }
214
+ options.type = _constants._CONVERSATION_URL_;
215
+ _context.prev = 47;
216
+ _context.next = 50;
217
+ return webex.internal.services.waitForCatalog('postauth');
218
+ case 50:
219
+ conversationUrl = webex.internal.conversation.getUrlFromClusterId({
220
+ cluster: hydraId.cluster,
221
+ id: hydraId.destination
222
+ });
223
+ options.destination = conversationUrl;
224
+ _context.next = 58;
225
+ break;
226
+ case 54:
227
+ _context.prev = 54;
228
+ _context.t0 = _context["catch"](47);
229
+ _loggerProxy.default.logger.error("Meeting-info:util#getDestinationType --> ".concat(_context.t0));
230
+ throw _context.t0;
231
+ case 58:
232
+ _context.next = 62;
233
+ break;
234
+ case 60:
235
+ _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.");
236
+ throw new _parameter.default('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');
237
+ case 62:
238
+ return _context.abrupt("return", _promise.default.resolve(options));
239
+ case 63:
240
+ case "end":
241
+ return _context.stop();
301
242
  }
302
243
  }, _callee, null, [[47, 54]]);
303
244
  }));
304
-
305
245
  return function (_x) {
306
246
  return _ref.apply(this, arguments);
307
247
  };
308
248
  }();
249
+
309
250
  /**
310
251
  * Helper function to build up a correct locus url depending on the value passed
311
252
  * @param {Object} options type and value to fetch meeting info
@@ -313,38 +254,29 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
313
254
  * @param {Object} options.destination ?? value.value
314
255
  * @returns {Object} returns an object with {resource, method}
315
256
  */
316
-
317
-
318
257
  MeetingInfoUtil.getRequestBody = function (options) {
319
258
  var _destination$info, _destination$info2;
320
-
321
259
  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
-
260
+ destination = options.destination,
261
+ password = options.password,
262
+ captchaInfo = options.captchaInfo,
263
+ installedOrgID = options.installedOrgID,
264
+ locusId = options.locusId;
265
+ var body = _objectSpread({}, _constants.DEFAULT_MEETING_INFO_REQUEST_BODY);
330
266
  switch (type) {
331
267
  case _constants._SIP_URI_:
332
268
  body.sipUrl = destination;
333
269
  break;
334
-
335
270
  case _constants._PERSONAL_ROOM_:
336
271
  body.userId = destination.userId;
337
272
  body.orgId = destination.orgId;
338
273
  break;
339
-
340
274
  case _constants._MEETING_ID_:
341
275
  body.meetingKey = destination;
342
276
  break;
343
-
344
277
  case _constants._CONVERSATION_URL_:
345
278
  body.conversationUrl = destination;
346
279
  break;
347
-
348
280
  case _constants._LOCUS_ID_:
349
281
  // use meetingID for the completer meeting info for the already started meeting
350
282
  if ((_destination$info = destination.info) !== null && _destination$info !== void 0 && _destination$info.webExMeetingId) {
@@ -352,47 +284,45 @@ MeetingInfoUtil.getRequestBody = function (options) {
352
284
  } else if ((_destination$info2 = destination.info) !== null && _destination$info2 !== void 0 && _destination$info2.sipUri) {
353
285
  body.sipUrl = destination.info.sipUri;
354
286
  }
355
-
356
287
  break;
357
-
358
288
  case _constants._MEETING_LINK_:
359
289
  body.meetingUrl = destination;
360
290
  break;
361
-
362
291
  case _constants._MEETING_UUID_:
363
292
  {
364
293
  body.meetingUUID = destination;
365
294
  break;
366
295
  }
367
-
368
296
  default:
369
297
  }
370
-
371
298
  if (password) {
372
299
  body.password = password;
373
300
  }
374
-
375
301
  if (captchaInfo) {
376
302
  body.captchaID = captchaInfo.id;
377
303
  body.captchaVerifyCode = captchaInfo.code;
378
304
  }
379
-
305
+ if (installedOrgID) {
306
+ body.installedOrgID = installedOrgID;
307
+ }
308
+ if (locusId) {
309
+ body.locusId = locusId;
310
+ }
380
311
  return body;
381
312
  };
313
+
382
314
  /**
383
315
  * Helper function to parse the webex site/host from a URI string.
384
316
  * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')
385
317
  * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')
386
318
  */
387
-
388
-
389
319
  MeetingInfoUtil.getWebexSite = function (uri) {
390
320
  var _uri$match;
391
-
392
321
  var exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];
393
322
  var site = uri === null || uri === void 0 ? void 0 : (_uri$match = uri.match(/.+@([^.]+\.[^.]+\.[^.]+)$/)) === null || _uri$match === void 0 ? void 0 : _uri$match[1];
394
323
  return exceptedDomains.includes(site) ? null : site;
395
324
  };
325
+
396
326
  /**
397
327
  * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).
398
328
  * @param {Object} options type and value to fetch meeting info
@@ -400,30 +330,22 @@ MeetingInfoUtil.getWebexSite = function (uri) {
400
330
  * @param {Object} options.destination ?? value.value
401
331
  * @returns {String} returns a URI string or null of there is no direct URI
402
332
  */
403
-
404
-
405
333
  MeetingInfoUtil.getDirectMeetingInfoURI = function (options) {
406
334
  var _destination$info3;
407
-
408
335
  var type = options.type,
409
- destination = options.destination;
336
+ destination = options.destination;
410
337
  var preferredWebexSite = null;
411
-
412
338
  switch (type) {
413
339
  case _constants._SIP_URI_:
414
340
  preferredWebexSite = MeetingInfoUtil.getWebexSite(destination);
415
341
  break;
416
-
417
342
  case _constants._LOCUS_ID_:
418
343
  preferredWebexSite = (_destination$info3 = destination.info) === null || _destination$info3 === void 0 ? void 0 : _destination$info3.webExSite;
419
344
  break;
420
-
421
345
  default:
422
346
  }
423
-
424
347
  return preferredWebexSite ? "https://".concat(preferredWebexSite, "/wbxappapi/v1/meetingInfo") : null;
425
348
  };
426
-
427
349
  var _default = MeetingInfoUtil;
428
350
  exports.default = _default;
429
351
  //# sourceMappingURL=utilv2.js.map