@webex/plugin-meetings 2.59.8 → 2.60.0-next.2

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 (528) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +15 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +92 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4628 -2971
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +200 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +39 -41
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +42 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +477 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +15 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +281 -229
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +140 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +402 -424
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +117 -83
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -25
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +271 -93
  262. package/src/controls-options-manager/enums.ts +12 -0
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +172 -0
  282. package/src/meeting/index.ts +3861 -2504
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +163 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +28 -28
  292. package/src/meetings/collection.ts +33 -0
  293. package/src/meetings/index.ts +477 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +13 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +167 -154
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +124 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +470 -522
  330. package/src/statsAnalyzer/mqaUtil.ts +117 -112
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +84 -0
  362. package/test/unit/spec/meeting/index.js +8269 -3145
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +409 -213
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +26 -0
  371. package/test/unit/spec/meetings/index.js +1201 -210
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +499 -29
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +145 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  396. package/test/unit/spec/stats-analyzer/index.js +188 -174
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
@@ -1,22 +1,33 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
6
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
7
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
3
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
10
  _Object$defineProperty(exports, "__esModule", {
6
11
  value: true
7
12
  });
8
13
  exports.default = void 0;
14
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
9
15
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
17
+ var _entries = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/entries"));
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
10
19
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
21
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
13
- var _camelCase3 = _interopRequireDefault(require("lodash/camelCase"));
22
+ var _lodash = require("lodash");
14
23
  var _permission = _interopRequireDefault(require("../common/errors/permission"));
15
24
  var _constants = require("../constants");
16
25
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
17
- var _enums = _interopRequireDefault(require("./enums"));
26
+ var _enums = require("./enums");
18
27
  var _util = _interopRequireDefault(require("./util"));
19
28
  var _constants2 = require("./constants");
29
+ function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
20
31
  /**
21
32
  * docs
22
33
  * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html
@@ -31,28 +42,7 @@ var _constants2 = require("./constants");
31
42
  * @private
32
43
  * @class Recording
33
44
  */
