@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
@@ -22,20 +22,19 @@ var _receiveSlot = require("./receiveSlot");
22
22
  * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted,
23
23
  * so this manager has a pool in order to re-use the slots that were released earlier.
24
24
  */
25
- var ReceiveSlotManager = /*#__PURE__*/function () {
25
+ var ReceiveSlotManager = exports.ReceiveSlotManager = /*#__PURE__*/function () {
26
26
  /**
27
27
  * Constructor
28
28
  * @param {Meeting} meeting
29
29
  */
30
30
  function ReceiveSlotManager(createSlotCallback, findMemberIdByCsiCallback) {
31
- var _this$allocatedSlots, _this$freeSlots;
32
31
  (0, _classCallCheck2.default)(this, ReceiveSlotManager);
33
32
  (0, _defineProperty2.default)(this, "allocatedSlots", void 0);
34
33
  (0, _defineProperty2.default)(this, "freeSlots", void 0);
35
34
  (0, _defineProperty2.default)(this, "createSlotCallback", void 0);
36
35
  (0, _defineProperty2.default)(this, "findMemberIdByCsiCallback", void 0);
37
- this.allocatedSlots = (_this$allocatedSlots = {}, (0, _defineProperty2.default)(_this$allocatedSlots, _internalMediaCore.MediaType.AudioMain, []), (0, _defineProperty2.default)(_this$allocatedSlots, _internalMediaCore.MediaType.VideoMain, []), (0, _defineProperty2.default)(_this$allocatedSlots, _internalMediaCore.MediaType.AudioSlides, []), (0, _defineProperty2.default)(_this$allocatedSlots, _internalMediaCore.MediaType.VideoSlides, []), _this$allocatedSlots);
38
- this.freeSlots = (_this$freeSlots = {}, (0, _defineProperty2.default)(_this$freeSlots, _internalMediaCore.MediaType.AudioMain, []), (0, _defineProperty2.default)(_this$freeSlots, _internalMediaCore.MediaType.VideoMain, []), (0, _defineProperty2.default)(_this$freeSlots, _internalMediaCore.MediaType.AudioSlides, []), (0, _defineProperty2.default)(_this$freeSlots, _internalMediaCore.MediaType.VideoSlides, []), _this$freeSlots);
36
+ this.allocatedSlots = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _internalMediaCore.MediaType.AudioMain, []), _internalMediaCore.MediaType.VideoMain, []), _internalMediaCore.MediaType.AudioSlides, []), _internalMediaCore.MediaType.VideoSlides, []);
37
+ this.freeSlots = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _internalMediaCore.MediaType.AudioMain, []), _internalMediaCore.MediaType.VideoMain, []), _internalMediaCore.MediaType.AudioSlides, []), _internalMediaCore.MediaType.VideoSlides, []);
39
38
  this.createSlotCallback = createSlotCallback;
40
39
  this.findMemberIdByCsiCallback = findMemberIdByCsiCallback;
41
40
  }
@@ -48,7 +47,7 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
48
47
  */
49
48
  (0, _createClass2.default)(ReceiveSlotManager, [{
50
49
  key: "allocateSlot",
51
- value: function () {
50
+ value: (function () {
52
51
  var _allocateSlot = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaType) {
53
52
  var availableSlot, wcmeReceiveSlot, receiveSlot;
54
53
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -61,7 +60,7 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
61
60
  break;
62
61
  }
63
62
  this.allocatedSlots[mediaType].push(availableSlot);
64
- _loggerProxy.default.logger.log("receive slot re-used: ".concat(availableSlot.id));
63
+ _loggerProxy.default.logger.log("".concat(mediaType, ": receive slot re-used: ").concat(availableSlot.id));
65
64
  return _context.abrupt("return", availableSlot);
66
65
  case 5:
67
66
  _context.next = 7;
@@ -70,7 +69,7 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
70
69
  wcmeReceiveSlot = _context.sent;
71
70
  receiveSlot = new _receiveSlot.ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);
72
71
  this.allocatedSlots[mediaType].push(receiveSlot);
73
- _loggerProxy.default.logger.log("new receive slot allocated: ".concat(receiveSlot.id));
72
+ _loggerProxy.default.logger.log("".concat(mediaType, ": new receive slot allocated: ").concat(receiveSlot.id));
74
73
  return _context.abrupt("return", receiveSlot);
75
74
  case 12:
76
75
  case "end":
@@ -87,6 +86,7 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
87
86
  * Releases the slot back to the pool so it can be re-used by others in the future
88
87
  * @param {ReceiveSlot} slot
89
88
  */
89
+ )
90
90
  }, {
91
91
  key: "releaseSlot",
92
92
  value: function releaseSlot(slot) {
@@ -96,9 +96,9 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
96
96
  if (idx >= 0) {
97
97
  this.allocatedSlots[slot.mediaType].splice(idx, 1);
98
98
  this.freeSlots[slot.mediaType].push(slot);
99
- _loggerProxy.default.logger.log("receive slot released: ".concat(slot.id));
99
+ _loggerProxy.default.logger.log("".concat(slot.mediaType, ": receive slot released: ").concat(slot.id));
100
100
  } else {
101
- _loggerProxy.default.logger.warn('ReceiveSlotManager#releaseSlot --> trying to release a slot that is not managed by this ReceiveSlotManager');
101
+ _loggerProxy.default.logger.warn("ReceiveSlotManager#releaseSlot --> trying to release a ".concat(slot.mediaType, "} slot that is not managed by this ReceiveSlotManager"));
102
102
  }
103
103
  }
104
104
 
@@ -108,9 +108,8 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
108
108
  }, {
109
109
  key: "reset",
110
110
  value: function reset() {
111
- var _this$allocatedSlots2, _this$freeSlots2;
112
- this.allocatedSlots = (_this$allocatedSlots2 = {}, (0, _defineProperty2.default)(_this$allocatedSlots2, _internalMediaCore.MediaType.AudioMain, []), (0, _defineProperty2.default)(_this$allocatedSlots2, _internalMediaCore.MediaType.VideoMain, []), (0, _defineProperty2.default)(_this$allocatedSlots2, _internalMediaCore.MediaType.AudioSlides, []), (0, _defineProperty2.default)(_this$allocatedSlots2, _internalMediaCore.MediaType.VideoSlides, []), _this$allocatedSlots2);
113
- this.freeSlots = (_this$freeSlots2 = {}, (0, _defineProperty2.default)(_this$freeSlots2, _internalMediaCore.MediaType.AudioMain, []), (0, _defineProperty2.default)(_this$freeSlots2, _internalMediaCore.MediaType.VideoMain, []), (0, _defineProperty2.default)(_this$freeSlots2, _internalMediaCore.MediaType.AudioSlides, []), (0, _defineProperty2.default)(_this$freeSlots2, _internalMediaCore.MediaType.VideoSlides, []), _this$freeSlots2);
111
+ this.allocatedSlots = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _internalMediaCore.MediaType.AudioMain, []), _internalMediaCore.MediaType.VideoMain, []), _internalMediaCore.MediaType.AudioSlides, []), _internalMediaCore.MediaType.VideoSlides, []);
112
+ this.freeSlots = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _internalMediaCore.MediaType.AudioMain, []), _internalMediaCore.MediaType.VideoMain, []), _internalMediaCore.MediaType.AudioSlides, []), _internalMediaCore.MediaType.VideoSlides, []);
114
113
  }
115
114
 
116
115
  /**
@@ -172,5 +171,4 @@ var ReceiveSlotManager = /*#__PURE__*/function () {
172
171
  }]);
173
172
  return ReceiveSlotManager;
174
173
  }();
