@webex/plugin-meetings 3.0.0-beta.8 → 3.0.0-beta.81

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 (507) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +178 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +843 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +56 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +7 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +160 -52
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +25 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +292 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/types.js +7 -0
  72. package/dist/controls-options-manager/types.js.map +1 -0
  73. package/dist/controls-options-manager/util.js +250 -0
  74. package/dist/controls-options-manager/util.js.map +1 -0
  75. package/dist/index.js +11 -18
  76. package/dist/index.js.map +1 -1
  77. package/dist/locus-info/controlsUtils.js +31 -29
  78. package/dist/locus-info/controlsUtils.js.map +1 -1
  79. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  80. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  81. package/dist/locus-info/fullState.js +0 -15
  82. package/dist/locus-info/fullState.js.map +1 -1
  83. package/dist/locus-info/hostUtils.js +4 -12
  84. package/dist/locus-info/hostUtils.js.map +1 -1
  85. package/dist/locus-info/index.js +242 -201
  86. package/dist/locus-info/index.js.map +1 -1
  87. package/dist/locus-info/infoUtils.js +3 -37
  88. package/dist/locus-info/infoUtils.js.map +1 -1
  89. package/dist/locus-info/mediaSharesUtils.js +12 -38
  90. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  91. package/dist/locus-info/parser.js +92 -118
  92. package/dist/locus-info/parser.js.map +1 -1
  93. package/dist/locus-info/selfUtils.js +87 -91
  94. package/dist/locus-info/selfUtils.js.map +1 -1
  95. package/dist/media/index.js +56 -146
  96. package/dist/media/index.js.map +1 -1
  97. package/dist/media/properties.js +83 -117
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +2 -9
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.js +505 -495
  102. package/dist/mediaQualityMetrics/config.js.map +1 -1
  103. package/dist/meeting/in-meeting-actions.js +35 -14
  104. package/dist/meeting/in-meeting-actions.js.map +1 -1
  105. package/dist/meeting/index.js +2264 -2242
  106. package/dist/meeting/index.js.map +1 -1
  107. package/dist/meeting/muteState.js +102 -100
  108. package/dist/meeting/muteState.js.map +1 -1
  109. package/dist/meeting/request.js +308 -264
  110. package/dist/meeting/request.js.map +1 -1
  111. package/dist/meeting/request.type.js +7 -0
  112. package/dist/meeting/request.type.js.map +1 -0
  113. package/dist/meeting/state.js +21 -31
  114. package/dist/meeting/state.js.map +1 -1
  115. package/dist/meeting/util.js +69 -217
  116. package/dist/meeting/util.js.map +1 -1
  117. package/dist/meeting-info/collection.js +6 -25
  118. package/dist/meeting-info/collection.js.map +1 -1
  119. package/dist/meeting-info/index.js +14 -32
  120. package/dist/meeting-info/index.js.map +1 -1
  121. package/dist/meeting-info/meeting-info-v2.js +268 -279
  122. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  123. package/dist/meeting-info/request.js +3 -15
  124. package/dist/meeting-info/request.js.map +1 -1
  125. package/dist/meeting-info/util.js +98 -183
  126. package/dist/meeting-info/util.js.map +1 -1
  127. package/dist/meeting-info/utilv2.js +154 -232
  128. package/dist/meeting-info/utilv2.js.map +1 -1
  129. package/dist/meetings/collection.js +26 -19
  130. package/dist/meetings/collection.js.map +1 -1
  131. package/dist/meetings/index.js +566 -552
  132. package/dist/meetings/index.js.map +1 -1
  133. package/dist/meetings/request.js +26 -41
  134. package/dist/meetings/request.js.map +1 -1
  135. package/dist/meetings/util.js +151 -155
  136. package/dist/meetings/util.js.map +1 -1
  137. package/dist/member/index.js +100 -85
  138. package/dist/member/index.js.map +1 -1
  139. package/dist/member/types.js +15 -0
  140. package/dist/member/types.js.map +1 -0
  141. package/dist/member/util.js +90 -68
  142. package/dist/member/util.js.map +1 -1
  143. package/dist/members/collection.js +13 -12
  144. package/dist/members/collection.js.map +1 -1
  145. package/dist/members/index.js +175 -204
  146. package/dist/members/index.js.map +1 -1
  147. package/dist/members/request.js +54 -39
  148. package/dist/members/request.js.map +1 -1
  149. package/dist/members/types.js +15 -0
  150. package/dist/members/types.js.map +1 -0
  151. package/dist/members/util.js +107 -44
  152. package/dist/members/util.js.map +1 -1
  153. package/dist/metrics/config.js +4 -14
  154. package/dist/metrics/config.js.map +1 -1
  155. package/dist/metrics/constants.js +3 -7
  156. package/dist/metrics/constants.js.map +1 -1
  157. package/dist/metrics/index.js +59 -156
  158. package/dist/metrics/index.js.map +1 -1
  159. package/dist/multistream/mediaRequestManager.js +167 -50
  160. package/dist/multistream/mediaRequestManager.js.map +1 -1
  161. package/dist/multistream/receiveSlot.js +58 -65
  162. package/dist/multistream/receiveSlot.js.map +1 -1
  163. package/dist/multistream/receiveSlotManager.js +74 -93
  164. package/dist/multistream/receiveSlotManager.js.map +1 -1
  165. package/dist/multistream/remoteMedia.js +55 -74
  166. package/dist/multistream/remoteMedia.js.map +1 -1
  167. package/dist/multistream/remoteMediaGroup.js +6 -40
  168. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  169. package/dist/multistream/remoteMediaManager.js +466 -442
  170. package/dist/multistream/remoteMediaManager.js.map +1 -1
  171. package/dist/networkQualityMonitor/index.js +40 -59
  172. package/dist/networkQualityMonitor/index.js.map +1 -1
  173. package/dist/personal-meeting-room/index.js +21 -45
  174. package/dist/personal-meeting-room/index.js.map +1 -1
  175. package/dist/personal-meeting-room/request.js +1 -31
  176. package/dist/personal-meeting-room/request.js.map +1 -1
  177. package/dist/personal-meeting-room/util.js +0 -13
  178. package/dist/personal-meeting-room/util.js.map +1 -1
  179. package/dist/reachability/index.js +192 -191
  180. package/dist/reachability/index.js.map +1 -1
  181. package/dist/reachability/request.js +15 -23
  182. package/dist/reachability/request.js.map +1 -1
  183. package/dist/reactions/constants.js +13 -0
  184. package/dist/reactions/constants.js.map +1 -0
  185. package/dist/reactions/reactions.js +109 -0
  186. package/dist/reactions/reactions.js.map +1 -0
  187. package/dist/reactions/reactions.type.js +36 -0
  188. package/dist/reactions/reactions.type.js.map +1 -0
  189. package/dist/reconnection-manager/index.js +340 -460
  190. package/dist/reconnection-manager/index.js.map +1 -1
  191. package/dist/recording-controller/enums.js +17 -0
  192. package/dist/recording-controller/enums.js.map +1 -0
  193. package/dist/recording-controller/index.js +343 -0
  194. package/dist/recording-controller/index.js.map +1 -0
  195. package/dist/recording-controller/util.js +63 -0
  196. package/dist/recording-controller/util.js.map +1 -0
  197. package/dist/roap/index.js +48 -70
  198. package/dist/roap/index.js.map +1 -1
  199. package/dist/roap/request.js +143 -131
  200. package/dist/roap/request.js.map +1 -1
  201. package/dist/roap/turnDiscovery.js +91 -98
  202. package/dist/roap/turnDiscovery.js.map +1 -1
  203. package/dist/statsAnalyzer/global.js +1 -95
  204. package/dist/statsAnalyzer/global.js.map +1 -1
  205. package/dist/statsAnalyzer/index.js +385 -459
  206. package/dist/statsAnalyzer/index.js.map +1 -1
  207. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  208. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  209. package/dist/transcription/index.js +22 -47
  210. package/dist/transcription/index.js.map +1 -1
  211. package/dist/types/breakouts/breakout.d.ts +8 -0
  212. package/dist/types/breakouts/collection.d.ts +5 -0
  213. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  214. package/dist/types/breakouts/index.d.ts +5 -0
  215. package/dist/types/breakouts/request.d.ts +22 -0
  216. package/dist/types/breakouts/utils.d.ts +8 -0
  217. package/dist/types/common/browser-detection.d.ts +9 -0
  218. package/dist/types/common/collection.d.ts +48 -0
  219. package/dist/types/common/config.d.ts +2 -0
  220. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  221. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  222. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  223. package/dist/types/common/errors/media.d.ts +15 -0
  224. package/dist/types/common/errors/parameter.d.ts +15 -0
  225. package/dist/types/common/errors/password-error.d.ts +15 -0
  226. package/dist/types/common/errors/permission.d.ts +14 -0
  227. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  228. package/dist/types/common/errors/reconnection.d.ts +15 -0
  229. package/dist/types/common/errors/stats.d.ts +15 -0
  230. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  231. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  232. package/dist/types/common/events/events-scope.d.ts +17 -0
  233. package/dist/types/common/events/events.d.ts +12 -0
  234. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  235. package/dist/types/common/events/util.d.ts +2 -0
  236. package/dist/types/common/logs/logger-config.d.ts +2 -0
  237. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  238. package/dist/types/common/logs/request.d.ts +34 -0
  239. package/dist/types/common/queue.d.ts +32 -0
  240. package/dist/types/config.d.ts +78 -0
  241. package/dist/types/constants.d.ts +957 -0
  242. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  243. package/dist/types/controls-options-manager/enums.d.ts +13 -0
  244. package/dist/types/controls-options-manager/index.d.ts +136 -0
  245. package/dist/types/controls-options-manager/types.d.ts +37 -0
  246. package/dist/types/controls-options-manager/util.d.ts +103 -0
  247. package/dist/types/index.d.ts +6 -0
  248. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  249. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  250. package/dist/types/locus-info/fullState.d.ts +2 -0
  251. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  252. package/dist/types/locus-info/index.d.ts +277 -0
  253. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  254. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  255. package/dist/types/locus-info/parser.d.ts +212 -0
  256. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  257. package/dist/types/media/index.d.ts +32 -0
  258. package/dist/types/media/properties.d.ts +108 -0
  259. package/dist/types/media/util.d.ts +2 -0
  260. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  261. package/dist/types/meeting/in-meeting-actions.d.ts +105 -0
  262. package/dist/types/meeting/index.d.ts +1721 -0
  263. package/dist/types/meeting/muteState.d.ts +132 -0
  264. package/dist/types/meeting/request.d.ts +271 -0
  265. package/dist/types/meeting/request.type.d.ts +11 -0
  266. package/dist/types/meeting/state.d.ts +9 -0
  267. package/dist/types/meeting/util.d.ts +2 -0
  268. package/dist/types/meeting-info/collection.d.ts +20 -0
  269. package/dist/types/meeting-info/index.d.ts +57 -0
  270. package/dist/types/meeting-info/meeting-info-v2.d.ts +111 -0
  271. package/dist/types/meeting-info/request.d.ts +22 -0
  272. package/dist/types/meeting-info/util.d.ts +2 -0
  273. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  274. package/dist/types/meetings/collection.d.ts +31 -0
  275. package/dist/types/meetings/index.d.ts +315 -0
  276. package/dist/types/meetings/request.d.ts +27 -0
  277. package/dist/types/meetings/util.d.ts +18 -0
  278. package/dist/types/member/index.d.ts +156 -0
  279. package/dist/types/member/types.d.ts +21 -0
  280. package/dist/types/member/util.d.ts +2 -0
  281. package/dist/types/members/collection.d.ts +29 -0
  282. package/dist/types/members/index.d.ts +353 -0
  283. package/dist/types/members/request.d.ts +69 -0
  284. package/dist/types/members/types.d.ts +24 -0
  285. package/dist/types/members/util.d.ts +2 -0
  286. package/dist/types/metrics/config.d.ts +171 -0
  287. package/dist/types/metrics/constants.d.ts +54 -0
  288. package/dist/types/metrics/index.d.ts +152 -0
  289. package/dist/types/multistream/mediaRequestManager.d.ts +101 -0
  290. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  291. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  292. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  293. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  294. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  295. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  296. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  297. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  298. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  299. package/dist/types/reachability/index.d.ts +152 -0
  300. package/dist/types/reachability/request.d.ts +37 -0
  301. package/dist/types/reactions/constants.d.ts +3 -0
  302. package/dist/types/reactions/reactions.d.ts +4 -0
  303. package/dist/types/reactions/reactions.type.d.ts +52 -0
  304. package/dist/types/reconnection-manager/index.d.ts +126 -0
  305. package/dist/types/recording-controller/enums.d.ts +7 -0
  306. package/dist/types/recording-controller/index.d.ts +193 -0
  307. package/dist/types/recording-controller/util.d.ts +13 -0
  308. package/dist/types/roap/index.d.ts +77 -0
  309. package/dist/types/roap/request.d.ts +38 -0
  310. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  311. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  312. package/dist/types/statsAnalyzer/index.d.ts +200 -0
  313. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  314. package/dist/types/transcription/index.d.ts +64 -0
  315. package/internal-README.md +7 -6
  316. package/package.json +27 -20
  317. package/src/breakouts/README.md +219 -0
  318. package/src/breakouts/breakout.ts +153 -0
  319. package/src/breakouts/collection.ts +19 -0
  320. package/src/breakouts/edit-lock-error.ts +25 -0
  321. package/src/breakouts/index.ts +745 -0
  322. package/src/breakouts/request.ts +55 -0
  323. package/src/breakouts/utils.ts +44 -0
  324. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  325. package/src/common/collection.ts +9 -7
  326. package/src/common/{config.js → config.ts} +1 -1
  327. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  328. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  329. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  330. package/src/common/errors/{media.js → media.ts} +11 -7
  331. package/src/common/errors/parameter.ts +11 -7
  332. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  333. package/src/common/errors/{permission.js → permission.ts} +10 -6
  334. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  335. package/src/common/errors/{stats.js → stats.ts} +11 -7
  336. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  337. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  338. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  339. package/src/common/events/{events.js → events.ts} +5 -1
  340. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  341. package/src/common/events/{util.js → util.ts} +2 -3
  342. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  343. package/src/common/logs/logger-proxy.ts +44 -0
  344. package/src/common/logs/{request.js → request.ts} +22 -9
  345. package/src/common/queue.ts +1 -2
  346. package/src/{config.js → config.ts} +18 -12
  347. package/src/constants.ts +108 -5
  348. package/src/controls-options-manager/constants.ts +5 -0
  349. package/src/controls-options-manager/enums.ts +16 -0
  350. package/src/controls-options-manager/index.ts +275 -0
  351. package/src/controls-options-manager/types.ts +49 -0
  352. package/src/controls-options-manager/util.ts +229 -0
  353. package/src/index.js +4 -1
  354. package/src/locus-info/controlsUtils.ts +141 -0
  355. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  356. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  357. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  358. package/src/locus-info/{index.js → index.ts} +218 -73
  359. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  360. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  361. package/src/locus-info/{parser.js → parser.ts} +67 -79
  362. package/src/locus-info/{selfUtils.js → selfUtils.ts} +187 -68
  363. package/src/media/{index.js → index.ts} +179 -176
  364. package/src/media/{properties.js → properties.ts} +60 -37
  365. package/src/media/{util.js → util.ts} +2 -2
  366. package/src/mediaQualityMetrics/config.ts +384 -0
  367. package/src/meeting/in-meeting-actions.ts +75 -3
  368. package/src/meeting/{index.js → index.ts} +2658 -1598
  369. package/src/meeting/{muteState.js → muteState.ts} +138 -73
  370. package/src/meeting/{request.js → request.ts} +326 -142
  371. package/src/meeting/request.type.ts +13 -0
  372. package/src/meeting/{state.js → state.ts} +50 -35
  373. package/src/meeting/{util.js → util.ts} +136 -115
  374. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  375. package/src/meeting-info/{index.js → index.ts} +42 -36
  376. package/src/meeting-info/meeting-info-v2.ts +342 -0
  377. package/src/meeting-info/{request.js → request.ts} +14 -4
  378. package/src/meeting-info/{util.js → util.ts} +60 -51
  379. package/src/meeting-info/{utilv2.js → utilv2.ts} +74 -61
  380. package/src/meetings/{collection.js → collection.ts} +26 -3
  381. package/src/meetings/index.ts +1280 -0
  382. package/src/meetings/{request.js → request.ts} +34 -25
  383. package/src/meetings/{util.js → util.ts} +99 -33
  384. package/src/member/{index.js → index.ts} +124 -56
  385. package/src/member/types.ts +24 -0
  386. package/src/member/{util.js → util.ts} +105 -25
  387. package/src/members/{collection.js → collection.ts} +10 -2
  388. package/src/members/{index.js → index.ts} +316 -144
  389. package/src/members/request.ts +215 -0
  390. package/src/members/types.ts +28 -0
  391. package/src/members/{util.js → util.ts} +145 -54
  392. package/src/metrics/{config.js → config.ts} +255 -92
  393. package/src/metrics/{constants.js → constants.ts} +1 -6
  394. package/src/metrics/{index.js → index.ts} +110 -94
  395. package/src/multistream/mediaRequestManager.ts +201 -43
  396. package/src/multistream/receiveSlot.ts +69 -26
  397. package/src/multistream/receiveSlotManager.ts +62 -38
  398. package/src/multistream/remoteMedia.ts +30 -4
  399. package/src/multistream/remoteMediaGroup.ts +4 -3
  400. package/src/multistream/remoteMediaManager.ts +230 -66
  401. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  402. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  403. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  404. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  405. package/src/reachability/{index.js → index.ts} +157 -94
  406. package/src/reachability/request.ts +46 -35
  407. package/src/reactions/constants.ts +4 -0
  408. package/src/reactions/reactions.ts +104 -0
  409. package/src/reactions/reactions.type.ts +62 -0
  410. package/src/reconnection-manager/{index.js → index.ts} +231 -120
  411. package/src/recording-controller/enums.ts +8 -0
  412. package/src/recording-controller/index.ts +315 -0
  413. package/src/recording-controller/util.ts +58 -0
  414. package/src/roap/{index.js → index.ts} +77 -60
  415. package/src/roap/request.ts +172 -0
  416. package/src/roap/turnDiscovery.ts +81 -41
  417. package/src/statsAnalyzer/global.ts +37 -0
  418. package/src/statsAnalyzer/index.ts +1273 -0
  419. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  420. package/src/transcription/{index.js → index.ts} +46 -39
  421. package/test/integration/spec/converged-space-meetings.js +176 -0
  422. package/test/integration/spec/journey.js +665 -464
  423. package/test/integration/spec/space-meeting.js +320 -206
  424. package/test/integration/spec/transcription.js +7 -8
  425. package/test/unit/spec/breakouts/breakout.ts +178 -0
  426. package/test/unit/spec/breakouts/collection.ts +15 -0
  427. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  428. package/test/unit/spec/breakouts/index.ts +1252 -0
  429. package/test/unit/spec/breakouts/request.ts +104 -0
  430. package/test/unit/spec/breakouts/utils.js +54 -0
  431. package/test/unit/spec/common/browser-detection.js +9 -28
  432. package/test/unit/spec/controls-options-manager/index.js +280 -0
  433. package/test/unit/spec/controls-options-manager/util.js +403 -0
  434. package/test/unit/spec/fixture/locus.js +92 -90
  435. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  436. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  437. package/test/unit/spec/locus-info/index.js +333 -3
  438. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  439. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  440. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  441. package/test/unit/spec/locus-info/parser.js +3 -9
  442. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  443. package/test/unit/spec/locus-info/selfUtils.js +191 -12
  444. package/test/unit/spec/media/index.ts +72 -8
  445. package/test/unit/spec/media/properties.ts +9 -9
  446. package/test/unit/spec/meeting/in-meeting-actions.ts +34 -3
  447. package/test/unit/spec/meeting/index.js +2547 -802
  448. package/test/unit/spec/meeting/muteState.js +146 -61
  449. package/test/unit/spec/meeting/request.js +141 -43
  450. package/test/unit/spec/meeting/utils.js +166 -163
  451. package/test/unit/spec/meeting-info/meetinginfov2.js +241 -74
  452. package/test/unit/spec/meeting-info/request.js +7 -9
  453. package/test/unit/spec/meeting-info/util.js +11 -12
  454. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  455. package/test/unit/spec/meetings/collection.js +15 -1
  456. package/test/unit/spec/meetings/index.js +682 -262
  457. package/test/unit/spec/meetings/utils.js +65 -14
  458. package/test/unit/spec/member/index.js +24 -1
  459. package/test/unit/spec/member/util.js +359 -32
  460. package/test/unit/spec/members/index.js +402 -54
  461. package/test/unit/spec/members/request.js +76 -20
  462. package/test/unit/spec/members/utils.js +191 -4
  463. package/test/unit/spec/metrics/index.js +16 -21
  464. package/test/unit/spec/multistream/mediaRequestManager.ts +650 -105
  465. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  466. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  467. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  468. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  469. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  470. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  471. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  472. package/test/unit/spec/reachability/index.ts +176 -27
  473. package/test/unit/spec/reachability/request.js +66 -0
  474. package/test/unit/spec/reconnection-manager/index.js +62 -30
  475. package/test/unit/spec/recording-controller/index.js +231 -0
  476. package/test/unit/spec/recording-controller/util.js +102 -0
  477. package/test/unit/spec/roap/index.ts +12 -8
  478. package/test/unit/spec/roap/request.ts +217 -0
  479. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  480. package/test/unit/spec/stats-analyzer/index.js +116 -60
  481. package/test/utils/cmr.js +44 -42
  482. package/test/utils/constants.js +9 -0
  483. package/test/utils/testUtils.js +98 -77
  484. package/test/utils/webex-config.js +22 -18
  485. package/test/utils/webex-test-users.js +57 -50
  486. package/tsconfig.json +6 -0
  487. package/dist/media/internal-media-core-wrapper.js +0 -22
  488. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  489. package/dist/meeting/effectsState.js +0 -327
  490. package/dist/meeting/effectsState.js.map +0 -1
  491. package/dist/multistream/multistreamMedia.js +0 -116
  492. package/dist/multistream/multistreamMedia.js.map +0 -1
  493. package/src/common/logs/logger-proxy.js +0 -33
  494. package/src/locus-info/controlsUtils.js +0 -102
  495. package/src/media/internal-media-core-wrapper.ts +0 -9
  496. package/src/mediaQualityMetrics/config.js +0 -382
  497. package/src/meeting/effectsState.js +0 -205
  498. package/src/meeting-info/meeting-info-v2.js +0 -255
  499. package/src/meetings/index.js +0 -1015
  500. package/src/members/request.js +0 -131
  501. package/src/multistream/multistreamMedia.ts +0 -92
  502. package/src/roap/request.js +0 -127
  503. package/src/statsAnalyzer/global.js +0 -133
  504. package/src/statsAnalyzer/index.js +0 -1006
  505. package/src/statsAnalyzer/mqaUtil.js +0 -173
  506. package/test/unit/spec/meeting/effectsState.js +0 -291
  507. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -8,30 +8,21 @@ import uuid from 'uuid';
