@webex/plugin-meetings 3.0.0-beta.7 → 3.0.0-beta.71

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 (506) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +178 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +843 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +56 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +6 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +143 -52
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +16 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +261 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +39 -0
  72. package/dist/controls-options-manager/util.js.map +1 -0
  73. package/dist/index.js +11 -18
  74. package/dist/index.js.map +1 -1
  75. package/dist/locus-info/controlsUtils.js +31 -29
  76. package/dist/locus-info/controlsUtils.js.map +1 -1
  77. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  78. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  79. package/dist/locus-info/fullState.js +0 -15
  80. package/dist/locus-info/fullState.js.map +1 -1
  81. package/dist/locus-info/hostUtils.js +4 -12
  82. package/dist/locus-info/hostUtils.js.map +1 -1
  83. package/dist/locus-info/index.js +237 -198
  84. package/dist/locus-info/index.js.map +1 -1
  85. package/dist/locus-info/infoUtils.js +3 -37
  86. package/dist/locus-info/infoUtils.js.map +1 -1
  87. package/dist/locus-info/mediaSharesUtils.js +12 -38
  88. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  89. package/dist/locus-info/parser.js +92 -118
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +80 -89
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +56 -146
  94. package/dist/media/index.js.map +1 -1
  95. package/dist/media/properties.js +83 -117
  96. package/dist/media/properties.js.map +1 -1
  97. package/dist/media/util.js +2 -9
  98. package/dist/media/util.js.map +1 -1
  99. package/dist/mediaQualityMetrics/config.js +505 -495
  100. package/dist/mediaQualityMetrics/config.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +31 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2225 -2244
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +102 -100
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +308 -264
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +63 -217
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +193 -268
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +137 -228
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +26 -19
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +565 -552
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +26 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +151 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +100 -85
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/types.js +15 -0
  138. package/dist/member/types.js.map +1 -0
  139. package/dist/member/util.js +90 -68
  140. package/dist/member/util.js.map +1 -1
  141. package/dist/members/collection.js +13 -12
  142. package/dist/members/collection.js.map +1 -1
  143. package/dist/members/index.js +152 -204
  144. package/dist/members/index.js.map +1 -1
  145. package/dist/members/request.js +35 -39
  146. package/dist/members/request.js.map +1 -1
  147. package/dist/members/types.js +15 -0
  148. package/dist/members/types.js.map +1 -0
  149. package/dist/members/util.js +76 -46
  150. package/dist/members/util.js.map +1 -1
  151. package/dist/metrics/config.js +4 -14
  152. package/dist/metrics/config.js.map +1 -1
  153. package/dist/metrics/constants.js +1 -6
  154. package/dist/metrics/constants.js.map +1 -1
  155. package/dist/metrics/index.js +59 -156
  156. package/dist/metrics/index.js.map +1 -1
  157. package/dist/multistream/mediaRequestManager.js +116 -52
  158. package/dist/multistream/mediaRequestManager.js.map +1 -1
  159. package/dist/multistream/receiveSlot.js +58 -65
  160. package/dist/multistream/receiveSlot.js.map +1 -1
  161. package/dist/multistream/receiveSlotManager.js +58 -93
  162. package/dist/multistream/receiveSlotManager.js.map +1 -1
  163. package/dist/multistream/remoteMedia.js +55 -74
  164. package/dist/multistream/remoteMedia.js.map +1 -1
  165. package/dist/multistream/remoteMediaGroup.js +6 -40
  166. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  167. package/dist/multistream/remoteMediaManager.js +466 -442
  168. package/dist/multistream/remoteMediaManager.js.map +1 -1
  169. package/dist/networkQualityMonitor/index.js +40 -59
  170. package/dist/networkQualityMonitor/index.js.map +1 -1
  171. package/dist/personal-meeting-room/index.js +21 -45
  172. package/dist/personal-meeting-room/index.js.map +1 -1
  173. package/dist/personal-meeting-room/request.js +1 -31
  174. package/dist/personal-meeting-room/request.js.map +1 -1
  175. package/dist/personal-meeting-room/util.js +0 -13
  176. package/dist/personal-meeting-room/util.js.map +1 -1
  177. package/dist/reachability/index.js +192 -191
  178. package/dist/reachability/index.js.map +1 -1
  179. package/dist/reachability/request.js +15 -23
  180. package/dist/reachability/request.js.map +1 -1
  181. package/dist/reactions/constants.js +13 -0
  182. package/dist/reactions/constants.js.map +1 -0
  183. package/dist/reactions/reactions.js +109 -0
  184. package/dist/reactions/reactions.js.map +1 -0
  185. package/dist/reactions/reactions.type.js +36 -0
  186. package/dist/reactions/reactions.type.js.map +1 -0
  187. package/dist/reconnection-manager/index.js +342 -460
  188. package/dist/reconnection-manager/index.js.map +1 -1
  189. package/dist/recording-controller/enums.js +17 -0
  190. package/dist/recording-controller/enums.js.map +1 -0
  191. package/dist/recording-controller/index.js +343 -0
  192. package/dist/recording-controller/index.js.map +1 -0
  193. package/dist/recording-controller/util.js +63 -0
  194. package/dist/recording-controller/util.js.map +1 -0
  195. package/dist/roap/index.js +48 -70
  196. package/dist/roap/index.js.map +1 -1
  197. package/dist/roap/request.js +143 -131
  198. package/dist/roap/request.js.map +1 -1
  199. package/dist/roap/turnDiscovery.js +91 -98
  200. package/dist/roap/turnDiscovery.js.map +1 -1
  201. package/dist/statsAnalyzer/global.js +1 -95
  202. package/dist/statsAnalyzer/global.js.map +1 -1
  203. package/dist/statsAnalyzer/index.js +372 -455
  204. package/dist/statsAnalyzer/index.js.map +1 -1
  205. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  206. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  207. package/dist/transcription/index.js +22 -47
  208. package/dist/transcription/index.js.map +1 -1
  209. package/dist/types/breakouts/breakout.d.ts +8 -0
  210. package/dist/types/breakouts/collection.d.ts +5 -0
  211. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  212. package/dist/types/breakouts/index.d.ts +5 -0
  213. package/dist/types/breakouts/request.d.ts +22 -0
  214. package/dist/types/breakouts/utils.d.ts +8 -0
  215. package/dist/types/common/browser-detection.d.ts +9 -0
  216. package/dist/types/common/collection.d.ts +48 -0
  217. package/dist/types/common/config.d.ts +2 -0
  218. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  219. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  220. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  221. package/dist/types/common/errors/media.d.ts +15 -0
  222. package/dist/types/common/errors/parameter.d.ts +15 -0
  223. package/dist/types/common/errors/password-error.d.ts +15 -0
  224. package/dist/types/common/errors/permission.d.ts +14 -0
  225. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  226. package/dist/types/common/errors/reconnection.d.ts +15 -0
  227. package/dist/types/common/errors/stats.d.ts +15 -0
  228. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  229. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  230. package/dist/types/common/events/events-scope.d.ts +17 -0
  231. package/dist/types/common/events/events.d.ts +12 -0
  232. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  233. package/dist/types/common/events/util.d.ts +2 -0
  234. package/dist/types/common/logs/logger-config.d.ts +2 -0
  235. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  236. package/dist/types/common/logs/request.d.ts +34 -0
  237. package/dist/types/common/queue.d.ts +32 -0
  238. package/dist/types/config.d.ts +77 -0
  239. package/dist/types/constants.d.ts +944 -0
  240. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  241. package/dist/types/controls-options-manager/enums.d.ts +6 -0
  242. package/dist/types/controls-options-manager/index.d.ts +128 -0
  243. package/dist/types/controls-options-manager/util.d.ts +9 -0
  244. package/dist/types/index.d.ts +6 -0
  245. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  246. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  247. package/dist/types/locus-info/fullState.d.ts +2 -0
  248. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  249. package/dist/types/locus-info/index.d.ts +276 -0
  250. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  251. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  252. package/dist/types/locus-info/parser.d.ts +212 -0
  253. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  254. package/dist/types/media/index.d.ts +32 -0
  255. package/dist/types/media/properties.d.ts +108 -0
  256. package/dist/types/media/util.d.ts +2 -0
  257. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  258. package/dist/types/meeting/in-meeting-actions.d.ts +101 -0
  259. package/dist/types/meeting/index.d.ts +1720 -0
  260. package/dist/types/meeting/muteState.d.ts +132 -0
  261. package/dist/types/meeting/request.d.ts +271 -0
  262. package/dist/types/meeting/request.type.d.ts +11 -0
  263. package/dist/types/meeting/state.d.ts +9 -0
  264. package/dist/types/meeting/util.d.ts +2 -0
  265. package/dist/types/meeting-info/collection.d.ts +20 -0
  266. package/dist/types/meeting-info/index.d.ts +57 -0
  267. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  268. package/dist/types/meeting-info/request.d.ts +22 -0
  269. package/dist/types/meeting-info/util.d.ts +2 -0
  270. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  271. package/dist/types/meetings/collection.d.ts +31 -0
  272. package/dist/types/meetings/index.d.ts +315 -0
  273. package/dist/types/meetings/request.d.ts +27 -0
  274. package/dist/types/meetings/util.d.ts +18 -0
  275. package/dist/types/member/index.d.ts +156 -0
  276. package/dist/types/member/types.d.ts +21 -0
  277. package/dist/types/member/util.d.ts +2 -0
  278. package/dist/types/members/collection.d.ts +29 -0
  279. package/dist/types/members/index.d.ts +343 -0
  280. package/dist/types/members/request.d.ts +58 -0
  281. package/dist/types/members/types.d.ts +24 -0
  282. package/dist/types/members/util.d.ts +2 -0
  283. package/dist/types/metrics/config.d.ts +171 -0
  284. package/dist/types/metrics/constants.d.ts +53 -0
  285. package/dist/types/metrics/index.d.ts +152 -0
  286. package/dist/types/multistream/mediaRequestManager.d.ts +68 -0
  287. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  288. package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
  289. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  290. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  291. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  292. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  293. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  294. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  295. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  296. package/dist/types/reachability/index.d.ts +152 -0
  297. package/dist/types/reachability/request.d.ts +37 -0
  298. package/dist/types/reactions/constants.d.ts +3 -0
  299. package/dist/types/reactions/reactions.d.ts +4 -0
  300. package/dist/types/reactions/reactions.type.d.ts +52 -0
  301. package/dist/types/reconnection-manager/index.d.ts +126 -0
  302. package/dist/types/recording-controller/enums.d.ts +7 -0
  303. package/dist/types/recording-controller/index.d.ts +193 -0
  304. package/dist/types/recording-controller/util.d.ts +13 -0
  305. package/dist/types/roap/index.d.ts +77 -0
  306. package/dist/types/roap/request.d.ts +38 -0
  307. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  308. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  309. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  310. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  311. package/dist/types/transcription/index.d.ts +64 -0
  312. package/internal-README.md +7 -6
  313. package/package.json +27 -21
  314. package/src/breakouts/README.md +219 -0
  315. package/src/breakouts/breakout.ts +153 -0
  316. package/src/breakouts/collection.ts +19 -0
  317. package/src/breakouts/edit-lock-error.ts +25 -0
  318. package/src/breakouts/index.ts +745 -0
  319. package/src/breakouts/request.ts +55 -0
  320. package/src/breakouts/utils.ts +44 -0
  321. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  322. package/src/common/collection.ts +9 -7
  323. package/src/common/{config.js → config.ts} +1 -1
  324. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  325. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  326. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  327. package/src/common/errors/{media.js → media.ts} +11 -7
  328. package/src/common/errors/parameter.ts +11 -7
  329. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  330. package/src/common/errors/{permission.js → permission.ts} +10 -6
  331. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  332. package/src/common/errors/{stats.js → stats.ts} +11 -7
  333. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  334. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  335. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  336. package/src/common/events/{events.js → events.ts} +5 -1
  337. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  338. package/src/common/events/{util.js → util.ts} +2 -3
  339. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  340. package/src/common/logs/logger-proxy.ts +44 -0
  341. package/src/common/logs/{request.js → request.ts} +22 -9
  342. package/src/common/queue.ts +1 -2
  343. package/src/{config.js → config.ts} +17 -12
  344. package/src/constants.ts +92 -5
  345. package/src/controls-options-manager/constants.ts +5 -0
  346. package/src/controls-options-manager/enums.ts +7 -0
  347. package/src/controls-options-manager/index.ts +240 -0
  348. package/src/controls-options-manager/util.ts +30 -0
  349. package/src/index.js +4 -1
  350. package/src/locus-info/controlsUtils.ts +141 -0
  351. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  352. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  353. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  354. package/src/locus-info/{index.js → index.ts} +211 -71
  355. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  356. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  357. package/src/locus-info/{parser.js → parser.ts} +67 -79
  358. package/src/locus-info/{selfUtils.js → selfUtils.ts} +183 -67
  359. package/src/media/{index.js → index.ts} +179 -176
  360. package/src/media/{properties.js → properties.ts} +60 -37
  361. package/src/media/{util.js → util.ts} +2 -2
  362. package/src/mediaQualityMetrics/config.ts +384 -0
  363. package/src/meeting/in-meeting-actions.ts +67 -3
  364. package/src/meeting/{index.js → index.ts} +2605 -1605
  365. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  366. package/src/meeting/{request.js → request.ts} +326 -142
  367. package/src/meeting/request.type.ts +13 -0
  368. package/src/meeting/{state.js → state.ts} +50 -35
  369. package/src/meeting/{util.js → util.ts} +131 -115
  370. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  371. package/src/meeting-info/{index.js → index.ts} +42 -36
  372. package/src/meeting-info/meeting-info-v2.ts +273 -0
  373. package/src/meeting-info/{request.js → request.ts} +14 -4
  374. package/src/meeting-info/{util.js → util.ts} +60 -51
  375. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  376. package/src/meetings/{collection.js → collection.ts} +26 -3
  377. package/src/meetings/index.ts +1275 -0
  378. package/src/meetings/{request.js → request.ts} +34 -25
  379. package/src/meetings/{util.js → util.ts} +99 -33
  380. package/src/member/{index.js → index.ts} +124 -56
  381. package/src/member/types.ts +24 -0
  382. package/src/member/{util.js → util.ts} +105 -25
  383. package/src/members/{collection.js → collection.ts} +10 -2
  384. package/src/members/{index.js → index.ts} +281 -144
  385. package/src/members/{request.js → request.ts} +80 -16
  386. package/src/members/types.ts +28 -0
  387. package/src/members/{util.js → util.ts} +108 -55
  388. package/src/metrics/{config.js → config.ts} +255 -92
  389. package/src/metrics/{constants.js → constants.ts} +0 -6
  390. package/src/metrics/{index.js → index.ts} +110 -94
  391. package/src/multistream/mediaRequestManager.ts +144 -40
  392. package/src/multistream/receiveSlot.ts +69 -26
  393. package/src/multistream/receiveSlotManager.ts +50 -38
  394. package/src/multistream/remoteMedia.ts +30 -4
  395. package/src/multistream/remoteMediaGroup.ts +4 -3
  396. package/src/multistream/remoteMediaManager.ts +230 -66
  397. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  398. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  399. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  400. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  401. package/src/reachability/{index.js → index.ts} +157 -94
  402. package/src/reachability/request.ts +46 -35
  403. package/src/reactions/constants.ts +4 -0
  404. package/src/reactions/reactions.ts +104 -0
  405. package/src/reactions/reactions.type.ts +62 -0
  406. package/src/reconnection-manager/{index.js → index.ts} +228 -120
  407. package/src/recording-controller/enums.ts +8 -0
  408. package/src/recording-controller/index.ts +315 -0
  409. package/src/recording-controller/util.ts +58 -0
  410. package/src/roap/{index.js → index.ts} +77 -60
  411. package/src/roap/request.ts +172 -0
  412. package/src/roap/turnDiscovery.ts +81 -41
  413. package/src/statsAnalyzer/global.ts +37 -0
  414. package/src/statsAnalyzer/index.ts +1242 -0
  415. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  416. package/src/transcription/{index.js → index.ts} +46 -39
  417. package/test/integration/spec/converged-space-meetings.js +176 -0
  418. package/test/integration/spec/journey.js +665 -464
  419. package/test/integration/spec/space-meeting.js +320 -206
  420. package/test/integration/spec/transcription.js +7 -8
  421. package/test/unit/spec/breakouts/breakout.ts +178 -0
  422. package/test/unit/spec/breakouts/collection.ts +15 -0
  423. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  424. package/test/unit/spec/breakouts/index.ts +1252 -0
  425. package/test/unit/spec/breakouts/request.ts +104 -0
  426. package/test/unit/spec/breakouts/utils.js +54 -0
  427. package/test/unit/spec/common/browser-detection.js +9 -28
  428. package/test/unit/spec/controls-options-manager/index.js +204 -0
  429. package/test/unit/spec/controls-options-manager/util.js +86 -0
  430. package/test/unit/spec/fixture/locus.js +92 -90
  431. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  432. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  433. package/test/unit/spec/locus-info/index.js +303 -2
  434. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  435. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  436. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  437. package/test/unit/spec/locus-info/parser.js +3 -9
  438. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  439. package/test/unit/spec/locus-info/selfUtils.js +165 -12
  440. package/test/unit/spec/media/index.ts +72 -8
  441. package/test/unit/spec/media/properties.ts +9 -9
  442. package/test/unit/spec/meeting/in-meeting-actions.ts +29 -2
  443. package/test/unit/spec/meeting/index.js +2503 -802
  444. package/test/unit/spec/meeting/muteState.js +146 -61
  445. package/test/unit/spec/meeting/request.js +141 -43
  446. package/test/unit/spec/meeting/utils.js +135 -164
  447. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  448. package/test/unit/spec/meeting-info/request.js +7 -9
  449. package/test/unit/spec/meeting-info/util.js +11 -12
  450. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  451. package/test/unit/spec/meetings/collection.js +15 -1
  452. package/test/unit/spec/meetings/index.js +622 -263
  453. package/test/unit/spec/meetings/utils.js +65 -14
  454. package/test/unit/spec/member/index.js +24 -1
  455. package/test/unit/spec/member/util.js +359 -32
  456. package/test/unit/spec/members/index.js +294 -54
  457. package/test/unit/spec/members/request.js +50 -20
  458. package/test/unit/spec/members/utils.js +147 -4
  459. package/test/unit/spec/metrics/index.js +16 -21
  460. package/test/unit/spec/multistream/mediaRequestManager.ts +369 -68
  461. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  462. package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
  463. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  464. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  465. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  466. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  467. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  468. package/test/unit/spec/reachability/index.ts +176 -27
  469. package/test/unit/spec/reachability/request.js +66 -0
  470. package/test/unit/spec/reconnection-manager/index.js +58 -30
  471. package/test/unit/spec/recording-controller/index.js +231 -0
  472. package/test/unit/spec/recording-controller/util.js +102 -0
  473. package/test/unit/spec/roap/index.ts +12 -8
  474. package/test/unit/spec/roap/request.ts +217 -0
  475. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  476. package/test/unit/spec/stats-analyzer/index.js +108 -57
  477. package/test/utils/cmr.js +44 -42
  478. package/test/utils/constants.js +9 -0
  479. package/test/utils/testUtils.js +98 -77
  480. package/test/utils/webex-config.js +22 -18
  481. package/test/utils/webex-test-users.js +57 -50
  482. package/tsconfig.json +6 -0
  483. package/dist/media/internal-media-core-wrapper.js +0 -22
  484. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  485. package/dist/meeting/effectsState.js +0 -327
  486. package/dist/meeting/effectsState.js.map +0 -1
  487. package/dist/multistream/multistreamMedia.js +0 -116
  488. package/dist/multistream/multistreamMedia.js.map +0 -1
  489. package/dist/peer-connection-manager/util.js +0 -124
  490. package/dist/peer-connection-manager/util.js.map +0 -1
  491. package/src/common/logs/logger-proxy.js +0 -33
  492. package/src/locus-info/controlsUtils.js +0 -102
  493. package/src/media/internal-media-core-wrapper.ts +0 -9
  494. package/src/mediaQualityMetrics/config.js +0 -382
  495. package/src/meeting/effectsState.js +0 -205
  496. package/src/meeting-info/meeting-info-v2.js +0 -255
  497. package/src/meetings/index.js +0 -1015
  498. package/src/multistream/multistreamMedia.ts +0 -92
  499. package/src/peer-connection-manager/util.ts +0 -117
  500. package/src/roap/request.js +0 -127
  501. package/src/statsAnalyzer/global.js +0 -133
  502. package/src/statsAnalyzer/index.js +0 -1006
  503. package/src/statsAnalyzer/mqaUtil.js +0 -173
  504. package/test/unit/spec/meeting/effectsState.js +0 -291
  505. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  506. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,261 @@
