@webex/plugin-meetings 2.60.0-next.9 → 2.60.1

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 (516) hide show
  1. package/README.md +8 -46
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -5
  54. package/dist/config.js +11 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +97 -217
  57. package/dist/constants.js +441 -416
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +4 -116
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +494 -591
  111. package/dist/meeting/index.js +2969 -4707
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -297
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -102
  122. package/dist/meeting/util.js +435 -605
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +21 -103
  142. package/dist/meetings/index.js +124 -486
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +7 -62
  193. package/dist/reachability/index.js +72 -265
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +231 -282
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +235 -101
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -28
  240. package/dist/statsAnalyzer/index.js +509 -374
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +83 -116
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -35
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -5
  253. package/src/constants.ts +97 -244
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -449
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2482 -3929
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -207
  273. package/src/meeting/util.ts +423 -590
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +126 -486
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +45 -238
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -98
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +642 -413
  310. package/src/statsAnalyzer/mqaUtil.ts +114 -111
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1389
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +3136 -8547
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +42 -512
  330. package/test/unit/spec/meeting/utils.js +24 -741
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +211 -1278
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -598
  347. package/test/unit/spec/reconnection-manager/index.js +24 -162
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +76 -200
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +174 -188
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interpretation/collection.d.ts +0 -5
  395. package/dist/interpretation/collection.js +0 -22
  396. package/dist/interpretation/collection.js.map +0 -1
  397. package/dist/interpretation/index.d.ts +0 -5
  398. package/dist/interpretation/index.js +0 -365
  399. package/dist/interpretation/index.js.map +0 -1
  400. package/dist/interpretation/siLanguage.d.ts +0 -5
  401. package/dist/interpretation/siLanguage.js +0 -24
  402. package/dist/interpretation/siLanguage.js.map +0 -1
  403. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  404. package/dist/meeting/locusMediaRequest.js +0 -291
  405. package/dist/meeting/locusMediaRequest.js.map +0 -1
  406. package/dist/meeting/request.type.d.ts +0 -11
  407. package/dist/meeting/request.type.js +0 -7
  408. package/dist/meeting/request.type.js.map +0 -1
  409. package/dist/meetings/meetings.types.d.ts +0 -4
  410. package/dist/meetings/meetings.types.js +0 -7
  411. package/dist/meetings/meetings.types.js.map +0 -1
  412. package/dist/member/types.d.ts +0 -32
  413. package/dist/member/types.js +0 -23
  414. package/dist/member/types.js.map +0 -1
  415. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  416. package/dist/multistream/mediaRequestManager.js +0 -344
  417. package/dist/multistream/mediaRequestManager.js.map +0 -1
  418. package/dist/multistream/receiveSlot.d.ts +0 -68
  419. package/dist/multistream/receiveSlot.js +0 -200
  420. package/dist/multistream/receiveSlot.js.map +0 -1
  421. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  422. package/dist/multistream/receiveSlotManager.js +0 -174
  423. package/dist/multistream/receiveSlotManager.js.map +0 -1
  424. package/dist/multistream/remoteMedia.d.ts +0 -72
  425. package/dist/multistream/remoteMedia.js +0 -268
  426. package/dist/multistream/remoteMedia.js.map +0 -1
  427. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  428. package/dist/multistream/remoteMediaGroup.js +0 -267
  429. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  430. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  431. package/dist/multistream/remoteMediaManager.js +0 -1211
  432. package/dist/multistream/remoteMediaManager.js.map +0 -1
  433. package/dist/multistream/sendSlotManager.d.ts +0 -61
  434. package/dist/multistream/sendSlotManager.js +0 -236
  435. package/dist/multistream/sendSlotManager.js.map +0 -1
  436. package/dist/reactions/constants.d.ts +0 -3
  437. package/dist/reactions/constants.js +0 -12
  438. package/dist/reactions/constants.js.map +0 -1
  439. package/dist/rtcMetrics/constants.d.ts +0 -4
  440. package/dist/rtcMetrics/constants.js +0 -11
  441. package/dist/rtcMetrics/constants.js.map +0 -1
  442. package/dist/rtcMetrics/index.d.ts +0 -54
  443. package/dist/rtcMetrics/index.js +0 -140
  444. package/dist/rtcMetrics/index.js.map +0 -1
  445. package/dist/webinar/collection.d.ts +0 -16
  446. package/dist/webinar/collection.js +0 -43
  447. package/dist/webinar/collection.js.map +0 -1
  448. package/dist/webinar/index.d.ts +0 -5
  449. package/dist/webinar/index.js +0 -68
  450. package/dist/webinar/index.js.map +0 -1
  451. package/src/annotation/annotation.types.ts +0 -50
  452. package/src/annotation/constants.ts +0 -36
  453. package/src/annotation/index.ts +0 -328
  454. package/src/breakouts/README.md +0 -220
  455. package/src/breakouts/breakout.ts +0 -188
  456. package/src/breakouts/collection.ts +0 -19
  457. package/src/breakouts/edit-lock-error.ts +0 -25
  458. package/src/breakouts/events.ts +0 -56
  459. package/src/breakouts/index.ts +0 -925
  460. package/src/breakouts/request.ts +0 -55
  461. package/src/breakouts/utils.ts +0 -57
  462. package/src/common/errors/no-meeting-info.ts +0 -24
  463. package/src/controls-options-manager/types.ts +0 -59
  464. package/src/index.ts +0 -40
  465. package/src/interpretation/README.md +0 -60
  466. package/src/interpretation/collection.ts +0 -19
  467. package/src/interpretation/index.ts +0 -332
  468. package/src/interpretation/siLanguage.ts +0 -18
  469. package/src/meeting/locusMediaRequest.ts +0 -313
  470. package/src/meeting/request.type.ts +0 -13
  471. package/src/meetings/meetings.types.ts +0 -12
  472. package/src/member/types.ts +0 -38
  473. package/src/multistream/mediaRequestManager.ts +0 -440
  474. package/src/multistream/receiveSlot.ts +0 -184
  475. package/src/multistream/receiveSlotManager.ts +0 -166
  476. package/src/multistream/remoteMedia.ts +0 -254
  477. package/src/multistream/remoteMediaGroup.ts +0 -284
  478. package/src/multistream/remoteMediaManager.ts +0 -1145
  479. package/src/multistream/sendSlotManager.ts +0 -170
  480. package/src/reactions/constants.ts +0 -4
  481. package/src/rtcMetrics/constants.ts +0 -3
  482. package/src/rtcMetrics/index.ts +0 -124
  483. package/src/webinar/collection.ts +0 -31
  484. package/src/webinar/index.ts +0 -62
  485. package/test/integration/spec/converged-space-meetings.js +0 -233
  486. package/test/unit/spec/annotation/index.ts +0 -418
  487. package/test/unit/spec/breakouts/breakout.ts +0 -237
  488. package/test/unit/spec/breakouts/collection.ts +0 -15
  489. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  490. package/test/unit/spec/breakouts/events.ts +0 -89
  491. package/test/unit/spec/breakouts/index.ts +0 -1790
  492. package/test/unit/spec/breakouts/request.ts +0 -104
  493. package/test/unit/spec/breakouts/utils.js +0 -72
  494. package/test/unit/spec/interpretation/collection.ts +0 -15
  495. package/test/unit/spec/interpretation/index.ts +0 -589
  496. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  497. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  498. package/test/unit/spec/media/index.ts +0 -290
  499. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  500. package/test/unit/spec/meeting-info/index.js +0 -300
  501. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  502. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  503. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  504. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  505. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  506. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  507. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  508. package/test/unit/spec/reachability/request.js +0 -68
  509. package/test/unit/spec/roap/request.ts +0 -232
  510. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  511. package/test/unit/spec/webinar/collection.ts +0 -13
  512. package/test/unit/spec/webinar/index.ts +0 -60
  513. package/test/utils/constants.js +0 -9
  514. package/test/utils/integrationTestUtils.js +0 -46
  515. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  516. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import {isEqual, assignWith, cloneDeep, isEmpty} from 'lodash';