175
- exports.ReceiveSlotManager = ReceiveSlotManager;
176
174
  //# sourceMappingURL=receiveSlotManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ReceiveSlotManager","createSlotCallback","findMemberIdByCsiCallback","allocatedSlots","MediaType","AudioMain","VideoMain","AudioSlides","VideoSlides","freeSlots","mediaType","availableSlot","pop","push","LoggerProxy","logger","log","id","wcmeReceiveSlot","receiveSlot","ReceiveSlot","slot","idx","findIndex","allocatedSlot","splice","warn","numAllocatedSlots","numFreeSlots","forEach","key","length","findMemberId","ssrc","flat","find","r"],"sources":["receiveSlotManager.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable import/prefer-default-export */\nimport {MediaType, ReceiveSlot as WcmeReceiveSlot} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {FindMemberIdCallback, ReceiveSlot} from './receiveSlot';\n\nexport type CreateSlotCallback = (mediaType: MediaType) => Promise<WcmeReceiveSlot>;\n\nexport type {CSI, FindMemberIdCallback} from './receiveSlot';\n\n/**\n * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted,\n * so this manager has a pool in order to re-use the slots that were released earlier.\n */\nexport class ReceiveSlotManager {\n private allocatedSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private freeSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private createSlotCallback: CreateSlotCallback;\n\n private findMemberIdByCsiCallback: FindMemberIdCallback;\n\n /**\n * Constructor\n * @param {Meeting} meeting\n */\n constructor(\n createSlotCallback: CreateSlotCallback,\n findMemberIdByCsiCallback: FindMemberIdCallback\n ) {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.createSlotCallback = createSlotCallback;\n this.findMemberIdByCsiCallback = findMemberIdByCsiCallback;\n }\n\n /**\n * Creates a new receive slot or returns one from the existing pool of free slots\n *\n * @param {MediaType} mediaType\n * @returns {Promise<ReceiveSlot>}\n */\n async allocateSlot(mediaType: MediaType): Promise<ReceiveSlot> {\n // try to use one of the free ones\n const availableSlot = this.freeSlots[mediaType].pop();\n\n if (availableSlot) {\n this.allocatedSlots[mediaType].push(availableSlot);\n\n LoggerProxy.logger.log(`receive slot re-used: ${availableSlot.id}`);\n\n return availableSlot;\n }\n\n // we have to create a new one\n const wcmeReceiveSlot = await this.createSlotCallback(mediaType);\n\n const receiveSlot = new ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);\n\n this.allocatedSlots[mediaType].push(receiveSlot);\n LoggerProxy.logger.log(`new receive slot allocated: ${receiveSlot.id}`);\n\n return receiveSlot;\n }\n\n /**\n * Releases the slot back to the pool so it can be re-used by others in the future\n * @param {ReceiveSlot} slot\n */\n releaseSlot(slot: ReceiveSlot) {\n const idx = this.allocatedSlots[slot.mediaType].findIndex(\n (allocatedSlot) => allocatedSlot === slot\n );\n\n if (idx >= 0) {\n this.allocatedSlots[slot.mediaType].splice(idx, 1);\n this.freeSlots[slot.mediaType].push(slot);\n LoggerProxy.logger.log(`receive slot released: ${slot.id}`);\n } else {\n LoggerProxy.logger.warn(\n 'ReceiveSlotManager#releaseSlot --> trying to release a slot that is not managed by this ReceiveSlotManager'\n );\n }\n }\n\n /**\n * Resets the slot manager - this method should be called when the media connection is torn down\n */\n reset() {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n }\n\n /**\n * Returns statistics about the managed slots\n *\n * @returns {Object}\n */\n getStats() {\n const numAllocatedSlots = {};\n const numFreeSlots = {};\n\n Object.keys(this.allocatedSlots).forEach((key) => {\n if (this.allocatedSlots[key].length > 0) {\n numAllocatedSlots[key] = this.allocatedSlots[key].length;\n }\n });\n\n Object.keys(this.freeSlots).forEach((key) => {\n if (this.freeSlots[key].length > 0) {\n numFreeSlots[key] = this.freeSlots[key].length;\n }\n });\n\n return {\n numAllocatedSlots,\n numFreeSlots,\n };\n }\n\n /**\n * Tries to find the member id on all allocated receive slots\n * This function should be called when new members are added to the meeting.\n */\n updateMemberIds() {\n Object.keys(this.allocatedSlots).forEach((key) => {\n this.allocatedSlots[key].forEach((slot: ReceiveSlot) => {\n slot.findMemberId();\n });\n });\n }\n\n /**\n * Find a receive slot by a ssrc.\n *\n * @param ssrc - The ssrc of the receive slot to find.\n * @returns - The receive slot with this ssrc, undefined if not found.\n */\n findReceiveSlotBySsrc(ssrc: number): ReceiveSlot | undefined {\n return Object.values(this.allocatedSlots)\n .flat()\n .find((r) => ssrc && r.wcmeReceiveSlot?.id?.ssrc === ssrc);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","_receiveSlot","ReceiveSlotManager","exports","createSlotCallback","findMemberIdByCsiCallback","_classCallCheck2","default","_defineProperty2","allocatedSlots","MediaType","AudioMain","VideoMain","AudioSlides","VideoSlides","freeSlots","_createClass2","key","value","_allocateSlot","_asyncToGenerator2","_regenerator","mark","_callee","mediaType","availableSlot","wcmeReceiveSlot","receiveSlot","wrap","_callee$","_context","prev","next","pop","push","LoggerProxy","logger","log","concat","id","abrupt","sent","ReceiveSlot","stop","allocateSlot","_x","apply","arguments","releaseSlot","slot","idx","findIndex","allocatedSlot","splice","warn","reset","getStats","_this","numAllocatedSlots","numFreeSlots","_keys","forEach","length","updateMemberIds","_this2","findMemberId","findReceiveSlotBySsrc","ssrc","_values","flat","find","r","_r$wcmeReceiveSlot","_r$wcmeReceiveSlot$id"],"sources":["receiveSlotManager.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable import/prefer-default-export */\nimport {MediaType, ReceiveSlot as WcmeReceiveSlot} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {FindMemberIdCallback, ReceiveSlot} from './receiveSlot';\n\nexport type CreateSlotCallback = (mediaType: MediaType) => Promise<WcmeReceiveSlot>;\n\nexport type {CSI, FindMemberIdCallback} from './receiveSlot';\n\n/**\n * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted,\n * so this manager has a pool in order to re-use the slots that were released earlier.\n */\nexport class ReceiveSlotManager {\n private allocatedSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private freeSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private createSlotCallback: CreateSlotCallback;\n\n private findMemberIdByCsiCallback: FindMemberIdCallback;\n\n /**\n * Constructor\n * @param {Meeting} meeting\n */\n constructor(\n createSlotCallback: CreateSlotCallback,\n findMemberIdByCsiCallback: FindMemberIdCallback\n ) {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.createSlotCallback = createSlotCallback;\n this.findMemberIdByCsiCallback = findMemberIdByCsiCallback;\n }\n\n /**\n * Creates a new receive slot or returns one from the existing pool of free slots\n *\n * @param {MediaType} mediaType\n * @returns {Promise<ReceiveSlot>}\n */\n async allocateSlot(mediaType: MediaType): Promise<ReceiveSlot> {\n // try to use one of the free ones\n const availableSlot = this.freeSlots[mediaType].pop();\n\n if (availableSlot) {\n this.allocatedSlots[mediaType].push(availableSlot);\n\n LoggerProxy.logger.log(`${mediaType}: receive slot re-used: ${availableSlot.id}`);\n\n return availableSlot;\n }\n\n // we have to create a new one\n const wcmeReceiveSlot = await this.createSlotCallback(mediaType);\n\n const receiveSlot = new ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);\n\n this.allocatedSlots[mediaType].push(receiveSlot);\n LoggerProxy.logger.log(`${mediaType}: new receive slot allocated: ${receiveSlot.id}`);\n\n return receiveSlot;\n }\n\n /**\n * Releases the slot back to the pool so it can be re-used by others in the future\n * @param {ReceiveSlot} slot\n */\n releaseSlot(slot: ReceiveSlot) {\n const idx = this.allocatedSlots[slot.mediaType].findIndex(\n (allocatedSlot) => allocatedSlot === slot\n );\n\n if (idx >= 0) {\n this.allocatedSlots[slot.mediaType].splice(idx, 1);\n this.freeSlots[slot.mediaType].push(slot);\n LoggerProxy.logger.log(`${slot.mediaType}: receive slot released: ${slot.id}`);\n } else {\n LoggerProxy.logger.warn(\n `ReceiveSlotManager#releaseSlot --> trying to release a ${slot.mediaType}} slot that is not managed by this ReceiveSlotManager`\n );\n }\n }\n\n /**\n * Resets the slot manager - this method should be called when the media connection is torn down\n */\n reset() {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n }\n\n /**\n * Returns statistics about the managed slots\n *\n * @returns {Object}\n */\n getStats() {\n const numAllocatedSlots = {};\n const numFreeSlots = {};\n\n Object.keys(this.allocatedSlots).forEach((key) => {\n if (this.allocatedSlots[key].length > 0) {\n numAllocatedSlots[key] = this.allocatedSlots[key].length;\n }\n });\n\n Object.keys(this.freeSlots).forEach((key) => {\n if (this.freeSlots[key].length > 0) {\n numFreeSlots[key] = this.freeSlots[key].length;\n }\n });\n\n return {\n numAllocatedSlots,\n numFreeSlots,\n };\n }\n\n /**\n * Tries to find the member id on all allocated receive slots\n * This function should be called when new members are added to the meeting.\n */\n updateMemberIds() {\n Object.keys(this.allocatedSlots).forEach((key) => {\n this.allocatedSlots[key].forEach((slot: ReceiveSlot) => {\n slot.findMemberId();\n });\n });\n }\n\n /**\n * Find a receive slot by a ssrc.\n *\n * @param ssrc - The ssrc of the receive slot to find.\n * @returns - The receive slot with this ssrc, undefined if not found.\n */\n findReceiveSlotBySsrc(ssrc: number): ReceiveSlot | undefined {\n return Object.values(this.allocatedSlots)\n .flat()\n .find((r) => ssrc && r.wcmeReceiveSlot?.id?.ssrc === ssrc);\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MediaType, SourceState } from '@webex/internal-media-core';
1
+ import { MediaType, StreamState } from '@webex/internal-media-core';
2
2
  import EventsScope from '../common/events/events-scope';
3
3
  import { MediaRequestManager } from './mediaRequestManager';
4
4
  import { ReceiveSlot } from './receiveSlot';
@@ -63,7 +63,7 @@ export declare class RemoteMedia extends EventsScope {
63
63
  /**
64
64
  * Getter for source state
65
65
  */
66
- get sourceState(): SourceState;
66
+ get sourceState(): StreamState;
67
67
  /**
68
68
  * Getter for remote media stream
69
69
  */
@@ -19,12 +19,11 @@ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy")
19
19
  var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
20
20
  var _receiveSlot = require("./receiveSlot");
21
21
  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); }; }
22
- 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; } }
23
- var RemoteMediaEvents = {
22
+ 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; } } /* eslint-disable valid-jsdoc */
23
+ var RemoteMediaEvents = exports.RemoteMediaEvents = {
24
24
  SourceUpdate: _receiveSlot.ReceiveSlotEvents.SourceUpdate,
25
25
  Stopped: 'stopped'
26
26
  };
