@webex/plugin-meetings 3.0.0-beta.1 → 3.0.0-beta.104

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 (548) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/annotation/annotation.types.js +7 -0
  4. package/dist/annotation/annotation.types.js.map +1 -0
  5. package/dist/annotation/constants.js +48 -0
  6. package/dist/annotation/constants.js.map +1 -0
  7. package/dist/annotation/index.js +357 -0
  8. package/dist/annotation/index.js.map +1 -0
  9. package/dist/breakouts/breakout.js +176 -0
  10. package/dist/breakouts/breakout.js.map +1 -0
  11. package/dist/breakouts/collection.js +23 -0
  12. package/dist/breakouts/collection.js.map +1 -0
  13. package/dist/breakouts/edit-lock-error.js +52 -0
  14. package/dist/breakouts/edit-lock-error.js.map +1 -0
  15. package/dist/breakouts/events.js +43 -0
  16. package/dist/breakouts/events.js.map +1 -0
  17. package/dist/breakouts/index.js +919 -0
  18. package/dist/breakouts/index.js.map +1 -0
  19. package/dist/breakouts/request.js +78 -0
  20. package/dist/breakouts/request.js.map +1 -0
  21. package/dist/breakouts/utils.js +67 -0
  22. package/dist/breakouts/utils.js.map +1 -0
  23. package/dist/common/browser-detection.js +1 -20
  24. package/dist/common/browser-detection.js.map +1 -1
  25. package/dist/common/collection.js +5 -20
  26. package/dist/common/collection.js.map +1 -1
  27. package/dist/common/config.js +0 -7
  28. package/dist/common/config.js.map +1 -1
  29. package/dist/common/errors/captcha-error.js +10 -24
  30. package/dist/common/errors/captcha-error.js.map +1 -1
  31. package/dist/common/errors/intent-to-join.js +11 -24
  32. package/dist/common/errors/intent-to-join.js.map +1 -1
  33. package/dist/common/errors/join-meeting.js +12 -25
  34. package/dist/common/errors/join-meeting.js.map +1 -1
  35. package/dist/common/errors/media.js +10 -24
  36. package/dist/common/errors/media.js.map +1 -1
  37. package/dist/common/errors/parameter.js +5 -33
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.js +10 -24
  40. package/dist/common/errors/password-error.js.map +1 -1
  41. package/dist/common/errors/permission.js +9 -23
  42. package/dist/common/errors/permission.js.map +1 -1
  43. package/dist/common/errors/reconnection-in-progress.js +0 -17
  44. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  45. package/dist/common/errors/reconnection.js +10 -24
  46. package/dist/common/errors/reconnection.js.map +1 -1
  47. package/dist/common/errors/stats.js +10 -24
  48. package/dist/common/errors/stats.js.map +1 -1
  49. package/dist/common/errors/webex-errors.js +10 -69
  50. package/dist/common/errors/webex-errors.js.map +1 -1
  51. package/dist/common/errors/webex-meetings-error.js +5 -25
  52. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  53. package/dist/common/events/events-scope.js +0 -22
  54. package/dist/common/events/events-scope.js.map +1 -1
  55. package/dist/common/events/events.js +0 -23
  56. package/dist/common/events/events.js.map +1 -1
  57. package/dist/common/events/trigger-proxy.js +0 -12
  58. package/dist/common/events/trigger-proxy.js.map +1 -1
  59. package/dist/common/events/util.js +0 -15
  60. package/dist/common/events/util.js.map +1 -1
  61. package/dist/common/logs/logger-config.js +0 -4
  62. package/dist/common/logs/logger-config.js.map +1 -1
  63. package/dist/common/logs/logger-proxy.js +1 -8
  64. package/dist/common/logs/logger-proxy.js.map +1 -1
  65. package/dist/common/logs/request.js +37 -60
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.js +4 -14
  68. package/dist/common/queue.js.map +1 -1
  69. package/dist/config.js +7 -6
  70. package/dist/config.js.map +1 -1
  71. package/dist/constants.js +184 -122
  72. package/dist/constants.js.map +1 -1
  73. package/dist/controls-options-manager/constants.js +14 -0
  74. package/dist/controls-options-manager/constants.js.map +1 -0
  75. package/dist/controls-options-manager/enums.js +25 -0
  76. package/dist/controls-options-manager/enums.js.map +1 -0
  77. package/dist/controls-options-manager/index.js +297 -0
  78. package/dist/controls-options-manager/index.js.map +1 -0
  79. package/dist/controls-options-manager/types.js +7 -0
  80. package/dist/controls-options-manager/types.js.map +1 -0
  81. package/dist/controls-options-manager/util.js +250 -0
  82. package/dist/controls-options-manager/util.js.map +1 -0
  83. package/dist/index.js +72 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/locus-info/controlsUtils.js +56 -29
  86. package/dist/locus-info/controlsUtils.js.map +1 -1
  87. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  88. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  89. package/dist/locus-info/fullState.js +0 -15
  90. package/dist/locus-info/fullState.js.map +1 -1
  91. package/dist/locus-info/hostUtils.js +4 -12
  92. package/dist/locus-info/hostUtils.js.map +1 -1
  93. package/dist/locus-info/index.js +362 -208
  94. package/dist/locus-info/index.js.map +1 -1
  95. package/dist/locus-info/infoUtils.js +3 -37
  96. package/dist/locus-info/infoUtils.js.map +1 -1
  97. package/dist/locus-info/mediaSharesUtils.js +12 -38
  98. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  99. package/dist/locus-info/parser.js +92 -118
  100. package/dist/locus-info/parser.js.map +1 -1
  101. package/dist/locus-info/selfUtils.js +99 -91
  102. package/dist/locus-info/selfUtils.js.map +1 -1
  103. package/dist/media/index.js +113 -337
  104. package/dist/media/index.js.map +1 -1
  105. package/dist/media/properties.js +96 -135
  106. package/dist/media/properties.js.map +1 -1
  107. package/dist/media/util.js +1 -35
  108. package/dist/media/util.js.map +1 -1
  109. package/dist/mediaQualityMetrics/config.js +505 -495
  110. package/dist/mediaQualityMetrics/config.js.map +1 -1
  111. package/dist/meeting/in-meeting-actions.js +59 -14
  112. package/dist/meeting/in-meeting-actions.js.map +1 -1
  113. package/dist/meeting/index.js +2909 -2398
  114. package/dist/meeting/index.js.map +1 -1
  115. package/dist/meeting/muteState.js +257 -112
  116. package/dist/meeting/muteState.js.map +1 -1
  117. package/dist/meeting/request.js +330 -264
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/request.type.js +7 -0
  120. package/dist/meeting/request.type.js.map +1 -0
  121. package/dist/meeting/state.js +21 -31
  122. package/dist/meeting/state.js.map +1 -1
  123. package/dist/meeting/util.js +63 -261
  124. package/dist/meeting/util.js.map +1 -1
  125. package/dist/meeting-info/collection.js +6 -25
  126. package/dist/meeting-info/collection.js.map +1 -1
  127. package/dist/meeting-info/index.js +14 -32
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.js +273 -280
  130. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  131. package/dist/meeting-info/request.js +3 -15
  132. package/dist/meeting-info/request.js.map +1 -1
  133. package/dist/meeting-info/util.js +98 -183
  134. package/dist/meeting-info/util.js.map +1 -1
  135. package/dist/meeting-info/utilv2.js +155 -232
  136. package/dist/meeting-info/utilv2.js.map +1 -1
  137. package/dist/meetings/collection.js +26 -19
  138. package/dist/meetings/collection.js.map +1 -1
  139. package/dist/meetings/index.js +741 -548
  140. package/dist/meetings/index.js.map +1 -1
  141. package/dist/meetings/request.js +26 -41
  142. package/dist/meetings/request.js.map +1 -1
  143. package/dist/meetings/util.js +194 -149
  144. package/dist/meetings/util.js.map +1 -1
  145. package/dist/member/index.js +100 -85
  146. package/dist/member/index.js.map +1 -1
  147. package/dist/member/types.js +15 -0
  148. package/dist/member/types.js.map +1 -0
  149. package/dist/member/util.js +90 -68
  150. package/dist/member/util.js.map +1 -1
  151. package/dist/members/collection.js +13 -12
  152. package/dist/members/collection.js.map +1 -1
  153. package/dist/members/index.js +227 -188
  154. package/dist/members/index.js.map +1 -1
  155. package/dist/members/request.js +54 -39
  156. package/dist/members/request.js.map +1 -1
  157. package/dist/members/types.js +15 -0
  158. package/dist/members/types.js.map +1 -0
  159. package/dist/members/util.js +107 -44
  160. package/dist/members/util.js.map +1 -1
  161. package/dist/metrics/config.js +5 -14
  162. package/dist/metrics/config.js.map +1 -1
  163. package/dist/metrics/constants.js +3 -7
  164. package/dist/metrics/constants.js.map +1 -1
  165. package/dist/metrics/index.js +67 -159
  166. package/dist/metrics/index.js.map +1 -1
  167. package/dist/multistream/mediaRequestManager.js +250 -0
  168. package/dist/multistream/mediaRequestManager.js.map +1 -0
  169. package/dist/multistream/receiveSlot.js +202 -0
  170. package/dist/multistream/receiveSlot.js.map +1 -0
  171. package/dist/multistream/receiveSlotManager.js +176 -0
  172. package/dist/multistream/receiveSlotManager.js.map +1 -0
  173. package/dist/multistream/remoteMedia.js +270 -0
  174. package/dist/multistream/remoteMedia.js.map +1 -0
  175. package/dist/multistream/remoteMediaGroup.js +209 -0
  176. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  177. package/dist/multistream/remoteMediaManager.js +1137 -0
  178. package/dist/multistream/remoteMediaManager.js.map +1 -0
  179. package/dist/networkQualityMonitor/index.js +40 -59
  180. package/dist/networkQualityMonitor/index.js.map +1 -1
  181. package/dist/personal-meeting-room/index.js +21 -45
  182. package/dist/personal-meeting-room/index.js.map +1 -1
  183. package/dist/personal-meeting-room/request.js +1 -31
  184. package/dist/personal-meeting-room/request.js.map +1 -1
  185. package/dist/personal-meeting-room/util.js +0 -13
  186. package/dist/personal-meeting-room/util.js.map +1 -1
  187. package/dist/reachability/index.js +192 -191
  188. package/dist/reachability/index.js.map +1 -1
  189. package/dist/reachability/request.js +15 -23
  190. package/dist/reachability/request.js.map +1 -1
  191. package/dist/reactions/constants.js +13 -0
  192. package/dist/reactions/constants.js.map +1 -0
  193. package/dist/reactions/reactions.js +109 -0
  194. package/dist/reactions/reactions.js.map +1 -0
  195. package/dist/reactions/reactions.type.js +36 -0
  196. package/dist/reactions/reactions.type.js.map +1 -0
  197. package/dist/reconnection-manager/index.js +386 -527
  198. package/dist/reconnection-manager/index.js.map +1 -1
  199. package/dist/recording-controller/enums.js +17 -0
  200. package/dist/recording-controller/enums.js.map +1 -0
  201. package/dist/recording-controller/index.js +343 -0
  202. package/dist/recording-controller/index.js.map +1 -0
  203. package/dist/recording-controller/util.js +63 -0
  204. package/dist/recording-controller/util.js.map +1 -0
  205. package/dist/roap/index.js +84 -286
  206. package/dist/roap/index.js.map +1 -1
  207. package/dist/roap/request.js +138 -238
  208. package/dist/roap/request.js.map +1 -1
  209. package/dist/roap/turnDiscovery.js +164 -102
  210. package/dist/roap/turnDiscovery.js.map +1 -1
  211. package/dist/statsAnalyzer/global.js +1 -93
  212. package/dist/statsAnalyzer/global.js.map +1 -1
  213. package/dist/statsAnalyzer/index.js +399 -470
  214. package/dist/statsAnalyzer/index.js.map +1 -1
  215. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  216. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  217. package/dist/transcription/index.js +22 -47
  218. package/dist/transcription/index.js.map +1 -1
  219. package/dist/types/annotation/annotation.types.d.ts +34 -0
  220. package/dist/types/annotation/constants.d.ts +31 -0
  221. package/dist/types/annotation/index.d.ts +124 -0
  222. package/dist/types/breakouts/breakout.d.ts +8 -0
  223. package/dist/types/breakouts/collection.d.ts +5 -0
  224. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  225. package/dist/types/breakouts/events.d.ts +2 -0
  226. package/dist/types/breakouts/index.d.ts +5 -0
  227. package/dist/types/breakouts/request.d.ts +22 -0
  228. package/dist/types/breakouts/utils.d.ts +15 -0
  229. package/dist/types/common/browser-detection.d.ts +9 -0
  230. package/dist/types/common/collection.d.ts +48 -0
  231. package/dist/types/common/config.d.ts +2 -0
  232. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  233. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  234. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  235. package/dist/types/common/errors/media.d.ts +15 -0
  236. package/dist/types/common/errors/parameter.d.ts +15 -0
  237. package/dist/types/common/errors/password-error.d.ts +15 -0
  238. package/dist/types/common/errors/permission.d.ts +14 -0
  239. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  240. package/dist/types/common/errors/reconnection.d.ts +15 -0
  241. package/dist/types/common/errors/stats.d.ts +15 -0
  242. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  243. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  244. package/dist/types/common/events/events-scope.d.ts +17 -0
  245. package/dist/types/common/events/events.d.ts +12 -0
  246. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  247. package/dist/types/common/events/util.d.ts +2 -0
  248. package/dist/types/common/logs/logger-config.d.ts +2 -0
  249. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  250. package/dist/types/common/logs/request.d.ts +34 -0
  251. package/dist/types/common/queue.d.ts +32 -0
  252. package/dist/types/config.d.ts +78 -0
  253. package/dist/types/constants.d.ts +968 -0
  254. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  255. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  256. package/dist/types/controls-options-manager/index.d.ts +136 -0
  257. package/dist/types/controls-options-manager/types.d.ts +37 -0
  258. package/dist/types/controls-options-manager/util.d.ts +1 -0
  259. package/dist/types/index.d.ts +7 -0
  260. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  261. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  262. package/dist/types/locus-info/fullState.d.ts +2 -0
  263. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  264. package/dist/types/locus-info/index.d.ts +315 -0
  265. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  266. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  267. package/dist/types/locus-info/parser.d.ts +212 -0
  268. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  269. package/dist/types/media/index.d.ts +34 -0
  270. package/dist/types/media/properties.d.ts +108 -0
  271. package/dist/types/media/util.d.ts +2 -0
  272. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  273. package/dist/types/meeting/in-meeting-actions.d.ts +129 -0
  274. package/dist/types/meeting/index.d.ts +1748 -0
  275. package/dist/types/meeting/muteState.d.ts +185 -0
  276. package/dist/types/meeting/request.d.ts +275 -0
  277. package/dist/types/meeting/request.type.d.ts +11 -0
  278. package/dist/types/meeting/state.d.ts +9 -0
  279. package/dist/types/meeting/util.d.ts +2 -0
  280. package/dist/types/meeting-info/collection.d.ts +20 -0
  281. package/dist/types/meeting-info/index.d.ts +57 -0
  282. package/dist/types/meeting-info/meeting-info-v2.d.ts +112 -0
  283. package/dist/types/meeting-info/request.d.ts +22 -0
  284. package/dist/types/meeting-info/util.d.ts +2 -0
  285. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  286. package/dist/types/meetings/collection.d.ts +31 -0
  287. package/dist/types/meetings/index.d.ts +345 -0
  288. package/dist/types/meetings/request.d.ts +27 -0
  289. package/dist/types/meetings/util.d.ts +18 -0
  290. package/dist/types/member/index.d.ts +156 -0
  291. package/dist/types/member/types.d.ts +21 -0
  292. package/dist/types/member/util.d.ts +2 -0
  293. package/dist/types/members/collection.d.ts +29 -0
  294. package/dist/types/members/index.d.ts +353 -0
  295. package/dist/types/members/request.d.ts +69 -0
  296. package/dist/types/members/types.d.ts +24 -0
  297. package/dist/types/members/util.d.ts +2 -0
  298. package/dist/types/metrics/config.d.ts +172 -0
  299. package/dist/types/metrics/constants.d.ts +54 -0
  300. package/dist/types/metrics/index.d.ts +152 -0
  301. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  302. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  303. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  304. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  305. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  306. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  307. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  308. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  309. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  310. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  311. package/dist/types/reachability/index.d.ts +152 -0
  312. package/dist/types/reachability/request.d.ts +37 -0
  313. package/dist/types/reactions/constants.d.ts +3 -0
  314. package/dist/types/reactions/reactions.d.ts +4 -0
  315. package/dist/types/reactions/reactions.type.d.ts +52 -0
  316. package/dist/types/reconnection-manager/index.d.ts +126 -0
  317. package/dist/types/recording-controller/enums.d.ts +7 -0
  318. package/dist/types/recording-controller/index.d.ts +193 -0
  319. package/dist/types/recording-controller/util.d.ts +13 -0
  320. package/dist/types/roap/index.d.ts +77 -0
  321. package/dist/types/roap/request.d.ts +38 -0
  322. package/dist/types/roap/turnDiscovery.d.ts +88 -0
  323. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  324. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  325. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  326. package/dist/types/transcription/index.d.ts +64 -0
  327. package/internal-README.md +7 -6
  328. package/package.json +29 -21
  329. package/src/annotation/annotation.types.ts +41 -0
  330. package/src/annotation/constants.ts +36 -0
  331. package/src/annotation/index.ts +339 -0
  332. package/src/breakouts/README.md +219 -0
  333. package/src/breakouts/breakout.ts +141 -0
  334. package/src/breakouts/collection.ts +19 -0
  335. package/src/breakouts/edit-lock-error.ts +25 -0
  336. package/src/breakouts/events.ts +37 -0
  337. package/src/breakouts/index.ts +823 -0
  338. package/src/breakouts/request.ts +55 -0
  339. package/src/breakouts/utils.ts +57 -0
  340. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  341. package/src/common/collection.ts +9 -7
  342. package/src/common/{config.js → config.ts} +1 -1
  343. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  344. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  345. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  346. package/src/common/errors/{media.js → media.ts} +11 -7
  347. package/src/common/errors/parameter.ts +11 -7
  348. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  349. package/src/common/errors/{permission.js → permission.ts} +10 -6
  350. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  351. package/src/common/errors/{stats.js → stats.ts} +11 -7
  352. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -25
  353. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  354. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  355. package/src/common/events/{events.js → events.ts} +5 -1
  356. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  357. package/src/common/events/{util.js → util.ts} +2 -3
  358. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  359. package/src/common/logs/logger-proxy.ts +44 -0
  360. package/src/common/logs/{request.js → request.ts} +22 -9
  361. package/src/common/queue.ts +1 -2
  362. package/src/{config.js → config.ts} +18 -12
  363. package/src/constants.ts +256 -183
  364. package/src/controls-options-manager/constants.ts +5 -0
  365. package/src/controls-options-manager/enums.ts +16 -0
  366. package/src/controls-options-manager/index.ts +278 -0
  367. package/src/controls-options-manager/types.ts +49 -0
  368. package/src/controls-options-manager/util.ts +229 -0
  369. package/src/index.ts +33 -0
  370. package/src/locus-info/controlsUtils.ts +169 -0
  371. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  372. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  373. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  374. package/src/locus-info/{index.js → index.ts} +331 -80
  375. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  376. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  377. package/src/locus-info/{parser.js → parser.ts} +67 -79
  378. package/src/locus-info/{selfUtils.js → selfUtils.ts} +196 -67
  379. package/src/media/index.ts +488 -0
  380. package/src/media/{properties.js → properties.ts} +67 -54
  381. package/src/media/util.ts +16 -0
  382. package/src/mediaQualityMetrics/config.ts +384 -0
  383. package/src/meeting/in-meeting-actions.ts +123 -3
  384. package/src/meeting/{index.js → index.ts} +3334 -1775
  385. package/src/meeting/muteState.ts +526 -0
  386. package/src/meeting/{request.js → request.ts} +350 -142
  387. package/src/meeting/request.type.ts +13 -0
  388. package/src/meeting/{state.js → state.ts} +50 -35
  389. package/src/meeting/{util.js → util.ts} +126 -159
  390. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  391. package/src/meeting-info/{index.js → index.ts} +42 -36
  392. package/src/meeting-info/meeting-info-v2.ts +345 -0
  393. package/src/meeting-info/{request.js → request.ts} +14 -4
  394. package/src/meeting-info/{util.js → util.ts} +60 -51
  395. package/src/meeting-info/{utilv2.js → utilv2.ts} +76 -60
  396. package/src/meetings/{collection.js → collection.ts} +26 -3
  397. package/src/meetings/index.ts +1394 -0
  398. package/src/meetings/{request.js → request.ts} +34 -25
  399. package/src/meetings/util.ts +288 -0
  400. package/src/member/{index.js → index.ts} +124 -56
  401. package/src/member/types.ts +24 -0
  402. package/src/member/{util.js → util.ts} +105 -25
  403. package/src/members/{collection.js → collection.ts} +10 -2
  404. package/src/members/{index.js → index.ts} +359 -139
  405. package/src/members/request.ts +215 -0
  406. package/src/members/types.ts +28 -0
  407. package/src/members/{util.js → util.ts} +145 -54
  408. package/src/metrics/{config.js → config.ts} +256 -92
  409. package/src/metrics/{constants.js → constants.ts} +1 -6
  410. package/src/metrics/{index.js → index.ts} +116 -97
  411. package/src/multistream/mediaRequestManager.ts +324 -0
  412. package/src/multistream/receiveSlot.ts +184 -0
  413. package/src/multistream/receiveSlotManager.ts +166 -0
  414. package/src/multistream/remoteMedia.ts +254 -0
  415. package/src/multistream/remoteMediaGroup.ts +225 -0
  416. package/src/multistream/remoteMediaManager.ts +1075 -0
  417. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  418. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  419. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  420. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  421. package/src/reachability/{index.js → index.ts} +157 -94
  422. package/src/reachability/request.ts +46 -35
  423. package/src/reactions/constants.ts +4 -0
  424. package/src/reactions/reactions.ts +104 -0
  425. package/src/reactions/reactions.type.ts +62 -0
  426. package/src/reconnection-manager/{index.js → index.ts} +261 -163
  427. package/src/recording-controller/enums.ts +8 -0
  428. package/src/recording-controller/index.ts +315 -0
  429. package/src/recording-controller/util.ts +58 -0
  430. package/src/roap/index.ts +241 -0
  431. package/src/roap/request.ts +172 -0
  432. package/src/roap/turnDiscovery.ts +127 -53
  433. package/src/statsAnalyzer/global.ts +37 -0
  434. package/src/statsAnalyzer/index.ts +1273 -0
  435. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  436. package/src/transcription/{index.js → index.ts} +46 -39
  437. package/test/integration/spec/converged-space-meetings.js +177 -0
  438. package/test/integration/spec/journey.js +666 -464
  439. package/test/integration/spec/space-meeting.js +321 -206
  440. package/test/integration/spec/transcription.js +7 -8
  441. package/test/unit/spec/annotation/index.ts +435 -0
  442. package/test/unit/spec/breakouts/breakout.ts +184 -0
  443. package/test/unit/spec/breakouts/collection.ts +15 -0
  444. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  445. package/test/unit/spec/breakouts/events.ts +77 -0
  446. package/test/unit/spec/breakouts/index.ts +1504 -0
  447. package/test/unit/spec/breakouts/request.ts +104 -0
  448. package/test/unit/spec/breakouts/utils.js +72 -0
  449. package/test/unit/spec/common/browser-detection.js +9 -28
  450. package/test/unit/spec/controls-options-manager/index.js +287 -0
  451. package/test/unit/spec/controls-options-manager/util.js +403 -0
  452. package/test/unit/spec/fixture/locus.js +92 -90
  453. package/test/unit/spec/locus-info/controlsUtils.js +177 -32
  454. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  455. package/test/unit/spec/locus-info/index.js +493 -3
  456. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  457. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  458. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  459. package/test/unit/spec/locus-info/parser.js +3 -9
  460. package/test/unit/spec/locus-info/selfConstant.js +110 -103
  461. package/test/unit/spec/locus-info/selfUtils.js +236 -12
  462. package/test/unit/spec/media/index.ts +303 -0
  463. package/test/unit/spec/media/properties.ts +73 -82
  464. package/test/unit/spec/meeting/in-meeting-actions.ts +58 -3
  465. package/test/unit/spec/meeting/index.js +3127 -975
  466. package/test/unit/spec/meeting/muteState.js +375 -70
  467. package/test/unit/spec/meeting/request.js +217 -43
  468. package/test/unit/spec/meeting/utils.js +205 -163
  469. package/test/unit/spec/meeting-info/meetinginfov2.js +268 -74
  470. package/test/unit/spec/meeting-info/request.js +7 -9
  471. package/test/unit/spec/meeting-info/util.js +11 -12
  472. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  473. package/test/unit/spec/meetings/collection.js +15 -1
  474. package/test/unit/spec/meetings/index.js +1052 -333
  475. package/test/unit/spec/meetings/utils.js +163 -14
  476. package/test/unit/spec/member/index.js +24 -1
  477. package/test/unit/spec/member/util.js +359 -32
  478. package/test/unit/spec/members/index.js +547 -37
  479. package/test/unit/spec/members/request.js +76 -20
  480. package/test/unit/spec/members/utils.js +191 -4
  481. package/test/unit/spec/metrics/index.js +46 -20
  482. package/test/unit/spec/multistream/mediaRequestManager.ts +1060 -0
  483. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  484. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  485. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  486. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  487. package/test/unit/spec/multistream/remoteMediaManager.ts +1793 -0
  488. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  489. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  490. package/test/unit/spec/reachability/index.ts +176 -27
  491. package/test/unit/spec/reachability/request.js +66 -0
  492. package/test/unit/spec/reconnection-manager/index.js +106 -9
  493. package/test/unit/spec/recording-controller/index.js +231 -0
  494. package/test/unit/spec/recording-controller/util.js +102 -0
  495. package/test/unit/spec/roap/index.ts +78 -45
  496. package/test/unit/spec/roap/request.ts +217 -0
  497. package/test/unit/spec/roap/turnDiscovery.ts +93 -49
  498. package/test/unit/spec/stats-analyzer/index.js +118 -65
  499. package/test/utils/cmr.js +44 -42
  500. package/test/utils/constants.js +9 -0
  501. package/test/utils/integrationTestUtils.js +64 -0
  502. package/test/utils/testUtils.js +63 -99
  503. package/test/utils/webex-config.js +22 -18
  504. package/test/utils/webex-test-users.js +57 -50
  505. package/tsconfig.json +6 -0
  506. package/dist/meeting/effectsState.js +0 -327
  507. package/dist/meeting/effectsState.js.map +0 -1
  508. package/dist/peer-connection-manager/index.js +0 -794
  509. package/dist/peer-connection-manager/index.js.map +0 -1
  510. package/dist/peer-connection-manager/util.js +0 -124
  511. package/dist/peer-connection-manager/util.js.map +0 -1
  512. package/dist/roap/collection.js +0 -73
  513. package/dist/roap/collection.js.map +0 -1
  514. package/dist/roap/handler.js +0 -337
  515. package/dist/roap/handler.js.map +0 -1
  516. package/dist/roap/state.js +0 -164
  517. package/dist/roap/state.js.map +0 -1
  518. package/dist/roap/util.js +0 -102
  519. package/dist/roap/util.js.map +0 -1
  520. package/src/common/logs/logger-proxy.js +0 -33
  521. package/src/index.js +0 -15
  522. package/src/locus-info/controlsUtils.js +0 -102
  523. package/src/media/index.js +0 -593
  524. package/src/media/util.js +0 -38
  525. package/src/mediaQualityMetrics/config.js +0 -382
  526. package/src/meeting/effectsState.js +0 -205
  527. package/src/meeting/muteState.js +0 -318
  528. package/src/meeting-info/meeting-info-v2.js +0 -255
  529. package/src/meetings/index.js +0 -986
  530. package/src/meetings/util.js +0 -176
  531. package/src/members/request.js +0 -131
  532. package/src/peer-connection-manager/index.js +0 -723
  533. package/src/peer-connection-manager/util.ts +0 -117
  534. package/src/roap/collection.js +0 -63
  535. package/src/roap/handler.js +0 -252
  536. package/src/roap/index.js +0 -380
  537. package/src/roap/request.js +0 -198
  538. package/src/roap/state.js +0 -149
  539. package/src/roap/util.js +0 -93
  540. package/src/statsAnalyzer/global.js +0 -131
  541. package/src/statsAnalyzer/index.js +0 -1020
  542. package/src/statsAnalyzer/mqaUtil.js +0 -173
  543. package/test/unit/spec/meeting/effectsState.js +0 -293
  544. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  545. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  546. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  547. package/test/unit/spec/roap/util.js +0 -30
  548. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,51 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
