@webex/plugin-meetings 3.0.0-beta.3 → 3.0.0-beta.300

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 (601) hide show
  1. package/README.md +46 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +9 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +315 -68
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +114 -17
  89. package/dist/index.js.map +1 -1
  90. package/dist/interpretation/collection.js +23 -0
  91. package/dist/interpretation/collection.js.map +1 -0
  92. package/dist/interpretation/index.js +366 -0
  93. package/dist/interpretation/index.js.map +1 -0
  94. package/dist/interpretation/siLanguage.js +25 -0
  95. package/dist/interpretation/siLanguage.js.map +1 -0
  96. package/dist/locus-info/controlsUtils.js +101 -29
  97. package/dist/locus-info/controlsUtils.js.map +1 -1
  98. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  99. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  100. package/dist/locus-info/fullState.js +0 -15
  101. package/dist/locus-info/fullState.js.map +1 -1
  102. package/dist/locus-info/hostUtils.js +4 -12
  103. package/dist/locus-info/hostUtils.js.map +1 -1
  104. package/dist/locus-info/index.js +561 -246
  105. package/dist/locus-info/index.js.map +1 -1
  106. package/dist/locus-info/infoUtils.js +10 -38
  107. package/dist/locus-info/infoUtils.js.map +1 -1
  108. package/dist/locus-info/mediaSharesUtils.js +68 -38
  109. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  110. package/dist/locus-info/parser.js +314 -163
  111. package/dist/locus-info/parser.js.map +1 -1
  112. package/dist/locus-info/selfUtils.js +110 -92
  113. package/dist/locus-info/selfUtils.js.map +1 -1
  114. package/dist/media/index.js +103 -231
  115. package/dist/media/index.js.map +1 -1
  116. package/dist/media/properties.js +137 -222
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.js +2 -9
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.js +505 -495
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/in-meeting-actions.js +93 -14
  123. package/dist/meeting/in-meeting-actions.js.map +1 -1
  124. package/dist/meeting/index.js +4624 -3740
  125. package/dist/meeting/index.js.map +1 -1
  126. package/dist/meeting/locusMediaRequest.js +292 -0
  127. package/dist/meeting/locusMediaRequest.js.map +1 -0
  128. package/dist/meeting/muteState.js +249 -184
  129. package/dist/meeting/muteState.js.map +1 -1
  130. package/dist/meeting/request.js +400 -346
  131. package/dist/meeting/request.js.map +1 -1
  132. package/dist/meeting/request.type.js +7 -0
  133. package/dist/meeting/request.type.js.map +1 -0
  134. package/dist/meeting/state.js +21 -31
  135. package/dist/meeting/state.js.map +1 -1
  136. package/dist/meeting/util.js +598 -586
  137. package/dist/meeting/util.js.map +1 -1
  138. package/dist/meeting-info/collection.js +6 -25
  139. package/dist/meeting-info/collection.js.map +1 -1
  140. package/dist/meeting-info/index.js +87 -39
  141. package/dist/meeting-info/index.js.map +1 -1
  142. package/dist/meeting-info/meeting-info-v2.js +349 -283
  143. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  144. package/dist/meeting-info/request.js +3 -15
  145. package/dist/meeting-info/request.js.map +1 -1
  146. package/dist/meeting-info/util.js +98 -183
  147. package/dist/meeting-info/util.js.map +1 -1
  148. package/dist/meeting-info/utilv2.js +143 -234
  149. package/dist/meeting-info/utilv2.js.map +1 -1
  150. package/dist/meetings/collection.js +26 -19
  151. package/dist/meetings/collection.js.map +1 -1
  152. package/dist/meetings/index.js +813 -596
  153. package/dist/meetings/index.js.map +1 -1
  154. package/dist/meetings/meetings.types.js +7 -0
  155. package/dist/meetings/meetings.types.js.map +1 -0
  156. package/dist/meetings/request.js +26 -41
  157. package/dist/meetings/request.js.map +1 -1
  158. package/dist/meetings/util.js +183 -156
  159. package/dist/meetings/util.js.map +1 -1
  160. package/dist/member/index.js +135 -85
  161. package/dist/member/index.js.map +1 -1
  162. package/dist/member/types.js +25 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +158 -88
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +13 -12
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +194 -204
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +113 -68
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +15 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +324 -259
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +14 -7
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +11 -558
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +263 -50
  181. package/dist/multistream/mediaRequestManager.js.map +1 -1
  182. package/dist/multistream/receiveSlot.js +58 -65
  183. package/dist/multistream/receiveSlot.js.map +1 -1
  184. package/dist/multistream/receiveSlotManager.js +76 -95
  185. package/dist/multistream/receiveSlotManager.js.map +1 -1
  186. package/dist/multistream/remoteMedia.js +62 -76
  187. package/dist/multistream/remoteMedia.js.map +1 -1
  188. package/dist/multistream/remoteMediaGroup.js +66 -43
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  190. package/dist/multistream/remoteMediaManager.js +536 -439
  191. package/dist/multistream/remoteMediaManager.js.map +1 -1
  192. package/dist/multistream/sendSlotManager.js +233 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +40 -59
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +21 -45
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +1 -31
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +0 -13
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +322 -200
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +20 -26
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +13 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +109 -0
  209. package/dist/reactions/reactions.js.map +1 -0
  210. package/dist/reactions/reactions.type.js +36 -0
  211. package/dist/reactions/reactions.type.js.map +1 -0
  212. package/dist/reconnection-manager/index.js +388 -476
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +17 -0
  215. package/dist/recording-controller/enums.js.map +1 -0
  216. package/dist/recording-controller/index.js +362 -0
  217. package/dist/recording-controller/index.js.map +1 -0
  218. package/dist/recording-controller/util.js +64 -0
  219. package/dist/recording-controller/util.js.map +1 -0
  220. package/dist/roap/index.js +99 -94
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +131 -135
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +151 -101
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +12 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +117 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +1 -95
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +416 -497
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +145 -88
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +22 -47
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/types/annotation/annotation.types.d.ts +42 -0
  239. package/dist/types/annotation/constants.d.ts +31 -0
  240. package/dist/types/annotation/index.d.ts +117 -0
  241. package/dist/types/breakouts/breakout.d.ts +8 -0
  242. package/dist/types/breakouts/collection.d.ts +5 -0
  243. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  244. package/dist/types/breakouts/events.d.ts +8 -0
  245. package/dist/types/breakouts/index.d.ts +5 -0
  246. package/dist/types/breakouts/request.d.ts +22 -0
  247. package/dist/types/breakouts/utils.d.ts +15 -0
  248. package/dist/types/common/browser-detection.d.ts +9 -0
  249. package/dist/types/common/collection.d.ts +48 -0
  250. package/dist/types/common/config.d.ts +2 -0
  251. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  252. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  253. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  254. package/dist/types/common/errors/media.d.ts +15 -0
  255. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  256. package/dist/types/common/errors/parameter.d.ts +15 -0
  257. package/dist/types/common/errors/password-error.d.ts +15 -0
  258. package/dist/types/common/errors/permission.d.ts +14 -0
  259. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  260. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  261. package/dist/types/common/errors/reconnection.d.ts +15 -0
  262. package/dist/types/common/errors/stats.d.ts +15 -0
  263. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  264. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  265. package/dist/types/common/events/events-scope.d.ts +17 -0
  266. package/dist/types/common/events/events.d.ts +12 -0
  267. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  268. package/dist/types/common/events/util.d.ts +2 -0
  269. package/dist/types/common/logs/logger-config.d.ts +2 -0
  270. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  271. package/dist/types/common/logs/request.d.ts +36 -0
  272. package/dist/types/common/queue.d.ts +34 -0
  273. package/dist/types/config.d.ts +71 -0
  274. package/dist/types/constants.d.ts +1066 -0
  275. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  276. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  277. package/dist/types/controls-options-manager/index.d.ts +136 -0
  278. package/dist/types/controls-options-manager/types.d.ts +43 -0
  279. package/dist/types/controls-options-manager/util.d.ts +1 -0
  280. package/dist/types/index.d.ts +7 -0
  281. package/dist/types/interpretation/collection.d.ts +5 -0
  282. package/dist/types/interpretation/index.d.ts +5 -0
  283. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  284. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  285. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  286. package/dist/types/locus-info/fullState.d.ts +2 -0
  287. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  288. package/dist/types/locus-info/index.d.ts +322 -0
  289. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  290. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  291. package/dist/types/locus-info/parser.d.ts +273 -0
  292. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  293. package/dist/types/media/index.d.ts +34 -0
  294. package/dist/types/media/properties.d.ts +93 -0
  295. package/dist/types/media/util.d.ts +2 -0
  296. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  297. package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
  298. package/dist/types/meeting/index.d.ts +1676 -0
  299. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  300. package/dist/types/meeting/muteState.d.ts +184 -0
  301. package/dist/types/meeting/request.d.ts +290 -0
  302. package/dist/types/meeting/request.type.d.ts +11 -0
  303. package/dist/types/meeting/state.d.ts +9 -0
  304. package/dist/types/meeting/util.d.ts +102 -0
  305. package/dist/types/meeting-info/collection.d.ts +20 -0
  306. package/dist/types/meeting-info/index.d.ts +69 -0
  307. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  308. package/dist/types/meeting-info/request.d.ts +22 -0
  309. package/dist/types/meeting-info/util.d.ts +2 -0
  310. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  311. package/dist/types/meetings/collection.d.ts +31 -0
  312. package/dist/types/meetings/index.d.ts +367 -0
  313. package/dist/types/meetings/meetings.types.d.ts +4 -0
  314. package/dist/types/meetings/request.d.ts +27 -0
  315. package/dist/types/meetings/util.d.ts +18 -0
  316. package/dist/types/member/index.d.ts +160 -0
  317. package/dist/types/member/types.d.ts +32 -0
  318. package/dist/types/member/util.d.ts +2 -0
  319. package/dist/types/members/collection.d.ts +29 -0
  320. package/dist/types/members/index.d.ts +353 -0
  321. package/dist/types/members/request.d.ts +114 -0
  322. package/dist/types/members/types.d.ts +25 -0
  323. package/dist/types/members/util.d.ts +215 -0
  324. package/dist/types/metrics/constants.d.ts +65 -0
  325. package/dist/types/metrics/index.d.ts +45 -0
  326. package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
  327. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  328. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  329. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  330. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  331. package/dist/types/multistream/remoteMediaManager.d.ts +285 -0
  332. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  333. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  334. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  335. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  336. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  337. package/dist/types/reachability/index.d.ts +194 -0
  338. package/dist/types/reachability/request.d.ts +39 -0
  339. package/dist/types/reactions/constants.d.ts +3 -0
  340. package/dist/types/reactions/reactions.d.ts +4 -0
  341. package/dist/types/reactions/reactions.type.d.ts +52 -0
  342. package/dist/types/reconnection-manager/index.d.ts +126 -0
  343. package/dist/types/recording-controller/enums.d.ts +7 -0
  344. package/dist/types/recording-controller/index.d.ts +207 -0
  345. package/dist/types/recording-controller/util.d.ts +14 -0
  346. package/dist/types/roap/index.d.ts +78 -0
  347. package/dist/types/roap/request.d.ts +39 -0
  348. package/dist/types/roap/turnDiscovery.d.ts +92 -0
  349. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  350. package/dist/types/rtcMetrics/index.d.ts +47 -0
  351. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  352. package/dist/types/statsAnalyzer/index.d.ts +201 -0
  353. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  354. package/dist/types/transcription/index.d.ts +64 -0
  355. package/dist/types/webinar/collection.d.ts +16 -0
  356. package/dist/types/webinar/index.d.ts +5 -0
  357. package/dist/webinar/collection.js +44 -0
  358. package/dist/webinar/collection.js.map +1 -0
  359. package/dist/webinar/index.js +69 -0
  360. package/dist/webinar/index.js.map +1 -0
  361. package/internal-README.md +7 -6
  362. package/package.json +29 -21
  363. package/src/annotation/annotation.types.ts +50 -0
  364. package/src/annotation/constants.ts +36 -0
  365. package/src/annotation/index.ts +328 -0
  366. package/src/breakouts/README.md +220 -0
  367. package/src/breakouts/breakout.ts +188 -0
  368. package/src/breakouts/collection.ts +19 -0
  369. package/src/breakouts/edit-lock-error.ts +25 -0
  370. package/src/breakouts/events.ts +56 -0
  371. package/src/breakouts/index.ts +925 -0
  372. package/src/breakouts/request.ts +55 -0
  373. package/src/breakouts/utils.ts +57 -0
  374. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  375. package/src/common/collection.ts +9 -7
  376. package/src/common/{config.js → config.ts} +1 -1
  377. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  378. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  379. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  380. package/src/common/errors/{media.js → media.ts} +11 -7
  381. package/src/common/errors/no-meeting-info.ts +24 -0
  382. package/src/common/errors/parameter.ts +11 -7
  383. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  384. package/src/common/errors/{permission.js → permission.ts} +10 -6
  385. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  386. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  387. package/src/common/errors/{stats.js → stats.ts} +11 -7
  388. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  389. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  390. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  391. package/src/common/events/{events.js → events.ts} +5 -1
  392. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  393. package/src/common/events/{util.js → util.ts} +2 -3
  394. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  395. package/src/common/logs/logger-proxy.ts +44 -0
  396. package/src/common/logs/{request.js → request.ts} +26 -9
  397. package/src/common/queue.ts +22 -9
  398. package/src/{config.js → config.ts} +18 -19
  399. package/src/constants.ts +260 -22
  400. package/src/controls-options-manager/constants.ts +5 -0
  401. package/src/controls-options-manager/enums.ts +18 -0
  402. package/src/controls-options-manager/index.ts +278 -0
  403. package/src/controls-options-manager/types.ts +59 -0
  404. package/src/controls-options-manager/util.ts +300 -0
  405. package/src/index.ts +40 -0
  406. package/src/interpretation/README.md +60 -0
  407. package/src/interpretation/collection.ts +19 -0
  408. package/src/interpretation/index.ts +332 -0
  409. package/src/interpretation/siLanguage.ts +18 -0
  410. package/src/locus-info/controlsUtils.ts +222 -0
  411. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  412. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  413. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  414. package/src/locus-info/{index.js → index.ts} +557 -119
  415. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  416. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +81 -17
  417. package/src/locus-info/{parser.js → parser.ts} +303 -104
  418. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  419. package/src/media/index.ts +458 -0
  420. package/src/media/properties.ts +283 -0
  421. package/src/media/{util.js → util.ts} +2 -2
  422. package/src/mediaQualityMetrics/config.ts +384 -0
  423. package/src/meeting/in-meeting-actions.ts +191 -3
  424. package/src/meeting/index.ts +7882 -0
  425. package/src/meeting/locusMediaRequest.ts +313 -0
  426. package/src/meeting/muteState.ts +451 -0
  427. package/src/meeting/{request.js → request.ts} +421 -220
  428. package/src/meeting/request.type.ts +13 -0
  429. package/src/meeting/{state.js → state.ts} +50 -35
  430. package/src/meeting/util.ts +697 -0
  431. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  432. package/src/meeting-info/index.ts +210 -0
  433. package/src/meeting-info/meeting-info-v2.ts +429 -0
  434. package/src/meeting-info/{request.js → request.ts} +14 -4
  435. package/src/meeting-info/{util.js → util.ts} +60 -51
  436. package/src/meeting-info/{utilv2.js → utilv2.ts} +78 -71
  437. package/src/meetings/{collection.js → collection.ts} +26 -3
  438. package/src/meetings/index.ts +1470 -0
  439. package/src/meetings/meetings.types.ts +12 -0
  440. package/src/meetings/{request.js → request.ts} +34 -25
  441. package/src/meetings/{util.js → util.ts} +132 -37
  442. package/src/member/{index.js → index.ts} +160 -56
  443. package/src/member/types.ts +38 -0
  444. package/src/member/util.ts +397 -0
  445. package/src/members/{collection.js → collection.ts} +10 -2
  446. package/src/members/{index.js → index.ts} +351 -146
  447. package/src/members/request.ts +255 -0
  448. package/src/members/types.ts +29 -0
  449. package/src/members/util.ts +353 -0
  450. package/src/metrics/{constants.js → constants.ts} +12 -6
  451. package/src/metrics/index.ts +73 -0
  452. package/src/multistream/mediaRequestManager.ts +337 -63
  453. package/src/multistream/receiveSlot.ts +69 -26
  454. package/src/multistream/receiveSlotManager.ts +66 -42
  455. package/src/multistream/remoteMedia.ts +40 -5
  456. package/src/multistream/remoteMediaGroup.ts +63 -3
  457. package/src/multistream/remoteMediaManager.ts +300 -66
  458. package/src/multistream/sendSlotManager.ts +170 -0
  459. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  460. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  461. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  462. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  463. package/src/reachability/index.ts +671 -0
  464. package/src/reachability/request.ts +50 -35
  465. package/src/reactions/constants.ts +4 -0
  466. package/src/reactions/reactions.ts +104 -0
  467. package/src/reactions/reactions.type.ts +62 -0
  468. package/src/reconnection-manager/{index.js → index.ts} +258 -138
  469. package/src/recording-controller/enums.ts +8 -0
  470. package/src/recording-controller/index.ts +332 -0
  471. package/src/recording-controller/util.ts +75 -0
  472. package/src/roap/{index.js → index.ts} +127 -79
  473. package/src/roap/request.ts +153 -0
  474. package/src/roap/turnDiscovery.ts +109 -47
  475. package/src/rtcMetrics/constants.ts +3 -0
  476. package/src/rtcMetrics/index.ts +100 -0
  477. package/src/statsAnalyzer/global.ts +37 -0
  478. package/src/statsAnalyzer/index.ts +1250 -0
  479. package/src/statsAnalyzer/mqaUtil.ts +292 -0
  480. package/src/transcription/{index.js → index.ts} +46 -39
  481. package/src/webinar/collection.ts +31 -0
  482. package/src/webinar/index.ts +62 -0
  483. package/test/integration/spec/converged-space-meetings.js +233 -0
  484. package/test/integration/spec/journey.js +790 -530
  485. package/test/integration/spec/space-meeting.js +391 -204
  486. package/test/integration/spec/transcription.js +7 -8
  487. package/test/unit/spec/annotation/index.ts +418 -0
  488. package/test/unit/spec/breakouts/breakout.ts +237 -0
  489. package/test/unit/spec/breakouts/collection.ts +15 -0
  490. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  491. package/test/unit/spec/breakouts/events.ts +89 -0
  492. package/test/unit/spec/breakouts/index.ts +1790 -0
  493. package/test/unit/spec/breakouts/request.ts +104 -0
  494. package/test/unit/spec/breakouts/utils.js +72 -0
  495. package/test/unit/spec/common/browser-detection.js +9 -28
  496. package/test/unit/spec/common/queue.js +31 -2
  497. package/test/unit/spec/controls-options-manager/index.js +287 -0
  498. package/test/unit/spec/controls-options-manager/util.js +582 -0
  499. package/test/unit/spec/fixture/locus.js +93 -90
  500. package/test/unit/spec/interpretation/collection.ts +15 -0
  501. package/test/unit/spec/interpretation/index.ts +589 -0
  502. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  503. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  504. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  505. package/test/unit/spec/locus-info/index.js +1390 -17
  506. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  507. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  508. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  509. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  510. package/test/unit/spec/locus-info/parser.js +119 -44
  511. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  512. package/test/unit/spec/locus-info/selfUtils.js +296 -12
  513. package/test/unit/spec/media/index.ts +128 -77
  514. package/test/unit/spec/media/properties.ts +11 -11
  515. package/test/unit/spec/meeting/in-meeting-actions.ts +92 -3
  516. package/test/unit/spec/meeting/index.js +7433 -2752
  517. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  518. package/test/unit/spec/meeting/muteState.js +420 -211
  519. package/test/unit/spec/meeting/request.js +545 -79
  520. package/test/unit/spec/meeting/utils.js +722 -174
  521. package/test/unit/spec/meeting-info/index.js +300 -0
  522. package/test/unit/spec/meeting-info/meetinginfov2.js +624 -76
  523. package/test/unit/spec/meeting-info/request.js +7 -9
  524. package/test/unit/spec/meeting-info/util.js +11 -12
  525. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  526. package/test/unit/spec/meetings/collection.js +15 -1
  527. package/test/unit/spec/meetings/index.js +1365 -377
  528. package/test/unit/spec/meetings/utils.js +216 -14
  529. package/test/unit/spec/member/index.js +61 -7
  530. package/test/unit/spec/member/util.js +526 -26
  531. package/test/unit/spec/members/index.js +536 -55
  532. package/test/unit/spec/members/request.js +228 -40
  533. package/test/unit/spec/members/utils.js +217 -4
  534. package/test/unit/spec/metrics/index.js +12 -66
  535. package/test/unit/spec/multistream/mediaRequestManager.ts +1012 -109
  536. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  537. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  538. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  539. package/test/unit/spec/multistream/remoteMediaGroup.ts +271 -5
  540. package/test/unit/spec/multistream/remoteMediaManager.ts +738 -65
  541. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  542. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  543. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  544. package/test/unit/spec/reachability/index.ts +598 -26
  545. package/test/unit/spec/reachability/request.js +68 -0
  546. package/test/unit/spec/reconnection-manager/index.js +181 -12
  547. package/test/unit/spec/recording-controller/index.js +307 -0
  548. package/test/unit/spec/recording-controller/util.js +229 -0
  549. package/test/unit/spec/roap/index.ts +179 -64
  550. package/test/unit/spec/roap/request.ts +232 -0
  551. package/test/unit/spec/roap/turnDiscovery.ts +123 -58
  552. package/test/unit/spec/rtcMetrics/index.ts +73 -0
  553. package/test/unit/spec/stats-analyzer/index.js +199 -60
  554. package/test/unit/spec/webinar/collection.ts +13 -0
  555. package/test/unit/spec/webinar/index.ts +60 -0
  556. package/test/utils/cmr.js +44 -42
  557. package/test/utils/constants.js +9 -0
  558. package/test/utils/integrationTestUtils.js +46 -0
  559. package/test/utils/testUtils.js +63 -99
  560. package/test/utils/webex-config.js +22 -18
  561. package/test/utils/webex-test-users.js +57 -50
  562. package/tsconfig.json +6 -0
  563. package/dist/media/internal-media-core-wrapper.js +0 -22
  564. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  565. package/dist/meeting/effectsState.js +0 -327
  566. package/dist/meeting/effectsState.js.map +0 -1
  567. package/dist/metrics/config.js +0 -301
  568. package/dist/metrics/config.js.map +0 -1
  569. package/dist/multistream/multistreamMedia.js +0 -116
  570. package/dist/multistream/multistreamMedia.js.map +0 -1
  571. package/dist/peer-connection-manager/util.js +0 -124
  572. package/dist/peer-connection-manager/util.js.map +0 -1
  573. package/src/common/logs/logger-proxy.js +0 -33
  574. package/src/index.js +0 -15
  575. package/src/locus-info/controlsUtils.js +0 -102
  576. package/src/media/index.js +0 -459
  577. package/src/media/internal-media-core-wrapper.ts +0 -9
  578. package/src/media/properties.js +0 -289
  579. package/src/mediaQualityMetrics/config.js +0 -382
  580. package/src/meeting/effectsState.js +0 -205
  581. package/src/meeting/index.js +0 -6284
  582. package/src/meeting/muteState.js +0 -318
  583. package/src/meeting/util.js +0 -506
  584. package/src/meeting-info/index.js +0 -131
  585. package/src/meeting-info/meeting-info-v2.js +0 -255
  586. package/src/meetings/index.js +0 -1015
  587. package/src/member/util.js +0 -254
  588. package/src/members/request.js +0 -131
  589. package/src/members/util.js +0 -258
  590. package/src/metrics/config.js +0 -324
  591. package/src/metrics/index.js +0 -530
  592. package/src/multistream/multistreamMedia.ts +0 -92
  593. package/src/peer-connection-manager/util.ts +0 -117
  594. package/src/reachability/index.js +0 -464
  595. package/src/roap/request.js +0 -127
  596. package/src/statsAnalyzer/global.js +0 -133
  597. package/src/statsAnalyzer/index.js +0 -1006
  598. package/src/statsAnalyzer/mqaUtil.js +0 -173
  599. package/test/unit/spec/meeting/effectsState.js +0 -291
  600. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  601. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,170 @@