1
+ "use strict";
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");
8
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
9
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
10
+ _Object$defineProperty(exports, "__esModule", {
11
+ value: true
12
+ });
13
+ exports.default = void 0;
14
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
15
+ var _entries = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/entries"));
16
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
17
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
19
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
20
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
21
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
22
+ var _camelCase2 = _interopRequireDefault(require("lodash/camelCase"));
23
+ var _permission = _interopRequireDefault(require("../common/errors/permission"));
24
+ var _constants = require("../constants");
25
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
26
+ var _enums = _interopRequireDefault(require("./enums"));
27
+ var _util = _interopRequireDefault(require("./util"));
28
+ var _constants2 = require("./constants");
29
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+ /**
32
+ * docs
33
+ * https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html
34
+ * https://confluence-eng-gpk2.cisco.com/conf/display/LOCUS/Hard+Mute+and+Audio+Privacy#HardMuteandAudioPrivacy-SelfMuteonEntry
35
+ * 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
36
+ * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-180867
37
+ * https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-393351
38
+ */
39
+ /**
40
+ * @description ControlsOptionsManager is responsible for handling the behavior of participant controls when somebody joins a meeting
41
+ * @export
42
+ * @private
43
+ * @class Recording
44
+ */
45
+ var ControlsOptionsManager = /*#__PURE__*/function () {
46
+ /**
47
+ * @instance
48
+ * @type {MeetingRequest}
49
+ * @private
50
+ * @memberof ControlsOptionsManager
51
+ */
52
+
53
+ /**
54
+ * @instance
55
+ * @type {Array}
56
+ * @private
57
+ * @memberof ControlsOptionsManager
58
+ */
59
+
60
+ /**
61
+ * @instance
62
+ * @type {string}
63
+ * @private
64
+ * @memberof ControlsOptionsManager
65
+ */
66
+
67
+ /**
68
+ * @param {MeetingRequest} request
69
+ * @param {Object} options
70
+ * @constructor
71
+ * @memberof ControlsOptionsManager
72
+ */
73
+ function ControlsOptionsManager(request, options) {
74
+ (0, _classCallCheck2.default)(this, ControlsOptionsManager);
75
+ (0, _defineProperty2.default)(this, "request", void 0);
76
+ (0, _defineProperty2.default)(this, "displayHints", []);
77
+ (0, _defineProperty2.default)(this, "locusUrl", void 0);
78
+ this.initialize(request);
79
+ this.set(options);
80
+ }
81
+
82
+ /**
83
+ * @param {MeetingRequest} request
84
+ * @returns {void}
85
+ * @private
86
+ * @memberof ControlsOptionsManager
87
+ */
88
+ (0, _createClass2.default)(ControlsOptionsManager, [{
89
+ key: "initialize",
90
+ value: function initialize(request) {
91
+ this.request = request;
92
+ }
93
+
94
+ /**
95
+ * @param {Object} options
96
+ * @returns {void}
97
+ * @public
98
+ * @memberof ControlsOptionsManager
99
+ */
100
+ }, {
101
+ key: "set",
102
+ value: function set(options) {
103
+ this.extract(options);
104
+ }
105
+
106
+ /**
107
+ * @param {string} url
108
+ * @returns {void}
109
+ * @public
110
+ * @memberof ControlsOptionsManager
111
+ */
112
+ }, {
113
+ key: "setLocusUrl",
114
+ value: function setLocusUrl(url) {
115
+ this.locusUrl = url;
116
+ }
117
+
118
+ /**
119
+ * @param {Array} hints
120
+ * @returns {void}
121
+ * @public
122
+ * @memberof ControlsOptionsManager
123
+ */
124
+ }, {
125
+ key: "setDisplayHints",
126
+ value: function setDisplayHints(hints) {
127
+ this.displayHints = hints;
128
+ }
129
+
130
+ /**
131
+ * @returns {string}
132
+ * @public
133
+ * @memberof ControlsOptionsManager
134
+ */
135
+ }, {
136
+ key: "getLocusUrl",
137
+ value: function getLocusUrl() {
138
+ return this.locusUrl;
139
+ }
140
+
141
+ /**
142
+ * @returns {Array}
143
+ * @public
144
+ * @memberof ControlsOptionsManager
145
+ */
146
+ }, {
147
+ key: "getDisplayHints",
148
+ value: function getDisplayHints() {
149
+ return this.displayHints;
150
+ }
151
+
152
+ /**
153
+ * @param {Object} options
154
+ * @returns {void}
155
+ * @private
156
+ * @memberof ControlsOptionsManager
157
+ */
158
+ }, {
159
+ key: "extract",
160
+ value: function extract(options) {
161
+ this.setDisplayHints(options === null || options === void 0 ? void 0 : options.displayHints);
162
+ this.setLocusUrl(options === null || options === void 0 ? void 0 : options.locusUrl);
163
+ }
164
+
165
+ /**
166
+ * @param {Setting} setting
167
+ * @private
168
+ * @memberof ControlsOptionsManager
169
+ * @returns {Promise}
170
+ */
171
+ }, {
172
+ key: "setControls",
173
+ value: function setControls(setting) {
174
+ var _this = this;
175
+ _loggerProxy.default.logger.log("ControlsOptionsManager:index#setControls --> ".concat((0, _stringify.default)(setting)));
176
+ var body = {};
177
+ var error;
178
+ var shouldSkipCheckToMergeBody = false;
179
+ (0, _entries.default)(setting).forEach(function (_ref) {
180
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
181
+ key = _ref2[0],
182
+ value = _ref2[1];
183
+ if (!shouldSkipCheckToMergeBody && !(_util.default !== null && _util.default !== void 0 && _util.default["".concat(value ? _constants2.CAN_SET : _constants2.CAN_UNSET).concat(key)](_this.displayHints))) {
184
+ error = new _permission.default("".concat(key, " [").concat(value, "] not allowed, due to moderator property."));
185
+ }
186
+ if (error) {
187
+ return;
188
+ }
189
+ switch (key) {
190
+ case _enums.default.muted:
191
+ shouldSkipCheckToMergeBody = true;
192
+ body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _camelCase2.default)(key), value)) : (0, _defineProperty2.default)({}, (0, _camelCase2.default)(key), value);
193
+ break;
194
+ case _enums.default.disallowUnmute:
195
+ case _enums.default.muteOnEntry:
196
+ if ((0, _keys.default)(setting).includes(_enums.default.muted)) {
197
+ body.audio = body.audio ? _objectSpread(_objectSpread({}, body.audio), {}, (0, _defineProperty2.default)({}, (0, _camelCase2.default)(key), value)) : (0, _defineProperty2.default)({}, (0, _camelCase2.default)(key), value);
198
+ body.audio[(0, _camelCase2.default)(key)] = value;
199
+ } else {
200
+ body[(0, _camelCase2.default)(key)] = (0, _defineProperty2.default)({}, _constants2.ENABLED, value);
201
+ }
202
+ break;
203
+ default:
204
+ error = new _permission.default("".concat(key, " [").concat(value, "] not allowed, due to moderator property."));
205
+ }
206
+ });
207
+ if (error) {
208
+ return _promise.default.reject(error);
209
+ }
210
+
211
+ // @ts-ignore
212
+ return this.request.request({
213
+ uri: "".concat(this.locusUrl, "/").concat(_constants.CONTROLS),
214
+ body: body,
215
+ method: _constants.HTTP_VERBS.PATCH
216
+ });
217
+ }
218
+
219
+ /**
220
+ * @public
221
+ * @param {boolean} enabled
222
+ * @memberof ControlsOptionsManager
223
+ * @returns {Promise}
224
+ */
225
+ }, {
226
+ key: "setMuteOnEntry",
227
+ value: function setMuteOnEntry(enabled) {
228
+ return this.setControls((0, _defineProperty2.default)({}, _enums.default.muteOnEntry, enabled));
229
+ }
230
+
231
+ /**
232
+ * @public
233
+ * @param {boolean} enabled
234
+ * @memberof ControlsOptionsManager
235
+ * @returns {Promise}
236
+ */
237
+ }, {
238
+ key: "setDisallowUnmute",
239
+ value: function setDisallowUnmute(enabled) {
240
+ return this.setControls((0, _defineProperty2.default)({}, _enums.default.disallowUnmute, enabled));
241
+ }
242
+
243
+ /**
244
+ * @public
245
+ * @param {boolean} mutedEnabled
246
+ * @param {boolean} disallowUnmuteEnabled
247
+ * @param {boolean} muteOnEntryEnabled
248
+ * @memberof ControlsOptionsManager
249
+ * @returns {Promise}
250
+ */
251
+ }, {
252
+ key: "setMuteAll",
253
+ value: function setMuteAll(mutedEnabled, disallowUnmuteEnabled, muteOnEntryEnabled) {
254
+ var _this$setControls3;
255
+ return this.setControls((_this$setControls3 = {}, (0, _defineProperty2.default)(_this$setControls3, _enums.default.muted, mutedEnabled), (0, _defineProperty2.default)(_this$setControls3, _enums.default.disallowUnmute, disallowUnmuteEnabled), (0, _defineProperty2.default)(_this$setControls3, _enums.default.muteOnEntry, muteOnEntryEnabled), _this$setControls3));
256
+ }
257
+ }]);
258
+ return ControlsOptionsManager;
259
+ }();
260
+ exports.default = ControlsOptionsManager;
261
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ControlsOptionsManager","request","options","initialize","set","extract","url","locusUrl","hints","displayHints","setDisplayHints","setLocusUrl","setting","LoggerProxy","logger","log","body","error","shouldSkipCheckToMergeBody","forEach","key","value","Util","CAN_SET","CAN_UNSET","PermissionError","Setting","muted","audio","disallowUnmute","muteOnEntry","includes","ENABLED","reject","uri","CONTROLS","method","HTTP_VERBS","PATCH","enabled","setControls","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 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 * @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,39 @@
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
+ exports.default = void 0;
8
+ 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
+
22
+ // 'Muted' in the context of controls options manager refers to mute/unmute all.
23
+ // This was chosen because locus uses "muted" in the /controls API
24
+ var canSetMuted = function canSetMuted(displayHints) {
25
+ return displayHints.includes(_constants.DISPLAY_HINTS.MUTE_ALL);
26
+ };
27
+ var canUnsetMuted = function canUnsetMuted(displayHints) {
28
+ return displayHints.includes(_constants.DISPLAY_HINTS.UNMUTE_ALL);
29
+ };
30
+ var _default = {
31
+ canSetMuteOnEntry: canSetMuteOnEntry,
32
+ canSetDisallowUnmute: canSetDisallowUnmute,
33
+ canSetMuted: canSetMuted,
34
+ canUnsetMuteOnEntry: canUnsetMuteOnEntry,
35
+ canUnsetDisallowUnmute: canUnsetDisallowUnmute,
36
+ canUnsetMuted: canUnsetMuted
37
+ };
38
+ exports.default = _default;
39
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["canSetMuteOnEntry","displayHints","includes","DISPLAY_HINTS","ENABLE_MUTE_ON_ENTRY","canSetDisallowUnmute","ENABLE_HARD_MUTE","canUnsetMuteOnEntry","DISABLE_MUTE_ON_ENTRY","canUnsetDisallowUnmute","DISABLE_HARD_MUTE","canSetMuted","MUTE_ALL","canUnsetMuted","UNMUTE_ALL"],"sources":["util.ts"],"sourcesContent":["import {DISPLAY_HINTS} from '../constants';\n\nconst canSetMuteOnEntry = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_MUTE_ON_ENTRY);\n\nconst canSetDisallowUnmute = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_HARD_MUTE);\n\nconst canUnsetMuteOnEntry = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.DISABLE_MUTE_ON_ENTRY);\n\nconst canUnsetDisallowUnmute = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.DISABLE_HARD_MUTE);\n\n// 'Muted' in the context of controls options manager refers to mute/unmute all.\n// This was chosen because locus uses \"muted\" in the /controls API\nconst canSetMuted = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.MUTE_ALL);\n\nconst canUnsetMuted = (displayHints: Array<string>): boolean =>\n displayHints.includes(DISPLAY_HINTS.UNMUTE_ALL);\n\nexport default {\n canSetMuteOnEntry,\n canSetDisallowUnmute,\n canSetMuted,\n canUnsetMuteOnEntry,\n canUnsetDisallowUnmute,\n canUnsetMuted,\n};\n"],"mappings":";;;;;;;AAAA;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,YAA2B;EAAA,OACpDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACC,oBAAoB,CAAC;AAAA;AAE3D,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,CAAIJ,YAA2B;EAAA,OACvDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACG,gBAAgB,CAAC;AAAA;AAEvD,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIN,YAA2B;EAAA,OACtDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACK,qBAAqB,CAAC;AAAA;AAE5D,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,CAAIR,YAA2B;EAAA,OACzDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACO,iBAAiB,CAAC;AAAA;;AAExD;AACA;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAIV,YAA2B;EAAA,OAC9CA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACS,QAAQ,CAAC;AAAA;AAE/C,IAAMC,aAAa,GAAG,SAAhBA,aAAa,CAAIZ,YAA2B;EAAA,OAChDA,YAAY,CAACC,QAAQ,CAACC,wBAAa,CAACW,UAAU,CAAC;AAAA;AAAC,eAEnC;EACbd,iBAAiB,EAAjBA,iBAAiB;EACjBK,oBAAoB,EAApBA,oBAAoB;EACpBM,WAAW,EAAXA,WAAW;EACXJ,mBAAmB,EAAnBA,mBAAmB;EACnBE,sBAAsB,EAAtBA,sBAAsB;EACtBI,aAAa,EAAbA;AACF,CAAC;AAAA"}
package/dist/index.js CHANGED
@@ -1,47 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
-
5
4
  var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