23
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
26
-
27
15
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
28
-
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
+ var _internalMediaCore = require("@webex/internal-media-core");
29
18
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
30
-
31
19
  var _constants = require("../constants");
32
-
33
20
  var _config = _interopRequireDefault(require("../config"));
34
-
35
- var _peerConnectionManager = _interopRequireDefault(require("../peer-connection-manager"));
36
-
37
- var _reconnection = _interopRequireDefault(require("../common/errors/reconnection"));
38
-
21
+ var _config2 = _interopRequireDefault(require("../common/config"));
39
22
  var _media = _interopRequireDefault(require("../common/errors/media"));
40
-
41
23
  var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
42
-
43
24
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
44
-
45
25
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
46
-
47
26
  var _BrowserDetection = (0, _browserDetection.default)(),
48
- isBrowser = _BrowserDetection.isBrowser;
27
+ isBrowser = _BrowserDetection.isBrowser;
49
28
  /**
50
29
  * MediaDirection
51
30
  * @typedef {Object} MediaDirection
@@ -66,7 +45,6 @@ var _BrowserDetection = (0, _browserDetection.default)(),
66
45
  * @property isSharing
67
46
  * @property {Object} sharePreferences
68
47
  */
69
-
70
48
  /**
71
49
  *
72
50
  * @public
@@ -75,50 +53,8 @@ var _BrowserDetection = (0, _browserDetection.default)(),
75
53
  * Handles the quirks of each browser.
76
54
  * Extends and enhances adapter.js, i.e., the "media" file from the web client.
77
55
  */
