@webex/plugin-meetings 2.59.8 → 2.60.0-next.2

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 (528) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +41 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +357 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +215 -0
  9. package/dist/breakouts/breakout.js.map +1 -0
  10. package/dist/breakouts/collection.js +22 -0
  11. package/dist/breakouts/collection.js.map +1 -0
  12. package/dist/breakouts/edit-lock-error.js +51 -0
  13. package/dist/breakouts/edit-lock-error.js.map +1 -0
  14. package/dist/breakouts/events.js +44 -0
  15. package/dist/breakouts/events.js.map +1 -0
  16. package/dist/breakouts/index.js +1047 -0
  17. package/dist/breakouts/index.js.map +1 -0
  18. package/dist/breakouts/request.js +77 -0
  19. package/dist/breakouts/request.js.map +1 -0
  20. package/dist/breakouts/utils.js +64 -0
  21. package/dist/breakouts/utils.js.map +1 -0
  22. package/dist/common/browser-detection.js +2 -3
  23. package/dist/common/browser-detection.js.map +1 -1
  24. package/dist/common/collection.js +3 -4
  25. package/dist/common/collection.js.map +1 -1
  26. package/dist/common/config.js +1 -2
  27. package/dist/common/config.js.map +1 -1
  28. package/dist/common/errors/captcha-error.js +1 -2
  29. package/dist/common/errors/captcha-error.js.map +1 -1
  30. package/dist/common/errors/intent-to-join.js +1 -2
  31. package/dist/common/errors/intent-to-join.js.map +1 -1
  32. package/dist/common/errors/join-meeting.js +1 -2
  33. package/dist/common/errors/join-meeting.js.map +1 -1
  34. package/dist/common/errors/media.js +1 -2
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/no-meeting-info.js +50 -0
  37. package/dist/common/errors/no-meeting-info.js.map +1 -0
  38. package/dist/common/errors/parameter.js +3 -4
  39. package/dist/common/errors/parameter.js.map +1 -1
  40. package/dist/common/errors/password-error.js +1 -2
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.js +1 -2
  43. package/dist/common/errors/permission.js.map +1 -1
  44. package/dist/common/errors/reclaim-host-role-errors.js +154 -0
  45. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  46. package/dist/common/errors/reconnection-in-progress.js +1 -2
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.js +1 -2
  49. package/dist/common/errors/reconnection.js.map +1 -1
  50. package/dist/common/errors/stats.js +1 -2
  51. package/dist/common/errors/stats.js.map +1 -1
  52. package/dist/common/errors/webex-errors.js +48 -28
  53. package/dist/common/errors/webex-errors.js.map +1 -1
  54. package/dist/common/errors/webex-meetings-error.js +1 -2
  55. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  56. package/dist/common/events/events-scope.js +1 -2
  57. package/dist/common/events/events-scope.js.map +1 -1
  58. package/dist/common/events/events.js +1 -2
  59. package/dist/common/events/events.js.map +1 -1
  60. package/dist/common/events/trigger-proxy.js +1 -2
  61. package/dist/common/events/trigger-proxy.js.map +1 -1
  62. package/dist/common/events/util.js +1 -2
  63. package/dist/common/events/util.js.map +1 -1
  64. package/dist/common/logs/logger-config.js +1 -2
  65. package/dist/common/logs/logger-config.js.map +1 -1
  66. package/dist/common/logs/logger-proxy.js +2 -3
  67. package/dist/common/logs/logger-proxy.js.map +1 -1
  68. package/dist/common/logs/request.js +8 -5
  69. package/dist/common/logs/request.js.map +1 -1
  70. package/dist/common/queue.js +22 -9
  71. package/dist/common/queue.js.map +1 -1
  72. package/dist/config.js +8 -11
  73. package/dist/config.js.map +1 -1
  74. package/dist/constants.js +437 -435
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.js +3 -6
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.js +15 -6
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.js +127 -38
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/types.js +7 -0
  83. package/dist/controls-options-manager/types.js.map +1 -0
  84. package/dist/controls-options-manager/util.js +309 -19
  85. package/dist/controls-options-manager/util.js.map +1 -1
  86. package/dist/index.js +116 -4
  87. package/dist/index.js.map +1 -1
  88. package/dist/interpretation/collection.js +22 -0
  89. package/dist/interpretation/collection.js.map +1 -0
  90. package/dist/interpretation/index.js +365 -0
  91. package/dist/interpretation/index.js.map +1 -0
  92. package/dist/interpretation/siLanguage.js +24 -0
  93. package/dist/interpretation/siLanguage.js.map +1 -0
  94. package/dist/locus-info/controlsUtils.js +100 -11
  95. package/dist/locus-info/controlsUtils.js.map +1 -1
  96. package/dist/locus-info/embeddedAppsUtils.js +3 -4
  97. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  98. package/dist/locus-info/fullState.js +1 -2
  99. package/dist/locus-info/fullState.js.map +1 -1
  100. package/dist/locus-info/hostUtils.js +1 -2
  101. package/dist/locus-info/hostUtils.js.map +1 -1
  102. package/dist/locus-info/index.js +425 -84
  103. package/dist/locus-info/index.js.map +1 -1
  104. package/dist/locus-info/infoUtils.js +13 -5
  105. package/dist/locus-info/infoUtils.js.map +1 -1
  106. package/dist/locus-info/mediaSharesUtils.js +58 -3
  107. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  108. package/dist/locus-info/parser.js +253 -80
  109. package/dist/locus-info/parser.js.map +1 -1
  110. package/dist/locus-info/selfUtils.js +97 -13
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.js +106 -319
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.js +96 -153
  115. package/dist/media/properties.js.map +1 -1
  116. package/dist/media/util.js +1 -22
  117. package/dist/media/util.js.map +1 -1
  118. package/dist/mediaQualityMetrics/config.js +498 -493
  119. package/dist/mediaQualityMetrics/config.js.map +1 -1
  120. package/dist/meeting/in-meeting-actions.js +92 -3
  121. package/dist/meeting/in-meeting-actions.js.map +1 -1
  122. package/dist/meeting/index.js +4628 -2971
  123. package/dist/meeting/index.js.map +1 -1
  124. package/dist/meeting/locusMediaRequest.js +291 -0
  125. package/dist/meeting/locusMediaRequest.js.map +1 -0
  126. package/dist/meeting/muteState.js +224 -133
  127. package/dist/meeting/muteState.js.map +1 -1
  128. package/dist/meeting/request.js +297 -199
  129. package/dist/meeting/request.js.map +1 -1
  130. package/dist/meeting/request.type.js +7 -0
  131. package/dist/meeting/request.type.js.map +1 -0
  132. package/dist/meeting/state.js +1 -2
  133. package/dist/meeting/state.js.map +1 -1
  134. package/dist/meeting/util.js +605 -435
  135. package/dist/meeting/util.js.map +1 -1
  136. package/dist/meeting-info/collection.js +3 -4
  137. package/dist/meeting-info/collection.js.map +1 -1
  138. package/dist/meeting-info/index.js +74 -7
  139. package/dist/meeting-info/index.js.map +1 -1
  140. package/dist/meeting-info/meeting-info-v2.js +200 -63
  141. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  142. package/dist/meeting-info/request.js +1 -2
  143. package/dist/meeting-info/request.js.map +1 -1
  144. package/dist/meeting-info/util.js +2 -3
  145. package/dist/meeting-info/util.js.map +1 -1
  146. package/dist/meeting-info/utilv2.js +39 -41
  147. package/dist/meeting-info/utilv2.js.map +1 -1
  148. package/dist/meetings/collection.js +42 -4
  149. package/dist/meetings/collection.js.map +1 -1
  150. package/dist/meetings/index.js +477 -123
  151. package/dist/meetings/index.js.map +1 -1
  152. package/dist/meetings/meetings.types.js +7 -0
  153. package/dist/meetings/meetings.types.js.map +1 -0
  154. package/dist/meetings/request.js +4 -3
  155. package/dist/meetings/request.js.map +1 -1
  156. package/dist/meetings/util.js +107 -6
  157. package/dist/meetings/util.js.map +1 -1
  158. package/dist/member/index.js +54 -2
  159. package/dist/member/index.js.map +1 -1
  160. package/dist/member/member.types.js +3 -4
  161. package/dist/member/member.types.js.map +1 -1
  162. package/dist/member/types.js +23 -0
  163. package/dist/member/types.js.map +1 -0
  164. package/dist/member/util.js +131 -29
  165. package/dist/member/util.js.map +1 -1
  166. package/dist/members/collection.js +11 -2
  167. package/dist/members/collection.js.map +1 -1
  168. package/dist/members/index.js +174 -10
  169. package/dist/members/index.js.map +1 -1
  170. package/dist/members/request.js +108 -41
  171. package/dist/members/request.js.map +1 -1
  172. package/dist/members/types.js +14 -0
  173. package/dist/members/types.js.map +1 -0
  174. package/dist/members/util.js +327 -234
  175. package/dist/members/util.js.map +1 -1
  176. package/dist/metrics/constants.js +15 -9
  177. package/dist/metrics/constants.js.map +1 -1
  178. package/dist/metrics/index.js +4 -452
  179. package/dist/metrics/index.js.map +1 -1
  180. package/dist/multistream/mediaRequestManager.js +344 -0
  181. package/dist/multistream/mediaRequestManager.js.map +1 -0
  182. package/dist/multistream/receiveSlot.js +200 -0
  183. package/dist/multistream/receiveSlot.js.map +1 -0
  184. package/dist/multistream/receiveSlotManager.js +174 -0
  185. package/dist/multistream/receiveSlotManager.js.map +1 -0
  186. package/dist/multistream/remoteMedia.js +268 -0
  187. package/dist/multistream/remoteMedia.js.map +1 -0
  188. package/dist/multistream/remoteMediaGroup.js +267 -0
  189. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  190. package/dist/multistream/remoteMediaManager.js +1211 -0
  191. package/dist/multistream/remoteMediaManager.js.map +1 -0
  192. package/dist/multistream/sendSlotManager.js +236 -0
  193. package/dist/multistream/sendSlotManager.js.map +1 -0
  194. package/dist/networkQualityMonitor/index.js +5 -4
  195. package/dist/networkQualityMonitor/index.js.map +1 -1
  196. package/dist/personal-meeting-room/index.js +2 -3
  197. package/dist/personal-meeting-room/index.js.map +1 -1
  198. package/dist/personal-meeting-room/request.js +2 -3
  199. package/dist/personal-meeting-room/request.js.map +1 -1
  200. package/dist/personal-meeting-room/util.js +1 -2
  201. package/dist/personal-meeting-room/util.js.map +1 -1
  202. package/dist/reachability/index.js +265 -72
  203. package/dist/reachability/index.js.map +1 -1
  204. package/dist/reachability/request.js +18 -10
  205. package/dist/reachability/request.js.map +1 -1
  206. package/dist/reactions/constants.js +12 -0
  207. package/dist/reactions/constants.js.map +1 -0
  208. package/dist/reactions/reactions.js +4 -6
  209. package/dist/reactions/reactions.js.map +1 -1
  210. package/dist/reactions/reactions.type.js +21 -23
  211. package/dist/reactions/reactions.type.js.map +1 -1
  212. package/dist/reconnection-manager/index.js +281 -229
  213. package/dist/reconnection-manager/index.js.map +1 -1
  214. package/dist/recording-controller/enums.js +4 -5
  215. package/dist/recording-controller/enums.js.map +1 -1
  216. package/dist/recording-controller/index.js +57 -46
  217. package/dist/recording-controller/index.js.map +1 -1
  218. package/dist/recording-controller/util.js +10 -10
  219. package/dist/recording-controller/util.js.map +1 -1
  220. package/dist/roap/index.js +101 -235
  221. package/dist/roap/index.js.map +1 -1
  222. package/dist/roap/request.js +126 -180
  223. package/dist/roap/request.js.map +1 -1
  224. package/dist/roap/turnDiscovery.js +115 -105
  225. package/dist/roap/turnDiscovery.js.map +1 -1
  226. package/dist/rtcMetrics/constants.js +11 -0
  227. package/dist/rtcMetrics/constants.js.map +1 -0
  228. package/dist/rtcMetrics/index.js +140 -0
  229. package/dist/rtcMetrics/index.js.map +1 -0
  230. package/dist/statsAnalyzer/global.js +2 -85
  231. package/dist/statsAnalyzer/global.js.map +1 -1
  232. package/dist/statsAnalyzer/index.js +402 -424
  233. package/dist/statsAnalyzer/index.js.map +1 -1
  234. package/dist/statsAnalyzer/mqaUtil.js +117 -83
  235. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  236. package/dist/transcription/index.js +1 -2
  237. package/dist/transcription/index.js.map +1 -1
  238. package/dist/webinar/collection.js +43 -0
  239. package/dist/webinar/collection.js.map +1 -0
  240. package/dist/webinar/index.js +68 -0
  241. package/dist/webinar/index.js.map +1 -0
  242. package/package.json +34 -25
  243. package/src/annotation/annotation.types.ts +50 -0
  244. package/src/annotation/constants.ts +36 -0
  245. package/src/annotation/index.ts +328 -0
  246. package/src/breakouts/README.md +220 -0
  247. package/src/breakouts/breakout.ts +188 -0
  248. package/src/breakouts/collection.ts +19 -0
  249. package/src/breakouts/edit-lock-error.ts +25 -0
  250. package/src/breakouts/events.ts +56 -0
  251. package/src/breakouts/index.ts +925 -0
  252. package/src/breakouts/request.ts +55 -0
  253. package/src/breakouts/utils.ts +57 -0
  254. package/src/common/errors/no-meeting-info.ts +24 -0
  255. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  256. package/src/common/errors/webex-errors.ts +36 -12
  257. package/src/common/logs/logger-proxy.ts +1 -1
  258. package/src/common/logs/request.ts +5 -1
  259. package/src/common/queue.ts +22 -8
  260. package/src/config.ts +5 -7
  261. package/src/constants.ts +271 -93
  262. package/src/controls-options-manager/enums.ts +12 -0
  263. package/src/controls-options-manager/index.ts +116 -21
  264. package/src/controls-options-manager/types.ts +59 -0
  265. package/src/controls-options-manager/util.ts +294 -14
  266. package/src/index.ts +40 -0
  267. package/src/interpretation/README.md +60 -0
  268. package/src/interpretation/collection.ts +19 -0
  269. package/src/interpretation/index.ts +332 -0
  270. package/src/interpretation/siLanguage.ts +18 -0
  271. package/src/locus-info/controlsUtils.ts +110 -0
  272. package/src/locus-info/index.ts +449 -61
  273. package/src/locus-info/infoUtils.ts +14 -2
  274. package/src/locus-info/mediaSharesUtils.ts +64 -0
  275. package/src/locus-info/parser.ts +258 -47
  276. package/src/locus-info/selfUtils.ts +85 -2
  277. package/src/media/index.ts +153 -370
  278. package/src/media/properties.ts +106 -136
  279. package/src/media/util.ts +0 -21
  280. package/src/mediaQualityMetrics/config.ts +379 -377
  281. package/src/meeting/in-meeting-actions.ts +172 -0
  282. package/src/meeting/index.ts +3861 -2504
  283. package/src/meeting/locusMediaRequest.ts +313 -0
  284. package/src/meeting/muteState.ts +224 -138
  285. package/src/meeting/request.ts +207 -127
  286. package/src/meeting/request.type.ts +13 -0
  287. package/src/meeting/util.ts +590 -423
  288. package/src/meeting-info/index.ts +81 -8
  289. package/src/meeting-info/meeting-info-v2.ts +163 -13
  290. package/src/meeting-info/util.ts +1 -1
  291. package/src/meeting-info/utilv2.ts +28 -28
  292. package/src/meetings/collection.ts +33 -0
  293. package/src/meetings/index.ts +477 -124
  294. package/src/meetings/meetings.types.ts +12 -0
  295. package/src/meetings/request.ts +2 -0
  296. package/src/meetings/util.ts +116 -5
  297. package/src/member/index.ts +52 -1
  298. package/src/member/types.ts +38 -0
  299. package/src/member/util.ts +139 -28
  300. package/src/members/collection.ts +8 -0
  301. package/src/members/index.ts +196 -7
  302. package/src/members/request.ts +97 -17
  303. package/src/members/types.ts +29 -0
  304. package/src/members/util.ts +333 -240
  305. package/src/metrics/constants.ts +13 -6
  306. package/src/metrics/index.ts +1 -471
  307. package/src/multistream/mediaRequestManager.ts +440 -0
  308. package/src/multistream/receiveSlot.ts +184 -0
  309. package/src/multistream/receiveSlotManager.ts +166 -0
  310. package/src/multistream/remoteMedia.ts +254 -0
  311. package/src/multistream/remoteMediaGroup.ts +284 -0
  312. package/src/multistream/remoteMediaManager.ts +1145 -0
  313. package/src/multistream/sendSlotManager.ts +170 -0
  314. package/src/networkQualityMonitor/index.ts +6 -6
  315. package/src/reachability/index.ts +238 -45
  316. package/src/reachability/request.ts +17 -8
  317. package/src/reactions/constants.ts +4 -0
  318. package/src/reactions/reactions.ts +4 -4
  319. package/src/reactions/reactions.type.ts +30 -4
  320. package/src/reconnection-manager/index.ts +167 -154
  321. package/src/recording-controller/index.ts +20 -3
  322. package/src/recording-controller/util.ts +26 -9
  323. package/src/roap/index.ts +98 -241
  324. package/src/roap/request.ts +74 -148
  325. package/src/roap/turnDiscovery.ts +62 -56
  326. package/src/rtcMetrics/constants.ts +3 -0
  327. package/src/rtcMetrics/index.ts +124 -0
  328. package/src/statsAnalyzer/global.ts +1 -84
  329. package/src/statsAnalyzer/index.ts +470 -522
  330. package/src/statsAnalyzer/mqaUtil.ts +117 -112
  331. package/src/webinar/collection.ts +31 -0
  332. package/src/webinar/index.ts +62 -0
  333. package/test/integration/spec/converged-space-meetings.js +233 -0
  334. package/test/integration/spec/journey.js +320 -264
  335. package/test/integration/spec/space-meeting.js +77 -4
  336. package/test/unit/spec/annotation/index.ts +418 -0
  337. package/test/unit/spec/breakouts/breakout.ts +237 -0
  338. package/test/unit/spec/breakouts/collection.ts +15 -0
  339. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  340. package/test/unit/spec/breakouts/events.ts +89 -0
  341. package/test/unit/spec/breakouts/index.ts +1790 -0
  342. package/test/unit/spec/breakouts/request.ts +104 -0
  343. package/test/unit/spec/breakouts/utils.js +72 -0
  344. package/test/unit/spec/common/queue.js +31 -2
  345. package/test/unit/spec/controls-options-manager/index.js +163 -0
  346. package/test/unit/spec/controls-options-manager/util.js +576 -60
  347. package/test/unit/spec/fixture/locus.js +1 -0
  348. package/test/unit/spec/interpretation/collection.ts +15 -0
  349. package/test/unit/spec/interpretation/index.ts +589 -0
  350. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  351. package/test/unit/spec/locus-info/controlsUtils.js +323 -30
  352. package/test/unit/spec/locus-info/index.js +1390 -16
  353. package/test/unit/spec/locus-info/infoUtils.js +54 -16
  354. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  355. package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
  356. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  357. package/test/unit/spec/locus-info/parser.js +116 -35
  358. package/test/unit/spec/locus-info/selfUtils.js +275 -0
  359. package/test/unit/spec/media/index.ts +274 -0
  360. package/test/unit/spec/media/properties.ts +75 -84
  361. package/test/unit/spec/meeting/in-meeting-actions.ts +84 -0
  362. package/test/unit/spec/meeting/index.js +8269 -3145
  363. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  364. package/test/unit/spec/meeting/muteState.js +409 -213
  365. package/test/unit/spec/meeting/request.js +512 -42
  366. package/test/unit/spec/meeting/utils.js +741 -24
  367. package/test/unit/spec/meeting-info/index.js +300 -0
  368. package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
  369. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  370. package/test/unit/spec/meetings/collection.js +26 -0
  371. package/test/unit/spec/meetings/index.js +1201 -210
  372. package/test/unit/spec/meetings/utils.js +202 -2
  373. package/test/unit/spec/member/index.js +38 -8
  374. package/test/unit/spec/member/util.js +499 -29
  375. package/test/unit/spec/members/index.js +597 -3
  376. package/test/unit/spec/members/request.js +206 -27
  377. package/test/unit/spec/members/utils.js +210 -0
  378. package/test/unit/spec/metrics/index.js +1 -50
  379. package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
  380. package/test/unit/spec/multistream/receiveSlot.ts +163 -0
  381. package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
  382. package/test/unit/spec/multistream/remoteMedia.ts +255 -0
  383. package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
  384. package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
  385. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  386. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  387. package/test/unit/spec/reachability/index.ts +598 -24
  388. package/test/unit/spec/reachability/request.js +68 -0
  389. package/test/unit/spec/reconnection-manager/index.js +145 -22
  390. package/test/unit/spec/recording-controller/index.js +293 -218
  391. package/test/unit/spec/recording-controller/util.js +223 -96
  392. package/test/unit/spec/roap/index.ts +200 -76
  393. package/test/unit/spec/roap/request.ts +232 -0
  394. package/test/unit/spec/roap/turnDiscovery.ts +86 -48
  395. package/test/unit/spec/rtcMetrics/index.ts +93 -0
  396. package/test/unit/spec/stats-analyzer/index.js +188 -174
  397. package/test/unit/spec/webinar/collection.ts +13 -0
  398. package/test/unit/spec/webinar/index.ts +60 -0
  399. package/test/utils/constants.js +9 -0
  400. package/test/utils/integrationTestUtils.js +46 -0
  401. package/test/utils/testUtils.js +0 -45
  402. package/test/utils/webex-config.js +4 -0
  403. package/test/utils/webex-test-users.js +7 -3
  404. package/dist/common/browser-detection.d.ts +0 -9
  405. package/dist/common/collection.d.ts +0 -48
  406. package/dist/common/config.d.ts +0 -2
  407. package/dist/common/errors/captcha-error.d.ts +0 -15
  408. package/dist/common/errors/intent-to-join.d.ts +0 -16
  409. package/dist/common/errors/join-meeting.d.ts +0 -17
  410. package/dist/common/errors/media.d.ts +0 -15
  411. package/dist/common/errors/parameter.d.ts +0 -15
  412. package/dist/common/errors/password-error.d.ts +0 -15
  413. package/dist/common/errors/permission.d.ts +0 -14
  414. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  415. package/dist/common/errors/reconnection.d.ts +0 -15
  416. package/dist/common/errors/stats.d.ts +0 -15
  417. package/dist/common/errors/webex-errors.d.ts +0 -81
  418. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  419. package/dist/common/events/events-scope.d.ts +0 -17
  420. package/dist/common/events/events.d.ts +0 -12
  421. package/dist/common/events/trigger-proxy.d.ts +0 -2
  422. package/dist/common/events/util.d.ts +0 -2
  423. package/dist/common/logs/logger-config.d.ts +0 -2
  424. package/dist/common/logs/logger-proxy.d.ts +0 -2
  425. package/dist/common/logs/request.d.ts +0 -34
  426. package/dist/common/queue.d.ts +0 -32
  427. package/dist/config.d.ts +0 -73
  428. package/dist/constants.d.ts +0 -926
  429. package/dist/controls-options-manager/constants.d.ts +0 -4
  430. package/dist/controls-options-manager/enums.d.ts +0 -5
  431. package/dist/controls-options-manager/index.d.ts +0 -120
  432. package/dist/controls-options-manager/util.d.ts +0 -7
  433. package/dist/index.d.ts +0 -4
  434. package/dist/locus-info/controlsUtils.d.ts +0 -2
  435. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  436. package/dist/locus-info/fullState.d.ts +0 -2
  437. package/dist/locus-info/hostUtils.d.ts +0 -2
  438. package/dist/locus-info/index.d.ts +0 -269
  439. package/dist/locus-info/infoUtils.d.ts +0 -2
  440. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  441. package/dist/locus-info/parser.d.ts +0 -212
  442. package/dist/locus-info/selfUtils.d.ts +0 -2
  443. package/dist/media/index.d.ts +0 -32
  444. package/dist/media/properties.d.ts +0 -108
  445. package/dist/media/util.d.ts +0 -2
  446. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  447. package/dist/meeting/effectsState.d.ts +0 -42
  448. package/dist/meeting/effectsState.js +0 -260
  449. package/dist/meeting/effectsState.js.map +0 -1
  450. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  451. package/dist/meeting/index.d.ts +0 -1622
  452. package/dist/meeting/muteState.d.ts +0 -116
  453. package/dist/meeting/request.d.ts +0 -255
  454. package/dist/meeting/state.d.ts +0 -9
  455. package/dist/meeting/util.d.ts +0 -2
  456. package/dist/meeting-info/collection.d.ts +0 -20
  457. package/dist/meeting-info/index.d.ts +0 -57
  458. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  459. package/dist/meeting-info/request.d.ts +0 -22
  460. package/dist/meeting-info/util.d.ts +0 -2
  461. package/dist/meeting-info/utilv2.d.ts +0 -2
  462. package/dist/meetings/collection.d.ts +0 -23
  463. package/dist/meetings/index.d.ts +0 -296
  464. package/dist/meetings/request.d.ts +0 -27
  465. package/dist/meetings/util.d.ts +0 -18
  466. package/dist/member/index.d.ts +0 -147
  467. package/dist/member/member.types.d.ts +0 -11
  468. package/dist/member/util.d.ts +0 -2
  469. package/dist/members/collection.d.ts +0 -24
  470. package/dist/members/index.d.ts +0 -298
  471. package/dist/members/request.d.ts +0 -50
  472. package/dist/members/util.d.ts +0 -2
  473. package/dist/metrics/config.d.ts +0 -169
  474. package/dist/metrics/config.js +0 -289
  475. package/dist/metrics/config.js.map +0 -1
  476. package/dist/metrics/constants.d.ts +0 -59
  477. package/dist/metrics/index.d.ts +0 -152
  478. package/dist/networkQualityMonitor/index.d.ts +0 -70
  479. package/dist/peer-connection-manager/index.d.ts +0 -6
  480. package/dist/peer-connection-manager/index.js +0 -671
  481. package/dist/peer-connection-manager/index.js.map +0 -1
  482. package/dist/peer-connection-manager/util.d.ts +0 -6
  483. package/dist/peer-connection-manager/util.js +0 -110
  484. package/dist/peer-connection-manager/util.js.map +0 -1
  485. package/dist/personal-meeting-room/index.d.ts +0 -47
  486. package/dist/personal-meeting-room/request.d.ts +0 -14
  487. package/dist/personal-meeting-room/util.d.ts +0 -2
  488. package/dist/reachability/index.d.ts +0 -139
  489. package/dist/reachability/request.d.ts +0 -35
  490. package/dist/reactions/reactions.d.ts +0 -4
  491. package/dist/reactions/reactions.type.d.ts +0 -32
  492. package/dist/reconnection-manager/index.d.ts +0 -112
  493. package/dist/recording-controller/enums.d.ts +0 -7
  494. package/dist/recording-controller/index.d.ts +0 -193
  495. package/dist/recording-controller/util.d.ts +0 -13
  496. package/dist/roap/collection.d.ts +0 -10
  497. package/dist/roap/collection.js +0 -63
  498. package/dist/roap/collection.js.map +0 -1
  499. package/dist/roap/handler.d.ts +0 -47
  500. package/dist/roap/handler.js +0 -279
  501. package/dist/roap/handler.js.map +0 -1
  502. package/dist/roap/index.d.ts +0 -116
  503. package/dist/roap/request.d.ts +0 -35
  504. package/dist/roap/state.d.ts +0 -9
  505. package/dist/roap/state.js +0 -127
  506. package/dist/roap/state.js.map +0 -1
  507. package/dist/roap/turnDiscovery.d.ts +0 -81
  508. package/dist/roap/util.d.ts +0 -2
  509. package/dist/roap/util.js +0 -76
  510. package/dist/roap/util.js.map +0 -1
  511. package/dist/statsAnalyzer/global.d.ts +0 -118
  512. package/dist/statsAnalyzer/index.d.ts +0 -193
  513. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  514. package/dist/transcription/index.d.ts +0 -64
  515. package/src/index.js +0 -15
  516. package/src/meeting/effectsState.ts +0 -209
  517. package/src/metrics/config.ts +0 -485
  518. package/src/peer-connection-manager/index.ts +0 -847
  519. package/src/peer-connection-manager/util.ts +0 -119
  520. package/src/roap/collection.ts +0 -62
  521. package/src/roap/handler.ts +0 -294
  522. package/src/roap/state.ts +0 -156
  523. package/src/roap/util.ts +0 -100
  524. package/test/unit/spec/meeting/effectsState.js +0 -281
  525. package/test/unit/spec/peerconnection-manager/index.js +0 -218
  526. package/test/unit/spec/peerconnection-manager/utils.js +0 -49
  527. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
  528. package/test/unit/spec/roap/util.js +0 -30
