@webex/plugin-meetings 3.0.0-beta.5 → 3.0.0-beta.51

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 (498) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +137 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +579 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +48 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +6 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +122 -49
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +16 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +240 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +39 -0
  72. package/dist/controls-options-manager/util.js.map +1 -0
  73. package/dist/index.js +11 -18
  74. package/dist/index.js.map +1 -1
  75. package/dist/locus-info/controlsUtils.js +17 -30
  76. package/dist/locus-info/controlsUtils.js.map +1 -1
  77. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  78. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  79. package/dist/locus-info/fullState.js +0 -15
  80. package/dist/locus-info/fullState.js.map +1 -1
  81. package/dist/locus-info/hostUtils.js +4 -12
  82. package/dist/locus-info/hostUtils.js.map +1 -1
  83. package/dist/locus-info/index.js +220 -192
  84. package/dist/locus-info/index.js.map +1 -1
  85. package/dist/locus-info/infoUtils.js +3 -37
  86. package/dist/locus-info/infoUtils.js.map +1 -1
  87. package/dist/locus-info/mediaSharesUtils.js +12 -38
  88. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  89. package/dist/locus-info/parser.js +92 -118
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +61 -90
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +56 -146
  94. package/dist/media/index.js.map +1 -1
  95. package/dist/media/properties.js +83 -117
  96. package/dist/media/properties.js.map +1 -1
  97. package/dist/media/util.js +2 -9
  98. package/dist/media/util.js.map +1 -1
  99. package/dist/mediaQualityMetrics/config.js +505 -495
  100. package/dist/mediaQualityMetrics/config.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +25 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2205 -2211
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +102 -100
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +308 -264
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +60 -217
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +193 -268
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +137 -228
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +5 -20
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +490 -560
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +24 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +116 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +78 -86
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/util.js +31 -68
  138. package/dist/member/util.js.map +1 -1
  139. package/dist/members/collection.js +3 -12
  140. package/dist/members/collection.js.map +1 -1
  141. package/dist/members/index.js +110 -203
  142. package/dist/members/index.js.map +1 -1
  143. package/dist/members/request.js +16 -39
  144. package/dist/members/request.js.map +1 -1
  145. package/dist/members/util.js +42 -50
  146. package/dist/members/util.js.map +1 -1
  147. package/dist/metrics/config.js +1 -13
  148. package/dist/metrics/config.js.map +1 -1
  149. package/dist/metrics/constants.js +1 -6
  150. package/dist/metrics/constants.js.map +1 -1
  151. package/dist/metrics/index.js +54 -156
  152. package/dist/metrics/index.js.map +1 -1
  153. package/dist/multistream/mediaRequestManager.js +74 -52
  154. package/dist/multistream/mediaRequestManager.js.map +1 -1
  155. package/dist/multistream/receiveSlot.js +48 -65
  156. package/dist/multistream/receiveSlot.js.map +1 -1
  157. package/dist/multistream/receiveSlotManager.js +58 -93
  158. package/dist/multistream/receiveSlotManager.js.map +1 -1
  159. package/dist/multistream/remoteMedia.js +60 -76
  160. package/dist/multistream/remoteMedia.js.map +1 -1
  161. package/dist/multistream/remoteMediaGroup.js +6 -40
  162. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  163. package/dist/multistream/remoteMediaManager.js +446 -442
  164. package/dist/multistream/remoteMediaManager.js.map +1 -1
  165. package/dist/networkQualityMonitor/index.js +40 -59
  166. package/dist/networkQualityMonitor/index.js.map +1 -1
  167. package/dist/personal-meeting-room/index.js +21 -45
  168. package/dist/personal-meeting-room/index.js.map +1 -1
  169. package/dist/personal-meeting-room/request.js +1 -31
  170. package/dist/personal-meeting-room/request.js.map +1 -1
  171. package/dist/personal-meeting-room/util.js +0 -13
  172. package/dist/personal-meeting-room/util.js.map +1 -1
  173. package/dist/reachability/index.js +192 -191
  174. package/dist/reachability/index.js.map +1 -1
  175. package/dist/reachability/request.js +15 -23
  176. package/dist/reachability/request.js.map +1 -1
  177. package/dist/reactions/constants.js +13 -0
  178. package/dist/reactions/constants.js.map +1 -0
  179. package/dist/reactions/reactions.js +109 -0
  180. package/dist/reactions/reactions.js.map +1 -0
  181. package/dist/reactions/reactions.type.js +36 -0
  182. package/dist/reactions/reactions.type.js.map +1 -0
  183. package/dist/reconnection-manager/index.js +322 -456
  184. package/dist/reconnection-manager/index.js.map +1 -1
  185. package/dist/recording-controller/enums.js +17 -0
  186. package/dist/recording-controller/enums.js.map +1 -0
  187. package/dist/recording-controller/index.js +343 -0
  188. package/dist/recording-controller/index.js.map +1 -0
  189. package/dist/recording-controller/util.js +63 -0
  190. package/dist/recording-controller/util.js.map +1 -0
  191. package/dist/roap/index.js +48 -70
  192. package/dist/roap/index.js.map +1 -1
  193. package/dist/roap/request.js +143 -131
  194. package/dist/roap/request.js.map +1 -1
  195. package/dist/roap/turnDiscovery.js +91 -98
  196. package/dist/roap/turnDiscovery.js.map +1 -1
  197. package/dist/statsAnalyzer/global.js +1 -95
  198. package/dist/statsAnalyzer/global.js.map +1 -1
  199. package/dist/statsAnalyzer/index.js +372 -455
  200. package/dist/statsAnalyzer/index.js.map +1 -1
  201. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  202. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  203. package/dist/transcription/index.js +22 -47
  204. package/dist/transcription/index.js.map +1 -1
  205. package/dist/types/breakouts/breakout.d.ts +8 -0
  206. package/dist/types/breakouts/collection.d.ts +5 -0
  207. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  208. package/dist/types/breakouts/index.d.ts +5 -0
  209. package/dist/types/breakouts/request.d.ts +22 -0
  210. package/dist/types/breakouts/utils.d.ts +8 -0
  211. package/dist/types/common/browser-detection.d.ts +9 -0
  212. package/dist/types/common/collection.d.ts +48 -0
  213. package/dist/types/common/config.d.ts +2 -0
  214. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  215. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  216. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  217. package/dist/types/common/errors/media.d.ts +15 -0
  218. package/dist/types/common/errors/parameter.d.ts +15 -0
  219. package/dist/types/common/errors/password-error.d.ts +15 -0
  220. package/dist/types/common/errors/permission.d.ts +14 -0
  221. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  222. package/dist/types/common/errors/reconnection.d.ts +15 -0
  223. package/dist/types/common/errors/stats.d.ts +15 -0
  224. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  225. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  226. package/dist/types/common/events/events-scope.d.ts +17 -0
  227. package/dist/types/common/events/events.d.ts +12 -0
  228. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  229. package/dist/types/common/events/util.d.ts +2 -0
  230. package/dist/types/common/logs/logger-config.d.ts +2 -0
  231. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  232. package/dist/types/common/logs/request.d.ts +34 -0
  233. package/dist/types/common/queue.d.ts +32 -0
  234. package/dist/types/config.d.ts +77 -0
  235. package/dist/types/constants.d.ts +928 -0
  236. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  237. package/dist/types/controls-options-manager/enums.d.ts +6 -0
  238. package/dist/types/controls-options-manager/index.d.ts +128 -0
  239. package/dist/types/controls-options-manager/util.d.ts +9 -0
  240. package/dist/types/index.d.ts +6 -0
  241. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  242. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  243. package/dist/types/locus-info/fullState.d.ts +2 -0
  244. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  245. package/dist/types/locus-info/index.d.ts +276 -0
  246. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  247. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  248. package/dist/types/locus-info/parser.d.ts +212 -0
  249. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  250. package/dist/types/media/index.d.ts +32 -0
  251. package/dist/types/media/properties.d.ts +108 -0
  252. package/dist/types/media/util.d.ts +2 -0
  253. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  254. package/dist/types/meeting/in-meeting-actions.d.ts +95 -0
  255. package/dist/types/meeting/index.d.ts +1719 -0
  256. package/dist/types/meeting/muteState.d.ts +132 -0
  257. package/dist/types/meeting/request.d.ts +271 -0
  258. package/dist/types/meeting/request.type.d.ts +11 -0
  259. package/dist/types/meeting/state.d.ts +9 -0
  260. package/dist/types/meeting/util.d.ts +2 -0
  261. package/dist/types/meeting-info/collection.d.ts +20 -0
  262. package/dist/types/meeting-info/index.d.ts +57 -0
  263. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  264. package/dist/types/meeting-info/request.d.ts +22 -0
  265. package/dist/types/meeting-info/util.d.ts +2 -0
  266. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  267. package/dist/types/meetings/collection.d.ts +23 -0
  268. package/dist/types/meetings/index.d.ts +297 -0
  269. package/dist/types/meetings/request.d.ts +27 -0
  270. package/dist/types/meetings/util.d.ts +18 -0
  271. package/dist/types/member/index.d.ts +146 -0
  272. package/dist/types/member/util.d.ts +2 -0
  273. package/dist/types/members/collection.d.ts +24 -0
  274. package/dist/types/members/index.d.ts +325 -0
  275. package/dist/types/members/request.d.ts +50 -0
  276. package/dist/types/members/util.d.ts +2 -0
  277. package/dist/types/metrics/config.d.ts +169 -0
  278. package/dist/types/metrics/constants.d.ts +53 -0
  279. package/dist/types/metrics/index.d.ts +152 -0
  280. package/dist/types/multistream/mediaRequestManager.d.ts +51 -0
  281. package/dist/types/multistream/receiveSlot.d.ts +64 -0
  282. package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
  283. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  284. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  285. package/dist/types/multistream/remoteMediaManager.d.ts +259 -0
  286. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  287. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  288. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  289. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  290. package/dist/types/reachability/index.d.ts +152 -0
  291. package/dist/types/reachability/request.d.ts +37 -0
  292. package/dist/types/reactions/constants.d.ts +3 -0
  293. package/dist/types/reactions/reactions.d.ts +4 -0
  294. package/dist/types/reactions/reactions.type.d.ts +52 -0
  295. package/dist/types/reconnection-manager/index.d.ts +117 -0
  296. package/dist/types/recording-controller/enums.d.ts +7 -0
  297. package/dist/types/recording-controller/index.d.ts +193 -0
  298. package/dist/types/recording-controller/util.d.ts +13 -0
  299. package/dist/types/roap/index.d.ts +77 -0
  300. package/dist/types/roap/request.d.ts +38 -0
  301. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  302. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  303. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  304. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  305. package/dist/types/transcription/index.d.ts +64 -0
  306. package/internal-README.md +7 -6
  307. package/package.json +27 -21
  308. package/src/breakouts/README.md +199 -0
  309. package/src/breakouts/breakout.ts +129 -0
  310. package/src/breakouts/collection.ts +19 -0
  311. package/src/breakouts/edit-lock-error.ts +25 -0
  312. package/src/breakouts/index.ts +539 -0
  313. package/src/breakouts/request.ts +55 -0
  314. package/src/breakouts/utils.ts +39 -0
  315. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  316. package/src/common/collection.ts +9 -7
  317. package/src/common/{config.js → config.ts} +1 -1
  318. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  319. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  320. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  321. package/src/common/errors/{media.js → media.ts} +11 -7
  322. package/src/common/errors/parameter.ts +11 -7
  323. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  324. package/src/common/errors/{permission.js → permission.ts} +10 -6
  325. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  326. package/src/common/errors/{stats.js → stats.ts} +11 -7
  327. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  328. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  329. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  330. package/src/common/events/{events.js → events.ts} +5 -1
  331. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  332. package/src/common/events/{util.js → util.ts} +2 -3
  333. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  334. package/src/common/logs/logger-proxy.ts +44 -0
  335. package/src/common/logs/{request.js → request.ts} +22 -9
  336. package/src/common/queue.ts +1 -2
  337. package/src/{config.js → config.ts} +17 -12
  338. package/src/constants.ts +76 -5
  339. package/src/controls-options-manager/constants.ts +5 -0
  340. package/src/controls-options-manager/enums.ts +7 -0
  341. package/src/controls-options-manager/index.ts +218 -0
  342. package/src/controls-options-manager/util.ts +30 -0
  343. package/src/index.js +4 -1
  344. package/src/locus-info/controlsUtils.ts +122 -0
  345. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  346. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  347. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  348. package/src/locus-info/{index.js → index.ts} +192 -67
  349. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  350. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  351. package/src/locus-info/{parser.js → parser.ts} +67 -79
  352. package/src/locus-info/{selfUtils.js → selfUtils.ts} +157 -68
  353. package/src/media/{index.js → index.ts} +179 -176
  354. package/src/media/{properties.js → properties.ts} +60 -37
  355. package/src/media/{util.js → util.ts} +2 -2
  356. package/src/mediaQualityMetrics/config.ts +384 -0
  357. package/src/meeting/in-meeting-actions.ts +55 -3
  358. package/src/meeting/{index.js → index.ts} +2590 -1576
  359. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  360. package/src/meeting/{request.js → request.ts} +326 -142
  361. package/src/meeting/request.type.ts +13 -0
  362. package/src/meeting/{state.js → state.ts} +50 -35
  363. package/src/meeting/{util.js → util.ts} +128 -115
  364. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  365. package/src/meeting-info/{index.js → index.ts} +42 -36
  366. package/src/meeting-info/meeting-info-v2.ts +273 -0
  367. package/src/meeting-info/{request.js → request.ts} +14 -4
  368. package/src/meeting-info/{util.js → util.ts} +60 -51
  369. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  370. package/src/meetings/{collection.js → collection.ts} +6 -3
  371. package/src/meetings/index.ts +1159 -0
  372. package/src/meetings/{request.js → request.ts} +32 -25
  373. package/src/meetings/{util.js → util.ts} +58 -32
  374. package/src/member/{index.js → index.ts} +102 -56
  375. package/src/member/{util.js → util.ts} +52 -25
  376. package/src/members/{collection.js → collection.ts} +2 -2
  377. package/src/members/{index.js → index.ts} +231 -144
  378. package/src/members/{request.js → request.ts} +60 -16
  379. package/src/members/{util.js → util.ts} +69 -54
  380. package/src/metrics/{config.js → config.ts} +253 -92
  381. package/src/metrics/{constants.js → constants.ts} +0 -6
  382. package/src/metrics/{index.js → index.ts} +105 -94
  383. package/src/multistream/mediaRequestManager.ts +101 -39
  384. package/src/multistream/receiveSlot.ts +62 -26
  385. package/src/multistream/receiveSlotManager.ts +50 -38
  386. package/src/multistream/remoteMedia.ts +38 -5
  387. package/src/multistream/remoteMediaGroup.ts +4 -3
  388. package/src/multistream/remoteMediaManager.ts +209 -62
  389. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  390. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  391. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  392. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  393. package/src/reachability/{index.js → index.ts} +157 -94
  394. package/src/reachability/request.ts +46 -35
  395. package/src/reactions/constants.ts +4 -0
  396. package/src/reactions/reactions.ts +104 -0
  397. package/src/reactions/reactions.type.ts +62 -0
  398. package/src/reconnection-manager/{index.js → index.ts} +196 -103
  399. package/src/recording-controller/enums.ts +8 -0
  400. package/src/recording-controller/index.ts +315 -0
  401. package/src/recording-controller/util.ts +58 -0
  402. package/src/roap/{index.js → index.ts} +77 -60
  403. package/src/roap/request.ts +172 -0
  404. package/src/roap/turnDiscovery.ts +81 -41
  405. package/src/statsAnalyzer/global.ts +37 -0
  406. package/src/statsAnalyzer/index.ts +1242 -0
  407. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  408. package/src/transcription/{index.js → index.ts} +46 -39
  409. package/test/integration/spec/converged-space-meetings.js +176 -0
  410. package/test/integration/spec/journey.js +665 -464
  411. package/test/integration/spec/space-meeting.js +320 -206
  412. package/test/integration/spec/transcription.js +7 -8
  413. package/test/unit/spec/breakouts/breakout.ts +146 -0
  414. package/test/unit/spec/breakouts/collection.ts +15 -0
  415. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  416. package/test/unit/spec/breakouts/index.ts +764 -0
  417. package/test/unit/spec/breakouts/request.ts +104 -0
  418. package/test/unit/spec/breakouts/utils.js +47 -0
  419. package/test/unit/spec/common/browser-detection.js +9 -28
  420. package/test/unit/spec/controls-options-manager/index.js +180 -0
  421. package/test/unit/spec/controls-options-manager/util.js +86 -0
  422. package/test/unit/spec/fixture/locus.js +92 -90
  423. package/test/unit/spec/locus-info/controlsUtils.js +112 -34
  424. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  425. package/test/unit/spec/locus-info/index.js +219 -2
  426. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  427. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  428. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  429. package/test/unit/spec/locus-info/parser.js +3 -9
  430. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  431. package/test/unit/spec/locus-info/selfUtils.js +128 -12
  432. package/test/unit/spec/media/index.ts +72 -8
  433. package/test/unit/spec/media/properties.ts +9 -9
  434. package/test/unit/spec/meeting/in-meeting-actions.ts +23 -2
  435. package/test/unit/spec/meeting/index.js +2490 -802
  436. package/test/unit/spec/meeting/muteState.js +146 -61
  437. package/test/unit/spec/meeting/request.js +141 -43
  438. package/test/unit/spec/meeting/utils.js +134 -164
  439. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  440. package/test/unit/spec/meeting-info/request.js +7 -9
  441. package/test/unit/spec/meeting-info/util.js +11 -12
  442. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  443. package/test/unit/spec/meetings/collection.js +1 -1
  444. package/test/unit/spec/meetings/index.js +439 -257
  445. package/test/unit/spec/meetings/utils.js +14 -12
  446. package/test/unit/spec/member/index.js +0 -1
  447. package/test/unit/spec/member/util.js +31 -7
  448. package/test/unit/spec/members/index.js +179 -54
  449. package/test/unit/spec/members/request.js +29 -20
  450. package/test/unit/spec/members/utils.js +119 -4
  451. package/test/unit/spec/metrics/index.js +16 -21
  452. package/test/unit/spec/multistream/mediaRequestManager.ts +318 -64
  453. package/test/unit/spec/multistream/receiveSlot.ts +68 -17
  454. package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
  455. package/test/unit/spec/multistream/remoteMedia.ts +38 -2
  456. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  457. package/test/unit/spec/multistream/remoteMediaManager.ts +539 -65
  458. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  459. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  460. package/test/unit/spec/reachability/index.ts +176 -27
  461. package/test/unit/spec/reachability/request.js +66 -0
  462. package/test/unit/spec/reconnection-manager/index.js +58 -30
  463. package/test/unit/spec/recording-controller/index.js +231 -0
  464. package/test/unit/spec/recording-controller/util.js +102 -0
  465. package/test/unit/spec/roap/index.ts +12 -8
  466. package/test/unit/spec/roap/request.ts +217 -0
  467. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  468. package/test/unit/spec/stats-analyzer/index.js +108 -57
  469. package/test/utils/cmr.js +44 -42
  470. package/test/utils/constants.js +9 -0
  471. package/test/utils/testUtils.js +98 -77
  472. package/test/utils/webex-config.js +22 -18
  473. package/test/utils/webex-test-users.js +57 -50
  474. package/tsconfig.json +6 -0
  475. package/dist/media/internal-media-core-wrapper.js +0 -22
  476. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  477. package/dist/meeting/effectsState.js +0 -327
  478. package/dist/meeting/effectsState.js.map +0 -1
  479. package/dist/multistream/multistreamMedia.js +0 -116
  480. package/dist/multistream/multistreamMedia.js.map +0 -1
  481. package/dist/peer-connection-manager/util.js +0 -124
  482. package/dist/peer-connection-manager/util.js.map +0 -1
  483. package/src/common/logs/logger-proxy.js +0 -33
  484. package/src/locus-info/controlsUtils.js +0 -102
  485. package/src/media/internal-media-core-wrapper.ts +0 -9
  486. package/src/mediaQualityMetrics/config.js +0 -382
  487. package/src/meeting/effectsState.js +0 -205
  488. package/src/meeting-info/meeting-info-v2.js +0 -255
  489. package/src/meetings/index.js +0 -1015
  490. package/src/multistream/multistreamMedia.ts +0 -92
  491. package/src/peer-connection-manager/util.ts +0 -117
  492. package/src/roap/request.js +0 -127
  493. package/src/statsAnalyzer/global.js +0 -133
  494. package/src/statsAnalyzer/index.js +0 -1006
  495. package/src/statsAnalyzer/mqaUtil.js +0 -173
  496. package/test/unit/spec/meeting/effectsState.js +0 -291
  497. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  498. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,13 +1,20 @@