78
-
79
-
80
56
  var Media = {};
81
- /**
82
- * @param {boolean} enabled
83
- * @param {MediaStreamTrack} track
84
- * @returns {Boolean}
85
- * @public
86
- */
87
-
88
- Media.setLocalTrack = function (enabled, track) {
89
- if (track) {
90
- track.enabled = enabled;
91
- return true;
92
- }
93
57
 
94
- return false;
95
- };
96
- /**
97
- * @param {RTCPeerConnection} peerConnection
98
- * @param {Object} meetingProperties
99
- * @param {string} meetingProperties.meetingId
100
- * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
101
- * @returns {Promise}
102
- */
103
-
104
-
105
- Media.reconnectMedia = function (peerConnection, _ref) {
106
- var meetingId = _ref.meetingId,
107
- remoteQualityLevel = _ref.remoteQualityLevel,
108
- enableRtx = _ref.enableRtx,
109
- enableExtmap = _ref.enableExtmap;
110
-
111
- if (peerConnection.connectionState === _constants.PEER_CONNECTION_STATE.CLOSED || peerConnection.connectionState === _constants.PEER_CONNECTION_STATE.FAILED) {
112
- return _promise.default.reject(new _reconnection.default('Reinitiate peerconnection'));
113
- }
114
-
115
- return _peerConnectionManager.default.createOffer(peerConnection, {
116
- meetingId: meetingId,
117
- remoteQualityLevel: remoteQualityLevel,
118
- enableRtx: enableRtx,
119
- enableExtmap: enableExtmap
120
- });
121
- };
122
58
  /**
123
59
  * format the media array for send
124
60
  * @param {String} mediaId
@@ -126,8 +62,6 @@ Media.reconnectMedia = function (peerConnection, _ref) {
126
62
  * @param {Boolean} videoMuted
127
63
  * @returns {Array} medias
128
64
  */
