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

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 (629) hide show
  1. package/README.md +58 -8
  2. package/UPGRADING.md +9 -9
  3. package/browsers.js +19 -24
  4. package/dist/annotation/annotation.types.js +7 -0
  5. package/dist/annotation/annotation.types.js.map +1 -0
  6. package/dist/annotation/constants.js +49 -0
  7. package/dist/annotation/constants.js.map +1 -0
  8. package/dist/annotation/index.js +342 -0
  9. package/dist/annotation/index.js.map +1 -0
  10. package/dist/breakouts/breakout.js +216 -0
  11. package/dist/breakouts/breakout.js.map +1 -0
  12. package/dist/breakouts/collection.js +23 -0
  13. package/dist/breakouts/collection.js.map +1 -0
  14. package/dist/breakouts/edit-lock-error.js +52 -0
  15. package/dist/breakouts/edit-lock-error.js.map +1 -0
  16. package/dist/breakouts/events.js +45 -0
  17. package/dist/breakouts/events.js.map +1 -0
  18. package/dist/breakouts/index.js +1048 -0
  19. package/dist/breakouts/index.js.map +1 -0
  20. package/dist/breakouts/request.js +78 -0
  21. package/dist/breakouts/request.js.map +1 -0
  22. package/dist/breakouts/utils.js +67 -0
  23. package/dist/breakouts/utils.js.map +1 -0
  24. package/dist/common/browser-detection.js +1 -20
  25. package/dist/common/browser-detection.js.map +1 -1
  26. package/dist/common/collection.js +5 -20
  27. package/dist/common/collection.js.map +1 -1
  28. package/dist/common/config.js +0 -7
  29. package/dist/common/config.js.map +1 -1
  30. package/dist/common/errors/captcha-error.js +10 -24
  31. package/dist/common/errors/captcha-error.js.map +1 -1
  32. package/dist/common/errors/intent-to-join.js +11 -24
  33. package/dist/common/errors/intent-to-join.js.map +1 -1
  34. package/dist/common/errors/join-meeting.js +12 -25
  35. package/dist/common/errors/join-meeting.js.map +1 -1
  36. package/dist/common/errors/media.js +10 -24
  37. package/dist/common/errors/media.js.map +1 -1
  38. package/dist/common/errors/no-meeting-info.js +51 -0
  39. package/dist/common/errors/no-meeting-info.js.map +1 -0
  40. package/dist/common/errors/parameter.js +5 -33
  41. package/dist/common/errors/parameter.js.map +1 -1
  42. package/dist/common/errors/password-error.js +10 -24
  43. package/dist/common/errors/password-error.js.map +1 -1
  44. package/dist/common/errors/permission.js +9 -23
  45. package/dist/common/errors/permission.js.map +1 -1
  46. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  47. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  48. package/dist/common/errors/reconnection-in-progress.js +0 -17
  49. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  50. package/dist/common/errors/reconnection.js +10 -24
  51. package/dist/common/errors/reconnection.js.map +1 -1
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.js +54 -48
  55. package/dist/common/errors/webex-errors.js.map +1 -1
  56. package/dist/common/errors/webex-meetings-error.js +5 -25
  57. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  58. package/dist/common/events/events-scope.js +0 -22
  59. package/dist/common/events/events-scope.js.map +1 -1
  60. package/dist/common/events/events.js +0 -23
  61. package/dist/common/events/events.js.map +1 -1
  62. package/dist/common/events/trigger-proxy.js +0 -12
  63. package/dist/common/events/trigger-proxy.js.map +1 -1
  64. package/dist/common/events/util.js +0 -15
  65. package/dist/common/events/util.js.map +1 -1
  66. package/dist/common/logs/logger-config.js +0 -4
  67. package/dist/common/logs/logger-config.js.map +1 -1
  68. package/dist/common/logs/logger-proxy.js +1 -8
  69. package/dist/common/logs/logger-proxy.js.map +1 -1
  70. package/dist/common/logs/request.js +41 -60
  71. package/dist/common/logs/request.js.map +1 -1
  72. package/dist/common/queue.js +28 -23
  73. package/dist/common/queue.js.map +1 -1
  74. package/dist/config.js +11 -15
  75. package/dist/config.js.map +1 -1
  76. package/dist/constants.js +347 -74
  77. package/dist/constants.js.map +1 -1
  78. package/dist/controls-options-manager/constants.js +14 -0
  79. package/dist/controls-options-manager/constants.js.map +1 -0
  80. package/dist/controls-options-manager/enums.js +27 -0
  81. package/dist/controls-options-manager/enums.js.map +1 -0
  82. package/dist/controls-options-manager/index.js +297 -0
  83. package/dist/controls-options-manager/index.js.map +1 -0
  84. package/dist/controls-options-manager/types.js +7 -0
  85. package/dist/controls-options-manager/types.js.map +1 -0
  86. package/dist/controls-options-manager/util.js +319 -0
  87. package/dist/controls-options-manager/util.js.map +1 -0
  88. package/dist/index.js +125 -18
  89. package/dist/index.js.map +1 -1
  90. package/dist/interceptors/index.js +15 -0
  91. package/dist/interceptors/index.js.map +1 -0
  92. package/dist/interceptors/locusRetry.js +93 -0
  93. package/dist/interceptors/locusRetry.js.map +1 -0
  94. package/dist/interpretation/collection.js +23 -0
  95. package/dist/interpretation/collection.js.map +1 -0
  96. package/dist/interpretation/index.js +380 -0
  97. package/dist/interpretation/index.js.map +1 -0
  98. package/dist/interpretation/siLanguage.js +25 -0
  99. package/dist/interpretation/siLanguage.js.map +1 -0
  100. package/dist/locus-info/controlsUtils.js +101 -29
  101. package/dist/locus-info/controlsUtils.js.map +1 -1
  102. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  103. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  104. package/dist/locus-info/fullState.js +0 -15
  105. package/dist/locus-info/fullState.js.map +1 -1
  106. package/dist/locus-info/hostUtils.js +4 -12
  107. package/dist/locus-info/hostUtils.js.map +1 -1
  108. package/dist/locus-info/index.js +564 -246
  109. package/dist/locus-info/index.js.map +1 -1
  110. package/dist/locus-info/infoUtils.js +10 -38
  111. package/dist/locus-info/infoUtils.js.map +1 -1
  112. package/dist/locus-info/mediaSharesUtils.js +82 -38
  113. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  114. package/dist/locus-info/parser.js +314 -163
  115. package/dist/locus-info/parser.js.map +1 -1
  116. package/dist/locus-info/selfUtils.js +110 -92
  117. package/dist/locus-info/selfUtils.js.map +1 -1
  118. package/dist/media/index.js +107 -231
  119. package/dist/media/index.js.map +1 -1
  120. package/dist/media/properties.js +137 -222
  121. package/dist/media/properties.js.map +1 -1
  122. package/dist/media/util.js +2 -9
  123. package/dist/media/util.js.map +1 -1
  124. package/dist/mediaQualityMetrics/config.js +316 -501
  125. package/dist/mediaQualityMetrics/config.js.map +1 -1
  126. package/dist/meeting/in-meeting-actions.js +97 -14
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.js +5311 -3871
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/locusMediaRequest.js +292 -0
  131. package/dist/meeting/locusMediaRequest.js.map +1 -0
  132. package/dist/meeting/muteState.js +260 -183
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.js +421 -347
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/request.type.js +7 -0
  137. package/dist/meeting/request.type.js.map +1 -0
  138. package/dist/meeting/state.js +21 -31
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.js +672 -585
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting/voicea-meeting.js +172 -0
  143. package/dist/meeting/voicea-meeting.js.map +1 -0
  144. package/dist/meeting-info/collection.js +6 -25
  145. package/dist/meeting-info/collection.js.map +1 -1
  146. package/dist/meeting-info/index.js +87 -39
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.js +352 -283
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.js +3 -15
  151. package/dist/meeting-info/request.js.map +1 -1
  152. package/dist/meeting-info/util.js +99 -183
  153. package/dist/meeting-info/util.js.map +1 -1
  154. package/dist/meeting-info/utilv2.js +147 -234
  155. package/dist/meeting-info/utilv2.js.map +1 -1
  156. package/dist/meetings/collection.js +43 -19
  157. package/dist/meetings/collection.js.map +1 -1
  158. package/dist/meetings/index.js +895 -600
  159. package/dist/meetings/index.js.map +1 -1
  160. package/dist/meetings/meetings.types.js +7 -0
  161. package/dist/meetings/meetings.types.js.map +1 -0
  162. package/dist/meetings/request.js +26 -41
  163. package/dist/meetings/request.js.map +1 -1
  164. package/dist/meetings/util.js +184 -157
  165. package/dist/meetings/util.js.map +1 -1
  166. package/dist/member/index.js +134 -85
  167. package/dist/member/index.js.map +1 -1
  168. package/dist/member/types.js +25 -0
  169. package/dist/member/types.js.map +1 -0
  170. package/dist/member/util.js +158 -88
  171. package/dist/member/util.js.map +1 -1
  172. package/dist/members/collection.js +13 -12
  173. package/dist/members/collection.js.map +1 -1
  174. package/dist/members/index.js +194 -204
  175. package/dist/members/index.js.map +1 -1
  176. package/dist/members/request.js +113 -68
  177. package/dist/members/request.js.map +1 -1
  178. package/dist/members/types.js +15 -0
  179. package/dist/members/types.js.map +1 -0
  180. package/dist/members/util.js +324 -259
  181. package/dist/members/util.js.map +1 -1
  182. package/dist/metrics/constants.js +19 -7
  183. package/dist/metrics/constants.js.map +1 -1
  184. package/dist/metrics/index.js +11 -558
  185. package/dist/metrics/index.js.map +1 -1
  186. package/dist/multistream/mediaRequestManager.js +263 -50
  187. package/dist/multistream/mediaRequestManager.js.map +1 -1
  188. package/dist/multistream/receiveSlot.js +58 -65
  189. package/dist/multistream/receiveSlot.js.map +1 -1
  190. package/dist/multistream/receiveSlotManager.js +76 -95
  191. package/dist/multistream/receiveSlotManager.js.map +1 -1
  192. package/dist/multistream/remoteMedia.js +62 -76
  193. package/dist/multistream/remoteMedia.js.map +1 -1
  194. package/dist/multistream/remoteMediaGroup.js +82 -45
  195. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  196. package/dist/multistream/remoteMediaManager.js +657 -448
  197. package/dist/multistream/remoteMediaManager.js.map +1 -1
  198. package/dist/multistream/sendSlotManager.js +255 -0
  199. package/dist/multistream/sendSlotManager.js.map +1 -0
  200. package/dist/networkQualityMonitor/index.js +40 -59
  201. package/dist/networkQualityMonitor/index.js.map +1 -1
  202. package/dist/personal-meeting-room/index.js +21 -45
  203. package/dist/personal-meeting-room/index.js.map +1 -1
  204. package/dist/personal-meeting-room/request.js +1 -31
  205. package/dist/personal-meeting-room/request.js.map +1 -1
  206. package/dist/personal-meeting-room/util.js +0 -13
  207. package/dist/personal-meeting-room/util.js.map +1 -1
  208. package/dist/reachability/clusterReachability.js +356 -0
  209. package/dist/reachability/clusterReachability.js.map +1 -0
  210. package/dist/reachability/index.js +297 -460
  211. package/dist/reachability/index.js.map +1 -1
  212. package/dist/reachability/request.js +20 -26
  213. package/dist/reachability/request.js.map +1 -1
  214. package/dist/reachability/util.js +29 -0
  215. package/dist/reachability/util.js.map +1 -0
  216. package/dist/reactions/constants.js +13 -0
  217. package/dist/reactions/constants.js.map +1 -0
  218. package/dist/reactions/reactions.js +109 -0
  219. package/dist/reactions/reactions.js.map +1 -0
  220. package/dist/reactions/reactions.type.js +36 -0
  221. package/dist/reactions/reactions.type.js.map +1 -0
  222. package/dist/reconnection-manager/index.js +413 -483
  223. package/dist/reconnection-manager/index.js.map +1 -1
  224. package/dist/recording-controller/enums.js +17 -0
  225. package/dist/recording-controller/enums.js.map +1 -0
  226. package/dist/recording-controller/index.js +362 -0
  227. package/dist/recording-controller/index.js.map +1 -0
  228. package/dist/recording-controller/util.js +64 -0
  229. package/dist/recording-controller/util.js.map +1 -0
  230. package/dist/roap/index.js +102 -86
  231. package/dist/roap/index.js.map +1 -1
  232. package/dist/roap/request.js +131 -135
  233. package/dist/roap/request.js.map +1 -1
  234. package/dist/roap/turnDiscovery.js +437 -116
  235. package/dist/roap/turnDiscovery.js.map +1 -1
  236. package/dist/rtcMetrics/constants.js +12 -0
  237. package/dist/rtcMetrics/constants.js.map +1 -0
  238. package/dist/rtcMetrics/index.js +179 -0
  239. package/dist/rtcMetrics/index.js.map +1 -0
  240. package/dist/statsAnalyzer/global.js +1 -95
  241. package/dist/statsAnalyzer/global.js.map +1 -1
  242. package/dist/statsAnalyzer/index.js +557 -583
  243. package/dist/statsAnalyzer/index.js.map +1 -1
  244. package/dist/statsAnalyzer/mqaUtil.js +326 -130
  245. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  246. package/dist/transcription/index.js +22 -47
  247. package/dist/transcription/index.js.map +1 -1
  248. package/dist/types/annotation/annotation.types.d.ts +42 -0
  249. package/dist/types/annotation/constants.d.ts +31 -0
  250. package/dist/types/annotation/index.d.ts +117 -0
  251. package/dist/types/breakouts/breakout.d.ts +8 -0
  252. package/dist/types/breakouts/collection.d.ts +5 -0
  253. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  254. package/dist/types/breakouts/events.d.ts +8 -0
  255. package/dist/types/breakouts/index.d.ts +5 -0
  256. package/dist/types/breakouts/request.d.ts +22 -0
  257. package/dist/types/breakouts/utils.d.ts +15 -0
  258. package/dist/types/common/browser-detection.d.ts +9 -0
  259. package/dist/types/common/collection.d.ts +48 -0
  260. package/dist/types/common/config.d.ts +2 -0
  261. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  262. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  263. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  264. package/dist/types/common/errors/media.d.ts +15 -0
  265. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  266. package/dist/types/common/errors/parameter.d.ts +15 -0
  267. package/dist/types/common/errors/password-error.d.ts +15 -0
  268. package/dist/types/common/errors/permission.d.ts +14 -0
  269. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  270. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  271. package/dist/types/common/errors/reconnection.d.ts +15 -0
  272. package/dist/types/common/errors/stats.d.ts +15 -0
  273. package/dist/types/common/errors/webex-errors.d.ts +93 -0
  274. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  275. package/dist/types/common/events/events-scope.d.ts +17 -0
  276. package/dist/types/common/events/events.d.ts +12 -0
  277. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  278. package/dist/types/common/events/util.d.ts +2 -0
  279. package/dist/types/common/logs/logger-config.d.ts +2 -0
  280. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  281. package/dist/types/common/logs/request.d.ts +36 -0
  282. package/dist/types/common/queue.d.ts +34 -0
  283. package/dist/types/config.d.ts +72 -0
  284. package/dist/types/constants.d.ts +1088 -0
  285. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  286. package/dist/types/controls-options-manager/enums.d.ts +15 -0
  287. package/dist/types/controls-options-manager/index.d.ts +136 -0
  288. package/dist/types/controls-options-manager/types.d.ts +43 -0
  289. package/dist/types/controls-options-manager/util.d.ts +1 -0
  290. package/dist/types/index.d.ts +7 -0
  291. package/dist/types/interceptors/index.d.ts +2 -0
  292. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  293. package/dist/types/interpretation/collection.d.ts +5 -0
  294. package/dist/types/interpretation/index.d.ts +5 -0
  295. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  296. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  297. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  298. package/dist/types/locus-info/fullState.d.ts +2 -0
  299. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  300. package/dist/types/locus-info/index.d.ts +322 -0
  301. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  302. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  303. package/dist/types/locus-info/parser.d.ts +272 -0
  304. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  305. package/dist/types/media/index.d.ts +34 -0
  306. package/dist/types/media/properties.d.ts +93 -0
  307. package/dist/types/media/util.d.ts +2 -0
  308. package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
  309. package/dist/types/meeting/in-meeting-actions.d.ts +167 -0
  310. package/dist/types/meeting/index.d.ts +1824 -0
  311. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  312. package/dist/types/meeting/muteState.d.ts +178 -0
  313. package/dist/types/meeting/request.d.ts +293 -0
  314. package/dist/types/meeting/request.type.d.ts +11 -0
  315. package/dist/types/meeting/state.d.ts +9 -0
  316. package/dist/types/meeting/util.d.ts +118 -0
  317. package/dist/types/meeting/voicea-meeting.d.ts +16 -0
  318. package/dist/types/meeting-info/collection.d.ts +20 -0
  319. package/dist/types/meeting-info/index.d.ts +69 -0
  320. package/dist/types/meeting-info/meeting-info-v2.d.ts +123 -0
  321. package/dist/types/meeting-info/request.d.ts +22 -0
  322. package/dist/types/meeting-info/util.d.ts +2 -0
  323. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  324. package/dist/types/meetings/collection.d.ts +40 -0
  325. package/dist/types/meetings/index.d.ts +389 -0
  326. package/dist/types/meetings/meetings.types.d.ts +4 -0
  327. package/dist/types/meetings/request.d.ts +27 -0
  328. package/dist/types/meetings/util.d.ts +18 -0
  329. package/dist/types/member/index.d.ts +160 -0
  330. package/dist/types/member/types.d.ts +32 -0
  331. package/dist/types/member/util.d.ts +2 -0
  332. package/dist/types/members/collection.d.ts +29 -0
  333. package/dist/types/members/index.d.ts +353 -0
  334. package/dist/types/members/request.d.ts +114 -0
  335. package/dist/types/members/types.d.ts +25 -0
  336. package/dist/types/members/util.d.ts +215 -0
  337. package/dist/types/metrics/constants.d.ts +70 -0
  338. package/dist/types/metrics/index.d.ts +45 -0
  339. package/dist/types/multistream/mediaRequestManager.d.ts +120 -0
  340. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  341. package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
  342. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  343. package/dist/types/multistream/remoteMediaGroup.d.ts +49 -0
  344. package/dist/types/multistream/remoteMediaManager.d.ts +301 -0
  345. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  346. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  347. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  348. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  349. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  350. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  351. package/dist/types/reachability/index.d.ts +105 -0
  352. package/dist/types/reachability/request.d.ts +39 -0
  353. package/dist/types/reachability/util.d.ts +8 -0
  354. package/dist/types/reactions/constants.d.ts +3 -0
  355. package/dist/types/reactions/reactions.d.ts +4 -0
  356. package/dist/types/reactions/reactions.type.d.ts +52 -0
  357. package/dist/types/reconnection-manager/index.d.ts +136 -0
  358. package/dist/types/recording-controller/enums.d.ts +7 -0
  359. package/dist/types/recording-controller/index.d.ts +207 -0
  360. package/dist/types/recording-controller/util.d.ts +14 -0
  361. package/dist/types/roap/index.d.ts +86 -0
  362. package/dist/types/roap/request.d.ts +39 -0
  363. package/dist/types/roap/turnDiscovery.d.ts +155 -0
  364. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  365. package/dist/types/rtcMetrics/index.d.ts +61 -0
  366. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  367. package/dist/types/statsAnalyzer/index.d.ts +217 -0
  368. package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
  369. package/dist/types/transcription/index.d.ts +64 -0
  370. package/dist/types/webinar/collection.d.ts +16 -0
  371. package/dist/types/webinar/index.d.ts +5 -0
  372. package/dist/webinar/collection.js +44 -0
  373. package/dist/webinar/collection.js.map +1 -0
  374. package/dist/webinar/index.js +69 -0
  375. package/dist/webinar/index.js.map +1 -0
  376. package/internal-README.md +7 -6
  377. package/package.json +30 -21
  378. package/src/annotation/annotation.types.ts +50 -0
  379. package/src/annotation/constants.ts +36 -0
  380. package/src/annotation/index.ts +328 -0
  381. package/src/breakouts/README.md +220 -0
  382. package/src/breakouts/breakout.ts +188 -0
  383. package/src/breakouts/collection.ts +19 -0
  384. package/src/breakouts/edit-lock-error.ts +25 -0
  385. package/src/breakouts/events.ts +56 -0
  386. package/src/breakouts/index.ts +925 -0
  387. package/src/breakouts/request.ts +55 -0
  388. package/src/breakouts/utils.ts +57 -0
  389. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  390. package/src/common/collection.ts +9 -7
  391. package/src/common/{config.js → config.ts} +1 -1
  392. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  393. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  394. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  395. package/src/common/errors/{media.js → media.ts} +11 -7
  396. package/src/common/errors/no-meeting-info.ts +24 -0
  397. package/src/common/errors/parameter.ts +11 -7
  398. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  399. package/src/common/errors/{permission.js → permission.ts} +10 -6
  400. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  401. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  402. package/src/common/errors/{stats.js → stats.ts} +11 -7
  403. package/src/common/errors/{webex-errors.js → webex-errors.ts} +51 -8
  404. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  405. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  406. package/src/common/events/{events.js → events.ts} +5 -1
  407. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  408. package/src/common/events/{util.js → util.ts} +2 -3
  409. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  410. package/src/common/logs/logger-proxy.ts +44 -0
  411. package/src/common/logs/{request.js → request.ts} +26 -9
  412. package/src/common/queue.ts +22 -9
  413. package/src/{config.js → config.ts} +19 -21
  414. package/src/constants.ts +296 -27
  415. package/src/controls-options-manager/constants.ts +5 -0
  416. package/src/controls-options-manager/enums.ts +18 -0
  417. package/src/controls-options-manager/index.ts +278 -0
  418. package/src/controls-options-manager/types.ts +59 -0
  419. package/src/controls-options-manager/util.ts +300 -0
  420. package/src/index.ts +45 -0
  421. package/src/interceptors/index.ts +3 -0
  422. package/src/interceptors/locusRetry.ts +67 -0
  423. package/src/interpretation/README.md +60 -0
  424. package/src/interpretation/collection.ts +19 -0
  425. package/src/interpretation/index.ts +349 -0
  426. package/src/interpretation/siLanguage.ts +18 -0
  427. package/src/locus-info/controlsUtils.ts +222 -0
  428. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  429. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  430. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  431. package/src/locus-info/{index.js → index.ts} +561 -119
  432. package/src/locus-info/{infoUtils.js → infoUtils.ts} +29 -10
  433. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +97 -17
  434. package/src/locus-info/{parser.js → parser.ts} +303 -104
  435. package/src/locus-info/{selfUtils.js → selfUtils.ts} +199 -68
  436. package/src/media/index.ts +460 -0
  437. package/src/media/properties.ts +283 -0
  438. package/src/media/{util.js → util.ts} +2 -2
  439. package/src/mediaQualityMetrics/config.ts +249 -0
  440. package/src/meeting/in-meeting-actions.ts +199 -3
  441. package/src/meeting/index.ts +8494 -0
  442. package/src/meeting/locusMediaRequest.ts +313 -0
  443. package/src/meeting/muteState.ts +465 -0
  444. package/src/meeting/request.ts +912 -0
  445. package/src/meeting/request.type.ts +13 -0
  446. package/src/meeting/{state.js → state.ts} +50 -35
  447. package/src/meeting/util.ts +799 -0
  448. package/src/meeting/voicea-meeting.ts +122 -0
  449. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  450. package/src/meeting-info/index.ts +210 -0
  451. package/src/meeting-info/meeting-info-v2.ts +423 -0
  452. package/src/meeting-info/{request.js → request.ts} +14 -4
  453. package/src/meeting-info/{util.js → util.ts} +70 -58
  454. package/src/meeting-info/{utilv2.js → utilv2.ts} +99 -82
  455. package/src/meetings/collection.ts +76 -0
  456. package/src/meetings/index.ts +1539 -0
  457. package/src/meetings/meetings.types.ts +12 -0
  458. package/src/meetings/{request.js → request.ts} +34 -25
  459. package/src/meetings/{util.js → util.ts} +133 -38
  460. package/src/member/{index.js → index.ts} +159 -56
  461. package/src/member/types.ts +38 -0
  462. package/src/member/util.ts +397 -0
  463. package/src/members/{collection.js → collection.ts} +10 -2
  464. package/src/members/{index.js → index.ts} +351 -146
  465. package/src/members/request.ts +255 -0
  466. package/src/members/types.ts +29 -0
  467. package/src/members/util.ts +353 -0
  468. package/src/metrics/{constants.js → constants.ts} +17 -6
  469. package/src/metrics/index.ts +73 -0
  470. package/src/multistream/mediaRequestManager.ts +341 -64
  471. package/src/multistream/receiveSlot.ts +69 -26
  472. package/src/multistream/receiveSlotManager.ts +66 -42
  473. package/src/multistream/remoteMedia.ts +40 -5
  474. package/src/multistream/remoteMediaGroup.ts +82 -3
  475. package/src/multistream/remoteMediaManager.ts +401 -81
  476. package/src/multistream/sendSlotManager.ts +199 -0
  477. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  478. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  479. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  480. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  481. package/src/reachability/clusterReachability.ts +320 -0
  482. package/src/reachability/index.ts +371 -0
  483. package/src/reachability/request.ts +50 -35
  484. package/src/reachability/util.ts +24 -0
  485. package/src/reactions/constants.ts +4 -0
  486. package/src/reactions/reactions.ts +104 -0
  487. package/src/reactions/reactions.type.ts +62 -0
  488. package/src/reconnection-manager/index.ts +643 -0
  489. package/src/recording-controller/enums.ts +8 -0
  490. package/src/recording-controller/index.ts +332 -0
  491. package/src/recording-controller/util.ts +75 -0
  492. package/src/roap/index.ts +288 -0
  493. package/src/roap/request.ts +153 -0
  494. package/src/roap/turnDiscovery.ts +374 -70
  495. package/src/rtcMetrics/constants.ts +3 -0
  496. package/src/rtcMetrics/index.ts +166 -0
  497. package/src/statsAnalyzer/global.ts +37 -0
  498. package/src/statsAnalyzer/index.ts +1275 -0
  499. package/src/statsAnalyzer/mqaUtil.ts +440 -0
  500. package/src/transcription/{index.js → index.ts} +46 -39
  501. package/src/webinar/collection.ts +31 -0
  502. package/src/webinar/index.ts +62 -0
  503. package/test/integration/spec/converged-space-meetings.js +233 -0
  504. package/test/integration/spec/journey.js +791 -531
  505. package/test/integration/spec/space-meeting.js +391 -204
  506. package/test/integration/spec/transcription.js +7 -8
  507. package/test/unit/spec/annotation/index.ts +418 -0
  508. package/test/unit/spec/breakouts/breakout.ts +238 -0
  509. package/test/unit/spec/breakouts/collection.ts +15 -0
  510. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  511. package/test/unit/spec/breakouts/events.ts +89 -0
  512. package/test/unit/spec/breakouts/index.ts +1793 -0
  513. package/test/unit/spec/breakouts/request.ts +104 -0
  514. package/test/unit/spec/breakouts/utils.js +72 -0
  515. package/test/unit/spec/common/browser-detection.js +9 -28
  516. package/test/unit/spec/common/queue.js +31 -2
  517. package/test/unit/spec/controls-options-manager/index.js +287 -0
  518. package/test/unit/spec/controls-options-manager/util.js +582 -0
  519. package/test/unit/spec/fixture/locus.js +93 -90
  520. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  521. package/test/unit/spec/interpretation/collection.ts +15 -0
  522. package/test/unit/spec/interpretation/index.ts +625 -0
  523. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  524. package/test/unit/spec/locus-info/controlsUtils.js +325 -32
  525. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  526. package/test/unit/spec/locus-info/index.js +1458 -21
  527. package/test/unit/spec/locus-info/infoUtils.js +71 -40
  528. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  529. package/test/unit/spec/locus-info/lib/SeqCmp.json +529 -685
  530. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  531. package/test/unit/spec/locus-info/parser.js +119 -44
  532. package/test/unit/spec/locus-info/selfConstant.js +120 -103
  533. package/test/unit/spec/locus-info/selfUtils.js +291 -12
  534. package/test/unit/spec/media/index.ts +194 -111
  535. package/test/unit/spec/media/properties.ts +11 -11
  536. package/test/unit/spec/meeting/in-meeting-actions.ts +96 -3
  537. package/test/unit/spec/meeting/index.js +8616 -1921
  538. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  539. package/test/unit/spec/meeting/muteState.js +568 -207
  540. package/test/unit/spec/meeting/request.js +602 -82
  541. package/test/unit/spec/meeting/utils.js +867 -179
  542. package/test/unit/spec/meeting/voicea-meeting.ts +266 -0
  543. package/test/unit/spec/meeting-info/index.js +300 -0
  544. package/test/unit/spec/meeting-info/meetinginfov2.js +631 -78
  545. package/test/unit/spec/meeting-info/request.js +7 -9
  546. package/test/unit/spec/meeting-info/util.js +11 -12
  547. package/test/unit/spec/meeting-info/utilv2.js +131 -74
  548. package/test/unit/spec/meetings/collection.js +27 -1
  549. package/test/unit/spec/meetings/index.js +1826 -374
  550. package/test/unit/spec/meetings/utils.js +243 -14
  551. package/test/unit/spec/member/index.js +61 -7
  552. package/test/unit/spec/member/util.js +526 -26
  553. package/test/unit/spec/members/index.js +536 -55
  554. package/test/unit/spec/members/request.js +228 -40
  555. package/test/unit/spec/members/utils.js +217 -4
  556. package/test/unit/spec/metrics/index.js +13 -68
  557. package/test/unit/spec/multistream/mediaRequestManager.ts +1032 -110
  558. package/test/unit/spec/multistream/receiveSlot.ts +77 -18
  559. package/test/unit/spec/multistream/receiveSlotManager.ts +69 -39
  560. package/test/unit/spec/multistream/remoteMedia.ts +40 -2
  561. package/test/unit/spec/multistream/remoteMediaGroup.ts +350 -5
  562. package/test/unit/spec/multistream/remoteMediaManager.ts +937 -65
  563. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  564. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  565. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  566. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  567. package/test/unit/spec/reachability/index.ts +606 -26
  568. package/test/unit/spec/reachability/request.js +68 -0
  569. package/test/unit/spec/reachability/util.ts +40 -0
  570. package/test/unit/spec/reconnection-manager/index.js +222 -34
  571. package/test/unit/spec/recording-controller/index.js +306 -0
  572. package/test/unit/spec/recording-controller/util.js +229 -0
  573. package/test/unit/spec/roap/index.ts +238 -82
  574. package/test/unit/spec/roap/request.ts +255 -0
  575. package/test/unit/spec/roap/turnDiscovery.ts +707 -110
  576. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  577. package/test/unit/spec/stats-analyzer/index.js +1331 -62
  578. package/test/unit/spec/webinar/collection.ts +13 -0
  579. package/test/unit/spec/webinar/index.ts +60 -0
  580. package/test/utils/cmr.js +44 -42
  581. package/test/utils/constants.js +9 -0
  582. package/test/utils/integrationTestUtils.js +46 -0
  583. package/test/utils/testUtils.js +63 -99
  584. package/test/utils/webex-config.js +22 -18
  585. package/test/utils/webex-test-users.js +65 -50
  586. package/tsconfig.json +6 -0
  587. package/dist/media/internal-media-core-wrapper.js +0 -22
  588. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  589. package/dist/meeting/effectsState.js +0 -327
  590. package/dist/meeting/effectsState.js.map +0 -1
  591. package/dist/metrics/config.js +0 -301
  592. package/dist/metrics/config.js.map +0 -1
  593. package/dist/multistream/multistreamMedia.js +0 -116
  594. package/dist/multistream/multistreamMedia.js.map +0 -1
  595. package/dist/peer-connection-manager/util.js +0 -124
  596. package/dist/peer-connection-manager/util.js.map +0 -1
  597. package/src/common/logs/logger-proxy.js +0 -33
  598. package/src/index.js +0 -15
  599. package/src/locus-info/controlsUtils.js +0 -102
  600. package/src/media/index.js +0 -459
  601. package/src/media/internal-media-core-wrapper.ts +0 -9
  602. package/src/media/properties.js +0 -289
  603. package/src/mediaQualityMetrics/config.js +0 -382
  604. package/src/meeting/effectsState.js +0 -205
  605. package/src/meeting/index.js +0 -6284
  606. package/src/meeting/muteState.js +0 -318
  607. package/src/meeting/request.js +0 -684
  608. package/src/meeting/util.js +0 -506
  609. package/src/meeting-info/index.js +0 -131
  610. package/src/meeting-info/meeting-info-v2.js +0 -255
  611. package/src/meetings/collection.js +0 -40
  612. package/src/meetings/index.js +0 -1015
  613. package/src/member/util.js +0 -254
  614. package/src/members/request.js +0 -131
  615. package/src/members/util.js +0 -258
  616. package/src/metrics/config.js +0 -324
  617. package/src/metrics/index.js +0 -530
  618. package/src/multistream/multistreamMedia.ts +0 -92
  619. package/src/peer-connection-manager/util.ts +0 -117
  620. package/src/reachability/index.js +0 -464
  621. package/src/reconnection-manager/index.js +0 -519
  622. package/src/roap/index.js +0 -220
  623. package/src/roap/request.js +0 -127
  624. package/src/statsAnalyzer/global.js +0 -133
  625. package/src/statsAnalyzer/index.js +0 -1006
  626. package/src/statsAnalyzer/mqaUtil.js +0 -173
  627. package/test/unit/spec/meeting/effectsState.js +0 -291
  628. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  629. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -1,52 +1,32 @@
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
- var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
20
-
12
+ var _entries = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/entries"));
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
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
28
-
15
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
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
-
35
- var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
36
-
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
20
+ var _mapValues2 = _interopRequireDefault(require("lodash/mapValues"));
37
21
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
38
-
22
+ var _util = _interopRequireDefault(require("../meeting/util"));
39
23
  var _constants = require("../constants");
