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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +8 -58
  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 -6
  54. package/dist/config.js +10 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +100 -234
  57. package/dist/constants.js +444 -433
  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 +5 -121
  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 +520 -705
  111. package/dist/meeting/index.js +3083 -5041
  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 -304
  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 -118
  122. package/dist/meeting/util.js +435 -676
  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 +20 -114
  142. package/dist/meetings/index.js +133 -540
  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 +95 -61
  193. package/dist/reachability/index.js +392 -304
  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 +232 -285
  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 +238 -100
  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 -50
  240. package/dist/statsAnalyzer/index.js +511 -436
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +90 -130
  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 -39
  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 -6
  253. package/src/constants.ts +100 -265
  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 -450
  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 +2581 -4306
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -214
  273. package/src/meeting/util.ts +423 -687
  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 +136 -531
  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 +347 -246
  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 -96
  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 +645 -479
  310. package/src/statsAnalyzer/mqaUtil.ts +126 -128
  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 -1437
  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 +2313 -8384
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +43 -523
  330. package/test/unit/spec/meeting/utils.js +24 -834
  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 +232 -1445
  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 -532
  347. package/test/unit/spec/reconnection-manager/index.js +24 -163
  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 +77 -187
  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 +165 -644
  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/interceptors/index.d.ts +0 -2
  395. package/dist/interceptors/index.js +0 -15
  396. package/dist/interceptors/index.js.map +0 -1
  397. package/dist/interceptors/locusRetry.d.ts +0 -27
  398. package/dist/interceptors/locusRetry.js +0 -94
  399. package/dist/interceptors/locusRetry.js.map +0 -1
  400. package/dist/interpretation/collection.d.ts +0 -5
  401. package/dist/interpretation/collection.js +0 -22
  402. package/dist/interpretation/collection.js.map +0 -1
  403. package/dist/interpretation/index.d.ts +0 -5
  404. package/dist/interpretation/index.js +0 -365
  405. package/dist/interpretation/index.js.map +0 -1
  406. package/dist/interpretation/siLanguage.d.ts +0 -5
  407. package/dist/interpretation/siLanguage.js +0 -24
  408. package/dist/interpretation/siLanguage.js.map +0 -1
  409. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  410. package/dist/meeting/locusMediaRequest.js +0 -291
  411. package/dist/meeting/locusMediaRequest.js.map +0 -1
  412. package/dist/meeting/request.type.d.ts +0 -11
  413. package/dist/meeting/request.type.js +0 -7
  414. package/dist/meeting/request.type.js.map +0 -1
  415. package/dist/meeting/voicea-meeting.d.ts +0 -20
  416. package/dist/meeting/voicea-meeting.js +0 -201
  417. package/dist/meeting/voicea-meeting.js.map +0 -1
  418. package/dist/meetings/meetings.types.d.ts +0 -4
  419. package/dist/meetings/meetings.types.js +0 -7
  420. package/dist/meetings/meetings.types.js.map +0 -1
  421. package/dist/member/types.d.ts +0 -32
  422. package/dist/member/types.js +0 -23
  423. package/dist/member/types.js.map +0 -1
  424. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  425. package/dist/multistream/mediaRequestManager.js +0 -344
  426. package/dist/multistream/mediaRequestManager.js.map +0 -1
  427. package/dist/multistream/receiveSlot.d.ts +0 -68
  428. package/dist/multistream/receiveSlot.js +0 -200
  429. package/dist/multistream/receiveSlot.js.map +0 -1
  430. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  431. package/dist/multistream/receiveSlotManager.js +0 -174
  432. package/dist/multistream/receiveSlotManager.js.map +0 -1
  433. package/dist/multistream/remoteMedia.d.ts +0 -72
  434. package/dist/multistream/remoteMedia.js +0 -268
  435. package/dist/multistream/remoteMedia.js.map +0 -1
  436. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  437. package/dist/multistream/remoteMediaGroup.js +0 -267
  438. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  439. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  440. package/dist/multistream/remoteMediaManager.js +0 -1211
  441. package/dist/multistream/remoteMediaManager.js.map +0 -1
  442. package/dist/multistream/sendSlotManager.d.ts +0 -61
  443. package/dist/multistream/sendSlotManager.js +0 -236
  444. package/dist/multistream/sendSlotManager.js.map +0 -1
  445. package/dist/reachability/clusterReachability.d.ts +0 -109
  446. package/dist/reachability/clusterReachability.js +0 -357
  447. package/dist/reachability/clusterReachability.js.map +0 -1
  448. package/dist/reachability/util.d.ts +0 -8
  449. package/dist/reachability/util.js +0 -29
  450. package/dist/reachability/util.js.map +0 -1
  451. package/dist/reactions/constants.d.ts +0 -3
  452. package/dist/reactions/constants.js +0 -12
  453. package/dist/reactions/constants.js.map +0 -1
  454. package/dist/rtcMetrics/constants.d.ts +0 -4
  455. package/dist/rtcMetrics/constants.js +0 -11
  456. package/dist/rtcMetrics/constants.js.map +0 -1
  457. package/dist/rtcMetrics/index.d.ts +0 -54
  458. package/dist/rtcMetrics/index.js +0 -140
  459. package/dist/rtcMetrics/index.js.map +0 -1
  460. package/dist/webinar/collection.d.ts +0 -16
  461. package/dist/webinar/collection.js +0 -43
  462. package/dist/webinar/collection.js.map +0 -1
  463. package/dist/webinar/index.d.ts +0 -5
  464. package/dist/webinar/index.js +0 -68
  465. package/dist/webinar/index.js.map +0 -1
  466. package/src/annotation/annotation.types.ts +0 -50
  467. package/src/annotation/constants.ts +0 -36
  468. package/src/annotation/index.ts +0 -328
  469. package/src/breakouts/README.md +0 -220
  470. package/src/breakouts/breakout.ts +0 -188
  471. package/src/breakouts/collection.ts +0 -19
  472. package/src/breakouts/edit-lock-error.ts +0 -25
  473. package/src/breakouts/events.ts +0 -56
  474. package/src/breakouts/index.ts +0 -925
  475. package/src/breakouts/request.ts +0 -55
  476. package/src/breakouts/utils.ts +0 -57
  477. package/src/common/errors/no-meeting-info.ts +0 -24
  478. package/src/controls-options-manager/types.ts +0 -59
  479. package/src/index.ts +0 -44
  480. package/src/interceptors/index.ts +0 -3
  481. package/src/interceptors/locusRetry.ts +0 -67
  482. package/src/interpretation/README.md +0 -60
  483. package/src/interpretation/collection.ts +0 -19
  484. package/src/interpretation/index.ts +0 -332
  485. package/src/interpretation/siLanguage.ts +0 -18
  486. package/src/meeting/locusMediaRequest.ts +0 -313
  487. package/src/meeting/request.type.ts +0 -13
  488. package/src/meeting/voicea-meeting.ts +0 -161
  489. package/src/meetings/meetings.types.ts +0 -12
  490. package/src/member/types.ts +0 -38
  491. package/src/multistream/mediaRequestManager.ts +0 -440
  492. package/src/multistream/receiveSlot.ts +0 -184
  493. package/src/multistream/receiveSlotManager.ts +0 -166
  494. package/src/multistream/remoteMedia.ts +0 -254
  495. package/src/multistream/remoteMediaGroup.ts +0 -284
  496. package/src/multistream/remoteMediaManager.ts +0 -1145
  497. package/src/multistream/sendSlotManager.ts +0 -170
  498. package/src/reachability/clusterReachability.ts +0 -320
  499. package/src/reachability/util.ts +0 -24
  500. package/src/reactions/constants.ts +0 -4
  501. package/src/rtcMetrics/constants.ts +0 -3
  502. package/src/rtcMetrics/index.ts +0 -124
  503. package/src/webinar/collection.ts +0 -31
  504. package/src/webinar/index.ts +0 -62
  505. package/test/integration/spec/converged-space-meetings.js +0 -233
  506. package/test/unit/spec/annotation/index.ts +0 -418
  507. package/test/unit/spec/breakouts/breakout.ts +0 -237
  508. package/test/unit/spec/breakouts/collection.ts +0 -15
  509. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  510. package/test/unit/spec/breakouts/events.ts +0 -89
  511. package/test/unit/spec/breakouts/index.ts +0 -1790
  512. package/test/unit/spec/breakouts/request.ts +0 -104
  513. package/test/unit/spec/breakouts/utils.js +0 -72
  514. package/test/unit/spec/interceptors/locusRetry.ts +0 -131
  515. package/test/unit/spec/interpretation/collection.ts +0 -15
  516. package/test/unit/spec/interpretation/index.ts +0 -589
  517. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  518. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  519. package/test/unit/spec/media/index.ts +0 -290
  520. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  521. package/test/unit/spec/meeting-info/index.js +0 -300
  522. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  523. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  524. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  525. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  526. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  527. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  528. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  529. package/test/unit/spec/reachability/clusterReachability.ts +0 -279
  530. package/test/unit/spec/reachability/request.js +0 -68
  531. package/test/unit/spec/reachability/util.ts +0 -40
  532. package/test/unit/spec/roap/request.ts +0 -255
  533. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  534. package/test/unit/spec/webinar/collection.ts +0 -13
  535. package/test/unit/spec/webinar/index.ts +0 -60
  536. package/test/utils/constants.js +0 -9
  537. package/test/utils/integrationTestUtils.js +0 -46
  538. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  539. /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