8
8
  import window from 'global/window';
9
9
  import anonymize from 'ip-anonymize';
10
10
 
11
+ import {getOSNameInternal} from '@webex/internal-plugin-metrics';
11
12
  import LoggerProxy from '../common/logs/logger-proxy';
12
13
  import {MEETING_ERRORS} from '../constants';
13
14
  import BrowserDetection from '../common/browser-detection';
14
15
 
15
16
  import {
16
- error, eventType, errorCodes as ERROR_CODE, OS_NAME, UNKNOWN, CLIENT_NAME,
17
- mediaType
17
+ error,
18
+ eventType,
19
+ errorCodes as ERROR_CODE,
20
+ UNKNOWN,
21
+ CLIENT_NAME,
22
+ mediaType,
18
23
  } from './config';
19
24
 
20
- const OSMap = {
21
- 'Chrome OS': OS_NAME.chrome,
22
- macOS: OS_NAME.MAC,
23
- Windows: OS_NAME.WINDOWS,
24
- iOS: OS_NAME.IOS,
25
- Android: OS_NAME.ANDROID,
26
- Linux: OS_NAME.LINUX
27
- };
28
-
29
- const {
30
- getOSName,
31
- getOSVersion,
32
- getBrowserName,
33
- getBrowserVersion
34
- } = BrowserDetection();
25
+ const {getOSName, getOSVersion, getBrowserName, getBrowserVersion} = BrowserDetection();
35
26
 
