@webex/plugin-meetings 3.0.0-beta.16 → 3.0.0-beta.161

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 (424) hide show
  1. package/README.md +45 -1
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +359 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +212 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +23 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +52 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +43 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1046 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +78 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +67 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +3 -2
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/logs/logger-proxy.js +1 -1
  25. package/dist/common/logs/logger-proxy.js.map +1 -1
  26. package/dist/config.js +6 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +175 -26
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +300 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +77 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +214 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +92 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +317 -24
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/mediaSharesUtils.js +43 -1
  53. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  54. package/dist/locus-info/parser.js +2 -1
  55. package/dist/locus-info/parser.js.map +1 -1
  56. package/dist/locus-info/selfUtils.js +97 -14
  57. package/dist/locus-info/selfUtils.js.map +1 -1
  58. package/dist/media/index.js +39 -134
  59. package/dist/media/index.js.map +1 -1
  60. package/dist/media/properties.js +19 -97
  61. package/dist/media/properties.js.map +1 -1
  62. package/dist/mediaQualityMetrics/config.js +505 -493
  63. package/dist/mediaQualityMetrics/config.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +79 -1
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2349 -2178
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +291 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +229 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +191 -167
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/request.type.js.map +1 -1
  75. package/dist/meeting/util.js +444 -443
  76. package/dist/meeting/util.js.map +1 -1
  77. package/dist/meeting-info/meeting-info-v2.js +157 -49
  78. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  79. package/dist/meeting-info/utilv2.js +20 -5
  80. package/dist/meeting-info/utilv2.js.map +1 -1
  81. package/dist/meetings/collection.js +22 -0
  82. package/dist/meetings/collection.js.map +1 -1
  83. package/dist/meetings/index.js +365 -73
  84. package/dist/meetings/index.js.map +1 -1
  85. package/dist/meetings/meetings.types.js +7 -0
  86. package/dist/meetings/meetings.types.js.map +1 -0
  87. package/dist/meetings/request.js +16 -12
  88. package/dist/meetings/request.js.map +1 -1
  89. package/dist/meetings/util.js +88 -1
  90. package/dist/meetings/util.js.map +1 -1
  91. package/dist/member/index.js +43 -0
  92. package/dist/member/index.js.map +1 -1
  93. package/dist/member/types.js +15 -0
  94. package/dist/member/types.js.map +1 -0
  95. package/dist/member/util.js +97 -3
  96. package/dist/member/util.js.map +1 -1
  97. package/dist/members/collection.js +10 -0
  98. package/dist/members/collection.js.map +1 -1
  99. package/dist/members/index.js +94 -11
  100. package/dist/members/index.js.map +1 -1
  101. package/dist/members/request.js +109 -39
  102. package/dist/members/request.js.map +1 -1
  103. package/dist/members/types.js +15 -0
  104. package/dist/members/types.js.map +1 -0
  105. package/dist/members/util.js +316 -233
  106. package/dist/members/util.js.map +1 -1
  107. package/dist/metrics/config.js +50 -14
  108. package/dist/metrics/config.js.map +1 -1
  109. package/dist/metrics/constants.js +3 -5
  110. package/dist/metrics/constants.js.map +1 -1
  111. package/dist/metrics/index.js +48 -29
  112. package/dist/metrics/index.js.map +1 -1
  113. package/dist/multistream/mediaRequestManager.js +265 -36
  114. package/dist/multistream/mediaRequestManager.js.map +1 -1
  115. package/dist/multistream/receiveSlot.js +52 -19
  116. package/dist/multistream/receiveSlot.js.map +1 -1
  117. package/dist/multistream/receiveSlotManager.js +53 -33
  118. package/dist/multistream/receiveSlotManager.js.map +1 -1
  119. package/dist/multistream/remoteMedia.js +44 -18
  120. package/dist/multistream/remoteMedia.js.map +1 -1
  121. package/dist/multistream/remoteMediaGroup.js +60 -3
  122. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  123. package/dist/multistream/remoteMediaManager.js +322 -103
  124. package/dist/multistream/remoteMediaManager.js.map +1 -1
  125. package/dist/networkQualityMonitor/index.js +4 -2
  126. package/dist/networkQualityMonitor/index.js.map +1 -1
  127. package/dist/reachability/index.js +117 -60
  128. package/dist/reachability/index.js.map +1 -1
  129. package/dist/reachability/request.js +12 -5
  130. package/dist/reachability/request.js.map +1 -1
  131. package/dist/reactions/constants.js +13 -0
  132. package/dist/reactions/constants.js.map +1 -0
  133. package/dist/reactions/reactions.js +2 -2
  134. package/dist/reactions/reactions.js.map +1 -1
  135. package/dist/reactions/reactions.type.js +18 -18
  136. package/dist/reactions/reactions.type.js.map +1 -1
  137. package/dist/reconnection-manager/index.js +190 -145
  138. package/dist/reconnection-manager/index.js.map +1 -1
  139. package/dist/recording-controller/enums.js +17 -0
  140. package/dist/recording-controller/enums.js.map +1 -0
  141. package/dist/recording-controller/index.js +343 -0
  142. package/dist/recording-controller/index.js.map +1 -0
  143. package/dist/recording-controller/util.js +63 -0
  144. package/dist/recording-controller/util.js.map +1 -0
  145. package/dist/roap/index.js +21 -29
  146. package/dist/roap/index.js.map +1 -1
  147. package/dist/roap/request.js +127 -92
  148. package/dist/roap/request.js.map +1 -1
  149. package/dist/roap/turnDiscovery.js +135 -53
  150. package/dist/roap/turnDiscovery.js.map +1 -1
  151. package/dist/statsAnalyzer/global.js +1 -93
  152. package/dist/statsAnalyzer/global.js.map +1 -1
  153. package/dist/statsAnalyzer/index.js +329 -314
  154. package/dist/statsAnalyzer/index.js.map +1 -1
  155. package/dist/statsAnalyzer/mqaUtil.js +103 -54
  156. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  157. package/dist/types/annotation/annotation.types.d.ts +43 -0
  158. package/dist/types/annotation/constants.d.ts +31 -0
  159. package/dist/types/annotation/index.d.ts +124 -0
  160. package/dist/types/breakouts/breakout.d.ts +8 -0
  161. package/dist/types/breakouts/collection.d.ts +5 -0
  162. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  163. package/dist/types/breakouts/events.d.ts +2 -0
  164. package/dist/types/breakouts/index.d.ts +5 -0
  165. package/dist/types/breakouts/request.d.ts +22 -0
  166. package/dist/types/breakouts/utils.d.ts +15 -0
  167. package/dist/types/common/browser-detection.d.ts +9 -0
  168. package/dist/types/common/collection.d.ts +48 -0
  169. package/dist/types/common/config.d.ts +2 -0
  170. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  171. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  172. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  173. package/dist/types/common/errors/media.d.ts +15 -0
  174. package/dist/types/common/errors/parameter.d.ts +15 -0
  175. package/dist/types/common/errors/password-error.d.ts +15 -0
  176. package/dist/types/common/errors/permission.d.ts +14 -0
  177. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  178. package/dist/types/common/errors/reconnection.d.ts +15 -0
  179. package/dist/types/common/errors/stats.d.ts +15 -0
  180. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  181. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  182. package/dist/types/common/events/events-scope.d.ts +17 -0
  183. package/dist/types/common/events/events.d.ts +12 -0
  184. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  185. package/dist/types/common/events/util.d.ts +2 -0
  186. package/dist/types/common/logs/logger-config.d.ts +2 -0
  187. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  188. package/dist/types/common/logs/request.d.ts +34 -0
  189. package/dist/types/common/queue.d.ts +32 -0
  190. package/dist/types/config.d.ts +72 -0
  191. package/dist/types/constants.d.ts +987 -0
  192. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  193. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  194. package/dist/types/controls-options-manager/index.d.ts +136 -0
  195. package/dist/types/controls-options-manager/types.d.ts +43 -0
  196. package/dist/types/controls-options-manager/util.d.ts +1 -0
  197. package/dist/types/index.d.ts +7 -0
  198. package/dist/types/interpretation/collection.d.ts +5 -0
  199. package/dist/types/interpretation/index.d.ts +5 -0
  200. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  201. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  202. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  203. package/dist/types/locus-info/fullState.d.ts +2 -0
  204. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  205. package/dist/types/locus-info/index.d.ts +315 -0
  206. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  207. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  208. package/dist/types/locus-info/parser.d.ts +212 -0
  209. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  210. package/dist/types/media/index.d.ts +34 -0
  211. package/dist/types/media/properties.d.ts +86 -0
  212. package/dist/types/media/util.d.ts +2 -0
  213. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  214. package/dist/types/meeting/in-meeting-actions.d.ts +149 -0
  215. package/dist/types/meeting/index.d.ts +1524 -0
  216. package/dist/types/meeting/locusMediaRequest.d.ts +70 -0
  217. package/dist/types/meeting/muteState.d.ts +184 -0
  218. package/dist/types/meeting/request.d.ts +270 -0
  219. package/dist/types/meeting/request.type.d.ts +11 -0
  220. package/dist/types/meeting/state.d.ts +9 -0
  221. package/dist/types/meeting/util.d.ts +75 -0
  222. package/dist/types/meeting-info/collection.d.ts +20 -0
  223. package/dist/types/meeting-info/index.d.ts +57 -0
  224. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  225. package/dist/types/meeting-info/request.d.ts +22 -0
  226. package/dist/types/meeting-info/util.d.ts +2 -0
  227. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  228. package/dist/types/meetings/collection.d.ts +31 -0
  229. package/dist/types/meetings/index.d.ts +364 -0
  230. package/dist/types/meetings/meetings.types.d.ts +4 -0
  231. package/dist/types/meetings/request.d.ts +27 -0
  232. package/dist/types/meetings/util.d.ts +18 -0
  233. package/dist/types/member/index.d.ts +158 -0
  234. package/dist/types/member/types.d.ts +21 -0
  235. package/dist/types/member/util.d.ts +2 -0
  236. package/dist/types/members/collection.d.ts +29 -0
  237. package/dist/types/members/index.d.ts +353 -0
  238. package/dist/types/members/request.d.ts +114 -0
  239. package/dist/types/members/types.d.ts +24 -0
  240. package/dist/types/members/util.d.ts +210 -0
  241. package/dist/types/metrics/config.d.ts +195 -0
  242. package/dist/types/metrics/constants.d.ts +55 -0
  243. package/dist/types/metrics/index.d.ts +169 -0
  244. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  245. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  246. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  247. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  248. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  249. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  250. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  251. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  252. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  253. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  254. package/dist/types/reachability/index.d.ts +152 -0
  255. package/dist/types/reachability/request.d.ts +37 -0
  256. package/dist/types/reactions/constants.d.ts +3 -0
  257. package/dist/types/reactions/reactions.d.ts +4 -0
  258. package/dist/types/reactions/reactions.type.d.ts +52 -0
  259. package/dist/types/reconnection-manager/index.d.ts +126 -0
  260. package/dist/types/recording-controller/enums.d.ts +7 -0
  261. package/dist/types/recording-controller/index.d.ts +193 -0
  262. package/dist/types/recording-controller/util.d.ts +13 -0
  263. package/dist/types/roap/index.d.ts +77 -0
  264. package/dist/types/roap/request.d.ts +36 -0
  265. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  266. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  267. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  268. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  269. package/dist/types/transcription/index.d.ts +64 -0
  270. package/package.json +28 -21
  271. package/src/annotation/annotation.types.ts +52 -0
  272. package/src/annotation/constants.ts +36 -0
  273. package/src/annotation/index.ts +343 -0
  274. package/src/breakouts/README.md +220 -0
  275. package/src/breakouts/breakout.ts +180 -0
  276. package/src/breakouts/collection.ts +19 -0
  277. package/src/breakouts/edit-lock-error.ts +25 -0
  278. package/src/breakouts/events.ts +37 -0
  279. package/src/breakouts/index.ts +921 -0
  280. package/src/breakouts/request.ts +55 -0
  281. package/src/breakouts/utils.ts +57 -0
  282. package/src/common/errors/webex-errors.ts +6 -2
  283. package/src/common/logs/logger-proxy.ts +1 -1
  284. package/src/config.ts +5 -7
  285. package/src/constants.ts +165 -20
  286. package/src/controls-options-manager/constants.ts +5 -0
  287. package/src/controls-options-manager/enums.ts +18 -0
  288. package/src/controls-options-manager/index.ts +278 -0
  289. package/src/controls-options-manager/types.ts +59 -0
  290. package/src/controls-options-manager/util.ts +286 -0
  291. package/src/index.ts +34 -0
  292. package/src/interpretation/README.md +51 -0
  293. package/src/interpretation/collection.ts +19 -0
  294. package/src/interpretation/index.ts +182 -0
  295. package/src/interpretation/siLanguage.ts +18 -0
  296. package/src/locus-info/controlsUtils.ts +110 -0
  297. package/src/locus-info/index.ts +339 -21
  298. package/src/locus-info/mediaSharesUtils.ts +48 -0
  299. package/src/locus-info/parser.ts +2 -1
  300. package/src/locus-info/selfUtils.ts +86 -2
  301. package/src/media/index.ts +70 -142
  302. package/src/media/properties.ts +41 -104
  303. package/src/mediaQualityMetrics/config.ts +379 -377
  304. package/src/meeting/in-meeting-actions.ts +156 -0
  305. package/src/meeting/index.ts +1779 -1741
  306. package/src/meeting/locusMediaRequest.ts +309 -0
  307. package/src/meeting/muteState.ts +228 -132
  308. package/src/meeting/request.ts +100 -91
  309. package/src/meeting/request.type.ts +2 -0
  310. package/src/meeting/util.ts +422 -421
  311. package/src/meeting-info/meeting-info-v2.ts +134 -13
  312. package/src/meeting-info/utilv2.ts +13 -3
  313. package/src/meetings/collection.ts +20 -0
  314. package/src/meetings/index.ts +385 -83
  315. package/src/meetings/meetings.types.ts +12 -0
  316. package/src/meetings/request.ts +3 -1
  317. package/src/meetings/util.ts +103 -4
  318. package/src/member/index.ts +42 -0
  319. package/src/member/types.ts +24 -0
  320. package/src/member/util.ts +95 -1
  321. package/src/members/collection.ts +8 -0
  322. package/src/members/index.ts +108 -6
  323. package/src/members/request.ts +98 -17
  324. package/src/members/types.ts +28 -0
  325. package/src/members/util.ts +319 -240
  326. package/src/metrics/config.ts +49 -10
  327. package/src/metrics/constants.ts +2 -4
  328. package/src/metrics/index.ts +43 -27
  329. package/src/multistream/mediaRequestManager.ts +337 -63
  330. package/src/multistream/receiveSlot.ts +68 -26
  331. package/src/multistream/receiveSlotManager.ts +61 -38
  332. package/src/multistream/remoteMedia.ts +29 -3
  333. package/src/multistream/remoteMediaGroup.ts +61 -2
  334. package/src/multistream/remoteMediaManager.ts +260 -66
  335. package/src/networkQualityMonitor/index.ts +6 -6
  336. package/src/reachability/index.ts +75 -25
  337. package/src/reachability/request.ts +10 -5
  338. package/src/reactions/constants.ts +4 -0
  339. package/src/reactions/reactions.ts +4 -4
  340. package/src/reactions/reactions.type.ts +28 -3
  341. package/src/reconnection-manager/index.ts +53 -32
  342. package/src/recording-controller/enums.ts +8 -0
  343. package/src/recording-controller/index.ts +315 -0
  344. package/src/recording-controller/util.ts +58 -0
  345. package/src/roap/index.ts +21 -30
  346. package/src/roap/request.ts +51 -52
  347. package/src/roap/turnDiscovery.ts +51 -27
  348. package/src/statsAnalyzer/global.ts +1 -94
  349. package/src/statsAnalyzer/index.ts +380 -390
  350. package/src/statsAnalyzer/mqaUtil.ts +106 -99
  351. package/test/integration/spec/converged-space-meetings.js +233 -0
  352. package/test/integration/spec/journey.js +331 -254
  353. package/test/integration/spec/space-meeting.js +77 -4
  354. package/test/unit/spec/annotation/index.ts +436 -0
  355. package/test/unit/spec/breakouts/breakout.ts +233 -0
  356. package/test/unit/spec/breakouts/collection.ts +15 -0
  357. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  358. package/test/unit/spec/breakouts/events.ts +77 -0
  359. package/test/unit/spec/breakouts/index.ts +1790 -0
  360. package/test/unit/spec/breakouts/request.ts +104 -0
  361. package/test/unit/spec/breakouts/utils.js +72 -0
  362. package/test/unit/spec/controls-options-manager/index.js +287 -0
  363. package/test/unit/spec/controls-options-manager/util.js +518 -0
  364. package/test/unit/spec/fixture/locus.js +1 -0
  365. package/test/unit/spec/interpretation/collection.ts +15 -0
  366. package/test/unit/spec/interpretation/index.ts +329 -0
  367. package/test/unit/spec/interpretation/siLanguage.ts +26 -0
  368. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  369. package/test/unit/spec/locus-info/index.js +680 -4
  370. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  371. package/test/unit/spec/locus-info/selfConstant.js +48 -0
  372. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  373. package/test/unit/spec/media/index.ts +118 -22
  374. package/test/unit/spec/media/properties.ts +9 -9
  375. package/test/unit/spec/meeting/in-meeting-actions.ts +76 -0
  376. package/test/unit/spec/meeting/index.js +2695 -1513
  377. package/test/unit/spec/meeting/locusMediaRequest.ts +436 -0
  378. package/test/unit/spec/meeting/muteState.js +370 -208
  379. package/test/unit/spec/meeting/request.js +354 -42
  380. package/test/unit/spec/meeting/utils.js +270 -156
  381. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  382. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  383. package/test/unit/spec/meetings/collection.js +14 -0
  384. package/test/unit/spec/meetings/index.js +866 -120
  385. package/test/unit/spec/meetings/utils.js +206 -2
  386. package/test/unit/spec/member/index.js +31 -0
  387. package/test/unit/spec/member/util.js +408 -32
  388. package/test/unit/spec/members/index.js +320 -1
  389. package/test/unit/spec/members/request.js +206 -27
  390. package/test/unit/spec/members/utils.js +184 -0
  391. package/test/unit/spec/metrics/index.js +98 -0
  392. package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
  393. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  394. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  395. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  396. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  397. package/test/unit/spec/multistream/remoteMediaManager.ts +672 -65
  398. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  399. package/test/unit/spec/reachability/index.ts +176 -25
  400. package/test/unit/spec/reachability/request.js +66 -0
  401. package/test/unit/spec/reconnection-manager/index.js +46 -13
  402. package/test/unit/spec/recording-controller/index.js +231 -0
  403. package/test/unit/spec/recording-controller/util.js +102 -0
  404. package/test/unit/spec/roap/index.ts +21 -51
  405. package/test/unit/spec/roap/request.ts +187 -0
  406. package/test/unit/spec/roap/turnDiscovery.ts +73 -34
  407. package/test/unit/spec/stats-analyzer/index.js +94 -43
  408. package/test/utils/constants.js +9 -0
  409. package/test/utils/integrationTestUtils.js +46 -0
  410. package/test/utils/testUtils.js +0 -45
  411. package/test/utils/webex-config.js +4 -0
  412. package/test/utils/webex-test-users.js +7 -3
  413. package/tsconfig.json +6 -0
  414. package/dist/media/internal-media-core-wrapper.js +0 -18
  415. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  416. package/dist/meeting/effectsState.js +0 -262
  417. package/dist/meeting/effectsState.js.map +0 -1
  418. package/dist/multistream/multistreamMedia.js +0 -106
  419. package/dist/multistream/multistreamMedia.js.map +0 -1
  420. package/src/index.js +0 -15
  421. package/src/media/internal-media-core-wrapper.ts +0 -9
  422. package/src/meeting/effectsState.ts +0 -211
  423. package/src/multistream/multistreamMedia.ts +0 -93
  424. package/test/unit/spec/meeting/effectsState.js +0 -281
