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

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 (417) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.d.ts +9 -9
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.d.ts +48 -48
  10. package/dist/common/collection.js +43 -43
  11. package/dist/common/collection.js.map +1 -1
  12. package/dist/common/config.d.ts +2 -2
  13. package/dist/common/config.js.map +1 -1
  14. package/dist/common/errors/captcha-error.d.ts +15 -15
  15. package/dist/common/errors/captcha-error.js +7 -7
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.d.ts +16 -16
  18. package/dist/common/errors/intent-to-join.js +7 -7
  19. package/dist/common/errors/intent-to-join.js.map +1 -1
  20. package/dist/common/errors/join-meeting.d.ts +17 -17
  21. package/dist/common/errors/join-meeting.js +8 -8
  22. package/dist/common/errors/join-meeting.js.map +1 -1
  23. package/dist/common/errors/media.d.ts +15 -15
  24. package/dist/common/errors/media.js +7 -7
  25. package/dist/common/errors/media.js.map +1 -1
  26. package/dist/common/errors/parameter.d.ts +15 -15
  27. package/dist/common/errors/parameter.js +7 -7
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.d.ts +15 -15
  30. package/dist/common/errors/password-error.js +7 -7
  31. package/dist/common/errors/password-error.js.map +1 -1
  32. package/dist/common/errors/permission.d.ts +14 -14
  33. package/dist/common/errors/permission.js +6 -6
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
  36. package/dist/common/errors/reconnection-in-progress.js +6 -6
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  38. package/dist/common/errors/reconnection.d.ts +15 -15
  39. package/dist/common/errors/reconnection.js +7 -7
  40. package/dist/common/errors/reconnection.js.map +1 -1
  41. package/dist/common/errors/stats.d.ts +15 -15
  42. package/dist/common/errors/stats.js +7 -7
  43. package/dist/common/errors/stats.js.map +1 -1
  44. package/dist/common/errors/webex-errors.d.ts +81 -81
  45. package/dist/common/errors/webex-errors.js +42 -42
  46. package/dist/common/errors/webex-errors.js.map +1 -1
  47. package/dist/common/errors/webex-meetings-error.d.ts +20 -20
  48. package/dist/common/errors/webex-meetings-error.js +12 -12
  49. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  50. package/dist/common/events/events-scope.d.ts +17 -17
  51. package/dist/common/events/events-scope.js +10 -10
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.d.ts +12 -12
  54. package/dist/common/events/events.js +4 -4
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.d.ts +2 -2
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.d.ts +2 -2
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.d.ts +2 -2
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.d.ts +2 -2
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.d.ts +34 -34
  65. package/dist/common/logs/request.js +18 -18
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.d.ts +32 -32
  68. package/dist/common/queue.js +18 -18
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.d.ts +73 -73
  71. package/dist/config.js.map +1 -1
  72. package/dist/constants.d.ts +924 -924
  73. package/dist/constants.js +9 -9
  74. package/dist/constants.js.map +1 -1
  75. package/dist/controls-options-manager/constants.d.ts +4 -4
  76. package/dist/controls-options-manager/constants.js.map +1 -1
  77. package/dist/controls-options-manager/enums.d.ts +5 -5
  78. package/dist/controls-options-manager/enums.js.map +1 -1
  79. package/dist/controls-options-manager/index.d.ts +120 -120
  80. package/dist/controls-options-manager/index.js +81 -81
  81. package/dist/controls-options-manager/index.js.map +1 -1
  82. package/dist/controls-options-manager/util.d.ts +7 -7
  83. package/dist/controls-options-manager/util.js.map +1 -1
  84. package/dist/index.d.ts +4 -4
  85. package/dist/index.js.map +1 -1
  86. package/dist/locus-info/controlsUtils.d.ts +2 -2
  87. package/dist/locus-info/controlsUtils.js +21 -21
  88. package/dist/locus-info/controlsUtils.js.map +1 -1
  89. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  90. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  91. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  92. package/dist/locus-info/fullState.d.ts +2 -2
  93. package/dist/locus-info/fullState.js.map +1 -1
  94. package/dist/locus-info/hostUtils.d.ts +2 -2
  95. package/dist/locus-info/hostUtils.js +19 -19
  96. package/dist/locus-info/hostUtils.js.map +1 -1
  97. package/dist/locus-info/index.d.ts +269 -269
  98. package/dist/locus-info/index.js +180 -180
  99. package/dist/locus-info/index.js.map +1 -1
  100. package/dist/locus-info/infoUtils.d.ts +2 -2
  101. package/dist/locus-info/infoUtils.js.map +1 -1
  102. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  103. package/dist/locus-info/mediaSharesUtils.js +50 -50
  104. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  105. package/dist/locus-info/parser.d.ts +212 -212
  106. package/dist/locus-info/parser.js +136 -136
  107. package/dist/locus-info/parser.js.map +1 -1
  108. package/dist/locus-info/selfUtils.d.ts +2 -2
  109. package/dist/locus-info/selfUtils.js +52 -52
  110. package/dist/locus-info/selfUtils.js.map +1 -1
  111. package/dist/media/index.d.ts +32 -32
  112. package/dist/media/index.js +145 -145
  113. package/dist/media/index.js.map +1 -1
  114. package/dist/media/properties.d.ts +108 -108
  115. package/dist/media/properties.js +49 -49
  116. package/dist/media/properties.js.map +1 -1
  117. package/dist/media/util.d.ts +2 -2
  118. package/dist/media/util.js.map +1 -1
  119. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  120. package/dist/mediaQualityMetrics/config.js.map +1 -1
  121. package/dist/meeting/effectsState.d.ts +42 -42
  122. package/dist/meeting/effectsState.js +24 -24
  123. package/dist/meeting/effectsState.js.map +1 -1
  124. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  125. package/dist/meeting/in-meeting-actions.js +11 -11
  126. package/dist/meeting/in-meeting-actions.js.map +1 -1
  127. package/dist/meeting/index.d.ts +1621 -1621
  128. package/dist/meeting/index.js +1502 -1505
  129. package/dist/meeting/index.js.map +1 -1
  130. package/dist/meeting/muteState.d.ts +116 -116
  131. package/dist/meeting/muteState.js +85 -85
  132. package/dist/meeting/muteState.js.map +1 -1
  133. package/dist/meeting/request.d.ts +255 -255
  134. package/dist/meeting/request.js +141 -141
  135. package/dist/meeting/request.js.map +1 -1
  136. package/dist/meeting/state.d.ts +9 -9
  137. package/dist/meeting/state.js +30 -30
  138. package/dist/meeting/state.js.map +1 -1
  139. package/dist/meeting/util.d.ts +2 -2
  140. package/dist/meeting/util.js.map +1 -1
  141. package/dist/meeting-info/collection.d.ts +20 -20
  142. package/dist/meeting-info/collection.js +11 -11
  143. package/dist/meeting-info/collection.js.map +1 -1
  144. package/dist/meeting-info/index.d.ts +57 -57
  145. package/dist/meeting-info/index.js +50 -50
  146. package/dist/meeting-info/index.js.map +1 -1
  147. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  148. package/dist/meeting-info/meeting-info-v2.js +52 -52
  149. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  150. package/dist/meeting-info/request.d.ts +22 -22
  151. package/dist/meeting-info/request.js +14 -14
  152. package/dist/meeting-info/request.js.map +1 -1
  153. package/dist/meeting-info/util.d.ts +2 -2
  154. package/dist/meeting-info/util.js +9 -9
  155. package/dist/meeting-info/util.js.map +1 -1
  156. package/dist/meeting-info/utilv2.d.ts +2 -2
  157. package/dist/meeting-info/utilv2.js +20 -20
  158. package/dist/meeting-info/utilv2.js.map +1 -1
  159. package/dist/meetings/collection.d.ts +23 -23
  160. package/dist/meetings/collection.js +14 -14
  161. package/dist/meetings/collection.js.map +1 -1
  162. package/dist/meetings/index.d.ts +296 -296
  163. package/dist/meetings/index.js +259 -259
  164. package/dist/meetings/index.js.map +1 -1
  165. package/dist/meetings/request.d.ts +27 -27
  166. package/dist/meetings/request.js +15 -15
  167. package/dist/meetings/request.js.map +1 -1
  168. package/dist/meetings/util.d.ts +18 -18
  169. package/dist/meetings/util.js +29 -29
  170. package/dist/meetings/util.js.map +1 -1
  171. package/dist/member/index.d.ts +147 -147
  172. package/dist/member/index.js +214 -214
  173. package/dist/member/index.js.map +1 -1
  174. package/dist/member/member.types.d.ts +11 -11
  175. package/dist/member/member.types.js.map +1 -1
  176. package/dist/member/util.d.ts +2 -2
  177. package/dist/member/util.js +60 -60
  178. package/dist/member/util.js.map +1 -1
  179. package/dist/members/collection.d.ts +24 -24
  180. package/dist/members/collection.js +11 -11
  181. package/dist/members/collection.js.map +1 -1
  182. package/dist/members/index.d.ts +298 -298
  183. package/dist/members/index.js +275 -275
  184. package/dist/members/index.js.map +1 -1
  185. package/dist/members/request.d.ts +50 -50
  186. package/dist/members/request.js +27 -27
  187. package/dist/members/request.js.map +1 -1
  188. package/dist/members/util.d.ts +2 -2
  189. package/dist/members/util.js +21 -21
  190. package/dist/members/util.js.map +1 -1
  191. package/dist/metrics/config.d.ts +169 -169
  192. package/dist/metrics/config.js.map +1 -1
  193. package/dist/metrics/constants.d.ts +57 -57
  194. package/dist/metrics/constants.js.map +1 -1
  195. package/dist/metrics/index.d.ts +152 -152
  196. package/dist/metrics/index.js +90 -90
  197. package/dist/metrics/index.js.map +1 -1
  198. package/dist/networkQualityMonitor/index.d.ts +70 -70
  199. package/dist/networkQualityMonitor/index.js +65 -65
  200. package/dist/networkQualityMonitor/index.js.map +1 -1
  201. package/dist/peer-connection-manager/index.d.ts +6 -6
  202. package/dist/peer-connection-manager/index.js +87 -87
  203. package/dist/peer-connection-manager/index.js.map +1 -1
  204. package/dist/peer-connection-manager/util.d.ts +6 -6
  205. package/dist/peer-connection-manager/util.js +9 -9
  206. package/dist/peer-connection-manager/util.js.map +1 -1
  207. package/dist/personal-meeting-room/index.d.ts +47 -47
  208. package/dist/personal-meeting-room/index.js +67 -67
  209. package/dist/personal-meeting-room/index.js.map +1 -1
  210. package/dist/personal-meeting-room/request.d.ts +14 -14
  211. package/dist/personal-meeting-room/request.js +7 -7
  212. package/dist/personal-meeting-room/request.js.map +1 -1
  213. package/dist/personal-meeting-room/util.d.ts +2 -2
  214. package/dist/personal-meeting-room/util.js.map +1 -1
  215. package/dist/reachability/index.d.ts +139 -139
  216. package/dist/reachability/index.js +110 -110
  217. package/dist/reachability/index.js.map +1 -1
  218. package/dist/reachability/request.d.ts +35 -35
  219. package/dist/reachability/request.js +15 -15
  220. package/dist/reachability/request.js.map +1 -1
  221. package/dist/reactions/reactions.d.ts +4 -4
  222. package/dist/reactions/reactions.js.map +1 -1
  223. package/dist/reactions/reactions.type.d.ts +32 -32
  224. package/dist/reactions/reactions.type.js.map +1 -1
  225. package/dist/reconnection-manager/index.d.ts +112 -112
  226. package/dist/reconnection-manager/index.js +112 -112
  227. package/dist/reconnection-manager/index.js.map +1 -1
  228. package/dist/recording-controller/enums.d.ts +7 -7
  229. package/dist/recording-controller/enums.js.map +1 -1
  230. package/dist/recording-controller/index.d.ts +193 -193
  231. package/dist/recording-controller/index.js +127 -127
  232. package/dist/recording-controller/index.js.map +1 -1
  233. package/dist/recording-controller/util.d.ts +13 -13
  234. package/dist/recording-controller/util.js.map +1 -1
  235. package/dist/roap/collection.d.ts +10 -10
  236. package/dist/roap/collection.js.map +1 -1
  237. package/dist/roap/handler.d.ts +47 -47
  238. package/dist/roap/handler.js +27 -27
  239. package/dist/roap/handler.js.map +1 -1
  240. package/dist/roap/index.d.ts +116 -116
  241. package/dist/roap/index.js +111 -111
  242. package/dist/roap/index.js.map +1 -1
  243. package/dist/roap/request.d.ts +35 -35
  244. package/dist/roap/request.js +17 -17
  245. package/dist/roap/request.js.map +1 -1
  246. package/dist/roap/state.d.ts +9 -9
  247. package/dist/roap/state.js +14 -14
  248. package/dist/roap/state.js.map +1 -1
  249. package/dist/roap/turnDiscovery.d.ts +67 -67
  250. package/dist/roap/turnDiscovery.js +46 -46
  251. package/dist/roap/turnDiscovery.js.map +1 -1
  252. package/dist/roap/util.d.ts +2 -2
  253. package/dist/roap/util.js.map +1 -1
  254. package/dist/statsAnalyzer/global.d.ts +126 -126
  255. package/dist/statsAnalyzer/global.js.map +1 -1
  256. package/dist/statsAnalyzer/index.d.ts +190 -190
  257. package/dist/statsAnalyzer/index.js +128 -128
  258. package/dist/statsAnalyzer/index.js.map +1 -1
  259. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  260. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  261. package/dist/transcription/index.d.ts +64 -64
  262. package/dist/transcription/index.js +42 -42
  263. package/dist/transcription/index.js.map +1 -1
  264. package/internal-README.md +172 -172
  265. package/jest.config.js +3 -3
  266. package/package.json +22 -21
  267. package/process +1 -1
  268. package/src/common/browser-detection.ts +39 -39
  269. package/src/common/collection.ts +94 -94
  270. package/src/common/config.ts +9 -9
  271. package/src/common/errors/captcha-error.ts +25 -25
  272. package/src/common/errors/intent-to-join.ts +27 -27
  273. package/src/common/errors/join-meeting.ts +32 -32
  274. package/src/common/errors/media.ts +25 -25
  275. package/src/common/errors/parameter.ts +33 -33
  276. package/src/common/errors/password-error.ts +25 -25
  277. package/src/common/errors/permission.ts +24 -24
  278. package/src/common/errors/reconnection-in-progress.ts +8 -8
  279. package/src/common/errors/reconnection.ts +25 -25
  280. package/src/common/errors/stats.ts +25 -25
  281. package/src/common/errors/webex-errors.ts +140 -140
  282. package/src/common/errors/webex-meetings-error.ts +35 -35
  283. package/src/common/events/events-scope.ts +30 -30
  284. package/src/common/events/events.ts +25 -25
  285. package/src/common/events/trigger-proxy.ts +25 -25
  286. package/src/common/events/util.ts +39 -39
  287. package/src/common/logs/logger-config.ts +8 -8
  288. package/src/common/logs/logger-proxy.ts +44 -44
  289. package/src/common/logs/request.ts +65 -65
  290. package/src/common/queue.ts +50 -50
  291. package/src/config.ts +96 -96
  292. package/src/constants.ts +1121 -1121
  293. package/src/controls-options-manager/constants.ts +5 -5
  294. package/src/controls-options-manager/enums.ts +6 -6
  295. package/src/controls-options-manager/index.ts +183 -183
  296. package/src/controls-options-manager/util.ts +20 -20
  297. package/src/index.js +15 -15
  298. package/src/locus-info/controlsUtils.ts +112 -112
  299. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  300. package/src/locus-info/fullState.ts +69 -69
  301. package/src/locus-info/hostUtils.ts +60 -60
  302. package/src/locus-info/index.ts +1303 -1303
  303. package/src/locus-info/infoUtils.ts +101 -101
  304. package/src/locus-info/mediaSharesUtils.ts +173 -173
  305. package/src/locus-info/parser.ts +680 -680
  306. package/src/locus-info/selfUtils.ts +428 -428
  307. package/src/media/index.ts +675 -675
  308. package/src/media/properties.ts +313 -313
  309. package/src/media/util.ts +37 -37
  310. package/src/mediaQualityMetrics/config.ts +382 -382
  311. package/src/meeting/effectsState.ts +209 -209
  312. package/src/meeting/in-meeting-actions.ts +153 -153
  313. package/src/meeting/index.ts +6537 -6543
  314. package/src/meeting/muteState.ts +365 -365
  315. package/src/meeting/request.ts +810 -810
  316. package/src/meeting/state.ts +194 -194
  317. package/src/meeting/util.ts +530 -530
  318. package/src/meeting-info/collection.ts +41 -41
  319. package/src/meeting-info/index.ts +137 -137
  320. package/src/meeting-info/meeting-info-v2.ts +273 -273
  321. package/src/meeting-info/request.ts +46 -46
  322. package/src/meeting-info/util.ts +314 -314
  323. package/src/meeting-info/utilv2.ts +324 -324
  324. package/src/meetings/collection.ts +43 -43
  325. package/src/meetings/index.ts +1128 -1128
  326. package/src/meetings/request.ts +81 -81
  327. package/src/meetings/util.ts +181 -181
  328. package/src/member/index.ts +446 -446
  329. package/src/member/member.types.ts +13 -13
  330. package/src/member/util.ts +286 -286
  331. package/src/members/collection.ts +40 -40
  332. package/src/members/index.ts +900 -900
  333. package/src/members/request.ts +175 -175
  334. package/src/members/util.ts +260 -260
  335. package/src/metrics/config.ts +485 -485
  336. package/src/metrics/constants.ts +61 -61
  337. package/src/metrics/index.ts +543 -543
  338. package/src/networkQualityMonitor/index.ts +211 -211
  339. package/src/peer-connection-manager/index.ts +847 -847
  340. package/src/peer-connection-manager/util.ts +119 -119
  341. package/src/personal-meeting-room/index.ts +157 -157
  342. package/src/personal-meeting-room/request.ts +48 -48
  343. package/src/personal-meeting-room/util.ts +49 -49
  344. package/src/reachability/index.ts +478 -478
  345. package/src/reachability/request.ts +81 -81
  346. package/src/reactions/reactions.ts +104 -104
  347. package/src/reactions/reactions.type.ts +36 -36
  348. package/src/reconnection-manager/index.ts +622 -622
  349. package/src/recording-controller/enums.ts +8 -8
  350. package/src/recording-controller/index.ts +315 -315
  351. package/src/recording-controller/util.ts +58 -58
  352. package/src/roap/collection.ts +62 -62
  353. package/src/roap/handler.ts +294 -294
  354. package/src/roap/index.ts +413 -413
  355. package/src/roap/request.ts +229 -229
  356. package/src/roap/state.ts +156 -156
  357. package/src/roap/turnDiscovery.ts +283 -283
  358. package/src/roap/util.ts +100 -100
  359. package/src/statsAnalyzer/global.ts +128 -128
  360. package/src/statsAnalyzer/index.ts +1266 -1266
  361. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  362. package/src/transcription/index.ts +154 -154
  363. package/test/integration/spec/journey.js +941 -941
  364. package/test/integration/spec/space-meeting.js +457 -457
  365. package/test/integration/spec/transcription.js +55 -55
  366. package/test/unit/spec/common/browser-detection.js +119 -119
  367. package/test/unit/spec/common/queue.js +69 -69
  368. package/test/unit/spec/controls-options-manager/index.js +123 -123
  369. package/test/unit/spec/controls-options-manager/util.js +65 -65
  370. package/test/unit/spec/fixture/locus.js +406 -406
  371. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  372. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  373. package/test/unit/spec/locus-info/index.js +1272 -1272
  374. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  375. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  376. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  377. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  378. package/test/unit/spec/locus-info/parser.js +298 -298
  379. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  380. package/test/unit/spec/media/properties.ts +305 -305
  381. package/test/unit/spec/meeting/effectsState.js +281 -281
  382. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  383. package/test/unit/spec/meeting/index.js +5227 -5227
  384. package/test/unit/spec/meeting/muteState.js +430 -430
  385. package/test/unit/spec/meeting/request.js +317 -317
  386. package/test/unit/spec/meeting/utils.js +319 -319
  387. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  388. package/test/unit/spec/meeting-info/request.js +64 -64
  389. package/test/unit/spec/meeting-info/util.js +37 -37
  390. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  391. package/test/unit/spec/meetings/collection.js +52 -52
  392. package/test/unit/spec/meetings/index.js +1375 -1375
  393. package/test/unit/spec/meetings/utils.js +66 -66
  394. package/test/unit/spec/member/index.js +47 -47
  395. package/test/unit/spec/member/util.js +80 -80
  396. package/test/unit/spec/members/index.js +364 -364
  397. package/test/unit/spec/members/request.js +200 -200
  398. package/test/unit/spec/members/utils.js +42 -42
  399. package/test/unit/spec/metrics/index.js +111 -111
  400. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  401. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  402. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  403. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  404. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  405. package/test/unit/spec/reachability/index.ts +50 -50
  406. package/test/unit/spec/reconnection-manager/index.js +206 -206
  407. package/test/unit/spec/recording-controller/index.js +230 -230
  408. package/test/unit/spec/recording-controller/util.js +101 -101
  409. package/test/unit/spec/roap/index.ts +128 -128
  410. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  411. package/test/unit/spec/roap/util.js +30 -30
  412. package/test/unit/spec/stats-analyzer/index.js +287 -287
  413. package/test/utils/cmr.js +104 -104
  414. package/test/utils/testUtils.js +287 -287
  415. package/test/utils/webex-config.js +77 -77
  416. package/test/utils/webex-test-users.js +82 -82
  417. package/tsconfig.json +5 -5
