@monterosa/sdk-enmasse-kit 0.18.8 → 0.18.10

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.
@@ -7,11 +7,11 @@ import { getParentApplication } from '@monterosa/sdk-launcher-kit';
7
7
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
8
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
9
  import _createClass from '@babel/runtime/helpers/createClass';
10
- import _inherits from '@babel/runtime/helpers/inherits';
11
10
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
12
11
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
12
+ import _inherits from '@babel/runtime/helpers/inherits';
13
13
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
14
- import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
14
+ import '@babel/runtime/helpers/readOnlyError';
15
15
 
16
16
  var ARG_OVERRIDE_METHODS = 'enmasse_override_methods';
17
17
  var ARG_DEBUG = 'enmasse_debug';
@@ -27,103 +27,88 @@ var SSCP_KLASS_LOGIN = 'login';
27
27
  var SSCP_KLASS_LOGIN_OK = 'login_ok';
28
28
  var SSCP_KLASS_LOGIN_FAIL = 'login_fail';
29
29
  var SSCP_KLASS_COUNTER = 'counter';
30
-
31
30
  var getSettingFor = function getSettingFor(name) {
32
31
  if (checkAvailability()) {
33
32
  var value = getItem(name);
34
-
35
33
  if (value !== null) {
36
34
  return value;
37
35
  }
38
- } // Guarding the use of the window object in environments where it might not be
39
- // available, such as during server - side rendering in a framework like Next.js
40
-
36
+ }
41
37
 
38
+ // Guarding the use of the window object in environments where it might not be
39
+ // available, such as during server - side rendering in a framework like Next.js
42
40
  if (typeof window === 'undefined') {
43
41
  return null;
44
42
  }
45
-
46
43
  var _URL = new URL(window.location.href),
47
- searchParams = _URL.searchParams;
48
-
44
+ searchParams = _URL.searchParams;
49
45
  if (searchParams.has(name)) {
50
46
  return searchParams.get(name);
51
47
  }
52
-
53
48
  return false;
54
49
  };
55
-
56
50
  var getSettingForMethods = function getSettingForMethods() {
57
51
  var value = getSettingFor(ARG_OVERRIDE_METHODS);
58
-
59
52
  if (typeof value === 'string') {
60
53
  return value.split(',');
61
54
  }
62
-
63
55
  return undefined;
64
56
  };
65
-
66
57
  var ENMASSE_OVERRIDE_METHODS = getSettingForMethods();
67
58
  var ENMASSE_DEBUG = getSettingFor(ARG_DEBUG);
68
59
  var ENMASSE_CONFIG = getSettingFor(ARG_CONFIG);
69
60
 
70
- var version = "0.18.8";
61
+ var version = "0.18.10";
71
62
 
72
63
  var TYPE_PROTOCOL = 1; // 0000 0000 0001
73
-
74
64
  var TYPE_MANAGER = 2; // 0000 0000 0010
75
-
76
65
  var TYPE_TRANSPORT = 4; // 0000 0000 0100
77
-
78
66
  var TYPE_DRIVER = 8; // 0000 0000 1000
79
-
80
67
  var TYPE_QUEUE = 16; // 0000 0001 0000
81
-
82
68
  var TYPE_TIME = 32; // 0000 0010 0000
83
-
84
69
  var TYPE_MANAGER_EXTRA = 64; // 0000 0100 0000
85
-
86
70
  var TYPE_DRIVER_EXTRA = 128; // 0000 1000 0000
87
-
88
71
  var TYPE_SERVICE = 256; // 0001 0000 0000
89
72
 
90
73
  var LEVELS = {
91
74
  brief: TYPE_PROTOCOL,
92
75
  full: TYPE_PROTOCOL | TYPE_MANAGER | TYPE_TRANSPORT | TYPE_DRIVER,
93
76
  exhaustive: TYPE_PROTOCOL | TYPE_MANAGER | TYPE_MANAGER_EXTRA | TYPE_TRANSPORT | TYPE_DRIVER | TYPE_DRIVER_EXTRA | TYPE_QUEUE | TYPE_TIME | TYPE_SERVICE
94
- }; // eslint-disable-next-line
77
+ };
95
78
 
79
+ // eslint-disable-next-line
96
80
  var log = function log() {};
97
-
98
81
  if (ENMASSE_DEBUG) {
99
82
  log = function log() {
100
83
  var _console;
101
-
102
84
  if (typeof console === 'undefined' || !console.log) {
103
85
  return;
104
- } // parse arguments
105
- // var args = Array.prototype.slice.call(arguments);
106
- // the first argument is the debug type
86
+ }
107
87
 
88
+ // parse arguments
89
+ // var args = Array.prototype.slice.call(arguments);
108
90
 
91
+ // the first argument is the debug type
109
92
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
110
93
  args[_key] = arguments[_key];
111
94
  }
95
+ var type = args[0];
112
96
 
113
- var type = args[0]; // the rest of arguments are arbitrary data
97
+ // the rest of arguments are arbitrary data
98
+ var rest = args.slice(1);
114
99
 
115
- var rest = args.slice(1); // const time = ['getMinutes', 'getSeconds']
100
+ // const time = ['getMinutes', 'getSeconds']
116
101
  // .map((f) => new Date()[f]())
117
102
  // .map((v) => (v < 10 ? '0' : '') + v)
118
103
  // .join(':');
104
+
119
105
  // add current time
120
106
  // rest.unshift(time);
121
- // do not log if mask doesn't contain current type
122
107
 
108
+ // do not log if mask doesn't contain current type
123
109
  if ((LEVELS[ENMASSE_DEBUG] & type) === 0) {
124
110
  return;
125
111
  }
126
-
127
112
  (_console = console).log.apply(_console, _toConsumableArray(rest));
128
113
  };
129
114
  }
