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

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 (365) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +116 -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/index.js +226 -0
  8. package/dist/breakouts/index.js.map +1 -0
  9. package/dist/common/browser-detection.js +1 -20
  10. package/dist/common/browser-detection.js.map +1 -1
  11. package/dist/common/collection.js +5 -20
  12. package/dist/common/collection.js.map +1 -1
  13. package/dist/common/config.js +0 -7
  14. package/dist/common/config.js.map +1 -1
  15. package/dist/common/errors/captcha-error.js +10 -24
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.js +11 -24
  18. package/dist/common/errors/intent-to-join.js.map +1 -1
  19. package/dist/common/errors/join-meeting.js +12 -25
  20. package/dist/common/errors/join-meeting.js.map +1 -1
  21. package/dist/common/errors/media.js +10 -24
  22. package/dist/common/errors/media.js.map +1 -1
  23. package/dist/common/errors/parameter.js +5 -33
  24. package/dist/common/errors/parameter.js.map +1 -1
  25. package/dist/common/errors/password-error.js +10 -24
  26. package/dist/common/errors/password-error.js.map +1 -1
  27. package/dist/common/errors/permission.js +9 -23
  28. package/dist/common/errors/permission.js.map +1 -1
  29. package/dist/common/errors/reconnection-in-progress.js +0 -17
  30. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  31. package/dist/common/errors/reconnection.js +10 -24
  32. package/dist/common/errors/reconnection.js.map +1 -1
  33. package/dist/common/errors/stats.js +10 -24
  34. package/dist/common/errors/stats.js.map +1 -1
  35. package/dist/common/errors/webex-errors.js +6 -41
  36. package/dist/common/errors/webex-errors.js.map +1 -1
  37. package/dist/common/errors/webex-meetings-error.js +5 -25
  38. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  39. package/dist/common/events/events-scope.js +0 -22
  40. package/dist/common/events/events-scope.js.map +1 -1
  41. package/dist/common/events/events.js +0 -23
  42. package/dist/common/events/events.js.map +1 -1
  43. package/dist/common/events/trigger-proxy.js +0 -12
  44. package/dist/common/events/trigger-proxy.js.map +1 -1
  45. package/dist/common/events/util.js +0 -15
  46. package/dist/common/events/util.js.map +1 -1
  47. package/dist/common/logs/logger-config.js +0 -4
  48. package/dist/common/logs/logger-config.js.map +1 -1
  49. package/dist/common/logs/logger-proxy.js +1 -8
  50. package/dist/common/logs/logger-proxy.js.map +1 -1
  51. package/dist/common/logs/request.js +37 -60
  52. package/dist/common/logs/request.js.map +1 -1
  53. package/dist/common/queue.js +4 -14
  54. package/dist/common/queue.js.map +1 -1
  55. package/dist/config.js +6 -6
  56. package/dist/config.js.map +1 -1
  57. package/dist/constants.js +88 -46
  58. package/dist/constants.js.map +1 -1
  59. package/dist/index.js +4 -18
  60. package/dist/index.js.map +1 -1
  61. package/dist/locus-info/controlsUtils.js +12 -29
  62. package/dist/locus-info/controlsUtils.js.map +1 -1
  63. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  64. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  65. package/dist/locus-info/fullState.js +0 -15
  66. package/dist/locus-info/fullState.js.map +1 -1
  67. package/dist/locus-info/hostUtils.js +4 -12
  68. package/dist/locus-info/hostUtils.js.map +1 -1
  69. package/dist/locus-info/index.js +184 -190
  70. package/dist/locus-info/index.js.map +1 -1
  71. package/dist/locus-info/infoUtils.js +3 -37
  72. package/dist/locus-info/infoUtils.js.map +1 -1
  73. package/dist/locus-info/mediaSharesUtils.js +12 -38
  74. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  75. package/dist/locus-info/parser.js +92 -118
  76. package/dist/locus-info/parser.js.map +1 -1
  77. package/dist/locus-info/selfUtils.js +34 -91
  78. package/dist/locus-info/selfUtils.js.map +1 -1
  79. package/dist/media/index.js +67 -111
  80. package/dist/media/index.js.map +1 -1
  81. package/dist/media/properties.js +80 -114
  82. package/dist/media/properties.js.map +1 -1
  83. package/dist/media/util.js +2 -9
  84. package/dist/media/util.js.map +1 -1
  85. package/dist/mediaQualityMetrics/config.js +10 -12
  86. package/dist/mediaQualityMetrics/config.js.map +1 -1
  87. package/dist/meeting/effectsState.js +125 -190
  88. package/dist/meeting/effectsState.js.map +1 -1
  89. package/dist/meeting/in-meeting-actions.js +5 -14
  90. package/dist/meeting/in-meeting-actions.js.map +1 -1
  91. package/dist/meeting/index.js +1692 -1925
  92. package/dist/meeting/index.js.map +1 -1
  93. package/dist/meeting/muteState.js +36 -77
  94. package/dist/meeting/muteState.js.map +1 -1
  95. package/dist/meeting/request.js +224 -230
  96. package/dist/meeting/request.js.map +1 -1
  97. package/dist/meeting/request.type.js +7 -0
  98. package/dist/meeting/request.type.js.map +1 -0
  99. package/dist/meeting/state.js +21 -31
  100. package/dist/meeting/state.js.map +1 -1
  101. package/dist/meeting/util.js +43 -215
  102. package/dist/meeting/util.js.map +1 -1
  103. package/dist/meeting-info/collection.js +6 -25
  104. package/dist/meeting-info/collection.js.map +1 -1
  105. package/dist/meeting-info/index.js +14 -32
  106. package/dist/meeting-info/index.js.map +1 -1
  107. package/dist/meeting-info/meeting-info-v2.js +193 -268
  108. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  109. package/dist/meeting-info/request.js +3 -15
  110. package/dist/meeting-info/request.js.map +1 -1
  111. package/dist/meeting-info/util.js +98 -183
  112. package/dist/meeting-info/util.js.map +1 -1
  113. package/dist/meeting-info/utilv2.js +137 -228
  114. package/dist/meeting-info/utilv2.js.map +1 -1
  115. package/dist/meetings/collection.js +5 -20
  116. package/dist/meetings/collection.js.map +1 -1
  117. package/dist/meetings/index.js +490 -560
  118. package/dist/meetings/index.js.map +1 -1
  119. package/dist/meetings/request.js +24 -41
  120. package/dist/meetings/request.js.map +1 -1
  121. package/dist/meetings/util.js +99 -155
  122. package/dist/meetings/util.js.map +1 -1
  123. package/dist/member/index.js +78 -86
  124. package/dist/member/index.js.map +1 -1
  125. package/dist/member/util.js +31 -68
  126. package/dist/member/util.js.map +1 -1
  127. package/dist/members/collection.js +3 -12
  128. package/dist/members/collection.js.map +1 -1
  129. package/dist/members/index.js +93 -200
  130. package/dist/members/index.js.map +1 -1
  131. package/dist/members/request.js +16 -39
  132. package/dist/members/request.js.map +1 -1
  133. package/dist/members/util.js +9 -38
  134. package/dist/members/util.js.map +1 -1
  135. package/dist/metrics/config.js +0 -2
  136. package/dist/metrics/config.js.map +1 -1
  137. package/dist/metrics/constants.js +1 -2
  138. package/dist/metrics/constants.js.map +1 -1
  139. package/dist/metrics/index.js +55 -135
  140. package/dist/metrics/index.js.map +1 -1
  141. package/dist/multistream/mediaRequestManager.js +57 -32
  142. package/dist/multistream/mediaRequestManager.js.map +1 -1
  143. package/dist/multistream/multistreamMedia.js +15 -21
  144. package/dist/multistream/multistreamMedia.js.map +1 -1
  145. package/dist/multistream/receiveSlot.js +10 -50
  146. package/dist/multistream/receiveSlot.js.map +1 -1
  147. package/dist/multistream/receiveSlotManager.js +45 -82
  148. package/dist/multistream/receiveSlotManager.js.map +1 -1
  149. package/dist/multistream/remoteMedia.js +18 -58
  150. package/dist/multistream/remoteMedia.js.map +1 -1
  151. package/dist/multistream/remoteMediaGroup.js +6 -40
  152. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  153. package/dist/multistream/remoteMediaManager.js +362 -416
  154. package/dist/multistream/remoteMediaManager.js.map +1 -1
  155. package/dist/networkQualityMonitor/index.js +36 -57
  156. package/dist/networkQualityMonitor/index.js.map +1 -1
  157. package/dist/personal-meeting-room/index.js +21 -45
  158. package/dist/personal-meeting-room/index.js.map +1 -1
  159. package/dist/personal-meeting-room/request.js +1 -31
  160. package/dist/personal-meeting-room/request.js.map +1 -1
  161. package/dist/personal-meeting-room/util.js +0 -13
  162. package/dist/personal-meeting-room/util.js.map +1 -1
  163. package/dist/reachability/index.js +138 -182
  164. package/dist/reachability/index.js.map +1 -1
  165. package/dist/reachability/request.js +3 -18
  166. package/dist/reachability/request.js.map +1 -1
  167. package/dist/reactions/constants.js +13 -0
  168. package/dist/reactions/constants.js.map +1 -0
  169. package/dist/reactions/reactions.js +109 -0
  170. package/dist/reactions/reactions.js.map +1 -0
  171. package/dist/reactions/reactions.type.js +36 -0
  172. package/dist/reactions/reactions.type.js.map +1 -0
  173. package/dist/reconnection-manager/index.js +322 -455
  174. package/dist/reconnection-manager/index.js.map +1 -1
  175. package/dist/recording-controller/enums.js +17 -0
  176. package/dist/recording-controller/enums.js.map +1 -0
  177. package/dist/recording-controller/index.js +343 -0
  178. package/dist/recording-controller/index.js.map +1 -0
  179. package/dist/recording-controller/util.js +63 -0
  180. package/dist/recording-controller/util.js.map +1 -0
  181. package/dist/roap/index.js +39 -64
  182. package/dist/roap/index.js.map +1 -1
  183. package/dist/roap/request.js +94 -113
  184. package/dist/roap/request.js.map +1 -1
  185. package/dist/roap/turnDiscovery.js +85 -94
  186. package/dist/roap/turnDiscovery.js.map +1 -1
  187. package/dist/statsAnalyzer/global.js +0 -2
  188. package/dist/statsAnalyzer/global.js.map +1 -1
  189. package/dist/statsAnalyzer/index.js +85 -175
  190. package/dist/statsAnalyzer/index.js.map +1 -1
  191. package/dist/statsAnalyzer/mqaUtil.js +72 -53
  192. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  193. package/dist/transcription/index.js +22 -47
  194. package/dist/transcription/index.js.map +1 -1
  195. package/internal-README.md +7 -6
  196. package/package.json +25 -20
  197. package/src/breakouts/README.md +190 -0
  198. package/src/breakouts/breakout.ts +110 -0
  199. package/src/breakouts/collection.ts +19 -0
  200. package/src/breakouts/index.ts +225 -0
  201. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  202. package/src/common/collection.ts +9 -7
  203. package/src/common/{config.js → config.ts} +1 -1
  204. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  205. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  206. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  207. package/src/common/errors/{media.js → media.ts} +11 -7
  208. package/src/common/errors/parameter.ts +11 -7
  209. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  210. package/src/common/errors/{permission.js → permission.ts} +10 -6
  211. package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
  212. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  213. package/src/common/errors/{stats.js → stats.ts} +11 -7
  214. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  215. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  216. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  217. package/src/common/events/{events.js → events.ts} +5 -1
  218. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  219. package/src/common/events/{util.js → util.ts} +2 -3
  220. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  221. package/src/common/logs/logger-proxy.ts +44 -0
  222. package/src/common/logs/{request.js → request.ts} +22 -9
  223. package/src/common/queue.ts +1 -2
  224. package/src/{config.js → config.ts} +17 -12
  225. package/src/constants.ts +40 -1
  226. package/src/index.js +2 -1
  227. package/src/locus-info/controlsUtils.ts +114 -0
  228. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  229. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  230. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  231. package/src/locus-info/{index.js → index.ts} +148 -64
  232. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  233. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  234. package/src/locus-info/{parser.js → parser.ts} +67 -79
  235. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  236. package/src/media/{index.js → index.ts} +181 -131
  237. package/src/media/{properties.js → properties.ts} +47 -28
  238. package/src/media/{util.js → util.ts} +2 -2
  239. package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
  240. package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
  241. package/src/meeting/in-meeting-actions.ts +15 -3
  242. package/src/meeting/{index.js → index.ts} +2263 -1427
  243. package/src/meeting/{muteState.js → muteState.ts} +78 -42
  244. package/src/meeting/{request.js → request.ts} +292 -142
  245. package/src/meeting/request.type.ts +13 -0
  246. package/src/meeting/{state.js → state.ts} +50 -35
  247. package/src/meeting/{util.js → util.ts} +112 -115
  248. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  249. package/src/meeting-info/{index.js → index.ts} +42 -36
  250. package/src/meeting-info/meeting-info-v2.ts +273 -0
  251. package/src/meeting-info/{request.js → request.ts} +14 -4
  252. package/src/meeting-info/{util.js → util.ts} +60 -51
  253. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  254. package/src/meetings/{collection.js → collection.ts} +6 -3
  255. package/src/meetings/index.ts +1159 -0
  256. package/src/meetings/{request.js → request.ts} +32 -25
  257. package/src/meetings/{util.js → util.ts} +34 -32
  258. package/src/member/{index.js → index.ts} +102 -56
  259. package/src/member/{util.js → util.ts} +52 -25
  260. package/src/members/{collection.js → collection.ts} +2 -2
  261. package/src/members/{index.js → index.ts} +219 -142
  262. package/src/members/{request.js → request.ts} +60 -16
  263. package/src/members/{util.js → util.ts} +50 -48
  264. package/src/metrics/{config.js → config.ts} +254 -83
  265. package/src/metrics/{constants.js → constants.ts} +0 -2
  266. package/src/metrics/{index.js → index.ts} +106 -74
  267. package/src/multistream/mediaRequestManager.ts +81 -15
  268. package/src/multistream/multistreamMedia.ts +5 -0
  269. package/src/multistream/receiveSlot.ts +18 -12
  270. package/src/multistream/receiveSlotManager.ts +23 -21
  271. package/src/multistream/remoteMedia.ts +15 -5
  272. package/src/multistream/remoteMediaGroup.ts +4 -3
  273. package/src/multistream/remoteMediaManager.ts +153 -37
  274. package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
  275. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  276. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  277. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  278. package/src/reachability/{index.js → index.ts} +99 -83
  279. package/src/reachability/request.ts +39 -33
  280. package/src/reactions/constants.ts +4 -0
  281. package/src/reactions/reactions.ts +104 -0
  282. package/src/reactions/reactions.type.ts +62 -0
  283. package/src/reconnection-manager/{index.js → index.ts} +195 -102
  284. package/src/recording-controller/enums.ts +8 -0
  285. package/src/recording-controller/index.ts +315 -0
  286. package/src/recording-controller/util.ts +58 -0
  287. package/src/roap/{index.js → index.ts} +73 -56
  288. package/src/roap/request.ts +157 -0
  289. package/src/roap/turnDiscovery.ts +77 -37
  290. package/src/statsAnalyzer/{global.js → global.ts} +30 -33
  291. package/src/statsAnalyzer/{index.js → index.ts} +468 -192
  292. package/src/statsAnalyzer/mqaUtil.ts +290 -0
  293. package/src/transcription/{index.js → index.ts} +46 -39
  294. package/test/integration/spec/journey.js +664 -463
  295. package/test/integration/spec/space-meeting.js +320 -206
  296. package/test/integration/spec/transcription.js +7 -8
  297. package/test/unit/spec/breakouts/breakout.ts +119 -0
  298. package/test/unit/spec/breakouts/collection.ts +15 -0
  299. package/test/unit/spec/breakouts/index.ts +293 -0
  300. package/test/unit/spec/common/browser-detection.js +9 -28
  301. package/test/unit/spec/fixture/locus.js +92 -90
  302. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  303. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  304. package/test/unit/spec/locus-info/index.js +104 -2
  305. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  306. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  307. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  308. package/test/unit/spec/locus-info/parser.js +3 -9
  309. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  310. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  311. package/test/unit/spec/media/index.ts +31 -47
  312. package/test/unit/spec/media/properties.ts +9 -9
  313. package/test/unit/spec/meeting/effectsState.js +39 -45
  314. package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
  315. package/test/unit/spec/meeting/index.js +2017 -742
  316. package/test/unit/spec/meeting/muteState.js +42 -33
  317. package/test/unit/spec/meeting/request.js +115 -44
  318. package/test/unit/spec/meeting/utils.js +104 -171
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  320. package/test/unit/spec/meeting-info/request.js +7 -9
  321. package/test/unit/spec/meeting-info/util.js +11 -12
  322. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  323. package/test/unit/spec/meetings/collection.js +1 -1
  324. package/test/unit/spec/meetings/index.js +439 -257
  325. package/test/unit/spec/meetings/utils.js +14 -12
  326. package/test/unit/spec/member/index.js +0 -1
  327. package/test/unit/spec/member/util.js +31 -7
  328. package/test/unit/spec/members/index.js +104 -54
  329. package/test/unit/spec/members/request.js +29 -20
  330. package/test/unit/spec/members/utils.js +8 -5
  331. package/test/unit/spec/metrics/index.js +16 -21
  332. package/test/unit/spec/multistream/mediaRequestManager.ts +316 -50
  333. package/test/unit/spec/multistream/receiveSlot.ts +6 -6
  334. package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
  335. package/test/unit/spec/multistream/remoteMedia.ts +10 -2
  336. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  337. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  338. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  339. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  340. package/test/unit/spec/reachability/index.ts +58 -26
  341. package/test/unit/spec/reconnection-manager/index.js +102 -9
  342. package/test/unit/spec/recording-controller/index.js +231 -0
  343. package/test/unit/spec/recording-controller/util.js +102 -0
  344. package/test/unit/spec/roap/index.ts +2 -1
  345. package/test/unit/spec/roap/request.ts +114 -0
  346. package/test/unit/spec/roap/turnDiscovery.ts +64 -45
  347. package/test/unit/spec/stats-analyzer/index.js +27 -22
  348. package/test/utils/cmr.js +44 -42
  349. package/test/utils/testUtils.js +83 -74
  350. package/test/utils/webex-config.js +18 -18
  351. package/test/utils/webex-test-users.js +54 -50
  352. package/tsconfig.json +6 -0
  353. package/dist/media/internal-media-core-wrapper.js +0 -22
  354. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  355. package/dist/peer-connection-manager/util.js +0 -124
  356. package/dist/peer-connection-manager/util.js.map +0 -1
  357. package/src/common/logs/logger-proxy.js +0 -33
  358. package/src/locus-info/controlsUtils.js +0 -102
  359. package/src/media/internal-media-core-wrapper.ts +0 -9
  360. package/src/meeting-info/meeting-info-v2.js +0 -255
  361. package/src/meetings/index.js +0 -1015
  362. package/src/peer-connection-manager/util.ts +0 -117
  363. package/src/roap/request.js +0 -127
  364. package/src/statsAnalyzer/mqaUtil.js +0 -173
  365. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
