@webex/plugin-meetings 3.0.0-bnr.4 → 3.0.0-next.1

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 (1035) hide show
  1. package/.eslintrc.js +6 -0
  2. package/README.md +58 -8
  3. package/babel.config.js +3 -0
  4. package/dist/annotation/annotation.types.d.ts +42 -0
  5. package/dist/annotation/annotation.types.js +7 -0
  6. package/dist/annotation/annotation.types.js.map +1 -0
  7. package/dist/annotation/constants.d.ts +31 -0
  8. package/dist/annotation/constants.js +41 -0
  9. package/dist/annotation/constants.js.map +1 -0
  10. package/dist/annotation/index.d.ts +117 -0
  11. package/dist/annotation/index.js +357 -0
  12. package/dist/annotation/index.js.map +1 -0
  13. package/dist/breakouts/breakout.js +71 -34
  14. package/dist/breakouts/breakout.js.map +1 -1
  15. package/dist/breakouts/collection.js +1 -2
  16. package/dist/breakouts/collection.js.map +1 -1
  17. package/dist/breakouts/edit-lock-error.js +1 -2
  18. package/dist/breakouts/edit-lock-error.js.map +1 -1
  19. package/dist/breakouts/events.d.ts +8 -0
  20. package/dist/breakouts/events.js +44 -0
  21. package/dist/breakouts/events.js.map +1 -0
  22. package/dist/breakouts/index.js +433 -229
  23. package/dist/breakouts/index.js.map +1 -1
  24. package/dist/breakouts/request.js +1 -2
  25. package/dist/breakouts/request.js.map +1 -1
  26. package/dist/{types/breakouts → breakouts}/utils.d.ts +7 -0
  27. package/dist/breakouts/utils.js +13 -5
  28. package/dist/breakouts/utils.js.map +1 -1
  29. package/dist/common/browser-detection.js +2 -3
  30. package/dist/common/browser-detection.js.map +1 -1
  31. package/dist/common/collection.js +3 -4
  32. package/dist/common/collection.js.map +1 -1
  33. package/dist/common/config.js +1 -2
  34. package/dist/common/config.js.map +1 -1
  35. package/dist/common/errors/captcha-error.js +1 -2
  36. package/dist/common/errors/captcha-error.js.map +1 -1
  37. package/dist/common/errors/intent-to-join.js +1 -2
  38. package/dist/common/errors/intent-to-join.js.map +1 -1
  39. package/dist/common/errors/join-meeting.js +1 -2
  40. package/dist/common/errors/join-meeting.js.map +1 -1
  41. package/dist/common/errors/media.js +1 -2
  42. package/dist/common/errors/media.js.map +1 -1
  43. package/dist/{types/common/errors/permission.d.ts → common/errors/no-meeting-info.d.ts} +1 -1
  44. package/dist/common/errors/no-meeting-info.js +50 -0
  45. package/dist/common/errors/no-meeting-info.js.map +1 -0
  46. package/dist/common/errors/parameter.js +3 -4
  47. package/dist/common/errors/parameter.js.map +1 -1
  48. package/dist/common/errors/password-error.js +1 -2
  49. package/dist/common/errors/password-error.js.map +1 -1
  50. package/dist/common/errors/permission.js +1 -2
  51. package/dist/common/errors/permission.js.map +1 -1
  52. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  53. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  54. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  55. package/dist/common/errors/reconnection-in-progress.js +1 -2
  56. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  57. package/dist/common/errors/reconnection.js +1 -2
  58. package/dist/common/errors/reconnection.js.map +1 -1
  59. package/dist/common/errors/stats.js +1 -2
  60. package/dist/common/errors/stats.js.map +1 -1
  61. package/dist/common/errors/webex-errors.d.ts +20 -8
  62. package/dist/common/errors/webex-errors.js +57 -17
  63. package/dist/common/errors/webex-errors.js.map +1 -1
  64. package/dist/common/errors/webex-meetings-error.js +1 -2
  65. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  66. package/dist/common/events/events-scope.js +1 -2
  67. package/dist/common/events/events-scope.js.map +1 -1
  68. package/dist/common/events/events.js +1 -2
  69. package/dist/common/events/events.js.map +1 -1
  70. package/dist/common/events/trigger-proxy.js +1 -2
  71. package/dist/common/events/trigger-proxy.js.map +1 -1
  72. package/dist/common/events/util.js +1 -2
  73. package/dist/common/events/util.js.map +1 -1
  74. package/dist/common/logs/logger-config.js +1 -2
  75. package/dist/common/logs/logger-config.js.map +1 -1
  76. package/dist/common/logs/logger-proxy.js +2 -3
  77. package/dist/common/logs/logger-proxy.js.map +1 -1
  78. package/dist/common/logs/request.d.ts +3 -1
  79. package/dist/common/logs/request.js +8 -5
  80. package/dist/common/logs/request.js.map +1 -1
  81. package/dist/common/queue.d.ts +9 -7
  82. package/dist/common/queue.js +22 -9
  83. package/dist/common/queue.js.map +1 -1
  84. package/dist/config.d.ts +6 -7
  85. package/dist/config.js +6 -12
  86. package/dist/config.js.map +1 -1
  87. package/dist/constants.d.ts +263 -98
  88. package/dist/constants.js +360 -377
  89. package/dist/constants.js.map +1 -1
  90. package/dist/controls-options-manager/constants.js +3 -6
  91. package/dist/controls-options-manager/constants.js.map +1 -1
  92. package/dist/controls-options-manager/enums.d.ts +11 -1
  93. package/dist/controls-options-manager/enums.js +9 -10
  94. package/dist/controls-options-manager/enums.js.map +1 -1
  95. package/dist/controls-options-manager/index.d.ts +17 -1
  96. package/dist/controls-options-manager/index.js +46 -46
  97. package/dist/controls-options-manager/index.js.map +1 -1
  98. package/dist/{types/controls-options-manager → controls-options-manager}/types.d.ts +7 -1
  99. package/dist/controls-options-manager/types.js.map +1 -1
  100. package/dist/controls-options-manager/util.d.ts +1 -7
  101. package/dist/controls-options-manager/util.js +81 -13
  102. package/dist/controls-options-manager/util.js.map +1 -1
  103. package/dist/index.d.ts +6 -3
  104. package/dist/index.js +70 -25
  105. package/dist/index.js.map +1 -1
  106. package/dist/interceptors/index.d.ts +2 -0
  107. package/dist/interceptors/index.js +15 -0
  108. package/dist/interceptors/index.js.map +1 -0
  109. package/dist/interceptors/locusRetry.d.ts +27 -0
  110. package/dist/interceptors/locusRetry.js +94 -0
  111. package/dist/interceptors/locusRetry.js.map +1 -0
  112. package/dist/interpretation/collection.d.ts +5 -0
  113. package/dist/interpretation/collection.js +22 -0
  114. package/dist/interpretation/collection.js.map +1 -0
  115. package/dist/interpretation/index.d.ts +5 -0
  116. package/dist/interpretation/index.js +379 -0
  117. package/dist/interpretation/index.js.map +1 -0
  118. package/dist/interpretation/siLanguage.d.ts +5 -0
  119. package/dist/interpretation/siLanguage.js +24 -0
  120. package/dist/interpretation/siLanguage.js.map +1 -0
  121. package/dist/locus-info/controlsUtils.js +82 -13
  122. package/dist/locus-info/controlsUtils.js.map +1 -1
  123. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  124. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  125. package/dist/locus-info/fullState.js +1 -2
  126. package/dist/locus-info/fullState.js.map +1 -1
  127. package/dist/locus-info/hostUtils.js +1 -2
  128. package/dist/locus-info/hostUtils.js.map +1 -1
  129. package/dist/locus-info/index.d.ts +57 -4
  130. package/dist/locus-info/index.js +350 -77
  131. package/dist/locus-info/index.js.map +1 -1
  132. package/dist/locus-info/infoUtils.js +10 -5
  133. package/dist/locus-info/infoUtils.js.map +1 -1
  134. package/dist/locus-info/mediaSharesUtils.js +58 -3
  135. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  136. package/dist/locus-info/parser.d.ts +66 -6
  137. package/dist/locus-info/parser.js +253 -80
  138. package/dist/locus-info/parser.js.map +1 -1
  139. package/dist/locus-info/selfUtils.js +49 -26
  140. package/dist/locus-info/selfUtils.js.map +1 -1
  141. package/dist/media/index.d.ts +2 -0
  142. package/dist/media/index.js +66 -108
  143. package/dist/media/index.js.map +1 -1
  144. package/dist/media/properties.d.ts +38 -53
  145. package/dist/media/properties.js +76 -128
  146. package/dist/media/properties.js.map +1 -1
  147. package/dist/media/util.js +1 -2
  148. package/dist/media/util.js.map +1 -1
  149. package/dist/mediaQualityMetrics/config.d.ts +239 -231
  150. package/dist/mediaQualityMetrics/config.js +135 -339
  151. package/dist/mediaQualityMetrics/config.js.map +1 -1
  152. package/dist/meeting/in-meeting-actions.d.ts +88 -0
  153. package/dist/meeting/in-meeting-actions.js +79 -5
  154. package/dist/meeting/in-meeting-actions.js.map +1 -1
  155. package/dist/meeting/index.d.ts +710 -517
  156. package/dist/meeting/index.js +4348 -3053
  157. package/dist/meeting/index.js.map +1 -1
  158. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  159. package/dist/meeting/locusMediaRequest.js +291 -0
  160. package/dist/meeting/locusMediaRequest.js.map +1 -0
  161. package/dist/meeting/muteState.d.ts +93 -25
  162. package/dist/meeting/muteState.js +125 -207
  163. package/dist/meeting/muteState.js.map +1 -1
  164. package/dist/meeting/request.d.ts +84 -47
  165. package/dist/meeting/request.js +190 -165
  166. package/dist/meeting/request.js.map +1 -1
  167. package/dist/meeting/state.js +1 -2
  168. package/dist/meeting/state.js.map +1 -1
  169. package/dist/meeting/util.d.ts +118 -1
  170. package/dist/meeting/util.js +680 -447
  171. package/dist/meeting/util.js.map +1 -1
  172. package/dist/meeting/voicea-meeting.d.ts +16 -0
  173. package/dist/meeting/voicea-meeting.js +169 -0
  174. package/dist/meeting/voicea-meeting.js.map +1 -0
  175. package/dist/meeting-info/collection.js +3 -4
  176. package/dist/meeting-info/collection.js.map +1 -1
  177. package/dist/meeting-info/index.d.ts +13 -1
  178. package/dist/meeting-info/index.js +74 -7
  179. package/dist/meeting-info/index.js.map +1 -1
  180. package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
  181. package/dist/meeting-info/meeting-info-v2.js +136 -61
  182. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  183. package/dist/meeting-info/request.js +1 -2
  184. package/dist/meeting-info/request.js.map +1 -1
  185. package/dist/meeting-info/util.js +9 -9
  186. package/dist/meeting-info/util.js.map +1 -1
  187. package/dist/meeting-info/utilv2.js +31 -41
  188. package/dist/meeting-info/utilv2.js.map +1 -1
  189. package/dist/meetings/collection.d.ts +17 -0
  190. package/dist/meetings/collection.js +21 -5
  191. package/dist/meetings/collection.js.map +1 -1
  192. package/dist/meetings/index.d.ts +114 -22
  193. package/dist/meetings/index.js +397 -127
  194. package/dist/meetings/index.js.map +1 -1
  195. package/dist/meetings/meetings.types.d.ts +4 -0
  196. package/dist/meetings/meetings.types.js +7 -0
  197. package/dist/meetings/meetings.types.js.map +1 -0
  198. package/dist/meetings/request.js +2 -3
  199. package/dist/meetings/request.js.map +1 -1
  200. package/dist/meetings/util.js +45 -17
  201. package/dist/meetings/util.js.map +1 -1
  202. package/dist/member/index.d.ts +15 -0
  203. package/dist/member/index.js +35 -2
  204. package/dist/member/index.js.map +1 -1
  205. package/dist/member/member.types.d.ts +11 -0
  206. package/dist/member/member.types.js +17 -0
  207. package/dist/member/member.types.js.map +1 -0
  208. package/dist/{types/member → member}/types.d.ts +11 -0
  209. package/dist/member/types.js +13 -5
  210. package/dist/member/types.js.map +1 -1
  211. package/dist/member/util.js +72 -25
  212. package/dist/member/util.js.map +1 -1
  213. package/dist/members/collection.d.ts +5 -0
  214. package/dist/members/collection.js +1 -2
  215. package/dist/members/collection.js.map +1 -1
  216. package/dist/members/index.d.ts +57 -2
  217. package/dist/members/index.js +29 -9
  218. package/dist/members/index.js.map +1 -1
  219. package/dist/members/request.d.ts +73 -9
  220. package/dist/members/request.js +77 -48
  221. package/dist/members/request.js.map +1 -1
  222. package/dist/{types/members → members}/types.d.ts +1 -0
  223. package/dist/members/types.js +3 -4
  224. package/dist/members/types.js.map +1 -1
  225. package/dist/members/util.d.ts +214 -1
  226. package/dist/members/util.js +320 -319
  227. package/dist/members/util.js.map +1 -1
  228. package/dist/metrics/constants.d.ts +17 -4
  229. package/dist/metrics/constants.js +18 -3
  230. package/dist/metrics/constants.js.map +1 -1
  231. package/dist/metrics/index.d.ts +4 -111
  232. package/dist/metrics/index.js +4 -453
  233. package/dist/metrics/index.js.map +1 -1
  234. package/dist/{types/multistream → multistream}/mediaRequestManager.d.ts +29 -10
  235. package/dist/multistream/mediaRequestManager.js +142 -48
  236. package/dist/multistream/mediaRequestManager.js.map +1 -1
  237. package/dist/{types/multistream → multistream}/receiveSlot.d.ts +3 -3
  238. package/dist/multistream/receiveSlot.js +3 -5
  239. package/dist/multistream/receiveSlot.js.map +1 -1
  240. package/dist/multistream/receiveSlotManager.js +11 -13
  241. package/dist/multistream/receiveSlotManager.js.map +1 -1
  242. package/dist/{types/multistream → multistream}/remoteMedia.d.ts +2 -2
  243. package/dist/multistream/remoteMedia.js +3 -5
  244. package/dist/multistream/remoteMedia.js.map +1 -1
  245. package/dist/{types/multistream → multistream}/remoteMediaGroup.d.ts +2 -0
  246. package/dist/multistream/remoteMediaGroup.js +78 -6
  247. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  248. package/dist/{types/multistream → multistream}/remoteMediaManager.d.ts +39 -1
  249. package/dist/multistream/remoteMediaManager.js +288 -100
  250. package/dist/multistream/remoteMediaManager.js.map +1 -1
  251. package/dist/multistream/sendSlotManager.d.ts +70 -0
  252. package/dist/multistream/sendSlotManager.js +258 -0
  253. package/dist/multistream/sendSlotManager.js.map +1 -0
  254. package/dist/networkQualityMonitor/index.js +1 -2
  255. package/dist/networkQualityMonitor/index.js.map +1 -1
  256. package/dist/personal-meeting-room/index.js +2 -3
  257. package/dist/personal-meeting-room/index.js.map +1 -1
  258. package/dist/personal-meeting-room/request.js +2 -3
  259. package/dist/personal-meeting-room/request.js.map +1 -1
  260. package/dist/personal-meeting-room/util.js +1 -2
  261. package/dist/personal-meeting-room/util.js.map +1 -1
  262. package/dist/reachability/clusterReachability.d.ts +109 -0
  263. package/dist/reachability/clusterReachability.js +357 -0
  264. package/dist/reachability/clusterReachability.js.map +1 -0
  265. package/dist/reachability/index.d.ts +61 -95
  266. package/dist/reachability/index.js +280 -431
  267. package/dist/reachability/index.js.map +1 -1
  268. package/dist/reachability/request.d.ts +7 -3
  269. package/dist/reachability/request.js +18 -13
  270. package/dist/reachability/request.js.map +1 -1
  271. package/dist/reachability/util.d.ts +8 -0
  272. package/dist/reachability/util.js +29 -0
  273. package/dist/reachability/util.js.map +1 -0
  274. package/dist/reactions/constants.js +1 -2
  275. package/dist/reactions/constants.js.map +1 -1
  276. package/dist/reactions/reactions.d.ts +2 -2
  277. package/dist/reactions/reactions.js +2 -4
  278. package/dist/reactions/reactions.js.map +1 -1
  279. package/dist/reactions/reactions.type.d.ts +23 -3
  280. package/dist/reactions/reactions.type.js +6 -8
  281. package/dist/reactions/reactions.type.js.map +1 -1
  282. package/dist/reconnection-manager/index.d.ts +32 -8
  283. package/dist/reconnection-manager/index.js +264 -209
  284. package/dist/reconnection-manager/index.js.map +1 -1
  285. package/dist/recording-controller/enums.js +4 -5
  286. package/dist/recording-controller/enums.js.map +1 -1
  287. package/dist/recording-controller/index.d.ts +15 -1
  288. package/dist/recording-controller/index.js +57 -46
  289. package/dist/recording-controller/index.js.map +1 -1
  290. package/dist/recording-controller/util.d.ts +5 -4
  291. package/dist/recording-controller/util.js +10 -10
  292. package/dist/recording-controller/util.js.map +1 -1
  293. package/dist/roap/index.d.ts +9 -47
  294. package/dist/roap/index.js +53 -31
  295. package/dist/roap/index.js.map +1 -1
  296. package/dist/roap/request.d.ts +16 -12
  297. package/dist/roap/request.js +57 -73
  298. package/dist/roap/request.js.map +1 -1
  299. package/dist/roap/turnDiscovery.d.ts +46 -5
  300. package/dist/roap/turnDiscovery.js +227 -76
  301. package/dist/roap/turnDiscovery.js.map +1 -1
  302. package/dist/rtcMetrics/constants.d.ts +4 -0
  303. package/dist/rtcMetrics/constants.js +11 -0
  304. package/dist/rtcMetrics/constants.js.map +1 -0
  305. package/dist/rtcMetrics/index.d.ts +61 -0
  306. package/dist/rtcMetrics/index.js +177 -0
  307. package/dist/rtcMetrics/index.js.map +1 -0
  308. package/dist/statsAnalyzer/global.d.ts +1 -91
  309. package/dist/statsAnalyzer/global.js +1 -2
  310. package/dist/statsAnalyzer/global.js.map +1 -1
  311. package/dist/statsAnalyzer/index.d.ts +55 -28
  312. package/dist/statsAnalyzer/index.js +371 -319
  313. package/dist/statsAnalyzer/index.js.map +1 -1
  314. package/dist/statsAnalyzer/mqaUtil.d.ts +32 -6
  315. package/dist/statsAnalyzer/mqaUtil.js +295 -162
  316. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  317. package/dist/transcription/index.js +1 -2
  318. package/dist/transcription/index.js.map +1 -1
  319. package/dist/webinar/collection.d.ts +16 -0
  320. package/dist/webinar/collection.js +43 -0
  321. package/dist/webinar/collection.js.map +1 -0
  322. package/dist/webinar/index.d.ts +5 -0
  323. package/dist/webinar/index.js +68 -0
  324. package/dist/webinar/index.js.map +1 -0
  325. package/jest.config.js +3 -0
  326. package/package.json +44 -23
  327. package/process +1 -0
  328. package/src/annotation/annotation.types.ts +50 -0
  329. package/src/annotation/constants.ts +36 -0
  330. package/src/annotation/index.ts +328 -0
  331. package/src/breakouts/README.md +3 -2
  332. package/src/breakouts/breakout.ts +62 -27
  333. package/src/breakouts/events.ts +56 -0
  334. package/src/breakouts/index.ts +244 -64
  335. package/src/breakouts/utils.ts +13 -0
  336. package/src/common/errors/no-meeting-info.ts +24 -0
  337. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  338. package/src/common/errors/webex-errors.ts +44 -2
  339. package/src/common/logs/logger-proxy.ts +1 -1
  340. package/src/common/logs/request.ts +5 -1
  341. package/src/common/queue.ts +22 -8
  342. package/src/config.ts +5 -13
  343. package/src/constants.ts +190 -24
  344. package/src/controls-options-manager/enums.ts +2 -0
  345. package/src/controls-options-manager/index.ts +13 -10
  346. package/src/controls-options-manager/types.ts +10 -0
  347. package/src/controls-options-manager/util.ts +82 -11
  348. package/src/index.ts +22 -11
  349. package/src/interceptors/index.ts +3 -0
  350. package/src/interceptors/locusRetry.ts +67 -0
  351. package/src/interpretation/README.md +60 -0
  352. package/src/interpretation/collection.ts +19 -0
  353. package/src/interpretation/index.ts +349 -0
  354. package/src/interpretation/siLanguage.ts +18 -0
  355. package/src/locus-info/controlsUtils.ts +81 -0
  356. package/src/locus-info/index.ts +354 -57
  357. package/src/locus-info/infoUtils.ts +10 -2
  358. package/src/locus-info/mediaSharesUtils.ts +64 -0
  359. package/src/locus-info/parser.ts +258 -47
  360. package/src/locus-info/selfUtils.ts +32 -20
  361. package/src/media/index.ts +96 -108
  362. package/src/media/properties.ts +87 -112
  363. package/src/mediaQualityMetrics/config.ts +103 -238
  364. package/src/meeting/in-meeting-actions.ts +128 -4
  365. package/src/meeting/index.ts +3472 -2523
  366. package/src/meeting/locusMediaRequest.ts +313 -0
  367. package/src/meeting/muteState.ts +119 -194
  368. package/src/meeting/request.ts +155 -120
  369. package/src/meeting/util.ts +683 -412
  370. package/src/meeting/voicea-meeting.ts +122 -0
  371. package/src/meeting-info/index.ts +81 -8
  372. package/src/meeting-info/meeting-info-v2.ts +107 -26
  373. package/src/meeting-info/util.ts +13 -10
  374. package/src/meeting-info/utilv2.ts +40 -36
  375. package/src/meetings/collection.ts +13 -0
  376. package/src/meetings/index.ts +361 -116
  377. package/src/meetings/meetings.types.ts +12 -0
  378. package/src/meetings/util.ts +49 -20
  379. package/src/member/index.ts +36 -1
  380. package/src/member/member.types.ts +13 -0
  381. package/src/member/types.ts +14 -0
  382. package/src/member/util.ts +89 -26
  383. package/src/members/index.ts +36 -3
  384. package/src/members/request.ts +61 -21
  385. package/src/members/types.ts +1 -0
  386. package/src/members/util.ts +330 -326
  387. package/src/metrics/constants.ts +16 -0
  388. package/src/metrics/index.ts +1 -474
  389. package/src/multistream/mediaRequestManager.ts +186 -67
  390. package/src/multistream/receiveSlot.ts +4 -4
  391. package/src/multistream/receiveSlotManager.ts +4 -4
  392. package/src/multistream/remoteMedia.ts +2 -2
  393. package/src/multistream/remoteMediaGroup.ts +78 -0
  394. package/src/multistream/remoteMediaManager.ts +174 -18
  395. package/src/multistream/sendSlotManager.ts +199 -0
  396. package/src/reachability/clusterReachability.ts +320 -0
  397. package/src/reachability/index.ts +226 -382
  398. package/src/reachability/request.ts +8 -4
  399. package/src/reachability/util.ts +24 -0
  400. package/src/reconnection-manager/index.ts +95 -82
  401. package/src/recording-controller/index.ts +20 -3
  402. package/src/recording-controller/util.ts +26 -9
  403. package/src/roap/index.ts +52 -23
  404. package/src/roap/request.ts +49 -68
  405. package/src/roap/turnDiscovery.ts +147 -49
  406. package/src/rtcMetrics/constants.ts +3 -0
  407. package/src/rtcMetrics/index.ts +166 -0
  408. package/src/statsAnalyzer/index.ts +430 -428
  409. package/src/statsAnalyzer/mqaUtil.ts +317 -168
  410. package/src/webinar/collection.ts +31 -0
  411. package/src/webinar/index.ts +62 -0
  412. package/test/integration/spec/converged-space-meetings.js +60 -3
  413. package/test/integration/spec/journey.js +322 -263
  414. package/test/integration/spec/space-meeting.js +77 -4
  415. package/test/unit/spec/annotation/index.ts +418 -0
  416. package/test/unit/spec/breakouts/breakout.ts +86 -26
  417. package/test/unit/spec/breakouts/events.ts +89 -0
  418. package/test/unit/spec/breakouts/index.ts +639 -98
  419. package/test/unit/spec/breakouts/utils.js +19 -1
  420. package/test/unit/spec/common/queue.js +31 -2
  421. package/test/unit/spec/controls-options-manager/index.js +8 -1
  422. package/test/unit/spec/controls-options-manager/util.js +576 -397
  423. package/test/unit/spec/fixture/locus.js +1 -0
  424. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  425. package/test/unit/spec/interpretation/collection.ts +15 -0
  426. package/test/unit/spec/interpretation/index.ts +622 -0
  427. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  428. package/test/unit/spec/locus-info/controlsUtils.js +195 -1
  429. package/test/unit/spec/locus-info/index.js +1167 -69
  430. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  431. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  432. package/test/unit/spec/locus-info/{selfConstant.js → lib/selfConstant.js} +19 -0
  433. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  434. package/test/unit/spec/locus-info/parser.js +116 -35
  435. package/test/unit/spec/locus-info/selfUtils.js +132 -27
  436. package/test/unit/spec/media/index.ts +103 -79
  437. package/test/unit/spec/media/properties.ts +2 -2
  438. package/test/unit/spec/meeting/in-meeting-actions.ts +64 -2
  439. package/test/unit/spec/meeting/index.js +6768 -2199
  440. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  441. package/test/unit/spec/meeting/muteState.js +328 -417
  442. package/test/unit/spec/meeting/request.js +473 -54
  443. package/test/unit/spec/meeting/utils.js +764 -84
  444. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  445. package/test/unit/spec/meeting-info/index.js +300 -0
  446. package/test/unit/spec/meeting-info/meetinginfov2.js +411 -25
  447. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  448. package/test/unit/spec/meetings/collection.js +12 -0
  449. package/test/unit/spec/meetings/index.js +1266 -234
  450. package/test/unit/spec/meetings/utils.js +187 -9
  451. package/test/unit/spec/member/index.js +50 -19
  452. package/test/unit/spec/member/util.js +328 -155
  453. package/test/unit/spec/members/index.js +153 -20
  454. package/test/unit/spec/members/request.js +167 -35
  455. package/test/unit/spec/members/utils.js +26 -0
  456. package/test/unit/spec/metrics/index.js +2 -52
  457. package/test/unit/spec/multistream/mediaRequestManager.ts +386 -9
  458. package/test/unit/spec/multistream/receiveSlot.ts +1 -1
  459. package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
  460. package/test/unit/spec/multistream/remoteMediaManager.ts +332 -2
  461. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  462. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  463. package/test/unit/spec/reachability/index.ts +525 -94
  464. package/test/unit/spec/reachability/request.js +3 -1
  465. package/test/unit/spec/reachability/util.ts +40 -0
  466. package/test/unit/spec/reconnection-manager/index.js +135 -7
  467. package/test/unit/spec/recording-controller/index.js +293 -218
  468. package/test/unit/spec/recording-controller/util.js +223 -96
  469. package/test/unit/spec/roap/index.ts +180 -83
  470. package/test/unit/spec/roap/request.ts +100 -62
  471. package/test/unit/spec/roap/turnDiscovery.ts +388 -96
  472. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  473. package/test/unit/spec/stats-analyzer/index.js +1225 -12
  474. package/test/unit/spec/webinar/collection.ts +13 -0
  475. package/test/unit/spec/webinar/index.ts +60 -0
  476. package/test/utils/integrationTestUtils.js +46 -0
  477. package/test/utils/testUtils.js +0 -60
  478. package/test/utils/webex-test-users.js +12 -4
  479. package/dist/docs/markdown/index.md +0 -12
  480. package/dist/docs/markdown/plugin-meetings.constants._active_.md +0 -11
  481. package/dist/docs/markdown/plugin-meetings.constants._answer_.md +0 -11
  482. package/dist/docs/markdown/plugin-meetings.constants._call_.md +0 -11
  483. package/dist/docs/markdown/plugin-meetings.constants._conflict_.md +0 -11
  484. package/dist/docs/markdown/plugin-meetings.constants._conversation_url_.md +0 -11
  485. package/dist/docs/markdown/plugin-meetings.constants._created_.md +0 -11
  486. package/dist/docs/markdown/plugin-meetings.constants._error_.md +0 -11
  487. package/dist/docs/markdown/plugin-meetings.constants._forced_.md +0 -11
  488. package/dist/docs/markdown/plugin-meetings.constants._id_.md +0 -11
  489. package/dist/docs/markdown/plugin-meetings.constants._idle_.md +0 -11
  490. package/dist/docs/markdown/plugin-meetings.constants._in_.md +0 -11
  491. package/dist/docs/markdown/plugin-meetings.constants._in_lobby_.md +0 -11
  492. package/dist/docs/markdown/plugin-meetings.constants._in_meeting_.md +0 -11
  493. package/dist/docs/markdown/plugin-meetings.constants._inactive_.md +0 -11
  494. package/dist/docs/markdown/plugin-meetings.constants._incoming_.md +0 -11
  495. package/dist/docs/markdown/plugin-meetings.constants._join_.md +0 -11
  496. package/dist/docs/markdown/plugin-meetings.constants._joined_.md +0 -11
  497. package/dist/docs/markdown/plugin-meetings.constants._left_.md +0 -11
  498. package/dist/docs/markdown/plugin-meetings.constants._locus_id_.md +0 -11
  499. package/dist/docs/markdown/plugin-meetings.constants._meeting_.md +0 -11
  500. package/dist/docs/markdown/plugin-meetings.constants._meeting_center_.md +0 -11
  501. package/dist/docs/markdown/plugin-meetings.constants._meeting_id_.md +0 -11
  502. package/dist/docs/markdown/plugin-meetings.constants._meeting_link_.md +0 -11
  503. package/dist/docs/markdown/plugin-meetings.constants._meeting_uuid_.md +0 -11
  504. package/dist/docs/markdown/plugin-meetings.constants._move_media_.md +0 -11
  505. package/dist/docs/markdown/plugin-meetings.constants._none_.md +0 -11
  506. package/dist/docs/markdown/plugin-meetings.constants._not_in_meeting_.md +0 -11
  507. package/dist/docs/markdown/plugin-meetings.constants._observe_.md +0 -11
  508. package/dist/docs/markdown/plugin-meetings.constants._people_.md +0 -11
  509. package/dist/docs/markdown/plugin-meetings.constants._personal_room_.md +0 -11
  510. package/dist/docs/markdown/plugin-meetings.constants._receive_only_.md +0 -11
  511. package/dist/docs/markdown/plugin-meetings.constants._remove_.md +0 -11
  512. package/dist/docs/markdown/plugin-meetings.constants._requested_.md +0 -11
  513. package/dist/docs/markdown/plugin-meetings.constants._resource_room_.md +0 -11
  514. package/dist/docs/markdown/plugin-meetings.constants._room_.md +0 -11
  515. package/dist/docs/markdown/plugin-meetings.constants._s_line.md +0 -11
  516. package/dist/docs/markdown/plugin-meetings.constants._send_only_.md +0 -11
  517. package/dist/docs/markdown/plugin-meetings.constants._send_receive_.md +0 -11
  518. package/dist/docs/markdown/plugin-meetings.constants._sip_bridge_.md +0 -11
  519. package/dist/docs/markdown/plugin-meetings.constants._sip_uri_.md +0 -11
  520. package/dist/docs/markdown/plugin-meetings.constants._slides_.md +0 -11
  521. package/dist/docs/markdown/plugin-meetings.constants._unknown_.md +0 -11
  522. package/dist/docs/markdown/plugin-meetings.constants._user_.md +0 -11
  523. package/dist/docs/markdown/plugin-meetings.constants._wait_.md +0 -11
  524. package/dist/docs/markdown/plugin-meetings.constants._webex_meeting_.md +0 -11
  525. package/dist/docs/markdown/plugin-meetings.constants.alert.md +0 -11
  526. package/dist/docs/markdown/plugin-meetings.constants.alternate_redirect_true.md +0 -11
  527. package/dist/docs/markdown/plugin-meetings.constants.answer.md +0 -11
  528. package/dist/docs/markdown/plugin-meetings.constants.api.md +0 -14
  529. package/dist/docs/markdown/plugin-meetings.constants.audio.md +0 -11
  530. package/dist/docs/markdown/plugin-meetings.constants.audio_input.md +0 -11
  531. package/dist/docs/markdown/plugin-meetings.constants.audio_status.md +0 -11
  532. package/dist/docs/markdown/plugin-meetings.constants.available_resolutions.md +0 -60
  533. package/dist/docs/markdown/plugin-meetings.constants.bnr_status.md +0 -16
  534. package/dist/docs/markdown/plugin-meetings.constants.breakouts.md +0 -51
  535. package/dist/docs/markdown/plugin-meetings.constants.calendar.md +0 -11
  536. package/dist/docs/markdown/plugin-meetings.constants.calendar_events.md +0 -17
  537. package/dist/docs/markdown/plugin-meetings.constants.calendar_events_api.md +0 -11
  538. package/dist/docs/markdown/plugin-meetings.constants.call.md +0 -11
  539. package/dist/docs/markdown/plugin-meetings.constants.call_removed_reason.md +0 -15
  540. package/dist/docs/markdown/plugin-meetings.constants.claim.md +0 -11
  541. package/dist/docs/markdown/plugin-meetings.constants.cmr_meetings.md +0 -11
  542. package/dist/docs/markdown/plugin-meetings.constants.complete.md +0 -11
  543. package/dist/docs/markdown/plugin-meetings.constants.connection_state.md +0 -18
  544. package/dist/docs/markdown/plugin-meetings.constants.content.md +0 -11
  545. package/dist/docs/markdown/plugin-meetings.constants.controls.md +0 -11
  546. package/dist/docs/markdown/plugin-meetings.constants.conversation_service.md +0 -11
  547. package/dist/docs/markdown/plugin-meetings.constants.conversation_url.md +0 -11
  548. package/dist/docs/markdown/plugin-meetings.constants.correlation_id.md +0 -11
  549. package/dist/docs/markdown/plugin-meetings.constants.decline.md +0 -11
  550. package/dist/docs/markdown/plugin-meetings.constants.default_excluded_stats.md +0 -11
  551. package/dist/docs/markdown/plugin-meetings.constants.default_get_stats_filter.md +0 -13
  552. package/dist/docs/markdown/plugin-meetings.constants.development.md +0 -11
  553. package/dist/docs/markdown/plugin-meetings.constants.dialer_regex.md +0 -15
  554. package/dist/docs/markdown/plugin-meetings.constants.display_hints.md +0 -51
  555. package/dist/docs/markdown/plugin-meetings.constants.embedded_app_types.md +0 -14
  556. package/dist/docs/markdown/plugin-meetings.constants.end.md +0 -11
  557. package/dist/docs/markdown/plugin-meetings.constants.ended.md +0 -11
  558. package/dist/docs/markdown/plugin-meetings.constants.error.md +0 -11
  559. package/dist/docs/markdown/plugin-meetings.constants.error_dictionary.md +0 -62
  560. package/dist/docs/markdown/plugin-meetings.constants.event_triggers.md +0 -82
  561. package/dist/docs/markdown/plugin-meetings.constants.event_types.md +0 -21
  562. package/dist/docs/markdown/plugin-meetings.constants.events.md +0 -26
  563. package/dist/docs/markdown/plugin-meetings.constants.floor_action.md +0 -15
  564. package/dist/docs/markdown/plugin-meetings.constants.full_state.md +0 -17
  565. package/dist/docs/markdown/plugin-meetings.constants.gathering.md +0 -11
  566. package/dist/docs/markdown/plugin-meetings.constants.hecate.md +0 -11
  567. package/dist/docs/markdown/plugin-meetings.constants.host.md +0 -11
  568. package/dist/docs/markdown/plugin-meetings.constants.http_verbs.md +0 -17
  569. package/dist/docs/markdown/plugin-meetings.constants.https_protocol.md +0 -11
  570. package/dist/docs/markdown/plugin-meetings.constants.ice_fail_timeout.md +0 -11
  571. package/dist/docs/markdown/plugin-meetings.constants.ice_gathering_state.md +0 -15
  572. package/dist/docs/markdown/plugin-meetings.constants.ice_state.md +0 -18
  573. package/dist/docs/markdown/plugin-meetings.constants.ice_timeout.md +0 -11
  574. package/dist/docs/markdown/plugin-meetings.constants.intent_to_join.md +0 -11
  575. package/dist/docs/markdown/plugin-meetings.constants.ipv4_regex.md +0 -11
  576. package/dist/docs/markdown/plugin-meetings.constants.join.md +0 -11
  577. package/dist/docs/markdown/plugin-meetings.constants.layout_types.md +0 -13
  578. package/dist/docs/markdown/plugin-meetings.constants.leave.md +0 -11
  579. package/dist/docs/markdown/plugin-meetings.constants.live.md +0 -11
  580. package/dist/docs/markdown/plugin-meetings.constants.local.md +0 -11
  581. package/dist/docs/markdown/plugin-meetings.constants.loci.md +0 -11
  582. package/dist/docs/markdown/plugin-meetings.constants.locus.md +0 -26
  583. package/dist/docs/markdown/plugin-meetings.constants.locus_url.md +0 -11
  584. package/dist/docs/markdown/plugin-meetings.constants.locusevent.md +0 -33
  585. package/dist/docs/markdown/plugin-meetings.constants.locusinfo.md +0 -43
  586. package/dist/docs/markdown/plugin-meetings.constants.max_random_delay_for_meeting_info.md +0 -11
  587. package/dist/docs/markdown/plugin-meetings.constants.md +0 -186
  588. package/dist/docs/markdown/plugin-meetings.constants.media.md +0 -11
  589. package/dist/docs/markdown/plugin-meetings.constants.media_devices.md +0 -15
  590. package/dist/docs/markdown/plugin-meetings.constants.media_peer_connection_name.md +0 -11
  591. package/dist/docs/markdown/plugin-meetings.constants.media_state.md +0 -14
  592. package/dist/docs/markdown/plugin-meetings.constants.media_track_constraint.md +0 -17
  593. package/dist/docs/markdown/plugin-meetings.constants.mediacontent.md +0 -14
  594. package/dist/docs/markdown/plugin-meetings.constants.meet.md +0 -11
  595. package/dist/docs/markdown/plugin-meetings.constants.meet_m.md +0 -11
  596. package/dist/docs/markdown/plugin-meetings.constants.meeting_audio_state_machine.md +0 -20
  597. package/dist/docs/markdown/plugin-meetings.constants.meeting_end_reason.md +0 -14
  598. package/dist/docs/markdown/plugin-meetings.constants.meeting_errors.md +0 -102
  599. package/dist/docs/markdown/plugin-meetings.constants.meeting_info_failure_reason.md +0 -16
  600. package/dist/docs/markdown/plugin-meetings.constants.meeting_removed_reason.md +0 -19
  601. package/dist/docs/markdown/plugin-meetings.constants.meeting_state.md +0 -25
  602. package/dist/docs/markdown/plugin-meetings.constants.meeting_state_machine.md +0 -31
  603. package/dist/docs/markdown/plugin-meetings.constants.meeting_video_state_machine.md +0 -20
  604. package/dist/docs/markdown/plugin-meetings.constants.meetinginfo.md +0 -11
  605. package/dist/docs/markdown/plugin-meetings.constants.meetings.md +0 -11
  606. package/dist/docs/markdown/plugin-meetings.constants.metrics_join_times_max_duration.md +0 -11
  607. package/dist/docs/markdown/plugin-meetings.constants.moderator_false.md +0 -11
  608. package/dist/docs/markdown/plugin-meetings.constants.moderator_true.md +0 -11
  609. package/dist/docs/markdown/plugin-meetings.constants.mqa_inteval.md +0 -11
  610. package/dist/docs/markdown/plugin-meetings.constants.mqa_stats.md +0 -82
  611. package/dist/docs/markdown/plugin-meetings.constants.network_status.md +0 -15
  612. package/dist/docs/markdown/plugin-meetings.constants.network_type.md +0 -16
  613. package/dist/docs/markdown/plugin-meetings.constants.offline.md +0 -11
  614. package/dist/docs/markdown/plugin-meetings.constants.online.md +0 -11
  615. package/dist/docs/markdown/plugin-meetings.constants.participant.md +0 -11
  616. package/dist/docs/markdown/plugin-meetings.constants.participant_deltas.md +0 -22
  617. package/dist/docs/markdown/plugin-meetings.constants.password_status.md +0 -16
  618. package/dist/docs/markdown/plugin-meetings.constants.pc_bail_timeout.md +0 -11
  619. package/dist/docs/markdown/plugin-meetings.constants.peer_connection_state.md +0 -14
  620. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_in.md +0 -11
  621. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_out.md +0 -11
  622. package/dist/docs/markdown/plugin-meetings.constants.pstn_status.md +0 -18
  623. package/dist/docs/markdown/plugin-meetings.constants.quality_levels.md +0 -19
  624. package/dist/docs/markdown/plugin-meetings.constants.reachability.md +0 -15
  625. package/dist/docs/markdown/plugin-meetings.constants.ready.md +0 -11
  626. package/dist/docs/markdown/plugin-meetings.constants.reconnection.md +0 -19
  627. package/dist/docs/markdown/plugin-meetings.constants.recording_state.md +0 -16
  628. package/dist/docs/markdown/plugin-meetings.constants.remote.md +0 -11
  629. package/dist/docs/markdown/plugin-meetings.constants.resource.md +0 -15
  630. package/dist/docs/markdown/plugin-meetings.constants.retry_timeout.md +0 -11
  631. package/dist/docs/markdown/plugin-meetings.constants.roap.md +0 -22
  632. package/dist/docs/markdown/plugin-meetings.constants.self_roles.md +0 -14
  633. package/dist/docs/markdown/plugin-meetings.constants.send_dtmf_endpoint.md +0 -11
  634. package/dist/docs/markdown/plugin-meetings.constants.sendrecv.md +0 -11
  635. package/dist/docs/markdown/plugin-meetings.constants.share.md +0 -11
  636. package/dist/docs/markdown/plugin-meetings.constants.share_peer_connection_name.md +0 -11
  637. package/dist/docs/markdown/plugin-meetings.constants.share_status.md +0 -16
  638. package/dist/docs/markdown/plugin-meetings.constants.share_stopped_reason.md +0 -14
  639. package/dist/docs/markdown/plugin-meetings.constants.sip_uri.md +0 -11
  640. package/dist/docs/markdown/plugin-meetings.constants.stats.md +0 -16
  641. package/dist/docs/markdown/plugin-meetings.constants.type.md +0 -11
  642. package/dist/docs/markdown/plugin-meetings.constants.use_uri_lookup_false.md +0 -11
  643. package/dist/docs/markdown/plugin-meetings.constants.uuid_reg.md +0 -11
  644. package/dist/docs/markdown/plugin-meetings.constants.valid_email_address.md +0 -11
  645. package/dist/docs/markdown/plugin-meetings.constants.valid_pin.md +0 -11
  646. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_address.md +0 -11
  647. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_link.md +0 -11
  648. package/dist/docs/markdown/plugin-meetings.constants.video.md +0 -11
  649. package/dist/docs/markdown/plugin-meetings.constants.video_input.md +0 -11
  650. package/dist/docs/markdown/plugin-meetings.constants.video_resolutions.md +0 -24
  651. package/dist/docs/markdown/plugin-meetings.constants.video_status.md +0 -11
  652. package/dist/docs/markdown/plugin-meetings.constants.wbxappapi_service.md +0 -11
  653. package/dist/docs/markdown/plugin-meetings.constants.webex_dot_com.md +0 -11
  654. package/dist/docs/markdown/plugin-meetings.constants.whiteboard.md +0 -11
  655. package/dist/docs/markdown/plugin-meetings.constants.www_dot.md +0 -11
  656. package/dist/docs/markdown/plugin-meetings.md +0 -28
  657. package/dist/docs/markdown/plugin-meetings.meeting.default._constructor_.md +0 -21
  658. package/dist/docs/markdown/plugin-meetings.meeting.default.acknowledge.md +0 -28
  659. package/dist/docs/markdown/plugin-meetings.meeting.default.addmedia.md +0 -28
  660. package/dist/docs/markdown/plugin-meetings.meeting.default.admit.md +0 -32
  661. package/dist/docs/markdown/plugin-meetings.meeting.default.attrs.md +0 -11
  662. package/dist/docs/markdown/plugin-meetings.meeting.default.audio.md +0 -11
  663. package/dist/docs/markdown/plugin-meetings.meeting.default.breakouts.md +0 -11
  664. package/dist/docs/markdown/plugin-meetings.meeting.default.callevents.md +0 -11
  665. package/dist/docs/markdown/plugin-meetings.meeting.default.cancelphoneinvite.md +0 -30
  666. package/dist/docs/markdown/plugin-meetings.meeting.default.canupdatemedia.md +0 -19
  667. package/dist/docs/markdown/plugin-meetings.meeting.default.changevideolayout.md +0 -38
  668. package/dist/docs/markdown/plugin-meetings.meeting.default.clearmeetingdata.md +0 -13
  669. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalshare.md +0 -21
  670. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalstream.md +0 -21
  671. package/dist/docs/markdown/plugin-meetings.meeting.default.closepeerconnections.md +0 -21
  672. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotestream.md +0 -26
  673. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotetracks.md +0 -19
  674. package/dist/docs/markdown/plugin-meetings.meeting.default.controlsoptionsmanager.md +0 -11
  675. package/dist/docs/markdown/plugin-meetings.meeting.default.conversationurl.md +0 -11
  676. package/dist/docs/markdown/plugin-meetings.meeting.default.correlationid.md +0 -11
  677. package/dist/docs/markdown/plugin-meetings.meeting.default.createmediaconnection.md +0 -26
  678. package/dist/docs/markdown/plugin-meetings.meeting.default.decline.md +0 -28
  679. package/dist/docs/markdown/plugin-meetings.meeting.default.deferjoin.md +0 -11
  680. package/dist/docs/markdown/plugin-meetings.meeting.default.destination.md +0 -11
  681. package/dist/docs/markdown/plugin-meetings.meeting.default.destinationtype.md +0 -11
  682. package/dist/docs/markdown/plugin-meetings.meeting.default.deviceurl.md +0 -11
  683. package/dist/docs/markdown/plugin-meetings.meeting.default.dialindevicestatus.md +0 -11
  684. package/dist/docs/markdown/plugin-meetings.meeting.default.dialinurl.md +0 -11
  685. package/dist/docs/markdown/plugin-meetings.meeting.default.dialoutdevicestatus.md +0 -11
  686. package/dist/docs/markdown/plugin-meetings.meeting.default.dialouturl.md +0 -11
  687. package/dist/docs/markdown/plugin-meetings.meeting.default.disconnectphoneaudio.md +0 -19
  688. package/dist/docs/markdown/plugin-meetings.meeting.default.endcallinitiatejoinreq.md +0 -11
  689. package/dist/docs/markdown/plugin-meetings.meeting.default.endjoinreqresp.md +0 -11
  690. package/dist/docs/markdown/plugin-meetings.meeting.default.endlocalsdpgenremotesdprecvdelay.md +0 -11
  691. package/dist/docs/markdown/plugin-meetings.meeting.default.endmeetingforall.md +0 -21
  692. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfo.md +0 -29
  693. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfotimeoutid.md +0 -11
  694. package/dist/docs/markdown/plugin-meetings.meeting.default.floorgrantpending.md +0 -11
  695. package/dist/docs/markdown/plugin-meetings.meeting.default.forwardevent.md +0 -29
  696. package/dist/docs/markdown/plugin-meetings.meeting.default.getanalyzermetricsprepayload.md +0 -32
  697. package/dist/docs/markdown/plugin-meetings.meeting.default.getcallinitiatejoinreq.md +0 -17
  698. package/dist/docs/markdown/plugin-meetings.meeting.default.getdevices.md +0 -13
  699. package/dist/docs/markdown/plugin-meetings.meeting.default.getjoinreqresp.md +0 -17
  700. package/dist/docs/markdown/plugin-meetings.meeting.default.getlocalsdpgenremotesdprecvdelay.md +0 -17
  701. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediaconnectiondebugid.md +0 -15
  702. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediastreams.md +0 -15
  703. package/dist/docs/markdown/plugin-meetings.meeting.default.getmembers.md +0 -21
  704. package/dist/docs/markdown/plugin-meetings.meeting.default.getsendingmediadelayduration.md +0 -24
  705. package/dist/docs/markdown/plugin-meetings.meeting.default.getsetupdelayduration.md +0 -24
  706. package/dist/docs/markdown/plugin-meetings.meeting.default.getsupporteddevices.md +0 -16
  707. package/dist/docs/markdown/plugin-meetings.meeting.default.gettotaljmt.md +0 -17
  708. package/dist/docs/markdown/plugin-meetings.meeting.default.guest.md +0 -11
  709. package/dist/docs/markdown/plugin-meetings.meeting.default.handledatachannelurlchange.md +0 -26
  710. package/dist/docs/markdown/plugin-meetings.meeting.default.handleroapfailure.md +0 -13
  711. package/dist/docs/markdown/plugin-meetings.meeting.default.hasjoinedonce.md +0 -11
  712. package/dist/docs/markdown/plugin-meetings.meeting.default.haswebsocketconnected.md +0 -11
  713. package/dist/docs/markdown/plugin-meetings.meeting.default.hostid.md +0 -11
  714. package/dist/docs/markdown/plugin-meetings.meeting.default.id.md +0 -11
  715. package/dist/docs/markdown/plugin-meetings.meeting.default.inmeetingactions.md +0 -11
  716. package/dist/docs/markdown/plugin-meetings.meeting.default.invite.md +0 -33
  717. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioconnected.md +0 -21
  718. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudiomuted.md +0 -21
  719. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioself.md +0 -21
  720. package/dist/docs/markdown/plugin-meetings.meeting.default.islocalsharelive.md +0 -11
  721. package/dist/docs/markdown/plugin-meetings.meeting.default.ismultistream.md +0 -11
  722. package/dist/docs/markdown/plugin-meetings.meeting.default.isreactionssupported.md +0 -19
  723. package/dist/docs/markdown/plugin-meetings.meeting.default.isroapinprogress.md +0 -11
  724. package/dist/docs/markdown/plugin-meetings.meeting.default.issharing.md +0 -11
  725. package/dist/docs/markdown/plugin-meetings.meeting.default.istranscriptionsupported.md +0 -23
  726. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoconnected.md +0 -21
  727. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideomuted.md +0 -21
  728. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoself.md +0 -21
  729. package/dist/docs/markdown/plugin-meetings.meeting.default.join.md +0 -28
  730. package/dist/docs/markdown/plugin-meetings.meeting.default.joinedwith.md +0 -11
  731. package/dist/docs/markdown/plugin-meetings.meeting.default.joinwithmedia.md +0 -36
  732. package/dist/docs/markdown/plugin-meetings.meeting.default.keepalivetimerid.md +0 -11
  733. package/dist/docs/markdown/plugin-meetings.meeting.default.lastvideolayoutinfo.md +0 -11
  734. package/dist/docs/markdown/plugin-meetings.meeting.default.leave.md +0 -31
  735. package/dist/docs/markdown/plugin-meetings.meeting.default.lockmeeting.md +0 -21
  736. package/dist/docs/markdown/plugin-meetings.meeting.default.locusid.md +0 -11
  737. package/dist/docs/markdown/plugin-meetings.meeting.default.locusinfo.md +0 -11
  738. package/dist/docs/markdown/plugin-meetings.meeting.default.locusurl.md +0 -11
  739. package/dist/docs/markdown/plugin-meetings.meeting.default.md +0 -227
  740. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaconnections.md +0 -11
  741. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaid.md +0 -11
  742. package/dist/docs/markdown/plugin-meetings.meeting.default.medianegotiatedevent.md +0 -13
  743. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaproperties.md +0 -11
  744. package/dist/docs/markdown/plugin-meetings.meeting.default.mediarequestmanagers.md +0 -16
  745. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingfinitestatemachine.md +0 -11
  746. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfo.md +0 -11
  747. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfofailurereason.md +0 -11
  748. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingjoinurl.md +0 -11
  749. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingnumber.md +0 -11
  750. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingrequest.md +0 -11
  751. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingstate.md +0 -11
  752. package/dist/docs/markdown/plugin-meetings.meeting.default.members.md +0 -11
  753. package/dist/docs/markdown/plugin-meetings.meeting.default.movefrom.md +0 -28
  754. package/dist/docs/markdown/plugin-meetings.meeting.default.moveto.md +0 -28
  755. package/dist/docs/markdown/plugin-meetings.meeting.default.mute.md +0 -29
  756. package/dist/docs/markdown/plugin-meetings.meeting.default.muteaudio.md +0 -21
  757. package/dist/docs/markdown/plugin-meetings.meeting.default.mutevideo.md +0 -21
  758. package/dist/docs/markdown/plugin-meetings.meeting.default.namespace.md +0 -11
  759. package/dist/docs/markdown/plugin-meetings.meeting.default.networkqualitymonitor.md +0 -11
  760. package/dist/docs/markdown/plugin-meetings.meeting.default.networkstatus.md +0 -11
  761. package/dist/docs/markdown/plugin-meetings.meeting.default.options.md +0 -11
  762. package/dist/docs/markdown/plugin-meetings.meeting.default.orgid.md +0 -11
  763. package/dist/docs/markdown/plugin-meetings.meeting.default.owner.md +0 -11
  764. package/dist/docs/markdown/plugin-meetings.meeting.default.parsemeetinginfo.md +0 -34
  765. package/dist/docs/markdown/plugin-meetings.meeting.default.partner.md +0 -11
  766. package/dist/docs/markdown/plugin-meetings.meeting.default.passwordstatus.md +0 -11
  767. package/dist/docs/markdown/plugin-meetings.meeting.default.pauserecording.md +0 -21
  768. package/dist/docs/markdown/plugin-meetings.meeting.default.permissiontoken.md +0 -11
  769. package/dist/docs/markdown/plugin-meetings.meeting.default.policy.md +0 -11
  770. package/dist/docs/markdown/plugin-meetings.meeting.default.processnextqueuedmediaupdate.md +0 -13
  771. package/dist/docs/markdown/plugin-meetings.meeting.default.publishtracks.md +0 -33
  772. package/dist/docs/markdown/plugin-meetings.meeting.default.queuedmediaupdates.md +0 -11
  773. package/dist/docs/markdown/plugin-meetings.meeting.default.receiveslotmanager.md +0 -11
  774. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnect.md +0 -28
  775. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnectionmanager.md +0 -11
  776. package/dist/docs/markdown/plugin-meetings.meeting.default.recording.md +0 -11
  777. package/dist/docs/markdown/plugin-meetings.meeting.default.recordingcontroller.md +0 -11
  778. package/dist/docs/markdown/plugin-meetings.meeting.default.refreshcaptcha.md +0 -21
  779. package/dist/docs/markdown/plugin-meetings.meeting.default.remotemediamanager.md +0 -11
  780. package/dist/docs/markdown/plugin-meetings.meeting.default.remove.md +0 -28
  781. package/dist/docs/markdown/plugin-meetings.meeting.default.requiredcaptcha.md +0 -11
  782. package/dist/docs/markdown/plugin-meetings.meeting.default.resource.md +0 -11
  783. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceid.md +0 -11
  784. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceurl.md +0 -11
  785. package/dist/docs/markdown/plugin-meetings.meeting.default.resumerecording.md +0 -21
  786. package/dist/docs/markdown/plugin-meetings.meeting.default.roap.md +0 -11
  787. package/dist/docs/markdown/plugin-meetings.meeting.default.roapseq.md +0 -11
  788. package/dist/docs/markdown/plugin-meetings.meeting.default.selfid.md +0 -11
  789. package/dist/docs/markdown/plugin-meetings.meeting.default.senddtmf.md +0 -28
  790. package/dist/docs/markdown/plugin-meetings.meeting.default.sendreaction.md +0 -29
  791. package/dist/docs/markdown/plugin-meetings.meeting.default.setdisallowunmute.md +0 -26
  792. package/dist/docs/markdown/plugin-meetings.meeting.default.setendcallinitiatejoinreq.md +0 -17
  793. package/dist/docs/markdown/plugin-meetings.meeting.default.setendjoinreqresp.md +0 -17
  794. package/dist/docs/markdown/plugin-meetings.meeting.default.setendlocalsdpgenremotesdprecvdelay.md +0 -17
  795. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsendingmediadelay.md +0 -24
  796. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsetupdelay.md +0 -24
  797. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalsharetrack.md +0 -28
  798. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocaltracks.md +0 -28
  799. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalvideoquality.md +0 -26
  800. package/dist/docs/markdown/plugin-meetings.meeting.default.setmeetingquality.md +0 -31
  801. package/dist/docs/markdown/plugin-meetings.meeting.default.setmercurylistener.md +0 -21
  802. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteall.md +0 -28
  803. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteonentry.md +0 -26
  804. package/dist/docs/markdown/plugin-meetings.meeting.default.setremotequalitylevel.md +0 -26
  805. package/dist/docs/markdown/plugin-meetings.meeting.default.setsipuri.md +0 -26
  806. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartcallinitiatejoinreq.md +0 -17
  807. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartjoinreqresp.md +0 -17
  808. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartlocalsdpgenremotesdprecvdelay.md +0 -17
  809. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsendingmediadelay.md +0 -24
  810. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsetupdelay.md +0 -24
  811. package/dist/docs/markdown/plugin-meetings.meeting.default.setupbreakoutslistener.md +0 -19
  812. package/dist/docs/markdown/plugin-meetings.meeting.default.setupmediaconnectionlisteners.md +0 -11
  813. package/dist/docs/markdown/plugin-meetings.meeting.default.setupstatsanalyzereventhandlers.md +0 -13
  814. package/dist/docs/markdown/plugin-meetings.meeting.default.sharescreen.md +0 -32
  815. package/dist/docs/markdown/plugin-meetings.meeting.default.sharestatus.md +0 -11
  816. package/dist/docs/markdown/plugin-meetings.meeting.default.sipuri.md +0 -11
  817. package/dist/docs/markdown/plugin-meetings.meeting.default.startcallinitiatejoinreq.md +0 -11
  818. package/dist/docs/markdown/plugin-meetings.meeting.default.startjoinreqresp.md +0 -11
  819. package/dist/docs/markdown/plugin-meetings.meeting.default.startkeepalive.md +0 -13
  820. package/dist/docs/markdown/plugin-meetings.meeting.default.startlocalsdpgenremotesdprecvdelay.md +0 -11
  821. package/dist/docs/markdown/plugin-meetings.meeting.default.startrecording.md +0 -21
  822. package/dist/docs/markdown/plugin-meetings.meeting.default.startwhiteboardshare.md +0 -29
  823. package/dist/docs/markdown/plugin-meetings.meeting.default.state.md +0 -11
  824. package/dist/docs/markdown/plugin-meetings.meeting.default.statsanalyzer.md +0 -11
  825. package/dist/docs/markdown/plugin-meetings.meeting.default.stopkeepalive.md +0 -13
  826. package/dist/docs/markdown/plugin-meetings.meeting.default.stopreceivingtranscription.md +0 -19
  827. package/dist/docs/markdown/plugin-meetings.meeting.default.stoprecording.md +0 -21
  828. package/dist/docs/markdown/plugin-meetings.meeting.default.stopshare.md +0 -28
  829. package/dist/docs/markdown/plugin-meetings.meeting.default.stopwhiteboardshare.md +0 -28
  830. package/dist/docs/markdown/plugin-meetings.meeting.default.togglereactions.md +0 -28
  831. package/dist/docs/markdown/plugin-meetings.meeting.default.transcription.md +0 -11
  832. package/dist/docs/markdown/plugin-meetings.meeting.default.transfer.md +0 -29
  833. package/dist/docs/markdown/plugin-meetings.meeting.default.type.md +0 -11
  834. package/dist/docs/markdown/plugin-meetings.meeting.default.unlockmeeting.md +0 -21
  835. package/dist/docs/markdown/plugin-meetings.meeting.default.unmuteaudio.md +0 -21
  836. package/dist/docs/markdown/plugin-meetings.meeting.default.unmutevideo.md +0 -21
  837. package/dist/docs/markdown/plugin-meetings.meeting.default.unpublishtracks.md +0 -26
  838. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalsharetrack.md +0 -21
  839. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalvideotrack.md +0 -21
  840. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetpeerconnections.md +0 -21
  841. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotestream.md +0 -26
  842. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotetracks.md +0 -19
  843. package/dist/docs/markdown/plugin-meetings.meeting.default.updateaudio.md +0 -34
  844. package/dist/docs/markdown/plugin-meetings.meeting.default.updatellmconnection.md +0 -19
  845. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemedia.md +0 -32
  846. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemediaconnections.md +0 -11
  847. package/dist/docs/markdown/plugin-meetings.meeting.default.updateshare.md +0 -35
  848. package/dist/docs/markdown/plugin-meetings.meeting.default.updatevideo.md +0 -34
  849. package/dist/docs/markdown/plugin-meetings.meeting.default.uploadlogs.md +0 -28
  850. package/dist/docs/markdown/plugin-meetings.meeting.default.usephoneaudio.md +0 -28
  851. package/dist/docs/markdown/plugin-meetings.meeting.default.userid.md +0 -11
  852. package/dist/docs/markdown/plugin-meetings.meeting.default.verifypassword.md +0 -35
  853. package/dist/docs/markdown/plugin-meetings.meeting.default.video.md +0 -11
  854. package/dist/docs/markdown/plugin-meetings.meeting.default.wirelessshare.md +0 -11
  855. package/dist/docs/markdown/plugin-meetings.meeting.md +0 -18
  856. package/dist/docs/markdown/plugin-meetings.meeting.media_update_type.md +0 -17
  857. package/dist/docs/markdown/plugin-meetings.meetings._constructor_.md +0 -22
  858. package/dist/docs/markdown/plugin-meetings.meetings.create.md +0 -30
  859. package/dist/docs/markdown/plugin-meetings.meetings.fetchuserpreferredwebexsite.md +0 -19
  860. package/dist/docs/markdown/plugin-meetings.meetings.geohintinfo.md +0 -11
  861. package/dist/docs/markdown/plugin-meetings.meetings.getallmeetings.md +0 -31
  862. package/dist/docs/markdown/plugin-meetings.meetings.getgeohint.md +0 -19
  863. package/dist/docs/markdown/plugin-meetings.meetings.getlogger.md +0 -19
  864. package/dist/docs/markdown/plugin-meetings.meetings.getmeetingbytype.md +0 -29
  865. package/dist/docs/markdown/plugin-meetings.meetings.getpersonalmeetingroom.md +0 -21
  866. package/dist/docs/markdown/plugin-meetings.meetings.getreachability.md +0 -21
  867. package/dist/docs/markdown/plugin-meetings.meetings.getscheduledmeetings.md +0 -19
  868. package/dist/docs/markdown/plugin-meetings.meetings.loggerrequest.md +0 -11
  869. package/dist/docs/markdown/plugin-meetings.meetings.md +0 -57
  870. package/dist/docs/markdown/plugin-meetings.meetings.media.md +0 -11
  871. package/dist/docs/markdown/plugin-meetings.meetings.meetingcollection.md +0 -11
  872. package/dist/docs/markdown/plugin-meetings.meetings.meetinginfo.md +0 -11
  873. package/dist/docs/markdown/plugin-meetings.meetings.namespace.md +0 -11
  874. package/dist/docs/markdown/plugin-meetings.meetings.personalmeetingroom.md +0 -11
  875. package/dist/docs/markdown/plugin-meetings.meetings.preferredwebexsite.md +0 -11
  876. package/dist/docs/markdown/plugin-meetings.meetings.reachability.md +0 -11
  877. package/dist/docs/markdown/plugin-meetings.meetings.register.md +0 -21
  878. package/dist/docs/markdown/plugin-meetings.meetings.registered.md +0 -11
  879. package/dist/docs/markdown/plugin-meetings.meetings.request.md +0 -11
  880. package/dist/docs/markdown/plugin-meetings.meetings.setreachability.md +0 -21
  881. package/dist/docs/markdown/plugin-meetings.meetings.startreachability.md +0 -21
  882. package/dist/docs/markdown/plugin-meetings.meetings.syncmeetings.md +0 -21
  883. package/dist/docs/markdown/plugin-meetings.meetings.unregister.md +0 -21
  884. package/dist/docs/markdown/plugin-meetings.meetings.uploadlogs.md +0 -34
  885. package/dist/docs/markdown/plugin-meetings.reactions.md +0 -13
  886. package/dist/docs/markdown/plugin-meetings.reactions.reactions.md +0 -11
  887. package/dist/docs/markdown/plugin-meetings.reactions.skintones.md +0 -11
  888. package/dist/docs/markdown/plugin-meetings.remotemedia.getmaxfs.md +0 -26
  889. package/dist/docs/markdown/plugin-meetings.remotemedia.md +0 -31
  890. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia._constructor_.md +0 -22
  891. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.csi.md +0 -13
  892. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.id.md +0 -11
  893. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.md +0 -40
  894. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.mediatype.md +0 -13
  895. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.memberid.md +0 -13
  896. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.setsizehint.md +0 -25
  897. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.sourcestate.md +0 -13
  898. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.stream.md +0 -13
  899. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaevents.md +0 -14
  900. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaid.md +0 -11
  901. package/dist/docs/markdown/plugin-meetings.remotemedia.remotevideoresolution.md +0 -11
  902. package/dist/docs/markdown/plugin-meetings.remotemediagroup.md +0 -12
  903. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup._constructor_.md +0 -24
  904. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.getremotemedia.md +0 -26
  905. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.includes.md +0 -27
  906. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.ispinned.md +0 -22
  907. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.md +0 -28
  908. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.pin.md +0 -25
  909. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.unpin.md +0 -24
  910. package/dist/docs/markdown/plugin-meetings.triggerproxy.md +0 -11
  911. package/dist/docs/metadata/index.api.json +0 -14144
  912. package/dist/docs/metadata/index.api.md +0 -2075
  913. package/dist/docs/metadata/index.d.ts +0 -5594
  914. package/dist/meeting/effectsState.d.ts +0 -42
  915. package/dist/meeting/effectsState.js +0 -260
  916. package/dist/meeting/effectsState.js.map +0 -1
  917. package/dist/metrics/config.d.ts +0 -169
  918. package/dist/metrics/config.js +0 -291
  919. package/dist/metrics/config.js.map +0 -1
  920. package/dist/peer-connection-manager/index.d.ts +0 -6
  921. package/dist/peer-connection-manager/index.js +0 -671
  922. package/dist/peer-connection-manager/index.js.map +0 -1
  923. package/dist/peer-connection-manager/util.d.ts +0 -6
  924. package/dist/peer-connection-manager/util.js +0 -110
  925. package/dist/peer-connection-manager/util.js.map +0 -1
  926. package/dist/plugin-meetings.d.ts +0 -5399
  927. package/dist/roap/collection.d.ts +0 -10
  928. package/dist/roap/collection.js +0 -63
  929. package/dist/roap/collection.js.map +0 -1
  930. package/dist/roap/handler.d.ts +0 -47
  931. package/dist/roap/handler.js +0 -279
  932. package/dist/roap/handler.js.map +0 -1
  933. package/dist/roap/state.d.ts +0 -9
  934. package/dist/roap/state.js +0 -127
  935. package/dist/roap/state.js.map +0 -1
  936. package/dist/roap/util.d.ts +0 -2
  937. package/dist/roap/util.js +0 -76
  938. package/dist/roap/util.js.map +0 -1
  939. package/dist/types/common/browser-detection.d.ts +0 -9
  940. package/dist/types/common/collection.d.ts +0 -48
  941. package/dist/types/common/config.d.ts +0 -2
  942. package/dist/types/common/errors/captcha-error.d.ts +0 -15
  943. package/dist/types/common/errors/intent-to-join.d.ts +0 -16
  944. package/dist/types/common/errors/join-meeting.d.ts +0 -17
  945. package/dist/types/common/errors/media.d.ts +0 -15
  946. package/dist/types/common/errors/parameter.d.ts +0 -15
  947. package/dist/types/common/errors/password-error.d.ts +0 -15
  948. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  949. package/dist/types/common/errors/reconnection.d.ts +0 -15
  950. package/dist/types/common/errors/stats.d.ts +0 -15
  951. package/dist/types/common/errors/webex-errors.d.ts +0 -69
  952. package/dist/types/common/errors/webex-meetings-error.d.ts +0 -20
  953. package/dist/types/common/events/events-scope.d.ts +0 -17
  954. package/dist/types/common/events/events.d.ts +0 -12
  955. package/dist/types/common/events/trigger-proxy.d.ts +0 -2
  956. package/dist/types/common/events/util.d.ts +0 -2
  957. package/dist/types/common/logs/logger-config.d.ts +0 -2
  958. package/dist/types/common/logs/logger-proxy.d.ts +0 -2
  959. package/dist/types/common/logs/request.d.ts +0 -34
  960. package/dist/types/common/queue.d.ts +0 -32
  961. package/dist/types/config.d.ts +0 -78
  962. package/dist/types/constants.d.ts +0 -957
  963. package/dist/types/controls-options-manager/constants.d.ts +0 -4
  964. package/dist/types/controls-options-manager/enums.d.ts +0 -13
  965. package/dist/types/controls-options-manager/index.d.ts +0 -136
  966. package/dist/types/controls-options-manager/util.d.ts +0 -1
  967. package/dist/types/index.d.ts +0 -7
  968. package/dist/types/locus-info/controlsUtils.d.ts +0 -2
  969. package/dist/types/locus-info/embeddedAppsUtils.d.ts +0 -2
  970. package/dist/types/locus-info/fullState.d.ts +0 -2
  971. package/dist/types/locus-info/hostUtils.d.ts +0 -2
  972. package/dist/types/locus-info/index.d.ts +0 -277
  973. package/dist/types/locus-info/infoUtils.d.ts +0 -2
  974. package/dist/types/locus-info/mediaSharesUtils.d.ts +0 -2
  975. package/dist/types/locus-info/parser.d.ts +0 -212
  976. package/dist/types/locus-info/selfUtils.d.ts +0 -2
  977. package/dist/types/media/index.d.ts +0 -32
  978. package/dist/types/media/properties.d.ts +0 -108
  979. package/dist/types/media/util.d.ts +0 -2
  980. package/dist/types/mediaQualityMetrics/config.d.ts +0 -365
  981. package/dist/types/meeting/effectsState.d.ts +0 -42
  982. package/dist/types/meeting/in-meeting-actions.d.ts +0 -105
  983. package/dist/types/meeting/index.d.ts +0 -1724
  984. package/dist/types/meeting/muteState.d.ts +0 -185
  985. package/dist/types/meeting/request.d.ts +0 -271
  986. package/dist/types/meeting/state.d.ts +0 -9
  987. package/dist/types/meeting/util.d.ts +0 -2
  988. package/dist/types/meeting-info/collection.d.ts +0 -20
  989. package/dist/types/meeting-info/index.d.ts +0 -57
  990. package/dist/types/meeting-info/meeting-info-v2.d.ts +0 -111
  991. package/dist/types/meeting-info/request.d.ts +0 -22
  992. package/dist/types/meeting-info/util.d.ts +0 -2
  993. package/dist/types/meeting-info/utilv2.d.ts +0 -2
  994. package/dist/types/meetings/collection.d.ts +0 -31
  995. package/dist/types/meetings/index.d.ts +0 -316
  996. package/dist/types/meetings/request.d.ts +0 -27
  997. package/dist/types/meetings/util.d.ts +0 -18
  998. package/dist/types/member/index.d.ts +0 -156
  999. package/dist/types/member/util.d.ts +0 -2
  1000. package/dist/types/members/collection.d.ts +0 -29
  1001. package/dist/types/members/index.d.ts +0 -353
  1002. package/dist/types/members/request.d.ts +0 -69
  1003. package/dist/types/members/util.d.ts +0 -2
  1004. package/dist/types/metrics/config.d.ts +0 -171
  1005. package/dist/types/metrics/constants.d.ts +0 -54
  1006. package/dist/types/metrics/index.d.ts +0 -152
  1007. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  1008. package/dist/types/personal-meeting-room/index.d.ts +0 -47
  1009. package/dist/types/personal-meeting-room/request.d.ts +0 -14
  1010. package/dist/types/personal-meeting-room/util.d.ts +0 -2
  1011. package/dist/types/reachability/index.d.ts +0 -152
  1012. package/dist/types/reachability/request.d.ts +0 -37
  1013. package/dist/types/reactions/reactions.d.ts +0 -4
  1014. package/dist/types/reactions/reactions.type.d.ts +0 -52
  1015. package/dist/types/reconnection-manager/index.d.ts +0 -126
  1016. package/dist/types/recording-controller/enums.d.ts +0 -7
  1017. package/dist/types/recording-controller/index.d.ts +0 -193
  1018. package/dist/types/recording-controller/util.d.ts +0 -13
  1019. package/dist/types/roap/index.d.ts +0 -77
  1020. package/dist/types/roap/request.d.ts +0 -38
  1021. package/dist/types/roap/turnDiscovery.d.ts +0 -74
  1022. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  1023. package/dist/types/statsAnalyzer/index.d.ts +0 -200
  1024. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -24
  1025. package/dist/types/transcription/index.d.ts +0 -64
  1026. package/dist/types/tsdoc-metadata.json +0 -11
  1027. package/src/metrics/config.ts +0 -487
  1028. /package/dist/{types/breakouts → breakouts}/breakout.d.ts +0 -0
  1029. /package/dist/{types/breakouts → breakouts}/collection.d.ts +0 -0
  1030. /package/dist/{types/breakouts → breakouts}/edit-lock-error.d.ts +0 -0
  1031. /package/dist/{types/breakouts → breakouts}/index.d.ts +0 -0
  1032. /package/dist/{types/breakouts → breakouts}/request.d.ts +0 -0
  1033. /package/dist/{types/meeting → meeting}/request.type.d.ts +0 -0
  1034. /package/dist/{types/multistream → multistream}/receiveSlotManager.d.ts +0 -0
  1035. /package/dist/{types/reactions → reactions}/constants.d.ts +0 -0
