@webex/plugin-meetings 2.59.3-next.1 → 2.59.4

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 (420) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.d.ts +9 -9
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.d.ts +48 -48
  10. package/dist/common/collection.js +43 -43
  11. package/dist/common/collection.js.map +1 -1
  12. package/dist/common/config.d.ts +2 -2
  13. package/dist/common/config.js.map +1 -1
  14. package/dist/common/errors/captcha-error.d.ts +15 -15
  15. package/dist/common/errors/captcha-error.js +7 -7
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.d.ts +16 -16
  18. package/dist/common/errors/intent-to-join.js +7 -7
  19. package/dist/common/errors/intent-to-join.js.map +1 -1
  20. package/dist/common/errors/join-meeting.d.ts +17 -17
  21. package/dist/common/errors/join-meeting.js +8 -8
  22. package/dist/common/errors/join-meeting.js.map +1 -1
  23. package/dist/common/errors/media.d.ts +15 -15
  24. package/dist/common/errors/media.js +7 -7
  25. package/dist/common/errors/media.js.map +1 -1
  26. package/dist/common/errors/parameter.d.ts +15 -15
  27. package/dist/common/errors/parameter.js +7 -7
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.d.ts +15 -15
  30. package/dist/common/errors/password-error.js +7 -7
  31. package/dist/common/errors/password-error.js.map +1 -1
  32. package/dist/common/errors/permission.d.ts +14 -14
  33. package/dist/common/errors/permission.js +6 -6
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
  36. package/dist/common/errors/reconnection-in-progress.js +6 -6
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  38. package/dist/common/errors/reconnection.d.ts +15 -15
  39. package/dist/common/errors/reconnection.js +7 -7
  40. package/dist/common/errors/reconnection.js.map +1 -1
  41. package/dist/common/errors/stats.d.ts +15 -15
  42. package/dist/common/errors/stats.js +7 -7
  43. package/dist/common/errors/stats.js.map +1 -1
  44. package/dist/common/errors/webex-errors.d.ts +81 -81
  45. package/dist/common/errors/webex-errors.js +42 -42
  46. package/dist/common/errors/webex-errors.js.map +1 -1
  47. package/dist/common/errors/webex-meetings-error.d.ts +20 -20
  48. package/dist/common/errors/webex-meetings-error.js +12 -12
  49. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  50. package/dist/common/events/events-scope.d.ts +17 -17
  51. package/dist/common/events/events-scope.js +10 -10
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.d.ts +12 -12
  54. package/dist/common/events/events.js +4 -4
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.d.ts +2 -2
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.d.ts +2 -2
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.d.ts +2 -2
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.d.ts +2 -2
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.d.ts +34 -34
  65. package/dist/common/logs/request.js +18 -18
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.d.ts +32 -32
  68. package/dist/common/queue.js +18 -18
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.d.ts +73 -73
  71. package/dist/config.js +2 -2
  72. package/dist/config.js.map +1 -1
  73. package/dist/constants.d.ts +926 -924
  74. package/dist/constants.js +11 -9
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.d.ts +4 -4
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.d.ts +5 -5
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.d.ts +120 -120
  81. package/dist/controls-options-manager/index.js +81 -81
  82. package/dist/controls-options-manager/index.js.map +1 -1
  83. package/dist/controls-options-manager/util.d.ts +7 -7
  84. package/dist/controls-options-manager/util.js.map +1 -1
  85. package/dist/index.d.ts +4 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/locus-info/controlsUtils.d.ts +2 -2
  88. package/dist/locus-info/controlsUtils.js +21 -21
  89. package/dist/locus-info/controlsUtils.js.map +1 -1
  90. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  91. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  92. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  93. package/dist/locus-info/fullState.d.ts +2 -2
  94. package/dist/locus-info/fullState.js.map +1 -1
  95. package/dist/locus-info/hostUtils.d.ts +2 -2
  96. package/dist/locus-info/hostUtils.js +19 -19
  97. package/dist/locus-info/hostUtils.js.map +1 -1
  98. package/dist/locus-info/index.d.ts +269 -269
  99. package/dist/locus-info/index.js +180 -180
  100. package/dist/locus-info/index.js.map +1 -1
  101. package/dist/locus-info/infoUtils.d.ts +2 -2
  102. package/dist/locus-info/infoUtils.js.map +1 -1
  103. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  104. package/dist/locus-info/mediaSharesUtils.js +50 -50
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.d.ts +212 -212
  107. package/dist/locus-info/parser.js +136 -136
  108. package/dist/locus-info/parser.js.map +1 -1
  109. package/dist/locus-info/selfUtils.d.ts +2 -2
  110. package/dist/locus-info/selfUtils.js +52 -52
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.d.ts +32 -32
  113. package/dist/media/index.js +145 -145
  114. package/dist/media/index.js.map +1 -1
  115. package/dist/media/properties.d.ts +108 -108
  116. package/dist/media/properties.js +49 -49
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.d.ts +2 -2
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/effectsState.d.ts +42 -42
  123. package/dist/meeting/effectsState.js +24 -24
  124. package/dist/meeting/effectsState.js.map +1 -1
  125. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  126. package/dist/meeting/in-meeting-actions.js +11 -11
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.d.ts +1621 -1621
  129. package/dist/meeting/index.js +1538 -1518
  130. package/dist/meeting/index.js.map +1 -1
  131. package/dist/meeting/muteState.d.ts +116 -116
  132. package/dist/meeting/muteState.js +85 -85
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.d.ts +255 -255
  135. package/dist/meeting/request.js +141 -141
  136. package/dist/meeting/request.js.map +1 -1
  137. package/dist/meeting/state.d.ts +9 -9
  138. package/dist/meeting/state.js +30 -30
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.d.ts +2 -2
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting-info/collection.d.ts +20 -20
  143. package/dist/meeting-info/collection.js +11 -11
  144. package/dist/meeting-info/collection.js.map +1 -1
  145. package/dist/meeting-info/index.d.ts +57 -57
  146. package/dist/meeting-info/index.js +50 -50
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  149. package/dist/meeting-info/meeting-info-v2.js +52 -52
  150. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  151. package/dist/meeting-info/request.d.ts +22 -22
  152. package/dist/meeting-info/request.js +14 -14
  153. package/dist/meeting-info/request.js.map +1 -1
  154. package/dist/meeting-info/util.d.ts +2 -2
  155. package/dist/meeting-info/util.js +9 -9
  156. package/dist/meeting-info/util.js.map +1 -1
  157. package/dist/meeting-info/utilv2.d.ts +2 -2
  158. package/dist/meeting-info/utilv2.js +20 -20
  159. package/dist/meeting-info/utilv2.js.map +1 -1
  160. package/dist/meetings/collection.d.ts +23 -23
  161. package/dist/meetings/collection.js +14 -14
  162. package/dist/meetings/collection.js.map +1 -1
  163. package/dist/meetings/index.d.ts +296 -296
  164. package/dist/meetings/index.js +259 -259
  165. package/dist/meetings/index.js.map +1 -1
  166. package/dist/meetings/request.d.ts +27 -27
  167. package/dist/meetings/request.js +15 -15
  168. package/dist/meetings/request.js.map +1 -1
  169. package/dist/meetings/util.d.ts +18 -18
  170. package/dist/meetings/util.js +29 -29
  171. package/dist/meetings/util.js.map +1 -1
  172. package/dist/member/index.d.ts +147 -147
  173. package/dist/member/index.js +214 -214
  174. package/dist/member/index.js.map +1 -1
  175. package/dist/member/member.types.d.ts +11 -11
  176. package/dist/member/member.types.js.map +1 -1
  177. package/dist/member/util.d.ts +2 -2
  178. package/dist/member/util.js +60 -60
  179. package/dist/member/util.js.map +1 -1
  180. package/dist/members/collection.d.ts +24 -24
  181. package/dist/members/collection.js +11 -11
  182. package/dist/members/collection.js.map +1 -1
  183. package/dist/members/index.d.ts +298 -298
  184. package/dist/members/index.js +275 -275
  185. package/dist/members/index.js.map +1 -1
  186. package/dist/members/request.d.ts +50 -50
  187. package/dist/members/request.js +27 -27
  188. package/dist/members/request.js.map +1 -1
  189. package/dist/members/util.d.ts +2 -2
  190. package/dist/members/util.js +21 -21
  191. package/dist/members/util.js.map +1 -1
  192. package/dist/metrics/config.d.ts +169 -169
  193. package/dist/metrics/config.js.map +1 -1
  194. package/dist/metrics/constants.d.ts +59 -57
  195. package/dist/metrics/constants.js +2 -0
  196. package/dist/metrics/constants.js.map +1 -1
  197. package/dist/metrics/index.d.ts +152 -152
  198. package/dist/metrics/index.js +90 -90
  199. package/dist/metrics/index.js.map +1 -1
  200. package/dist/networkQualityMonitor/index.d.ts +70 -70
  201. package/dist/networkQualityMonitor/index.js +65 -65
  202. package/dist/networkQualityMonitor/index.js.map +1 -1
  203. package/dist/peer-connection-manager/index.d.ts +6 -6
  204. package/dist/peer-connection-manager/index.js +87 -87
  205. package/dist/peer-connection-manager/index.js.map +1 -1
  206. package/dist/peer-connection-manager/util.d.ts +6 -6
  207. package/dist/peer-connection-manager/util.js +9 -9
  208. package/dist/peer-connection-manager/util.js.map +1 -1
  209. package/dist/personal-meeting-room/index.d.ts +47 -47
  210. package/dist/personal-meeting-room/index.js +67 -67
  211. package/dist/personal-meeting-room/index.js.map +1 -1
  212. package/dist/personal-meeting-room/request.d.ts +14 -14
  213. package/dist/personal-meeting-room/request.js +7 -7
  214. package/dist/personal-meeting-room/request.js.map +1 -1
  215. package/dist/personal-meeting-room/util.d.ts +2 -2
  216. package/dist/personal-meeting-room/util.js.map +1 -1
  217. package/dist/reachability/index.d.ts +139 -139
  218. package/dist/reachability/index.js +110 -110
  219. package/dist/reachability/index.js.map +1 -1
  220. package/dist/reachability/request.d.ts +35 -35
  221. package/dist/reachability/request.js +15 -15
  222. package/dist/reachability/request.js.map +1 -1
  223. package/dist/reactions/reactions.d.ts +4 -4
  224. package/dist/reactions/reactions.js.map +1 -1
  225. package/dist/reactions/reactions.type.d.ts +32 -32
  226. package/dist/reactions/reactions.type.js.map +1 -1
  227. package/dist/reconnection-manager/index.d.ts +112 -112
  228. package/dist/reconnection-manager/index.js +112 -112
  229. package/dist/reconnection-manager/index.js.map +1 -1
  230. package/dist/recording-controller/enums.d.ts +7 -7
  231. package/dist/recording-controller/enums.js.map +1 -1
  232. package/dist/recording-controller/index.d.ts +193 -193
  233. package/dist/recording-controller/index.js +127 -127
  234. package/dist/recording-controller/index.js.map +1 -1
  235. package/dist/recording-controller/util.d.ts +13 -13
  236. package/dist/recording-controller/util.js.map +1 -1
  237. package/dist/roap/collection.d.ts +10 -10
  238. package/dist/roap/collection.js.map +1 -1
  239. package/dist/roap/handler.d.ts +47 -47
  240. package/dist/roap/handler.js +27 -27
  241. package/dist/roap/handler.js.map +1 -1
  242. package/dist/roap/index.d.ts +116 -116
  243. package/dist/roap/index.js +111 -111
  244. package/dist/roap/index.js.map +1 -1
  245. package/dist/roap/request.d.ts +35 -35
  246. package/dist/roap/request.js +17 -17
  247. package/dist/roap/request.js.map +1 -1
  248. package/dist/roap/state.d.ts +9 -9
  249. package/dist/roap/state.js +14 -14
  250. package/dist/roap/state.js.map +1 -1
  251. package/dist/roap/turnDiscovery.d.ts +67 -67
  252. package/dist/roap/turnDiscovery.js +46 -46
  253. package/dist/roap/turnDiscovery.js.map +1 -1
  254. package/dist/roap/util.d.ts +2 -2
  255. package/dist/roap/util.js.map +1 -1
  256. package/dist/statsAnalyzer/global.d.ts +118 -126
  257. package/dist/statsAnalyzer/global.js +4 -12
  258. package/dist/statsAnalyzer/global.js.map +1 -1
  259. package/dist/statsAnalyzer/index.d.ts +193 -190
  260. package/dist/statsAnalyzer/index.js +182 -140
  261. package/dist/statsAnalyzer/index.js.map +1 -1
  262. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  263. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  264. package/dist/transcription/index.d.ts +64 -64
  265. package/dist/transcription/index.js +42 -42
  266. package/dist/transcription/index.js.map +1 -1
  267. package/internal-README.md +172 -172
  268. package/jest.config.js +3 -3
  269. package/package.json +21 -22
  270. package/process +1 -1
  271. package/src/common/browser-detection.ts +39 -39
  272. package/src/common/collection.ts +94 -94
  273. package/src/common/config.ts +9 -9
  274. package/src/common/errors/captcha-error.ts +25 -25
  275. package/src/common/errors/intent-to-join.ts +27 -27
  276. package/src/common/errors/join-meeting.ts +32 -32
  277. package/src/common/errors/media.ts +25 -25
  278. package/src/common/errors/parameter.ts +33 -33
  279. package/src/common/errors/password-error.ts +25 -25
  280. package/src/common/errors/permission.ts +24 -24
  281. package/src/common/errors/reconnection-in-progress.ts +8 -8
  282. package/src/common/errors/reconnection.ts +25 -25
  283. package/src/common/errors/stats.ts +25 -25
  284. package/src/common/errors/webex-errors.ts +140 -140
  285. package/src/common/errors/webex-meetings-error.ts +35 -35
  286. package/src/common/events/events-scope.ts +30 -30
  287. package/src/common/events/events.ts +25 -25
  288. package/src/common/events/trigger-proxy.ts +25 -25
  289. package/src/common/events/util.ts +39 -39
  290. package/src/common/logs/logger-config.ts +8 -8
  291. package/src/common/logs/logger-proxy.ts +44 -44
  292. package/src/common/logs/request.ts +65 -65
  293. package/src/common/queue.ts +50 -50
  294. package/src/config.ts +96 -96
  295. package/src/constants.ts +1123 -1121
  296. package/src/controls-options-manager/constants.ts +5 -5
  297. package/src/controls-options-manager/enums.ts +6 -6
  298. package/src/controls-options-manager/index.ts +183 -183
  299. package/src/controls-options-manager/util.ts +20 -20
  300. package/src/index.js +15 -15
  301. package/src/locus-info/controlsUtils.ts +112 -112
  302. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  303. package/src/locus-info/fullState.ts +69 -69
  304. package/src/locus-info/hostUtils.ts +60 -60
  305. package/src/locus-info/index.ts +1303 -1303
  306. package/src/locus-info/infoUtils.ts +101 -101
  307. package/src/locus-info/mediaSharesUtils.ts +173 -173
  308. package/src/locus-info/parser.ts +680 -680
  309. package/src/locus-info/selfUtils.ts +428 -428
  310. package/src/media/index.ts +675 -675
  311. package/src/media/properties.ts +313 -313
  312. package/src/media/util.ts +37 -37
  313. package/src/mediaQualityMetrics/config.ts +382 -382
  314. package/src/meeting/effectsState.ts +209 -209
  315. package/src/meeting/in-meeting-actions.ts +153 -153
  316. package/src/meeting/index.ts +6572 -6537
  317. package/src/meeting/muteState.ts +365 -365
  318. package/src/meeting/request.ts +810 -810
  319. package/src/meeting/state.ts +194 -194
  320. package/src/meeting/util.ts +530 -530
  321. package/src/meeting-info/collection.ts +41 -41
  322. package/src/meeting-info/index.ts +137 -137
  323. package/src/meeting-info/meeting-info-v2.ts +273 -273
  324. package/src/meeting-info/request.ts +46 -46
  325. package/src/meeting-info/util.ts +314 -314
  326. package/src/meeting-info/utilv2.ts +324 -324
  327. package/src/meetings/collection.ts +43 -43
  328. package/src/meetings/index.ts +1128 -1128
  329. package/src/meetings/request.ts +81 -81
  330. package/src/meetings/util.ts +181 -181
  331. package/src/member/index.ts +446 -446
  332. package/src/member/member.types.ts +13 -13
  333. package/src/member/util.ts +286 -286
  334. package/src/members/collection.ts +40 -40
  335. package/src/members/index.ts +900 -900
  336. package/src/members/request.ts +175 -175
  337. package/src/members/util.ts +260 -260
  338. package/src/metrics/config.ts +485 -485
  339. package/src/metrics/constants.ts +63 -61
  340. package/src/metrics/index.ts +543 -543
  341. package/src/networkQualityMonitor/index.ts +211 -211
  342. package/src/peer-connection-manager/index.ts +847 -847
  343. package/src/peer-connection-manager/util.ts +119 -119
  344. package/src/personal-meeting-room/index.ts +157 -157
  345. package/src/personal-meeting-room/request.ts +48 -48
  346. package/src/personal-meeting-room/util.ts +49 -49
  347. package/src/reachability/index.ts +478 -478
  348. package/src/reachability/request.ts +81 -81
  349. package/src/reactions/reactions.ts +104 -104
  350. package/src/reactions/reactions.type.ts +36 -36
  351. package/src/reconnection-manager/index.ts +622 -622
  352. package/src/recording-controller/enums.ts +8 -8
  353. package/src/recording-controller/index.ts +315 -315
  354. package/src/recording-controller/util.ts +58 -58
  355. package/src/roap/collection.ts +62 -62
  356. package/src/roap/handler.ts +294 -294
  357. package/src/roap/index.ts +413 -413
  358. package/src/roap/request.ts +229 -229
  359. package/src/roap/state.ts +156 -156
  360. package/src/roap/turnDiscovery.ts +283 -283
  361. package/src/roap/util.ts +100 -100
  362. package/src/statsAnalyzer/global.ts +120 -128
  363. package/src/statsAnalyzer/index.ts +1329 -1266
  364. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  365. package/src/transcription/index.ts +154 -154
  366. package/test/integration/spec/journey.js +941 -941
  367. package/test/integration/spec/space-meeting.js +457 -457
  368. package/test/integration/spec/transcription.js +55 -55
  369. package/test/unit/spec/common/browser-detection.js +119 -119
  370. package/test/unit/spec/common/queue.js +69 -69
  371. package/test/unit/spec/controls-options-manager/index.js +123 -123
  372. package/test/unit/spec/controls-options-manager/util.js +65 -65
  373. package/test/unit/spec/fixture/locus.js +406 -406
  374. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  375. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  376. package/test/unit/spec/locus-info/index.js +1272 -1272
  377. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  378. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  379. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  380. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  381. package/test/unit/spec/locus-info/parser.js +298 -298
  382. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  383. package/test/unit/spec/media/properties.ts +305 -305
  384. package/test/unit/spec/meeting/effectsState.js +281 -281
  385. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  386. package/test/unit/spec/meeting/index.js +5298 -5227
  387. package/test/unit/spec/meeting/muteState.js +430 -430
  388. package/test/unit/spec/meeting/request.js +317 -317
  389. package/test/unit/spec/meeting/utils.js +319 -319
  390. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  391. package/test/unit/spec/meeting-info/request.js +64 -64
  392. package/test/unit/spec/meeting-info/util.js +37 -37
  393. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  394. package/test/unit/spec/meetings/collection.js +52 -52
  395. package/test/unit/spec/meetings/index.js +1375 -1375
  396. package/test/unit/spec/meetings/utils.js +66 -66
  397. package/test/unit/spec/member/index.js +47 -47
  398. package/test/unit/spec/member/util.js +80 -80
  399. package/test/unit/spec/members/index.js +364 -364
  400. package/test/unit/spec/members/request.js +200 -200
  401. package/test/unit/spec/members/utils.js +42 -42
  402. package/test/unit/spec/metrics/index.js +111 -111
  403. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  404. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  405. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  406. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  407. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  408. package/test/unit/spec/reachability/index.ts +50 -50
  409. package/test/unit/spec/reconnection-manager/index.js +206 -206
  410. package/test/unit/spec/recording-controller/index.js +230 -230
  411. package/test/unit/spec/recording-controller/util.js +101 -101
  412. package/test/unit/spec/roap/index.ts +128 -128
  413. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  414. package/test/unit/spec/roap/util.js +30 -30
  415. package/test/unit/spec/stats-analyzer/index.js +438 -287
  416. package/test/utils/cmr.js +104 -104
  417. package/test/utils/testUtils.js +287 -287
  418. package/test/utils/webex-config.js +77 -77
  419. package/test/utils/webex-test-users.js +82 -82
  420. package/tsconfig.json +5 -5