6
-
7
5
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
8
-
9
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
-
11
7
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
-
13
8
  _Object$defineProperty(exports, "__esModule", {
14
9
  value: true
15
10
  });
16
-
17
- exports.CONSTANTS = void 0;
18
-
11
+ exports.REACTIONS = exports.CONSTANTS = void 0;
12
+ _Object$defineProperty(exports, "RemoteMedia", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _remoteMedia.RemoteMedia;
16
+ }
17
+ });
19
18
  _Object$defineProperty(exports, "TriggerProxy", {
20
19
  enumerable: true,
21
20
  get: function get() {
22
21
  return _triggerProxy.default;
23
22
  }
24
23
  });
25
-
26
24
  exports.default = void 0;
27
-
28
25
  var _webexCore = require("@webex/webex-core");
29
-
30
26
  var _meetings = _interopRequireDefault(require("./meetings"));
31
-
32
27
  var _config = _interopRequireDefault(require("./config"));
33
-
34
28
  var _CONSTANTS = _interopRequireWildcard(require("./constants"));
35
-
36
29
  exports.CONSTANTS = _CONSTANTS;
37
-
30
+ var _REACTIONS = _interopRequireWildcard(require("./reactions/reactions"));
31
+ exports.REACTIONS = _REACTIONS;
32
+ var _remoteMedia = require("./multistream/remoteMedia");
38
33
  var _triggerProxy = _interopRequireDefault(require("./common/events/trigger-proxy"));