@@ -24,15 +24,15 @@ var _request = _interopRequireDefault(require("./request"));
24
24
  var DEFAULT_TIMEOUT = 3000;
25
25
  var VIDEO_MESH_TIMEOUT = 1000;
26
26
 
27
- /**
28
- * @class Reachability
29
- * @export
27
+ /**
28
+ * @class Reachability
29
+ * @export
30
30
  */
31
31
  var Reachability = /*#__PURE__*/function () {
32
- /**
33
- * Creates an instance of Reachability.
34
- * @param {object} webex
35
- * @memberof Reachability
32
+ /**
33
+ * Creates an instance of Reachability.
34
+ * @param {object} webex
35
+ * @memberof Reachability
36
36
  */
37
37
  function Reachability(webex) {
38
38
  (0, _classCallCheck2.default)(this, Reachability);
@@ -41,31 +41,31 @@ var Reachability = /*#__PURE__*/function () {
41
41
  (0, _defineProperty2.default)(this, "clusterLatencyResults", void 0);
42
42
  this.webex = webex;
43
43
 
44
- /**
45
- * internal request object for the server
46
- * @instance
47
- * @type {Array}
48
- * @private
49
- * @memberof Reachability
44
+ /**
45
+ * internal request object for the server
46
+ * @instance
47
+ * @type {Array}
48
+ * @private
49
+ * @memberof Reachability
50
50
  */
51
51
  this.reachabilityRequest = new _request.default(this.webex);
52
52
 
53
- /**
54
- * internal object of clusters latency results
55
- * @instance
56
- * @type {object}
57
- * @private
58
- * @memberof Reachability
53
+ /**
54
+ * internal object of clusters latency results
55
+ * @instance
56
+ * @type {object}
57
+ * @private
58
+ * @memberof Reachability
59
59
  */
60
60
  this.clusterLatencyResults = {};
61
61
  }
62
62
 
63
- /**
64
- * fetches reachability data
65
- * @returns {Object} reachability data
66
- * @public
67
- * @async
68
- * @memberof Reachability
63
+ /**
64
+ * fetches reachability data
65
+ * @returns {Object} reachability data
66
+ * @public
67
+ * @async
68
+ * @memberof Reachability
69
69
  */
70
70
  (0, _createClass2.default)(Reachability, [{
71
71
  key: "gatherReachability",
@@ -118,11 +118,11 @@ var Reachability = /*#__PURE__*/function () {
118
118
  }
119
119
  return gatherReachability;
120
120
  }()
121
- /**
122
- * fetches reachability data and checks for cluster reachability
123
- * @returns {boolean}
124
- * @public
125
- * @memberof Reachability
121
+ /**
122
+ * fetches reachability data and checks for cluster reachability
123
+ * @returns {boolean}
124
+ * @public
125
+ * @memberof Reachability
126
126
  */
127
127
  }, {
128
128
  key: "isAnyClusterReachable",
@@ -143,12 +143,12 @@ var Reachability = /*#__PURE__*/function () {
143
143
  return reachable;
144
144
  }
145
145
 
146
- /**
147
- * Generate peerConnection config settings
148
- * @param {object} cluster
149
- * @returns {object} peerConnectionConfig
150
- * @private
151
- * @memberof Reachability
146
+ /**
147
+ * Generate peerConnection config settings
148
+ * @param {object} cluster
149
+ * @returns {object} peerConnectionConfig
150
+ * @private
151
+ * @memberof Reachability
152
152
  */
153
153
  }, {
154
154
  key: "buildPeerConnectionConfig",
@@ -167,12 +167,12 @@ var Reachability = /*#__PURE__*/function () {
167
167
  };
168
168
  }
169
169
 
170
- /**
171
- * Creates an RTCPeerConnection
172
- * @param {object} cluster
173
- * @returns {RTCPeerConnection} peerConnection
174
- * @private
175
- * @memberof Reachability
170
+ /**
171
+ * Creates an RTCPeerConnection
172
+ * @param {object} cluster
173
+ * @returns {RTCPeerConnection} peerConnection
174
+ * @private
175
+ * @memberof Reachability
176
176
  */
177
177
  }, {
178
178
  key: "createPeerConnection",
@@ -191,12 +191,12 @@ var Reachability = /*#__PURE__*/function () {
191
191
  }
192
192
  }
193
193
 
194
- /**
195
- * Gets total elapsed time
196
- * @param {RTCPeerConnection} peerConnection
197
- * @returns {Number} Milliseconds
198
- * @private
199
- * @memberof Reachability
194
+ /**
195
+ * Gets total elapsed time
196
+ * @param {RTCPeerConnection} peerConnection
197
+ * @returns {Number} Milliseconds
198
+ * @private
199
+ * @memberof Reachability
200
200
  */
201
201
  }, {
202
202
  key: "getElapsedTime",
@@ -206,12 +206,12 @@ var Reachability = /*#__PURE__*/function () {
206
206
  return (0, _now.default)() - startTime;
207
207
  }
208
208
 
209
- /**
210
- * creates offer and generates localSDP
211
- * @param {object} clusterList cluster List
212
- * @returns {Promise} Reachability latency results
213
- * @private
214
- * @memberof Reachability
209
+ /**
210
+ * creates offer and generates localSDP
211
+ * @param {object} clusterList cluster List
212
+ * @returns {Promise} Reachability latency results
213
+ * @private
214
+ * @memberof Reachability
215
215
  */
216
216
  }, {
217
217
  key: "getLocalSDPForClusters",
@@ -260,11 +260,11 @@ var Reachability = /*#__PURE__*/function () {
260
260
  });
261
261
  }