package/dist/index.js CHANGED
@@ -9,18 +9,95 @@ _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
11
  exports.CONSTANTS = void 0;
12
+ _Object$defineProperty(exports, "LocalCameraTrack", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _mediaHelpers.LocalCameraTrack;
16
+ }
17
+ });
18
+ _Object$defineProperty(exports, "LocalCameraTrackEvents", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _mediaHelpers.LocalCameraTrackEvents;
22
+ }
23
+ });
24
+ _Object$defineProperty(exports, "LocalDisplayTrack", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _mediaHelpers.LocalDisplayTrack;
28
+ }
29
+ });
30
+ _Object$defineProperty(exports, "LocalMicrophoneTrack", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _mediaHelpers.LocalMicrophoneTrack;
34
+ }
35
+ });
36
+ _Object$defineProperty(exports, "LocalMicrophoneTrackEvents", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _mediaHelpers.LocalMicrophoneTrackEvents;
40
+ }
41
+ });
42
+ _Object$defineProperty(exports, "LocalTrack", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _mediaHelpers.LocalTrack;
46
+ }
47
+ });
48
+ _Object$defineProperty(exports, "LocalTrackEvents", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _mediaHelpers.LocalTrackEvents;
52
+ }
53
+ });
54
+ exports.REACTIONS = void 0;
55
+ _Object$defineProperty(exports, "RemoteMedia", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _remoteMedia.RemoteMedia;
59
+ }
60
+ });
12
61
  _Object$defineProperty(exports, "TriggerProxy", {
13
62
  enumerable: true,
14
63
  get: function get() {
15
64
  return _triggerProxy.default;
16
65
  }
17
66
  });