@@ -27,30 +27,32 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
27
27
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
28
28
  var EVENTS = {
29
29
  MEDIA_QUALITY: 'MEDIA_QUALITY',
30
+ NO_FRAMES_SENT: 'NO_FRAMES_SENT',
31
+ NO_VIDEO_ENCODED: 'NO_VIDEO_ENCODED',
30
32
  LOCAL_MEDIA_STARTED: 'LOCAL_MEDIA_STARTED',
31
33
  LOCAL_MEDIA_STOPPED: 'LOCAL_MEDIA_STOPPED',
32
34
  REMOTE_MEDIA_STARTED: 'REMOTE_MEDIA_STARTED',
33
35
  REMOTE_MEDIA_STOPPED: 'REMOTE_MEDIA_STOPPED'
34
36
  };
35
37
 
36
- /**
37
- * Stats Analyzer class that will emit events based on detected quality
38
- *
39
- * @export
40
- * @class StatsAnalyzer
41
- * @extends {EventsScope}
38
+ /**
39
+ * Stats Analyzer class that will emit events based on detected quality
40
+ *
41
+ * @export
42
+ * @class StatsAnalyzer
43
+ * @extends {EventsScope}
42
44
  */
43
45
  exports.EVENTS = EVENTS;
44
46
  var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