27
- exports.RemoteMediaEvents = RemoteMediaEvents;
28
27
  // highest possible resolution
29
28
 
30
29
  /**
@@ -67,7 +66,7 @@ var remoteMediaCounter = 0;
67
66
  * Internally it is associated with a specific receive slot
68
67
  * and a media request for it.
69
68
  */
70
- var RemoteMedia = /*#__PURE__*/function (_EventsScope) {
69
+ var RemoteMedia = exports.RemoteMedia = /*#__PURE__*/function (_EventsScope) {
71
70
  (0, _inherits2.default)(RemoteMedia, _EventsScope);
72
71
  var _super = _createSuper(RemoteMedia);
73
72
  /**
@@ -266,5 +265,4 @@ var RemoteMedia = /*#__PURE__*/function (_EventsScope) {
266
265
  }]);
267
266
  return RemoteMedia;
268
267
  }(_eventsScope.default);
269
- exports.RemoteMedia = RemoteMedia;
270
268
  //# sourceMappingURL=remoteMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RemoteMediaEvents","SourceUpdate","ReceiveSlotEvents","Stopped","getMaxFs","paneSize","maxFs","LoggerProxy","logger","warn","remoteMediaCounter","RemoteMedia","receiveSlot","mediaRequestManager","options","setupEventListeners","id","width","height","fs","setMaxFs","commit","cancelMediaRequest","removeAllListeners","undefined","emit","file","function","csi","mediaRequestId","Error","addRequest","policyInfo","policy","receiveSlots","codecInfo","resolution","codec","cancelRequest","scope","on","data","mediaType","memberId","sourceState","stream","EventsScope"],"sources":["remoteMedia.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {MediaType, SourceState} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nimport {MediaRequestId, MediaRequestManager} from './mediaRequestManager';\nimport {CSI, ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\n\nexport const RemoteMediaEvents = {\n SourceUpdate: ReceiveSlotEvents.SourceUpdate,\n Stopped: 'stopped',\n};\n\nexport type RemoteVideoResolution =\n | 'thumbnail' // the smallest possible resolution, 90p or less\n | 'very small' // 180p or less\n | 'small' // 360p or less\n | 'medium' // 720p or less\n | 'large' // 1080p or less\n | 'best'; // highest possible resolution\n\n/**\n * Converts pane size into h264 maxFs\n * @param {PaneSize} paneSize\n * @returns {number}\n */\nexport function getMaxFs(paneSize: RemoteVideoResolution): number {\n let maxFs;\n\n switch (paneSize) {\n case 'thumbnail':\n maxFs = 60;\n break;\n case 'very small':\n maxFs = 240;\n break;\n case 'small':\n maxFs = 920;\n break;\n case 'medium':\n maxFs = 3600;\n break;\n case 'large':\n maxFs = 8192;\n break;\n case 'best':\n maxFs = 8192; // for now 'best' is 1080p, so same as 'large'\n break;\n default:\n LoggerProxy.logger.warn(\n `RemoteMedia#getMaxFs --> unsupported paneSize: ${paneSize}, using \"medium\" instead`\n );\n maxFs = 3600;\n }\n\n return maxFs;\n}\n\ntype Options = {\n resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n};\n\nexport type RemoteMediaId = string;\n\nlet remoteMediaCounter = 0;\n\n/**\n * Class representing a remote audio/video stream.\n *\n * Internally it is associated with a specific receive slot\n * and a media request for it.\n */\nexport class RemoteMedia extends EventsScope {\n private receiveSlot?: ReceiveSlot;\n\n private readonly mediaRequestManager: MediaRequestManager;\n\n private readonly options: Options;\n\n private mediaRequestId?: MediaRequestId;\n\n public readonly id: RemoteMediaId;\n\n /**\n * Constructs RemoteMedia instance\n *\n * @param receiveSlot\n * @param mediaRequestManager\n * @param options\n */\n constructor(\n receiveSlot: ReceiveSlot,\n mediaRequestManager: MediaRequestManager,\n options?: Options\n ) {\n super();\n remoteMediaCounter += 1;\n this.receiveSlot = receiveSlot;\n this.mediaRequestManager = mediaRequestManager;\n this.options = options || {};\n this.setupEventListeners();\n this.id = `RM${remoteMediaCounter}-${this.receiveSlot.id}`;\n }\n\n /**\n * Supply the width and height of the video element\n * to restrict the requested resolution to this size\n * @param width width of the video element\n * @param height height of the video element\n */\n public setSizeHint(width, height) {\n // only base on height for now\n let fs: number;\n\n if (height < 135) {\n fs = 60;\n } else if (height < 270) {\n fs = 240;\n } else if (height < 540) {\n fs = 920;\n } else if (height <= 720) {\n fs = 3600;\n } else {\n fs = 8192;\n }\n\n this.receiveSlot?.setMaxFs(fs);\n }\n\n /**\n * Invalidates the remote media by clearing the reference to a receive slot and\n * cancelling the media request.\n * After this call the remote media is unusable.\n *\n * @param {boolean} commit - whether to commit the cancellation of the media request\n * @internal\n */\n public stop(commit = true) {\n this.cancelMediaRequest(commit);\n this.receiveSlot?.removeAllListeners();\n this.receiveSlot = undefined;\n this.emit(\n {\n file: 'multistream/remoteMedia',\n function: 'stop',\n },\n RemoteMediaEvents.Stopped,\n {}\n );\n }\n\n /**\n * Sends a new media request. This method can only be used for receiver-selected policy,\n * because only in that policy we have a 1-1 relationship between RemoteMedia and MediaRequest\n * and the request id is then stored in this RemoteMedia instance.\n * For active-speaker policy, the same request is shared among many RemoteMedia instances,\n * so it's managed through RemoteMediaGroup\n *\n * @internal\n */\n public sendMediaRequest(csi: CSI, commit: boolean) {\n if (this.mediaRequestId) {\n this.cancelMediaRequest(false);\n }\n\n if (!this.receiveSlot) {\n throw new Error('sendMediaRequest() called on an invalidated RemoteMedia instance');\n }\n\n this.mediaRequestId = this.mediaRequestManager.addRequest(\n {\n policyInfo: {\n policy: 'receiver-selected',\n csi,\n },\n receiveSlots: [this.receiveSlot],\n codecInfo: this.options.resolution && {\n codec: 'h264',\n maxFs: getMaxFs(this.options.resolution),\n },\n },\n commit\n );\n }\n\n /**\n * @internal\n */\n public cancelMediaRequest(commit: boolean) {\n if (this.mediaRequestId) {\n this.mediaRequestManager.cancelRequest(this.mediaRequestId, commit);\n this.mediaRequestId = undefined;\n }\n }\n\n /**\n * registers event listeners on the receive slot and forwards all the events\n */\n private setupEventListeners() {\n if (this.receiveSlot) {\n const scope = {\n file: 'multistream/remoteMedia',\n function: 'setupEventListeners',\n };\n\n this.receiveSlot.on(ReceiveSlotEvents.SourceUpdate, (data) => {\n this.emit(scope, RemoteMediaEvents.SourceUpdate, data);\n });\n }\n }\n\n /**\n * Getter for mediaType\n */\n public get mediaType(): MediaType {\n return this.receiveSlot?.mediaType;\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.receiveSlot?.memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.receiveSlot?.csi;\n }\n\n /**\n * Getter for source state\n */\n public get sourceState(): SourceState {\n return this.receiveSlot?.sourceState;\n }\n\n /**\n * Getter for remote media stream\n */\n public get stream() {\n return this.receiveSlot?.stream;\n }\n\n /**\n * @internal\n * @returns {ReceiveSlot}\n */\n public getUnderlyingReceiveSlot() {\n return this.receiveSlot;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_eventsScope","_receiveSlot","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RemoteMediaEvents","exports","SourceUpdate","ReceiveSlotEvents","Stopped","getMaxFs","paneSize","maxFs","LoggerProxy","logger","warn","concat","remoteMediaCounter","RemoteMedia","_EventsScope","_inherits2","_super","receiveSlot","mediaRequestManager","options","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","setupEventListeners","id","_createClass2","key","value","setSizeHint","width","height","_this$receiveSlot","fs","setMaxFs","stop","_this$receiveSlot2","commit","length","undefined","cancelMediaRequest","removeAllListeners","emit","file","function","sendMediaRequest","csi","mediaRequestId","Error","addRequest","policyInfo","policy","receiveSlots","codecInfo","resolution","codec","cancelRequest","_this2","scope","on","data","get","_this$receiveSlot3","mediaType","_this$receiveSlot4","memberId","_this$receiveSlot5","_this$receiveSlot6","sourceState","_this$receiveSlot7","stream","getUnderlyingReceiveSlot","EventsScope"],"sources":["remoteMedia.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {MediaType, StreamState} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nimport {MediaRequestId, MediaRequestManager} from './mediaRequestManager';\nimport {CSI, ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\n\nexport const RemoteMediaEvents = {\n SourceUpdate: ReceiveSlotEvents.SourceUpdate,\n Stopped: 'stopped',\n};\n\nexport type RemoteVideoResolution =\n | 'thumbnail' // the smallest possible resolution, 90p or less\n | 'very small' // 180p or less\n | 'small' // 360p or less\n | 'medium' // 720p or less\n | 'large' // 1080p or less\n | 'best'; // highest possible resolution\n\n/**\n * Converts pane size into h264 maxFs\n * @param {PaneSize} paneSize\n * @returns {number}\n */\nexport function getMaxFs(paneSize: RemoteVideoResolution): number {\n let maxFs;\n\n switch (paneSize) {\n case 'thumbnail':\n maxFs = 60;\n break;\n case 'very small':\n maxFs = 240;\n break;\n case 'small':\n maxFs = 920;\n break;\n case 'medium':\n maxFs = 3600;\n break;\n case 'large':\n maxFs = 8192;\n break;\n case 'best':\n maxFs = 8192; // for now 'best' is 1080p, so same as 'large'\n break;\n default:\n LoggerProxy.logger.warn(\n `RemoteMedia#getMaxFs --> unsupported paneSize: ${paneSize}, using \"medium\" instead`\n );\n maxFs = 3600;\n }\n\n return maxFs;\n}\n\ntype Options = {\n resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n};\n\nexport type RemoteMediaId = string;\n\nlet remoteMediaCounter = 0;\n\n/**\n * Class representing a remote audio/video stream.\n *\n * Internally it is associated with a specific receive slot\n * and a media request for it.\n */\nexport class RemoteMedia extends EventsScope {\n private receiveSlot?: ReceiveSlot;\n\n private readonly mediaRequestManager: MediaRequestManager;\n\n private readonly options: Options;\n\n private mediaRequestId?: MediaRequestId;\n\n public readonly id: RemoteMediaId;\n\n /**\n * Constructs RemoteMedia instance\n *\n * @param receiveSlot\n * @param mediaRequestManager\n * @param options\n */\n constructor(\n receiveSlot: ReceiveSlot,\n mediaRequestManager: MediaRequestManager,\n options?: Options\n ) {\n super();\n remoteMediaCounter += 1;\n this.receiveSlot = receiveSlot;\n this.mediaRequestManager = mediaRequestManager;\n this.options = options || {};\n this.setupEventListeners();\n this.id = `RM${remoteMediaCounter}-${this.receiveSlot.id}`;\n }\n\n /**\n * Supply the width and height of the video element\n * to restrict the requested resolution to this size\n * @param width width of the video element\n * @param height height of the video element\n */\n public setSizeHint(width, height) {\n // only base on height for now\n let fs: number;\n\n if (height < 135) {\n fs = 60;\n } else if (height < 270) {\n fs = 240;\n } else if (height < 540) {\n fs = 920;\n } else if (height <= 720) {\n fs = 3600;\n } else {\n fs = 8192;\n }\n\n this.receiveSlot?.setMaxFs(fs);\n }\n\n /**\n * Invalidates the remote media by clearing the reference to a receive slot and\n * cancelling the media request.\n * After this call the remote media is unusable.\n *\n * @param {boolean} commit - whether to commit the cancellation of the media request\n * @internal\n */\n public stop(commit = true) {\n this.cancelMediaRequest(commit);\n this.receiveSlot?.removeAllListeners();\n this.receiveSlot = undefined;\n this.emit(\n {\n file: 'multistream/remoteMedia',\n function: 'stop',\n },\n RemoteMediaEvents.Stopped,\n {}\n );\n }\n\n /**\n * Sends a new media request. This method can only be used for receiver-selected policy,\n * because only in that policy we have a 1-1 relationship between RemoteMedia and MediaRequest\n * and the request id is then stored in this RemoteMedia instance.\n * For active-speaker policy, the same request is shared among many RemoteMedia instances,\n * so it's managed through RemoteMediaGroup\n *\n * @internal\n */\n public sendMediaRequest(csi: CSI, commit: boolean) {\n if (this.mediaRequestId) {\n this.cancelMediaRequest(false);\n }\n\n if (!this.receiveSlot) {\n throw new Error('sendMediaRequest() called on an invalidated RemoteMedia instance');\n }\n\n this.mediaRequestId = this.mediaRequestManager.addRequest(\n {\n policyInfo: {\n policy: 'receiver-selected',\n csi,\n },\n receiveSlots: [this.receiveSlot],\n codecInfo: this.options.resolution && {\n codec: 'h264',\n maxFs: getMaxFs(this.options.resolution),\n },\n },\n commit\n );\n }\n\n /**\n * @internal\n */\n public cancelMediaRequest(commit: boolean) {\n if (this.mediaRequestId) {\n this.mediaRequestManager.cancelRequest(this.mediaRequestId, commit);\n this.mediaRequestId = undefined;\n }\n }\n\n /**\n * registers event listeners on the receive slot and forwards all the events\n */\n private setupEventListeners() {\n if (this.receiveSlot) {\n const scope = {\n file: 'multistream/remoteMedia',\n function: 'setupEventListeners',\n };\n\n this.receiveSlot.on(ReceiveSlotEvents.SourceUpdate, (data) => {\n this.emit(scope, RemoteMediaEvents.SourceUpdate, data);\n });\n }\n }\n\n /**\n * Getter for mediaType\n */\n public get mediaType(): MediaType {\n return this.receiveSlot?.mediaType;\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.receiveSlot?.memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.receiveSlot?.csi;\n }\n\n /**\n * Getter for source state\n */\n public get sourceState(): StreamState {\n return this.receiveSlot?.sourceState;\n }\n\n /**\n * Getter for remote media stream\n */\n public get stream() {\n return this.receiveSlot?.stream;\n }\n\n /**\n * @internal\n * @returns {ReceiveSlot}\n */\n public getUnderlyingReceiveSlot() {\n return this.receiveSlot;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,YAAA,GAAAF,OAAA;AAAkE,SAAAG,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA,sBANlE;AAQO,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,YAAY,EAAEC,8BAAiB,CAACD,YAAY;EAC5CE,OAAO,EAAE;AACX,CAAC;AAQW;;AAEZ;AACA;AACA;AACA;AACA;AACO,SAASC,QAAQA,CAACC,QAA+B,EAAU;EAChE,IAAIC,KAAK;EAET,QAAQD,QAAQ;IACd,KAAK,WAAW;MACdC,KAAK,GAAG,EAAE;MACV;IACF,KAAK,YAAY;MACfA,KAAK,GAAG,GAAG;MACX;IACF,KAAK,OAAO;MACVA,KAAK,GAAG,GAAG;MACX;IACF,KAAK,QAAQ;MACXA,KAAK,GAAG,IAAI;MACZ;IACF,KAAK,OAAO;MACVA,KAAK,GAAG,IAAI;MACZ;IACF,KAAK,MAAM;MACTA,KAAK,GAAG,IAAI,CAAC,CAAC;MACd;IACF;MACEC,oBAAW,CAACC,MAAM,CAACC,IAAI,mDAAAC,MAAA,CAC6BL,QAAQ,+BAC5D,CAAC;MACDC,KAAK,GAAG,IAAI;EAChB;EAEA,OAAOA,KAAK;AACd;AAQA,IAAIK,kBAAkB,GAAG,CAAC;;AAE1B;AACA;AACA;AACA;AACA;AACA;AALA,IAMaC,WAAW,GAAAZ,OAAA,CAAAY,WAAA,0BAAAC,YAAA;EAAA,IAAAC,UAAA,CAAA/B,OAAA,EAAA6B,WAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAAvC,YAAA,CAAAoC,WAAA;EAWtB;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,YACEI,WAAwB,EACxBC,mBAAwC,EACxCC,OAAiB,EACjB;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAArC,OAAA,QAAA6B,WAAA;IACAO,KAAA,GAAAJ,MAAA,CAAAlB,IAAA;IAAQ,IAAAwB,gBAAA,CAAAtC,OAAA,MAAAuC,uBAAA,CAAAvC,OAAA,EAAAoC,KAAA;IAAA,IAAAE,gBAAA,CAAAtC,OAAA,MAAAuC,uBAAA,CAAAvC,OAAA,EAAAoC,KAAA;IAAA,IAAAE,gBAAA,CAAAtC,OAAA,MAAAuC,uBAAA,CAAAvC,OAAA,EAAAoC,KAAA;IAAA,IAAAE,gBAAA,CAAAtC,OAAA,MAAAuC,uBAAA,CAAAvC,OAAA,EAAAoC,KAAA;IAAA,IAAAE,gBAAA,CAAAtC,OAAA,MAAAuC,uBAAA,CAAAvC,OAAA,EAAAoC,KAAA;IACRR,kBAAkB,IAAI,CAAC;IACvBQ,KAAA,CAAKH,WAAW,GAAGA,WAAW;IAC9BG,KAAA,CAAKF,mBAAmB,GAAGA,mBAAmB;IAC9CE,KAAA,CAAKD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IAC5BC,KAAA,CAAKI,mBAAmB,CAAC,CAAC;IAC1BJ,KAAA,CAAKK,EAAE,QAAAd,MAAA,CAAQC,kBAAkB,OAAAD,MAAA,CAAIS,KAAA,CAAKH,WAAW,CAACQ,EAAE,CAAE;IAAC,OAAAL,KAAA;EAC7D;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAM,aAAA,CAAA1C,OAAA,EAAA6B,WAAA;IAAAc,GAAA;IAAAC,KAAA,EAMA,SAAAC,YAAmBC,KAAK,EAAEC,MAAM,EAAE;MAAA,IAAAC,iBAAA;MAChC;MACA,IAAIC,EAAU;MAEd,IAAIF,MAAM,GAAG,GAAG,EAAE;QAChBE,EAAE,GAAG,EAAE;MACT,CAAC,MAAM,IAAIF,MAAM,GAAG,GAAG,EAAE;QACvBE,EAAE,GAAG,GAAG;MACV,CAAC,MAAM,IAAIF,MAAM,GAAG,GAAG,EAAE;QACvBE,EAAE,GAAG,GAAG;MACV,CAAC,MAAM,IAAIF,MAAM,IAAI,GAAG,EAAE;QACxBE,EAAE,GAAG,IAAI;MACX,CAAC,MAAM;QACLA,EAAE,GAAG,IAAI;MACX;MAEA,CAAAD,iBAAA,OAAI,CAACf,WAAW,cAAAe,iBAAA,uBAAhBA,iBAAA,CAAkBE,QAAQ,CAACD,EAAE,CAAC;IAChC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAN,GAAA;IAAAC,KAAA,EAQA,SAAAO,KAAA,EAA2B;MAAA,IAAAC,kBAAA;MAAA,IAAfC,MAAM,GAAAhD,SAAA,CAAAiD,MAAA,QAAAjD,SAAA,QAAAkD,SAAA,GAAAlD,SAAA,MAAG,IAAI;MACvB,IAAI,CAACmD,kBAAkB,CAACH,MAAM,CAAC;MAC/B,CAAAD,kBAAA,OAAI,CAACnB,WAAW,cAAAmB,kBAAA,uBAAhBA,kBAAA,CAAkBK,kBAAkB,CAAC,CAAC;MACtC,IAAI,CAACxB,WAAW,GAAGsB,SAAS;MAC5B,IAAI,CAACG,IAAI,CACP;QACEC,IAAI,EAAE,yBAAyB;QAC/BC,QAAQ,EAAE;MACZ,CAAC,EACD5C,iBAAiB,CAACI,OAAO,EACzB,CAAC,CACH,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARE;IAAAuB,GAAA;IAAAC,KAAA,EASA,SAAAiB,iBAAwBC,GAAQ,EAAET,MAAe,EAAE;MACjD,IAAI,IAAI,CAACU,cAAc,EAAE;QACvB,IAAI,CAACP,kBAAkB,CAAC,KAAK,CAAC;MAChC;MAEA,IAAI,CAAC,IAAI,CAACvB,WAAW,EAAE;QACrB,MAAM,IAAI+B,KAAK,CAAC,kEAAkE,CAAC;MACrF;MAEA,IAAI,CAACD,cAAc,GAAG,IAAI,CAAC7B,mBAAmB,CAAC+B,UAAU,CACvD;QACEC,UAAU,EAAE;UACVC,MAAM,EAAE,mBAAmB;UAC3BL,GAAG,EAAHA;QACF,CAAC;QACDM,YAAY,EAAE,CAAC,IAAI,CAACnC,WAAW,CAAC;QAChCoC,SAAS,EAAE,IAAI,CAAClC,OAAO,CAACmC,UAAU,IAAI;UACpCC,KAAK,EAAE,MAAM;UACbhD,KAAK,EAAEF,QAAQ,CAAC,IAAI,CAACc,OAAO,CAACmC,UAAU;QACzC;MACF,CAAC,EACDjB,MACF,CAAC;IACH;;IAEA;AACF;AACA;EAFE;IAAAV,GAAA;IAAAC,KAAA,EAGA,SAAAY,mBAA0BH,MAAe,EAAE;MACzC,IAAI,IAAI,CAACU,cAAc,EAAE;QACvB,IAAI,CAAC7B,mBAAmB,CAACsC,aAAa,CAAC,IAAI,CAACT,cAAc,EAAEV,MAAM,CAAC;QACnE,IAAI,CAACU,cAAc,GAAGR,SAAS;MACjC;IACF;;IAEA;AACF;AACA;EAFE;IAAAZ,GAAA;IAAAC,KAAA,EAGA,SAAAJ,oBAAA,EAA8B;MAAA,IAAAiC,MAAA;MAC5B,IAAI,IAAI,CAACxC,WAAW,EAAE;QACpB,IAAMyC,KAAK,GAAG;UACZf,IAAI,EAAE,yBAAyB;UAC/BC,QAAQ,EAAE;QACZ,CAAC;QAED,IAAI,CAAC3B,WAAW,CAAC0C,EAAE,CAACxD,8BAAiB,CAACD,YAAY,EAAE,UAAC0D,IAAI,EAAK;UAC5DH,MAAI,CAACf,IAAI,CAACgB,KAAK,EAAE1D,iBAAiB,CAACE,YAAY,EAAE0D,IAAI,CAAC;QACxD,CAAC,CAAC;MACJ;IACF;;IAEA;AACF;AACA;EAFE;IAAAjC,GAAA;IAAAkC,GAAA,EAGA,SAAAA,IAAA,EAAkC;MAAA,IAAAC,kBAAA;MAChC,QAAAA,kBAAA,GAAO,IAAI,CAAC7C,WAAW,cAAA6C,kBAAA,uBAAhBA,kBAAA,CAAkBC,SAAS;IACpC;;IAEA;AACF;AACA;EAFE;IAAApC,GAAA;IAAAkC,GAAA,EAGA,SAAAA,IAAA,EAAsB;MAAA,IAAAG,kBAAA;MACpB,QAAAA,kBAAA,GAAO,IAAI,CAAC/C,WAAW,cAAA+C,kBAAA,uBAAhBA,kBAAA,CAAkBC,QAAQ;IACnC;;IAEA;AACF;AACA;EAFE;IAAAtC,GAAA;IAAAkC,GAAA,EAGA,SAAAA,IAAA,EAAiB;MAAA,IAAAK,kBAAA;MACf,QAAAA,kBAAA,GAAO,IAAI,CAACjD,WAAW,cAAAiD,kBAAA,uBAAhBA,kBAAA,CAAkBpB,GAAG;IAC9B;;IAEA;AACF;AACA;EAFE;IAAAnB,GAAA;IAAAkC,GAAA,EAGA,SAAAA,IAAA,EAAsC;MAAA,IAAAM,kBAAA;MACpC,QAAAA,kBAAA,GAAO,IAAI,CAAClD,WAAW,cAAAkD,kBAAA,uBAAhBA,kBAAA,CAAkBC,WAAW;IACtC;;IAEA;AACF;AACA;EAFE;IAAAzC,GAAA;IAAAkC,GAAA,EAGA,SAAAA,IAAA,EAAoB;MAAA,IAAAQ,kBAAA;MAClB,QAAAA,kBAAA,GAAO,IAAI,CAACpD,WAAW,cAAAoD,kBAAA,uBAAhBA,kBAAA,CAAkBC,MAAM;IACjC;;IAEA;AACF;AACA;AACA;EAHE;IAAA3C,GAAA;IAAAC,KAAA,EAIA,SAAA2C,yBAAA,EAAkC;MAChC,OAAO,IAAI,CAACtD,WAAW;IACzB;EAAC;EAAA,OAAAJ,WAAA;AAAA,EApL8B2D,oBAAW"}
