@webex/plugin-meetings 3.0.0-beta.4 → 3.0.0-beta.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +137 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +546 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +48 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.js +1 -20
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +5 -20
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js +0 -7
  20. package/dist/common/config.js.map +1 -1
  21. package/dist/common/errors/captcha-error.js +10 -24
  22. package/dist/common/errors/captcha-error.js.map +1 -1
  23. package/dist/common/errors/intent-to-join.js +11 -24
  24. package/dist/common/errors/intent-to-join.js.map +1 -1
  25. package/dist/common/errors/join-meeting.js +12 -25
  26. package/dist/common/errors/join-meeting.js.map +1 -1
  27. package/dist/common/errors/media.js +10 -24
  28. package/dist/common/errors/media.js.map +1 -1
  29. package/dist/common/errors/parameter.js +5 -33
  30. package/dist/common/errors/parameter.js.map +1 -1
  31. package/dist/common/errors/password-error.js +10 -24
  32. package/dist/common/errors/password-error.js.map +1 -1
  33. package/dist/common/errors/permission.js +9 -23
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.js +0 -17
  36. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  37. package/dist/common/errors/reconnection.js +10 -24
  38. package/dist/common/errors/reconnection.js.map +1 -1
  39. package/dist/common/errors/stats.js +10 -24
  40. package/dist/common/errors/stats.js.map +1 -1
  41. package/dist/common/errors/webex-errors.js +6 -41
  42. package/dist/common/errors/webex-errors.js.map +1 -1
  43. package/dist/common/errors/webex-meetings-error.js +5 -25
  44. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  45. package/dist/common/events/events-scope.js +0 -22
  46. package/dist/common/events/events-scope.js.map +1 -1
  47. package/dist/common/events/events.js +0 -23
  48. package/dist/common/events/events.js.map +1 -1
  49. package/dist/common/events/trigger-proxy.js +0 -12
  50. package/dist/common/events/trigger-proxy.js.map +1 -1
  51. package/dist/common/events/util.js +0 -15
  52. package/dist/common/events/util.js.map +1 -1
  53. package/dist/common/logs/logger-config.js +0 -4
  54. package/dist/common/logs/logger-config.js.map +1 -1
  55. package/dist/common/logs/logger-proxy.js +1 -8
  56. package/dist/common/logs/logger-proxy.js.map +1 -1
  57. package/dist/common/logs/request.js +37 -60
  58. package/dist/common/logs/request.js.map +1 -1
  59. package/dist/common/queue.js +4 -14
  60. package/dist/common/queue.js.map +1 -1
  61. package/dist/config.js +6 -6
  62. package/dist/config.js.map +1 -1
  63. package/dist/constants.js +109 -49
  64. package/dist/constants.js.map +1 -1
  65. package/dist/controls-options-manager/constants.js +14 -0
  66. package/dist/controls-options-manager/constants.js.map +1 -0
  67. package/dist/controls-options-manager/enums.js +15 -0
  68. package/dist/controls-options-manager/enums.js.map +1 -0
  69. package/dist/controls-options-manager/index.js +203 -0
  70. package/dist/controls-options-manager/index.js.map +1 -0
  71. package/dist/controls-options-manager/util.js +28 -0
  72. package/dist/controls-options-manager/util.js.map +1 -0
  73. package/dist/index.js +11 -18
  74. package/dist/index.js.map +1 -1
  75. package/dist/locus-info/controlsUtils.js +12 -29
  76. package/dist/locus-info/controlsUtils.js.map +1 -1
  77. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  78. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  79. package/dist/locus-info/fullState.js +0 -15
  80. package/dist/locus-info/fullState.js.map +1 -1
  81. package/dist/locus-info/hostUtils.js +4 -12
  82. package/dist/locus-info/hostUtils.js.map +1 -1
  83. package/dist/locus-info/index.js +186 -192
  84. package/dist/locus-info/index.js.map +1 -1
  85. package/dist/locus-info/infoUtils.js +3 -37
  86. package/dist/locus-info/infoUtils.js.map +1 -1
  87. package/dist/locus-info/mediaSharesUtils.js +12 -38
  88. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  89. package/dist/locus-info/parser.js +92 -118
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +34 -91
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.js +66 -153
  94. package/dist/media/index.js.map +1 -1
  95. package/dist/media/properties.js +83 -117
  96. package/dist/media/properties.js.map +1 -1
  97. package/dist/media/util.js +2 -9
  98. package/dist/media/util.js.map +1 -1
  99. package/dist/mediaQualityMetrics/config.js +505 -495
  100. package/dist/mediaQualityMetrics/config.js.map +1 -1
  101. package/dist/meeting/in-meeting-actions.js +13 -14
  102. package/dist/meeting/in-meeting-actions.js.map +1 -1
  103. package/dist/meeting/index.js +2141 -2210
  104. package/dist/meeting/index.js.map +1 -1
  105. package/dist/meeting/muteState.js +59 -82
  106. package/dist/meeting/muteState.js.map +1 -1
  107. package/dist/meeting/request.js +308 -264
  108. package/dist/meeting/request.js.map +1 -1
  109. package/dist/meeting/request.type.js +7 -0
  110. package/dist/meeting/request.type.js.map +1 -0
  111. package/dist/meeting/state.js +21 -31
  112. package/dist/meeting/state.js.map +1 -1
  113. package/dist/meeting/util.js +45 -217
  114. package/dist/meeting/util.js.map +1 -1
  115. package/dist/meeting-info/collection.js +6 -25
  116. package/dist/meeting-info/collection.js.map +1 -1
  117. package/dist/meeting-info/index.js +14 -32
  118. package/dist/meeting-info/index.js.map +1 -1
  119. package/dist/meeting-info/meeting-info-v2.js +193 -268
  120. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  121. package/dist/meeting-info/request.js +3 -15
  122. package/dist/meeting-info/request.js.map +1 -1
  123. package/dist/meeting-info/util.js +98 -183
  124. package/dist/meeting-info/util.js.map +1 -1
  125. package/dist/meeting-info/utilv2.js +137 -228
  126. package/dist/meeting-info/utilv2.js.map +1 -1
  127. package/dist/meetings/collection.js +5 -20
  128. package/dist/meetings/collection.js.map +1 -1
  129. package/dist/meetings/index.js +490 -560
  130. package/dist/meetings/index.js.map +1 -1
  131. package/dist/meetings/request.js +24 -41
  132. package/dist/meetings/request.js.map +1 -1
  133. package/dist/meetings/util.js +116 -155
  134. package/dist/meetings/util.js.map +1 -1
  135. package/dist/member/index.js +78 -86
  136. package/dist/member/index.js.map +1 -1
  137. package/dist/member/util.js +31 -68
  138. package/dist/member/util.js.map +1 -1
  139. package/dist/members/collection.js +3 -12
  140. package/dist/members/collection.js.map +1 -1
  141. package/dist/members/index.js +95 -200
  142. package/dist/members/index.js.map +1 -1
  143. package/dist/members/request.js +16 -39
  144. package/dist/members/request.js.map +1 -1
  145. package/dist/members/util.js +9 -38
  146. package/dist/members/util.js.map +1 -1
  147. package/dist/metrics/config.js +1 -13
  148. package/dist/metrics/config.js.map +1 -1
  149. package/dist/metrics/constants.js +1 -6
  150. package/dist/metrics/constants.js.map +1 -1
  151. package/dist/metrics/index.js +54 -156
  152. package/dist/metrics/index.js.map +1 -1
  153. package/dist/multistream/mediaRequestManager.js +74 -52
  154. package/dist/multistream/mediaRequestManager.js.map +1 -1
  155. package/dist/multistream/receiveSlot.js +48 -65
  156. package/dist/multistream/receiveSlot.js.map +1 -1
  157. package/dist/multistream/receiveSlotManager.js +60 -82
  158. package/dist/multistream/receiveSlotManager.js.map +1 -1
  159. package/dist/multistream/remoteMedia.js +60 -76
  160. package/dist/multistream/remoteMedia.js.map +1 -1
  161. package/dist/multistream/remoteMediaGroup.js +6 -40
  162. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  163. package/dist/multistream/remoteMediaManager.js +360 -413
  164. package/dist/multistream/remoteMediaManager.js.map +1 -1
  165. package/dist/networkQualityMonitor/index.js +40 -59
  166. package/dist/networkQualityMonitor/index.js.map +1 -1
  167. package/dist/personal-meeting-room/index.js +21 -45
  168. package/dist/personal-meeting-room/index.js.map +1 -1
  169. package/dist/personal-meeting-room/request.js +1 -31
  170. package/dist/personal-meeting-room/request.js.map +1 -1
  171. package/dist/personal-meeting-room/util.js +0 -13
  172. package/dist/personal-meeting-room/util.js.map +1 -1
  173. package/dist/reachability/index.js +147 -183
  174. package/dist/reachability/index.js.map +1 -1
  175. package/dist/reachability/request.js +15 -23
  176. package/dist/reachability/request.js.map +1 -1
  177. package/dist/reactions/constants.js +13 -0
  178. package/dist/reactions/constants.js.map +1 -0
  179. package/dist/reactions/reactions.js +109 -0
  180. package/dist/reactions/reactions.js.map +1 -0
  181. package/dist/reactions/reactions.type.js +36 -0
  182. package/dist/reactions/reactions.type.js.map +1 -0
  183. package/dist/reconnection-manager/index.js +322 -456
  184. package/dist/reconnection-manager/index.js.map +1 -1
  185. package/dist/recording-controller/enums.js +17 -0
  186. package/dist/recording-controller/enums.js.map +1 -0
  187. package/dist/recording-controller/index.js +343 -0
  188. package/dist/recording-controller/index.js.map +1 -0
  189. package/dist/recording-controller/util.js +63 -0
  190. package/dist/recording-controller/util.js.map +1 -0
  191. package/dist/roap/index.js +48 -70
  192. package/dist/roap/index.js.map +1 -1
  193. package/dist/roap/request.js +143 -131
  194. package/dist/roap/request.js.map +1 -1
  195. package/dist/roap/turnDiscovery.js +91 -98
  196. package/dist/roap/turnDiscovery.js.map +1 -1
  197. package/dist/statsAnalyzer/global.js +1 -95
  198. package/dist/statsAnalyzer/global.js.map +1 -1
  199. package/dist/statsAnalyzer/index.js +361 -449
  200. package/dist/statsAnalyzer/index.js.map +1 -1
  201. package/dist/statsAnalyzer/mqaUtil.js +137 -81
  202. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  203. package/dist/transcription/index.js +22 -47
  204. package/dist/transcription/index.js.map +1 -1
  205. package/dist/types/breakouts/breakout.d.ts +8 -0
  206. package/dist/types/breakouts/collection.d.ts +5 -0
  207. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  208. package/dist/types/breakouts/index.d.ts +5 -0
  209. package/dist/types/breakouts/request.d.ts +22 -0
  210. package/dist/types/breakouts/utils.d.ts +8 -0
  211. package/dist/types/common/browser-detection.d.ts +9 -0
  212. package/dist/types/common/collection.d.ts +48 -0
  213. package/dist/types/common/config.d.ts +2 -0
  214. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  215. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  216. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  217. package/dist/types/common/errors/media.d.ts +15 -0
  218. package/dist/types/common/errors/parameter.d.ts +15 -0
  219. package/dist/types/common/errors/password-error.d.ts +15 -0
  220. package/dist/types/common/errors/permission.d.ts +14 -0
  221. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  222. package/dist/types/common/errors/reconnection.d.ts +15 -0
  223. package/dist/types/common/errors/stats.d.ts +15 -0
  224. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  225. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  226. package/dist/types/common/events/events-scope.d.ts +17 -0
  227. package/dist/types/common/events/events.d.ts +12 -0
  228. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  229. package/dist/types/common/events/util.d.ts +2 -0
  230. package/dist/types/common/logs/logger-config.d.ts +2 -0
  231. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  232. package/dist/types/common/logs/request.d.ts +34 -0
  233. package/dist/types/common/queue.d.ts +32 -0
  234. package/dist/types/config.d.ts +77 -0
  235. package/dist/types/constants.d.ts +916 -0
  236. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  237. package/dist/types/controls-options-manager/enums.d.ts +5 -0
  238. package/dist/types/controls-options-manager/index.d.ts +120 -0
  239. package/dist/types/controls-options-manager/util.d.ts +7 -0
  240. package/dist/types/index.d.ts +6 -0
  241. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  242. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  243. package/dist/types/locus-info/fullState.d.ts +2 -0
  244. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  245. package/dist/types/locus-info/index.d.ts +269 -0
  246. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  247. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  248. package/dist/types/locus-info/parser.d.ts +212 -0
  249. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  250. package/dist/types/media/index.d.ts +32 -0
  251. package/dist/types/media/properties.d.ts +108 -0
  252. package/dist/types/media/util.d.ts +2 -0
  253. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  254. package/dist/types/meeting/in-meeting-actions.d.ts +83 -0
  255. package/dist/types/meeting/index.d.ts +1699 -0
  256. package/dist/types/meeting/muteState.d.ts +116 -0
  257. package/dist/types/meeting/request.d.ts +271 -0
  258. package/dist/types/meeting/request.type.d.ts +11 -0
  259. package/dist/types/meeting/state.d.ts +9 -0
  260. package/dist/types/meeting/util.d.ts +2 -0
  261. package/dist/types/meeting-info/collection.d.ts +20 -0
  262. package/dist/types/meeting-info/index.d.ts +57 -0
  263. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  264. package/dist/types/meeting-info/request.d.ts +22 -0
  265. package/dist/types/meeting-info/util.d.ts +2 -0
  266. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  267. package/dist/types/meetings/collection.d.ts +23 -0
  268. package/dist/types/meetings/index.d.ts +297 -0
  269. package/dist/types/meetings/request.d.ts +27 -0
  270. package/dist/types/meetings/util.d.ts +18 -0
  271. package/dist/types/member/index.d.ts +146 -0
  272. package/dist/types/member/util.d.ts +2 -0
  273. package/dist/types/members/collection.d.ts +24 -0
  274. package/dist/types/members/index.d.ts +320 -0
  275. package/dist/types/members/request.d.ts +50 -0
  276. package/dist/types/members/util.d.ts +2 -0
  277. package/dist/types/metrics/config.d.ts +169 -0
  278. package/dist/types/metrics/constants.d.ts +53 -0
  279. package/dist/types/metrics/index.d.ts +152 -0
  280. package/dist/types/multistream/mediaRequestManager.d.ts +51 -0
  281. package/dist/types/multistream/receiveSlot.d.ts +64 -0
  282. package/dist/types/multistream/receiveSlotManager.d.ts +46 -0
  283. package/dist/types/multistream/remoteMedia.d.ts +100 -0
  284. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  285. package/dist/types/multistream/remoteMediaManager.d.ts +241 -0
  286. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  287. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  288. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  289. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  290. package/dist/types/reachability/index.d.ts +140 -0
  291. package/dist/types/reachability/request.d.ts +37 -0
  292. package/dist/types/reactions/constants.d.ts +3 -0
  293. package/dist/types/reactions/reactions.d.ts +4 -0
  294. package/dist/types/reactions/reactions.type.d.ts +52 -0
  295. package/dist/types/reconnection-manager/index.d.ts +117 -0
  296. package/dist/types/recording-controller/enums.d.ts +7 -0
  297. package/dist/types/recording-controller/index.d.ts +193 -0
  298. package/dist/types/recording-controller/util.d.ts +13 -0
  299. package/dist/types/roap/index.d.ts +77 -0
  300. package/dist/types/roap/request.d.ts +38 -0
  301. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  302. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  303. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  304. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  305. package/dist/types/transcription/index.d.ts +64 -0
  306. package/internal-README.md +7 -6
  307. package/package.json +27 -21
  308. package/src/breakouts/README.md +199 -0
  309. package/src/breakouts/breakout.ts +130 -0
  310. package/src/breakouts/collection.ts +19 -0
  311. package/src/breakouts/edit-lock-error.ts +25 -0
  312. package/src/breakouts/index.ts +504 -0
  313. package/src/breakouts/request.ts +55 -0
  314. package/src/breakouts/utils.ts +39 -0
  315. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  316. package/src/common/collection.ts +9 -7
  317. package/src/common/{config.js → config.ts} +1 -1
  318. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  319. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  320. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  321. package/src/common/errors/{media.js → media.ts} +11 -7
  322. package/src/common/errors/parameter.ts +11 -7
  323. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  324. package/src/common/errors/{permission.js → permission.ts} +10 -6
  325. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  326. package/src/common/errors/{stats.js → stats.ts} +11 -7
  327. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  328. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  329. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  330. package/src/common/events/{events.js → events.ts} +5 -1
  331. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  332. package/src/common/events/{util.js → util.ts} +2 -3
  333. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  334. package/src/common/logs/logger-proxy.ts +44 -0
  335. package/src/common/logs/{request.js → request.ts} +22 -9
  336. package/src/common/queue.ts +1 -2
  337. package/src/{config.js → config.ts} +17 -12
  338. package/src/constants.ts +62 -5
  339. package/src/controls-options-manager/constants.ts +5 -0
  340. package/src/controls-options-manager/enums.ts +6 -0
  341. package/src/controls-options-manager/index.ts +183 -0
  342. package/src/controls-options-manager/util.ts +20 -0
  343. package/src/index.js +4 -1
  344. package/src/locus-info/controlsUtils.ts +114 -0
  345. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  346. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  347. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  348. package/src/locus-info/{index.js → index.ts} +150 -66
  349. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  350. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  351. package/src/locus-info/{parser.js → parser.ts} +67 -79
  352. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  353. package/src/media/{index.js → index.ts} +182 -173
  354. package/src/media/{properties.js → properties.ts} +60 -37
  355. package/src/media/{util.js → util.ts} +2 -2
  356. package/src/mediaQualityMetrics/config.ts +384 -0
  357. package/src/meeting/in-meeting-actions.ts +31 -3
  358. package/src/meeting/{index.js → index.ts} +2512 -1579
  359. package/src/meeting/{muteState.js → muteState.ts} +95 -49
  360. package/src/meeting/{request.js → request.ts} +326 -142
  361. package/src/meeting/request.type.ts +13 -0
  362. package/src/meeting/{state.js → state.ts} +50 -35
  363. package/src/meeting/{util.js → util.ts} +117 -119
  364. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  365. package/src/meeting-info/{index.js → index.ts} +42 -36
  366. package/src/meeting-info/meeting-info-v2.ts +273 -0
  367. package/src/meeting-info/{request.js → request.ts} +14 -4
  368. package/src/meeting-info/{util.js → util.ts} +60 -51
  369. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  370. package/src/meetings/{collection.js → collection.ts} +6 -3
  371. package/src/meetings/index.ts +1159 -0
  372. package/src/meetings/{request.js → request.ts} +32 -25
  373. package/src/meetings/{util.js → util.ts} +58 -32
  374. package/src/member/{index.js → index.ts} +102 -56
  375. package/src/member/{util.js → util.ts} +52 -25
  376. package/src/members/{collection.js → collection.ts} +2 -2
  377. package/src/members/{index.js → index.ts} +221 -142
  378. package/src/members/{request.js → request.ts} +60 -16
  379. package/src/members/{util.js → util.ts} +50 -48
  380. package/src/metrics/{config.js → config.ts} +253 -92
  381. package/src/metrics/{constants.js → constants.ts} +0 -6
  382. package/src/metrics/{index.js → index.ts} +105 -94
  383. package/src/multistream/mediaRequestManager.ts +101 -39
  384. package/src/multistream/receiveSlot.ts +62 -26
  385. package/src/multistream/receiveSlotManager.ts +35 -21
  386. package/src/multistream/remoteMedia.ts +38 -5
  387. package/src/multistream/remoteMediaGroup.ts +4 -3
  388. package/src/multistream/remoteMediaManager.ts +152 -36
  389. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  390. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  391. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  392. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  393. package/src/reachability/{index.js → index.ts} +109 -85
  394. package/src/reachability/request.ts +46 -35
  395. package/src/reactions/constants.ts +4 -0
  396. package/src/reactions/reactions.ts +104 -0
  397. package/src/reactions/reactions.type.ts +62 -0
  398. package/src/reconnection-manager/{index.js → index.ts} +196 -103
  399. package/src/recording-controller/enums.ts +8 -0
  400. package/src/recording-controller/index.ts +315 -0
  401. package/src/recording-controller/util.ts +58 -0
  402. package/src/roap/{index.js → index.ts} +77 -60
  403. package/src/roap/request.ts +172 -0
  404. package/src/roap/turnDiscovery.ts +81 -41
  405. package/src/statsAnalyzer/global.ts +37 -0
  406. package/src/statsAnalyzer/index.ts +1234 -0
  407. package/src/statsAnalyzer/mqaUtil.ts +293 -0
  408. package/src/transcription/{index.js → index.ts} +46 -39
  409. package/test/integration/spec/converged-space-meetings.js +176 -0
  410. package/test/integration/spec/journey.js +665 -464
  411. package/test/integration/spec/space-meeting.js +320 -206
  412. package/test/integration/spec/transcription.js +7 -8
  413. package/test/unit/spec/breakouts/breakout.ts +147 -0
  414. package/test/unit/spec/breakouts/collection.ts +15 -0
  415. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  416. package/test/unit/spec/breakouts/index.ts +707 -0
  417. package/test/unit/spec/breakouts/request.ts +104 -0
  418. package/test/unit/spec/breakouts/utils.js +47 -0
  419. package/test/unit/spec/common/browser-detection.js +9 -28
  420. package/test/unit/spec/controls-options-manager/index.js +124 -0
  421. package/test/unit/spec/controls-options-manager/util.js +66 -0
  422. package/test/unit/spec/fixture/locus.js +92 -90
  423. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  424. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  425. package/test/unit/spec/locus-info/index.js +104 -2
  426. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  427. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  428. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  429. package/test/unit/spec/locus-info/parser.js +3 -9
  430. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  431. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  432. package/test/unit/spec/media/index.ts +39 -53
  433. package/test/unit/spec/media/properties.ts +9 -9
  434. package/test/unit/spec/meeting/in-meeting-actions.ts +13 -2
  435. package/test/unit/spec/meeting/index.js +2253 -811
  436. package/test/unit/spec/meeting/muteState.js +74 -55
  437. package/test/unit/spec/meeting/request.js +141 -43
  438. package/test/unit/spec/meeting/utils.js +106 -171
  439. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  440. package/test/unit/spec/meeting-info/request.js +7 -9
  441. package/test/unit/spec/meeting-info/util.js +11 -12
  442. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  443. package/test/unit/spec/meetings/collection.js +1 -1
  444. package/test/unit/spec/meetings/index.js +439 -257
  445. package/test/unit/spec/meetings/utils.js +14 -12
  446. package/test/unit/spec/member/index.js +0 -1
  447. package/test/unit/spec/member/util.js +31 -7
  448. package/test/unit/spec/members/index.js +104 -54
  449. package/test/unit/spec/members/request.js +29 -20
  450. package/test/unit/spec/members/utils.js +8 -5
  451. package/test/unit/spec/metrics/index.js +16 -21
  452. package/test/unit/spec/multistream/mediaRequestManager.ts +318 -64
  453. package/test/unit/spec/multistream/receiveSlot.ts +68 -17
  454. package/test/unit/spec/multistream/receiveSlotManager.ts +41 -13
  455. package/test/unit/spec/multistream/remoteMedia.ts +38 -2
  456. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  457. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  458. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  459. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  460. package/test/unit/spec/reachability/index.ts +70 -27
  461. package/test/unit/spec/reachability/request.js +66 -0
  462. package/test/unit/spec/reconnection-manager/index.js +58 -30
  463. package/test/unit/spec/recording-controller/index.js +231 -0
  464. package/test/unit/spec/recording-controller/util.js +102 -0
  465. package/test/unit/spec/roap/index.ts +12 -8
  466. package/test/unit/spec/roap/request.ts +217 -0
  467. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  468. package/test/unit/spec/stats-analyzer/index.js +86 -57
  469. package/test/utils/cmr.js +44 -42
  470. package/test/utils/constants.js +9 -0
  471. package/test/utils/testUtils.js +98 -77
  472. package/test/utils/webex-config.js +22 -18
  473. package/test/utils/webex-test-users.js +57 -50
  474. package/tsconfig.json +6 -0
  475. package/dist/media/internal-media-core-wrapper.js +0 -22
  476. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  477. package/dist/meeting/effectsState.js +0 -327
  478. package/dist/meeting/effectsState.js.map +0 -1
  479. package/dist/multistream/multistreamMedia.js +0 -116
  480. package/dist/multistream/multistreamMedia.js.map +0 -1
  481. package/dist/peer-connection-manager/util.js +0 -124
  482. package/dist/peer-connection-manager/util.js.map +0 -1
  483. package/src/common/logs/logger-proxy.js +0 -33
  484. package/src/locus-info/controlsUtils.js +0 -102
  485. package/src/media/internal-media-core-wrapper.ts +0 -9
  486. package/src/mediaQualityMetrics/config.js +0 -382
  487. package/src/meeting/effectsState.js +0 -205
  488. package/src/meeting-info/meeting-info-v2.js +0 -255
  489. package/src/meetings/index.js +0 -1015
  490. package/src/multistream/multistreamMedia.ts +0 -92
  491. package/src/peer-connection-manager/util.ts +0 -117
  492. package/src/roap/request.js +0 -127
  493. package/src/statsAnalyzer/global.js +0 -133
  494. package/src/statsAnalyzer/index.js +0 -1006
  495. package/src/statsAnalyzer/mqaUtil.js +0 -173
  496. package/test/unit/spec/meeting/effectsState.js +0 -291
  497. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  498. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,52 +1,33 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