45
47
  (0, _inherits2.default)(StatsAnalyzer, _EventsScope);
46
48
  var _super = _createSuper(StatsAnalyzer);
47
- /**
48
- * Creates a new instance of StatsAnalyzer
49
- * @constructor
50
- * @public
51
- * @param {Object} config SDK Configuration Object
52
- * @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
53
- * @param {Object} statsResults Default properties for stats
49
+ /**
50
+ * Creates a new instance of StatsAnalyzer
51
+ * @constructor
52
+ * @public
53
+ * @param {Object} config SDK Configuration Object
54
+ * @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
55
+ * @param {Object} statsResults Default properties for stats
54
56
  */
55
57
  function StatsAnalyzer(config) {
56
58
  var _this;
@@ -72,19 +74,19 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
72
74
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsInterval", void 0);
73
75
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsResults", void 0);
74
76
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "statsStarted", void 0);
75
- /**
76
- * emits started/stopped events for local/remote media by checking
77
- * if given values are increasing or not. The previousValue, currentValue
78
- * params can be any numerical value like number of receive packets or
79
- * decoded frames, etc.
80
- *
81
- * @private
82
- * @param {string} mediaType
83
- * @param {number} previousValue - value to compare
84
- * @param {number} currentValue - value to compare (must be same type of value as previousValue)
85
- * @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
86
- * @memberof StatsAnalyzer
87
- * @returns {void}
77
+ /**
78
+ * emits started/stopped events for local/remote media by checking
79
+ * if given values are increasing or not. The previousValue, currentValue
80
+ * params can be any numerical value like number of receive packets or
81
+ * decoded frames, etc.
82
+ *
83
+ * @private
84
+ * @param {string} mediaType
85
+ * @param {number} previousValue - value to compare
86
+ * @param {number} currentValue - value to compare (must be same type of value as previousValue)
87
+ * @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
88
+ * @memberof StatsAnalyzer
89
+ * @returns {void}
88
90
  */
