@webex/plugin-meetings 3.0.0-beta.24 → 3.0.0-beta.241

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 (360) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +841 -19
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +28 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/queue.js +24 -9
  25. package/dist/common/queue.js.map +1 -1
  26. package/dist/config.js +5 -10
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +190 -27
  29. package/dist/constants.js.map +1 -1
  30. package/dist/controls-options-manager/constants.js +14 -0
  31. package/dist/controls-options-manager/constants.js.map +1 -0
  32. package/dist/controls-options-manager/enums.js +27 -0
  33. package/dist/controls-options-manager/enums.js.map +1 -0
  34. package/dist/controls-options-manager/index.js +297 -0
  35. package/dist/controls-options-manager/index.js.map +1 -0
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +319 -0
  39. package/dist/controls-options-manager/util.js.map +1 -0
  40. package/dist/index.js +106 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +357 -62
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +43 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +219 -63
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +49 -106
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +29 -90
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +90 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +2593 -2558
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +292 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +228 -123
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +255 -195
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/util.js +601 -417
  75. package/dist/meeting/util.js.map +1 -1
  76. package/dist/meeting-info/index.js +48 -7
  77. package/dist/meeting-info/index.js.map +1 -1
  78. package/dist/meeting-info/meeting-info-v2.js +171 -51
  79. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  80. package/dist/meeting-info/util.js +1 -1
  81. package/dist/meeting-info/util.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +36 -36
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +370 -90
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +88 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +49 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +121 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -5
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +316 -233
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +4 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +49 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +52 -34
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +213 -62
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/reachability/index.js +81 -30
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.js +16 -7
  129. package/dist/reachability/request.js.map +1 -1
  130. package/dist/reconnection-manager/index.js +199 -154
  131. package/dist/reconnection-manager/index.js.map +1 -1
  132. package/dist/recording-controller/index.js +21 -2
  133. package/dist/recording-controller/index.js.map +1 -1
  134. package/dist/recording-controller/util.js +9 -8
  135. package/dist/recording-controller/util.js.map +1 -1
  136. package/dist/roap/index.js +23 -29
  137. package/dist/roap/index.js.map +1 -1
  138. package/dist/roap/request.js +112 -89
  139. package/dist/roap/request.js.map +1 -1
  140. package/dist/roap/turnDiscovery.js +96 -36
  141. package/dist/roap/turnDiscovery.js.map +1 -1
  142. package/dist/rtcMetrics/constants.js +12 -0
  143. package/dist/rtcMetrics/constants.js.map +1 -0
  144. package/dist/rtcMetrics/index.js +117 -0
  145. package/dist/rtcMetrics/index.js.map +1 -0
  146. package/dist/statsAnalyzer/index.js +51 -34
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  149. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  150. package/dist/types/annotation/annotation.types.d.ts +42 -0
  151. package/dist/types/annotation/constants.d.ts +31 -0
  152. package/dist/types/annotation/index.d.ts +117 -0
  153. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  154. package/dist/types/breakouts/events.d.ts +8 -0
  155. package/dist/types/breakouts/request.d.ts +22 -0
  156. package/dist/types/breakouts/utils.d.ts +15 -0
  157. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  158. package/dist/types/common/queue.d.ts +9 -7
  159. package/dist/types/config.d.ts +1 -6
  160. package/dist/types/constants.d.ts +154 -21
  161. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  162. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  163. package/dist/types/controls-options-manager/index.d.ts +136 -0
  164. package/dist/types/controls-options-manager/types.d.ts +43 -0
  165. package/dist/types/controls-options-manager/util.d.ts +1 -0
  166. package/dist/types/index.d.ts +6 -4
  167. package/dist/types/interpretation/collection.d.ts +5 -0
  168. package/dist/types/interpretation/index.d.ts +5 -0
  169. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  170. package/dist/types/locus-info/index.d.ts +57 -4
  171. package/dist/types/locus-info/parser.d.ts +65 -6
  172. package/dist/types/media/index.d.ts +2 -0
  173. package/dist/types/media/properties.d.ts +22 -36
  174. package/dist/types/meeting/in-meeting-actions.d.ts +90 -2
  175. package/dist/types/meeting/index.d.ts +297 -491
  176. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  177. package/dist/types/meeting/muteState.d.ts +98 -22
  178. package/dist/types/meeting/request.d.ts +72 -43
  179. package/dist/types/meeting/util.d.ts +101 -1
  180. package/dist/types/meeting-info/index.d.ts +6 -1
  181. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -1
  182. package/dist/types/meetings/collection.d.ts +8 -0
  183. package/dist/types/meetings/index.d.ts +76 -12
  184. package/dist/types/meetings/meetings.types.d.ts +4 -0
  185. package/dist/types/member/index.d.ts +13 -0
  186. package/dist/types/member/types.d.ts +32 -0
  187. package/dist/types/members/collection.d.ts +5 -0
  188. package/dist/types/members/index.d.ts +35 -2
  189. package/dist/types/members/request.d.ts +73 -9
  190. package/dist/types/members/types.d.ts +24 -0
  191. package/dist/types/members/util.d.ts +209 -1
  192. package/dist/types/metrics/constants.d.ts +3 -4
  193. package/dist/types/metrics/index.d.ts +4 -119
  194. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  195. package/dist/types/multistream/receiveSlot.d.ts +16 -12
  196. package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
  197. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  198. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  199. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  200. package/dist/types/reachability/index.d.ts +15 -3
  201. package/dist/types/reachability/request.d.ts +7 -3
  202. package/dist/types/reconnection-manager/index.d.ts +9 -0
  203. package/dist/types/recording-controller/index.d.ts +15 -1
  204. package/dist/types/recording-controller/util.d.ts +5 -4
  205. package/dist/types/roap/request.d.ts +15 -11
  206. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  207. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  208. package/dist/types/rtcMetrics/index.d.ts +47 -0
  209. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  210. package/package.json +23 -20
  211. package/src/annotation/annotation.types.ts +50 -0
  212. package/src/annotation/constants.ts +36 -0
  213. package/src/annotation/index.ts +328 -0
  214. package/src/breakouts/README.md +44 -14
  215. package/src/breakouts/breakout.ts +87 -9
  216. package/src/breakouts/edit-lock-error.ts +25 -0
  217. package/src/breakouts/events.ts +56 -0
  218. package/src/breakouts/index.ts +710 -10
  219. package/src/breakouts/request.ts +55 -0
  220. package/src/breakouts/utils.ts +57 -0
  221. package/src/common/errors/webex-errors.ts +27 -2
  222. package/src/common/logs/logger-proxy.ts +1 -1
  223. package/src/common/queue.ts +22 -8
  224. package/src/config.ts +4 -9
  225. package/src/constants.ts +175 -18
  226. package/src/controls-options-manager/constants.ts +5 -0
  227. package/src/controls-options-manager/enums.ts +18 -0
  228. package/src/controls-options-manager/index.ts +278 -0
  229. package/src/controls-options-manager/types.ts +59 -0
  230. package/src/controls-options-manager/util.ts +300 -0
  231. package/src/index.ts +39 -0
  232. package/src/interpretation/README.md +60 -0
  233. package/src/interpretation/collection.ts +19 -0
  234. package/src/interpretation/index.ts +332 -0
  235. package/src/interpretation/siLanguage.ts +18 -0
  236. package/src/locus-info/controlsUtils.ts +108 -0
  237. package/src/locus-info/index.ts +381 -59
  238. package/src/locus-info/infoUtils.ts +10 -2
  239. package/src/locus-info/mediaSharesUtils.ts +48 -0
  240. package/src/locus-info/parser.ts +224 -39
  241. package/src/locus-info/selfUtils.ts +81 -5
  242. package/src/media/index.ts +89 -109
  243. package/src/media/properties.ts +48 -87
  244. package/src/meeting/in-meeting-actions.ts +179 -3
  245. package/src/meeting/index.ts +2086 -2151
  246. package/src/meeting/locusMediaRequest.ts +313 -0
  247. package/src/meeting/muteState.ts +227 -130
  248. package/src/meeting/request.ts +171 -120
  249. package/src/meeting/util.ts +588 -395
  250. package/src/meeting-info/index.ts +54 -8
  251. package/src/meeting-info/meeting-info-v2.ts +148 -14
  252. package/src/meeting-info/util.ts +1 -1
  253. package/src/meeting-info/utilv2.ts +23 -23
  254. package/src/meetings/collection.ts +20 -0
  255. package/src/meetings/index.ts +407 -108
  256. package/src/meetings/meetings.types.ts +12 -0
  257. package/src/meetings/request.ts +2 -0
  258. package/src/meetings/util.ts +103 -4
  259. package/src/member/index.ts +49 -0
  260. package/src/member/types.ts +38 -0
  261. package/src/member/util.ts +127 -25
  262. package/src/members/collection.ts +8 -0
  263. package/src/members/index.ts +107 -6
  264. package/src/members/request.ts +97 -17
  265. package/src/members/types.ts +28 -0
  266. package/src/members/util.ts +319 -240
  267. package/src/metrics/constants.ts +3 -4
  268. package/src/metrics/index.ts +1 -490
  269. package/src/multistream/mediaRequestManager.ts +289 -79
  270. package/src/multistream/receiveSlot.ts +55 -18
  271. package/src/multistream/receiveSlotManager.ts +46 -24
  272. package/src/multistream/remoteMedia.ts +27 -2
  273. package/src/multistream/remoteMediaGroup.ts +59 -0
  274. package/src/multistream/remoteMediaManager.ts +150 -32
  275. package/src/reachability/index.ts +69 -17
  276. package/src/reachability/request.ts +16 -7
  277. package/src/reconnection-manager/index.ts +81 -54
  278. package/src/recording-controller/index.ts +20 -3
  279. package/src/recording-controller/util.ts +26 -9
  280. package/src/roap/index.ts +23 -30
  281. package/src/roap/request.ts +104 -95
  282. package/src/roap/turnDiscovery.ts +50 -25
  283. package/src/rtcMetrics/constants.ts +3 -0
  284. package/src/rtcMetrics/index.ts +100 -0
  285. package/src/statsAnalyzer/index.ts +73 -35
  286. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  287. package/test/integration/spec/converged-space-meetings.js +233 -0
  288. package/test/integration/spec/journey.js +336 -259
  289. package/test/integration/spec/space-meeting.js +76 -3
  290. package/test/unit/spec/annotation/index.ts +418 -0
  291. package/test/unit/spec/breakouts/breakout.ts +142 -24
  292. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  293. package/test/unit/spec/breakouts/events.ts +89 -0
  294. package/test/unit/spec/breakouts/index.ts +1545 -48
  295. package/test/unit/spec/breakouts/request.ts +104 -0
  296. package/test/unit/spec/breakouts/utils.js +72 -0
  297. package/test/unit/spec/common/queue.js +31 -2
  298. package/test/unit/spec/controls-options-manager/index.js +287 -0
  299. package/test/unit/spec/controls-options-manager/util.js +582 -0
  300. package/test/unit/spec/fixture/locus.js +1 -0
  301. package/test/unit/spec/interpretation/collection.ts +15 -0
  302. package/test/unit/spec/interpretation/index.ts +589 -0
  303. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  304. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  305. package/test/unit/spec/locus-info/index.js +1169 -36
  306. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  307. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  308. package/test/unit/spec/locus-info/parser.js +62 -22
  309. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  310. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  311. package/test/unit/spec/media/index.ts +138 -28
  312. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  313. package/test/unit/spec/meeting/index.js +3514 -1746
  314. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  315. package/test/unit/spec/meeting/muteState.js +370 -208
  316. package/test/unit/spec/meeting/request.js +440 -45
  317. package/test/unit/spec/meeting/utils.js +671 -54
  318. package/test/unit/spec/meeting-info/index.js +181 -0
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  320. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  321. package/test/unit/spec/meetings/collection.js +14 -0
  322. package/test/unit/spec/meetings/index.js +939 -150
  323. package/test/unit/spec/meetings/utils.js +206 -2
  324. package/test/unit/spec/member/index.js +58 -4
  325. package/test/unit/spec/member/util.js +479 -35
  326. package/test/unit/spec/members/index.js +319 -1
  327. package/test/unit/spec/members/request.js +206 -27
  328. package/test/unit/spec/members/utils.js +184 -0
  329. package/test/unit/spec/metrics/index.js +1 -50
  330. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  331. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  332. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  333. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  334. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  335. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  336. package/test/unit/spec/reachability/index.ts +185 -7
  337. package/test/unit/spec/reachability/request.js +68 -0
  338. package/test/unit/spec/reconnection-manager/index.js +80 -6
  339. package/test/unit/spec/recording-controller/index.js +294 -218
  340. package/test/unit/spec/recording-controller/util.js +223 -96
  341. package/test/unit/spec/roap/index.ts +31 -51
  342. package/test/unit/spec/roap/request.ts +202 -85
  343. package/test/unit/spec/roap/turnDiscovery.ts +45 -10
  344. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  345. package/test/unit/spec/stats-analyzer/index.js +29 -2
  346. package/test/utils/constants.js +9 -0
  347. package/test/utils/integrationTestUtils.js +46 -0
  348. package/test/utils/testUtils.js +0 -45
  349. package/test/utils/webex-config.js +4 -0
  350. package/test/utils/webex-test-users.js +6 -3
  351. package/dist/meeting/effectsState.js +0 -262
  352. package/dist/meeting/effectsState.js.map +0 -1
  353. package/dist/metrics/config.js +0 -299
  354. package/dist/metrics/config.js.map +0 -1
  355. package/dist/types/meeting/effectsState.d.ts +0 -42
  356. package/dist/types/metrics/config.d.ts +0 -178
  357. package/src/index.js +0 -16
  358. package/src/meeting/effectsState.ts +0 -211
  359. package/src/metrics/config.ts +0 -495
  360. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -30,11 +30,27 @@ export default class LocusInfo extends EventsScope {
30
30
  fullState: any;
31
31
  host: any;
32
32
  info: any;
33
+ roles: any;
33
34
  mediaShares: any;
34
35
  replace: any;
35
36
  url: any;
36
37
  services: any;
38
+ mainSessionLocusCache: any;
39
+ /**
40
+ * Constructor
41
+ * @param {function} updateMeeting callback to update the meeting object from an object
42
+ * @param {object} webex
43
+ * @param {string} meetingId
44
+ * @returns {undefined}
45
+ */
37
46
  constructor(updateMeeting: any, webex: any, meetingId: any);
47
+ /**
48
+ * 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.
49
+ *
50
+ * @param {Meeting} meeting
51
+ * @returns {undefined}
52
+ */
53
+ private doLocusSync;
38
54
  /**
39
55
  * Apply locus delta data to meeting
40
56
  * @param {string} action Locus delta action
@@ -139,19 +155,20 @@ export default class LocusInfo extends EventsScope {
139
155
  */
140
156
  updateParticipantDeltas(participants?: Array<any>): void;
141
157
  /**
142
- *
158
+ * update meeting's members
143
159
  * @param {Object} participants new participants object
144
- * @param {boolen} deltaParticpantFlag delta event
160
+ * @param {Boolean} isReplace is replace the whole members
145
161
  * @returns {Array} updatedParticipants
146
162
  * @memberof LocusInfo
147
163
  */
148
- updateParticipants(participants: object): void;
164
+ updateParticipants(participants: object, isReplace?: boolean): void;
149
165
  /**
150
166
  * @param {Object} controls
167
+ * @param {Object} self
151
168
  * @returns {undefined}
152
169
  * @memberof LocusInfo
153
170
  */
154
- updateControls(controls: object): void;
171
+ updateControls(controls: object, self: object): void;
155
172
  /**
156
173
  * @param {String} conversationUrl
157
174
  * @param {Object} info
@@ -266,4 +283,40 @@ export default class LocusInfo extends EventsScope {
266
283
  * @memberof LocusInfo
267
284
  */
268
285
  updateIdentifiers(identities: Array<any>): void;
286
+ /**
287
+ * check the locus is main session's one or not, if is main session's, update main session cache
288
+ * @param {Object} locus
289
+ * @returns {undefined}
290
+ * @memberof LocusInfo
291
+ */
292
+ updateLocusCache(locus: any): void;
293
+ /**
294
+ * if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
295
+ * if join breakout from main session, need to query main locus url (if response with 403 means no privilege, need to clear the cache)
296
+ * @param {Object} newLocus
297
+ * @returns {Object}
298
+ * @memberof LocusInfo
299
+ */
300
+ getTheLocusToUpdate(newLocus: any): any;
301
+ /**
302
+ * merge participants by participant id
303
+ * @param {Array} participants
304
+ * @param {Array} sourceParticipants
305
+ * @returns {Array} merged participants
306
+ * @memberof LocusInfo
307
+ */
308
+ mergeParticipants(participants: any, sourceParticipants: any): any;
309
+ /**
310
+ * need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
311
+ * @param {Object} mainLocus
312
+ * @returns {undefined}
313
+ * @memberof LocusInfo
314
+ */
315
+ updateMainSessionLocusCache(mainLocus: any): void;
316
+ /**
317
+ * clear main session cache
318
+ * @returns {undefined}
319
+ * @memberof LocusInfo
320
+ */
321
+ clearMainSessionLocusCache(): void;
269
322
  }