14
-
15
10
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
16
-
17
11
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
18
-
19
12
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
20
-
21
13
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
22
-
23
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
24
-
25
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
26
-
27
15
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
28
-
29
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
30
-
31
17
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
32
-
33
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
34
-
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
35
20
  var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
36
-
37
21
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
38
-
39
22
  var _constants = require("../constants");
40
-
41
23
  var _request = _interopRequireDefault(require("./request"));
42
-
43
24
  var DEFAULT_TIMEOUT = 3000;
44
25
  var VIDEO_MESH_TIMEOUT = 1000;
26
+
45
27
  /**
46
28
  * @class Reachability
47
29
  * @export
48
30
  */
49
-
50
31
  var Reachability = /*#__PURE__*/function () {
51
32
  /**
52
33
  * Creates an instance of Reachability.
@@ -55,7 +36,12 @@ var Reachability = /*#__PURE__*/function () {
55
36
  */
56
37
  function Reachability(webex) {
57
38
  (0, _classCallCheck2.default)(this, Reachability);
39
+ (0, _defineProperty2.default)(this, "namespace", _constants.REACHABILITY.namespace);
40
+ (0, _defineProperty2.default)(this, "webex", void 0);
41
+ (0, _defineProperty2.default)(this, "reachabilityRequest", void 0);
42
+ (0, _defineProperty2.default)(this, "clusterLatencyResults", void 0);
58
43
  this.webex = webex;
44
+
59
45
  /**
60
46
  * internal request object for the server
61
47
  * @instance
@@ -63,8 +49,8 @@ var Reachability = /*#__PURE__*/function () {
63
49
  * @private
64
50
  * @memberof Reachability
65
51
  */
66
-
67
52
  this.reachabilityRequest = new _request.default(this.webex);
53
+
68
54
  /**
69
55
  * internal object of clusters latency results
70
56
  * @instance
@@ -72,9 +58,9 @@ var Reachability = /*#__PURE__*/function () {
72
58
  * @private
73
59
  * @memberof Reachability
74
60
  */
75
-
76
61
  this.clusterLatencyResults = {};
77
62
  }
63
+
78
64
  /**
79
65
  * fetches reachability data
80
66
  * @returns {Object} reachability data
@@ -82,73 +68,57 @@ var Reachability = /*#__PURE__*/function () {
82
68
  * @async
83
69
  * @memberof Reachability
84
70
  */
85
-
86
-
87
71
  (0, _createClass2.default)(Reachability, [{
88
72
  key: "gatherReachability",
89
73
  value: function () {
90
74
  var _gatherReachability = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
91
- var _window, _window$localStorage;
92
-
93
- var clusters, results;
75
+ var _yield$this$reachabil, clusters, joinCookie, results;
94
76
  return _regenerator.default.wrap(function _callee$(_context) {
95
- while (1) {
96
- switch (_context.prev = _context.next) {
97
- case 0:
98
- this.setup(); // Remove stored reachability results to ensure no stale data
99
-
100
- if (!((_window = window) !== null && _window !== void 0 && (_window$localStorage = _window.localStorage) !== null && _window$localStorage !== void 0 && _window$localStorage.removeItem)) {
101
- _context.next = 5;
102
- break;
103
- }
104
-
105
- window.localStorage.removeItem(_constants.REACHABILITY.localStorage);
106
- _context.next = 7;
107
- break;
108
-
109
- case 5:
110
- _loggerProxy.default.logger.error('Reachability:index#gatherReachability --> Error in accessing LocalStorage.');
111
-
112
- return _context.abrupt("return", {});
113
-
114
- case 7:
115
- _context.prev = 7;
116
- _context.next = 10;
117
- return this.reachabilityRequest.getClusters();
118
-
119
- case 10:
120
- clusters = _context.sent;
121
- _context.next = 13;
122
- return this.performReachabilityCheck(clusters);
123
-
124
- case 13:
125
- results = _context.sent;
126
- window.localStorage.setItem(_constants.REACHABILITY.localStorage, (0, _stringify.default)(results));
127
-
128
- _loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
129
-
130
- return _context.abrupt("return", results);
131
-
132
- case 19:
133
- _context.prev = 19;
134
- _context.t0 = _context["catch"](7);
135
-
136
- _loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
137
-
138
- return _context.abrupt("return", {});
139
-
140
- case 23:
141
- case "end":
142
- return _context.stop();
143
- }
77
+ while (1) switch (_context.prev = _context.next) {
78
+ case 0:
79
+ this.setup();
80
+
81
+ // Remove stored reachability results to ensure no stale data
82
+ // @ts-ignore
83
+ _context.next = 3;
84
+ return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageResult);
85
+ case 3:
86
+ _context.next = 5;
87
+ return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageJoinCookie);
88
+ case 5:
89
+ _context.prev = 5;
90
+ _context.next = 8;
91
+ return this.reachabilityRequest.getClusters();
92
+ case 8:
93
+ _yield$this$reachabil = _context.sent;
94
+ clusters = _yield$this$reachabil.clusters;
95
+ joinCookie = _yield$this$reachabil.joinCookie;
96
+ _context.next = 13;
97
+ return this.performReachabilityCheck(clusters);
98
+ case 13:
99
+ results = _context.sent;
100
+ _context.next = 16;
101
+ return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageResult, (0, _stringify.default)(results));
102
+ case 16:
103
+ _context.next = 18;
104
+ return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageJoinCookie, (0, _stringify.default)(joinCookie));
105
+ case 18:
106
+ _loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
107
+ return _context.abrupt("return", results);
108
+ case 22:
109
+ _context.prev = 22;
110
+ _context.t0 = _context["catch"](5);
111
+ _loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
112
+ return _context.abrupt("return", {});
113
+ case 26:
114
+ case "end":
115
+ return _context.stop();
144
116
  }
145
- }, _callee, this, [[7, 19]]);
117
+ }, _callee, this, [[5, 22]]);
146
118
  }));
147
-
148
119
  function gatherReachability() {
149
120
  return _gatherReachability.apply(this, arguments);
150
121
  }
151
-
152
122
  return gatherReachability;
153
123
  }()