89
91
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "emitStartStopEvents", function (mediaType, previousValue, currentValue, isLocal) {
90
92
  if (mediaType !== 'audio' && mediaType !== 'video' && mediaType !== 'share') {
@@ -99,7 +101,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
99
101
  var newEvent;
100
102
  if (currentValue - previousValue > 0) {
101
103
  newEvent = isLocal ? EVENTS.LOCAL_MEDIA_STARTED : EVENTS.REMOTE_MEDIA_STARTED;
102
- } else if (currentValue === previousValue && currentValue > 0) {
104
+ } else if (currentValue === previousValue && currentValue >= 0) {
103
105
  newEvent = isLocal ? EVENTS.LOCAL_MEDIA_STOPPED : EVENTS.REMOTE_MEDIA_STOPPED;
104
106
  }
105
107
  if (newEvent && lastEmittedEvent !== newEvent) {
@@ -116,15 +118,15 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
116
118
  });
117
119
  }
118
120
  });
119
- /**
120
- * Processes remote and local candidate result and stores
121
- * @private
122
- * @param {*} result
123
- * @param {*} type
124
- * @param {boolean} isSender
125
- * @param {boolean} isRemote
126
- *
127
- * @returns {void}
121
+ /**
122
+ * Processes remote and local candidate result and stores
123
+ * @private
124
+ * @param {*} result
125
+ * @param {*} type
126
+ * @param {boolean} isSender
127
+ * @param {boolean} isRemote
128
+ *
129
+ * @returns {void}
128
130
  */
