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