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

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 +1 -17
  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 +1 -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,74 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
24
-
25
15
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
26
-
27
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
28
-
29
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
30
-
31
18
  var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
32
-
33
19
  var _webexErrors = require("../common/errors/webex-errors");
34
-
35
20
  var _metrics = _interopRequireDefault(require("../metrics"));
36
-
37
21
  var _config = require("../metrics/config");
38
-
39
22
  var _media = _interopRequireDefault(require("../media"));
40
-
41
23
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
42
-
43
24
  var _constants = require("../constants");
44
-
45
25
  var _intentToJoin = _interopRequireDefault(require("../common/errors/intent-to-join"));
46
-
47
26
  var _joinMeeting = _interopRequireDefault(require("../common/errors/join-meeting"));
48
-
49
27
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
50
-
51
28
  var _permission = _interopRequireDefault(require("../common/errors/permission"));
52
-
53
29
  var _passwordError = _interopRequireDefault(require("../common/errors/password-error"));
54
-
55
30
  var _captchaError = _interopRequireDefault(require("../common/errors/captcha-error"));
56
-
57
31
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
58
-
59
32
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
60
-
61
33
  var MeetingUtil = {};
62
-
63
34
  MeetingUtil.parseLocusJoin = function (response) {
64
- var parsed = {}; // First todo: add check for existance
35
+ var parsed = {};
65
36
 
37
+ // First todo: add check for existance
66
38
  parsed.locus = response.body.locus;
67
39
  parsed.mediaConnections = response.body.mediaConnections;
68
40
  parsed.locusUrl = parsed.locus.url;
69
41
  parsed.locusId = parsed.locus.url.split('/').pop();
70
- parsed.selfId = parsed.locus.self.id; // we need mediaId before making roap calls
42
+ parsed.selfId = parsed.locus.self.id;
71
43
 
44
+ // we need mediaId before making roap calls
72
45
  parsed.mediaConnections.forEach(function (mediaConnection) {
73
46
  if (mediaConnection.mediaId) {
74
47
  parsed.mediaId = mediaConnection.mediaId;
@@ -76,23 +49,18 @@ MeetingUtil.parseLocusJoin = function (response) {
76
49
  });
77
50
  return parsed;
78
51
  };
79
-
80
52
  MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting) {
81
53
  if (!meeting) {
82
54
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
83
55
  }
84
-
85
56
  var localMedias = _media.default.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);
86
-
87
57
  if ((0, _isEmpty2.default)(localMedias)) {
88
58
  return _promise.default.reject(new _parameter.default('You need a media id on the meeting to change remote audio.'));
89
59
  }
90
-
91
60
  _metrics.default.postEvent({
92
61
  event: _config.eventType.MEDIA_REQUEST,
93
62
  meeting: meeting
94
63
  });
95
-
96
64
  return meeting.meetingRequest.remoteAudioVideoToggle({
97
65
  locusUrl: meeting.locusUrl,
98
66
  selfId: meeting.selfId,
@@ -105,38 +73,31 @@ MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting)
105
73
  event: _config.eventType.MEDIA_RESPONSE,
106
74
  meeting: meeting
107
75
  });
108
-
109
76
  return response.body.locus;
110
77
  });
111
78
  };
112
-
113
79
  MeetingUtil.hasOwner = function (info) {
114
80
  return info && info.owner;
115
81
  };
116
-
117
82
  MeetingUtil.isOwnerSelf = function (owner, selfId) {
118
83
  return owner === selfId;
119
84
  };
120
-
121
85
  MeetingUtil.isPinOrGuest = function (err) {
122
86
  var _err$body;
123
-
124
87
  return (err === null || err === void 0 ? void 0 : (_err$body = err.body) === null || _err$body === void 0 ? void 0 : _err$body.errorCode) && _constants.INTENT_TO_JOIN.includes(err.body.errorCode);
125
88
  };
126
-
127
89
  MeetingUtil.joinMeeting = function (meeting, options) {
128
90
  if (!meeting) {
129
91
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
130
92
  }
131
-
132
93
  _metrics.default.postEvent({
133
94
  event: _config.eventType.LOCUS_JOIN_REQUEST,
134
95
  meeting: meeting
135
- }); // eslint-disable-next-line no-warning-comments
96
+ });
97
+
98
+ // eslint-disable-next-line no-warning-comments
136
99
  // TODO: check if the meeting is in JOINING state
137
100
  // if Joining state termintate the request as user might click multiple times