129
131
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parseCandidate", function (result, type, isSender, isRemote) {
130
132
  if (!result || !result.id) {
@@ -323,13 +325,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
323
325
  this.statsResults.share.send.meanRoundTripTime = [];
324
326
  }
325
327
 
326
- /**
327
- * sets mediaStatus status for analyzing metrics
328
- *
329
- * @public
330
- * @param {Object} status for the audio and video
331
- * @memberof StatsAnalyzer
332
- * @returns {void}
328
+ /**
329
+ * sets mediaStatus status for analyzing metrics
330
+ *
331
+ * @public
332
+ * @param {Object} status for the audio and video
333
+ * @memberof StatsAnalyzer
334
+ * @returns {void}
333
335
  */
334
336
  }, {
335
337
  key: "updateMediaStatus",
@@ -337,12 +339,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
337
339
  this.meetingMediaStatus = status;
338
340
  }
339
341
 
340
- /**
341
- * captures MQA data from peerconnection
342
- *
343
- * @public
344
- * @memberof StatsAnalyzer
345
- * @returns {void}
342
+ /**
343
+ * captures MQA data from peerconnection
344
+ *
345
+ * @public
346
+ * @memberof StatsAnalyzer
347
+ * @returns {void}
346
348
  */
347
349
  }, {
348
350
  key: "sendMqaData",
@@ -425,13 +427,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
425
427
  });