154
124
  /**
@@ -157,28 +127,42 @@ var Reachability = /*#__PURE__*/function () {
157
127
  * @public
158
128
  * @memberof Reachability
159
129
  */
160
-
161
130
  }, {
162
131
  key: "isAnyClusterReachable",
163
- value: function isAnyClusterReachable() {
164
- var reachable = false;
165
- var reachabilityData = window.localStorage.getItem(_constants.REACHABILITY.localStorage);
166
-
167
- if (reachabilityData) {
168
- try {
169
- var reachabilityResults = JSON.parse(reachabilityData);
170
- reachable = (0, _values.default)(reachabilityResults).some(function (result) {
171
- var _result$udp, _result$tcp;
172
-
173
- return ((_result$udp = result.udp) === null || _result$udp === void 0 ? void 0 : _result$udp.reachable) === 'true' || ((_result$tcp = result.tcp) === null || _result$tcp === void 0 ? void 0 : _result$tcp.reachable) === 'true';
174
- });
175
- } catch (e) {
176
- _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
177
- }
132
+ value: function () {
133
+ var _isAnyClusterReachable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
134
+ var reachable, reachabilityData, reachabilityResults;
135
+ return _regenerator.default.wrap(function _callee2$(_context2) {
136
+ while (1) switch (_context2.prev = _context2.next) {
137
+ case 0:
138
+ reachable = false; // @ts-ignore
139
+ _context2.next = 3;
140
+ return this.webex.boundedStorage.get(this.namespace, _constants.REACHABILITY.localStorageResult).catch(function () {});
141
+ case 3:
142
+ reachabilityData = _context2.sent;
143
+ if (reachabilityData) {
144
+ try {
145
+ reachabilityResults = JSON.parse(reachabilityData);
146
+ reachable = (0, _values.default)(reachabilityResults).some(function (result) {
147
+ var _result$udp, _result$tcp;
148
+ return ((_result$udp = result.udp) === null || _result$udp === void 0 ? void 0 : _result$udp.reachable) === 'true' || ((_result$tcp = result.tcp) === null || _result$tcp === void 0 ? void 0 : _result$tcp.reachable) === 'true';
149
+ });
150
+ } catch (e) {
151
+ _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
152
+ }
153
+ }
154
+ return _context2.abrupt("return", reachable);
155
+ case 6:
156
+ case "end":
157
+ return _context2.stop();
158
+ }
159
+ }, _callee2, this);
160
+ }));
161
+ function isAnyClusterReachable() {
162
+ return _isAnyClusterReachable.apply(this, arguments);
178
163
  }
179
-
180
- return reachable;
181
- }
164
+ return isAnyClusterReachable;
165
+ }()
182
166
  /**
183
167
  * Generate peerConnection config settings
184
168
  * @param {object} cluster
@@ -186,7 +170,6 @@ var Reachability = /*#__PURE__*/function () {
186
170
  * @private
187
171
  * @memberof Reachability
188
172
  */
189
-
190
173
  }, {
191
174
  key: "buildPeerConnectionConfig",
192
175
  value: function buildPeerConnectionConfig(cluster) {
@@ -203,6 +186,7 @@ var Reachability = /*#__PURE__*/function () {
203
186
  iceTransportPolicy: 'all'
204
187
  };
205
188
  }
189
+
206
190
  /**
207
191
  * Creates an RTCPeerConnection
208
192
  * @param {object} cluster
@@ -210,23 +194,23 @@ var Reachability = /*#__PURE__*/function () {
210
194
  * @private
211
195
  * @memberof Reachability
212
196
  */
213
-
214
197
  }, {
215
198
  key: "createPeerConnection",
216
199
  value: function createPeerConnection(cluster) {
217
200
  var key = cluster.key,
218
- config = cluster.config;
219
-
201
+ config = cluster.config;
220
202
  try {
221
203
  var peerConnection = new window.RTCPeerConnection(config);
204
+
205
+ // @ts-ignore
222
206
  peerConnection.key = key;
223
207
  return peerConnection;
224
208
  } catch (peerConnectionError) {
225
209
  _loggerProxy.default.logger.log("Reachability:index#createPeerConnection --> Error creating peerConnection: ".concat(peerConnectionError));
226
-
227
210
  return null;
228
211
  }
229
212
  }
213
+
230
214
  /**
231
215
  * Gets total elapsed time
232
216
  * @param {RTCPeerConnection} peerConnection
@@ -234,7 +218,6 @@ var Reachability = /*#__PURE__*/function () {
234
218
  * @private
235
219
  * @memberof Reachability
236
220
  */
237
-
238
221
  }, {
239
222
  key: "getElapsedTime",
240
223
  value: function getElapsedTime(peerConnection) {
@@ -242,6 +225,7 @@ var Reachability = /*#__PURE__*/function () {
242
225
  delete peerConnection.begin;
243
226
  return (0, _now.default)() - startTime;
244
227
  }
228
+
245
229
  /**
246
230
  * creates offer and generates localSDP
247
231
  * @param {object} clusterList cluster List
@@ -249,65 +233,59 @@ var Reachability = /*#__PURE__*/function () {
249
233
  * @private
250
234
  * @memberof Reachability
251
235
  */
252
-
253
236
  }, {
254
237
  key: "getLocalSDPForClusters",
255
238
  value: function getLocalSDPForClusters(clusterList) {
256
239
  var _this = this;
257
-
258
240
  var clusters = (0, _toConsumableArray2.default)((0, _keys.default)(clusterList));
259
241
  clusters = clusters.map( /*#__PURE__*/function () {
260
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(key) {
242
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(key) {
261
243
  var cluster, config, peerConnection, description;
262
- return _regenerator.default.wrap(function _callee2$(_context2) {
263
- while (1) {
264
- switch (_context2.prev = _context2.next) {
265
- case 0:
266
- cluster = clusterList[key];
267
- config = _this.buildPeerConnectionConfig(cluster);
268
- peerConnection = _this.createPeerConnection({
269
- key: key,
270
- config: config
271
- });
272
- _context2.next = 5;
273
- return peerConnection.createOffer({
274
- offerToReceiveAudio: true
275
- });
276
-
277
- case 5:
278
- description = _context2.sent;
279
- peerConnection.begin = (0, _now.default)();
280
- peerConnection.setLocalDescription(description);
281
- return _context2.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT).catch(function (iceGatheringStateError) {
282
- _loggerProxy.default.logger.log("Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ".concat(iceGatheringStateError));
283
- }));
284
-
285
- case 9:
286
- case "end":
287
- return _context2.stop();
288
- }
244
+ return _regenerator.default.wrap(function _callee3$(_context3) {
245
+ while (1) switch (_context3.prev = _context3.next) {
246
+ case 0:
247
+ cluster = clusterList[key];
248
+ config = _this.buildPeerConnectionConfig(cluster);
249
+ peerConnection = _this.createPeerConnection({
250
+ key: key,
251
+ config: config
252
+ });
253
+ _context3.next = 5;
254
+ return peerConnection.createOffer({
255
+ offerToReceiveAudio: true
256
+ });
257
+ case 5:
258
+ description = _context3.sent;
259
+ // @ts-ignore
260
+ peerConnection.begin = (0, _now.default)();
261
+ peerConnection.setLocalDescription(description);
262
+ return _context3.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT).catch(function (iceGatheringStateError) {
263
+ _loggerProxy.default.logger.log("Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ".concat(iceGatheringStateError));
264
+ }));
265
+ case 9:
266
+ case "end":
267
+ return _context3.stop();
289
268
  }
290
- }, _callee2);
269
+ }, _callee3);
291
270
  }));
292
-
293
271
  return function (_x) {
294
272
  return _ref.apply(this, arguments);
295
273
  };
296
274
  }());
297
275
  return _promise.default.all(clusters).then(this.parseIceResultsToReachabilityResults).then(function (reachabilityLatencyResults) {
298
- _this.logUnreachableClusters(); // return results
299
-
276
+ _this.logUnreachableClusters();
300
277
 
278
+ // return results
301
279
  return reachabilityLatencyResults;
302
280
  });
303
281
  }
282
+
304
283
  /**
305
284
  * Get list of all unreachable clusters
306
285
  * @returns {array} Unreachable clusters
307
286
  * @private
308
287
  * @memberof Reachability
309
288
  */
310
-
311
289
  }, {
312
290
  key: "getUnreachablClusters",
313
291
  value: function getUnreachablClusters() {
@@ -315,13 +293,13 @@ var Reachability = /*#__PURE__*/function () {
315
293
  var clusters = this.clusterLatencyResults;
316
294
  (0, _keys.default)(clusters).forEach(function (key) {
317
295
  var cluster = clusters[key];
318
-
319
296
  if (cluster.unreachable && !cluster.reachable) {
320
297
  unreachableList.push(key);
321
298
  }
322
299
  });
323
300
  return unreachableList;
324
301
  }
302
+
325
303
  /**
326
304
  * Attach an event handler for the icegatheringstatechange
327
305
  * event and measure latency.
@@ -330,24 +308,23 @@ var Reachability = /*#__PURE__*/function () {
330
308
  * @private
331
309
  * @memberof Reachability
332
310
  */
333
-
334
311
  }, {
335
312
  key: "handleIceGatheringStateChange",
336
313
  value: function handleIceGatheringStateChange(peerConnection) {
337
314
  var _this2 = this;
338
-
339
315
  peerConnection.onicegatheringstatechange = function () {
340
316
  var COMPLETE = _constants.ICE_GATHERING_STATE.COMPLETE;
341
-
342
317
  if (peerConnection.iceConnectionState === COMPLETE) {
343
318
  var elapsed = _this2.getElapsedTime(peerConnection);
344
319
 
345
- _loggerProxy.default.logger.log("Reachability:index#onIceGatheringStateChange --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
346
-
320
+ // @ts-ignore
321
+ _loggerProxy.default.logger.log( // @ts-ignore
322
+ "Reachability:index#onIceGatheringStateChange --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
347
323
  _this2.setLatencyAndClose(peerConnection, elapsed);
348
324
  }
349
325
  };
350
326
  }
327
+
351
328
  /**
352
329
  * Attach an event handler for the icecandidate
353
330
  * event and measure latency.
@@ -356,24 +333,21 @@ var Reachability = /*#__PURE__*/function () {
356
333
  * @private
357
334
  * @memberof Reachability
358
335
  */
359
-
360
336
  }, {
361
337
  key: "handleOnIceCandidate",
362
338
  value: function handleOnIceCandidate(peerConnection) {
363
339
  var _this3 = this;
364
-
365
340
  peerConnection.onicecandidate = function (e) {
366
341
  var SERVER_REFLEXIVE = 'srflx';
367
-
368
342
  if (e.candidate && String(e.candidate.type).toLowerCase() === SERVER_REFLEXIVE) {
369
343
  var elapsed = _this3.getElapsedTime(peerConnection);
370
-
371
- _loggerProxy.default.logger.log("Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
372
-
344
+ _loggerProxy.default.logger.log( // @ts-ignore
345
+ "Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
373
346
  _this3.setLatencyAndClose(peerConnection, elapsed);
374
347
  }
375
348
  };
376
349
  }
350
+
377
351
  /**
378
352
  * An event handler on an RTCPeerConnection when the state of the ICE
379
353
  * candidate gathering process changes. Used to measure connection
@@ -383,61 +357,59 @@ var Reachability = /*#__PURE__*/function () {
383
357
  * @param {number} timeout
384
358
  * @returns {Promise}
385
359
  */
386
-
387
360
  }, {
388
361
  key: "iceGatheringState",
389
362
  value: function iceGatheringState(peerConnection, timeout) {
390
363
  var _this4 = this;
391
-
392
364
  var ELAPSED = 'elapsed';
393
365
  return new _promise.default(function (resolve) {
394
366
  var peerConnectionProxy = new window.Proxy(peerConnection, {
395
367
  get: function get(target, property) {
396
368
  var targetMember = target[property];
397
-
398
369
  if (typeof targetMember === 'function') {
399
370
  return targetMember.bind(target);
400
371
  }
401
-
402
372
  return targetMember;
403
373
  },
404
374
  set: function set(target, property, value) {
405
375
  // only intercept elapsed property
406
376
  if (property === ELAPSED) {
377
+ // @ts-ignore
407
378
  resolve({
408
379
  clusterId: peerConnection.key,
409
380
  elapsed: value
410
381
  });
411
382
  return true;
412
- } // pass thru
413
-
383
+ }
414
384
 
385
+ // pass thru
415
386
  return window.Reflect.set(target, property, value);
416
387
  }
417
- }); // Using peerConnection proxy so handle functions below
418
- // won't be coupled to our promise implementation
388
+ });
419
389
 
390
+ // Using peerConnection proxy so handle functions below
391
+ // won't be coupled to our promise implementation
420
392
  _this4.handleIceGatheringStateChange(peerConnectionProxy);
393
+ _this4.handleOnIceCandidate(peerConnectionProxy);
421
394
 
422
- _this4.handleOnIceCandidate(peerConnectionProxy); // Set maximum timeout
423
-
424
-
395
+ // Set maximum timeout
425
396
  window.setTimeout(function () {
426
- var CLOSED = _constants.CONNECTION_STATE.CLOSED; // Close any open peerConnections
397
+ var CLOSED = _constants.CONNECTION_STATE.CLOSED;
427
398
 
399
+ // Close any open peerConnections
428
400
  if (peerConnectionProxy.connectionState !== CLOSED) {
429
401
  _this4.setLatencyAndClose(peerConnectionProxy, null);
430
402
  }
431
403
  }, timeout);
432
404
  });
433
405
  }
406
+
434
407
  /**
435
408
  * Make a log of unreachable clusters.
436
409
  * @returns {undefined}
437
410
  * @private
438
411
  * @memberof Reachability
439
412
  */
440
-
441
413
  }, {
442
414
  key: "logUnreachableClusters",
443
415
  value: function logUnreachableClusters() {
@@ -446,6 +418,7 @@ var Reachability = /*#__PURE__*/function () {
446
418
  _loggerProxy.default.logger.log("Reachability:index#logUnreachableClusters --> No ice candidate for ".concat(cluster, "."));
447
419
  });
448
420
  }
421
+
449
422
  /**
450
423
  * Calculates time to establish connection
451
424
  * @param {array} iceResults iceResults
@@ -453,16 +426,14 @@ var Reachability = /*#__PURE__*/function () {
453
426
  * @private
454
427
  * @memberof Reachability
455
428
  */
456
-
457
429
  }, {
458
430
  key: "parseIceResultsToReachabilityResults",
459
431
  value: function parseIceResultsToReachabilityResults(iceResults) {
460
432
  var reachabilityMap = {};
461
433
  iceResults.forEach(function (_ref2) {
462
434
  var clusterId = _ref2.clusterId,
463
- elapsed = _ref2.elapsed;
435
+ elapsed = _ref2.elapsed;
464
436
  var latencyResult;
465
-
466
437
  if (elapsed === null) {
467
438
  latencyResult = {
468
439
  reachable: 'false'
@@ -473,7 +444,6 @@ var Reachability = /*#__PURE__*/function () {
473
444
  latencyInMilliseconds: elapsed.toString()
474
445
  };
475
446
  }
476
-
477
447
  reachabilityMap[clusterId] = {
478
448
  udp: latencyResult,
479
449
  tcp: latencyResult
@@ -481,6 +451,7 @@ var Reachability = /*#__PURE__*/function () {
481
451
  });
482
452
  return reachabilityMap;
483
453
  }
454
+
484
455
  /**
485
456
  * fetches reachability data
486
457
  * @param {object} clusterList
@@ -488,33 +459,29 @@ var Reachability = /*#__PURE__*/function () {
488
459
  * @private
489
460
  * @memberof Reachability
490
461
  */
491
-
492
462
  }, {
493
463
  key: "performReachabilityCheck",
494
464
  value: function performReachabilityCheck(clusterList) {
495
465
  var _this5 = this;
496
-
497
466
  if (!clusterList || !(0, _keys.default)(clusterList).length) {
498
467
  return _promise.default.resolve({});
499
468
  }
500
-
501
469
  return new _promise.default(function (resolve) {
502
470
  _this5.getLocalSDPForClusters(clusterList).then(function (localSDPData) {
503
471
  if (!localSDPData || !(0, _keys.default)(localSDPData).length) {
504
472
  // TODO: handle the error condition properly and try retry
505
473
  _loggerProxy.default.logger.log('Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning');
506
-
507
474
  resolve({});
508
475
  } else {
509
476
  resolve(localSDPData);
510
477
  }
511
478
  }).catch(function (error) {
512
479
  _loggerProxy.default.logger.error("Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ".concat(error));
513
-
514
480
  resolve({});
515
481
  });
516
482
  });
517
483
  }
484
+
518
485
  /**
519
486
  * Records latency and closes the peerConnection
520
487
  * @param {RTCPeerConnection} peerConnection
@@ -523,40 +490,38 @@ var Reachability = /*#__PURE__*/function () {
523
490
  * @private
524
491
  * @memberof Reachability
525
492
  */
526
-
527
493
  }, {
528
494
  key: "setLatencyAndClose",
529
495
  value: function setLatencyAndClose(peerConnection, elapsed) {
530
496
  var _intialState;
531
-
532
497
  var REACHABLE = 'reachable';
533
498
  var UNREACHABLE = 'unreachable';
534
499
  var CLOSED = _constants.CONNECTION_STATE.CLOSED;
500
+ // @ts-ignore
535
501
  var key = peerConnection.key;
536
502
  var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
537
503
  var intialState = (_intialState = {}, (0, _defineProperty2.default)(_intialState, REACHABLE, 0), (0, _defineProperty2.default)(_intialState, UNREACHABLE, 0), _intialState);
538
-
539
504
  if (peerConnection.connectionState === CLOSED) {
540
505
  _loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
541
-
542
506
  return;
543
507
  }
544
-
545
508
  this.clusterLatencyResults[key] = this.clusterLatencyResults[key] || intialState;
546
- this.clusterLatencyResults[key][resultKey] += 1; // Set to null in case this fired from
547
- // an event other than onIceCandidate
509
+ this.clusterLatencyResults[key][resultKey] += 1;
548
510
 
511
+ // Set to null in case this fired from
512
+ // an event other than onIceCandidate
549
513
  peerConnection.onicecandidate = null;
550
514
  peerConnection.close();
515
+ // @ts-ignore
551
516
  peerConnection.elapsed = elapsed;
552
517
  }
518
+
553
519
  /**
554
520
  * utility function
555
521
  * @returns {undefined}
556
522
  * @private
557
523
  * @memberof Reachability
558
524
  */
559
-
560
525
  }, {
561
526
  key: "setup",
562
527
  value: function setup() {
@@ -565,6 +530,5 @@ var Reachability = /*#__PURE__*/function () {
565
530
  }]);
566
531
  return Reachability;
567
532
  }();
568
-
569
533
  exports.default = Reachability;
570
534
  //# sourceMappingURL=index.js.map