@@ -2,7 +2,8 @@ import url from 'url';
2
2
 
3
3
  import btoa from 'btoa';
4
4
  import {
5
- deconstructHydraId
5
+ // @ts-ignore
6
+ deconstructHydraId,
6
7
  } from '@webex/common';
7
8
 
8
9
  import ParameterError from '../common/errors/parameter';
@@ -30,10 +31,10 @@ import {
30
31
  MEET,
31
32
  MEET_M,
32
33
  HTTPS_PROTOCOL,
33
- UUID_REG
34
+ UUID_REG,
34
35
  } from '../constants';
35
36
 
36
- const MeetingInfoUtil = {};
37
+ const MeetingInfoUtil: any = {};
37
38
 
38
39
  MeetingInfoUtil.extractDestination = (destination, type) => {
39
40
  let dest = destination;
@@ -61,9 +62,10 @@ MeetingInfoUtil.getParsedUrl = (link) => {
61
62
  }
62
63
 
63
64
  return parsedUrl;
64
- }
65
- catch (error) {
66
- LoggerProxy.logger.warn(`Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`);
65
+ } catch (error) {
66
+ LoggerProxy.logger.warn(
67
+ `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`
68
+ );
67
69
 
68
70
  return null;
69
71
  }
@@ -74,10 +76,14 @@ MeetingInfoUtil.getParsedUrl = (link) => {
74
76
  * @param {String} value string to parse and see if it matches a meeting link
75
77
  * @returns {Boolean}
76
78
  */
77
- MeetingInfoUtil.isMeetingLink = (value) => {
79
+ MeetingInfoUtil.isMeetingLink = (value: string) => {
78
80
  const parsedUrl = MeetingInfoUtil.getParsedUrl(value);
79
81
  const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);
80
- const pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes(`/${MEET}`) || parsedUrl.pathname.includes(`/${MEET_M}`) || parsedUrl.pathname.includes(`/${JOIN}`));
82
+ const pathNameBool =
83
+ parsedUrl.pathname &&
84
+ (parsedUrl.pathname.includes(`/${MEET}`) ||
85
+ parsedUrl.pathname.includes(`/${MEET_M}`) ||
86
+ parsedUrl.pathname.includes(`/${JOIN}`));
81
87
 
82
88
  return hostNameBool && pathNameBool;
83
89
  };