40
-
41
24
  var _request = _interopRequireDefault(require("./request"));
42
-
43
- var DEFAULT_TIMEOUT = 3000;
44
- var VIDEO_MESH_TIMEOUT = 1000;
25
+ var _clusterReachability = require("./clusterReachability");
45
26
  /**
46
27
  * @class Reachability
47
28
  * @export
48
29
  */
49
-
50
30
  var Reachability = /*#__PURE__*/function () {
51
31
  /**
52
32
  * Creates an instance of Reachability.
@@ -55,7 +35,12 @@ var Reachability = /*#__PURE__*/function () {
55
35
  */
56
36
  function Reachability(webex) {
57
37
  (0, _classCallCheck2.default)(this, Reachability);
38
+ (0, _defineProperty2.default)(this, "namespace", _constants.REACHABILITY.namespace);
39
+ (0, _defineProperty2.default)(this, "webex", void 0);
40
+ (0, _defineProperty2.default)(this, "reachabilityRequest", void 0);
41
+ (0, _defineProperty2.default)(this, "clusterReachability", void 0);
58
42
  this.webex = webex;
43
+
59
44
  /**
60
45
  * internal request object for the server
61
46
  * @instance
@@ -63,508 +48,360 @@ var Reachability = /*#__PURE__*/function () {
63
48
  * @private
64
49
  * @memberof Reachability
65
50
  */
66
-
67
51
  this.reachabilityRequest = new _request.default(this.webex);
68
- /**
69
- * internal object of clusters latency results
70
- * @instance
71
- * @type {object}
72
- * @private
73
- * @memberof Reachability
74
- */
75
-
76
- this.clusterLatencyResults = {};
52
+ this.clusterReachability = {};
77
53
  }
54
+
78
55
  /**
79
- * fetches reachability data
80
- * @returns {Object} reachability data
56
+ * Gets a list of media clusters from the backend and performs reachability checks on all the clusters
57
+ * @returns {Promise<ReachabilityResults>} reachability results
81
58
  * @public
82
- * @async
83
59
  * @memberof Reachability
84
60
  */
85
-
86
-
87
61
  (0, _createClass2.default)(Reachability, [{
88
62
  key: "gatherReachability",
89
63
  value: function () {
90
64
  var _gatherReachability = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
91
- var _window, _window$localStorage;
92
-
93
- var clusters, results;
65
+ var _yield$this$reachabil, clusters, joinCookie, results;
94
66
  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
- }
67
+ while (1) switch (_context.prev = _context.next) {
68
+ case 0:
69
+ _context.prev = 0;
70
+ _context.next = 3;
71
+ return this.reachabilityRequest.getClusters(_util.default.getIpVersion(this.webex));
72
+ case 3:
73
+ _yield$this$reachabil = _context.sent;
74
+ clusters = _yield$this$reachabil.clusters;
75
+ joinCookie = _yield$this$reachabil.joinCookie;
76
+ _context.next = 8;
77
+ return this.performReachabilityChecks(clusters);
78
+ case 8:
79
+ results = _context.sent;
80
+ _context.next = 11;
81
+ return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageResult, (0, _stringify.default)(results));
82
+ case 11:
83
+ _context.next = 13;
84
+ return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageJoinCookie, (0, _stringify.default)(joinCookie));
85
+ case 13:
86
+ _loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
87
+ return _context.abrupt("return", results);
88
+ case 17:
89
+ _context.prev = 17;
90
+ _context.t0 = _context["catch"](0);
91
+ _loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error:", _context.t0);
92
+ return _context.abrupt("return", {});
93
+ case 21:
94
+ case "end":
95
+ return _context.stop();
144
96
  }
145
- }, _callee, this, [[7, 19]]);
97
+ }, _callee, this, [[0, 17]]);
146
98
  }));