67
+ _Object$defineProperty(exports, "createCameraTrack", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _mediaHelpers.createCameraTrack;
71
+ }
72
+ });
73
+ _Object$defineProperty(exports, "createDisplayTrack", {
74
+ enumerable: true,
75
+ get: function get() {
76
+ return _mediaHelpers.createDisplayTrack;
77
+ }
78
+ });
79
+ _Object$defineProperty(exports, "createMicrophoneTrack", {
80
+ enumerable: true,
81
+ get: function get() {
82
+ return _mediaHelpers.createMicrophoneTrack;
83
+ }
84
+ });
18
85
  exports.default = void 0;
86
+ _Object$defineProperty(exports, "getDevices", {
87
+ enumerable: true,
88
+ get: function get() {
89
+ return _mediaHelpers.getDevices;
90
+ }
91
+ });
19
92
  var _webexCore = require("@webex/webex-core");
20
93
  var _meetings = _interopRequireDefault(require("./meetings"));
21
94
  var _config = _interopRequireDefault(require("./config"));
95
+ var _mediaHelpers = require("@webex/media-helpers");
22
96
  var _CONSTANTS = _interopRequireWildcard(require("./constants"));
23
97
  exports.CONSTANTS = _CONSTANTS;
98
+ var _REACTIONS = _interopRequireWildcard(require("./reactions/reactions"));
99
+ exports.REACTIONS = _REACTIONS;
100
+ var _remoteMedia = require("./multistream/remoteMedia");
24
101
  var _triggerProxy = _interopRequireDefault(require("./common/events/trigger-proxy"));