1
- import {MediaConnection as MC} from '@webex/internal-media-core';
1
+ /* eslint-disable valid-jsdoc */
2
+ import {
3
+ MediaType,
4
+ ReceiveSlot as WcmeReceiveSlot,
5
+ ReceiveSlotEvents as WcmeReceiveSlotEvents,
6
+ SourceState,
7
+ } from '@webex/internal-media-core';
2
8
 
3
9
  import LoggerProxy from '../common/logs/logger-proxy';
4
10
  import EventsScope from '../common/events/events-scope';
5
11
 
6
12
  export const ReceiveSlotEvents = {
7
13
  SourceUpdate: 'sourceUpdate',
14
+ MaxFsUpdate: 'maxFsUpdate',
8
15
  };
9
16
 
10
- export type SourceState = MC.SourceState;
17
+ export type {SourceState} from '@webex/internal-media-core';
11
18
  export type CSI = number;
12
19
  export type MemberId = string;
13
20
  export type ReceiveSlotId = string;
@@ -21,31 +28,31 @@ export type FindMemberIdCallback = (csi: CSI) => MemberId | undefined;
21
28
  * for example some participant's main video or audio
22
29
  */
23
30
  export class ReceiveSlot extends EventsScope {
24
- private readonly mcReceiveSlot: MC.ReceiveSlot;
31
+ private readonly mcReceiveSlot: WcmeReceiveSlot;
25
32
 
26
33
  private readonly findMemberIdCallback: FindMemberIdCallback;
27
34
 
28
35
  public readonly id: ReceiveSlotId;
29
36
 
30
- public readonly mediaType: MC.MediaType;
37
+ public readonly mediaType: MediaType;
31
38
 
32
39
  #memberId?: MemberId;
33
40
 
34
41
  #csi?: CSI;
35
42
 
36
- #sourceState: MC.SourceState;
43
+ #sourceState: SourceState;
37
44
 
38
45
  /**
39
46
  * constructor - don't use it directly, you should always use meeting.receiveSlotManager.allocateSlot()
40
47
  * to create any receive slots
41
48
  *
42
- * @param {MC.MediaType} mediaType
43
- * @param {MC.ReceiveSlot} mcReceiveSlot
49
+ * @param {MediaType} mediaType
50
+ * @param {ReceiveSlot} mcReceiveSlot
44
51
  * @param {FindMemberIdCallback} findMemberIdCallback callback for finding memberId for given CSI
45
52
  */
46
53
  constructor(
47
- mediaType: MC.MediaType,
48
- mcReceiveSlot: MC.ReceiveSlot,
54
+ mediaType: MediaType,
55
+ mcReceiveSlot: WcmeReceiveSlot,
49
56
  findMemberIdCallback: FindMemberIdCallback
50
57
  ) {
51
58
  super();
@@ -75,6 +82,25 @@ export class ReceiveSlot extends EventsScope {
75
82
  return this.#csi;
76
83
  }
77
84
 
85
+ /**
86
+ * Set the max frame size for this slot
87
+ * @param newFs frame size
88
+ */
89
+ public setMaxFs(newFs) {
90
+ // emit event for media request manager to listen to
91
+
92
+ this.emit(
93
+ {
94
+ file: 'meeting/receiveSlot',
95
+ function: 'findMemberId',
96
+ },
97
+ ReceiveSlotEvents.MaxFsUpdate,
98
+ {
99
+ maxFs: newFs,
100
+ }
101
+ );
102
+ }
103
+
78
104
  /**
79
105
  * Getter for sourceState
80
106
  */
@@ -85,15 +111,15 @@ export class ReceiveSlot extends EventsScope {
85
111
  /**
86
112
  * registers event handlers with the underlying ReceiveSlot
87
113
  */
88
- setupEventListeners() {
114
+ private setupEventListeners() {
89
115
  const scope = {
90
116
  file: 'meeting/receiveSlot',
91
117
  function: 'setupEventListeners',
92
118
  };
93
119
 
94
120
  this.mcReceiveSlot.on(
95
- MC.ReceiveSlotEvents.SourceUpdate,
96
- (state: MC.SourceState, csi?: number) => {
121
+ WcmeReceiveSlotEvents.SourceUpdate,
122
+ (state: SourceState, csi?: number) => {
97
123
  LoggerProxy.logger.log(
98
124
  `ReceiveSlot#setupEventListeners --> got source update on receive slot ${this.id}, mediaType=${this.mediaType}, csi=${csi}, state=${state}`
99
125
  );
@@ -110,6 +136,29 @@ export class ReceiveSlot extends EventsScope {
110
136
  );
111
137
  }
112
138
 
139
+ /** Tries to find the member id for this receive slot if it hasn't got one */
140
+ public findMemberId() {
141
+ if (this.#memberId === undefined && this.#csi) {
142
+ this.#memberId = this.findMemberIdCallback(this.#csi);
143
+
144
+ if (this.#memberId) {
145
+ // if we found the memberId, simulate source update so that the client app knows that something's changed
146
+ this.emit(
147
+ {
148
+ file: 'meeting/receiveSlot',
149
+ function: 'findMemberId',
150
+ },
151
+ ReceiveSlotEvents.SourceUpdate,
152
+ {
153
+ state: this.#sourceState,
154
+ csi: this.#csi,
155
+ memberId: this.#memberId,
156
+ }
157
+ );
158
+ }
159
+ }
160
+ }
161
+
113
162
  /**
114
163
  * The MediaStream object associated with this slot.
115
164
  *
@@ -122,20 +171,7 @@ export class ReceiveSlot extends EventsScope {
122
171
  /**
123
172
  * The underlying WCME receive slot
124
173
  */
125
- get wcmeReceiveSlot(): MC.ReceiveSlot {
174
+ get wcmeReceiveSlot(): WcmeReceiveSlot {
126
175
  return this.mcReceiveSlot;
127
176
  }
128
-
129
- /**
130
- * Resets the source state to the default 'no source' value.
131
- * This function should be called on receive slots that are
132
- * no longer part of a media request. It's needed because WCME
133
- * does not send any more events on such slots, so the sourceState
134
- * value would not represent the truth anymore.
135
- */
136
- public resetSourceState() {
137
- this.#sourceState = 'no source';
138
- this.#csi = undefined;
139
- this.#memberId = undefined;
140
- }
141
177
  }
@@ -1,53 +1,58 @@
1
+ /* eslint-disable valid-jsdoc */
1
2
  /* eslint-disable import/prefer-default-export */
2
- import {MediaConnection as MC} from '@webex/internal-media-core';
3
-
3
+ import {MediaType, ReceiveSlot as WcmeReceiveSlot} from '@webex/internal-media-core';
4
4
  import LoggerProxy from '../common/logs/logger-proxy';
5
- import Meeting from '../meeting';
6
5
 
7
- import {CSI, ReceiveSlot} from './receiveSlot';
6
+ import {FindMemberIdCallback, ReceiveSlot} from './receiveSlot';
7
+
8
+ export type CreateSlotCallback = (mediaType: MediaType) => Promise<WcmeReceiveSlot>;
9
+
10
+ export type {CSI, FindMemberIdCallback} from './receiveSlot';
8
11
 
9
12
  /**
10
13
  * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted,
11
14
  * so this manager has a pool in order to re-use the slots that were released earlier.
12
15
  */
13
16
  export class ReceiveSlotManager {
14
- private allocatedSlots: {[key in MC.MediaType]: ReceiveSlot[]};
17
+ private allocatedSlots: {[key in MediaType]: ReceiveSlot[]};
18
+
19
+ private freeSlots: {[key in MediaType]: ReceiveSlot[]};
15
20
 
16
- private freeSlots: {[key in MC.MediaType]: ReceiveSlot[]};
21
+ private createSlotCallback: CreateSlotCallback;
17
22
 
18
- private meeting: Meeting;
23
+ private findMemberIdByCsiCallback: FindMemberIdCallback;
19
24
 
20
25
  /**
21
26
  * Constructor
22
27
  * @param {Meeting} meeting
23
28
  */
24
- constructor(meeting) {
29
+ constructor(
30
+ createSlotCallback: CreateSlotCallback,
31
+ findMemberIdByCsiCallback: FindMemberIdCallback
32
+ ) {
25
33
  this.allocatedSlots = {
26
- [MC.MediaType.AudioMain]: [],
27
- [MC.MediaType.VideoMain]: [],
28
- [MC.MediaType.AudioSlides]: [],
29
- [MC.MediaType.VideoSlides]: [],
34
+ [MediaType.AudioMain]: [],
35
+ [MediaType.VideoMain]: [],
36
+ [MediaType.AudioSlides]: [],
37
+ [MediaType.VideoSlides]: [],
30
38
  };
31
39
  this.freeSlots = {
32
- [MC.MediaType.AudioMain]: [],
33
- [MC.MediaType.VideoMain]: [],
34
- [MC.MediaType.AudioSlides]: [],
35
- [MC.MediaType.VideoSlides]: [],
40
+ [MediaType.AudioMain]: [],
41
+ [MediaType.VideoMain]: [],
42
+ [MediaType.AudioSlides]: [],
43
+ [MediaType.VideoSlides]: [],
36
44
  };
37
- this.meeting = meeting;
45
+ this.createSlotCallback = createSlotCallback;
46
+ this.findMemberIdByCsiCallback = findMemberIdByCsiCallback;
38
47
  }
39
48
 
40
49
  /**
41
50
  * Creates a new receive slot or returns one from the existing pool of free slots
42
51
  *
43
- * @param {MC.MediaType} mediaType
52
+ * @param {MediaType} mediaType
44
53
  * @returns {Promise<ReceiveSlot>}
45
54
  */
46
- async allocateSlot(mediaType: MC.MediaType): Promise<ReceiveSlot> {
47
- if (!this.meeting?.mediaProperties?.webrtcMediaConnection) {
48
- return Promise.reject(new Error('Webrtc media connection is missing'));
49
- }
50
-
55
+ async allocateSlot(mediaType: MediaType): Promise<ReceiveSlot> {
51
56
  // try to use one of the free ones
52
57
  const availableSlot = this.freeSlots[mediaType].pop();
53
58
 
@@ -60,14 +65,9 @@ export class ReceiveSlotManager {
60
65
  }
61
66
 
62
67
  // we have to create a new one
63
- const wcmeReceiveSlot =
64
- await this.meeting.mediaProperties.webrtcMediaConnection.createReceiveSlot(mediaType);
68
+ const wcmeReceiveSlot = await this.createSlotCallback(mediaType);
65
69
 
66
- const receiveSlot = new ReceiveSlot(
67
- mediaType,
68
- wcmeReceiveSlot,
69
- (csi: CSI) => this.meeting.members.findMemberByCsi(csi)?.id
70
- );
70
+ const receiveSlot = new ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);
71
71
 
72
72
  this.allocatedSlots[mediaType].push(receiveSlot);
73
73
  LoggerProxy.logger.log(`new receive slot allocated: ${receiveSlot.id}`);
@@ -100,16 +100,16 @@ export class ReceiveSlotManager {
100
100
  */
101
101
  reset() {
102
102
  this.allocatedSlots = {
103
- [MC.MediaType.AudioMain]: [],
104
- [MC.MediaType.VideoMain]: [],
105
- [MC.MediaType.AudioSlides]: [],
106
- [MC.MediaType.VideoSlides]: [],
103
+ [MediaType.AudioMain]: [],
104
+ [MediaType.VideoMain]: [],
105
+ [MediaType.AudioSlides]: [],
106
+ [MediaType.VideoSlides]: [],
107
107
  };
108
108
  this.freeSlots = {
109
- [MC.MediaType.AudioMain]: [],
110
- [MC.MediaType.VideoMain]: [],
111
- [MC.MediaType.AudioSlides]: [],
112
- [MC.MediaType.VideoSlides]: [],
109
+ [MediaType.AudioMain]: [],
110
+ [MediaType.VideoMain]: [],
111
+ [MediaType.AudioSlides]: [],
112
+ [MediaType.VideoSlides]: [],
113
113
  };
114
114
  }
115
115
 
@@ -139,4 +139,16 @@ export class ReceiveSlotManager {
139
139
  numFreeSlots,
140
140
  };
141
141
  }
142
+
143
+ /**
144
+ * Tries to find the member id on all allocated receive slots
145
+ * This function should be called when new members are added to the meeting.
146
+ */
147
+ updateMemberIds() {
148
+ Object.keys(this.allocatedSlots).forEach((key) => {
149
+ this.allocatedSlots[key].forEach((slot: ReceiveSlot) => {
150
+ slot.findMemberId();
151
+ });
152
+ });
153
+ }
142
154
  }
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable valid-jsdoc */
2
+ import {MediaType, SourceState} from '@webex/internal-media-core';
2
3
  import LoggerProxy from '../common/logs/logger-proxy';
3
4
  import EventsScope from '../common/events/events-scope';
4
5
 
@@ -7,6 +8,7 @@ import {CSI, ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';
7
8
 
8
9
  export const RemoteMediaEvents = {
9
10
  SourceUpdate: ReceiveSlotEvents.SourceUpdate,
11
+ Stopped: 'stopped',
10
12
  };
11
13
 
12
14
  export type RemoteVideoResolution =
@@ -55,7 +57,7 @@ export function getMaxFs(paneSize: RemoteVideoResolution): number {
55
57
  }
56
58
 
57
59
  type Options = {
58
- resolution?: RemoteVideoResolution; // applies only to groups of type MC.MediaType.VideoMain and MC.MediaType.VideoSlides
60
+ resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides
59
61
  };
60
62
 
61
63
  export type RemoteMediaId = string;
@@ -100,6 +102,29 @@ export class RemoteMedia extends EventsScope {
100
102
  this.id = `RM${remoteMediaCounter}-${this.receiveSlot.id}`;
101
103
  }
102
104
 
105
+ /**
106
+ * Supply the width and height of the video element
107
+ * to restrict the requested resolution to this size
108
+ * @param width width of the video element
109
+ * @param height height of the video element
110
+ */
111
+ public setSizeHint(width, height) {
112
+ // only base on height for now
113
+ let fs: number;
114
+
115
+ if (height < 135) {
116
+ fs = 60;
117
+ } else if (height < 270) {
118
+ fs = 240;
119
+ } else if (height < 540) {
120
+ fs = 920;
121
+ } else {
122
+ fs = 3600;
123
+ }
124
+
125
+ this.receiveSlot?.setMaxFs(fs);
126
+ }
127
+
103
128
  /**
104
129
  * Invalidates the remote media by clearing the reference to a receive slot and
105
130
  * cancelling the media request.
@@ -108,10 +133,18 @@ export class RemoteMedia extends EventsScope {
108
133
  * @param {boolean} commit - whether to commit the cancellation of the media request
109
134
  * @internal
110
135
  */
111
- public stop(commit: boolean = true) {
136
+ public stop(commit = true) {
112
137
  this.cancelMediaRequest(commit);
113
138
  this.receiveSlot?.removeAllListeners();
114
139
  this.receiveSlot = undefined;
140
+ this.emit(
141
+ {
142
+ file: 'multistream/remoteMedia',
143
+ function: 'stop',
144
+ },
145
+ RemoteMediaEvents.Stopped,
146
+ {}
147
+ );
115
148
  }
116
149
 
117
150
  /**
@@ -164,7 +197,7 @@ export class RemoteMedia extends EventsScope {
164
197
  private setupEventListeners() {
165
198
  if (this.receiveSlot) {
166
199
  const scope = {
167
- file: 'meeting/remoteMedia',
200
+ file: 'multistream/remoteMedia',
168
201
  function: 'setupEventListeners',
169
202
  };
170
203
 
@@ -177,7 +210,7 @@ export class RemoteMedia extends EventsScope {
177
210
  /**
178
211
  * Getter for mediaType
179
212
  */
180
- public get mediaType() {
213
+ public get mediaType(): MediaType {
181
214
  return this.receiveSlot?.mediaType;
182
215
  }
183
216
 
@@ -198,7 +231,7 @@ export class RemoteMedia extends EventsScope {
198
231
  /**
199
232
  * Getter for source state
200
233
  */
201
- public get sourceState() {
234
+ public get sourceState(): SourceState {
202
235
  return this.receiveSlot?.sourceState;
203
236
  }
204
237
 
@@ -8,8 +8,8 @@ import {MediaRequestId, MediaRequestManager} from './mediaRequestManager';
8
8
  import {CSI, ReceiveSlot} from './receiveSlot';
9
9
 
10
10
  type Options = {
11
- resolution?: RemoteVideoResolution; // applies only to groups of type MC.MediaType.VideoMain and MC.MediaType.VideoSlides
12
- preferLiveVideo?: boolean; // applies only to groups of type MC.MediaType.VideoMain and MC.MediaType.VideoSlides
11
+ resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides
12
+ preferLiveVideo?: boolean; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides
13
13
  };
14
14
 
15
15
  export class RemoteMediaGroup {
@@ -62,6 +62,7 @@ export class RemoteMediaGroup {
62
62
  // return a shallow copy so that the client cannot modify this.pinnedRemoteMedia array
63
63
  return [...this.pinnedRemoteMedia];
64
64
  }
65
+
65
66
  return [...this.unpinnedRemoteMedia, ...this.pinnedRemoteMedia];
66
67
  }
67
68
 
@@ -189,7 +190,7 @@ export class RemoteMediaGroup {
189
190
  * @param{boolean} commit whether to commit the cancellation of media requests
190
191
  * @internal
191
192
  */
192
- public stop(commit: boolean = true) {
193
+ public stop(commit = true) {
193
194
  this.unpinnedRemoteMedia.forEach((remoteMedia) => remoteMedia.stop(false));
194
195
  this.pinnedRemoteMedia.forEach((remoteMedia) => remoteMedia.stop(false));
195
196
  this.cancelActiveSpeakerMediaRequest(false);