147
-
148
99
  function gatherReachability() {
149
100
  return _gatherReachability.apply(this, arguments);
150
101
  }
151
-
152
102
  return gatherReachability;
153
103
  }()
154
104
  /**
155
- * fetches reachability data and checks for cluster reachability
156
- * @returns {boolean}
157
- * @public
158
- * @memberof Reachability
105
+ * Returns statistics about last reachability results. The returned value is an object
106
+ * with a flat list of properties so that it can be easily sent with metrics
107
+ *
108
+ * @returns {Promise} Promise with metrics values, it never rejects/throws.
159
109
  */
160
-
161
110
  }, {
162
- 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
- }
111
+ key: "getReachabilityMetrics",
112
+ value: function () {
113
+ var _getReachabilityMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
114
+ var stats, updateStats, resultsJson, results;
115
+ return _regenerator.default.wrap(function _callee2$(_context2) {
116
+ while (1) switch (_context2.prev = _context2.next) {
117
+ case 0:
118
+ stats = {
119
+ reachability_public_udp_success: 0,
120
+ reachability_public_udp_failed: 0,
121
+ reachability_public_tcp_success: 0,
122
+ reachability_public_tcp_failed: 0,
123
+ reachability_vmn_udp_success: 0,
124
+ reachability_vmn_udp_failed: 0,
125
+ reachability_vmn_tcp_success: 0,
126
+ reachability_vmn_tcp_failed: 0
127
+ };
128
+ updateStats = function updateStats(clusterType, result) {
129
+ if (result.udp && result.udp.result !== 'untested') {
130
+ var outcome = result.udp.result === 'reachable' ? 'success' : 'failed';
131
+ stats["reachability_".concat(clusterType, "_udp_").concat(outcome)] += 1;
132
+ }
133
+ if (result.tcp && result.tcp.result !== 'untested') {
134
+ var _outcome = result.tcp.result === 'reachable' ? 'success' : 'failed';
135
+ stats["reachability_".concat(clusterType, "_tcp_").concat(_outcome)] += 1;
136
+ }
137
+ };
138
+ _context2.prev = 2;
139
+ _context2.next = 5;
140
+ return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult);
141
+ case 5:
142
+ resultsJson = _context2.sent;
143
+ results = JSON.parse(resultsJson);
144
+ (0, _values.default)(results).forEach(function (result) {
145
+ updateStats(result.isVideoMesh ? 'vmn' : 'public', result);
146
+ });
147
+ _context2.next = 13;
148
+ break;
149
+ case 10:
150
+ _context2.prev = 10;
151
+ _context2.t0 = _context2["catch"](2);
152
+ // empty storage, that's ok
153
+ _loggerProxy.default.logger.warn('Roap:request#getReachabilityMetrics --> Error parsing reachability data: ', _context2.t0);
154
+ case 13:
155
+ return _context2.abrupt("return", stats);
156
+ case 14:
157
+ case "end":
158
+ return _context2.stop();
159
+ }
160
+ }, _callee2, this, [[2, 10]]);
161
+ }));
162
+ function getReachabilityMetrics() {
163
+ return _getReachabilityMetrics.apply(this, arguments);
178
164
  }