34
- var ControlsOptionsManager = /*#__PURE__*/function () {
35
- /**
36
- * @instance
37
- * @type {MeetingRequest}
38
- * @private
39
- * @memberof ControlsOptionsManager
40
- */
41
-
42
- /**
43
- * @instance
44
- * @type {Array}
45
- * @private
46
- * @memberof ControlsOptionsManager
47
- */
48
-
49
- /**
50
- * @instance
51
- * @type {string}
52
- * @private
53
- * @memberof ControlsOptionsManager
54
- */
55
-
45
+ var ControlsOptionsManager = exports.default = /*#__PURE__*/function () {
56
46
  /**
57
47
  * @param {MeetingRequest} request
58
48
  * @param {Object} options
@@ -61,8 +51,26 @@ var ControlsOptionsManager = /*#__PURE__*/function () {
61
51
  */
62
52
  function ControlsOptionsManager(request, options) {
63
53
  (0, _classCallCheck2.default)(this, ControlsOptionsManager);
54
+ /**
55
+ * @instance
56
+ * @type {MeetingRequest}
57
+ * @private
58
+ * @memberof ControlsOptionsManager
59
+ */
64
60
  (0, _defineProperty2.default)(this, "request", void 0);
61
+ /**
62
+ * @instance
63
+ * @type {Array}
64
+ * @private
65
+ * @memberof ControlsOptionsManager
66
+ */
65
67
  (0, _defineProperty2.default)(this, "displayHints", []);
68
+ /**
69
+ * @instance
70
+ * @type {string}
71
+ * @private
72
+ * @memberof ControlsOptionsManager
73
+ */
66
74
  (0, _defineProperty2.default)(this, "locusUrl", void 0);
67
75
  this.initialize(request);
68
76
  this.set(options);
@@ -151,26 +159,94 @@ var ControlsOptionsManager = /*#__PURE__*/function () {
151
159
  this.setLocusUrl(options === null || options === void 0 ? void 0 : options.locusUrl);
152
160
  }
153
161
 
162
+ /**
163
+ * Set controls for this meeting.
164
+ *
165
+ * @param {Array<ControlConfig>} controls - Spread Array of ControlConfigs
166
+ * @returns {Promise<Array<any>>}- Promise resolving if the request was successful.
167
+ */
168
+ }, {
169
+ key: "update",
170
+ value: function update() {
171
+ var _this = this;
172
+ for (var _len = arguments.length, controls = new Array(_len), _key = 0; _key < _len; _key++) {
173
+ controls[_key] = arguments[_key];
174
+ }
175
+ var payloads = controls.map(function (control) {
176
+ if (!(0, _keys.default)(_enums.Control).includes(control.scope)) {
177
+ throw new Error("updating meeting control scope \"".concat(control.scope, "\" is not a supported scope"));
178
+ }
179
+ if (!_util.default.canUpdate(control, _this.displayHints)) {
180
+ throw new _permission.default("updating meeting control scope \"".concat(control.scope, "\" not allowed, due to moderator property."));
181
+ }
182
+ return (0, _defineProperty2.default)({}, control.scope, control.properties);
183
+ });
184
+ return payloads.reduce(function (previous, payload) {
185
+ return previous.then(function () {
186
+ return (
187
+ // @ts-ignore
188
+ _this.request.request({
189
+ uri: "".concat(_this.locusUrl, "/").concat(_constants.CONTROLS),
190
+ body: payload,
191
+ method: _constants.HTTP_VERBS.PATCH
192
+ })
193
+ );
194
+ });
195
+ }, _promise.default.resolve());
196
+ }
197
+
154
198
  /**
155
199
  * @param {Setting} setting
156
- * @param {boolean} enabled
157
200
  * @private
158
201
  * @memberof ControlsOptionsManager
159
202
  * @returns {Promise}
160
203
  */
161
204
  }, {
162
205
  key: "setControls",
163
- value: function setControls(setting, enabled) {
164
- _loggerProxy.default.logger.log("ControlsOptionsManager:index#setControls --> ".concat(setting, " [").concat(enabled, "]"));
165
- if (_util.default !== null && _util.default !== void 0 && _util.default["".concat(enabled ? _constants2.CAN_SET : _constants2.CAN_UNSET).concat(setting)](this.displayHints)) {
166
- // @ts-ignore
167
- return this.request.request({
168
- uri: "".concat(this.locusUrl, "/").concat(_constants.CONTROLS),
169
- body: (0, _defineProperty2.default)({}, (0, _camelCase3.default)(setting), (0, _defineProperty2.default)({}, _constants2.ENABLED, enabled)),
170
- method: _constants.HTTP_VERBS.PATCH
171
- });
206
+ value: function setControls(setting) {
207
+ var _this2 = this;
208
+ _loggerProxy.default.logger.log("ControlsOptionsManager:index#setControls --> ".concat((0, _stringify.default)(setting)));
209
+ var body = {};
210
+ var error;
211
+ var shouldSkipCheckToMergeBody = false;
212
+ (0, _entries.default)(setting).forEach(function (_ref2) {
213
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
214
+ key = _ref3[0],
215
+ value = _ref3[1];
216
+ if (!shouldSkipCheckToMergeBody && !(_util.default !== null && _util.default !== void 0 && _util.default["".concat(value ? _constants2.CAN_SET : _constants2.CAN_UNSET).concat(key)](_this2.displayHints))) {
217
+ error = new _permission.default("".concat(key, " [").concat(value, "] not allowed, due to moderator property."));
218
+ }
219
+ if (error) {
220
+ return;
221
+ }
222
+ switch (key) {
223
+ case _enums.Setting.muted:
224
+ shouldSkipCheckToMergeBody = true;
225
+ body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value)) : (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value);
226
+ break;
227
+ case _enums.Setting.disallowUnmute:
228
+ case _enums.Setting.muteOnEntry:
229
+ if ((0, _keys.default)(setting).includes(_enums.Setting.muted)) {
230
+ body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value)) : (0, _defineProperty2.default)({}, (0, _lodash.camelCase)(key), value);
231
+ body.audio[(0, _lodash.camelCase)(key)] = value;
232
+ } else {
233
+ body[(0, _lodash.camelCase)(key)] = (0, _defineProperty2.default)({}, _constants2.ENABLED, value);
234
+ }
235
+ break;
236
+ default:
237
+ error = new _permission.default("".concat(key, " [").concat(value, "] not allowed, due to moderator property."));
238
+ }
239
+ });
240
+ if (error) {
241
+ return _promise.default.reject(error);
172
242
  }
173
- return _promise.default.reject(new _permission.default("".concat(setting, " [").concat(enabled, "] not allowed, due to moderator property.")));
243
+
244
+ // @ts-ignore
245
+ return this.request.request({
246
+ uri: "".concat(this.locusUrl, "/").concat(_constants.CONTROLS),
247
+ body: body,
248
+ method: _constants.HTTP_VERBS.PATCH
249
+ });
174
250
  }
175
251
 
176
252
  /**
@@ -182,7 +258,7 @@ var ControlsOptionsManager = /*#__PURE__*/function () {
182
258
  }, {
183
259
  key: "setMuteOnEntry",
184
260
  value: function setMuteOnEntry(enabled) {
185
- return this.setControls(_enums.default.muteOnEntry, enabled);
261
+ return this.setControls((0, _defineProperty2.default)({}, _enums.Setting.muteOnEntry, enabled));
186
262
  }
187
263
 
188
264
  /**
@@ -194,10 +270,23 @@ var ControlsOptionsManager = /*#__PURE__*/function () {
194
270
  }, {
195
271
  key: "setDisallowUnmute",
196
272
  value: function setDisallowUnmute(enabled) {
197
- return this.setControls(_enums.default.disallowUnmute, enabled);
273
+ return this.setControls((0, _defineProperty2.default)({}, _enums.Setting.disallowUnmute, enabled));
274
+ }
275
+
276
+ /**
277
+ * @public
278
+ * @param {boolean} mutedEnabled
279
+ * @param {boolean} disallowUnmuteEnabled
280
+ * @param {boolean} muteOnEntryEnabled
281
+ * @memberof ControlsOptionsManager
282
+ * @returns {Promise}
283
+ */
284
+ }, {
285
+ key: "setMuteAll",
286
+ value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled) {
287
+ return this.setControls((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _enums.Setting.muted, mutedEnabled), _enums.Setting.disallowUnmute, disallowUnmuteEnabled), _enums.Setting.muteOnEntry, muteOnEntryEnabled));
198
288
  }
199
289
  }]);