426
428
  }
427
429
 
428
- /**
429
- * updated the peerconnection when changed
430
- *
431
- * @private
432
- * @memberof updatePeerconnection
433
- * @param {PeerConnection} peerConnection
434
- * @returns {void}
430
+ /**
431
+ * updated the peerconnection when changed
432
+ *
433
+ * @private
434
+ * @memberof updatePeerconnection
435
+ * @param {PeerConnection} peerConnection
436
+ * @returns {void}
435
437
  */
436
438
  }, {
437
439
  key: "updatePeerconnection",
@@ -439,13 +441,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
439
441
  this.peerConnection = peerConnection;
440
442
  }
441
443
 
442
- /**
443
- * Starts the stats analyzer on interval
444
- *
445
- * @public
446
- * @memberof StatsAnalyzer
447
- * @param {PeerConnection} peerConnection
448
- * @returns {Promise}
444
+ /**
445
+ * Starts the stats analyzer on interval
446
+ *
447
+ * @public
448
+ * @memberof StatsAnalyzer
449
+ * @param {PeerConnection} peerConnection
450
+ * @returns {Promise}
449
451
  */
450
452
  }, {
451
453
  key: "startAnalyzer",
@@ -468,12 +470,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
468
470
  return _promise.default.resolve();
469
471
  }
470
472
 
471
- /**
472
- * Cleans up the analyzer when done
473
- *
474
- * @public
475
- * @memberof StatsAnalyzer
476
- * @returns {void}
473
+ /**
474
+ * Cleans up the analyzer when done
475
+ *
476
+ * @public
477
+ * @memberof StatsAnalyzer
478
+ * @returns {void}
477
479
  */
478
480
  }, {
479
481
  key: "stopAnalyzer",
@@ -497,15 +499,15 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
497
499
  return _promise.default.resolve();
498
500
  }
499
501
 
500
- /**
501
- * Parse a single result of get stats
502
- *
503
- * @private
504
- * @param {*} getStatsResult
505
- * @param {String} type
506
- * @param {boolean} isSender
507
- * @returns {void}
508
- * @memberof StatsAnalyzer
502
+ /**
503
+ * Parse a single result of get stats
504
+ *
505
+ * @private
506
+ * @param {*} getStatsResult
507
+ * @param {String} type
508
+ * @param {boolean} isSender
509
+ * @returns {void}
510
+ * @memberof StatsAnalyzer
509
511
  */
510
512
  }, {
511
513
  key: "parseGetStatsResult",
@@ -520,9 +522,6 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
520
522
  case 'inbound-rtp':
521
523
  this.processInboundRTPResult(getStatsResult, type);
522
524
  break;
523
- case 'track':
524
- this.processTrackResult(getStatsResult, type);
525
- break;
526
525
  case 'remote-inbound-rtp':
527
526
  case 'remote-outbound-rtp':
528
527
  // @ts-ignore
@@ -544,13 +543,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
544
543
  }
545
544
  }
546
545
 
547
- /**
548
- * Filters the get stats results for types
549
- * @private
550
- * @param {Array} getStatsResults
551
- * @param {String} type
552
- * @param {boolean} isSender
553
- * @returns {void}
546
+ /**
547
+ * Filters the get stats results for types
548
+ * @private
549
+ * @param {Array} getStatsResults
550
+ * @param {String} type
551
+ * @param {boolean} isSender
552
+ * @returns {void}
554
553
  */
555
554
  }, {
556
555
  key: "filterAndParseGetStatsResults",
@@ -564,11 +563,11 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
564
563
  });
565
564
  }
566
565
 
567
- /**
568
- * parse the audio
569
- * @param {String} result
570
- * @param {boolean} type
571
- * @returns {void}
566
+ /**
567
+ * parse the audio
568
+ * @param {String} result
569
+ * @param {boolean} type
570
+ * @returns {void}
572
571
  */