1
+ import {
2
+ SendSlot,
3
+ MediaType,
4
+ LocalStream,
5
+ MultistreamRoapMediaConnection,
6
+ } from '@webex/internal-media-core';
7
+
8
+ export default class SendSlotManager {
9
+ private readonly slots: Map<MediaType, SendSlot> = new Map();
10
+ private readonly LoggerProxy: any;
11
+
12
+ constructor(LoggerProxy: any) {
13
+ this.LoggerProxy = LoggerProxy;
14
+ }
15
+
16
+ /**
17
+ * This method is used to create a sendSlot for the given mediaType and returns the created sendSlot
18
+ * @param {MultistreamRoapMediaConnection} mediaConnection MultistreamRoapMediaConnection for which a sendSlot needs to be created
19
+ * @param {MediaType} mediaType MediaType for which a sendSlot needs to be created (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
20
+ * @param {boolean} active This is optional boolean to set the active state of the sendSlot. Default is true
21
+ * @returns {SendSlot} slot The created sendSlot
22
+ */
23
+ public createSlot(
24
+ mediaConnection: MultistreamRoapMediaConnection,
25
+ mediaType: MediaType,
26
+ active = true
27
+ ): SendSlot {
28
+ if (this.slots.has(mediaType)) {
29
+ throw new Error(`Slot for ${mediaType} already exists`);
30
+ }
31
+
32
+ const slot: SendSlot = mediaConnection.createSendSlot(mediaType, active);
33
+
34
+ this.slots.set(mediaType, slot);
35
+
36
+ this.LoggerProxy.logger.info(
37
+ `SendSlotsManager->createSlot#Created slot for ${mediaType} with active ${active}`
38
+ );
39
+
40
+ return slot;
41
+ }
42
+
43
+ /**
44
+ * This method is used to retrieve the sendSlot for the given mediaType
45
+ * @param {MediaType} mediaType of which the slot needs to be retrieved
46
+ * @returns {SendSlot}
47
+ */
48
+ public getSlot(mediaType: MediaType): SendSlot {
49
+ const slot = this.slots.get(mediaType);
50
+
51
+ if (!slot) {
52
+ throw new Error(`Slot for ${mediaType} does not exist`);
53
+ }
54
+
55
+ return slot;
56
+ }
57
+
58
+ /**
59
+ * This method publishes the given stream to the sendSlot for the given mediaType
60
+ * @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
61
+ * @param {LocalStream} stream LocalStream to be published
62
+ * @returns {Promise<void>}
63
+ */
64
+ public async publishStream(mediaType: MediaType, stream: LocalStream): Promise<void> {
65
+ const slot = this.slots.get(mediaType);
66
+
67
+ if (!slot) {
68
+ throw new Error(`Slot for ${mediaType} does not exist`);
69
+ }
70
+
71
+ await slot.publishStream(stream);
72
+
73
+ this.LoggerProxy.logger.info(
74
+ `SendSlotsManager->publishStream#Published stream for ${mediaType} and stream with label ${stream.label} and muted ${stream.muted}`
75
+ );
76
+ }
77
+
78
+ /**
79
+ * This method unpublishes the stream from the sendSlot of the given mediaType
80
+ * @param {MediaType} mediaType MediaType of the sendSlot from which a stream needs to be unpublished (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
81
+ * @returns {Promise<void>}
82
+ */
83
+ public async unpublishStream(mediaType: MediaType): Promise<void> {
84
+ const slot = this.slots.get(mediaType);
85
+
86
+ if (!slot) {
87
+ throw new Error(`Slot for ${mediaType} does not exist`);
88
+ }
89
+
90
+ await slot.unpublishStream();
91
+
92
+ this.LoggerProxy.logger.info(
93
+ `SendSlotsManager->unpublishStream#Unpublished stream for ${mediaType}`
94
+ );
95
+ }
96
+
97
+ /**
98
+ * This method is used to set the active state of the sendSlot for the given mediaType
99
+ * @param {MediaType} mediaType The MediaType of the sendSlot for which the active state needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
100
+ * @param {boolean} active The boolean to set the active state of the sendSlot. Default is true
101
+ * @returns {void}
102
+ */
103
+ public setActive(mediaType: MediaType, active = true): void {
104
+ const slot = this.slots.get(mediaType);
105
+
106
+ if (!slot) {
107
+ throw new Error(`Slot for ${mediaType} does not exist`);
108
+ }
109
+
110
+ slot.active = active;
111
+
112
+ this.LoggerProxy.logger.info(
113
+ `SendSlotsManager->setActive#Set active for ${mediaType} to ${active}`
114
+ );
115
+ }
116
+
117
+ /**
118
+ * This method is used to set the codec parameters for the sendSlot of the given mediaType
119
+ * @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be set (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
120
+ * @param {Object} codecParameters
121
+ * @returns {Promise<void>}
122
+ */
123
+ public async setCodecParameters(
124
+ mediaType: MediaType,
125
+ codecParameters: {
126
+ [key: string]: string | undefined; // As per ts-sdp undefined is considered as a valid value to be used for codec parameters
127
+ }
128
+ ): Promise<void> {
129
+ // These codec parameter changes underneath are SDP value changes that are taken care by WCME automatically. So no need for any change in streams from the web sdk side
130
+ const slot = this.slots.get(mediaType);
131
+
132
+ if (!slot) {
133
+ throw new Error(`Slot for ${mediaType} does not exist`);
134
+ }
135
+
136
+ await slot.setCodecParameters(codecParameters);
137
+
138
+ this.LoggerProxy.logger.info(
139
+ `SendSlotsManager->setCodecParameters#Set codec parameters for ${mediaType} to ${codecParameters}`
140
+ );
141
+ }
142
+
143
+ /**
144
+ * This method is used to delete the codec parameters for the sendSlot of the given mediaType
145
+ * @param {MediaType} mediaType MediaType of the sendSlot for which the codec parameters needs to be deleted (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
146
+ * @param {Array<String>} parameters Array of keys of the codec parameters to be deleted
147
+ * @returns {Promise<void>}
148
+ */
149
+ public async deleteCodecParameters(mediaType: MediaType, parameters: string[]): Promise<void> {
150
+ const slot = this.slots.get(mediaType);
151
+
152
+ if (!slot) {
153
+ throw new Error(`Slot for ${mediaType} does not exist`);
154
+ }
155
+
156
+ await slot.deleteCodecParameters(parameters);
157
+
158
+ this.LoggerProxy.logger.info(
159
+ `SendSlotsManager->deleteCodecParameters#Deleted the following codec parameters -> ${parameters} for ${mediaType}`
160
+ );
161
+ }
162
+
163
+ /**
164
+ * This method is used to reset the SendSlotsManager by deleting all the sendSlots
165
+ * @returns {undefined}
166
+ */
167
+ public reset(): void {
168
+ this.slots.clear();
169
+ }
170
+ }
@@ -1,16 +1,15 @@
1
1
  import EventsScope from '../common/events/events-scope';
