@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.
Files changed (183) hide show
  1. package/dist/common/browser-detection.js +1 -21
  2. package/dist/common/browser-detection.js.map +1 -1
  3. package/dist/common/collection.js +5 -20
  4. package/dist/common/collection.js.map +1 -1
  5. package/dist/common/config.js +0 -7
  6. package/dist/common/config.js.map +1 -1
  7. package/dist/common/errors/captcha-error.js +0 -21
  8. package/dist/common/errors/captcha-error.js.map +1 -1
  9. package/dist/common/errors/intent-to-join.js +0 -21
  10. package/dist/common/errors/intent-to-join.js.map +1 -1
  11. package/dist/common/errors/join-meeting.js +0 -21
  12. package/dist/common/errors/join-meeting.js.map +1 -1
  13. package/dist/common/errors/media.js +0 -21
  14. package/dist/common/errors/media.js.map +1 -1
  15. package/dist/common/errors/parameter.js +0 -28
  16. package/dist/common/errors/parameter.js.map +1 -1
  17. package/dist/common/errors/password-error.js +0 -21
  18. package/dist/common/errors/password-error.js.map +1 -1
  19. package/dist/common/errors/permission.js +0 -21
  20. package/dist/common/errors/permission.js.map +1 -1
  21. package/dist/common/errors/reconnection-in-progress.js +0 -17
  22. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  23. package/dist/common/errors/reconnection.js +0 -21
  24. package/dist/common/errors/reconnection.js.map +1 -1
  25. package/dist/common/errors/stats.js +0 -21
  26. package/dist/common/errors/stats.js.map +1 -1
  27. package/dist/common/errors/webex-errors.js +6 -41
  28. package/dist/common/errors/webex-errors.js.map +1 -1
  29. package/dist/common/errors/webex-meetings-error.js +1 -24
  30. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  31. package/dist/common/events/events-scope.js +0 -22
  32. package/dist/common/events/events-scope.js.map +1 -1
  33. package/dist/common/events/events.js +0 -23
  34. package/dist/common/events/events.js.map +1 -1
  35. package/dist/common/events/trigger-proxy.js +0 -12
  36. package/dist/common/events/trigger-proxy.js.map +1 -1
  37. package/dist/common/events/util.js +0 -15
  38. package/dist/common/events/util.js.map +1 -1
  39. package/dist/common/logs/logger-config.js +0 -4
  40. package/dist/common/logs/logger-config.js.map +1 -1
  41. package/dist/common/logs/logger-proxy.js +1 -8
  42. package/dist/common/logs/logger-proxy.js.map +1 -1
  43. package/dist/common/logs/request.js +35 -61
  44. package/dist/common/logs/request.js.map +1 -1
  45. package/dist/common/queue.js +4 -14
  46. package/dist/common/queue.js.map +1 -1
  47. package/dist/config.js +1 -5
  48. package/dist/config.js.map +1 -1
  49. package/dist/constants.js +45 -40
  50. package/dist/constants.js.map +1 -1
  51. package/dist/index.js +1 -17
  52. package/dist/index.js.map +1 -1
  53. package/dist/locus-info/controlsUtils.js +10 -28
  54. package/dist/locus-info/controlsUtils.js.map +1 -1
  55. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  56. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  57. package/dist/locus-info/fullState.js +0 -15
  58. package/dist/locus-info/fullState.js.map +1 -1
  59. package/dist/locus-info/hostUtils.js +4 -12
  60. package/dist/locus-info/hostUtils.js.map +1 -1
  61. package/dist/locus-info/index.js +90 -185
  62. package/dist/locus-info/index.js.map +1 -1
  63. package/dist/locus-info/infoUtils.js +0 -38
  64. package/dist/locus-info/infoUtils.js.map +1 -1
  65. package/dist/locus-info/mediaSharesUtils.js +12 -38
  66. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  67. package/dist/locus-info/parser.js +88 -125
  68. package/dist/locus-info/parser.js.map +1 -1
  69. package/dist/locus-info/selfUtils.js +15 -81
  70. package/dist/locus-info/selfUtils.js.map +1 -1
  71. package/dist/media/index.js +43 -97
  72. package/dist/media/index.js.map +1 -1
  73. package/dist/media/internal-media-core-wrapper.js +0 -4
  74. package/dist/media/internal-media-core-wrapper.js.map +1 -1
  75. package/dist/media/properties.js +64 -110
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js +1 -8
  78. package/dist/media/util.js.map +1 -1
  79. package/dist/mediaQualityMetrics/config.js +10 -12
  80. package/dist/mediaQualityMetrics/config.js.map +1 -1
  81. package/dist/meeting/effectsState.js +119 -191
  82. package/dist/meeting/effectsState.js.map +1 -1
  83. package/dist/meeting/in-meeting-actions.js +0 -13
  84. package/dist/meeting/in-meeting-actions.js.map +1 -1
  85. package/dist/meeting/index.js +729 -1504
  86. package/dist/meeting/index.js.map +1 -1
  87. package/dist/meeting/muteState.js +30 -77
  88. package/dist/meeting/muteState.js.map +1 -1
  89. package/dist/meeting/request.js +160 -230
  90. package/dist/meeting/request.js.map +1 -1
  91. package/dist/meeting/request.type.js +0 -1
  92. package/dist/meeting/state.js +16 -26
  93. package/dist/meeting/state.js.map +1 -1
  94. package/dist/meeting/util.js +19 -158
  95. package/dist/meeting/util.js.map +1 -1
  96. package/dist/meeting-info/collection.js +3 -25
  97. package/dist/meeting-info/collection.js.map +1 -1
  98. package/dist/meeting-info/index.js +8 -31
  99. package/dist/meeting-info/index.js.map +1 -1
  100. package/dist/meeting-info/meeting-info-v2.js +131 -220
  101. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  102. package/dist/meeting-info/request.js +1 -16
  103. package/dist/meeting-info/request.js.map +1 -1
  104. package/dist/meeting-info/util.js +98 -183
  105. package/dist/meeting-info/util.js.map +1 -1
  106. package/dist/meeting-info/utilv2.js +137 -228
  107. package/dist/meeting-info/utilv2.js.map +1 -1
  108. package/dist/meetings/collection.js +3 -21
  109. package/dist/meetings/collection.js.map +1 -1
  110. package/dist/meetings/index.js +202 -335
  111. package/dist/meetings/index.js.map +1 -1
  112. package/dist/meetings/request.js +5 -28
  113. package/dist/meetings/request.js.map +1 -1
  114. package/dist/meetings/util.js +85 -141
  115. package/dist/meetings/util.js.map +1 -1
  116. package/dist/member/index.js +18 -58
  117. package/dist/member/index.js.map +1 -1
  118. package/dist/member/util.js +17 -68
  119. package/dist/member/util.js.map +1 -1
  120. package/dist/members/collection.js +2 -12
  121. package/dist/members/collection.js.map +1 -1
  122. package/dist/members/index.js +29 -151
  123. package/dist/members/index.js.map +1 -1
  124. package/dist/members/request.js +21 -56
  125. package/dist/members/request.js.map +1 -1
  126. package/dist/members/util.js +9 -38
  127. package/dist/members/util.js.map +1 -1
  128. package/dist/metrics/config.js +0 -2
  129. package/dist/metrics/config.js.map +1 -1
  130. package/dist/metrics/constants.js +1 -2
  131. package/dist/metrics/constants.js.map +1 -1
  132. package/dist/metrics/index.js +30 -121
  133. package/dist/metrics/index.js.map +1 -1
  134. package/dist/multistream/mediaRequestManager.js +12 -28
  135. package/dist/multistream/mediaRequestManager.js.map +1 -1
  136. package/dist/multistream/multistreamMedia.js +11 -22
  137. package/dist/multistream/multistreamMedia.js.map +1 -1
  138. package/dist/multistream/receiveSlot.js +7 -47
  139. package/dist/multistream/receiveSlot.js.map +1 -1
  140. package/dist/multistream/receiveSlotManager.js +37 -78
  141. package/dist/multistream/receiveSlotManager.js.map +1 -1
  142. package/dist/multistream/remoteMedia.js +11 -56
  143. package/dist/multistream/remoteMedia.js.map +1 -1
  144. package/dist/multistream/remoteMediaGroup.js +6 -40
  145. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  146. package/dist/multistream/remoteMediaManager.js +221 -380
  147. package/dist/multistream/remoteMediaManager.js.map +1 -1
  148. package/dist/networkQualityMonitor/index.js +20 -49
  149. package/dist/networkQualityMonitor/index.js.map +1 -1
  150. package/dist/personal-meeting-room/index.js +3 -38
  151. package/dist/personal-meeting-room/index.js.map +1 -1
  152. package/dist/personal-meeting-room/request.js +2 -33
  153. package/dist/personal-meeting-room/request.js.map +1 -1
  154. package/dist/personal-meeting-room/util.js +0 -13
  155. package/dist/personal-meeting-room/util.js.map +1 -1
  156. package/dist/reachability/index.js +100 -166
  157. package/dist/reachability/index.js.map +1 -1
  158. package/dist/reachability/request.js +2 -18
  159. package/dist/reachability/request.js.map +1 -1
  160. package/dist/reactions/reactions.js +0 -2
  161. package/dist/reactions/reactions.js.map +1 -1
  162. package/dist/reactions/reactions.type.js +0 -6
  163. package/dist/reactions/reactions.type.js.map +1 -1
  164. package/dist/reconnection-manager/index.js +290 -455
  165. package/dist/reconnection-manager/index.js.map +1 -1
  166. package/dist/roap/index.js +13 -48
  167. package/dist/roap/index.js.map +1 -1
  168. package/dist/roap/request.js +13 -55
  169. package/dist/roap/request.js.map +1 -1
  170. package/dist/roap/turnDiscovery.js +10 -52
  171. package/dist/roap/turnDiscovery.js.map +1 -1
  172. package/dist/statsAnalyzer/global.js +0 -2
  173. package/dist/statsAnalyzer/global.js.map +1 -1
  174. package/dist/statsAnalyzer/index.js +66 -174
  175. package/dist/statsAnalyzer/index.js.map +1 -1
  176. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  177. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  178. package/dist/transcription/index.js +9 -44
  179. package/dist/transcription/index.js.map +1 -1
  180. package/package.json +18 -18
  181. package/test/integration/spec/journey.js +1 -1
  182. package/test/integration/spec/space-meeting.js +1 -1
  183. 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(); // @ts-ignore - This is declared as static class member and again being initialized here from same
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; // @ts-ignore
75
-
61
+ var isLoci = Parser.isLoci;
62
+ // @ts-ignore
76
63
  var setStatus = function setStatus(status) {
77
64
  _this.status = status;
78
- }; // one or both objects are not locus delta events
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
- } // continue processing until queue is empty
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); // start processing events in the queue if idle
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
- DESYNC = _Parser$loci.DESYNC,
186
- USE_INCOMING = _Parser$loci.USE_INCOMING;
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); // limited debugging, use chrome extension
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)); // eslint-disable-next-line no-useless-call
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.'); // @ts-ignore
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; // if earliest working copy sequence is more recent than last incoming sequence
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
- } // if last working copy sequence is before the earliest incoming sequence
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
- } // if no match above, defaults to null
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; // no unique values for both loci
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
- } // incoming delta loci has a larger range
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; // current has unique entries and incoming does not
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
- } // current has no unique entries but incoming does
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
- }; // current unique entries overlap the total range of incoming
344
-
345
-
346
- var currentUniqOverlap = hasUniqOverlap(current.unique, incoming.min, incoming.max); // vice-versa, incoming unique entries overlap the total range of current
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); // send DESYNC to server
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
- LT = _Parser$loci2.LT,
409
- GT = _Parser$loci2.GT,
410
- EQ = _Parser$loci2.EQ,
411
- DESYNC = _Parser$loci2.DESYNC,
412
- USE_INCOMING = _Parser$loci2.USE_INCOMING;
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); // update loci metadata
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); // Locus sequence comparison rules
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
- } // error, none of rules above applied
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
- DESYNC = _Parser$loci3.DESYNC,
484
- EQ = _Parser$loci3.EQ,
485
- ERROR = _Parser$loci3.ERROR,
486
- GT = _Parser$loci3.GT,
487
- LT = _Parser$loci3.LT,
488
- USE_CURRENT = _Parser$loci3.USE_CURRENT,
489
- USE_INCOMING = _Parser$loci3.USE_INCOMING;
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]; // rangeStart or rangeEnd is 0 if a range doesn't exist
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; // sequence data
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
- end = otherLoci.end;
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
- }); // sort ascending
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',