@@ -122,7 +128,6 @@ MeetingInfoUtil.convertLinkToSip = (value) => {
122
128
  return `${user}@${company}.${WEBEX_DOT_COM}`;
123
129
  };
124
130
 
125
-
126
131
  MeetingInfoUtil.isSipUri = (sipString) => {
127
132
  // TODO: lets remove regex from this equation and user URI matchers and such
128
133
  // have not found a great sip uri parser library as of now
@@ -154,15 +159,21 @@ MeetingInfoUtil.getHydraId = (destination) => {
154
159
  return {};
155
160
  };
156
161
 
157
- MeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) => webex.people.get(destination).then((res) => {
158
- if (res.emails && res.emails.length) {
159
- return res.emails[0];
160
- }
161
- throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');
162
- }).catch((err) => {
163
- LoggerProxy.logger.error(`Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `);
164
- throw err;
165
- });
162
+ MeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>
163
+ webex.people
164
+ .get(destination)
165
+ .then((res) => {
166
+ if (res.emails && res.emails.length) {
167
+ return res.emails[0];
168
+ }
169
+ throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');
170
+ })
171
+ .catch((err) => {
172
+ LoggerProxy.logger.error(
173
+ `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `
174
+ );
175
+ throw err;
176
+ });
166
177
 