179
-
180
- return reachable;
181
- }
182
- /**
183
- * Generate peerConnection config settings
184
- * @param {object} cluster
185
- * @returns {object} peerConnectionConfig
186
- * @private
187
- * @memberof Reachability
188
- */
189
-
190
- }, {
191
- key: "buildPeerConnectionConfig",
192
- value: function buildPeerConnectionConfig(cluster) {
193
- var iceServers = (0, _uniq2.default)([].concat((0, _toConsumableArray2.default)(cluster.udp), (0, _toConsumableArray2.default)(cluster.tcp))).map(function (url) {
194
- return {
195
- username: '',
196
- credential: '',
197
- urls: [url]
198
- };
199
- });
200
- return {
201
- iceServers: (0, _toConsumableArray2.default)(iceServers),
202
- iceCandidatePoolSize: '0',
203
- iceTransportPolicy: 'all'
204
- };
205
- }
165
+ return getReachabilityMetrics;
166
+ }()
206
167
  /**
207
- * Creates an RTCPeerConnection
208
- * @param {object} cluster
209
- * @returns {RTCPeerConnection} peerConnection
210
- * @private
211
- * @memberof Reachability
168
+ * Maps our internal transport result to the format that backend expects
169
+ * @param {TransportResult} transportResult
170
+ * @returns {TransportResultForBackend}
212
171
  */