@@ -131,64 +116,54 @@ if (ENMASSE_DEBUG) {
131
116
  var Queue = /*#__PURE__*/function () {
132
117
  function Queue() {
133
118
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
134
-
135
119
  _classCallCheck(this, Queue);
136
-
137
120
  // the main storage for messages
138
- this.queue = []; // stash of the queue
121
+ this.queue = [];
139
122
 
123
+ // stash of the queue
140
124
  this.stashed = [];
141
125
  this.running = false;
142
- this.runner = typeof config.runner === 'function' ? config.runner : null; // list of channels we subscribed to
126
+ this.runner = typeof config.runner === 'function' ? config.runner : null;
143
127
 
128
+ // list of channels we subscribed to
144
129
  this.subscriptions = [];
145
130
  }
146
-
147
- _createClass(Queue, [{
131
+ return _createClass(Queue, [{
148
132
  key: "push",
149
133
  value: function push(message) {
150
134
  var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
151
135
  log(TYPE_QUEUE, 'Queue::push', message, force);
152
136
  var klass = message.klass,
153
- channel = message.channel;
154
-
137
+ channel = message.channel;
155
138
  if (!force) {
156
139
  switch (klass) {
157
140
  case SSCP_KLASS_LOGIN:
158
141
  case SSCP_KLASS_AUTHR:
159
142
  break;
160
-
161
143
  case SSCP_KLASS_SUB:
162
144
  if (this.subscriptions.indexOf(channel) === -1) {
163
145
  this.subscriptions.push(channel);
164
146
  } else {
165
147
  return;
166
148
  }
167
-
168
149
  break;
169
-
170
150
  case SSCP_KLASS_UNSUB:
171
151
  {
172
152
  var index = this.subscriptions.indexOf(channel);
173
-
174
153
  if (index !== -1) {
175
154
  this.subscriptions.splice(index, 1);
176
155
  } else {
177
156
  return;
178
157
  }
179
-
180
158
  break;
181
159
  }
182
-
183
160
  default:
184
161
  if (this.subscriptions.indexOf(channel) === -1) {
185
162
  return;
186
163
  }
187
-
188
164
  break;
189
165
  }
190
166
  }
191
-
192
167
  this.queue.push(message);
193
168
  }
194
169
  }, {
@@ -199,15 +174,15 @@ var Queue = /*#__PURE__*/function () {
199
174
  }, {
200
175
  key: "run",
201
176
  value: function run() {
202
- log(TYPE_QUEUE, 'Queue::run', "running=".concat(this.running, ", head=").concat(this.queue[0])); // abort if whether
177
+ log(TYPE_QUEUE, 'Queue::run', "running=".concat(this.running, ", head=").concat(this.queue[0]));
178
+
179
+ // abort if whether
203
180
  // 1. runner function is not set
204
181
  // 2. OR queue is already running
205
182
  // 3. OR there is no messages in the queue
206
-
207
183
  if (this.runner === null || this.running || !this.queue[0]) {
208
184
  return;
209
185
  }
210
-
211
186
  this.running = true;
212
187
  this.runner(this.queue.shift());
213
188
  }
@@ -228,8 +203,9 @@ var Queue = /*#__PURE__*/function () {
228
203
  key: "stash",
229
204
  value: function stash() {
230
205
  log(TYPE_QUEUE, 'Queue::stash');
231
- var item; // eslint-disable-next-line
206
+ var item;
232
207
 
208
+ // eslint-disable-next-line
233
209
  while (undefined !== (item = this.queue.shift())) {
234
210
  this.stashed.push(item);
235
211
  }
@@ -238,29 +214,30 @@ var Queue = /*#__PURE__*/function () {
238
214
  key: "unstash",
239
215
  value: function unstash() {
240
216
  log(TYPE_QUEUE, 'Queue::unstash');
241
- var item; // eslint-disable-next-line
217
+ var item;
242
218
 
219
+ // eslint-disable-next-line
243
220
  while (undefined !== (item = this.stashed.shift())) {
244
221
  this.queue.push(item);
245
222
  }
246
223
  }
247
224
  }]);
248
-
249
- return Queue;
250
225
  }();
251
226
 
227
+ // Returns current local timestamp
252
228
  var local = function local() {
253
229
  return new Date() / 1000;
254
- }; // Server time default to local time
255
-
230
+ };
256
231
 
257
- var serverTime = local(); // Time when the server time was received on the client
232
+ // Server time default to local time
233
+ var serverTime = local();
258
234
 
235
+ // Time when the server time was received on the client
259
236
  var clientTimeAtSync = local();
260
237
  var setTime = function setTime(newTime) {
261
238
  log(TYPE_TIME, 'Time::setTime', newTime);
262
- serverTime = newTime; // offset = local() - time;
263
-
239
+ serverTime = newTime;
240
+ // offset = local() - time;
264
241
  clientTimeAtSync = local();
265
242
  };
266
243
  var now = function now() {
@@ -268,87 +245,62 @@ var now = function now() {
268
245
  return Math.round(serverTime + elapsedTime);
269
246
  };
270
247
 
271
- function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
272
-
273
- function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
274
-
248
+ function _callSuper$7(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$7() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
249
+ function _isNativeReflectConstruct$7() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$7 = function _isNativeReflectConstruct() { return !!t; })(); }
275
250
  var Transport = /*#__PURE__*/function (_Emitter) {
276
- _inherits(Transport, _Emitter);
277
-
278
- var _super = _createSuper$7(Transport);
279
-
280
- // generic events
281
- // connection state events
282
- // states
283
251
  function Transport() {
284
252
  var _this;
285
-
286
253
  _classCallCheck(this, Transport);
287
-
288
- _this = _super.call(this);
254
+ _this = _callSuper$7(this, Transport);
289
255
  _this.state = _this.STATE_DISCONNECTED;
290
256
  _this.trigger = _this.emit;
291
257
  _this.bind = _this.on;
292
258
  _this.unbind = _this.off;
293
259
  return _this;
294
260
  }
295
-
296
- return Transport;
261
+ _inherits(Transport, _Emitter);
262
+ return _createClass(Transport);
297
263
  }(Emitter);
298
-
264
+ // generic events
299
265
  _defineProperty(Transport, "ON_READY", 'ready');
300
-
301
266
  _defineProperty(Transport, "ON_MESSAGE", 'message');
302
-
267
+ // connection state events
303
268
  _defineProperty(Transport, "ON_CONNECTED", 'connected');
304
-
305
269
  _defineProperty(Transport, "ON_CONNECT_FAILED", 'connect_failed');
306
-
307
270
  _defineProperty(Transport, "ON_CONNECT_LOST", 'connect_lost');
308
-
309
271
  _defineProperty(Transport, "ON_DISCONNECTED", 'disconnected');
310
-
272
+ // states
311
273
  _defineProperty(Transport, "STATE_CONNECTED", 'connected');
312
-
313
274
  _defineProperty(Transport, "STATE_CONNECTING", 'connecting');
314
-
315
275
  _defineProperty(Transport, "STATE_DISCONNECTED", 'disconnected');
316
-
317
276
  _defineProperty(Transport, "STATE_DISCONNECTING", 'disconnecting');
318
277
 
319
- function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
320
-
321
- function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
322
-
278
+ function _callSuper$6(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$6() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
279
+ function _isNativeReflectConstruct$6() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$6 = function _isNativeReflectConstruct() { return !!t; })(); }
323
280
  var Driver = /*#__PURE__*/function (_Emitter) {
324
- _inherits(Driver, _Emitter);
325
-
326
- var _super = _createSuper$6(Driver);
327
-
328
281
  function Driver() {
329
282
  var _this;
330
-
331
283
  _classCallCheck(this, Driver);
332
-
333
- _this = _super.call(this);
284
+ _this = _callSuper$6(this, Driver);
334
285
  _this.connected = false;
335
286
  _this.trigger = _this.emit;
336
287
  _this.bind = _this.on;
337
288
  _this.unbind = _this.off;
338
289
  return _this;
339
290
  }
340
-
341
- _createClass(Driver, [{
291
+ _inherits(Driver, _Emitter);
292
+ return _createClass(Driver, [{
342
293
  key: "connect",
343
294
  value: function connect() {}
344
295
  }, {
345
296
  key: "disconnect",
346
- value: function disconnect() {} // Arguments:
297
+ value: function disconnect() {}
298
+
299
+ // Arguments:
347
300
  //
348
301
  // data = null
349
302
  // success = () => {}
350
303
  // failure = () => {}
351
-
352
304
  }, {
353
305
  key: "send",
354
306
  value: function send() {}
@@ -358,44 +310,30 @@ var Driver = /*#__PURE__*/function (_Emitter) {
358
310
  this.trigger(Driver.ON_READY);
359
311
  }
360
312
  }]);
361
-
362
- return Driver;
363
313
  }(Emitter);
364
-
365
314
  _defineProperty(Driver, "ON_READY", 'ready');
366
-
367
315
  _defineProperty(Driver, "ON_MESSAGE", 'message');
368
-
369
316
  _defineProperty(Driver, "ON_CONNECTED", 'connected');
370
-
371
317
  _defineProperty(Driver, "ON_DISCONNECTED", 'disconnected');
372
318
 
373
- function _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
374
-
375
- function _isNativeReflectConstruct$5() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
319
+ function _callSuper$5(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$5() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
320
+ function _isNativeReflectConstruct$5() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$5 = function _isNativeReflectConstruct() { return !!t; })(); }
376
321
  var globals$1 = getGlobal();
377
-
378
322
  var XHRDriver = /*#__PURE__*/function (_Driver) {
379
- _inherits(XHRDriver, _Driver);
380
-
381
- var _super = _createSuper$5(XHRDriver);
382
-
383
323
  function XHRDriver() {
384
324
  var _this;
385
-
386
325
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
387
-
388
326
  _classCallCheck(this, XHRDriver);
389
-
390
- _this = _super.call(this);
327
+ _this = _callSuper$5(this, XHRDriver);
391
328
  _this.config = config;
392
329
  _this.requests = {};
393
330
  _this.requestIdx = 0;
394
331
  return _this;
395
- } // CORS request wrapper
396
-
332
+ }
397
333
 
398
- _createClass(XHRDriver, [{
334
+ // CORS request wrapper
335
+ _inherits(XHRDriver, _Driver);
336
+ return _createClass(XHRDriver, [{
399
337
  key: "_request",
400
338
  value: function _request(url) {
401
339
  var success = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
@@ -406,7 +344,6 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
406
344
  var self = this;
407
345
  var xhr = new XMLHttpRequest();
408
346
  var method = 'POST';
409
-
410
347
  if (typeof XDomainRequest !== 'undefined') {
411
348
  xhr = new XDomainRequest();
412
349
  xhr.open(method, url);
@@ -416,32 +353,27 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
416
353
  } else {
417
354
  return null;
418
355
  }
419
-
420
356
  xhr._idx = this.requestIdx;
421
-
422
357
  xhr.onload = function onLoad() {
423
358
  log(TYPE_DRIVER_EXTRA, "XHRDriver::request::onload idx=".concat(xhr._idx, ", response=").concat(this.responseText));
424
-
425
359
  if (this.responseText.length > 0) {
426
360
  success(self._parseResponse(this.responseText));
427
361
  } else {
428
362
  failure(this.responseText);
429
363
  }
430
364
  };
431
-
432
365
  xhr.onerror = function onError() {
433
366
  log(TYPE_DRIVER_EXTRA, "XHRDriver::request::onerror idx=".concat(xhr._idx, ", response=").concat(this.responseText));
434
367
  failure(this.responseText);
435
- }; // XHR doesn't trigger onabort event in IE < 10
368
+ };
369
+
370
+ // XHR doesn't trigger onabort event in IE < 10
436
371
  // attaching custom abort handler and execute
437
372
  // it manually on each abort() call
438
-
439
-
440
373
  xhr._onabort = function () {
441
374
  log(TYPE_DRIVER_EXTRA, "XHRDriver::request::onabort idx=".concat(xhr._idx));
442
375
  abort();
443
376
  };
444
-
445
377
  return xhr;
446
378
  }
447
379
  }, {
@@ -449,33 +381,27 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
449
381
  value: function _parseResponse(response) {
450
382
  var data = {};
451
383
  var chunks = response.split('&');
452
-
453
384
  for (var i = 0, l = chunks.length; i < l; i++) {
454
385
  var _chunks$i$split = chunks[i].split('='),
455
- _chunks$i$split2 = _slicedToArray(_chunks$i$split, 2),
456
- key = _chunks$i$split2[0],
457
- value = _chunks$i$split2[1];
458
-
386
+ _chunks$i$split2 = _slicedToArray(_chunks$i$split, 2),
387
+ key = _chunks$i$split2[0],
388
+ value = _chunks$i$split2[1];
459
389
  var normalisedValue = decodeURIComponent(value.replace('\0', ''));
460
-
461
390
  if (key in data) {
462
391
  if (data[key].constructor !== Array) {
463
392
  data[key] = [data[key]];
464
393
  }
465
-
466
394
  data[key].push(normalisedValue);
467
395
  } else {
468
396
  data[key] = normalisedValue;
469
397
  }
470
398
  }
471
-
472
399
  return data;
473
400
  }
474
401
  }, {
475
402
  key: "_removeRequest",
476
403
  value: function _removeRequest(idx) {
477
404
  log(TYPE_DRIVER_EXTRA, 'XHRDriver::removeRequest', idx);
478
-
479
405
  if (Object.prototype.hasOwnProperty.call(this.requests, idx)) {
480
406
  delete this.requests[idx];
481
407
  }
@@ -484,12 +410,10 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
484
410
  key: "connect",
485
411
  value: function connect() {
486
412
  log(TYPE_DRIVER, 'XHRDriver::connect');
487
-
488
413
  if (this.connected) {
489
414
  log(TYPE_DRIVER, 'XHRDriver::connect already been connected!');
490
415
  return;
491
416
  }
492
-
493
417
  this.connected = true;
494
418
  this.trigger(XHRDriver.ON_CONNECTED);
495
419
  }
@@ -497,60 +421,48 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
497
421
  key: "disconnect",
498
422
  value: function disconnect() {
499
423
  log(TYPE_DRIVER, 'XHRDriver::disconnect');
500
-
501
424
  if (this.connected) {
502
425
  // abort all requests
503
426
  for (var idx in this.requests) {
504
427
  if (Object.prototype.hasOwnProperty.call(this.requests, idx) && this.requests[idx].abort) {
505
428
  this.requests[idx].abort();
506
-
507
429
  if (this.requests[idx]._onabort) {
508
430
  this.requests[idx]._onabort();
509
431
  }
510
-
511
432
  this._removeRequest(idx);
512
433
  }
513
434
  }
514
-
515
435
  this.connected = false;
516
436
  }
517
-
518
437
  this.trigger(XHRDriver.ON_DISCONNECTED);
519
438
  }
520
439
  }, {
521
440
  key: "send",
522
441
  value: function send(url, data) {
523
442
  var _this2 = this;
524
-
525
443
  var success = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
526
444
  var failure = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
527
445
  log(TYPE_DRIVER, 'XHRDriver::send', data);
528
446
  var xhr;
529
447
  var retry = 1;
530
-
531
448
  var send = function send() {
532
449
  // eslint-disable-next-line
533
450
  xhr = _this2._request(url, onSuccess, onFailure, onAbort);
534
- _this2.requests[xhr._idx] = xhr; // fixes aborting requests in IE
451
+ _this2.requests[xhr._idx] = xhr;
535
452
 
453
+ // fixes aborting requests in IE
536
454
  setTimeout(function () {
537
455
  xhr.send(data);
538
456
  }, 0);
539
457
  };
540
-
541
458
  var onSuccess = function onSuccess(response) {
542
459
  log(TYPE_DRIVER, 'XHRDriver::success', data);
543
-
544
460
  _this2._removeRequest(xhr._idx);
545
-
546
461
  success(response);
547
462
  };
548
-
549
463
  var onFailure = function onFailure(response) {
550
464
  log(TYPE_DRIVER, 'XHRDriver::failure, retry: ', retry);
551
-
552
465
  _this2._removeRequest(xhr._idx);
553
-
554
466
  if (retry <= _this2.config.request_retries) {
555
467
  setTimeout(function () {
556
468
  send();
@@ -560,15 +472,11 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
560
472
  failure(response);
561
473
  }
562
474
  };
563
-
564
475
  var onAbort = function onAbort() {
565
476
  log(TYPE_DRIVER, 'XHRDriver::abort', data);
566
-
567
477
  _this2._removeRequest(xhr._idx);
568
-
569
478
  failure();
570
479
  };
571
-
572
480
  send();
573
481
  }
574
482
  }], [{
@@ -577,32 +485,22 @@ var XHRDriver = /*#__PURE__*/function (_Driver) {
577
485
  return 'XDomainRequest' in globals$1 || 'withCredentials' in new XMLHttpRequest();
578
486
  }
579
487
  }]);
580
-
581
- return XHRDriver;
582
488
  }(Driver);
583
489
 
584
- function _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
585
-
586
- function _isNativeReflectConstruct$4() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
490
+ function _callSuper$4(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$4() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
491
+ function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() { return !!t; })(); }
587
492
  var globals = getGlobal();
588
-
589
493
  var WebSocketDriver = /*#__PURE__*/function (_Driver) {
590
- _inherits(WebSocketDriver, _Driver);
591
-
592
- var _super = _createSuper$4(WebSocketDriver);
593
-
594
494
  function WebSocketDriver() {
595
495
  var _this;
596
-
597
496
  _classCallCheck(this, WebSocketDriver);
598
-
599
- _this = _super.call(this);
497
+ _this = _callSuper$4(this, WebSocketDriver);
600
498
  _this.websocket = null;
601
499
  _this.closeTimeout = null;
602
500
  return _this;
603
501
  }
604
-
605
- _createClass(WebSocketDriver, [{
502
+ _inherits(WebSocketDriver, _Driver);
503
+ return _createClass(WebSocketDriver, [{
606
504
  key: "_onMessage",
607
505
  value: function _onMessage(e) {
608
506
  log(TYPE_DRIVER, 'WebSocketDriver::onMessage', e.data);
@@ -619,7 +517,6 @@ var WebSocketDriver = /*#__PURE__*/function (_Driver) {
619
517
  key: "_onClose",
620
518
  value: function _onClose() {
621
519
  log(TYPE_DRIVER, 'WebSocketDriver::onClose');
622
-
623
520
  this._disconnect();
624
521
  }
625
522
  }, {
@@ -631,20 +528,16 @@ var WebSocketDriver = /*#__PURE__*/function (_Driver) {
631
528
  key: "_disconnect",
632
529
  value: function _disconnect() {
633
530
  log(TYPE_DRIVER, 'WebSocketDriver::disconnect');
634
- this.connected = false; // reset handlers if websocket was created
531
+ this.connected = false;
635
532
 
533
+ // reset handlers if websocket was created
636
534
  if (this.websocket !== null) {
637
535
  this.websocket.onmessage = function () {};
638
-
639
536
  this.websocket.onopen = function () {};
640
-
641
537
  this.websocket.onclose = function () {};
642
-
643
538
  this.websocket.onerror = function () {};
644
-
645
539
  this.websocket = null;
646
540
  }
647
-
648
541
  clearTimeout(this.closeTimeout);
649
542
  this.trigger(WebSocketDriver.ON_DISCONNECTED);
650
543
  }
@@ -654,7 +547,6 @@ var WebSocketDriver = /*#__PURE__*/function (_Driver) {
654
547
  if (this.connected) {
655
548
  return;
656
549
  }
657
-
658
550
  log(TYPE_DRIVER, 'WebSocketDriver::connect', host, port);
659
551
  var url = "".concat(secure ? 'wss' : 'ws', "://").concat(host, ":").concat(port, "/ws");
660
552
  this.websocket = new WebSocket(url);
@@ -667,12 +559,12 @@ var WebSocketDriver = /*#__PURE__*/function (_Driver) {
667
559
  key: "disconnect",
668
560
  value: function disconnect() {
669
561
  log(TYPE_DRIVER, 'WebSocketDriver::disconnect');
670
-
671
562
  if (this.connected) {
672
563
  // ON_DISCONNECTED will be triggered at onClose event
673
- this.websocket.close(); // websocket does not fire onclose if network connection is lost
674
- // set timeout to force fire ON_DISCONNECTED event
564
+ this.websocket.close();
675
565
 
566
+ // websocket does not fire onclose if network connection is lost
567
+ // set timeout to force fire ON_DISCONNECTED event
676
568
  this.closeTimeout = setTimeout(this._disconnect.bind(this), 750);
677
569
  } else {
678
570
  // disconnect instantly if websocket wasn't connected or still connecting
@@ -693,35 +585,25 @@ var WebSocketDriver = /*#__PURE__*/function (_Driver) {
693
585
  return 'WebSocket' in globals;
694
586
  }
695
587
  }]);
696
-
697
- return WebSocketDriver;
698
588
  }(Driver);
699
589
 
700
- function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
701
-
702
- function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
590
+ function _callSuper$3(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$3() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
591
+ function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function _isNativeReflectConstruct() { return !!t; })(); }
703
592
  var COMMAND_CONNECT = 'connect';
704
593
  var COMMAND_PASS = 'pass';
705
594
  var COMMAND_POLL = 'poll';
706
-
707
595
  var ProxyTransport = /*#__PURE__*/function (_Transport) {
708
- _inherits(ProxyTransport, _Transport);
709
-
710
- var _super = _createSuper$3(ProxyTransport);
711
-
712
596
  function ProxyTransport() {
713
597
  var _this;
714
-
715
598
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
716
-
717
599
  _classCallCheck(this, ProxyTransport);
718
-
719
600
  log(TYPE_TRANSPORT, 'ProxyTransport::constructor', config);
720
- _this = _super.call(this, config);
601
+ _this = _callSuper$3(this, ProxyTransport, [config]);
721
602
  _this.driver = config.driver || null;
722
603
  _this.host = config.host || null;
723
604
  _this.port = config.port || null;
724
605
  _this.secure = config.secure || false;
606
+
725
607
  /*
726
608
  * Proxy properties
727
609
  * host and port should be always preserved on connect and reconnect
@@ -732,17 +614,13 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
732
614
  _this.childId = null;
733
615
  _this.clientId = null;
734
616
  _this.sessionId = null;
735
-
736
- _this.driver.bind(Driver.ON_READY, _this._handleDriverReady.bind(_assertThisInitialized(_this)));
737
-
738
- _this.driver.bind(Driver.ON_CONNECTED, _this._handleDriverConnected.bind(_assertThisInitialized(_this)));
739
-
740
- _this.driver.bind(Driver.ON_DISCONNECTED, _this._handleDriverDisconnected.bind(_assertThisInitialized(_this)));
741
-
617
+ _this.driver.bind(Driver.ON_READY, _this._handleDriverReady.bind(_this));
618
+ _this.driver.bind(Driver.ON_CONNECTED, _this._handleDriverConnected.bind(_this));
619
+ _this.driver.bind(Driver.ON_DISCONNECTED, _this._handleDriverDisconnected.bind(_this));
742
620
  return _this;
743
621
  }
744
-
745
- _createClass(ProxyTransport, [{
622
+ _inherits(ProxyTransport, _Transport);
623
+ return _createClass(ProxyTransport, [{
746
624
  key: "_url",
747
625
  value: function _url() {
748
626
  return "".concat(this.secure ? 'https' : 'http', "://") + "".concat(this.proxyIp ? this.proxyIp : this.host, ":") + "".concat(this.port, "/") + "".concat(this.childId !== null ? "".concat(this.childId, "/") : '') + "?_r=".concat(new Date().getTime());
@@ -754,57 +632,47 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
754
632
  var success = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
755
633
  var failure = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
756
634
  var self = this;
757
-
758
635
  var onSuccess = function onSuccess(response) {
759
636
  // fire ON_MESSAGE event unless sscp message is empty
760
637
  if (response.sscp.constructor === String) {
761
638
  response.sscp = [response.sscp];
762
639
  }
763
-
764
640
  for (var i = 0, l = response.sscp.length; i < l; i++) {
765
641
  if (response.sscp[i] !== '') {
766
642
  self.trigger(ProxyTransport.ON_MESSAGE, response.sscp[i]);
767
643
  }
768
644
  }
769
-
770
645
  success(response);
771
646
  };
772
-
773
647
  var onFailure = function onFailure() {
774
648
  switch (self.state) {
775
649
  case ProxyTransport.STATE_CONNECTED:
776
650
  self.state = ProxyTransport.STATE_DISCONNECTING;
777
651
  self.trigger(ProxyTransport.ON_CONNECT_FAILED);
778
652
  break;
779
-
780
653
  case ProxyTransport.STATE_CONNECTING:
781
654
  self.state = ProxyTransport.STATE_DISCONNECTING;
782
655
  self.trigger(ProxyTransport.ON_CONNECT_FAILED);
783
656
  break;
784
-
785
657
  case ProxyTransport.STATE_DISCONNECTING:
786
658
  self.state = ProxyTransport.STATE_DISCONNECTED;
787
659
  self.trigger(ProxyTransport.ON_DISCONNECTED);
788
660
  break;
789
661
  }
790
-
791
662
  failure();
792
663
  };
793
-
794
664
  this.driver.send(this._url(), params, onSuccess, onFailure);
795
665
  }
796
666
  }, {
797
667
  key: "_poll",
798
668
  value: function _poll() {
799
669
  var params = "command=".concat(COMMAND_POLL) + "&clientid=".concat(this.clientId) + "&sid=".concat(this.sessionId);
800
-
801
670
  this._request(params, this._poll.bind(this));
802
671
  }
803
672
  }, {
804
673
  key: "_connect",
805
674
  value: function _connect() {
806
675
  var self = this;
807
-
808
676
  var onSuccess = function onSuccess(response) {
809
677
  self.proxyIp = response.proxy;
810
678
  self.clientId = parseInt(response.clientid, 10);
@@ -812,17 +680,13 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
812
680
  self.sessionId = response.sid;
813
681
  self.state = ProxyTransport.STATE_CONNECTED;
814
682
  self.trigger(ProxyTransport.ON_CONNECTED);
815
-
816
683
  self._poll();
817
684
  };
818
-
819
685
  var onFailure = function onFailure() {
820
686
  self.state = ProxyTransport.STATE_DISCONNECTED;
821
687
  self.trigger(ProxyTransport.ON_CONNECT_FAILED);
822
688
  };
823
-
824
689
  var params = "command=".concat(COMMAND_CONNECT);
825
-
826
690
  this._request(params, onSuccess, onFailure);
827
691
  }
828
692
  }, {
@@ -841,16 +705,13 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
841
705
  log(TYPE_TRANSPORT, 'ProxyTransport::handleDriverDisconnected');
842
706
  var state = this.state;
843
707
  this.state = ProxyTransport.STATE_DISCONNECTED;
844
-
845
708
  switch (state) {
846
709
  case ProxyTransport.STATE_CONNECTED:
847
710
  this.trigger(ProxyTransport.ON_CONNECT_LOST);
848
711
  break;
849
-
850
712
  case ProxyTransport.STATE_CONNECTING:
851
713
  this.trigger(ProxyTransport.ON_CONNECT_FAILED);
852
714
  break;
853
-
854
715
  case ProxyTransport.STATE_DISCONNECTING:
855
716
  this.trigger(ProxyTransport.ON_DISCONNECTED);
856
717
  break;
@@ -863,7 +724,6 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
863
724
  var failure = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
864
725
  log(TYPE_TRANSPORT, 'ProxyTransport::send', sscp);
865
726
  var params = "command=".concat(COMMAND_PASS) + "&clientid=".concat(this.clientId) + "&sscp=".concat(sscp) + "&sid=".concat(this.sessionId);
866
-
867
727
  this._request(params, success, failure);
868
728
  }
869
729
  }, {
@@ -876,8 +736,9 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
876
736
  }, {
877
737
  key: "disconnect",
878
738
  value: function disconnect() {
879
- log(TYPE_TRANSPORT, 'ProxyTransport::disconnect'); // drop proxy settings
739
+ log(TYPE_TRANSPORT, 'ProxyTransport::disconnect');
880
740
 
741
+ // drop proxy settings
881
742
  this.proxyIp = null;
882
743
  this.childId = null;
883
744
  this.sessionId = null;
@@ -891,45 +752,29 @@ var ProxyTransport = /*#__PURE__*/function (_Transport) {
891
752
  this.driver.init();
892
753
  }
893
754
  }]);
894
-
895
- return ProxyTransport;
896
755
  }(Transport);
897
756
 
898
- function _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
899
-
900
- function _isNativeReflectConstruct$2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
901
-
757
+ function _callSuper$2(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$2() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
758
+ function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() { return !!t; })(); }
902
759
  var SocketTransport = /*#__PURE__*/function (_Transport) {
903
- _inherits(SocketTransport, _Transport);
904
-
905
- var _super = _createSuper$2(SocketTransport);
906
-
907
760
  function SocketTransport() {
908
761
  var _this;
909
-
910
762
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
911
-
912
763
  _classCallCheck(this, SocketTransport);
913
-
914
764
  log(TYPE_TRANSPORT, 'SocketTransport::constructor', config);
915
- _this = _super.call(this);
765
+ _this = _callSuper$2(this, SocketTransport);
916
766
  _this.driver = config.driver || null;
917
767
  _this.host = config.host || null;
918
768
  _this.port = config.port || null;
919
769
  _this.secure = config.secure || false;
920
-
921
- _this.driver.bind(Driver.ON_READY, _this._handleDriverReady.bind(_assertThisInitialized(_this)));
922
-
923
- _this.driver.bind(Driver.ON_MESSAGE, _this._handleDriverMessage.bind(_assertThisInitialized(_this)));
924
-
925
- _this.driver.bind(Driver.ON_CONNECTED, _this._handleDriverConnected.bind(_assertThisInitialized(_this)));
926
-
927
- _this.driver.bind(Driver.ON_DISCONNECTED, _this._handleDriverDisconnected.bind(_assertThisInitialized(_this)));
928
-
770
+ _this.driver.bind(Driver.ON_READY, _this._handleDriverReady.bind(_this));
771
+ _this.driver.bind(Driver.ON_MESSAGE, _this._handleDriverMessage.bind(_this));
772
+ _this.driver.bind(Driver.ON_CONNECTED, _this._handleDriverConnected.bind(_this));
773
+ _this.driver.bind(Driver.ON_DISCONNECTED, _this._handleDriverDisconnected.bind(_this));
929
774
  return _this;
930
775
  }
931
-
932
- _createClass(SocketTransport, [{
776
+ _inherits(SocketTransport, _Transport);
777
+ return _createClass(SocketTransport, [{
933
778
  key: "_handleDriverReady",
934
779
  value: function _handleDriverReady() {
935
780
  log(TYPE_TRANSPORT, 'SocketTransport::_handleDriverReady');
@@ -954,16 +799,13 @@ var SocketTransport = /*#__PURE__*/function (_Transport) {
954
799
  log(TYPE_TRANSPORT, 'SocketTransport::handleDriverDisconnected');
955
800
  var state = this.state;
956
801
  this.state = SocketTransport.STATE_DISCONNECTED;
957
-
958
802
  switch (state) {
959
803
  case SocketTransport.STATE_CONNECTED:
960
804
  this.trigger(SocketTransport.ON_CONNECT_LOST);
961
805
  break;
962
-
963
806
  case SocketTransport.STATE_CONNECTING:
964
807
  this.trigger(SocketTransport.ON_CONNECT_FAILED);
965
808
  break;
966
-
967
809
  case SocketTransport.STATE_DISCONNECTING:
968
810
  this.trigger(SocketTransport.ON_DISCONNECTED);
969
811
  break;
@@ -998,63 +840,55 @@ var SocketTransport = /*#__PURE__*/function (_Transport) {
998
840
  this.driver.init();
999
841
  }
1000
842
  }]);
1001
-
1002
- return SocketTransport;
1003
843
  }(Transport);
1004
844
 
1005
- function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1006
-
1007
- function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
845
+ function _callSuper$1(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$1() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
846
+ function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$1 = function _isNativeReflectConstruct() { return !!t; })(); }
1008
847
  var METHOD_PROXY = 'proxy';
1009
848
  var METHOD_WEBSOCKET = 'websocket';
1010
-
1011
849
  var TransportManager = /*#__PURE__*/function (_Emitter) {
1012
- _inherits(TransportManager, _Emitter);
1013
-
1014
- var _super = _createSuper$1(TransportManager);
1015
-
1016
850
  function TransportManager() {
1017
851
  var _this;
1018
-
1019
852
  _classCallCheck(this, TransportManager);
1020
-
1021
- _this = _super.call(this);
853
+ _this = _callSuper$1(this, TransportManager);
1022
854
  _this.trigger = _this.emit;
1023
855
  _this.bind = _this.on;
1024
856
  _this.unbind = _this.off;
1025
857
  _this.ON_READY = 'ready';
1026
858
  _this.config = null;
1027
- _this.idx = 0; // list of connection types pairs: transport - driver
859
+ _this.idx = 0;
1028
860
 
861
+ // list of connection types pairs: transport - driver
1029
862
  _this.methods = {};
1030
863
  _this.transports = {};
1031
864
  _this.loaded = 0;
1032
865
  _this.sequence = [];
1033
866
  _this.allowed = [];
1034
- _this.secure = true; // Guarding the use of the window object in environments where it might
867
+ _this.secure = true;
868
+
869
+ // Guarding the use of the window object in environments where it might
1035
870
  // not be available, such as during server - side rendering in a framework
1036
871
  // like Next.js
1037
-
1038
872
  if (typeof window !== 'undefined') {
1039
873
  _this.secure = window.location.protocol.indexOf('https') === 0;
1040
- } // list of connection methods which where unsuccessful
1041
-
874
+ }
1042
875
 
876
+ // list of connection methods which where unsuccessful
1043
877
  _this.unsuccessful = [];
1044
878
  return _this;
1045
879
  }
1046
-
1047
- _createClass(TransportManager, [{
880
+ _inherits(TransportManager, _Emitter);
881
+ return _createClass(TransportManager, [{
1048
882
  key: "_instantiate",
1049
883
  value: function _instantiate() {
1050
884
  var _this2 = this;
885
+ log(TYPE_MANAGER, 'TransportManager::instantiate');
1051
886
 
1052
- log(TYPE_MANAGER, 'TransportManager::instantiate'); // instantiate all transports
1053
-
887
+ // instantiate all transports
1054
888
  this.allowed.forEach(function (method) {
1055
- var config = _this2._getMethodConfig(method); // pick the random host
1056
-
889
+ var config = _this2._getMethodConfig(method);
1057
890
 
891
+ // pick the random host
1058
892
  var host = config.hosts[Math.floor(Math.random() * config.hosts.length)];
1059
893
  var TransportKlass = _this2.methods[method].transport;
1060
894
  var DriverKlass = _this2.methods[method].driver;
@@ -1066,8 +900,9 @@ var TransportManager = /*#__PURE__*/function (_Emitter) {
1066
900
  });
1067
901
  _this2.transports[method] = transport;
1068
902
  transport.bind(Transport.ON_READY, _this2._handleTransportReady.bind(_this2));
1069
- }, this); // initialise all transports
903
+ }, this);
1070
904
 
905
+ // initialise all transports
1071
906
  for (var method in this.transports) {
1072
907
  if (Object.prototype.hasOwnProperty.call(this.transports, method)) {
1073
908
  this.transports[method].init();
@@ -1085,7 +920,6 @@ var TransportManager = /*#__PURE__*/function (_Emitter) {
1085
920
  key: "_handleTransportReady",
1086
921
  value: function _handleTransportReady() {
1087
922
  this.loaded += 1;
1088
-
1089
923
  if (this.loaded === this.allowed.length) {
1090
924
  this.trigger(this.ON_READY);
1091
925
  }
@@ -1099,28 +933,25 @@ var TransportManager = /*#__PURE__*/function (_Emitter) {
1099
933
  key: "next",
1100
934
  value: function next() {
1101
935
  this.idx += 1;
1102
-
1103
936
  if (this.idx >= this.allowed.length) {
1104
937
  return false;
1105
938
  }
1106
-
1107
939
  return this.current();
1108
940
  }
1109
941
  }, {
1110
942
  key: "reset",
1111
943
  value: function reset() {
1112
944
  this.allowed = [];
1113
- this.unsuccessful = []; // gather all methods in one array in correct connection sequence
945
+ this.unsuccessful = [];
1114
946
 
947
+ // gather all methods in one array in correct connection sequence
1115
948
  for (var i = 0, l = this.sequence.length; i < l; i += 1) {
1116
949
  // shift method's idx by the value of the current method idx
1117
950
  var method = this.sequence[(i + this.idx) % l];
1118
-
1119
951
  if (this.methods[method].driver.hasSupport()) {
1120
952
  this.allowed.push(method);
1121
953
  }
1122
954
  }
1123
-
1124
955
  this.idx = 0;
1125
956
  }
1126
957
  }, {
@@ -1136,7 +967,6 @@ var TransportManager = /*#__PURE__*/function (_Emitter) {
1136
967
  key: "init",
1137
968
  value: function init() {
1138
969
  var _this3 = this;
1139
-
1140
970
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1141
971
  this.config = config;
1142
972
  this.idx = 0;
@@ -1151,74 +981,67 @@ var TransportManager = /*#__PURE__*/function (_Emitter) {
1151
981
  driver: WebSocketDriver,
1152
982
  transport: SocketTransport
1153
983
  };
1154
-
1155
984
  if (ENMASSE_OVERRIDE_METHODS) {
1156
985
  this.sequence = ENMASSE_OVERRIDE_METHODS;
1157
986
  } else {
1158
987
  this.config.methods.forEach(function (method) {
1159
988
  return _this3.sequence.push(method.type);
1160
989
  }, this);
1161
- } // remove unsupported methods
990
+ }
1162
991
 
992
+ // remove unsupported methods
1163
993
  /* eslint-disable */
1164
-
1165
-
1166
994
  this.sequence = this.sequence.filter(function (item) {
1167
995
  return Object.prototype.hasOwnProperty.call(_this3.methods, item);
1168
996
  });
1169
997
  /* eslint-enable */
1170
998
 
1171
999
  this.reset();
1172
-
1173
1000
  this._instantiate();
1174
1001
  }
1175
1002
  }]);
1176
-
1177
- return TransportManager;
1178
1003
  }(Emitter);
1179
-
1180
1004
  var TransportManager$1 = new TransportManager();
1181
1005
 
1182
1006
  /* eslint @typescript-eslint/no-use-before-define: ["error", { "variables": false }] */
1183
-
1184
1007
  var ConnectionManager = function () {
1185
1008
  var self = new Emitter();
1186
1009
  self.trigger = self.emit;
1187
1010
  self.bind = self.on;
1188
1011
  self.unbind = self.off;
1012
+
1189
1013
  /*
1190
1014
  * Constants
1191
1015
  */
1192
-
1193
1016
  var CONNECT_DELAYS = [0, 3, 5, 10, 20, 30, 45, 60];
1017
+
1194
1018
  /*
1195
1019
  * States
1196
1020
  */
1197
-
1198
1021
  self.STATE_DISCONNECTED = 'state_disconnected';
1199
1022
  self.STATE_DISCONNECTING = 'state_disconnecting';
1200
1023
  self.STATE_CONNECTING = 'state_connecting';
1201
1024
  self.STATE_CONNECTED = 'state_connected';
1025
+
1202
1026
  /*
1203
1027
  * Events
1204
1028
  */
1205
-
1206
1029
  self.ON_MESSAGE = 'message';
1207
1030
  self.ON_STATE = 'state';
1031
+
1208
1032
  /*
1209
1033
  * Private variables
1210
1034
  */
1211
-
1212
1035
  var config = null;
1213
1036
  var state = self.STATE_DISCONNECTED;
1214
1037
  var transport = null;
1215
- var attempt = 1; // Timestamp to track when the app was backgrounded
1038
+ var attempt = 1;
1216
1039
 
1040
+ // Timestamp to track when the app was backgrounded
1217
1041
  var backgroundedAt = null;
1218
1042
  var inactivityTimeout = {
1219
1043
  start: function start() {
1220
1044
  var _this = this;
1221
-
1222
1045
  log(TYPE_MANAGER_EXTRA, 'ConnectionManager::inactivityTimeout::start');
1223
1046
  var stamp = now();
1224
1047
  this.interval = setInterval(function () {
@@ -1244,7 +1067,6 @@ var ConnectionManager = function () {
1244
1067
  var connectTimeout = {
1245
1068
  start: function start() {
1246
1069
  var _this2 = this;
1247
-
1248
1070
  log(TYPE_MANAGER_EXTRA, 'ConnectionManager::connectTimeout::start');
1249
1071
  this.timeout = setTimeout(function () {
1250
1072
  _this2.resolve();
@@ -1263,7 +1085,6 @@ var ConnectionManager = function () {
1263
1085
  active: false,
1264
1086
  start: function start(delay) {
1265
1087
  var _this3 = this;
1266
-
1267
1088
  log(TYPE_MANAGER_EXTRA, 'ConnectionManager::connectDelay::start');
1268
1089
  this.active = true;
1269
1090
  this.timeout = setTimeout(function () {
@@ -1281,7 +1102,6 @@ var ConnectionManager = function () {
1281
1102
  connect();
1282
1103
  }
1283
1104
  };
1284
-
1285
1105
  var initTransport = function initTransport(newTransport) {
1286
1106
  log(TYPE_MANAGER, 'ConnectionManager::initTransport');
1287
1107
  transport = newTransport;
@@ -1291,14 +1111,11 @@ var ConnectionManager = function () {
1291
1111
  transport.bind(Transport.ON_CONNECT_LOST, handleTransportConnectLost);
1292
1112
  transport.bind(Transport.ON_DISCONNECTED, handleTransportDisconnected);
1293
1113
  };
1294
-
1295
1114
  var teardownTransport = function teardownTransport() {
1296
1115
  log(TYPE_MANAGER, 'ConnectionManager::teardownTransport');
1297
-
1298
1116
  if (transport === null) {
1299
1117
  return;
1300
1118
  }
1301
-
1302
1119
  transport.unbind(Transport.ON_MESSAGE, handleTransportMessage);
1303
1120
  transport.unbind(Transport.ON_CONNECTED, handleTransportConnected);
1304
1121
  transport.unbind(Transport.ON_CONNECT_FAILED, handleTransportConnectFailed);
@@ -1306,11 +1123,9 @@ var ConnectionManager = function () {
1306
1123
  transport.unbind(Transport.ON_DISCONNECTED, handleTransportDisconnected);
1307
1124
  transport = null;
1308
1125
  };
1309
-
1310
1126
  var handleTransportMessage = function handleTransportMessage(message) {
1311
1127
  log(TYPE_MANAGER, 'ConnectionManager::handleTransportMessage', message);
1312
1128
  var messages = message.split('\0');
1313
-
1314
1129
  for (var i = 0; i < messages.length; i += 1) {
1315
1130
  if (messages[i].length > 0) {
1316
1131
  inactivityTimeout.reset();
@@ -1319,86 +1134,71 @@ var ConnectionManager = function () {
1319
1134
  }
1320
1135
  }
1321
1136
  };
1322
-
1323
1137
  var handleTransportConnected = function handleTransportConnected() {
1324
1138
  log(TYPE_MANAGER, 'ConnectionManager::handleTransportConnected');
1325
1139
  setStateToConnected();
1326
1140
  };
1327
-
1328
1141
  var handleTransportConnectFailed = function handleTransportConnectFailed() {
1329
1142
  log(TYPE_MANAGER, 'ConnectionManager::handleTransportConnectFailed');
1330
1143
  disconnectingOnConnectFailed();
1331
1144
  };
1332
-
1333
1145
  var handleTransportConnectLost = function handleTransportConnectLost() {
1334
1146
  log(TYPE_MANAGER, 'ConnectionManager::handleTransportConnectLost');
1335
1147
  disconnectingOnConnectLost();
1336
1148
  };
1337
-
1338
1149
  var handleTransportDisconnected = function handleTransportDisconnected() {
1339
1150
  log(TYPE_MANAGER, 'ConnectionManager::handleTransportDisconnected');
1340
-
1341
1151
  switch (state) {
1342
1152
  case self.STATE_CONNECTED:
1343
1153
  disconnectedOnConnectLost();
1344
1154
  break;
1345
-
1346
1155
  case self.STATE_CONNECTING:
1347
1156
  disconnectedOnConnectFailed();
1348
1157
  break;
1349
-
1350
1158
  case self.STATE_DISCONNECTING:
1351
1159
  setStateToDisconnected();
1352
1160
  break;
1353
1161
  }
1354
1162
  };
1355
-
1356
1163
  var disconnectingOnConnectFailed = function disconnectingOnConnectFailed() {
1357
1164
  log(TYPE_MANAGER, 'ConnectionManager::disconnectingOnConnectFailed()');
1358
1165
  disconnect();
1359
1166
  };
1360
-
1361
1167
  var disconnectingOnConnectLost = function disconnectingOnConnectLost() {
1362
1168
  log(TYPE_MANAGER, 'ConnectionManager::disconnectingOnConnectLost()');
1363
1169
  disconnect();
1364
1170
  };
1365
-
1366
1171
  var disconnectedOnConnectLost = function disconnectedOnConnectLost() {
1367
1172
  log(TYPE_MANAGER, 'ConnectionManager::disconnectedOnConnectLost()');
1368
- teardownTransport(); // automatically reconnect
1173
+ teardownTransport();
1369
1174
 
1175
+ // automatically reconnect
1370
1176
  setStateToConnecting();
1371
1177
  };
1372
-
1373
1178
  var disconnectedOnConnectFailed = function disconnectedOnConnectFailed() {
1374
1179
  log(TYPE_MANAGER, 'ConnectionManager::disconnectedOnConnectFailed()');
1375
1180
  TransportManager$1.addUnsuccessful(transport);
1376
1181
  teardownTransport();
1377
-
1378
1182
  if (TransportManager$1.next() === false) {
1379
1183
  setStateToConnecting();
1380
1184
  } else {
1381
1185
  connect();
1382
1186
  }
1383
1187
  };
1384
-
1385
1188
  var setStateToConnecting = function setStateToConnecting() {
1386
1189
  log(TYPE_MANAGER, 'ConnectionManager::setStateToConnecting()');
1387
1190
  var delay;
1388
-
1389
1191
  if (attempt >= CONNECT_DELAYS.length) {
1390
1192
  delay = CONNECT_DELAYS[CONNECT_DELAYS.length - 1];
1391
1193
  } else {
1392
1194
  delay = CONNECT_DELAYS[attempt - 1];
1393
1195
  }
1394
-
1395
1196
  state = self.STATE_CONNECTING;
1396
1197
  self.trigger(self.ON_STATE, state, attempt, delay);
1397
1198
  TransportManager$1.reset();
1398
1199
  attempt += 1;
1399
1200
  connectDelay.start(delay);
1400
1201
  };
1401
-
1402
1202
  var setStateToConnected = function setStateToConnected() {
1403
1203
  log(TYPE_MANAGER, 'ConnectionManager::setStateToConnected()');
1404
1204
  attempt = 1;
@@ -1409,14 +1209,12 @@ var ConnectionManager = function () {
1409
1209
  state = self.STATE_CONNECTED;
1410
1210
  self.trigger(self.ON_STATE, state);
1411
1211
  };
1412
-
1413
1212
  var setStateToDisconnecting = function setStateToDisconnecting() {
1414
1213
  log(TYPE_MANAGER, 'ConnectionManager::setStateToDisconnecting()');
1415
1214
  state = self.STATE_DISCONNECTING;
1416
1215
  self.trigger(self.ON_STATE, state);
1417
1216
  disconnect();
1418
1217
  };
1419
-
1420
1218
  var setStateToDisconnected = function setStateToDisconnected() {
1421
1219
  log(TYPE_MANAGER, 'ConnectionManager::setStateToDisconnected()');
1422
1220
  attempt = 1;
@@ -1425,7 +1223,6 @@ var ConnectionManager = function () {
1425
1223
  state = self.STATE_DISCONNECTED;
1426
1224
  self.trigger(self.ON_STATE, state);
1427
1225
  };
1428
-
1429
1226
  var connect = function connect() {
1430
1227
  if (state === self.STATE_CONNECTING) {
1431
1228
  connectTimeout.start();
@@ -1433,18 +1230,17 @@ var ConnectionManager = function () {
1433
1230
  transport.connect();
1434
1231
  }
1435
1232
  };
1436
-
1437
1233
  var disconnect = function disconnect() {
1438
1234
  inactivityTimeout.stop();
1439
1235
  connectTimeout.stop();
1440
1236
  connectDelay.stop();
1441
-
1442
1237
  if (transport) {
1443
1238
  transport.disconnect();
1444
1239
  } else {
1445
1240
  setStateToDisconnected();
1446
1241
  }
1447
1242
  };
1243
+
1448
1244
  /**
1449
1245
  * Handles changes in the document's visibility state (visible/hidden).
1450
1246
  *
@@ -1457,56 +1253,46 @@ var ConnectionManager = function () {
1457
1253
  * Note on Safari (ios and desktop) and Firefox quirk: visibilitychange event is fired
1458
1254
  * immidiately when the page is loaded, even if the page is visible.
1459
1255
  */
1460
-
1461
-
1462
1256
  var handleVisibilityChange = function handleVisibilityChange() {
1463
1257
  log(TYPE_MANAGER, 'ConnectionManager::handleVisibilityChange()', document.visibilityState);
1464
-
1465
1258
  switch (document.visibilityState) {
1466
1259
  case 'visible':
1467
1260
  if (backgroundedAt === null) {
1468
1261
  return;
1469
1262
  }
1470
-
1471
1263
  if (state !== self.STATE_CONNECTED) {
1472
1264
  return;
1473
1265
  }
1474
-
1475
1266
  if (Date.now() - backgroundedAt > config.background_timeout * 1000) {
1476
1267
  log(TYPE_MANAGER, 'ConnectionManager::handleVisibilityChange()', 'disconnecting due to background timeout');
1477
1268
  disconnect();
1478
1269
  }
1479
-
1480
1270
  backgroundedAt = null;
1481
1271
  break;
1482
-
1483
1272
  case 'hidden':
1484
1273
  backgroundedAt = Date.now();
1485
1274
  break;
1486
1275
  }
1487
1276
  };
1488
-
1489
1277
  var handleNetworkStatus = function handleNetworkStatus() {
1490
1278
  if (!navigator.onLine && state === self.STATE_CONNECTED) {
1491
1279
  log(TYPE_MANAGER, 'ConnectionManager::handleNetworkStatus()', 'disconnecting due to network loss');
1492
1280
  disconnect();
1493
1281
  }
1494
1282
  };
1495
-
1496
1283
  self.connect = function () {
1497
- log(TYPE_MANAGER, 'ConnectionManager::connect()'); // resolve connect instantly if the process has been already postponed
1284
+ log(TYPE_MANAGER, 'ConnectionManager::connect()');
1498
1285
 
1286
+ // resolve connect instantly if the process has been already postponed
1499
1287
  if (connectDelay.active) {
1500
1288
  connectDelay.resolve();
1501
1289
  } else if (state === self.STATE_DISCONNECTED) {
1502
1290
  setStateToConnecting();
1503
1291
  }
1504
-
1505
1292
  window.addEventListener('online', handleNetworkStatus);
1506
1293
  window.addEventListener('offline', handleNetworkStatus);
1507
1294
  window.addEventListener('visibilitychange', handleVisibilityChange);
1508
1295
  };
1509
-
1510
1296
  self.disconnect = function () {
1511
1297
  log(TYPE_MANAGER, 'ConnectionManager::disconnect()');
1512
1298
  setStateToDisconnecting();
@@ -1514,79 +1300,58 @@ var ConnectionManager = function () {
1514
1300
  window.removeEventListener('offline', handleNetworkStatus);
1515
1301
  window.removeEventListener('visibilitychange', handleVisibilityChange);
1516
1302
  };
1517
-
1518
1303
  self.send = function (sscp, success, failure) {
1519
1304
  log(TYPE_MANAGER, 'ConnectionManager::send', sscp);
1520
-
1521
1305
  success = success || function () {};
1522
-
1523
1306
  failure = failure || function () {};
1524
-
1525
1307
  transport.send(sscp, success, failure);
1526
1308
  };
1527
-
1528
1309
  self.getConnectAttempt = function () {
1529
1310
  return attempt;
1530
1311
  };
1531
-
1532
1312
  self.init = function (cfg) {
1533
1313
  log(TYPE_MANAGER, 'ConnectionManager::init()', cfg);
1534
1314
  config = cfg;
1535
1315
  };
1536
-
1537
1316
  return self;
1538
1317
  }();
1539
1318
 
1540
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1541
-
1542
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1543
-
1319
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
1320
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1544
1321
  var Demographics = /*#__PURE__*/function (_Emitter) {
1545
- _inherits(Demographics, _Emitter);
1546
-
1547
- var _super = _createSuper(Demographics);
1548
-
1549
1322
  function Demographics() {
1550
1323
  var _this;
1551
-
1552
1324
  _classCallCheck(this, Demographics);
1553
-
1554
1325
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1555
1326
  args[_key] = arguments[_key];
1556
1327
  }
1557
-
1558
- _this = _super.call.apply(_super, [this].concat(args));
1328
+ _this = _callSuper(this, Demographics, [].concat(args));
1559
1329
  _this.ON_ADD_COUNTER = 'add-counter';
1560
1330
  _this.trigger = _this.emit;
1561
1331
  _this.bind = _this.on;
1562
1332
  _this.unbind = _this.off;
1563
1333
  return _this;
1564
1334
  }
1565
-
1566
- _createClass(Demographics, [{
1335
+ _inherits(Demographics, _Emitter);
1336
+ return _createClass(Demographics, [{
1567
1337
  key: "addCounter",
1568
1338
  value: function addCounter(channel, eventId, segment, counter) {
1569
1339
  var round = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
1570
1340
  var min = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1571
1341
  var max = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
1572
1342
  log(TYPE_SERVICE, 'Demographics::addCounter', channel, eventId, segment, counter, round, min, max);
1573
-
1574
1343
  if (!channel) {
1575
1344
  return;
1576
1345
  }
1577
-
1578
1346
  if (!eventId) {
1579
1347
  return;
1580
1348
  }
1581
-
1582
1349
  if (!segment || segment.constructor !== Array || !segment.length || segment.length % 2 !== 0) {
1583
1350
  return;
1584
1351
  }
1585
-
1586
1352
  if (counter !== parseInt(counter, 10)) {
1587
1353
  return;
1588
1354
  }
1589
-
1590
1355
  var keys = segment.filter(function (v, i) {
1591
1356
  return (i + 1) % 2;
1592
1357
  }).join(':');
@@ -1596,20 +1361,19 @@ var Demographics = /*#__PURE__*/function (_Emitter) {
1596
1361
  this.trigger(this.ON_ADD_COUNTER, channel, [eventId, min, max, round, keys, values, counter]);
1597
1362
  }
1598
1363
  }]);
1599
-
1600
- return Demographics;
1601
1364
  }(Emitter);
1602
-
1603
1365
  var Demographics$1 = new Demographics();
1604
1366
 
1605
1367
  var Enmasse = function () {
1606
1368
  /*
1607
1369
  * Link to the scope
1608
1370
  */
1371
+
1609
1372
  var self = new Emitter();
1610
1373
  self.trigger = self.emit;
1611
1374
  self.bind = self.on;
1612
1375
  self.unbind = self.off;
1376
+
1613
1377
  /*
1614
1378
  * Constants
1615
1379
  */
@@ -1633,199 +1397,178 @@ var Enmasse = function () {
1633
1397
  self.STATE_DISCONNECTED = 'disconnected';
1634
1398
  self.STATE_CONNECTED = 'connected';
1635
1399
  self.STATE_CONNECTING = 'connecting';
1636
- self.Demographics = Demographics$1; // var CALLBACK_NAME = "__enmasse_callback";
1400
+ self.Demographics = Demographics$1;
1401
+
1402
+ // var CALLBACK_NAME = "__enmasse_callback";
1637
1403
  // var CONFIG_TIMEOUT = 5000;
1638
1404
 
1639
1405
  var PARAM_SESSION_ID = 'enmasse_session_id';
1406
+
1640
1407
  /*
1641
1408
  * Enmasse properties
1642
1409
  */
1410
+
1643
1411
  // Link to the config file.
1412
+ var configFile = null;
1644
1413
 
1645
- var configFile = null; // list of arbitray data passed into handshake
1414
+ // list of arbitray data passed into handshake
1646
1415
  // message along with the protocol version
1416
+ var info = [];
1647
1417
 
1648
- var info = []; // session id is generated by server and passed
1418
+ // session id is generated by server and passed
1649
1419
  // on client on handshake
1420
+ var sessionId = null;
1650
1421
 
1651
- var sessionId = null; // out messages queue
1652
-
1653
- var queue = null; // current state of the state machine
1422
+ // out messages queue
1423
+ var queue = null;
1654
1424
 
1655
- var state = self.STATE_DISCONNECTED; // system channel
1425
+ // current state of the state machine
1426
+ var state = self.STATE_DISCONNECTED;
1656
1427
 
1657
- var sysChannel = null; // force secure connection
1428
+ // system channel
1429
+ var sysChannel = null;
1658
1430
 
1659
- var forceSecure = false; // sign in promise object
1431
+ // force secure connection
1432
+ var forceSecure = false;
1660
1433
 
1434
+ // sign in promise object
1661
1435
  var loginContext = {
1662
1436
  inProgress: false,
1663
1437
  success: function success() {},
1664
1438
  failure: function failure() {}
1665
1439
  };
1440
+
1666
1441
  /*
1667
1442
  * Private methods
1668
1443
  */
1669
1444
 
1670
1445
  var storeSession = /*#__PURE__*/function () {
1671
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(id) {
1672
- return _regeneratorRuntime.wrap(function _callee$(_context) {
1673
- while (1) {
1674
- switch (_context.prev = _context.next) {
1675
- case 0:
1676
- _context.prev = 0;
1677
- _context.next = 3;
1678
- return storageWrite(PARAM_SESSION_ID, id);
1679
-
1680
- case 3:
1681
- _context.next = 8;
1682
- break;
1683
-
1684
- case 5:
1685
- _context.prev = 5;
1686
- _context.t0 = _context["catch"](0);
1687
- console.error("Failed to persist session to shared storage: ".concat(getErrorMessage(_context.t0)));
1688
-
1689
- case 8:
1690
- case "end":
1691
- return _context.stop();
1692
- }
1446
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id) {
1447
+ var _t;
1448
+ return _regeneratorRuntime.wrap(function (_context) {
1449
+ while (1) switch (_context.prev = _context.next) {
1450
+ case 0:
1451
+ _context.prev = 0;
1452
+ _context.next = 1;
1453
+ return storageWrite(PARAM_SESSION_ID, id);
1454
+ case 1:
1455
+ _context.next = 3;
1456
+ break;
1457
+ case 2:
1458
+ _context.prev = 2;
1459
+ _t = _context["catch"](0);
1460
+ console.error("Failed to persist session to shared storage: ".concat(getErrorMessage(_t)));
1461
+ case 3:
1462
+ case "end":
1463
+ return _context.stop();
1693
1464
  }
1694
- }, _callee, null, [[0, 5]]);
1465
+ }, _callee, null, [[0, 2]]);
1695
1466
  }));
1696
-
1697
1467
  return function storeSession(_x) {
1698
1468
  return _ref.apply(this, arguments);
1699
1469
  };
1700
1470
  }();
1701
-
1702
1471
  var restoreSession = /*#__PURE__*/function () {
1703
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
1704
- var restoredId;
1705
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1706
- while (1) {
1707
- switch (_context2.prev = _context2.next) {
1708
- case 0:
1709
- restoredId = null; // Read session from shared storage
1710
-
1711
- _context2.prev = 1;
1712
- _context2.next = 4;
1713
- return storageRead(PARAM_SESSION_ID);
1714
-
1715
- case 4:
1716
- restoredId = _context2.sent;
1717
- _context2.next = 10;
1472
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
1473
+ var restoredId, _t2, _t3;
1474
+ return _regeneratorRuntime.wrap(function (_context2) {
1475
+ while (1) switch (_context2.prev = _context2.next) {
1476
+ case 0:
1477
+ restoredId = null; // Read session from shared storage
1478
+ _context2.prev = 1;
1479
+ _context2.next = 2;
1480
+ return storageRead(PARAM_SESSION_ID);
1481
+ case 2:
1482
+ restoredId = _context2.sent;
1483
+ _context2.next = 4;
1484
+ break;
1485
+ case 3:
1486
+ _context2.prev = 3;
1487
+ _t2 = _context2["catch"](1);
1488
+ console.error("Failed to read session from shared storage: ".concat(getErrorMessage(_t2)));
1489
+ case 4:
1490
+ if (!(restoredId !== null)) {
1491
+ _context2.next = 5;
1718
1492
  break;
1719
-
1720
- case 7:
1721
- _context2.prev = 7;
1722
- _context2.t0 = _context2["catch"](1);
1723
- console.error("Failed to read session from shared storage: ".concat(getErrorMessage(_context2.t0)));
1724
-
1725
- case 10:
1726
- if (!(restoredId !== null)) {
1727
- _context2.next = 12;
1728
- break;
1729
- }
1730
-
1731
- return _context2.abrupt("return", restoredId);
1732
-
1733
- case 12:
1734
- if (!(getParentApplication() === null)) {
1735
- _context2.next = 14;
1736
- break;
1737
- }
1738
-
1739
- return _context2.abrupt("return", null);
1740
-
1741
- case 14:
1742
- try {
1743
- restoredId = getItem(PARAM_SESSION_ID);
1744
- } catch (err) {
1745
- console.error("Failed to read local session during migration: ".concat(getErrorMessage(err)));
1746
- }
1747
-
1748
- if (!(restoredId === null)) {
1749
- _context2.next = 17;
1750
- break;
1751
- }
1752
-
1753
- return _context2.abrupt("return", null);
1754
-
1755
- case 17:
1756
- _context2.prev = 17;
1757
- _context2.next = 20;
1758
- return storageWrite(PARAM_SESSION_ID, restoredId);
1759
-
1760
- case 20:
1761
- _context2.next = 25;
1493
+ }
1494
+ return _context2.abrupt("return", restoredId);
1495
+ case 5:
1496
+ if (!(getParentApplication() === null)) {
1497
+ _context2.next = 6;
1762
1498
  break;
1763
-
1764
- case 22:
1765
- _context2.prev = 22;
1766
- _context2.t1 = _context2["catch"](17);
1767
- console.error("Failed to persist session to shared storage during migration: ".concat(getErrorMessage(_context2.t1)));
1768
-
1769
- case 25:
1770
- return _context2.abrupt("return", restoredId);
1771
-
1772
- case 26:
1773
- case "end":
1774
- return _context2.stop();
1775
- }
1499
+ }
1500
+ return _context2.abrupt("return", null);
1501
+ case 6:
1502
+ try {
1503
+ restoredId = getItem(PARAM_SESSION_ID);
1504
+ } catch (err) {
1505
+ console.error("Failed to read local session during migration: ".concat(getErrorMessage(err)));
1506
+ }
1507
+ if (!(restoredId === null)) {
1508
+ _context2.next = 7;
1509
+ break;
1510
+ }
1511
+ return _context2.abrupt("return", null);
1512
+ case 7:
1513
+ _context2.prev = 7;
1514
+ _context2.next = 8;
1515
+ return storageWrite(PARAM_SESSION_ID, restoredId);
1516
+ case 8:
1517
+ _context2.next = 10;
1518
+ break;
1519
+ case 9:
1520
+ _context2.prev = 9;
1521
+ _t3 = _context2["catch"](7);
1522
+ console.error("Failed to persist session to shared storage during migration: ".concat(getErrorMessage(_t3)));
1523
+ case 10:
1524
+ return _context2.abrupt("return", restoredId);
1525
+ case 11:
1526
+ case "end":
1527
+ return _context2.stop();
1776
1528
  }
1777
- }, _callee2, null, [[1, 7], [17, 22]]);
1529
+ }, _callee2, null, [[1, 3], [7, 9]]);
1778
1530
  }));
1779
-
1780
1531
  return function restoreSession() {
1781
1532
  return _ref2.apply(this, arguments);
1782
1533
  };
1783
1534
  }();
1784
-
1785
1535
  var resetSession = /*#__PURE__*/function () {
1786
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
1787
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1788
- while (1) {
1789
- switch (_context3.prev = _context3.next) {
1790
- case 0:
1791
- sessionId = null;
1792
- _context3.prev = 1;
1793
- _context3.next = 4;
1794
- return storageRemove(PARAM_SESSION_ID);
1795
-
1796
- case 4:
1797
- _context3.next = 9;
1798
- break;
1799
-
1800
- case 6:
1801
- _context3.prev = 6;
1802
- _context3.t0 = _context3["catch"](1);
1803
- console.error("Failed to remove session from shared storage: ".concat(getErrorMessage(_context3.t0)));
1804
-
1805
- case 9:
1806
- case "end":
1807
- return _context3.stop();
1808
- }
1536
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
1537
+ var _t4;
1538
+ return _regeneratorRuntime.wrap(function (_context3) {
1539
+ while (1) switch (_context3.prev = _context3.next) {
1540
+ case 0:
1541
+ sessionId = null;
1542
+ _context3.prev = 1;
1543
+ _context3.next = 2;
1544
+ return storageRemove(PARAM_SESSION_ID);
1545
+ case 2:
1546
+ _context3.next = 4;
1547
+ break;
1548
+ case 3:
1549
+ _context3.prev = 3;
1550
+ _t4 = _context3["catch"](1);
1551
+ console.error("Failed to remove session from shared storage: ".concat(getErrorMessage(_t4)));
1552
+ case 4:
1553
+ case "end":
1554
+ return _context3.stop();
1809
1555
  }
1810
- }, _callee3, null, [[1, 6]]);
1556
+ }, _callee3, null, [[1, 3]]);
1811
1557
  }));
1812
-
1813
1558
  return function resetSession() {
1814
1559
  return _ref3.apply(this, arguments);
1815
1560
  };
1816
1561
  }();
1817
-
1818
1562
  var validateSession = function validateSession(id) {
1819
- return (// eslint-disable-next-line
1563
+ return (
1564
+ // eslint-disable-next-line
1820
1565
  /^[a-f\d]{8}\-[a-f\d]{4}\-[a-f\d]{4}-[a-f\d]{4}\-[a-f\d]{12}$/i.test(id)
1821
1566
  );
1822
1567
  };
1823
-
1824
1568
  var finaliseLogin = function finaliseLogin(callback) {
1825
1569
  if (loginContext.inProgress === false) {
1826
1570
  return;
1827
1571
  }
1828
-
1829
1572
  loginContext = {
1830
1573
  inProgress: false,
1831
1574
  success: function success() {},
@@ -1833,15 +1576,12 @@ var Enmasse = function () {
1833
1576
  };
1834
1577
  callback();
1835
1578
  };
1836
-
1837
1579
  var resolveLogin = function resolveLogin() {
1838
1580
  finaliseLogin(loginContext.success);
1839
1581
  };
1840
-
1841
1582
  var rejectLogin = function rejectLogin() {
1842
1583
  finaliseLogin(loginContext.failure);
1843
1584
  };
1844
-
1845
1585
  var setStateToDisconnected = function setStateToDisconnected() {
1846
1586
  log(TYPE_PROTOCOL, 'Enmasse::setStateToDisconnected()');
1847
1587
  state = self.STATE_DISCONNECTED;
@@ -1849,21 +1589,18 @@ var Enmasse = function () {
1849
1589
  rejectLogin();
1850
1590
  self.trigger(self.ON_STATE, state);
1851
1591
  };
1852
-
1853
1592
  var setStateToConnected = function setStateToConnected() {
1854
1593
  log(TYPE_PROTOCOL, 'Enmasse::setStateToConnected()');
1855
1594
  var time = now();
1856
1595
  state = self.STATE_CONNECTED;
1857
1596
  self.trigger(self.ON_STATE, state, time);
1858
1597
  };
1859
-
1860
1598
  var setStateToConnecting = function setStateToConnecting(attempt, delay) {
1861
1599
  log(TYPE_PROTOCOL, 'Enmasse::setStateToConnecting()');
1862
1600
  state = self.STATE_CONNECTING;
1863
1601
  rejectLogin();
1864
1602
  self.trigger(self.ON_STATE, state, attempt, delay);
1865
1603
  };
1866
-
1867
1604
  var parseSSCP = function parseSSCP(sscp) {
1868
1605
  var data = {
1869
1606
  channel: 0,
@@ -1872,22 +1609,17 @@ var Enmasse = function () {
1872
1609
  body: []
1873
1610
  };
1874
1611
  var separator1 = sscp.indexOf('/');
1875
-
1876
1612
  if (separator1 !== -1) {
1877
1613
  var separator2 = sscp.indexOf('/', separator1 + 1);
1878
-
1879
1614
  if (separator2 !== -1) {
1880
1615
  data.channel = sscp.substr(0, separator1);
1881
1616
  data.klass = sscp.substr(separator1 + 1, separator2 - separator1 - 1);
1882
1617
  var separator3 = sscp.indexOf('/', separator2 + 1);
1883
-
1884
1618
  if (separator3 !== -1) {
1885
1619
  data.sent_at = parseInt(sscp.substr(separator2 + 1, separator3 - separator2 - 1), 10);
1886
1620
  var body = sscp.substr(separator3 + 1);
1887
-
1888
1621
  if (body !== '') {
1889
1622
  var values = body.split('|');
1890
-
1891
1623
  for (var i = 0, l = values.length; i < l; i += 1) {
1892
1624
  data.body[i] = decodeURIComponent(values[i]);
1893
1625
  }
@@ -1895,161 +1627,133 @@ var Enmasse = function () {
1895
1627
  }
1896
1628
  }
1897
1629
  }
1898
-
1899
1630
  return data;
1900
1631
  };
1901
-
1902
1632
  var stringifySSCP = function stringifySSCP(message) {
1903
1633
  return [message.channel, message.klass, Math.floor(new Date() / 1000), message.body.join('|')].join('/');
1904
1634
  };
1905
-
1906
1635
  var runner = function runner(message) {
1907
1636
  var success = function success() {
1908
1637
  queue.success();
1909
1638
  };
1910
-
1911
1639
  var failure = function failure() {
1912
1640
  queue.failure();
1913
1641
  };
1914
-
1915
1642
  ConnectionManager.send(stringifySSCP(message), success, failure);
1916
1643
  };
1917
-
1918
1644
  var handleTransportManagerReady = function handleTransportManagerReady() {
1919
1645
  log(TYPE_PROTOCOL, 'Enmasse::handleTransportManagerReady');
1920
1646
  self.trigger(self.ON_READY);
1921
1647
  };
1922
-
1923
1648
  var handleConnectionManagerState = function handleConnectionManagerState() {
1924
1649
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1925
1650
  args[_key] = arguments[_key];
1926
1651
  }
1927
-
1928
1652
  log(TYPE_PROTOCOL, 'Enmasse::handleConnectionManagerState', args);
1929
-
1930
1653
  switch (args[0]) {
1931
1654
  // case ConnectionManager.STATE_DISCONNECTING:
1932
1655
  // break;
1933
1656
  case ConnectionManager.STATE_DISCONNECTED:
1934
1657
  setStateToDisconnected();
1935
1658
  break;
1936
-
1937
1659
  case ConnectionManager.STATE_CONNECTING:
1938
1660
  setStateToConnecting(args[1], args[2]);
1939
1661
  break;
1940
-
1941
1662
  case ConnectionManager.STATE_CONNECTED:
1942
1663
  break;
1943
1664
  }
1944
1665
  };
1945
-
1946
1666
  var handleConnectionManagerMessage = /*#__PURE__*/function () {
1947
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(message) {
1948
- var data, time, clientInfo, _data$body, subscriptions;
1949
-
1950
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1951
- while (1) {
1952
- switch (_context4.prev = _context4.next) {
1953
- case 0:
1954
- log(TYPE_PROTOCOL, 'Enmasse::handleConnectionManagerMessage', message);
1955
- data = parseSSCP(message);
1956
- _context4.t0 = data.klass;
1957
- _context4.next = _context4.t0 === SSCP_KLASS_AUTH ? 5 : _context4.t0 === SSCP_KLASS_AUTHOK ? 19 : _context4.t0 === SSCP_KLASS_LOGIN_OK ? 25 : _context4.t0 === SSCP_KLASS_LOGIN_FAIL ? 27 : _context4.t0 === SSCP_KLASS_PING ? 29 : _context4.t0 === SSCP_KLASS_EOC ? 30 : 32;
1667
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(message) {
1668
+ var data, time, clientInfo, _data$body, subscriptions, _t5;
1669
+ return _regeneratorRuntime.wrap(function (_context4) {
1670
+ while (1) switch (_context4.prev = _context4.next) {
1671
+ case 0:
1672
+ log(TYPE_PROTOCOL, 'Enmasse::handleConnectionManagerMessage', message);
1673
+ data = parseSSCP(message);
1674
+ _t5 = data.klass;
1675
+ _context4.next = _t5 === SSCP_KLASS_AUTH ? 1 : _t5 === SSCP_KLASS_AUTHOK ? 3 : _t5 === SSCP_KLASS_LOGIN_OK ? 4 : _t5 === SSCP_KLASS_LOGIN_FAIL ? 5 : _t5 === SSCP_KLASS_PING ? 6 : _t5 === SSCP_KLASS_EOC ? 7 : 8;
1676
+ break;
1677
+ case 1:
1678
+ time = data.sent_at;
1679
+ clientInfo = ["enmassejs-".concat(self.VERSION), navigator.userAgent].concat(info); // store system channel
1680
+ sysChannel = data.channel;
1681
+
1682
+ // url encode each client info item
1683
+ clientInfo.forEach(function (item, idx) {
1684
+ clientInfo[idx] = encodeURIComponent(item);
1685
+ });
1686
+ if (!(sessionId === null)) {
1687
+ _context4.next = 2;
1958
1688
  break;
1959
-
1960
- case 5:
1961
- time = data.sent_at;
1962
- clientInfo = ["enmassejs-".concat(self.VERSION), navigator.userAgent].concat(info); // store system channel
1963
-
1964
- sysChannel = data.channel; // url encode each client info item
1965
-
1966
- clientInfo.forEach(function (item, idx) {
1967
- clientInfo[idx] = encodeURIComponent(item);
1968
- });
1969
-
1970
- if (!(sessionId === null)) {
1971
- _context4.next = 14;
1972
- break;
1973
- }
1974
-
1975
- _data$body = _slicedToArray(data.body, 1);
1976
- sessionId = _data$body[0];
1977
- _context4.next = 14;
1978
- return storeSession(sessionId);
1979
-
1980
- case 14:
1981
- setTime(time);
1982
- queue.stash();
1689
+ }
1690
+ _data$body = _slicedToArray(data.body, 1);
1691
+ sessionId = _data$body[0];
1692
+ _context4.next = 2;
1693
+ return storeSession(sessionId);
1694
+ case 2:
1695
+ setTime(time);
1696
+ queue.stash();
1697
+ queue.push({
1698
+ channel: sysChannel,
1699
+ klass: SSCP_KLASS_AUTHR,
1700
+ body: [sessionId, self.PROTOCOL_VERSION, clientInfo.join(',')]
1701
+ }, true);
1702
+ queue.run();
1703
+ return _context4.abrupt("continue", 9);
1704
+ case 3:
1705
+ // We have to resubscribe to the previously
1706
+ // subscribed channels after the reconnect.
1707
+ subscriptions = queue.getSubscriptions();
1708
+ subscriptions.forEach(function (channel) {
1983
1709
  queue.push({
1984
- channel: sysChannel,
1985
- klass: SSCP_KLASS_AUTHR,
1986
- body: [sessionId, self.PROTOCOL_VERSION, clientInfo.join(',')]
1710
+ channel: channel,
1711
+ klass: SSCP_KLASS_SUB,
1712
+ body: []
1987
1713
  }, true);
1988
- queue.run();
1989
- return _context4.abrupt("break", 34);
1990
-
1991
- case 19:
1992
- // We have to resubscribe to the previously
1993
- // subscribed channels after the reconnect.
1994
- subscriptions = queue.getSubscriptions();
1995
- subscriptions.forEach(function (channel) {
1996
- queue.push({
1997
- channel: channel,
1998
- klass: SSCP_KLASS_SUB,
1999
- body: []
2000
- }, true);
2001
- });
2002
- queue.unstash();
2003
- queue.run();
2004
- setStateToConnected();
2005
- return _context4.abrupt("break", 34);
2006
-
2007
- case 25:
2008
- resolveLogin();
2009
- return _context4.abrupt("break", 34);
2010
-
2011
- case 27:
2012
- rejectLogin();
2013
- return _context4.abrupt("break", 34);
2014
-
2015
- case 29:
2016
- return _context4.abrupt("break", 34);
2017
-
2018
- case 30:
2019
- self.trigger(self.ON_EOC, data.channel);
2020
- return _context4.abrupt("break", 34);
2021
-
2022
- case 32:
2023
- self.trigger(self.ON_MESSAGE, data);
2024
- return _context4.abrupt("break", 34);
2025
-
2026
- case 34:
2027
- case "end":
2028
- return _context4.stop();
2029
- }
1714
+ });
1715
+ queue.unstash();
1716
+ queue.run();
1717
+ setStateToConnected();
1718
+ return _context4.abrupt("continue", 9);
1719
+ case 4:
1720
+ resolveLogin();
1721
+ return _context4.abrupt("continue", 9);
1722
+ case 5:
1723
+ rejectLogin();
1724
+ return _context4.abrupt("continue", 9);
1725
+ case 6:
1726
+ return _context4.abrupt("continue", 9);
1727
+ case 7:
1728
+ self.trigger(self.ON_EOC, data.channel);
1729
+ return _context4.abrupt("continue", 9);
1730
+ case 8:
1731
+ self.trigger(self.ON_MESSAGE, data);
1732
+ return _context4.abrupt("continue", 9);
1733
+ case 9:
1734
+ case "end":
1735
+ return _context4.stop();
2030
1736
  }
2031
1737
  }, _callee4);
2032
1738
  }));
2033
-
2034
1739
  return function handleConnectionManagerMessage(_x2) {
2035
1740
  return _ref4.apply(this, arguments);
2036
1741
  };
2037
1742
  }();
2038
-
2039
1743
  var handleDemographicsCounter = function handleDemographicsCounter(channel, data) {
2040
1744
  self.send(channel, 'avgcounter', data);
2041
1745
  };
1746
+
2042
1747
  /**
2043
1748
  * @internal
2044
1749
  */
2045
-
2046
-
2047
1750
  self.PARAM_SESSION_ID = PARAM_SESSION_ID;
1751
+
2048
1752
  /**
2049
1753
  * @internal
2050
1754
  */
2051
-
2052
1755
  self.resetSession = resetSession;
1756
+
2053
1757
  /*
2054
1758
  * Public methods
2055
1759
  */
@@ -2058,12 +1762,10 @@ var Enmasse = function () {
2058
1762
  log(TYPE_PROTOCOL, 'Enmasse::connect');
2059
1763
  ConnectionManager.connect();
2060
1764
  };
2061
-
2062
1765
  self.disconnect = function () {
2063
1766
  log(TYPE_PROTOCOL, 'Enmasse:disconnect');
2064
1767
  ConnectionManager.disconnect();
2065
1768
  };
2066
-
2067
1769
  self.send = function (channel, klass, body) {
2068
1770
  log(TYPE_PROTOCOL, 'Enmasse::send', channel, klass, body);
2069
1771
  body = body || [];
@@ -2072,41 +1774,32 @@ var Enmasse = function () {
2072
1774
  klass: klass,
2073
1775
  body: body
2074
1776
  });
2075
-
2076
1777
  if (state === self.STATE_CONNECTED) {
2077
1778
  queue.run();
2078
1779
  }
2079
1780
  };
2080
-
2081
1781
  self.getSessionId = function () {
2082
1782
  return sessionId;
2083
1783
  };
2084
-
2085
1784
  self.getState = function () {
2086
1785
  return state;
2087
1786
  };
2088
-
2089
1787
  self.subscribe = function (channel) {
2090
1788
  self.send(channel, SSCP_KLASS_SUB);
2091
1789
  };
2092
-
2093
1790
  self.unsubscribe = function (channel) {
2094
1791
  self.send(channel, SSCP_KLASS_UNSUB);
2095
1792
  };
2096
-
2097
1793
  self.login = function (userId, timestamp, signature) {
2098
1794
  var success = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
2099
1795
  var failure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {};
2100
-
2101
1796
  if (sysChannel === null) {
2102
1797
  return;
2103
1798
  }
2104
-
2105
1799
  if (loginContext.inProgress) {
2106
1800
  console.warn('Login is already in progress');
2107
1801
  return;
2108
1802
  }
2109
-
2110
1803
  loginContext = {
2111
1804
  inProgress: true,
2112
1805
  success: success,
@@ -2114,133 +1807,110 @@ var Enmasse = function () {
2114
1807
  };
2115
1808
  self.send(sysChannel, SSCP_KLASS_LOGIN, [userId, timestamp, signature]);
2116
1809
  };
2117
-
2118
1810
  self.signIn = function () {
2119
- console.warn( // eslint-disable-next-line
1811
+ console.warn(// eslint-disable-next-line
2120
1812
  "signIn() method is deprecated and will be removed in future versions. Please use login() method instead");
2121
-
2122
1813
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2123
1814
  args[_key2] = arguments[_key2];
2124
1815
  }
2125
-
2126
1816
  self.login(args);
2127
1817
  };
2128
-
2129
1818
  self.init = /*#__PURE__*/function () {
2130
- var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
1819
+ var _init = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
2131
1820
  var config,
2132
- response,
2133
- status,
2134
- text,
2135
- data,
2136
- isSuccess,
2137
- _args5 = arguments;
2138
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
2139
- while (1) {
2140
- switch (_context5.prev = _context5.next) {
2141
- case 0:
2142
- config = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : function () {};
2143
- // config file is passed either as GET parameter or via constructor
2144
- configFile = !ENMASSE_CONFIG ? config.config || null : ENMASSE_CONFIG;
2145
- info = config.info || [];
2146
- _context5.next = 5;
2147
- return restoreSession();
2148
-
2149
- case 5:
2150
- sessionId = _context5.sent;
2151
-
2152
- if (typeof config.forceSecure === 'boolean') {
2153
- forceSecure = config.forceSecure;
2154
- }
2155
-
2156
- if (!(configFile === null)) {
2157
- _context5.next = 9;
2158
- break;
2159
- }
2160
-
2161
- throw 'Enmasse config file is not set';
2162
-
2163
- case 9:
2164
- if (!(sessionId !== null && !validateSession(sessionId))) {
2165
- _context5.next = 12;
2166
- break;
2167
- }
2168
-
2169
- _context5.next = 12;
2170
- return resetSession();
2171
-
2172
- case 12:
2173
- queue = new Queue({
2174
- runner: runner
2175
- });
2176
- TransportManager$1.bind(TransportManager$1.ON_READY, handleTransportManagerReady);
2177
- ConnectionManager.bind(ConnectionManager.ON_STATE, handleConnectionManagerState);
2178
- ConnectionManager.bind(ConnectionManager.ON_MESSAGE, handleConnectionManagerMessage);
2179
- Demographics$1.bind(Demographics$1.ON_ADD_COUNTER, handleDemographicsCounter);
2180
- _context5.prev = 17;
2181
- _context5.next = 20;
2182
- return fetch(configFile);
2183
-
2184
- case 20:
2185
- response = _context5.sent;
2186
- status = response.status, text = response.statusText;
2187
- _context5.prev = 22;
2188
- _context5.next = 25;
2189
- return response.json();
2190
-
2191
- case 25:
2192
- data = _context5.sent;
2193
- _context5.next = 32;
1821
+ response,
1822
+ status,
1823
+ text,
1824
+ data,
1825
+ isSuccess,
1826
+ _args5 = arguments,
1827
+ _t7;
1828
+ return _regeneratorRuntime.wrap(function (_context5) {
1829
+ while (1) switch (_context5.prev = _context5.next) {
1830
+ case 0:
1831
+ config = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : function () {};
1832
+ // config file is passed either as GET parameter or via constructor
1833
+ configFile = !ENMASSE_CONFIG ? config.config || null : ENMASSE_CONFIG;
1834
+ info = config.info || [];
1835
+ _context5.next = 1;
1836
+ return restoreSession();
1837
+ case 1:
1838
+ sessionId = _context5.sent;
1839
+ if (typeof config.forceSecure === 'boolean') {
1840
+ forceSecure = config.forceSecure;
1841
+ }
1842
+ if (!(configFile === null)) {
1843
+ _context5.next = 2;
2194
1844
  break;
2195
-
2196
- case 28:
2197
- _context5.prev = 28;
2198
- _context5.t0 = _context5["catch"](22);
2199
- self.trigger(self.ON_ERROR, "Invalid JSON from config ".concat(configFile));
2200
- return _context5.abrupt("return");
2201
-
2202
- case 32:
2203
- isSuccess = status >= 200 && status <= 300 || // If you conclude with an XMLHttpRequest receiving status=0 and
2204
- // statusText=null, this means the request was not allowed to be
2205
- // performed.
2206
- // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#xmlhttprequests_being_stopped
2207
- status === 0 && !!text || status === '';
2208
- data.forceSecure = forceSecure;
2209
-
2210
- if (data.background_timeout === undefined) {
2211
- data.background_timeout = 0;
2212
- }
2213
-
2214
- if (isSuccess) {
2215
- ConnectionManager.init(data);
2216
- TransportManager$1.init(data);
2217
- } else {
2218
- self.trigger(self.ON_ERROR, "Failed to load config ".concat(configFile));
2219
- }
2220
-
2221
- _context5.next = 41;
1845
+ }
1846
+ throw 'Enmasse config file is not set';
1847
+ case 2:
1848
+ if (!(sessionId !== null && !validateSession(sessionId))) {
1849
+ _context5.next = 3;
2222
1850
  break;
2223
-
2224
- case 38:
2225
- _context5.prev = 38;
2226
- _context5.t1 = _context5["catch"](17);
2227
- self.trigger(self.ON_ERROR, "Error loading config: ".concat(_context5.t1.message));
2228
-
2229
- case 41:
2230
- case "end":
2231
- return _context5.stop();
2232
- }
1851
+ }
1852
+ _context5.next = 3;
1853
+ return resetSession();
1854
+ case 3:
1855
+ queue = new Queue({
1856
+ runner: runner
1857
+ });
1858
+ TransportManager$1.bind(TransportManager$1.ON_READY, handleTransportManagerReady);
1859
+ ConnectionManager.bind(ConnectionManager.ON_STATE, handleConnectionManagerState);
1860
+ ConnectionManager.bind(ConnectionManager.ON_MESSAGE, handleConnectionManagerMessage);
1861
+ Demographics$1.bind(Demographics$1.ON_ADD_COUNTER, handleDemographicsCounter);
1862
+ _context5.prev = 4;
1863
+ _context5.next = 5;
1864
+ return fetch(configFile);
1865
+ case 5:
1866
+ response = _context5.sent;
1867
+ status = response.status, text = response.statusText;
1868
+ _context5.prev = 6;
1869
+ _context5.next = 7;
1870
+ return response.json();
1871
+ case 7:
1872
+ data = _context5.sent;
1873
+ _context5.next = 9;
1874
+ break;
1875
+ case 8:
1876
+ _context5.prev = 8;
1877
+ _context5["catch"](6);
1878
+ self.trigger(self.ON_ERROR, "Invalid JSON from config ".concat(configFile));
1879
+ return _context5.abrupt("return");
1880
+ case 9:
1881
+ isSuccess = status >= 200 && status <= 300 ||
1882
+ // If you conclude with an XMLHttpRequest receiving status=0 and
1883
+ // statusText=null, this means the request was not allowed to be
1884
+ // performed.
1885
+ // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#xmlhttprequests_being_stopped
1886
+ status === 0 && !!text || status === '';
1887
+ data.forceSecure = forceSecure;
1888
+ if (data.background_timeout === undefined) {
1889
+ data.background_timeout = 0;
1890
+ }
1891
+ if (isSuccess) {
1892
+ ConnectionManager.init(data);
1893
+ TransportManager$1.init(data);
1894
+ } else {
1895
+ self.trigger(self.ON_ERROR, "Failed to load config ".concat(configFile));
1896
+ }
1897
+ _context5.next = 11;
1898
+ break;
1899
+ case 10:
1900
+ _context5.prev = 10;
1901
+ _t7 = _context5["catch"](4);
1902
+ self.trigger(self.ON_ERROR, "Error loading config: ".concat(_t7.message));
1903
+ case 11:
1904
+ case "end":
1905
+ return _context5.stop();
2233
1906
  }
2234
- }, _callee5, null, [[17, 38], [22, 28]]);
1907
+ }, _callee5, null, [[4, 10], [6, 8]]);
2235
1908
  }));
2236
-
2237
1909
  function init() {
2238
1910
  return _init.apply(this, arguments);
2239
1911
  }
2240
-
2241
1912
  return init;
2242
1913
  }();
2243
-
2244
1914
  return self;
2245
1915
  }();
2246
1916