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

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 +58 -8
  2. package/dist/annotation/annotation.types.d.ts +42 -0
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.d.ts +31 -0
  6. package/dist/annotation/constants.js +41 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.d.ts +117 -0
  9. package/dist/annotation/index.js +357 -0
  10. package/dist/annotation/index.js.map +1 -0
  11. package/dist/breakouts/breakout.d.ts +8 -0
  12. package/dist/breakouts/breakout.js +215 -0
  13. package/dist/breakouts/breakout.js.map +1 -0
  14. package/dist/breakouts/collection.d.ts +5 -0
  15. package/dist/breakouts/collection.js +22 -0
  16. package/dist/breakouts/collection.js.map +1 -0
  17. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  18. package/dist/breakouts/edit-lock-error.js +51 -0
  19. package/dist/breakouts/edit-lock-error.js.map +1 -0
  20. package/dist/breakouts/events.d.ts +8 -0
  21. package/dist/breakouts/events.js +44 -0
  22. package/dist/breakouts/events.js.map +1 -0
  23. package/dist/breakouts/index.d.ts +5 -0
  24. package/dist/breakouts/index.js +1047 -0
  25. package/dist/breakouts/index.js.map +1 -0
  26. package/dist/breakouts/request.d.ts +22 -0
  27. package/dist/breakouts/request.js +77 -0
  28. package/dist/breakouts/request.js.map +1 -0
  29. package/dist/breakouts/utils.d.ts +15 -0
  30. package/dist/breakouts/utils.js +64 -0
  31. package/dist/breakouts/utils.js.map +1 -0
  32. package/dist/common/browser-detection.js +2 -3
  33. package/dist/common/browser-detection.js.map +1 -1
  34. package/dist/common/collection.js +3 -4
  35. package/dist/common/collection.js.map +1 -1
  36. package/dist/common/config.js +1 -2
  37. package/dist/common/config.js.map +1 -1
  38. package/dist/common/errors/captcha-error.js +1 -2
  39. package/dist/common/errors/captcha-error.js.map +1 -1
  40. package/dist/common/errors/intent-to-join.js +1 -2
  41. package/dist/common/errors/intent-to-join.js.map +1 -1
  42. package/dist/common/errors/join-meeting.js +1 -2
  43. package/dist/common/errors/join-meeting.js.map +1 -1
  44. package/dist/common/errors/media.js +1 -2
  45. package/dist/common/errors/media.js.map +1 -1
  46. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  47. package/dist/common/errors/no-meeting-info.js +50 -0
  48. package/dist/common/errors/no-meeting-info.js.map +1 -0
  49. package/dist/common/errors/parameter.js +3 -4
  50. package/dist/common/errors/parameter.js.map +1 -1
  51. package/dist/common/errors/password-error.js +1 -2
  52. package/dist/common/errors/password-error.js.map +1 -1
  53. package/dist/common/errors/permission.js +1 -2
  54. package/dist/common/errors/permission.js.map +1 -1
  55. package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
  56. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  57. package/dist/common/errors/reconnection-in-progress.js +1 -2
  58. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  59. package/dist/common/errors/reconnection.js +1 -2
  60. package/dist/common/errors/reconnection.js.map +1 -1
  61. package/dist/common/errors/stats.js +1 -2
  62. package/dist/common/errors/stats.js.map +1 -1
  63. package/dist/common/errors/webex-errors.d.ts +20 -8
  64. package/dist/common/errors/webex-errors.js +48 -28
  65. package/dist/common/errors/webex-errors.js.map +1 -1
  66. package/dist/common/errors/webex-meetings-error.js +1 -2
  67. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  68. package/dist/common/events/events-scope.js +1 -2
  69. package/dist/common/events/events-scope.js.map +1 -1
  70. package/dist/common/events/events.js +1 -2
  71. package/dist/common/events/events.js.map +1 -1
  72. package/dist/common/events/trigger-proxy.js +1 -2
  73. package/dist/common/events/trigger-proxy.js.map +1 -1
  74. package/dist/common/events/util.js +1 -2
  75. package/dist/common/events/util.js.map +1 -1
  76. package/dist/common/logs/logger-config.js +1 -2
  77. package/dist/common/logs/logger-config.js.map +1 -1
  78. package/dist/common/logs/logger-proxy.js +2 -3
  79. package/dist/common/logs/logger-proxy.js.map +1 -1
  80. package/dist/common/logs/request.d.ts +3 -1
  81. package/dist/common/logs/request.js +8 -5
  82. package/dist/common/logs/request.js.map +1 -1
  83. package/dist/common/queue.d.ts +9 -7
  84. package/dist/common/queue.js +22 -9
  85. package/dist/common/queue.js.map +1 -1
  86. package/dist/config.d.ts +6 -7
  87. package/dist/config.js +8 -10
  88. package/dist/config.js.map +1 -1
  89. package/dist/constants.d.ts +234 -100
  90. package/dist/constants.js +433 -444
  91. package/dist/constants.js.map +1 -1
  92. package/dist/controls-options-manager/constants.js +3 -6
  93. package/dist/controls-options-manager/constants.js.map +1 -1
  94. package/dist/controls-options-manager/enums.d.ts +11 -1
  95. package/dist/controls-options-manager/enums.js +15 -6
  96. package/dist/controls-options-manager/enums.js.map +1 -1
  97. package/dist/controls-options-manager/index.d.ts +17 -1
  98. package/dist/controls-options-manager/index.js +127 -38
  99. package/dist/controls-options-manager/index.js.map +1 -1
  100. package/dist/controls-options-manager/types.d.ts +43 -0
  101. package/dist/controls-options-manager/types.js +7 -0
  102. package/dist/controls-options-manager/types.js.map +1 -0
  103. package/dist/controls-options-manager/util.d.ts +1 -7
  104. package/dist/controls-options-manager/util.js +309 -19
  105. package/dist/controls-options-manager/util.js.map +1 -1
  106. package/dist/index.d.ts +6 -3
  107. package/dist/index.js +121 -5
  108. package/dist/index.js.map +1 -1
  109. package/dist/interceptors/index.d.ts +2 -0
  110. package/dist/interceptors/index.js +15 -0
  111. package/dist/interceptors/index.js.map +1 -0
  112. package/dist/interceptors/locusRetry.d.ts +27 -0
  113. package/dist/interceptors/locusRetry.js +94 -0
  114. package/dist/interceptors/locusRetry.js.map +1 -0
  115. package/dist/interpretation/collection.d.ts +5 -0
  116. package/dist/interpretation/collection.js +22 -0
  117. package/dist/interpretation/collection.js.map +1 -0
  118. package/dist/interpretation/index.d.ts +5 -0
  119. package/dist/interpretation/index.js +365 -0
  120. package/dist/interpretation/index.js.map +1 -0
  121. package/dist/interpretation/siLanguage.d.ts +5 -0
  122. package/dist/interpretation/siLanguage.js +24 -0
  123. package/dist/interpretation/siLanguage.js.map +1 -0
  124. package/dist/locus-info/controlsUtils.js +100 -11
  125. package/dist/locus-info/controlsUtils.js.map +1 -1
  126. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  127. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  128. package/dist/locus-info/fullState.js +1 -2
  129. package/dist/locus-info/fullState.js.map +1 -1
  130. package/dist/locus-info/hostUtils.js +1 -2
  131. package/dist/locus-info/hostUtils.js.map +1 -1
  132. package/dist/locus-info/index.d.ts +57 -4
  133. package/dist/locus-info/index.js +425 -84
  134. package/dist/locus-info/index.js.map +1 -1
  135. package/dist/locus-info/infoUtils.js +13 -5
  136. package/dist/locus-info/infoUtils.js.map +1 -1
  137. package/dist/locus-info/mediaSharesUtils.js +58 -3
  138. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  139. package/dist/locus-info/parser.d.ts +66 -6
  140. package/dist/locus-info/parser.js +253 -80
  141. package/dist/locus-info/parser.js.map +1 -1
  142. package/dist/locus-info/selfUtils.js +97 -13
  143. package/dist/locus-info/selfUtils.js.map +1 -1
  144. package/dist/media/index.d.ts +2 -0
  145. package/dist/media/index.js +107 -319
  146. package/dist/media/index.js.map +1 -1
  147. package/dist/media/properties.d.ts +38 -53
  148. package/dist/media/properties.js +96 -153
  149. package/dist/media/properties.js.map +1 -1
  150. package/dist/media/util.js +1 -22
  151. package/dist/media/util.js.map +1 -1
  152. package/dist/mediaQualityMetrics/config.d.ts +234 -230
  153. package/dist/mediaQualityMetrics/config.js +302 -498
  154. package/dist/mediaQualityMetrics/config.js.map +1 -1
  155. package/dist/meeting/in-meeting-actions.d.ts +88 -0
  156. package/dist/meeting/in-meeting-actions.js +94 -3
  157. package/dist/meeting/in-meeting-actions.js.map +1 -1
  158. package/dist/meeting/index.d.ts +705 -520
  159. package/dist/meeting/index.js +5047 -3089
  160. package/dist/meeting/index.js.map +1 -1
  161. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  162. package/dist/meeting/locusMediaRequest.js +291 -0
  163. package/dist/meeting/locusMediaRequest.js.map +1 -0
  164. package/dist/meeting/muteState.d.ts +93 -25
  165. package/dist/meeting/muteState.js +224 -133
  166. package/dist/meeting/muteState.js.map +1 -1
  167. package/dist/meeting/request.d.ts +82 -47
  168. package/dist/meeting/request.js +304 -199
  169. package/dist/meeting/request.js.map +1 -1
  170. package/dist/meeting/request.type.d.ts +11 -0
  171. package/dist/meeting/request.type.js +7 -0
  172. package/dist/meeting/request.type.js.map +1 -0
  173. package/dist/meeting/state.js +1 -2
  174. package/dist/meeting/state.js.map +1 -1
  175. package/dist/meeting/util.d.ts +118 -1
  176. package/dist/meeting/util.js +676 -435
  177. package/dist/meeting/util.js.map +1 -1
  178. package/dist/meeting/voicea-meeting.d.ts +20 -0
  179. package/dist/meeting/voicea-meeting.js +201 -0
  180. package/dist/meeting/voicea-meeting.js.map +1 -0
  181. package/dist/meeting-info/collection.js +3 -4
  182. package/dist/meeting-info/collection.js.map +1 -1
  183. package/dist/meeting-info/index.d.ts +13 -1
  184. package/dist/meeting-info/index.js +74 -7
  185. package/dist/meeting-info/index.js.map +1 -1
  186. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  187. package/dist/meeting-info/meeting-info-v2.js +200 -63
  188. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  189. package/dist/meeting-info/request.js +1 -2
  190. package/dist/meeting-info/request.js.map +1 -1
  191. package/dist/meeting-info/util.js +2 -3
  192. package/dist/meeting-info/util.js.map +1 -1
  193. package/dist/meeting-info/utilv2.js +39 -41
  194. package/dist/meeting-info/utilv2.js.map +1 -1
  195. package/dist/meetings/collection.d.ts +17 -0
  196. package/dist/meetings/collection.js +42 -4
  197. package/dist/meetings/collection.js.map +1 -1
  198. package/dist/meetings/index.d.ts +114 -20
  199. package/dist/meetings/index.js +540 -126
  200. package/dist/meetings/index.js.map +1 -1
  201. package/dist/meetings/meetings.types.d.ts +4 -0
  202. package/dist/meetings/meetings.types.js +7 -0
  203. package/dist/meetings/meetings.types.js.map +1 -0
  204. package/dist/meetings/request.js +4 -3
  205. package/dist/meetings/request.js.map +1 -1
  206. package/dist/meetings/util.js +107 -6
  207. package/dist/meetings/util.js.map +1 -1
  208. package/dist/member/index.d.ts +13 -1
  209. package/dist/member/index.js +45 -2
  210. package/dist/member/index.js.map +1 -1
  211. package/dist/member/member.types.js +3 -4
  212. package/dist/member/member.types.js.map +1 -1
  213. package/dist/member/types.d.ts +32 -0
  214. package/dist/member/types.js +23 -0
  215. package/dist/member/types.js.map +1 -0
  216. package/dist/member/util.js +120 -29
  217. package/dist/member/util.js.map +1 -1
  218. package/dist/members/collection.d.ts +5 -0
  219. package/dist/members/collection.js +11 -2
  220. package/dist/members/collection.js.map +1 -1
  221. package/dist/members/index.d.ts +56 -11
  222. package/dist/members/index.js +174 -47
  223. package/dist/members/index.js.map +1 -1
  224. package/dist/members/request.d.ts +67 -11
  225. package/dist/members/request.js +102 -54
  226. package/dist/members/request.js.map +1 -1
  227. package/dist/members/types.js +3 -4
  228. package/dist/members/types.js.map +1 -1
  229. package/dist/members/util.d.ts +214 -1
  230. package/dist/members/util.js +327 -284
  231. package/dist/members/util.js.map +1 -1
  232. package/dist/metrics/constants.d.ts +15 -6
  233. package/dist/metrics/constants.js +17 -9
  234. package/dist/metrics/constants.js.map +1 -1
  235. package/dist/metrics/index.d.ts +4 -111
  236. package/dist/metrics/index.js +4 -452
  237. package/dist/metrics/index.js.map +1 -1
  238. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  239. package/dist/multistream/mediaRequestManager.js +344 -0
  240. package/dist/multistream/mediaRequestManager.js.map +1 -0
  241. package/dist/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/multistream/receiveSlot.js +200 -0
  243. package/dist/multistream/receiveSlot.js.map +1 -0
  244. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  245. package/dist/multistream/receiveSlotManager.js +174 -0
  246. package/dist/multistream/receiveSlotManager.js.map +1 -0
  247. package/dist/multistream/remoteMedia.d.ts +72 -0
  248. package/dist/multistream/remoteMedia.js +268 -0
  249. package/dist/multistream/remoteMedia.js.map +1 -0
  250. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  251. package/dist/multistream/remoteMediaGroup.js +267 -0
  252. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  253. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  254. package/dist/multistream/remoteMediaManager.js +1211 -0
  255. package/dist/multistream/remoteMediaManager.js.map +1 -0
  256. package/dist/multistream/sendSlotManager.d.ts +61 -0
  257. package/dist/multistream/sendSlotManager.js +236 -0
  258. package/dist/multistream/sendSlotManager.js.map +1 -0
  259. package/dist/networkQualityMonitor/index.js +5 -4
  260. package/dist/networkQualityMonitor/index.js.map +1 -1
  261. package/dist/personal-meeting-room/index.js +2 -3
  262. package/dist/personal-meeting-room/index.js.map +1 -1
  263. package/dist/personal-meeting-room/request.js +2 -3
  264. package/dist/personal-meeting-room/request.js.map +1 -1
  265. package/dist/personal-meeting-room/util.js +1 -2
  266. package/dist/personal-meeting-room/util.js.map +1 -1
  267. package/dist/reachability/clusterReachability.d.ts +109 -0
  268. package/dist/reachability/clusterReachability.js +357 -0
  269. package/dist/reachability/clusterReachability.js.map +1 -0
  270. package/dist/reachability/index.d.ts +61 -95
  271. package/dist/reachability/index.js +304 -392
  272. package/dist/reachability/index.js.map +1 -1
  273. package/dist/reachability/request.d.ts +7 -3
  274. package/dist/reachability/request.js +18 -10
  275. package/dist/reachability/request.js.map +1 -1
  276. package/dist/reachability/util.d.ts +8 -0
  277. package/dist/reachability/util.js +29 -0
  278. package/dist/reachability/util.js.map +1 -0
  279. package/dist/reactions/constants.d.ts +3 -0
  280. package/dist/reactions/constants.js +12 -0
  281. package/dist/reactions/constants.js.map +1 -0
  282. package/dist/reactions/reactions.d.ts +2 -2
  283. package/dist/reactions/reactions.js +4 -6
  284. package/dist/reactions/reactions.js.map +1 -1
  285. package/dist/reactions/reactions.type.d.ts +23 -3
  286. package/dist/reactions/reactions.type.js +21 -23
  287. package/dist/reactions/reactions.type.js.map +1 -1
  288. package/dist/reconnection-manager/index.d.ts +32 -8
  289. package/dist/reconnection-manager/index.js +285 -232
  290. package/dist/reconnection-manager/index.js.map +1 -1
  291. package/dist/recording-controller/enums.js +4 -5
  292. package/dist/recording-controller/enums.js.map +1 -1
  293. package/dist/recording-controller/index.d.ts +15 -1
  294. package/dist/recording-controller/index.js +57 -46
  295. package/dist/recording-controller/index.js.map +1 -1
  296. package/dist/recording-controller/util.d.ts +5 -4
  297. package/dist/recording-controller/util.js +10 -10
  298. package/dist/recording-controller/util.js.map +1 -1
  299. package/dist/roap/index.d.ts +9 -47
  300. package/dist/roap/index.js +100 -238
  301. package/dist/roap/index.js.map +1 -1
  302. package/dist/roap/request.d.ts +18 -12
  303. package/dist/roap/request.js +126 -180
  304. package/dist/roap/request.js.map +1 -1
  305. package/dist/roap/turnDiscovery.d.ts +27 -16
  306. package/dist/roap/turnDiscovery.js +115 -105
  307. package/dist/roap/turnDiscovery.js.map +1 -1
  308. package/dist/rtcMetrics/constants.d.ts +4 -0
  309. package/dist/rtcMetrics/constants.js +11 -0
  310. package/dist/rtcMetrics/constants.js.map +1 -0
  311. package/dist/rtcMetrics/index.d.ts +54 -0
  312. package/dist/rtcMetrics/index.js +140 -0
  313. package/dist/rtcMetrics/index.js.map +1 -0
  314. package/dist/statsAnalyzer/global.d.ts +1 -83
  315. package/dist/statsAnalyzer/global.js +2 -85
  316. package/dist/statsAnalyzer/global.js.map +1 -1
  317. package/dist/statsAnalyzer/index.d.ts +50 -30
  318. package/dist/statsAnalyzer/index.js +436 -511
  319. package/dist/statsAnalyzer/index.js.map +1 -1
  320. package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
  321. package/dist/statsAnalyzer/mqaUtil.js +130 -90
  322. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  323. package/dist/transcription/index.js +1 -2
  324. package/dist/transcription/index.js.map +1 -1
  325. package/dist/webinar/collection.d.ts +16 -0
  326. package/dist/webinar/collection.js +43 -0
  327. package/dist/webinar/collection.js.map +1 -0
  328. package/dist/webinar/index.d.ts +5 -0
  329. package/dist/webinar/index.js +68 -0
  330. package/dist/webinar/index.js.map +1 -0
  331. package/package.json +39 -26
  332. package/src/annotation/annotation.types.ts +50 -0
  333. package/src/annotation/constants.ts +36 -0
  334. package/src/annotation/index.ts +328 -0
  335. package/src/breakouts/README.md +220 -0
  336. package/src/breakouts/breakout.ts +188 -0
  337. package/src/breakouts/collection.ts +19 -0
  338. package/src/breakouts/edit-lock-error.ts +25 -0
  339. package/src/breakouts/events.ts +56 -0
  340. package/src/breakouts/index.ts +925 -0
  341. package/src/breakouts/request.ts +55 -0
  342. package/src/breakouts/utils.ts +57 -0
  343. package/src/common/errors/no-meeting-info.ts +24 -0
  344. package/src/common/errors/webex-errors.ts +36 -12
  345. package/src/common/logs/logger-proxy.ts +1 -1
  346. package/src/common/logs/request.ts +5 -1
  347. package/src/common/queue.ts +22 -8
  348. package/src/config.ts +6 -7
  349. package/src/constants.ts +265 -100
  350. package/src/controls-options-manager/enums.ts +12 -0
  351. package/src/controls-options-manager/index.ts +116 -21
  352. package/src/controls-options-manager/types.ts +59 -0
  353. package/src/controls-options-manager/util.ts +294 -14
  354. package/src/index.ts +44 -0
  355. package/src/interceptors/index.ts +3 -0
  356. package/src/interceptors/locusRetry.ts +67 -0
  357. package/src/interpretation/README.md +60 -0
  358. package/src/interpretation/collection.ts +19 -0
  359. package/src/interpretation/index.ts +332 -0
  360. package/src/interpretation/siLanguage.ts +18 -0
  361. package/src/locus-info/controlsUtils.ts +110 -0
  362. package/src/locus-info/index.ts +450 -61
  363. package/src/locus-info/infoUtils.ts +14 -2
  364. package/src/locus-info/mediaSharesUtils.ts +64 -0
  365. package/src/locus-info/parser.ts +258 -47
  366. package/src/locus-info/selfUtils.ts +85 -2
  367. package/src/media/index.ts +153 -370
  368. package/src/media/properties.ts +106 -136
  369. package/src/media/util.ts +0 -21
  370. package/src/mediaQualityMetrics/config.ts +244 -377
  371. package/src/meeting/in-meeting-actions.ts +176 -0
  372. package/src/meeting/index.ts +4306 -2581
  373. package/src/meeting/locusMediaRequest.ts +313 -0
  374. package/src/meeting/muteState.ts +224 -138
  375. package/src/meeting/request.ts +214 -127
  376. package/src/meeting/request.type.ts +13 -0
  377. package/src/meeting/util.ts +687 -423
  378. package/src/meeting/voicea-meeting.ts +161 -0
  379. package/src/meeting-info/index.ts +81 -8
  380. package/src/meeting-info/meeting-info-v2.ts +163 -13
  381. package/src/meeting-info/util.ts +1 -1
  382. package/src/meeting-info/utilv2.ts +28 -28
  383. package/src/meetings/collection.ts +33 -0
  384. package/src/meetings/index.ts +529 -127
  385. package/src/meetings/meetings.types.ts +12 -0
  386. package/src/meetings/request.ts +2 -0
  387. package/src/meetings/util.ts +116 -5
  388. package/src/member/index.ts +43 -1
  389. package/src/member/types.ts +38 -0
  390. package/src/member/util.ts +125 -28
  391. package/src/members/collection.ts +8 -0
  392. package/src/members/index.ts +187 -52
  393. package/src/members/request.ts +87 -27
  394. package/src/members/util.ts +332 -291
  395. package/src/metrics/constants.ts +15 -6
  396. package/src/metrics/index.ts +1 -471
  397. package/src/multistream/mediaRequestManager.ts +440 -0
  398. package/src/multistream/receiveSlot.ts +184 -0
  399. package/src/multistream/receiveSlotManager.ts +166 -0
  400. package/src/multistream/remoteMedia.ts +254 -0
  401. package/src/multistream/remoteMediaGroup.ts +284 -0
  402. package/src/multistream/remoteMediaManager.ts +1145 -0
  403. package/src/multistream/sendSlotManager.ts +170 -0
  404. package/src/networkQualityMonitor/index.ts +6 -6
  405. package/src/reachability/clusterReachability.ts +320 -0
  406. package/src/reachability/index.ts +246 -347
  407. package/src/reachability/request.ts +17 -8
  408. package/src/reachability/util.ts +24 -0
  409. package/src/reactions/constants.ts +4 -0
  410. package/src/reactions/reactions.ts +4 -4
  411. package/src/reactions/reactions.type.ts +30 -4
  412. package/src/reconnection-manager/index.ts +168 -156
  413. package/src/recording-controller/index.ts +20 -3
  414. package/src/recording-controller/util.ts +26 -9
  415. package/src/roap/index.ts +96 -241
  416. package/src/roap/request.ts +74 -148
  417. package/src/roap/turnDiscovery.ts +62 -56
  418. package/src/rtcMetrics/constants.ts +3 -0
  419. package/src/rtcMetrics/index.ts +124 -0
  420. package/src/statsAnalyzer/global.ts +1 -84
  421. package/src/statsAnalyzer/index.ts +479 -645
  422. package/src/statsAnalyzer/mqaUtil.ts +128 -126
  423. package/src/webinar/collection.ts +31 -0
  424. package/src/webinar/index.ts +62 -0
  425. package/test/integration/spec/converged-space-meetings.js +233 -0
  426. package/test/integration/spec/journey.js +320 -264
  427. package/test/integration/spec/space-meeting.js +77 -4
  428. package/test/unit/spec/annotation/index.ts +418 -0
  429. package/test/unit/spec/breakouts/breakout.ts +237 -0
  430. package/test/unit/spec/breakouts/collection.ts +15 -0
  431. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  432. package/test/unit/spec/breakouts/events.ts +89 -0
  433. package/test/unit/spec/breakouts/index.ts +1790 -0
  434. package/test/unit/spec/breakouts/request.ts +104 -0
  435. package/test/unit/spec/breakouts/utils.js +72 -0
  436. package/test/unit/spec/common/queue.js +31 -2
  437. package/test/unit/spec/controls-options-manager/index.js +163 -0
  438. package/test/unit/spec/controls-options-manager/util.js +576 -60
  439. package/test/unit/spec/fixture/locus.js +1 -0
  440. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  441. package/test/unit/spec/interpretation/collection.ts +15 -0
  442. package/test/unit/spec/interpretation/index.ts +589 -0
  443. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  444. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  445. package/test/unit/spec/locus-info/index.js +1438 -16
  446. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  447. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  448. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  449. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  450. package/test/unit/spec/locus-info/parser.js +116 -35
  451. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  452. package/test/unit/spec/media/index.ts +290 -0
  453. package/test/unit/spec/media/properties.ts +75 -84
  454. package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
  455. package/test/unit/spec/meeting/index.js +8886 -2815
  456. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  457. package/test/unit/spec/meeting/muteState.js +409 -213
  458. package/test/unit/spec/meeting/request.js +523 -43
  459. package/test/unit/spec/meeting/utils.js +834 -24
  460. package/test/unit/spec/meeting-info/index.js +300 -0
  461. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  462. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  463. package/test/unit/spec/meetings/collection.js +26 -0
  464. package/test/unit/spec/meetings/index.js +1446 -217
  465. package/test/unit/spec/meetings/utils.js +202 -2
  466. package/test/unit/spec/member/index.js +32 -9
  467. package/test/unit/spec/member/util.js +499 -61
  468. package/test/unit/spec/members/index.js +394 -5
  469. package/test/unit/spec/members/request.js +206 -27
  470. package/test/unit/spec/members/utils.js +173 -38
  471. package/test/unit/spec/metrics/index.js +1 -50
  472. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  473. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  474. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  475. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  476. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  477. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  478. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  479. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  480. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  481. package/test/unit/spec/reachability/index.ts +532 -24
  482. package/test/unit/spec/reachability/request.js +68 -0
  483. package/test/unit/spec/reachability/util.ts +40 -0
  484. package/test/unit/spec/reconnection-manager/index.js +163 -24
  485. package/test/unit/spec/recording-controller/index.js +293 -218
  486. package/test/unit/spec/recording-controller/util.js +223 -96
  487. package/test/unit/spec/roap/index.ts +187 -77
  488. package/test/unit/spec/roap/request.ts +255 -0
  489. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  490. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  491. package/test/unit/spec/stats-analyzer/index.js +644 -165
  492. package/test/unit/spec/webinar/collection.ts +13 -0
  493. package/test/unit/spec/webinar/index.ts +60 -0
  494. package/test/utils/constants.js +9 -0
  495. package/test/utils/integrationTestUtils.js +46 -0
  496. package/test/utils/testUtils.js +0 -45
  497. package/test/utils/webex-config.js +4 -0
  498. package/test/utils/webex-test-users.js +7 -3
  499. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  500. package/dist/meeting/effectsState.d.ts +0 -42
  501. package/dist/meeting/effectsState.js +0 -260
  502. package/dist/meeting/effectsState.js.map +0 -1
  503. package/dist/metrics/config.d.ts +0 -169
  504. package/dist/metrics/config.js +0 -289
  505. package/dist/metrics/config.js.map +0 -1
  506. package/dist/peer-connection-manager/index.d.ts +0 -6
  507. package/dist/peer-connection-manager/index.js +0 -671
  508. package/dist/peer-connection-manager/index.js.map +0 -1
  509. package/dist/peer-connection-manager/util.d.ts +0 -6
  510. package/dist/peer-connection-manager/util.js +0 -110
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.d.ts +0 -10
  513. package/dist/roap/collection.js +0 -63
  514. package/dist/roap/collection.js.map +0 -1
  515. package/dist/roap/handler.d.ts +0 -47
  516. package/dist/roap/handler.js +0 -279
  517. package/dist/roap/handler.js.map +0 -1
  518. package/dist/roap/state.d.ts +0 -9
  519. package/dist/roap/state.js +0 -127
  520. package/dist/roap/state.js.map +0 -1
  521. package/dist/roap/util.d.ts +0 -2
  522. package/dist/roap/util.js +0 -76
  523. package/dist/roap/util.js.map +0 -1
  524. package/src/index.js +0 -15
  525. package/src/meeting/effectsState.ts +0 -209
  526. package/src/metrics/config.ts +0 -485
  527. package/src/peer-connection-manager/index.ts +0 -847
  528. package/src/peer-connection-manager/util.ts +0 -119
  529. package/src/roap/collection.ts +0 -62
  530. package/src/roap/handler.ts +0 -294
  531. package/src/roap/state.ts +0 -156
  532. package/src/roap/util.ts +0 -100
  533. package/test/unit/spec/meeting/effectsState.js +0 -281
  534. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  535. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  536. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  537. package/test/unit/spec/roap/util.js +0 -30
  538. /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