129
-
130
-
131
65
  Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
132
66
  if (mediaId) {
133
67
  return [{
@@ -138,28 +72,24 @@ Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
138
72
  mediaId: mediaId
139
73
  }];
140
74
  }
141
-
142
75
  return [];
143
76
  };
77
+
144
78
  /**
145
79
  * make a browser call to get the media
146
80
  * @param {SendOptions} options
147
81
  * @param {Object} config SDK Configuration for meetings plugin
148
82
  * @returns {Promise}
149
83
  */
150
-
151
-
152
84
  Media.getLocalMedia = function (options, config) {
153
85
  var sendAudio = options.sendAudio,
154
- sendVideo = options.sendVideo,
155
- sendShare = options.sendShare,
156
- sharePreferences = options.sharePreferences,
157
- isSharing = options.isSharing;
158
-
86
+ sendVideo = options.sendVideo,
87
+ sendShare = options.sendShare,
88
+ sharePreferences = options.sharePreferences,
89
+ isSharing = options.isSharing;
159
90
  if (sendAudio || sendVideo) {
160
91
  return Media.getMedia(sendAudio, sendVideo, config);
161
92
  }
162
-
163
93
  if (sendShare && !isSharing) {
164
94
  return Media.getDisplayMedia({
165
95
  sendAudio: false,
@@ -167,200 +97,90 @@ Media.getLocalMedia = function (options, config) {
167
97
  sharePreferences: sharePreferences
168
98
  }, config);
169
99
  }
170
-
171
100
  return _promise.default.resolve(undefined);
172
101
  };
173
- /**
174
- * Returns the direction and tracks
175
- * @param {string} trackType type of track (audio/video)
176
- * @param {object} track tracks passed
177
- * @param {boolean} receiveTracks do you want to receive tracks from the remote side
178
- * @returns {Object} returns direction tracks to be added in transceiver
179
- */
180
-
181
-
182
- Media.checkTracks = function (trackType, track, receiveTracks) {
183
- var getDirection = function getDirection(sendTracks, receiveTracks) {
184
- if (sendTracks && receiveTracks) {
185
- return 'sendrecv';
186
- }
187
-
188
- if (sendTracks && !receiveTracks) {
189
- return 'sendonly';
190
- }
191
-
192
- if (!sendTracks && receiveTracks) {
193
- return 'recvonly';
194
- }
195
-
196
- return 'inactive';
197
- };
198
-
199
- if (track) {
200
- return {
201
- track: track,
202
- direction: getDirection(!!track, receiveTracks)
203
- };
204
- }
205
-
206
- return {
207
- track: trackType,
208
- direction: getDirection(!!track, receiveTracks)
209
- };
210
- };
211
- /**
212
- * creates peerconnection and attaches streams
213
- * @param {MediaDirection} mediaProperties
214
- * @param {Object} meetingProperties
215
- * @param {string} meetingProperties.meetingId
216
- * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
217
- * @returns {Array} [peerConnection, ]
218
- */
219
-
220
-
221
- Media.attachMedia = function (mediaProperties, _ref2) {
222
- var meetingId = _ref2.meetingId,
223
- remoteQualityLevel = _ref2.remoteQualityLevel,
224
- enableRtx = _ref2.enableRtx,
225
- enableExtmap = _ref2.enableExtmap;
226
- var mediaDirection = mediaProperties.mediaDirection,
227
- audioTrack = mediaProperties.audioTrack,
228
- videoTrack = mediaProperties.videoTrack,
229
- shareTrack = mediaProperties.shareTrack,
230
- peerConnection = mediaProperties.peerConnection;
231
- var result = null; // Add Transceiver for audio
232
-
233
- result = Media.checkTracks('audio', mediaDirection.sendAudio && audioTrack, mediaDirection.receiveAudio);
234
- peerConnection.audioTransceiver = peerConnection.addTransceiver(result.track, {
235
- direction: result.direction
236
- }); // Add Transceiver for video
237
-
238
- result = Media.checkTracks('video', mediaDirection.sendVideo && videoTrack, mediaDirection.receiveVideo);
239
- peerConnection.videoTransceiver = peerConnection.addTransceiver(result.track, {
240
- direction: result.direction
241
- }); // Add Transceiver for share
242
-
243
- result = Media.checkTracks('video', mediaDirection.sendShare && shareTrack, mediaDirection.receiveShare);
244
- peerConnection.shareTransceiver = peerConnection.addTransceiver(result.track, {
245
- direction: result.direction
246
- });
247
-
248
- peerConnection.onnegotiationneeded = function (event) {
249
- _loggerProxy.default.logger.info("Media:index#attachMedia --> onnegotiationneeded#PeerConnection: ".concat(event));
250
- };
251
-
252
- return _peerConnectionManager.default.createOffer(peerConnection, {
253
- meetingId: meetingId,
254
- remoteQualityLevel: remoteQualityLevel,
255
- enableRtx: enableRtx,
256
- enableExtmap: enableExtmap
257
- });
258
- };
259
- /**
260
- * updates all the media streams and creates a new media offer
261
- * @param {MediaDirection} mediaProperties
262
- * @param {Object} meetingProperties
263
- * @param {string} meetingProperties.meetingId
264
- * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
265
- * @returns {Promise}
266
- */
267
102
 
268
-
269
- Media.updateMedia = function (mediaProperties, _ref3) {
270
- var meetingId = _ref3.meetingId,
271
- remoteQualityLevel = _ref3.remoteQualityLevel,
272
- enableRtx = _ref3.enableRtx,
273
- enableExtmap = _ref3.enableExtmap;
274
- var mediaDirection = mediaProperties.mediaDirection,
275
- audioTrack = mediaProperties.audioTrack,
276
- videoTrack = mediaProperties.videoTrack,
277
- shareTrack = mediaProperties.shareTrack,
278
- peerConnection = mediaProperties.peerConnection; // update audio transceiver
279
-
280
- Media.setTrackOnTransceiver(peerConnection.audioTransceiver, {
281
- type: 'audio',
282
- track: audioTrack,
283
- sendTrack: mediaDirection.sendAudio && audioTrack,
284
- receiveTrack: mediaDirection.receiveAudio
285
- }); // update video transceiver
286
-
287
- Media.setTrackOnTransceiver(peerConnection.videoTransceiver, {
288
- type: 'video',
289
- track: videoTrack,
290
- sendTrack: mediaDirection.sendVideo && videoTrack,
291
- receiveTrack: mediaDirection.receiveVideo
292
- }); // update content transceiver
293
-
294
- Media.setTrackOnTransceiver(peerConnection.shareTransceiver, {
295
- type: 'video',
296
- track: shareTrack,
297
- sendTrack: mediaDirection.sendShare && shareTrack,
298
- receiveTrack: mediaDirection.receiveShare
299
- });
300
-
301
- peerConnection.onnegotiationneeded = function (event) {
302
- _loggerProxy.default.logger.info("Media:index#updateMedia --> onnegotiationneeded#PeerConnection: ".concat(event));
303
- };
304
-
305
- return _peerConnectionManager.default.createOffer(peerConnection, {
306
- meetingId: meetingId,
307
- remoteQualityLevel: remoteQualityLevel,
308
- enableRtx: enableRtx,
309
- enableExtmap: enableExtmap
310
- });
311
- };
312
103
  /**
313
- * @param {RTCRtpTransceiver} transceiver
104
+ * creates a webrtc media connection with provided tracks and mediaDirection configuration
105
+ *
106
+ * @param {boolean} isMultistream
107
+ * @param {string} debugId string useful for debugging (will appear in media connection logs)
314
108
  * @param {Object} options
315
- * @param {MediaStreamTrack} options.track
316
- * @returns {undefined}
109
+ * @param {Object} [options.mediaProperties] contains mediaDirection and local tracks:
110
+ * audioTrack, videoTrack and shareTrack
111
+ * @param {string} [options.remoteQualityLevel] LOW|MEDIUM|HIGH applicable only to non-multistream connections
112
+ * @param {boolean} [options.enableRtx] applicable only to non-multistream connections
113
+ * @param {boolean} [options.enableExtmap] applicable only to non-multistream connections
114
+ * @param {Object} [options.turnServerInfo]
115
+ * @param {BundlePolicy} [options.bundlePolicy]
116
+ * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
317
117
  */
318
-
319
-
320
- Media.setTrackOnTransceiver = function (transceiver, options) {
321
- var type = options.type,
322
- track = options.track,
323
- sendTrack = options.sendTrack,
324
- receiveTrack = options.receiveTrack;
325
-
326
- try {
327
- var result = Media.checkTracks(type, sendTrack && track, receiveTrack);
328
- transceiver.direction = result.direction;
329
-
330
- if (options.track) {
331
- transceiver.sender.replaceTrack(track);
118
+ Media.createMediaConnection = function (isMultistream, debugId, options) {
119
+ var mediaProperties = options.mediaProperties,
120
+ remoteQualityLevel = options.remoteQualityLevel,
121
+ enableRtx = options.enableRtx,
122
+ enableExtmap = options.enableExtmap,
123
+ turnServerInfo = options.turnServerInfo,
124
+ bundlePolicy = options.bundlePolicy;
125
+ var iceServers = [];
126
+ if (turnServerInfo) {
127
+ iceServers.push({
128
+ urls: turnServerInfo.url,
129
+ username: turnServerInfo.username || '',
130
+ credential: turnServerInfo.password || ''
131
+ });
132
+ }
133
+ if (isMultistream) {
134
+ var _mediaProperties$medi, _mediaProperties$medi2, _mediaProperties$medi3, _mediaProperties$medi4;
135
+ var config = {
136
+ iceServers: iceServers,
137
+ enableMainAudio: ((_mediaProperties$medi = mediaProperties.mediaDirection) === null || _mediaProperties$medi === void 0 ? void 0 : _mediaProperties$medi.sendAudio) || ((_mediaProperties$medi2 = mediaProperties.mediaDirection) === null || _mediaProperties$medi2 === void 0 ? void 0 : _mediaProperties$medi2.receiveAudio),
138
+ enableMainVideo: ((_mediaProperties$medi3 = mediaProperties.mediaDirection) === null || _mediaProperties$medi3 === void 0 ? void 0 : _mediaProperties$medi3.sendVideo) || ((_mediaProperties$medi4 = mediaProperties.mediaDirection) === null || _mediaProperties$medi4 === void 0 ? void 0 : _mediaProperties$medi4.receiveVideo)
139
+ };
140
+ if (bundlePolicy) {
141
+ config.bundlePolicy = bundlePolicy;
332
142
  }
333
- } catch (e) {
334
- _loggerProxy.default.logger.error("Media:index#setTrackOnTransceiver --> ".concat(e));
335
-
336
- throw e;
143
+ return new _internalMediaCore.MultistreamRoapMediaConnection(config, debugId);
337
144
  }
145
+ if (!mediaProperties) {
146
+ throw new Error('mediaProperties have to be provided for non-multistream media connections');
147
+ }
148
+ var mediaDirection = mediaProperties.mediaDirection,
149
+ audioTrack = mediaProperties.audioTrack,
150
+ videoTrack = mediaProperties.videoTrack,
151
+ shareTrack = mediaProperties.shareTrack;
152
+ return new _internalMediaCore.RoapMediaConnection({
153
+ iceServers: iceServers,
154
+ skipInactiveTransceivers: false,
155
+ requireH264: true,
156
+ sdpMunging: {
157
+ convertPort9to0: false,
158
+ addContentSlides: true,
159
+ bandwidthLimits: {
160
+ audio: _config2.default.meetings.bandwidth.audio,
161
+ video: _config2.default.meetings.bandwidth.video
162
+ },
163
+ startBitrate: _config2.default.meetings.bandwidth.startBitrate,
164
+ periodicKeyframes: 20,
165
+ // it's always been hardcoded in SDK so for now keeping it that way
166
+ disableExtmap: !enableExtmap,
167
+ disableRtx: !enableRtx // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP
168
+ }
169
+ }, {
170
+ send: {
171
+ audio: audioTrack === null || audioTrack === void 0 ? void 0 : audioTrack.underlyingTrack,
172
+ video: videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.underlyingTrack,
173
+ screenShareVideo: shareTrack === null || shareTrack === void 0 ? void 0 : shareTrack.underlyingTrack
174
+ },
175
+ receive: {
176
+ audio: mediaDirection.receiveAudio,
177
+ video: mediaDirection.receiveVideo,
178
+ screenShareVideo: mediaDirection.receiveShare,
179
+ remoteQualityLevel: remoteQualityLevel
180
+ }
181
+ }, debugId);
338
182
  };
339
- /**
340
- * creates a new offer
341
- * @param {Object} meetingProperties
342
- * @param {string} meetingProperties.meetingId
343
- * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
344
- * @param {RTCPeerConnection} peerConnection
345
- * @param {RTCRtpTransceiver} transceiver
346
- * @param {Object} options see #Media.setTrackOnTransceiver
347
- * @returns {Promise}
348
- */
349
-
350
183
 
351
- Media.updateTransceiver = function (_ref4, peerConnection, transceiver, options) {
352
- var meetingId = _ref4.meetingId,
353
- remoteQualityLevel = _ref4.remoteQualityLevel,
354
- enableRtx = _ref4.enableRtx,
355
- enableExtmap = _ref4.enableExtmap;
356
- Media.setTrackOnTransceiver(transceiver, options);
357
- return _peerConnectionManager.default.createOffer(peerConnection, {
358
- meetingId: meetingId,
359
- remoteQualityLevel: remoteQualityLevel,
360
- enableRtx: enableRtx,
361
- enableExtmap: enableExtmap
362
- });
363
- };
364
184
  /**
365
185
  * generates share streams
366
186
  * @param {Object} options parameter
@@ -373,29 +193,26 @@ Media.updateTransceiver = function (_ref4, peerConnection, transceiver, options)
373
193
  * @param {Object} config SDK Configuration for meetings plugin
374
194
  * @returns {Promise.<MediaStream>}
375
195
  */
376
-
377
-
378
196
  Media.getDisplayMedia = function (options) {
379
197
  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
380
198
  // SDK screen share resolution settings from Webex.init
381
- var customResolution = config.screenResolution || {}; // user defined screen share frame rate
382
-
383
- var customShareFrameRate = config.screenFrameRate || null; // user defined share preferences
384
-
199
+ var customResolution = config.screenResolution || {};
200
+ // user defined screen share frame rate
201
+ var customShareFrameRate = config.screenFrameRate || null;
202
+ // user defined share preferences
385
203
  var hasSharePreferences = options.sharePreferences;
386
204
  var hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;
387
205
  var hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;
388
206
  var _Config$meetings = _config.default.meetings,
389
- screenResolution = _Config$meetings.screenResolution,
390
- resolution = _Config$meetings.resolution,
391
- videoShareFrameRate = _Config$meetings.videoShareFrameRate,
392
- screenFrameRate = _Config$meetings.screenFrameRate,
393
- aspectRatio = _Config$meetings.aspectRatio;
207
+ screenResolution = _Config$meetings.screenResolution,
208
+ resolution = _Config$meetings.resolution,
209
+ videoShareFrameRate = _Config$meetings.videoShareFrameRate,
210
+ screenFrameRate = _Config$meetings.screenFrameRate,
211
+ aspectRatio = _Config$meetings.aspectRatio;
394
212
  var shareConstraints = {
395
213
  cursor: _constants.MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,
396
214
  aspectRatio: aspectRatio
397
215
  };
398
-
399
216
  if (hasCustomConstraints) {
400
217
  shareConstraints = hasSharePreferences.shareConstraints;
401
218
  } else if (hasHighFrameRate) {
@@ -410,14 +227,15 @@ Media.getDisplayMedia = function (options) {
410
227
  height: customResolution.idealHeight || screenResolution.idealHeight,
411
228
  width: customResolution.idealWidth || screenResolution.idealWidth
412
229
  }, config.screenResolution);
413
- } // chrome and webkit based browsers (edge, safari) automatically adjust everything
230
+ }
231
+
232
+ // chrome and webkit based browsers (edge, safari) automatically adjust everything
414
233
  // and we have noticed higher quality with those browser types
415
234
  // firefox specifically has some issues with resolution and frame rate decision making
416
235
  // so we are making it optional and configurable (with defaults) for firefox
417
236
  // to have higher quality, and for developers to control the values
418
237
  // eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox
419
238
 
420
-
421
239
  if (isBrowser('firefox')) {
422
240
  var mediaConfig = {
423
241
  audio: options.sendAudio,
@@ -433,22 +251,21 @@ Media.getDisplayMedia = function (options) {
433
251
  // https://bugzilla.mozilla.org/show_bug.cgi?id=1321221
434
252
  stream.getVideoTracks()[0].applyConstraints(shareConstraints);
435
253
  }
436
-
437
254
  return stream;
438
255
  });
439
256
  }
440
-
441
257
  var getDisplayMediaParams = {
442
258
  video: options.sendShare ? shareConstraints : false
443
- }; // safari doesn't support sending screen share audio
444
- // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
259
+ };
445
260
 
261
+ // safari doesn't support sending screen share audio
262
+ // https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
446
263
  if (options.sendAudio && isBrowser('safari')) {
447
264
  getDisplayMediaParams.audio = options.sendAudio;
448
265
  }
449
-
450
266
  return navigator.mediaDevices.getDisplayMedia(getDisplayMediaParams);
451
267
  };