262
262
 
263
- /**
264
- * Get list of all unreachable clusters
265
- * @returns {array} Unreachable clusters
266
- * @private
267
- * @memberof Reachability
263
+ /**
264
+ * Get list of all unreachable clusters
265
+ * @returns {array} Unreachable clusters
266
+ * @private
267
+ * @memberof Reachability
268
268
  */
269
269
  }, {
270
270
  key: "getUnreachablClusters",
@@ -280,13 +280,13 @@ var Reachability = /*#__PURE__*/function () {
280
280
  return unreachableList;
281
281
  }
282
282
 
283
- /**
284
- * Attach an event handler for the icegatheringstatechange
285
- * event and measure latency.
286
- * @param {RTCPeerConnection} peerConnection
287
- * @returns {undefined}
288
- * @private
289
- * @memberof Reachability
283
+ /**
284
+ * Attach an event handler for the icegatheringstatechange
285
+ * event and measure latency.
286
+ * @param {RTCPeerConnection} peerConnection
287
+ * @returns {undefined}
288
+ * @private
289
+ * @memberof Reachability
290
290
  */
291
291
  }, {
292
292
  key: "handleIceGatheringStateChange",
@@ -305,13 +305,13 @@ var Reachability = /*#__PURE__*/function () {
305
305
  };
306
306
  }
307
307
 
308
- /**
309
- * Attach an event handler for the icecandidate
310
- * event and measure latency.
311
- * @param {RTCPeerConnection} peerConnection
312
- * @returns {undefined}
313
- * @private
314
- * @memberof Reachability
308
+ /**
309
+ * Attach an event handler for the icecandidate
310
+ * event and measure latency.
311
+ * @param {RTCPeerConnection} peerConnection
312
+ * @returns {undefined}
313
+ * @private
314
+ * @memberof Reachability
315
315
  */
316
316
  }, {
317
317
  key: "handleOnIceCandidate",
@@ -328,14 +328,14 @@ var Reachability = /*#__PURE__*/function () {
328
328
  };
329
329
  }
330
330
 