167
178
  MeetingInfoUtil.generateOptions = async (from) => {
168
179
  const {destination, type, webex} = from;
@@ -170,31 +181,29 @@ MeetingInfoUtil.generateOptions = async (from) => {
170
181
  if (type) {
171
182
  return {
172
183
  destination,
173
- type
184
+ type,
174
185
  };
175
186
  }
176
- const options = {};
187
+ const options: any = {};
177
188
  const hydraId = MeetingInfoUtil.getHydraId(destination);
178
189
 
179
190
  if (MeetingInfoUtil.isMeetingLink(destination)) {
180
- LoggerProxy.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
191
+ LoggerProxy.logger.warn(
192
+ 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'
193
+ );
181
194
 
182
195
  options.type = _MEETING_LINK_;
183
196
  options.destination = destination;
184
- }
185
- else if (MeetingInfoUtil.isSipUri(destination)) {
197
+ } else if (MeetingInfoUtil.isSipUri(destination)) {
186
198
  options.type = _SIP_URI_;
187
199
  options.destination = destination;
188
- }
189
- else if (MeetingInfoUtil.isPhoneNumber(destination)) {
200
+ } else if (MeetingInfoUtil.isPhoneNumber(destination)) {
190
201
  options.type = _SIP_URI_;
191
202
  options.destination = destination;
192
- }
193
- else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {
203
+ } else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {
194
204
  options.type = _CONVERSATION_URL_;
195
205
  options.destination = destination;
196
- }
197
- else if (hydraId.people) {
206
+ } else if (hydraId.people) {
198
207
  options.type = _SIP_URI_;
199
208
 
200
209
  return MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {
@@ -207,26 +216,25 @@ MeetingInfoUtil.generateOptions = async (from) => {
207
216
 
208
217
  return Promise.resolve(options);
209
218
  });
210
- }
211
- else if (hydraId.room) {
219
+ } else if (hydraId.room) {
212
220
  options.type = _CONVERSATION_URL_;
213
221
  try {
214
222
  await webex.internal.services.waitForCatalog('postauth');
215
223
 
216
224
  const conversationUrl = webex.internal.conversation.getUrlFromClusterId({
217
225
  cluster: hydraId.cluster,
218
- id: hydraId.destination
226
+ id: hydraId.destination,
219
227
  });
220
228
 
221
229
  options.destination = conversationUrl;
222
- }
223
- catch (e) {
230
+ } catch (e) {
224
231
  LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);
225
- throw (e);
232
+ throw e;
226
233
  }
227
- }
228
- else {
229
- throw new ParameterError('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');
234
+ } else {
235
+ throw new ParameterError(
236
+ 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'
237
+ );
230
238
  }
231
239
 
232
240
  return Promise.resolve(options);
@@ -238,7 +246,7 @@ MeetingInfoUtil.generateOptions = async (from) => {
238
246
  * @param {Object} value ?? value.value
239
247
  * @returns {Object} returns an object with {resource, method}
240
248
  */
241
- MeetingInfoUtil.getResourceUrl = (type, value) => {
249
+ MeetingInfoUtil.getResourceUrl = (type: string, value: any) => {
242
250
  let resource = `/${LOCI}/${MEETINGINFO}`;
243
251
  let method = HTTP_VERBS.GET;
244
252
  let uri = null;
@@ -247,7 +255,9 @@ MeetingInfoUtil.getResourceUrl = (type, value) => {
247
255
  case _SIP_URI_:
248
256
  case _PERSONAL_ROOM_:
249
257
  case _MEETING_ID_:
250
- resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(value)}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;
258
+ resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(
259
+ value
260
+ )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;
251
261
  break;
252
262
  case _CONVERSATION_URL_:
253
263
  method = HTTP_VERBS.PUT;
@@ -257,7 +267,9 @@ MeetingInfoUtil.getResourceUrl = (type, value) => {
257
267
  method = HTTP_VERBS.PUT;
258
268
  break;
259
269
  case _MEETING_LINK_:
260
- resource = `$/${LOCI}/${MEETINGINFO}/${btoa(value)}?${TYPE}=${_MEETING_LINK_}&${USE_URI_LOOKUP_FALSE}`;
270
+ resource = `$/${LOCI}/${MEETINGINFO}/${btoa(
271
+ value
272
+ )}?${TYPE}=${_MEETING_LINK_}&${USE_URI_LOOKUP_FALSE}`;
261
273
  break;
262
274
  default:
263
275
  }
@@ -265,34 +277,31 @@ MeetingInfoUtil.getResourceUrl = (type, value) => {
265
277
  return {
266
278
  uri,
267
279
  resource,
268
- method
280
+ method,
269
281
  };
270
282
  };
271
283
 
272
284
  MeetingInfoUtil.getRequestParams = (resourceOptions, type, value, api) => {
273
- let requestParams = {
285
+ let requestParams: any = {
274
286
  method: resourceOptions.method,
275
287
  api,
276
- resource: resourceOptions.resource
288
+ resource: resourceOptions.resource,
277
289
  };
278
290
 
279
291
  if (resourceOptions.method === HTTP_VERBS.GET) {
280
292
  // for handling URL redirections
281
293
  requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);
282
- }
283
- else
284
- if (type !== _LOCUS_ID_) {
294
+ } else if (type !== _LOCUS_ID_) {
285
295
  // locus id check is a PUT not sure why
286
296
  requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);
287
297
  requestParams.body = {
288
298
  value,
289
- lookupType: type
299
+ lookupType: type,
290
300
  };
291
- }
292
- else if (type === _LOCUS_ID_) {
301
+ } else if (type === _LOCUS_ID_) {
293
302
  requestParams = {
294
303
  method: resourceOptions.method,
295
- uri: resourceOptions.uri
304
+ uri: resourceOptions.uri,
296
305
  };
297
306
  }
298
307
 
@@ -1,7 +1,8 @@
1
1
  import url from 'url';
2
2
 
3
3
  import {
4
- deconstructHydraId
4
+ // @ts-ignore
5
+ deconstructHydraId,
5
6
  } from '@webex/common';
6
7
 
7
8
  import {
@@ -22,12 +23,12 @@ import {
22
23
  MEET_M,
23
24
  HTTPS_PROTOCOL,
24
25
  UUID_REG,
25
- VALID_EMAIL_ADDRESS
26
+ VALID_EMAIL_ADDRESS,
26
27
  } from '../constants';
27
28
  import ParameterError from '../common/errors/parameter';
28
29
  import LoggerProxy from '../common/logs/logger-proxy';
29
30
 
30
- const MeetingInfoUtil = {};
31
+ const MeetingInfoUtil: any = {};
31
32
 
32
33
  MeetingInfoUtil.getParsedUrl = (link) => {
33
34
  try {
@@ -42,9 +43,10 @@ MeetingInfoUtil.getParsedUrl = (link) => {
42
43
  }
43
44
 
44
45
  return parsedUrl;
45
- }
46
- catch (error) {
47
- LoggerProxy.logger.warn(`Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`);
46
+ } catch (error) {
47
+ LoggerProxy.logger.warn(
48
+ `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`
49
+ );
48
50
 
49
51
  return null;
50
52
  }
@@ -55,10 +57,14 @@ MeetingInfoUtil.getParsedUrl = (link) => {
55
57
  * @param {String} value string to parse and see if it matches a meeting link
56
58
  * @returns {Boolean}
57
59
  */
58
- MeetingInfoUtil.isMeetingLink = (value) => {
60
+ MeetingInfoUtil.isMeetingLink = (value: string) => {
59
61
  const parsedUrl = MeetingInfoUtil.getParsedUrl(value);
60
62
  const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);
61
- const pathNameBool = parsedUrl.pathname && (parsedUrl.pathname.includes(`/${MEET}`) || parsedUrl.pathname.includes(`/${MEET_M}`) || parsedUrl.pathname.includes(`/${JOIN}`));
63
+ const pathNameBool =
64
+ parsedUrl.pathname &&
65
+ (parsedUrl.pathname.includes(`/${MEET}`) ||
66
+ parsedUrl.pathname.includes(`/${MEET_M}`) ||
67
+ parsedUrl.pathname.includes(`/${JOIN}`));
62
68
 
63
69
  return hostNameBool && pathNameBool;
64
70
  };
@@ -73,7 +79,6 @@ MeetingInfoUtil.isConversationUrl = (value, webex) => {
73
79
  return false;
74
80
  };
75
81
 
76
-
77
82
  MeetingInfoUtil.isSipUri = (sipString) => {
78
83
  // TODO: lets remove regex from this equation and user URI matchers and such
79
84
  // have not found a great sip uri parser library as of now
@@ -105,30 +110,38 @@ MeetingInfoUtil.getHydraId = (destination) => {
105
110
  return {};
106
111
  };
107
112
 
108
- MeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) => webex.people.get(destination).then((res) => {
109
- if (res.emails && res.emails.length) {
110
- return res.emails[0];
111
- }
112
- throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');
113
- }).catch((err) => {
114
- LoggerProxy.logger.error(`Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `);
115
- throw err;
116
- });
117
-
113
+ MeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>
114
+ webex.people
115
+ .get(destination)
116
+ .then((res) => {
117
+ if (res.emails && res.emails.length) {
118
+ return res.emails[0];
119
+ }
120
+ throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');
121
+ })
122
+ .catch((err) => {
123
+ LoggerProxy.logger.error(
124
+ `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `
125
+ );
126
+ throw err;
127
+ });
118
128
 
119
129
  MeetingInfoUtil.getDestinationType = async (from) => {
120
130
  const {type, webex} = from;
121
131
  let {destination} = from;
122
132
 
123
- if (type === _PERSONAL_ROOM_) { // this case checks if your type is personal room
124
- if (!destination) { // if we are not getting anything in desination we fetch org and user ids from webex instance
133
+ if (type === _PERSONAL_ROOM_) {
134
+ // this case checks if your type is personal room
135
+ if (!destination) {
136
+ // if we are not getting anything in desination we fetch org and user ids from webex instance
125
137
  destination = {
126
138
  userId: webex.internal.device.userId,
127
- orgId: webex.internal.device.orgId
139
+ orgId: webex.internal.device.orgId,
128
140
  };
129
- }
130
- else {
131
- const options = VALID_EMAIL_ADDRESS.test(destination) ? {email: destination} : {id: destination};// we are assuming userId as default
141
+ } else {
142
+ const options = VALID_EMAIL_ADDRESS.test(destination)
143
+ ? {email: destination}
144
+ : {id: destination}; // we are assuming userId as default
132
145
  const res = await webex.people.list(options);
133
146
 
134
147
  let {orgId, id: userId} = res.items[0];
@@ -141,31 +154,29 @@ MeetingInfoUtil.getDestinationType = async (from) => {
141
154
  if (type) {
142
155
  return {
143
156
  destination,
144
- type
157
+ type,
145
158
  };
146
159
  }
147
- const options = {};
160
+ const options: any = {};
148
161
  const hydraId = MeetingInfoUtil.getHydraId(destination);
149
162
 
150
163
  if (MeetingInfoUtil.isMeetingLink(destination)) {
151
- LoggerProxy.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
164
+ LoggerProxy.logger.warn(
165
+ 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'
166
+ );
152
167
 
153
168
  options.type = _MEETING_LINK_;
154
169
  options.destination = destination;
155
- }
156
- else if (MeetingInfoUtil.isSipUri(destination)) {
170
+ } else if (MeetingInfoUtil.isSipUri(destination)) {
157
171
  options.type = _SIP_URI_;
158
172
  options.destination = destination;
159
- }
160
- else if (MeetingInfoUtil.isPhoneNumber(destination)) {
173
+ } else if (MeetingInfoUtil.isPhoneNumber(destination)) {
161
174
  options.type = _SIP_URI_;
162
175
  options.destination = destination;
163
- }
164
- else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {
176
+ } else if (MeetingInfoUtil.isConversationUrl(destination, webex)) {
165
177
  options.type = _CONVERSATION_URL_;
166
178
  options.destination = destination;
167
- }
168
- else if (hydraId.people) {
179
+ } else if (hydraId.people) {
169
180
  options.type = _SIP_URI_;
170
181
 
171
182
  return MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {
@@ -178,27 +189,28 @@ MeetingInfoUtil.getDestinationType = async (from) => {
178
189
 
179
190
  return Promise.resolve(options);
180
191
  });
181
- }
182
- else if (hydraId.room) {
192
+ } else if (hydraId.room) {
183
193
  options.type = _CONVERSATION_URL_;
184
194
  try {
185
195
  await webex.internal.services.waitForCatalog('postauth');
186
196
 
187
197
  const conversationUrl = webex.internal.conversation.getUrlFromClusterId({
188
198
  cluster: hydraId.cluster,
189
- id: hydraId.destination
199
+ id: hydraId.destination,
190
200
  });
191
201
 
192
202
  options.destination = conversationUrl;
193
- }
194
- catch (e) {
203
+ } catch (e) {
195
204
  LoggerProxy.logger.error(`Meeting-info:util#getDestinationType --> ${e}`);
196
- throw (e);
205
+ throw e;
197
206
  }
198
- }
199
- else {
200
- LoggerProxy.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.');
201
- throw new ParameterError('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.');
207
+ } else {
208
+ LoggerProxy.logger.warn(
209
+ "Meeting-info:util#getDestinationType --> ('MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url."
210
+ );
211
+ throw new ParameterError(
212
+ 'MeetingInfo is fetched with meeting link, sip uri, phone number, hydra room id, hydra people id, or a conversation url.'
213
+ );
202
214
  }
203
215
 
204
216
  return Promise.resolve(options);
@@ -211,11 +223,9 @@ MeetingInfoUtil.getDestinationType = async (from) => {
211
223
  * @param {Object} options.destination ?? value.value
212
224
  * @returns {Object} returns an object with {resource, method}
213
225
  */
214
- MeetingInfoUtil.getRequestBody = (options) => {
215
- const {
216
- type, destination, password, captchaInfo
217
- } = options;
218
- const body = {
226
+ MeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {
227
+ const {type, destination, password, captchaInfo} = options;
228
+ const body: any = {
219
229
  supportHostKey: true,
220
230
  supportCountryList: true,
221
231
  };
@@ -238,8 +248,7 @@ MeetingInfoUtil.getRequestBody = (options) => {
238
248
  // use meetingID for the completer meeting info for the already started meeting
239
249
  if (destination.info?.webExMeetingId) {
240
250
  body.meetingKey = destination.info.webExMeetingId;
241
- }
242
- else if (destination.info?.sipUri) {
251
+ } else if (destination.info?.sipUri) {
243
252
  body.sipUrl = destination.info.sipUri;
244
253
  }
245
254
  break;
@@ -270,7 +279,7 @@ MeetingInfoUtil.getRequestBody = (options) => {
270
279
  * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')
271
280
  * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')
272
281
  */
273
- MeetingInfoUtil.getWebexSite = (uri) => {
282
+ MeetingInfoUtil.getWebexSite = (uri: string) => {
274
283
  const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];
275
284
  const site = uri?.match(/.+@([^.]+\.[^.]+\.[^.]+)$/)?.[1];
276
285
 
@@ -284,10 +293,8 @@ MeetingInfoUtil.getWebexSite = (uri) => {
284
293
  * @param {Object} options.destination ?? value.value
285
294
  * @returns {String} returns a URI string or null of there is no direct URI
286
295
  */
287
- MeetingInfoUtil.getDirectMeetingInfoURI = (options) => {
288
- const {
289
- type, destination
290
- } = options;
296
+ MeetingInfoUtil.getDirectMeetingInfoURI = (options: {type: string; destination: any}) => {
297
+ const {type, destination} = options;
291
298
 
292
299
  let preferredWebexSite = null;
293
300
 
@@ -1,6 +1,7 @@
1
1
  import {find} from 'lodash';
2
2
 
3
3
  import Collection from '../common/collection';
4
+
4
5
  /**
5
6
  * @export
6
7
  * @class MeetingCollection
@@ -16,12 +17,13 @@ export default class MeetingCollection extends Collection {
16
17
  }
17
18
 
18
19
  set(meeting) {
20
+ // @ts-ignore
19
21
  this.meetings[meeting.id] = meeting;
20
22
 
23
+ // @ts-ignore
21
24
  return this.meetings[meeting.id];
22
25
  }
23
26
 
24
-
25
27
  /**
26
28
  * get a specific meeting searching for key
27
29
  * @param {String} key
@@ -30,9 +32,10 @@ export default class MeetingCollection extends Collection {
30
32
  * @public
31
33
  * @memberof MeetingCollection
32
34
  */
33
- getByKey(key, value) {
35
+ public getByKey(key: string, value: any) {
34
36
  if (key && value) {
35
- return find(this.meetings, (meeting) => (meeting[key] === value));
37
+ // @ts-ignore
38
+ return find(this.meetings, (meeting) => meeting[key] === value);
36
39
  }
37
40
 
38
41
  return null;