@webex/plugin-meetings 2.60.0 → 2.60.1-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 (535) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.d.ts +42 -0
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.d.ts +31 -0
  6. package/dist/annotation/constants.js +41 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.d.ts +117 -0
  9. package/dist/annotation/index.js +357 -0
  10. package/dist/annotation/index.js.map +1 -0
  11. package/dist/breakouts/breakout.d.ts +8 -0
  12. package/dist/breakouts/breakout.js +215 -0
  13. package/dist/breakouts/breakout.js.map +1 -0
  14. package/dist/breakouts/collection.d.ts +5 -0
  15. package/dist/breakouts/collection.js +22 -0
  16. package/dist/breakouts/collection.js.map +1 -0
  17. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  18. package/dist/breakouts/edit-lock-error.js +51 -0
  19. package/dist/breakouts/edit-lock-error.js.map +1 -0
  20. package/dist/breakouts/events.d.ts +8 -0
  21. package/dist/breakouts/events.js +44 -0
  22. package/dist/breakouts/events.js.map +1 -0
  23. package/dist/breakouts/index.d.ts +5 -0
  24. package/dist/breakouts/index.js +1047 -0
  25. package/dist/breakouts/index.js.map +1 -0
  26. package/dist/breakouts/request.d.ts +22 -0
  27. package/dist/breakouts/request.js +77 -0
  28. package/dist/breakouts/request.js.map +1 -0
  29. package/dist/breakouts/utils.d.ts +15 -0
  30. package/dist/breakouts/utils.js +64 -0
  31. package/dist/breakouts/utils.js.map +1 -0
  32. package/dist/common/browser-detection.js +2 -3
  33. package/dist/common/browser-detection.js.map +1 -1
  34. package/dist/common/collection.js +3 -4
  35. package/dist/common/collection.js.map +1 -1
  36. package/dist/common/config.js +1 -2
  37. package/dist/common/config.js.map +1 -1
  38. package/dist/common/errors/captcha-error.js +1 -2
  39. package/dist/common/errors/captcha-error.js.map +1 -1
  40. package/dist/common/errors/intent-to-join.js +1 -2
  41. package/dist/common/errors/intent-to-join.js.map +1 -1
  42. package/dist/common/errors/join-meeting.js +1 -2
  43. package/dist/common/errors/join-meeting.js.map +1 -1
  44. package/dist/common/errors/media.js +1 -2
  45. package/dist/common/errors/media.js.map +1 -1
  46. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  47. package/dist/common/errors/no-meeting-info.js +50 -0
  48. package/dist/common/errors/no-meeting-info.js.map +1 -0
  49. package/dist/common/errors/parameter.js +3 -4
  50. package/dist/common/errors/parameter.js.map +1 -1
  51. package/dist/common/errors/password-error.js +1 -2
  52. package/dist/common/errors/password-error.js.map +1 -1
  53. package/dist/common/errors/permission.js +1 -2
  54. package/dist/common/errors/permission.js.map +1 -1
  55. package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
  56. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  57. package/dist/common/errors/reconnection-in-progress.js +1 -2
  58. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  59. package/dist/common/errors/reconnection.js +1 -2
  60. package/dist/common/errors/reconnection.js.map +1 -1
  61. package/dist/common/errors/stats.js +1 -2
  62. package/dist/common/errors/stats.js.map +1 -1
  63. package/dist/common/errors/webex-errors.d.ts +20 -8
  64. package/dist/common/errors/webex-errors.js +48 -28
  65. package/dist/common/errors/webex-errors.js.map +1 -1
  66. package/dist/common/errors/webex-meetings-error.js +1 -2
  67. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  68. package/dist/common/events/events-scope.js +1 -2
  69. package/dist/common/events/events-scope.js.map +1 -1
  70. package/dist/common/events/events.js +1 -2
  71. package/dist/common/events/events.js.map +1 -1
  72. package/dist/common/events/trigger-proxy.js +1 -2
  73. package/dist/common/events/trigger-proxy.js.map +1 -1
  74. package/dist/common/events/util.js +1 -2
  75. package/dist/common/events/util.js.map +1 -1
  76. package/dist/common/logs/logger-config.js +1 -2
  77. package/dist/common/logs/logger-config.js.map +1 -1
  78. package/dist/common/logs/logger-proxy.js +2 -3
  79. package/dist/common/logs/logger-proxy.js.map +1 -1
  80. package/dist/common/logs/request.d.ts +3 -1
  81. package/dist/common/logs/request.js +8 -5
  82. package/dist/common/logs/request.js.map +1 -1
  83. package/dist/common/queue.d.ts +9 -7
  84. package/dist/common/queue.js +22 -9
  85. package/dist/common/queue.js.map +1 -1
  86. package/dist/config.d.ts +6 -7
  87. package/dist/config.js +8 -10
  88. package/dist/config.js.map +1 -1
  89. package/dist/constants.d.ts +217 -97
  90. package/dist/constants.js +416 -441
  91. package/dist/constants.js.map +1 -1
  92. package/dist/controls-options-manager/constants.js +3 -6
  93. package/dist/controls-options-manager/constants.js.map +1 -1
  94. package/dist/controls-options-manager/enums.d.ts +11 -1
  95. package/dist/controls-options-manager/enums.js +15 -6
  96. package/dist/controls-options-manager/enums.js.map +1 -1
  97. package/dist/controls-options-manager/index.d.ts +17 -1
  98. package/dist/controls-options-manager/index.js +127 -38
  99. package/dist/controls-options-manager/index.js.map +1 -1
  100. package/dist/controls-options-manager/types.d.ts +43 -0
  101. package/dist/controls-options-manager/types.js +7 -0
  102. package/dist/controls-options-manager/types.js.map +1 -0
  103. package/dist/controls-options-manager/util.d.ts +1 -7
  104. package/dist/controls-options-manager/util.js +309 -19
  105. package/dist/controls-options-manager/util.js.map +1 -1
  106. package/dist/index.d.ts +6 -3
  107. package/dist/index.js +121 -5
  108. package/dist/index.js.map +1 -1
  109. package/dist/interceptors/index.d.ts +2 -0
  110. package/dist/interceptors/index.js +15 -0
  111. package/dist/interceptors/index.js.map +1 -0
  112. package/dist/interceptors/locusRetry.d.ts +27 -0
  113. package/dist/interceptors/locusRetry.js +94 -0
  114. package/dist/interceptors/locusRetry.js.map +1 -0
  115. package/dist/interpretation/collection.d.ts +5 -0
  116. package/dist/interpretation/collection.js +22 -0
  117. package/dist/interpretation/collection.js.map +1 -0
  118. package/dist/interpretation/index.d.ts +5 -0
  119. package/dist/interpretation/index.js +365 -0
  120. package/dist/interpretation/index.js.map +1 -0
  121. package/dist/interpretation/siLanguage.d.ts +5 -0
  122. package/dist/interpretation/siLanguage.js +24 -0
  123. package/dist/interpretation/siLanguage.js.map +1 -0
  124. package/dist/locus-info/controlsUtils.js +100 -11
  125. package/dist/locus-info/controlsUtils.js.map +1 -1
  126. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  127. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  128. package/dist/locus-info/fullState.js +1 -2
  129. package/dist/locus-info/fullState.js.map +1 -1
  130. package/dist/locus-info/hostUtils.js +1 -2
  131. package/dist/locus-info/hostUtils.js.map +1 -1
  132. package/dist/locus-info/index.d.ts +57 -4
  133. package/dist/locus-info/index.js +425 -84
  134. package/dist/locus-info/index.js.map +1 -1
  135. package/dist/locus-info/infoUtils.js +13 -5
  136. package/dist/locus-info/infoUtils.js.map +1 -1
  137. package/dist/locus-info/mediaSharesUtils.js +58 -3
  138. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  139. package/dist/locus-info/parser.d.ts +66 -6
  140. package/dist/locus-info/parser.js +253 -80
  141. package/dist/locus-info/parser.js.map +1 -1
  142. package/dist/locus-info/selfUtils.js +97 -13
  143. package/dist/locus-info/selfUtils.js.map +1 -1
  144. package/dist/media/index.d.ts +2 -0
  145. package/dist/media/index.js +107 -319
  146. package/dist/media/index.js.map +1 -1
  147. package/dist/media/properties.d.ts +38 -53
  148. package/dist/media/properties.js +96 -153
  149. package/dist/media/properties.js.map +1 -1
  150. package/dist/media/util.js +1 -22
  151. package/dist/media/util.js.map +1 -1
  152. package/dist/mediaQualityMetrics/config.d.ts +234 -230
  153. package/dist/mediaQualityMetrics/config.js +302 -498
  154. package/dist/mediaQualityMetrics/config.js.map +1 -1
  155. package/dist/meeting/in-meeting-actions.d.ts +88 -0
  156. package/dist/meeting/in-meeting-actions.js +94 -3
  157. package/dist/meeting/in-meeting-actions.js.map +1 -1
  158. package/dist/meeting/index.d.ts +591 -494
  159. package/dist/meeting/index.js +4732 -2990
  160. package/dist/meeting/index.js.map +1 -1
  161. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  162. package/dist/meeting/locusMediaRequest.js +291 -0
  163. package/dist/meeting/locusMediaRequest.js.map +1 -0
  164. package/dist/meeting/muteState.d.ts +93 -25
  165. package/dist/meeting/muteState.js +224 -133
  166. package/dist/meeting/muteState.js.map +1 -1
  167. package/dist/meeting/request.d.ts +82 -47
  168. package/dist/meeting/request.js +297 -199
  169. package/dist/meeting/request.js.map +1 -1
  170. package/dist/meeting/request.type.d.ts +11 -0
  171. package/dist/meeting/request.type.js +7 -0
  172. package/dist/meeting/request.type.js.map +1 -0
  173. package/dist/meeting/state.js +1 -2
  174. package/dist/meeting/state.js.map +1 -1
  175. package/dist/meeting/util.d.ts +102 -1
  176. package/dist/meeting/util.js +605 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting-info/collection.js +3 -4
  179. package/dist/meeting-info/collection.js.map +1 -1
  180. package/dist/meeting-info/index.d.ts +13 -1
  181. package/dist/meeting-info/index.js +74 -7
  182. package/dist/meeting-info/index.js.map +1 -1
  183. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  184. package/dist/meeting-info/meeting-info-v2.js +200 -63
  185. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  186. package/dist/meeting-info/request.js +1 -2
  187. package/dist/meeting-info/request.js.map +1 -1
  188. package/dist/meeting-info/util.js +2 -3
  189. package/dist/meeting-info/util.js.map +1 -1
  190. package/dist/meeting-info/utilv2.js +39 -41
  191. package/dist/meeting-info/utilv2.js.map +1 -1
  192. package/dist/meetings/collection.d.ts +17 -0
  193. package/dist/meetings/collection.js +42 -4
  194. package/dist/meetings/collection.js.map +1 -1
  195. package/dist/meetings/index.d.ts +93 -21
  196. package/dist/meetings/index.js +490 -127
  197. package/dist/meetings/index.js.map +1 -1
  198. package/dist/meetings/meetings.types.d.ts +4 -0
  199. package/dist/meetings/meetings.types.js +7 -0
  200. package/dist/meetings/meetings.types.js.map +1 -0
  201. package/dist/meetings/request.js +4 -3
  202. package/dist/meetings/request.js.map +1 -1
  203. package/dist/meetings/util.js +107 -6
  204. package/dist/meetings/util.js.map +1 -1
  205. package/dist/member/index.d.ts +13 -1
  206. package/dist/member/index.js +45 -2
  207. package/dist/member/index.js.map +1 -1
  208. package/dist/member/member.types.js +3 -4
  209. package/dist/member/member.types.js.map +1 -1
  210. package/dist/member/types.d.ts +32 -0
  211. package/dist/member/types.js +23 -0
  212. package/dist/member/types.js.map +1 -0
  213. package/dist/member/util.js +120 -29
  214. package/dist/member/util.js.map +1 -1
  215. package/dist/members/collection.d.ts +5 -0
  216. package/dist/members/collection.js +11 -2
  217. package/dist/members/collection.js.map +1 -1
  218. package/dist/members/index.d.ts +56 -11
  219. package/dist/members/index.js +174 -47
  220. package/dist/members/index.js.map +1 -1
  221. package/dist/members/request.d.ts +67 -11
  222. package/dist/members/request.js +102 -54
  223. package/dist/members/request.js.map +1 -1
  224. package/dist/members/types.js +3 -4
  225. package/dist/members/types.js.map +1 -1
  226. package/dist/members/util.d.ts +214 -1
  227. package/dist/members/util.js +327 -284
  228. package/dist/members/util.js.map +1 -1
  229. package/dist/metrics/constants.d.ts +15 -6
  230. package/dist/metrics/constants.js +17 -9
  231. package/dist/metrics/constants.js.map +1 -1
  232. package/dist/metrics/index.d.ts +4 -111
  233. package/dist/metrics/index.js +4 -452
  234. package/dist/metrics/index.js.map +1 -1
  235. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  236. package/dist/multistream/mediaRequestManager.js +344 -0
  237. package/dist/multistream/mediaRequestManager.js.map +1 -0
  238. package/dist/multistream/receiveSlot.d.ts +68 -0
  239. package/dist/multistream/receiveSlot.js +200 -0
  240. package/dist/multistream/receiveSlot.js.map +1 -0
  241. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  242. package/dist/multistream/receiveSlotManager.js +174 -0
  243. package/dist/multistream/receiveSlotManager.js.map +1 -0
  244. package/dist/multistream/remoteMedia.d.ts +72 -0
  245. package/dist/multistream/remoteMedia.js +268 -0
  246. package/dist/multistream/remoteMedia.js.map +1 -0
  247. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  248. package/dist/multistream/remoteMediaGroup.js +267 -0
  249. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  250. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  251. package/dist/multistream/remoteMediaManager.js +1211 -0
  252. package/dist/multistream/remoteMediaManager.js.map +1 -0
  253. package/dist/multistream/sendSlotManager.d.ts +61 -0
  254. package/dist/multistream/sendSlotManager.js +236 -0
  255. package/dist/multistream/sendSlotManager.js.map +1 -0
  256. package/dist/networkQualityMonitor/index.js +5 -4
  257. package/dist/networkQualityMonitor/index.js.map +1 -1
  258. package/dist/personal-meeting-room/index.js +2 -3
  259. package/dist/personal-meeting-room/index.js.map +1 -1
  260. package/dist/personal-meeting-room/request.js +2 -3
  261. package/dist/personal-meeting-room/request.js.map +1 -1
  262. package/dist/personal-meeting-room/util.js +1 -2
  263. package/dist/personal-meeting-room/util.js.map +1 -1
  264. package/dist/reachability/clusterReachability.d.ts +109 -0
  265. package/dist/reachability/clusterReachability.js +357 -0
  266. package/dist/reachability/clusterReachability.js.map +1 -0
  267. package/dist/reachability/index.d.ts +61 -95
  268. package/dist/reachability/index.js +300 -393
  269. package/dist/reachability/index.js.map +1 -1
  270. package/dist/reachability/request.d.ts +7 -3
  271. package/dist/reachability/request.js +18 -10
  272. package/dist/reachability/request.js.map +1 -1
  273. package/dist/reachability/util.d.ts +8 -0
  274. package/dist/reachability/util.js +29 -0
  275. package/dist/reachability/util.js.map +1 -0
  276. package/dist/reactions/constants.d.ts +3 -0
  277. package/dist/reactions/constants.js +12 -0
  278. package/dist/reactions/constants.js.map +1 -0
  279. package/dist/reactions/reactions.d.ts +2 -2
  280. package/dist/reactions/reactions.js +4 -6
  281. package/dist/reactions/reactions.js.map +1 -1
  282. package/dist/reactions/reactions.type.d.ts +23 -3
  283. package/dist/reactions/reactions.type.js +21 -23
  284. package/dist/reactions/reactions.type.js.map +1 -1
  285. package/dist/reconnection-manager/index.d.ts +32 -8
  286. package/dist/reconnection-manager/index.js +282 -231
  287. package/dist/reconnection-manager/index.js.map +1 -1
  288. package/dist/recording-controller/enums.js +4 -5
  289. package/dist/recording-controller/enums.js.map +1 -1
  290. package/dist/recording-controller/index.d.ts +15 -1
  291. package/dist/recording-controller/index.js +57 -46
  292. package/dist/recording-controller/index.js.map +1 -1
  293. package/dist/recording-controller/util.d.ts +5 -4
  294. package/dist/recording-controller/util.js +10 -10
  295. package/dist/recording-controller/util.js.map +1 -1
  296. package/dist/roap/index.d.ts +9 -47
  297. package/dist/roap/index.js +101 -235
  298. package/dist/roap/index.js.map +1 -1
  299. package/dist/roap/request.d.ts +18 -12
  300. package/dist/roap/request.js +126 -180
  301. package/dist/roap/request.js.map +1 -1
  302. package/dist/roap/turnDiscovery.d.ts +27 -16
  303. package/dist/roap/turnDiscovery.js +115 -105
  304. package/dist/roap/turnDiscovery.js.map +1 -1
  305. package/dist/rtcMetrics/constants.d.ts +4 -0
  306. package/dist/rtcMetrics/constants.js +11 -0
  307. package/dist/rtcMetrics/constants.js.map +1 -0
  308. package/dist/rtcMetrics/index.d.ts +54 -0
  309. package/dist/rtcMetrics/index.js +140 -0
  310. package/dist/rtcMetrics/index.js.map +1 -0
  311. package/dist/statsAnalyzer/global.d.ts +1 -83
  312. package/dist/statsAnalyzer/global.js +2 -85
  313. package/dist/statsAnalyzer/global.js.map +1 -1
  314. package/dist/statsAnalyzer/index.d.ts +50 -30
  315. package/dist/statsAnalyzer/index.js +435 -510
  316. package/dist/statsAnalyzer/index.js.map +1 -1
  317. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  318. package/dist/statsAnalyzer/mqaUtil.js +120 -83
  319. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  320. package/dist/transcription/index.js +1 -2
  321. package/dist/transcription/index.js.map +1 -1
  322. package/dist/webinar/collection.d.ts +16 -0
  323. package/dist/webinar/collection.js +43 -0
  324. package/dist/webinar/collection.js.map +1 -0
  325. package/dist/webinar/index.d.ts +5 -0
  326. package/dist/webinar/index.js +68 -0
  327. package/dist/webinar/index.js.map +1 -0
  328. package/package.json +38 -26
  329. package/src/annotation/annotation.types.ts +50 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +328 -0
  332. package/src/breakouts/README.md +220 -0
  333. package/src/breakouts/breakout.ts +188 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +56 -0
  337. package/src/breakouts/index.ts +925 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/errors/no-meeting-info.ts +24 -0
  341. package/src/common/errors/webex-errors.ts +36 -12
  342. package/src/common/logs/logger-proxy.ts +1 -1
  343. package/src/common/logs/request.ts +5 -1
  344. package/src/common/queue.ts +22 -8
  345. package/src/config.ts +6 -7
  346. package/src/constants.ts +244 -97
  347. package/src/controls-options-manager/enums.ts +12 -0
  348. package/src/controls-options-manager/index.ts +116 -21
  349. package/src/controls-options-manager/types.ts +59 -0
  350. package/src/controls-options-manager/util.ts +294 -14
  351. package/src/index.ts +44 -0
  352. package/src/interceptors/index.ts +3 -0
  353. package/src/interceptors/locusRetry.ts +67 -0
  354. package/src/interpretation/README.md +60 -0
  355. package/src/interpretation/collection.ts +19 -0
  356. package/src/interpretation/index.ts +332 -0
  357. package/src/interpretation/siLanguage.ts +18 -0
  358. package/src/locus-info/controlsUtils.ts +110 -0
  359. package/src/locus-info/index.ts +449 -61
  360. package/src/locus-info/infoUtils.ts +14 -2
  361. package/src/locus-info/mediaSharesUtils.ts +64 -0
  362. package/src/locus-info/parser.ts +258 -47
  363. package/src/locus-info/selfUtils.ts +85 -2
  364. package/src/media/index.ts +153 -370
  365. package/src/media/properties.ts +106 -136
  366. package/src/media/util.ts +0 -21
  367. package/src/mediaQualityMetrics/config.ts +244 -377
  368. package/src/meeting/in-meeting-actions.ts +176 -0
  369. package/src/meeting/index.ts +3944 -2489
  370. package/src/meeting/locusMediaRequest.ts +313 -0
  371. package/src/meeting/muteState.ts +224 -138
  372. package/src/meeting/request.ts +207 -127
  373. package/src/meeting/request.type.ts +13 -0
  374. package/src/meeting/util.ts +590 -423
  375. package/src/meeting-info/index.ts +81 -8
  376. package/src/meeting-info/meeting-info-v2.ts +163 -13
  377. package/src/meeting-info/util.ts +1 -1
  378. package/src/meeting-info/utilv2.ts +28 -28
  379. package/src/meetings/collection.ts +33 -0
  380. package/src/meetings/index.ts +487 -126
  381. package/src/meetings/meetings.types.ts +12 -0
  382. package/src/meetings/request.ts +2 -0
  383. package/src/meetings/util.ts +116 -5
  384. package/src/member/index.ts +43 -1
  385. package/src/member/types.ts +38 -0
  386. package/src/member/util.ts +125 -28
  387. package/src/members/collection.ts +8 -0
  388. package/src/members/index.ts +187 -52
  389. package/src/members/request.ts +87 -27
  390. package/src/members/util.ts +332 -291
  391. package/src/metrics/constants.ts +15 -6
  392. package/src/metrics/index.ts +1 -471
  393. package/src/multistream/mediaRequestManager.ts +440 -0
  394. package/src/multistream/receiveSlot.ts +184 -0
  395. package/src/multistream/receiveSlotManager.ts +166 -0
  396. package/src/multistream/remoteMedia.ts +254 -0
  397. package/src/multistream/remoteMediaGroup.ts +284 -0
  398. package/src/multistream/remoteMediaManager.ts +1145 -0
  399. package/src/multistream/sendSlotManager.ts +170 -0
  400. package/src/networkQualityMonitor/index.ts +6 -6
  401. package/src/reachability/clusterReachability.ts +320 -0
  402. package/src/reachability/index.ts +243 -347
  403. package/src/reachability/request.ts +17 -8
  404. package/src/reachability/util.ts +24 -0
  405. package/src/reactions/constants.ts +4 -0
  406. package/src/reactions/reactions.ts +4 -4
  407. package/src/reactions/reactions.type.ts +30 -4
  408. package/src/reconnection-manager/index.ts +168 -156
  409. package/src/recording-controller/index.ts +20 -3
  410. package/src/recording-controller/util.ts +26 -9
  411. package/src/roap/index.ts +98 -241
  412. package/src/roap/request.ts +74 -148
  413. package/src/roap/turnDiscovery.ts +62 -56
  414. package/src/rtcMetrics/constants.ts +3 -0
  415. package/src/rtcMetrics/index.ts +124 -0
  416. package/src/statsAnalyzer/global.ts +1 -84
  417. package/src/statsAnalyzer/index.ts +477 -643
  418. package/src/statsAnalyzer/mqaUtil.ts +115 -114
  419. package/src/webinar/collection.ts +31 -0
  420. package/src/webinar/index.ts +62 -0
  421. package/test/integration/spec/converged-space-meetings.js +233 -0
  422. package/test/integration/spec/journey.js +320 -264
  423. package/test/integration/spec/space-meeting.js +77 -4
  424. package/test/unit/spec/annotation/index.ts +418 -0
  425. package/test/unit/spec/breakouts/breakout.ts +237 -0
  426. package/test/unit/spec/breakouts/collection.ts +15 -0
  427. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  428. package/test/unit/spec/breakouts/events.ts +89 -0
  429. package/test/unit/spec/breakouts/index.ts +1790 -0
  430. package/test/unit/spec/breakouts/request.ts +104 -0
  431. package/test/unit/spec/breakouts/utils.js +72 -0
  432. package/test/unit/spec/common/queue.js +31 -2
  433. package/test/unit/spec/controls-options-manager/index.js +163 -0
  434. package/test/unit/spec/controls-options-manager/util.js +576 -60
  435. package/test/unit/spec/fixture/locus.js +1 -0
  436. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  437. package/test/unit/spec/interpretation/collection.ts +15 -0
  438. package/test/unit/spec/interpretation/index.ts +589 -0
  439. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  440. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  441. package/test/unit/spec/locus-info/index.js +1390 -16
  442. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  443. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  444. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  445. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  446. package/test/unit/spec/locus-info/parser.js +116 -35
  447. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  448. package/test/unit/spec/media/index.ts +290 -0
  449. package/test/unit/spec/media/properties.ts +75 -84
  450. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  451. package/test/unit/spec/meeting/index.js +8187 -2769
  452. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  453. package/test/unit/spec/meeting/muteState.js +409 -213
  454. package/test/unit/spec/meeting/request.js +512 -42
  455. package/test/unit/spec/meeting/utils.js +741 -24
  456. package/test/unit/spec/meeting-info/index.js +300 -0
  457. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  458. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  459. package/test/unit/spec/meetings/collection.js +26 -0
  460. package/test/unit/spec/meetings/index.js +1313 -243
  461. package/test/unit/spec/meetings/utils.js +202 -2
  462. package/test/unit/spec/member/index.js +32 -9
  463. package/test/unit/spec/member/util.js +499 -61
  464. package/test/unit/spec/members/index.js +394 -5
  465. package/test/unit/spec/members/request.js +206 -27
  466. package/test/unit/spec/members/utils.js +173 -38
  467. package/test/unit/spec/metrics/index.js +1 -50
  468. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  469. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  470. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  471. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  472. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  473. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  474. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  475. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  476. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  477. package/test/unit/spec/reachability/index.ts +531 -24
  478. package/test/unit/spec/reachability/request.js +68 -0
  479. package/test/unit/spec/reachability/util.ts +40 -0
  480. package/test/unit/spec/reconnection-manager/index.js +162 -24
  481. package/test/unit/spec/recording-controller/index.js +293 -218
  482. package/test/unit/spec/recording-controller/util.js +223 -96
  483. package/test/unit/spec/roap/index.ts +200 -76
  484. package/test/unit/spec/roap/request.ts +255 -0
  485. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  486. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  487. package/test/unit/spec/stats-analyzer/index.js +261 -167
  488. package/test/unit/spec/webinar/collection.ts +13 -0
  489. package/test/unit/spec/webinar/index.ts +60 -0
  490. package/test/utils/constants.js +9 -0
  491. package/test/utils/integrationTestUtils.js +46 -0
  492. package/test/utils/testUtils.js +0 -45
  493. package/test/utils/webex-config.js +4 -0
  494. package/test/utils/webex-test-users.js +7 -3
  495. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  496. package/dist/meeting/effectsState.d.ts +0 -42
  497. package/dist/meeting/effectsState.js +0 -260
  498. package/dist/meeting/effectsState.js.map +0 -1
  499. package/dist/metrics/config.d.ts +0 -169
  500. package/dist/metrics/config.js +0 -289
  501. package/dist/metrics/config.js.map +0 -1
  502. package/dist/peer-connection-manager/index.d.ts +0 -6
  503. package/dist/peer-connection-manager/index.js +0 -671
  504. package/dist/peer-connection-manager/index.js.map +0 -1
  505. package/dist/peer-connection-manager/util.d.ts +0 -6
  506. package/dist/peer-connection-manager/util.js +0 -110
  507. package/dist/peer-connection-manager/util.js.map +0 -1
  508. package/dist/roap/collection.d.ts +0 -10
  509. package/dist/roap/collection.js +0 -63
  510. package/dist/roap/collection.js.map +0 -1
  511. package/dist/roap/handler.d.ts +0 -47
  512. package/dist/roap/handler.js +0 -279
  513. package/dist/roap/handler.js.map +0 -1
  514. package/dist/roap/state.d.ts +0 -9
  515. package/dist/roap/state.js +0 -127
  516. package/dist/roap/state.js.map +0 -1
  517. package/dist/roap/util.d.ts +0 -2
  518. package/dist/roap/util.js +0 -76
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/index.js +0 -15
  521. package/src/meeting/effectsState.ts +0 -209
  522. package/src/metrics/config.ts +0 -485
  523. package/src/peer-connection-manager/index.ts +0 -847
  524. package/src/peer-connection-manager/util.ts +0 -119
  525. package/src/roap/collection.ts +0 -62
  526. package/src/roap/handler.ts +0 -294
  527. package/src/roap/state.ts +0 -156
  528. package/src/roap/util.ts +0 -100
  529. package/test/unit/spec/meeting/effectsState.js +0 -281
  530. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  531. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  532. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  533. package/test/unit/spec/roap/util.js +0 -30
  534. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  535. /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