138
-
139
-
140
101
  return meeting.meetingRequest.joinMeeting({
141
102
  inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,
142
103
  meetingNumber: meeting.meetingNumber,
@@ -150,7 +111,8 @@ MeetingUtil.joinMeeting = function (meeting, options) {
150
111
  pin: options.pin,
151
112
  moveToResource: options.moveToResource,
152
113
  preferTranscoding: !meeting.isMultistream,
153
- asResourceOccupant: options.asResourceOccupant
114
+ asResourceOccupant: options.asResourceOccupant,
115
+ breakoutsSupported: options.breakoutsSupported
154
116
  }).then(function (res) {
155
117
  _metrics.default.postEvent({
156
118
  event: _config.eventType.LOCUS_JOIN_RESPONSE,
@@ -162,12 +124,12 @@ MeetingUtil.joinMeeting = function (meeting, options) {
162
124
  trackingId: res.headers.trackingid
163
125
  }
164
126
  });
165
-
166
127
  return MeetingUtil.parseLocusJoin(res);
167
128
  });
168
129
  };
169
-
170
130
  MeetingUtil.cleanUp = function (meeting) {
131
+ meeting.breakouts.cleanUp();
132
+
171
133
  // make sure we send last metrics before we close the peerconnection
172
134
  var stopStatsAnalyzer = meeting.statsAnalyzer ? meeting.statsAnalyzer.stopAnalyzer() : _promise.default.resolve();
173
135
  return stopStatsAnalyzer.then(function () {
@@ -186,14 +148,14 @@ MeetingUtil.cleanUp = function (meeting) {
186
148
  meeting.reconnectionManager.cleanUp();
187
149
  }).then(function () {
188
150
  return meeting.stopKeepAlive();
151
+ }).then(function () {
152
+ return meeting.updateLLMConnection();
189
153
  });
190
154
  };
191
-
192
155
  MeetingUtil.disconnectPhoneAudio = function (meeting, phoneUrl) {
193
156
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
194
157
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
195
158
  }
196
-
197
159
  var options = {
198
160
  locusUrl: meeting.locusUrl,
199
161
  selfId: meeting.selfId,
@@ -202,33 +164,28 @@ MeetingUtil.disconnectPhoneAudio = function (meeting, phoneUrl) {
202
164
  };
203
165
  return meeting.meetingRequest.disconnectPhoneAudio(options).then(function (response) {
204
166
  var _response$body;
205
-
206
167
  if (response !== null && response !== void 0 && (_response$body = response.body) !== null && _response$body !== void 0 && _response$body.locus) {
207
168
  meeting.locusInfo.onFullLocus(response.body.locus);
208
169
  }
209
170
  }).catch(function (err) {
210
171
  _loggerProxy.default.logger.error("Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ".concat(meeting.id, ", error: ").concat(err));
211
-
212
172
  return _promise.default.reject(err);
213
173
  });
214
- }; // by default will leave on meeting's resourceId
174
+ };
175
+
176
+ // by default will leave on meeting's resourceId
215
177
  // if you explicity want it not to leave on resource id, pass
216
178
  // {resourceId: null}
217
179
  // TODO: chris, you can modify this however you want
218
-
219
-
220
180
  MeetingUtil.leaveMeeting = function (meeting) {
221
181
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
222
-
223
182
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
224
183
  // TODO: clean up if the meeting is already inactive
225
184
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
226
185
  }
227
-
228
186
  if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {
229
187
  return _promise.default.reject(new _webexErrors.UserNotJoinedError());
230
188
  }
231
-
232
189
  var defaultOptions = {
233
190
  locusUrl: meeting.locusUrl,
234
191
  selfId: meeting.selfId,
@@ -236,32 +193,26 @@ MeetingUtil.leaveMeeting = function (meeting) {
236
193
  resourceId: meeting.resourceId,
237
194
  deviceUrl: meeting.deviceUrl
238
195
  };
239
-
240
196
  var leaveOptions = _objectSpread(_objectSpread({}, defaultOptions), options);
241
-
242
197
  return meeting.meetingRequest.leaveMeeting(leaveOptions).then(function (response) {
243
198
  if (response && response.body && response.body.locus) {
244
199
  // && !options.moveMeeting) {
245
200
  meeting.locusInfo.onFullLocus(response.body.locus);
246
201
  }
247
-
248
202
  return _promise.default.resolve();
249
203
  }).then(function () {
250
204
  if (options.moveMeeting) {
251
205
  return _promise.default.resolve();
252
206
  }
253
-
254
207
  return MeetingUtil.cleanUp(meeting);
255
208
  }).catch(function (err) {
256
209
  // TODO: If the meeting state comes as LEFT or INACTIVE as response then
257
210
  // 1) on leave clean up the meeting or simply do a sync on the meeting
258
211
  // 2) If the error says meeting is inactive then destroy the meeting object
259
212
  _loggerProxy.default.logger.error("Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ".concat(meeting.id, ", error: ").concat(err));
260
-
261
213
  return _promise.default.reject(err);
262
214
  });
263
215
  };
