@webex/plugin-meetings 3.0.0-beta.25 → 3.0.0-beta.251

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 (365) 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 +195 -28
  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 +112 -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 +381 -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 +224 -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 +58 -116
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +60 -121
  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 +2785 -2652
  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 +230 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +256 -196
  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 +6 -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 +209 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/multistream/sendSlotManager.js +233 -0
  127. package/dist/multistream/sendSlotManager.js.map +1 -0
  128. package/dist/reachability/index.js +81 -30
  129. package/dist/reachability/index.js.map +1 -1
  130. package/dist/reachability/request.js +16 -7
  131. package/dist/reachability/request.js.map +1 -1
  132. package/dist/reconnection-manager/index.js +199 -154
  133. package/dist/reconnection-manager/index.js.map +1 -1
  134. package/dist/recording-controller/index.js +21 -2
  135. package/dist/recording-controller/index.js.map +1 -1
  136. package/dist/recording-controller/util.js +9 -8
  137. package/dist/recording-controller/util.js.map +1 -1
  138. package/dist/roap/index.js +23 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +112 -89
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +96 -36
  143. package/dist/roap/turnDiscovery.js.map +1 -1
  144. package/dist/rtcMetrics/constants.js +12 -0
  145. package/dist/rtcMetrics/constants.js.map +1 -0
  146. package/dist/rtcMetrics/index.js +117 -0
  147. package/dist/rtcMetrics/index.js.map +1 -0
  148. package/dist/statsAnalyzer/index.js +51 -34
  149. package/dist/statsAnalyzer/index.js.map +1 -1
  150. package/dist/statsAnalyzer/mqaUtil.js +6 -6
  151. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  152. package/dist/types/annotation/annotation.types.d.ts +42 -0
  153. package/dist/types/annotation/constants.d.ts +31 -0
  154. package/dist/types/annotation/index.d.ts +117 -0
  155. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  156. package/dist/types/breakouts/events.d.ts +8 -0
  157. package/dist/types/breakouts/request.d.ts +22 -0
  158. package/dist/types/breakouts/utils.d.ts +15 -0
  159. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  160. package/dist/types/common/queue.d.ts +9 -7
  161. package/dist/types/config.d.ts +1 -6
  162. package/dist/types/constants.d.ts +157 -21
  163. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  164. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  165. package/dist/types/controls-options-manager/index.d.ts +136 -0
  166. package/dist/types/controls-options-manager/types.d.ts +43 -0
  167. package/dist/types/controls-options-manager/util.d.ts +1 -0
  168. package/dist/types/index.d.ts +6 -4
  169. package/dist/types/interpretation/collection.d.ts +5 -0
  170. package/dist/types/interpretation/index.d.ts +5 -0
  171. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  172. package/dist/types/locus-info/index.d.ts +57 -4
  173. package/dist/types/locus-info/parser.d.ts +65 -6
  174. package/dist/types/media/index.d.ts +2 -0
  175. package/dist/types/media/properties.d.ts +34 -48
  176. package/dist/types/meeting/in-meeting-actions.d.ts +90 -2
  177. package/dist/types/meeting/index.d.ts +330 -503
  178. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  179. package/dist/types/meeting/muteState.d.ts +99 -23
  180. package/dist/types/meeting/request.d.ts +72 -43
  181. package/dist/types/meeting/util.d.ts +101 -1
  182. package/dist/types/meeting-info/index.d.ts +6 -1
  183. package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -1
  184. package/dist/types/meetings/collection.d.ts +8 -0
  185. package/dist/types/meetings/index.d.ts +76 -12
  186. package/dist/types/meetings/meetings.types.d.ts +4 -0
  187. package/dist/types/member/index.d.ts +13 -0
  188. package/dist/types/member/types.d.ts +32 -0
  189. package/dist/types/members/collection.d.ts +5 -0
  190. package/dist/types/members/index.d.ts +35 -2
  191. package/dist/types/members/request.d.ts +73 -9
  192. package/dist/types/members/types.d.ts +24 -0
  193. package/dist/types/members/util.d.ts +209 -1
  194. package/dist/types/metrics/constants.d.ts +5 -4
  195. package/dist/types/metrics/index.d.ts +4 -119
  196. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  197. package/dist/types/multistream/receiveSlot.d.ts +16 -12
  198. package/dist/types/multistream/receiveSlotManager.d.ts +19 -4
  199. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  200. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  201. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  202. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  203. package/dist/types/reachability/index.d.ts +15 -3
  204. package/dist/types/reachability/request.d.ts +7 -3
  205. package/dist/types/reconnection-manager/index.d.ts +9 -0
  206. package/dist/types/recording-controller/index.d.ts +15 -1
  207. package/dist/types/recording-controller/util.d.ts +5 -4
  208. package/dist/types/roap/request.d.ts +15 -11
  209. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  210. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  211. package/dist/types/rtcMetrics/index.d.ts +47 -0
  212. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  213. package/package.json +23 -20
  214. package/src/annotation/annotation.types.ts +50 -0
  215. package/src/annotation/constants.ts +36 -0
  216. package/src/annotation/index.ts +328 -0
  217. package/src/breakouts/README.md +44 -14
  218. package/src/breakouts/breakout.ts +87 -9
  219. package/src/breakouts/edit-lock-error.ts +25 -0
  220. package/src/breakouts/events.ts +56 -0
  221. package/src/breakouts/index.ts +710 -10
  222. package/src/breakouts/request.ts +55 -0
  223. package/src/breakouts/utils.ts +57 -0
  224. package/src/common/errors/webex-errors.ts +27 -2
  225. package/src/common/logs/logger-proxy.ts +1 -1
  226. package/src/common/queue.ts +22 -8
  227. package/src/config.ts +4 -9
  228. package/src/constants.ts +178 -18
  229. package/src/controls-options-manager/constants.ts +5 -0
  230. package/src/controls-options-manager/enums.ts +18 -0
  231. package/src/controls-options-manager/index.ts +278 -0
  232. package/src/controls-options-manager/types.ts +59 -0
  233. package/src/controls-options-manager/util.ts +300 -0
  234. package/src/index.ts +40 -0
  235. package/src/interpretation/README.md +60 -0
  236. package/src/interpretation/collection.ts +19 -0
  237. package/src/interpretation/index.ts +332 -0
  238. package/src/interpretation/siLanguage.ts +18 -0
  239. package/src/locus-info/controlsUtils.ts +108 -0
  240. package/src/locus-info/index.ts +412 -59
  241. package/src/locus-info/infoUtils.ts +10 -2
  242. package/src/locus-info/mediaSharesUtils.ts +48 -0
  243. package/src/locus-info/parser.ts +231 -39
  244. package/src/locus-info/selfUtils.ts +81 -5
  245. package/src/media/index.ts +100 -122
  246. package/src/media/properties.ts +70 -108
  247. package/src/meeting/in-meeting-actions.ts +179 -3
  248. package/src/meeting/index.ts +2269 -2218
  249. package/src/meeting/locusMediaRequest.ts +313 -0
  250. package/src/meeting/muteState.ts +229 -131
  251. package/src/meeting/request.ts +172 -121
  252. package/src/meeting/util.ts +588 -394
  253. package/src/meeting-info/index.ts +54 -8
  254. package/src/meeting-info/meeting-info-v2.ts +148 -14
  255. package/src/meeting-info/util.ts +1 -1
  256. package/src/meeting-info/utilv2.ts +23 -23
  257. package/src/meetings/collection.ts +20 -0
  258. package/src/meetings/index.ts +407 -108
  259. package/src/meetings/meetings.types.ts +12 -0
  260. package/src/meetings/request.ts +2 -0
  261. package/src/meetings/util.ts +103 -4
  262. package/src/member/index.ts +49 -0
  263. package/src/member/types.ts +38 -0
  264. package/src/member/util.ts +127 -25
  265. package/src/members/collection.ts +8 -0
  266. package/src/members/index.ts +107 -6
  267. package/src/members/request.ts +97 -17
  268. package/src/members/types.ts +28 -0
  269. package/src/members/util.ts +319 -240
  270. package/src/metrics/constants.ts +5 -4
  271. package/src/metrics/index.ts +1 -490
  272. package/src/multistream/mediaRequestManager.ts +289 -79
  273. package/src/multistream/receiveSlot.ts +55 -18
  274. package/src/multistream/receiveSlotManager.ts +46 -24
  275. package/src/multistream/remoteMedia.ts +27 -2
  276. package/src/multistream/remoteMediaGroup.ts +59 -0
  277. package/src/multistream/remoteMediaManager.ts +148 -30
  278. package/src/multistream/sendSlotManager.ts +170 -0
  279. package/src/reachability/index.ts +69 -17
  280. package/src/reachability/request.ts +16 -7
  281. package/src/reconnection-manager/index.ts +81 -54
  282. package/src/recording-controller/index.ts +20 -3
  283. package/src/recording-controller/util.ts +26 -9
  284. package/src/roap/index.ts +23 -30
  285. package/src/roap/request.ts +104 -95
  286. package/src/roap/turnDiscovery.ts +50 -25
  287. package/src/rtcMetrics/constants.ts +3 -0
  288. package/src/rtcMetrics/index.ts +100 -0
  289. package/src/statsAnalyzer/index.ts +73 -35
  290. package/src/statsAnalyzer/mqaUtil.ts +8 -10
  291. package/test/integration/spec/converged-space-meetings.js +233 -0
  292. package/test/integration/spec/journey.js +320 -261
  293. package/test/integration/spec/space-meeting.js +76 -3
  294. package/test/unit/spec/annotation/index.ts +418 -0
  295. package/test/unit/spec/breakouts/breakout.ts +142 -24
  296. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  297. package/test/unit/spec/breakouts/events.ts +89 -0
  298. package/test/unit/spec/breakouts/index.ts +1545 -48
  299. package/test/unit/spec/breakouts/request.ts +104 -0
  300. package/test/unit/spec/breakouts/utils.js +72 -0
  301. package/test/unit/spec/common/queue.js +31 -2
  302. package/test/unit/spec/controls-options-manager/index.js +287 -0
  303. package/test/unit/spec/controls-options-manager/util.js +582 -0
  304. package/test/unit/spec/fixture/locus.js +1 -0
  305. package/test/unit/spec/interpretation/collection.ts +15 -0
  306. package/test/unit/spec/interpretation/index.ts +589 -0
  307. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  308. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  309. package/test/unit/spec/locus-info/index.js +1283 -33
  310. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  311. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  312. package/test/unit/spec/locus-info/parser.js +62 -22
  313. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  314. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  315. package/test/unit/spec/media/index.ts +104 -37
  316. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  317. package/test/unit/spec/meeting/index.js +3688 -1861
  318. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  319. package/test/unit/spec/meeting/muteState.js +408 -208
  320. package/test/unit/spec/meeting/request.js +440 -45
  321. package/test/unit/spec/meeting/utils.js +679 -64
  322. package/test/unit/spec/meeting-info/index.js +181 -0
  323. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  324. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  325. package/test/unit/spec/meetings/collection.js +14 -0
  326. package/test/unit/spec/meetings/index.js +939 -150
  327. package/test/unit/spec/meetings/utils.js +206 -2
  328. package/test/unit/spec/member/index.js +58 -4
  329. package/test/unit/spec/member/util.js +479 -35
  330. package/test/unit/spec/members/index.js +319 -1
  331. package/test/unit/spec/members/request.js +206 -27
  332. package/test/unit/spec/members/utils.js +184 -0
  333. package/test/unit/spec/metrics/index.js +1 -50
  334. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  335. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  336. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  337. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  338. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  339. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  340. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  341. package/test/unit/spec/reachability/index.ts +185 -7
  342. package/test/unit/spec/reachability/request.js +68 -0
  343. package/test/unit/spec/reconnection-manager/index.js +84 -9
  344. package/test/unit/spec/recording-controller/index.js +294 -218
  345. package/test/unit/spec/recording-controller/util.js +223 -96
  346. package/test/unit/spec/roap/index.ts +31 -51
  347. package/test/unit/spec/roap/request.ts +202 -85
  348. package/test/unit/spec/roap/turnDiscovery.ts +45 -10
  349. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  350. package/test/unit/spec/stats-analyzer/index.js +29 -2
  351. package/test/utils/constants.js +9 -0
  352. package/test/utils/integrationTestUtils.js +46 -0
  353. package/test/utils/testUtils.js +0 -45
  354. package/test/utils/webex-config.js +4 -0
  355. package/test/utils/webex-test-users.js +6 -3
  356. package/dist/meeting/effectsState.js +0 -262
  357. package/dist/meeting/effectsState.js.map +0 -1
  358. package/dist/metrics/config.js +0 -299
  359. package/dist/metrics/config.js.map +0 -1
  360. package/dist/types/meeting/effectsState.d.ts +0 -42
  361. package/dist/types/metrics/config.d.ts +0 -178
  362. package/src/index.js +0 -16
  363. package/src/meeting/effectsState.ts +0 -211
  364. package/src/metrics/config.ts +0 -495
  365. 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 { type MultistreamConnectionConfig } from '@webex/internal-media-core';