@@ -12,23 +12,39 @@ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/obj
12
12
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
13
13
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
14
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
15
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
15
16
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
16
17
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
17
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
18
19
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
19
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
20
- var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
21
+ var _lodash = require("lodash");
21
22
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
23
+ var _util = _interopRequireDefault(require("../meeting/util"));
22
24
  var _constants = require("../constants");
23
25
  var _request = _interopRequireDefault(require("./request"));
26
+ /*!
27
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
28
+ */
29
+
30
+ /* eslint-disable class-methods-use-this */
31
+ /* globals window */
32
+
24
33
  var DEFAULT_TIMEOUT = 3000;
25
34
  var VIDEO_MESH_TIMEOUT = 1000;
26
35
 
36
+ // result for a specific transport protocol (like udp or tcp)
37
+
38
+ // reachability result for a specifc media cluster
39
+
40
+ // this is the type that is required by the backend when we send them reachability results
41
+
42
+ // this is the type used by Reachability class internally and stored in local storage
27
43
  /**
28
44
  * @class Reachability
29
45
  * @export
30
46
  */
31
- var Reachability = /*#__PURE__*/function () {
47
+ var Reachability = exports.default = /*#__PURE__*/function () {
32
48
  /**
33
49
  * Creates an instance of Reachability.
34
50
  * @param {object} webex
@@ -36,6 +52,7 @@ var Reachability = /*#__PURE__*/function () {
36
52
  */
37
53
  function Reachability(webex) {
38
54
  (0, _classCallCheck2.default)(this, Reachability);
55
+ (0, _defineProperty2.default)(this, "namespace", _constants.REACHABILITY.namespace);
39
56
  (0, _defineProperty2.default)(this, "webex", void 0);
40
57
  (0, _defineProperty2.default)(this, "reachabilityRequest", void 0);
41
58
  (0, _defineProperty2.default)(this, "clusterLatencyResults", void 0);
@@ -69,80 +86,210 @@ var Reachability = /*#__PURE__*/function () {
69
86
  */
70
87
  (0, _createClass2.default)(Reachability, [{
71
88
  key: "gatherReachability",
72
- value: function () {
89
+ value: (function () {
73
90
  var _gatherReachability = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
74
- var _window, _window$localStorage;
75
- var clusters, results;
91
+ var _yield$this$reachabil, clusters, joinCookie, results;
76
92
  return _regenerator.default.wrap(function _callee$(_context) {
77
93
  while (1) switch (_context.prev = _context.next) {
78
94
  case 0:
79
95
  this.setup();
80
96
 
81
97
  // Remove stored reachability results to ensure no stale data
82
- if (!((_window = window) !== null && _window !== void 0 && (_window$localStorage = _window.localStorage) !== null && _window$localStorage !== void 0 && _window$localStorage.removeItem)) {
83
- _context.next = 5;
84
- break;
85
- }
86
- window.localStorage.removeItem(_constants.REACHABILITY.localStorage);
87
- _context.next = 7;
88
- break;
98
+ // @ts-ignore
99
+ _context.next = 3;
100
+ return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageResult);
101
+ case 3:
102
+ _context.next = 5;
103
+ return this.webex.boundedStorage.del(this.namespace, _constants.REACHABILITY.localStorageJoinCookie);
89
104
  case 5:
90
- _loggerProxy.default.logger.error('Reachability:index#gatherReachability --> Error in accessing LocalStorage.');
91
- return _context.abrupt("return", {});
92
- case 7:
93
- _context.prev = 7;
94
- _context.next = 10;
95
- return this.reachabilityRequest.getClusters();
96
- case 10:
97
- clusters = _context.sent;
105
+ _context.prev = 5;
106
+ _context.next = 8;
107
+ return this.reachabilityRequest.getClusters(_util.default.getIpVersion(this.webex));
108
+ case 8:
109
+ _yield$this$reachabil = _context.sent;
110
+ clusters = _yield$this$reachabil.clusters;
111
+ joinCookie = _yield$this$reachabil.joinCookie;
98
112
  _context.next = 13;
99
113
  return this.performReachabilityCheck(clusters);
100
114
  case 13:
101
115
  results = _context.sent;
102
- window.localStorage.setItem(_constants.REACHABILITY.localStorage, (0, _stringify.default)(results));
116
+ _context.next = 16;
117
+ return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageResult, (0, _stringify.default)(results));
118
+ case 16:
119
+ _context.next = 18;
120
+ return this.webex.boundedStorage.put(this.namespace, _constants.REACHABILITY.localStorageJoinCookie, (0, _stringify.default)(joinCookie));
121
+ case 18:
103
122
  _loggerProxy.default.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
104
123
  return _context.abrupt("return", results);
105
- case 19:
106
- _context.prev = 19;
107
- _context.t0 = _context["catch"](7);
124
+ case 22:
125
+ _context.prev = 22;
126
+ _context.t0 = _context["catch"](5);
108
127
  _loggerProxy.default.logger.error("Reachability:index#gatherReachability --> Error in calling getClusters(): ".concat(_context.t0));
109
128
  return _context.abrupt("return", {});
110
- case 23:
129
+ case 26:
111
130
  case "end":
112
131
  return _context.stop();
113
132
  }
114
- }, _callee, this, [[7, 19]]);
133
+ }, _callee, this, [[5, 22]]);
115
134
  }));
116
135
  function gatherReachability() {
117
136
  return _gatherReachability.apply(this, arguments);
118
137
  }
119
138
  return gatherReachability;
120
139
  }()
140
+ /**
141
+ * Returns statistics about last reachability results. The returned value is an object
142
+ * with a flat list of properties so that it can be easily sent with metrics
143
+ *
144
+ * @returns {Promise} Promise with metrics values, it never rejects/throws.
145
+ */
146
+ )
147
+ }, {
148
+ key: "getReachabilityMetrics",
149
+ value: (function () {
150
+ var _getReachabilityMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
151
+ var stats, updateStats, resultsJson, internalResults;
152
+ return _regenerator.default.wrap(function _callee2$(_context2) {
153
+ while (1) switch (_context2.prev = _context2.next) {
154
+ case 0:
155
+ stats = {
156
+ reachability_public_udp_success: 0,
157
+ reachability_public_udp_failed: 0,
158
+ reachability_public_tcp_success: 0,
159
+ reachability_public_tcp_failed: 0,
160
+ reachability_vmn_udp_success: 0,
161
+ reachability_vmn_udp_failed: 0,
162
+ reachability_vmn_tcp_success: 0,
163
+ reachability_vmn_tcp_failed: 0
164
+ };
165
+ updateStats = function updateStats(clusterType, result) {
166
+ var _result$udp, _result$tcp;
167
+ if ((_result$udp = result.udp) !== null && _result$udp !== void 0 && _result$udp.reachable) {
168
+ var outcome = result.udp.reachable === 'true' ? 'success' : 'failed';
169
+ stats["reachability_".concat(clusterType, "_udp_").concat(outcome)] += 1;
170
+ }
171
+ if ((_result$tcp = result.tcp) !== null && _result$tcp !== void 0 && _result$tcp.reachable) {
172
+ var _outcome = result.tcp.reachable === 'true' ? 'success' : 'failed';
173
+ stats["reachability_".concat(clusterType, "_tcp_").concat(_outcome)] += 1;
174
+ }
175
+ };
176
+ _context2.prev = 2;
177
+ _context2.next = 5;
178
+ return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult);
179
+ case 5:
180
+ resultsJson = _context2.sent;
181
+ internalResults = JSON.parse(resultsJson);
182
+ (0, _values.default)(internalResults).forEach(function (result) {
183
+ updateStats(result.isVideoMesh ? 'vmn' : 'public', result);
184
+ });
185
+ _context2.next = 13;
186
+ break;
187
+ case 10:
188
+ _context2.prev = 10;
189
+ _context2.t0 = _context2["catch"](2);
190
+ // empty storage, that's ok
191
+ _loggerProxy.default.logger.warn('Roap:request#getReachabilityMetrics --> Error parsing reachability data: ', _context2.t0);
192
+ case 13:
193
+ return _context2.abrupt("return", stats);
194
+ case 14:
195
+ case "end":
196
+ return _context2.stop();
197
+ }
198
+ }, _callee2, this, [[2, 10]]);
199
+ }));
200
+ function getReachabilityMetrics() {
201
+ return _getReachabilityMetrics.apply(this, arguments);
202
+ }
203
+ return getReachabilityMetrics;
204
+ }()
205
+ /**
206
+ * Reachability results as an object in the format that backend expects
207
+ *
208
+ * @returns {any} reachability results that need to be sent to the backend
209
+ */
210
+ )
211
+ }, {
212
+ key: "getReachabilityResults",
213
+ value: (function () {
214
+ var _getReachabilityResults = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
215
+ var results, reachabilityResultsProps, resultsJson, internalResults;
216
+ return _regenerator.default.wrap(function _callee3$(_context3) {
217
+ while (1) switch (_context3.prev = _context3.next) {
218
+ case 0:
219
+ // these are the only props that backend needs in the reachability results:
220
+ reachabilityResultsProps = ['udp', 'tcp', 'xtls'];
221
+ _context3.prev = 1;
222
+ _context3.next = 4;
223
+ return this.webex.boundedStorage.get(_constants.REACHABILITY.namespace, _constants.REACHABILITY.localStorageResult);
224
+ case 4:
225
+ resultsJson = _context3.sent;
226
+ internalResults = JSON.parse(resultsJson);
227
+ results = (0, _lodash.mapValues)(internalResults, function (result) {
228
+ return (0, _lodash.pick)(result, reachabilityResultsProps);
229
+ });
230
+ _context3.next = 12;
231
+ break;
232
+ case 9:
233
+ _context3.prev = 9;
234
+ _context3.t0 = _context3["catch"](1);
235
+ // empty storage, that's ok
236
+ _loggerProxy.default.logger.warn('Roap:request#attachReachabilityData --> Error parsing reachability data: ', _context3.t0);
237
+ case 12:
238
+ return _context3.abrupt("return", results);
239
+ case 13:
240
+ case "end":
241
+ return _context3.stop();
242
+ }
243
+ }, _callee3, this, [[1, 9]]);
244
+ }));
245
+ function getReachabilityResults() {
246
+ return _getReachabilityResults.apply(this, arguments);
247
+ }
248
+ return getReachabilityResults;
249
+ }()
121
250
  /**
122
251
  * fetches reachability data and checks for cluster reachability
123
252
  * @returns {boolean}
124
253
  * @public
125
254
  * @memberof Reachability
126
255
  */