@@ -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":";;;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AALA,IAMqBM,sBAAsB;EACzC;AACF;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;EACE,SAAAA,uBACEC,OAAuB,EACvBC,OAGC,EACD;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,sBAAA;IAAA,IAAAK,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,wBAtBoC,EAAE;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAuBtC,IAAI,CAACE,UAAU,CAACL,OAAO,CAAC;IACxB,IAAI,CAACM,GAAG,CAACL,OAAO,CAAC;EACnB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAM,aAAA,CAAAJ,OAAA,EAAAJ,sBAAA;IAAAS,GAAA;IAAAC,KAAA,EAMA,SAAAJ,WAAmBL,OAAuB,EAAE;MAC1C,IAAI,CAACA,OAAO,GAAGA,OAAO;IACxB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAQ,GAAA;IAAAC,KAAA,EAMA,SAAAH,IAAWL,OAA0D,EAAE;MACrE,IAAI,CAACS,OAAO,CAACT,OAAO,CAAC;IACvB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAO,GAAA;IAAAC,KAAA,EAMA,SAAAE,YAAmBC,GAAW,EAAE;MAC9B,IAAI,CAACC,QAAQ,GAAGD,GAAG;IACrB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAJ,GAAA;IAAAC,KAAA,EAMA,SAAAK,gBAAuBC,KAAoB,EAAE;MAC3C,IAAI,CAACC,YAAY,GAAGD,KAAK;IAC3B;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAP,GAAA;IAAAC,KAAA,EAKA,SAAAQ,YAAA,EAAqB;MACnB,OAAO,IAAI,CAACJ,QAAQ;IACtB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAL,GAAA;IAAAC,KAAA,EAKA,SAAAS,gBAAA,EAAyB;MACvB,OAAO,IAAI,CAACF,YAAY;IAC1B;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAR,GAAA;IAAAC,KAAA,EAMA,SAAAC,QAAgBT,OAA0D,EAAE;MAC1E,IAAI,CAACa,eAAe,CAACb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEe,YAAY,CAAC;MAC3C,IAAI,CAACL,WAAW,CAACV,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,QAAQ,CAAC;IACrC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAL,GAAA;IAAAC,KAAA,EAOA,SAAAU,YAAoBC,OAAgB,EAAEC,OAAgB,EAAgB;MACpEC,oBAAW,CAACC,MAAM,CAACC,GAAG,iDAAAC,MAAA,CAAiDL,OAAO,QAAAK,MAAA,CAAKJ,OAAO,OAAI;MAE9F,IAAIK,aAAI,aAAJA,aAAI,eAAJA,aAAI,IAAAD,MAAA,CAAMJ,OAAO,GAAGM,mBAAO,GAAGC,qBAAS,EAAAH,MAAA,CAAGL,OAAO,EAAG,CAAC,IAAI,CAACJ,YAAY,CAAC,EAAE;QAC3E;QACA,OAAO,IAAI,CAAChB,OAAO,CAACA,OAAO,CAAC;UAC1B6B,GAAG,KAAAJ,MAAA,CAAK,IAAI,CAACZ,QAAQ,OAAAY,MAAA,CAAIK,mBAAQ,CAAE;UACnCC,IAAI,MAAA3B,gBAAA,CAAAD,OAAA,MACD,IAAA6B,WAAA,CAAA7B,OAAA,EAAUiB,OAAO,CAAC,MAAAhB,gBAAA,CAAAD,OAAA,MAChB8B,mBAAO,EAAGZ,OAAO,EAErB;UACDa,MAAM,EAAEC,qBAAU,CAACC;QACrB,CAAC,CAAC;MACJ;MAEA,OAAOC,QAAA,CAAAlC,OAAA,CAAQmC,MAAM,CACnB,IAAIC,mBAAe,IAAAd,MAAA,CAAIL,OAAO,QAAAK,MAAA,CAAKJ,OAAO,+CAA4C,CACvF;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAb,GAAA;IAAAC,KAAA,EAMA,SAAA+B,eAAsBnB,OAAgB,EAAgB;MACpD,OAAO,IAAI,CAACF,WAAW,CAACsB,cAAO,CAACC,WAAW,EAAErB,OAAO,CAAC;IACvD;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAb,GAAA;IAAAC,KAAA,EAMA,SAAAkC,kBAAyBtB,OAAgB,EAAgB;MACvD,OAAO,IAAI,CAACF,WAAW,CAACsB,cAAO,CAACG,cAAc,EAAEvB,OAAO,CAAC;IAC1D;EAAC;EAAA,OAAAtB,sBAAA;AAAA;AAAA8C,OAAA,CAAA1C,OAAA,GAAAJ,sBAAA"}
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,43 @@
1
+ import { Control } from './enums';
2
+ export interface ControlProperties {
3
+ /**
4
+ * A list of additional properties that apply to various specific settings.
5
+ *
6
+ * @remarks
7
+ * The values stored here, per the service, are fully ambiguous, an can vary
8
+ * depending on which control scope is being configured.
9
+ */
10
+ [key: string]: boolean;
11
+ }
12
+ export interface AudioProperties {
13
+ muted?: boolean;
14
+ disallowUnmute?: boolean;
15
+ muteOnEntry?: boolean;
16
+ }
17
+ export interface RaiseHandProperties {
18
+ enabled?: boolean;
19
+ }
20
+ export interface ReactionsProperties {
21
+ enabled?: boolean;
22
+ showDisplayNameWithReactions?: boolean;
23
+ }
24
+ export interface ShareControlProperties {
25
+ control?: 'ANYONE' | 'MODERATOR_PRESENTER';
26
+ }
27
+ export interface VideoProperties {
28
+ enabled?: boolean;
29
+ }
30
+ export interface ViewTheParticipantListProperties {
31
+ enabled?: boolean;
32
+ }
33
+ export type Properties = AudioProperties | RaiseHandProperties | ReactionsProperties | ShareControlProperties | VideoProperties | ViewTheParticipantListProperties;
34
+ export interface ControlConfig<Props = Properties> {
35
+ /**
36
+ * The scope of the control within this object.
37
+ */
38
+ scope: Control;
39
+ /**
40
+ * The properties to assign to this control.
41
+ */
42
+ properties: Props;
43
+ }
@@ -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,7 +1 @@
1
- declare const _default: {
2
- canSetMuteOnEntry: (displayHints: string[]) => boolean;
3
- canSetDisallowUnmute: (displayHints: string[]) => boolean;
4
- canUnsetMuteOnEntry: (displayHints: string[]) => boolean;
5
- canUnsetDisallowUnmute: (displayHints: string[]) => boolean;
6
- };
7
- export default _default;
1
+ export default Utils;