5
+ export type BundlePolicy = MultistreamConnectionConfig['bundlePolicy'];
4
6
  /**
5
7
  * MediaDirection
6
8
  * @typedef {Object} MediaDirection
@@ -1,25 +1,34 @@
1
+ import { LocalCameraStream, LocalMicrophoneStream, LocalDisplayStream, LocalSystemAudioStream, RemoteStream } 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
+ audioStream?: LocalMicrophoneStream;
15
+ mediaDirection: MediaDirection;
8
16
  mediaSettings: any;
9
17
  webrtcMediaConnection: any;
10
- remoteAudioTrack: any;
18
+ remoteAudioStream: RemoteStream;
11
19
  remoteQualityLevel: any;
12
- remoteShare: any;
13
- remoteVideoTrack: any;
14
- shareTrack: any;
20
+ remoteShareStream: RemoteStream;
21
+ remoteVideoStream: RemoteStream;
22
+ shareVideoStream?: LocalDisplayStream;
23
+ shareAudioStream?: LocalSystemAudioStream;
15
24
  videoDeviceId: any;
16
- videoTrack: any;
25
+ videoStream?: LocalCameraStream;
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,24 +37,24 @@ 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
+ setLocalVideoStream(videoStream?: LocalCameraStream): void;
41
+ setLocalAudioStream(audioStream?: LocalMicrophoneStream): void;
42
+ setLocalShareVideoStream(shareVideoStream?: LocalDisplayStream): void;
43
+ setLocalShareAudioStream(shareAudioStream?: LocalSystemAudioStream): void;
35
44
  setRemoteQualityLevel(remoteQualityLevel: any): void;
36
- setRemoteShare(remoteShare: any): void;
45
+ setRemoteShareStream(remoteShareStream: RemoteStream): void;
37
46
  /**
38
- * Sets the remote audio track
39
- * @param {MediaTrack} remoteAudioTrack MediaTrack to save
47
+ * Sets the remote audio stream
48
+ * @param {RemoteStream} remoteAudioStream RemoteStream to save
40
49
  * @returns {void}
41
50
  */