@@ -18,7 +18,11 @@ MediaSharesUtils.parse = function (mediaShares) {
18
18
  return {
19
19
  content: {
20
20
  beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),
21
- disposition: MediaSharesUtils.getContentDisposition(mediaShares)
21
+ disposition: MediaSharesUtils.getContentDisposition(mediaShares),
22
+ annotation: MediaSharesUtils.getContentAnnotation(mediaShares),
23
+ url: MediaSharesUtils.getContentUrl(mediaShares),
24
+ shareInstanceId: MediaSharesUtils.getShareInstanceId(mediaShares),
25
+ deviceUrlSharing: MediaSharesUtils.getContentBeneficiaryDeviceUrl(mediaShares)
22
26
  },
23
27
  whiteboard: {
24
28
  beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),
@@ -139,6 +143,58 @@ MediaSharesUtils.getContentBeneficiaryId = function (mediaShares) {
139
143
  return contentFloor.beneficiary.id;
140
144
  };
141
145
 
146
+ /**
147
+ * get live annotation is sharing from media shares (content)
148
+ * @param {Object} mediaShares
149
+ * @returns {Object}
150
+ */
151
+ MediaSharesUtils.getContentAnnotation = function (mediaShares) {
152
+ var extractContent = MediaSharesUtils.extractContent(mediaShares);
153
+ if (!extractContent || !extractContent.annotation) {
154
+ return undefined;
155
+ }
156
+ return extractContent.annotation;
157
+ };
158
+
159
+ /**
160
+ * get url is sharing from media shares (content)
161
+ * @param {Object} mediaShares
162
+ * @returns {Object}
163
+ */
164
+ MediaSharesUtils.getContentUrl = function (mediaShares) {
165
+ var extractContent = MediaSharesUtils.extractContent(mediaShares);
166
+ if (!extractContent || !extractContent.url) {
167
+ return undefined;
168
+ }
169
+ return extractContent.url;
170
+ };
171
+
172
+ /**
173
+ * get shareInstanceId is sharing from media shares (content)
174
+ * @param {Object} mediaShares
175
+ * @returns {Object}
176
+ */
177
+ MediaSharesUtils.getShareInstanceId = function (mediaShares) {
178
+ var extractContent = MediaSharesUtils.extractContent(mediaShares);
179
+ if (!extractContent || !extractContent.floor || !extractContent.floor.shareInstanceId) {
180
+ return undefined;
181
+ }
182
+ return extractContent.floor.shareInstanceId;
183
+ };
184
+
185
+ /**
186
+ * get deviceUrl that is requesting the floor for media shares (content)
187
+ * @param {Object} mediaShares
188
+ * @returns {Object}
189
+ */
190
+ MediaSharesUtils.getContentBeneficiaryDeviceUrl = function (mediaShares) {
191
+ var contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);
192
+ if (!contentFloor || !contentFloor.beneficiary || !contentFloor.beneficiary.deviceUrl) {
193
+ return null;
194
+ }
195
+ return contentFloor.beneficiary.deviceUrl;
196
+ };
197
+
142
198
  /**
143
199
  * get who is sharing from media shares (whiteboard)
144
200
  * @param {Object} mediaShares
@@ -164,6 +220,5 @@ MediaSharesUtils.getWhiteboardResourceUrl = function (mediaShares) {
164
220
  }
165
221
  return whiteboard.resourceUrl;
166
222
  };
167
- var _default = MediaSharesUtils;
168
- exports.default = _default;
223
+ var _default = exports.default = MediaSharesUtils;
169
224
  //# sourceMappingURL=mediaSharesUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","MediaSharesUtils","parse","mediaShares","content","beneficiaryId","getContentBeneficiaryId","disposition","getContentDisposition","whiteboard","getWhiteboardBeneficiaryId","getWhiteboardDisposition","resourceUrl","getWhiteboardResourceUrl","getMediaShares","oldShare","newShare","previous","current","contentFloor","extractContentFloor","whiteboardFloor","extractWhiteboardFloor","extractContent","length","find","share","name","CONTENT","extractWhiteboard","WHITEBOARD","extractFloor","mediaStream","floor","beneficiary","id","_default","exports","default"],"sources":["mediaSharesUtils.ts"],"sourcesContent":["import {CONTENT, WHITEBOARD} from '../constants';\n\nconst MediaSharesUtils: any = {};\n\n/**\n * parses the relevant values for mediaShares: contentId, disposition\n * @param {Object} mediaShares\n * @returns {undefined}\n */\nMediaSharesUtils.parse = (mediaShares: object) => {\n if (mediaShares) {\n return {\n content: {\n beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getContentDisposition(mediaShares),\n },\n whiteboard: {\n beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getWhiteboardDisposition(mediaShares),\n resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares),\n },\n };\n }\n\n return null;\n};\n\n/**\n * get the previous and current mediaShares values parsed, as well as the boolean updates\n * @param {Object} oldShare\n * @param {Object} newShare\n * @returns {Object}\n * previous: {Object} old share, current: {Object} new share,\n */\nMediaSharesUtils.getMediaShares = (oldShare: object, newShare: object) => {\n const previous = oldShare && MediaSharesUtils.parse(oldShare);\n const current = newShare && MediaSharesUtils.parse(newShare);\n\n return {\n previous,\n current,\n };\n};\n\n/**\n * get the content floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getContentDisposition = (mediaShares: object) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n return contentFloor ? contentFloor.disposition : null;\n};\n\n/**\n * get the whiteboard floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getWhiteboardDisposition = (mediaShares: object) => {\n const whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n\n return whiteboardFloor ? whiteboardFloor.disposition : null;\n};\n\n/**\n * extract the content property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContent = (mediaShares: any) => {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n\n return mediaShares.find((share) => share.name === CONTENT) || null;\n};\n\n/**\n * extract the whiteboard property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboard = (mediaShares: any) => {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n\n return mediaShares.find((share) => share.name === WHITEBOARD) || null;\n};\n\n/**\n * extract the media stream floor property from content object\n * @param {Object} mediaStream\n * @returns {Object}\n */\nMediaSharesUtils.extractFloor = (mediaStream: any) => {\n if (!mediaStream) {\n return null;\n }\n\n return mediaStream.floor;\n};\n\n/**\n * extract the content's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContentFloor = (mediaShares: object) => {\n const content = MediaSharesUtils.extractContent(mediaShares);\n\n return MediaSharesUtils.extractFloor(content);\n};\n\n/**\n * extract the whiteboard's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboardFloor = (mediaShares: object) => {\n const whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n\n return MediaSharesUtils.extractFloor(whiteboard);\n};\n\n/**\n * get who is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentBeneficiaryId = (mediaShares: object) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n if (!contentFloor || !contentFloor.beneficiary) {\n return null;\n }\n\n return contentFloor.beneficiary.id;\n};\n\n/**\n * get who is sharing from media shares (whiteboard)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardBeneficiaryId = (mediaShares: object) => {\n const whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n\n if (!whiteboardFloor || !whiteboardFloor.beneficiary) {\n return null;\n }\n\n return whiteboardFloor.beneficiary.id;\n};\n\n/**\n * get the which whiteboard is being shared via resource url\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardResourceUrl = (mediaShares: object) => {\n const whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n\n if (!whiteboard || !whiteboard.resourceUrl) {\n return null;\n }\n\n return whiteboard.resourceUrl;\n};\n\nexport default MediaSharesUtils;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","MediaSharesUtils","parse","mediaShares","content","beneficiaryId","getContentBeneficiaryId","disposition","getContentDisposition","annotation","getContentAnnotation","url","getContentUrl","shareInstanceId","getShareInstanceId","deviceUrlSharing","getContentBeneficiaryDeviceUrl","whiteboard","getWhiteboardBeneficiaryId","getWhiteboardDisposition","resourceUrl","getWhiteboardResourceUrl","getMediaShares","oldShare","newShare","previous","current","contentFloor","extractContentFloor","whiteboardFloor","extractWhiteboardFloor","extractContent","length","find","share","name","CONTENT","extractWhiteboard","WHITEBOARD","extractFloor","mediaStream","floor","beneficiary","id","undefined","deviceUrl","_default","exports","default"],"sources":["mediaSharesUtils.ts"],"sourcesContent":["import {CONTENT, WHITEBOARD} from '../constants';\n\nconst MediaSharesUtils: any = {};\n\n/**\n * parses the relevant values for mediaShares: contentId, disposition\n * @param {Object} mediaShares\n * @returns {undefined}\n */\nMediaSharesUtils.parse = (mediaShares: object) => {\n if (mediaShares) {\n return {\n content: {\n beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getContentDisposition(mediaShares),\n annotation: MediaSharesUtils.getContentAnnotation(mediaShares),\n url: MediaSharesUtils.getContentUrl(mediaShares),\n shareInstanceId: MediaSharesUtils.getShareInstanceId(mediaShares),\n deviceUrlSharing: MediaSharesUtils.getContentBeneficiaryDeviceUrl(mediaShares),\n },\n whiteboard: {\n beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getWhiteboardDisposition(mediaShares),\n resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares),\n },\n };\n }\n\n return null;\n};\n\n/**\n * get the previous and current mediaShares values parsed, as well as the boolean updates\n * @param {Object} oldShare\n * @param {Object} newShare\n * @returns {Object}\n * previous: {Object} old share, current: {Object} new share,\n */\nMediaSharesUtils.getMediaShares = (oldShare: object, newShare: object) => {\n const previous = oldShare && MediaSharesUtils.parse(oldShare);\n const current = newShare && MediaSharesUtils.parse(newShare);\n\n return {\n previous,\n current,\n };\n};\n\n/**\n * get the content floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getContentDisposition = (mediaShares: object) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n return contentFloor ? contentFloor.disposition : null;\n};\n\n/**\n * get the whiteboard floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getWhiteboardDisposition = (mediaShares: object) => {\n const whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n\n return whiteboardFloor ? whiteboardFloor.disposition : null;\n};\n\n/**\n * extract the content property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContent = (mediaShares: any) => {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n\n return mediaShares.find((share) => share.name === CONTENT) || null;\n};\n\n/**\n * extract the whiteboard property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboard = (mediaShares: any) => {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n\n return mediaShares.find((share) => share.name === WHITEBOARD) || null;\n};\n\n/**\n * extract the media stream floor property from content object\n * @param {Object} mediaStream\n * @returns {Object}\n */\nMediaSharesUtils.extractFloor = (mediaStream: any) => {\n if (!mediaStream) {\n return null;\n }\n\n return mediaStream.floor;\n};\n\n/**\n * extract the content's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContentFloor = (mediaShares: object) => {\n const content = MediaSharesUtils.extractContent(mediaShares);\n\n return MediaSharesUtils.extractFloor(content);\n};\n\n/**\n * extract the whiteboard's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboardFloor = (mediaShares: object) => {\n const whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n\n return MediaSharesUtils.extractFloor(whiteboard);\n};\n\n/**\n * get who is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentBeneficiaryId = (mediaShares: object) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n if (!contentFloor || !contentFloor.beneficiary) {\n return null;\n }\n\n return contentFloor.beneficiary.id;\n};\n\n/**\n * get live annotation is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentAnnotation = (mediaShares: object) => {\n const extractContent = MediaSharesUtils.extractContent(mediaShares);\n\n if (!extractContent || !extractContent.annotation) {\n return undefined;\n }\n\n return extractContent.annotation;\n};\n\n/**\n * get url is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentUrl = (mediaShares: object) => {\n const extractContent = MediaSharesUtils.extractContent(mediaShares);\n\n if (!extractContent || !extractContent.url) {\n return undefined;\n }\n\n return extractContent.url;\n};\n\n/**\n * get shareInstanceId is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getShareInstanceId = (mediaShares: object) => {\n const extractContent = MediaSharesUtils.extractContent(mediaShares);\n\n if (!extractContent || !extractContent.floor || !extractContent.floor.shareInstanceId) {\n return undefined;\n }\n\n return extractContent.floor.shareInstanceId;\n};\n\n/**\n * get deviceUrl that is requesting the floor for media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentBeneficiaryDeviceUrl = (mediaShares: object) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n if (!contentFloor || !contentFloor.beneficiary || !contentFloor.beneficiary.deviceUrl) {\n return null;\n }\n\n return contentFloor.beneficiary.deviceUrl;\n};\n\n/**\n * get who is sharing from media shares (whiteboard)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardBeneficiaryId = (mediaShares: object) => {\n const whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n\n if (!whiteboardFloor || !whiteboardFloor.beneficiary) {\n return null;\n }\n\n return whiteboardFloor.beneficiary.id;\n};\n\n/**\n * get the which whiteboard is being shared via resource url\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardResourceUrl = (mediaShares: object) => {\n const whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n\n if (!whiteboard || !whiteboard.resourceUrl) {\n return null;\n }\n\n return whiteboard.resourceUrl;\n};\n\nexport default MediaSharesUtils;\n"],"mappings":"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"}
@@ -1,14 +1,25 @@
1
+ import SortedQueue from '../common/queue';
2
+ type LocusDeltaDto = {
3
+ url: string;
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,24 @@ 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;
32
+ LOCUS_URL_CHANGED: string;
20
33
  };
21
- queue: any;
34
+ queue: SortedQueue<LocusDeltaDto>;
22
35
  workingCopy: any;
36
+ syncTimer?: ReturnType<typeof setTimeout>;
23
37
  /**
24
38
  * @constructs Parser
25
39
  */
