@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
@@ -12,11 +12,15 @@ import {
12
12
  _PERSONAL_ROOM_,
13
13
  _CONVERSATION_URL_,
14
14
  _SIP_URI_,
15
- WBXAPPAPI_SERVICE
15
+ WBXAPPAPI_SERVICE,
16
16
  } from '@webex/plugin-meetings/src/constants';
17
17
 
18
18
  import Meetings from '@webex/plugin-meetings/src/meetings';
19
- import MeetingInfo, {MeetingInfoV2PasswordError, MeetingInfoV2CaptchaError, MeetingInfoV2AdhocMeetingError} from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
19
+ import MeetingInfo, {
20
+ MeetingInfoV2PasswordError,
21
+ MeetingInfoV2CaptchaError,
22
+ MeetingInfoV2AdhocMeetingError,
23
+ } from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
20
24
  import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/utilv2';
21
25
  import Metrics from '@webex/plugin-meetings/src/metrics';
22
26
  import BEHAVIORAL_METRICS from '@webex/plugin-meetings/src/metrics/constants';
@@ -32,16 +36,15 @@ describe('plugin-meetings', () => {
32
36
  {
33
37
  id: '344ea183-9d5d-4e77-aed',
34
38
  emailAddress: 'testUser1@cisco.com',
35
- entryUUID: '344ea183-9d5d-4e77-'
36
-
39
+ entryUUID: '344ea183-9d5d-4e77-',
37
40
  },
38
41
  {
39
42
  id: '40b446fe-175c-4628-8a9d',
40
43
  emailAddress: 'testUser2@cisco.com',
41
- entryUUID: '40b446fe-175c-4628'
42
- }
43
- ]
44
- }
44
+ entryUUID: '40b446fe-175c-4628',
45
+ },
46
+ ],
47
+ },
45
48
  };
46
49
  let webex;
47
50
  let meetingInfo = null;
@@ -59,32 +62,33 @@ describe('plugin-meetings', () => {
59
62
  children: {
60
63
  device: Device,
61
64
  mercury: Mercury,
62
- meetings: Meetings
63
- }
65
+ meetings: Meetings,
66
+ },
64
67
  });
65
68
 
66
69
  webex.meetings.preferredWebexSite = 'go.webex.com';
67
- webex.config.meetings = {experimental: {enableUnifiedMeetings: true, enableAdhocMeetings: true}};
70
+ webex.config.meetings = {
71
+ experimental: {enableUnifiedMeetings: true, enableAdhocMeetings: true},
72
+ };
68
73
 
69
74
  Object.assign(webex.internal, {
70
75
  device: {
71
76
  deviceType: 'FAKE_DEVICE',
72
77
  register: sinon.stub().returns(Promise.resolve()),
73
78
  unregister: sinon.stub().returns(Promise.resolve()),
74
- userId: '01824b9b-adef-4b10-b5c1-8a2fe2fb7c0e'
79
+ userId: '01824b9b-adef-4b10-b5c1-8a2fe2fb7c0e',
75
80
  },
76
81
  mercury: {
77
82
  connect: sinon.stub().returns(Promise.resolve()),
78
83
  disconnect: sinon.stub().returns(Promise.resolve()),
79
84
  on: () => {},
80
- off: () => {}
85
+ off: () => {},
81
86
  },
82
87
  conversation: {
83
- get: sinon.stub().returns(Promise.resolve(conversation))
84
- }
88
+ get: sinon.stub().returns(Promise.resolve(conversation)),
89
+ },
85
90
  });
86
91
 
87
-
88
92
  meetingInfo = new MeetingInfo(webex);
89
93
  });
90
94
 