39
-
40
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
-
42
35
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
-
44
36
  /* eslint-env browser */
37
+
45
38
  (0, _webexCore.registerPlugin)('meetings', _meetings.default, {
46
39
  config: _config.default
47
40
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerPlugin","Meetings","config"],"sources":["index.js"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\n\nregisterPlugin('meetings', Meetings, {\n config\n});\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AACA;;;;;;AAUA;;;;;;AAdA;AAMA,IAAAA,yBAAA,EAAe,UAAf,EAA2BC,iBAA3B,EAAqC;EACnCC,MAAM,EAANA;AADmC,CAArC;eAIeD,iB"}
1
+ {"version":3,"names":["registerPlugin","Meetings","config"],"sources":["index.js"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\n\nregisterPlugin('meetings', Meetings, {\n config,\n});\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\nexport * as REACTIONS from './reactions/reactions';\n\nexport {RemoteMedia} from './multistream/remoteMedia';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA;AAEA;AACA;AAA8B;AAAA;AAAA;AAAA;AAW9B;AAEA;AAAsE;AAAA;AAjBtE;;AAMA,IAAAA,yBAAc,EAAC,UAAU,EAAEC,iBAAQ,EAAE;EACnCC,MAAM,EAANA;AACF,CAAC,CAAC;AAAC,eAEYD,iBAAQ;AAAA"}
@@ -1,34 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
15
  var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
26
-
27
16
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
-
29
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
30
-
31
18
  var ControlsUtils = {};
19
+
32
20
  /**
33
21
  * Controls
34
22
  * @typedef {Object} LocusControls
@@ -44,10 +32,8 @@ var ControlsUtils = {};
44
32
  * @returns {Object} parsedObject - parsed host or null if host was undefined
45
33
  * @returns {String} parsedObject.recordingId
46
34
  */
47
-
48
35
  ControlsUtils.parse = function (controls) {
49
36
  var parsedControls = _objectSpread({}, controls);
50
-
51
37
  if (controls && controls.record) {
52
38
  parsedControls.record = {
53
39
  modifiedBy: ControlsUtils.getId(controls),
@@ -56,37 +42,34 @@ ControlsUtils.parse = function (controls) {
56
42
  lastModified: controls.record.meta.lastModified
57
43
  };
58
44
  }
59
-
60
45
  if (controls && controls.meetingContainer) {
61
46
  parsedControls.meetingContainer = {
62
47
  meetingContainerUrl: controls.meetingContainer.meetingContainerUrl
63
48
  };
64
49
  }
65
-
66
50
  if (controls && controls.transcribe) {
67
51
  parsedControls.transcribe = {
68
52
  transcribing: controls.transcribe.transcribing,
69
53
  caption: controls.transcribe.caption
70
54
  };
71
55
  }
72
-
73
56
  if (controls && controls.entryExitTone) {
74
57
  parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;
75
58
  }
76
-
59
+ if (controls && controls.video) {
60
+ parsedControls.videoEnabled = controls.video.enabled;
61
+ }
77
62
  return parsedControls;
78
63
  };
64
+
79
65
  /**
80
66
  * parses and returns previous state vs current state and triggers the changes.
81
67
  * @param {LocusControls} oldControls previous state
82
68
  * @param {LocusControls} newControls current state
83
69
  * @returns {Object} combination of state plus the changes
84
70
  */
85
-
86
-
87
71
  ControlsUtils.getControls = function (oldControls, newControls) {
88
- var _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2;
89
-
72
+ var _previous$record, _previous$record2, _current$record, _previous$record3, _current$record2, _previous$record4, _current$record3, _previous$meetingCont, _current$meetingConta, _previous$transcribe, _current$transcribe, _previous$transcribe2, _current$transcribe2, _newControls$video;
90
73
  var previous = ControlsUtils.parse(oldControls);
91
74
  var current = ControlsUtils.parse(newControls);
92
75
  return {
@@ -95,32 +78,51 @@ ControlsUtils.getControls = function (oldControls, newControls) {
95
78
  updates: {
96
79
  hasRecordingPausedChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record = previous.record) === null || _previous$record === void 0 ? void 0 : _previous$record.paused, current.record.paused) && ((previous === null || previous === void 0 ? void 0 : (_previous$record2 = previous.record) === null || _previous$record2 === void 0 ? void 0 : _previous$record2.recording) || (current === null || current === void 0 ? void 0 : (_current$record = current.record) === null || _current$record === void 0 ? void 0 : _current$record.recording)),
97
80
  // see comments directly below
98
- hasRecordingChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record3 = previous.record) === null || _previous$record3 === void 0 ? void 0 : _previous$record3.recording, current === null || current === void 0 ? void 0 : (_current$record2 = current.record) === null || _current$record2 === void 0 ? void 0 : _current$record2.recording) && ( // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
81
+
82
+ hasRecordingChanged: (current === null || current === void 0 ? void 0 : current.record) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$record3 = previous.record) === null || _previous$record3 === void 0 ? void 0 : _previous$record3.recording, current === null || current === void 0 ? void 0 : (_current$record2 = current.record) === null || _current$record2 === void 0 ? void 0 : _current$record2.recording) && (
83
+ // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
99
84
  (previous === null || previous === void 0 ? void 0 : (_previous$record4 = previous.record) === null || _previous$record4 === void 0 ? void 0 : _previous$record4.recording) || (current === null || current === void 0 ? void 0 : (_current$record3 = current.record) === null || _current$record3 === void 0 ? void 0 : _current$record3.recording)),
100
85
  // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
86
+
101
87
  hasMeetingContainerChanged: (current === null || current === void 0 ? void 0 : current.meetingContainer) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$meetingCont = previous.meetingContainer) === null || _previous$meetingCont === void 0 ? void 0 : _previous$meetingCont.meetingContainerUrl, current === null || current === void 0 ? void 0 : (_current$meetingConta = current.meetingContainer) === null || _current$meetingConta === void 0 ? void 0 : _current$meetingConta.meetingContainerUrl),
102
- hasTranscribeChanged: (current === null || current === void 0 ? void 0 : current.transcribe) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$transcribe = previous.transcribe) === null || _previous$transcribe === void 0 ? void 0 : _previous$transcribe.transcribing, current === null || current === void 0 ? void 0 : (_current$transcribe = current.transcribe) === null || _current$transcribe === void 0 ? void 0 : _current$transcribe.transcribing) && ( // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
88
+ hasTranscribeChanged: (current === null || current === void 0 ? void 0 : current.transcribe) && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : (_previous$transcribe = previous.transcribe) === null || _previous$transcribe === void 0 ? void 0 : _previous$transcribe.transcribing, current === null || current === void 0 ? void 0 : (_current$transcribe = current.transcribe) === null || _current$transcribe === void 0 ? void 0 : _current$transcribe.transcribing) && (
89
+ // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
103
90
  (previous === null || previous === void 0 ? void 0 : (_previous$transcribe2 = previous.transcribe) === null || _previous$transcribe2 === void 0 ? void 0 : _previous$transcribe2.transcribing) || (current === null || current === void 0 ? void 0 : (_current$transcribe2 = current.transcribe) === null || _current$transcribe2 === void 0 ? void 0 : _current$transcribe2.transcribing)),