264
-
265
216
  MeetingUtil.declineMeeting = function (meeting, reason) {
266
217
  return meeting.meetingRequest.declineMeeting({
267
218
  locusUrl: meeting.locusUrl,
@@ -269,49 +220,38 @@ MeetingUtil.declineMeeting = function (meeting, reason) {
269
220
  reason: reason
270
221
  });
271
222
  };
272
-
273
223
  MeetingUtil.isUserInLeftState = function (locusInfo) {
274
224
  var _locusInfo$parsedLocu, _locusInfo$parsedLocu2;
275
-
276
225
  return ((_locusInfo$parsedLocu = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu === void 0 ? void 0 : (_locusInfo$parsedLocu2 = _locusInfo$parsedLocu.self) === null || _locusInfo$parsedLocu2 === void 0 ? void 0 : _locusInfo$parsedLocu2.state) === _constants._LEFT_;
277
226
  };
278
-
279
227
  MeetingUtil.isUserInIdleState = function (locusInfo) {
280
228
  var _locusInfo$parsedLocu3, _locusInfo$parsedLocu4;
281
-
282
229
  return ((_locusInfo$parsedLocu3 = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu3 === void 0 ? void 0 : (_locusInfo$parsedLocu4 = _locusInfo$parsedLocu3.self) === null || _locusInfo$parsedLocu4 === void 0 ? void 0 : _locusInfo$parsedLocu4.state) === _constants._IDLE_;
283
230
  };
284
-
285
231
  MeetingUtil.isUserInJoinedState = function (locusInfo) {
286
232
  var _locusInfo$parsedLocu5, _locusInfo$parsedLocu6;
287
-
288
233
  return ((_locusInfo$parsedLocu5 = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu5 === void 0 ? void 0 : (_locusInfo$parsedLocu6 = _locusInfo$parsedLocu5.self) === null || _locusInfo$parsedLocu6 === void 0 ? void 0 : _locusInfo$parsedLocu6.state) === _constants._JOINED_;
289
234
  };
290
-
291
235
  MeetingUtil.isMediaEstablished = function (currentMediaStatus) {
292
236
  return currentMediaStatus && (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);
293
237
  };
294
-
295
238
  MeetingUtil.joinMeetingOptions = function (meeting) {
296
239
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
297
240
  meeting.resourceId = meeting.resourceId || options.resourceId;
298
-
299
241
  if (meeting.requiredCaptcha) {
300
242
  return _promise.default.reject(new _captchaError.default());
301
243
  }
302
-
303
244
  if (meeting.passwordStatus === _constants.PASSWORD_STATUS.REQUIRED) {
304
245
  return _promise.default.reject(new _passwordError.default());
305
246
  }
306
-
307
247
  if (options.pin) {
308
248
  _metrics.default.postEvent({
309
249
  event: _config.eventType.PIN_COLLECTED,
310
250
  meeting: meeting
311
251
  });
312
- } // normal join meeting, scenario A, D
313
-
252
+ }
314
253
 
254
+ // normal join meeting, scenario A, D
315
255
  return MeetingUtil.joinMeeting(meeting, options).then(function (response) {
316
256
  meeting.setLocus(response);
317
257
  return _promise.default.resolve(response);
@@ -321,202 +261,99 @@ MeetingUtil.joinMeetingOptions = function (meeting) {
321
261
  _metrics.default.postEvent({
322
262
  event: _config.eventType.PIN_PROMPT,
323
263
  meeting: meeting
324
- }); // request host pin or non host for unclaimed PMR, start of Scenario C
325
- // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature
326
-
264
+ });
327
265
 
266
+ // request host pin or non host for unclaimed PMR, start of Scenario C
267
+ // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature
328
268
  return _promise.default.reject(new _intentToJoin.default('Error Joining Meeting', err));
329
269
  }
330
-
331
270
  _loggerProxy.default.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);
332
-
333
271
  return _promise.default.reject(new _joinMeeting.default(options, 'Error Joining Meeting', err));
334
272
  });
335
273
  };