213
-
214
172
  }, {
215
- key: "createPeerConnection",
216
- value: function createPeerConnection(cluster) {
217
- var key = cluster.key,
218
- config = cluster.config;
219
-
220
- try {
221
- var peerConnection = new window.RTCPeerConnection(config);
222
- peerConnection.key = key;
223
- return peerConnection;
224
- } catch (peerConnectionError) {
225
- _loggerProxy.default.logger.log("Reachability:index#createPeerConnection --> Error creating peerConnection: ".concat(peerConnectionError));
226
-
227
- return null;
173
+ key: "mapTransportResultToBackendDataFormat",
174
+ value: function mapTransportResultToBackendDataFormat(transportResult) {
175
+ var output = {};
176
+ for (var _i = 0, _Object$entries = (0, _entries.default)(transportResult); _i < _Object$entries.length; _i++) {
177
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
178
+ _key = _Object$entries$_i[0],
179
+ value = _Object$entries$_i[1];
180
+ switch (_key) {
181
+ case 'result':
182
+ switch (value) {
183
+ case 'reachable':
184
+ output.reachable = 'true';
185
+ break;
186
+ case 'unreachable':
187
+ output.reachable = 'false';
188
+ break;
189
+ case 'untested':
190
+ output.untested = 'true';
191
+ break;
192
+ }
193
+ break;
194
+ case 'latencyInMilliseconds':
195
+ output.latencyInMilliseconds = value.toString();
196
+ break;
197
+ default:
198
+ output[_key] = value;
199
+ }
228
200
  }
201
+ return output;
229
202
  }
203
+
230
204
  /**
231
- * Gets total elapsed time
232
- * @param {RTCPeerConnection} peerConnection
233
- * @returns {Number} Milliseconds
234
- * @private
235
- * @memberof Reachability
205
+ * Reachability results as an object in the format that backend expects
206
+ *
207
+ * @returns {any} reachability results that need to be sent to the backend
236
208
  */
237
-
238
209
  }, {
239
- key: "getElapsedTime",
240
- value: function getElapsedTime(peerConnection) {
241
- var startTime = peerConnection.begin;
242
- delete peerConnection.begin;
243
- return (0, _now.default)() - startTime;
244
- }
210
+ key: "getReachabilityResults",
211
+ value: function () {
212
+ var _getReachabilityResults = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
213
+ var _this = this;
214
+ var results, resultsJson, allClusterResults;
215
+ return _regenerator.default.wrap(function _callee3$(_context3) {
216
+ while (1) switch (_context3.prev = _context3.next) {
217
+ case 0:
218
+ _context3.prev = 0;
219
+ _context3.next = 3;
220
+ return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult);
221
+ case 3:
222
+ resultsJson = _context3.sent;
223
+ allClusterResults = JSON.parse(resultsJson);
224
+ results = (0, _mapValues2.default)(allClusterResults, function (clusterResult) {
225
+ return {
226
+ udp: _this.mapTransportResultToBackendDataFormat(clusterResult.udp || {
227
+ result: 'untested'
228
+ }),
229
+ tcp: _this.mapTransportResultToBackendDataFormat(clusterResult.tcp || {
230
+ result: 'untested'
231
+ }),
232
+ xtls: _this.mapTransportResultToBackendDataFormat(clusterResult.xtls || {
233
+ result: 'untested'
234
+ })
235
+ };
236
+ });
237
+ _context3.next = 11;
238
+ break;
239
+ case 8:
240
+ _context3.prev = 8;
241
+ _context3.t0 = _context3["catch"](0);
242
+ // empty storage, that's ok
243
+ _loggerProxy.default.logger.warn('Roap:request#attachReachabilityData --> Error parsing reachability data: ', _context3.t0);
244
+ case 11:
245
+ return _context3.abrupt("return", results);
246
+ case 12:
247
+ case "end":
248
+ return _context3.stop();
249
+ }
250
+ }, _callee3, this, [[0, 8]]);
251
+ }));
252
+ function getReachabilityResults() {
253
+ return _getReachabilityResults.apply(this, arguments);
254
+ }
255
+ return getReachabilityResults;
256
+ }()
245
257
  /**
246
- * creates offer and generates localSDP
247
- * @param {object} clusterList cluster List
248
- * @returns {Promise} Reachability latency results
249
- * @private
258
+ * fetches reachability data and checks for cluster reachability
259
+ * @returns {boolean}
260
+ * @public
250
261
  * @memberof Reachability
251
262
  */
