@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.21
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 +4 -18
- 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 +2 -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,31 +1,19 @@
|
|
|
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 _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/taggedTemplateLiteral"));
|
|
14
|
-
|
|
15
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
16
|
-
|
|
17
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
18
|
-
|
|
19
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
20
|
-
|
|
21
13
|
var _difference2 = _interopRequireDefault(require("lodash/difference"));
|
|
22
|
-
|
|
23
14
|
var _queue = _interopRequireDefault(require("../common/queue"));
|
|
24
|
-
|
|
25
15
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
26
|
-
|
|
27
16
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
28
|
-
|
|
29
17
|
/**
|
|
30
18
|
* Locus Delta Parser
|
|
31
19
|
* @private
|
|
@@ -33,6 +21,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
|
|
|
33
21
|
*/
|
|
34
22
|
var Parser = /*#__PURE__*/function () {
|
|
35
23
|
// processing status
|
|
24
|
+
|
|
36
25
|
// loci comparison states
|
|
37
26
|
|
|
38
27
|
/**
|
|
@@ -40,11 +29,15 @@ var Parser = /*#__PURE__*/function () {
|
|
|
40
29
|
*/
|
|
41
30
|
function Parser() {
|
|
42
31
|
(0, _classCallCheck2.default)(this, Parser);
|
|
32
|
+
(0, _defineProperty2.default)(this, "queue", void 0);
|
|
33
|
+
(0, _defineProperty2.default)(this, "workingCopy", void 0);
|
|
43
34
|
this.queue = new _queue.default();
|
|
35
|
+
// @ts-ignore - This is declared as static class member and again being initialized here from same
|
|
44
36
|
this.status = Parser.status.IDLE;
|
|
45
37
|
this.onDeltaAction = null;
|
|
46
38
|
this.workingCopy = null;
|
|
47
39
|
}
|
|
40
|
+
|
|
48
41
|
/**
|
|
49
42
|
* Checks if two sequences overlap in time,
|
|
50
43
|
* the sequence with the higher minimum value is greater.
|
|
@@ -53,8 +46,6 @@ var Parser = /*#__PURE__*/function () {
|
|
|
53
46
|
* @param {Types~Locus} incoming
|
|
54
47
|
* @returns {string} loci comparison state
|
|
55
48
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
49
|
(0, _createClass2.default)(Parser, [{
|
|
59
50
|
key: "isValidLocus",
|
|
60
51
|
value:
|
|
@@ -65,32 +56,30 @@ var Parser = /*#__PURE__*/function () {
|
|
|
65
56
|
*/
|
|
66
57
|
function isValidLocus(newLoci) {
|
|
67
58
|
var _this = this;
|
|
68
|
-
|
|
69
59
|
var isValid = false;
|
|
70
60
|
var IDLE = Parser.status.IDLE;
|
|
71
61
|
var isLoci = Parser.isLoci;
|
|
72
|
-
|
|
62
|
+
// @ts-ignore
|
|
73
63
|
var setStatus = function setStatus(status) {
|
|
64
|
+
// @ts-ignore
|
|
74
65
|
_this.status = status;
|
|
75
|
-
};
|
|
76
|
-
|
|
66
|
+
};
|
|
77
67
|
|
|
68
|
+
// one or both objects are not locus delta events
|
|
78
69
|
if (!isLoci(this.workingCopy) || !isLoci(newLoci)) {
|
|
79
70
|
setStatus(IDLE);
|
|
80
|
-
|
|
81
71
|
_loggerProxy.default.logger.info('Locus-info:parser#processDeltaEvent --> Ignoring non-locus object. workingCopy:', this.workingCopy, 'newLoci:', newLoci);
|
|
82
72
|
} else {
|
|
83
73
|
isValid = true;
|
|
84
74
|
}
|
|
85
|
-
|
|
86
75
|
return isValid;
|
|
87
76
|
}
|
|
77
|
+
|
|
88
78
|
/**
|
|
89
79
|
* Determines if a paricular locus's sequence is empty
|
|
90
80
|
* @param {Types~Locus} locus
|
|
91
81
|
* @returns {bool}
|
|
92
82
|
*/
|
|
93
|
-
|
|
94
83
|
}, {
|
|
95
84
|
key: "nextEvent",
|
|
96
85
|
value:
|
|
@@ -100,19 +89,21 @@ var Parser = /*#__PURE__*/function () {
|
|
|
100
89
|
* @returns {undefined}
|
|
101
90
|
*/
|
|
102
91
|
function nextEvent() {
|
|
92
|
+
// @ts-ignore
|
|
103
93
|
if (this.status === Parser.status.PAUSED) {
|
|
104
94
|
_loggerProxy.default.logger.info('Locus-info:parser#nextEvent --> Locus parser paused.');
|
|
105
|
-
|
|
106
95
|
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
96
|
+
}
|
|
109
97
|
|
|
98
|
+
// continue processing until queue is empty
|
|
110
99
|
if (this.queue.size() > 0) {
|
|
111
100
|
this.processDeltaEvent();
|
|
112
101
|
} else {
|
|
102
|
+
// @ts-ignore
|
|
113
103
|
this.status = Parser.status.IDLE;
|
|
114
104
|
}
|
|
115
105
|
}
|
|
106
|
+
|
|
116
107
|
/**
|
|
117
108
|
* Function handler for delta actions,
|
|
118
109
|
* is set by instance callee.
|
|
@@ -121,36 +112,37 @@ var Parser = /*#__PURE__*/function () {
|
|
|
121
112
|
* @returns {undefined}
|
|
122
113
|
*/
|
|
123
114
|
// eslint-disable-next-line no-unused-vars
|
|
124
|
-
|
|
125
115
|
}, {
|
|
126
116
|
key: "onDeltaAction",
|
|
127
117
|
value: function onDeltaAction(action, locus) {}
|
|
118
|
+
|
|
128
119
|
/**
|
|
129
120
|
* Event handler for locus delta events
|
|
130
121
|
* @param {Types~Locus} loci Locus Delta
|
|
131
122
|
* @returns {undefined}
|
|
132
123
|
*/
|
|
133
|
-
|
|
134
124
|
}, {
|
|
135
125
|
key: "onDeltaEvent",
|
|
136
126
|
value: function onDeltaEvent(loci) {
|
|
137
127
|
// enqueue the new loci
|
|
138
|
-
this.queue.enqueue(loci);
|
|
128
|
+
this.queue.enqueue(loci);
|
|
129
|
+
// start processing events in the queue if idle
|
|
139
130
|
// and a function handler is defined
|
|
140
|
-
|
|
131
|
+
// @ts-ignore
|
|
141
132
|
if (this.status === Parser.status.IDLE && this.onDeltaAction) {
|
|
142
133
|
// Update status, ensure we only process one event at a time.
|
|
134
|
+
// @ts-ignore
|
|
143
135
|
this.status = Parser.status.WORKING;
|
|
144
136
|
this.processDeltaEvent();
|
|
145
137
|
}
|
|
146
138
|
}
|
|
139
|
+
|
|
147
140
|
/**
|
|
148
141
|
* Appends new data onto a string of existing data.
|
|
149
142
|
* @param {string} newData
|
|
150
143
|
* @param {string} oldData
|
|
151
144
|
* @returns {string}
|
|
152
145
|
*/
|
|
153
|
-
|
|
154
146
|
}, {
|
|
155
147
|
key: "pause",
|
|
156
148
|
value:
|
|
@@ -159,36 +151,34 @@ var Parser = /*#__PURE__*/function () {
|
|
|
159
151
|
* @returns {undefined}
|
|
160
152
|
*/
|
|
161
153
|
function pause() {
|
|
154
|
+
// @ts-ignore
|
|
162
155
|
this.status = Parser.status.PAUSED;
|
|
163
|
-
|
|
164
156
|
_loggerProxy.default.logger.info('Locus-info:parser#pause --> Locus parser paused.');
|
|
165
157
|
}
|
|
158
|
+
|
|
166
159
|
/**
|
|
167
160
|
* Processes next locus delta in the queue,
|
|
168
161
|
* continues until the queue is empty
|
|
169
162
|
* or cleared.
|
|
170
163
|
* @returns {undefined}
|
|
171
164
|
*/
|
|
172
|
-
|
|
173
165
|
}, {
|
|
174
166
|
key: "processDeltaEvent",
|
|
175
167
|
value: function processDeltaEvent() {
|
|
176
168
|
var _Parser$loci = Parser.loci,
|
|
177
|
-
|
|
178
|
-
|
|
169
|
+
DESYNC = _Parser$loci.DESYNC,
|
|
170
|
+
USE_INCOMING = _Parser$loci.USE_INCOMING;
|
|
179
171
|
var extract = Parser.extractComparisonState;
|
|
180
172
|
var newLoci = this.queue.dequeue();
|
|
181
|
-
|
|
182
173
|
if (!this.isValidLocus(newLoci)) {
|
|
183
174
|
return;
|
|
184
175
|
}
|
|
185
|
-
|
|
186
176
|
var result = Parser.compare(this.workingCopy, newLoci);
|
|
187
|
-
var lociComparison = extract(result);
|
|
188
|
-
// for full debugging.
|
|
177
|
+
var lociComparison = extract(result);
|
|
189
178
|
|
|
179
|
+
// limited debugging, use chrome extension
|
|
180
|
+
// for full debugging.
|
|
190
181
|
_loggerProxy.default.logger.debug("Locus-info:parser#processDeltaEvent --> Locus Debug: ".concat(result));
|
|
191
|
-
|
|
192
182
|
if (lociComparison === DESYNC) {
|
|
193
183
|
// wait for desync response
|
|
194
184
|
this.pause();
|
|
@@ -198,52 +188,54 @@ var Parser = /*#__PURE__*/function () {
|
|
|
198
188
|
// and here when USE_INCOMING locus.
|
|
199
189
|
this.workingCopy = newLoci;
|
|
200
190
|
}
|
|
201
|
-
|
|
202
191
|
if (this.onDeltaAction) {
|
|
203
192
|
_loggerProxy.default.logger.info("Locus-info:parser#processDeltaEvent --> Locus Delta Action: ".concat(lociComparison));
|
|
204
193
|
|
|
194
|
+
// eslint-disable-next-line no-useless-call
|
|
205
195
|
this.onDeltaAction.call(this, lociComparison, newLoci);
|
|
206
196
|
}
|
|
207
|
-
|
|
208
197
|
this.nextEvent();
|
|
209
198
|
}
|
|
199
|
+
|
|
210
200
|
/**
|
|
211
201
|
* Resume from a paused state
|
|
212
202
|
* @returns {undefined}
|
|
213
203
|
*/
|
|
214
|
-
|
|
215
204
|
}, {
|
|
216
205
|
key: "resume",
|
|
217
206
|
value: function resume() {
|
|
218
207
|
_loggerProxy.default.logger.info('Locus-info:parser#resume --> Locus parser resumed.');
|
|
219
|
-
|
|
208
|
+
// @ts-ignore
|
|
220
209
|
this.status = Parser.status.WORKING;
|
|
221
210
|
this.nextEvent();
|
|
222
211
|
}
|
|
212
|
+
|
|
223
213
|
/**
|
|
224
214
|
* Gets related debug info for given error code
|
|
225
215
|
* @param {string} debugCode Debug code
|
|
226
216
|
* @param {string} comparison Locus comparison string
|
|
227
217
|
* @returns {object} Debug message
|
|
228
218
|
*/
|
|
229
|
-
|
|
230
219
|
}], [{
|
|
231
220
|
key: "checkSequenceOverlap",
|
|
232
221
|
value: function checkSequenceOverlap(current, incoming) {
|
|
233
|
-
var comparison = null;
|
|
222
|
+
var comparison = null;
|
|
234
223
|
|
|
224
|
+
// if earliest working copy sequence is more recent than last incoming sequence
|
|
235
225
|
if (current.min > incoming.max) {
|
|
236
226
|
// choose left side (current)
|
|
237
227
|
comparison = "".concat(Parser.loci.GT, ":SO001");
|
|
238
|
-
}
|
|
228
|
+
}
|
|
229
|
+
// if last working copy sequence is before the earliest incoming sequence
|
|
239
230
|
else if (current.max < incoming.min) {
|
|
240
231
|
// choose right side (incoming)
|
|
241
232
|
comparison = "".concat(Parser.loci.LT, ":SO002");
|
|
242
|
-
}
|
|
243
|
-
|
|
233
|
+
}
|
|
244
234
|
|
|
235
|
+
// if no match above, defaults to null
|
|
245
236
|
return comparison;
|
|
246
237
|
}
|
|
238
|
+
|
|
247
239
|
/**
|
|
248
240
|
* Checks if two sequences have unequal ranges.
|
|
249
241
|
* Chooses sequence with most larger range.
|
|
@@ -251,7 +243,6 @@ var Parser = /*#__PURE__*/function () {
|
|
|
251
243
|
* @param {Types~Locus} incoming
|
|
252
244
|
* @returns {object} loci comparison
|
|
253
245
|
*/
|
|
254
|
-
|
|
255
246
|
}, {
|
|
256
247
|
key: "checkUnequalRanges",
|
|
257
248
|
value: function checkUnequalRanges(current, incoming) {
|
|
@@ -259,14 +250,16 @@ var Parser = /*#__PURE__*/function () {
|
|
|
259
250
|
var currentIsNotUnique = current.unique.length === 0;
|
|
260
251
|
var incomingIsNotUnique = incoming.unique.length === 0;
|
|
261
252
|
var currentTotalRange = current.end - current.min;
|
|
262
|
-
var incomingTotalRange = incoming.end - incoming.min;
|
|
253
|
+
var incomingTotalRange = incoming.end - incoming.min;
|
|
263
254
|
|
|
255
|
+
// no unique values for both loci
|
|
264
256
|
if (currentIsNotUnique && incomingIsNotUnique) {
|
|
265
257
|
// current working copy loci has a larger range
|
|
266
258
|
if (currentTotalRange > incomingTotalRange) {
|
|
267
259
|
// choose left side (current)
|
|
268
260
|
comparison = "".concat(Parser.loci.GT, ":UR001");
|
|
269
|
-
}
|
|
261
|
+
}
|
|
262
|
+
// incoming delta loci has a larger range
|
|
270
263
|
else if (currentTotalRange < incomingTotalRange) {
|
|
271
264
|
// choose right side (incoming)
|
|
272
265
|
comparison = "".concat(Parser.loci.LT, ":UR002");
|
|
@@ -276,9 +269,9 @@ var Parser = /*#__PURE__*/function () {
|
|
|
276
269
|
comparison = "".concat(Parser.loci.EQ, ":UR003");
|
|
277
270
|
}
|
|
278
271
|
}
|
|
279
|
-
|
|
280
272
|
return comparison;
|
|
281
273
|
}
|
|
274
|
+
|
|
282
275
|
/**
|
|
283
276
|
* Checks if either sequences has unique entries.
|
|
284
277
|
* Entries are considered unique if they do not overlap
|
|
@@ -288,25 +281,26 @@ var Parser = /*#__PURE__*/function () {
|
|
|
288
281
|
* @param {Types~Locus} incoming
|
|
289
282
|
* @returns {string} loci comparison state
|
|
290
283
|
*/
|
|
291
|
-
|
|
292
284
|
}, {
|
|
293
285
|
key: "checkForUniqueEntries",
|
|
294
286
|
value: function checkForUniqueEntries(current, incoming) {
|
|
295
287
|
var comparison = null;
|
|
296
288
|
var currentIsUnique = current.unique.length > 0;
|
|
297
|
-
var incomingIsUnique = incoming.unique.length > 0;
|
|
289
|
+
var incomingIsUnique = incoming.unique.length > 0;
|
|
298
290
|
|
|
291
|
+
// current has unique entries and incoming does not
|
|
299
292
|
if (currentIsUnique && !incomingIsUnique) {
|
|
300
293
|
// choose left side (current)
|
|
301
294
|
comparison = "".concat(Parser.loci.GT, ":UE001");
|
|
302
|
-
}
|
|
295
|
+
}
|
|
296
|
+
// current has no unique entries but incoming does
|
|
303
297
|
else if (!currentIsUnique && incomingIsUnique) {
|
|
304
298
|
// choose right side (incoming)
|
|
305
299
|
comparison = "".concat(Parser.loci.LT, ":UE002");
|
|
306
300
|
}
|
|
307
|
-
|
|
308
301
|
return comparison;
|
|
309
302
|
}
|
|
303
|
+
|
|
310
304
|
/**
|
|
311
305
|
* Checks both Locus Delta objects to see if they are
|
|
312
306
|
* out of sync with one another. If so sends a DESYNC
|
|
@@ -315,7 +309,6 @@ var Parser = /*#__PURE__*/function () {
|
|
|
315
309
|
* @param {Types~Locus} incoming
|
|
316
310
|
* @returns {string} loci comparison state
|
|
317
311
|
*/
|
|
318
|
-
|
|
319
312
|
}, {
|
|
320
313
|
key: "checkIfOutOfSync",
|
|
321
314
|
value: function checkIfOutOfSync(current, incoming) {
|
|
@@ -325,22 +318,20 @@ var Parser = /*#__PURE__*/function () {
|
|
|
325
318
|
var currentHasNoRange = !current.start && !current.end;
|
|
326
319
|
var incomingHasNoRange = !incoming.start && !incoming.end;
|
|
327
320
|
var neitherSeqHasRange = currentHasNoRange && incomingHasNoRange;
|
|
328
|
-
|
|
329
321
|
var hasUniqOverlap = function hasUniqOverlap(list, min, max) {
|
|
330
322
|
return list.some(function (seq) {
|
|
331
323
|
return min < seq && seq < max;
|
|
332
324
|
});
|
|
333
|
-
};
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
325
|
+
};
|
|
326
|
+
// current unique entries overlap the total range of incoming
|
|
327
|
+
var currentUniqOverlap = hasUniqOverlap(current.unique, incoming.min, incoming.max);
|
|
328
|
+
// vice-versa, incoming unique entries overlap the total range of current
|
|
338
329
|
var incomingUniqOverlap = hasUniqOverlap(incoming.unique, current.min, current.max);
|
|
339
|
-
|
|
340
330
|
if (neitherSeqHasRange || currentUniqOverlap || incomingUniqOverlap) {
|
|
341
331
|
// outputs string indicating which condition occurred. ex: 0,1,0
|
|
342
|
-
var debugInfo = "".concat(+neitherSeqHasRange, ",").concat(+currentUniqOverlap, ",").concat(+incomingUniqOverlap);
|
|
332
|
+
var debugInfo = "".concat(+neitherSeqHasRange, ",").concat(+currentUniqOverlap, ",").concat(+incomingUniqOverlap);
|
|
343
333
|
|
|
334
|
+
// send DESYNC to server
|
|
344
335
|
comparison = "".concat(Parser.loci.DESYNC, ":OOS001:").concat(debugInfo);
|
|
345
336
|
} else if (currentUniqueMin > incomingUniqueMin) {
|
|
346
337
|
// choose left side (current)
|
|
@@ -349,9 +340,9 @@ var Parser = /*#__PURE__*/function () {
|
|
|
349
340
|
// choose right side (incoming)
|
|
350
341
|
comparison = "".concat(Parser.loci.LT, ":OOS003");
|
|
351
342
|
}
|
|
352
|
-
|
|
353
343
|
return comparison;
|
|
354
344
|
}
|
|
345
|
+
|
|
355
346
|
/**
|
|
356
347
|
* Compares two loci to determine which one contains the most recent state
|
|
357
348
|
* @instance
|
|
@@ -360,26 +351,23 @@ var Parser = /*#__PURE__*/function () {
|
|
|
360
351
|
* @param {Types~Locus} incoming
|
|
361
352
|
* @returns {string} loci comparison state
|
|
362
353
|
*/
|
|
363
|
-
|
|
364
354
|
}, {
|
|
365
355
|
key: "compare",
|
|
366
356
|
value: function compare(current, incoming) {
|
|
367
357
|
var isSequenceEmpty = Parser.isSequenceEmpty;
|
|
368
358
|
var extract = Parser.extractComparisonState;
|
|
369
359
|
var pack = Parser.packComparisonResult;
|
|
370
|
-
|
|
371
360
|
if (isSequenceEmpty(current) || isSequenceEmpty(incoming)) {
|
|
372
361
|
return pack(Parser.loci.USE_INCOMING, 'C001');
|
|
373
362
|
}
|
|
374
|
-
|
|
375
363
|
if (incoming.baseSequence) {
|
|
376
364
|
return pack(Parser.compareDelta(current, incoming), 'C002');
|
|
377
365
|
}
|
|
378
|
-
|
|
379
366
|
var result = Parser.compareSequence(current.sequence, incoming.sequence);
|
|
380
367
|
var action = Parser.compareToAction(extract(result));
|
|
381
368
|
return pack(action, result);
|
|
382
369
|
}
|
|
370
|
+
|
|
383
371
|
/**
|
|
384
372
|
* Compares two loci sequences (with delta params) and indicates what action
|
|
385
373
|
* to take.
|
|
@@ -390,127 +378,117 @@ var Parser = /*#__PURE__*/function () {
|
|
|
390
378
|
* @private
|
|
391
379
|
* @returns {string} loci comparison state
|
|
392
380
|
*/
|
|
393
|
-
|
|
394
381
|
}, {
|
|
395
382
|
key: "compareDelta",
|
|
396
383
|
value: function compareDelta(current, incoming) {
|
|
397
384
|
var _Parser$loci2 = Parser.loci,
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
385
|
+
LT = _Parser$loci2.LT,
|
|
386
|
+
GT = _Parser$loci2.GT,
|
|
387
|
+
EQ = _Parser$loci2.EQ,
|
|
388
|
+
DESYNC = _Parser$loci2.DESYNC,
|
|
389
|
+
USE_INCOMING = _Parser$loci2.USE_INCOMING;
|
|
403
390
|
var extract = Parser.extractComparisonState;
|
|
404
391
|
var pack = Parser.packComparisonResult;
|
|
405
392
|
var result = Parser.compareSequence(current.sequence, incoming.sequence);
|
|
406
393
|
var comparison = extract(result);
|
|
407
|
-
|
|
408
394
|
if (comparison !== LT) {
|
|
409
395
|
return pack(Parser.compareToAction(comparison), result);
|
|
410
396
|
}
|
|
411
|
-
|
|
412
397
|
comparison = Parser.compareSequence(current.sequence, incoming.baseSequence);
|
|
413
|
-
|
|
414
398
|
switch (extract(comparison)) {
|
|
415
399
|
case GT:
|
|
416
400
|
case EQ:
|
|
417
401
|
comparison = USE_INCOMING;
|
|
418
402
|
break;
|
|
419
|
-
|
|
420
403
|
default:
|
|
421
404
|
comparison = DESYNC;
|
|
422
405
|
}
|
|
423
|
-
|
|
424
406
|
return pack(comparison, result);
|
|
425
407
|
}
|
|
408
|
+
|
|
426
409
|
/**
|
|
427
410
|
* Compares Locus sequences
|
|
428
411
|
* @param {Types~Locus} current Current working copy
|
|
429
412
|
* @param {Types~Locus} incoming New Locus delta
|
|
430
413
|
* @returns {string}
|
|
431
414
|
*/
|
|
432
|
-
|
|
433
415
|
}, {
|
|
434
416
|
key: "compareSequence",
|
|
435
417
|
value: function compareSequence(current, incoming) {
|
|
436
418
|
// Locus sequence comparison rules in order of priority.
|
|
437
419
|
// https://sqbu-github.cisco.com/WebExSquared/cloud-apps/wiki/Locus-Sequence-Comparison-Algorithm
|
|
420
|
+
|
|
438
421
|
var local = Parser.getMetaData(current);
|
|
439
|
-
var delta = Parser.getMetaData(incoming);
|
|
422
|
+
var delta = Parser.getMetaData(incoming);
|
|
440
423
|
|
|
424
|
+
// update loci metadata
|
|
441
425
|
local.unique = Parser.getUniqueSequences(local, delta);
|
|
442
|
-
delta.unique = Parser.getUniqueSequences(delta, local);
|
|
443
|
-
// order matters
|
|
426
|
+
delta.unique = Parser.getUniqueSequences(delta, local);
|
|
444
427
|
|
|
428
|
+
// Locus sequence comparison rules
|
|
429
|
+
// order matters
|
|
445
430
|
var rules = [Parser.checkSequenceOverlap, Parser.checkUnequalRanges, Parser.checkForUniqueEntries, Parser.checkIfOutOfSync];
|
|
446
|
-
|
|
447
431
|
for (var _i = 0, _rules = rules; _i < _rules.length; _i++) {
|
|
448
432
|
var rule = _rules[_i];
|
|
449
433
|
// Rule only returns a value if the rule applies,
|
|
450
434
|
// otherwise returns null.
|
|
451
435
|
var result = rule(local, delta);
|
|
452
|
-
|
|
453
436
|
if (result) {
|
|
454
437
|
return result;
|
|
455
438
|
}
|
|
456
|
-
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
// error, none of rules above applied
|
|
457
442
|
// should never get here as last rule
|
|
458
443
|
// should be catch all.
|
|
459
|
-
|
|
460
|
-
|
|
461
444
|
return Parser.loci.ERROR;
|
|
462
445
|
}
|
|
446
|
+
|
|
463
447
|
/**
|
|
464
448
|
* Transates the result of a sequence comparison into an intended behavior
|
|
465
449
|
* @param {string} result
|
|
466
450
|
* @returns {string} Locus comparison action
|
|
467
451
|
*/
|
|
468
|
-
|
|
469
452
|
}, {
|
|
470
453
|
key: "compareToAction",
|
|
471
454
|
value: function compareToAction(result) {
|
|
472
455
|
var _Parser$loci3 = Parser.loci,
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
456
|
+
DESYNC = _Parser$loci3.DESYNC,
|
|
457
|
+
EQ = _Parser$loci3.EQ,
|
|
458
|
+
ERROR = _Parser$loci3.ERROR,
|
|
459
|
+
GT = _Parser$loci3.GT,
|
|
460
|
+
LT = _Parser$loci3.LT,
|
|
461
|
+
USE_CURRENT = _Parser$loci3.USE_CURRENT,
|
|
462
|
+
USE_INCOMING = _Parser$loci3.USE_INCOMING;
|
|
480
463
|
var action = ERROR;
|
|
481
|
-
|
|
482
464
|
switch (result) {
|
|
483
465
|
case EQ:
|
|
484
466
|
case GT:
|
|
485
467
|
action = USE_CURRENT;
|
|
486
468
|
break;
|
|
487
|
-
|
|
488
469
|
case LT:
|
|
489
470
|
action = USE_INCOMING;
|
|
490
471
|
break;
|
|
491
|
-
|
|
492
472
|
case DESYNC:
|
|
493
473
|
action = DESYNC;
|
|
494
474
|
break;
|
|
495
|
-
|
|
496
475
|
default:
|
|
497
476
|
_loggerProxy.default.logger.info("Locus-info:parser#compareToAction --> Error: ".concat(result, " is not a recognized sequence comparison result."));
|
|
498
|
-
|
|
499
477
|
}
|
|
500
|
-
|
|
501
478
|
return action;
|
|
502
479
|
}
|
|
480
|
+
|
|
503
481
|
/**
|
|
504
482
|
* Extracts a loci comparison from a string of data.
|
|
505
483
|
* @param {string} lociComparisonResult Comparison result with extra data
|
|
506
484
|
* @returns {string} Comparison of EQ, LT, GT, or DESYNC.
|
|
507
485
|
*/
|
|
508
|
-
|
|
509
486
|
}, {
|
|
510
487
|
key: "extractComparisonState",
|
|
511
488
|
value: function extractComparisonState(lociComparisonResult) {
|
|
512
489
|
return lociComparisonResult.split(':')[0];
|
|
513
490
|
}
|
|
491
|
+
|
|
514
492
|
/**
|
|
515
493
|
* @typedef {object} LociMetadata
|
|
516
494
|
* @property {number} start - Starting sequence number
|
|
@@ -527,17 +505,18 @@ var Parser = /*#__PURE__*/function () {
|
|
|
527
505
|
* @param {Array.<number>} sequence Locus delta sequence
|
|
528
506
|
* @returns {LociMetadata} Locus Delta Metadata
|
|
529
507
|
*/
|
|
530
|
-
|
|
531
508
|
}, {
|
|
532
509
|
key: "getMetaData",
|
|
533
510
|
value: function getMetaData(sequence) {
|
|
534
511
|
var entries = sequence.entries;
|
|
535
512
|
var first = entries[0];
|
|
536
|
-
var last = entries.slice(-1)[0];
|
|
513
|
+
var last = entries.slice(-1)[0];
|
|
537
514
|
|
|
515
|
+
// rangeStart or rangeEnd is 0 if a range doesn't exist
|
|
538
516
|
var start = sequence.rangeStart;
|
|
539
|
-
var end = sequence.rangeEnd;
|
|
517
|
+
var end = sequence.rangeEnd;
|
|
540
518
|
|
|
519
|
+
// sequence data
|
|
541
520
|
return {
|
|
542
521
|
start: start,
|
|
543
522
|
end: end,
|
|
@@ -551,6 +530,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
551
530
|
entries: entries
|
|
552
531
|
};
|
|
553
532
|
}
|
|
533
|
+
|
|
554
534
|
/**
|
|
555
535
|
* Compares two Locus delta objects and notes unique
|
|
556
536
|
* values contained within baseLoci.
|
|
@@ -558,15 +538,15 @@ var Parser = /*#__PURE__*/function () {
|
|
|
558
538
|
* @param {LociMetadata} otherLoci
|
|
559
539
|
* @returns {Array.<number>} List of unique sequences
|
|
560
540
|
*/
|
|
561
|
-
|
|
562
541
|
}, {
|
|
563
542
|
key: "getUniqueSequences",
|
|
564
543
|
value: function getUniqueSequences(baseLoci, otherLoci) {
|
|
565
544
|
var diff = (0, _difference2.default)(baseLoci.entries, otherLoci.entries);
|
|
566
545
|
var start = otherLoci.start,
|
|
567
|
-
|
|
546
|
+
end = otherLoci.end;
|
|
568
547
|
return Parser.getNumbersOutOfRange(diff, start, end);
|
|
569
548
|
}
|
|
549
|
+
|
|
570
550
|
/**
|
|
571
551
|
* Returns an array of numbers outside of a given range.
|
|
572
552
|
* @param {Array.<number>} list Array to filter
|
|
@@ -574,15 +554,15 @@ var Parser = /*#__PURE__*/function () {
|
|
|
574
554
|
* @param {number} rangeEnd End of range
|
|
575
555
|
* @returns {Array.<number>} Array of numbers sorted ASC
|
|
576
556
|
*/
|
|
577
|
-
|
|
578
557
|
}, {
|
|
579
558
|
key: "getNumbersOutOfRange",
|
|
580
559
|
value: function getNumbersOutOfRange(list, rangeStart, rangeEnd) {
|
|
581
560
|
// Collect all numbers if number is outside of specified range
|
|
582
561
|
var output = list.filter(function (num) {
|
|
583
562
|
return num < rangeStart || num > rangeEnd;
|
|
584
|
-
});
|
|
563
|
+
});
|
|
585
564
|
|
|
565
|
+
// sort ascending
|
|
586
566
|
return output.sort(function (a, b) {
|
|
587
567
|
return a - b;
|
|
588
568
|
});
|
|
@@ -591,34 +571,30 @@ var Parser = /*#__PURE__*/function () {
|
|
|
591
571
|
key: "isSequenceEmpty",
|
|
592
572
|
value: function isSequenceEmpty(locus) {
|
|
593
573
|
var _sequence$entries;
|
|
594
|
-
|
|
595
574
|
var sequence = locus.sequence;
|
|
596
575
|
var hasEmptyEntries = !((_sequence$entries = sequence.entries) !== null && _sequence$entries !== void 0 && _sequence$entries.length);
|
|
597
576
|
var hasEmptyRange = sequence.rangeStart === 0 && sequence.rangeEnd === 0;
|
|
598
577
|
return hasEmptyEntries && hasEmptyRange;
|
|
599
578
|
}
|
|
579
|
+
|
|
600
580
|
/**
|
|
601
581
|
* Determines if an object has basic
|
|
602
582
|
* structure of a locus object.
|
|
603
583
|
* @param {Types~Locus} loci
|
|
604
584
|
* @returns {boolean}
|
|
605
585
|
*/
|
|
606
|
-
|
|
607
586
|
}, {
|
|
608
587
|
key: "isLoci",
|
|
609
588
|
value: function isLoci(loci) {
|
|
610
589
|
if (!loci || !loci.sequence) {
|
|
611
590
|
return false;
|
|
612
591
|
}
|
|
613
|
-
|
|
614
592
|
var hasProp = function hasProp(prop) {
|
|
615
593
|
return Object.prototype.hasOwnProperty.call(loci.sequence, prop);
|
|
616
594
|
};
|
|
617
|
-
|
|
618
595
|
if (hasProp('rangeStart') && hasProp('rangeEnd')) {
|
|
619
596
|
return true;
|
|
620
597
|
}
|
|
621
|
-
|
|
622
598
|
return false;
|
|
623
599
|
}
|
|
624
600
|
}, {
|
|
@@ -633,7 +609,6 @@ var Parser = /*#__PURE__*/function () {
|
|
|
633
609
|
var mStr = function mStr(strings) {
|
|
634
610
|
return strings.join('').replace(/\s{2,}/g, ' ');
|
|
635
611
|
};
|
|
636
|
-
|
|
637
612
|
var resolutionMap = {
|
|
638
613
|
EQ: "".concat(Parser.loci.LT, ": is equal (current == incoming)."),
|
|
639
614
|
LT: "".concat(Parser.loci.LT, ": choose right side (incoming)."),
|
|
@@ -699,7 +674,6 @@ var Parser = /*#__PURE__*/function () {
|
|
|
699
674
|
}]);
|
|
700
675
|
return Parser;
|
|
701
676
|
}();
|
|
702
|
-
|
|
703
677
|
exports.default = Parser;
|
|
704
678
|
(0, _defineProperty2.default)(Parser, "status", {
|
|
705
679
|
IDLE: 'IDLE',
|