36
27
  // Apply a CIDR /28 format to the IPV4 and /96 to the IPV6 addresses
37
28
  // For reference : https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
@@ -76,34 +67,41 @@ const triggerTimers = ({event, meeting, data}) => {
76
67
  * @class Metrics
77
68
  */
78
69
  class Metrics {
70
+ static instance: Metrics;
71
+
72
+ _events: any;
73
+ keys: any;
74
+ meetingCollection: any;
75
+ webex: any;
76
+
79
77
  /**
80
- * Create Metrics Object
81
- * @constructor
82
- * @public
83
- * @memberof Meetings
84
- */
78
+ * Create Metrics Object
79
+ * @constructor
80
+ * @public
81
+ * @memberof Meetings
82
+ */
85
83
  constructor() {
86
84
  if (!Metrics.instance) {
87
- /**
88
- * @instance
89
- * @type {Array}
90
- * @private
91
- * @memberof Metrics
92
- */
85
+ /**
86
+ * @instance
87
+ * @type {Array}
88
+ * @private
89
+ * @memberof Metrics
90
+ */
93
91
  this._events = [];
94
92
  /**
95
- * @instance
96
- * @type {MeetingCollection}
97
- * @private
98
- * @memberof Metrics
99
- */
93
+ * @instance
94
+ * @type {MeetingCollection}
95
+ * @private
96
+ * @memberof Metrics
97
+ */
100
98
  this.meetingCollection = null;
101
99
  /**
102
- * @instance
103
- * @type {MeetingCollection}
104
- * @private
105
- * @memberof Metrics
106
- */
100
+ * @instance
101
+ * @type {MeetingCollection}
102
+ * @private
103
+ * @memberof Metrics
104
+ */
107
105
  this.keys = Object.values(eventType);
108
106
  /**
109
107
  * @instance
@@ -114,6 +112,7 @@ class Metrics {
114
112
  Metrics.instance = this;
115
113
  }
116
114
 
115
+ // eslint-disable-next-line no-constructor-return
117
116
  return Metrics.instance;
118
117
  }
119
118
 
@@ -125,7 +124,7 @@ class Metrics {
125
124
  *
126
125
  * @returns {void}
127
126
  */
128
- initialSetup(meetingCollection, webex) {
127
+ initialSetup(meetingCollection: object, webex: object) {
129
128
  this.meetingCollection = meetingCollection;
130
129
  this.webex = webex;
131
130
  }
@@ -139,12 +138,14 @@ class Metrics {
139
138
  * @param {object} options.event
140
139
  * @returns {object} null
141
140
  */
142
- postEvent(options) {
141
+ postEvent(options: {meeting?: any; meetingId?: string; data?: object; event?: any} | any) {
143
142
  const {meetingId, data = {}, event} = options;
144
143
  let {meeting} = options;
145
144
 
146
145
  if (this.keys.indexOf(event) === -1) {
147
- LoggerProxy.logger.error(`Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`);
146
+ LoggerProxy.logger.error(
147
+ `Metrics:index#postEvent --> Event ${event} doesn't exist in dictionary`
148
+ );
148
149
  }
149
150
 
150
151
  if (!meeting && meetingId) {
@@ -161,27 +162,27 @@ class Metrics {
161
162
  if (event === eventType.MEDIA_QUALITY) {
162
163
  data.event = event;
163
164
  meeting.sendMediaQualityAnalyzerMetrics(data);
164
- }
165
- else {
165
+ } else {
166
166
  meeting.callEvents.push(event);
167
167
  data.event = event;
168
168
  meeting.sendCallAnalyzerMetrics(data);
169
169
  }
170
- }
171
-
172
- else {
173
- LoggerProxy.logger.info(`Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`);
170
+ } else {
171
+ LoggerProxy.logger.info(
172
+ `Metrics:index#postEvent --> Event received for meetingId:${meetingId}, but meeting not found in collection.`
173
+ );
174
174
  }
175
175
  }
176
176
 
177
177
  /**
178
178
  * Docs for Call analyzer metrics
179
- * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
180
- * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
181
- */
179
+ * https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
180
+ * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
181
+ */
182
182
 
183
+ // eslint-disable-next-line @typescript-eslint/no-shadow
183
184
  initPayload(eventType, identifiers, options) {
184
- const payload = {
185
+ const payload: any = {
185
186
  eventId: uuid.v4(),
186
187
  version: 1,
187
188
  origin: {
@@ -194,21 +195,21 @@ class Metrics {
194
195
  localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
195
196
  osVersion: getOSVersion() || 'unknown',
196
197
  subClientType: options.subClientType,
197
- os: this.getOsName(),
198
+ os: getOSNameInternal(),
198
199
  browser: getBrowserName(),
199
- browserVersion: getBrowserVersion()
200
- }
200
+ browserVersion: getBrowserVersion(),
201
+ },
201
202
  },
202
203
  originTime: {
203
- triggered: new Date().toISOString()
204
+ triggered: new Date().toISOString(),
204
205
  },
205
206
  senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
206
207
  event: {
207
208
  name: eventType,
208
209
  canProceed: true,
209
210
  identifiers,
210
- eventData: {webClientDomain: window.location.hostname}
211
- }
211
+ eventData: {webClientDomain: window.location.hostname},
212
+ },
212
213
  };
213
214
 
214
215
  // TODO: more options should be checked and some of them should be mandatory in certain conditions
@@ -240,22 +241,16 @@ class Metrics {
240
241
  if (options.isRoapCallEnabled) {
241
242
  payload.event.isRoapCallEnabled = options.isRoapCallEnabled;
242
243
  }
244
+ ['breakoutMoveId', 'breakoutSessionId', 'breakoutGroupId'].forEach((item) => {
245
+ if (options[item]) {
246
+ payload.event.identifiers[item] = options[item];
247
+ }
248
+ });
243
249
  }
244
250
 
245
251
  return payload;
246
252
  }
247
253
 
248
- /**
249
- * returns metrics friendly OS versions
250
- * @param {String} osName Os name
251
- * @returns {String}
252
- * @private
253
- * @memberof Metrics
254
- */
255
- getOsName() {
256
- return OSMap[getOSName()] ?? OS_NAME.OTHERS;
257
- }
258
-
259
254
  /**
260
255
  * get the payload specific for a media quality event through call analyzer
261
256
  * @param {String} eventType the event name
@@ -270,7 +265,21 @@ class Metrics {
270
265
  * @public
271
266
  * @memberof Metrics
272
267
  */
273
- initMediaPayload(eventType, identifiers, options = {}) {
268
+ public initMediaPayload(
269
+ // eslint-disable-next-line @typescript-eslint/no-shadow
270
+ eventType: string,
271
+ identifiers: {
272
+ correlationId: string;
273
+ locusUrl: string;
274
+ locusId: string;
275
+ },
276
+ options:
277
+ | {
278
+ intervalData: object;
279
+ clientType: string;
280
+ }
281
+ | any = {}
282
+ ) {
274
283
  const {audioSetupDelay, videoSetupDelay, joinTimes} = options;
275
284
 
276
285
  const payload = {
@@ -286,15 +295,15 @@ class Metrics {
286
295
  clientType: options.clientType, // TODO: Only clientType: 'TEAMS_CLIENT' is whitelisted
287
296
  clientVersion: `${CLIENT_NAME}/${this.webex.version}`,
288
297
  localNetworkPrefix: anonymizeIPAddress(this.webex.meetings.geoHintInfo?.clientAddress),
289
- os: this.getOsName(),
298
+ os: getOSNameInternal(),
290
299
  osVersion: getOSVersion() || UNKNOWN,
291
300
  subClientType: options.subClientType,
292
301
  browser: getBrowserName(),
293
- browserVersion: getBrowserVersion()
294
- }
302
+ browserVersion: getBrowserVersion(),
303
+ },
295
304
  },
296
305
  originTime: {
297
- triggered: new Date().toISOString()
306
+ triggered: new Date().toISOString(),
298
307
  },
299
308
  senderCountryCode: this.webex.meetings.geoHintInfo?.countryCode,
300
309
  event: {
@@ -304,16 +313,16 @@ class Metrics {
304
313
  intervals: [options.intervalData],
305
314
  joinTimes,
306
315
  eventData: {
307
- webClientDomain: window.location.hostname
316
+ webClientDomain: window.location.hostname,
308
317
  },
309
318
  sourceMetadata: {
310
319
  applicationSoftwareType: CLIENT_NAME,
311
320
  applicationSoftwareVersion: this.webex.version,
312
321
  mediaEngineSoftwareType: getBrowserName() || 'browser',
313
322
  mediaEngineSoftwareVersion: getOSVersion() || UNKNOWN,
314
- startTime: new Date().toISOString()
315
- }
316
- }
323
+ startTime: new Date().toISOString(),
324
+ },
325
+ },
317
326
  };
318
327
 
319
328
  return payload;
@@ -329,13 +338,12 @@ class Metrics {
329
338
  * @returns {{showToUser: boolean, category: string, errorDescription: string,
330
339
  * errorCode: number, errorData: *, fatal: boolean, name: string}}
331
340
  */
332
- parseLocusError(err, showToUser) {
341
+ parseLocusError(err: any, showToUser: boolean) {
333
342
  let errorCode;
334
343
 
335
344
  if (err && err.statusCode && err.statusCode >= 500) {
336
345
  errorCode = 1003;
337
- }
338
- else if (err && err.body && err.body.errorCode) {
346
+ } else if (err && err.body && err.body.errorCode) {
339
347
  // locus error codes: https://sqbu-github.cisco.com/WebExSquared/locus/blob/master/server/src/main/resources/locus-error-codes.properties
340
348
  switch (ERROR_CODE[err.body.errorCode]) {
341
349
  case MEETING_ERRORS.FREE_USER_MAX_PARTICIPANTS_EXCEEDED:
@@ -434,26 +442,22 @@ class Metrics {
434
442
  default:
435
443
  errorCode = 4008;
436
444
  }
437
- }
438
- else {
445
+ } else {
439
446
  errorCode = 4008;
440
447
  }
441
448
 
442
- return this.generateErrorPayload(
443
- errorCode, showToUser, error.name.LOCUS_RESPONSE, err
444
- );
449
+ return this.generateErrorPayload(errorCode, showToUser, error.name.LOCUS_RESPONSE, err);
445
450
  }
446
451
 
447
-
448
452
  generateErrorPayload(errorCode, shownToUser, name, err) {
449
453
  if (error.errors[errorCode]) {
450
- const errorPayload = {
454
+ const errorPayload: any = {
451
455
  shownToUser: shownToUser || false,
452
456
  category: error.errors[errorCode][2],
453
457
  errorDescription: error.errors[errorCode][0],
454
458
  errorCode,
455
459
  fatal: !includes(error.notFatalErrorList, errorCode),
456
- name: name || error.name.OTHER
460
+ name: name || error.name.OTHER,
457
461
  };
458
462
 
459
463
  if (err && err.body) {
@@ -480,8 +484,14 @@ class Metrics {
480
484
  let browserInfo;
481
485
  const clientInfo = util.format('client=%s', `${this.webex.meetings?.metrics?.clientName}`);
482
486
 
483
- if (['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !== -1) {
484
- browserInfo = util.format('browser=%s', `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`);
487
+ if (
488
+ ['chrome', 'firefox', 'msie', 'msedge', 'safari'].indexOf(getBrowserName().toLowerCase()) !==
489
+ -1
490
+ ) {
491
+ browserInfo = util.format(
492
+ 'browser=%s',
493
+ `${getBrowserName().toLowerCase()}/${getBrowserVersion().split('.')[0]}`
494
+ );
485
495
  }
486
496
  const osInfo = util.format('os=%s', `${getOSName()}/${getOSVersion().split('.')[0]}`);
487
497
 
@@ -489,12 +499,18 @@ class Metrics {
489
499
  userAgentOption = `(${browserInfo}`;
490
500
  }
491
501
  if (osInfo) {
492
- userAgentOption = userAgentOption ? `${userAgentOption}; ${clientInfo}; ${osInfo}` : `${clientInfo}; (${osInfo}`;
502
+ userAgentOption = userAgentOption
503
+ ? `${userAgentOption}; ${clientInfo}; ${osInfo}`
504
+ : `${clientInfo}; (${osInfo}`;
493
505
  }
494
506
  if (userAgentOption) {
495
507
  userAgentOption += ')';
496
508
 
497
- return util.format('webex-js-sdk/%s %s', `${process.env.NODE_ENV}-${this.webex.version}`, userAgentOption);
509
+ return util.format(
510
+ 'webex-js-sdk/%s %s',
511
+ `${process.env.NODE_ENV}-${this.webex.version}`,
512
+ userAgentOption
513
+ );
498
514
  }
499
515
 
500
516
  return util.format('webex-js-sdk/%s', `${process.env.NODE_ENV}-${this.webex.version}`);
@@ -515,11 +531,11 @@ class Metrics {
515
531
  *
516
532
  * @returns {void}
517
533
  */
518
- sendBehavioralMetric(metricName, metricFields = {}, metricTags = {}) {
534
+ sendBehavioralMetric(metricName: string, metricFields: object = {}, metricTags: object = {}) {
519
535
  this.webex.internal.metrics.submitClientMetrics(metricName, {
520
536
  type: this.webex.config.metrics.type,
521
537
  fields: metricFields,
522
- tags: metricTags
538
+ tags: metricTags,
523
539
  });
524
540
  }
525
541
  }