256
+ )
127
257
  }, {
128
- key: "isAnyClusterReachable",
129
- value: function isAnyClusterReachable() {
130
- var reachable = false;
131
- var reachabilityData = window.localStorage.getItem(_constants.REACHABILITY.localStorage);
132
- if (reachabilityData) {
133
- try {
134
- var reachabilityResults = JSON.parse(reachabilityData);
135
- reachable = (0, _values.default)(reachabilityResults).some(function (result) {
136
- var _result$udp, _result$tcp;
137
- 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';
138
- });
139
- } catch (e) {
140
- _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
141
- }
258
+ key: "isAnyPublicClusterReachable",
259
+ value: (function () {
260
+ var _isAnyPublicClusterReachable = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
261
+ var reachable, reachabilityData, reachabilityResults;
262
+ return _regenerator.default.wrap(function _callee4$(_context4) {
263
+ while (1) switch (_context4.prev = _context4.next) {
264
+ case 0:
265
+ reachable = false; // @ts-ignore
266
+ _context4.next = 3;
267
+ return this.webex.boundedStorage.get(this.namespace, _constants.REACHABILITY.localStorageResult).catch(function () {});
268
+ case 3:
269
+ reachabilityData = _context4.sent;
270
+ if (reachabilityData) {
271
+ try {
272
+ reachabilityResults = JSON.parse(reachabilityData);
273
+ reachable = (0, _values.default)(reachabilityResults).some(function (result) {
274
+ var _result$udp2, _result$tcp2;
275
+ return !result.isVideoMesh && (((_result$udp2 = result.udp) === null || _result$udp2 === void 0 ? void 0 : _result$udp2.reachable) === 'true' || ((_result$tcp2 = result.tcp) === null || _result$tcp2 === void 0 ? void 0 : _result$tcp2.reachable) === 'true');
276
+ });
277
+ } catch (e) {
278
+ _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
279
+ }
280
+ }
281
+ return _context4.abrupt("return", reachable);
282
+ case 6:
283
+ case "end":
284
+ return _context4.stop();
285
+ }
286
+ }, _callee4, this);
287
+ }));
288
+ function isAnyPublicClusterReachable() {
289
+ return _isAnyPublicClusterReachable.apply(this, arguments);
142
290
  }
143
- return reachable;
144
- }
145
-
291
+ return isAnyPublicClusterReachable;
292
+ }()
146
293
  /**
147
294
  * Generate peerConnection config settings
148
295
  * @param {object} cluster
@@ -150,10 +297,11 @@ var Reachability = /*#__PURE__*/function () {
150
297
  * @private
151
298
  * @memberof Reachability
152
299
  */
300
+ )
153
301
  }, {
154
302
  key: "buildPeerConnectionConfig",
155
303
  value: function buildPeerConnectionConfig(cluster) {
156
- var iceServers = (0, _uniq2.default)([].concat((0, _toConsumableArray2.default)(cluster.udp), (0, _toConsumableArray2.default)(cluster.tcp))).map(function (url) {
304
+ var iceServers = (0, _lodash.uniq)(cluster.udp).map(function (url) {
157
305
  return {
158
306
  username: '',
159
307
  credential: '',
@@ -219,10 +367,10 @@ var Reachability = /*#__PURE__*/function () {
219
367
  var _this = this;
220
368
  var clusters = (0, _toConsumableArray2.default)((0, _keys.default)(clusterList));
221
369
  clusters = clusters.map( /*#__PURE__*/function () {
222
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(key) {
370
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(key) {
223
371
  var cluster, config, peerConnection, description;
224
- return _regenerator.default.wrap(function _callee2$(_context2) {
225
- while (1) switch (_context2.prev = _context2.next) {
372
+ return _regenerator.default.wrap(function _callee5$(_context5) {
373
+ while (1) switch (_context5.prev = _context5.next) {
226
374
  case 0:
227
375
  cluster = clusterList[key];
228
376
  config = _this.buildPeerConnectionConfig(cluster);
@@ -230,29 +378,29 @@ var Reachability = /*#__PURE__*/function () {
230
378
  key: key,
231
379
  config: config
232
380
  });
233
- _context2.next = 5;
381
+ _context5.next = 5;
234
382
  return peerConnection.createOffer({
235
383
  offerToReceiveAudio: true
236
384
  });
237
385
  case 5:
238
- description = _context2.sent;
386
+ description = _context5.sent;
239
387
  // @ts-ignore
240
388
  peerConnection.begin = (0, _now.default)();
241
389
  peerConnection.setLocalDescription(description);
242
- return _context2.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT).catch(function (iceGatheringStateError) {
390
+ return _context5.abrupt("return", _this.iceGatheringState(peerConnection, cluster.isVideoMesh).catch(function (iceGatheringStateError) {
243
391
  _loggerProxy.default.logger.log("Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ".concat(iceGatheringStateError));
244
392
  }));
245
393
  case 9:
246
394
  case "end":
247
- return _context2.stop();
395
+ return _context5.stop();
248
396
  }
249
- }, _callee2);
397
+ }, _callee5);
250
398
  }));
251
399
  return function (_x) {
252
400
  return _ref.apply(this, arguments);
253
401
  };
254
402
  }());
255
- return _promise.default.all(clusters).then(this.parseIceResultsToReachabilityResults).then(function (reachabilityLatencyResults) {
403
+ return _promise.default.all(clusters).then(this.parseIceResultsToInternalReachabilityResults).then(function (reachabilityLatencyResults) {
256
404
  _this.logUnreachableClusters();
257
405
 
258
406
  // return results
@@ -323,6 +471,8 @@ var Reachability = /*#__PURE__*/function () {
323
471
  var elapsed = _this3.getElapsedTime(peerConnection);
324
472
  _loggerProxy.default.logger.log( // @ts-ignore
325
473
  "Reachability:index#onIceCandidate --> Successfully pinged ".concat(peerConnection.key, ":"), elapsed);
474
+ // order is important
475
+ _this3.addPublicIP(peerConnection, e.candidate.address);
326
476
  _this3.setLatencyAndClose(peerConnection, elapsed);
327
477
  }
328
478
  };
@@ -334,16 +484,18 @@ var Reachability = /*#__PURE__*/function () {
334
484
  * speed.
335
485
  * @private
336
486
  * @param {RTCPeerConnection} peerConnection
337
- * @param {number} timeout
487
+ * @param {boolean} isVideoMesh
338
488
  * @returns {Promise}
339
489
  */
340
490
  }, {
341
491
  key: "iceGatheringState",
342
- value: function iceGatheringState(peerConnection, timeout) {
492
+ value: function iceGatheringState(peerConnection, isVideoMesh) {
343
493
  var _this4 = this;
344
494
  var ELAPSED = 'elapsed';
495
+ var timeout = isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT;
345
496
  return new _promise.default(function (resolve) {
346
497
  var peerConnectionProxy = new window.Proxy(peerConnection, {
498
+ // eslint-disable-next-line require-jsdoc
347
499
  get: function get(target, property) {
348
500
  var targetMember = target[property];
349
501
  if (typeof targetMember === 'function') {
@@ -354,9 +506,12 @@ var Reachability = /*#__PURE__*/function () {
354
506
  set: function set(target, property, value) {
355
507
  // only intercept elapsed property
356
508
  if (property === ELAPSED) {
357
- // @ts-ignore
358
509
  resolve({
510
+ // @ts-ignore
359
511
  clusterId: peerConnection.key,
512
+ isVideoMesh: isVideoMesh,
513
+ // @ts-ignore
514
+ publicIPs: target.publicIPs,
360
515
  elapsed: value
361
516
  });
362
517
  return true;
@@ -378,6 +533,8 @@ var Reachability = /*#__PURE__*/function () {
378
533
 
379
534
  // Close any open peerConnections
380
535
  if (peerConnectionProxy.connectionState !== CLOSED) {
536
+ // order is important
537
+ _this4.addPublicIP(peerConnectionProxy, null);
381
538
  _this4.setLatencyAndClose(peerConnectionProxy, null);
382
539
  }
383
540
  }, timeout);
@@ -401,32 +558,45 @@ var Reachability = /*#__PURE__*/function () {
401
558
 
402
559
  /**
403
560
  * Calculates time to establish connection
404
- * @param {array} iceResults iceResults
561
+ * @param {Array<ICECandidateResult>} iceResults iceResults
405
562
  * @returns {object} reachabilityMap
406
- * @private
563
+ * @protected
407
564
  * @memberof Reachability
408
565
  */
409
566
  }, {
410
- key: "parseIceResultsToReachabilityResults",
411
- value: function parseIceResultsToReachabilityResults(iceResults) {
567
+ key: "parseIceResultsToInternalReachabilityResults",
568
+ value: function parseIceResultsToInternalReachabilityResults(iceResults) {
412
569
  var reachabilityMap = {};
413
570
  iceResults.forEach(function (_ref2) {
414
571
  var clusterId = _ref2.clusterId,
415
- elapsed = _ref2.elapsed;
416
- var latencyResult;
417
- if (elapsed === null) {
418
- latencyResult = {
572
+ isVideoMesh = _ref2.isVideoMesh,
573
+ elapsed = _ref2.elapsed,
574
+ publicIPs = _ref2.publicIPs;
575
+ var latencyResult = {};
576
+ if (!elapsed) {
577
+ (0, _assign.default)(latencyResult, {
419
578
  reachable: 'false'
420
- };
579
+ });
421
580
  } else {
422
- latencyResult = {
581
+ (0, _assign.default)(latencyResult, {
423
582
  reachable: 'true',
424
583
  latencyInMilliseconds: elapsed.toString()
425
- };
584
+ });
585
+ }
586
+ if (publicIPs) {
587
+ (0, _assign.default)(latencyResult, {
588
+ clientMediaIPs: publicIPs
589
+ });
426
590
  }
427
591
  reachabilityMap[clusterId] = {
428
592
  udp: latencyResult,
429
- tcp: latencyResult
593
+ tcp: {
594
+ untested: 'true'
595
+ },
596
+ xtls: {
597
+ untested: 'true'
598
+ },
599
+ isVideoMesh: isVideoMesh
430
600
  };
431
601
  });
432
602
  return reachabilityMap;
@@ -435,7 +605,7 @@ var Reachability = /*#__PURE__*/function () {
435
605
  /**
436
606
  * fetches reachability data
437
607
  * @param {object} clusterList
438
- * @returns {Promise<localSDPData>} reachability check results
608
+ * @returns {Promise<InternalReachabilityResults>} reachability check results
439
609
  * @private
440
610
  * @memberof Reachability
441
611
  */
@@ -462,6 +632,31 @@ var Reachability = /*#__PURE__*/function () {
462
632
  });
463
633
  }
464
634
 
635
+ /**
636
+ * Adds public IP (client media IPs)
637
+ * @param {RTCPeerConnection} peerConnection
638
+ * @param {string} publicIP
639
+ * @returns {void}
640
+ */
641
+ }, {
642
+ key: "addPublicIP",
643
+ value: function addPublicIP(peerConnection, publicIP) {
644
+ var modifiedPeerConnection = peerConnection;
645
+ var CLOSED = _constants.CONNECTION_STATE.CLOSED;
646
+ if (modifiedPeerConnection.connectionState === CLOSED) {
647
+ _loggerProxy.default.logger.log("Reachability:index#addPublicIP --> Attempting to set publicIP of ".concat(publicIP, " on closed peerConnection."));
648
+ }
649
+ if (publicIP) {
650
+ if (modifiedPeerConnection.publicIPs) {
651
+ modifiedPeerConnection.publicIPs.push(publicIP);
652
+ } else {
653
+ modifiedPeerConnection.publicIPs = [publicIP];
654
+ }
655
+ } else {
656
+ modifiedPeerConnection.publicIPs = null;
657
+ }
658
+ }
659
+
465
660
  /**
466
661
  * Records latency and closes the peerConnection
467
662
  * @param {RTCPeerConnection} peerConnection
@@ -473,14 +668,13 @@ var Reachability = /*#__PURE__*/function () {
473
668
  }, {
474
669
  key: "setLatencyAndClose",
475
670
  value: function setLatencyAndClose(peerConnection, elapsed) {
476
- var _intialState;
477
671
  var REACHABLE = 'reachable';
478
672
  var UNREACHABLE = 'unreachable';
479
673
  var CLOSED = _constants.CONNECTION_STATE.CLOSED;
480
674
  // @ts-ignore
481
675
  var key = peerConnection.key;
482
676
  var resultKey = elapsed === null ? UNREACHABLE : REACHABLE;
483
- var intialState = (_intialState = {}, (0, _defineProperty2.default)(_intialState, REACHABLE, 0), (0, _defineProperty2.default)(_intialState, UNREACHABLE, 0), _intialState);
677
+ var intialState = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, REACHABLE, 0), UNREACHABLE, 0);
484
678
  if (peerConnection.connectionState === CLOSED) {
485
679
  _loggerProxy.default.logger.log("Reachability:index#setLatencyAndClose --> Attempting to set latency of ".concat(elapsed, " on closed peerConnection."));
486
680
  return;
@@ -510,5 +704,4 @@ var Reachability = /*#__PURE__*/function () {
510
704
  }]);
511
705
  return Reachability;
512
706
  }();
513
- exports.default = Reachability;
514
707
  //# sourceMappingURL=index.js.map