@webex/plugin-meetings 3.0.0-beta.22 → 3.0.0-beta.221

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 (419) 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 +3 -2
  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 +3 -8
  27. package/dist/config.js.map +1 -1
  28. package/dist/constants.js +188 -30
  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/mediaQualityMetrics/config.js +505 -493
  65. package/dist/mediaQualityMetrics/config.js.map +1 -1
  66. package/dist/meeting/in-meeting-actions.js +90 -2
  67. package/dist/meeting/in-meeting-actions.js.map +1 -1
  68. package/dist/meeting/index.js +2587 -2560
  69. package/dist/meeting/index.js.map +1 -1
  70. package/dist/meeting/locusMediaRequest.js +292 -0
  71. package/dist/meeting/locusMediaRequest.js.map +1 -0
  72. package/dist/meeting/muteState.js +228 -123
  73. package/dist/meeting/muteState.js.map +1 -1
  74. package/dist/meeting/request.js +244 -194
  75. package/dist/meeting/request.js.map +1 -1
  76. package/dist/meeting/util.js +568 -414
  77. package/dist/meeting/util.js.map +1 -1
  78. package/dist/meeting-info/index.js +48 -7
  79. package/dist/meeting-info/index.js.map +1 -1
  80. package/dist/meeting-info/meeting-info-v2.js +171 -51
  81. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +20 -5
  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 +361 -84
  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 +3 -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 +173 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/networkQualityMonitor/index.js +4 -2
  127. package/dist/networkQualityMonitor/index.js.map +1 -1
  128. package/dist/reachability/index.js +90 -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 +196 -155
  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 +25 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +111 -89
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +97 -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/global.js +1 -93
  149. package/dist/statsAnalyzer/global.js.map +1 -1
  150. package/dist/statsAnalyzer/index.js +326 -311
  151. package/dist/statsAnalyzer/index.js.map +1 -1
  152. package/dist/statsAnalyzer/mqaUtil.js +90 -53
  153. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  154. package/dist/types/annotation/annotation.types.d.ts +42 -0
  155. package/dist/types/annotation/constants.d.ts +31 -0
  156. package/dist/types/annotation/index.d.ts +117 -0
  157. package/dist/types/breakouts/breakout.d.ts +8 -0
  158. package/dist/types/breakouts/collection.d.ts +5 -0
  159. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  160. package/dist/types/breakouts/events.d.ts +8 -0
  161. package/dist/types/breakouts/index.d.ts +5 -0
  162. package/dist/types/breakouts/request.d.ts +22 -0
  163. package/dist/types/breakouts/utils.d.ts +15 -0
  164. package/dist/types/common/browser-detection.d.ts +9 -0
  165. package/dist/types/common/collection.d.ts +48 -0
  166. package/dist/types/common/config.d.ts +2 -0
  167. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  168. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  169. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  170. package/dist/types/common/errors/media.d.ts +15 -0
  171. package/dist/types/common/errors/parameter.d.ts +15 -0
  172. package/dist/types/common/errors/password-error.d.ts +15 -0
  173. package/dist/types/common/errors/permission.d.ts +14 -0
  174. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  175. package/dist/types/common/errors/reconnection.d.ts +15 -0
  176. package/dist/types/common/errors/stats.d.ts +15 -0
  177. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  178. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  179. package/dist/types/common/events/events-scope.d.ts +17 -0
  180. package/dist/types/common/events/events.d.ts +12 -0
  181. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  182. package/dist/types/common/events/util.d.ts +2 -0
  183. package/dist/types/common/logs/logger-config.d.ts +2 -0
  184. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  185. package/dist/types/common/logs/request.d.ts +34 -0
  186. package/dist/types/common/queue.d.ts +34 -0
  187. package/dist/types/config.d.ts +72 -0
  188. package/dist/types/constants.d.ts +1028 -0
  189. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  190. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  191. package/dist/types/controls-options-manager/index.d.ts +136 -0
  192. package/dist/types/controls-options-manager/types.d.ts +43 -0
  193. package/dist/types/controls-options-manager/util.d.ts +1 -0
  194. package/dist/types/index.d.ts +7 -0
  195. package/dist/types/interpretation/collection.d.ts +5 -0
  196. package/dist/types/interpretation/index.d.ts +5 -0
  197. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  198. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  199. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  200. package/dist/types/locus-info/fullState.d.ts +2 -0
  201. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  202. package/dist/types/locus-info/index.d.ts +322 -0
  203. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  204. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  205. package/dist/types/locus-info/parser.d.ts +271 -0
  206. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  207. package/dist/types/media/index.d.ts +34 -0
  208. package/dist/types/media/properties.d.ts +93 -0
  209. package/dist/types/media/util.d.ts +2 -0
  210. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  211. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  212. package/dist/types/meeting/index.d.ts +1512 -0
  213. package/dist/types/meeting/locusMediaRequest.d.ts +75 -0
  214. package/dist/types/meeting/muteState.d.ts +184 -0
  215. package/dist/types/meeting/request.d.ts +289 -0
  216. package/dist/types/meeting/request.type.d.ts +11 -0
  217. package/dist/types/meeting/state.d.ts +9 -0
  218. package/dist/types/meeting/util.d.ts +94 -0
  219. package/dist/types/meeting-info/collection.d.ts +20 -0
  220. package/dist/types/meeting-info/index.d.ts +62 -0
  221. package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
  222. package/dist/types/meeting-info/request.d.ts +22 -0
  223. package/dist/types/meeting-info/util.d.ts +2 -0
  224. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  225. package/dist/types/meetings/collection.d.ts +31 -0
  226. package/dist/types/meetings/index.d.ts +361 -0
  227. package/dist/types/meetings/meetings.types.d.ts +4 -0
  228. package/dist/types/meetings/request.d.ts +27 -0
  229. package/dist/types/meetings/util.d.ts +18 -0
  230. package/dist/types/member/index.d.ts +159 -0
  231. package/dist/types/member/types.d.ts +32 -0
  232. package/dist/types/member/util.d.ts +2 -0
  233. package/dist/types/members/collection.d.ts +29 -0
  234. package/dist/types/members/index.d.ts +353 -0
  235. package/dist/types/members/request.d.ts +114 -0
  236. package/dist/types/members/types.d.ts +24 -0
  237. package/dist/types/members/util.d.ts +210 -0
  238. package/dist/types/metrics/constants.d.ts +55 -0
  239. package/dist/types/metrics/index.d.ts +45 -0
  240. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  241. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  242. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  243. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  244. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  245. package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
  246. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  247. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  248. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  249. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  250. package/dist/types/reachability/index.d.ts +158 -0
  251. package/dist/types/reachability/request.d.ts +39 -0
  252. package/dist/types/reactions/constants.d.ts +3 -0
  253. package/dist/types/reactions/reactions.d.ts +4 -0
  254. package/dist/types/reactions/reactions.type.d.ts +52 -0
  255. package/dist/types/reconnection-manager/index.d.ts +126 -0
  256. package/dist/types/recording-controller/enums.d.ts +7 -0
  257. package/dist/types/recording-controller/index.d.ts +207 -0
  258. package/dist/types/recording-controller/util.d.ts +14 -0
  259. package/dist/types/roap/index.d.ts +77 -0
  260. package/dist/types/roap/request.d.ts +38 -0
  261. package/dist/types/roap/turnDiscovery.d.ts +91 -0
  262. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  263. package/dist/types/rtcMetrics/index.d.ts +47 -0
  264. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  265. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  266. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  267. package/dist/types/transcription/index.d.ts +64 -0
  268. package/package.json +23 -20
  269. package/src/annotation/annotation.types.ts +50 -0
  270. package/src/annotation/constants.ts +36 -0
  271. package/src/annotation/index.ts +328 -0
  272. package/src/breakouts/README.md +44 -14
  273. package/src/breakouts/breakout.ts +87 -9
  274. package/src/breakouts/edit-lock-error.ts +25 -0
  275. package/src/breakouts/events.ts +56 -0
  276. package/src/breakouts/index.ts +710 -10
  277. package/src/breakouts/request.ts +55 -0
  278. package/src/breakouts/utils.ts +57 -0
  279. package/src/common/errors/webex-errors.ts +6 -2
  280. package/src/common/logs/logger-proxy.ts +1 -1
  281. package/src/common/queue.ts +22 -8
  282. package/src/config.ts +2 -7
  283. package/src/constants.ts +175 -21
  284. package/src/controls-options-manager/constants.ts +5 -0
  285. package/src/controls-options-manager/enums.ts +18 -0
  286. package/src/controls-options-manager/index.ts +278 -0
  287. package/src/controls-options-manager/types.ts +59 -0
  288. package/src/controls-options-manager/util.ts +300 -0
  289. package/src/index.ts +39 -0
  290. package/src/interpretation/README.md +60 -0
  291. package/src/interpretation/collection.ts +19 -0
  292. package/src/interpretation/index.ts +332 -0
  293. package/src/interpretation/siLanguage.ts +18 -0
  294. package/src/locus-info/controlsUtils.ts +108 -0
  295. package/src/locus-info/index.ts +381 -59
  296. package/src/locus-info/infoUtils.ts +10 -2
  297. package/src/locus-info/mediaSharesUtils.ts +48 -0
  298. package/src/locus-info/parser.ts +224 -39
  299. package/src/locus-info/selfUtils.ts +81 -5
  300. package/src/media/index.ts +89 -109
  301. package/src/media/properties.ts +49 -90
  302. package/src/mediaQualityMetrics/config.ts +379 -377
  303. package/src/meeting/in-meeting-actions.ts +179 -3
  304. package/src/meeting/index.ts +2062 -2137
  305. package/src/meeting/locusMediaRequest.ts +314 -0
  306. package/src/meeting/muteState.ts +227 -130
  307. package/src/meeting/request.ts +157 -116
  308. package/src/meeting/util.ts +555 -396
  309. package/src/meeting-info/index.ts +54 -8
  310. package/src/meeting-info/meeting-info-v2.ts +148 -14
  311. package/src/meeting-info/utilv2.ts +13 -3
  312. package/src/meetings/collection.ts +20 -0
  313. package/src/meetings/index.ts +397 -102
  314. package/src/meetings/meetings.types.ts +12 -0
  315. package/src/meetings/request.ts +2 -0
  316. package/src/meetings/util.ts +103 -4
  317. package/src/member/index.ts +49 -0
  318. package/src/member/types.ts +38 -0
  319. package/src/member/util.ts +127 -25
  320. package/src/members/collection.ts +8 -0
  321. package/src/members/index.ts +107 -6
  322. package/src/members/request.ts +97 -17
  323. package/src/members/types.ts +28 -0
  324. package/src/members/util.ts +319 -240
  325. package/src/metrics/constants.ts +2 -4
  326. package/src/metrics/index.ts +1 -490
  327. package/src/multistream/mediaRequestManager.ts +289 -79
  328. package/src/multistream/receiveSlot.ts +55 -18
  329. package/src/multistream/receiveSlotManager.ts +46 -24
  330. package/src/multistream/remoteMedia.ts +27 -2
  331. package/src/multistream/remoteMediaGroup.ts +59 -0
  332. package/src/multistream/remoteMediaManager.ts +113 -32
  333. package/src/networkQualityMonitor/index.ts +6 -6
  334. package/src/reachability/index.ts +76 -18
  335. package/src/reachability/request.ts +16 -7
  336. package/src/reconnection-manager/index.ts +68 -43
  337. package/src/recording-controller/index.ts +20 -3
  338. package/src/recording-controller/util.ts +26 -9
  339. package/src/roap/index.ts +25 -30
  340. package/src/roap/request.ts +103 -95
  341. package/src/roap/turnDiscovery.ts +51 -25
  342. package/src/rtcMetrics/constants.ts +3 -0
  343. package/src/rtcMetrics/index.ts +100 -0
  344. package/src/statsAnalyzer/global.ts +1 -94
  345. package/src/statsAnalyzer/index.ts +376 -386
  346. package/src/statsAnalyzer/mqaUtil.ts +100 -99
  347. package/test/integration/spec/converged-space-meetings.js +233 -0
  348. package/test/integration/spec/journey.js +336 -259
  349. package/test/integration/spec/space-meeting.js +77 -4
  350. package/test/unit/spec/annotation/index.ts +418 -0
  351. package/test/unit/spec/breakouts/breakout.ts +142 -24
  352. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  353. package/test/unit/spec/breakouts/events.ts +89 -0
  354. package/test/unit/spec/breakouts/index.ts +1545 -48
  355. package/test/unit/spec/breakouts/request.ts +104 -0
  356. package/test/unit/spec/breakouts/utils.js +72 -0
  357. package/test/unit/spec/common/queue.js +31 -2
  358. package/test/unit/spec/controls-options-manager/index.js +287 -0
  359. package/test/unit/spec/controls-options-manager/util.js +582 -0
  360. package/test/unit/spec/fixture/locus.js +1 -0
  361. package/test/unit/spec/interpretation/collection.ts +15 -0
  362. package/test/unit/spec/interpretation/index.ts +589 -0
  363. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  364. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  365. package/test/unit/spec/locus-info/index.js +1169 -36
  366. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  367. package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
  368. package/test/unit/spec/locus-info/parser.js +62 -22
  369. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  370. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  371. package/test/unit/spec/media/index.ts +138 -28
  372. package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
  373. package/test/unit/spec/meeting/index.js +3510 -1747
  374. package/test/unit/spec/meeting/locusMediaRequest.ts +443 -0
  375. package/test/unit/spec/meeting/muteState.js +370 -208
  376. package/test/unit/spec/meeting/request.js +417 -45
  377. package/test/unit/spec/meeting/utils.js +601 -53
  378. package/test/unit/spec/meeting-info/index.js +181 -0
  379. package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
  380. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  381. package/test/unit/spec/meetings/collection.js +14 -0
  382. package/test/unit/spec/meetings/index.js +874 -150
  383. package/test/unit/spec/meetings/utils.js +206 -2
  384. package/test/unit/spec/member/index.js +58 -4
  385. package/test/unit/spec/member/util.js +479 -35
  386. package/test/unit/spec/members/index.js +319 -1
  387. package/test/unit/spec/members/request.js +206 -27
  388. package/test/unit/spec/members/utils.js +184 -0
  389. package/test/unit/spec/metrics/index.js +1 -50
  390. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  391. package/test/unit/spec/multistream/receiveSlot.ts +72 -13
  392. package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
  393. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  394. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  395. package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
  396. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  397. package/test/unit/spec/reachability/index.ts +185 -7
  398. package/test/unit/spec/reachability/request.js +68 -0
  399. package/test/unit/spec/reconnection-manager/index.js +59 -6
  400. package/test/unit/spec/recording-controller/index.js +294 -218
  401. package/test/unit/spec/recording-controller/util.js +223 -96
  402. package/test/unit/spec/roap/index.ts +27 -51
  403. package/test/unit/spec/roap/request.ts +202 -85
  404. package/test/unit/spec/roap/turnDiscovery.ts +36 -8
  405. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  406. package/test/unit/spec/stats-analyzer/index.js +92 -41
  407. package/test/utils/constants.js +9 -0
  408. package/test/utils/integrationTestUtils.js +46 -0
  409. package/test/utils/testUtils.js +0 -45
  410. package/test/utils/webex-config.js +4 -0
  411. package/test/utils/webex-test-users.js +6 -3
  412. package/dist/meeting/effectsState.js +0 -262
  413. package/dist/meeting/effectsState.js.map +0 -1
  414. package/dist/metrics/config.js +0 -299
  415. package/dist/metrics/config.js.map +0 -1
  416. package/src/index.js +0 -16
  417. package/src/meeting/effectsState.ts +0 -211
  418. package/src/metrics/config.ts +0 -495
  419. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -0,0 +1,75 @@