573
572
  }, {
574
573
  key: "parseAudioSource",
@@ -584,12 +583,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
584
583
  }, {
585
584
  key: "compareLastStatsResult",
586
585
  value:
587
- /**
588
- * compares current and previous stats to check if packets are not sent
589
- *
590
- * @private
591
- * @memberof StatsAnalyzer
592
- * @returns {void}
586
+ /**
587
+ * compares current and previous stats to check if packets are not sent
588
+ *
589
+ * @private
590
+ * @memberof StatsAnalyzer
591
+ * @returns {void}
593
592
  */
594
593
  function compareLastStatsResult() {
595
594
  if (this.lastStatsResults !== null && this.meetingMediaStatus) {
@@ -630,13 +629,32 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
630
629
  previousStats = this.lastStatsResults[mediaType].send;
631
630
  if (currentStats.totalPacketsSent === previousStats.totalPacketsSent || currentStats.totalPacketsSent === 0) {
632
631
  _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " RTP packets sent"));
633
- } else {
632
+ } else if (this.lastEmittedStartStopEvent[mediaType].local !== EVENTS.LOCAL_MEDIA_STOPPED) {
634
633
  if (currentStats.framesEncoded === previousStats.framesEncoded || currentStats.framesEncoded === 0) {
634
+ this.lastEmittedStartStopEvent[mediaType].local = EVENTS.NO_VIDEO_ENCODED;
635
635
  _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " Frames Encoded"));
636
+ this.emit({
637
+ file: 'statsAnalyzer',
638
+ function: 'compareLastStatsResult'
639
+ }, EVENTS.NO_VIDEO_ENCODED, {
640
+ mediaType: mediaType
641
+ });
636
642
  }
637
643
  if (this.statsResults.resolutions[mediaType].send.framesSent === this.lastStatsResults.resolutions[mediaType].send.framesSent || this.statsResults.resolutions[mediaType].send.framesSent === 0) {
638
644
  _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " Frames sent"));
639
645
  }
646
+
647
+ // Video is encoded but frames are not sent
648
+ if (currentStats.framesEncoded !== previousStats.framesEncoded && (currentStats.framesSent === previousStats.framesSent || currentStats.framesSent === 0)) {
649
+ this.lastEmittedStartStopEvent[mediaType].local = EVENTS.NO_FRAMES_SENT;
650
+ _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " frames sent even though frames are encoded"));
651
+ this.emit({
652
+ file: 'statsAnalyzer',
653
+ function: 'compareLastStatsResult'
654
+ }, EVENTS.NO_FRAMES_SENT, {
655
+ mediaType: mediaType
656
+ });
657
+ }
640
658
  }
641
659
  this.emitStartStopEvents(mediaType, previousStats.framesSent, currentStats.framesSent, true);
642
660
  }
@@ -668,13 +686,32 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
668
686
  previousStats = this.lastStatsResults[mediaType].send;
669
687
  if (currentStats.totalPacketsSent === previousStats.totalPacketsSent || currentStats.totalPacketsSent === 0) {
670
688
  _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " RTP packets sent"));
671
- } else {
689
+ } else if (this.lastEmittedStartStopEvent[mediaType].local !== EVENTS.LOCAL_MEDIA_STOPPED) {
672
690
  if (currentStats.framesEncoded === previousStats.framesEncoded || currentStats.framesEncoded === 0) {
691
+ this.lastEmittedStartStopEvent[mediaType].local = EVENTS.NO_VIDEO_ENCODED;
673
692
  _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " frames getting encoded"));
693
+ this.emit({
694
+ file: 'statsAnalyzer',
695
+ function: 'compareLastStatsResult'
696
+ }, EVENTS.NO_VIDEO_ENCODED, {
697
+ mediaType: mediaType
698
+ });
674
699
  }
675
700
  if (this.statsResults.resolutions[mediaType].send.framesSent === this.lastStatsResults.resolutions[mediaType].send.framesSent || this.statsResults.resolutions[mediaType].send.framesSent === 0) {
676
701
  _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " frames sent"));
677
702
  }
703
+
704
+ // Share video is encoded but frames are not sent
705
+ if (currentStats.framesEncoded !== previousStats.framesEncoded && (currentStats.framesSent === previousStats.framesSent || currentStats.framesSent === 0)) {
706
+ this.lastEmittedStartStopEvent[mediaType].local = EVENTS.NO_FRAMES_SENT;
707
+ _loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No ".concat(mediaType, " Frames sent even though frames are being encoded"));
708
+ this.emit({
709
+ file: 'statsAnalyzer',
710
+ function: 'compareLastStatsResult'
711
+ }, EVENTS.NO_FRAMES_SENT, {
712
+ mediaType: mediaType
713
+ });
714
+ }
678
715
  }
679
716
 
680
717
  // TODO:need to check receive share value
@@ -702,12 +739,12 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
702
739
  }
703
740
  }
704
741
 
705
- /**
706
- * Does a `getStats` on all the transceivers and parses the results
707
- *
708
- * @private
709
- * @memberof StatsAnalyzer
710
- * @returns {Promise}
742
+ /**
743
+ * Does a `getStats` on all the transceivers and parses the results
744
+ *
745
+ * @private
746
+ * @memberof StatsAnalyzer
747
+ * @returns {Promise}
711
748
  */