336
-
337
274
  MeetingUtil.validateOptions = function (options) {
338
275
  var sendVideo = options.sendVideo,
339
- sendAudio = options.sendAudio,
340
- sendShare = options.sendShare,
341
- localStream = options.localStream,
342
- localShare = options.localShare;
343
-
276
+ sendAudio = options.sendAudio,
277
+ sendShare = options.sendShare,
278
+ localStream = options.localStream,
279
+ localShare = options.localShare;
344
280
  if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {
345
281
  return _promise.default.reject(new _parameter.default('please pass valid video streams'));
346
282
  }
347
-
348
283
  if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {
349
284
  return _promise.default.reject(new _parameter.default('please pass valid audio streams'));
350
285
  }
351
-
352
286
  if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {
353
287
  return _promise.default.reject(new _parameter.default('please pass valid share streams'));
354
288
  }
355
-
356
289
  return _promise.default.resolve();
357
290
  };
358
-
359
291
  MeetingUtil.getTrack = function (stream) {
360
292
  var audioTrack = null;
361
293
  var videoTrack = null;
362
294
  var audioTracks = null;
363
295
  var videoTracks = null;
364
-
365
296
  if (!stream) {
366
297
  return {
367
298
  audioTrack: null,
368
299
  videoTrack: null
369
300
  };
370
301
  }
371
-
372
302
  if (stream.getAudioTracks) {
373
303
  audioTracks = stream.getAudioTracks();
374
304
  }
375
-
376
305
  if (stream.getVideoTracks) {
377
306
  videoTracks = stream.getVideoTracks();
378
307
  }
379
-
380
308
  if (audioTracks && audioTracks.length > 0) {
381
309
  var _audioTracks = audioTracks;
382
-
383
310
  var _audioTracks2 = (0, _slicedToArray2.default)(_audioTracks, 1);
384
-
385
311
  audioTrack = _audioTracks2[0];
386
312
  }
387
-
388
313
  if (videoTracks && videoTracks.length > 0) {
389
314
  var _videoTracks = videoTracks;
390
-
391
315
  var _videoTracks2 = (0, _slicedToArray2.default)(_videoTracks, 1);
392
-
393
316
  videoTrack = _videoTracks2[0];
394
317
  }
395
-
396
318
  return {
397
319
  audioTrack: audioTrack,
398
320
  videoTrack: videoTrack
399
321
  };
400
322
  };
401
-
402
323
  MeetingUtil.getModeratorFromLocusInfo = function (locusInfo) {
403
324
  return locusInfo && locusInfo.parsedLocus && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info.moderator;
404
325
  };
405
-
406
326
  MeetingUtil.getPolicyFromLocusInfo = function (locusInfo) {
407
327
  return locusInfo && locusInfo.parsedLocus && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info && locusInfo.parsedLocus.info.policy;
408
328
  };
409
-
410
329
  MeetingUtil.getUserDisplayHintsFromLocusInfo = function (locusInfo) {
411
330
  var _locusInfo$parsedLocu7, _locusInfo$parsedLocu8;
412
-
413
331
  return (locusInfo === null || locusInfo === void 0 ? void 0 : (_locusInfo$parsedLocu7 = locusInfo.parsedLocus) === null || _locusInfo$parsedLocu7 === void 0 ? void 0 : (_locusInfo$parsedLocu8 = _locusInfo$parsedLocu7.info) === null || _locusInfo$parsedLocu8 === void 0 ? void 0 : _locusInfo$parsedLocu8.userDisplayHints) || [];
414
332
  };
415
-
416
333
  MeetingUtil.canInviteNewParticipants = function (displayHints) {
417
334
  return displayHints.includes(_constants.DISPLAY_HINTS.ADD_GUEST);
418
335
  };
419
-
420
336
  MeetingUtil.canAdmitParticipant = function (displayHints) {
421
337
  return displayHints.includes(_constants.DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);
422
338
  };
423
-
424
339
  MeetingUtil.canUserLock = function (displayHints) {
425
340
  return displayHints.includes(_constants.DISPLAY_HINTS.LOCK_CONTROL_LOCK) && displayHints.includes(_constants.DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);
426
341
  };
427
-
428
342
  MeetingUtil.canUserUnlock = function (displayHints) {
429
343
  return displayHints.includes(_constants.DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) && displayHints.includes(_constants.DISPLAY_HINTS.LOCK_STATUS_LOCKED);
430
344
  };