@@ -1,9 +1,11 @@
1
+ import { NamedMediaGroup } from '@webex/json-multistream';
1
2
  import { RemoteMedia, RemoteVideoResolution } from './remoteMedia';
2
3
  import { MediaRequestManager } from './mediaRequestManager';
3
4
  import { CSI, ReceiveSlot } from './receiveSlot';
4
5
  type Options = {
5
6
  resolution?: RemoteVideoResolution;
6
7
  preferLiveVideo?: boolean;
8
+ namedMediaGroup?: NamedMediaGroup;
7
9
  };
8
10
  export declare class RemoteMediaGroup {
9
11
  private mediaRequestManager;
@@ -10,14 +10,13 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
13
+ var _lodash = require("lodash");
13
14
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
14
15
  var _remoteMedia = require("./remoteMedia");
15
16
  /* eslint-disable valid-jsdoc */
16
17
  /* eslint-disable require-jsdoc */
17
18
  /* eslint-disable import/prefer-default-export */
18
- var RemoteMediaGroup = /*#__PURE__*/function () {
19
- // id of the "active-speaker" media request id
20
-
19
+ var RemoteMediaGroup = exports.RemoteMediaGroup = /*#__PURE__*/function () {
21
20
  function RemoteMediaGroup(mediaRequestManager, receiveSlots, priority, commitMediaRequest) {
22
21
  var _this = this;
23
22
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
@@ -27,6 +26,7 @@ var RemoteMediaGroup = /*#__PURE__*/function () {
27
26
  (0, _defineProperty2.default)(this, "options", void 0);
28
27
  (0, _defineProperty2.default)(this, "unpinnedRemoteMedia", void 0);
29
28
  (0, _defineProperty2.default)(this, "mediaRequestId", void 0);
29
+ // id of the "active-speaker" media request id
30
30
  (0, _defineProperty2.default)(this, "pinnedRemoteMedia", void 0);
31
31
  this.mediaRequestManager = mediaRequestManager;
32
32
  this.priority = priority;
@@ -61,6 +61,52 @@ var RemoteMediaGroup = /*#__PURE__*/function () {
61
61
  return [].concat((0, _toConsumableArray2.default)(this.unpinnedRemoteMedia), (0, _toConsumableArray2.default)(this.pinnedRemoteMedia));
62
62
  }
63
63
 
64
+ /**
65
+ * Sets CSIs for multiple RemoteMedia instances belonging to this RemoteMediaGroup.
66
+ * For each entry in the remoteMediaCsis array:
67
+ * - if csi is specified, the RemoteMedia instance is pinned to that CSI
68
+ * - if csi is undefined, the RemoteMedia instance is unpinned
69
+ * @internal
70
+ */
71
+ }, {
72
+ key: "setActiveSpeakerCsis",
73
+ value: function setActiveSpeakerCsis(remoteMediaCsis) {
74
+ var _this2 = this;
75
+ var commit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
76
+ (0, _lodash.forEach)(remoteMediaCsis, function (_ref) {
77
+ var csi = _ref.csi,
78
+ remoteMedia = _ref.remoteMedia;
79
+ if (csi) {
80
+ if (!(_this2.pinnedRemoteMedia.indexOf(remoteMedia) >= 0)) {
81
+ var unpinId = _this2.unpinnedRemoteMedia.indexOf(remoteMedia);
82
+ if (unpinId >= 0) {
83
+ _this2.unpinnedRemoteMedia.splice(unpinId, 1);
84
+ _this2.pinnedRemoteMedia.push(remoteMedia);
85
+ } else {
86
+ throw new Error("failed to pin a remote media object ".concat(remoteMedia.id, ", because it is not found in this remote media group"));
87
+ }
88
+ }
89
+ remoteMedia.sendMediaRequest(csi, false);
90
+ } else {
91
+ if (!(_this2.unpinnedRemoteMedia.indexOf(remoteMedia) >= 0)) {
92
+ var pinId = _this2.pinnedRemoteMedia.indexOf(remoteMedia);
93
+ if (pinId >= 0) {
94
+ _this2.pinnedRemoteMedia.splice(pinId, 1);
95
+ _this2.unpinnedRemoteMedia.push(remoteMedia);
96
+ } else {
97
+ throw new Error("failed to unpin a remote media object ".concat(remoteMedia.id, ", because it is not found in this remote media group"));
98
+ }
99
+ }
100
+ remoteMedia.cancelMediaRequest(false);
101
+ }
102
+ });
103
+ this.cancelActiveSpeakerMediaRequest(false);
104
+ this.sendActiveSpeakerMediaRequest(false);
105
+ if (commit) {
106
+ this.mediaRequestManager.commit();
107
+ }
108
+ }
109
+
64
110
  /**
65
111
  * Pins a specific remote media instance to a specfic CSI, so the media will
66
112
  * no longer come from active speaker, but from that CSI.
@@ -128,10 +174,23 @@ var RemoteMediaGroup = /*#__PURE__*/function () {
128
174
  }
129
175
  throw new Error("remote media object ".concat(remoteMedia.id, " not found in the group"));
130
176
  }
177
+
178
+ /**
179
+ * setPreferLiveVideo - sets preferLiveVideo to true/false
180
+ * @internal
181
+ */
182
+ }, {
183
+ key: "setPreferLiveVideo",
184
+ value: function setPreferLiveVideo(preferLiveVideo, commit) {
185
+ if (this.options.preferLiveVideo !== preferLiveVideo) {
186
+ this.options.preferLiveVideo = preferLiveVideo;
187
+ this.sendActiveSpeakerMediaRequest(commit);
188
+ }
189
+ }
131
190
  }, {
132
191
  key: "sendActiveSpeakerMediaRequest",
133
192
  value: function sendActiveSpeakerMediaRequest(commit) {
134
- var _this$options;
193
+ var _this$options, _this$options$namedMe, _this$options2;
135
194
  this.cancelActiveSpeakerMediaRequest(false);
136
195
  this.mediaRequestId = this.mediaRequestManager.addRequest({
137
196
  policyInfo: {
@@ -139,7 +198,8 @@ var RemoteMediaGroup = /*#__PURE__*/function () {
139
198
  priority: this.priority,
140
199
  crossPriorityDuplication: false,
141
200
  crossPolicyDuplication: false,
142
- preferLiveVideo: !!((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.preferLiveVideo)
201
+ preferLiveVideo: !!((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.preferLiveVideo),
202
+ namedMediaGroups: (_this$options$namedMe = this.options.namedMediaGroup) !== null && _this$options$namedMe !== void 0 && _this$options$namedMe.value ? [(_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.namedMediaGroup] : undefined
143
203
  },
144
204
  receiveSlots: this.unpinnedRemoteMedia.map(function (remoteMedia) {
145
205
  return remoteMedia.getUnderlyingReceiveSlot();
@@ -159,6 +219,19 @@ var RemoteMediaGroup = /*#__PURE__*/function () {
159
219
  }
160
220
  }
161
221
 
222
+ /**
223
+ * setNamedMediaGroup - sets named media group type and value
224
+ * @internal
225
+ */
226
+ }, {
227
+ key: "setNamedMediaGroup",
228
+ value: function setNamedMediaGroup(namedMediaGroup, commit) {
229
+ if (this.options.namedMediaGroup.value !== namedMediaGroup.value || this.options.namedMediaGroup.type !== namedMediaGroup.type) {
230
+ this.options.namedMediaGroup = namedMediaGroup;
231
+ this.sendActiveSpeakerMediaRequest(commit);
232
+ }
233
+ }
234
+
162
235
  /**
163
236
  * Invalidates the remote media group by clearing the references to the receive slots
164
237
  * used by all remote media from that group and cancelling all media requests.
@@ -205,5 +278,4 @@ var RemoteMediaGroup = /*#__PURE__*/function () {
205
278
  }]);
206
279
  return RemoteMediaGroup;
207
280
  }();
208
- exports.RemoteMediaGroup = RemoteMediaGroup;
209
281
  //# sourceMappingURL=remoteMediaGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RemoteMediaGroup","mediaRequestManager","receiveSlots","priority","commitMediaRequest","options","unpinnedRemoteMedia","map","slot","RemoteMedia","resolution","pinnedRemoteMedia","sendActiveSpeakerMediaRequest","filter","remoteMedia","csi","targetCsi","Error","id","indexOf","LoggerProxy","logger","log","idx","splice","push","cancelActiveSpeakerMediaRequest","sendMediaRequest","commit","cancelMediaRequest","mediaRequestId","addRequest","policyInfo","policy","crossPriorityDuplication","crossPolicyDuplication","preferLiveVideo","getUnderlyingReceiveSlot","codecInfo","codec","maxFs","getMaxFs","cancelRequest","undefined","forEach","stop","includes"],"sources":["remoteMediaGroup.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable require-jsdoc */\n/* eslint-disable import/prefer-default-export */\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {getMaxFs, RemoteMedia, RemoteVideoResolution} from './remoteMedia';\nimport {MediaRequestId, MediaRequestManager} from './mediaRequestManager';\nimport {CSI, ReceiveSlot} from './receiveSlot';\n\ntype Options = {\n resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n preferLiveVideo?: boolean; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n};\n\nexport class RemoteMediaGroup {\n private mediaRequestManager: MediaRequestManager;\n\n private priority: number;\n\n private options: Options;\n\n private unpinnedRemoteMedia: RemoteMedia[];\n\n private mediaRequestId?: MediaRequestId; // id of the \"active-speaker\" media request id\n\n private pinnedRemoteMedia: RemoteMedia[];\n\n constructor(\n mediaRequestManager: MediaRequestManager,\n receiveSlots: ReceiveSlot[],\n priority: number,\n commitMediaRequest: boolean,\n options: Options = {}\n ) {\n this.mediaRequestManager = mediaRequestManager;\n this.priority = priority;\n this.options = options;\n\n this.unpinnedRemoteMedia = receiveSlots.map(\n (slot) =>\n new RemoteMedia(slot, this.mediaRequestManager, {\n resolution: this.options.resolution,\n })\n );\n this.pinnedRemoteMedia = [];\n\n this.sendActiveSpeakerMediaRequest(commitMediaRequest);\n }\n\n /**\n * Gets the array of remote media elements from the group\n *\n * @param {string} filter - 'all' (default) returns both pinned and unpinned\n * @returns {Array<RemoteMedia>}\n */\n public getRemoteMedia(filter: 'all' | 'pinned' | 'unpinned' = 'all') {\n if (filter === 'unpinned') {\n // return a shallow copy so that the client cannot modify this.unpinnedRemoteMedia array\n return [...this.unpinnedRemoteMedia];\n }\n if (filter === 'pinned') {\n // return a shallow copy so that the client cannot modify this.pinnedRemoteMedia array\n return [...this.pinnedRemoteMedia];\n }\n\n return [...this.unpinnedRemoteMedia, ...this.pinnedRemoteMedia];\n }\n\n /**\n * Pins a specific remote media instance to a specfic CSI, so the media will\n * no longer come from active speaker, but from that CSI.\n * If no CSI is given, the current CSI value is used.\n *\n */\n public pin(remoteMedia: RemoteMedia, csi?: CSI): void {\n // if csi is not specified, use the current one\n const targetCsi = csi || remoteMedia.csi;\n\n if (!targetCsi) {\n throw new Error(\n `failed to pin a remote media object ${remoteMedia.id}, because it has no CSI set and no CSI value was given`\n );\n }\n\n if (this.pinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n if (targetCsi === remoteMedia.csi) {\n // remote media already pinned to target CSI, nothing to do\n LoggerProxy.logger.log(\n `RemoteMediaGroup#pin --> remote media ${remoteMedia.id} already pinned`\n );\n\n return;\n }\n } else {\n const idx = this.unpinnedRemoteMedia.indexOf(remoteMedia);\n\n if (idx < 0) {\n throw new Error(\n `failed to pin a remote media object ${remoteMedia.id}, because it is not found in this remote media group`\n );\n }\n\n this.unpinnedRemoteMedia.splice(idx, 1);\n this.pinnedRemoteMedia.push(remoteMedia);\n\n this.cancelActiveSpeakerMediaRequest(false);\n this.sendActiveSpeakerMediaRequest(false);\n }\n\n remoteMedia.sendMediaRequest(targetCsi, false);\n this.mediaRequestManager.commit();\n }\n\n /**\n * Unpins a remote media instance, so that it will again provide media from active speakers\n *\n */\n public unpin(remoteMedia: RemoteMedia) {\n if (this.unpinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n LoggerProxy.logger.log(\n `RemoteMediaGroup#pin --> remote media ${remoteMedia.id} already unpinned`\n );\n\n return;\n }\n const idx = this.pinnedRemoteMedia.indexOf(remoteMedia);\n\n if (idx < 0) {\n throw new Error(\n `failed to unpin a remote media object ${remoteMedia.id}, because it is not found in this remote media group`\n );\n }\n\n this.pinnedRemoteMedia.splice(idx, 1);\n this.unpinnedRemoteMedia.push(remoteMedia);\n\n remoteMedia.cancelMediaRequest(false);\n this.cancelActiveSpeakerMediaRequest(false);\n this.sendActiveSpeakerMediaRequest(false);\n this.mediaRequestManager.commit();\n }\n\n public isPinned(remoteMedia: RemoteMedia) {\n if (this.unpinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n return false;\n }\n if (this.pinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n return true;\n }\n\n throw new Error(`remote media object ${remoteMedia.id} not found in the group`);\n }\n\n private sendActiveSpeakerMediaRequest(commit: boolean) {\n this.cancelActiveSpeakerMediaRequest(false);\n\n this.mediaRequestId = this.mediaRequestManager.addRequest(\n {\n policyInfo: {\n policy: 'active-speaker',\n priority: this.priority,\n crossPriorityDuplication: false,\n crossPolicyDuplication: false,\n preferLiveVideo: !!this.options?.preferLiveVideo,\n },\n receiveSlots: this.unpinnedRemoteMedia.map((remoteMedia) =>\n remoteMedia.getUnderlyingReceiveSlot()\n ) as ReceiveSlot[],\n codecInfo: this.options.resolution && {\n codec: 'h264',\n maxFs: getMaxFs(this.options.resolution),\n },\n },\n commit\n );\n }\n\n private cancelActiveSpeakerMediaRequest(commit: boolean) {\n if (this.mediaRequestId) {\n this.mediaRequestManager.cancelRequest(this.mediaRequestId, commit);\n this.mediaRequestId = undefined;\n }\n }\n\n /**\n * Invalidates the remote media group by clearing the references to the receive slots\n * used by all remote media from that group and cancelling all media requests.\n * After this call the remote media group is unusable.\n *\n * @param{boolean} commit whether to commit the cancellation of media requests\n * @internal\n */\n public stop(commit = true) {\n this.unpinnedRemoteMedia.forEach((remoteMedia) => remoteMedia.stop(false));\n this.pinnedRemoteMedia.forEach((remoteMedia) => remoteMedia.stop(false));\n this.cancelActiveSpeakerMediaRequest(false);\n\n if (commit) {\n this.mediaRequestManager.commit();\n }\n }\n\n /**\n * Checks if a given RemoteMedia instance belongs to this group.\n *\n * @param remoteMedia RemoteMedia instance to check\n * @param filter controls which remote media from the group to check\n * @returns true if remote media is found\n */\n public includes(\n remoteMedia: RemoteMedia,\n filter: 'all' | 'pinned' | 'unpinned' = 'all'\n ): boolean {\n if (filter === 'pinned') {\n return this.pinnedRemoteMedia.includes(remoteMedia);\n }\n if (filter === 'unpinned') {\n return this.unpinnedRemoteMedia.includes(remoteMedia);\n }\n\n return (\n this.unpinnedRemoteMedia.includes(remoteMedia) || this.pinnedRemoteMedia.includes(remoteMedia)\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_loggerProxy","_interopRequireDefault","_remoteMedia","RemoteMediaGroup","exports","mediaRequestManager","receiveSlots","priority","commitMediaRequest","_this","options","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","unpinnedRemoteMedia","map","slot","RemoteMedia","resolution","pinnedRemoteMedia","sendActiveSpeakerMediaRequest","_createClass2","key","value","getRemoteMedia","filter","_toConsumableArray2","concat","setActiveSpeakerCsis","remoteMediaCsis","_this2","commit","forEach","_ref","csi","remoteMedia","indexOf","unpinId","splice","push","Error","id","sendMediaRequest","pinId","cancelMediaRequest","cancelActiveSpeakerMediaRequest","pin","targetCsi","LoggerProxy","logger","log","idx","unpin","isPinned","setPreferLiveVideo","preferLiveVideo","_this$options","_this$options$namedMe","_this$options2","mediaRequestId","addRequest","policyInfo","policy","crossPriorityDuplication","crossPolicyDuplication","namedMediaGroups","namedMediaGroup","getUnderlyingReceiveSlot","codecInfo","codec","maxFs","getMaxFs","cancelRequest","setNamedMediaGroup","type","stop","includes"],"sources":["remoteMediaGroup.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable require-jsdoc */\n/* eslint-disable import/prefer-default-export */\nimport {forEach} from 'lodash';\nimport {NamedMediaGroup} from '@webex/json-multistream';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {getMaxFs, RemoteMedia, RemoteVideoResolution} from './remoteMedia';\nimport {MediaRequestId, MediaRequestManager} from './mediaRequestManager';\nimport {CSI, ReceiveSlot} from './receiveSlot';\n\ntype Options = {\n resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n preferLiveVideo?: boolean; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n namedMediaGroup?: NamedMediaGroup; // applies only to named media groups for audio\n};\n\nexport class RemoteMediaGroup {\n private mediaRequestManager: MediaRequestManager;\n\n private priority: number;\n\n private options: Options;\n\n private unpinnedRemoteMedia: RemoteMedia[];\n\n private mediaRequestId?: MediaRequestId; // id of the \"active-speaker\" media request id\n\n private pinnedRemoteMedia: RemoteMedia[];\n\n constructor(\n mediaRequestManager: MediaRequestManager,\n receiveSlots: ReceiveSlot[],\n priority: number,\n commitMediaRequest: boolean,\n options: Options = {}\n ) {\n this.mediaRequestManager = mediaRequestManager;\n this.priority = priority;\n this.options = options;\n\n this.unpinnedRemoteMedia = receiveSlots.map(\n (slot) =>\n new RemoteMedia(slot, this.mediaRequestManager, {\n resolution: this.options.resolution,\n })\n );\n this.pinnedRemoteMedia = [];\n\n this.sendActiveSpeakerMediaRequest(commitMediaRequest);\n }\n\n /**\n * Gets the array of remote media elements from the group\n *\n * @param {string} filter - 'all' (default) returns both pinned and unpinned\n * @returns {Array<RemoteMedia>}\n */\n public getRemoteMedia(filter: 'all' | 'pinned' | 'unpinned' = 'all') {\n if (filter === 'unpinned') {\n // return a shallow copy so that the client cannot modify this.unpinnedRemoteMedia array\n return [...this.unpinnedRemoteMedia];\n }\n if (filter === 'pinned') {\n // return a shallow copy so that the client cannot modify this.pinnedRemoteMedia array\n return [...this.pinnedRemoteMedia];\n }\n\n return [...this.unpinnedRemoteMedia, ...this.pinnedRemoteMedia];\n }\n\n /**\n * Sets CSIs for multiple RemoteMedia instances belonging to this RemoteMediaGroup.\n * For each entry in the remoteMediaCsis array:\n * - if csi is specified, the RemoteMedia instance is pinned to that CSI\n * - if csi is undefined, the RemoteMedia instance is unpinned\n * @internal\n */\n public setActiveSpeakerCsis(\n remoteMediaCsis: {remoteMedia: RemoteMedia; csi?: number}[],\n commit = true\n ): void {\n forEach(remoteMediaCsis, ({csi, remoteMedia}) => {\n if (csi) {\n if (!(this.pinnedRemoteMedia.indexOf(remoteMedia) >= 0)) {\n const unpinId = this.unpinnedRemoteMedia.indexOf(remoteMedia);\n if (unpinId >= 0) {\n this.unpinnedRemoteMedia.splice(unpinId, 1);\n this.pinnedRemoteMedia.push(remoteMedia);\n } else {\n throw new Error(\n `failed to pin a remote media object ${remoteMedia.id}, because it is not found in this remote media group`\n );\n }\n }\n remoteMedia.sendMediaRequest(csi, false);\n } else {\n if (!(this.unpinnedRemoteMedia.indexOf(remoteMedia) >= 0)) {\n const pinId = this.pinnedRemoteMedia.indexOf(remoteMedia);\n if (pinId >= 0) {\n this.pinnedRemoteMedia.splice(pinId, 1);\n this.unpinnedRemoteMedia.push(remoteMedia);\n } else {\n throw new Error(\n `failed to unpin a remote media object ${remoteMedia.id}, because it is not found in this remote media group`\n );\n }\n }\n remoteMedia.cancelMediaRequest(false);\n }\n });\n this.cancelActiveSpeakerMediaRequest(false);\n this.sendActiveSpeakerMediaRequest(false);\n if (commit) {\n this.mediaRequestManager.commit();\n }\n }\n\n /**\n * Pins a specific remote media instance to a specfic CSI, so the media will\n * no longer come from active speaker, but from that CSI.\n * If no CSI is given, the current CSI value is used.\n *\n */\n public pin(remoteMedia: RemoteMedia, csi?: CSI): void {\n // if csi is not specified, use the current one\n const targetCsi = csi || remoteMedia.csi;\n\n if (!targetCsi) {\n throw new Error(\n `failed to pin a remote media object ${remoteMedia.id}, because it has no CSI set and no CSI value was given`\n );\n }\n\n if (this.pinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n if (targetCsi === remoteMedia.csi) {\n // remote media already pinned to target CSI, nothing to do\n LoggerProxy.logger.log(\n `RemoteMediaGroup#pin --> remote media ${remoteMedia.id} already pinned`\n );\n\n return;\n }\n } else {\n const idx = this.unpinnedRemoteMedia.indexOf(remoteMedia);\n\n if (idx < 0) {\n throw new Error(\n `failed to pin a remote media object ${remoteMedia.id}, because it is not found in this remote media group`\n );\n }\n\n this.unpinnedRemoteMedia.splice(idx, 1);\n this.pinnedRemoteMedia.push(remoteMedia);\n\n this.cancelActiveSpeakerMediaRequest(false);\n this.sendActiveSpeakerMediaRequest(false);\n }\n\n remoteMedia.sendMediaRequest(targetCsi, false);\n this.mediaRequestManager.commit();\n }\n\n /**\n * Unpins a remote media instance, so that it will again provide media from active speakers\n *\n */\n public unpin(remoteMedia: RemoteMedia) {\n if (this.unpinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n LoggerProxy.logger.log(\n `RemoteMediaGroup#pin --> remote media ${remoteMedia.id} already unpinned`\n );\n\n return;\n }\n const idx = this.pinnedRemoteMedia.indexOf(remoteMedia);\n\n if (idx < 0) {\n throw new Error(\n `failed to unpin a remote media object ${remoteMedia.id}, because it is not found in this remote media group`\n );\n }\n\n this.pinnedRemoteMedia.splice(idx, 1);\n this.unpinnedRemoteMedia.push(remoteMedia);\n\n remoteMedia.cancelMediaRequest(false);\n this.cancelActiveSpeakerMediaRequest(false);\n this.sendActiveSpeakerMediaRequest(false);\n this.mediaRequestManager.commit();\n }\n\n public isPinned(remoteMedia: RemoteMedia) {\n if (this.unpinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n return false;\n }\n if (this.pinnedRemoteMedia.indexOf(remoteMedia) >= 0) {\n return true;\n }\n\n throw new Error(`remote media object ${remoteMedia.id} not found in the group`);\n }\n\n /**\n * setPreferLiveVideo - sets preferLiveVideo to true/false\n * @internal\n */\n public setPreferLiveVideo(preferLiveVideo: boolean, commit: boolean) {\n if (this.options.preferLiveVideo !== preferLiveVideo) {\n this.options.preferLiveVideo = preferLiveVideo;\n this.sendActiveSpeakerMediaRequest(commit);\n }\n }\n\n private sendActiveSpeakerMediaRequest(commit: boolean) {\n this.cancelActiveSpeakerMediaRequest(false);\n\n this.mediaRequestId = this.mediaRequestManager.addRequest(\n {\n policyInfo: {\n policy: 'active-speaker',\n priority: this.priority,\n crossPriorityDuplication: false,\n crossPolicyDuplication: false,\n preferLiveVideo: !!this.options?.preferLiveVideo,\n namedMediaGroups: this.options.namedMediaGroup?.value\n ? [this.options?.namedMediaGroup]\n : undefined,\n },\n receiveSlots: this.unpinnedRemoteMedia.map((remoteMedia) =>\n remoteMedia.getUnderlyingReceiveSlot()\n ) as ReceiveSlot[],\n codecInfo: this.options.resolution && {\n codec: 'h264',\n maxFs: getMaxFs(this.options.resolution),\n },\n },\n commit\n );\n }\n\n private cancelActiveSpeakerMediaRequest(commit: boolean) {\n if (this.mediaRequestId) {\n this.mediaRequestManager.cancelRequest(this.mediaRequestId, commit);\n this.mediaRequestId = undefined;\n }\n }\n\n /**\n * setNamedMediaGroup - sets named media group type and value\n * @internal\n */\n public setNamedMediaGroup(namedMediaGroup: NamedMediaGroup, commit: boolean) {\n if (\n this.options.namedMediaGroup.value !== namedMediaGroup.value ||\n this.options.namedMediaGroup.type !== namedMediaGroup.type\n ) {\n this.options.namedMediaGroup = namedMediaGroup;\n this.sendActiveSpeakerMediaRequest(commit);\n }\n }\n\n /**\n * Invalidates the remote media group by clearing the references to the receive slots\n * used by all remote media from that group and cancelling all media requests.\n * After this call the remote media group is unusable.\n *\n * @param{boolean} commit whether to commit the cancellation of media requests\n * @internal\n */\n public stop(commit = true) {\n this.unpinnedRemoteMedia.forEach((remoteMedia) => remoteMedia.stop(false));\n this.pinnedRemoteMedia.forEach((remoteMedia) => remoteMedia.stop(false));\n this.cancelActiveSpeakerMediaRequest(false);\n\n if (commit) {\n this.mediaRequestManager.commit();\n }\n }\n\n /**\n * Checks if a given RemoteMedia instance belongs to this group.\n *\n * @param remoteMedia RemoteMedia instance to check\n * @param filter controls which remote media from the group to check\n * @returns true if remote media is found\n */\n public includes(\n remoteMedia: RemoteMedia,\n filter: 'all' | 'pinned' | 'unpinned' = 'all'\n ): boolean {\n if (filter === 'pinned') {\n return this.pinnedRemoteMedia.includes(remoteMedia);\n }\n if (filter === 'unpinned') {\n return this.unpinnedRemoteMedia.includes(remoteMedia);\n }\n\n return (\n this.unpinnedRemoteMedia.includes(remoteMedia) || this.pinnedRemoteMedia.includes(remoteMedia)\n );\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { EventMap } from 'typed-emitter';
2
+ import { MediaType } from '@webex/internal-media-core';
3
+ import { NamedMediaGroup } from '@webex/json-multistream';
2
4
  import EventsScope from '../common/events/events-scope';
3
5
  import { RemoteMedia, RemoteVideoResolution } from './remoteMedia';
4
6
  import { CSI } from './receiveSlot';
@@ -39,6 +41,7 @@ export interface Configuration {
39
41
  [key: LayoutId]: VideoLayout;
40
42
  };
41
43
  };
44
+ namedMediaGroup?: NamedMediaGroup;
42
45
  }
43
46
  /**
44
47
  * Default configuration:
@@ -49,6 +52,7 @@ export interface Configuration {
49
52
  export declare const DefaultConfiguration: Configuration;
50
53
  export declare enum Event {
51
54
  AudioCreated = "AudioCreated",
55
+ InterpretationAudioCreated = "InterpretationAudioCreated",
52
56
  ScreenShareAudioCreated = "ScreenShareAudioCreated",
53
57
  VideoLayoutChanged = "VideoLayoutChanged"
54
58
  }
@@ -139,10 +143,36 @@ export declare class RemoteMediaManager extends EventsScope {
139
143
  * @returns {LayoutId}
140
144
  */
141
145
  getLayoutId(): LayoutId | undefined;
146
+ /**
147
+ * sets the preferLiveVideo
148
+ */
149
+ setPreferLiveVideo(preferLiveVideo: boolean): void;
150
+ /**
151
+ * Sets CSIs for multiple RemoteMedia instances belonging to RemoteMediaGroup.
152
+ * For each entry in the remoteMediaCsis array:
153
+ * - if csi is specified, the RemoteMedia instance is pinned to that CSI
154
+ * - if csi is undefined, the RemoteMedia instance is unpinned
155
+ */
156
+ setActiveSpeakerCsis(remoteMediaCsis: {
157
+ remoteMedia: RemoteMedia;
158
+ csi?: number;
159
+ }[]): void;
160
+ /**
161
+ * Sets which named media group need receiving
162
+ * @param {MediaType} mediaType of the stream
163
+ * @param {number} languageCode of the stream. If the languageId is 0, the named media group request will be canceled,
164
+ * and only receive the main audio stream.
165
+ * @returns {void}
166
+ */
167
+ setReceiveNamedMediaGroup(mediaType: MediaType, languageId: number): Promise<void>;
142
168
  /**
143
169
  * Creates the audio slots
144
170
  */
145
171
  private createAudioMedia;
172
+ /**
173
+ * Creates the audio slots for named media
174
+ */
175
+ private createInterpretationAudioMedia;
146
176
  /**
147
177
  * Creates receive slots required for receiving screen share audio and video
148
178
  */
@@ -185,7 +215,15 @@ export declare class RemoteMediaManager extends EventsScope {
185
215
  /**
186
216
  * Logs the state of the receive slots
187
217
  */
188
- private logReceieveSlots;
218
+ private logMainVideoReceiveSlots;
219
+ /** logs main audio slots */
220
+ private logMainAudioReceiveSlots;
221
+ /** logs slides video slots */
222
+ private logSlidesVideoReceiveSlots;
223
+ /** logs slides audio slots */
224
+ private logSlidesAudioReceiveSlots;
225
+ /** Logs all current receive slots */
226
+ logAllReceiveSlots(): void;
189
227
  /**
190
228
  * Makes sure we have the right number of receive slots created for the current layout
191
229
  * and allocates them to the right video panes / pane groups