25
102
  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); }
26
103
  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; }
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;AAA8B;AAAA;AAU9B;AAAsE;AAAA;AAdtE;;AAMA,IAAAA,yBAAc,EAAC,UAAU,EAAEC,iBAAQ,EAAE;EACnCC,MAAM,EAANA;AACF,CAAC,CAAC;AAAC,eAEYD,iBAAQ;AAAA"}
1
+ {"version":3,"names":["registerPlugin","Meetings","config"],"sources":["index.ts"],"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 {\n getDevices,\n LocalTrack,\n LocalDisplayTrack,\n LocalTrackEvents,\n type TrackMuteEvent,\n type ServerMuteReason,\n LocalMicrophoneTrackEvents,\n LocalCameraTrackEvents,\n LocalMicrophoneTrack,\n LocalCameraTrack,\n createMicrophoneTrack,\n createCameraTrack,\n createDisplayTrack,\n} from '@webex/media-helpers';\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;AAMA;AAc8B;AAAA;AAAA;AAAA;AAO9B;AAEA;AAAsE;AAAA;AAjCtE;;AAMA,IAAAA,yBAAc,EAAC,UAAU,EAAEC,iBAAQ,EAAE;EACnCC,MAAM,EAANA;AACF,CAAC,CAAC;AAAC,eAkBYD,iBAAQ;AAAA"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _ampersandCollection = _interopRequireDefault(require("ampersand-collection"));
10
+ var _constants = require("../constants");
11
+ var _siLanguage = _interopRequireDefault(require("./siLanguage"));
12
+ /*!
13
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
14
+ */
15
+
16
+ var SILanguageCollection = _ampersandCollection.default.extend({
17
+ model: _siLanguage.default,
18
+ namespace: _constants.MEETINGS,
19
+ mainIndex: 'languageName'
20
+ });
21
+ var _default = SILanguageCollection;
22
+ exports.default = _default;
23
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SILanguageCollection","AmpCollection","extend","model","SILanguage","namespace","MEETINGS","mainIndex"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport AmpCollection from 'ampersand-collection';\n\nimport {MEETINGS} from '../constants';\n\nimport SILanguage from './siLanguage';\n\nconst SILanguageCollection = AmpCollection.extend({\n model: SILanguage,\n\n namespace: MEETINGS,\n\n mainIndex: 'languageName',\n});\n\nexport default SILanguageCollection;\n"],"mappings":";;;;;;;;AAIA;AAEA;AAEA;AARA;AACA;AACA;;AAQA,IAAMA,oBAAoB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAChDC,KAAK,EAAEC,mBAAU;EAEjBC,SAAS,EAAEC,mBAAQ;EAEnBC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,eAEYP,oBAAoB;AAAA"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
+ var _webexCore = require("@webex/webex-core");
11
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
12
+ var _constants = require("../constants");
13
+ var _collection = _interopRequireDefault(require("./collection"));
14
+ /*!
15
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
16
+ */
17
+
18
+ /**
19
+ * @class SimultaneousInterpretation
20
+ */
21
+ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
22
+ namespace: _constants.MEETINGS,
23
+ collections: {
24
+ siLanguages: _collection.default
25
+ },
26
+ props: {
27
+ locusUrl: 'string',
28
+ // appears current meeting's locus url
29
+ originalLanguage: 'string',
30
+ // appears current meeting's original language
31
+ sourceLanguage: 'string',
32
+ // appears self interpreter's source language
33
+ targetLanguage: 'string',
34
+ // appears self interpreter's target language
35
+ receiveLanguage: 'string',
36
+ // appears self's receive language
37
+ order: 'number',
38
+ // appears the order of self as interpreter
39
+ isActive: 'boolean',
40
+ // appears self is interpreter and is active
41
+ selfParticipantId: 'string',
42
+ // appears the self participant id
43
+ canManageInterpreters: 'boolean',
44
+ // appears the ability to manage interpreters
45
+ supportLanguages: 'array',
46
+ // appears the support languages
47
+ siEnabled: 'boolean' // appears the meeting enabled SI
48
+ },
49
+
50
+ derived: {
51
+ shouldQuerySupportLanguages: {
52
+ cache: false,
53
+ deps: ['canManageInterpreters', 'siEnabled'],
54
+ /**
55
+ * Returns should query support languages or not
56
+ * @returns {boolean}
57
+ */
58
+ fn: function fn() {
59
+ return !!(this.canManageInterpreters && this.siEnabled);
60
+ }
61
+ }
62
+ },
63
+ /**
64
+ * initialize for interpretation
65
+ * @returns {void}
66
+ */
67
+ initialize: function initialize() {
68
+ var _this = this;
69
+ this.listenTo(this, 'change:shouldQuerySupportLanguages', function () {
70
+ if (_this.canManageInterpreters && !_this.supportLanguages) {
71
+ _this.querySupportLanguages();
72
+ }
73
+ });
74
+ },
75
+ /**
76
+ * Calls this to clean up listeners
77
+ * @returns {void}
78
+ */
79
+ cleanUp: function cleanUp() {
80
+ this.stopListening();
81
+ },
82
+ /**
83
+ * Update the current locus url of the meeting
84
+ * @param {string} locusUrl // locus url
85
+ * @returns {void}
86
+ */
87
+ locusUrlUpdate: function locusUrlUpdate(locusUrl) {
88
+ this.set('locusUrl', locusUrl);
89
+ },
90
+ /**
91
+ * Update whether self has capability to manage interpreters (only host can manage it)
92
+ * @param {boolean} canManageInterpreters
93
+ * @returns {void}
94
+ */
95
+ updateCanManageInterpreters: function updateCanManageInterpreters(canManageInterpreters) {
96
+ this.set('canManageInterpreters', canManageInterpreters);
97
+ },
98
+ /**
99
+ * Update the interpretation languages channels which user can choose to subscribe
100
+ * @param {Object} interpretation
101
+ * @returns {void}
102
+ */
103
+ updateInterpretation: function updateInterpretation(interpretation) {
104
+ this.set('siEnabled', !!interpretation);
105
+ this.siLanguages.set((interpretation === null || interpretation === void 0 ? void 0 : interpretation.siLanguages) || []);
106
+ },
107
+ /**
108
+ * Update self's interpretation information (self is interpreter)
109
+ * @param {Object} interpretation
110
+ * @param {String} selfParticipantId
111
+ * @returns {void}
112
+ */
113
+ updateSelfInterpretation: function updateSelfInterpretation(_ref) {
114
+ var interpretation = _ref.interpretation,
115
+ selfParticipantId = _ref.selfParticipantId;
116
+ var _ref2 = interpretation || {},
117
+ originalLanguage = _ref2.originalLanguage,
118
+ sourceLanguage = _ref2.sourceLanguage,
119
+ order = _ref2.order,
120
+ isActive = _ref2.isActive,
121
+ targetLanguage = _ref2.targetLanguage,
122
+ receiveLanguage = _ref2.receiveLanguage;
123
+ this.set({
124
+ originalLanguage: originalLanguage,
125
+ sourceLanguage: sourceLanguage,
126
+ order: order,
127
+ isActive: isActive,
128
+ targetLanguage: targetLanguage,
129
+ receiveLanguage: receiveLanguage
130
+ });
131
+ this.set('selfParticipantId', selfParticipantId);
132
+ },
133
+ /**
134
+ * query interpretation languages
135
+ * @returns {Promise}
136
+ */
137
+ querySupportLanguages: function querySupportLanguages() {
138
+ var _this2 = this;
139
+ return this.request({
140
+ method: _constants.HTTP_VERBS.GET,
141
+ uri: "".concat(this.locusUrl, "/languages/interpretation")
142
+ }).then(function (result) {
143
+ var _result$body;
144
+ _this2.set('supportLanguages', (_result$body = result.body) === null || _result$body === void 0 ? void 0 : _result$body.siLanguages);
145
+ _this2.trigger(_constants.INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);
146
+ }).catch(function (error) {
147
+ _loggerProxy.default.logger.error('Meeting:interpretation#querySupportLanguages failed', error);
148
+ throw error;
149
+ });
150
+ },
151
+ /**
152
+ * get interpreters of the meeting
153
+ * @returns {Promise}
154
+ */
155
+ getInterpreters: function getInterpreters() {
156
+ return this.request({
157
+ method: _constants.HTTP_VERBS.GET,
158
+ uri: "".concat(this.locusUrl, "/interpretation/interpreters")
159
+ }).catch(function (error) {
160
+ _loggerProxy.default.logger.error('Meeting:interpretation#getInterpreters failed', error);
161
+ throw error;
162
+ });
163
+ },
164
+ /**
165
+ * update interpreters of the meeting
166
+ * @param {Array} interpreters
167
+ * @returns {Promise}
168
+ */
169
+ updateInterpreters: function updateInterpreters(interpreters) {
170
+ return this.request({
171
+ method: _constants.HTTP_VERBS.PATCH,
172
+ uri: "".concat(this.locusUrl, "/controls"),
173
+ body: {
174
+ interpretation: {
175
+ interpreters: interpreters
176
+ }
177
+ }
178
+ }).catch(function (error) {
179
+ _loggerProxy.default.logger.error('Meeting:interpretation#updateInterpreters failed', error);
180
+ throw error;
181
+ });
182
+ },
183
+ /**
184
+ * Change direction of interpretation for an interpreter participant
185
+ * @returns {Promise}
186
+ */
187
+ changeDirection: function changeDirection() {
188
+ if (!this.sourceLanguage || !this.targetLanguage) {
189
+ return _promise.default.reject(new Error('Missing sourceLanguage or targetLanguage'));
190
+ }
191
+ if (!this.selfParticipantId) {
192
+ return _promise.default.reject(new Error('Missing self participant id'));
193
+ }
194
+ return this.request({
195
+ method: _constants.HTTP_VERBS.PATCH,
196
+ uri: "".concat(this.locusUrl, "/participant/").concat(this.selfParticipantId, "/controls"),
197
+ body: {
198
+ interpretation: {
199
+ sourceLanguage: this.targetLanguage,
200
+ targetLanguage: this.sourceLanguage,
201
+ isActive: this.isActive,
202
+ order: this.order
203
+ }
204
+ }
205
+ }).catch(function (error) {
206
+ _loggerProxy.default.logger.error('Meeting:interpretation#changeDirection failed', error);
207
+ throw error;
208
+ });
209
+ },
210
+ version: "3.0.0-beta.161"
211
+ });
212
+ var _default = SimultaneousInterpretation;
213
+ exports.default = _default;
214
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SimultaneousInterpretation","WebexPlugin","extend","namespace","MEETINGS","collections","siLanguages","SILanguageCollection","props","locusUrl","originalLanguage","sourceLanguage","targetLanguage","receiveLanguage","order","isActive","selfParticipantId","canManageInterpreters","supportLanguages","siEnabled","derived","shouldQuerySupportLanguages","cache","deps","fn","initialize","listenTo","querySupportLanguages","cleanUp","stopListening","locusUrlUpdate","set","updateCanManageInterpreters","updateInterpretation","interpretation","updateSelfInterpretation","request","method","HTTP_VERBS","GET","uri","then","result","body","trigger","INTERPRETATION","EVENTS","SUPPORT_LANGUAGES_UPDATE","catch","error","LoggerProxy","logger","getInterpreters","updateInterpreters","interpreters","PATCH","changeDirection","reject","Error"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, INTERPRETATION, MEETINGS} from '../constants';\n\nimport SILanguageCollection from './collection';\n\n/**\n * @class SimultaneousInterpretation\n */\nconst SimultaneousInterpretation = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n siLanguages: SILanguageCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current meeting's locus url\n originalLanguage: 'string', // appears current meeting's original language\n sourceLanguage: 'string', // appears self interpreter's source language\n targetLanguage: 'string', // appears self interpreter's target language\n receiveLanguage: 'string', // appears self's receive language\n order: 'number', // appears the order of self as interpreter\n isActive: 'boolean', // appears self is interpreter and is active\n selfParticipantId: 'string', // appears the self participant id\n canManageInterpreters: 'boolean', // appears the ability to manage interpreters\n supportLanguages: 'array', // appears the support languages\n siEnabled: 'boolean', // appears the meeting enabled SI\n },\n derived: {\n shouldQuerySupportLanguages: {\n cache: false,\n deps: ['canManageInterpreters', 'siEnabled'],\n /**\n * Returns should query support languages or not\n * @returns {boolean}\n */\n fn() {\n return !!(this.canManageInterpreters && this.siEnabled);\n },\n },\n },\n /**\n * initialize for interpretation\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:shouldQuerySupportLanguages', () => {\n if (this.canManageInterpreters && !this.supportLanguages) {\n this.querySupportLanguages();\n }\n });\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n /**\n * Update whether self has capability to manage interpreters (only host can manage it)\n * @param {boolean} canManageInterpreters\n * @returns {void}\n */\n updateCanManageInterpreters(canManageInterpreters) {\n this.set('canManageInterpreters', canManageInterpreters);\n },\n /**\n * Update the interpretation languages channels which user can choose to subscribe\n * @param {Object} interpretation\n * @returns {void}\n */\n updateInterpretation(interpretation) {\n this.set('siEnabled', !!interpretation);\n this.siLanguages.set(interpretation?.siLanguages || []);\n },\n /**\n * Update self's interpretation information (self is interpreter)\n * @param {Object} interpretation\n * @param {String} selfParticipantId\n * @returns {void}\n */\n updateSelfInterpretation({interpretation, selfParticipantId}) {\n const {originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage} =\n interpretation || {};\n this.set({originalLanguage, sourceLanguage, order, isActive, targetLanguage, receiveLanguage});\n this.set('selfParticipantId', selfParticipantId);\n },\n /**\n * query interpretation languages\n * @returns {Promise}\n */\n querySupportLanguages() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.locusUrl}/languages/interpretation`,\n })\n .then((result) => {\n this.set('supportLanguages', result.body?.siLanguages);\n this.trigger(INTERPRETATION.EVENTS.SUPPORT_LANGUAGES_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#querySupportLanguages failed', error);\n throw error;\n });\n },\n /**\n * get interpreters of the meeting\n * @returns {Promise}\n */\n getInterpreters() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.locusUrl}/interpretation/interpreters`,\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#getInterpreters failed', error);\n throw error;\n });\n },\n /**\n * update interpreters of the meeting\n * @param {Array} interpreters\n * @returns {Promise}\n */\n updateInterpreters(interpreters) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n interpretation: {\n interpreters,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#updateInterpreters failed', error);\n throw error;\n });\n },\n /**\n * Change direction of interpretation for an interpreter participant\n * @returns {Promise}\n */\n changeDirection() {\n if (!this.sourceLanguage || !this.targetLanguage) {\n return Promise.reject(new Error('Missing sourceLanguage or targetLanguage'));\n }\n\n if (!this.selfParticipantId) {\n return Promise.reject(new Error('Missing self participant id'));\n }\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/participant/${this.selfParticipantId}/controls`,\n body: {\n interpretation: {\n sourceLanguage: this.targetLanguage,\n targetLanguage: this.sourceLanguage,\n isActive: this.isActive,\n order: this.order,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:interpretation#changeDirection failed', error);\n throw error;\n });\n },\n});\n\nexport default SimultaneousInterpretation;\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
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 _webexCore = require("@webex/webex-core");
9
+ var _constants = require("../constants");
10
+ /*!
11
+ * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
12
+ */
13
+
14
+ var SILanguage = _webexCore.WebexPlugin.extend({
15
+ idAttribute: 'languageName',
16
+ namespace: _constants.MEETINGS,
17
+ props: {
18
+ languageCode: 'number',
19
+ languageName: 'string'
20
+ },
21
+ version: "3.0.0-beta.161"
22
+ });
23
+ var _default = SILanguage;
24
+ exports.default = _default;
25
+ //# sourceMappingURL=siLanguage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SILanguage","WebexPlugin","extend","idAttribute","namespace","MEETINGS","props","languageCode","languageName"],"sources":["siLanguage.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {MEETINGS} from '../constants';\n\nconst SILanguage = WebexPlugin.extend({\n idAttribute: 'languageName',\n\n namespace: MEETINGS,\n props: {\n languageCode: 'number',\n languageName: 'string',\n },\n});\n\nexport default SILanguage;\n"],"mappings":";;;;;;;AAIA;AACA;AALA;AACA;AACA;;AAKA,IAAMA,UAAU,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACpCC,WAAW,EAAE,cAAc;EAE3BC,SAAS,EAAEC,mBAAQ;EACnBC,KAAK,EAAE;IACLC,YAAY,EAAE,QAAQ;IACtBC,YAAY,EAAE;EAChB,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYR,UAAU;AAAA"}
@@ -13,6 +13,7 @@ _Object$defineProperty(exports, "__esModule", {
13
13
  exports.default = void 0;
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
15
15
  var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
16
+ var _constants = require("../constants");
16
17
  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; }
17
18
  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; }