431
-
432
- MeetingUtil.canUserRecord = function (displayHints) {
433
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_START);
434
- };
435
-
436
- MeetingUtil.canUserPause = function (displayHints) {
437
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_PAUSE);
438
- };
439
-
440
- MeetingUtil.canUserResume = function (displayHints) {
441
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_RESUME);
442
- };
443
-
444
- MeetingUtil.canUserStop = function (displayHints) {
445
- return displayHints.includes(_constants.DISPLAY_HINTS.RECORDING_CONTROL_STOP);
446
- };
447
-
448
- MeetingUtil.startRecording = function (request, locusUrl, locusInfo) {
449
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
450
-
451
- if (MeetingUtil.canUserRecord(displayHints)) {
452
- return request.recordMeeting({
453
- locusUrl: locusUrl,
454
- recording: true,
455
- paused: false
456
- });
457
- }
458
-
459
- return _promise.default.reject(new _permission.default('Start recording not allowed, due to moderator property.'));
460
- };
461
-
462
- MeetingUtil.pauseRecording = function (request, locusUrl, locusInfo) {
463
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
464
-
465
- if (MeetingUtil.canUserPause(displayHints)) {
466
- return request.recordMeeting({
467
- locusUrl: locusUrl,
468
- recording: true,
469
- paused: true
470
- });
471
- }
472
-
473
- return _promise.default.reject(new _permission.default('Pause recording not allowed, due to moderator property.'));
474
- };
475
-
476
- MeetingUtil.resumeRecording = function (request, locusUrl, locusInfo) {
477
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
478
-
479
- if (MeetingUtil.canUserResume(displayHints)) {
480
- return request.recordMeeting({
481
- locusUrl: locusUrl,
482
- recording: true,
483
- paused: false
484
- });
485
- }
486
-
487
- return _promise.default.reject(new _permission.default('Resume recording not allowed, due to moderator property.'));
488
- };
489
-
490
- MeetingUtil.stopRecording = function (request, locusUrl, locusInfo) {
491
- var displayHints = MeetingUtil.getUserDisplayHintsFromLocusInfo(locusInfo);
492
-
493
- if (MeetingUtil.canUserStop(displayHints)) {
494
- return request.recordMeeting({
495
- locusUrl: locusUrl,
496
- recording: false,
497
- paused: false
498
- });
499
- }
500
-
501
- return _promise.default.reject(new _permission.default('Stop recording not allowed, due to moderator property.'));
502
- };
503
-
504
345
  MeetingUtil.canUserRaiseHand = function (displayHints) {
505
346
  return displayHints.includes(_constants.DISPLAY_HINTS.RAISE_HAND);
506
347
  };
507
-
508
348
  MeetingUtil.canUserLowerAllHands = function (displayHints) {
509
349
  return displayHints.includes(_constants.DISPLAY_HINTS.LOWER_ALL_HANDS);
510
350
  };
511
-
512
351
  MeetingUtil.canUserLowerSomeoneElsesHand = function (displayHints) {
513
352
  return displayHints.includes(_constants.DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);
514
353
  };
515
-
516
354
  MeetingUtil.bothLeaveAndEndMeetingAvailable = function (displayHints) {
517
355
  return displayHints.includes(_constants.DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) || displayHints.includes(_constants.DISPLAY_HINTS.LEAVE_END_MEETING);
518
356
  };
519
-
520
357
  MeetingUtil.lockMeeting = function (actions, request, locusUrl) {
521
358
  if (actions && actions.canLock) {
522
359
  return request.lockMeeting({
@@ -524,10 +361,8 @@ MeetingUtil.lockMeeting = function (actions, request, locusUrl) {
524
361
  lock: true
525
362
  });
526
363
  }
527
-
528
364
  return _promise.default.reject(new _permission.default('Lock not allowed, due to joined property.'));
529
365
  };
530
-
531
366
  MeetingUtil.unlockMeeting = function (actions, request, locusUrl) {
532
367
  if (actions && actions.canUnlock) {
533
368
  return request.lockMeeting({
@@ -535,51 +370,38 @@ MeetingUtil.unlockMeeting = function (actions, request, locusUrl) {
535
370
  lock: false
536
371
  });
537
372
  }
538
-
539
373
  return _promise.default.reject(new _permission.default('Unlock not allowed, due to joined property.'));
540
374
  };
541
-
542
375
  MeetingUtil.handleAudioLogging = function (audioTrack) {
543
376
  var LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';
544
-
545
377
  if (audioTrack) {
546
378
  var settings = audioTrack.getSettings();
547
379
  var deviceId = settings.deviceId;
548
-
549
380
  _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(deviceId));
550
-
551
381
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings =', (0, _stringify.default)(settings));
552
382
  }
553
383
  };
554
-
555
384
  MeetingUtil.handleVideoLogging = function (videoTrack) {
556
385
  var LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';
557
-
558
386
  if (videoTrack) {
559
387
  var settings = videoTrack.getSettings();
560
388
  var deviceId = settings.deviceId;
561
-
562
389
  _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(deviceId));
563
-
564
390
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings =', (0, _stringify.default)(settings));
565
391
  }
566
392
  };