@@ -1,4 +1,5 @@
1
- import { MediaRequest as WcmeMediaRequest } from '@webex/internal-media-core';
1
+ import { StreamRequest } from '@webex/internal-media-core';
2
+ import { NamedMediaGroup } from '@webex/json-multistream';
2
3
  import { ReceiveSlot } from './receiveSlot';
3
4
  export interface ActiveSpeakerPolicyInfo {
4
5
  policy: 'active-speaker';
@@ -6,6 +7,7 @@ export interface ActiveSpeakerPolicyInfo {
6
7
  crossPriorityDuplication: boolean;
7
8
  crossPolicyDuplication: boolean;
8
9
  preferLiveVideo: boolean;
10
+ namedMediaGroups?: NamedMediaGroup[];
9
11
  }
10
12
  export interface ReceiverSelectedPolicyInfo {
11
13
  policy: 'receiver-selected';
@@ -26,16 +28,20 @@ export interface MediaRequest {
26
28
  receiveSlots: Array<ReceiveSlot>;
27
29
  codecInfo?: CodecInfo;
28
30
  preferredMaxFs?: number;
31
+ handleMaxFs?: ({ maxFs }: {
32
+ maxFs: number;
33
+ }) => void;
29
34
  }
30
35
  export type MediaRequestId = string;
31
36
  type DegradationPreferences = {
32
37
  maxMacroblocksLimit: number;
33
38
  };
34
- type SendMediaRequestsCallback = (mediaRequests: WcmeMediaRequest[]) => void;
39
+ type SendMediaRequestsCallback = (streamRequests: StreamRequest[]) => void;
35
40
  type Kind = 'audio' | 'video';
36
41
  type Options = {
37
42
  degradationPreferences: DegradationPreferences;
38
43
  kind: Kind;
44
+ trimRequestsToNumOfSources: boolean;
39
45
  };
40
46
  export declare class MediaRequestManager {
41
47
  private sendMediaRequestsCallback;
@@ -45,23 +51,26 @@ export declare class MediaRequestManager {
45
51
  private degradationPreferences;
46
52
  private sourceUpdateListener;
47
53
  private debouncedSourceUpdateListener;
48
- private previousWCMEMediaRequests;
54
+ private previousStreamRequests;
55
+ private trimRequestsToNumOfSources;
56
+ private numTotalSources;
57
+ private numLiveSources;
49
58
  constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options);
50
59
  setDegradationPreferences(degradationPreferences: DegradationPreferences): void;
51
60
  private getDegradedClientRequests;
52
61
  /**
53
- * Returns true if two media requests are the same, false otherwise.
62
+ * Returns true if two stream requests are the same, false otherwise.
54
63
  *
55
- * @param {WcmeMediaRequest} mediaRequestA - Media request A for comparison.
56
- * @param {WcmeMediaRequest} mediaRequestB - Media request B for comparison.
64
+ * @param {StreamRequest} streamRequestA - Stream request A for comparison.
65
+ * @param {StreamRequest} streamRequestB - Stream request B for comparison.
57
66
  * @returns {boolean} - Whether they are equal.
58
67
  */
59
- isEqual(mediaRequestA: WcmeMediaRequest, mediaRequestB: WcmeMediaRequest): boolean;
68
+ isEqual(streamRequestA: StreamRequest, streamRequestB: StreamRequest): boolean;
60
69
  /**
61
- * Compares new media requests to previous ones and determines
70
+ * Compares new stream requests to previous ones and determines
62
71
  * if they are the same.
63
72
  *
64
- * @param {WcmeMediaRequest[]} newRequests - Array with new requests.
73
+ * @param {StreamRequest[]} newRequests - Array with new requests.
65
74
  * @returns {boolean} - True if they are equal, false otherwise.
66
75
  */
67
76
  private checkIsNewRequestsEqualToPrev;
@@ -87,15 +96,25 @@ export declare class MediaRequestManager {
87
96
  */
88
97
  private getH264MaxMbps;
89
98
  /**
90
- * Clears the previous media requests.
99
+ * Clears the previous stream requests.
91
100
  *
92
101
  * @returns {void}
93
102
  */
94
103
  clearPreviousRequests(): void;
104
+ /** Modifies the passed in clientRequests and makes sure that in total they don't ask
105
+ * for more streams than there are available.
106
+ *
107
+ * @param {Object} clientRequests
108
+ * @returns {void}
109
+ */
110
+ private trimRequests;
111
+ private getPreferLiveVideo;
112
+ private cloneClientRequests;
95
113
  private sendRequests;
96
114
  addRequest(mediaRequest: MediaRequest, commit?: boolean): MediaRequestId;
97
115
  cancelRequest(requestId: MediaRequestId, commit?: boolean): void;
98
116
  commit(): void;
99
117
  reset(): void;
118
+ setNumCurrentSources(numTotalSources: number, numLiveSources: number): void;
100
119
  }
101
120
  export {};
@@ -6,22 +6,21 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.MediaRequestManager = void 0;
9
- var _entries = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/entries"));
10
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
11
9
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
10
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
13
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
15
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
16
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
17
- var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
18
- var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
19
15
  var _internalMediaCore = require("@webex/internal-media-core");
16
+ var _lodash = require("lodash");
20
17
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
21
18
  var _receiveSlot = require("./receiveSlot");
22
19
  var _remoteMedia = require("./remoteMedia");
23
20
  /* eslint-disable require-jsdoc */
24
21
 
22
+ // we'll add AV1 here in the future when it's available
23
+
25
24
  var CODEC_DEFAULTS = {
26
25
  h264: {
27
26
  maxFs: 8192,
@@ -30,7 +29,7 @@ var CODEC_DEFAULTS = {
30
29
  }
31
30
  };
32
31
  var DEBOUNCED_SOURCE_UPDATE_TIME = 1000;
33
- var MediaRequestManager = /*#__PURE__*/function () {
32
+ var MediaRequestManager = exports.MediaRequestManager = /*#__PURE__*/function () {
34
33
  function MediaRequestManager(sendMediaRequestsCallback, options) {
35
34
  (0, _classCallCheck2.default)(this, MediaRequestManager);
36
35
  (0, _defineProperty2.default)(this, "sendMediaRequestsCallback", void 0);
@@ -40,14 +39,20 @@ var MediaRequestManager = /*#__PURE__*/function () {
40
39
  (0, _defineProperty2.default)(this, "degradationPreferences", void 0);
41
40
  (0, _defineProperty2.default)(this, "sourceUpdateListener", void 0);
42
41
  (0, _defineProperty2.default)(this, "debouncedSourceUpdateListener", void 0);
43
- (0, _defineProperty2.default)(this, "previousWCMEMediaRequests", []);
42
+ (0, _defineProperty2.default)(this, "previousStreamRequests", []);
43
+ (0, _defineProperty2.default)(this, "trimRequestsToNumOfSources", void 0);
44
+ (0, _defineProperty2.default)(this, "numTotalSources", void 0);
45
+ (0, _defineProperty2.default)(this, "numLiveSources", void 0);
44
46
  this.sendMediaRequestsCallback = sendMediaRequestsCallback;
45
47
  this.counter = 0;
48
+ this.numLiveSources = 0;
49
+ this.numTotalSources = 0;
46
50
  this.clientRequests = {};
47
51
  this.degradationPreferences = options.degradationPreferences;
48
52
  this.kind = options.kind;
53
+ this.trimRequestsToNumOfSources = options.trimRequestsToNumOfSources;
49
54
  this.sourceUpdateListener = this.commit.bind(this);
50
- this.debouncedSourceUpdateListener = (0, _debounce2.default)(this.sourceUpdateListener, DEBOUNCED_SOURCE_UPDATE_TIME);
55
+ this.debouncedSourceUpdateListener = (0, _lodash.debounce)(this.sourceUpdateListener, DEBOUNCED_SOURCE_UPDATE_TIME);
51
56
  }
52
57
  (0, _createClass2.default)(MediaRequestManager, [{
53
58
  key: "setDegradationPreferences",
@@ -57,22 +62,18 @@ var MediaRequestManager = /*#__PURE__*/function () {
57
62
  }
58
63
  }, {
59
64
  key: "getDegradedClientRequests",
60
- value: function getDegradedClientRequests() {
65
+ value: function getDegradedClientRequests(clientRequests) {
61
66
  var _this = this;
62
- var clientRequests = (0, _cloneDeep2.default)(this.clientRequests);
63
67
  var maxFsLimits = [(0, _remoteMedia.getMaxFs)('best'), (0, _remoteMedia.getMaxFs)('large'), (0, _remoteMedia.getMaxFs)('medium'), (0, _remoteMedia.getMaxFs)('small'), (0, _remoteMedia.getMaxFs)('very small'), (0, _remoteMedia.getMaxFs)('thumbnail')];
64
68
 
65
69
  // reduce max-fs until total macroblocks is below limit
66
70
  var _loop = function _loop(i) {
67
71
  var totalMacroblocksRequested = 0;
68
- (0, _entries.default)(clientRequests).forEach(function (_ref) {
69
- var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
70
- id = _ref2[0],
71
- mr = _ref2[1];
72
+ (0, _values.default)(clientRequests).forEach(function (mr) {
72
73
  if (mr.codecInfo) {
73
74
  mr.codecInfo.maxFs = Math.min(mr.preferredMaxFs || CODEC_DEFAULTS.h264.maxFs, mr.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs, maxFsLimits[i]);
74
75
  // we only consider sources with "live" state
75
- var slotsWithLiveSource = _this.clientRequests[id].receiveSlots.filter(function (rs) {
76
+ var slotsWithLiveSource = mr.receiveSlots.filter(function (rs) {
76
77
  return rs.sourceState === 'live';
77
78
  });
78
79
  totalMacroblocksRequested += mr.codecInfo.maxFs * slotsWithLiveSource.length;
@@ -82,44 +83,42 @@ var MediaRequestManager = /*#__PURE__*/function () {
82
83
  if (i !== 0) {
83
84
  _loggerProxy.default.logger.warn("multistream:mediaRequestManager --> too many streams with high max-fs, frame size will be limited to ".concat(maxFsLimits[i]));
84
85
  }
85
- return "break";
86
+ return 1; // break
86
87
  } else if (i === maxFsLimits.length - 1) {
87
88
  _loggerProxy.default.logger.warn("multistream:mediaRequestManager --> even with frame size limited to ".concat(maxFsLimits[i], " you are still requesting too many streams, consider reducing the number of requests"));
88
89
  }
89
90
  };
90
91
  for (var i = 0; i < maxFsLimits.length; i += 1) {
91
- var _ret = _loop(i);
92
- if (_ret === "break") break;
92
+ if (_loop(i)) break;
93
93
  }
94
- return clientRequests;
95
94
  }
96
95
 
97
96
  /**
98
- * Returns true if two media requests are the same, false otherwise.
97
+ * Returns true if two stream requests are the same, false otherwise.
99
98
  *
100
- * @param {WcmeMediaRequest} mediaRequestA - Media request A for comparison.
101
- * @param {WcmeMediaRequest} mediaRequestB - Media request B for comparison.
99
+ * @param {StreamRequest} streamRequestA - Stream request A for comparison.
100
+ * @param {StreamRequest} streamRequestB - Stream request B for comparison.
102
101
  * @returns {boolean} - Whether they are equal.
103
102
  */
104
103
  // eslint-disable-next-line class-methods-use-this
105
104
  }, {
106
105
  key: "isEqual",
107
- value: function isEqual(mediaRequestA, mediaRequestB) {
108
- return (0, _stringify.default)(mediaRequestA._toJmpScrRequest()) === (0, _stringify.default)(mediaRequestB._toJmpScrRequest());
106
+ value: function isEqual(streamRequestA, streamRequestB) {
107
+ return (0, _stringify.default)(streamRequestA._toJmpStreamRequest()) === (0, _stringify.default)(streamRequestB._toJmpStreamRequest());
109
108
  }
110
109
 
111
110
  /**
112
- * Compares new media requests to previous ones and determines
111
+ * Compares new stream requests to previous ones and determines
113
112
  * if they are the same.
114
113
  *
115
- * @param {WcmeMediaRequest[]} newRequests - Array with new requests.
114
+ * @param {StreamRequest[]} newRequests - Array with new requests.
116
115
  * @returns {boolean} - True if they are equal, false otherwise.
117
116
  */
118
117
  }, {
119
118
  key: "checkIsNewRequestsEqualToPrev",
120
119
  value: function checkIsNewRequestsEqualToPrev(newRequests) {
121
120
  var _this2 = this;
122
- return !(0, _isEmpty2.default)(this.previousWCMEMediaRequests) && this.previousWCMEMediaRequests.length === newRequests.length && this.previousWCMEMediaRequests.every(function (req, idx) {
121
+ return !(0, _lodash.isEmpty)(this.previousStreamRequests) && this.previousStreamRequests.length === newRequests.length && this.previousStreamRequests.every(function (req, idx) {
123
122
  return _this2.isEqual(req, newRequests[idx]);
124
123
  });
125
124
  }
@@ -165,34 +164,118 @@ var MediaRequestManager = /*#__PURE__*/function () {
165
164
  }
166
165
 
167
166
  /**
168
- * Clears the previous media requests.
167
+ * Clears the previous stream requests.
169
168
  *
170
169
  * @returns {void}
171
170
  */
172
171
  }, {
173
172
  key: "clearPreviousRequests",
174
173
  value: function clearPreviousRequests() {
175
- this.previousWCMEMediaRequests = [];
174
+ this.previousStreamRequests = [];
175
+ }
176
+
177
+ /** Modifies the passed in clientRequests and makes sure that in total they don't ask
178
+ * for more streams than there are available.
179
+ *
180
+ * @param {Object} clientRequests
181
+ * @returns {void}
182
+ */
183
+ }, {
184
+ key: "trimRequests",
185
+ value: function trimRequests(clientRequests) {
186
+ var preferLiveVideo = this.getPreferLiveVideo();
187
+ if (!this.trimRequestsToNumOfSources) {
188
+ return;
189
+ }
190
+
191
+ // preferLiveVideo being undefined means that there are no active-speaker requests so we don't need to do any trimming
192
+ if (preferLiveVideo === undefined) {
193
+ return;
194
+ }
195
+ var numStreamsAvailable = preferLiveVideo ? this.numLiveSources : this.numTotalSources;
196
+ (0, _values.default)(clientRequests).sort(function (a, b) {
197
+ // we have to count how many streams we're asking for
198
+ // and should not ask for more than numStreamsAvailable in total,
199
+ // so we might need to trim active-speaker requests and first ones to trim should be
200
+ // the ones with lowest priority
201
+
202
+ // receiver-selected requests have priority over active-speakers
203
+ if (a.policyInfo.policy === 'receiver-selected') {
204
+ return -1;
205
+ }
206
+ if (b.policyInfo.policy === 'receiver-selected') {
207
+ return 1;
208
+ }
209
+
210
+ // and active-speakers are sorted by descending priority
211
+ return b.policyInfo.priority - a.policyInfo.priority;
212
+ }).forEach(function (request) {
213
+ // we only trim active-speaker requests
214
+ if (request.policyInfo.policy === 'active-speaker') {
215
+ var trimmedCount = Math.min(numStreamsAvailable, request.receiveSlots.length);
216
+ request.receiveSlots.length = trimmedCount;
217
+ numStreamsAvailable -= trimmedCount;
218
+ } else {
219
+ numStreamsAvailable -= request.receiveSlots.length;
220
+ }
221
+ if (numStreamsAvailable < 0) {
222
+ numStreamsAvailable = 0;
223
+ }
224
+ });
225
+ }
226
+ }, {
227
+ key: "getPreferLiveVideo",
228
+ value: function getPreferLiveVideo() {
229
+ var preferLiveVideo;
230
+ (0, _values.default)(this.clientRequests).forEach(function (mr) {
231
+ if (mr.policyInfo.policy === 'active-speaker') {
232
+ // take the value from first encountered active speaker request
233
+ if (preferLiveVideo === undefined) {
234
+ preferLiveVideo = mr.policyInfo.preferLiveVideo;
235
+ }
236
+ if (mr.policyInfo.preferLiveVideo !== preferLiveVideo) {
237
+ throw new Error('a mix of active-speaker groups with different values for preferLiveVideo is not supported');
238
+ }
239
+ }
240
+ });
241
+ return preferLiveVideo;
242
+ }
243
+ }, {
244
+ key: "cloneClientRequests",
245
+ value: function cloneClientRequests() {
246
+ // we clone the client requests but without cloning the ReceiveSlots that they reference
247
+ return (0, _lodash.cloneDeepWith)(this.clientRequests, function (value, key) {
248
+ if (key === 'receiveSlots') {
249
+ return (0, _toConsumableArray2.default)(value);
250
+ }
251
+ return undefined;
252
+ });
176
253
  }
177
254
  }, {
178
255
  key: "sendRequests",
179
256
  value: function sendRequests() {
180
257
  var _this3 = this;
181
- var wcmeMediaRequests = [];
182
- var clientRequests = this.getDegradedClientRequests();
258
+ var streamRequests = [];
183
259
 
184
- // map all the client media requests to wcme media requests
260
+ // clone the requests so that any modifications we do to them don't affect the original ones
261
+ var clientRequests = this.cloneClientRequests();
262
+ this.trimRequests(clientRequests);
263
+ this.getDegradedClientRequests(clientRequests);
264
+
265
+ // map all the client media requests to wcme stream requests
185
266
  (0, _values.default)(clientRequests).forEach(function (mr) {
186
- wcmeMediaRequests.push(new _internalMediaCore.MediaRequest(mr.policyInfo.policy === 'active-speaker' ? _internalMediaCore.Policy.ActiveSpeaker : _internalMediaCore.Policy.ReceiverSelected, mr.policyInfo.policy === 'active-speaker' ? new _internalMediaCore.ActiveSpeakerInfo(mr.policyInfo.priority, mr.policyInfo.crossPriorityDuplication, mr.policyInfo.crossPolicyDuplication, mr.policyInfo.preferLiveVideo) : new _internalMediaCore.ReceiverSelectedInfo(mr.policyInfo.csi), mr.receiveSlots.map(function (receiveSlot) {
187
- return receiveSlot.wcmeReceiveSlot;
188
- }), _this3.getMaxPayloadBitsPerSecond(mr), mr.codecInfo && [new _internalMediaCore.CodecInfo(0x80, new _internalMediaCore.H264Codec(mr.codecInfo.maxFs, mr.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps, _this3.getH264MaxMbps(mr), mr.codecInfo.maxWidth, mr.codecInfo.maxHeight))]));
267
+ if (mr.receiveSlots.length > 0) {
268
+ streamRequests.push(new _internalMediaCore.StreamRequest(mr.policyInfo.policy === 'active-speaker' ? _internalMediaCore.Policy.ActiveSpeaker : _internalMediaCore.Policy.ReceiverSelected, mr.policyInfo.policy === 'active-speaker' ? new _internalMediaCore.ActiveSpeakerInfo(mr.policyInfo.priority, mr.policyInfo.crossPriorityDuplication, mr.policyInfo.crossPolicyDuplication, mr.policyInfo.preferLiveVideo, mr.policyInfo.namedMediaGroups) : new _internalMediaCore.ReceiverSelectedInfo(mr.policyInfo.csi), mr.receiveSlots.map(function (receiveSlot) {
269
+ return receiveSlot.wcmeReceiveSlot;
270
+ }), _this3.getMaxPayloadBitsPerSecond(mr), mr.codecInfo && [new _internalMediaCore.CodecInfo(0x80, new _internalMediaCore.H264Codec(mr.codecInfo.maxFs, mr.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps, _this3.getH264MaxMbps(mr), mr.codecInfo.maxWidth, mr.codecInfo.maxHeight))]));
271
+ }
189
272
  });
190
273
 
191
274
  //! IMPORTANT: this is only a temporary fix. This will soon be done in the jmp layer (@webex/json-multistream)
192
275
  // https://jira-eng-gpk2.cisco.com/jira/browse/WEBEX-326713
193
- if (!this.checkIsNewRequestsEqualToPrev(wcmeMediaRequests)) {
194
- this.sendMediaRequestsCallback(wcmeMediaRequests);
195
- this.previousWCMEMediaRequests = wcmeMediaRequests;
276
+ if (!this.checkIsNewRequestsEqualToPrev(streamRequests)) {
277
+ this.sendMediaRequestsCallback(streamRequests);
278
+ this.previousStreamRequests = streamRequests;
196
279
  _loggerProxy.default.logger.info("multistream:sendRequests --> media requests sent. ");
197
280
  } else {
198
281
  _loggerProxy.default.logger.info("multistream:sendRequests --> detected duplicate WCME requests, skipping them... ");
@@ -206,13 +289,15 @@ var MediaRequestManager = /*#__PURE__*/function () {
206
289
  // eslint-disable-next-line no-plusplus
207
290
  var newId = "".concat(this.counter++);
208
291
  this.clientRequests[newId] = mediaRequest;
292
+ var eventHandler = function eventHandler(_ref) {
293
+ var maxFs = _ref.maxFs;
294
+ mediaRequest.preferredMaxFs = maxFs;
295
+ _this4.debouncedSourceUpdateListener();
296
+ };
297
+ mediaRequest.handleMaxFs = eventHandler;
209
298
  mediaRequest.receiveSlots.forEach(function (rs) {
210
299
  rs.on(_receiveSlot.ReceiveSlotEvents.SourceUpdate, _this4.sourceUpdateListener);
211
- rs.on(_receiveSlot.ReceiveSlotEvents.MaxFsUpdate, function (_ref3) {
212
- var maxFs = _ref3.maxFs;
213
- mediaRequest.preferredMaxFs = maxFs;
214
- _this4.debouncedSourceUpdateListener();
215
- });
300
+ rs.on(_receiveSlot.ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);
216
301
  });
217
302
  if (commit) {
218
303
  this.commit();
@@ -222,11 +307,12 @@ var MediaRequestManager = /*#__PURE__*/function () {
222
307
  }, {
223
308
  key: "cancelRequest",
224
309
  value: function cancelRequest(requestId) {
225
- var _this$clientRequests$,
226
- _this5 = this;
310
+ var _this5 = this;
227
311
  var commit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
228
- (_this$clientRequests$ = this.clientRequests[requestId]) === null || _this$clientRequests$ === void 0 ? void 0 : _this$clientRequests$.receiveSlots.forEach(function (rs) {
312
+ var mediaRequest = this.clientRequests[requestId];
313
+ mediaRequest === null || mediaRequest === void 0 ? void 0 : mediaRequest.receiveSlots.forEach(function (rs) {
229
314
  rs.off(_receiveSlot.ReceiveSlotEvents.SourceUpdate, _this5.sourceUpdateListener);
315
+ rs.off(_receiveSlot.ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);
230
316
  });
231
317
  delete this.clientRequests[requestId];
232
318
  if (commit) {
@@ -242,9 +328,17 @@ var MediaRequestManager = /*#__PURE__*/function () {
242
328
  key: "reset",
243
329
  value: function reset() {
244
330
  this.clientRequests = {};
331
+ this.numTotalSources = 0;
332
+ this.numLiveSources = 0;
333
+ }
334
+ }, {
335
+ key: "setNumCurrentSources",
336
+ value: function setNumCurrentSources(numTotalSources, numLiveSources) {
337
+ this.numTotalSources = numTotalSources;
338
+ this.numLiveSources = numLiveSources;
339
+ this.sendRequests();
245
340
  }
246
341
  }]);
247
342
  return MediaRequestManager;
248
343
  }();
249
- exports.MediaRequestManager = MediaRequestManager;
250
344
  //# sourceMappingURL=mediaRequestManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CODEC_DEFAULTS","h264","maxFs","maxFps","maxMbps","DEBOUNCED_SOURCE_UPDATE_TIME","MediaRequestManager","sendMediaRequestsCallback","options","counter","clientRequests","degradationPreferences","kind","sourceUpdateListener","commit","bind","debouncedSourceUpdateListener","sendRequests","maxFsLimits","getMaxFs","totalMacroblocksRequested","forEach","id","mr","codecInfo","Math","min","preferredMaxFs","i","slotsWithLiveSource","receiveSlots","filter","rs","sourceState","length","maxMacroblocksLimit","LoggerProxy","logger","warn","mediaRequestA","mediaRequestB","_toJmpScrRequest","newRequests","previousWCMEMediaRequests","every","req","idx","isEqual","mediaRequest","RecommendedOpusBitrates","FB_MONO_MUSIC","getRecommendedMaxBitrateForFrameSize","wcmeMediaRequests","getDegradedClientRequests","push","WcmeMediaRequest","policyInfo","policy","Policy","ActiveSpeaker","ReceiverSelected","ActiveSpeakerInfo","priority","crossPriorityDuplication","crossPolicyDuplication","preferLiveVideo","ReceiverSelectedInfo","csi","map","receiveSlot","wcmeReceiveSlot","getMaxPayloadBitsPerSecond","WcmeCodecInfo","H264Codec","getH264MaxMbps","maxWidth","maxHeight","checkIsNewRequestsEqualToPrev","info","newId","on","ReceiveSlotEvents","SourceUpdate","MaxFsUpdate","requestId","off"],"sources":["mediaRequestManager.ts"],"sourcesContent":["/* eslint-disable require-jsdoc */\nimport {\n MediaRequest as WcmeMediaRequest,\n Policy,\n ActiveSpeakerInfo,\n ReceiverSelectedInfo,\n CodecInfo as WcmeCodecInfo,\n H264Codec,\n getRecommendedMaxBitrateForFrameSize,\n RecommendedOpusBitrates,\n} from '@webex/internal-media-core';\nimport {cloneDeep, debounce, isEmpty} from 'lodash';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\nimport {getMaxFs} from './remoteMedia';\n\nexport interface ActiveSpeakerPolicyInfo {\n policy: 'active-speaker';\n priority: number;\n crossPriorityDuplication: boolean;\n crossPolicyDuplication: boolean;\n preferLiveVideo: boolean;\n}\n\nexport interface ReceiverSelectedPolicyInfo {\n policy: 'receiver-selected';\n csi: number;\n}\n\nexport type PolicyInfo = ActiveSpeakerPolicyInfo | ReceiverSelectedPolicyInfo;\n\nexport interface H264CodecInfo {\n codec: 'h264';\n maxFs?: number;\n maxFps?: number;\n maxMbps?: number;\n maxWidth?: number;\n maxHeight?: number;\n}\n\nexport type CodecInfo = H264CodecInfo; // we'll add AV1 here in the future when it's available\n\nexport interface MediaRequest {\n policyInfo: PolicyInfo;\n receiveSlots: Array<ReceiveSlot>;\n codecInfo?: CodecInfo;\n preferredMaxFs?: number;\n}\n\nexport type MediaRequestId = string;\n\nconst CODEC_DEFAULTS = {\n h264: {\n maxFs: 8192,\n maxFps: 3000,\n maxMbps: 245760,\n },\n};\n\nconst DEBOUNCED_SOURCE_UPDATE_TIME = 1000;\n\ntype DegradationPreferences = {\n maxMacroblocksLimit: number;\n};\n\ntype SendMediaRequestsCallback = (mediaRequests: WcmeMediaRequest[]) => void;\ntype Kind = 'audio' | 'video';\n\ntype Options = {\n degradationPreferences: DegradationPreferences;\n kind: Kind;\n};\nexport class MediaRequestManager {\n private sendMediaRequestsCallback: SendMediaRequestsCallback;\n\n private kind: Kind;\n\n private counter: number;\n\n private clientRequests: {[key: MediaRequestId]: MediaRequest};\n\n private degradationPreferences: DegradationPreferences;\n\n private sourceUpdateListener: () => void;\n\n private debouncedSourceUpdateListener: () => void;\n\n private previousWCMEMediaRequests: Array<WcmeMediaRequest> = [];\n\n constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options) {\n this.sendMediaRequestsCallback = sendMediaRequestsCallback;\n this.counter = 0;\n this.clientRequests = {};\n this.degradationPreferences = options.degradationPreferences;\n this.kind = options.kind;\n this.sourceUpdateListener = this.commit.bind(this);\n this.debouncedSourceUpdateListener = debounce(\n this.sourceUpdateListener,\n DEBOUNCED_SOURCE_UPDATE_TIME\n );\n }\n\n public setDegradationPreferences(degradationPreferences: DegradationPreferences) {\n this.degradationPreferences = degradationPreferences;\n this.sendRequests(); // re-send requests after preferences are set\n }\n\n private getDegradedClientRequests() {\n const clientRequests = cloneDeep(this.clientRequests);\n const maxFsLimits = [\n getMaxFs('best'),\n getMaxFs('large'),\n getMaxFs('medium'),\n getMaxFs('small'),\n getMaxFs('very small'),\n getMaxFs('thumbnail'),\n ];\n\n // reduce max-fs until total macroblocks is below limit\n for (let i = 0; i < maxFsLimits.length; i += 1) {\n let totalMacroblocksRequested = 0;\n Object.entries(clientRequests).forEach(([id, mr]) => {\n if (mr.codecInfo) {\n mr.codecInfo.maxFs = Math.min(\n mr.preferredMaxFs || CODEC_DEFAULTS.h264.maxFs,\n mr.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs,\n maxFsLimits[i]\n );\n // we only consider sources with \"live\" state\n const slotsWithLiveSource = this.clientRequests[id].receiveSlots.filter(\n (rs) => rs.sourceState === 'live'\n );\n totalMacroblocksRequested += mr.codecInfo.maxFs * slotsWithLiveSource.length;\n }\n });\n if (totalMacroblocksRequested <= this.degradationPreferences.maxMacroblocksLimit) {\n if (i !== 0) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> too many streams with high max-fs, frame size will be limited to ${maxFsLimits[i]}`\n );\n }\n break;\n } else if (i === maxFsLimits.length - 1) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> even with frame size limited to ${maxFsLimits[i]} you are still requesting too many streams, consider reducing the number of requests`\n );\n }\n }\n\n return clientRequests;\n }\n\n /**\n * Returns true if two media requests are the same, false otherwise.\n *\n * @param {WcmeMediaRequest} mediaRequestA - Media request A for comparison.\n * @param {WcmeMediaRequest} mediaRequestB - Media request B for comparison.\n * @returns {boolean} - Whether they are equal.\n */\n // eslint-disable-next-line class-methods-use-this\n public isEqual(mediaRequestA: WcmeMediaRequest, mediaRequestB: WcmeMediaRequest) {\n return (\n JSON.stringify(mediaRequestA._toJmpScrRequest()) ===\n JSON.stringify(mediaRequestB._toJmpScrRequest())\n );\n }\n\n /**\n * Compares new media requests to previous ones and determines\n * if they are the same.\n *\n * @param {WcmeMediaRequest[]} newRequests - Array with new requests.\n * @returns {boolean} - True if they are equal, false otherwise.\n */\n private checkIsNewRequestsEqualToPrev(newRequests: WcmeMediaRequest[]) {\n return (\n !isEmpty(this.previousWCMEMediaRequests) &&\n this.previousWCMEMediaRequests.length === newRequests.length &&\n this.previousWCMEMediaRequests.every((req, idx) => this.isEqual(req, newRequests[idx]))\n );\n }\n\n /**\n * Returns the maxPayloadBitsPerSecond per Stream\n *\n * If MediaRequestManager kind is \"audio\", a constant bitrate will be returned.\n * If MediaRequestManager kind is \"video\", the bitrate will be calculated based\n * on maxFs (default h264 maxFs as fallback if maxFs is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxPayloadBitsPerSecond\n */\n private getMaxPayloadBitsPerSecond(mediaRequest: MediaRequest): number {\n if (this.kind === 'audio') {\n // return mono_music bitrate default if the kind of mediarequest manager is audio:\n return RecommendedOpusBitrates.FB_MONO_MUSIC;\n }\n\n return getRecommendedMaxBitrateForFrameSize(\n mediaRequest.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs\n );\n }\n\n /**\n * Returns the max Macro Blocks per second (maxMbps) per H264 Stream\n *\n * The maxMbps will be calculated based on maxFs and maxFps\n * (default h264 maxFps as fallback if maxFps is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxMbps\n */\n // eslint-disable-next-line class-methods-use-this\n private getH264MaxMbps(mediaRequest: MediaRequest): number {\n // fallback for maxFps (not needed for maxFs, since there is a fallback already in getDegradedClientRequests)\n const maxFps = mediaRequest.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps;\n\n // divided by 100 since maxFps is 3000 (for 30 frames per seconds)\n return (mediaRequest.codecInfo.maxFs * maxFps) / 100;\n }\n\n /**\n * Clears the previous media requests.\n *\n * @returns {void}\n */\n public clearPreviousRequests(): void {\n this.previousWCMEMediaRequests = [];\n }\n\n private sendRequests() {\n const wcmeMediaRequests: WcmeMediaRequest[] = [];\n\n const clientRequests = this.getDegradedClientRequests();\n\n // map all the client media requests to wcme media requests\n Object.values(clientRequests).forEach((mr) => {\n wcmeMediaRequests.push(\n new WcmeMediaRequest(\n mr.policyInfo.policy === 'active-speaker'\n ? Policy.ActiveSpeaker\n : Policy.ReceiverSelected,\n mr.policyInfo.policy === 'active-speaker'\n ? new ActiveSpeakerInfo(\n mr.policyInfo.priority,\n mr.policyInfo.crossPriorityDuplication,\n mr.policyInfo.crossPolicyDuplication,\n mr.policyInfo.preferLiveVideo\n )\n : new ReceiverSelectedInfo(mr.policyInfo.csi),\n mr.receiveSlots.map((receiveSlot) => receiveSlot.wcmeReceiveSlot),\n this.getMaxPayloadBitsPerSecond(mr),\n mr.codecInfo && [\n new WcmeCodecInfo(\n 0x80,\n new H264Codec(\n mr.codecInfo.maxFs,\n mr.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps,\n this.getH264MaxMbps(mr),\n mr.codecInfo.maxWidth,\n mr.codecInfo.maxHeight\n )\n ),\n ]\n )\n );\n });\n\n //! IMPORTANT: this is only a temporary fix. This will soon be done in the jmp layer (@webex/json-multistream)\n // https://jira-eng-gpk2.cisco.com/jira/browse/WEBEX-326713\n if (!this.checkIsNewRequestsEqualToPrev(wcmeMediaRequests)) {\n this.sendMediaRequestsCallback(wcmeMediaRequests);\n this.previousWCMEMediaRequests = wcmeMediaRequests;\n LoggerProxy.logger.info(`multistream:sendRequests --> media requests sent. `);\n } else {\n LoggerProxy.logger.info(\n `multistream:sendRequests --> detected duplicate WCME requests, skipping them... `\n );\n }\n }\n\n public addRequest(mediaRequest: MediaRequest, commit = true): MediaRequestId {\n // eslint-disable-next-line no-plusplus\n const newId = `${this.counter++}`;\n\n this.clientRequests[newId] = mediaRequest;\n\n mediaRequest.receiveSlots.forEach((rs) => {\n rs.on(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.on(ReceiveSlotEvents.MaxFsUpdate, ({maxFs}) => {\n mediaRequest.preferredMaxFs = maxFs;\n this.debouncedSourceUpdateListener();\n });\n });\n\n if (commit) {\n this.commit();\n }\n\n return newId;\n }\n\n public cancelRequest(requestId: MediaRequestId, commit = true) {\n this.clientRequests[requestId]?.receiveSlots.forEach((rs) => {\n rs.off(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n });\n\n delete this.clientRequests[requestId];\n\n if (commit) {\n this.commit();\n }\n }\n\n public commit() {\n return this.sendRequests();\n }\n\n public reset() {\n this.clientRequests = {};\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_internalMediaCore","require","_lodash","_loggerProxy","_interopRequireDefault","_receiveSlot","_remoteMedia","CODEC_DEFAULTS","h264","maxFs","maxFps","maxMbps","DEBOUNCED_SOURCE_UPDATE_TIME","MediaRequestManager","exports","sendMediaRequestsCallback","options","_classCallCheck2","default","_defineProperty2","counter","numLiveSources","numTotalSources","clientRequests","degradationPreferences","kind","trimRequestsToNumOfSources","sourceUpdateListener","commit","bind","debouncedSourceUpdateListener","debounce","_createClass2","key","value","setDegradationPreferences","sendRequests","getDegradedClientRequests","_this","maxFsLimits","getMaxFs","_loop","i","totalMacroblocksRequested","_values","forEach","mr","codecInfo","Math","min","preferredMaxFs","slotsWithLiveSource","receiveSlots","filter","rs","sourceState","length","maxMacroblocksLimit","LoggerProxy","logger","warn","concat","isEqual","streamRequestA","streamRequestB","_stringify","_toJmpStreamRequest","checkIsNewRequestsEqualToPrev","newRequests","_this2","isEmpty","previousStreamRequests","every","req","idx","getMaxPayloadBitsPerSecond","mediaRequest","RecommendedOpusBitrates","FB_MONO_MUSIC","getRecommendedMaxBitrateForFrameSize","getH264MaxMbps","clearPreviousRequests","trimRequests","preferLiveVideo","getPreferLiveVideo","undefined","numStreamsAvailable","sort","a","b","policyInfo","policy","priority","request","trimmedCount","Error","cloneClientRequests","cloneDeepWith","_toConsumableArray2","_this3","streamRequests","push","StreamRequest","Policy","ActiveSpeaker","ReceiverSelected","ActiveSpeakerInfo","crossPriorityDuplication","crossPolicyDuplication","namedMediaGroups","ReceiverSelectedInfo","csi","map","receiveSlot","wcmeReceiveSlot","WcmeCodecInfo","H264Codec","maxWidth","maxHeight","info","addRequest","_this4","arguments","newId","eventHandler","_ref","handleMaxFs","on","ReceiveSlotEvents","SourceUpdate","MaxFsUpdate","cancelRequest","requestId","_this5","off","reset","setNumCurrentSources"],"sources":["mediaRequestManager.ts"],"sourcesContent":["/* eslint-disable require-jsdoc */\nimport {\n StreamRequest,\n Policy,\n ActiveSpeakerInfo,\n ReceiverSelectedInfo,\n CodecInfo as WcmeCodecInfo,\n H264Codec,\n getRecommendedMaxBitrateForFrameSize,\n RecommendedOpusBitrates,\n} from '@webex/internal-media-core';\nimport {cloneDeepWith, debounce, isEmpty} from 'lodash';\n\nimport {NamedMediaGroup} from '@webex/json-multistream';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\nimport {getMaxFs} from './remoteMedia';\n\nexport interface ActiveSpeakerPolicyInfo {\n policy: 'active-speaker';\n priority: number;\n crossPriorityDuplication: boolean;\n crossPolicyDuplication: boolean;\n preferLiveVideo: boolean;\n namedMediaGroups?: NamedMediaGroup[];\n}\n\nexport interface ReceiverSelectedPolicyInfo {\n policy: 'receiver-selected';\n csi: number;\n}\n\nexport type PolicyInfo = ActiveSpeakerPolicyInfo | ReceiverSelectedPolicyInfo;\n\nexport interface H264CodecInfo {\n codec: 'h264';\n maxFs?: number;\n maxFps?: number;\n maxMbps?: number;\n maxWidth?: number;\n maxHeight?: number;\n}\n\nexport type CodecInfo = H264CodecInfo; // we'll add AV1 here in the future when it's available\n\nexport interface MediaRequest {\n policyInfo: PolicyInfo;\n receiveSlots: Array<ReceiveSlot>;\n codecInfo?: CodecInfo;\n preferredMaxFs?: number;\n handleMaxFs?: ({maxFs}: {maxFs: number}) => void;\n}\n\nexport type MediaRequestId = string;\n\nconst CODEC_DEFAULTS = {\n h264: {\n maxFs: 8192,\n maxFps: 3000,\n maxMbps: 245760,\n },\n};\n\nconst DEBOUNCED_SOURCE_UPDATE_TIME = 1000;\n\ntype DegradationPreferences = {\n maxMacroblocksLimit: number;\n};\n\ntype SendMediaRequestsCallback = (streamRequests: StreamRequest[]) => void;\ntype Kind = 'audio' | 'video';\n\ntype Options = {\n degradationPreferences: DegradationPreferences;\n kind: Kind;\n trimRequestsToNumOfSources: boolean; // if enabled, AS speaker requests will be trimmed based on the calls to setNumCurrentSources()\n};\n\ntype ClientRequestsMap = {[key: MediaRequestId]: MediaRequest};\n\nexport class MediaRequestManager {\n private sendMediaRequestsCallback: SendMediaRequestsCallback;\n\n private kind: Kind;\n\n private counter: number;\n\n private clientRequests: ClientRequestsMap;\n\n private degradationPreferences: DegradationPreferences;\n\n private sourceUpdateListener: () => void;\n\n private debouncedSourceUpdateListener: () => void;\n\n private previousStreamRequests: Array<StreamRequest> = [];\n\n private trimRequestsToNumOfSources: boolean;\n private numTotalSources: number;\n private numLiveSources: number;\n\n constructor(sendMediaRequestsCallback: SendMediaRequestsCallback, options: Options) {\n this.sendMediaRequestsCallback = sendMediaRequestsCallback;\n this.counter = 0;\n this.numLiveSources = 0;\n this.numTotalSources = 0;\n this.clientRequests = {};\n this.degradationPreferences = options.degradationPreferences;\n this.kind = options.kind;\n this.trimRequestsToNumOfSources = options.trimRequestsToNumOfSources;\n this.sourceUpdateListener = this.commit.bind(this);\n this.debouncedSourceUpdateListener = debounce(\n this.sourceUpdateListener,\n DEBOUNCED_SOURCE_UPDATE_TIME\n );\n }\n\n public setDegradationPreferences(degradationPreferences: DegradationPreferences) {\n this.degradationPreferences = degradationPreferences;\n this.sendRequests(); // re-send requests after preferences are set\n }\n\n private getDegradedClientRequests(clientRequests: ClientRequestsMap) {\n const maxFsLimits = [\n getMaxFs('best'),\n getMaxFs('large'),\n getMaxFs('medium'),\n getMaxFs('small'),\n getMaxFs('very small'),\n getMaxFs('thumbnail'),\n ];\n\n // reduce max-fs until total macroblocks is below limit\n for (let i = 0; i < maxFsLimits.length; i += 1) {\n let totalMacroblocksRequested = 0;\n Object.values(clientRequests).forEach((mr) => {\n if (mr.codecInfo) {\n mr.codecInfo.maxFs = Math.min(\n mr.preferredMaxFs || CODEC_DEFAULTS.h264.maxFs,\n mr.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs,\n maxFsLimits[i]\n );\n // we only consider sources with \"live\" state\n const slotsWithLiveSource = mr.receiveSlots.filter((rs) => rs.sourceState === 'live');\n totalMacroblocksRequested += mr.codecInfo.maxFs * slotsWithLiveSource.length;\n }\n });\n if (totalMacroblocksRequested <= this.degradationPreferences.maxMacroblocksLimit) {\n if (i !== 0) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> too many streams with high max-fs, frame size will be limited to ${maxFsLimits[i]}`\n );\n }\n break;\n } else if (i === maxFsLimits.length - 1) {\n LoggerProxy.logger.warn(\n `multistream:mediaRequestManager --> even with frame size limited to ${maxFsLimits[i]} you are still requesting too many streams, consider reducing the number of requests`\n );\n }\n }\n }\n\n /**\n * Returns true if two stream requests are the same, false otherwise.\n *\n * @param {StreamRequest} streamRequestA - Stream request A for comparison.\n * @param {StreamRequest} streamRequestB - Stream request B for comparison.\n * @returns {boolean} - Whether they are equal.\n */\n // eslint-disable-next-line class-methods-use-this\n public isEqual(streamRequestA: StreamRequest, streamRequestB: StreamRequest) {\n return (\n JSON.stringify(streamRequestA._toJmpStreamRequest()) ===\n JSON.stringify(streamRequestB._toJmpStreamRequest())\n );\n }\n\n /**\n * Compares new stream requests to previous ones and determines\n * if they are the same.\n *\n * @param {StreamRequest[]} newRequests - Array with new requests.\n * @returns {boolean} - True if they are equal, false otherwise.\n */\n private checkIsNewRequestsEqualToPrev(newRequests: StreamRequest[]) {\n return (\n !isEmpty(this.previousStreamRequests) &&\n this.previousStreamRequests.length === newRequests.length &&\n this.previousStreamRequests.every((req, idx) => this.isEqual(req, newRequests[idx]))\n );\n }\n\n /**\n * Returns the maxPayloadBitsPerSecond per Stream\n *\n * If MediaRequestManager kind is \"audio\", a constant bitrate will be returned.\n * If MediaRequestManager kind is \"video\", the bitrate will be calculated based\n * on maxFs (default h264 maxFs as fallback if maxFs is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxPayloadBitsPerSecond\n */\n private getMaxPayloadBitsPerSecond(mediaRequest: MediaRequest): number {\n if (this.kind === 'audio') {\n // return mono_music bitrate default if the kind of mediarequest manager is audio:\n return RecommendedOpusBitrates.FB_MONO_MUSIC;\n }\n\n return getRecommendedMaxBitrateForFrameSize(\n mediaRequest.codecInfo.maxFs || CODEC_DEFAULTS.h264.maxFs\n );\n }\n\n /**\n * Returns the max Macro Blocks per second (maxMbps) per H264 Stream\n *\n * The maxMbps will be calculated based on maxFs and maxFps\n * (default h264 maxFps as fallback if maxFps is not defined)\n *\n * @param {MediaRequest} mediaRequest - mediaRequest to take data from\n * @returns {number} maxMbps\n */\n // eslint-disable-next-line class-methods-use-this\n private getH264MaxMbps(mediaRequest: MediaRequest): number {\n // fallback for maxFps (not needed for maxFs, since there is a fallback already in getDegradedClientRequests)\n const maxFps = mediaRequest.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps;\n\n // divided by 100 since maxFps is 3000 (for 30 frames per seconds)\n return (mediaRequest.codecInfo.maxFs * maxFps) / 100;\n }\n\n /**\n * Clears the previous stream requests.\n *\n * @returns {void}\n */\n public clearPreviousRequests(): void {\n this.previousStreamRequests = [];\n }\n\n /** Modifies the passed in clientRequests and makes sure that in total they don't ask\n * for more streams than there are available.\n *\n * @param {Object} clientRequests\n * @returns {void}\n */\n private trimRequests(clientRequests: ClientRequestsMap) {\n const preferLiveVideo = this.getPreferLiveVideo();\n\n if (!this.trimRequestsToNumOfSources) {\n return;\n }\n\n // preferLiveVideo being undefined means that there are no active-speaker requests so we don't need to do any trimming\n if (preferLiveVideo === undefined) {\n return;\n }\n\n let numStreamsAvailable = preferLiveVideo ? this.numLiveSources : this.numTotalSources;\n\n Object.values(clientRequests)\n .sort((a, b) => {\n // we have to count how many streams we're asking for\n // and should not ask for more than numStreamsAvailable in total,\n // so we might need to trim active-speaker requests and first ones to trim should be\n // the ones with lowest priority\n\n // receiver-selected requests have priority over active-speakers\n if (a.policyInfo.policy === 'receiver-selected') {\n return -1;\n }\n if (b.policyInfo.policy === 'receiver-selected') {\n return 1;\n }\n\n // and active-speakers are sorted by descending priority\n return b.policyInfo.priority - a.policyInfo.priority;\n })\n .forEach((request) => {\n // we only trim active-speaker requests\n if (request.policyInfo.policy === 'active-speaker') {\n const trimmedCount = Math.min(numStreamsAvailable, request.receiveSlots.length);\n\n request.receiveSlots.length = trimmedCount;\n\n numStreamsAvailable -= trimmedCount;\n } else {\n numStreamsAvailable -= request.receiveSlots.length;\n }\n\n if (numStreamsAvailable < 0) {\n numStreamsAvailable = 0;\n }\n });\n }\n\n private getPreferLiveVideo(): boolean | undefined {\n let preferLiveVideo;\n\n Object.values(this.clientRequests).forEach((mr) => {\n if (mr.policyInfo.policy === 'active-speaker') {\n // take the value from first encountered active speaker request\n if (preferLiveVideo === undefined) {\n preferLiveVideo = mr.policyInfo.preferLiveVideo;\n }\n\n if (mr.policyInfo.preferLiveVideo !== preferLiveVideo) {\n throw new Error(\n 'a mix of active-speaker groups with different values for preferLiveVideo is not supported'\n );\n }\n }\n });\n\n return preferLiveVideo;\n }\n\n private cloneClientRequests(): ClientRequestsMap {\n // we clone the client requests but without cloning the ReceiveSlots that they reference\n return cloneDeepWith(this.clientRequests, (value, key) => {\n if (key === 'receiveSlots') {\n return [...value];\n }\n\n return undefined;\n });\n }\n\n private sendRequests() {\n const streamRequests: StreamRequest[] = [];\n\n // clone the requests so that any modifications we do to them don't affect the original ones\n const clientRequests = this.cloneClientRequests();\n\n this.trimRequests(clientRequests);\n this.getDegradedClientRequests(clientRequests);\n\n // map all the client media requests to wcme stream requests\n Object.values(clientRequests).forEach((mr) => {\n if (mr.receiveSlots.length > 0) {\n streamRequests.push(\n new StreamRequest(\n mr.policyInfo.policy === 'active-speaker'\n ? Policy.ActiveSpeaker\n : Policy.ReceiverSelected,\n mr.policyInfo.policy === 'active-speaker'\n ? new ActiveSpeakerInfo(\n mr.policyInfo.priority,\n mr.policyInfo.crossPriorityDuplication,\n mr.policyInfo.crossPolicyDuplication,\n mr.policyInfo.preferLiveVideo,\n mr.policyInfo.namedMediaGroups\n )\n : new ReceiverSelectedInfo(mr.policyInfo.csi),\n mr.receiveSlots.map((receiveSlot) => receiveSlot.wcmeReceiveSlot),\n this.getMaxPayloadBitsPerSecond(mr),\n mr.codecInfo && [\n new WcmeCodecInfo(\n 0x80,\n new H264Codec(\n mr.codecInfo.maxFs,\n mr.codecInfo.maxFps || CODEC_DEFAULTS.h264.maxFps,\n this.getH264MaxMbps(mr),\n mr.codecInfo.maxWidth,\n mr.codecInfo.maxHeight\n )\n ),\n ]\n )\n );\n }\n });\n\n //! IMPORTANT: this is only a temporary fix. This will soon be done in the jmp layer (@webex/json-multistream)\n // https://jira-eng-gpk2.cisco.com/jira/browse/WEBEX-326713\n if (!this.checkIsNewRequestsEqualToPrev(streamRequests)) {\n this.sendMediaRequestsCallback(streamRequests);\n this.previousStreamRequests = streamRequests;\n LoggerProxy.logger.info(`multistream:sendRequests --> media requests sent. `);\n } else {\n LoggerProxy.logger.info(\n `multistream:sendRequests --> detected duplicate WCME requests, skipping them... `\n );\n }\n }\n\n public addRequest(mediaRequest: MediaRequest, commit = true): MediaRequestId {\n // eslint-disable-next-line no-plusplus\n const newId = `${this.counter++}`;\n\n this.clientRequests[newId] = mediaRequest;\n\n const eventHandler = ({maxFs}) => {\n mediaRequest.preferredMaxFs = maxFs;\n this.debouncedSourceUpdateListener();\n };\n mediaRequest.handleMaxFs = eventHandler;\n\n mediaRequest.receiveSlots.forEach((rs) => {\n rs.on(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.on(ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);\n });\n\n if (commit) {\n this.commit();\n }\n\n return newId;\n }\n\n public cancelRequest(requestId: MediaRequestId, commit = true) {\n const mediaRequest = this.clientRequests[requestId];\n\n mediaRequest?.receiveSlots.forEach((rs) => {\n rs.off(ReceiveSlotEvents.SourceUpdate, this.sourceUpdateListener);\n rs.off(ReceiveSlotEvents.MaxFsUpdate, mediaRequest.handleMaxFs);\n });\n\n delete this.clientRequests[requestId];\n\n if (commit) {\n this.commit();\n }\n }\n\n public commit() {\n return this.sendRequests();\n }\n\n public reset() {\n this.clientRequests = {};\n this.numTotalSources = 0;\n this.numLiveSources = 0;\n }\n\n public setNumCurrentSources(numTotalSources: number, numLiveSources: number) {\n this.numTotalSources = numTotalSources;\n this.numLiveSources = numLiveSources;\n\n this.sendRequests();\n }\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { MediaType, ReceiveSlot as WcmeReceiveSlot, SourceState } from '@webex/internal-media-core';
1
+ import { MediaType, ReceiveSlot as WcmeReceiveSlot, StreamState } from '@webex/internal-media-core';
2
2
  import EventsScope from '../common/events/events-scope';
3
3
  export declare const ReceiveSlotEvents: {
4
4
  SourceUpdate: string;
5
5
  MaxFsUpdate: string;
6
6
  };
7
- export type { SourceState } from '@webex/internal-media-core';
7
+ export type { StreamState } from '@webex/internal-media-core';
8
8
  export type CSI = number;
9
9
  export type MemberId = string;
10
10
  export type ReceiveSlotId = string;
@@ -44,7 +44,7 @@ export declare class ReceiveSlot extends EventsScope {
44
44
  /**
45
45
  * Getter for sourceState
46
46
  */
47
- get sourceState(): SourceState;
47
+ get sourceState(): StreamState;
48
48
  /**
49
49
  * registers event handlers with the underlying ReceiveSlot
50
50
  */
@@ -24,12 +24,11 @@ var _eventsScope = _interopRequireDefault(require("../common/events/events-scope
24
24
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
25
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
26
26
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
27
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
28
- var ReceiveSlotEvents = {
27
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } /* eslint-disable valid-jsdoc */
28
+ var ReceiveSlotEvents = exports.ReceiveSlotEvents = {
29
29
  SourceUpdate: 'sourceUpdate',
30
30
  MaxFsUpdate: 'maxFsUpdate'
31
31
  };
32
- exports.ReceiveSlotEvents = ReceiveSlotEvents;
33
32
  var receiveSlotCounter = 0;
34
33
  var _memberId = /*#__PURE__*/new _weakMap.default();
35
34
  var _csi = /*#__PURE__*/new _weakMap.default();
@@ -38,7 +37,7 @@ var _sourceState = /*#__PURE__*/new _weakMap.default();
38
37
  * Class representing a receive slot. A single receive slot is able to receive a single track
39
38
  * for example some participant's main video or audio
40
39
  */
41
- var ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
40
+ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
42
41
  (0, _inherits2.default)(ReceiveSlot, _EventsScope);
43
42
  var _super = _createSuper(ReceiveSlot);
44
43
  /**
@@ -198,5 +197,4 @@ var ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
198
197
  }]);
199
198
  return ReceiveSlot;
200
199
  }(_eventsScope.default);
201
- exports.ReceiveSlot = ReceiveSlot;
202
200
  //# sourceMappingURL=receiveSlot.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ReceiveSlotEvents","SourceUpdate","MaxFsUpdate","receiveSlotCounter","ReceiveSlot","mediaType","mcReceiveSlot","findMemberIdCallback","id","setupEventListeners","newFs","emit","file","function","maxFs","scope","on","WcmeReceiveSlotEvents","state","csi","LoggerProxy","logger","log","undefined","memberId","stream","EventsScope"],"sources":["receiveSlot.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {\n MediaType,\n ReceiveSlot as WcmeReceiveSlot,\n ReceiveSlotEvents as WcmeReceiveSlotEvents,\n SourceState,\n} from '@webex/internal-media-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nexport const ReceiveSlotEvents = {\n SourceUpdate: 'sourceUpdate',\n MaxFsUpdate: 'maxFsUpdate',\n};\n\nexport type {SourceState} from '@webex/internal-media-core';\nexport type CSI = number;\nexport type MemberId = string;\nexport type ReceiveSlotId = string;\n\nlet receiveSlotCounter = 0;\n\nexport type FindMemberIdCallback = (csi: CSI) => MemberId | undefined;\n\n/**\n * Class representing a receive slot. A single receive slot is able to receive a single track\n * for example some participant's main video or audio\n */\nexport class ReceiveSlot extends EventsScope {\n private readonly mcReceiveSlot: WcmeReceiveSlot;\n\n private readonly findMemberIdCallback: FindMemberIdCallback;\n\n public readonly id: ReceiveSlotId;\n\n public readonly mediaType: MediaType;\n\n #memberId?: MemberId;\n\n #csi?: CSI;\n\n #sourceState: SourceState;\n\n /**\n * constructor - don't use it directly, you should always use meeting.receiveSlotManager.allocateSlot()\n * to create any receive slots\n *\n * @param {MediaType} mediaType\n * @param {ReceiveSlot} mcReceiveSlot\n * @param {FindMemberIdCallback} findMemberIdCallback callback for finding memberId for given CSI\n */\n constructor(\n mediaType: MediaType,\n mcReceiveSlot: WcmeReceiveSlot,\n findMemberIdCallback: FindMemberIdCallback\n ) {\n super();\n\n receiveSlotCounter += 1;\n\n this.findMemberIdCallback = findMemberIdCallback;\n this.mediaType = mediaType;\n this.mcReceiveSlot = mcReceiveSlot;\n this.#sourceState = 'no source';\n this.id = `r${receiveSlotCounter}`;\n\n this.setupEventListeners();\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.#memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.#csi;\n }\n\n /**\n * Set the max frame size for this slot\n * @param newFs frame size\n */\n public setMaxFs(newFs) {\n // emit event for media request manager to listen to\n\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.MaxFsUpdate,\n {\n maxFs: newFs,\n }\n );\n }\n\n /**\n * Getter for sourceState\n */\n public get sourceState() {\n return this.#sourceState;\n }\n\n /**\n * registers event handlers with the underlying ReceiveSlot\n */\n private setupEventListeners() {\n const scope = {\n file: 'meeting/receiveSlot',\n function: 'setupEventListeners',\n };\n\n this.mcReceiveSlot.on(\n WcmeReceiveSlotEvents.SourceUpdate,\n (state: SourceState, csi?: number) => {\n LoggerProxy.logger.log(\n `ReceiveSlot#setupEventListeners --> got source update on receive slot ${this.id}, mediaType=${this.mediaType}, csi=${csi}, state=${state}`\n );\n this.#memberId = csi ? this.findMemberIdCallback(csi) : undefined;\n this.#csi = csi;\n this.#sourceState = state;\n\n this.emit(scope, ReceiveSlotEvents.SourceUpdate, {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n });\n }\n );\n }\n\n /** Tries to find the member id for this receive slot if it hasn't got one */\n public findMemberId() {\n if (this.#memberId === undefined && this.#csi) {\n this.#memberId = this.findMemberIdCallback(this.#csi);\n\n if (this.#memberId) {\n // if we found the memberId, simulate source update so that the client app knows that something's changed\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.SourceUpdate,\n {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n }\n );\n }\n }\n }\n\n /**\n * @returns {string} a log message used to identify the receive slot\n */\n public get logString() {\n return `ReceiveSlot - ${this.id}: ${JSON.stringify(this.mcReceiveSlot.id)}`;\n }\n\n /**\n * The MediaStream object associated with this slot.\n *\n * @returns {MediaStream} The MediaStreamTrack.\n */\n get stream(): MediaStream {\n return this.mcReceiveSlot.stream;\n }\n\n /**\n * The underlying WCME receive slot\n */\n get wcmeReceiveSlot(): WcmeReceiveSlot {\n return this.mcReceiveSlot;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","_eventsScope","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","_classPrivateFieldInitSpec","obj","privateMap","value","_checkPrivateRedeclaration","set","privateCollection","has","TypeError","ReceiveSlotEvents","exports","SourceUpdate","MaxFsUpdate","receiveSlotCounter","_memberId","_weakMap","_csi","_sourceState","ReceiveSlot","_EventsScope","_inherits2","_super","mediaType","mcReceiveSlot","findMemberIdCallback","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","writable","_classPrivateFieldSet2","id","concat","setupEventListeners","_createClass2","key","get","_classPrivateFieldGet2","setMaxFs","newFs","emit","file","function","maxFs","_this2","scope","on","WcmeReceiveSlotEvents","state","csi","LoggerProxy","logger","log","undefined","memberId","findMemberId","_stringify","stream","EventsScope"],"sources":["receiveSlot.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {\n MediaType,\n ReceiveSlot as WcmeReceiveSlot,\n ReceiveSlotEvents as WcmeReceiveSlotEvents,\n StreamState,\n} from '@webex/internal-media-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nexport const ReceiveSlotEvents = {\n SourceUpdate: 'sourceUpdate',\n MaxFsUpdate: 'maxFsUpdate',\n};\n\nexport type {StreamState} from '@webex/internal-media-core';\nexport type CSI = number;\nexport type MemberId = string;\nexport type ReceiveSlotId = string;\n\nlet receiveSlotCounter = 0;\n\nexport type FindMemberIdCallback = (csi: CSI) => MemberId | undefined;\n\n/**\n * Class representing a receive slot. A single receive slot is able to receive a single track\n * for example some participant's main video or audio\n */\nexport class ReceiveSlot extends EventsScope {\n private readonly mcReceiveSlot: WcmeReceiveSlot;\n\n private readonly findMemberIdCallback: FindMemberIdCallback;\n\n public readonly id: ReceiveSlotId;\n\n public readonly mediaType: MediaType;\n\n #memberId?: MemberId;\n\n #csi?: CSI;\n\n #sourceState: StreamState;\n\n /**\n * constructor - don't use it directly, you should always use meeting.receiveSlotManager.allocateSlot()\n * to create any receive slots\n *\n * @param {MediaType} mediaType\n * @param {ReceiveSlot} mcReceiveSlot\n * @param {FindMemberIdCallback} findMemberIdCallback callback for finding memberId for given CSI\n */\n constructor(\n mediaType: MediaType,\n mcReceiveSlot: WcmeReceiveSlot,\n findMemberIdCallback: FindMemberIdCallback\n ) {\n super();\n\n receiveSlotCounter += 1;\n\n this.findMemberIdCallback = findMemberIdCallback;\n this.mediaType = mediaType;\n this.mcReceiveSlot = mcReceiveSlot;\n this.#sourceState = 'no source';\n this.id = `r${receiveSlotCounter}`;\n\n this.setupEventListeners();\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.#memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.#csi;\n }\n\n /**\n * Set the max frame size for this slot\n * @param newFs frame size\n */\n public setMaxFs(newFs) {\n // emit event for media request manager to listen to\n\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.MaxFsUpdate,\n {\n maxFs: newFs,\n }\n );\n }\n\n /**\n * Getter for sourceState\n */\n public get sourceState() {\n return this.#sourceState;\n }\n\n /**\n * registers event handlers with the underlying ReceiveSlot\n */\n private setupEventListeners() {\n const scope = {\n file: 'meeting/receiveSlot',\n function: 'setupEventListeners',\n };\n\n this.mcReceiveSlot.on(\n WcmeReceiveSlotEvents.SourceUpdate,\n (state: StreamState, csi?: number) => {\n LoggerProxy.logger.log(\n `ReceiveSlot#setupEventListeners --> got source update on receive slot ${this.id}, mediaType=${this.mediaType}, csi=${csi}, state=${state}`\n );\n this.#memberId = csi ? this.findMemberIdCallback(csi) : undefined;\n this.#csi = csi;\n this.#sourceState = state;\n\n this.emit(scope, ReceiveSlotEvents.SourceUpdate, {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n });\n }\n );\n }\n\n /** Tries to find the member id for this receive slot if it hasn't got one */\n public findMemberId() {\n if (this.#memberId === undefined && this.#csi) {\n this.#memberId = this.findMemberIdCallback(this.#csi);\n\n if (this.#memberId) {\n // if we found the memberId, simulate source update so that the client app knows that something's changed\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.SourceUpdate,\n {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n }\n );\n }\n }\n }\n\n /**\n * @returns {string} a log message used to identify the receive slot\n */\n public get logString() {\n return `ReceiveSlot - ${this.id}: ${JSON.stringify(this.mcReceiveSlot.id)}`;\n }\n\n /**\n * The MediaStream object associated with this slot.\n *\n * @returns {MediaStream} The MediaStreamTrack.\n */\n get stream(): MediaStream {\n return this.mcReceiveSlot.stream;\n }\n\n /**\n * The underlying WCME receive slot\n */\n get wcmeReceiveSlot(): WcmeReceiveSlot {\n return this.mcReceiveSlot;\n }\n}\n"],"mappings":"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"}