18
19
  var ControlsUtils = {};
@@ -56,6 +57,45 @@ ControlsUtils.parse = function (controls) {
56
57
  if (controls && controls.entryExitTone) {
57
58
  parsedControls.entryExitTone = controls.entryExitTone.enabled ? controls.entryExitTone.mode : null;
58
59
  }
60
+ if (controls && controls.video) {
61
+ parsedControls.videoEnabled = controls.video.enabled;
62
+ }
63
+ if (controls !== null && controls !== void 0 && controls.muteOnEntry) {
64
+ parsedControls.muteOnEntry = {
65
+ enabled: controls.muteOnEntry.enabled
66
+ };
67
+ }
68
+ if (controls !== null && controls !== void 0 && controls.shareControl) {
69
+ parsedControls.shareControl = {
70
+ control: controls.shareControl.control
71
+ };
72
+ }
73
+ if (controls !== null && controls !== void 0 && controls.disallowUnmute) {
74
+ parsedControls.disallowUnmute = {
75
+ enabled: controls.disallowUnmute.enabled
76
+ };
77
+ }
78
+ if (controls !== null && controls !== void 0 && controls.reactions) {
79
+ parsedControls.reactions = {
80
+ enabled: controls.reactions.enabled,
81
+ showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions
82
+ };
83
+ }
84
+ if (controls !== null && controls !== void 0 && controls.viewTheParticipantList) {
85
+ parsedControls.viewTheParticipantList = {
86
+ enabled: controls.viewTheParticipantList.enabled
87
+ };
88
+ }
89
+ if (controls !== null && controls !== void 0 && controls.raiseHand) {
90
+ parsedControls.raiseHand = {
91
+ enabled: controls.raiseHand.enabled
92
+ };
93
+ }
94
+ if (controls !== null && controls !== void 0 && controls.video) {
95
+ parsedControls.video = {
96
+ enabled: controls.video.enabled
97
+ };
98
+ }
59
99
  return parsedControls;
60
100
  };
