@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.200

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