-
975
- // videoEnabled is handled differently than other controls,
976
- // to fit with audio mute status logic
977
- if (hasVideoEnabledChanged) {
978
- const {videoEnabled} = current;
979
756
 
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,105 +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, main session is not active for the attendee and remove main session locus 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
- const isMainSessionDTO =
1618
- this.mainSessionLocusCache && ControlsUtils.isMainSessionDTO(this.mainSessionLocusCache);
1619
-
1620
- if (isMainSessionDTO) {
1621
- const isActive =
1622
- [LOCUS.STATE.ACTIVE, LOCUS.STATE.INITIALIZING, LOCUS.STATE.TERMINATING].includes(
1623
- this.fullState?.state
1624
- ) && !this.mainSessionLocusCache?.self?.removed;
1625
-
1626
- if (!isActive) {
1627
- this.clearMainSessionLocusCache();
1628
- }
1629
- }
1630
-
1631
- return newLocus;
1632
- }
1633
-
1634
- /**
1635
- * merge participants by participant id
1636
- * @param {Array} participants
1637
- * @param {Array} sourceParticipants
1638
- * @returns {Array} merged participants
1639
- * @memberof LocusInfo
1640
- */
1641
- // eslint-disable-next-line class-methods-use-this
1642
- mergeParticipants(participants, sourceParticipants) {
1643
- if (!sourceParticipants || !sourceParticipants.length) return participants;
1644
- if (!participants || !participants.length) {
1645
- return sourceParticipants;
1646
- }
1647
- sourceParticipants.forEach((participant) => {
1648
- const existIndex = participants.findIndex((p) => p.id === participant.id);
1649
- if (existIndex > -1) {
1650
- participants.splice(existIndex, 1, participant);
1651
- } else {
1652
- participants.push(participant);
1653
- }
1654
- });
1655
-
1656
- return participants;
1657
- }
1658
-
1659
- /**
1660
- * need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
1661
- * @param {Object} mainLocus
1662
- * @returns {undefined}
1663
- * @memberof LocusInfo
1664
- */
1665
- updateMainSessionLocusCache(mainLocus: any) {
1666
- if (!mainLocus) {
1667
- return;
1668
- }
1669
- const locusClone = cloneDeep(mainLocus);
1670
- if (this.mainSessionLocusCache) {
1671
- // shallow merge and do special merge for participants
1672
- assignWith(this.mainSessionLocusCache, locusClone, (objValue, srcValue, key) => {
1673
- if (key === 'participants') {
1674
- return this.mergeParticipants(objValue, srcValue);
1675
- }
1676
-
1677
- return srcValue || objValue;
1678
- });
1679
- } else {
1680
- this.mainSessionLocusCache = locusClone;
1681
- }
1682
- }
1683
-
1684
- /**
1685
- * clear main session cache
1686
- * @returns {undefined}
1687
- * @memberof LocusInfo
1688
- */
1689
- clearMainSessionLocusCache() {
1690
- this.mainSessionLocusCache = null;
1691
- }
1692
1303
  }