@@ -1,14 +1,25 @@
1
+ /// <reference types="node" />
2
+ import SortedQueue from '../common/queue';
3
+ type LocusDeltaDto = {
4
+ baseSequence: {
5
+ rangeStart: number;
6
+ rangeEnd: number;
7
+ entries: number[];
8
+ };
9
+ sequence: {
10
+ rangeStart: number;
11
+ rangeEnd: number;
12
+ entries: number[];
13
+ };
14
+ syncUrl: string;
15
+ };
1
16
  /**
2
17
  * Locus Delta Parser
3
18
  * @private
4
19
  * https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Delta-Events
5
20
  */
6
21
  export default class Parser {
7
- static status: {
8
- IDLE: string;
9
- PAUSED: string;
10
- WORKING: string;
11
- };
22
+ status: 'IDLE' | 'PAUSED' | 'WORKING' | 'BLOCKED';
12
23
  static loci: {
13
24
  EQ: string;
14
25
  GT: string;
@@ -16,14 +27,23 @@ export default class Parser {
16
27
  DESYNC: string;
17
28
  USE_INCOMING: string;
18
29
  USE_CURRENT: string;
30
+ WAIT: string;
19
31
  ERROR: string;
20
32
  };
21
- queue: any;
33
+ queue: SortedQueue<LocusDeltaDto>;
22
34
  workingCopy: any;
35
+ syncTimer: null | number | NodeJS.Timeout;
23
36
  /**
24
37
  * @constructs Parser
25
38
  */
26
39
  constructor();
40
+ /**
41
+ * Returns a debug string representing a locus delta - useful for logging
42
+ *
43
+ * @param {LocusDeltaDto} locus Locus delta
44
+ * @returns {string}
45
+ */
46
+ static locus2string(locus: LocusDeltaDto): string;
27
47
  /**
28
48
  * Checks if two sequences overlap in time,
29
49
  * the sequence with the higher minimum value is greater.
@@ -80,6 +100,21 @@ export default class Parser {
80
100
  * @returns {string} loci comparison state
81
101
  */
82
102
  private static compareDelta;
103
+ /**
104
+ * Compares Locus sequences - it should be called only for full Locus DTOs, not deltas
105
+ *
106
+ * @param {Types~Locus} current Current working copy
107
+ * @param {Types~Locus} incomingFullDto New Full Locus DTO
108
+ * @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
109
+ */
110
+ static compareFullDtoSequence(current: any, incomingFullDto: any): string;
111
+ /**
112
+ * Returns true if the incoming full locus DTO is newer than the current working copy
113
+ *
114
+ * @param {Types~Locus} incomingFullDto New Full Locus DTO
115
+ * @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
116
+ */
117
+ isNewFullLocus(incomingFullDto: any): boolean;
83
118
  /**
84
119
  * Compares Locus sequences
85
120
  * @param {Types~Locus} current Current working copy
@@ -190,6 +225,29 @@ export default class Parser {
190
225
  * @returns {undefined}
191
226
  */
192
227
  pause(): void;
228
+ /**
229
+ * Triggers a sync with Locus
230
+ *
231
+ * @param {string} reason used just for logging
232
+ * @returns {undefined}
233
+ */
234
+ private triggerSync;
235
+ /**
236
+ * Starts a timer with a random delay. When that timer expires we will do a sync.
237
+ *
238
+ * The main purpose of this timer is to handle a case when we get some out-of-order deltas,
239
+ * so we start waiting to receive the missing delta. If that delta never arrives, this timer
240
+ * will trigger a sync with Locus.
241
+ *
242
+ * @returns {undefined}
243
+ */
244
+ private startSyncTimer;
245
+ /**
246
+ * Stops the timer for triggering a sync
247
+ *
248
+ * @returns {undefined}
249
+ */
250
+ private stopSyncTimer;
193
251
  /**
194
252
  * Processes next locus delta in the queue,
195
253
  * continues until the queue is empty
@@ -210,3 +268,4 @@ export default class Parser {
210
268
  */
211
269
  static getDebugMessage(debugCode: string, comparison: string): any;
212
270
  }
271
+ export {};
@@ -1,6 +1,8 @@
1
1
  /*!
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
+ import { MultistreamRoapMediaConnection } from '@webex/internal-media-core';
5
+ export type BundlePolicy = ConstructorParameters<typeof MultistreamRoapMediaConnection>[0]['bundlePolicy'];
4
6
  /**
5
7
  * MediaDirection
6
8
  * @typedef {Object} MediaDirection
@@ -1,25 +1,34 @@
1
+ import { LocalCameraTrack, LocalMicrophoneTrack, LocalDisplayTrack, LocalSystemAudioTrack } from '@webex/media-helpers';
2
+ export type MediaDirection = {
3
+ sendAudio: boolean;
4
+ sendVideo: boolean;
5
+ sendShare: boolean;
6
+ receiveAudio: boolean;
7
+ receiveVideo: boolean;
8
+ receiveShare: boolean;
9
+ };
1
10
  /**
2
11
  * @class MediaProperties
3
12
  */
4
13
  export default class MediaProperties {
5
- audioTrack: any;
6
- localQualityLevel: any;
7
- mediaDirection: any;
14
+ audioTrack?: LocalMicrophoneTrack;
15
+ mediaDirection: MediaDirection;
8
16
  mediaSettings: any;
9
17
  webrtcMediaConnection: any;
10
18
  remoteAudioTrack: any;
11
19
  remoteQualityLevel: any;
12
20
  remoteShare: any;
13
21
  remoteVideoTrack: any;
14
- shareTrack: any;
22
+ shareVideoTrack?: LocalDisplayTrack;
23
+ shareAudioTrack?: LocalSystemAudioTrack;
15
24
  videoDeviceId: any;
16
- videoTrack: any;
25
+ videoTrack?: LocalCameraTrack;
17
26
  namespace: string;
18
27
  /**
19
28
  * @param {Object} [options] -- to auto construct
20
29
  * @returns {MediaProperties}
21
30
  */
22
- constructor(options?: any);
31
+ constructor();
23
32
  /**
24
33
  * Retrieves the preferred video input device
25
34
  * @returns {Object|null}
@@ -28,10 +37,10 @@ export default class MediaProperties {
28
37
  setMediaDirection(mediaDirection: any): void;
29
38
  setMediaSettings(type: any, values: any): void;
30
39
  setMediaPeerConnection(mediaPeerConnection: any): void;
31
- setLocalVideoTrack(videoTrack: any): void;
32
- setLocalAudioTrack(audioTrack: any): void;
33
- setLocalQualityLevel(localQualityLevel: any): void;
34
- setLocalShareTrack(shareTrack: any): void;
40
+ setLocalVideoTrack(videoTrack?: LocalCameraTrack): void;
41
+ setLocalAudioTrack(audioTrack?: LocalMicrophoneTrack): void;
42
+ setLocalShareVideoTrack(shareVideoTrack?: LocalDisplayTrack): void;
43
+ setLocalShareAudioTrack(shareAudioTrack?: LocalSystemAudioTrack): void;
35
44
  setRemoteQualityLevel(remoteQualityLevel: any): void;
36
45
  setRemoteShare(remoteShare: any): void;
37
46
  /**
@@ -53,45 +62,22 @@ export default class MediaProperties {
53
62
  */
54
63
  setVideoDeviceId(deviceId: string): void;
55
64
  unsetPeerConnection(): void;
56
- unsetLocalVideoTrack(): void;
57
- unsetLocalShareTrack(): void;
58
- unsetLocalAudioTrack(): void;
59
- /**
60
- * Removes remote stream from class instance
61
- * @deprecated after v1.89.3
62
- * @returns {void}
63
- */
64
- unsetRemoteStream(): void;
65
65
  /**
66
66
  * Removes both remote audio and video from class instance
67
67
  * @returns {void}
68
68
  */
69
69
  unsetRemoteMedia(): void;
70
70
  unsetRemoteShare(): void;
71
- unsetLocalVideoTracks(): void;
72
- /**
73
- * Removes remote stream and remote share from class instance
74
- * @deprecated after v1.89.3
75
- * @returns {void}
76
- */
77
- unsetRemoteStreams(): void;
78
71
  /**
79
72
  * Unsets all remote tracks
80
73
  * @returns {void}
81
74
  */
82
75
  unsetRemoteTracks(): void;
83
- unsetShareStreams(): void;
84
76
  /**
85
- * Removes both local and remote video stream from class instance
86
- * @deprecated after v1.89.3
87
- * @returns {void}
88
- */
89
- unsetMediaStreams(): void;
90
- /**
91
- * Removes both local and remote video stream from class instance
92
- * @returns {void}
77
+ * Returns if we have at least one local share track or not.
78
+ * @returns {Boolean}
93
79
  */
94
- unsetMediaTracks(): void;
80
+ hasLocalShareTrack(): boolean;
95
81
  /**
96
82
  * Waits for the webrtc media connection to be connected.
97
83
  *
@@ -10,7 +10,15 @@ interface IInMeetingActions {
10
10
  canAdmitParticipant?: boolean;
11
11
  canLock?: boolean;
12
12
  canUnlock?: boolean;
13
+ canSetMuteOnEntry?: boolean;
14
+ canUnsetMuteOnEntry?: boolean;
15
+ canSetDisallowUnmute?: boolean;
16
+ canUnsetDisallowUnmute?: boolean;
17
+ canSetMuted?: boolean;
18
+ canUnsetMuted?: boolean;
13
19
  canAssignHost?: boolean;
20
+ canSetPresenter?: boolean;
21
+ canUnsetPresenter?: boolean;
14
22
  canStartRecording?: boolean;
15
23
  canPauseRecording?: boolean;
16
24
  canResumeRecording?: boolean;
@@ -23,13 +31,49 @@ interface IInMeetingActions {
23
31
  canStartTranscribing?: boolean;
24
32
  canStopTranscribing?: boolean;
25
33
  isClosedCaptionActive?: boolean;
34
+ isSaveTranscriptsEnabled?: boolean;
26
35
  isWebexAssistantActive?: boolean;
27
36
  canViewCaptionPanel?: boolean;
28
37
  isRealTimeTranslationEnabled?: boolean;
29
38
  canSelectSpokenLanguages?: boolean;
30
39
  waitingForOthersToJoin?: boolean;
31
- canEnableReactions?: boolean;
32
40
  canSendReactions?: boolean;
41
+ canManageBreakout?: boolean;
42
+ canBroadcastMessageToBreakout?: boolean;
43
+ canAdmitLobbyToBreakout?: boolean;
44
+ isBreakoutPreassignmentsEnabled?: boolean;
45
+ canUserAskForHelp?: boolean;
46
+ canUserRenameSelfAndObserved?: boolean;
47
+ canUserRenameOthers?: boolean;
48
+ canMuteAll?: boolean;
49
+ canUnmuteAll?: boolean;
50
+ canEnableHardMute?: boolean;
51
+ canDisableHardMute?: boolean;
52
+ canEnableMuteOnEntry?: boolean;
53
+ canDisableMuteOnEntry?: boolean;
54
+ canEnableReactions?: boolean;
55
+ canDisableReactions?: boolean;
56
+ canEnableReactionDisplayNames?: boolean;
57
+ canDisableReactionDisplayNames?: boolean;
58
+ canUpdateShareControl?: boolean;
59
+ canEnableViewTheParticipantsList?: boolean;
60
+ canDisableViewTheParticipantsList?: boolean;
61
+ canEnableRaiseHand?: boolean;
62
+ canDisableRaiseHand?: boolean;
63
+ canEnableVideo?: boolean;
64
+ canDisableVideo?: boolean;
65
+ canShareFile?: boolean;
66
+ canShareApplication?: boolean;
67
+ canShareCamera?: boolean;
68
+ canShareDesktop?: boolean;
69
+ canShareContent?: boolean;
70
+ canTransferFile?: boolean;
71
+ canDoVideo?: boolean;
72
+ canAnnotate?: boolean;
73
+ canUseVoip?: boolean;
74
+ supportHQV?: boolean;
75
+ supportHDV?: boolean;
76
+ canShareWhiteBoard?: boolean;
33
77
  }
34
78
  /**
35
79
  * @class InMeetingActions
@@ -45,6 +89,14 @@ export default class InMeetingActions implements IInMeetingActions {
45
89
  canPauseRecording: any;
46
90
  canResumeRecording: any;
47
91
  canStopRecording: any;
92
+ canSetMuteOnEntry: any;
93
+ canSetPresenter: any;
94
+ canUnsetPresenter: any;
95
+ canUnsetMuteOnEntry: any;
96
+ canSetDisallowUnmute: any;
97
+ canUnsetDisallowUnmute: any;
98
+ canSetMuted: any;
99
+ canUnsetMuted: any;
48
100
  canRaiseHand: any;
49
101
  canLowerAllHands: any;
50
102
  canLowerSomeoneElsesHand: any;
@@ -53,13 +105,49 @@ export default class InMeetingActions implements IInMeetingActions {
53
105
  canStartTranscribing: any;
54
106
  canStopTranscribing: any;
55
107
  isClosedCaptionActive: any;
108
+ isSaveTranscriptsEnabled: any;
56
109
  isWebexAssistantActive: any;
57
110
  canViewCaptionPanel: any;
58
111
  isRealTimeTranslationEnabled: any;
59
112
  canSelectSpokenLanguages: any;
60
113
  waitingForOthersToJoin: any;
61
- canEnableReactions: any;
62
114
  canSendReactions: any;
115
+ canManageBreakout: any;
116
+ canBroadcastMessageToBreakout: any;
117
+ canAdmitLobbyToBreakout: any;
118
+ isBreakoutPreassignmentsEnabled: any;
119
+ canUserAskForHelp: any;
120
+ canUserRenameSelfAndObserved: any;
121
+ canUserRenameOthers: any;
122
+ canMuteAll: any;
123
+ canUnmuteAll: any;
124
+ canEnableHardMute: any;
125
+ canDisableHardMute: any;
126
+ canEnableMuteOnEntry: any;
127
+ canDisableMuteOnEntry: any;
128
+ canEnableReactions: any;
129
+ canDisableReactions: any;
130
+ canEnableReactionDisplayNames: any;
131
+ canDisableReactionDisplayNames: any;
132
+ canUpdateShareControl: any;
133
+ canEnableViewTheParticipantsList: any;
134
+ canDisableViewTheParticipantsList: any;
135
+ canEnableRaiseHand: any;
136
+ canDisableRaiseHand: any;
137
+ canEnableVideo: any;
138
+ canDisableVideo: any;
139
+ canShareFile: any;
140
+ canShareApplication: any;
141
+ canShareCamera: any;
142
+ canShareDesktop: any;
143
+ canShareContent: any;
144
+ canTransferFile: any;
145
+ canDoVideo: any;
146
+ canAnnotate: any;
147
+ canUseVoip: any;
148
+ supportHQV: any;
149
+ supportHDV: any;
150
+ canShareWhiteBoard: any;
63
151
  /**
64
152
  * Returns all meeting action options
65
153
  * @returns {Object}