@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
@@ -1,33 +0,0 @@
1
- /* eslint-disable no-unused-vars */
2
- import LoggerConfig from './logger-config';
3
-
4
- const LoggerProxy = {
5
- logger: {
6
- info: (args) => { console.error('LoggerProxy->info#NO LOGGER DEFINED'); },
7
- log: (args) => { console.error('LoggerProxy->log#NO LOGGER DEFINED'); },
8
- error: (args) => { console.error('LoggerProxy->error#NO LOGGER DEFINED'); },
9
- warn: (args) => { console.error('LoggerProxy->warn#NO LOGGER DEFINED'); },
10
- trace: (args) => { console.error('LoggerProxy->trace#NO LOGGER DEFINED'); },
11
- debug: (args) => { console.error('LoggerProxy->debug#NO LOGGER DEFINED'); }
12
- }
13
- };
14
-
15
- LoggerProxy.set = (logger) => {
16
- if (!LoggerConfig.enable) {
17
- LoggerProxy.logger = {
18
- info: () => {},
19
- log: () => {},
20
- error: () => {},
21
- warn: () => {},
22
- trace: () => {},
23
- debug: () => {}
24
- };
25
- }
26
- else {
27
- LoggerProxy.logger = logger;
28
- }
29
- };
30
-
31
- LoggerProxy.get = () => LoggerProxy.logger;
32
-
33
- export default LoggerProxy;
@@ -1,102 +0,0 @@
1
- import {isEqual} from 'lodash';
2
-
3
- const ControlsUtils = {};
4
-
5
- /**
6
- * Controls
7
- * @typedef {Object} LocusControls
8
- * @property {Object} record
9
- * @property {Boolean} record.recording
10
- * @property {Object} record.meta
11
- * @property {String} record.meta.modifiedBy
12
- */
13
-
14
- /**
15
- * parse the relevant host values that we care about: id
16
- * @param {LocusControls} controls
17
- * @returns {Object} parsedObject - parsed host or null if host was undefined
18
- * @returns {String} parsedObject.recordingId
19
- */
20
- ControlsUtils.parse = (controls) => {
21
- const parsedControls = {...controls};
22
-
23
- if (controls && controls.record) {
24
- parsedControls.record = {
25
- modifiedBy: ControlsUtils.getId(controls),
26
- paused: controls.record.paused ? controls.record.paused : false,
27
- recording: controls.record.recording,
28
- lastModified: controls.record.meta.lastModified
29
- };
30
- }
31
-
32
- if (controls && controls.meetingContainer) {
33
- parsedControls.meetingContainer = {
34
- meetingContainerUrl: controls.meetingContainer.meetingContainerUrl
35
- };
36
- }
37
-
38
- if (controls && controls.transcribe) {
39
- parsedControls.transcribe = {
40
- transcribing: controls.transcribe.transcribing,
41
- caption: controls.transcribe.caption
42
- };
43
- }
44
-
45
- if (controls && controls.entryExitTone) {
46
- parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;
47
- }
48
-
49
- return parsedControls;
50
- };
51
-
52
- /**
53
- * parses and returns previous state vs current state and triggers the changes.
54
- * @param {LocusControls} oldControls previous state
55
- * @param {LocusControls} newControls current state
56
- * @returns {Object} combination of state plus the changes
57
- */
58
- ControlsUtils.getControls = (oldControls, newControls) => {
59
- const previous = ControlsUtils.parse(oldControls);
60
- const current = ControlsUtils.parse(newControls);
61
-
62
- return {
63
- previous,
64
- current,
65
- updates: {
66
- hasRecordingPausedChanged: current?.record &&
67
- !isEqual(previous?.record?.paused, current.record.paused) &&
68
- (previous?.record?.recording || current?.record?.recording), // see comments directly below
69
-
70
- hasRecordingChanged: current?.record &&
71
- !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
72
- (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
73
-
74
- hasMeetingContainerChanged: current?.meetingContainer &&
75
- !isEqual(previous?.meetingContainer?.meetingContainerUrl,
76
- current?.meetingContainer?.meetingContainerUrl),
77
-
78
- hasTranscribeChanged: current?.transcribe &&
79
- !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
80
- (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
81
-
82
- hasEntryExitToneChanged: !!(newControls.entryExitTone &&
83
- !isEqual(previous?.entryExitTone, current?.entryExitTone) &&
84
- (previous?.entryExitTone || current?.entryExitTone)),
85
- }
86
- };
87
- };
88
-
89
- /**
90
- * Extract the id from the record controls object
91
- * @param {LocusControls} controls
92
- * @returns {String|null}
93
- */
94
- ControlsUtils.getId = (controls) => {
95
- if (controls.record.meta) {
96
- return controls.record.meta.modifiedBy;
97
- }
98
-
99
- return null;
100
- };
101
-
102
- export default ControlsUtils;
@@ -1,9 +0,0 @@
1
- import {MediaConnection as MC} from '@webex/internal-media-core';
2
-
3
- /* We have this wrapper just because otherwise it's impossible to mock
4
- * RoapMediaConnection and MultistreamRoapMediaConnection constructors in unit tests,
5
- * because they are exported by @webex/internal-media-core as non-writable, non-configurable
6
- * properties of MediaConnection and sinon doesn't allow spying on them or stubbing them.
7
- */
8
- export const RoapMediaConnection = MC.RoapMediaConnection;
9
- export const MultistreamRoapMediaConnection = MC.MultistreamRoapMediaConnection;
@@ -1,255 +0,0 @@
1
-
2
- import {HTTP_VERBS, _CONVERSATION_URL_, WBXAPPAPI_SERVICE} from '../constants';
3
- import Metrics from '../metrics';
4
- import BEHAVIORAL_METRICS from '../metrics/constants';
5
-
6
- import MeetingInfoUtil from './utilv2';
7
-
8
- const PASSWORD_ERROR_DEFAULT_MESSAGE = 'Password required. Call fetchMeetingInfo() with password argument';
9
- const CAPTCHA_ERROR_DEFAULT_MESSAGE = 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';
10
- const ADHOC_MEETING_DEFAULT_ERROR = 'Failed starting the adhoc meeting, Please contact support team ';
11
- const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
12
-
13
- /**
14
- * Error to indicate that wbxappapi requires a password
15
- */
16
- export class MeetingInfoV2PasswordError extends Error {
17
- /**
18
- *
19
- * @constructor
20
- * @param {Number} [wbxAppApiErrorCode]
21
- * @param {Object} [meetingInfo]
22
- * @param {String} [message]
23
- */
24
- constructor(wbxAppApiErrorCode, meetingInfo, message = PASSWORD_ERROR_DEFAULT_MESSAGE) {
25
- super(`${message}, code=${wbxAppApiErrorCode}`);
26
- this.name = 'MeetingInfoV2PasswordError';
27
- this.sdkMessage = message;
28
- this.stack = (new Error()).stack;
29
- this.wbxAppApiCode = wbxAppApiErrorCode;
30
- this.meetingInfo = meetingInfo;
31
- }
32
- }
33
-
34
- /**
35
- * Error generating a adhoc space meeting
36
- */
37
- export class MeetingInfoV2AdhocMeetingError extends Error {
38
- /**
39
- *
40
- * @constructor
41
- * @param {Number} [wbxAppApiErrorCode]
42
- * @param {String} [message]
43
- */
44
- constructor(wbxAppApiErrorCode, message = ADHOC_MEETING_DEFAULT_ERROR) {
45
- super(`${message}, code=${wbxAppApiErrorCode}`);
46
- this.name = 'MeetingInfoV2AdhocMeetingError';
47
- this.sdkMessage = message;
48
- this.stack = (new Error()).stack;
49
- this.wbxAppApiCode = wbxAppApiErrorCode;
50
- }
51
- }
52
-
53
-
54
- /**
55
- * Error to indicate that preferred webex site not present to start adhoc meeting
56
- */
57
- export class MeetingInfoV2CaptchaError extends Error {
58
- /**
59
- *
60
- * @constructor
61
- * @param {Number} [wbxAppApiErrorCode]
62
- * @param {Object} [captchaInfo]
63
- * @param {String} [message]
64
- */
65
- constructor(wbxAppApiErrorCode, captchaInfo, message = CAPTCHA_ERROR_DEFAULT_MESSAGE) {
66
- super(`${message}, code=${wbxAppApiErrorCode}`);
67
- this.name = 'MeetingInfoV2PasswordError';
68
- this.sdkMessage = message;
69
- this.stack = (new Error()).stack;
70
- this.wbxAppApiCode = wbxAppApiErrorCode;
71
- this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);
72
- this.captchaInfo = captchaInfo;
73
- }
74
- }
75
-
76
- /**
77
- * @class MeetingInfo
78
- */
79
- export default class MeetingInfoV2 {
80
- /**
81
- *
82
- * @param {WebexSDK} webex
83
- */
84
- constructor(webex) {
85
- this.webex = webex;
86
- }
87
-
88
- /**
89
- * converts hydra id into conversation url and persons Id
90
- * @param {String} destination one of many different types of destinations to look up info for
91
- * @param {String} [type] to match up with the destination value
92
- * @returns {Promise} destination and type
93
- * @public
94
- * @memberof MeetingInfo
95
- */
96
- fetchInfoOptions(destination, type = null) {
97
- return MeetingInfoUtil.getDestinationType({
98
- destination,
99
- type,
100
- webex: this.webex
101
- });
102
- }
103
-
104
- /**
105
- * Creates adhoc space meetings for a space by fetching the conversation infomation
106
- * @param {String} conversationUrl conversationUrl to start adhoc meeting on
107
- * @returns {Promise} returns a meeting info object
108
- * @public
109
- * @memberof MeetingInfo
110
- */
111
- async createAdhocSpaceMeeting(conversationUrl) {
112
- if (!this.webex.meetings.preferredWebexSite) {
113
- throw Error('No preferred webex site found');
114
- }
115
- const getInvitees = (particpants = []) => {
116
- const invitees = [];
117
-
118
- if (particpants) {
119
- particpants.forEach((participant) => {
120
- invitees.push({
121
- email: participant.emailAddress,
122
- ciUserUuid: participant.entryUUID
123
- });
124
- });
125
- }
126
-
127
- return invitees;
128
- };
129
-
130
- return this.webex.internal.conversation.get(
131
- {url: conversationUrl},
132
- {includeParticipants: true, disableTransform: true}
133
- )
134
- .then((conversation) => {
135
- const body = {
136
- title: conversation.displayName,
137
- spaceUrl: conversation.url,
138
- keyUrl: conversation.encryptionKeyUrl,
139
- kroUrl: conversation.kmsResourceObjectUrl,
140
- invitees: getInvitees(conversation.participants?.items)
141
- };
142
-
143
- const uri = this.webex.meetings.preferredWebexSite ?
144
- `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant` : '';
145
-
146
- Metrics.sendBehavioralMetric(
147
- BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS
148
- );
149
-
150
- return this.webex.request({
151
- method: HTTP_VERBS.POST,
152
- uri,
153
- body
154
- });
155
- })
156
- .catch((err) => {
157
- Metrics.sendBehavioralMetric(
158
- BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE,
159
- {
160
- reason: err.message,
161
- stack: err.stack
162
- }
163
- );
164
- throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);
165
- });
166
- }
167
-
168
- /**
169
- * Fetches meeting info from the server
170
- * @param {String} destination one of many different types of destinations to look up info for
171
- * @param {String} [type] to match up with the destination value
172
- * @param {String} password
173
- * @param {Object} captchaInfo
174
- * @param {String} captchaInfo.code
175
- * @param {String} captchaInfo.id
176
- * @returns {Promise} returns a meeting info object
177
- * @public
178
- * @memberof MeetingInfo
179
- */
180
- async fetchMeetingInfo(destination, type = null, password = null, captchaInfo = null) {
181
- const destinationType = await MeetingInfoUtil.getDestinationType({
182
- destination,
183
- type,
184
- webex: this.webex
185
- });
186
-
187
- if (destinationType.type === _CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite) {
188
- return this.createAdhocSpaceMeeting(destinationType.destination);
189
- }
190
-
191
- const body = await MeetingInfoUtil.getRequestBody({...destinationType, password, captchaInfo});
192
-
193
- const options = {
194
- method: HTTP_VERBS.POST,
195
- body
196
- };
197
-
198
- const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
199
-
200
- if (directURI) {
201
- options.uri = directURI;
202
- }
203
- else {
204
- options.service = WBXAPPAPI_SERVICE;
205
- options.resource = 'meetingInfo';
206
- }
207
-
208
- return this.webex.request(options)
209
- .then((response) => {
210
- Metrics.sendBehavioralMetric(
211
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS
212
- );
213
-
214
- return response;
215
- })
216
- .catch((err) => {
217
- if (err?.statusCode === 403) {
218
- Metrics.sendBehavioralMetric(
219
- BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
220
- {
221
- reason: err.message,
222
- stack: err.stack
223
- }
224
- );
225
-
226
- throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);
227
- }
228
- if (err?.statusCode === 423) {
229
- Metrics.sendBehavioralMetric(
230
- BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
231
- {
232
- reason: err.message,
233
- stack: err.stack
234
- }
235
- );
236
-
237
- throw new MeetingInfoV2CaptchaError(err.body?.code, {
238
- captchaId: err.body.captchaID,
239
- verificationImageURL: err.body.verificationImageURL,
240
- verificationAudioURL: err.body.verificationAudioURL,
241
- refreshURL: err.body.refreshURL
242
- });
243
- }
244
-
245
- Metrics.sendBehavioralMetric(
246
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE,
247
- {
248
- reason: err.message,
249
- stack: err.stack
250
- }
251
- );
252
- throw err;
253
- });
254
- }
255
- }