61
101
 
@@ -66,13 +106,21 @@ ControlsUtils.parse = function (controls) {
66
106
  * @returns {Object} combination of state plus the changes
67
107
  */
68
108
  ControlsUtils.getControls = function (oldControls, newControls) {
69
- 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;
109
+ var _current$muteOnEntry, _previous$muteOnEntry, _current$shareControl, _previous$shareContro, _current$disallowUnmu, _previous$disallowUnm, _current$reactions, _previous$reactions, _current$reactions2, _previous$reactions2, _current$viewTheParti, _previous$viewThePart, _current$raiseHand, _previous$raiseHand, _current$video, _previous$video, _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;
70
110
  var previous = ControlsUtils.parse(oldControls);
71
111
  var current = ControlsUtils.parse(newControls);
72
112
  return {
73
113
  previous: previous,
74
114
  current: current,
75
115
  updates: {
116
+ hasMuteOnEntryChanged: (current === null || current === void 0 ? void 0 : (_current$muteOnEntry = current.muteOnEntry) === null || _current$muteOnEntry === void 0 ? void 0 : _current$muteOnEntry.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$muteOnEntry = previous.muteOnEntry) === null || _previous$muteOnEntry === void 0 ? void 0 : _previous$muteOnEntry.enabled),
117
+ hasShareControlChanged: (current === null || current === void 0 ? void 0 : (_current$shareControl = current.shareControl) === null || _current$shareControl === void 0 ? void 0 : _current$shareControl.control) !== (previous === null || previous === void 0 ? void 0 : (_previous$shareContro = previous.shareControl) === null || _previous$shareContro === void 0 ? void 0 : _previous$shareContro.control),
118
+ hasDisallowUnmuteChanged: (current === null || current === void 0 ? void 0 : (_current$disallowUnmu = current.disallowUnmute) === null || _current$disallowUnmu === void 0 ? void 0 : _current$disallowUnmu.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$disallowUnm = previous.disallowUnmute) === null || _previous$disallowUnm === void 0 ? void 0 : _previous$disallowUnm.enabled),
119
+ hasReactionsChanged: (current === null || current === void 0 ? void 0 : (_current$reactions = current.reactions) === null || _current$reactions === void 0 ? void 0 : _current$reactions.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions = previous.reactions) === null || _previous$reactions === void 0 ? void 0 : _previous$reactions.enabled),
120
+ hasReactionDisplayNamesChanged: (current === null || current === void 0 ? void 0 : (_current$reactions2 = current.reactions) === null || _current$reactions2 === void 0 ? void 0 : _current$reactions2.showDisplayNameWithReactions) !== (previous === null || previous === void 0 ? void 0 : (_previous$reactions2 = previous.reactions) === null || _previous$reactions2 === void 0 ? void 0 : _previous$reactions2.showDisplayNameWithReactions),
121
+ hasViewTheParticipantListChanged: (current === null || current === void 0 ? void 0 : (_current$viewTheParti = current.viewTheParticipantList) === null || _current$viewTheParti === void 0 ? void 0 : _current$viewTheParti.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$viewThePart = previous.viewTheParticipantList) === null || _previous$viewThePart === void 0 ? void 0 : _previous$viewThePart.enabled),
122
+ hasRaiseHandChanged: (current === null || current === void 0 ? void 0 : (_current$raiseHand = current.raiseHand) === null || _current$raiseHand === void 0 ? void 0 : _current$raiseHand.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$raiseHand = previous.raiseHand) === null || _previous$raiseHand === void 0 ? void 0 : _previous$raiseHand.enabled),
123
+ hasVideoChanged: (current === null || current === void 0 ? void 0 : (_current$video = current.video) === null || _current$video === void 0 ? void 0 : _current$video.enabled) !== (previous === null || previous === void 0 ? void 0 : (_previous$video = previous.video) === null || _previous$video === void 0 ? void 0 : _previous$video.enabled),
76
124
  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)),