252
-
253
263
  }, {
254
- key: "getLocalSDPForClusters",
255
- value: function getLocalSDPForClusters(clusterList) {
256
- var _this = this;
257
-
258
- var clusters = (0, _toConsumableArray2.default)((0, _keys.default)(clusterList));
259
- clusters = clusters.map( /*#__PURE__*/function () {
260
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(key) {
261
- 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
264
+ key: "isAnyPublicClusterReachable",
265
+ value: function () {
266
+ var _isAnyPublicClusterReachable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
267
+ var reachable, reachabilityData, reachabilityResults;
268
+ return _regenerator.default.wrap(function _callee4$(_context4) {
269
+ while (1) switch (_context4.prev = _context4.next) {
270
+ case 0:
271
+ reachable = false; // @ts-ignore
272
+ _context4.next = 3;
273
+ return this.webex.boundedStorage.get(this.namespace, _constants.REACHABILITY.localStorageResult).catch(function () {});
274
+ case 3:
275
+ reachabilityData = _context4.sent;
276
+ if (reachabilityData) {
277
+ try {
278
+ reachabilityResults = JSON.parse(reachabilityData);
279
+ reachable = (0, _values.default)(reachabilityResults).some(function (result) {
280
+ var _result$udp, _result$tcp;
281
+ return !result.isVideoMesh && (((_result$udp = result.udp) === null || _result$udp === void 0 ? void 0 : _result$udp.result) === 'reachable' || ((_result$tcp = result.tcp) === null || _result$tcp === void 0 ? void 0 : _result$tcp.result) === 'reachable');
275
282
  });
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();
283
+ } catch (e) {
284
+ _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
285
+ }
288
286
  }
289
- }
290
- }, _callee2);
291
- }));
292
-
293
- return function (_x) {
294
- return _ref.apply(this, arguments);
295
- };
296
- }());
297
- return _promise.default.all(clusters).then(this.parseIceResultsToReachabilityResults).then(function (reachabilityLatencyResults) {
298
- _this.logUnreachableClusters(); // return results
299
-
300
-
301
- return reachabilityLatencyResults;
302
- });
303
- }
287
+ return _context4.abrupt("return", reachable);
288
+ case 6:
289
+ case "end":
290
+ return _context4.stop();
291
+ }
292
+ }, _callee4, this);
293
+ }));
294
+ function isAnyPublicClusterReachable() {
295
+ return _isAnyPublicClusterReachable.apply(this, arguments);
296
+ }
297
+ return isAnyPublicClusterReachable;
298
+ }()
304
299
  /**
305
300
  * Get list of all unreachable clusters
306
301
  * @returns {array} Unreachable clusters
307
302
  * @private
308
303
  * @memberof Reachability
309
304
  */