26
40
  constructor();
41
+ /**
42
+ * Returns a debug string representing a locus delta - useful for logging
43
+ *
44
+ * @param {LocusDeltaDto} locus Locus delta
45
+ * @returns {string}
46
+ */
47
+ static locus2string(locus: LocusDeltaDto): string;
27
48
  /**
28
49
  * Checks if two sequences overlap in time,
29
50
  * the sequence with the higher minimum value is greater.
@@ -80,6 +101,21 @@ export default class Parser {
80
101
  * @returns {string} loci comparison state
81
102
  */
82
103
  private static compareDelta;
104
+ /**
105
+ * Compares Locus sequences - it should be called only for full Locus DTOs, not deltas
106
+ *
107
+ * @param {Types~Locus} current Current working copy
108
+ * @param {Types~Locus} incomingFullDto New Full Locus DTO
109
+ * @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
110
+ */
111
+ static compareFullDtoSequence(current: any, incomingFullDto: any): string;
112
+ /**
113
+ * Returns true if the incoming full locus DTO is newer than the current working copy
114
+ *
115
+ * @param {Types~Locus} incomingFullDto New Full Locus DTO
116
+ * @returns {string} either Parser.loci.USE_INCOMING or Parser.loci.USE_CURRENT
117
+ */
118
+ isNewFullLocus(incomingFullDto: any): boolean;
83
119
  /**
84
120
  * Compares Locus sequences
85
121
  * @param {Types~Locus} current Current working copy
@@ -190,6 +226,29 @@ export default class Parser {
190
226
  * @returns {undefined}
191
227
  */
192
228
  pause(): void;
229
+ /**
230
+ * Triggers a sync with Locus
231
+ *
232
+ * @param {string} reason used just for logging
233
+ * @returns {undefined}
234
+ */
235
+ private triggerSync;
236
+ /**
237
+ * Starts a timer with a random delay. When that timer expires we will do a sync.
238
+ *
239
+ * The main purpose of this timer is to handle a case when we get some out-of-order deltas,
240
+ * so we start waiting to receive the missing delta. If that delta never arrives, this timer
241
+ * will trigger a sync with Locus.
242
+ *
243
+ * @returns {undefined}
244
+ */
245
+ private startSyncTimer;
246
+ /**
247
+ * Stops the timer for triggering a sync
248
+ *
249
+ * @returns {undefined}
250
+ */
251
+ private stopSyncTimer;
193
252
  /**
194
253
  * Processes next locus delta in the queue,
195
254
  * continues until the queue is empty
@@ -210,3 +269,4 @@ export default class Parser {
210
269
  */
211
270
  static getDebugMessage(debugCode: string, comparison: string): any;
212
271
  }
272
+ export {};