1
+ import { WebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ export type MediaRequestType = 'RoapMessage' | 'LocalMute';
4
+ export type RequestResult = any;
5
+ export type RoapRequest = {
6
+ type: 'RoapMessage';
7
+ selfUrl: string;
8
+ mediaId: string;
9
+ roapMessage: any;
10
+ reachability: any;
11
+ sequence?: any;
12
+ joinCookie: any;
13
+ ipVersion: IP_VERSION;
14
+ };
15
+ export type LocalMuteRequest = {
16
+ type: 'LocalMute';
17
+ selfUrl: string;
18
+ mediaId: string;
19
+ sequence?: any;
20
+ muteOptions: {
21
+ audioMuted?: boolean;
22
+ videoMuted?: boolean;
23
+ };
24
+ ipVersion: IP_VERSION;
25
+ };
26
+ export type Request = RoapRequest | LocalMuteRequest;
27
+ export type Config = {
28
+ device: {
29
+ url: string;
30
+ deviceType: string;
31
+ countryCode?: string;
32
+ regionCode?: string;
33
+ };
34
+ correlationId: string;
35
+ preferTranscoding: boolean;
36
+ };
37
+ /**
38
+ * This class manages all /media API requests to Locus. Every call to that
39
+ * Locus API has to go through this class.
40
+ */
41
+ export declare class LocusMediaRequest extends WebexPlugin {
42
+ private config;
43
+ private latestAudioMuted?;
44
+ private latestVideoMuted?;
45
+ private isRequestInProgress;
46
+ private queuedRequests;
47
+ private confluenceState;
48
+ /**
49
+ * Constructor
50
+ */
51
+ constructor(config: Config, options: any);
52
+ /**
53
+ * Add a request to the internal queue.
54
+ */
55
+ private addToQueue;
56
+ /**
57
+ * Takes the next request from the queue and executes it. Once that
58
+ * request is completed, the next one will be taken from the queue
59
+ * and executed and this is repeated until the queue is empty.
60
+ */
61
+ private executeNextQueuedRequest;
62
+ /**
63
+ * Returns latest requested audio and video mute values. If they have never been
64
+ * requested, we assume audio/video to be muted.
65
+ */
66
+ private getLatestMuteState;
67
+ /**
68
+ * Prepares the uri and body for the media request to be sent to Locus
69
+ */
70
+ private sendHttpRequest;
71
+ /**
72
+ * Sends a media request to Locus
73
+ */
74
+ send(request: Request): Promise<RequestResult>;
75
+ }
@@ -0,0 +1,184 @@
1
+ import { ServerMuteReason } from '@webex/media-helpers';
2
+ export declare const createMuteState: (type: any, meeting: any, enabled: boolean) => MuteState;
3
+ /** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches
4
+ the last requested state by the client.
5
+
6
+ More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#
7
+
8
+ This class is exported only for unit tests. It should never be instantiated directly with new MuteState(), instead createMuteState() should be called
9
+ */
10
+ export declare class MuteState {
11
+ state: {
12
+ client: {
13
+ enabled: boolean;
14
+ localMute: boolean;
15
+ };
16
+ server: {
17
+ localMute: boolean;
18
+ remoteMute: boolean;
19
+ unmuteAllowed: boolean;
20
+ };
21
+ syncToServerInProgress: boolean;
22
+ };
23
+ type: any;
24
+ ignoreMuteStateChange: boolean;
25
+ /**
26
+ * Constructor
27
+ *
28
+ * @param {String} type - audio or video
29
+ * @param {Object} meeting - the meeting object (used for reading current remote mute status)
30
+ * @param {boolean} enabled - whether the client audio/video is enabled at all
31
+ */
32
+ constructor(type: string, meeting: any, enabled: boolean);
33
+ /**
34
+ * Starts the mute state machine. Needs to be called after a new MuteState instance is created.
35
+ *
36
+ * @param {Object} meeting - the meeting object
37
+ * @returns {void}
38
+ */
39
+ init(meeting: any): void;
40
+ /**
41
+ * This method needs to be called whenever the local audio/video track has changed.
42
+ * It reapplies the remote mute state onto the new track and also reads the current
43
+ * local mute state from the track and updates the internal state machine and sends
44
+ * any required requests to the server.
45
+ *
46
+ * @param {Object} meeting - the meeting object
47
+ * @returns {void}
48
+ */
49
+ handleLocalTrackChange(meeting: any): void;
50
+ /**
51
+ * Enables/disables audio/video
52
+ *
53
+ * @param {Object} meeting - the meeting object
54
+ * @param {boolean} enable
55
+ * @returns {void}
56
+ */
57
+ enable(meeting: any, enable: boolean): void;
58
+ /**
59
+ * Mutes/unmutes local track
60
+ *
61
+ * @param {Object} meeting - the meeting object
62
+ * @param {Boolean} mute - true to mute the track, false to unmute it
63
+ * @param {ServerMuteReason} reason - reason for muting/unmuting
64
+ * @returns {void}
65
+ */
66
+ private muteLocalTrack;
67
+ /**
68
+ * This method should be called when the local track mute state is changed
69
+ * @public
70
+ * @memberof MuteState
71
+ * @param {Object} [meeting] the meeting object
72
+ * @param {Boolean} [mute] true for muting, false for unmuting request
73
+ * @returns {void}
74
+ */
75
+ handleLocalTrackMuteStateChange(meeting?: object, mute?: boolean): void;
76
+ /**
77
+ * Applies the current mute state to the local track (by enabling or disabling it accordingly)
78
+ *
79
+ * @public
80
+ * @param {Object} [meeting] the meeting object
81
+ * @param {ServerMuteReason} reason - reason why we're applying our client state to the local track
82
+ * @memberof MuteState
83
+ * @returns {void}
84
+ */
85
+ applyClientStateLocally(meeting?: any, reason?: ServerMuteReason): void;
86
+ /** Returns true if client is locally muted - it takes into account not just the client local mute state,
87
+ * but also whether audio/video is enabled at all
88
+ *
89
+ * @returns {boolean}
90
+ */
91
+ private getClientLocalMuteState;
92
+ /**
93
+ * Updates the server local and remote mute values so that they match the current client desired state.
94
+ *
95
+ * @private
96
+ * @param {Object} [meeting] the meeting object
97
+ * @memberof MuteState
98
+ * @returns {void}
99
+ */
100
+ private applyClientStateToServer;
101
+ /**
102
+ * Sets the local mute value in the server
103
+ *
104
+ * @private
105
+ * @param {Object} [meeting] the meeting object
106
+ * @memberof MuteState
107
+ * @returns {Promise}
108
+ */
109
+ private sendLocalMuteRequestToServer;
110
+ /**
111
+ * Sets the remote mute value in the server
112
+ *
113
+ * @private
114
+ * @param {Object} [meeting] the meeting object
115
+ * @memberof MuteState
116
+ * @returns {Promise}
117
+ */
118
+ private sendRemoteMuteRequestToServer;
119
+ /** Sets the mute state of the local track according to what server thinks is our state
120
+ * @param {Object} meeting - the meeting object
121
+ * @param {ServerMuteReason} serverMuteReason - reason why we're applying server mute to the local track
122
+ * @returns {void}
123
+ */
124
+ private applyServerMuteToLocalTrack;
125
+ /** Applies the current value for unmute allowed to the underlying track
126
+ *
127
+ * @param {Meeting} meeting
128
+ * @returns {void}
129
+ */
130
+ private applyUnmuteAllowedToTrack;
131
+ /**
132
+ * This method should be called whenever the server remote mute state is changed
133
+ *
134
+ * @public
135
+ * @memberof MuteState
136
+ * @param {Meeting} meeting
137
+ * @param {Boolean} [muted] true if user is remotely muted, false otherwise
138
+ * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
139
+ * @returns {undefined}
140
+ */
141
+ handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean): void;
142
+ /**
143
+ * This method should be called whenever we receive from the server a requirement to locally unmute
144
+ *
145
+ * @public
146
+ * @memberof MuteState
147
+ * @param {Object} [meeting] the meeting object
148
+ * @returns {undefined}
149
+ */
150
+ handleServerLocalUnmuteRequired(meeting?: object): void;
151
+ /**
152
+ * Returns true if the user is locally or remotely muted.
153
+ * It only checks the mute status, ignoring the fact whether audio/video is enabled.
154
+ *
155
+ * @public
156
+ * @memberof MuteState
157
+ * @returns {Boolean}
158
+ */
159
+ isMuted(): boolean;
160
+ /**
161
+ * Returns true if the user is remotely muted
162
+ *
163
+ * @public
164
+ * @memberof MuteState
165
+ * @returns {Boolean}
166
+ */
167
+ isRemotelyMuted(): boolean;
168
+ /**
169
+ * Returns true if unmute is allowed
170
+ *
171
+ * @public
172
+ * @memberof MuteState
173
+ * @returns {Boolean}
174
+ */
175
+ isUnmuteAllowed(): boolean;
176
+ /**
177
+ * Returns true if the user is locally muted or audio/video is disabled
178
+ *
179
+ * @public
180
+ * @memberof MuteState
181
+ * @returns {Boolean}
182
+ */
183
+ isLocallyMuted(): boolean;
184
+ }
@@ -0,0 +1,289 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
4
+ import { AnnotationInfo } from '../annotation/annotation.types';
5
+ /**
6
+ * @class MeetingRequest
7
+ */
8
+ export default class MeetingRequest extends StatelessWebexPlugin {
9
+ changeVideoLayoutDebounced: any;
10
+ meetingRef: WeakRef<any>;
11
+ locusDeltaRequest: (options: object) => Promise<any>;
12
+ buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
13
+ /**
14
+ * Constructor
15
+ * @param {Object} attrs
16
+ * @param {Object} options
17
+ */
18
+ constructor(attrs: any, options: any);
19
+ /**
20
+ * Returns joinCookie from boundedStorage if present.
21
+ * @returns {Object} joinCookie
22
+ */
23
+ private getJoinCookie;
24
+ /**
25
+ * Make a network request to join a meeting
26
+ * @param {Object} options
27
+ * @param {String} options.sipUri
28
+ * @param {String} options.deviceUrl
29
+ * @param {String} options.locusUrl
30
+ * @param {String} options.resourceId,
31
+ * @param {String} options.correlationId
32
+ * @param {boolean} options.ensureConversation
33
+ * @param {boolean} options.moderator
34
+ * @param {boolean} options.pin
35
+ * @param {boolean} options.moveToResource
36
+ * @param {Object} options.roapMessage
37
+ * @param {boolean} options.breakoutsSupported
38
+ * @param {String} options.locale,
39
+ * @param {Array} options.deviceCapabilities
40
+ * @param {boolean} options.liveAnnotationSupported
41
+ * @returns {Promise}
42
+ */
43
+ joinMeeting(options: {
44
+ sipUri: string;
45
+ deviceUrl: string;
46
+ locusUrl: string;
47
+ resourceId: string;
48
+ correlationId: string;
49
+ ensureConversation: boolean;
50
+ moderator: boolean;
51
+ pin: boolean;
52
+ moveToResource: boolean;
53
+ roapMessage: any;
54
+ asResourceOccupant: any;
55
+ inviteeAddress: any;
56
+ meetingNumber: any;
57
+ permissionToken: any;
58
+ preferTranscoding: any;
59
+ breakoutsSupported: boolean;
60
+ locale?: string;
61
+ deviceCapabilities?: Array<string>;
62
+ liveAnnotationSupported: boolean;
63
+ ipVersion: IP_VERSION;
64
+ }): Promise<any>;
65
+ /**
66
+ * Send a request to refresh the captcha
67
+ * @param {Object} options
68
+ * @param {String} options.captchaRefreshUrl
69
+ * @param {String} options.captchaId
70
+ * @returns {Promise}
71
+ * @private
72
+ */
73
+ private refreshCaptcha;
74
+ /**
75
+ * Make a network request to add a dial in device
76
+ * @param {Object} options
77
+ * @param {String} options.correlationId
78
+ * @param {String} options.locusUrl url for the meeting
79
+ * @param {String} options.dialInUrl identifier for the to-be provisioned device
80
+ * @param {String} options.clientUrl identifier for the web device
81
+ * @returns {Promise}
82
+ * @private
83
+ */
84
+ private dialIn;
85
+ /**
86
+ * Make a network request to add a dial out device
87
+ * @param {Object} options
88
+ * @param {String} options.correlationId
89
+ * @param {String} options.locusUrl url for the meeting
90
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
91
+ * @param {String} options.phoneNumber phone number to dial out to
92
+ * @param {String} options.clientUrl identifier for the web device
93
+ * @returns {Promise}
94
+ * @private
95
+ */
96
+ private dialOut;
97
+ /**
98
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
99
+ * @param {Object} options
100
+ * @param {String} options.locusUrl sync url to get ht elatest locus delta
101
+ * @returns {Promise}
102
+ */
103
+ getLocusDTO(options: {
104
+ url: string;
105
+ }): any;
106
+ /**
107
+ * Make a network request to make a provisioned phone leave the meeting
108
+ * @param {Object} options
109
+ * @param {String} options.locusUrl
110
+ * @param {String} options.phoneUrl
111
+ * @param {String} options.correlationId
112
+ * @param {String} options.selfId
113
+ * @returns {Promise}
114
+ * @private
115
+ */
116
+ private disconnectPhoneAudio;
117
+ /**
118
+ * Prepares request options to to leave a meeting
119
+ * @param {Object} options
120
+ * @param {Url} options.locusUrl
121
+ * @param {String} options.selfId
122
+ * @param {Url} options.deviceUrl
123
+ * @param {String} options.resourceId,
124
+ * @param {String} options.correlationId
125
+ * @returns {Object} request options
126
+ */
127
+ prepareLeaveMeetingRequestOptions({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
128
+ locusUrl: string;
129
+ selfId: string;
130
+ deviceUrl: string;
131
+ resourceId: string;
132
+ correlationId: string;
133
+ }): {
134
+ method: string;
135
+ uri: string;
136
+ body: {
137
+ device: {
138
+ deviceType: any;
139
+ url: string;
140
+ };
141
+ usingResource: string;
142
+ correlationId: string;
143
+ };
144
+ };
145
+ /**
146
+ * Make a network request to leave a meeting
147
+ * @param {Object} options
148
+ * @returns {Promise}
149
+ */
150
+ leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
151
+ locusUrl: string;
152
+ selfId: string;
153
+ deviceUrl: string;
154
+ resourceId: string;
155
+ correlationId: string;
156
+ }): Promise<any>;
157
+ /**
158
+ * Builds request options to leave a meeting
159
+ * @param {Object} options
160
+ * @returns {Object} request options
161
+ */
162
+ buildLeaveMeetingRequestOptions(options: any): Promise<any>;
163
+ /**
164
+ * Make a network request to acknowledge a meeting
165
+ * @param {Object} options
166
+ * @param {String} options.locusUrl
167
+ * @param {String} options.deviceUrl
168
+ * @param {String} options.correlationId
169
+ * @returns {Promise}
170
+ */
171
+ acknowledgeMeeting(options: {
172
+ locusUrl: string;
173
+ deviceUrl: string;
174
+ correlationId: string;
175
+ }): Promise<any>;
176
+ /**
177
+ * Makes a network request to lock the meeting
178
+ * @param {Object} options
179
+ * @param {Boolean} options.lock Whether it is locked or not
180
+ * @returns {Promise}
181
+ */
182
+ lockMeeting(options: any): Promise<any>;
183
+ /**
184
+ * Make a network request to decline a meeting
185
+ * @param {Object} options
186
+ * @param {String} options.locusUrl
187
+ * @param {String} options.deviceUrl
188
+ * @param {String} options.reason
189
+ * @returns {Promise}
190
+ */
191
+ declineMeeting(options: {
192
+ locusUrl: string;
193
+ deviceUrl: string;
194
+ reason: string;
195
+ }): Promise<any>;
196
+ /**
197
+ * change the content floor grant
198
+ * @param {Object} options options for floor grant
199
+ * @param {String} options.disposition floor action (granted/released)
200
+ * @param {String} options.personUrl personUrl who is requesting floor
201
+ * @param {String} options.deviceUrl Url of a device
202
+ * @param {String} options.resourceId Populated if you are paired to a device
203
+ * @param {String} options.uri floor grant uri
204
+ * @returns {Promise}
205
+ */
206
+ changeMeetingFloor(options: {
207
+ disposition: string;
208
+ personUrl: string;
209
+ deviceUrl: string;
210
+ resourceId: string;
211
+ uri: string;
212
+ annotationInfo: AnnotationInfo;
213
+ } | any): any;
214
+ /**
215
+ * Sends a request to the DTMF endpoint to send tones
216
+ * @param {Object} options
217
+ * @param {String} options.locusUrl
218
+ * @param {String} options.deviceUrl
219
+ * @param {String} options.tones a string of one or more DTMF tones to send
220
+ * @returns {Promise}
221
+ */
222
+ sendDTMF({ locusUrl, deviceUrl, tones }: {
223
+ locusUrl: string;
224
+ deviceUrl: string;
225
+ tones: string;
226
+ }): Promise<any>;
227
+ /**
228
+ * Sends a request to the controls endpoint to set the video layout
229
+ * @param {Object} options
230
+ * @param {String} options.locusUrl
231
+ * @param {String} options.deviceUrl
232
+ * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
233
+ * @param {Object} options.main preferred dimensions for the remote main video stream
234
+ * @param {Number} options.main.width preferred width of main video stream
235
+ * @param {Number} options.main.height preferred height of main video stream
236
+ * @param {Object} options.content preferred dimensions for the remote content share stream
237
+ * @param {Number} options.content.width preferred width of content share stream
238
+ * @param {Number} options.content.height preferred height of content share stream
239
+ * @returns {Promise}
240
+ */
241
+ changeVideoLayout({ locusUrl, deviceUrl, layoutType, main, content, }: {
242
+ locusUrl: string;
243
+ deviceUrl: string;
244
+ layoutType: string;
245
+ main: {
246
+ width: number;
247
+ height: number;
248
+ };
249
+ content: {
250
+ width: number;
251
+ height: number;
252
+ };
253
+ }): Promise<any>;
254
+ /**
255
+ * Make a network request to end meeting for all
256
+ * @param {Object} options
257
+ * @param {Url} options.locusUrl
258
+ * @returns {Promise}
259
+ */
260
+ endMeetingForAll({ locusUrl }: {
261
+ locusUrl: string;
262
+ }): Promise<any>;
263
+ /**
264
+ * Send a locus keepAlive (used in lobby)
265
+ * @param {Object} options
266
+ * @param {Url} options.keepAliveUrl
267
+ * @returns {Promise}
268
+ */
269
+ keepAlive({ keepAliveUrl }: {
270
+ keepAliveUrl: string;
271
+ }): any;
272
+ /**
273
+ * Make a network request to send a reaction.
274
+ * @param {Object} options
275
+ * @param {Url} options.reactionChannelUrl
276
+ * @param {Reaction} options.reaction
277
+ * @param {string} options.senderID
278
+ * @returns {Promise}
279
+ */
280
+ sendReaction({ reactionChannelUrl, reaction, participantId }: SendReactionOptions): any;
281
+ /**
282
+ * Make a network request to enable or disable reactions.
283
+ * @param {boolean} options.enable - determines if we need to enable or disable.
284
+ * @param {locusUrl} options.locusUrl
285
+ * @returns {Promise}
286
+ */
287
+ toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
288
+ getLocusStatusByUrl(locusUrl: string): any;
289
+ }
@@ -0,0 +1,11 @@
1
+ import { Reaction } from '../reactions/reactions.type';
2
+ export type SendReactionOptions = {
3
+ reactionChannelUrl: string;
4
+ reaction: Reaction;
5
+ participantId: string;
6
+ };
7
+ export type ToggleReactionsOptions = {
8
+ enable: boolean;
9
+ locusUrl: string;
10
+ requestingParticipantId: string;
11
+ };
@@ -0,0 +1,9 @@
1
+ declare const MeetingStateMachine: {
2
+ /**
3
+ * Initializes the StateMachine for the meeting
4
+ * @param {Meeting} meetingRef A reference to a meeting instance
5
+ * @returns {StateMachine}
6
+ */
7
+ create(meetingRef: any): any;
8
+ };
9
+ export default MeetingStateMachine;
@@ -0,0 +1,94 @@
1
+ import { SELF_POLICY } from '../constants';
2
+ declare const MeetingUtil: {
3
+ parseLocusJoin: (response: any) => any;
4
+ remoteUpdateAudioVideo: (meeting: any, audioMuted?: boolean, videoMuted?: boolean) => any;
5
+ hasOwner: (info: any) => any;
6
+ isOwnerSelf: (owner: any, selfId: any) => boolean;
7
+ isPinOrGuest: (err: any) => boolean;
8
+ joinMeeting: (meeting: any, options: any) => any;
9
+ cleanUp: (meeting: any) => any;
10
+ disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
11
+ /**
12
+ * Returns options for leaving a meeting.
13
+ * @param {any} meeting
14
+ * @param {any} options
15
+ * @returns {any} leave options
16
+ */
17
+ prepareLeaveMeetingOptions: (meeting: any, options?: any) => any;
18
+ leaveMeeting: (meeting: any, options?: any) => any;
19
+ declineMeeting: (meeting: any, reason: any) => any;
20
+ isUserInLeftState: (locusInfo: any) => boolean;
21
+ isUserInIdleState: (locusInfo: any) => boolean;
22
+ isUserInJoinedState: (locusInfo: any) => boolean;
23
+ isMediaEstablished: (currentMediaStatus: any) => any;
24
+ joinMeetingOptions: (meeting: any, options?: any) => any;
25
+ /**
26
+ * Returns request options for leaving a meeting.
27
+ * @param {any} meeting
28
+ * @param {any} options
29
+ * @returns {any} request options
30
+ */
31
+ buildLeaveFetchRequestOptions: (meeting: any, options?: any) => any;
32
+ getTrack: (stream: any) => {
33
+ audioTrack: any;
34
+ videoTrack: any;
35
+ };
36
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
37
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
38
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
39
+ canInviteNewParticipants: (displayHints: any) => any;
40
+ canAdmitParticipant: (displayHints: any) => any;
41
+ canUserLock: (displayHints: any) => any;
42
+ canUserUnlock: (displayHints: any) => any;
43
+ canUserRaiseHand: (displayHints: any) => any;
44
+ canUserLowerAllHands: (displayHints: any) => any;
45
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
46
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
47
+ canManageBreakout: (displayHints: any) => any;
48
+ canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
49
+ isSuppressBreakoutSupport: (displayHints: any) => any;
50
+ canAdmitLobbyToBreakout: (displayHints: any) => boolean;
51
+ isBreakoutPreassignmentsEnabled: (displayHints: any) => boolean;
52
+ canUserAskForHelp: (displayHints: any) => boolean;
53
+ lockMeeting: (actions: any, request: any, locusUrl: any) => any;
54
+ unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
55
+ handleAudioLogging: (audioTrack?: LocalMicrophoneTrack) => void;
56
+ handleVideoLogging: (videoTrack?: LocalCameraTrack) => void;
57
+ handleDeviceLogging: (devices?: any[]) => void;
58
+ endMeetingForAll: (meeting: any) => any;
59
+ canEnableClosedCaption: (displayHints: any) => any;
60
+ isSaveTranscriptsEnabled: (displayHints: any) => any;
61
+ canStartTranscribing: (displayHints: any) => any;
62
+ canStopTranscribing: (displayHints: any) => any;
63
+ isClosedCaptionActive: (displayHints: any) => any;
64
+ isWebexAssistantActive: (displayHints: any) => any;
65
+ canViewCaptionPanel: (displayHints: any) => any;
66
+ isRealTimeTranslationEnabled: (displayHints: any) => any;
67
+ canSelectSpokenLanguages: (displayHints: any) => any;
68
+ waitingForOthersToJoin: (displayHints: any) => any;
69
+ canSendReactions: (originalValue: any, displayHints: any) => any;
70
+ canUserRenameSelfAndObserved: (displayHints: any) => any;
71
+ canUserRenameOthers: (displayHints: any) => any;
72
+ canShareWhiteBoard: (displayHints: any) => any;
73
+ /**
74
+ * Adds the current locus sequence information to a request body
75
+ * @param {Object} meeting The meeting object
76
+ * @param {Object} requestBody The body of a request to locus
77
+ * @returns {void}
78
+ */
79
+ addSequence: (meeting: any, requestBody: any) => void;
80
+ /**
81
+ * Updates the locus info for the meeting with the delta locus
82
+ * returned from requests that include the sequence information
83
+ * Returns the original response object
84
+ * @param {Object} meeting The meeting object
85
+ * @param {Object} response The response of the http request
86
+ * @returns {Object}
87
+ */
88
+ updateLocusWithDelta: (meeting: any, response: any) => any;
89
+ generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
90
+ generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
91
+ selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
92
+ parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
93
+ };
94
+ export default MeetingUtil;
@@ -0,0 +1,20 @@
1
+ import Collection from '../common/collection';
2
+ /**
3
+ * @class MeetingInfoCollection
4
+ */
5
+ export default class MeetingInfoCollection extends Collection {
6
+ namespace: string;
7
+ /**
8
+ * @memberof MeetingInfoCollection
9
+ * @constructor
10
+ * @public
11
+ */
12
+ constructor();
13
+ /**
14
+ * @param {String} id ID of the meeting info you wish to retreive
15
+ * @returns {MeetingInfo} returns a meeting info instance
16
+ * @public
17
+ * @memberof MeetingInfoCollection
18
+ */
19
+ get(id: string): any;
20
+ }