310
-
311
305
  }, {
312
- key: "getUnreachablClusters",
313
- value: function getUnreachablClusters() {
306
+ key: "getUnreachableClusters",
307
+ value: function getUnreachableClusters() {
314
308
  var unreachableList = [];
315
- var clusters = this.clusterLatencyResults;
316
- (0, _keys.default)(clusters).forEach(function (key) {
317
- var cluster = clusters[key];
318
-
319
- if (cluster.unreachable && !cluster.reachable) {
320
- unreachableList.push(key);
309
+ (0, _entries.default)(this.clusterReachability).forEach(function (_ref) {
310
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
311
+ key = _ref2[0],
312
+ clusterReachability = _ref2[1];
313
+ var result = clusterReachability.getResult();
314
+ if (result.udp.result === 'unreachable') {
315
+ unreachableList.push({
316
+ name: key,
317
+ protocol: 'udp'
318
+ });
319
+ }
320
+ if (result.tcp.result === 'unreachable') {
321
+ unreachableList.push({
322
+ name: key,
323
+ protocol: 'tcp'
324
+ });
321
325
  }
322
326
  });
323
327
  return unreachableList;
324
328
  }
325
- /**
326
- * Attach an event handler for the icegatheringstatechange
327
- * event and measure latency.
328
- * @param {RTCPeerConnection} peerConnection
329
- * @returns {undefined}
330
- * @private
331
- * @memberof Reachability
332
- */
333
-
334
- }, {
335
- key: "handleIceGatheringStateChange",
336
- value: function handleIceGatheringStateChange(peerConnection) {
337
- var _this2 = this;
338
-
339
- peerConnection.onicegatheringstatechange = function () {
340
- var COMPLETE = _constants.ICE_GATHERING_STATE.COMPLETE;
341
-
342
- if (peerConnection.iceConnectionState === COMPLETE) {
343
- var elapsed = _this2.getElapsedTime(peerConnection);
344
-
345
- _loggerProxy.default.logger.log("Reachability:index#onIceGatheringStateChange --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
346
-
347
- _this2.setLatencyAndClose(peerConnection, elapsed);
348
- }
349
- };
350
- }
351
- /**
352
- * Attach an event handler for the icecandidate
353
- * event and measure latency.
354
- * @param {RTCPeerConnection} peerConnection
355
- * @returns {undefined}
356
- * @private
357
- * @memberof Reachability
358
- */
359
-
360
- }, {
361
- key: "handleOnIceCandidate",
362
- value: function handleOnIceCandidate(peerConnection) {
363
- var _this3 = this;
364
-
365
- peerConnection.onicecandidate = function (e) {
366
- var SERVER_REFLEXIVE = 'srflx';
367
-
368
- if (e.candidate && String(e.candidate.type).toLowerCase() === SERVER_REFLEXIVE) {
369
- var elapsed = _this3.getElapsedTime(peerConnection);
370
-
371
- _loggerProxy.default.logger.log("Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
372
-
373
- _this3.setLatencyAndClose(peerConnection, elapsed);
374
- }
375
- };
376
- }
377
- /**
378
- * An event handler on an RTCPeerConnection when the state of the ICE
379
- * candidate gathering process changes. Used to measure connection
380
- * speed.
381
- * @private
382
- * @param {RTCPeerConnection} peerConnection
383
- * @param {number} timeout
384
- * @returns {Promise}
385
- */
386
-
387
- }, {
388
- key: "iceGatheringState",
389
- value: function iceGatheringState(peerConnection, timeout) {
390
- var _this4 = this;
391
-
392
- var ELAPSED = 'elapsed';
393
- return new _promise.default(function (resolve) {
394
- var peerConnectionProxy = new window.Proxy(peerConnection, {
395
- get: function get(target, property) {
396
- var targetMember = target[property];
397
-
398
- if (typeof targetMember === 'function') {
399
- return targetMember.bind(target);
400
- }
401
-
402
- return targetMember;
403
- },
404
- set: function set(target, property, value) {
405
- // only intercept elapsed property
406
- if (property === ELAPSED) {
407
- resolve({
408
- clusterId: peerConnection.key,
409
- elapsed: value
410
- });
411
- return true;
412
- } // pass thru
413
-
414
-
415
- return window.Reflect.set(target, property, value);
416
- }
417
- }); // Using peerConnection proxy so handle functions below
418
- // won't be coupled to our promise implementation
419
-
420
- _this4.handleIceGatheringStateChange(peerConnectionProxy);
421
-
422
- _this4.handleOnIceCandidate(peerConnectionProxy); // Set maximum timeout
423
329
 
424
-
425
- window.setTimeout(function () {
426
- var CLOSED = _constants.CONNECTION_STATE.CLOSED; // Close any open peerConnections
427
-
428
- if (peerConnectionProxy.connectionState !== CLOSED) {
429
- _this4.setLatencyAndClose(peerConnectionProxy, null);
430
- }
431
- }, timeout);
432
- });
433
- }
434
330
  /**
435
331
  * Make a log of unreachable clusters.
436
332
  * @returns {undefined}
437
333
  * @private
438
334
  * @memberof Reachability
439
335
  */
440
-
441
336
  }, {
442
337
  key: "logUnreachableClusters",
443
338
  value: function logUnreachableClusters() {
444
- var list = this.getUnreachablClusters();
445
- list.forEach(function (cluster) {
446
- _loggerProxy.default.logger.log("Reachability:index#logUnreachableClusters --> No ice candidate for ".concat(cluster, "."));
339
+ var list = this.getUnreachableClusters();
340
+ list.forEach(function (_ref3) {
341
+ var name = _ref3.name,
342
+ protocol = _ref3.protocol;
343
+ _loggerProxy.default.logger.log("Reachability:index#logUnreachableClusters --> failed to reach ".concat(name, " over ").concat(protocol));
447
344
  });
448
345
  }
449
- /**
450
- * Calculates time to establish connection
451
- * @param {array} iceResults iceResults
452
- * @returns {object} reachabilityMap
453
- * @private
454
- * @memberof Reachability
455
- */
456
-
457
- }, {
458
- key: "parseIceResultsToReachabilityResults",
459
- value: function parseIceResultsToReachabilityResults(iceResults) {
460
- var reachabilityMap = {};
461
- iceResults.forEach(function (_ref2) {
462
- var clusterId = _ref2.clusterId,
463
- elapsed = _ref2.elapsed;
464
- var latencyResult;
465
-
466
- if (elapsed === null) {
467
- latencyResult = {
468
- reachable: 'false'
469
- };
470
- } else {
471
- latencyResult = {
472
- reachable: 'true',
473
- latencyInMilliseconds: elapsed.toString()
474
- };
475
- }
476
346
 
477
- reachabilityMap[clusterId] = {
478
- udp: latencyResult,
479
- tcp: latencyResult
480
- };
481
- });
482
- return reachabilityMap;
483
- }
484
347
  /**
485
- * fetches reachability data
486
- * @param {object} clusterList
487
- * @returns {Promise<localSDPData>} reachability check results
488
- * @private
489
- * @memberof Reachability
348
+ * Performs reachability checks for all clusters
349
+ * @param {ClusterList} clusterList
350
+ * @returns {Promise<ReachabilityResults>} reachability check results
490
351
  */
491
-
492
352
  }, {
493
- key: "performReachabilityCheck",
494
- value: function performReachabilityCheck(clusterList) {
495
- var _this5 = this;
496
-
497
- if (!clusterList || !(0, _keys.default)(clusterList).length) {
498
- return _promise.default.resolve({});
499
- }
500
-
501
- return new _promise.default(function (resolve) {
502
- _this5.getLocalSDPForClusters(clusterList).then(function (localSDPData) {
503
- if (!localSDPData || !(0, _keys.default)(localSDPData).length) {
504
- // TODO: handle the error condition properly and try retry
505
- _loggerProxy.default.logger.log('Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning');
506
-
507
- resolve({});
508
- } else {
509
- resolve(localSDPData);
353
+ key: "performReachabilityChecks",
354
+ value: function () {
355
+ var _performReachabilityChecks = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(clusterList) {
356
+ var _this2 = this;
357
+ var results, clusterReachabilityChecks;
358
+ return _regenerator.default.wrap(function _callee5$(_context5) {
359
+ while (1) switch (_context5.prev = _context5.next) {
360
+ case 0:
361
+ results = {};
362
+ if (!(!clusterList || !(0, _keys.default)(clusterList).length)) {
363
+ _context5.next = 3;
364
+ break;
365
+ }
366
+ return _context5.abrupt("return", _promise.default.resolve(results));
367
+ case 3:
368
+ _loggerProxy.default.logger.log("Reachability:index#performReachabilityChecks --> doing UDP".concat(
369
+ // @ts-ignore
370
+ this.webex.config.meetings.experimental.enableTcpReachability ? ' and TCP' : '', " reachability checks"));
371
+ clusterReachabilityChecks = (0, _keys.default)(clusterList).map(function (key) {
372
+ var cluster = clusterList[key];
373
+
374
+ // Linus doesn't support TCP reachability checks on video mesh nodes
375
+ var includeTcpReachability =
376
+ // @ts-ignore
377
+ _this2.webex.config.meetings.experimental.enableTcpReachability && !cluster.isVideoMesh;
378
+ if (!includeTcpReachability) {
379
+ cluster.tcp = [];
380
+ }
381
+ _this2.clusterReachability[key] = new _clusterReachability.ClusterReachability(key, cluster);
382
+ return _this2.clusterReachability[key].start().then(function (result) {
383
+ results[key] = result;
384
+ results[key].isVideoMesh = cluster.isVideoMesh;
385
+ });
386
+ });
387
+ _context5.next = 7;
388
+ return _promise.default.all(clusterReachabilityChecks);
389
+ case 7:
390
+ this.logUnreachableClusters();
391
+ return _context5.abrupt("return", results);
392
+ case 9:
393
+ case "end":
394
+ return _context5.stop();
510
395
  }
511
- }).catch(function (error) {
512
- _loggerProxy.default.logger.error("Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ".concat(error));
513
-
514
- resolve({});
515
- });
516
- });
517
- }
518
- /**
519
- * Records latency and closes the peerConnection
520
- * @param {RTCPeerConnection} peerConnection
521
- * @param {number} elapsed Latency in milliseconds
522
- * @returns {undefined}
523
- * @private
524
- * @memberof Reachability
525
- */
526
-
527
- }, {
528
- key: "setLatencyAndClose",
529
- value: function setLatencyAndClose(peerConnection, elapsed) {
530
- var _intialState;
531
-
532
- var REACHABLE = 'reachable';
533
- var UNREACHABLE = 'unreachable';
534
- var CLOSED = _constants.CONNECTION_STATE.CLOSED;
535
- var key = peerConnection.key;
536
- var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
537
- var intialState = (_intialState = {}, (0, _defineProperty2.default)(_intialState, REACHABLE, 0), (0, _defineProperty2.default)(_intialState, UNREACHABLE, 0), _intialState);
538
-
539
- if (peerConnection.connectionState === CLOSED) {
540
- _loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
541
-
542
- return;
396
+ }, _callee5, this);
397
+ }));
398
+ function performReachabilityChecks(_x) {
399
+ return _performReachabilityChecks.apply(this, arguments);
543
400
  }
544
-
545
- 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
548
-
549
- peerConnection.onicecandidate = null;
550
- peerConnection.close();
551
- peerConnection.elapsed = elapsed;
552
- }
553
- /**
554
- * utility function
555
- * @returns {undefined}
556
- * @private
557
- * @memberof Reachability
558
- */
559
-
560
- }, {
561
- key: "setup",
562
- value: function setup() {
563
- this.clusterLatencyResults = {};
564
- }
401
+ return performReachabilityChecks;
402
+ }()
565
403
  }]);
566
404
  return Reachability;
567
405
  }();
568
-
569
406
  exports.default = Reachability;
570
407
  //# sourceMappingURL=index.js.map