567
-
568
393
  MeetingUtil.handleDeviceLogging = function () {
569
394
  var devices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
570
395
  var LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';
571
396
  devices.forEach(function (device) {
572
397
  _loggerProxy.default.logger.log(LOG_HEADER, "deviceId = ".concat(device.deviceId));
573
-
574
398
  _loggerProxy.default.logger.log(LOG_HEADER, 'settings', (0, _stringify.default)(device));
575
399
  });
576
400
  };
577
-
578
401
  MeetingUtil.endMeetingForAll = function (meeting) {
579
402
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
580
403
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
581
404
  }
582
-
583
405
  var endOptions = {
584
406
  locusUrl: meeting.locusUrl
585
407
  };
@@ -587,53 +409,59 @@ MeetingUtil.endMeetingForAll = function (meeting) {
587
409
  if (response && response.body && response.body.locus) {
588
410
  meeting.locusInfo.onFullLocus(response.body.locus);
589
411
  }
590
-
591
412
  return _promise.default.resolve();
592
413
  }).then(function () {
593
414
  return MeetingUtil.cleanUp(meeting);
594
415
  }).catch(function (err) {
595
416
  _loggerProxy.default.logger.error("Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ".concat(meeting.id, ", error: ").concat(err));
596
-
597
417
  return _promise.default.reject(err);
598
418
  });
599
419
  };
600
-
601
420
  MeetingUtil.canEnableClosedCaption = function (displayHints) {
602
421
  return displayHints.includes(_constants.DISPLAY_HINTS.CAPTION_START);
603
422
  };
604
-
605
423
  MeetingUtil.canStartTranscribing = function (displayHints) {
606
424
  return displayHints.includes(_constants.DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);
607
425
  };
608
-
609
426
  MeetingUtil.canStopTranscribing = function (displayHints) {
610
427
  return displayHints.includes(_constants.DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);
611
428
  };
612
-
613
429
  MeetingUtil.isClosedCaptionActive = function (displayHints) {
614
430
  return displayHints.includes(_constants.DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);
615
431
  };
616
-
617
432
  MeetingUtil.isWebexAssistantActive = function (displayHints) {
618
433
  return displayHints.includes(_constants.DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);
619
434
  };
620
-
621
435
  MeetingUtil.canViewCaptionPanel = function (displayHints) {
622
436
  return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_CAPTION_PANEL);
623
437
  };
624
-
625
438
  MeetingUtil.isRealTimeTranslationEnabled = function (displayHints) {
626
439
  return displayHints.includes(_constants.DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);
627
440
  };
628
-
629
441
  MeetingUtil.canSelectSpokenLanguages = function (displayHints) {
630
442
  return displayHints.includes(_constants.DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);
631
443
  };
632
-
633
444
  MeetingUtil.waitingForOthersToJoin = function (displayHints) {
634
445
  return displayHints.includes(_constants.DISPLAY_HINTS.WAITING_FOR_OTHERS);
635
446
  };
636
-
447
+ MeetingUtil.canEnableReactions = function (originalValue, displayHints) {
448
+ if (displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_REACTIONS)) {
449
+ return true;
450
+ }
451
+ if (displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_REACTIONS)) {
452
+ return false;
453
+ }
454
+ return originalValue;
455
+ };
456
+ MeetingUtil.canSendReactions = function (originalValue, displayHints) {
457
+ if (displayHints.includes(_constants.DISPLAY_HINTS.REACTIONS_ACTIVE)) {
458
+ return true;
459
+ }
460
+ if (displayHints.includes(_constants.DISPLAY_HINTS.REACTIONS_INACTIVE)) {
461
+ return false;
462
+ }
463
+ return originalValue;
464
+ };
637
465
  var _default = MeetingUtil;
638
466
  exports.default = _default;
639
467
  //# sourceMappingURL=util.js.map