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