77
125
  // see comments directly below
78
126
 
@@ -87,7 +135,10 @@ ControlsUtils.getControls = function (oldControls, newControls) {
87
135
  (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)),
88
136
  // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
89
137
 
90
- 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))
138
+ 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)),
139
+ hasBreakoutChanged: !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.breakout, current === null || current === void 0 ? void 0 : current.breakout),
140
+ hasInterpretationChanged: !(0, _isEqual2.default)(previous === null || previous === void 0 ? void 0 : previous.interpretation, current === null || current === void 0 ? void 0 : current.interpretation),
141
+ 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)
91
142
  }
92
143
  };
93
144
  };
@@ -103,6 +154,45 @@ ControlsUtils.getId = function (controls) {
103
154
  }
104
155
  return null;
105
156
  };
157
+
158
+ /**
159
+ * check whether to replace the meeting's members or not.
160
+ * For case joined breakout session, need replace meeting's members
161
+ * @param {LocusControls} oldControls
162
+ * @param {LocusControls} controls
163
+ * @returns {Boolean}
164
+ */
165
+ ControlsUtils.isNeedReplaceMembers = function (oldControls, controls) {
166
+ // no breakout case
167
+ if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {
168
+ return false;
169
+ }
170
+ return oldControls.breakout.groupId !== controls.breakout.groupId || oldControls.breakout.sessionId !== controls.breakout.sessionId;
171
+ };
172
+
173
+ /**
174
+ * determine the switch status between breakout session and main session.
175
+ * @param {LocusControls} oldControls
176
+ * @param {LocusControls} controls
177
+ * @returns {Object}
178
+ */
179
+ ControlsUtils.getSessionSwitchStatus = function (oldControls, controls) {
180
+ var status = {
181
+ isReturnToMain: false,
182
+ isJoinToBreakout: false
183
+ };
184
+ // no breakout case
185
+ if (!(oldControls !== null && oldControls !== void 0 && oldControls.breakout) || !(controls !== null && controls !== void 0 && controls.breakout)) {
186
+ return status;
187
+ }
188
+ status.isReturnToMain = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
189
+ status.isJoinToBreakout = oldControls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN && controls.breakout.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;
190
+ return status;
191
+ };
192
+ ControlsUtils.isMainSessionDTO = function (locus) {
193
+ var _locus$controls, _locus$controls$break;
194
+ return (locus === null || locus === void 0 ? void 0 : (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionType) !== _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT;
195
+ };
106
196
  var _default = ControlsUtils;
107
197
  exports.default = _default;
108
198
  //# 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.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 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 };\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\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","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","raiseHand","getControls","oldControls","newControls","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasInterpretationChanged","interpretation","hasVideoEnabledChanged","undefined","isNeedReplaceMembers","groupId","sessionId","getSessionSwitchStatus","status","isReturnToMain","isJoinToBreakout","sessionType","BREAKOUTS","SESSION_TYPES","BREAKOUT","MAIN","isMainSessionDTO","locus"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS} from '../constants';\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 if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {enabled: controls.viewTheParticipantList.enabled};\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: 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 hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\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 hasInterpretationChanged: !isEqual(previous?.interpretation, current?.interpretation),\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\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldControls: any, controls: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return status;\n }\n\n status.isReturnToMain =\n oldControls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n status.isJoinToBreakout =\n oldControls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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"}