2
- import {EVENT_TRIGGERS, STATS} from '../constants';
3
-
2
+ import {EVENT_TRIGGERS} from '../constants';
4
3
 
5
4
  /**
6
- * Meeting - network quality event
7
- * Emitted on each interval of retrieving stats Analyzer data
8
- * @event network:quality
9
- * @type {Object}
10
- * @property {string} mediaType {video|audio}
11
- * @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality
12
- * @memberof NetworkQualityMonitor
13
- */
5
+ * Meeting - network quality event
6
+ * Emitted on each interval of retrieving stats Analyzer data
7
+ * @event network:quality
8
+ * @type {Object}
9
+ * @property {string} mediaType {video|audio}
10
+ * @property {number} networkQualityScore - value determined in determineUplinkNetworkQuality
11
+ * @memberof NetworkQualityMonitor
12
+ */
14
13
  /**
15
14
  * NetworkQualityMonitor class that will emit events based on detected quality
16
15
  *
@@ -18,6 +17,13 @@ import {EVENT_TRIGGERS, STATS} from '../constants';
18
17
  * @extends {EventsScope}
19
18
  */
20
19
  export default class NetworkQualityMonitor extends EventsScope {
20
+ config: any;
21
+ frequencyTypes: any;
22
+ indicatorTypes: any;
23
+ mediaType: any;
24
+ networkQualityScore: any;
25
+ networkQualityStatus: any;
26
+
21
27
  /**
22
28
  * Creates a new instance of NetworkQualityMonitor
23
29
  * @constructor
@@ -29,25 +35,21 @@ export default class NetworkQualityMonitor extends EventsScope {
29
35
  * @property {Object} networkQualityStatus - hash object based on indicatorTypes and frequencyTypes
30
36
  * @property {string} mediaType - audio|video
31
37
  */
32
- constructor(config) {
38
+ constructor(config: any) {
33
39
  super();
34
40
  this.config = config;
35
41
  this.indicatorTypes = Object.freeze({
36
42
  PACKETLOSS: 'packetLoss',
37
43
  LATENCY: 'latency',
38
- JITTER: 'jitter'
44
+ JITTER: 'jitter',
39
45
  });
40
46
  this.frequencyTypes = Object.freeze({
41
47
  UPLINK: 'uplink',
42
- DOWNLINK: 'downlink'
48
+ DOWNLINK: 'downlink',
43
49
  });
44
50
  this.networkQualityScore = 1;
45
51
  this.networkQualityStatus = {
46
- [this.frequencyTypes.UPLINK]: {
47
- [STATS.VIDEO_CORRELATE]: {},
48
- [STATS.AUDIO_CORRELATE]: {},
49
- [STATS.SHARE_CORRELATE]: {}
50
- }
52
+ [this.frequencyTypes.UPLINK]: {},
51
53
  };
52
54
  this.mediaType = null;
53
55
  }
@@ -62,12 +64,12 @@ export default class NetworkQualityMonitor extends EventsScope {
62
64
  this.emit(
63
65
  {
64
66
  file: 'networkQualityMonitor',
65
- function: 'emitNetworkQuality'
67
+ function: 'emitNetworkQuality',
66
68
  },
67
69
  EVENT_TRIGGERS.NETWORK_QUALITY,
68
70
  {
69
71
  mediaType: this.mediaType,
70
- networkQualityScore: this.networkQualityScore
72
+ networkQualityScore: this.networkQualityScore,
71
73
  }
72
74
  );
73
75
  }
@@ -85,7 +87,6 @@ export default class NetworkQualityMonitor extends EventsScope {
85
87
  this.mediaType = null;
86
88
  }
87
89
 
88
-
89
90
  /**
90
91
  * filter data to determine uplink network quality, invoked on same interval as stats analyzer remote-inbout-rtp
91
92
  * @param {Object} configObj
@@ -96,7 +97,15 @@ export default class NetworkQualityMonitor extends EventsScope {
96
97
  * @public
97
98
  * @memberof NetworkQualityMonitor
98
99
  */
99
- determineUplinkNetworkQuality({mediaType, remoteRtpResults, statsAnalyzerCurrentStats}) {
100
+ public determineUplinkNetworkQuality({
101
+ mediaType,
102
+ remoteRtpResults,
103
+ statsAnalyzerCurrentStats,
104
+ }: {
105
+ mediaType: string;
106
+ remoteRtpResults: any;
107
+ statsAnalyzerCurrentStats: object;
108
+ }) {
100
109
  const roundTripTimeInMilliseconds = remoteRtpResults.roundTripTime * 1000;
101
110
  const jitterInMilliseconds = remoteRtpResults.jitter * 1000;
102
111
  const {currentPacketLossRatio} = statsAnalyzerCurrentStats[mediaType].send;
@@ -112,8 +121,7 @@ export default class NetworkQualityMonitor extends EventsScope {
112
121
  * @returns {boolean}
113
122
  */
114
123
  const determinePacketLoss = () => {
115
- if (currentPacketLossRatio >
116
- this.config.videoPacketLossRatioThreshold) {
124
+ if (currentPacketLossRatio > this.config.videoPacketLossRatioThreshold) {
117
125
  this.networkQualityScore = 0;
118
126
 
119
127
  return false;
@@ -157,7 +165,12 @@ export default class NetworkQualityMonitor extends EventsScope {
157
165
  * @param {(number|undefined)} value
158
166
  * @returns {(number|null)}
159
167
  */
160
- const determineIfUndefined = (value) => (typeof value === 'undefined' ? null : value);
168
+ const determineIfUndefined = (value: number | undefined) =>
169
+ typeof value === 'undefined' ? null : value;
170
+
171
+ if (!this.networkQualityStatus[UPLINK][mediaType]) {
172
+ this.networkQualityStatus[UPLINK][mediaType] = {};
173
+ }
161
174
 
162
175
  /**
163
176
  * Values for some browsers specifically Safari will be undefined we explicitly set to null
@@ -167,20 +180,19 @@ export default class NetworkQualityMonitor extends EventsScope {
167
180
  // PACKET LOSS
168
181
  this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {
169
182
  acceptable: determinePacketLoss(),
170
- value: determineIfUndefined(currentPacketLossRatio)
183
+ value: determineIfUndefined(currentPacketLossRatio),
171
184
  };
172
185
 
173
-
174
186
  // LATENCY measured in Round trip time
175
187
  this.networkQualityStatus[UPLINK][mediaType][LATENCY] = {
176
188
  acceptable: determineLatency(),
177
- value: determineIfUndefined(remoteRtpResults.roundTripTime)
189
+ value: determineIfUndefined(remoteRtpResults.roundTripTime),
178
190
  };
179
191
 
180
192
  // JITTER
181
193
  this.networkQualityStatus[UPLINK][mediaType][JITTER] = {
182
194
  acceptable: deterMineJitter(),
183
- value: determineIfUndefined(remoteRtpResults.jitter)
195
+ value: determineIfUndefined(remoteRtpResults.jitter),
184
196
  };
185
197
 
186
198
  this.updateNetworkQualityStatus();
@@ -1,3 +1,4 @@
1
+ // @ts-ignore
1
2
  import {StatelessWebexPlugin} from '@webex/webex-core';
2
3
 
3
4
  import {MEETINGS, _PERSONAL_ROOM_} from '../constants';
@@ -5,11 +6,20 @@ import ParameterError from '../common/errors/parameter';
5
6
 
6
7
  import PersonalMeetingRoomRequest from './request';
7
8
 
8
-
9
9
  /**
10
10
  * @class PersonalMeetingRoom
11
11
  */
12
12
  export default class PersonalMeetingRoom extends StatelessWebexPlugin {
13
+ link: any;
14
+ meetingInfo: any;
15
+ name: any;
16
+ personalMeetingRoomRequest: any;
17
+ pmr: any;
18
+ sipUri: any;
19
+ userId: any;
20
+ meetingLink: any;
21
+ number: any;
22
+
13
23
  namespace = MEETINGS;
14
24
 
15
25
  /**
@@ -17,7 +27,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
17
27
  * @param {Object} attrs
18
28
  * @param {Object} options
19
29
  */
20
- constructor(attrs, options) {
30
+ constructor(attrs: any, options: any) {
21
31
  super({}, options);
22
32
  /**
23
33
  * The pmr server object
@@ -25,7 +35,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
25
35
  * @type {Object}
26
36
  * @public
27
37
  * @memberof PersonalMeetingRoom
28
- */
38
+ */
29
39
  this.pmr = null;
30
40
  /**
31
41
  * The pmr sip Uri
@@ -33,7 +43,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
33
43
  * @type {String}
34
44
  * @public
35
45
  * @memberof PersonalMeetingRoom
36
- */
46
+ */
37
47
  this.sipUri = null;
38
48
  /**
39
49
  * The pmr link
@@ -41,7 +51,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
41
51
  * @type {String}
42
52
  * @public
43
53
  * @memberof PersonalMeetingRoom
44
- */
54
+ */
45
55
  this.link = null;
46
56
  /**
47
57
  * The pmr server object
@@ -49,7 +59,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
49
59
  * @type {Object}
50
60
  * @public
51
61
  * @memberof PersonalMeetingRoom
52
- */
62
+ */
53
63
  this.userId = null;
54
64
  /**
55
65
  * The pmr name
@@ -57,7 +67,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
57
67
  * @type {String}
58
68
  * @public
59
69
  * @memberof PersonalMeetingRoom
60
- */
70
+ */
61
71
  this.name = null;
62
72
  /**
63
73
  * The meeting info request server interface
@@ -65,7 +75,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
65
75
  * @type {MeetingInfo}
66
76
  * @private
67
77
  * @memberof PersonalMeetingRoom
68
- */
78
+ */
69
79
  this.meetingInfo = attrs.meetingInfo;
70
80
  /**
71
81
  * The pmr server request interface
@@ -73,7 +83,8 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
73
83
  * @type {Object}
74
84
  * @private
75
85
  * @memberof PersonalMeetingRoom
76
- */
86
+ */
87
+ // @ts-ignore
77
88
  this.personalMeetingRoomRequest = new PersonalMeetingRoomRequest({}, options);
78
89
  }
79
90
 
@@ -86,19 +97,19 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
86
97
  * @public
87
98
  * @memberof PersonalMeetingRoom
88
99
  */
89
- claim(link, pin, preferred = true) {
100
+ public claim(link: string, pin: string, preferred = true) {
90
101
  const options = {
102
+ // @ts-ignore
91
103
  userId: this.webex.internal.device.userId,
92
104
  passcode: pin,
93
105
  meetingAddress: link,
94
- preferred
106
+ preferred,
95
107
  };
96
108
 
97
109
  return this.personalMeetingRoomRequest.claimPmr(options).then((pmr) => {
98
110
  if (pmr && pmr.body) {
99
111
  this.set(pmr.body);
100
- }
101
- else {
112
+ } else {
102
113
  return Promise.reject(new ParameterError('No PMR body provided. PMR values not updated.'));
103
114
  }
104
115
 
@@ -112,7 +123,7 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
112
123
  * @private
113
124
  * @memberof PersonalMeetingRoom
114
125
  */
115
- set(body) {
126
+ private set(body: any) {
116
127
  this.pmr = body;
117
128
  this.sipUri = body.sipMeetingUri;
118
129
  this.meetingLink = body.webExMeetingLink || body.meetingLink;
@@ -128,17 +139,15 @@ export default class PersonalMeetingRoom extends StatelessWebexPlugin {
128
139
  * @public
129
140
  * @memberof PersonalMeetingRoom
130
141
  */
131
- get() {
142
+ public get() {
132
143
  const options = {
133
- type: _PERSONAL_ROOM_
134
-
144
+ type: _PERSONAL_ROOM_,
135
145
  };
136
146
 
137
147
  return this.meetingInfo.fetchMeetingInfo(options).then((pmr) => {
138
148
  if (pmr && pmr.body && pmr.body.isPmr) {
139
149
  this.set(pmr.body);
140
- }
141
- else {
150
+ } else {
142
151
  return Promise.reject(new TypeError('The PMR requested is NOT a PMR. PMR values not set.'));
143
152
  }
144
153
 
@@ -1,3 +1,4 @@
1
+ // @ts-ignore
1
2
  import {StatelessWebexPlugin} from '@webex/webex-core';
2
3
 
3
4
  import {MEETINGS} from '../constants';
@@ -5,7 +6,6 @@ import ParameterError from '../common/errors/parameter';
5
6
 
6
7
  import PersonalMeetingRoomUtil from './util';
7
8
 
8
-
9
9
  /**
10
10
  * @class MeetingInfoRequest
11
11
  */
@@ -18,9 +18,17 @@ export default class PersonalMeetingRoomRequest extends StatelessWebexPlugin {
18
18
  * @returns {Promise} returns a promise that resolves/rejects the result of the request
19
19
  * @memberof PersonalMeetingRoomRequest
20
20
  */
21
- claimPmr(options) {
22
- if (!options || !options.userId || !options.passcode || !options.meetingAddress || !options.preferred) {
23
- throw new ParameterError('Claiming a PMR should be done with userId, passcode, preferred, and meetingAddress in options.');
21
+ claimPmr(options: any) {
22
+ if (
23
+ !options ||
24
+ !options.userId ||
25
+ !options.passcode ||
26
+ !options.meetingAddress ||
27
+ !options.preferred
28
+ ) {
29
+ throw new ParameterError(
30
+ 'Claiming a PMR should be done with userId, passcode, preferred, and meetingAddress in options.'
31
+ );
24
32
  }
25
33
  const validPin = PersonalMeetingRoomUtil.getClaimPmrPin(options.passcode);
26
34
 
@@ -34,6 +42,7 @@ export default class PersonalMeetingRoomRequest extends StatelessWebexPlugin {
34
42
  }
35
43
  const request = PersonalMeetingRoomUtil.getClaimedRequestParams(validLink, validPin, options);
36
44
 
45
+ // @ts-ignore
37
46
  return this.request(request);
38
47
  }
39
48
  }
@@ -6,10 +6,10 @@ import {
6
6
  CMR_MEETINGS,
7
7
  CLAIM,
8
8
  HECATE,
9
- WEBEX_DOT_COM
9
+ WEBEX_DOT_COM,
10
10
  } from '../constants';
11
11
 
12
- const PersonalMeetingRoomUtil = {};
12
+ const PersonalMeetingRoomUtil: any = {};
13
13
 
14
14
  PersonalMeetingRoomUtil.getClaimPmrLink = (pmrLink) => {
15
15
  let validator = VALID_PMR_ADDRESS.test(pmrLink);
@@ -42,8 +42,8 @@ PersonalMeetingRoomUtil.getClaimedRequestParams = (link, pin, options) => ({
42
42
  userId: options.userId,
43
43
  passcode: pin,
44
44
  preferred: options.preferred,
45
- meetingAddress: link
46
- }
45
+ meetingAddress: link,
46
+ },
47
47
  });
48
48
 
49
49
  export default PersonalMeetingRoomUtil;