268
+
452
269
  /**
453
270
  * generates audio and video using constraints (often called after getSupportedDevices)
454
271
  * @param {Object|Boolean} audio gum constraints
@@ -456,8 +273,6 @@ Media.getDisplayMedia = function (options) {
456
273
  * @param {Object} config SDK Configuration for meetings plugin
457
274
  * @returns {Object} {streams}
458
275
  */
459
-
460
-
461
276
  Media.getMedia = function (audio, video, config) {
462
277
  var defaultWidth = {
463
278
  ideal: config.resolution.idealWidth,
@@ -474,23 +289,26 @@ Media.getMedia = function (audio, video, config) {
474
289
  video: video ? isBrowser('firefox') && video.width && video.width.max === 320 ? {
475
290
  deviceId: video.deviceId ? video.deviceId : undefined,
476
291
  width: 320,
477
- height: 180
292
+ height: 180,
293
+ frameRate: video.frameRate ? video.frameRate : undefined,
294
+ facingMode: video.facingMode ? video.facingMode : undefined
478
295
  } : {
479
296
  deviceId: video.deviceId ? video.deviceId : undefined,
480
297
  width: video.width ? video.width : defaultWidth,
481
- height: video.height ? video.height : defaultHeight
298
+ height: video.height ? video.height : defaultHeight,
299
+ frameRate: video.frameRate ? video.frameRate : undefined,
300
+ facingMode: video.facingMode ? video.facingMode : undefined
482
301
  } : false,
483
302
  fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing
484
-
485
303
  };
304
+
486
305
  return navigator.mediaDevices.getUserMedia(mediaConfig).catch(function (err) {
487
306
  var logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
488
-
489
307
  _loggerProxy.default.logger.error("".concat(logPath, " failed - ").concat(err, " (").concat(err.constraint, ")"));
490
-
491
308
  throw err;
492
309
  });
493
310
  };
311
+
494
312
  /**
495
313
  * Checks if the machine has at least one audio or video device (Dont use this for screen share)
496
314
  * @param {object} [options]
@@ -503,11 +321,9 @@ Media.getMedia = function (audio, video, config) {
503
321
  * sendVideo: true/false
504
322
  *}
505
323
  */
506
-
507
-
508
- Media.getSupportedDevice = function (_ref5) {
509
- var sendAudio = _ref5.sendAudio,
510
- sendVideo = _ref5.sendVideo;
324
+ Media.getSupportedDevice = function (_ref) {
325
+ var sendAudio = _ref.sendAudio,
326
+ sendVideo = _ref.sendVideo;
511
327
  return _promise.default.resolve().then(function () {
512
328
  if (!navigator.mediaDevices || navigator.mediaDevices.enumerateDevices === undefined) {
513
329
  return {
@@ -515,7 +331,6 @@ Media.getSupportedDevice = function (_ref5) {
515
331
  sendVideo: false
516
332
  };
517
333
  }
518
-
519
334
  return navigator.mediaDevices.enumerateDevices().then(function (devices) {
520
335
  var supported = {
521
336
  audio: devices.filter(function (device) {
@@ -532,40 +347,35 @@ Media.getSupportedDevice = function (_ref5) {
532
347
  });
533
348
  });
534
349
  };
350
+
535
351
  /**
536
352
  * proxy to browser navigator.mediaDevices.enumerateDevices()
537
353
  * @returns {Promise}
538
354
  */
539
-
540
-
541
355
  Media.getDevices = function () {
542
356
  if (navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
543
357
  return navigator.mediaDevices.enumerateDevices();
544
358
  }
545
-
546
359
  return _promise.default.reject(new _media.default('enumerateDevices not supported.'));
547
360
  };
361
+
548
362
  /**
549
363
  *
550
364
  * Toggle a specific stream
551
365
  * noop as of now, does nothing
552
366
  * @returns {null}
553
367
  */
554
-
555
-
556
368
  Media.toggleStream = function () {};
369
+
557
370
  /**
558
371
  * Stop input stream
559
372
  * @param {MediaTrack} track A media stream
560
373
  * @returns {null}
561
374
  */
562
-
563
-
564
375
  Media.stopTracks = function (track) {
565
376
  if (!track) {
566
377
  return _promise.default.resolve();
567
378
  }
568
-
569
379
  return _promise.default.resolve().then(function () {
570
380
  if (track && track.stop) {
571
381
  try {
@@ -576,38 +386,7 @@ Media.stopTracks = function (track) {
576
386
  }
577
387
  });
578
388
  };
579
- /**
580
- *
581
- * Stop input stream
582
- * @param {Stream} stream A media stream
583
- * @returns {null}
584
- * @deprecated after v1.89.3
585
- */
586
-
587
-
588
- Media.stopStream = function (stream) {
589
- _loggerProxy.default.logger.warn('Media:index#stopStream --> [DEPRECATION WARNING]: stopStream has been deprecated after v1.89.3');
590
389
 
591
- if (!stream) {
592
- return _promise.default.resolve();
593
- }
594
- /*
595
- * To release local media
596
- * 1) Chrome requires all tracks to be stopped (stream.stop got deprecated)
597
- * 2) Firefox requires the stream to be stopped
598
- */
599
-
600
-
601
- return _promise.default.resolve().then(function () {
602
- if (stream.getTracks) {
603
- stream.getTracks().forEach(function (track) {
604
- track.stop();
605
- });
606
- } else if (stream.stop) {
607
- stream.stop();
608
- }
609
- });
610
- };
611
390
  /**
612
391
  * generates streams for audio video and share
613
392
  * @param {object} mediaSetting parameter
@@ -624,8 +403,6 @@ Media.stopStream = function (stream) {
624
403
  * @param {Object} config SDK Config
625
404
  * @returns {Array} [localStream, shareStream]
626
405
  */
627
-
628
-
629
406
  Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, config) {
630
407
  return Media.getLocalMedia({
631
408
  sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
@@ -640,7 +417,6 @@ Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, confi
640
417
  });
641
418
  });
642
419
  };
643
-
644
420
  var _default = Media;
645
421
  exports.default = _default;
646
422
  //# sourceMappingURL=index.js.map