712
749
  }, {
713
750
  key: "getStatsAndParse",
@@ -749,18 +786,19 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
749
786
  });
750
787
  }
751
788
 
752
- /**
753
- * Processes OutboundRTP stats result and stores
754
- * @private
755
- * @param {*} result
756
- * @param {*} type
757
- * @returns {void}
789
+ /**
790
+ * Processes OutboundRTP stats result and stores
791
+ * @private
792
+ * @param {*} result
793
+ * @param {*} type
794
+ * @returns {void}
758
795
  */
759
796
  }, {
760
797
  key: "processOutboundRTPResult",
761
798
  value: function processOutboundRTPResult(result, type) {
762
799
  var mediaType = type || _constants.STATS.AUDIO_CORRELATE;
763
800
  var sendrecvType = _constants.STATS.SEND_DIRECTION;
801
+ this.processTrackResult(result, type, sendrecvType);
764
802
  if (result.bytesSent) {
765
803
  var kilobytes = 0;
766
804
  if (!this.statsResults.internal[mediaType][sendrecvType].prevBytesSent) {
@@ -805,18 +843,19 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
805
843
  }
806
844
  }
807
845
 
808
- /**
809
- * Processes InboundRTP stats result and stores
810
- * @private
811
- * @param {*} result
812
- * @param {*} type
813
- * @returns {void}
846
+ /**
847
+ * Processes InboundRTP stats result and stores
848
+ * @private
849
+ * @param {*} result
850
+ * @param {*} type
851
+ * @returns {void}
814
852
  */
815
853
  }, {
816
854
  key: "processInboundRTPResult",
817
855
  value: function processInboundRTPResult(result, type) {
818
856
  var mediaType = type || _constants.STATS.AUDIO_CORRELATE;
819
857
  var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
858
+ this.processTrackResult(result, type, sendrecvType);
820
859
  if (result.bytesReceived) {
821
860
  var kilobytes = 0;
822
861
  if (!this.statsResults.internal[mediaType][sendrecvType].prevBytesReceived) {
@@ -890,31 +929,34 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
890
929
  }, {
891
930
  key: "processTrackResult",
892
931
  value:
893
- /**
894
- * Process Track results
895
- *
896
- * @private
897
- * @param {*} result
898
- * @param {*} mediaType
899
- * @returns {void}
900
- * @memberof StatsAnalyzer
932
+ /**
933
+ * Process Track results
934
+ *
935
+ * @private
936
+ * @param {*} result
937
+ * @param {*} mediaType
938
+ * @param {*} sendrecvType
939
+ * @returns {void}
940
+ * @memberof StatsAnalyzer
901
941
  */
902
- function processTrackResult(result, mediaType) {
903
- if (!result || result.type !== 'track') {
942
+ function processTrackResult(result, mediaType, sendrecvType) {
943
+ if (!result || mediaType === _constants.STATS.AUDIO_CORRELATE) {
944
+ return;
945
+ }
946
+ if (result.type !== 'inbound-rtp' && result.type !== 'outbound-rtp') {
904
947
  return;
905
948
  }
906
- if (result.type !== 'track') return;
907
- var sendrecvType = result.remoteSource === true ? _constants.STATS.RECEIVE_DIRECTION : _constants.STATS.SEND_DIRECTION;
908
949
  if (result.frameWidth && result.frameHeight) {
909
950
  this.statsResults.resolutions[mediaType][sendrecvType].width = result.frameWidth;
910
951
  this.statsResults.resolutions[mediaType][sendrecvType].height = result.frameHeight;
911
- this.statsResults.resolutions[mediaType][sendrecvType].framesSent = result.framesSent;
912
- this.statsResults.resolutions[mediaType][sendrecvType].hugeFramesSent = result.hugeFramesSent;
913
952
  }
914
953
  if (sendrecvType === _constants.STATS.RECEIVE_DIRECTION) {
915
954
  this.statsResults.resolutions[mediaType][sendrecvType].framesReceived = result.framesReceived;
916
955
  this.statsResults.resolutions[mediaType][sendrecvType].framesDecoded = result.framesDecoded;
917
956
  this.statsResults.resolutions[mediaType][sendrecvType].framesDropped = result.framesDropped;
957
+ } else if (sendrecvType === _constants.STATS.SEND_DIRECTION) {
958
+ this.statsResults.resolutions[mediaType][sendrecvType].framesSent = result.framesSent;
959
+ this.statsResults.resolutions[mediaType][sendrecvType].hugeFramesSent = result.hugeFramesSent;
918
960
  }
919
961
  if (result.trackIdentifier && mediaType !== _constants.STATS.AUDIO_CORRELATE) {
920
962
  this.statsResults.resolutions[mediaType][sendrecvType].trackIdentifier = result.trackIdentifier;
@@ -928,13 +970,13 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
928
970
  }
929
971
  }
930
972
 
931
- /**
932
- *
933
- * @private
934
- * @param {*} result
935
- * @param {*} type
936
- * @returns {void}
937
- * @memberof StatsAnalyzer
973
+ /**
974
+ *
975
+ * @private
976
+ * @param {*} result
977
+ * @param {*} type
978
+ * @returns {void}
979
+ * @memberof StatsAnalyzer
938
980
  */
939
981
  }, {
940
982
  key: "compareSentAndReceived",