1
+ import {isEqual} from 'lodash';
2
2
 
3
3
  import LoggerProxy from '../common/logs/logger-proxy';
4
4
  import EventsScope from '../common/events/events-scope';
@@ -17,6 +17,8 @@ import {
17
17
  CALL_REMOVED_REASON,
18
18
  RECORDING_STATE,
19
19
  } from '../constants';
20
+ import Metrics from '../metrics';
21
+ import {eventType} from '../metrics/config';
20
22
  import InfoUtils from './infoUtils';
21
23
  import FullState from './fullState';
22
24
  import SelfUtils from './selfUtils';
@@ -25,8 +27,6 @@ import ControlsUtils from './controlsUtils';
25
27
  import EmbeddedAppsUtils from './embeddedAppsUtils';
26
28
  import MediaSharesUtils from './mediaSharesUtils';
27
29
  import LocusDeltaParser from './parser';
28
- import Metrics from '../metrics';
29
- import BEHAVIORAL_METRICS from '../metrics/constants';
30
30
 
31
31
  /**
32
32
  * @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
@@ -59,19 +59,11 @@ export default class LocusInfo extends EventsScope {
59
59
  fullState: any;
60
60
  host: any;
61
61
  info: any;
62
- roles: any;
63
62
  mediaShares: any;
64
63
  replace: any;
65
64
  url: any;
66
65
  services: any;
67
- mainSessionLocusCache: any;
68
- /**
69
- * Constructor
70
- * @param {function} updateMeeting callback to update the meeting object from an object
71
- * @param {object} webex
72
- * @param {string} meetingId
73
- * @returns {undefined}
74
- */
66
+
75
67
  constructor(updateMeeting, webex, meetingId) {
76
68
  super();
77
69
  this.parsedLocus = {
@@ -85,82 +77,6 @@ export default class LocusInfo extends EventsScope {
85
77
  this.locusParser = new LocusDeltaParser();
86
78
  }
87
79
 
88
- /**
89
- * Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.
90
- *
91
- * @param {Meeting} meeting
92
- * @returns {undefined}
93
- */
94
- private doLocusSync(meeting: any) {
95
- let isDelta;
96
- let url;
97
-
98
- if (this.locusParser.workingCopy.syncUrl) {
99
- url = this.locusParser.workingCopy.syncUrl;
100
- isDelta = true;
101
- } else {
102
- url = meeting.locusUrl;
103
- isDelta = false;
104
- }
105
-
106
- LoggerProxy.logger.info(
107
- `Locus-info:index#doLocusSync --> doing Locus sync (getting ${
108
- isDelta ? 'delta' : 'full'
109
- } DTO)`
110
- );
111
-
112
- // return value ignored on purpose
113
- meeting.meetingRequest
114
- .getLocusDTO({url})
115
- .catch((e) => {
116
- if (isDelta) {
117
- LoggerProxy.logger.info(
118
- 'Locus-info:index#doLocusSync --> delta sync failed, falling back to full sync'
119
- );
120
-
121
- Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LOCUS_DELTA_SYNC_FAILED, {
122
- correlationId: meeting.correlationId,
123
- url,
124
- reason: e.message,
125
- errorName: e.name,
126
- stack: e.stack,
127
- code: e.code,
128
- });
129
-
130
- isDelta = false;
131
-
132
- return meeting.meetingRequest.getLocusDTO({url: meeting.locusUrl}).catch((err) => {
133
- LoggerProxy.logger.info(
134
- 'Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting'
135
- );
136
- this.webex.meetings.destroy(meeting, MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
137
- throw err;
138
- });
139
- }
140
- LoggerProxy.logger.info(
141
- 'Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting'
142
- );
143
- this.webex.meetings.destroy(meeting, MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
144
- throw e;
145
- })
146
- .then((res) => {
147
- if (isDelta) {
148
- if (!isEmpty(res.body)) {
149
- meeting.locusInfo.handleLocusDelta(res.body, meeting);
150
- } else {
151
- LoggerProxy.logger.info(
152
- 'Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO'
153
- );
154
- }
155
- } else {
156
- meeting.locusInfo.onFullLocus(res.body);
157
- }
158
- // Notify parser to resume processing delta events.
159
- // Any deltas in the queue that have now been superseded by this sync will simply be ignored
160
- this.locusParser.resume();
161
- });
162
- }
163
-
164
80
  /**
165
81
  * Apply locus delta data to meeting
166
82
  * @param {string} action Locus delta action
@@ -169,19 +85,28 @@ export default class LocusInfo extends EventsScope {
169
85
  * @returns {undefined}
170
86
  */
171
87
  applyLocusDeltaData(action: string, locus: any, meeting: any) {
172
- const {DESYNC, USE_CURRENT, USE_INCOMING, WAIT, LOCUS_URL_CHANGED} = LocusDeltaParser.loci;
88
+ const {DESYNC, USE_CURRENT, USE_INCOMING} = LocusDeltaParser.loci;
173
89
 
174
90
  switch (action) {
175
91
  case USE_INCOMING:
176
92
  meeting.locusInfo.onDeltaLocus(locus);
177
93
  break;
178
94
  case USE_CURRENT:
179
- case WAIT:
180
- // do nothing
95
+ meeting.locusDesync = false;
96
+ meeting.needToGetFullLocus = false;
181
97
  break;
182
98
  case DESYNC:
183
- case LOCUS_URL_CHANGED:
184
- this.doLocusSync(meeting);
99
+ meeting.meetingRequest
100
+ .getFullLocus({
101
+ desync: true,
102
+ locusUrl: meeting.locusUrl,
103
+ })
104
+ .then((res) => {
105
+ meeting.locusInfo.onFullLocus(res.body);
106
+ // Notify parser to resume processing delta events
107
+ // now that we have full locus from DESYNC.
108
+ this.locusParser.resume();
109
+ });
185
110
  break;
186
111
  default:
187
112
  LoggerProxy.logger.info(
@@ -247,13 +172,12 @@ export default class LocusInfo extends EventsScope {
247
172
  */
248
173
  this.deltaParticipants = [];
249
174
 
250
- this.updateLocusCache(locus);
251
175
  // above section only updates the locusInfo object
252
176
  // The below section makes sure it updates the locusInfo as well as updates the meeting object
253
177
  this.updateParticipants(locus.participants);
254
178
  // For 1:1 space meeting the conversation Url does not exist in locus.conversation
255
179
  this.updateConversationUrl(locus.conversationUrl, locus.info);
256
- this.updateControls(locus.controls, locus.self);
180
+ this.updateControls(locus.controls);
257
181
  this.updateLocusUrl(locus.url);
258
182
  this.updateFullState(locus.fullState);
259
183
  this.updateMeetingInfo(locus.info);
@@ -271,7 +195,6 @@ export default class LocusInfo extends EventsScope {
271
195
  * @memberof LocusInfo
272
196
  */
273
197
  initialSetup(locus: object) {
274
- this.updateLocusCache(locus);
275
198
  this.onFullLocus(locus);
276
199
 
277
200
  // Change it to true after it receives it first locus object
@@ -287,7 +210,7 @@ export default class LocusInfo extends EventsScope {
287
210
  parse(meeting: any, data: any) {
288
211
  // eslint-disable-next-line @typescript-eslint/no-shadow
289
212
  const {eventType} = data;
290
- const locus = this.getTheLocusToUpdate(data.locus);
213
+
291
214
  LoggerProxy.logger.info(`Locus-info:index#parse --> received locus data: ${eventType}`);
292
215
 
293
216
  switch (eventType) {
@@ -305,16 +228,16 @@ export default class LocusInfo extends EventsScope {
305
228
  case LOCUSEVENT.PARTICIPANT_DECLINED:
306
229
  case LOCUSEVENT.FLOOR_GRANTED:
307
230
  case LOCUSEVENT.FLOOR_RELEASED:
308
- this.onFullLocus(locus, eventType);
231
+ this.onFullLocus(data.locus, eventType);
309
232
  break;
310
233
  case LOCUSEVENT.DIFFERENCE:
311
- this.handleLocusDelta(locus, meeting);
234
+ this.handleLocusDelta(data.locus, meeting);
312
235
  break;
313
236
 
314
237
  default:
315
238
  // Why will there be a event with no eventType ????
316
239
  // we may not need this, we can get full locus
317
- this.handleLocusDelta(locus, meeting);
240
+ this.handleLocusDelta(data.locus, meeting);
318
241
  }
319
242
  }
320
243
 
@@ -336,27 +259,18 @@ export default class LocusInfo extends EventsScope {
336
259
  * @returns {object} null
337
260
  * @memberof LocusInfo
338
261
  */
262
+ // eslint-disable-next-line @typescript-eslint/no-shadow
339
263
  onFullLocus(locus: any, eventType?: string) {
340
264
  if (!locus) {
341
265
  LoggerProxy.logger.error(
342
266
  'Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.'
343
267
  );
344
268
  }
345
-
346
- if (!this.locusParser.isNewFullLocus(locus)) {
347
- LoggerProxy.logger.info(
348
- `Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=${eventType}`
349
- );
350
-
351
- return;
352
- }
353
-
354
269
  this.updateParticipantDeltas(locus.participants);
355
270
  this.scheduledMeeting = locus.meeting || null;
356
271
  this.participants = locus.participants;
357
- const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
358
272
  this.updateLocusInfo(locus);
359
- this.updateParticipants(locus.participants, isReplaceMembers);
273
+ this.updateParticipants(locus.participants);
360
274
  this.isMeetingActive();
361
275
  this.handleOneOnOneEvent(eventType);
362
276
  this.updateEmbeddedApps(locus.embeddedApps);
@@ -415,9 +329,8 @@ export default class LocusInfo extends EventsScope {
415
329
  * @memberof LocusInfo
416
330
  */
417
331
  onDeltaLocus(locus: any) {
418
- const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
419
332
  this.updateLocusInfo(locus);
420
- this.updateParticipants(locus.participants, isReplaceMembers);
333
+ this.updateParticipants(locus.participants);
421
334
  this.isMeetingActive();
422
335
  }
423
336
 
@@ -426,15 +339,8 @@ export default class LocusInfo extends EventsScope {
426
339
  * @returns {undefined}
427
340
  * @memberof LocusInfo
428
341
  */
429
- updateLocusInfo(locus) {
430
- if (locus.self?.reason === 'MOVED' && locus.self?.state === 'LEFT') {
431
- // When moved to a breakout session locus sends a message for the previous locus
432
- // indicating that we have been moved. It isn't helpful to continue parsing this
433
- // as it gets interpreted as if we have left the call
434
- return;
435
- }
436
-
437
- this.updateControls(locus.controls, locus.self);
342
+ updateLocusInfo(locus: any) {
343
+ this.updateControls(locus.controls);
438
344
  this.updateConversationUrl(locus.conversationUrl, locus.info);
439
345
  this.updateCreated(locus.created);
440
346
  this.updateFullState(locus.fullState);
@@ -505,15 +411,10 @@ export default class LocusInfo extends EventsScope {
505
411
  LoggerProxy.logger.warn(
506
412
  'Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.'
507
413
  );
508
-
509
- // @ts-ignore
510
- this.webex.internal.newMetrics.submitClientEvent({
511
- name: 'client.call.remote-ended',
512
- options: {
513
- meetingId: this.meetingId,
514
- },
414
+ Metrics.postEvent({
415
+ event: eventType.REMOTE_ENDED,
416
+ meetingId: this.meetingId,
515
417
  });
516
-
517
418
  this.emitScoped(
518
419
  {
519
420
  file: 'locus-info',
@@ -532,12 +433,9 @@ export default class LocusInfo extends EventsScope {
532
433
  this.parsedLocus.self.state === MEETING_STATE.STATES.NOTIFIED ||
533
434
  this.parsedLocus.self.state === MEETING_STATE.STATES.JOINED)
534
435
  ) {
535
- // @ts-ignore
536
- this.webex.internal.newMetrics.submitClientEvent({
537
- name: 'client.call.remote-ended',
538
- options: {
539
- meetingId: this.meetingId,
540
- },
436
+ Metrics.postEvent({
437
+ event: eventType.REMOTE_ENDED,
438
+ meetingId: this.meetingId,
541
439
  });
542
440
  this.emitScoped(
543
441
  {
@@ -559,14 +457,10 @@ export default class LocusInfo extends EventsScope {
559
457
  partner.state === MEETING_STATE.STATES.NOTIFIED ||
560
458
  partner.state === MEETING_STATE.STATES.IDLE) // Happens when user just joins and adds no Media
561
459
  ) {
562
- // @ts-ignore
563
- this.webex.internal.newMetrics.submitClientEvent({
564
- name: 'client.call.remote-ended',
565
- options: {
566
- meetingId: this.meetingId,
567
- },
460
+ Metrics.postEvent({
461
+ event: eventType.REMOTE_ENDED,
462
+ meetingId: this.meetingId,
568
463
  });
569
-
570
464
  this.emitScoped(
571
465
  {
572
466
  file: 'locus-info',
@@ -589,13 +483,9 @@ export default class LocusInfo extends EventsScope {
589
483
  LoggerProxy.logger.warn(
590
484
  'Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating'
591
485
  );
592
-
593
- // @ts-ignore
594
- this.webex.internal.newMetrics.submitClientEvent({
595
- name: 'client.call.remote-ended',
596
- options: {
597
- meetingId: this.meetingId,
598
- },
486
+ Metrics.postEvent({
487
+ event: eventType.REMOTE_ENDED,
488
+ meetingId: this.meetingId,
599
489
  });
600
490
  this.emitScoped(
601
491
  {
@@ -610,13 +500,9 @@ export default class LocusInfo extends EventsScope {
610
500
  );
611
501
  } else if (this.fullState && this.fullState.removed) {
612
502
  // user has been dropped from a meeting
613
-
614
- // @ts-ignore
615
- this.webex.internal.newMetrics.submitClientEvent({
616
- name: 'client.call.remote-ended',
617
- options: {
618
- meetingId: this.meetingId,
619
- },
503
+ Metrics.postEvent({
504
+ event: eventType.REMOTE_ENDED,
505
+ meetingId: this.meetingId,
620
506
  });
621
507
  this.emitScoped(
622
508
  {
@@ -753,13 +639,13 @@ export default class LocusInfo extends EventsScope {
753
639
  }
754
640
 
755
641
  /**
756
- * update meeting's members
642
+ *
757
643
  * @param {Object} participants new participants object
758
- * @param {Boolean} isReplace is replace the whole members
644
+ * @param {boolen} deltaParticpantFlag delta event
759
645
  * @returns {Array} updatedParticipants
760
646
  * @memberof LocusInfo
761
647
  */
762
- updateParticipants(participants: object, isReplace?: boolean) {
648
+ updateParticipants(participants: object) {
763
649
  this.emitScoped(
764
650
  {
765
651
  file: 'locus-info',
@@ -772,18 +658,16 @@ export default class LocusInfo extends EventsScope {
772
658
  selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
773
659
  selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
774
660
  hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,
775
- isReplace,
776
661
  }
777
662
  );
778
663
  }
779
664
 
780
665
  /**
781
666
  * @param {Object} controls
782
- * @param {Object} self
783
667
  * @returns {undefined}
784
668
  * @memberof LocusInfo
785
669
  */
786
- updateControls(controls: object, self: object) {
670
+ updateControls(controls: object) {
787
671
  if (controls && !isEqual(this.controls, controls)) {
788
672
  this.parsedLocus.controls = ControlsUtils.parse(controls);
789
673
  const {
@@ -793,77 +677,10 @@ export default class LocusInfo extends EventsScope {
793
677
  hasMeetingContainerChanged,
794
678
  hasTranscribeChanged,
795
679
  hasEntryExitToneChanged,
796
- hasBreakoutChanged,
797
- hasVideoEnabledChanged,
798
- hasMuteOnEntryChanged,
799
- hasShareControlChanged,
800
- hasDisallowUnmuteChanged,
801
- hasReactionsChanged,
802
- hasReactionDisplayNamesChanged,
803
- hasViewTheParticipantListChanged,
804
- hasRaiseHandChanged,
805
- hasVideoChanged,
806
- hasInterpretationChanged,
807
680
  },
808
681
  current,
809
682
  } = ControlsUtils.getControls(this.controls, controls);
810
683
 
811
- if (hasMuteOnEntryChanged) {
812
- this.emitScoped(
813
- {file: 'locus-info', function: 'updateControls'},
814
- LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED,
815
- {state: current.muteOnEntry}
816
- );
817
- }
818
-
819
- if (hasShareControlChanged) {
820
- this.emitScoped(
821
- {file: 'locus-info', function: 'updateControls'},
822
- LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED,
823
- {state: current.shareControl}
824
- );
825
- }
826
-
827
- if (hasDisallowUnmuteChanged) {
828
- this.emitScoped(
829
- {file: 'locus-info', function: 'updateControls'},
830
- LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED,
831
- {state: current.disallowUnmute}
832
- );
833
- }
834
-
835
- if (hasReactionsChanged || hasReactionDisplayNamesChanged) {
836
- this.emitScoped(
837
- {file: 'locus-info', function: 'updateControls'},
838
- LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED,
839
- {state: current.reactions}
840
- );
841
- }
842
-
843
- if (hasViewTheParticipantListChanged) {
844
- this.emitScoped(
845
- {file: 'locus-info', function: 'updateControls'},
846
- LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED,
847
- {state: current.viewTheParticipantList}
848
- );
849
- }
850
-
851
- if (hasRaiseHandChanged) {
852
- this.emitScoped(
853
- {file: 'locus-info', function: 'updateControls'},
854
- LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED,
855
- {state: current.raiseHand}
856
- );
857
- }
858
-
859
- if (hasVideoChanged) {
860
- this.emitScoped(
861
- {file: 'locus-info', function: 'updateControls'},
862
- LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED,
863
- {state: current.video}
864
- );
865
- }
866
-
867
684
  if (hasRecordingChanged || hasRecordingPausedChanged) {
868
685
  let state = null;
869
686
 
@@ -923,43 +740,9 @@ export default class LocusInfo extends EventsScope {
923
740
  );
924
741
  }
925
742
 
926
- if (hasBreakoutChanged) {
927
- const {breakout} = current;
928
- breakout.breakoutMoveId = SelfUtils.getReplacedBreakoutMoveId(
929
- self,
930
- this.webex.internal.device.url
931
- );
932
- this.emitScoped(
933
- {
934
- file: 'locus-info',
935
- function: 'updateControls',
936
- },
937
- LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED,
938
- {
939
- breakout,
940
- }
941
- );
942
- }
943
-
944
- if (hasInterpretationChanged) {
945
- const {interpretation} = current;
946
- this.emitScoped(
947
- {
948
- file: 'locus-info',
949
- function: 'updateControls',
950
- },
951
- LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED,
952
- {
953
- interpretation,
954
- }
955
- );
956
- }
957
-
958
743
  if (hasEntryExitToneChanged) {
959
744
  const {entryExitTone} = current;
960
745
 
961
- this.updateMeeting({entryExitTone});
962
-
963
746
  this.emitScoped(
964
747
  {
965
748
  file: 'locus-info',
@@ -970,26 +753,8 @@ export default class LocusInfo extends EventsScope {
970
753
  entryExitTone,
971
754
  }
972
755
  );
973
- }
974
756
 
975
- // videoEnabled is handled differently than other controls,
976
- // to fit with audio mute status logic
977
- if (hasVideoEnabledChanged) {
978
- const {videoEnabled} = current;
979
-
980
- this.updateMeeting({unmuteVideoAllowed: videoEnabled});
981
-
982
- this.emitScoped(
983
- {
984
- file: 'locus-info',
985
- function: 'updateControls',
986
- },
987
- LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
988
- {
989
- // muted: not part of locus.controls
990
- unmuteAllowed: videoEnabled,
991
- }
992
- );
757
+ this.updateMeeting({entryExitTone});
993
758
  }
994
759
 
995
760
  this.controls = controls;
@@ -1130,14 +895,20 @@ export default class LocusInfo extends EventsScope {
1130
895
  * @memberof LocusInfo
1131
896
  */
1132
897
  updateMeetingInfo(info: object, self?: object) {
1133
- const roles = self ? SelfUtils.getRoles(self) : this.parsedLocus.self?.roles || [];
1134
- if (
1135
- (info && !isEqual(this.info, info)) ||
1136
- (roles.length && !isEqual(this.roles, roles) && info)
1137
- ) {
898
+ if (info && !isEqual(this.info, info)) {
899
+ const roles = self ? SelfUtils.getRoles(self) : this.parsedLocus.self?.roles || [];
1138
900
  const isJoined = SelfUtils.isJoined(self || this.parsedLocus.self);
1139
901
  const parsedInfo = InfoUtils.getInfos(this.parsedLocus.info, info, roles, isJoined);
1140
902
 
903
+ this.emitScoped(
904
+ {
905
+ file: 'locus-info',
906
+ function: 'updateMeetingInfo',
907
+ },
908
+ LOCUSINFO.EVENTS.MEETING_INFO_UPDATED,
909
+ {info: parsedInfo.current, self}
910
+ );
911
+
1141
912
  if (parsedInfo.updates.isLocked) {
1142
913
  this.emitScoped(
1143
914
  {
@@ -1163,16 +934,7 @@ export default class LocusInfo extends EventsScope {
1163
934
  this.parsedLocus.info = parsedInfo.current;
1164
935
  // Parses the info and adds necessary values
1165
936
  this.updateMeeting(parsedInfo.current);
1166
-
1167
- this.emitScoped(
1168
- {
1169
- file: 'locus-info',
1170
- function: 'updateMeetingInfo',
1171
- },
1172
- LOCUSINFO.EVENTS.MEETING_INFO_UPDATED
1173
- );
1174
937
  }
1175
- this.roles = roles;
1176
938
  }
1177
939
 
1178
940
  /**
@@ -1213,8 +975,6 @@ export default class LocusInfo extends EventsScope {
1213
975
  const parsedMediaShares = MediaSharesUtils.getMediaShares(this.mediaShares, mediaShares);
1214
976
 
1215
977
  this.updateMeeting(parsedMediaShares.current);
1216
- this.parsedLocus.mediaShares = parsedMediaShares.current;
1217
- this.mediaShares = mediaShares;
1218
978
  this.emitScoped(
1219
979
  {
1220
980
  file: 'locus-info',
@@ -1226,6 +986,8 @@ export default class LocusInfo extends EventsScope {
1226
986
  previous: parsedMediaShares.previous,
1227
987
  }
1228
988
  );
989
+ this.parsedLocus.mediaShares = parsedMediaShares.current;
990
+ this.mediaShares = mediaShares;
1229
991
  }
1230
992
  }
1231
993
 
@@ -1303,31 +1065,6 @@ export default class LocusInfo extends EventsScope {
1303
1065
  );
1304
1066
  }
1305
1067
 
1306
- if (parsedSelves.updates.breakoutsChanged) {
1307
- this.emitScoped(
1308
- {
1309
- file: 'locus-info',
1310
- function: 'updateSelf',
1311
- },
1312
- LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED,
1313
- {breakoutSessions: parsedSelves.current.breakoutSessions}
1314
- );
1315
- }
1316
-
1317
- if (parsedSelves.updates.interpretationChanged) {
1318
- this.emitScoped(
1319
- {
1320
- file: 'locus-info',
1321
- function: 'updateSelf',
1322
- },
1323
- LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED,
1324
- {
1325
- interpretation: parsedSelves.current.interpretation,
1326
- selfParticipantId: parsedSelves.current.selfId,
1327
- }
1328
- );
1329
- }
1330
-
1331
1068
  if (parsedSelves.updates.isMediaInactiveOrReleased) {
1332
1069
  this.emitScoped(
1333
1070
  {
@@ -1349,31 +1086,6 @@ export default class LocusInfo extends EventsScope {
1349
1086
  self
1350
1087
  );
1351
1088
  }
1352
-
1353
- if (parsedSelves.updates.isRolesChanged) {
1354
- this.emitScoped(
1355
- {
1356
- file: 'locus-info',
1357
- function: 'updateSelf',
1358
- },
1359
- LOCUSINFO.EVENTS.SELF_ROLES_CHANGED,
1360
- {oldRoles: parsedSelves.previous?.roles, newRoles: parsedSelves.current?.roles}
1361
- );
1362
- }
1363
-
1364
- if (parsedSelves.updates.isVideoMutedByOthersChanged) {
1365
- this.emitScoped(
1366
- {
1367
- file: 'locus-info',
1368
- function: 'updateSelf',
1369
- },
1370
- LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
1371
- {
1372
- muted: parsedSelves.current.remoteVideoMuted,
1373
- // unmuteAllowed: not part of .self
1374
- }
1375
- );
1376
- }
1377
1089
  if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
1378
1090
  this.emitScoped(
1379
1091
  {
@@ -1588,104 +1300,4 @@ export default class LocusInfo extends EventsScope {
1588
1300
  this.identities = identities;
1589
1301
  }
1590
1302
  }
1591
-
1592
- /**
1593
- * check the locus is main session's one or not, if is main session's, update main session cache
1594
- * @param {Object} locus
1595
- * @returns {undefined}
1596
- * @memberof LocusInfo
1597
- */
1598
- updateLocusCache(locus: any) {
1599
- const isMainSessionDTO = ControlsUtils.isMainSessionDTO(locus);
1600
- if (isMainSessionDTO) {
1601
- this.updateMainSessionLocusCache(locus);
1602
- }
1603
- }
1604
-
1605
- /**
1606
- * if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
1607
- * if join breakout from main session, need to query main locus url (if response with 403 means no privilege, need to clear the cache)
1608
- * @param {Object} newLocus
1609
- * @returns {Object}
1610
- * @memberof LocusInfo
1611
- */
1612
- getTheLocusToUpdate(newLocus: any) {
1613
- const switchStatus = ControlsUtils.getSessionSwitchStatus(this.controls, newLocus?.controls);
1614
- if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
1615
- return cloneDeep(this.mainSessionLocusCache);
1616
- }
1617
- if (switchStatus.isJoinToBreakout) {
1618
- this.emitScoped(
1619
- {
1620
- file: 'locus-info',
1621
- function: 'updateControls',
1622
- },
1623
- LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN,
1624
- {
1625
- mainLocusUrl: this.url,
1626
- }
1627
- );
1628
- }
1629
-
1630
- return newLocus;
1631
- }
1632
-
1633
- /**
1634
- * merge participants by participant id
1635
- * @param {Array} participants
1636
- * @param {Array} sourceParticipants
1637
- * @returns {Array} merged participants
1638
- * @memberof LocusInfo
1639
- */
1640
- // eslint-disable-next-line class-methods-use-this
1641
- mergeParticipants(participants, sourceParticipants) {
1642
- if (!sourceParticipants || !sourceParticipants.length) return participants;
1643
- if (!participants || !participants.length) {
1644
- return sourceParticipants;
1645
- }
1646
- sourceParticipants.forEach((participant) => {
1647
- const existIndex = participants.findIndex((p) => p.id === participant.id);
1648
- if (existIndex > -1) {
1649
- participants.splice(existIndex, 1, participant);
1650
- } else {
1651
- participants.push(participant);
1652
- }
1653
- });
1654
-
1655
- return participants;
1656
- }
1657
-
1658
- /**
1659
- * need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
1660
- * @param {Object} mainLocus
1661
- * @returns {undefined}
1662
- * @memberof LocusInfo
1663
- */
1664
- updateMainSessionLocusCache(mainLocus: any) {
1665
- if (!mainLocus) {
1666
- return;
1667
- }
1668
- const locusClone = cloneDeep(mainLocus);
1669
- if (this.mainSessionLocusCache) {
1670
- // shallow merge and do special merge for participants
1671
- assignWith(this.mainSessionLocusCache, locusClone, (objValue, srcValue, key) => {
1672
- if (key === 'participants') {
1673
- return this.mergeParticipants(objValue, srcValue);
1674
- }
1675
-
1676
- return srcValue || objValue;
1677
- });
1678
- } else {
1679
- this.mainSessionLocusCache = locusClone;
1680
- }
1681
- }
1682
-
1683
- /**
1684
- * clear main session cache
1685
- * @returns {undefined}
1686
- * @memberof LocusInfo
1687
- */
1688
- clearMainSessionLocusCache() {
1689
- this.mainSessionLocusCache = null;
1690
- }
1691
1303
  }