331
- /**
332
- * An event handler on an RTCPeerConnection when the state of the ICE
333
- * candidate gathering process changes. Used to measure connection
334
- * speed.
335
- * @private
336
- * @param {RTCPeerConnection} peerConnection
337
- * @param {number} timeout
338
- * @returns {Promise}
331
+ /**
332
+ * An event handler on an RTCPeerConnection when the state of the ICE
333
+ * candidate gathering process changes. Used to measure connection
334
+ * speed.
335
+ * @private
336
+ * @param {RTCPeerConnection} peerConnection
337
+ * @param {number} timeout
338
+ * @returns {Promise}
339
339
  */
340
340
  }, {
341
341
  key: "iceGatheringState",
@@ -384,11 +384,11 @@ var Reachability = /*#__PURE__*/function () {
384
384
  });
385
385
  }
386
386
 
387
- /**
388
- * Make a log of unreachable clusters.
389
- * @returns {undefined}
390
- * @private
391
- * @memberof Reachability
387
+ /**
388
+ * Make a log of unreachable clusters.
389
+ * @returns {undefined}
390
+ * @private
391
+ * @memberof Reachability
392
392
  */
393
393
  }, {
394
394
  key: "logUnreachableClusters",
@@ -399,12 +399,12 @@ var Reachability = /*#__PURE__*/function () {
399
399
  });
400
400
  }
401
401
 
402
- /**
403
- * Calculates time to establish connection
404
- * @param {array} iceResults iceResults
405
- * @returns {object} reachabilityMap
406
- * @private
407
- * @memberof Reachability
402
+ /**
403
+ * Calculates time to establish connection
404
+ * @param {array} iceResults iceResults
405
+ * @returns {object} reachabilityMap
406
+ * @private
407
+ * @memberof Reachability
408
408
  */
409
409
  }, {
410
410
  key: "parseIceResultsToReachabilityResults",
@@ -432,12 +432,12 @@ var Reachability = /*#__PURE__*/function () {
432
432
  return reachabilityMap;
433
433
  }
434
434
 
435
- /**
436
- * fetches reachability data
437
- * @param {object} clusterList
438
- * @returns {Promise<localSDPData>} reachability check results
439
- * @private
440
- * @memberof Reachability
435
+ /**
436
+ * fetches reachability data
437
+ * @param {object} clusterList
438
+ * @returns {Promise<localSDPData>} reachability check results
439
+ * @private
440
+ * @memberof Reachability
441
441
  */
442
442
  }, {
443
443
  key: "performReachabilityCheck",
@@ -462,13 +462,13 @@ var Reachability = /*#__PURE__*/function () {
462
462
  });
463
463
  }
464
464
 
465
- /**
466
- * Records latency and closes the peerConnection
467
- * @param {RTCPeerConnection} peerConnection
468
- * @param {number} elapsed Latency in milliseconds
469
- * @returns {undefined}
470
- * @private
471
- * @memberof Reachability
465
+ /**
466
+ * Records latency and closes the peerConnection
467
+ * @param {RTCPeerConnection} peerConnection
468
+ * @param {number} elapsed Latency in milliseconds
469
+ * @returns {undefined}
470
+ * @private
471
+ * @memberof Reachability
472
472
  */