42
- setRemoteAudioTrack(remoteAudioTrack: any): void;
51
+ setRemoteAudioStream(remoteAudioStream: RemoteStream): void;
43
52
  /**
44
- * Sets the remote video track
45
- * @param {MediaTrack} remoteVideoTrack MediaTrack to save
53
+ * Sets the remote video stream
54
+ * @param {RemoteStream} remoteVideoStream RemoteStream to save
46
55
  * @returns {void}
47
56
  */
48
- setRemoteVideoTrack(remoteVideoTrack: any): void;
57
+ setRemoteVideoStream(remoteVideoStream: RemoteStream): void;
49
58
  /**
50
59
  * Stores the preferred video input device
51
60
  * @param {string} deviceId Preferred video input device
@@ -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
- unsetRemoteShare(): void;
71
- unsetLocalVideoTracks(): void;
70
+ unsetRemoteShareStream(): void;
72
71
  /**
73
- * Removes remote stream and remote share from class instance
74
- * @deprecated after v1.89.3
72
+ * Unsets all remote streams
75
73
  * @returns {void}
76
74
  */
77
75
  unsetRemoteStreams(): void;
78
76
  /**
79
- * Unsets all remote tracks
80
- * @returns {void}
81
- */
82
- unsetRemoteTracks(): void;
83
- unsetShareStreams(): void;
84
- /**
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 stream or not.
78
+ * @returns {Boolean}
93
79
  */
94
- unsetMediaTracks(): void;
80
+ hasLocalShareStream(): 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}