200
290
  return ControlsOptionsManager;
201
291
  }();
202
- exports.default = ControlsOptionsManager;
203
292
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_permission","_interopRequireDefault","require","_constants","_loggerProxy","_enums","_util","_constants2","ControlsOptionsManager","request","options","_classCallCheck2","default","_defineProperty2","initialize","set","_createClass2","key","value","extract","setLocusUrl","url","locusUrl","setDisplayHints","hints","displayHints","getLocusUrl","getDisplayHints","setControls","setting","enabled","LoggerProxy","logger","log","concat","Util","CAN_SET","CAN_UNSET","uri","CONTROLS","body","_camelCase3","ENABLED","method","HTTP_VERBS","PATCH","_promise","reject","PermissionError","setMuteOnEntry","Setting","muteOnEntry","setDisallowUnmute","disallowUnmute","exports"],"sources":["index.ts"],"sourcesContent":["import {camelCase} from 'lodash';\nimport PermissionError from '../common/errors/permission';\nimport {CONTROLS, HTTP_VERBS} from '../constants';\nimport MeetingRequest from '../meeting/request';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport Setting from './enums';\nimport Util from './util';\nimport {CAN_SET, CAN_UNSET, ENABLED} from './constants';\n\n/**\n * docs\n * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html\n * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry\n * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=UC&title=WEBEX-124454%3A+UCF%3A+Hard+mute+support+for+Teams+joining+Webex+meeting\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351\n */\n\n/**\n * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting\n * @export\n * @private\n * @class Recording\n */\nexport default class ControlsOptionsManager {\n /**\n * @instance\n * @type {MeetingRequest}\n * @private\n * @memberof ControlsOptionsManager\n */\n private request: MeetingRequest;\n\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof ControlsOptionsManager\n */\n private displayHints: Array<string> = [];\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof ControlsOptionsManager\n */\n private locusUrl: string;\n\n /**\n * @param {MeetingRequest} request\n * @param {Object} options\n * @constructor\n * @memberof ControlsOptionsManager\n */\n constructor(\n request: MeetingRequest,\n options?: {\n locusUrl: string;\n displayHints?: Array<string>;\n }\n ) {\n this.initialize(request);\n this.set(options);\n }\n\n /**\n * @param {MeetingRequest} request\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n private initialize(request: MeetingRequest) {\n this.request = request;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public set(options?: {locusUrl: string; displayHints?: Array<string>}) {\n this.extract(options);\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public setLocusUrl(url: string) {\n this.locusUrl = url;\n }\n\n /**\n * @param {Array} hints\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public setDisplayHints(hints: Array<string>) {\n this.displayHints = hints;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof ControlsOptionsManager\n */\n public getLocusUrl() {\n return this.locusUrl;\n }\n\n /**\n * @returns {Array}\n * @public\n * @memberof ControlsOptionsManager\n */\n public getDisplayHints() {\n return this.displayHints;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n private extract(options?: {locusUrl: string; displayHints?: Array<string>}) {\n this.setDisplayHints(options?.displayHints);\n this.setLocusUrl(options?.locusUrl);\n }\n\n /**\n * @param {Setting} setting\n * @param {boolean} enabled\n * @private\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n private setControls(setting: Setting, enabled: boolean): Promise<any> {\n LoggerProxy.logger.log(`ControlsOptionsManager:index#setControls --> ${setting} [${enabled}]`);\n\n if (Util?.[`${enabled ? CAN_SET : CAN_UNSET}${setting}`](this.displayHints)) {\n // @ts-ignore\n return this.request.request({\n uri: `${this.locusUrl}/${CONTROLS}`,\n body: {\n [camelCase(setting)]: {\n [ENABLED]: enabled,\n },\n },\n method: HTTP_VERBS.PATCH,\n });\n }\n\n return Promise.reject(\n new PermissionError(`${setting} [${enabled}] not allowed, due to moderator property.`)\n );\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setMuteOnEntry(enabled: boolean): Promise<any> {\n return this.setControls(Setting.muteOnEntry, enabled);\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setDisallowUnmute(enabled: boolean): Promise<any> {\n return this.setControls(Setting.disallowUnmute, enabled);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_permission","_interopRequireDefault","_constants","_loggerProxy","_enums","_util","_constants2","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ControlsOptionsManager","exports","request","options","_classCallCheck2","initialize","set","_createClass2","key","value","extract","setLocusUrl","url","locusUrl","setDisplayHints","hints","displayHints","getLocusUrl","getDisplayHints","update","_this","_len","controls","Array","_key","payloads","map","control","_keys","Control","includes","scope","Error","concat","Util","canUpdate","PermissionError","properties","reduce","previous","payload","then","uri","CONTROLS","body","method","HTTP_VERBS","PATCH","_promise","resolve","setControls","setting","_this2","LoggerProxy","logger","log","_stringify","error","shouldSkipCheckToMergeBody","_entries","_ref2","_ref3","_slicedToArray2","CAN_SET","CAN_UNSET","Setting","muted","audio","camelCase","disallowUnmute","muteOnEntry","ENABLED","reject","setMuteOnEntry","enabled","setDisallowUnmute","setMuteAll","mutedEnabled","disallowUnmuteEnabled","muteOnEntryEnabled"],"sources":["index.ts"],"sourcesContent":["import {camelCase} from 'lodash';\nimport PermissionError from '../common/errors/permission';\nimport {CONTROLS, HTTP_VERBS} from '../constants';\nimport MeetingRequest from '../meeting/request';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {Control, Setting} from './enums';\nimport {ControlConfig} from './types';\nimport Util from './util';\nimport {CAN_SET, CAN_UNSET, ENABLED} from './constants';\n\n/**\n * docs\n * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html\n * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry\n * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?spaceKey=UC&title=WEBEX-124454%3A+UCF%3A+Hard+mute+support+for+Teams+joining+Webex+meeting\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867\n * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351\n */\n\n/**\n * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting\n * @export\n * @private\n * @class Recording\n */\nexport default class ControlsOptionsManager {\n /**\n * @instance\n * @type {MeetingRequest}\n * @private\n * @memberof ControlsOptionsManager\n */\n private request: MeetingRequest;\n\n /**\n * @instance\n * @type {Array}\n * @private\n * @memberof ControlsOptionsManager\n */\n private displayHints: Array<string> = [];\n\n /**\n * @instance\n * @type {string}\n * @private\n * @memberof ControlsOptionsManager\n */\n private locusUrl: string;\n\n /**\n * @param {MeetingRequest} request\n * @param {Object} options\n * @constructor\n * @memberof ControlsOptionsManager\n */\n constructor(\n request: MeetingRequest,\n options?: {\n locusUrl: string;\n displayHints?: Array<string>;\n }\n ) {\n this.initialize(request);\n this.set(options);\n }\n\n /**\n * @param {MeetingRequest} request\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n private initialize(request: MeetingRequest) {\n this.request = request;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public set(options?: {locusUrl: string; displayHints?: Array<string>}) {\n this.extract(options);\n }\n\n /**\n * @param {string} url\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public setLocusUrl(url: string) {\n this.locusUrl = url;\n }\n\n /**\n * @param {Array} hints\n * @returns {void}\n * @public\n * @memberof ControlsOptionsManager\n */\n public setDisplayHints(hints: Array<string>) {\n this.displayHints = hints;\n }\n\n /**\n * @returns {string}\n * @public\n * @memberof ControlsOptionsManager\n */\n public getLocusUrl() {\n return this.locusUrl;\n }\n\n /**\n * @returns {Array}\n * @public\n * @memberof ControlsOptionsManager\n */\n public getDisplayHints() {\n return this.displayHints;\n }\n\n /**\n * @param {Object} options\n * @returns {void}\n * @private\n * @memberof ControlsOptionsManager\n */\n private extract(options?: {locusUrl: string; displayHints?: Array<string>}) {\n this.setDisplayHints(options?.displayHints);\n this.setLocusUrl(options?.locusUrl);\n }\n\n /**\n * Set controls for this meeting.\n *\n * @param {Array<ControlConfig>} controls - Spread Array of ControlConfigs\n * @returns {Promise<Array<any>>}- Promise resolving if the request was successful.\n */\n public update(...controls: Array<ControlConfig>) {\n const payloads = controls.map((control) => {\n if (!Object.keys(Control).includes(control.scope)) {\n throw new Error(\n `updating meeting control scope \"${control.scope}\" is not a supported scope`\n );\n }\n\n if (!Util.canUpdate(control, this.displayHints)) {\n throw new PermissionError(\n `updating meeting control scope \"${control.scope}\" not allowed, due to moderator property.`\n );\n }\n\n return {\n [control.scope]: control.properties,\n };\n });\n\n return payloads.reduce((previous, payload) => {\n return previous.then(() =>\n // @ts-ignore\n this.request.request({\n uri: `${this.locusUrl}/${CONTROLS}`,\n body: payload,\n method: HTTP_VERBS.PATCH,\n })\n );\n }, Promise.resolve());\n }\n\n /**\n * @param {Setting} setting\n * @private\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n private setControls(setting: {[key in Setting]?: boolean}): Promise<any> {\n LoggerProxy.logger.log(\n `ControlsOptionsManager:index#setControls --> ${JSON.stringify(setting)}`\n );\n\n const body: Record<string, any> = {};\n let error: PermissionError;\n\n let shouldSkipCheckToMergeBody = false;\n\n Object.entries(setting).forEach(([key, value]) => {\n if (\n !shouldSkipCheckToMergeBody &&\n !Util?.[`${value ? CAN_SET : CAN_UNSET}${key}`](this.displayHints)\n ) {\n error = new PermissionError(`${key} [${value}] not allowed, due to moderator property.`);\n }\n\n if (error) {\n return;\n }\n\n switch (key) {\n case Setting.muted:\n shouldSkipCheckToMergeBody = true;\n body.audio = body.audio\n ? {...body.audio, [camelCase(key)]: value}\n : {[camelCase(key)]: value};\n break;\n\n case Setting.disallowUnmute:\n case Setting.muteOnEntry:\n if (Object.keys(setting).includes(Setting.muted)) {\n body.audio = body.audio\n ? {...body.audio, [camelCase(key)]: value}\n : {[camelCase(key)]: value};\n body.audio[camelCase(key)] = value;\n } else {\n body[camelCase(key)] = {[ENABLED]: value};\n }\n break;\n\n default:\n error = new PermissionError(`${key} [${value}] not allowed, due to moderator property.`);\n }\n });\n\n if (error) {\n return Promise.reject(error);\n }\n\n // @ts-ignore\n return this.request.request({\n uri: `${this.locusUrl}/${CONTROLS}`,\n body,\n method: HTTP_VERBS.PATCH,\n });\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setMuteOnEntry(enabled: boolean): Promise<any> {\n return this.setControls({[Setting.muteOnEntry]: enabled});\n }\n\n /**\n * @public\n * @param {boolean} enabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setDisallowUnmute(enabled: boolean): Promise<any> {\n return this.setControls({[Setting.disallowUnmute]: enabled});\n }\n\n /**\n * @public\n * @param {boolean} mutedEnabled\n * @param {boolean} disallowUnmuteEnabled\n * @param {boolean} muteOnEntryEnabled\n * @memberof ControlsOptionsManager\n * @returns {Promise}\n */\n public setMuteAll(\n mutedEnabled: boolean,\n disallowUnmuteEnabled: boolean,\n muteOnEntryEnabled: boolean\n ): Promise<any> {\n return this.setControls({\n [Setting.muted]: mutedEnabled,\n [Setting.disallowUnmute]: disallowUnmuteEnabled,\n [Setting.muteOnEntry]: muteOnEntryEnabled,\n });\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {Control} from './enums';\n\nexport interface ControlProperties {\n /**\n * A list of additional properties that apply to various specific settings.\n *\n * @remarks\n * The values stored here, per the service, are fully ambiguous, an can vary\n * depending on which control scope is being configured.\n */\n [key: string]: boolean;\n}\n\nexport interface AudioProperties {\n muted?: boolean;\n disallowUnmute?: boolean;\n muteOnEntry?: boolean;\n}\n\nexport interface RaiseHandProperties {\n enabled?: boolean;\n}\n\nexport interface ReactionsProperties {\n enabled?: boolean;\n showDisplayNameWithReactions?: boolean;\n}\n\nexport interface ShareControlProperties {\n control?: 'ANYONE' | 'MODERATOR_PRESENTER';\n}\n\nexport interface VideoProperties {\n enabled?: boolean;\n}\n\nexport interface ViewTheParticipantListProperties {\n enabled?: boolean;\n}\n\nexport type Properties =\n | AudioProperties\n | RaiseHandProperties\n | ReactionsProperties\n | ShareControlProperties\n | VideoProperties\n | ViewTheParticipantListProperties;\n\nexport interface ControlConfig<Props = Properties> {\n /**\n * The scope of the control within this object.\n */\n scope: Control;\n\n /**\n * The properties to assign to this control.\n */\n properties: Props;\n}\n"],"mappings":""}
@@ -1,28 +1,318 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5
  _Object$defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
8
11
  var _constants = require("../constants");
9
- var canSetMuteOnEntry = function canSetMuteOnEntry(displayHints) {
10
- return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);
11
- };
12
- var canSetDisallowUnmute = function canSetDisallowUnmute(displayHints) {
13
- return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE);
14
- };
15
- var canUnsetMuteOnEntry = function canUnsetMuteOnEntry(displayHints) {
16
- return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);
17
- };
18
- var canUnsetDisallowUnmute = function canUnsetDisallowUnmute(displayHints) {
19
- return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE);
20
- };
21
- var _default = {
22
- canSetMuteOnEntry: canSetMuteOnEntry,
23
- canSetDisallowUnmute: canSetDisallowUnmute,
24
- canUnsetMuteOnEntry: canUnsetMuteOnEntry,
25
- canUnsetDisallowUnmute: canUnsetDisallowUnmute
26
- };
27
- exports.default = _default;
12
+ var _enums = require("./enums");
13
+ /**
14
+ * The Controls Options Manager utilities
15
+ *
16
+ * @internal
17
+ */
18
+ var Utils = /*#__PURE__*/function () {
19
+ function Utils() {
20
+ (0, _classCallCheck2.default)(this, Utils);
21
+ }
22
+ (0, _createClass2.default)(Utils, null, [{
23
+ key: "canSetMuteOnEntry",
24
+ value:
25
+ /**
26
+ * Validate if enabling mute on entry can be set.
27
+ *
28
+ * @param {Array<string>} displayHints - Display Hints to use when validating.
29
+ * @returns {boolean} - True if the action is allowed.
30
+ */
31
+ function canSetMuteOnEntry(displayHints) {
32
+ return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);
33
+ }
34
+
35
+ /**
36
+ * Validate if allowing unmuting can be set.
37
+ *
38
+ * @param {Array<string>} displayHints - Display Hints to use when validating.
39
+ * @returns {boolean} - True if the action is allowed.
40
+ */
41
+ }, {
42
+ key: "canSetDisallowUnmute",
43
+ value: function canSetDisallowUnmute(displayHints) {
44
+ return displayHints.includes(_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE);
45
+ }
46
+
47
+ /**
48
+ * Validate if disabling mute on entry can be set.
49
+ *
50
+ * @param {Array<string>} displayHints - Display Hints to use when validating.
51
+ * @returns {boolean} - True if the action is allowed.
52
+ */
53
+ }, {
54
+ key: "canUnsetMuteOnEntry",
55
+ value: function canUnsetMuteOnEntry(displayHints) {
56
+ return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);
57
+ }
58
+
59
+ /**
60
+ * Validate if enabling muting can be set.
61
+ *
62
+ * @param {Array<string>} displayHints - Display Hints to use when validating.
63
+ * @returns {boolean} - True if the action is allowed.
64
+ */
65
+ }, {
66
+ key: "canUnsetDisallowUnmute",
67
+ value: function canUnsetDisallowUnmute(displayHints) {
68
+ return displayHints.includes(_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE);
69
+ }
70
+
71
+ /**
72
+ * Validate if muting all can be set.
73
+ *
74
+ * @param {Array<string>} displayHints - Display Hints to use when validating.
75
+ * @returns {boolean} - True if the action is allowed.
76
+ */
77
+ }, {
78
+ key: "canSetMuted",
79
+ value: function canSetMuted(displayHints) {
80
+ return displayHints.includes(_constants.DISPLAY_HINTS.MUTE_ALL);
81
+ }
82
+
83
+ /**
84
+ * Validate if unmuting all can be set.
85
+ *
86
+ * @param {Array<string>} displayHints - Display Hints to use when validating.
87
+ * @returns {boolean} - True if the action is allowed.
88
+ */
89
+ }, {
90
+ key: "canUnsetMuted",
91
+ value: function canUnsetMuted(displayHints) {
92
+ return displayHints.includes(_constants.DISPLAY_HINTS.UNMUTE_ALL);
93
+ }
94
+
95
+ /**
96
+ * Validate an array of hints are allowed based on a full collection of hints.
97
+ *
98
+ * @param {Object} config - Configuration Object.
99
+ * @param {Array<string>} config.requiredHints - Hints required for validation.
100
+ * @param {Array<string>} config.displayHints - All available hints.
101
+ * @returns {boolean} - True if all of the actions are allowed.
102
+ */
103
+ }, {
104
+ key: "hasHints",
105
+ value: function hasHints(config) {
106
+ var requiredHints = config.requiredHints,
107
+ displayHints = config.displayHints;
108
+ return requiredHints.every(function (hint) {
109
+ return displayHints.includes(hint);
110
+ });
111
+ }
112
+
113
+ /**
114
+ * Validate that the self policy object contains the required policies.
115
+ *
116
+ * @param {Object} config - Configuration Object.
117
+ * @param {Array<string>} config.requiredPolicies - Policies required for validation.
118
+ * @param {Array<string>} config.policies - All available policies.
119
+ * @returns {boolean} - True if all of the actions are allowed.
120
+ */
121
+ }, {
122
+ key: "hasPolicies",
123
+ value: function hasPolicies(config) {
124
+ var requiredPolicies = config.requiredPolicies,
125
+ _config$policies = config.policies,
126
+ policies = _config$policies === void 0 ? {} : _config$policies;
127
+ return requiredPolicies.every(function (hint) {
128
+ return policies[hint];
129
+ });
130
+ }
131
+
132
+ /**
133
+ * Validate if an audio-scoped control is allowed to be sent to the service.
134
+ *
135
+ * @param {ControlConfig<AudioProperties>} control - Audio control config to validate.
136
+ * @param {Array<string>} displayHints - All available hints.
137
+ * @returns {boolean} - True if all of the actions are allowed.
138
+ */
139
+ }, {
140
+ key: "canUpdateAudio",
141
+ value: function canUpdateAudio(control, displayHints) {
142
+ var requiredHints = [];
143
+ if (control.properties.muted === true) {
144
+ requiredHints.push(_constants.DISPLAY_HINTS.MUTE_ALL);
145
+ }
146
+ if (control.properties.muted === false) {
147
+ requiredHints.push(_constants.DISPLAY_HINTS.UNMUTE_ALL);
148
+ }
149
+ if (control.properties.disallowUnmute === true) {
150
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_HARD_MUTE);
151
+ }
152
+ if (control.properties.disallowUnmute === false) {
153
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_HARD_MUTE);
154
+ }
155
+ if (control.properties.muteOnEntry === true) {
156
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);
157
+ }
158
+ if (control.properties.muteOnEntry === false) {
159
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);
160
+ }
161
+ return Utils.hasHints({
162
+ requiredHints: requiredHints,
163
+ displayHints: displayHints
164
+ });
165
+ }
166
+ }, {
167
+ key: "canUpdateRaiseHand",
168
+ value: function canUpdateRaiseHand(control, displayHints) {
169
+ var requiredHints = [];
170
+ if (control.properties.enabled === true) {
171
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_RAISE_HAND);
172
+ }
173
+ if (control.properties.enabled === false) {
174
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_RAISE_HAND);
175
+ }
176
+ return Utils.hasHints({
177
+ requiredHints: requiredHints,
178
+ displayHints: displayHints
179
+ });
180
+ }
181
+
182
+ /**
183
+ * Validate if an reactions-scoped control is allowed to be sent to the service.
184
+ *
185
+ * @param {ControlConfig<ReactionsProperties>} control - Reaction control config to validate.
186
+ * @param {Array<string>} displayHints - All available hints.
187
+ * @returns {boolean} - True if all of the actions are allowed.
188
+ */
189
+ }, {
190
+ key: "canUpdateReactions",
191
+ value: function canUpdateReactions(control, displayHints) {
192
+ var requiredHints = [];
193
+
194
+ // This additional if statement avoids the display hint discrepency due to
195
+ // the service blocking partial requests with this property only.
196
+ if (control.properties.showDisplayNameWithReactions !== undefined) {
197
+ if (control.properties.showDisplayNameWithReactions === true) {
198
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_SHOW_DISPLAY_NAME);
199
+ }
200
+ if (control.properties.showDisplayNameWithReactions === false) {
201
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_SHOW_DISPLAY_NAME);
202
+ }
203
+ } else {
204
+ if (control.properties.enabled === true) {
205
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_REACTIONS);
206
+ }
207
+ if (control.properties.enabled === false) {
208
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_REACTIONS);
209
+ }
210
+ }
211
+ return Utils.hasHints({
212
+ requiredHints: requiredHints,
213
+ displayHints: displayHints
214
+ });
215
+ }
216
+
217
+ /**
218
+ * Validate if an share-control-scoped control is allowed to be sent to the service.
219
+ *
220
+ * @param {Array<string>} displayHints - All available hints.
221
+ * @returns {boolean} - True if all of the actions are allowed.
222
+ */
223
+ }, {
224
+ key: "canUpdateShareControl",
225
+ value: function canUpdateShareControl(displayHints) {
226
+ return Utils.hasHints({
227
+ requiredHints: [_constants.DISPLAY_HINTS.SHARE_CONTROL],
228
+ displayHints: displayHints
229
+ });
230
+ }
231
+
232
+ /**
233
+ * Validate if an view-the-participants-list-scoped control is allowed to be sent to the service.
234
+ *
235
+ * @param {ControlConfig<ViewTheParticipantListProperties>} control - View Participants List control config to validate.
236
+ * @param {Array<string>} displayHints - All available hints.
237
+ * @returns {boolean} - True if all of the actions are allowed.
238
+ */
239
+ }, {
240
+ key: "canUpdateViewTheParticipantsList",
241
+ value: function canUpdateViewTheParticipantsList(control, displayHints) {
242
+ var requiredHints = [];
243
+ if (control.properties.enabled === true) {
244
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST);
245
+ }
246
+ if (control.properties.enabled === false) {
247
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST);
248
+ }
249
+ return Utils.hasHints({
250
+ requiredHints: requiredHints,
251
+ displayHints: displayHints
252
+ });
253
+ }
254
+
255
+ /**
256
+ * Validate if a video-scoped control is allowed to be sent to the service.
257
+ *
258
+ * @param {ControlConfig<VideoProperties>} control - Video control config to validate.
259
+ * @param {Array<string>} displayHints - All available hints.
260
+ * @returns {boolean} - True if all of the actions are allowed.
261
+ */
262
+ }, {
263
+ key: "canUpdateVideo",
264
+ value: function canUpdateVideo(control, displayHints) {
265
+ var requiredHints = [];
266
+ if (control.properties.enabled === true) {
267
+ requiredHints.push(_constants.DISPLAY_HINTS.ENABLE_VIDEO);
268
+ }
269
+ if (control.properties.enabled === false) {
270
+ requiredHints.push(_constants.DISPLAY_HINTS.DISABLE_VIDEO);
271
+ }
272
+ return Utils.hasHints({
273
+ requiredHints: requiredHints,
274
+ displayHints: displayHints
275
+ });
276
+ }
277
+
278
+ /**
279
+ * Validate that a control can be sent to the service based on the provided
280
+ * display hints.
281
+ *
282
+ * @param {ControlConfig} control - Control to validate.
283
+ * @param {Array<string>} displayHints - All available hints.
284
+ * @returns {boolean} - True if all of the actions are allowed.
285
+ */
286
+ }, {
287
+ key: "canUpdate",
288
+ value: function canUpdate(control, displayHints) {
289
+ var determinant;
290
+ switch (control.scope) {
291
+ case _enums.Control.audio:
292
+ determinant = Utils.canUpdateAudio(control, displayHints);
293
+ break;
294
+ case _enums.Control.raiseHand:
295
+ determinant = Utils.canUpdateRaiseHand(control, displayHints);
296
+ break;
297
+ case _enums.Control.reactions:
298
+ determinant = Utils.canUpdateReactions(control, displayHints);
299
+ break;
300
+ case _enums.Control.shareControl:
301
+ determinant = Utils.canUpdateShareControl(displayHints);
302
+ break;
303
+ case _enums.Control.video:
304
+ determinant = Utils.canUpdateVideo(control, displayHints);
305
+ break;
306
+ case _enums.Control.viewTheParticipantList:
307
+ determinant = Utils.canUpdateViewTheParticipantsList(control, displayHints);
308
+ break;
309
+ default:
310
+ determinant = false;
311
+ }
312
+ return determinant;
313
+ }
314
+ }]);
315
+ return Utils;
316
+ }();
317
+ var _default = exports.default = Utils;
28
318
  //# sourceMappingURL=util.js.map