473
473
  }, {
474
474
  key: "setLatencyAndClose",
@@ -496,11 +496,11 @@ var Reachability = /*#__PURE__*/function () {
496
496
  peerConnection.elapsed = elapsed;
497
497
  }
498
498
 
499
- /**
500
- * utility function
501
- * @returns {undefined}
502
- * @private
503
- * @memberof Reachability
499
+ /**
500
+ * utility function
501
+ * @returns {undefined}
502
+ * @private
503
+ * @memberof Reachability
504
504
  */
505
505
  }, {
506
506
  key: "setup",
@@ -1 +1 @@
1
- {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_constants","_request","DEFAULT_TIMEOUT","VIDEO_MESH_TIMEOUT","Reachability","webex","_classCallCheck2","default","_defineProperty2","reachabilityRequest","ReachabilityRequest","clusterLatencyResults","_createClass2","key","value","_gatherReachability","_asyncToGenerator2","_regenerator","mark","_callee","_window","_window$localStorage","clusters","results","wrap","_callee$","_context","prev","next","setup","window","localStorage","removeItem","REACHABILITY","LoggerProxy","logger","error","abrupt","getClusters","sent","performReachabilityCheck","setItem","_stringify","log","t0","concat","stop","gatherReachability","apply","arguments","isAnyClusterReachable","reachable","reachabilityData","getItem","reachabilityResults","JSON","parse","_values","some","result","_result$udp","_result$tcp","udp","tcp","e","buildPeerConnectionConfig","cluster","iceServers","_uniq2","_toConsumableArray2","map","url","username","credential","urls","iceCandidatePoolSize","iceTransportPolicy","createPeerConnection","config","peerConnection","RTCPeerConnection","peerConnectionError","getElapsedTime","startTime","begin","_now","getLocalSDPForClusters","clusterList","_this","_keys","_ref","_callee2","description","_callee2$","_context2","createOffer","offerToReceiveAudio","setLocalDescription","iceGatheringState","isVideoMesh","catch","iceGatheringStateError","_x","_promise","all","then","parseIceResultsToReachabilityResults","reachabilityLatencyResults","logUnreachableClusters","getUnreachablClusters","unreachableList","forEach","unreachable","push","handleIceGatheringStateChange","_this2","onicegatheringstatechange","COMPLETE","ICE_GATHERING_STATE","iceConnectionState","elapsed","setLatencyAndClose","handleOnIceCandidate","_this3","onicecandidate","SERVER_REFLEXIVE","candidate","String","type","toLowerCase","timeout","_this4","ELAPSED","resolve","peerConnectionProxy","Proxy","get","target","property","targetMember","bind","set","clusterId","Reflect","setTimeout","CLOSED","CONNECTION_STATE","connectionState","list","iceResults","reachabilityMap","_ref2","latencyResult","latencyInMilliseconds","toString","_this5","length","localSDPData","_intialState","REACHABLE","UNREACHABLE","resultKey","intialState","close","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-disable class-methods-use-this */\n/* globals window */\nimport _ from 'lodash';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ICE_GATHERING_STATE, CONNECTION_STATE, REACHABILITY} from '../constants';\n\nimport ReachabilityRequest from './request';\n\nconst DEFAULT_TIMEOUT = 3000;\nconst VIDEO_MESH_TIMEOUT = 1000;\n\n/**\n * @class Reachability\n * @export\n */\nexport default class Reachability {\n webex: object;\n reachabilityRequest: any;\n clusterLatencyResults: any;\n\n /**\n * Creates an instance of Reachability.\n * @param {object} webex\n * @memberof Reachability\n */\n constructor(webex: object) {\n this.webex = webex;\n\n /**\n * internal request object for the server\n * @instance\n * @type {Array}\n * @private\n * @memberof Reachability\n */\n this.reachabilityRequest = new ReachabilityRequest(this.webex);\n\n /**\n * internal object of clusters latency results\n * @instance\n * @type {object}\n * @private\n * @memberof Reachability\n */\n this.clusterLatencyResults = {};\n }\n\n /**\n * fetches reachability data\n * @returns {Object} reachability data\n * @public\n * @async\n * @memberof Reachability\n */\n public async gatherReachability() {\n this.setup();\n\n // Remove stored reachability results to ensure no stale data\n if (window?.localStorage?.removeItem) {\n window.localStorage.removeItem(REACHABILITY.localStorage);\n } else {\n LoggerProxy.logger.error(\n 'Reachability:index#gatherReachability --> Error in accessing LocalStorage.'\n );\n\n return {};\n }\n\n // Fetch clusters and measure latency\n try {\n const clusters = await this.reachabilityRequest.getClusters();\n\n // Perform Reachability Check\n const results = await this.performReachabilityCheck(clusters);\n\n window.localStorage.setItem(REACHABILITY.localStorage, JSON.stringify(results));\n\n LoggerProxy.logger.log(\n 'Reachability:index#gatherReachability --> Reachability checks completed'\n );\n\n return results;\n } catch (getClusterError) {\n LoggerProxy.logger.error(\n `Reachability:index#gatherReachability --> Error in calling getClusters(): ${getClusterError}`\n );\n\n return {};\n }\n }\n\n /**\n * fetches reachability data and checks for cluster reachability\n * @returns {boolean}\n * @public\n * @memberof Reachability\n */\n isAnyClusterReachable() {\n let reachable = false;\n const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);\n\n if (reachabilityData) {\n try {\n const reachabilityResults = JSON.parse(reachabilityData);\n\n reachable = Object.values(reachabilityResults).some(\n (result: any) => result.udp?.reachable === 'true' || result.tcp?.reachable === 'true'\n );\n } catch (e) {\n LoggerProxy.logger.error(\n `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`\n );\n }\n }\n\n return reachable;\n }\n\n /**\n * Generate peerConnection config settings\n * @param {object} cluster\n * @returns {object} peerConnectionConfig\n * @private\n * @memberof Reachability\n */\n private buildPeerConnectionConfig(cluster: any) {\n const iceServers = _.uniq([...cluster.udp, ...cluster.tcp]).map((url) => ({\n username: '',\n credential: '',\n urls: [url],\n }));\n\n return {\n iceServers: [...iceServers],\n iceCandidatePoolSize: '0',\n iceTransportPolicy: 'all',\n };\n }\n\n /**\n * Creates an RTCPeerConnection\n * @param {object} cluster\n * @returns {RTCPeerConnection} peerConnection\n * @private\n * @memberof Reachability\n */\n private createPeerConnection(cluster: any) {\n const {key, config} = cluster;\n\n try {\n const peerConnection = new window.RTCPeerConnection(config);\n\n // @ts-ignore\n peerConnection.key = key;\n\n return peerConnection;\n } catch (peerConnectionError) {\n LoggerProxy.logger.log(\n `Reachability:index#createPeerConnection --> Error creating peerConnection: ${peerConnectionError}`\n );\n\n return null;\n }\n }\n\n /**\n * Gets total elapsed time\n * @param {RTCPeerConnection} peerConnection\n * @returns {Number} Milliseconds\n * @private\n * @memberof Reachability\n */\n private getElapsedTime(peerConnection: any) {\n const startTime = peerConnection.begin;\n\n delete peerConnection.begin;\n\n return Date.now() - startTime;\n }\n\n /**\n * creates offer and generates localSDP\n * @param {object} clusterList cluster List\n * @returns {Promise} Reachability latency results\n * @private\n * @memberof Reachability\n */\n private getLocalSDPForClusters(clusterList: object) {\n let clusters: any[] = [...Object.keys(clusterList)];\n\n clusters = clusters.map(async (key) => {\n const cluster = clusterList[key];\n const config = this.buildPeerConnectionConfig(cluster);\n const peerConnection = this.createPeerConnection({key, config});\n const description = await peerConnection.createOffer({offerToReceiveAudio: true});\n\n // @ts-ignore\n peerConnection.begin = Date.now();\n peerConnection.setLocalDescription(description);\n\n return this.iceGatheringState(\n peerConnection,\n cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT\n ).catch((iceGatheringStateError) => {\n LoggerProxy.logger.log(\n `Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ${iceGatheringStateError}`\n );\n });\n });\n\n return Promise.all(clusters)\n .then(this.parseIceResultsToReachabilityResults)\n .then((reachabilityLatencyResults) => {\n this.logUnreachableClusters();\n\n // return results\n return reachabilityLatencyResults;\n });\n }\n\n /**\n * Get list of all unreachable clusters\n * @returns {array} Unreachable clusters\n * @private\n * @memberof Reachability\n */\n private getUnreachablClusters() {\n const unreachableList = [];\n const clusters = this.clusterLatencyResults;\n\n Object.keys(clusters).forEach((key) => {\n const cluster = clusters[key];\n\n if (cluster.unreachable && !cluster.reachable) {\n unreachableList.push(key);\n }\n });\n\n return unreachableList;\n }\n\n /**\n * Attach an event handler for the icegatheringstatechange\n * event and measure latency.\n * @param {RTCPeerConnection} peerConnection\n * @returns {undefined}\n * @private\n * @memberof Reachability\n */\n private handleIceGatheringStateChange(peerConnection: RTCPeerConnection) {\n peerConnection.onicegatheringstatechange = () => {\n const {COMPLETE} = ICE_GATHERING_STATE;\n\n if (peerConnection.iceConnectionState === COMPLETE) {\n const elapsed = this.getElapsedTime(peerConnection);\n\n // @ts-ignore\n LoggerProxy.logger.log(\n // @ts-ignore\n `Reachability:index#onIceGatheringStateChange --> Successfully pinged ${peerConnection.key}:`,\n elapsed\n );\n this.setLatencyAndClose(peerConnection, elapsed);\n }\n };\n }\n\n /**\n * Attach an event handler for the icecandidate\n * event and measure latency.\n * @param {RTCPeerConnection} peerConnection\n * @returns {undefined}\n * @private\n * @memberof Reachability\n */\n private handleOnIceCandidate(peerConnection: RTCPeerConnection) {\n peerConnection.onicecandidate = (e) => {\n const SERVER_REFLEXIVE = 'srflx';\n\n if (e.candidate && String(e.candidate.type).toLowerCase() === SERVER_REFLEXIVE) {\n const elapsed = this.getElapsedTime(peerConnection);\n\n LoggerProxy.logger.log(\n // @ts-ignore\n `Reachability:index#onIceCandidate --> Successfully pinged ${peerConnection.key}:`,\n elapsed\n );\n this.setLatencyAndClose(peerConnection, elapsed);\n }\n };\n }\n\n /**\n * An event handler on an RTCPeerConnection when the state of the ICE\n * candidate gathering process changes. Used to measure connection\n * speed.\n * @private\n * @param {RTCPeerConnection} peerConnection\n * @param {number} timeout\n * @returns {Promise}\n */\n private iceGatheringState(peerConnection: RTCPeerConnection, timeout: number) {\n const ELAPSED = 'elapsed';\n\n return new Promise((resolve) => {\n const peerConnectionProxy = new window.Proxy(peerConnection, {\n get(target, property) {\n const targetMember = target[property];\n\n if (typeof targetMember === 'function') {\n return targetMember.bind(target);\n }\n\n return targetMember;\n },\n set: (target, property, value) => {\n // only intercept elapsed property\n if (property === ELAPSED) {\n // @ts-ignore\n resolve({clusterId: peerConnection.key, elapsed: value});\n\n return true;\n }\n\n // pass thru\n return window.Reflect.set(target, property, value);\n },\n });\n\n // Using peerConnection proxy so handle functions below\n // won't be coupled to our promise implementation\n this.handleIceGatheringStateChange(peerConnectionProxy);\n this.handleOnIceCandidate(peerConnectionProxy);\n\n // Set maximum timeout\n window.setTimeout(() => {\n const {CLOSED} = CONNECTION_STATE;\n\n // Close any open peerConnections\n if (peerConnectionProxy.connectionState !== CLOSED) {\n this.setLatencyAndClose(peerConnectionProxy, null);\n }\n }, timeout);\n });\n }\n\n /**\n * Make a log of unreachable clusters.\n * @returns {undefined}\n * @private\n * @memberof Reachability\n */\n private logUnreachableClusters() {\n const list = this.getUnreachablClusters();\n\n list.forEach((cluster) => {\n LoggerProxy.logger.log(\n `Reachability:index#logUnreachableClusters --> No ice candidate for ${cluster}.`\n );\n });\n }\n\n /**\n * Calculates time to establish connection\n * @param {array} iceResults iceResults\n * @returns {object} reachabilityMap\n * @private\n * @memberof Reachability\n */\n private parseIceResultsToReachabilityResults(iceResults: Array<any>) {\n const reachabilityMap = {};\n\n iceResults.forEach(({clusterId, elapsed}) => {\n let latencyResult;\n\n if (elapsed === null) {\n latencyResult = {reachable: 'false'};\n } else {\n latencyResult = {\n reachable: 'true',\n latencyInMilliseconds: elapsed.toString(),\n };\n }\n\n reachabilityMap[clusterId] = {\n udp: latencyResult,\n tcp: latencyResult,\n };\n });\n\n return reachabilityMap;\n }\n\n /**\n * fetches reachability data\n * @param {object} clusterList\n * @returns {Promise<localSDPData>} reachability check results\n * @private\n * @memberof Reachability\n */\n private performReachabilityCheck(clusterList: object) {\n if (!clusterList || !Object.keys(clusterList).length) {\n return Promise.resolve({});\n }\n\n return new Promise((resolve) => {\n this.getLocalSDPForClusters(clusterList)\n .then((localSDPData) => {\n if (!localSDPData || !Object.keys(localSDPData).length) {\n // TODO: handle the error condition properly and try retry\n LoggerProxy.logger.log(\n 'Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning'\n );\n resolve({});\n } else {\n resolve(localSDPData);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ${error}`\n );\n resolve({});\n });\n });\n }\n\n /**\n * Records latency and closes the peerConnection\n * @param {RTCPeerConnection} peerConnection\n * @param {number} elapsed Latency in milliseconds\n * @returns {undefined}\n * @private\n * @memberof Reachability\n */\n private setLatencyAndClose(peerConnection: RTCPeerConnection, elapsed: number) {\n const REACHABLE = 'reachable';\n const UNREACHABLE = 'unreachable';\n const {CLOSED} = CONNECTION_STATE;\n // @ts-ignore\n const {key} = peerConnection;\n const resultKey = elapsed === null ? UNREACHABLE : REACHABLE;\n const intialState = {[REACHABLE]: 0, [UNREACHABLE]: 0};\n\n if (peerConnection.connectionState === CLOSED) {\n LoggerProxy.logger.log(\n `Reachability:index#setLatencyAndClose --> Attempting to set latency of ${elapsed} on closed peerConnection.`\n );\n\n return;\n }\n\n this.clusterLatencyResults[key] = this.clusterLatencyResults[key] || intialState;\n this.clusterLatencyResults[key][resultKey] += 1;\n\n // Set to null in case this fired from\n // an event other than onIceCandidate\n peerConnection.onicecandidate = null;\n peerConnection.close();\n // @ts-ignore\n peerConnection.elapsed = elapsed;\n }\n\n /**\n * utility function\n * @returns {undefined}\n * @private\n * @memberof Reachability\n */\n private setup() {\n this.clusterLatencyResults = {};\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_constants","_request","DEFAULT_TIMEOUT","VIDEO_MESH_TIMEOUT","Reachability","webex","_classCallCheck2","default","_defineProperty2","reachabilityRequest","ReachabilityRequest","clusterLatencyResults","_createClass2","key","value","_gatherReachability","_asyncToGenerator2","_regenerator","mark","_callee","_window","_window$localStorage","clusters","results","wrap","_callee$","_context","prev","next","setup","window","localStorage","removeItem","REACHABILITY","LoggerProxy","logger","error","abrupt","getClusters","sent","performReachabilityCheck","setItem","_stringify","log","t0","concat","stop","gatherReachability","apply","arguments","isAnyClusterReachable","reachable","reachabilityData","getItem","reachabilityResults","JSON","parse","_values","some","result","_result$udp","_result$tcp","udp","tcp","e","buildPeerConnectionConfig","cluster","iceServers","_uniq2","_toConsumableArray2","map","url","username","credential","urls","iceCandidatePoolSize","iceTransportPolicy","createPeerConnection","config","peerConnection","RTCPeerConnection","peerConnectionError","getElapsedTime","startTime","begin","_now","getLocalSDPForClusters","clusterList","_this","_keys","_ref","_callee2","description","_callee2$","_context2","createOffer","offerToReceiveAudio","setLocalDescription","iceGatheringState","isVideoMesh","catch","iceGatheringStateError","_x","_promise","all","then","parseIceResultsToReachabilityResults","reachabilityLatencyResults","logUnreachableClusters","getUnreachablClusters","unreachableList","forEach","unreachable","push","handleIceGatheringStateChange","_this2","onicegatheringstatechange","COMPLETE","ICE_GATHERING_STATE","iceConnectionState","elapsed","setLatencyAndClose","handleOnIceCandidate","_this3","onicecandidate","SERVER_REFLEXIVE","candidate","String","type","toLowerCase","timeout","_this4","ELAPSED","resolve","peerConnectionProxy","Proxy","get","target","property","targetMember","bind","set","clusterId","Reflect","setTimeout","CLOSED","CONNECTION_STATE","connectionState","list","iceResults","reachabilityMap","_ref2","latencyResult","latencyInMilliseconds","toString","_this5","length","localSDPData","_intialState","REACHABLE","UNREACHABLE","resultKey","intialState","close","exports"],"sources":["index.ts"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\n/* eslint-disable class-methods-use-this */\r\n/* globals window */\r\nimport _ from 'lodash';\r\n\r\nimport LoggerProxy from '../common/logs/logger-proxy';\r\nimport {ICE_GATHERING_STATE, CONNECTION_STATE, REACHABILITY} from '../constants';\r\n\r\nimport ReachabilityRequest from './request';\r\n\r\nconst DEFAULT_TIMEOUT = 3000;\r\nconst VIDEO_MESH_TIMEOUT = 1000;\r\n\r\n/**\r\n * @class Reachability\r\n * @export\r\n */\r\nexport default class Reachability {\r\n webex: object;\r\n reachabilityRequest: any;\r\n clusterLatencyResults: any;\r\n\r\n /**\r\n * Creates an instance of Reachability.\r\n * @param {object} webex\r\n * @memberof Reachability\r\n */\r\n constructor(webex: object) {\r\n this.webex = webex;\r\n\r\n /**\r\n * internal request object for the server\r\n * @instance\r\n * @type {Array}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n this.reachabilityRequest = new ReachabilityRequest(this.webex);\r\n\r\n /**\r\n * internal object of clusters latency results\r\n * @instance\r\n * @type {object}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n this.clusterLatencyResults = {};\r\n }\r\n\r\n /**\r\n * fetches reachability data\r\n * @returns {Object} reachability data\r\n * @public\r\n * @async\r\n * @memberof Reachability\r\n */\r\n public async gatherReachability() {\r\n this.setup();\r\n\r\n // Remove stored reachability results to ensure no stale data\r\n if (window?.localStorage?.removeItem) {\r\n window.localStorage.removeItem(REACHABILITY.localStorage);\r\n } else {\r\n LoggerProxy.logger.error(\r\n 'Reachability:index#gatherReachability --> Error in accessing LocalStorage.'\r\n );\r\n\r\n return {};\r\n }\r\n\r\n // Fetch clusters and measure latency\r\n try {\r\n const clusters = await this.reachabilityRequest.getClusters();\r\n\r\n // Perform Reachability Check\r\n const results = await this.performReachabilityCheck(clusters);\r\n\r\n window.localStorage.setItem(REACHABILITY.localStorage, JSON.stringify(results));\r\n\r\n LoggerProxy.logger.log(\r\n 'Reachability:index#gatherReachability --> Reachability checks completed'\r\n );\r\n\r\n return results;\r\n } catch (getClusterError) {\r\n LoggerProxy.logger.error(\r\n `Reachability:index#gatherReachability --> Error in calling getClusters(): ${getClusterError}`\r\n );\r\n\r\n return {};\r\n }\r\n }\r\n\r\n /**\r\n * fetches reachability data and checks for cluster reachability\r\n * @returns {boolean}\r\n * @public\r\n * @memberof Reachability\r\n */\r\n isAnyClusterReachable() {\r\n let reachable = false;\r\n const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);\r\n\r\n if (reachabilityData) {\r\n try {\r\n const reachabilityResults = JSON.parse(reachabilityData);\r\n\r\n reachable = Object.values(reachabilityResults).some(\r\n (result: any) => result.udp?.reachable === 'true' || result.tcp?.reachable === 'true'\r\n );\r\n } catch (e) {\r\n LoggerProxy.logger.error(\r\n `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`\r\n );\r\n }\r\n }\r\n\r\n return reachable;\r\n }\r\n\r\n /**\r\n * Generate peerConnection config settings\r\n * @param {object} cluster\r\n * @returns {object} peerConnectionConfig\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private buildPeerConnectionConfig(cluster: any) {\r\n const iceServers = _.uniq([...cluster.udp, ...cluster.tcp]).map((url) => ({\r\n username: '',\r\n credential: '',\r\n urls: [url],\r\n }));\r\n\r\n return {\r\n iceServers: [...iceServers],\r\n iceCandidatePoolSize: '0',\r\n iceTransportPolicy: 'all',\r\n };\r\n }\r\n\r\n /**\r\n * Creates an RTCPeerConnection\r\n * @param {object} cluster\r\n * @returns {RTCPeerConnection} peerConnection\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private createPeerConnection(cluster: any) {\r\n const {key, config} = cluster;\r\n\r\n try {\r\n const peerConnection = new window.RTCPeerConnection(config);\r\n\r\n // @ts-ignore\r\n peerConnection.key = key;\r\n\r\n return peerConnection;\r\n } catch (peerConnectionError) {\r\n LoggerProxy.logger.log(\r\n `Reachability:index#createPeerConnection --> Error creating peerConnection: ${peerConnectionError}`\r\n );\r\n\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Gets total elapsed time\r\n * @param {RTCPeerConnection} peerConnection\r\n * @returns {Number} Milliseconds\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private getElapsedTime(peerConnection: any) {\r\n const startTime = peerConnection.begin;\r\n\r\n delete peerConnection.begin;\r\n\r\n return Date.now() - startTime;\r\n }\r\n\r\n /**\r\n * creates offer and generates localSDP\r\n * @param {object} clusterList cluster List\r\n * @returns {Promise} Reachability latency results\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private getLocalSDPForClusters(clusterList: object) {\r\n let clusters: any[] = [...Object.keys(clusterList)];\r\n\r\n clusters = clusters.map(async (key) => {\r\n const cluster = clusterList[key];\r\n const config = this.buildPeerConnectionConfig(cluster);\r\n const peerConnection = this.createPeerConnection({key, config});\r\n const description = await peerConnection.createOffer({offerToReceiveAudio: true});\r\n\r\n // @ts-ignore\r\n peerConnection.begin = Date.now();\r\n peerConnection.setLocalDescription(description);\r\n\r\n return this.iceGatheringState(\r\n peerConnection,\r\n cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT\r\n ).catch((iceGatheringStateError) => {\r\n LoggerProxy.logger.log(\r\n `Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ${iceGatheringStateError}`\r\n );\r\n });\r\n });\r\n\r\n return Promise.all(clusters)\r\n .then(this.parseIceResultsToReachabilityResults)\r\n .then((reachabilityLatencyResults) => {\r\n this.logUnreachableClusters();\r\n\r\n // return results\r\n return reachabilityLatencyResults;\r\n });\r\n }\r\n\r\n /**\r\n * Get list of all unreachable clusters\r\n * @returns {array} Unreachable clusters\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private getUnreachablClusters() {\r\n const unreachableList = [];\r\n const clusters = this.clusterLatencyResults;\r\n\r\n Object.keys(clusters).forEach((key) => {\r\n const cluster = clusters[key];\r\n\r\n if (cluster.unreachable && !cluster.reachable) {\r\n unreachableList.push(key);\r\n }\r\n });\r\n\r\n return unreachableList;\r\n }\r\n\r\n /**\r\n * Attach an event handler for the icegatheringstatechange\r\n * event and measure latency.\r\n * @param {RTCPeerConnection} peerConnection\r\n * @returns {undefined}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private handleIceGatheringStateChange(peerConnection: RTCPeerConnection) {\r\n peerConnection.onicegatheringstatechange = () => {\r\n const {COMPLETE} = ICE_GATHERING_STATE;\r\n\r\n if (peerConnection.iceConnectionState === COMPLETE) {\r\n const elapsed = this.getElapsedTime(peerConnection);\r\n\r\n // @ts-ignore\r\n LoggerProxy.logger.log(\r\n // @ts-ignore\r\n `Reachability:index#onIceGatheringStateChange --> Successfully pinged ${peerConnection.key}:`,\r\n elapsed\r\n );\r\n this.setLatencyAndClose(peerConnection, elapsed);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Attach an event handler for the icecandidate\r\n * event and measure latency.\r\n * @param {RTCPeerConnection} peerConnection\r\n * @returns {undefined}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private handleOnIceCandidate(peerConnection: RTCPeerConnection) {\r\n peerConnection.onicecandidate = (e) => {\r\n const SERVER_REFLEXIVE = 'srflx';\r\n\r\n if (e.candidate && String(e.candidate.type).toLowerCase() === SERVER_REFLEXIVE) {\r\n const elapsed = this.getElapsedTime(peerConnection);\r\n\r\n LoggerProxy.logger.log(\r\n // @ts-ignore\r\n `Reachability:index#onIceCandidate --> Successfully pinged ${peerConnection.key}:`,\r\n elapsed\r\n );\r\n this.setLatencyAndClose(peerConnection, elapsed);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * An event handler on an RTCPeerConnection when the state of the ICE\r\n * candidate gathering process changes. Used to measure connection\r\n * speed.\r\n * @private\r\n * @param {RTCPeerConnection} peerConnection\r\n * @param {number} timeout\r\n * @returns {Promise}\r\n */\r\n private iceGatheringState(peerConnection: RTCPeerConnection, timeout: number) {\r\n const ELAPSED = 'elapsed';\r\n\r\n return new Promise((resolve) => {\r\n const peerConnectionProxy = new window.Proxy(peerConnection, {\r\n get(target, property) {\r\n const targetMember = target[property];\r\n\r\n if (typeof targetMember === 'function') {\r\n return targetMember.bind(target);\r\n }\r\n\r\n return targetMember;\r\n },\r\n set: (target, property, value) => {\r\n // only intercept elapsed property\r\n if (property === ELAPSED) {\r\n // @ts-ignore\r\n resolve({clusterId: peerConnection.key, elapsed: value});\r\n\r\n return true;\r\n }\r\n\r\n // pass thru\r\n return window.Reflect.set(target, property, value);\r\n },\r\n });\r\n\r\n // Using peerConnection proxy so handle functions below\r\n // won't be coupled to our promise implementation\r\n this.handleIceGatheringStateChange(peerConnectionProxy);\r\n this.handleOnIceCandidate(peerConnectionProxy);\r\n\r\n // Set maximum timeout\r\n window.setTimeout(() => {\r\n const {CLOSED} = CONNECTION_STATE;\r\n\r\n // Close any open peerConnections\r\n if (peerConnectionProxy.connectionState !== CLOSED) {\r\n this.setLatencyAndClose(peerConnectionProxy, null);\r\n }\r\n }, timeout);\r\n });\r\n }\r\n\r\n /**\r\n * Make a log of unreachable clusters.\r\n * @returns {undefined}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private logUnreachableClusters() {\r\n const list = this.getUnreachablClusters();\r\n\r\n list.forEach((cluster) => {\r\n LoggerProxy.logger.log(\r\n `Reachability:index#logUnreachableClusters --> No ice candidate for ${cluster}.`\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Calculates time to establish connection\r\n * @param {array} iceResults iceResults\r\n * @returns {object} reachabilityMap\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private parseIceResultsToReachabilityResults(iceResults: Array<any>) {\r\n const reachabilityMap = {};\r\n\r\n iceResults.forEach(({clusterId, elapsed}) => {\r\n let latencyResult;\r\n\r\n if (elapsed === null) {\r\n latencyResult = {reachable: 'false'};\r\n } else {\r\n latencyResult = {\r\n reachable: 'true',\r\n latencyInMilliseconds: elapsed.toString(),\r\n };\r\n }\r\n\r\n reachabilityMap[clusterId] = {\r\n udp: latencyResult,\r\n tcp: latencyResult,\r\n };\r\n });\r\n\r\n return reachabilityMap;\r\n }\r\n\r\n /**\r\n * fetches reachability data\r\n * @param {object} clusterList\r\n * @returns {Promise<localSDPData>} reachability check results\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private performReachabilityCheck(clusterList: object) {\r\n if (!clusterList || !Object.keys(clusterList).length) {\r\n return Promise.resolve({});\r\n }\r\n\r\n return new Promise((resolve) => {\r\n this.getLocalSDPForClusters(clusterList)\r\n .then((localSDPData) => {\r\n if (!localSDPData || !Object.keys(localSDPData).length) {\r\n // TODO: handle the error condition properly and try retry\r\n LoggerProxy.logger.log(\r\n 'Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning'\r\n );\r\n resolve({});\r\n } else {\r\n resolve(localSDPData);\r\n }\r\n })\r\n .catch((error) => {\r\n LoggerProxy.logger.error(\r\n `Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ${error}`\r\n );\r\n resolve({});\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Records latency and closes the peerConnection\r\n * @param {RTCPeerConnection} peerConnection\r\n * @param {number} elapsed Latency in milliseconds\r\n * @returns {undefined}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private setLatencyAndClose(peerConnection: RTCPeerConnection, elapsed: number) {\r\n const REACHABLE = 'reachable';\r\n const UNREACHABLE = 'unreachable';\r\n const {CLOSED} = CONNECTION_STATE;\r\n // @ts-ignore\r\n const {key} = peerConnection;\r\n const resultKey = elapsed === null ? UNREACHABLE : REACHABLE;\r\n const intialState = {[REACHABLE]: 0, [UNREACHABLE]: 0};\r\n\r\n if (peerConnection.connectionState === CLOSED) {\r\n LoggerProxy.logger.log(\r\n `Reachability:index#setLatencyAndClose --> Attempting to set latency of ${elapsed} on closed peerConnection.`\r\n );\r\n\r\n return;\r\n }\r\n\r\n this.clusterLatencyResults[key] = this.clusterLatencyResults[key] || intialState;\r\n this.clusterLatencyResults[key][resultKey] += 1;\r\n\r\n // Set to null in case this fired from\r\n // an event other than onIceCandidate\r\n peerConnection.onicecandidate = null;\r\n peerConnection.close();\r\n // @ts-ignore\r\n peerConnection.elapsed = elapsed;\r\n }\r\n\r\n /**\r\n * utility function\r\n * @returns {undefined}\r\n * @private\r\n * @memberof Reachability\r\n */\r\n private setup() {\r\n this.clusterLatencyResults = {};\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,35 +1,35 @@
1
- export interface ClusterNode {
2
- isVideoMesh: boolean;
3
- udp: Array<string>;
4
- tcp: Array<string>;
5
- xtls: Array<string>;
6
- }
7
- export type ClusterList = {
8
- [key: string]: ClusterNode;
9
- };
10
- /**
11
- * @class ReachabilityRequest
12
- */
13
- declare class ReachabilityRequest {
14
- webex: any;
15
- /**
16
- * Creates an instance of ReachabilityRequest.
17
- * @param {object} webex
18
- * @memberof ReachabilityRequest
19
- */
20
- constructor(webex: object);
21
- /**
22
- * gets the cluster information
23
- *
24
- * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
25
- * @returns {Promise}
26
- */
27
- getClusters: () => Promise<ClusterList>;
28
- /**
29
- * gets remote SDP For Clusters
30
- * @param {Object} localSDPList localSDPs for the cluster
31
- * @returns {Object}
32
- */
33
- remoteSDPForClusters: (localSDPList: object) => any;
34
- }
35
- export default ReachabilityRequest;
1
+ export interface ClusterNode {
2
+ isVideoMesh: boolean;
3
+ udp: Array<string>;
4
+ tcp: Array<string>;
5
+ xtls: Array<string>;
6
+ }
7
+ export type ClusterList = {
8
+ [key: string]: ClusterNode;
9
+ };
10
+ /**
11
+ * @class ReachabilityRequest
12
+ */
13
+ declare class ReachabilityRequest {
14
+ webex: any;
15
+ /**
16
+ * Creates an instance of ReachabilityRequest.
17
+ * @param {object} webex
18
+ * @memberof ReachabilityRequest
19
+ */
20
+ constructor(webex: object);
21
+ /**
22
+ * gets the cluster information
23
+ *
24
+ * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
25
+ * @returns {Promise}
26
+ */
27
+ getClusters: () => Promise<ClusterList>;
28
+ /**
29
+ * gets remote SDP For Clusters
30
+ * @param {Object} localSDPList localSDPs for the cluster
31
+ * @returns {Object}
32
+ */
33
+ remoteSDPForClusters: (localSDPList: object) => any;
34
+ }
35
+ export default ReachabilityRequest;
@@ -13,24 +13,24 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
14
14
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
15
15
  var _constants = require("../constants");
16
- /**
17
- * @class ReachabilityRequest
16
+ /**
17
+ * @class ReachabilityRequest
18
18
  */
19
19
  var ReachabilityRequest = /*#__PURE__*/(0, _createClass2.default)(
20
- /**
21
- * Creates an instance of ReachabilityRequest.
22
- * @param {object} webex
23
- * @memberof ReachabilityRequest
20
+ /**
21
+ * Creates an instance of ReachabilityRequest.
22
+ * @param {object} webex
23
+ * @memberof ReachabilityRequest
24
24
  */
25
25
  function ReachabilityRequest(webex) {
26
26
  var _this = this;
27
27
  (0, _classCallCheck2.default)(this, ReachabilityRequest);
28
28
  (0, _defineProperty2.default)(this, "webex", void 0);
29
- /**
30
- * gets the cluster information
31
- *
32
- * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
33
- * @returns {Promise}
29
+ /**
30
+ * gets the cluster information
31
+ *
32
+ * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
33
+ * @returns {Promise}
34
34
  */
35
35
  (0, _defineProperty2.default)(this, "getClusters", function () {
36
36
  return _this.webex.request({
@@ -48,10 +48,10 @@ function ReachabilityRequest(webex) {
48
48
  return clusters;
49
49
  });
50
50
  });
51
- /**
52
- * gets remote SDP For Clusters
53
- * @param {Object} localSDPList localSDPs for the cluster
54
- * @returns {Object}
51
+ /**
52
+ * gets remote SDP For Clusters
53
+ * @param {Object} localSDPList localSDPs for the cluster
54
+ * @returns {Object}
55
55
  */
56
56
  (0, _defineProperty2.default)(this, "remoteSDPForClusters", function (localSDPList) {
57
57
  return _this.webex.request({
@@ -1 +1 @@
1
- {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_constants","ReachabilityRequest","_createClass2","default","webex","_this","_classCallCheck2","_defineProperty2","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","then","res","clusters","body","_keys","forEach","key","_res$body$clusterClas","_res$body$clusterClas2","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","concat","_stringify","localSDPList","POST","REACHABILITY","offers","_default","exports"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, RESOURCE, API} from '../constants';\n\nexport interface ClusterNode {\n isVideoMesh: boolean;\n udp: Array<string>;\n tcp: Array<string>;\n xtls: Array<string>;\n}\n\nexport type ClusterList = {\n [key: string]: ClusterNode;\n};\n\n/**\n * @class ReachabilityRequest\n */\nclass ReachabilityRequest {\n webex: any;\n\n /**\n * Creates an instance of ReachabilityRequest.\n * @param {object} webex\n * @memberof ReachabilityRequest\n */\n constructor(webex: object) {\n this.webex = webex;\n }\n\n /**\n * gets the cluster information\n *\n * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not\n * @returns {Promise}\n */\n getClusters = (): Promise<ClusterList> =>\n this.webex\n .request({\n method: HTTP_VERBS.GET,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.CLUSTERS,\n })\n .then((res) => {\n const {clusters} = res.body;\n\n Object.keys(clusters).forEach((key) => {\n clusters[key].isVideoMesh = res.body.clusterClasses?.hybridMedia?.includes(key);\n });\n\n LoggerProxy.logger.log(\n `Reachability:request#getClusters --> get clusters successful:${JSON.stringify(clusters)}`\n );\n\n return clusters;\n });\n\n /**\n * gets remote SDP For Clusters\n * @param {Object} localSDPList localSDPs for the cluster\n * @returns {Object}\n */\n remoteSDPForClusters = (localSDPList: object) =>\n this.webex\n .request({\n method: HTTP_VERBS.POST,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.REACHABILITY,\n body: {offers: localSDPList},\n })\n .then((res) => {\n LoggerProxy.logger.log(\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\n );\n\n return res.body;\n });\n}\n\nexport default ReachabilityRequest;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAaA;AACA;AACA;AAFA,IAGME,mBAAmB,oBAAAC,aAAA,CAAAC,OAAA;AAGvB;AACF;AACA;AACA;AACA;AACE,SAAAF,oBAAYG,KAAa,EAAE;EAAA,IAAAC,KAAA;EAAA,IAAAC,gBAAA,CAAAH,OAAA,QAAAF,mBAAA;EAAA,IAAAM,gBAAA,CAAAJ,OAAA;EAI3B;AACF;AACA;AACA;AACA;AACA;EALE,IAAAI,gBAAA,CAAAJ,OAAA,uBAMc;IAAA,OACZE,KAAI,CAACD,KAAK,CACPI,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACC;IACrB,CAAC,CAAC,CACDC,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,IAAOC,QAAQ,GAAID,GAAG,CAACE,IAAI,CAApBD,QAAQ;MAEf,IAAAE,KAAA,CAAApB,OAAA,EAAYkB,QAAQ,CAAC,CAACG,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA,IAAAC,qBAAA,EAAAC,sBAAA;QACrCN,QAAQ,CAACI,GAAG,CAAC,CAACG,WAAW,IAAAF,qBAAA,GAAGN,GAAG,CAACE,IAAI,CAACO,cAAc,cAAAH,qBAAA,wBAAAC,sBAAA,GAAvBD,qBAAA,CAAyBI,WAAW,cAAAH,sBAAA,uBAApCA,sBAAA,CAAsCI,QAAQ,CAACN,GAAG,CAAC;MACjF,CAAC,CAAC;MAEFO,oBAAW,CAACC,MAAM,CAACC,GAAG,iEAAAC,MAAA,CAC4C,IAAAC,UAAA,CAAAjC,OAAA,EAAekB,QAAQ,CAAC,EACzF;MAED,OAAOA,QAAQ;IACjB,CAAC,CAAC;EAAA;EAEN;AACF;AACA;AACA;AACA;EAJE,IAAAd,gBAAA,CAAAJ,OAAA,gCAKuB,UAACkC,YAAoB;IAAA,OAC1ChC,KAAI,CAACD,KAAK,CACPI,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAAC4B,IAAI;MACvB1B,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACsB,YAAY;MAC/BjB,IAAI,EAAE;QAACkB,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDlB,IAAI,CAAC,UAACC,GAAG,EAAK;MACbY,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EAA6E,CAC9E;MAED,OAAOd,GAAG,CAACE,IAAI;IACjB,CAAC,CAAC;EAAA;EAnDJ,IAAI,CAAClB,KAAK,GAAGA,KAAK;AACpB,CAAC;AAAA,IAAAqC,QAAA,GAqDYxC,mBAAmB;AAAAyC,OAAA,CAAAvC,OAAA,GAAAsC,QAAA"}
1
+ {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_constants","ReachabilityRequest","_createClass2","default","webex","_this","_classCallCheck2","_defineProperty2","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","then","res","clusters","body","_keys","forEach","key","_res$body$clusterClas","_res$body$clusterClas2","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","concat","_stringify","localSDPList","POST","REACHABILITY","offers","_default","exports"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\r\nimport {HTTP_VERBS, RESOURCE, API} from '../constants';\r\n\r\nexport interface ClusterNode {\r\n isVideoMesh: boolean;\r\n udp: Array<string>;\r\n tcp: Array<string>;\r\n xtls: Array<string>;\r\n}\r\n\r\nexport type ClusterList = {\r\n [key: string]: ClusterNode;\r\n};\r\n\r\n/**\r\n * @class ReachabilityRequest\r\n */\r\nclass ReachabilityRequest {\r\n webex: any;\r\n\r\n /**\r\n * Creates an instance of ReachabilityRequest.\r\n * @param {object} webex\r\n * @memberof ReachabilityRequest\r\n */\r\n constructor(webex: object) {\r\n this.webex = webex;\r\n }\r\n\r\n /**\r\n * gets the cluster information\r\n *\r\n * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not\r\n * @returns {Promise}\r\n */\r\n getClusters = (): Promise<ClusterList> =>\r\n this.webex\r\n .request({\r\n method: HTTP_VERBS.GET,\r\n shouldRefreshAccessToken: false,\r\n api: API.CALLIOPEDISCOVERY,\r\n resource: RESOURCE.CLUSTERS,\r\n })\r\n .then((res) => {\r\n const {clusters} = res.body;\r\n\r\n Object.keys(clusters).forEach((key) => {\r\n clusters[key].isVideoMesh = res.body.clusterClasses?.hybridMedia?.includes(key);\r\n });\r\n\r\n LoggerProxy.logger.log(\r\n `Reachability:request#getClusters --> get clusters successful:${JSON.stringify(clusters)}`\r\n );\r\n\r\n return clusters;\r\n });\r\n\r\n /**\r\n * gets remote SDP For Clusters\r\n * @param {Object} localSDPList localSDPs for the cluster\r\n * @returns {Object}\r\n */\r\n remoteSDPForClusters = (localSDPList: object) =>\r\n this.webex\r\n .request({\r\n method: HTTP_VERBS.POST,\r\n shouldRefreshAccessToken: false,\r\n api: API.CALLIOPEDISCOVERY,\r\n resource: RESOURCE.REACHABILITY,\r\n body: {offers: localSDPList},\r\n })\r\n .then((res) => {\r\n LoggerProxy.logger.log(\r\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\r\n );\r\n\r\n return res.body;\r\n });\r\n}\r\n\r\nexport default ReachabilityRequest;\r\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAaA;AACA;AACA;AAFA,IAGME,mBAAmB,oBAAAC,aAAA,CAAAC,OAAA;AAGvB;AACF;AACA;AACA;AACA;AACE,SAAAF,oBAAYG,KAAa,EAAE;EAAA,IAAAC,KAAA;EAAA,IAAAC,gBAAA,CAAAH,OAAA,QAAAF,mBAAA;EAAA,IAAAM,gBAAA,CAAAJ,OAAA;EAI3B;AACF;AACA;AACA;AACA;AACA;EALE,IAAAI,gBAAA,CAAAJ,OAAA,uBAMc;IAAA,OACZE,KAAI,CAACD,KAAK,CACPI,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACC;IACrB,CAAC,CAAC,CACDC,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,IAAOC,QAAQ,GAAID,GAAG,CAACE,IAAI,CAApBD,QAAQ;MAEf,IAAAE,KAAA,CAAApB,OAAA,EAAYkB,QAAQ,CAAC,CAACG,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA,IAAAC,qBAAA,EAAAC,sBAAA;QACrCN,QAAQ,CAACI,GAAG,CAAC,CAACG,WAAW,IAAAF,qBAAA,GAAGN,GAAG,CAACE,IAAI,CAACO,cAAc,cAAAH,qBAAA,wBAAAC,sBAAA,GAAvBD,qBAAA,CAAyBI,WAAW,cAAAH,sBAAA,uBAApCA,sBAAA,CAAsCI,QAAQ,CAACN,GAAG,CAAC;MACjF,CAAC,CAAC;MAEFO,oBAAW,CAACC,MAAM,CAACC,GAAG,iEAAAC,MAAA,CAC4C,IAAAC,UAAA,CAAAjC,OAAA,EAAekB,QAAQ,CAAC,EACzF;MAED,OAAOA,QAAQ;IACjB,CAAC,CAAC;EAAA;EAEN;AACF;AACA;AACA;AACA;EAJE,IAAAd,gBAAA,CAAAJ,OAAA,gCAKuB,UAACkC,YAAoB;IAAA,OAC1ChC,KAAI,CAACD,KAAK,CACPI,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAAC4B,IAAI;MACvB1B,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACsB,YAAY;MAC/BjB,IAAI,EAAE;QAACkB,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDlB,IAAI,CAAC,UAACC,GAAG,EAAK;MACbY,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EAA6E,CAC9E;MAED,OAAOd,GAAG,CAACE,IAAI;IACjB,CAAC,CAAC;EAAA;EAnDJ,IAAI,CAAClB,KAAK,GAAGA,KAAK;AACpB,CAAC;AAAA,IAAAqC,QAAA,GAqDYxC,mBAAmB;AAAAyC,OAAA,CAAAvC,OAAA,GAAAsC,QAAA"}
@@ -1,4 +1,4 @@
1
- import { Reaction, ReactionType, SkinTone, SkinToneType } from './reactions.type';
2
- declare const Reactions: Record<ReactionType, Reaction>;
3
- declare const SkinTones: Record<SkinToneType, SkinTone>;
4
- export { Reactions, SkinTones };
1
+ import { Reaction, ReactionType, SkinTone, SkinToneType } from './reactions.type';
2
+ declare const Reactions: Record<ReactionType, Reaction>;
3
+ declare const SkinTones: Record<SkinToneType, SkinTone>;
4
+ export { Reactions, SkinTones };