104
91
  // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
105
- hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone))
92
+
93
+ hasEntryExitToneChanged: !!(newControls.entryExitTone && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.entryExitTone, current === null || current === void 0 ? void 0 : current.entryExitTone) && (previous !== null && previous !== void 0 && previous.entryExitTone || current !== null && current !== void 0 && current.entryExitTone)),
94
+ hasBreakoutChanged: !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.breakout, current === null || current === void 0 ? void 0 : current.breakout),
95
+ hasVideoEnabledChanged: ((_newControls$video = newControls.video) === null || _newControls$video === void 0 ? void 0 : _newControls$video.enabled) !== undefined && !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.videoEnabled, current === null || current === void 0 ? void 0 : current.videoEnabled)
106
96
  }
107
97
  };
108
98
  };
99
+
109
100
  /**
110
101
  * Extract the id from the record controls object
111
102
  * @param {LocusControls} controls
112
103
  * @returns {String|null}
113
104
  */
114
-
115
-
116
105
  ControlsUtils.getId = function (controls) {
117
106
  if (controls.record.meta) {
118
107
  return controls.record.meta.modifiedBy;
119
108
  }
120
-
121
109
  return null;
122
110
  };
123
111
 
112
+ /**
113
+ * check whether to replace the meeting's members or not.
114
+ * For case joined breakout session, need replace meeting's members
115
+ * @param {LocusControls} oldControls
116
+ * @param {LocusControls} controls
117
+ * @returns {Boolean}
118
+ */
119
+ ControlsUtils.isNeedReplaceMembers = function (oldControls, controls) {
120
+ // no breakout case
121
+ if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {
122
+ return false;
123
+ }
124
+ return oldControls.breakout.groupId !== controls.breakout.groupId || oldControls.breakout.sessionId !== controls.breakout.sessionId;
125
+ };
124
126
  var _default = ControlsUtils;
125
127
  exports.default = _default;
126
128
  //# sourceMappingURL=controlsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","entryExitTone","enabled","mode","getControls","oldControls","newControls","previous","current","updates","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged"],"sources":["controlsUtils.js"],"sourcesContent":["import {isEqual} from 'lodash';\n\nconst ControlsUtils = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls, newControls) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasRecordingPausedChanged: current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged: current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged: current?.meetingContainer &&\n !isEqual(previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl),\n\n hasTranscribeChanged: current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasEntryExitToneChanged: !!(newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)),\n }\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","entryExitTone","enabled","mode","video","videoEnabled","getControls","oldControls","newControls","previous","current","updates","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasVideoEnabledChanged","undefined","isNeedReplaceMembers","groupId","sessionId"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls.breakout.groupId !== controls.breakout.groupId ||\n oldControls.breakout.sessionId !== controls.breakout.sessionId\n );\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}