@@ -93,17 +97,22 @@ describe('plugin-meetings', () => {
93
97
  const body = {meetingKey: '1234323'};
94
98
  const requestResponse = {statusCode: 200, body};
95
99
 
96
- sinon.stub(MeetingInfoUtil, 'getDestinationType').returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
100
+ sinon
101
+ .stub(MeetingInfoUtil, 'getDestinationType')
102
+ .returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
97
103
  sinon.stub(MeetingInfoUtil, 'getRequestBody').returns(Promise.resolve(body));
98
104
  webex.request.resolves(requestResponse);
99
105
 
100
106
  const result = await meetingInfo.fetchMeetingInfo({
101
107
  type: _MEETING_ID_,
102
- destination: '1234323'
108
+ destination: '1234323',
103
109
  });
104
110
 
105
111
  assert.calledWith(webex.request, {
106
- method: 'POST', service: WBXAPPAPI_SERVICE, resource: 'meetingInfo', body: {meetingKey: '1234323'}
112
+ method: 'POST',
113
+ service: WBXAPPAPI_SERVICE,
114
+ resource: 'meetingInfo',
115
+ body: {meetingKey: '1234323'},
107
116
  });
108
117
  assert.deepEqual(result, requestResponse);
109
118
 
@@ -115,16 +124,21 @@ describe('plugin-meetings', () => {
115
124
  const body = {meetingKey: '1234323'};
116
125
  const requestResponse = {statusCode: 200, body};
117
126
 
118
- sinon.stub(MeetingInfoUtil, 'getDestinationType').returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
127
+ sinon
128
+ .stub(MeetingInfoUtil, 'getDestinationType')
129
+ .returns(Promise.resolve({type: 'MEETING_ID', destination: '123456'}));
119
130
  sinon.stub(MeetingInfoUtil, 'getRequestBody').returns(Promise.resolve(body));
120
131
  webex.request.resolves(requestResponse);
121
132
 
122
133
  const result = await meetingInfo.fetchMeetingInfo({
123
- type: _PERSONAL_ROOM_
134
+ type: _PERSONAL_ROOM_,
124
135
  });
125
136
 
126
137
  assert.calledWith(webex.request, {
127
- method: 'POST', service: WBXAPPAPI_SERVICE, resource: 'meetingInfo', body: {meetingKey: '1234323'}
138
+ method: 'POST',
139
+ service: WBXAPPAPI_SERVICE,
140
+ resource: 'meetingInfo',
141
+ body: {meetingKey: '1234323'},
128
142
  });
129
143
  assert.deepEqual(result, requestResponse);
130
144
 
@@ -136,20 +150,28 @@ describe('plugin-meetings', () => {
136
150
  const body = {meetingKey: '1234323'};
137
151
  const requestResponse = {statusCode: 200, body};
138
152
 
139
- sinon.stub(MeetingInfoUtil, 'getDestinationType').returns(Promise.resolve({type: _SIP_URI_, destination: 'example@something.webex.com'}));
153
+ sinon
154
+ .stub(MeetingInfoUtil, 'getDestinationType')
155
+ .returns(Promise.resolve({type: _SIP_URI_, destination: 'example@something.webex.com'}));
140
156
  sinon.stub(MeetingInfoUtil, 'getRequestBody').returns(Promise.resolve(body));
141
157
  sinon.stub(MeetingInfoUtil, 'getDirectMeetingInfoURI').returns('https://example.com');
142
158
  webex.request.resolves(requestResponse);
143
159
 
144
- const result = await meetingInfo.fetchMeetingInfo(
145
- 'example@something.webex.com',
146
- _SIP_URI_,
147
- );
160
+ const result = await meetingInfo.fetchMeetingInfo('example@something.webex.com', _SIP_URI_);
148
161
 
149
- assert.calledWith(MeetingInfoUtil.getDestinationType, {destination: 'example@something.webex.com', type: _SIP_URI_, webex});
150
- assert.calledWith(MeetingInfoUtil.getDirectMeetingInfoURI, {destination: 'example@something.webex.com', type: _SIP_URI_});
162
+ assert.calledWith(MeetingInfoUtil.getDestinationType, {
163
+ destination: 'example@something.webex.com',
164
+ type: _SIP_URI_,
165
+ webex,
166
+ });
167
+ assert.calledWith(MeetingInfoUtil.getDirectMeetingInfoURI, {
168
+ destination: 'example@something.webex.com',
169
+ type: _SIP_URI_,
170
+ });
151
171
  assert.calledWith(webex.request, {
152
- method: 'POST', uri: 'https://example.com', body: {meetingKey: '1234323'}
172
+ method: 'POST',
173
+ uri: 'https://example.com',
174
+ body: {meetingKey: '1234323'},
153
175
  });
154
176
  assert.deepEqual(result, requestResponse);
155
177
 
@@ -163,7 +185,10 @@ describe('plugin-meetings', () => {
163
185
 
164
186
  webex.request.resolves(requestResponse);
165
187
 
166
- const result = await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {id: '999', code: 'aabbcc11'});
188
+ const result = await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {
189
+ id: '999',
190
+ code: 'aabbcc11',
191
+ });
167
192
 
168
193
  assert.calledWith(webex.request, {
169
194
  method: 'POST',
@@ -175,14 +200,14 @@ describe('plugin-meetings', () => {
175
200
  meetingKey: '1234323',
176
201
  password: 'abc',
177
202
  captchaID: '999',
178
- captchaVerifyCode: 'aabbcc11'
179
- }
203
+ captchaVerifyCode: 'aabbcc11',
204
+ },
180
205
  });
181
206
  assert.deepEqual(result, requestResponse);
182
207
  assert(Metrics.sendBehavioralMetric.calledOnce);
183
208
  assert.calledWith(
184
209
  Metrics.sendBehavioralMetric,
185
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS,
210
+ BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS
186
211
  );
187
212
  });
188
213
 
@@ -223,10 +248,12 @@ describe('plugin-meetings', () => {
223
248
  webex.request = sinon.stub().rejects({statusCode: 403, body: {code: 400000}});
224
249
  try {
225
250
  await meetingInfo.createAdhocSpaceMeeting('conversationUrl');
226
- }
227
- catch (err) {
251
+ } catch (err) {
228
252
  assert.instanceOf(err, MeetingInfoV2AdhocMeetingError);
229
- assert.deepEqual(err.message, 'Failed starting the adhoc meeting, Please contact support team , code=400000');
253
+ assert.deepEqual(
254
+ err.message,
255
+ 'Failed starting the adhoc meeting, Please contact support team , code=400000'
256
+ );
230
257
  assert.equal(err.wbxAppApiCode, 400000);
231
258
  }
232
259
  });
@@ -234,18 +261,19 @@ describe('plugin-meetings', () => {
234
261
  it('should throw MeetingInfoV2PasswordError for 403 response', async () => {
235
262
  const FAKE_MEETING_INFO = {blablabla: 'some_fake_meeting_info'};
236
263
 
237
- webex.request = sinon.stub().rejects({statusCode: 403, body: {code: 403000, data: {meetingInfo: FAKE_MEETING_INFO}}});
264
+ webex.request = sinon
265
+ .stub()
266
+ .rejects({statusCode: 403, body: {code: 403000, data: {meetingInfo: FAKE_MEETING_INFO}}});
238
267
 
239
268
  try {
240
- await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {id: '999', code: 'aabbcc11'});
269
+ await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {
270
+ id: '999',
271
+ code: 'aabbcc11',
272
+ });
241
273
  assert.fail('fetchMeetingInfo should have thrown, but has not done that');
242
- }
243
- catch (err) {
274
+ } catch (err) {
244
275
  assert(Metrics.sendBehavioralMetric.calledOnce);
245
- assert.calledWith(
246
- Metrics.sendBehavioralMetric,
247
- BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
248
- );
276
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR);
249
277
  assert.instanceOf(err, MeetingInfoV2PasswordError);
250
278
  assert.deepEqual(err.meetingInfo, FAKE_MEETING_INFO);
251
279
  assert.equal(err.wbxAppApiCode, 403000);
@@ -254,34 +282,34 @@ describe('plugin-meetings', () => {
254
282
 
255
283
  describe('should throw MeetingInfoV2CaptchaError for 423 response', () => {
256
284
  const runTest = async (wbxAppApiCode, expectedIsPasswordRequired) => {
257
- webex.request = sinon.stub().rejects(
258
- {
259
- statusCode: 423,
260
- body: {
261
- code: wbxAppApiCode,
262
- captchaID: 'fake_captcha_id',
263
- verificationImageURL: 'fake_image_url',
264
- verificationAudioURL: 'fake_audio_url',
265
- refreshURL: 'fake_refresh_url'
266
- }
267
- }
268
- );
285
+ webex.request = sinon.stub().rejects({
286
+ statusCode: 423,
287
+ body: {
288
+ code: wbxAppApiCode,
289
+ captchaID: 'fake_captcha_id',
290
+ verificationImageURL: 'fake_image_url',
291
+ verificationAudioURL: 'fake_audio_url',
292
+ refreshURL: 'fake_refresh_url',
293
+ },
294
+ });
269
295
  try {
270
- await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {id: '999', code: 'aabbcc11'});
296
+ await meetingInfo.fetchMeetingInfo('1234323', _MEETING_ID_, 'abc', {
297
+ id: '999',
298
+ code: 'aabbcc11',
299
+ });
271
300
  assert.fail('fetchMeetingInfo should have thrown, but has not done that');
272
- }
273
- catch (err) {
301
+ } catch (err) {
274
302
  assert(Metrics.sendBehavioralMetric.calledOnce);
275
303
  assert.calledWith(
276
304
  Metrics.sendBehavioralMetric,
277
- BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
305
+ BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR
278
306
  );
279
307
  assert.instanceOf(err, MeetingInfoV2CaptchaError);
280
308
  assert.deepEqual(err.captchaInfo, {
281
309
  captchaId: 'fake_captcha_id',
282
310
  verificationImageURL: 'fake_image_url',
283
311
  verificationAudioURL: 'fake_audio_url',
284
- refreshURL: 'fake_refresh_url'
312
+ refreshURL: 'fake_refresh_url',
285
313
  });
286
314
  assert.equal(err.wbxAppApiCode, wbxAppApiCode);
287
315
  assert.equal(err.isPasswordRequired, expectedIsPasswordRequired);
@@ -302,7 +330,6 @@ describe('plugin-meetings', () => {
302
330
  });
303
331
  });
304
332
 
305
-
306
333
  describe('createAdhocSpaceMeeting', () => {
307
334
  it('Make a request to /instantSpace when conversationUrl', async () => {
308
335
  const conversationUrl = 'https://conversationUrl/xxx';
@@ -310,18 +337,21 @@ describe('plugin-meetings', () => {
310
337
 
311
338
  invitee.push({
312
339
  email: conversation.participants.items[0].emailAddress,
313
- ciUserUuid: conversation.participants.items[0].entryUUID
340
+ ciUserUuid: conversation.participants.items[0].entryUUID,
314
341
  });
315
342
 
316
343
  invitee.push({
317
344
  email: conversation.participants.items[1].emailAddress,
318
- ciUserUuid: conversation.participants.items[1].entryUUID
345
+ ciUserUuid: conversation.participants.items[1].entryUUID,
319
346
  });
320
347
 
321
348
  await meetingInfo.createAdhocSpaceMeeting(conversationUrl);
322
349
 
323
- assert.calledWith(webex.internal.conversation.get, {url: conversationUrl},
324
- {includeParticipants: true, disableTransform: true});
350
+ assert.calledWith(
351
+ webex.internal.conversation.get,
352
+ {url: conversationUrl},
353
+ {includeParticipants: true, disableTransform: true}
354
+ );
325
355
 
326
356
  assert.calledWith(webex.request, {
327
357
  method: 'POST',
@@ -331,14 +361,11 @@ describe('plugin-meetings', () => {
331
361
  spaceUrl: conversation.url,
332
362
  keyUrl: conversation.encryptionKeyUrl,
333
363
  kroUrl: conversation.kmsResourceObjectUrl,
334
- invitees: invitee
335
- }
364
+ invitees: invitee,
365
+ },
336
366
  });
337
367
  assert(Metrics.sendBehavioralMetric.calledOnce);
338
- assert.calledWith(
339
- Metrics.sendBehavioralMetric,
340
- BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS,
341
- );
368
+ assert.calledWith(Metrics.sendBehavioralMetric, BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
342
369
  });
343
370
  });
344
371
  });
@@ -8,9 +8,7 @@ import MockWebex from '@webex/test-helper-mock-webex';
8
8
  import Device from '@webex/internal-plugin-device';
9
9
  import Mercury from '@webex/internal-plugin-mercury';
10
10
  import Meetings from '@webex/plugin-meetings/src/meetings';
11
- import {
12
- _LOCUS_ID_
13
- } from '@webex/plugin-meetings/src/constants';
11
+ import {_LOCUS_ID_} from '@webex/plugin-meetings/src/constants';
14
12
 
15
13
  import MeetingInfoRequest from '../../../../src/meeting-info/request';
16
14
 
@@ -24,22 +22,22 @@ describe('plugin-meetings', () => {
24
22
  children: {
25
23
  device: Device,
26
24
  mercury: Mercury,
27
- meetings: Meetings
28
- }
25
+ meetings: Meetings,
26
+ },
29
27
  });
30
28
 
31
29
  Object.assign(webex.internal, {
32
30
  device: {
33
31
  deviceType: 'FAKE_DEVICE',
34
32
  register: sinon.stub().returns(Promise.resolve()),
35
- unregister: sinon.stub().returns(Promise.resolve())
33
+ unregister: sinon.stub().returns(Promise.resolve()),
36
34
  },
37
35
  mercury: {
38
36
  connect: sinon.stub().returns(Promise.resolve()),
39
37
  disconnect: sinon.stub().returns(Promise.resolve()),
40
38
  on: () => {},
41
- off: () => {}
42
- }
39
+ off: () => {},
40
+ },
43
41
  });
44
42
 
45
43
  meetingInfoRequest = new MeetingInfoRequest(webex);
@@ -56,7 +54,7 @@ describe('plugin-meetings', () => {
56
54
  it('Should call request with valid parameter', () => {
57
55
  meetingInfoRequest.fetchMeetingInfo({
58
56
  type: _LOCUS_ID_,
59
- destination: 'locus_url'
57
+ destination: 'locus_url',
60
58
  });
61
59
 
62
60
  assert.calledWith(webex.request, {method: 'PUT', uri: 'locus_url/meetingInfo'});
@@ -5,31 +5,30 @@ import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/util';
5
5
  describe('plugin-meetings', () => {
6
6
  describe('meeting-info#util', () => {
7
7
  describe('#generateOptions()', () => {
8
- it('should resolve with a \'wasHydraPerson\' key:value when provided a hydra person Id', () => {
8
+ it("should resolve with a 'wasHydraPerson' key:value when provided a hydra person Id", () => {
9
9
  const getSipUriFromHydraPersonId = sinon
10
10
  .stub(MeetingInfoUtil, 'getSipUriFromHydraPersonId')
11
11
  .resolves('example-destination');
12
12
 
13
- const isConversationUrl = sinon
14
- .stub(MeetingInfoUtil, 'isConversationUrl')
15
- .returns(false);
13
+ const isConversationUrl = sinon.stub(MeetingInfoUtil, 'isConversationUrl').returns(false);
16
14
 
17
15
  return MeetingInfoUtil.generateOptions({
18
- destination: 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS81NTU1NTU1NS01NTU1LTU1NTUtODU1NS01NTU1NTU1NTU1NTU='
19
- })
20
- .then(({wasHydraPerson}) => {
21
- assert.isTrue(wasHydraPerson);
16
+ destination:
17
+ 'Y2lzY29zcGFyazovL3VzL1BFT1BMRS81NTU1NTU1NS01NTU1LTU1NTUtODU1NS01NTU1NTU1NTU1NTU=',
18
+ }).then(({wasHydraPerson}) => {
19
+ assert.isTrue(wasHydraPerson);
22
20
 
23
- getSipUriFromHydraPersonId.restore();
24
- isConversationUrl.restore();
25
- });
21
+ getSipUriFromHydraPersonId.restore();
22
+ isConversationUrl.restore();
23
+ });
26
24
  });
27
25
  });
28
26
 
29
27
  describe('#getHydraId()', () => {
30
28
  it('should provide the clusterId of a given roomId', () => {
31
29
  // US Cluster fake roomId.
32
- const roomId = 'Y2lzY29zcGFyazovL3VzL1JPT00vYzEwODQ5YzAtNTZlMy0yMmViLWE4Y2ItZTllNzcwN2JjY2I4';
30
+ const roomId =
31
+ 'Y2lzY29zcGFyazovL3VzL1JPT00vYzEwODQ5YzAtNTZlMy0yMmViLWE4Y2ItZTllNzcwN2JjY2I4';
33
32
 
34
33
  assert.equal(MeetingInfoUtil.getHydraId(roomId).cluster, 'us');
35
34
  });